지능형 영상분석 개발을 위한 첫걸음으로 배경학습을 이용한 블롭 검출을 이용해서 트래킹 기능을 구현했다. 이름대로 뭐든 다 찾아 내는 지능형 영상분석 기능을 만들 수 있기를 바라며 "다찾어 1호" 라고 이름지었다. 블롭검출은 GMG 배경 학습을 이용하고 각 프레임간 블롭정합은 각 프레임간 검출 블롭들의 겹침 영역을 비교하여 일정수준 이상의 영역이 겹치면 두 블롭이 유사하다고 판단했다. 따라서 검출 하고자 하는 Object가 일부분 가려지는 폐색 이나 블롭 추출시에 에러로 인해 한 블롭이 두개 내지 다수의 블롭으로 쪼개지는 현상을 어느정도는 커버 할 수 있었다. 위 영상에서 일부 프레임의 네모쳐진 블롭도 사실은 2개로 나눠진 블롭을 이전 프레임의 블롭위치와 비교하여 하나로 합친 결과이다.

 

 칼만 필터를 써볼까도 생각해 봤지만, 오히려 매번 블롭 검출을 통해 state vector의 중요 요소인 블롭 사각형의 위치, 너비, 높이등을 직접 얻을 수 있고 프레임률이 높아 상대적으로 오브젝트의 이동범위가 제한적인 환경이라고 한다면 칼만 필터를 쓰는 것이 오히려 성능을 떨어트리는 결과를 가져 올수도 있다고 판단하여 일단 배제하고 순전히 블롭간 겹침 영역비율만을 이용하여 프레임간 블롭 정합을 했다. (칼만필터 쓰는방법을 까먹기도 했다..)  

 

 배경학습을 이용한 블롭을 추출하는 것을 바탕으로 하다보니 여러 오브젝트들이 겹치거나 해서 블롭 추출시 하나의 블롭으로 검출되면 각각의 오브젝트들을 추적 할 수 없다는 한계가 있다는 점이 아쉽다. (다른 방법이 있는 것으로 알고 있지만 아직 모른다.) N모 VMS업체의 IVS기능을 봐도 여러 오브젝트들이 뭉쳐있는 곳은 하나의 검출 결과로 뭉퉁그려서 표기하는 걸 보면 거기서도 배경학습을 이용한 블롭검출을 하는 것 같다. 다만 거기서는 정합 할 수 있는 블롭을 더이상 찾을 수 없을 때, 이동 경로를 따라 계속 검출 표시를 이동시키는데 이것은 칼만 필터를 이용한 estimation을 하고 있는 것으로 보인다. 지금 이 결과 영상은 칼만 필터를 쓰지 않았지만 FPS가 낮은 환경이거나 물체의 이동속도가 매우 빨라 블롭 겹침만으로 블롭간 정합하기가 어려울 때에는 칼만 필터를 적용해야할 필요성이 있을 것 같다.

 

 전혀 모르던 분야를 시작해서 이제 발걸음을 떼고 있다. 구현한 트래킹 수준은 거의 한 1990년대 초반 수준인것 같아 부끄럽다. 하지만 비로소 나름 구색을 갖춘 기능 구현이라는 점에서 스스로 의의를 찾아본다. 부디 지치지 않고 꾸준히 정진해서 좋은 성과를 얻을 수 있다면 좋겠다.

 

7월 24일 저녁 12시 39분

 

 

Posted by 굿쟌
,