Korean Institute of Information Technology

Current Issue

The Journal of Korean Institute of Information Technology - Vol. 22 , No. 3

[ Article ]
The Journal of Korean Institute of Information Technology - Vol. 20, No. 4, pp. 31-38
Abbreviation: Journal of KIIT
ISSN: 1598-8619 (Print) 2093-7571 (Online)
Print publication date 30 Apr 2022
Received 25 Mar 2022 Revised 06 Apr 2022 Accepted 09 Apr 2022
DOI: https://doi.org/10.14801/jkiit.2022.20.4.31

교통사고 시나리오 분류를 위한 이미지 데이터 생성 시스템
조국한* ; 송영준**
*금오공과대학교 전자공학과 박사과정
**금오공과대학교 전자공학과 교수(교신저자)

Image Data Generation System for Classification of Traffic Accident Scenarios
Guk-Han Jo* ; Young-Joon Song**
Correspondence to : Young-Joon Song Dept. of EE Kumoh. National Inst of Tech, Korea Tel.: +82-54-478-7486, Email: yjsong@kumoh.ac.kr

Funding Information ▼

초록

머신러닝 기술이 발전함에 따라 BDD100K, Tusimple 등과 같은 다양한 도로환경에 대한 데이터들을 손쉽게 얻을 수 있다. 하지만 이러한 데이터들은 모두 차량의 주행과 객체 검출을 위한 데이터 셋이며 사고를 인식하거나 원인 파악을 위한 데이터셋의 보급은 보편화되어 있지 않다. 본 논문에서는 UNet 기반의 교통사고 분석을 위한 이미지 데이터 생성 시스템을 구현하였다. 차선 검출에서는 2번의 contracting steps, 2번의 expanding steps을 수행하여 학습하였으며, 1000개의 테스트 데이터에서 79.41%의 정확도를 얻을 수 있었다. 객체 검출에서는 4번의 contracting steps 4번의 expanding steps 수행하여 학습하였으며 500개의 테스트 데이터에서 72.57%의 정확도를 얻었다. 이렇게 2개의 모델이 학습되면 교통사고 이미지를 입력하여 IGLAD, TAAS의 사고 시나리오 분류에 최적화된 새로운 이미지 데이터를 생성한다.

Abstract

With the development of machine learning technology, data sets for vehicle driving and object detection on various road environments such as BDD100K and Tusimple are easily accessible. However it seems not the case for the recognition and classification of road accidents. In this study, we implement an image data generation system for the classification of traffic accident using UNet. We trained a lane detection model composed of 2 contracting steps plus 2 expanding steps with the data set size of 1,000, and found 79.41% accuracy. For the case of object detection, we obtained 72.57% accuracy with the data set size of 500 using the object detection model composed of 4 contracting steps plus 4 expanding steps. When we input road accident images to the proposed images data generation system composed of two trained models, the system outputs the desired new images with object and lane information optimized for the accident scenarios of IGLAD, TAAS.


Keywords: machine learning, classification, lane detection, object detection, accident scenario

Ⅰ. 서 론

최근 머신러닝과 발전으로 인해 차량 산업에서 다양한 기술들이 개발 및 상용화되고 있다. 실제 테슬라, 현대 등과 같은 기업에서도 머신러닝을 이용한 자율주행 차량 개발에 집중하고 있으며 일반인들도 다양한 경로를 통하여 도로환경에 대한 이미지 데이터를 얻을 수 있다. 대표적인 도로환경 이미지 데이터셋은 BDD100K(Berkeley Deep Drive 100K), Waymo, TuSimple이 있으며 이와 같이 다양한 데이터셋이 제공됨에 따라 객체검출, 차선검출, 신호검출, 주행 판단 등의 기술들이 빠르게 발전하고 있다[1]-[5].

그 중에서 자율주행의 핵심적인 기술로 자리 잡고 있는 객체검출과 차선검출은 현재 다양한 방법으로 개발되거나 제안되었다. 예를 들어 YOLO(You Only Look Once)와 DOTA(Object Detection in Aerial Images), Fast R-CNN 등을 이용한 객체검출이 대표적이며 차선검출은 UNet, FCN(Fully Convolutional Networks), LaneNet 등이 대표적으로 사용되고 있다[6]-[9]. 이외에도 라이다(Lidar)와 결합한 객체 검출 시스템도 연구되고 있으며 칼만 필터를 이용하는 SORT 알고리즘을 활용하여 객체를 검출하는 방법도 연구되고 있다. 또한 YOLO를 이용하여 차선을 검출하거나 전이학습 기반 객체 탐지, CNN을 이용하여 객체를 기반으로 영상의 분류를 수행하는 등 다양한 검출 기법들이 연구되고 있다[10]-[14].

