이상하
(Sang-Ha Lee)
1
심민경
(Min Kyung Shim)
2†
-
(Dept. of Information & Communication, Dong Seoul University, Korea)
-
(FS Solution Corporation, Korea)
Copyright © The Korean Institute of Electrical Engineers(KIEE)
Key words
ADAS, Hough, Hog, ANN, OpenCV
1. 서론
자동차 산업에서 지능형 교통 시스템 분야의 중요도가 빠른 속도로 높아지고 있다. 그 중에서도 운전자의 안전과 편의를 위한 첨단운전지원시스템(ADAS
: Advanced Driving Assistance System)의 개발이 활발하게 이루어지고 있다
(1,2). ADAS는 다양한 센스를 통해 주행환경을 인식하여 사물인식 알고리즘의 정밀 분석 결과를 기반으로 주행 중 운전자에게 경고하거나, 자동(반자동)
통제하는 것이 가능한 시스템을 의미한다. 현재 세계적으로 ADAS 기술들을 권장사항이 아닌 의무사항으로 장착하도록 추진하고 있다. 특히 미국, 유럽
등 각국이 신차안전도평가(NCPA)를 통해 ADAS 의무화 움직임이 일면서 시장규모는 더 커질 것으로 전망된다. 2015년 1월 영국 ABI Research의
조사에 따르면 전 세계 ADAS 시장 규모는 2014년 111억 달러에서 2020년까지 919억 달러, 2024년까지는 2,000억 달러에 이를 것으로
예상했다. TOYOTA와 BMW 등의 완성차 업체뿐만 아니라 구글까지 자율주행자동차 상용화 계획을 발표하고 있으며, 이를 위한 ADAS 관련 연구
및 상용화가 빠르게 진행 중이다. 국내 업체들도 확대되고 있는 ADAS 시장에 적극적으로 공략하고 있는 가운데, 차량용 소프트웨어업체, 내비게이션,
블랙박스 업체까지 시장에 뛰어들고 있는 상황이다
(3).
최근 스마트 기기의 보급률 증가에 따라 운전 중 스마트 기기 조작으로 인한 교통사고율이 급격하게 증가하고 있는 추세이다. 교통안전공단에서는 장애물
등 돌발 상황 대처능력을 실험을 통해 측정하였는데, 운전에만 집중하는 운전자의 장애물 인지 성공률은 83.3%였지만, 스마트폰을 사용 중이던 운전자는
45.8%만 성공했다. 즉, 운전 중 스마트폰 사용할 경우 인지능력이 현저히 떨어지게 되어 교통사고위험이 높아지게 되는 것을 알 수 있다. 운전 중
스마트폰의 사용은 전방 주시율이 정상주행의 절반수준으로 떨어져 차로의 이탈 가능성도 높아지고 급제동시 위험 회피 능력도 떨어져 사고 위험이 높아지게
된다는 것이다. 또한 2011년 통계청이 발표한 장래인구추계 보고서에 의하면 우리나라는 OECD 국가 중 고령화 속도가 가장 빠른 국가로 65세 이상
고령인구 비율이 2000년 7.3%에서 2010년 11.3%, 2020년 15.6%, 2030년 24.3%로 급속히 증가할 전망이다. 특히 최근 10년간
교통사고는 10.3% 감소한 반면, 고령운전자 교통사고는 14.8% 증가하였으며, 지난 25년간 전체 교통사고 사망자는 60% 이상 감소하였으나 고령운전자가
차지하는 비율은 3배 이상 증가하는 등 고령운전자의 교통사고는 심각한 사회문제가 되고 있다. 이러한 현상의 주요 원인은 고령운전자의 경우 정·동적
시력이 젊은 층에 비해 약 30%정도 저하되고 위험상황에 대한 반응시간이 늦고 돌발 상황 대처능력이 떨어지는 등 운전자의 인지력과 판단력이 모두 저하되어
있기 때문이다.
자동차 업계에서는 이러한 인지판단 오류로 인한 이러한 사고 위험성을 줄이기 위해서 다양한 기능의 ADAS의 장치가 개발되고 있다. 그동안의 카메라를
이용한 상용화 된 ADAS기술로는 차선이탈경고 시스템, 전방추돌방지 시스템, 보행자감지 시스템, 나이트비전 시스템 등이 개발되어 빠른 속도로 기술이
상용화 되고 있지만 운전자 전방 차량의 차선변경이나 전방 차량의 돌발 상황을 인지하는 기술은 아직까지 상용화 된 경우가 없다.
본 연구에서는 기존의 ADAS 기능과 차별화되게 차량용 영상을 이용한 주행 중 전방차량을 인식하고 관심 차량의 차선변경이나 돌발 상황을 실시간으로
분석하여 운전자의 전방 주의력을 높이는 진보된 ADAS 기능을 구현 하고자 한다. 개발하고자 하는 관심차량 인식 기술은 미래의 지능형 자동차 관련
분야에도 직접적인 관련이 있다.
표 1. 개발기술과 지능형 자동차 기술과의 연관성
Table 1. The correlation of the intelligence automobile technology and developed technology
Technical classification
|
Contents
|
Correlation
|
Preventive safety tech.
|
Includes passive safety (shadow area monitoring [front and rear cameras], LDWS, ABS,
VDC, etc.) and active safety (collision prevention system) systems to prevent accidents
in advance.
|
high
|
Accident avoidance tech.
|
An active safety system that automatically controls the car to minimize damage even
in the event of an accident, including an emergency braking system via video and radar.
|
medium
|
Autonomous driving tech.
|
Monitoring the situation around the technical car driving to the desired destination
only by the driver's instruction.
|
high
|
Crash safety tech.
|
Active and manual safety system for minimizing the damage in case of collision. Night
Vision camera, active headrest, etc. are representative technologies.
|
high
|
Convenience improvement tech.
|
Automatic parking, navigation system, etc., which supports the convenience of the
driver, close safety rather than simple convenience, drowsiness prevention, black
box.
|
high
|
Car information tech.
|
Based on the car's own network (In-Car Network) and external communication, it provides
technology to deliver information to the driver in real time, 360° peripheral monitoring,
network camera, etc.
|
medium
|
2. 개발 ADAS 시스템
본 연구에서 개발하고자 하는 ADAS 기술은 목적패턴과 촬영 장비를 통해 획득한 영상(전방 차량 영상)에 차량 검출 알고리즘을 적용하여 실시간으로
전방 차량들을 검출하는 1단계(전방 차량 검출)부분과 검출한 영상을 결정 트리를 이용하여 차량들의 위험 상황을 실시간으로 감지하는 2단계(위험 상황판별)부분으로
구성된다.
그림. 1. 개발 ADAS 시스템의 전체 개발 블록도
Fig. 1. The total concept block of the developed ADAS system
2.1 전방차량 검출방식 구현
차량 검출 방식은 크게 카메라로부터 영상 데이터 획득 부분과 획득한 전방 차량 영상으로부터 주행 환경의 변화(주야간에 따른 영상의 밝기 변화)에 강인하게
목적패턴을 검출할 수 있도록 하기 위한 특징추출(Feature Matching)부분인 다차선 인식(Multi-lane Recognition) 부분과
차량인식(Car Recognition)부분으로 구성된다.
그림. 2. 전방차량 검출방식 구성도
Fig. 2. The concept block of the front car recognition method
2.1.1 영상데이터 획득(Video Data Acquisition)
카메라 모듈은 라즈베리파이 카메라 모듈 (Raspberry Pi Camera Module) V2를 사용하였고 OpenCV(Open Source Computer
Vision) 라이브러리를 이용하여 카메라의 영상 데이터에 접근하였다. 카메라모듈로부터 획득한 영상의 영상 왜곡을 개선하기 위해 교정(Calibration)
과정을 수행하였다.
그림. 3. 획득 영상 데이터의 교정수행 결과(a) Acquisition original image (b) Calibration processing
image
Fig. 3. The acquisition image calibration processing result
2.1.2 다차선 인식(Multi-lane Recognition)
Hough 변환
(4)을 이용한 차선인식을 수행 한다. 밝기 차, 크기, 연결된 방향을 이용하여 위-아래 외곽선(Up-down edge)를 선별하였다. 선별된 외곽선의
Hough 변환을 통해 지지율이 일정이상인 직선을 찾는다. 직선들 중 두 직선의 교점이 설정된 소실점 박스 안에 위치할 경우 두 선을 차선으로 간주한다.
좌우 차선 중 차선의 색상이 흰색인 경우 추가로 차선을 찾는다.
그림. 4. 차선 인식 결과 화면(a) Hough transform result (b) Draw the lane recognition
Fig. 4. The lane recognition result picture
2.1.3 차량 인식(Car Recognition)
전방 차량의 그림자와 후미 등을 이용하여 차량을 탐색한다. 인식된 차선 안쪽을 ROI로 설정하고 차선 안쪽 영역의 Gray-Histogram을 구하고
하위 25%에 해당하는 값을 임계값으로 설정하다. 그림자 임계값 설정 수식은
수식(1)과 같다
(5).
임계값 미만 화소들을 라벨링(Pixel labeling)하고 차량 그림자 후보의 너비와 위치를 기준으로 차량 후보영역을 설정하고 나서 차량 후보 영역의
HOG(Histogram of Gradient) 특징을 추출한다
(6). 크기, 밝기 평균, HOG 특징을 입력데이터로 ANN(Artificial Neural Network)을 통해 학습하여 차량의 결과를 추적(Tracking)한다.
그림. 5는 HOG 특징 추출 결과이고,
그림. 6은 차량인식 절차의 흐름도,
그림. 7은 ANN 학습 수행과정 이다.
그림. 5. HOG 특징 추출 결과
Fig. 5. The extraction result of HOG feature
그림. 6. 전방차량 인식 절차도
Fig. 6. The processing diagram of the front Car recognition
그림. 7. ANN 학습 수행과정
Fig. 7. The process of ANN learning
2.2 위험상황 판별방식 구현
위험상황 판별방식 구현 부분은 전방차량의 위험상황의 특징추출과 AI 학습과정으로 나누어지고 AI 학습과정은 돌발 상황 지도학습수행과 지도학습이 완료된
AI 데이터 집합을 ANN에 적용하여 ANN구조를 완성하는 부분으로 구성되어 있다.
그림. 8. 위험상황 판별과정 블록도
Fig. 8. The block diagram of dangerous situation determination process
2.2.1 전방차량 조향 인식을 위한 특징요소 추출
차선과 전방 차량 인식 결과를 바탕으로 ANN에 학습할 특징요소들을 추출하였다.
표 2와
그림. 9는 위험상황 판단 특징요소 판단처리과정을 정리한 것이다.
표 2. 위험도 판단 특징요소 추출
Table 2. The dangerous situation determination feature element
Feature element extraction
|
Contents
|
Driving lane of the front car of attention (①).
|
Extraction based on car recognition result.
|
Ratio of the width of the lane to the next car (②)
|
Extract the relative distance because the width of the running lane is almost unchanged.
|
Steering vector of the front car of attention.
|
Extractable in 1 deg units
|
Relative acceleration of front- facing car.
|
Extractable in 10cm increments
|
Distance between the front car of attention and the camera (③).
|
Length from the bottom of the car area of attention to the center of the shot image.
|
Standard deviation of the steering vector of the forward car of attention (last 30sec).
|
|
Relative acceleration standard deviation of the car ahead (last 30sec).
|
|
Car identification
|
Separated by RV/car/ special /other
|
Representative colors of car of front attention.
|
|
그림. 9. 위험상황 판단 특징요소 추출화면
Fig. 9. The feature element extraction picture of dangerous situation assessment
2.2.2 ANN학습 및 판별과정
ANN 학습과정은 차선인식과 돌발상황 인식으로 나누어 진행하였다. 차선인식은 좌측차선, 우측차선, 중앙차선의 데이터 집합을 합쳐서 사용하였다. 돌발상황
학습은 전방 차량 급정거 상황을 차선 침범상황과 동일하게 분류하여 진행하였다. 위험상황 판별기준은 위험 상황이 발생하는 다양한 주행 영상들로부터 차량의
위치나 크기 등의 변화율을 분석하여 결정트리(Decision tree)방식으로 판별하였다. 그림 10은 전방의 특징요소추출과 위험상황 평가 결과를
화면에 실시간으로 표현한 화면이다.
그림. 10. 전방차량의 특징요소 값 및 위험상황 평가결과 화면
Fig. 10. The picture of dangerous situation evaluation result and feature element
of front car
3. 개발제품의 성능평가
3.1 개발제품의 성능평가를 위한 사용한 하드웨어 규격
본 연구에서는 개발한 운전자 전방주의력향상시스템의 성능을 평가하기 위해 사용한 메인보드인 라즈베리 파이3의 주요 규격과 모양은
표 3과 같다
(7).
표 3. 성능평가를 위해 사용한 하드웨어 규격
Table 3. The specification of Hardware for performance test
Specifications
|
Appearance
|
․Quad Core 1.2GHz Broadcom BCM2837 64bit CPU
|
|
․1GB RAM
|
․BCM3438 WiFi and Bluetooth
|
․40-pin Extended GPIO
|
․4 Pole stereo output and composite video port
|
․Full size HDMI
|
․CSI camera port for connecting a Raspberry Pi camera
|
․DSI display port or connecting a Raspberry Pi touchscreen display
|
․Micro SD port for loading OS and storing data
|
3.2 개발제품의 성능평가를 위한 시험항목 및 내용
본 연구에서 개발한 제품의 성능평가를 위한 시험항목 및 시험내용은
표 4와 같다.
표 4. 성능평가를 위한 시험항목
Table 4. The test item for performance test
ID
|
Test item
|
Contents
|
Target value
|
TC1
|
Recognition rate of car of attention (Daytime)
|
∴ Car recognition rate = (A/B)×100
∙A: Number of successful cars recognition
∙B: Total number of cars displayed on the video from the images taken while driving
∙Daytime running image: The video taken from the camera installed in front of the
car during the daytime.
|
more than 90%
|
TC2
|
Recognition rate of car of attention (Nighttime)
|
∴ Car recognition rate = (A/B)×100
∙A: Number of successful cars recognition
∙B: Total number of car displayed on the video from the images taken while driving
∙Nighttime driving image: The video taken by the camera installed in the front of
the car in the nighttime.
|
more than 80%
|
TC3
|
System performance
|
∙The video analysis algorithm of the test target product confirms that the average
number of image frames analyzed per second is 10 or more on average
∴ Formula = number of analyzed frames / execution time (sec)
∙One image frame is processed when the algorithm is executed once.
|
more than 10FPS
|
TC4
|
Response time
|
When analyzing the data of the daytime driving video file as the test subject, the
incident situation of the car of attention in front (to confirm whether the time from
the occurrence time to the warning indication is displayed on the screen is less than
250 ms)
∴ Response time = (B-A)✕C
∙A: Occurrence of an unexpected video frame number
∙B: Warning frame number
∙C: Time required to process one frame (1 sec / FPS value of image file)
∙When an unexpected situation occurs, when the car in a neighboring lane moves to
the next lane and a part of the car overlaps the lane.
|
less than 250ms
|
4. 개발제품 성능 평가
4.1 시험환경 구축
본 연구에서 개발한 제품의 성능평가를 공정하게 수행하기 위해 성능평가를 TTA(한국정보통신기술협회) 소프트웨어 시험인증연구소 의뢰하여 수행하였다
(7). TTA에서 구축한 시험환경구성은
그림. 11과 같다.
그림. 11. 성능평가를 위한 시험환경 구성도
Fig. 11. The test environment diagram of performance test
4.2 시험 절차 및 방법
TTA에서 개발제품의 성능 평가를 위해 수행한 시험절차는 총 3개로 구성되고 각 절차별 시험 방법은
표 5,
표 6,
표 7과 같다.
표 5. 성능평가를 위한 시험절차 1
Table 5. The test procedure 1 for performance test
Test Procedure 1: TC1, TC2
|
Pre-test evaluation video preparation
-The recognition mark ('green square') should be displayed on the recognized car.
-Program code review for log file (current frame index per frame of image, time, number
of car, warning, number of algorithm execution).
-Daytime driving video and night driving video must be prepared separately.
- Resolution = 640 × 480, frame rate = 15 frames / sec
No
|
File name
|
Playback time(sec)
|
Capacity(KB)
|
1
|
1.avi
|
13
|
4,175
|
2
|
2.avi
|
10
|
5,239
|
3
|
3.avi
|
12
|
4,808
|
4
|
4.avi
|
13
|
4,061
|
5
|
5.avi
|
14
|
4,344
|
6
|
6.avi
|
11
|
2,924
|
7
|
7.avi
|
15
|
4,106
|
8
|
8.avi
|
9
|
3,459
|
9
|
9.avi
|
10
|
2,961
|
10
|
10.avi
|
15
|
5,032
|
11
|
11.avi
|
10
|
3,195
|
12
|
12.avi
|
15
|
5,810
|
13
|
13.avi
|
12
|
3,645
|
14
|
14.avi
|
12
|
8,129
|
15
|
15.avi
|
8
|
3,131
|
|
표 6. 성능평가를 위한 시험절차 2
Table 6. The test procedure 2 for performance test
Test Procedure 2: TC1, TC2, TC3
|
Test execution
1.Run the terminal after powering up the test product (Ctrl + Alt + T)
2.Go to (~ / TEST / Program) folder: enter cd TEST / Program in command window
3. Run test_program: Enter ./test_program in command window.
4.After confirming the 1.Day (D), 2.Night (N) message, enter
Enter 'N' when executing
D1 ' and
TC2
when executing
TC1
.
5.Please input video index (1 ~ 15) After confirming the message, enter the file name.
6. Repeat steps '4' to '5' (change image file for sample)
-Car Recognition Success: A green square is displayed at the part where the car appears.
-Car Recognition Failure: No green squares on the car until the end of the video.
7. Check
TC3
related log file.
-Check on Frame index, Algorithm execution count, Processing time(Spending time).
Number of Algorithms per Second = Number of Algorithms Executed / Total Image Processing
Time (sec).
|
표 7. 성능평가를 위한 시험절차 3
Table 7. The test procedure 3 for performance test
Test Procedure 3: TC4
|
Pre-test evaluation video preparation
-Program code review for log file (current frame index per frame of image, time, number
of car, warning, number of algorithm execution).
-Daytime running video (left / right car changing lane) must be ready.
- Resolution = 640 × 480, frame rate = 15 frames / second
No
|
File name
|
Playback time(sec)
|
Capacity (KB)
|
Occurrence event
|
1
|
31.avi
|
8
|
2,531
|
Left car lane change
|
2
|
32.avi
|
10
|
2,182
|
Right car lane change
|
3
|
33.avi
|
10
|
3,749
|
Left car lane change
|
4
|
34.avi
|
7
|
1,974
|
Left car lane change
|
5
|
35.avi
|
9
|
2,630
|
Left car lane change
|
6
|
36.avi
|
10
|
2,757
|
Right car lane change
|
7
|
37.avi
|
12
|
6,740
|
Right car lane change
|
8
|
38.avi
|
16
|
5,857
|
Right car lane change
|
9
|
39.avi
|
12
|
3,020
|
Right car lane change
|
10
|
40.avi
|
11
|
2,389
|
Right car lane change
|
Test execution
1.Run the terminal after powering up the test product (Ctrl + Alt + T)
2.Go to (~ / TEST / Program) folder: enter ․cd TEST / Program in command window.
3. Run test_program: Enter ./test_program in command window.
4. After confirming message 1.Day (D), 2.Night (N), enter D
5.Please input video index (31 - 40) after confirming the message, input the file
name (number) and execute it.
6. After analyzing the image, check the event log
-Check image frame index value at the time of warning message occurrence.
7.Analyze associations by frame with video playback program and check index value
of actual event occurrence frame
-When the car moves to a side lane and a part of the car overlaps the lane.
8. Repeat steps '5' to '6'.
|
4.3 시험 결과치
위의 언급한 시험절차에 따라 수행한 시험항목별 시험결과는
표 8과 같다.
표 4에서 언급한 시험항목별 목표치를 충분한 만족하는 시험결과를 얻었다.
표 8. 성능평가를 위한 시험절차 3
Table 8. The test procedure 3 for performance test
ID
|
Test item
|
Target value
|
Test Result
|
Remarks
|
TC1
|
Recognition rate of car of attention (Daytime)
|
more than 90%
|
94.53%
|
Recognition of 121 cars (total of 128 cars)
|
TC2
|
Recognition rate of car of attention (Nighttime)
|
more than 80%
|
99.07%
|
Recognition of 107 cars (total 108 car)
|
TC3
|
System performance
|
more than 10FPS
|
18.78 FPS
|
Up to 28.48 times, at least 12.71 times
|
TC4
|
Response time
|
less than 250ms
|
247ms
|
Up to 400 ms, at least 67 ms
|
5. 결 론
본 연구에서는 기존 연구되었던, 단순 동일차선 전방차량과 충돌소요시간(TTC : Time To Collision)만을 이용한 알림 시스템이 아닌 양옆
차선을 포함한 전방차량의 위험도를 정량화하여 운전자에게 위험상황을 알리는 시스템을 개발하였다. 본 연구에서 개발한 알고리즘을 일반적인 임베디드보드인
라즈베리 파이3에 구현하여 성능을 평가하였다. 성능평가의 공정성을 확보하기 위해 모든 시험평가는 TTA(한국정보통신기술협회) 소프트웨어 시험인증연구소에
의뢰하여 수행하였다. 시험결과는 개발 목표치 대비 주간 인식률에서 4.53%, 야간 인식률에서 19%, 시스템 성능에서 8.78 FPS, 응답시간에서
3ms에서 초과 달성하였다.
향후 본 연구 수행 과정에서 획득한 ANN(Artificial Neural Network) 입력 데이터 모델의 이해와 구축 노하우를 기반으로 현재는
운전자의 운전습관, 졸음여부 등을 분석하는 연구를 계속 진행할 계획이다. 향후 본 연구의 개발기술은 무인자동차 및 전기차 분야에 핵심기술로 발전 가능한
기술이며 ADAS 기술과 국내 관련업체들의 세계시장 경쟁력을 한 단계 높여줄 수 있으므로 국가적으로도 파급효과가 클 것으로 예상된다.
References
Park C., Kim S., Lee H., 2014, A Study on Approaching Mode of Adaptive Cruise Control
System, KSAE, pp. 666-669
, http://www.continentalcorporation.com/ www/portal_com_en
Shin Y., Seol S., Lee K., Bae S., 2016, Patent Analysis for Innovative Technology
Development of Advanced Driver Assistance Systems (ADAS), Journal of Information Technology
and Architecture, Vol. 13, No. 1, pp. 147-160
, https://docs.opencv.org/3.0-beta/doc/ py_tutorials/py_imgproc/py_houghlines/py_houghlines.html
, https://web.stanford.edu/class/ee368/Handouts/Lectures/2014_Spring/Combined_Slides/
4-Histograms-Combined.pdf
, https://www.learnopencv.com/histogram- of-oriented-gradients/
, https://www.raspberrypi.org/products/ raspberry-pi-3-model-b/
, http://sw.tta.or.kr/service/gsce_it.jsp
저자소개
1987년 울산대학교 전자계산학과 졸업
1991년 아주대학교 컴퓨터공학과 졸업 석사
1991년~1992년 (주)큐닉스컴퓨터
1993년~1999년 (주)케이엔아시스템
2002년 아주대학교 컴퓨터공학과 박사
2000년~현재 동서울대학교 정보통신과 교수
E-mail :
shyi@du.ac.kr
1993년 2월 22일생.
2017년도 상명대학교 에너지그리드학과 졸업(공학사).
2017~현재 상명대학교 에너지그리드학과 재학(석사과정).
E-mail :
gnscjftls@naver.com
2018년 광운대학교 컴퓨터소프트웨어학과 졸업
2017년~현재 (주)에프에스솔루션 연구원
E-mail :
sim.mmmmk@fssolution.co.kr