본문으로 건너뛰기

M12.03 · 라벨링·데이터 품질·YOLO 계열 검출 학습

단위별 목표·권장 선수와 자료 준비 상태를 확인하고, 공개된 본문과 활동을 읽고 준비 상태를 확인할 수 있습니다.

전체 커리큘럼

학습 안내

본문을 읽고 장비 없는 기본 실습·세 확인 문제와 해설로 이해를 확인하세요.

예상 학습 시간: 미정. 이 페이지 방문이나 자료 열람으로 완료·숙달을 자동 부여하지 않습니다.

현재 경로·이전·다음 단위 확인 ↓

학습 목표

  • 검출의 클래스/가림 정책과 정규화 상자 포맷을 설명하고 가상 픽셀 상자를 라벨로 변환한다.
  • 입력 resize/pad와 라벨 변환을 계산하고 누락·불일치·그룹 중복의 데이터 품질 결함을 진단한다.
  • YOLO 계열의 가상 학습 계획에 모델/API·자료·권리·평가 조건을 기록하고 실제 검증 전의 주장 범위를 판정한다.

아래 설명·실습·문제로 각 학습 목표를 확인하세요.

권장 선수

M11의 학습/분할/지표와 M12.01~02의 영상/좌표 변환이 선수다. 기본은 가상 라벨과 학습 명세의 종이 검사다. ultralytics는 로컬에 없으며 설치/가중치 다운로드·실제 학습/탐지를 수행하지 않는다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

세 목표에 대응하는 검수된 설명·예제를 읽습니다.

라벨 정책이 학습 목표를 만든다

검출 학습은 영상의 물체 클래스와 상자를 감독 목표로 사용한다. 같은 물체를 보더라도 무엇을 라벨링하는지 합의가 없으면 손실이 모순된 목표를 따라간다. 예를 들어 cup과 mug를 합칠지, 손에 가린 컵을 보이는 범위로 둘지 전체 모양을 추정한 상자로 둘지 정한다. 이 단위의 가상 정책은 보이는 범위를 영상 안에서 감싼 상자를 쓰며, 클래스는 0=cup/1=tool로 고정한다. 다른 자료의 amodal/가림 정책과 같다고 가정하지 않는다.

관심 물체가 없다고 확인한 음성 영상과 아직 주석하지 않은 영상은 다르다. 빈 라벨을 의도된 배경으로 사용할 수 있지만 미완료 주석을 그렇게 처리하면 실제 컵이 배경인 것처럼 학습될 수 있다. label_status와 검토자/개정·가림/작은 물체/반사/잘림 정책을 남긴다. 자동 라벨이 점수가 높다는 이유만으로 정답이 되지는 않는다. 원본과 overlay를 눈으로 대조하고 어려운 조건의 일부를 독립적으로 재검토한다.

같은 상자를 서로 다른 숫자로 쓴다

Ultralytics의 일반 검출 텍스트 라벨은 한 물체에 class x_center y_center width height 형식을 쓴다. 클래스 번호는 0부터 시작하며 네 기하 값은 영상 너비/높이로 정규화한 비율이다. 점수나 3차원 깊이를 이 다섯 열에 넣지 않는다. 공식 검출 포맷의 클래스 이름/파일 경로 구성과 함께 확인한다.

원본 영상 너비 W=1000/높이 H=500 pixel, 상자 모서리는 xmin=400/ymin=150/xmax=600/ymax=350이라고 하자. 반열린 연속 좌표의 폭/높이를 쓰고+1은 더하지 않는다. 중심은(500,250), 크기는(200,200) pixel이다. 정규화한 중심은(0.5,0.5), 폭은 200/1000=0.2, 높이는 200/500=0.4이므로 라벨은 다음과 같다.

0 0.5 0.5 0.2 0.4

폭/높이에 같은 분모 1000을 쓰면 비정사각형 영상의 높이가 틀린다. 원본 픽셀의 모서리 좌표를 정규화 중심 포맷이라고 이름만 바꾸어 저장해도 안 된다. 클래스 번호의 정수/범위와 이름표, 유한한 좌표/양의 폭·높이를 검사한다. 이번 ‘보이는 범위’ 정책에서는 중심±반크기로 복원한 모서리도 0~1 안이어야 한다. cx=0.9/w=0.4는 각각 0~1에 있어도 오른쪽 끝 1.1이므로 이 정책에 맞지 않는다. 도구의 자동 clipping이 있다면 원본 결함을 숨겼는지 기록한다.

