Warm-up

실무에서는 하드웨어의 한계 혹은 데이터 양의 한계로 딥러닝을 활용하지 못 하는 회사가 많으며, 이런 경우에는 머신러닝을 주로 사용하며, 여전히 전통적인 컴퓨터 비전을 사용하는 회사도 있다.


Content


Wrap-up

이미지 데이터를 다룰 때는 3차원 배열인 BGR 형식의 컬러 이미지가 사용되며, cv2.imshow() 함수로 이미지를 출력하고, VideoCapture()를 통해 웹캠 영상을 실시간으로 불러올 수 있습니다.

이때 키보드 입력은 ord()로 아스키 코드로 인식하고, 마지막에는 반드시 release()destroyAllWindows()로 종료한다.

이미지를 효율적으로 처리하기 위해선 컬러 데이터를 회색조로 변환하는 전처리가 자주 사용되며, 이는 BGR 각 채널에 가중치를 주어 사람의 시각에 기반한 밝기를 중심으로 변환한다.

이진화를 통해 특정 임계값 이상만 남기고 나머지는 제거하는 마스크 이미지도 많이 활용되며, bitwise_and() 연산으로 원하는 영역만 추출할 수 있다.

윤곽 감지는 findContours()를 통해 이진화된 이미지의 외곽을 찾는 방식이며, 글자 간 간격이 있는 경우엔 여러 개로 인식되는 한계가 있으나, boundingRect()를 통해 윤곽을 감싸는 사각형을 빠르게 계산할 수 있습니다.

실습에서는 Haar cascade 같은 전통적인 검출 기법도 다루지만, 이는 예측력이 떨어지는 편이며, 보다 성능이 우수한 SSD(dnn 기반)의 경우, blob 형태로 변환된 데이터를 입력으로 받아 예측을 수행합니다.