Computer Vision2013. 4. 13. 14:52

캠으로 찍고 있는 동영상에서 내가 가지고 있는 bmp파일과 비슷한 부분을 어떻게 찾아내느냐...

 

뭐 템플릿 매칭에 대한 많은 논문과 알려진 기술들이 많지만.. 그리고 OpenCV에 쉽게 구현까지 되어있지만..

 

이미 알려진 기술을 사용하는 법도 물론 중요하지만 제가 아직 학생이라 그런지 알고리즘을 배우거나 실제 구현하는거는 나쁘지 않다고 봅니다.

 

그렇다고 SURF나 SIFT같은 기술을 그대로 구현하는건 제가 나가는 영상처리 대회의 취지하고도 안맞고 해서 다른 알고리즘을 계속 생각하고 있었는데.. 문득 떠오른게 이 패턴매칭..!!

 

될지 안될지 긴가민가했는데 일단 해보고 알 일이니까 (실패해도 좋은 경험이니까) 일단 해보기로 했습니다

 

 

캠으로 계속 찍고 있는 사진에서 이 그림을 찾을겁니다 (제가 자주가는 미용실 마크입니다...ㅋ) (100x100 입니다)

 

일단 저 노란부분(y=50)의 픽셀만 뽑아서 상승, 하강, 유지의 패턴을 추출해 보겠습니다.

 

  (이하 빨간패턴)

 

흰부분은 높고 검은부분은 낮게 나오죠?

 

그리고 저 빨간 점들은 제가 만든 알고리즘으로 추출한 패턴들입니다.

 

이제 이 패턴을 캠 영상하고 비교를 해야겠죠?

 

 

(이하 초록패턴)

원본 영상의 어느 한 줄의 픽셀만 뽑아서 같은 알고리즘을 통과시킨 그림입니다. 마찬가지로 초록 점이 추출된 패턴들이구요

 

초록패턴 중간에 빨간패턴과 비슷한게 보이시죠? 이 부분을 찾는게 제 아이디어 입니다 ㅋ

 

프로토타입으로 만든 결과를 보시면 

 

머리가 개털처럼 나왔네요.. 눈도 퀭한게.. ㅠ  암튼...

 

정확도가 좀 떨어지는데 가로방향 한줄로만 해서 그런거 같아요

 

각 줄에 매칭되는 범위를 조금 늘리고 가로방향 3줄, 세로방향 3줄로 해서 총 6개의 매칭 분포가 많은 부분을 찾으면 좀 더 정확도가 올라갈거 같아요

 

그리고 제 아이디어의 단점이 회전시키면 못찾는건데 이것도 좀 연구를 해봐야겠네요

 

그래도 가능성이 어느정도 보입니다 패턴의 매칭이라서 픽셀단위 매칭처럼 오래걸리지도 않고..

 

일단 해봐야 알 일이죠 될지 안될지는.. ㅋ  

 

 

- 7월 11일 추가

 

가로세로 각각 3줄씩 매칭을 해봤는데 어느 한 부분도 매칭이 안되더군요.. 매칭을 허용하는 범위를 대폭 늘렸더니 쓸데없는거까지 잡고..

 

그래서 최대한 범위를 적당히 수정해봤는데 원하는 부분도 잘 찾지만 다른부분도 잘 찾아서 문제.. ㅋ

 

과거 프레임 몇 개를 저장해두고 많이 나오는 부분을 찾으려고도 해봤지만 실패.. ㅋ

 

결국 대회는 다른 팀원이 구현한 SURF로 나갔네요.. 하지만 여러 가능성을 보았으므로 나쁘지 않은 시도였습니다.ㅋ



 - 14년 3월 6일 추가


지난 글을 보다 문득 든 생각이.. 복잡한 조건문으로 도배하지 않고 1차미분, 2차미분을 사용해서 그래프의 극값을 구할 수 있겠단 생각이 드네요.


이미 극값을 특징점으로 이용하는 알고리즘을 어디선가 본거 같긴 하지만.. 단독으로 사용할만 한건 아닌거 같네요.. 다른 특징점과 같이 사용하면 좋을 것 같다는 생각을 해봅니다.



Posted by 너를위한노래