The Korean Society Of Automotive Engineers
[ Article ]
Transactions of the Korean Society of Automotive Engineers - Vol. 27, No. 7, pp.553-560
ISSN: 1225-6382 (Print) 2234-0149 (Online)
Print publication date 01 Jul 2019
Received 13 Feb 2019 Revised 16 Apr 2019 Accepted 25 May 2019
DOI: https://doi.org/10.7467/KSAE.2019.27.7.553

차량 영역 분할 영상을 이용한 주차선 이탈 경고 시스템의 실시간 구현

이동규1) ; 기석철*, 2)
1)충북대학교 스마트카협동과정
2)충북대학교 스마트카연구센터
Real-time Implementation of the Parking Line Departure Warning System Using Partitioned Vehicle Region Images
Dongkyu Lee1) ; Seok-Cheol Kee*, 2)
1)Department of Smart Car Engineering, Chungbuk National University, Chungbuk 28644 Korea
2)Smart Car Research Center, Chungbuk National University, Chungbuk 28644 Korea

Correspondence to: *E-mail: sckee@cbnu.ac.kr


Copyright Ⓒ 2019 KSAE / 164-07
This is an Open-Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium provided the original work is properly cited.

Abstract

In this paper, we propose a real-time implementation of the new Parking Lane Departure Warning System(PLDWS) algorithm for autonomous vehicle development. The proposed algorithm is for converting the top view image of the AVM camera into nine divided images and learning the deviation of parking line by studying the divided image based on deep learning. Wide angle cameras are mounted on the front, rear, left side, and right side of the real vehicle, and the top view image is obtained through the calibration of each camera. Considering that the visible range of the AVM varies according to the mounting position of the vehicle, the actual distance based on the AVM image is measured and designated as region of interest(ROI) to the front and rear, right and left 2-m regions(3 in the horizontal direction and 3 in the vertical direction). The proposed algorithm was implemented on NVIDIA Jetson TX2 board for deep learning implementation, and tested in Keras deep learning framework environment and Ubuntu 16.04 OS. It showed 98.01 % precision and 99.13 recall. The processing speed was 5.5 to 6 FPS. By using PLDWS, the driver can be notified with a warning about the parking situation through the camera, and the output of the PLDWS can be used for vehicle control when implementing the autonomous parking system.

Keywords:

Deep learning, AVM(Around View Monitoring), VGG-16, Parking line departure warning, Partitioned vehicle region images

키워드:

심층 학습, 어라운드 뷰 모니터링, 브이지지-16, 주차선 이탈 경고 시스템, 차량영역 분할 영상

1. 서 론

전 세계적으로 자율주행 시스템에 대한 연구가 활발히 진행되고 있다. 이와 동시에 자율주행의 전단계인 ADAS (Advanced Driving Assistance System) 에 관련한 시장에서는 다른 센서들과 비교하여 가격 경쟁력이 있는 카메라를 활용한 기능들이 주로 개발되고 있다. 본 논문에서는 광각 카메라 4대를 활용한 AVM(Around View Monitoring)1) 카메라를 이용한 ADAS 기능을 연구하였다.

AVM의 기본이 되는 광각 카메라는 장점과 단점2)이 명확하게 구분되는 센서이다. 일반적으로 180 ~ 190도의 화각으로 구성된 광각 카메라는 차량에 전 / 후 / 좌 / 우로 4대를 부착할 시 사각지대 없이 물체를 감지할 수 있다는 장점이 있고, 단점은 어안 렌즈를 사용함으로서 심해지는 카메라 영상 왜곡과 감지 거리가 매우 짧다는 것이다. AVM은 이러한 광각 카메라의 장점을 효과적으로 활용하고, 단점을 최소화하는 ADAS라고 말할 수 있다.

AVM은 차량의 상단에서 차량을 내려 보는듯한 영상3)을 만들어 운전자로 하여금 쉽게 주차를 진행할 수 있도록 돕는 시스템으로 많이 쓰이고 있다. ADAS 시장의 관심도가 높아짐에 따라, 비교적 진입 장벽이 낮은 AVM은 시장에서의 수요가 지속적으로 증대되고 있다. 미국고속도로교통안전국(NHTSA)이 후방 카메라 부착 의무화를 추진4)하는 등 차량 내 광각 카메라 부착은 점차 늘어날 수밖에 없고 광각 카메라를 기반으로 하는 AVM의 수요는 지속적으로 증가할 것이라고 판단된다.