하지만 대부분의 객체검출과 차선검출은 차량에서 주행을 위한 용도로 사용되고 있으며 사고가 발생했을 때 원인분석을 위한 용도로 사용되는 것은 아직 보편화되지 않았다. 실제 주행 중 발생한 사고에 대해 원인을 파악하고 과실 비율을 판단하기 위해서는 블랙박스 영상, 차량의 충돌 위치, 차선 등의 정보들을 육안으로 확인하여 과실 비율을 산정한다. 이러한 과정은 과실 비율 산정에서 많이 시간이 소요될 뿐만 아니라 정확하지 않은 산정으로 추가적인 비용부담 또한 발생하는 경우도 있다.

본 논문에서는 UNet을 기반으로 차선과 객체를 검출하여 교통사고의 원인파악 및 사고 유형 분류에 사용될 이미지 데이터를 생성한다. UNet은 FCN을 확장한 개념으로 적은양의 데이터로도 우수한 성능을 보이며 end-to-end 구조로 속도가 빠르다. 이러한 장점 때문에 세그먼테이션 검출과 차선 검출에 많이 사용되고 있는 모델이다. 사고 유형은 IGALD(Initiative for the GLobal harmonization of Accident Data)[15]나 TAAS(Traffic Accident Analysis System)[16]를 통해 분류를 수행한다. IGLAD는 GIDAS, FIA등에서 사용되고 있는 사고 유형이고 현재 전세계 12개국의 7000건의 사례로 구성되어 있다. TAAS는 한국의 교통사고분석시스템이며 교통사고에 대한 다양한 정보들을 제공한다. 이 데이터베이스를 이용하면 교통사고 유형을 직접 조사할 필요 없이 손쉽게 유형 정보들을 얻을 수 있다[17].

일반적으로 객체를 추출할 때 YOLO, DOTA 등과 같은 알고리즘을 이용하여 바운딩 박스 형태로 검출한다. 하지만 그렇게 추출하게 되면 차량의 모양이나 방향 등을 알지 못하는 문제가 발생한다. 따라서 차량의 옆면과 정면을 구분할 수 있는 형태의 이미지가 필요하기 때문에 본 논문에서는 인스턴스 세그먼테이션(Instance segmentation) 정보를 활용하여 객체를 검출한다.

차선과 객체가 검출되면 이 두 정보들을 융합하여 IGLAD, TAAS의 사고 시나리오 분류에 최적화된 새로운 이미지 데이터를 생성한다. 새로 생성된 이미지는 배경, 나무, 건물 등의 불필요한 부분들은 제거되고 차선과 차량, 사람만이 표현된다.

본 논문의 구성은 다음과 같다. 2장은 차선 검출 구현 방법과 모델 구조에 대하여 설명하고 3장에서는 인스턴스 세그먼테이션을 이용한 객체검출 구현 방법과 딥러닝 모델 구조에 대하여 기술한다. 4장에서는 2장과 3장에서 구성한 차선검출 및 객체검출 결과를 융합하여 하나의 이미지 형태로 데이터를 추출하는 과정을 설명한다. 마지막으로 5장에서는 결론에 대하여 기술하고 구현과정에서의 문제점과 향후 개발 내용에 대해서 설명한다.


Ⅱ. 다중 차선 검출

