AI카메라 및 딥러닝을 이용한 속도측정

AI카메라 딥러닝 속도측정

AI 카메라딥러닝을 통해 영상에서 자전거와 사람을 인식하는 모델을 사용해 자전거의 속도와 카운트를 체크하여 DB 에 데이터를 쌓아 통행통계를 표출하는 프로그램을 개발한 상태였는데, 한강사업 발주처에서 이후 킥보드(Personal Mobility)까지 인식해줄 것을 요청받아 개발을 진행하게되었다.

한강 통행통계 화면.

hangang

딥러닝을 직간접적으로 경험을해본 사람이라면 알겠지만, 오브젝트 디텍션의 정확도의 관건은 대상을 얼마나 잘 판별하느냐 뿐만 아니라 오브젝트를 사진에서 뜯어내어 하나의 오브젝트로인식하는 것 또한 관건이다.

이점에 있어 킥보드는 판별에 있어 불리한 물건이였다. 그 이유는, 전체적으로 얇은 기둥과 손잡이로 인해 원거리일 경우에, 탑승한 사람과 겹쳐져서 해당 부분만 떼어나면 육안 파악이 힘들며, 킥보드의 밑판이 바닥에 붙어있는 것으로 모자라 땅과 색감이 비슷한 검정이 기본인 물건이기 때문이다.

hangang

딥러닝으로 킥보드의 사진을 분류하는 모델은 만들수는 있겠지만, 실제 필드에서는 지나치게 인지율이 떨어지는 물건이 될 수 밖에 없었다. 그렇기 때문에 이 이슈는 딥러닝을 사용하지 않는 방안으로 해결 할 수 밖에 없게 되었다.

처음 사업에서 요청을 받고 테스트를 하던과정중, 손잡이로 인해 자전거로 인식되기도 하니까 자전거로 인식되었을때 대상의 크기가 작으면 킥보드로 체크해달라는 것이었다.

하지만 어쩌다 한번씩 인식될 뿐더러 크기로 대상을 인식하는 것은 굉장히 큰 문제가 있었다.

  1. 첫째는 이미지에 인식된 대상의 크기는 굉장히 추상적인 데이터라는 것이다. 숫자로 픽셀 넓이가 나오는 명확한 수치이지만, 이 이미지에서 촬영된 크기라는 것은 거리에 따라 매우 유동적이어서 사물의 고정된 크기로 볼 수가 없는 것이다.

    hangang

이것을 통해 대상의 종류를 파악하라는것 자체가 문제가 있었다. 물론 대상의 속도를 측정하는 알고리즘 자체가 카메라가 내려보는 각도를 이용해서 화면에 촬영된 대상의 지면 좌표를 계산해서 속도를 측정하는 만큼 지면좌표를 통해 거리를 파악할 수 있고 이를 통해 측정하면 되지 않겠는가? 라고 할 수도 있었지만 더 큰 문제가 있었으니.

  1. 둘째로 인식이 정말 어쩌다 한번 이루어지는 것이라는 것이다.

    사실상 자전거를 인식하는 모델이 킥보드를 자전거로 오검지 했을 때 측정하라는 것인데, 딥러닝의 오인지 률이 높지도 않을 뿐더러, 위에서 설명했듯 킥보드는 사진에서 잘 잡히지도 않는데 그걸 가지고 무언가 통계를 내라는것 자체가 문제가 있었다.

    결국 현재의 딥러닝으로는 해결 할 수 없는 상황이었고, 한강 발주처 측에서는 반드시 해당 기능을 넣어 줄 것을 요구하였다.

하지만 생각보다 간단하게 위의 문제가 해결되었다.

우리 딥러닝 모델은 사람과 자전거를 인식 할 수 있었고, 킥보드는 인식하지 못하였다.
그리고 속도를 측정할 수 있었다.

그리고 자전거와 킥보드는 15km/h~20km/h의 속도를 유지하는 반면 사람은 보통 4km/h(걷기) ~ 15km/h(달리기)를 유지한다는 것이 합쳐지면,

짜잔! 문제가 해결 되었습니다!

자전거를 탄 사람은 사람과 자전거가 겹쳐져서 인식되고 킥보드를 탄 사람은 사람만 인식이 되니, 속도가 15km/h 이상의 속도를 유지하며 달리고 있는데

사람만 인식이 된다면 킥보드인 것이다.

멈추어 있다거나 한다면 킥보드를 인식할 수 없는 문제가 있었지만, 다행히도 자전거 도로를 달리는 킥보드와 자전거를 측정하는 것이 목표였던 만큼

멈추어 있거나 하는 부분은 애초에 측정할 필요가 없었기 때문에 문제가 되지 않았다.

이렇게 하여 한강 납품 프로그램은 개발이 완료되어 납품 될 수 있었다.

딥러닝은 분명 좋지만 아직은 만능이 아니니, 개발자의 노력이 필요한 부분들은 남아있다고 다시금 느낀 순간이었다.