기존의 AVM은 4개의 광각 카메라를 1장의 Top View 영상으로 융합하여 차량 내부의 클러스터 혹은 모니터에 출력해주고 있다. 하지만 현재 주차를 진행하는 상황을 Top View로 출력해주는 기존 AVM은 모니터와 주변 상황을 동시에 살펴야하여 혼잡한 주차 환경에서의 빠른 주차를 진행하기에 무리가 있고, 카메라를 활용한 자율주차 시스템을 구성하고자 함에 있어서 추가적인 처리가 필요하여 주차 상태를 9개의 영역의 이탈여부로 판단해 주는 본 시스템을 개발하였다. 본 시스템은 기 상품화된 AVM의 기능에 주차선 이탈여부를 판단해 주는 기능이 더해져 사용자로 하여금 좀 더 수월하게 주차를 할 수 있게 한다.

자동 주차시스템을 구성하는데 있어서 가장 중요한 부분은 주차 선을 인식하는 것과 현재 차량의 주차 진행 상태를 인지하는 것 그리고 차량을 제어하는 것이다. 본 논문에서는 이 3가지 기능 중 현재 차량의 주차 진행 상태를 인지하는 기능을 기술하고자 한다. 본 기능의 알고리즘은 차량의 Top View 영상에서 차량 영역을 9개의 영역으로 분할하여 각 영역들이 주차선5) 영역을 이탈하였는지 판단하는 알고리즘으로 각 세부 영역의 이탈여부를 판단하는 딥러닝 구조를 연구하여 개발되었다.

또한 자동 주차 시스템을 구성하기 위해서는 실시간으로 기능의 작동을 확인하여 제어부에 전송해야 하기 때문에, 차량에 장착된 광각 카메라 기반의 플랫폼을 활용하여 DB 수집 및 실차 실험6)을 진행하였다.

본 논문에서는 광각 카메라에서 영상을 받아 AVM으로 영상을 변환하여 출력해주는 Exynos 8890 AP기반의 모듈을 활용하여, DB를 수집함과 동시에 본 기능의 입력으로 사용하여 차량의 주차상황에서 실시간으로 기능을 작동시키는 것을 확인하였다.

더욱이 딥러닝 기반의 알고리즘을 처리하기 위하여 NVIDIA GPGPU(General-Purposer Computing on Grapgics Processing Units) 기반의 임베디드 보드 환경에서 AVM 모듈에서 제공해주는 차량의 Top View 영상을 받아 현재 차량과 주차선과의 관계7)를 처리하여 차량의 어떤 영역이 주차 영역을 이탈하였는지에 대한 신호를 운전자에게 전달해 준다는 목적을 가지고 연구를 진행하였다.

논문의 구성은 다음과 같다. 2장에서는 본 논문에서 제안하는 딥러닝 기반의 기능에 대하여 캘리브레이션 / 전처리 / Labeling / 후처리 / 학습 및 실행에 대하여 설명하고 있고, 3장에서는 실차 기반으로 본 기능을 수행할 HW 및 SW 환경에 대하여 서술하고 있다. 또한 4장에서는 3장 기반의 환경에서 취득한 DB의 구성과 DB를 활용한 평가 결과를 보이고 있으며, 마지막 5장은 결론으로 마무리한다.


2. 이탈 영역 탐색 방법

본 논문에서 제안하는 방법은 딥러닝을 활용하여 주차선 이탈 경고 신호를 발생해주는 것이다. 딥러닝 모델로는 응용과 분석이 상대적으로 용이한 VGG-16 모델8)을 사용하였고, Top View에서 보이는 차량을 9개의 영역(가로 3, 세로 3)으로 나누고, 각 영역별로 주차선 침범 여부를 판단하여, 최종적으로 주차선 영역 이탈에 대한 경고 신호를 출력하게 된다.

2.1 전처리

2.1.1 캘리브레이션9)

Fig. 1은 카메라 모듈 자체의 초점 거리, 주점 거리 및 모델링된 왜곡 다항식에 대한 왜곡 계수를 의미하는 Intrinsic Parameters와 카메라 모듈의 설치위치와 설치각을 의미하는 Extrinsic Parameter를 추정할 수 있도록 구성해 놓은 공간인 공차 보정실에 대한 예시이다.

Fig. 1

Example of calibration ground