차선검출에 사용될 데이터들은 BDD100K의 데이터베이스이다[1]. BDD100K는 40초의 비디오 시퀀스와 720×1280의 도로환경 이미지 데이터를 100,000개를 제공한다. 또한 차선 정보나, 인스턴스 세그먼테이션, 시멘틱(Semantic) 세그먼테이션, json 라벨 등등 다양한 데이터를 용도에 맞게 사용하도록 세분화되어있다. 차선검출에 사용되는 BDD100K 내부 데이터셋은 lane marking, drivable area이며 두 가지 데이터셋의 차이점은 lane marking 데이터셋은 차선의 형태를 단순 라인으로 제공하는 반면 drivable area 데이터셋은 인스턴스 세그먼테이션 형태로 제공한다. 일반적으로 drivable area는 주행 가능 영역을 추출할 때 사용하고 lane marking 데이터셋은 차선 표시를 위해 사용한다. 본 논문에서는 두 개의 데이터셋 중에 학습에 소요되는 시간이 더 짧은 lane marking 데이터셋을 사용하여 학습을 수행한다.

그림 1의 (a)는 차선 정보가 없는 원본이미지이고 (b)는 차선만 표시된 이미지이다. (a)와 (b)는 모두 CNN의 모델로 입력되며 출력결과는 (b)의 형태로 출력하도록 한다. 여기서 ground truth는 라벨과는 다른 의미로 사용자가 예측해주기를 원하는 값을 말한다.


Fig. 1. 
Training data for lane detection, (a) Input image, (b) Ground truth

그림 2는 차선검출에서 사용한 모델 구조를 도식화한 것이다. 모델은 UNet[8]을 기반으로 구성하였다. 모델의 학습 과정은 128×128의 크기를 가지는 도로환경 이미지가 입력될 경우 픽셀의 값들을 0~1사이의 값으로 정규화한다. 이후 더블 컨볼루션(Double convolution)을 수행하고 풀링(Pooling)을 통해 이미지 크기를 점차 줄여나간다. 이 과정은 입력 이미지의 Context를 포착하는 것을 목표로 하며 contracting path 또는 인코딩이라 부른다. 이미지 크기가 32×32가 되면 업샘플링(Upsampling)을 통해 원래의 이미지 크기로 변환한다. 이 과정은 세밀한 localization을 가능하게 하며 expanding path 또는 디코딩이라 부른다. 업샘플링 과정에서 concatenate를 이용하여 풀링 이전의 특징맵을 카피하여 컨볼루션을 통해 소실된 픽셀 값을 보정한다. UNet에서는 softmax를 통해 픽셀단위의 분류를 수행하지만 본 논문에서는 sigmoid를 이용하여 최종 결과를 출력한다. 또한 컨볼루션, 업샘플링마다 배치정규화(Batch nomalization)를 적용하여 gradient vanishing 현상을 방지한다.


Fig. 2. 
Model structure for lane detection

학습 데이터로는 BDD100K에서 제공하는 720×1280의 크기의 컬러 이미지와 컬러맵을 사용하였으며 이 이미지들을 128×128의 크기로 변경하고 0~1로 정규화하여 사용하였다. 학습에 사용된 이미지 데이터는 25000장이며 테스트 데이터로는 1000장이 사용되었다. 학습 횟수는 100회 배치 크기는 100으로 설정하였다. 손실 함수(Loss function)는 binary crossentropy, optimazer로는 adam을 사용하였다.

그림 3은 테스트 데이터 중 하나의 에측 이미지를 출력하고 이를 입력 이미지, ground truth 이미지와 비교한 것이다. 예측 이미지와 ground truth를 비교해보면 실제 학습이 잘되어 예측 이미지가 ground truth와 유사하게 출력되는 것을 알 수 있다.


Fig. 3. 
Comparison between ground truth and predicted images, (a) Input image, (b) Ground truth, (c) Predicted image

표 1은 테스트 데이터를 이용하여 예측 결과의 정확도를 측정한 결과이다. 정확도 측정 알고리즘은 mean pixel accuracy[18]을 사용하였다. MPA(Mean Pixel Accuracy) 식은 다음과 같다.

1ki=0k100×PcPl(1) 
Table 1. 
Pixel accuracy of test data in lane detection
Accuracy Pixel accuracy
Data set size
100 82.55%
1,000 79.41%

식 (1)k는 테스트 데이터의 개수이며 Pc는 예측 결과와 ground truth와 비교하여 올바르게 검출한 픽셀의 개수이다. Pl은 ground truth에서 0이 아닌 모든 픽셀의 개수이다.


Ⅲ. Instance Segmentation을 이용한 객체검출

