※ 고등학생이기 때문에 주변에 이 분야에 실력있는 사람이 없을 뿐더러 공부를 하는 사람도 없기에 구글링과 도서에 의존합니다. 출처는 꼭 밝힙니다. 제가 공부한 것을 작성하기 때문에 틀린 부분도 있을 수 있습니다. 지적해주시면 감사합니다.
저번 글에서 Mean Shift에 대해서 알아보았으니 이번에는 Mean Shift을 이용한 영상 이동체 추적에 관해서 이야기 하겠다.
우선 이 Mean Shift 을 이용한 영상 추적은 히스토그램을 이용한다.
이 글을 읽기 전 히스토그램에 관해서 공부하고 대충 익히고 왔으면 한다. 히스토그램에 대해서부족한 지식으로 포스팅을 해놓았으니 참고하길 바란다.
원래는 추적하고자 하는 대상 물체에 대한 히스토그램과 현재 입력 영상의 히스토그램을 비교해서 가장 유사한 히스토그램을 갖는 윈도우 영역을 찾는 것인데 이렇게 직접 히스토그램을 구하고 비교하다보면 가능한 모든 윈도우 위치에 대해 각각의 히스토그램을 구하고 비교해야하기 때문에 시간이 오래 걸린다고 한다.
그래서 histogram backprojection기법과 Mean Shift 을 결합한 방법을 사용하는 것이 일반적이라고 다크 프로그래머님의 블로그에 써있다..(이렇게 해도 가장 유사한 히스토그램 영역을 찾을 수 있다고 CVPR 2000 논문의 내용이며 그 증명이 나와있다고 한다. 참고 바란다.)
Mean Shift 은 먼저 영상에서 추적할 대상의 영역을 정하고선 해당 영역에 대해서 히스토그램을 구해 저장을 한다. 그리고 입력 영상이 들어온다면
histogram backprojection 을 이용해 입력 영상의 픽셀값들을 확률값(일정한 패턴으로 확률값들이 퍼져있는 것을 확률 분포라고 한다.)으로 변경시켜 이렇게 구한 확률값 분포에 대해 Mean Shift 를 적용하여 물체의 위치를 찾는다. 만약 물체의 크기 변화까지 추적하고 싶다면 대상을 추적해놓은 위치에서 윈도우의 크기를 조절해 가면서 저장된 모델과 히스토그램 유사도가 가장 큰 스케일을 선택하면 된다고 한다.
- 출처 : 다크 프로그래머님의 블로그 -
이것을 쉽게 말하자면
1. 추적하고자 하는 대상의 영역을 정하고
2. 입력 영상을 픽셀값들을 확률값들로 변경시키고 Mean Shift 적용
[그림 1] Mean Shift의 단점 (과장한 사진)
이렇게 Mean Shift에 대해서 생각해 보았을 때 [그림 1]과 같은 경우에는 어떻게 되는지에 호기심이 생겨 이런 저런 검색어로 구글 검색을 해보았지만 이런 경우에는 왼쪽에 대상 영역을 정했다고 가정한다면 왼쪽의 영역에서만 머물게 된다고 한다고 한다.