공차 보정실 내부에 위치한 Checker Board의 동일한 크기의 정사각형 구성의 연속인 특성을 활용하여 카메라의 Intrinsic, Extrinsic Parameters를 추정할 수 있다. 추정 결과인 수식은 다음과 같다.

KK=fx0cx0fycy001(1) 
R=r11r12r13r21r22r23r31r32r33(2) 
T=txtytz(3) 
suundistortυundistort1=fx0cx0fycy001r11r12r13txr21r22r23tyr31r32r33tzXworldYworldZworld 1(4) 

식 (1)은 카메라 Matrix를 의미하며, 카메라 자체의 초점 거리와, 주점 거리에 대한 값을 뜻한다. 식 (2)는 Rotation Matrix를 의미하고, 이는 사용자가 지정한 기준점와 카메라의 설치 각에 대한 Roll / Pitch / Yaw값을 3×3의 행렬로 모델링하여 표현한 것이다. 식 (3)은 Translation Matrix를 의미하며, 이는 사용자가 지정한 기준점과 카메라 설치 위치에 대한 변위 X, Y, Z를 의미한다. 식 (4)식 (1), (2), (3)값을 활용하여 3D World 좌표와 카메라 영상 좌표 간의 변환 식을 보여주고 있다.

2.1.2 관심영역 설정
Hw2i=fx0cx0fycy001r11r12txr21r22tyr31r32tz(5) 
suundistortυundistort1=Hw2iXworldYworld1(6) 

Fig. 2는 전방, 후방, 좌측, 우측 4개의 광각 카메라를 캘리브레이션하여 추출한 카메라 Intrinsic, Extrinsic Parameters를 활용, Z축을 Don’t Care로 하여 해당 항목을 삭제하고 계산한 행렬의 연산을 기반으로 Top View 평면(3D 표 기준 Z축을 고정)으로 투영된 영상이다.

Fig. 2

Original top view image

식 (5)(6)은 각각 3D 좌표계와 영상 좌표계 사이의 변환행렬인 호모그라피와 호모그라피를 활용한 좌표 변환 방법을 나타낸 식이다. 호모그라피는 식 (1), (2), (3)의 카메라 Intrinsic Paramters, Rotation / Translation Matrix를 활용하여 구할 수 있다.

일반적으로 차량에 부착하여 양산되는 AVM의 View Range가 2~3 m인 점을 고려하여 차량 기준 전후좌우 실거리 2 m를 측정하여 ROI(Region of Interest)를 지정하였다.

VGG-16 모델11)은 224×224의 정사각형 Input 영상 Data를 요구하는 것에 반하여 Fig. 2는 영상의 Width와 Height의 값이 다른 직사각형 형태의 영상이기 때문에, 초기실험 당시에는 Interpolation 방법을 통한 Resize를 시행하였으나, Fig. 3의 상황과 같이 차량이 회전하는 환경에서 주차선12)과 차량이 수직한 상황보다 평행한 상황에서 실제로는 같은 Line임에도 불구하고, 영상 상에서 Pixel 차이가 많이 발생하는 것을 확인하였다.

Fig. 3

Problem with general method resize

일반적인 Resize가 아니며, Convolution 연산 실행 시에 영향을 미치지 않도록 Fig. 4와 같이 영상 좌우에 Data 값이 0인 영역을 Padding하는 입력 영상을 구성하였다.

Fig. 4

Input top view image

2.1.3 차량 영역 영상 분할

본 연구의 최종 목적은 AVM을 활용한 자율 주차 시스템이다. 자율 주차 시스템에는 영상을 기반으로 한 상황에 대한 인지 알고리즘뿐만 아니라 제어와 제어를 위한 판단이 필요하게 된다. 다른 기능들과의 통합을 위해서는 알고리즘의 입력 / 출력을 확실하게 하여야 하는데, 본 알고리즘은 전체 목적의 시작에 해당하는 부분이기 때문에 알고리즘 출력에 대한 명확한 정의가 필요하다고 판단되었다.

자동 주차 시스템의 제어를 구성함에 있어서 가장 중요한 것은 차량의 횡방향 제어이다. 본 연구에서는 횡방향 제어에 대한 입력을 만들기 위하여 우리는 차량의 가로 세로의 영역을 분할하고, 분할한 영역이 주차선과 겹치는 영역을 탐색하고 제어에 대한 판단부에서는 탐색한 영역들을 활용하여 현재 주차선13)과 차량의 각도를 산출하여 차량의 횡방향 제어에 대한 판단을 전달하고자 한다.