전처리 후 정답도 같은 곳에 있어야 한다

가상 letterbox는 원본 비율을 유지해 줄인 뒤 남는 영역을 padding으로 채운다. 이번에는 1000×500을 640×640에 넣되 배율s=0.64, 실제 영상 640×320, 위/아래 padding160 pixel로 명시한다. 좌표는 u'=0.64u/v'=0.64v+160이다. 실제 라이브러리의 auto padding/stride/반올림 옵션을 재현한 결과가 아니라 주어진 교육용 변환이다.

상자와 영상은 함께 변환한다: 원본 영상/라벨 → Resize/Crop/Letterbox → 같은 변환을 정답에도 → 학습/평가.그림 원본 크기로 보기

그림 M12.03-1. 각 칸은 서로 다른 역할/근거다. 아래 방향은 자료/처리의 연결이며 실제 성공을 자동으로 보장하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.

원래 상자는 x=256~384/y=256~384, 중심(320,320), 크기 128×128이 된다. 640으로 정규화하면 라벨은(0.5,0.5,0.2,0.2)다. 원본의 높이 0.4를 그대로 두면 새 영상에서 높이 256 pixel인 다른 상자가 된다. 단, 정규화만 필요하고 영상 변환이 없는 상황에서 라이브러리가 입력 라벨을 다시 변환하는지까지 확인한다. 미리 변환한 라벨을 같은 변환에 두 번 통과시키지 않는다.

원본/변환 영상·상자 overlay를 몇 장 함께 보면 채널/방향/회전·padding과 class 매핑 오류를 발견할 수 있다. 잘라내기/뒤집기/모자이크 같은 증강도 라벨과 함께 변환하고, 작은/부분 가린 물체가 어떻게 남는지 확인한다. 이미지가 예뻐졌다는 판단만으로 라벨 좌표가 맞다고 승인하지 않는다. 증강본은 M11.03의 원본 episode/물체 그룹을 따라 분할하여 train/validation/test에 근접 복제본이 섞이지 않게 한다.

YOLO라는 이름보다 실험 계약을 기록한다

YOLO 계열에는 서로 다른 모델/구현과 세대가 있다. 하나의 아키텍처/출력 후처리/API가 모든 계열에 동일하다고 말하지 않는다. 이 설명에서는 공식 YOLO11 문서를 인터페이스 예로 확인했으며 최신 모델 구매/성능 추천이 아니다. 공식 Python 예의 YOLO(...).train(data=..., epochs=..., imgsz=...)는 모형·자료·학습 조건을 넘기는 호출이다. 코드가 시작된다는 사실이 라벨 품질이나 작업 성공의 증거가 되지는 않는다.

실제 실행을 선택할 때는 패키지 버전/코드 commit, 모델 구성과 초기 가중치의 정확한 파일/해시, task 종류·클래스 이름 순서, train/validation/test manifest를 먼저 고정한다. .yaml 모형 정의와 .pt 가중치의 의미, 사전학습에서 시작하는지 처음부터 학습하는지도 기록한다. 이름이 비슷한 분류/분할 모델을 검출 모델이라고 쓰지 않는다. data 설정의 경로/names, imgsz와 실제 전처리, batch/device·seed/epoch·optimizer/학습률·증강·출력 경로를 남긴다.

기본 실습은 이 명세를 읽는 활동이며 설치나 학습 명령을 요구하지 않는다. 실제 환경을 만들지 않았으므로 임의의 최신 패키지 번호를 검증된 재현 조합처럼 고정하지 않는다. 학습을 실행했다면 선택된 checkpoint/검증 기준과 로그·실패 사례/최종 시험 지표/추론 비용을 보존해야 한다. 표시된 상자 몇 개만으로 새로운 물체/환경의 검출 성능을 실증했다고 하지 않는다.

코드와 자료의 사용 조건도 독립된 출처다

