딥러닝

[논문리뷰] 5% 아쉬운 무단횡단 감지 딥러닝. YOLOv4+DeepSORT를 중심으로

lhg010524 2024. 9. 10. 18:49

필자는... 21살 수원역 어지러운 횡단보도 사이에서 무의식적으로 무단횡단을 시도하다 옆에 뻔히 서 있는 경찰에게 적발되어 범칙금 5만 원을 문 아픈 추억이 있다.

 

당시 범칙금을 내 마음 상태는 '앞으로 조심해야겠다가 아닌'

 

이 상태였는데, 성숙해진 필자는 현재 정말 한적한 밤 11시 부근에서 안전을 확인하고 종종 건너는 편을 제외하곤 왠만해서는 잘 지킨다. 2학기를 함께 하고 있는 학회 활동에서 교통 상황에서의 딥러닝 기법 적용을 구상 중이고, '무단횡단을 감지하는 모델을 만들어보면 어떨까?' 하는 기막힌 아이디어.

 

그래서 오늘은 일단 과거 조상들이 어떤 연구를 진행했는지 알아보기 위해 'Jaywalking Detection Deep Learning'이라 검색하면 상단에 나오는 논문 'Real-Time Jaywalking Detection and Notification System using Deep Learning and Multi-Object Tracking'을 리뷰해 보겠다. 

 

시간이 없는 분들을 위해 먼저 간략한 요약본:

 

1. 기존 연구는 단일 도로 구역에서만 설계 및 평가, 알람 기능 제한적

2. 우리는 여러 도로 구역에 동시에 적용할 수 있는 실시간 다중 객체 추적 방식을 제안

3. YOLOv4와 다중 객체 추적 알고리즘 DeepSORT를 사용

 

요 정도 되겠다. 사실 어떻게 데이터 쓰고 연구할지 대강 보이긴 하는데, 공부하는 셈 치고 따라가보자. 

 

이 아저씨들이 연구하게 된 계기는, 뭐 언제나 비슷하다. 기존 연구들이 너무 느리고 부정확했다는 것. 결론부터 이야기하자면, 

이게 처리 무단횡단자를 인식(오른쪽), 운전자에게 알림(왼쪽)하는 방식이고

이게 무단횡단이 발생한 주위 운전자에게 알림을 보낼지 말지 하는 알고리즘이다. 그런데 말이 좀 안 되는게, 이 사람들이 알림을 보내주려면 자신들이 만든 앱을 깔고 있어야 한다고 하는데, 난 핸드폰에 앱을 까는 걸 별로 싫어하기 때문에 실효성이 있을지 모르겠다. 그리고 앱과 컴카메라 ip가 연동되어 있어야 하는데 그럼 전국에 카메라를 설치할 거냐? 그래도 기존 논문과 다르게 '우리는 알림을 보내줘요' 하고 싶었던 거 같은데 지금 여기선 알아도 별로 쓸모가 없으니 그냥 넘어가자. 

 

그럼 이 포스팅에선 뭔 얘기를 할 거냐? 바로 이 사람들이 모델에서 주로 사용한 YOLOv4와 DeepSORT를 얘기할 거다. 그런데 YOLOv4는 얘기 안 할 거다. 왜냐면 내가 알고 있기 때문이다. DeepSort는 처음 들어봐서 공부할 겸 정리할 예정이니 만약에 YOLO를 알고 싶다면 다른 블로그를 참고하길 바란다. 

 

DeepSort란?

 

간단한 알고리즘인줄 알았는데 아니었다. 차근차근 하나씩 봐 보자. 딥소트 이 기술이 전체 작동 원리는 꽤 단순한데 쓰인 기술이 많아서 하나씩 좀 살펴봐야 할 거 같다. 

 

먼저 Kalman Filter.

 

자율주행에서 제일 중요한 건 무엇일까? 바로 주행 중 변수 감지와 주행 제어. 이를 위해선 내가 언제 가고, 어디로 가야 하고, 언제 멈출지 정확하게 적힌 '지도'가 필요하다. 센서와 데이터로 실시간으로 맵을 만드는, 이른바 Mapping이 필요한데, 이때 내가 어디쯤 와 있는지를 알 수 있는 Localization이 필요하다. 

 

인간을 예로 들어보자. 내가 학교에 간다. 대충 우리 집에서 강의실까지 걸어서 15분이 걸리는데, 나는 김치찌개 집이 나오면 '아 10분 더 걸어야 하구나'를 본능적으로 느낀다. 내 안에 내재된 '지도'가 있기 때문이고, 주변 건물(데이터)를 통해 위치 파악이 가능하기 때문이다.

 

하지만 멍청한 로봇은? 자기가 어딨는지 모른다. 그래서 이 멍청한 로봇에게 인간과 비슷한 능력을 부여하기 위해 칼만 필터 라는 것이 사용된다. 

 

칼만 필터는 '과거와 현재의 값을 기준으로, 이전 단계에서 계산한 값을 바탕으로 현재의 값을 계속 업데이트 하는 연산을 통해, 최적값을 추적한다.'

 

뭔 소리지....

 

정확한 알고리즘 설명과 그런 건 따로 검색해서 알아보고, 실용적인 것만 여기서 일단 살펴보자.

 