객체검출에 사용된 데이터들은 차선검출과 동일한 BDD100K의 데이터셋이다. 객체검출을 위한 BDD100K 내부 데이터셋은 인스턴스 세그먼테이션, 시멘틱 세그먼테이션, json 라벨이 있다. 본 논문에서는 객체의 형태를 추출하고 차량을 검출하기 위해서 인스턴스 세그먼테이션을 이용하여 학습을 수행한다.

그림 4는 인스턴스 세그먼테이션을 이용한 객체검출 모델 구조이다. 객체검출 모델은 차선검출과 동일하게 UNet을 기반으로 구성한다. 차선검출에 비해 모델의 깊이가 깊지만 Contracting path에서의 방법은 동일하다. 차이점은 expanding path에서 수행 시간을 줄이기 위해 더블 컨볼루션을 사용하지 않았다는 것이다. 그림 4를 살펴보면 모델의 길이가 깊은 만큼 필터의 수가 급격히 증가하며 contracting path 후 이미지 사이즈는 8×8로 차선검출에 비해 감소하였다.


Fig. 4. 
Object detection model structure for instance segmentation

그림 5의 (a)는 객체에 대한 정보가 없는 원본 이미지이고 (b)는 객체 정보가 색상으로 라벨링된 이미지이다. BDD100K에서 제공된 인스턴스 세그먼테이션 형태의 ground truth 이미지 (b)는 3개 이상의 색상으로 분류되어 있다. 하지만 본 논문에서는 단순히 차량과 사람, 배경의 형태나 검출 기능이 필요한 것이므로 차량 간 클래스 분류는 수행하지 않는다.


Fig. 5. 
Training data for object detection, (a) Input image, (b) Ground truth

학습 데이터는 BDD100K에서 제공하는 데이터 중에 BDD10K의 이미지와 인스턴스 세그먼테이션 이미지를 사용하였으며 전처리는 차선검출과 동일하게 720×1280의 크기의 컬러 이미지를 128×128로 변환하고 0~1로 정규화 한다. 총 학습에 사용된 데이터의 양은 차선검출보다는 적은 6500개의 데이터를 사용하고 테스트 데이터로는 500장이 사용되었다. 학습 횟수는 100회이며 배치는 50으로 설정하였다. 손실 함수와 optimazer는 binary crossentropy와 adam을 사용하였다.

그림 6은 객체검출 학습 후 테스트 데이터 중 하나의 예측 이미지를 출력하고 이를 ground truth 이미지, 입력이미지와 비교한 것이다. Ground truth와 예측 이미지를 비교했을 때 촬영한 차량의 범퍼인 파란색 부분은 검출되지 않았지만 나머지 차량들은 올바르게 검출되는 것을 확인할 수 있다.


Fig. 6. 
Comparison between ground truth and predicted images, (a) Input image, (b) Ground truth, (c) Predicted image

표 2는 객체검출 결과의 MPA를 측정한 결과이다. 계산식은 식 (1)과 같다. UNet expanding path 과정에서 더블 컨볼루션을 적용했을 경우에는 100개에서 74.62%, 500개에서 73.40%로 현재 테스트한 모델보다 정확도가 1~2% 정도 높지만 epoch 당 5~10초 정도 더 소요되기 때문에 현재 모델을 사용하였다.

Table 2. 
Pixel accuracy of test data in object detection
Accuracy Pixel accuracy
Data set size
100 73.67%
500 72.57%


Ⅳ. 객체와 차선 정보가 포함된 데이터 생성

2장 3장을 통해 수행한 결과들을 바탕으로 교통 시나리오 분석에 사용될 데이터들을 생성할 수 있다. 데이터 생성을 위한 테스트 데이터로는 카카오 TV에서 제공하는 교통사고 영상의 프레임을 나누어 사용하였다. 원본 이미지 크기는 BDD100K와 동일한 720×1280이며 이미지를 720×720으로 변환하여 사용하였다.

그림 7은 교통사고 영상을 통해 추출한 이미지 데이터이다. 본 논문에서는 이 데이터를 이용하여 이미지 데이터를 생성하였다.


Fig. 7. 
Test image for image generation