공식 Ultralytics 저장소의 LICENSE는 AGPL-3.0 문서를 담고, 공급자는 별도의 enterprise 조건도 안내한다. 이것만으로 임의 제품/가중치/자료의 모든 사용 조건을 판단하지 않는다. 사용할 코드 개정의 라이선스, pretrained 가중치의 모델 카드/조건, 원본 이미지/라벨의 출처·촬영/재배포 조건을 각각 기록한다. ‘다운로드 가능’이나 ‘오픈소스’라는 단어가 모든 사용/배포 방식이 동일하다는 뜻은 아니다. 여기서는 실제 배포/구매를 진행하지 않는다.

자료의 파일명/클래스 정의·주석 정책/개정과 split, 변환 코드, 모델/API/가중치 및 평가 조건을 한 run에 연결하면 결과의 원인을 설명할 수 있다. 기존 5.8 학습 기록의 지도학습 절차를 검출 과제에 옮기되 상자와 행동의 출력 계약을 혼동하지 않는다. 아래 자료는 실제 YOLO 학습 결과가 아니다.

학습 범위와 한계

기본 설명·예제가 준비되었습니다. 기존 보충 자료의 범위와 구별하세요.

실습 필수

장비 없는 실습을 수행하고 관찰·계산 근거를 해설과 비교합니다.

입력은 위 원본 영상/상자와 class 목록, 가상 letterbox 변환이다. 추가 라벨은 class=2와(cx=0.9,cy=0.5,w=0.4,h=0.2), 미완료인데 빈 라벨로 저장된 영상이다. 추가 분할표에는 원본 영상 A가 train, A의 회전 증강본이 validation에 들어 있다. 검출 학습 run 명세에는 모델명만 있고 코드/가중치/자료 개정·사용 조건은 없다.

  1. 원본 상자를 라벨로 바꾸고 class/가림/음성 정책을 설명한다.
  2. letterbox 뒤 상자/정규화 크기를 계산하고 추가 라벨/미완료 주석·split의 결함을 찾는다.
  3. 학습 전 보완할 버전/API·자료/권리·평가 기록을 제안하고 아직 주장할 수 없는 결과를 적는다.

관찰은 라벨 계약·변환/품질·실험 기록으로 나눈다. 막히면 원본 모서리→중심/크기→정규화를 그린 뒤 새 영상 좌표를 별도로 계산한다. 설치/다운로드/학습은 필요하지 않다.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

기본 실습은 장비 없이 수행합니다. 실제 장비·GPU 실증을 완료했다는 뜻은 아닙니다.

평가·해설 필수

목표별 세 서술문항에 답하고 해설·판정 기준으로 자기검토합니다.

확인 문제 Q1

800×400 영상의 상자(200,100,400,300)를 class1로 표현하라. 중심/폭/높이의 정규화 분모와 class 이름 목록이 필요한 이유도 설명하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q2

본문 letterbox에서 원본 높이 비율 0.4를 새 640×640 라벨에 그대로 썼다. 기대 높이와 잘못된 높이는 각각 몇 pixel인가? cx=0.9/w=0.4와 미완료 빈 라벨의 문제도 설명하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q3

YOLO라는 모델명과 높은 훈련 지표만 기록됐다. 같은 실험을 재현하고 배포에 사용할 조건이 충족됐는가? 필요한 버전/자료/사용 조건·검증 기록을 제안하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

서술답안과 해설이 준비되었습니다. 자기검토와 학습 완료는 숙달 인증과 별개입니다.

참고 자료

학습 확인

실습과 세 문항의 답안을 해설과 비교한 뒤, 이 단위의 학습 완료를 직접 기록할 수 있습니다. 자기검토·학습 완료는 자동 채점이나 숙달 인증과 별개입니다.

실습1개·확인 문제3개의 답안을 저장하고 각각 자기검토를 기록하세요.

학습 이동

학습 단계 순서 · 공통 과정 이후 전문화 선택

전체 목차로 돌아가기 →

신규 활동의 답안은 이 브라우저의 통합 학습 기록에 저장합니다. 기존 화면의 답안·진도는 원래 키를 유지합니다. AI 강사는 현재 단위의 준비 상태·부족한 범위와 연결된 실제 자료를 참고합니다.