logo

데이터 만들기

데이터 만들기

어노테이션 툴

  • 오픈소스:
    • LabelStudio
    • CVAT
    • Labelme
    • LabelImg
  • 상용
    • Roboflow
  • autodistill 라이브러리로 Grounded DINO, SAM 등의 모델을 사용하면 초기 작업을 좀 더 빠르게 할 수 있음

LabelStudio

LabelStudio 인터페이스 예시

설치 및 실행

  • 아나콘다 프롬프트에서
  • 설치
pip install -U label-studio
  • 실행
label-studio

회원 가입 및 로그인

  • 회원 가입

LabelStudio 로그인 화면

프로젝트 만들기

  • 프로젝트 만들기

LabelStudio 프로젝트 생성 시작 화면

프로젝트 만들기: 이름 및 설명

  • 프로젝트 이름
  • 설명

LabelStudio 프로젝트 이름과 설명 입력 화면

데이터 불러오기

  • 사용할 이미지 파일을 여기에 끌어다 놓음(Drag & Drop)
  • 프로젝트를 만든 후 나중에 가져올 수도 있음

LabelStudio 데이터 불러오기 화면

레이블링 셋업

  • 경계 상자와 물체 탐지 (Object Detection with Bounding Boxes)

LabelStudio 레이블링 셋업에서 Object Detection with Bounding Boxes 선택

레이블링 인터페이스 설정

  • 레이블 추가
  • X 클릭하여 삭제
  • 경계 상자 선 굵기
  • 확대/축소 허용
  • 확대/축소 버튼
  • 회전 버튼
  • 레이블 표시 위치
  • 레이블 검색창

LabelStudio 레이블링 인터페이스 설정 화면

레이블링 방법

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

LabelStudio에서 경계 상자를 그리는 화면

내보내기

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

LabelStudio 프로젝트 화면의 Export 버튼

LabelStudio Export data 화면에서 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("yolo26n.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 모델을 시도하거나 다른 사전 학습 모델 사용
Previous
물체 탐지 평가
Next
OBB