최종적으로 분할한 N개의 영역에 대하여 주차선과 겹친 영역과 겹치지 않은 영역으로 나누는 이진 판단을 하는 알고리즘을 개발하고자 하여, 우리는 여러 Class와 각 Class에 대하여 이진 확률을 출력하는 기계학습을 본 알고리즘 개발에 적용하고자 하였고, GPU를 활용하여 모델을 깊게 제작하고 속도를 향상시키기 위하여 딥러닝으로 알고리즘을 제작하게 되었다.

실험적으로 딥러닝을 활용하여 알고리즘을 제작 할 때 출력층의 Class가 너무 적게 되면 특징점에 대한 분류가 잘 되지 않아 완성도가 떨어짐을 발견하였다. 또한 새로이 DB와 Labeling을 진행하는 본 연구의 특성 상 너무 세분화된 Class 기반의 Labeling은 과도한 시간의 분배를 초래할 수 있기 때문에, 차량을 가로로 3, 세로로 3개의 영역으로 분할하여 차량 전체를 총 9개의 영역으로 분할하였다.

기존의 Open Dataset에는 AVM 영상, 더욱이 차량을 9개의 영역으로 분할하여 주차선과 겹치는 영역을 Label한 Data는 존재하지 않으므로, 자체적으로 DB를 구축14)하고 Labeling 작업을 진행하였다. 보다 빠르고 수월한 Labeling 작업을 위하여 자체적으로 UI(User Interface) 기반의 Tool을 제작하여 Labeling을 실시하였다.

Fig. 5는 Supervised 딥러닝에 필요한 Label Data를 저장하기 위하여 자체적으로 제작한 Tool을 보여주고 있다.

Fig. 5

Parking line departure labeling tool

본 논문에서 활용한 Labeling에 관련한 규칙은 아래 문단에서 서술하도록 한다.15)

Fig. 6은 9개로 나뉜 차량 영역 중 주차 공간을 이탈한 영역을 1, 그렇지 않은 영역을 0이라고 Label한 Data로서 초기 Label 상황에서 선택했던 방법이다.

Fig. 6

Data before correction

딥러닝의 출력층으로서 일반적으로 사용되고 있는 Softmax층은 각 Class의 확률에 대한 예측값을 결과값으로 출력하여 준다. 이런 특성을 위하여 Softmax의 출력층의 총합은 1이 되어야 하는데, 본 연구에 있어 초기 Label 방식을 유지한다면 9개 영역 보두 주차선과 겹치지 않는 완벽한 주차와 같은 상황에서 Label값의 총합이 0이 되는 상황이 발생한다. 하지만, 이 값을 반전하게 되면 주차 상황의 특성상 9개 모든 영역이 주차선과 겹치는 상황은 발생하지 않으므로 1차적인 문제를 해결할 수 있다.

1차적으로 출력의 총합이 0이 되는 상황을 만들지 않았지만, 아직 모든 상황에서 출력층의 합이 1이 되도록 구성하지 못하였다. 이는 굉장히 간단하게 해결할 수 있는데, 값이 1로 Label된 영역, 즉 주차선과 겹치지 않는 영역들에 대한 Normalize 과정을 수행하면 가능하다. 주차선과 겹치지 않은 영역의 개수를 K개(겹치는 영역은 9-K개)라고 한다면 주차선과 겹치지 않는 영역의 Label값은 1/K로, 주차선과 겹치는 영역의 Label값은 0으로 하여 문제를 해결 가능하다.

Fig. 7은 실험적으로 초기 방식의 문제점을 발견하고 수정하여 반대로 이탈한 영역을 0, 그렇지 않은 영역을 1이라고 Label한 뒤, 9개의 영역의 값을 Normalize한 Data를 보여주고 있다.

Fig. 7

Data after correction

2.2 분할영역 영상 학습

본 논문에서는 딥러닝 Framework로는 Keras(Using Tensorflow Backend)16)를 사용하였고, 모델로는 VGG-16를 활용하여 Training 하였다.

VGG-16은 Convolution층, Pooling층, Fully Connected층을 포함하여 16개의 층으로 구성된 딥러닝 모델로서 단방향으로 진행하는 특성을 가지고 있다. 이런 특성 덕분에 구조적으로 사용자의 수정17)이 간편하고, 모델의 중간 부분에서 중간 결과를 확인하기 용이하여, 모델의 학습이 어떤 특징을 기반으로 하여 진행하였는지 살펴보는 것이 비교적 간편하기 때문에 VGG-16 모델을 사용하여 알고리즘을 개발하게 되었다.

