19장. Vision 데이터 파이프라인
정리
- 파이프라인은 수집 → 거르기 → 다듬기 → 추론 → 보고의 다섯 단계를 앞 단계의 출력이 다음 단계의 입력이 되게 이은 것입니다. 1장의 다섯 단계에서 학습에만 쓰는 늘리기를 빼고 보고를 붙였습니다.
- 단계 함수는 한 가지 일만 하고, 항목 사전의 목록을 받아 같은 꼴로 돌려주며, 뺀 항목은 단계와 이유를 기록합니다. 그래서 동영상에도 수집 함수 하나만 바꿔 같은 파이프라인을 겁니다.
- 기준값은 CONFIG 사전 하나에 모으고 json 으로 저장합니다. 부품 그림은 정상 그림도 흐림 점수가 64~275 라, 16장의 100 대신 30 을 썼고, 평균 해시 기준도 서로 다른 그림의 가장 가까운 거리 4 를 보고 2 로 정했습니다.
- 입고 그림 24장 가운데 읽기 2, 밝기 1, 흐림 1, 중복 2장이 빠져 18장이 남았고, 정상 그림은 하나도 잘못 빠지지 않았습니다.
- 다듬기는 학습 때와 같은 조건(320×240)으로 맞추고, 필요한 그림에만 감마 0.7(평균 밝기 43.4 → 72.6)과 5×5 가우시안 블러(잡음 점수 7.57 → 0.59)를 겁니다. 줄인 비율을 적어 두었다가 상자를 원래 좌표로 되돌립니다.
- 통과한 18장에서 57개를 찾아 정답 53개를 모두 맞혔습니다(정밀도 0.930, 재현율 1.000). 틀린 4개는 bolt 위에 겹친 신뢰도 0.53 이하의 부분 상자였고, 동영상에서는 12프레임 가운데 8프레임의 개수가 맞았는데 어긋난 곳은 모두 가장자리에 걸친 부품이었습니다. 시간은 추론이 거르기보다 수십 배 오래 걸려 가장 큰 병목이었습니다.
- 같은 입력과 설정이면 OpenCV 단계는 같은 결과를 냅니다. 무작위로 고르는 곳은 씨앗을 고정하고, 걸린 시간은 컴퓨터마다 다르니 단계끼리의 비교로 봅니다.