Ⅰ. 서론
1939년 뉴욕세계박람회에서 노먼 벨 게디스와 제너럴 모터스로부터 처음 등장한 자율주행의 개념은 1977년 일본 쓰쿠바 기계공학 연구소로부터 세계 최초의 자동차가 개발되었다. 각국의 국가 연구소, 자동차 기업 연구소, 대학 연구소 등의 연구기관에서 연구해오던 자율주행 기술은2000년대에, 조건부 자동화 수준의 높은 완성도와 기술들을 선보였다. 2010년에는 향상된 프로세서 성능으로 머신러닝을 통해 자율주행 기술 연구 속도에 가속을 더하고, 세계 주요 자동차 생산기업들이 2025년에 자율주행 무인자동차 양산화를 목표로 진행 중에 있다.[1] 자율주행 무인자동차는 레이다, GPS, 영상 카메라등 각종 센서를 이용해, 자동차 주위의 환경을 인지하고 운전자가 아닌 기계가 스스로 판단하여 목적지까지 도달하는 시스템이다. 미국 자동차 협회(SAE)는 J3016문서에 자율주행시스템의 기술 발전 수준을 6단계로 분류하였다.[2]
2019년 현재 상용화된 단계는 1~2단계로, 차선 이탈경보, 자동 급제동 장치 등 자동차가 조향 또는 가/감속을 자동차 스스로 진행할 수 있으나 운전자가 주도적으로 주행환경을 인지, 식별, 판단하고 주행의 모든 기능을 수행하는 부분 자동화 단계이다.
본 연구에서는 차량의 전방과 계기판에 카메라를 설치하고 보조수단으로써 Lidar를 사용하여 이미지 분류 성능이 높은 CNN인공신경망 모델을 활용하여 운전자의 시선 추적과 시선을 중심으로 운전자의 시선 조향을 학습하고, 전방의 장애물을 분류, 검출하여 주변 주행 상황을 학습한다.
학습된 모델로 운전자 시선 사각지대 보조 시스템의 주 기능을 수행하고, 이를 보조하기 위한 기능을 Lidar로주변 장애물 간의 거리에 따라 위험단계를 3단계로 나타내어 운전자가 주시할 수 없는 사각지대와 사고 발생 위험요소를 단계별로 검출하여 운전자의 전방 및 사각지대를 보조함으로써, 자율주행시스템 기술 중 2단계 수준을 고도화하는 것을 목표로 한다. 2장에서는 제안한 CNN인공신경망 모델로 사용자 시선 조향과 주위 위험요소에 대한 강화학습을 수행한다. 3장에서는 실험을 진행하여 제안한 CNN 기반 운전자 전방 및 사각지대 보조 시스템의 인식률과 검출률, 속도를 측정하여 성능을 평가한다.
Ⅱ. CNN 기반 운전자 시선 사각지대 보조시스템 구현
1. 기존 시선 조향 검출 시스템
가. 비디오 기반 시선 조향 검출 시스템
기존 영상 데이터 기반으로 시선의 조향을 검출하는 시스템은 카메라의 렌즈를 사람의 눈동자에 초점을 맞추고, 비디오로 촬영하여 눈동자의 움직임을 기록한다. 기록을 위해 가장 보편적으로 사용하는 비디오 기반 시선추적은 광학 기반 추적 기술을 사용한다.[3] 적외선과 근적외선으로 눈동자의 망막에서 반사되는 빛을 통해 동공의 움직임을 파악하여 사용자의 시선이 향하는 위치를 Trackin을 한다. 동공 움직임을 정확하게 추적하기 위해는 사용자는 시선이 고정된 카메라 렌즈 중심에 위치해야 하며, 얼굴은 고정되어야 한다. 사용자가 얼굴을 움직일 수 없는 제약에 따른 불편함을 개선한 고글형 시선추적 기술은, 안경, 휴대용 헤드 마운트에 카메라를 장착하여 사용자가 자유롭게 시선을 바꿀 수 있으나, 신체에 지속적으로 착용해야 올바르게 작동하는 한계점이 있다. 또한 실시간으로 동공의 위치를 추적하며 계산을 수행하여 하드웨어의 리소스를 지속적으로 요구한다.
나. Haar 방식 시선 조향 검출 시스템
Haar-like feature[4] 분류기는 얼굴 영역 여부를 검사하여 이미지의 특징을 생성한다. 기존의 모든 픽셀을 처리하여 특징을 생성하는 이전 탐지 방식보다 간단하여 적은 리소스 요구량과 처리 속도가 빠르다.
그림 1. Haar-like feature 분류 과정
Fig. 1. Haar-like feature classification process
위 분류기를 이용한 Haar Cascade Classifiers 기법[5]은 객체 인식 기법 중 기존 인식 기법보다 빠르고 효율적인 방법이다. 컴퓨터는 사람처럼 객체의 형태를 추론하여 판별하지 못하기에, 객체를 추론하기 위하여 객체의 특징을 기록한 필터를 사용한다. 사람의 얼굴 위에 흑백의 사각형을 중첩한 후, 밝은 영역에 속한 픽셀값들의 평균에서 어두운 영역에 속한 픽셀값의 편차를 구하여 필터를 추출하고, 추출한 기존 필터와 새로 추출한 필터와의 비교를 통해 객체를 추론하는 필터를 생성한다. 이때, 다수의 유효하지 않은 필터가 생성되어 처리 속도를 저하하는 문제점이 있다. 이를 개선하기 위하여 Boosting알고리즘의 하나인 AdaBoost(adaptive boosting) 기법이 제안되었다. AdaBoost 기법은 처음에는 낮은 임계값을 분류기를 적용하고 필터 검출 진행 단계가 증가함에 따라 높은 임계값을 분류기를 적용하여 필터를 통과하지 못한 학습데이터를 다시 재학습하여 필터를 재생성함으로써 분류 성능을 향상시킨다.[6] 위의 방법으로 매우 빠르게 영상에서 물체를 찾을 수 있으나 검출 성능을 높이기 위해서는 대량의 학습데이터가 필요하다.
2. CNN 기반 시선 조향 추적 시스템 설계
CNN은 기존 Neural Network 앞에 여러 계층의Convolution Layer을 이어붙인 기법이다.[7] ConvolutionLayer은 통해 입력받은 영상 데이터의 특징(Feature)을 추출하고, 추출한 특징의 값을 비선형의 값으로 바꾸어주는 액티베이션 함수(Activiation Function)으로 구성된다.
가. CNN 모델 선정
CNN의 모델의 한 종류인 Conv는 픽셀 값으로 구성된 학습 가능 가중치와 바이어스 값으로 생성된 필터를 비선형 값으로 변형 후, 다음 Layer에 달하여 재학습한다.
그림 2(a)의 Conv1D는 이미지의 특징값으로 생성한 필터의 일정 시간 간격으로 배치된 데이터들의 1차원 배열들을 동일한 신호값으로 각 시간마다 동일한 가중치를 사용하여 평균 근사치를 계산한다.
그림 2. Conv1D와 Conv2D의 비교
Fig. 2. Comparing Conv1D and Conv2D
그림 2(b)의 Conv2D는 이미지의 특징값으로 생성한 필터의 행과 열을 2차원 신호 값으로 변환하여 각각의 특징에 맞는 가중치를 더해 계산한다. 2차원을 배열 형태로 구성되어 영상처리에 주로 사용된다.
나. 사전 실험
얼굴 및 눈동자의 조향을 정확하게 검출하는 것은 운전자의 시선 사각지대를 판별하는 핵심 기능이라 할 수 있다. 본 시스템에서 가장 알맞은 시선 조향 분류 알고리듬 모델 구현을 위해서 얼굴 인식에 주로 사용하는 기법들의 성능 비교를 수행한다.
성능 비교를 위해 사용한 기법은 Haar-like feature,Haar Cascade Classifiers, Conv2D 3가지 기법을 사용한다.
각 기법 성능 실험 시 사용한 카메라는 L사의 C920카메라를 이용하였으며, 해상도는 640x480, FPS는 60, 동영상 화소는 307,200, GPU 환경에서 데이터의 양에 따른 성능을 비교하는 사전 실험을 진행한다.
그림 3은 각각의 알고리듬의 정확도를 보여준다.Haar-like Feature 기법은 객체 인식에 일반적으로 사용하는 기법이다. 실험 결과를 통해 얻은 최종 정확도는 61.1%이다. 이미지에서 얼굴의 각도가 조금만 달라져도 얼굴을 인식하지 못하여 정확도가 낮은 문제점이 있다.
그림 3. Conv2D,Haar Like, Haar Cascade 비교
Fig. 3. Comparing Conv2D, HaarLike and Haar Cascade
Haar-like Cascade 기법의 최종 정확도는 88.2%이다. 준수한 정확도 검출 성능을 보여주었으나, 정면의 얼굴만 인식하는 문제점이 있어, 9가지 조향을 분류하는 본 시스템에서는 적합하지 않았다.
Conv2D 기법은 최종 98.82%의 정확도의 얼굴 검출 성능을 보여주었다. 또한 얼굴의 상, 하, 좌, 우 각도가 다르거나 얼굴의 크기가 영상 데이터에서도 준수하게 얼굴을 인식하는 결과를 보여주어 시선 조향을 분류하는 본 시스템에 적합하다고 판단했다.
이에, 본 시선 조향 분류기는 Haar 방식보다 정확도와 인식률이 개선된 Conv2D 모델[8]을 사용한다.
다. 제안한 시스템 구성
본 논문에서 제안하 시선 조향 추적을 통한 시선 사각지대 보조 시스템은 운전자의 시선 추적을 위해 2개의 카메라를 설치한다.
1. 운전자를 향하여 차량 계기판 위에 설치된 카메라,
2. 차량 전방의 주행 상황을 파악하기 위해 차량 전방을 향해 설치된 카메라.
위와 같이 설치된 2개의 카메라를 통해 입력된 영상데이터로, 실시간 운전자의 시선 조향을 추적하고, 운전자의 시선에 보이지 않는 차량 전방의 장애물을 탐지한다.
장애물의 거리를 측정하기 위하여 Lidar와 초음파 센서를 사용하며, 장애물과의 거리에 따라 3단계로 분류하여 운전자의 전방 및 사각지대를 보조한다. 시스템의 핵심 기능인 운전자 시선 검출을 통한 시선 조향 분류 기능은 학습된 모델을 사용하여 분류한다.
라. 훈련 데이터 수집
제안하는 시스템 구현을 위해 10명으로부터 9가지 조향을 수집하여 시선 조향 분류 기능 수행을 위한 데이터를 추출하여, 운전자의 시선 조향 추론을 위한 데이터로 사용했다.
시선 조향 분류 기능 모델 학습에 사용하는 이미지 데이터시트의 해상도 크기는 128*128이며, 분류할 범주의 수는 9가지이다. 표1에서는 얼굴의 방향과 눈동자의 방향에 대한 범주를 보여준다.
표 1. 시선 조향 데이터 목록
Table 1. Eye Direction Data List
각 범주당 9,100장의 학습 이미지 데이터를 사용하며, 총 81,900장의 이미지 데이터를 사용한다. 그림 4는 학습 이미지 데이터의 몇 가지 예시이다. 이미지 데이터 중 73,710장(90%)의 이미지를 학습데이터로 사용하고8,190장(10%)의 이미지를 테스트 데이터로 활용한다.
그림 4. 학습 데이터 예시 사진
Fig. 4. Example Learning Data Photograph
마. 운전자 시선 분류 Conv2D 모델
본 시스템에서 사용하는 시선 조향 분류기는 대용량의 데이터와 다수의 조건 학습을 위한 다수의 계층을 쌓기에 모델의 층의 개수가 많아지고 이는 은닉층(hiddenlayer)의 깊이가 깊은 모델이 된다.
Deep Networks 방식을 이용하여 모델의 깊이를 깊게 만들수록 정확도와 성능이 개선되나 Deep Networks모델의 깊이가 일정 이상 깊어지면 Degradation 문제로 인해 성능에 악영향을 준다.[9]
이는 학습이 잘 이루어지지 않기에, 비용함수(CostFunction) 값이 수렴하지 않고 모델의 Layer 층이 깊을수록 파라미터가 증가하여 과적합 현상이 일어날 가능성이 높아진다.
또한 은닉층 망의 크기가 커질수록 연산량이 증가하여, 모델 훈련 시간이 증가하는 문제에 봉착할 수 있다. 과적합 현상은 학데이터를 과하게 잘 학습되었다는 의미로, 학습된 데이터의 오차는 감소하나, 실제 데이터에서는 오차가 증가하는 현상이다.
본 Conv2D 모델의 학습을 수행할 때 학습률(Learning Rate)은 0.01으로 설정하 배치 사이즈(Batch size)는 350으로 설정한다. 또한 데이터시트에 사람의 종류가 많지 않아, 과적합 현상을 방지하기 위하여 반복 학습 횟수를 100번으로 설정하여 진행했다.
모델 학습 시 정확도에 유의미한 영향을 끼치는 가중치(weight)는 한쪽 데이터로 치우치지 않도록 평균값을 찾도록 설정하고, 학습이 완료된 모델을 테스트 데이터로 테스트를 진행한 결과는 아래 그림 5와 같다.
그림 5. 제안하는 Conv2D 학습 결과(붉은 실선 : loss rate, 파란 실선 : accuracy)
Fig. 5. Conv2D training result of the proposed method(Red solid: loss rate, Blue solid: accuracy)
그림 5의 빨간 실선은 손실율(loss Rate)로 학습 진행 도중에 손실된 비율을 표현하며, 파란 실선은 테스트 데이터로 학습 모델을 사용했을 때 측정된 정확도 값이다.100회 반복 학습이 끝난 최종 손실율은 0.03064를 기록하고, 정확도는 98.72%를 기록했다.
3. 운전자 기준 주행 시 안전도 평가
학습된 Conv2D 모델을 사용하여 임의의 운전자 정면 사진을 9가지 유형 중 하나로 분류한 뒤 Lidar로 측정한 거리값과 차량 전방 및 운전자 사각지대에서 검출한 오브젝트 유형을 사용하여 다음과 같이 운전자 주행안전도 점수(Rn)을 부여한다.
\(R_{n}=100-(B \times(0.05 \times D)) \times A\) (1)
식(1)의 B는 차량 전방 및 운전자 사각지대에서 검출한 object의 유형을 의미한다. 검출된 object가 생명체 또는 생명체가 탑승한 object의 경우 1의 가중치를, 비생명체일 경우 0.5의 가중치를 부여한다. D는 차량과 검출된 object 간의 거리를 의미한다. 이때, 거리의 단위는 cm이며, cm당 0.05의 가중치를 부여한다. A는 Conv2D 모델을 통해 분류한 시선 방향을 의미한다. 운전자의 얼굴과 눈동자가 정면을 주시했을 경우 0.75의 가중치를, 운전자의 얼굴 또는 눈동자 중 정면을 주시하지 않는 경우 1의 가중치를, 운전자의 얼굴과 눈동자 모두 정면을 바라보지 않을 경우 1.5의 가중치를 부여한다.
4. 운전자 사각지대 오브젝트 검출
차량 전방의 위험요소를 지하기 위하여 Google 사의 Tensorflow를 기반으로 구축한 Tensorflow ObjectDetection API Open Source Framework에서 제공하는 ‘mask_rcnn_inception_v2_coco’ 모델을 사용했으며 본 문에서는 글의 가독성을 위해서 위의 모델을OD (Object_Detection) 모델로 축약하여 표현한다. 웹캠코더로 차량 전방 방향을 실시간으로 촬영한 이미지를 OD 모델에 차량 전방의 사람, 차량 등의 object를 감지한 결과는 그림 6과 같다.
그림 6. 인천 국제도시 도로에서 오브젝트 감지
Fig. 6. Object Detection on Incheon International CityRoad
그림 6(a)와 같이 차량으로부터 먼 거리에 있는 차량오브젝트를 감지하고, 그림 6(b)와 같이 여러 보행자가 보행할 때 각각의 보행자를 개별 감지하는 것을 확인할 수 있다.
Ⅲ. 실험 결과
모의실험은 학습된 Conv2D 모델을 활용하여 운전자의 조향을 추론, 식별하고 운전자 조향 방향과 차량 주변위험요소 거리에 따라 단계별 보조 시스템 기능을 수행하는 과정을 서술한다.
본 논문의 모의실험에서 사용한 컴퓨터는 중앙처리장치로 Inter i7-9700K 3.6GHz CPU를 사용하며, 주기억장치는 DDR4 32G, 그래픽카드는 GTX1080ti를 사용하여 진행했다.
차량 계기판 위치에 운전자 조향 식별 카메라를, 차량전방의 시선 사각지대 위치에 object 검출 카메라를 설치한다. 두 개의 카메라에서 입력받은 영상 데이터는 실시간 운전자 시선 사각지대 보조 시스템에 사용되며, 시스템은 python 3.6으로 개발되었다.
그림 7은 구현된 시스템에서 운전자를 모니터링하는카메라에 입력된 운전자 시선 조향 이미지를 추론하고 조향 유형을 분류하는 장면이다.
그림 7. 운전자 시선 조향 추론 및 분류 결과
Fig. 7. Driver’s line of sight inference and classificationresults
운전자의 얼굴 방향과 시선 방향에 따라 표1과 같이 시선 조향을 정확히 분류하는 모습이다.
그림 8은 차량 전방의 시선 사각지대에 존재하는 카메라로 object를 식별 및 검출하고 Lidar로 object와의 거리를 측정하는 장면이다.
그림 8. 오브젝트 검출 및 사각지대 거리 측정
Fig. 8. Object detection and blind spot distancemeasurement
운전자의 시선 조향, 사각지대에 존재하는 object의유형과 차량과 oject와의 거리를 바탕으로 운전자 기준주행 시 안전도 평가를 진행한다. 이때, 사각지대에서 검출된 object 유형을 안전도 단계별 기능 1단계에서 활용한다.
안전도를 기준으로 안전도 단계별 기능을 표2와 같이 수행한다.
표 2. 운전자 안전도 분류 기준표
Ⅳ. 결론
오늘날 GPU의 기술이 발전함에 따라 기계학습 모델의 성능이 비약적으로 상승함에 따라 컴퓨터의 훈련 정확도와 속도는 더욱 향상되었다. 그 중 사람의 뇌를 모방한 신경망 네트워크는 기존 기계학습 보다 더욱 정교하고 뛰어난 인식율을 보이는 모델들을 선보이고 있다.
최근 2015년에 열린 이미지넷 경진대회에서 마이크로소프트팀이 GPU를 활용한 딥러닝 모델을 통해 96%의 정확도를 기록함으로써 모델의 이미지 인식률이 사람의 이미지 인식률과 큰 차이가 없음을 검증했다.[10]
2015년 이미지넷 경진대회 이후로 실시간으로 이미지를 인식하는 분야 중 자율주행 자동차가 대표적으로, 신 차량이 출시될 때마다 발전된 자율주행 기술을 도입, 보편화하고 있으나, 안정성의 우려와 윤리적인 문제, 트롤리 딜레마 등 다양한 문제점들이 발견되고 있다.
차량이 주행 중 제동하기 위해서는 사람이 위험을 인식하는 Perception time, 사람이 위험요소를 식별, 이해하는 Identification time, 위험요소에 어떻게 반응할 것인지 결정하는 Emotion time, 의사결정에 대한 동작의 Volition time, 제동장치가 동작하여 차량이 정차하는 제동시간, 총 5가지의 과정이 수행되어야 한다.
본 논문에서 제안하는 운전자 보조 시스템은 Perceptiontime, Identification time, Emotion time, Volitiontime 4가지의 과정을 딥러닝을 통해 자동화하여 제동 시 필요로 하는 시간을 감소하여 제동거리를 줄이는 것을 목표로 한다. 제동거리가 감소함에 따라 사고의 위험에 대한 회피/방어 능력을 향상할 수 있을 것으로 기대된다.
향후 야간 주행 시 어두운 환경에서도 운전자의 시선방향을 식별할 수 있는 기술을[11] 활용하여 분류기의 성능을 개선하고, 리소스 요구량이 많은 영상 데이터에 대한 최적화 기술[12]을 활용하여 기존 시스템보다 처리 속도가 향상된 ADAS 시스템 연구를 진행하고자 한다.
References
- Hang-Gu Lee, "New industry for commercialization of autonomous vehicles Upbringing plan.", Ministry of Land, Infrastructure and Transport Institute for Industrial Economics and Trade, May 2018.
- Joong-hyo Kim, "A Study on the Development of Self-driving AI Driving Capacity Evaluation Technique and Model.", Self-driving Research Bureau at the Korea Highway Traffic Science Institute, 2018.
- Hansen, Dan Witzner, and Qiang Ji, "In the eye of the beholder: A survey of models for eyes and gaze.", IEEE Transactions on pattern analysis and machine intelligence, Vol. 32, No. 3, pp. 479-486, Mar 2010. DOI: https://doi.org/10.1109/tpami.2009.30
- Menezes, Paulo, Jose Carlos Barreto, Jorge Dias, "Face tracking based on haar-like features and eigenfaces.", IFAC Proceedings Volumes, Vol. 37, No. 8, pp. 1-2, Jul 2004. DOI: https://doi.org/10.1016/s1474-6670(17)31993-6
- Viola, Paul, Michael Jones, "Rapid object detection using a boosted cascade of simple features.", Proceedings of the 2001 IEEE computer society conference on computer vision and pattern recognition, Vol. 1, pp. 1-8, 2001. DOI: 10.1109/CVPR.2001.990517
- Yoav Freund, Robert E Schapire, "A decision-theoretic generalization of on-line learning and an application to boosting.", Journal of Computer and System Sciences, vol. 55, no.1, pp. 119-139, Aug 1997. DOI: https://doi.org/10.1006/jcss.1997.1504
- Sven Behnke, "Related Work.", Lecture Notes in Computer Science, pp. 35-63, 2003. DOI: https://doi.org/10.1007/978-3-540-45169-3_3
- Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, "ImageNet Classification with Deep Convolutional Neural Networks.", Communications of the ACM, vol. 60, no. 6, pp. 84-90, May 2017. DOI: https://doi.org/10.1145/3065386
- Srivastava, R. K., Greff, K., Schmidhuber, J, "Training Very Deep Networks.", Advances in neural information processing systems, pp. 2377-2385, 2015
- K. He, X. Zhang, S. Ren, J. Sun "Deep Residual Learning for Image Recognition.", 2016 IEEE Conference on Computer Vision and Pattern Recognition, pp. 770-778, Jun 2016.
- D. H. Kim, "Retinex-based Logarithm Transformation Method for Color Image Enhancement.", Journal of the Korea Academia-Industrial cooperation Society (JKAIS), Vol. 19, No. 5, pp. 9-15, 2018. DIO: http://dx.doi.org/10.5762/KAIS.2018.19.5.9
- K. S. Bok, S. H. Yoo, D. J. Choi, J. S. Yoo. "In-Memory Caching for Improving Graph Query Processing.", Proceedings of The International Workshop on Future Technology FUTECH(KIIT), Vol. 3, No. 17 , pp. 63-71, 2019.