내장 학습 런타임
플랫폼이 직접 빌드하는 YOLO · RF-DETR · Pointcept 런타임과 런타임별 지원 데이터
플랫폼에는 직접 빌드해 사용하는 학습 런타임 세 가지가 있음. 이 런타임도 이 절과 같은 계약으로 실행. 새 트레이너 작성 시 참고 구현으로 사용.
프레임워크 하나 = 런타임 이미지 하나. 의존성이 서로 다른 프레임워크를 한 이미지에 포함하지 않음. 변형 생성 시 프레임워크를 선택하며, 이후 변경 불가.
| 프레임워크 | 태스크 | 모델 변형(마법사 3단계) | 데이터 | GPU |
|---|---|---|---|---|
| YOLO (ultralytics) | 객체 탐지 | yolo26n · yolo12n · yolo12s · yolo11n · yolo11s | 이미지 + 어노테이션 | 선택 |
| 인스턴스 분할 | yolo11n-seg · yolo11s-seg · yolo11m-seg | 이미지 + 폴리곤 어노테이션 | 선택 | |
| RF-DETR | 객체 탐지 | rf-detr-nano · -small · -medium · -large | 이미지 + 어노테이션 | 선택 |
| 인스턴스 분할 | rf-detr-seg-nano · -small · -medium | 이미지 + 폴리곤 어노테이션 | 선택 | |
| Pointcept (PTv3) | 의미 분할 | pt-v3 | PLY 포인트클라우드 + 클래스 | 필수 |
| 인스턴스 분할 (PointGroup) | pg-ptv3 | PLY 포인트클라우드 + 인스턴스 ID (클래스는 선택) | 필수 |
무엇이 다른가
| YOLO | RF-DETR | Pointcept | |
|---|---|---|---|
| Dockerfile | Dockerfile | Dockerfile.rfdetr | Dockerfile.pointcept (2단계 빌드) |
| 고정 버전 | ultralytics 8.4.68 | rfdetr 1.9.4 | Pointcept 특정 커밋, torch 2.9.1 |
| 생성하는 학습 데이터 | YOLO 라벨 (images/labels/{train,val} + data.yaml) | COCO ({train,valid}/_annotations.coco.json, 카테고리 id 1부터) | {train,val}/{scene}/{coord,color,segment}.npy (인스턴스 분할은 instance.npy 추가) |
| 라벨 출처 | COCO · LabelMe · VOC 어노테이션 | 같음 | PLY 내부의 정수 속성(클래스·인스턴스 ID). 데이터셋의 포인트 라벨 해석을 따름 |
| 사전학습 가중치 위치 | 작업 디렉터리(/geo) | RF_HOME(/geo/work/weights) | /geo/work/weights(트레이너가 직접 탐색) |
- 세 트레이너 모두
GEO_WORK_DIR에 자체 형식의 데이터셋을 만들고, 이미지는 복사하지 않고 심볼릭 링크로 연결(/geo/dataset이 읽기 전용이라 복사 불필요). 포인트클라우드만.ply를.npy로 변환. - 폴리곤이 없는 라벨은 분할 학습에서 bbox 사각형으로 대체.
- Pointcept 는 CUDA 전용 확장을 사용하므로 GPU 없이 제출하면 제출 단계에서 거절. 시맨틱 분할은 클래스를 2개 이상 선택해야 하고, 인스턴스 분할은 데이터셋에 인스턴스 속성이 지정되어 있어야 제출 가능.
- 포인트클라우드에서 어느 속성이 클래스이고 어느 속성이 인스턴스 ID 인지는 데이터셋의 포인트 라벨 해석이 결정. 해석을 확정하지 않았으면 이름으로 판정. 이름에
inst·object·obj_id·objid가 포함되면 인스턴스 ID(class·semantic이 함께 포함되면 클래스),label·class·segment·semantic이 포함되면 클래스, 둘 다 없으면 좌표·색이 아닌 첫 정수 속성이 클래스. 값이 모두 정수인 float 속성도 정수로 읽음. - 인스턴스 ID 는 클래스로 사용하지 않음. 인스턴스마다 클래스를 할당한 데이터셋은 할당표로 점의 클래스를 결정하고, 미할당 인스턴스와 음수 ID 의 점은 학습에서 무시. 배경 인스턴스 ID 의 점은 배경 클래스를 선택했으면 그 클래스로, 아니면 무시.
사용하려면
내장 런타임은 이미지를 게시(클러스터 내부에서 빌드해 레지스트리에 push)해야 학습에 사용 가능. 테넌트 관리자가 학습 런타임 에서 프레임워크별 변형을 만들어 게시하거나, 시스템 관리자가 공유 이미지로 제공. 자세한 절차는 관리자 가이드 참고.