본 연구에서는 기존 VGG-16의 출력층을 9개로 수정하고, NVIDIA Jetson TX2의 메모리 한계를 극복하기 위하여 Fully Connected층을 포함한 층들을 간소화하여 메모리 할당의 문제를 해결하였다.

Table 1과 같이 총 6,256장의 영상 중 4,239장은 Train set, 1,059장은 Validation Set, 1,058장은 Test Set으로 구성하여 500번 반복(Epoch : 500)하여 학습하였다.

Labeled image database of train, validation and test

매 Epoch 단계가 끝나면 Adam Optimizer를 활용하여 Parameter(Weight 값)를 수정하고, 수정된 Parameters를 활용하여 Loss Function을 구하여 학습을 평가한다. Loss Function으로는 Cross Entropy를 활용하여 구하게 되고, Loss Function이 Epoch가 지남에 따라 값의 변화가 크지 않고 일정 구간에 수렴하게 되면 학습을 완료하게 된다. 본 논문에서는 500 Epoch 이전에 Loss Function이 수렴하게 되어 500 Epoch에서 학습을 완료하였다.

Fig. 8은 딥러닝 VGG-16 모델을 학습시키는 과정에 대한 Flow Chart이다. 2.1.2장에서 서술한 것과 같이 ROI를 지정하고 Padding영역을 부여하여 Resize한 뒤 최종단인 Softmax의 출력이 9개로 수정된 모델에 반복적으로 학습을 시키는 과정을 보이고 있다. 실험적으로 전체 학습 DB에 대한 학습을 500번 반복하였을 때, 결과가 수렴하는 것을 확인하고, 학습을 완료하였다.

Fig. 8

Training process

2.3 후처리(모델 실행)

Fig. 9는 미리 학습된 Parameters를 바탕으로 새로 들어오는 입력에 대한 결과를 출력하는 과정이다. 영상 전처리는 학습과 동일하게 진행하며, 미리 학습된 Parameters와의 연산을 통하여 최종적으로 9가지 상태에 대한 확률값을 출력해준다.

Fig. 9

Running process

본 논문에서는 Table 1의 Test Set 1,058장을 활용하여 모델을 실행하고 Test하였다.

학습된 Parameters기반의 VGG-16 모델을 통과한 Data의 출력 값은 0에서 1사이의 값을 가지게 되는데 1차적으로 Fig. 7과 같은 Label Data에서 최소가 될 수 있는 값인 0.11(1 / 9)를 Threshold로 하여 구분하고, 1차 구분을 기반으로 주차선을 이탈하지 않은 영역을 N개 추정하여 개략적으로 주차선을 이탈한 영역을 탐색한 뒤, 1 / N의 절반의 값을 최종 Threshold로 하여 주차선 이탈영역에 대한 경고를 출력한다.

Fig. 10과 같은 경우는 1차 Threshold인 0.11을 기준으로 총 5개 영역이 주차선 영역을 이탈하지 않았고, 이를 바탕으로 최종 Threshold를 (1 / 5) / 2 = 0.1로 정하여 결과 Warning을 출력하고 있다.

Fig. 10

Parking line dparture wrning result


3. 실험 환경

3.1 임베디드 시스템

Table 2는 본 논문에서 임베디드 보드로 선택한 NVIDIA Jetson TX2 보드의 CPU, GPU, Memory 스펙을 나타내고 있다. 일반적인 PC와는 다르게 CPU와 GPU가 같은 Memory를 접근 / 활용한다.

NVIDIA Jetson TX2 CPU, GPU, memory

Test set for NVIDIA Jetson TX2 environments

CPU와 GPU가 같은 Memory를 사용하는 구조적인 문제 때문에, TX2에서 Tensorflow 사용 시 종종 GPU Sync Error가 발생하는데, 이는 Tensorflow 내에서 Memory 할당량을 제한하는 Code를 삽입하여 해결하였다.

NVIDIA Developer에서 제공하는 JetPack을 다운로드 후 TX2 보드를 Flashing을 진행하였다. Ubuntu 16.04 환경으로 구축된 TX2 보드에 PC와 마찬가지로, Tensorflow, Keras 및 Keras 구동에 필요한 Python 패키지들을 설치한 후, Python Language를 사용하여 PC 환경에서 미리 학습된 Parameters를 Load하며, VGG-16 모델을 구동하였다.(본 논문에서는 JetPack 3.2, Cuda 9.0, cuDNN 7.0, Tensorflow 1.5, Keras 2.1을 활용하였다.)

