산업PoC제품2025-10 ~ 2026-04
밤 품질 결함 검출 비전 AI
단독 개발

지표
- mAP50 0.723납품 YOLOv11m, 3,739장internal-exp
- Precision 74.4% / Recall 66.3%검증셋internal-exp
- Normal F1 0.913DINOv3 multi-label 분류internal-exp
페인
밤 선별은 사람 눈에 의존한다. 작업자마다 기준이 다르고, 물량이 몰리면 속도와 일관성이 같이 떨어진다. 결함도 한 종류가 아니라 여러 형태가 한 알에 겹쳐 나타나서, 단순 양/불 판정으로는 부족했다.
접근
분류와 검출을 분리했다. 결함 종류 판정은 DINOv3 백본 multi-label 분류로, 위치 검출은 YOLOv11m로 풀었다. 데이터가 3,739장으로 많지 않아 5-fold CV로 일반화 성능을 확인했고, Grad-CAM으로 모델이 실제 결함 부위를 보는지 검증했다.
지표
- Detection mAP50 0.723 — 납품 YOLOv11m, 3,739장 (
internal-exp) - Precision 74.4% / Recall 66.3% — 검증셋 (
internal-exp) - Normal F1 0.913 — DINOv3 multi-label 분류 (
internal-exp)
검출은 mAP50 0.723에서 정밀도와 재현율이 비슷한 균형을 보였다. 분류 쪽은 정상 클래스 F1 0.913으로, 양품을 놓치지 않는 게 선별 라인에서 우선이라 이 지표를 대표로 잡았다.
스택 표
회고
가장 막혔던 건 데이터였다. 결함 클래스가 불균형하고 표본이 적어, 모델 구조보다 augmentation과 fold 구성에서 성능이 더 갈렸다. Grad-CAM을 붙인 뒤로는 지표만 보고 넘어가던 오판을 줄일 수 있었다. 다음 PoC에는 결함 클래스별 표본을 먼저 맞추고 시작할 계획이다.
시각 자산
YOLO 검출 bbox 오버레이를 커버로, 혼동행렬·클래스별 지표·baseline→retrain 성능 비교 차트를 본문 자산으로 사용.
스택
| OS | Linux |
|---|---|
| Lang | Python 3.10 |
| Lib | timm, Ultralytics, Albumentations, Grad-CAM |
| FW | PyTorch Lightning, Hydra, YOLOv11m, DINOv3 |
| Tech | WandB, uv, 5-fold CV, multi-label |