영상인식과 검출율

영상처리 2013.01.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 다크 프로그래머

  • 노력파 2013.07.02 21:52 신고 ADDR 수정/삭제 답글

    처음 읽었을때는 잘 몰랐는데 오늘 다시 읽어보니가 무슨뜻인지 알것 같네요
    앞으로 알고리즘을 평가하는데 있어서 기준을 잘 생각하고 결과를 봐야겠습니다.

    • BlogIcon 다크pgmr 2013.07.09 09:47 신고 수정/삭제

      정말 초창기때 썼던 글인데.. 다시 보내 새삼스럽네요 ^^. 님 댓글을 읽다보니 생각나는게 있습니다. 원론적인 얘기이긴 하지만 똑같은 알고리즘도 어디에 활용되느냐에 따라서 그 가치가 완전히 달라질 수 있다는.. 그 가치를 창출할줄 안다면 좋겠네요 ^^

  • 2013.07.16 16:07 ADDR 수정/삭제 답글

    비밀댓글입니다

    • BlogIcon 다크pgmr 2013.07.15 10:24 신고 수정/삭제

      이항계수 10Cn을 붙이고 ^n을 ^10으로 고치고 n=1~10으로 하면 맞을 것 같습니다. 참고로, 전 p=1-모두실패할확률로 계산했습니다.

  • 산저기 2015.06.09 11:13 신고 ADDR 수정/삭제 답글

    수학적인 확률로 보면 10번 모두 실패할 확률은 1/1024가 맞긴 한데
    말씀하신대로 첫 프레임에 실패한 경우 그 원인에 따라 10번 모두 실패해버릴 가능성이 높겠군요
    중요한점은 10프레임 안에 디텍터가 검출할 수 있는 조건으로 변할 확률인것 같은데
    이건 수학적으로 계산되지 않을테고...
    결국 결과 확률은 그저 50%에서 약간 높은 정도만 되지 않을까 싶습니다.

  • 신생아 2017.09.30 13:32 신고 ADDR 수정/삭제 답글

    항상 잘 보고 있습니다.

    여기서부터 정주행 하려고 합니다. ㅎㅎ