영상인식과 검출율

영상처리 2013. 1. 28. 16:16

영상에서 사람이나 자동차 등을 잘만 찾을 수 있다면 정말 많은 곳에 유용하게 사용될 수 있을 것입니다. 매장을 드나드는 사람의 수를 셀 때, 운전중 전방의 위험을 알릴 때, 중장비와 인부들이 같이 일을 하는 작업장에서 인부들의 안전을 지킬 때, 사진사 로봇이 자동으로 최적의 구도를 잡을 때 등 통상적인 보안, 모니터링 외에도 그 응용은 무궁무진할 것입니다.




이러한 영상인식 기술에서 얼마나 대상을 잘 찾느냐를 말할 때 흔히 검출율(detection rate)을 가지고 평가를 합니다.  검출율을 측정하는 방법은 한정된 숫자의 테스트 이미지들을 입력으로 주고 검출 알고리즘을 적용한 후 성공적으로 검출된 숫자를 세는 식입니다. 예를 들어, 보행자가 포함된 영상 100장이 있습니다. 각 영상에는 보행자가 1명만 있을 수도 있고 또는 여러 명이 포함되어 있을 수도 있습니다. 그래서, 테스트 영상 100장에 포함된 총 보행자의 수가 200명이라고 해 보겠습니다. 이중 어떤 보행자 검출 알고리즘을 통해 검출된 보행자가 100명이라고 하면 이 검출 알고리즘의 검출율은 50%입니다.


영상인식 알고리즘의 검출율이 50%라고 하면 그다지 성능이 않 좋은 것처럼 느껴집니다. 그러나, 실시간 비디오에서 생각하면 꼭 그렇지만도 않습니다. 예를 들어, 차량에 탑재된 블랙박스 카메라에 전방 보행자를 실시간으로 인식해서 경보를 해 주는 기능이 내장되어 있다고 해 보겠습니다. 이 블랙박스 카메라는 초당 10 프레임의 속도로 영상을 찍어내며 보행자 인식을 처리해 낸다고 가정하겠습니다. 그렇다면 전방에 보행자가 갑자기 나타났을 때, 위에서 말한 검출율 50%의 영상인식 알고리즘으로 1초 안에 해당 보행자를 감지할 확율은 얼마나 될까요?


정답은 약 99.9%입니다.


어떻게 검출율 50%의 알고리즘이 갑자기 99.9%의 엄청난 알고리즘이 된 걸까요? 그 답은 이 글을 읽는 분들의 몫으로 남기겠습니다.


ps1.

위에서 나온 99.9%는 어디까지나 수학적 계산에 의한 확률로 실제 성능과는 다를 수 있습니다. 보행자가 처음 나타났을 때, 만일 첫번재 영상 프레임에서 검출에 실패했다면 다음 영상 프레임에서도 검출에 실패할 확률은 실제로는 50%가 아니라 훨씬 높은 값일 것입니다. 그 이유는 인접한 영상 프레임들은 서로 유사한 형태를 가지며 또한 인식에 실패한 이유가 보행자 자체가 알고리즘이 인식을 잘 못하는 모습을 띄고 있기 때문일 수 있기 때문입니다.


ps2.

제가 이 글을 포스팅하는 목적은 수학적 지식이 어떻게 과학적 연구에 활용될 수 있는지를 보여주는 것도 있지만 한편으로는 실시간 비디오 영상에서 검출 알고리즘의 성능을 어떻게 평가할 것인가에 대한 것도 있습니다. 이미지와 같은 정지 영상에서는 통상적인 검출율을 사용해서 성능을 평가하는게 맞겠지만 비디오와 같은 실시간 영상에서는 단위 시간당 검출(감지) 성공률로 성능을 평가하는 것이 좀더 합리적이지 않을까 생각해 봅니다.


by 다크 프로그래머