OpenCV 비전 실무19장 · Vision 데이터 파이프라인12 / 21← 이전목차다음 →MetaContents

19장. Vision 데이터 파이프라인

파이프라인 점검 체크리스트

비행기 조종사는 이륙 전에 체크리스트를 한 줄씩 소리 내어 읽으며 확인합니다. 수천 번 날아 본 조종사도 같은 목록을 씁니다. 익숙할수록 한두 가지를 빠뜨리기 쉽기 때문입니다. 파이프라인도 처음 돌린 뒤와 기준을 바꾼 뒤에 같은 목록으로 훑어봅니다.

입력, 단계, 출력, 다시 돌리기의 네 갈래를 나란히 놓은 비교 그림

그림의 네 카드가 점검의 갈래입니다. 입력이 맞는지(폴더, 확장자, 정답표), 단계마다 통과 수가 말이 되는지, 출력 그림을 눈으로 보았는지, 다시 돌려도 같은 결과가 나오는지 봅니다. 여기서 조종사의 연료·날개·계기판 확인이 각 카드이고, 소리 내어 읽는 일이 아래 체크리스트입니다.

체크리스트

통과 수 점검표

점검이상한 신호의심할 곳
수집 수가 0그림을 하나도 못 모음작업 폴더, 폴더 이름, 확장자 대소문자
읽기에서 많이 빠짐절반 넘게 깨짐내려받기가 끊겼거나 다른 형식(heic 등)
흐림에서 많이 빠짐정상 그림까지 탈락blur_min 이 데이터에 비해 너무 큼
중복에서 많이 빠짐서로 다른 그림이 중복으로hash_max 가 너무 큼
추론 상자 수가 0모델이 아무것도 못 찾음가중치 경로, 다듬기 크기, conf

짧은 예시

Python
# 단계별 남은 수가 줄거나 같은지 자동으로 확인한다
counts = [("들어온 그림", 24), ("읽기", 22), ("밝기", 21), ("흐림", 20), ("중복", 18), ("다듬기", 18)]
problems = [(a, b) for (a, x), (b, y) in zip(counts, counts[1:]) if y > x]
print("늘어난 단계:", problems if problems else "없음")       # 결과: 늘어난 단계: 없음

# 한 단계에서 절반 넘게 빠지면 알린다
for (a, x), (b, y) in zip(counts, counts[1:]):
    if x > 0 and (x - y) / x > 0.5:
        print("확인 필요:", b, f"{x} → {y}")
print("점검 끝")                                              # 결과: 점검 끝

이런 자동 점검은 체크리스트의 일부를 코드로 옮긴 것입니다. "상자가 부품에 맞는지"처럼 눈으로만 볼 수 있는 항목은 코드로 대신할 수 없습니다.

주의할 점

  • 체크리스트는 한 번 만들고 끝이 아닙니다. 파이프라인에서 실수가 나올 때마다 그 실수를 막는 항목을 한 줄 더합니다.
  • 결과가 너무 좋아 보여도 점검합니다. 중복 그림이 남아 있으면 같은 부품을 두 번 세어 개수가 부풀려집니다.
← 이전 절19장 · 기록과 재현다음 절 →19장 · 실습 지도