OpenCV 비전 실무18장 · OpenCV 전처리와 YOLO 연계20 / 21← 이전목차다음 →MetaContents

18장. OpenCV 전처리와 YOLO 연계

정리

YOLO 쓰기, 맞힘 재기, 전처리와 연계의 세 칸으로 18장을 요약한 인포그래픽
  • ultralytics 로 YOLO("yolo11n.pt") 를 불러 predict 하면 물체마다 상자(xyxy), 신뢰도(conf), 클래스(cls)를 돌려줍니다. 배열은 .cpu().numpy() 로 꺼내고, 상자는 OpenCV 의 rectangle, putText 로 직접 그립니다.
  • 사전학습 모델 yolo11n 은 COCO 의 80가지 물체를 압니다. 우리 부품을 찾게 하려면 model.train(data="out_ch17_yolo/data.yaml", epochs=30, ...) 으로 전이 학습을 하고, 결과는 out_ch18_runs/parts/weights/best.pt 에 남습니다.
  • 학습 기록 results.csv 에서 손실은 줄고 mAP50 은 올라야 합니다. 교안 PC 에서 5.7분 학습하는 동안 손실은 계속 줄었고, mAP50 은 12번째 에포크부터 0.995, 마지막 mAP50-95 는 0.955 였습니다.
  • IoU 는 겹친 넓이 ÷ 합친 넓이입니다. 넓이 8000 인 두 상자가 5600 겹치면 5600 ÷ (8000 + 8000 − 5600) = 0.538 이고, 0.5 이상이며 클래스가 같으면 맞힌 것입니다.
  • 정밀도는 맞힌 것 ÷ 찾은 것, 재현율은 맞힌 것 ÷ 정답입니다. 학습한 모델은 검증용 11장에서 맞힌 것 26, 헛것 1, 놓친 것 0 으로 정밀도 0.963, 재현율 1.0, F1 0.981 이었습니다. 사전학습 yolo11n 은 그린 과일 그림에서 하나도 찾지 못했습니다.
  • 학습 때 본 적 없는 조건이 점수를 떨어뜨립니다. 학습용에 어두운 그림이 섞여 있어 어둡게 한 사진은 F1 1.0 을 지켰지만, 잡음은 F1 을 0.815 로 떨어뜨렸습니다(실습 5). 잡음 낀 사진에 밝기만 올리면 0.873 에서 0.737 로 더 떨어지고, 잡음을 먼저 줄이면 0.920 이 됩니다(프로젝트).
  • 전처리를 견줄 때는 같은 모델, 같은 그림, 같은 채점을 두고 조건이나 처리 하나만 바꾸며, 잡음의 씨앗을 고정합니다. 블러를 세게 걸면 원본과의 MAE 는 작아져도 경계가 사라집니다(경계 칸 754 → 110). 이 장의 부품에서는 15×15 블러도 점수가 떨어지지 않았지만, 데이터가 바뀌면 달라질 수 있으니 늘 점수로 확인합니다.
← 이전 절18장 · 프로젝트 1 — 전처리 전후 YOLO 성능 비교 보고서다음 절 →18장 · 확인문제와 해답