1. 이미지 라벨링 하기
1.1. 프로젝트 생성
- Roboflow 대시보드로 가서 "Create New Project"(새 프로젝트 생성)을 클릭

1.2. 각 클래스에 대한 스켈레톤을 설정
- Roboflow 사이드바에서 "Classes"(클래스)를 클릭하세요. 그런 다음 모델 훈련에 사용할 모든 클래스를 추가하세요.

- 클래스를 추가한 후, 각 객체에 대해 라벨링할 지점을 정의해야 합니다.
- 스켈레톤을 정의하려면 페이지의 그리드에서 아무 곳이나 클릭하여 포인트를 추가하세요.
- 포인트를 클릭하면 포인트에 대한 이름을 지정할 수 있습니다.

- TODO
- 포인트에 대한 이름을 저장했는가? 필요한가? (안한듯)
- 색깔과 edge 정하기
- 색깔: 주황 / 빨강 / 하늘색
- edge: 연결하기
1.3. 데이터 업로드
- 스켈레톤을 정의한 후 데이터를 업로드할 수 있습니다.
- Roboflow 웹 인터페이스 또는 Roboflow API를 사용하여 원본 이미지를 업로드할 수 있습니다.
- 웹 인터페이스를 통해 데이터를 업로드하려면 Roboflow 웹 애플리케이션에 이미지를 드래그하세요:

1.4. 라벨링 하기 (주석 추가)
- Roboflow 사이드바에서 "Annotate"(주석 추가)를 클릭하여 주석이 필요한 모든 이미지를 확인하세요.
- 이미지를 선택하면 Roboflow Annotate 인터페이스로 이동하여 이미지에 키포인트를 주석 처리할 수 있습니다.
- 객체를 주석 처리하려면 오른쪽 사이드바에서 키포인트 주석 도구를 클릭하세요.
- 그런 다음 주석을 추가할 객체 주위에 클릭하고 드래그하세요.
- 클래스 이름을 선택하라는 메시지가 나타납니다.
- 그런 다음 상자 안의 키포인트를 이미지의 각 지점 위치에 맞게 드래그할 수 있습니다.

- 키포인트가 가려진 경우, 키포인트를 오른쪽 클릭한 후 "Mark as occluded"(가려진 것으로 표시)을 클릭하세요.
- TODO
- occluded class 지정을 하는가? (안하는듯)
2. 데이터셋 만들기
- 이 단계에서는 이미지에 전처리 단계와 증강을 적용할 수 있습니다.
2.1. 데이터셋 생성
- Roboflow 대시보드의 왼쪽 사이드바에서 "Generate"(생성)을 클릭하여 데이터셋을 생성하세요.
- 이 페이지에서 데이터에 적용할 전처리 및 증강 단계를 선택할 수 있습니다.

- TODO
- flip_idx 를 어디서/어떻게/왜 설정해야할지 정하기
2.1.1. 데이터 선정
2.2. 전처리 단계
- 픽셀 데이터 자동 방향 조정(EXIF 방향 정보 제거)
- 640x640 크기로 리사이즈(스트레치 방식)
3. yolo 학습시키기
3.1. 데이터셋 다운로드 하기
!pip install roboflow
from roboflow import Roboflow
rf = Roboflow(api_key="N7MTpQadXU3Tr0pjiHKZ")
project = rf.workspace("capjamesg").project("glue-keypoint-detection")
dataset = project.version(1).download("yolov5")
- 위 코드에서 모델 ID와 버전을 Roboflow 대시보드의 데이터셋 페이지에 있는 모델 ID와 버전으로 교체하세요.
- 모델 ID와 버전을 검색하는 방법은 여기를 참고하세요.
- TODO
3.2. yolo 모델 가져오기
from ultralytics import YOLO
model = YOLO('yolov8n-pose.pt')
results = model.train(data=./'path/to/coco8-pose.yaml', epochs=100, imgsz=640)
- 여기서 'path/to/coco8-pose.yaml’을 다운로드한 데이터셋의 YAML 파일 위치로 교체하세요.
TODO
- yolo v8 말고, v11로 학습할 순 없나?
- 모델 크기는 얼마나 작은 것 까지 해볼 수 있나?
- pre-trained
- 500 epoch을 학습시켰다.
- A100에서 batch 48로 했는데, 기본값은 16이다.
4. 학습시킨 모델 불러와서 돌리기
- 모델 훈련이 완료되면 모델을 로드하고 이미지에 추론을 실행할 수 있습니다:
from ultralytics import YOLO
model = YOLO('path/to/best.pt')
results = model(“image.png”)
print(results)
5. keypoint를 어떻게 visualize?