Smart-Crosswalk-System-based-on-Monitoring-Vehicle-Speed-using-Deep-Learning

우리나라의 개인별 자동차 보급률이 지속적으로 증가하면서 교통사고 발생률 또한 지속적으로 증가하는 추세를 보이고 있다. 특히, 보행자 사고 중 횡단보도에서의 아동과 노인의 사고 비율이 높은 것으로 나타나면서 횡단보도 교통사고에 대한 예방 노력이 많이 이루어지고 있다. 본 연구에서는 횡단보도에 접근하는 차량들의 속도 모니터링을 통한 적응형 알림을 제공함으로써 보행자 교통사고를 예방하기 위한 시스템을 제안한다. 이를 위하여 딥러닝 기술을 활용하여 횡단보도에 접근하는 차량의 위치 변화를 모니터링하며 최적화된 분류 모델과 파라미터를 사용하여 차량 속도에 따른 위험 정도를 예측한다. 실제 차량 주행 영상을 이용한 시뮬레이션 및 실험을 바탕으로 제안하는 시스템의 교통사고 예방 활용 가능성을 확인하였다.


제안 시스템

image

위 그림은 제안하는 시스템의 전체적인 구조를 나타내고 있다. 카메라를 통하여 촬영된 도로 자동차 주행 영상이 입력으로 주어지면 SSD-MobileNet V2 네트워크를 통하여 영상 내 차량에 대한 객체 인식을 수행한다. 각 영상으로부터 객체 인식의 결과는 사각형 형태의 바운딩 박스로 표기되며 차량을 제외한 객체 인식 결과는 클래스명, 바운딩 박스의 위치 및 넓이등을 이용하여 제거한다.

image

위 그림과 같이 주행 차량의 연속된 이미지가 입력 형태로 주어지며 최종 차량 객체 인식 결과로부터 추출될 수 있는 정보인 차량의 위치 (바운딩 박스의 좌상단 및 우하단 x, y좌표), 가로 길이, 세로 길이 및 넓이 등을 안전도 분석을 위한 특징으로 활용한다. 추출된 특징 벡터는 분류를 위한 기계학습 알고리즘인 SVM, Decision Tree, Random Forest, KNN, Logistic regression classifier, MLP, AdaBoost, Naive-Bayes, LDA 알고리즘의 입력으로 활용된다. 본 연구에서는 주행 차량의 접근 속도 에 따라 횡단보도의 차선 별/구간 별 안전 상태를 ‘안전’, ‘위험’, ‘경고’로 분류한다. 최종적으로, 제안 시스템을 통하여 분류된 안전 정보를 횡단 보도에 설치되어 있는 제어 시스템에 전달하고 횡단보도의 각 구간에 대한 안전 정보를 발광 장치를 이용하여 보행자에게 효과적으로 제공한다.


시나리오

image

위 그림은 영상 기반의 안전 수준 분류 결과를 횡단보도 시스템에 활용하기 위한 활용 시나리오를 나타내고 있다. 본 연구 단계에서는 실제 횡단보도에 발광 디바이스 (LED) 설치 및 제어가 불가능하여 웹 시뮬레이터를 통하여 활용 방안을 제시한다. 웹 시뮬레이터에서는 각 차선별 주행 영상으로부터 차량 객체를 인식하고 그에 따른 안전 수준을 예측한다. 그 후, 해당 차선의 안전 수준에 따라 횡단보도의 구간별 안전 수준을 서로 다른 색상의 LED 점등 (예: 안전-녹색, 위험-황색, 경고-적색)을 통하여 운전자 및 보행자에게 직관적으로 제공할 수 있다.


실험

실험 환경

image

본 연구에서 제안하는 시스템의 성능 평가를 위하여, 그림 3과 타이 각 속도 구간에 따른 자동차 주행 영상을 촬영하였다. 주행 영상 촬영은 운전자 한 명과 촬영자 두 명으로 구성된 팀을 통하여 약 1시간 가량 이루어졌다. 촬영 장비로는 삼성 ATIV9 노트북과 일반 1080p 웹캠이 사용되었다. 촬영된 각각의 주행 영상은 10~20초 사이의 길이로 구성되었다.

실험 장비

image

촬영된 동영상을 분석하기 위한 장비로 NVIDIA의 Jetson Nano 보드가 사용되었다. Jetson nano의 CPU는 Quad-core ARMⓇ A57 CPU이고, GPU는 128-core NVIDIA Maxwell GPU, Memory는 4GB 64-bit LPDDR4 25.6 GB/s이다. 소형의 GPU가 탑재된 머신으로서 전력 공급이 원활하게 이루어질 경우 별도의 고성능 장치나 네트워크 지연없이 횡단보도에 설치하여 이미지 분석 및 추론을 수행할 수 있다. Jetson Nano 보드에서 자동차 객체 인식을 수행하기 위하여 TensorRT등을 통하여 최적화가 지원되어 있는 Jetson-inference DetectNet 패키지를 사용하였다.

image

또한, 자동차 클래스에 대한 네트워크 가중치가 Microsoft COCO 모델을 통하여 이미 학습되어 있는 SSD-MobileNet-V2 모델을 활용하였다. 위 그림은 Jetson Nano 보드 상에서 자동차 주행 영상에 대한 자동차 객체 인식 및 로컬라이제이션을 수행하여 바운딩 박스를 추출한 결과이다. 해당 바운딩 박스로부터 다양한 기계학습 알고리즘들의 입력으로 활용될 특징들을 추출한다.

사용 모델

자동차 속도의 위험 예측을 위한 모델로는 SVM, Decision Tree (DT), Random Forest (RF), KNN, Logistic regression classifier (LR), Multi Layer Perceptron (MLP), AdaBoost, Naive-Bayes (GNB), LDA을 사용하였다. 안전 수준 분류를 위한 학습을 위하여 각 주행속도 (10km/h-안전, 20km/h-위험, 30km/h-경고)에 따른 1,000개 영상 클립을 활용하였으며, 알고리즘에 따른 파라미터 튜닝을 위하여 10-fold cross validation 기반의 Grid search 기법을 활용하였다. 밑의 표는 Grid search에 따른 알고리즘별 주요 파라미터의 최적 세팅을 나타내고 있다.

image


결과

정확도

image

위 그림은 각각의 기계학습 알고리즘들을 활용하여 주행영상 이미지들로부터 안전도 수준 (즉, 안전, 위험, 경고)을 분류한 결과의 정확도를 나타내고 있다. 실험 결과로부터 평균 80%의 분류 정확도를 보인 것을 확인할 수 있으며, decision tree 계열의 알고리즘을 활용했을 경우 최고 89.4% (Random forest)의 정확도를 달성한 것을 확인할 수 있다. 반면, Naive-bayes 모델이나 LDA 모델은 약 68%의 정확도를 보여 기타 모델들에 비하여 낮은 수준의 분류 성능을 보여주었다.