그림 8의 (a)는 테스트에 사용한 원본 이미지이며 이 이미지를 이용해 차선 검출을 수행한 결과는 (b), 객체를 검출한 결과는 (c)이다. 결과를 원본이미지와 비교하면 차선은 소실된 부분이 있으나 원본의 차선과 유사하게 출력되었으며 객체 검출에서는 일부의 객체 형태가 온전하지 못하고 먼 거리에 존재하는 차량이 인식되지 않지만 일정크기 이상의 모든 차량을 검출한 것을 확인할 수 있다. 검출 과정에서 발생한 문제들은 데이터양을 늘려 추가적인 학습을 진행하거나 모델, optimazer, 손실 함수 등을 개선함으로써 해결할 수 있다.


Fig. 8. 
Results of lane detection and object detection, (a) Original image, (b) Lane detection, (c) Instance segmentation

그림 9는 앞선 그림 8에서 차선 검출 결과인 (b)와 객체 검출 결과인 (c)을 합쳐 차선과 객체의 정보를 모두 포함하는 이미지를 생성한 결과이다. 그림 9를 살펴보면 각각의 차량들이 어떤 위치의 차선에 존재하는지를 알 수 있으며 각 차량들의 형태를 확인하여 대략적인 진행방향을 알 수 있다. 또한 배경, 건물, 나무 등의 불필요한 부분들이 삭제된 것을 확인할 수 있다. 현재 생성된 결과에서는 각 차량들의 색상이 분류되지 않았지만 추후 색상을 통해 각 차량들을 분류하게 되면 더욱 신뢰성 높은 데이터를 생성할 수 있을 것이다.


Fig. 9. 
Image with object and lane information


Ⅴ. 결론 및 향후 과제

본 논문에서는 교통사고 유형 분류를 위해 UNet을 기반으로 구성한 딥러닝 모델을 이용하여 차선과 차량의 형태를 추출하여 사고 유형 분류에 활용할 수 있는 새로운 이미지 데이터 생성 시스템을 구현하였다. 학습 이미지는 BDD100K에서 제공하는 원본이미지, 컬러맵, 인스턴스 세그먼테이션 이미지를 이용하였다. 차선검출에서는 25000개의 데이터를 모델에 학습하여 100개의 테스트 데이터와 1000개의 테스트 데이터에서 각각 82.55%와 79.41%의 MPA를 얻을 수 있었다.

객체검출에서는 6500개의 테스트 데이터를 모델에 학습하여 100개의 테스트 데이터와 500개의 테스트 데이터에서 각각 73.67%와 72.57%의 MPA를 얻었다. 객체 검출 모델에서는 UNet의 expanding path 부분을 수정하여 epoch 1회 당 약 5~10초의 시간을 줄였다. 이렇게 검출한 차선과 객체 정보를 융합하여 IGLAD, TAAS의 사고 시나리오 분류에 최적화된 새로운 이미지 데이터를 생성하였다.

구현과정에서 차선검출 횡단보도와 같이 겹치는 부분이 많거나, 거리가 먼 차선은 검출률이 떨어지는 것을 알 수 있었다. 객체검출 부분에서도 멀리 있는 객체에 대한 형태가 정확하게 검출되지 않는 문제가 있었다. 검출이 올바르게 되지 않은 차선과 객체가 불필요한 부분이라면 관심영역 설정 후 제거할 수 있지만 필요한 부분이라면 더 많은 양의 학습 데이터를 제공하거나 딥러닝 모델을 재구성하여 개선해야 될 것으로 예상된다.

본 논문에서는 이전에 보편화되지 않는 교통사고에 대한 시나리오 분석에 필요한 데이터를 생성하는 것에서 연구에 의의를 찾을 수 있다. 그러나 제안한 시스템에서 생성된 데이터가 실제 교통사고 시나리오 분류에서 충분한 실험이 이루어지지 않았다는 점에서 본 연구의 한계를 찾을 수 있다. 또한, IGALD, TAAS를 이용한 교통사고 유형 분류 시스템은 내용이 방대하기에 논문에서 생성한 데이터를 활용하는 방법과 과정은 향후 과제로 한다.


Acknowledgments

이 성과는 정부(과학기술정보통신부)의 재원으로 한국연구재단의 지원을 받아 수행된 연구임 (No.2021R1A6A3A13043168)