3.2 AVM 시스템

Fig. 11은 본 논문의 실험에서 사용한 AVM 모듈이다. AP(Application Processor)인 Exynos 8890 칩셋을 이용하여 자동차 전장 업체인 Cammsys에 제작한 임베디드 보드로서 HD급의 광각 카메라 4대를 LVDS(Low Voltage Differential Signaling) 입력으로 받아,19) 캘리브레이션 Data를 활용하여 Top View 영상으로 변환하는 역할을 담당하였다.

Fig. 11

Exynos board

Table 4는 AVM 모듈인 Exynos 보드의 CPU / GPU / Memory / SW에 대한 스펙을 보여주고 있다. 보드의 특성상 보드 자체에 컴파일러를 보유하고 있지 않기 때문에, 제작사에서 제공한 Tool Chains를 활용, 크로스 컴파일 하여 Exynos 보드에 AVM 기능을 Porting하여 사용하였다.

Exynos board environments

실험 차량은 충북대학교 스마트카연구센터에서 보유하고 있는 IONIQ 차량을 활용하였다. 차량에 4대의 광각 카메라를 부착하였고, 이를 바탕으로 AVM 영상을 활용하였다.

Fig. 12는 IONIQ 차량에 4개의 광각 카메라가 설치된 위치를 나타내고 있다. 전방 / 후방 / 좌측 / 우측 총 4곳에 190도의 광각 카메라를 설치하였다.

Fig. 12

Camera position on vehicle

본 차량을 활용하여, 실시간으로 주차선 이탈 경고 시스템을 테스트 하였으며, 학습과 평가를 위하여 DB를 취득하였다.


4. 실험 결과

본 논문에서 제안한 방법의 성능 평가를 위하여 전체 DB 중 약 6분의 1을 평가만을 위한 Test Set(1,058장)으로 지정하여, 평가를 실시하였다.

평가 환경은 PC에서 GTX-1050와 GTX-1080Ti 두 가지의 그래픽 카드를 활용하여 실시하였고, 임베디드 보드로는 NVIDIA Jetson TX2에서 실시하였다.

추가적인 사양으로는 GTX-1050을 사용한 PC는 Inter Core i7-7700HQ CPU 기반의 Laptop을 활용하였고, GTX-1080Ti를 사용한 PC는 Inter Core i7-7700K CPU 기반의 Desktop을 사용하였다.

4.1 결과 성능 평가

주차선을 이탈한 영역을 찾는 것을 목표로 하는 Function이므로, 주차선을 이탈한 영역으로 검출되면 Positive, 이탈하지 않은 영역으로 검출되면 Negative로 설정 후 Confusion Matrix를 활용하여 Precision, Recall을 계산하였다. Table 5는 Confusion Matrix 결과에 대한 Table이다.

Precision=True PositiveTrue Positive+False Positive(7) 
Recall=True PositiveTrue Positive+False Negative(8) 

Confusion matrix result of parking line departure warning system

Fig. 13은 False Positive, Fig. 14는 False Negative의 경우를 나타낸다. 각각의 파란색 상자를 살펴보면, Label 결과와 딥러닝으로 예측된 결과가 상반되는 것을 확인 할 수 있다. 하지만, 이 Label 결과들은 모두 사람이 판단하고 저장한 것으로 Fig. 13, 14와 같이 육안으로도 주차선 이탈여부를 판단하기 모호한 경우20)라면 성능 결과를 책정함에 있어 실패로 기록될 수 있다.

Fig. 13

False positive example

Fig. 14

False negative example

본 연구 Label 단계에서는 주차선에서 안쪽선과 바깥선의 중간지점에 가상의 선을 부여하고 가상의 선을 넘은 경우 주차선을 이탈하였다고 Label하였다. 하지만, 결과적으로 다음과 같은 모호한 경우가 발생할 수 있기에 추후에는 중간이 아닌 주차선의 외곽선을 기준으로 학습하여 False Positive와 False Negative의 경우를 줄이고자 한다.

4.2 속도 성능 평가

본 논문에서는 2가지 종류의 그래픽카드를 활용한 PC 환경과 TX2 보드를 활용한 임베디드 보드 환경에서의 결과를 FPS로 비교하였다. Table 6은 서로 다른 HW 환경에서의 결과물을 보여주고 있다.

