[OpenCV 3.2] Template Matching with Multiple Objects (다중 물체 찾기)

minMaxLoc 함수를 사용하면 단일 물체 찾기는 편하지만 다중 물체 찾기에 이용할려니 매번 matchTemplate 함수를 반복해서 속도가 상당히 느릴 뿐더러 오인식의 경우가 생긴다.

한 이미지에 대해 대응하는 복수의 물체를 찾을 때는 matchTemplate 결과의 배열 값을 직접 분석하는 방법으로 속도와 인식률을 높일 수 있다.

 

1. 소스 코드


2. 실행 결과

1 : 스페이드, 2: 다이아몬드, 3 : 하트, 4 : 클로버 로 표시

실행 결과 속도와 인식률이 개선되었다.

보완할 점으로 하트와 다이아의 경우 인접한 픽셀 값들이 한계값 내에 있어서 중복하여 표시해주는데 좌표 값 사이를 조정하면 쉽게 해결된다.

개선 후의 matchTemplate 함수의 카드 문양 인식률이 상당히 좋아졌다.

다음은 나란히 배열되는 문양의 위치를 ROI (관심영역)로 지정하고 1부터 A까지의 숫자, 문양을 인식하여 현재 보이는 패의 족보와 확률 값을 계산한다.

영상 인식을 통해 족보와 확률 값이 확립되면 컴퓨터에게 포커 및 여러 카드 게임을 가르치고 딥러닝을 이용하여 인공지능 포커 플레이어를 만들 에정이다.




컴퓨터 비전과 영상 처리에 대해 독학을 하면서 정리한 걸 적고 있습니다.

전공과 무관하며 전문적인 지식이 아니므로 개인적인 의견과 부족하고 틀린 점이 많습니다.

추가 지식 및 잘못된 점을 지적해주시면 공부하는데 많은 도움이 되겠습니다. 감사합니다^^

- 푸어맨


[Reference]

(Template Matching Python) http://docs.opencv.org/3.2.0/d4/dc6/tutorial_py_template_matching.html

[OpenCV 3.2] Template Matching - 유사 이미지 모두 찾기

matchTemplate 함수를 이용하여 유사 이미지를 찾아본다.


1. 소스 코드

matchTemplate 결과 이미지에서 minMaxLoc 함수를 이용하여 가장 유사한 이미지를 찾을 수 있다.

가장 유사한 이미지 공간을 백그라운드 색으로 칠한 후에 matchTemplate 함수를 사용하는 방법으로 유사 이미지를 반복하여 찾는다.


2. 실행 결과

MAX_COUNT를 10으로 지정하여 총 10개의 유사 이미지를 찾는다.

유사한 순으로 9,8,7,...,0을 지정하여 숫자가 높을수록 유사도가 높다.

1) 원본 이미지

2) 다이아몬드 템플렛 이미지

3) 하트 템플렛 이미지

4) 별 템플렛 이미지

matchTemplate 함수는 비슷한 크기의 이미지를 찾을 때 상당히 유효하지만 크기의 차이가 크거나 변환 된 이미지에서 유효하지 않다.




컴퓨터 비전과 영상 처리에 대해 독학을 하면서 정리한 걸 적고 있습니다.

전공과 무관하며 전문적인 지식이 아니므로 개인적인 의견과 부족하고 틀린 점이 많습니다.

추가 지식 및 잘못된 점을 지적해주시면 공부하는데 많은 도움이 되겠습니다. 감사합니다^^

- 푸어맨


[Reference]

[Template Matching] http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html

[Template Similar image] http://stackoverflow.com/questions/34690774/opencv-template-match-similar-object

+ Recent posts