References
1. https://doc.bdd100k.com/download.html. [accessed : Mar. 13, 2022]
2. http://www.cvlibs.net/datasets/kitti/ [accessed : Mar. 15, 2022]
3. https://waymo.com/waymo-driver/ [accessed : Mar. 15, 2022]
4. https://www.tusimple.com/ [accessed : Mar. 15, 2022].
5. Si-Hyeon Lee and Yeonsik Kang, "Segmentation of Driving Areas for Autonomous Vehicle based on Deep Learning Method Using Automotive Camera Sensor", Journal of Institute of Control, Robotics and Systems, Vol. 26, No. 6, pp. 452-461, Jun. 2020.
6. Xia, Gui-Song, et al. "DOTA: A large-scale dataset for object detection in aerial images", Proceedings of the IEEE conference on computer vision and pattern recognition, Salt Lake City, UT, USA, pp. 3974-3893, Nov. 2018.
7. Long, Jonathan, Evan Shelhamer, and Trevor Darrell, "Fully convolutional networks for semantic segmentation", Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 3431-3440, UC Berkeley, USA, Nov. 2015.
8. Ronneberger, Olaf, Philipp Fischer, and Thomas Brox, "U-net: Convolutional networks for biomedical image segmentation", International Conference on Medical image computing and computer-assisted intervention. Springer, Cham, pp. 234-241, May 2015.
9. Bochkovskiy, Alexey, Chien-Yao Wang, and Hong-Yuan Mark Liao, "Yolov4: Optimal speed and accuracy of object detection", arXiv preprint arXiv:2004.10934, Apr. 2020.
10. Jinsoo Kim and Jeongho Cho, "YOLO-based Real-Time Object Detection Scheme Combining RGB Image with LiDAR Point Cloud", Jounal of KIIT, Vol. 17, No. 8, pp. 93-105, Aug. 2019.
11. Sujin Yang, Inhwa Jung, Donghwa Kang, and Hyeongboo Baek, "Real-Time Multi-Object Tracking using Mixture of SORT and Deep SORT", Journal of KIIT, Vol. 19, No. 10, pp. 1-9, Oct. 2021.
12. Sungwoo Jeon, Dongsoo Kim, and Hoekyung Jung, "YOLO-based lane detection system", Journal of JKIICE, Vol. 25, No. 3, pp. 464-470, Mar. 2021.
13. Donggu Lee, Young-Ghyu Sun, Soo-Hyun Kim, Issac Sim, Kye-San Lee, Myoung-Nam Song, and Jin-Young Kim, "Transfer Learning-based Object Detection Algorithm Using YOLO Network", The Jouranl of The Institute of Internet, Broadcasting and Communication, Vol. 20, No. 1, pp. 219-223, Feb. 2020.
14. Young-Do Joo, "Drone Image Classification based on Convolutional Neural Networks", The Jouranl of The Institute of Internet, Broadcasting and Communication, Vol. 17, No. 5, pp. 97-102, Oct. 2017.
15. http://www.iglad.net/ [accessed : Mar. 12, 2022]
16. http://taas.koroad.or.kr/ [accessed : Mar. 13, 2022]
17. Guk-Han Jo and Young-Joon Song, "Data Scenario Creation using Traffic Data and Web Information", Summer Annual Conference of IEIE, 2021, Vol. 2021, No. 6, pp. 2157-2158, Jun. 2021.
18. Chaoxian Dong, "Image Semantic Segmentation Using Improved ENet Network", Journal of Information Processing Systems, Vol. 17, No. 5, pp. 892-904, Oct. 2021.

저자소개
조 국 한 (Guk-Han Jo)

2016년 2월 : 금오공과대학교 컴퓨터공학과 공학사

2019년 2월 : 금오공과대학교 전자공학과 공학석사

2019년 3월 ~ 현재 : 금오공과대학교 전자공학과 공학박사과정 재학

관심분야 : 머신러닝, 빅데이터, 채널코딩

송 영 준 (Young-Joon Song)

1987년 2월 : 한양대학교 전자통신공학과 공학사

1994년 2월 : 한양대학교 전자통신공학과 공학석사

1999년 2월 : 한양대학교 전자통신공학과 공학박사

1994년 10월 ~ 2002년 2월 : LG전자 책임연구원

2002년 3월 ~ 현재 : 금오공과대학교 전자공학부 교수 IEEE senior member

관심분야 : 머신러닝, 빅데이터, 채널코딩, 이동통신시스템