Predicted state estimate 는 예측한 값(예측 모델)이고, Measurement는 실제 측정값(측정 모델)이다.

Kalman filter는 이렇게 두 모델을 가지고 '더 잘 추측'하기 위해 상태를 업데이트해 나간다.

 

그래도 이해가 잘 되지 않는다고? 당연하다. 나도 https://limitsinx.tistory.com/72

 

[제어시스템공학-4] Kalman Filter(칼만필터) 개념정리(1)

[Control Eng-1] Average Filter(평균필터) https://limitsinx.tistory.com/69 [Control Eng-2] Moving Average Filter(이동평균필터) https://limitsinx.tistory.com/70 [Control Eng-3] Low Pass Filter(저주파 통과필터) https://limitsinx.tistory.com/7

limitsinx.tistory.com

이걸 보고서야 감이 조금 잡혔다. 이 글을 보고 와라. 

 

이제 칼만 필터를 이해한 당신. 하지만 아직도 엄청난 많은 배경지식을 쌓아야 감이라도 잡힌다. 미안하지만 이 페이지에 그 모든 걸 적기엔 내 역량도 딸리고 다른 좋은 자료가 많다. 그러니 이 부분을 한번 읽어보고 오는 것을 추천한다.

https://velog.io/@jody1188/Object-Tracking-Simple-Online-and-Realtime-Tracking-SORT

 

Object Tracking + Simple Online and Realtime Tracking : SORT

0. 먼저 object tracking이란? Object tracking의 순서로는 video가 들어오면 한 부분에 물체가 있다는걸 인식(Object Recognititon)하고 그 물체가 무엇인지(Object Classification)하고 정확한 위치를 나타낸다(Object Lo

velog.io

 

그러면 이제 DeepSort를 살펴보는데, 관련 내용은 이 분의 블로그를 많이 참고했다. 여기까지 보고 오면 DeepSort가 무엇인지 이해할 수 있을 것이다. 

https://gngsn.tistory.com/94

 

DeepSORT, 제대로 이해하기

DeepSORT는 가장 널리 사용되고 있는 객체 추적 프레임워크 중 하나로, SORT(Simple Online and Realtime Tracking)을 보완 확장한 기술입니다. 📚 사전 지식 먼저 다룰 사전 지식은 DeepSORT에서 사용되는 기술

gngsn.tistory.com

왠만하면 내가 읽고 내가 정리하려고 했는데, 정리하다 보니까 이 분들 글을 그대로 복사+붙여넣기 하고 있는 자신을 발견해 그냥 아예 원본을 참고하는 것이 낫다 판단했다. 그래도 이 순서대로 한번 쭉 봐보면 이해가 갈 것이다. 다만 장담하건데 2시간 이상의 여유시간을 확보한 상태에서 공부해라.

 

서론이 좀 많이 길었는데, 결국 이 논문에서 무단횡단자를 감지하는 방법은 다음과 같다. 

 

1. YOLOv4를 통해 객체를 탐지하고, DeepSORT로 각 보행자에게 고유의 ID를 할당해 추적한다. 

 

그리고 좀 허무했던 것이...

 

2. 도로 구역, 횡단보도 등 모니터링 구역을 

 

"사전에 수동으로"

 

설정하고, 감지된 보행자의 바운딩 박스가 겹치는지 확인해 무단횡단 여부를 판단한다. 

 

아니 뭐 엄청 큰 그런걸 바란 건 아닌데 난 자동으로 얘가 차도도 구분하고, 횡단보도 신호등도 구분하고 할 줄 알았더니 그냥

저 빨간 area 안에 일정 비율이 겹치면 근처 (자신들이 만든) 앱을 깐 운전자에게 조심하라고 알림을 보낸다는 것이다. 

 

다른 알고리즘이 있길 바랬는데 약간 실망이다. 예를 들어 횡단보도 구역을 자동으로 인식한다든지, 아니면 사람이 무단횡단을 하려는 제스처를 취하면 미리 경고를 해 준다던지 등. 이미 무단횡단을 하고 있는 사람들을 인식해 주변 운전자들에게 알림을 보내준다는 건 그렇게 큰 실효성이 없을 듯하다. 

 

혹시 무단횡단에 관한 논문을 좀 더 보고 싶다면, 내 친구들이 써 놓은 리뷰를 참고해봐라. 원하는 답을 얻을 수도 있다.

https://klee9.tistory.com/5

 

[논문 리뷰] Jaywalking detection and localization in street scene videos using fine-tuned convolutional neural networks

CCTV가 발명되고 영상에서 다양한 이상(anomaly)를 탐지하는 기술은 크게 발전했다. 그러나 영상 데이터의 증가로 full-time으로 사용하기 어렵고 정확한 예측이 힘들다는 단점이 존재한다. 이 논문에

klee9.tistory.com

https://chunsikk.tistory.com/13

 

[논문 리뷰] Investigation of pedestrian jaywalking behaviour at mid-block locations using artificial neural networks

Abstract인공 신경망(ANN)을 사용해 횡단 중인 보행자의 움직임을 예측하는 방법을 제시 성별, 걷기/뛰기 여부, 휴대폰 사용 등 다양한 조건을 입력 데이터로 사용 2504개의 실제 사례를 바탕으로 여

chunsikk.tistory.com