Comparison according to graphic card platform

각 환경에서 같은 DB(1,058장의 Test Set Data), Language (Python), 딥러닝 Framework(Keras, Tensorflow), 딥러닝 모델(VGG-16), 딥러닝 Parameters(Trained)를 활용하여 실행한 결과로 CUDA core의 개수가 많아질수록 병렬 연산에 용이하여 FPS가 높아짐을 확인할 수 있다.


5. 결 론

AVM을 통한 주차선 이탈 경보 시스템은 운전자가 주차 상황을 모니터와 육안을 이용하여 이중으로 관찰함으로서 발생하는 위험상황과 지연을 프로그램으로 완화시켜줄 수 있는 시스템이다. 본 논문에서는 성능이 비교적 좋은 HW를 포함하고 있는 Desktop, Laptop 환경뿐만 아니라, 실제 차량에 적용시킬 수 있는 임베디드 시스템에서의 테스트 또한 고려하여 설계하여 연구의 실적용이 가능하다는 장점이 있다.

Jetson TX2 보드 환경에서 현재 5.5~6 사이의 FPS를 보여 주고 있는데, 현재 실 제어가 연결된 부분이 아니며, 주차 상황이라는 특성상 차량의 운행 속도가 10 km/h 이하로 운행되기 때문에 현재 FPS만으로도 원활한 작동이 가능하다.

추후 연구 주제로는 본 연구에 실제 차량 제어를 적용하여, 카메라를 활용한 자동 주차 시스템을 연구하고, 실 제어와 연결하는 연구를 진행하고자 하며, 동시에 제어의 안전성을 위하여 딥러닝 모델을 최적화하여 FPS를 높이고자 한다.

Acknowledgments

A part of this paper was presented at the KSAE 2018 Spring Conference

이 논문은 2019년도 정부(과학기술정보통신부)의 재원으로 정보통신기술진흥센터의 지원을 받아 수행된 연구임(No R7117-19-0164, 차량 통신 기반의 광역 주행환경인지 및 협조 주행기술 개발).

