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

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

학습목표 쓰기

여행 계획을 "제주도를 즐긴다"라고 적으면 다녀와서도 이루었는지 알기 어렵습니다. "한라산 영실 코스를 올라 정상 사진을 찍는다"라고 적으면 사진이 있는지만 보면 됩니다. 학습목표도 같습니다. 수업이 끝난 뒤 "했다, 못 했다"를 눈으로 가릴 수 있게 씁니다.

무엇을, 행동 동사, 조건·기준, 확인 방법의 네 단계를 이은 흐름도

그림의 네 칸을 차례로 채우면 학습목표 한 문장이 됩니다. 예를 들어 "노이즈 낀 그림(무엇을)에 Median 필터를 걸어(조건) PSNR 을 3dB 이상 올릴(기준) 수 있다"이고, 확인 방법은 "출력된 PSNR 두 값"입니다. 여기서 정상 사진이 확인 방법이고, "올라 찍는다"가 행동 동사입니다.

행동 동사 고르기

덜 알맞은 말왜바꿔 쓸 행동 동사확인 방법
이해한다밖에서 보이지 않는다설명한다, 견준다표의 빈칸 채우기
안다얼마나 아는지 잴 수 없다고른다, 찾는다객관식, 짝짓기
익힌다끝이 분명하지 않다만든다, 저장한다저장된 out_ 파일
경험한다해 보기만 하면 끝난다고친다, 줄인다전후 숫자(PSNR, IoU)

학습목표와 확인 방법 짝짓기

학습목표확인 방법
cv2.imread 로 읽은 그림이 None 인지 확인하는 코드를 쓸 수 있다없는 파일 이름으로 돌려 "읽기 실패"가 찍히는지
Otsu 이진화로 정답 마스크와의 IoU 0.9 이상인 마스크를 만들 수 있다채점 함수가 찍은 IoU
윤곽선으로 부품 수를 세어 정답표와 견줄 수 있다정답 개수와 같은지

짧은 예시

학습목표 문장이 "할 수 있다"로 끝나는지, 덜 알맞은 말이 들어 있는지 프로그램으로 걸러 봅니다.

Python
goals = [
    "Median 필터로 잡티를 지워 PSNR 을 3dB 이상 올릴 수 있다",
    "히스토그램을 이해한다",
    "윤곽선으로 부품 수를 세어 정답표와 견줄 수 있다",
]
vague = ["이해", "안다", "익힌다", "경험"]          # 학습목표에 덜 알맞은 말

for g in goals:
    problems = []
    if not g.endswith("수 있다"):                     # endswith: 그 글자로 끝나는가
        problems.append("'~할 수 있다'로 끝나지 않음")
    problems += [f"'{w}' 대신 행동 동사" for w in vague if w in g]
    print("통과" if not problems else "고칠 것: " + ", ".join(problems), "|", g)

주의할 점

  • 학습목표 하나에 동사를 여럿 넣지 않습니다. "읽고, 고치고, 저장할 수 있다"는 셋으로 나눕니다.
  • 목표의 기준(IoU 0.9, PSNR 3dB)은 실습 그림으로 미리 돌려 보고 정합니다. 해 보지 않고 정한 기준은 너무 쉽거나 너무 어렵습니다.
← 이전 절20장 · 좋은 실습 예제의 조건다음 절 →20장 · 실습 데이터를 코드로 만들기