Skip to main content

물체 탐지 데이터셋 만들기

LabelStudio

설치 및 실행

  • 아나콘다 프롬프트에서
  • 설치
    pip install -U label-studio
  • 실행
    label-studio
  • http://localhost:8080 으로 접속

회원 가입 및 로그인

프로젝트 만들기

  • 이름 및 설명
  • 데이터 불러오기
    • 사용할 이미지 파일을 여기에 끌어다 놓음(Drag & Drop)
    • 프로젝트를 만든 후 나중에 가져올 수도 있음
  • 레이블링 셋업
    • 경계 상자와 물체 탐지 (Object Detection with Bounding Boxes)
  • 레이블링 인터페이스 설정
    • 레이블 추가
    • X 클릭하여 삭제
    • 경계 상자 선 굵기
    • 확대/축소 허용
    • 확대/축소 버튼
    • 회전 버튼
    • 레이블 표시 위치
    • 레이블 검색창

레이블링 방법

  1. 레이블 클릭
  2. 마우스로 경계상자 그림 (왼쪽 위에서 오른쪽 아래로 드래그)
  3. 수정하려면 여기를 클릭

내보내기

  • 프로젝트 화면에서 Export 클릭
  • YOLO with Images 선택

data.yaml 예시

data.yaml 파일을 아래와 같이 만들어 압축 파일 안에 추가

train: images # train 데이터의 폴더
val: images # validation 데이터의 폴더(여기서는 임시로 똑같게)
nc: 1 # 클래스 개수
names: ['clip'] # 클래스 이름 (Label Studio에서 사용한 순서와 동일하게)

미세 조정

  • 설치
    pip install ultralytics
  • colab에 데이터셋 압축 파일 업로드
  • 압축 해제
    !unzip detection-annotation.zip
  • 학습
    from ultralytics import YOLO
    model = YOLO("yolo11n.pt")
    model.train(data="data.yaml", epochs=100)

미세 조정 결과

  • 출력:
    • 각 에폭(Epoch)마다 Loss 값 (객체 감지, 분류, 박스 회귀 등) 감소 확인.
    • Precision, Recall, mAP@0.5, mAP@0.5:0.95 값 상승 확인.
  • 결과 저장 폴더:
    • runs/detect/train/ 폴더에 학습 결과 저장.
    • weights/best.pt: 가장 좋은 성능을 낸 모델 가중치.
    • results.csv: 에폭별 상세 성능 지표.
    • results.png: 학습 Loss 및 mAP 그래프.
  • 그래프 확인:
    • results.png 파일을 열어 Loss가 안정적으로 감소하고 mAP가 증가하는지 확인.
    • 과적합 징후 (Validation Loss 증가, Validation mAP 감소) 확인.

모델 개선 방향

  • 데이터셋:
    • 데이터 부족: 더 많은 데이터를 수집하거나 증강
    • 어노테이션 오류: 라벨링 정확성 재검토 (Label Studio에서 수정).
    • 클래스 불균형: 소수 클래스 데이터 증강.
    • 이미지 품질: 저해상도, 노이즈 문제 확인.
  • 학습 파라미터:
    • 에폭 수(epochs): 더 많은 에폭 학습 (과적합 주의).
    • 학습률(lr): 너무 높거나 낮지 않은지 확인 (조절).
    • 배치 크기(batch): GPU 메모리에 맞춰 최적화.
  • 사전 학습된 모델: 모델 크기: 더 큰 YOLO 모델을 시도하거나 다른 사전 학습 모델 사용