References

  • Nissan, Around View Monitor System, http://www.nissan-global.com/en/technology/overview/avm.html (2019).
  • J. S. Lee, K. Choi, T. Park, and S. C. Kee, “A Study on the Vehicle Detection and Tracking Using Forward Wide Angle Camera”, Transactions of KSAE, 26(3), p368-377, (2018). [https://doi.org/10.7467/ksae.2018.26.3.368]
  • Y. H. Yu, and S. W. Jang, “Design and Implementation of 4-sided Monitoring System providing Birds Eye View in Car PC Environment”, Journal of the Korea Institute of Information and Communication Engineering, 16(1), p153-159, (2012). [https://doi.org/10.6109/jkiice.2012.16.1.153]
  • Nhtsa, https://www.nhtsa.gov (2019).
  • J. S. Lee, and S. C. Kee, “Empty Parking Space Detection Method using Around View Monitoring System”, Journal of Institute of Control, Robotics and Systems, 23(6), p455-461, (2017). [https://doi.org/10.5302/j.icros.2017.17.0043]
  • D. Lee, J. S. Lee, S. Lee, and S. C. Kee, “The Real-time Implementation for the Parking Line Departure Warning System”, IEEE International Conference on Intelligent Transportation Engineering, (2018). [https://doi.org/10.1109/icite.2018.8492605]
  • C. Wang, H. Zhang, M. Yang, X. Wang, L. Ye, and C. Guo, “Automatic Parking based on a Bird’s Eye View Vision System”, Advances in Mechanical Engineering, 6, p1-13, (2014). [https://doi.org/10.1155/2014/847406]
  • K. Simonyan, and A. Zisserman, “Very Deep Convolutional Networks For Large-Scale Image Recognition”, arXiv preprint arXiv:1409.1556 (2015).
  • H. G. Jung, and J. K. Suhr, “Lane Detection-based Camera Pose Estimation”, Transactions of KSAE, 23(5), p463-470, (2015). [https://doi.org/10.7467/ksae.2015.23.5.463]
  • Darkpgmr, https://darkpgmr.tistory.com/82 (2018).
  • N. Bhandary, C. MacKay, A. Richards, J. Tong, and D. C. Anastasiu, “Robust Classification of City Roadway Objects for Traffic Related Applications”, IEEE SmartWorld, Ubiquitous Intelligence & Computing, Advanced & Trusted Computed, Scalable Computing & Communications, Cloud & Big Data Computing, Internet of People and Smart City Innovation, (2017).
  • S. Lee, D. Hyeon, G. Park, I. Baek, S. W. Kim, and S. W. Seo, “Directional-DBSCAN: Parking-slot Detection Using a Clustering Method in Aroundview Monitoring System”, IEEE Intelligent Vehicles Symposium, p19-22, (2016). [https://doi.org/10.1109/ivs.2016.7535409]
  • H. G. Jung, Y. H. Lee, and J. Kim, “Uniform User Interface for Semiautomatic Parking Slot Marking Recognition”, IEEE Transactions on Vehicular Technology, 59(2), p616-626, (2010).
  • S. C. Kee, “A Study on the Image DB Construction for the Multi-function Front Looking Camera System Development”, Transactions of KSAE, 25(2), p219-226, (2017). [https://doi.org/10.7467/ksae.2017.25.2.219]
  • D. Lee, J. S. Lee, and S. C. Kee, “Parking Line Departure Warning System Based on AVM Image”, KSAE Spring Conference Proceedings, p801-802, (2018).
  • Keras-team, Keras Project, GitHub Repository, http://github.com/fchollet/keras (2019).
  • N. Yadav, and U. Binay, “Comparative Study of Object Detection Algorithms”, International Research Journal of Engineering and Technology(IRJET), 4(11), (2017).
  • M. Bechtel, E. McEllhiney, and H. Yun, “DeepPicar: A Low-cost Deep Neural Network-based Autonomous Car”, IEEE 24th International Conference on Embedded and Real-Time Computing Systems and Application, (2018). [https://doi.org/10.1109/rtcsa.2018.00011]
  • W. J. Lo, and D. T. Lin, “Embedded System Implementation for Vehicle Around View Monitoring”, Internationial Conference on Advanced Concepts for Intelligent Vision Systems, p181-192, (2015). [https://doi.org/10.1007/978-3-319-25903-1_16]
  • J. H. Kwak, and W. Y. Kim, “Virtual Contamination Lane Image and Video Generation Method for the Performance Evaluation of the Lane Departure Warning System”, Transactions of KSAE, 24(6), p627-634, (2016). [https://doi.org/10.7467/ksae.2016.24.6.627]

Fig. 1

Fig. 1
Example of calibration ground

Fig. 2

Fig. 2
Original top view image

Fig. 3

Fig. 3
Problem with general method resize

Fig. 4

Fig. 4
Input top view image

Fig. 5

Fig. 5
Parking line departure labeling tool

Fig. 6

Fig. 6
Data before correction

Fig. 7

Fig. 7
Data after correction

Fig. 8

Fig. 8
Training process

Fig. 9

Fig. 9
Running process

Fig. 10

Fig. 10
Parking line dparture wrning result

Fig. 11

Fig. 11
Exynos board

Fig. 12

Fig. 12
Camera position on vehicle

Fig. 13

Fig. 13
False positive example

Fig. 14

Fig. 14
False negative example

Table 1

Labeled image database of train, validation and test

Train set Validation set Test set Total
4,239 1,059 1,058 6,356

Table 2

NVIDIA Jetson TX2 CPU, GPU, memory

CPU GPU Memory
TX218) HMP Dual Denver
2/2 MB L2 + Quad
ARM A57/2 MB L2
NVIDIA Pascal,
256 CUDA Cores
8GB 128bit
LPDDR4

Table 3

Test set for NVIDIA Jetson TX2 environments

JetPack Cuda / cuDNN Tensorflow / Keras
3.1 8.0 / 6.0 1.3 / 2.1
3.1 8.0 / 6.0 1.4 / 2.1
3.2 9.0 / 7.0 1.5 / 2.1

Table 4

Exynos board environments

CPU 2.3G Hz Quad(Custom Core) +
1.6 GHz Quad(Cortex-A53)
GPU Mail-T880 MP12
Memory LPDDR4
S/W Linux Ubuntu
Yocto Linux 2.3.3(pyro)

Table 5

Confusion matrix result of parking line departure warning system

True positive 2,165
True negative 7,294
False positive 44
False negative 19
Precision 98.01 %
Recall 99.13 %

Table 6

Comparison according to graphic card platform

TX2 GTX-1050 GTX-1080Ti
FPS 5.5~6 20~25 70~80
CUDA cores 256 640 3584