OpenCV 비전 실무20장 · 교육 콘텐츠 설계와 종합 실습3 / 21← 이전목차다음 →MetaContents

20장. 교육 콘텐츠 설계와 종합 실습

좋은 실습 예제의 조건

요리 수업 첫날에 "한정식 열두 가지 만들기"를 시키는 강사는 없습니다. 첫날은 계란말이 하나만 합니다. 다 만들면 접시에 담긴 모양이 바로 보이고, 강사가 미리 만들어 둔 완성품과 견줘 볼 수 있습니다. 재료는 1인분이라 10분이면 끝나고, 집에 가서 아침 반찬으로 바로 만들어 먹을 수 있습니다. 좋은 OpenCV 실습 예제도 이 다섯 가지를 갖춥니다.

한 가지만, 눈에 보인다, 정답이 있다, 작고 빠르다의 네 조건을 나란히 놓은 비교 그림

그림의 네 상자가 좋은 예제의 조건이고, 아래 띠에 다섯째 조건인 "실제 일과 이어진다"를 적었습니다. 여기서 계란말이 하나가 "한 가지만", 접시의 모양이 "눈에 보인다", 완성품과 견주기가 "정답이 있다", 1인분 10분이 "작고 빠르다", 아침 반찬이 "실제 일과 이어진다"입니다. 비유가 맞지 않는 곳도 있습니다. 요리는 맛을 보는 사람마다 평가가 다르지만, 영상처리 실습은 정답과 숫자로 견줄 수 있어 평가가 훨씬 분명합니다.

다섯 조건과 이 교안의 예

조건뜻이 교안에서 그렇게 한 곳
한 가지만한 실습에서 새 기술은 하나만 다룬다9장에서는 침식, 팽창, 열기, 닫기를 실습마다 하나씩 다뤘다
눈에 보인다처리 전후를 그림으로, 효과를 숫자로 보인다6장의 비교 격자와 PSNR
정답이 있다맞았는지 스스로 잴 수 있다8장의 정답 마스크, 11장의 정답 경계, 17장의 mistakes.csv
작고 빠르다그림은 작게(320×240 이하), 몇 초 안에 끝난다이 교안의 그림은 한 장에 30KB 이하다
실제 일과 이어진다현장에서 볼 법한 소재를 쓴다영수증(8장), 컨베이어 부품(12장), 주차장(15장)

짧은 예시

실습 계획 하나를 사전에 적고, 다섯 조건을 하나씩 따져 봅니다.

Python
# 내가 만들 실습 하나를 사전에 적는다
plan = {
    "제목": "Median 필터로 소금·후추 잡티 지우기",
    "새 기술": ["cv2.medianBlur"],          # 새로 배우는 함수 목록
    "전후 그림": True,                       # 처리 전후를 나란히 보이는가
    "정답": "잡티 넣기 전의 원본",            # 견줄 정답이 있는가
    "그림 크기": (320, 240),
    "현장 소재": "부품 사진",
}

# 다섯 조건을 True/False 로 따진다
checks = {
    "한 가지만": len(plan["새 기술"]) == 1,
    "눈에 보인다": plan["전후 그림"],
    "정답이 있다": bool(plan["정답"]),
    "작고 빠르다": plan["그림 크기"][0] <= 320 and plan["그림 크기"][1] <= 240,
    "실제 일과 이어진다": bool(plan["현장 소재"]),
}
for name, ok in checks.items():
    print(f"{name:10} {'통과' if ok else '다시 보기'}")
print("통과한 조건:", sum(checks.values()), "/ 5")   # 결과: 5 / 5

주의할 점

  • "작고 빠르다"를 지키려고 그림을 너무 작게 줄이면 효과가 안 보입니다. 320×240 정도면 노이즈와 경계가 눈에 잘 띕니다.
  • 한 실습에 새 기술을 둘 넣으면, 결과가 이상할 때 어느 쪽 탓인지 수강생이 가리지 못합니다.
← 이전 절20장 · 용어 짚고 가기다음 절 →20장 · 학습목표 쓰기