1. 서 론
현대 시대에서 자동차는 이동만을 위한 교통수단이 아니라 삶의 필수품에 이르게 되었다. 이처럼 자동차의 수요가 느는 만큼 이에 관련된 안전성도 함께 관심이 늘고 있다. 특히 졸음운전의 통계를 보면 2006~2008년 동안 졸음운전 교통사고의 치사율은 6.2명으로 같은 기간 전체 교통사고 치사율 2.9명에 비해 2배 이상 높게 나타났으며 음주운전과 달리 물리적인 제재를 가할 수 없기 때문에 더욱 위험한 것으로 나타났다[1]. 그러므로 교통안전에 큰 위협이 되는 졸음운전을 방지하도록 하는 운전자 감시 시스템이 필요하다.
최근 영상 처리 기술의 발전에 따라 지능형 자동차에 응용하는 연구가 활발하게 진행되고 있으며 특히 운전자 상태감시 기능에 대해 다양하게 제안하고 있다. 2012년에 출시된 기아 자동차 ‘K9’ 모델의 졸음운전 감시 시스템은 카메라를 통하여 운전자의 눈 깜박임과 동공을 관찰하고 그 정보를 바탕으로 다른 기기와 연결하여 운전자에게 경고를 하거나 차내를 자동으로 환기 시킨다. 도요타 자동차에서는 최초로 적외선 센서를 통해 운전자의 주의력을 감지하는 방식을 채택하였으며 벤츠는 운전자의 눈 깜박임 횟수, 동공확대, 주위를 둘러보는 횟수 같은 수치를 모니터링하여 경보 수준을 판단하는 방법을 연구 중에 있다. 자동차 관련 업체인 덴소가 개발한 졸음 방지 장치는 핸들 중앙에 설치된 카메라로 운전자를 촬영해 운전자의 기본 패턴을 파악해 개인별 최적화 상태를 알아내고 졸음 수준을 총 6단계로 판단한다[2-4].
이처럼 졸음 운전 방지 기술은 높은 신뢰성을 보여야하기 때문에 운전자의 피로와 가장 상관관계가 큰 특징들을 이용 하여야 한다. 특히 눈은 사람의 의식 수준을 가장 잘 표현해주며 일반적으로 성인은 1분에 20번 정도 깜박거리지만, 어떤 것에 집중하게 되거나 정신적인 요소에 의해 깜박임이 감소하며 의식 수준이 낮아지면 눈을 감고 있는 시간도 길어지게 된다[5-7]. 따라서 본 논문에서는 피로도를 측정하는 눈, 특히 동공 영상을 추출하고 이를 통해 운전자의 졸음을 판단하는 방법을 제안하고 실험 결과 값을 통한 내용을 제시하고자 한다.
2. 본 론
2.1 얼굴 영역 검출 및 눈 영역 검출
본 논문에서 제안하는 눈 개폐 판단 과정은 그림 1에 나타내었다. 먼저 정면 영상에서 얼굴 영역과 눈 영역을 검출하기 위해 Viola-jones face detection 알고리즘을 이용한다. 물체 검출에 유용하게 이용할 수 있는 Haar-like feature 들을 선택함으로서 물체를 검출하는데 걸리는 실행 속도가 다른 방법들에 비해 빠르고, 물체의 검출률도 다른 방법에 비해 성능이 우수하기 때문에 실시간으로 물체를 검출하는데 있어서 가장 선호되는 방법 중 하나이다[8]. 따라서 이 알고리즘을 사용하여 영상에서 얼굴을 검출하고 왼쪽, 오른쪽 눈을 각각 검출 할 수 있다. 이 알고리즘을 이용한 눈 검출은 눈의 개폐 상태에 따라 모두 적용할 수 있다.
그림 1눈 개폐 상태 판단 과정 Fig. 1 The process of identification eye status
그리고 나서 눈썹과 같은 필요 없는 부분을 제외하고 더욱 눈에 가까운 영상을 얻기 위해서, 이진화, 노이즈 제거, 팽창 및 침식, 레이블링의 순서로 영상 처리 과정을 거쳤다. 알고리즘을 통해 얻어낸 왼쪽, 오른쪽 눈 영상을 각각 원본 영상으로 지정하고 이 이미지를 HSI (Hue, Saturation, Intensity)로 변환 시킨 후 Intensity 값을 이용하여 영상을 이진화 하였다. 그 후 눈 영역 중 흰자위에 해당하는 부분을 최소화하기 위해서 팽창 과정을 거치고 눈 영역의 크기를 다시 원래의 크기로 되돌려 주기 위해 침식 과정을 거쳤다. 마지막으로 레이블링 과정은 눈썹이나 눈 아래쪽에 필요하지 않은 부분을 없애기 위해 레이블링이 2개 이상 되는 영상은 예외 처리하고 눈 영역에 해당하는 좌표를 저장하고 원본 눈 영상에서 해당 좌표를 가져오도록 하는 방법을 사용하였다. 이와 같은 과정은 그림 2를 통해 알 수 있다.
그림 2눈 영상을 얻기 위한 영상처리 과정 (a) 원본 눈 영상 (b) 이진화 (c) 필터링 된 이진화 영상 (d) 레이블링 영상 (e) 최종 획득 영상 Fig. 2 Image processing for eye region detection (a) Original eye image (b) Binary (c) Filtered binary (d) Labeling image (e) Final image
2.2 동공 영역 검출
세 번째 단계로 동공 영역을 검출하기 위해서 본 연구에서는 눈 영상 또한 식 (1)로 표현할 수 있는 하나의 3차원 행렬이기 때문에 앞서 획득한 눈 영상의 행렬 값을 사용하였다.
이처럼 눈 영상의 행렬 값을 살펴보면 동공에 해당하는 RGB 값은 어두울수록 낮아지기 때문에 그 영역의 값 또한 낮아질 것이라고 생각하였다. 따라서 급격하게 낮아지는 부분을 찾기 위해서 식 (2)를 식 (1)에 대입하여 R,G,B 각각의 행과 열의 평균값을 구해보았다.
X(a)는 열의 평균값을 구하는 식이며 Y(b)는 행의 평균 값을 구하기 위한 식이다. 행과 열의 평균값을 구해본 결과 동공 부부에 해당하는 영역에서 값이 급격하게 낮아지는 것을 관찰 할 수 있었다. 또한 동공 추출에 있어 정확성을 높이기 위해서 또 다른 방법을 함께 적용하기로 하였다. 이 방법은 식 2에 대입한 결과 값인 X(a),Y(a)와 각 행렬의 데이터 값인 pab 와의 차이를 이용하는 것이다. 예를 들어, 1행에 있는 데이터의 평균값인 X(1) 과 1행에 있는 데이터 p11⋯ p1b들의 차이값을 영상으로 표현하고, 이를 다시 식 (2)에 대입하여 평균값을 구하는 것이다. 이 내용을 식 (3)으로 표현할 수 있다.
식 (3)을 적용한 결과 눈에 해당하는 경계부분이나 동공부분에서 평균값과 행렬 값과의 차이가 많이 나기 때문에 두드러지게 표현되며 이 영상의 평균 값 또한 동공에 해당하는 부분에서 급격하게 높아지는 것을 확인할 수 있었다. 식 (2)와 (3)의 적용 결과는 그림 3에서 확인 할 수 있다. 이 결과를 이용하여 값이 급격하게 낮아지거나 높아지는 부분을 찾아 동공을 추출한다.
그림 3(a) 식 2와 (b) 식 3의 적용에 따른 행과 열의 평균 값 Fig. 3 Mean value of each row and each column after applying (a) eq. 2 and (b) eq. 3
2.3 눈 개폐 상태 판단
먼저 본 논문에서 제안하는 눈 개폐 상태 판단 방법의 과정은 그림 4와 같다. 앞서 제안한 방법을 통해 동공 영역을 추출하고 추출된 동공 영역에서 눈 개폐 상태를 판단하기 위해 영상을 역치값을 설정하여 이진화 (binarization)를 하였다. 눈을 뜬 상태에서의 동공 추출의 결과에 역치값에 따른 영상의 이진화 영상의 black pixel의 개수와 눈을 감은 상태에서의 동공 추출의 결과에 같은 역치값에 따른 영상의 이진화 영상의 black pixel의 개수가 차이가 나는 것을 알 수 있다. 이는 같은 역치값을 가지고 이진화 했을 때 눈을 뜬 영상에서는 동공에 해당하는 어두운 부분, 즉 R,G,B 값이 낮은 부분이 영상에서 대부분을 차지하고 있고 눈을 감은 영상에서는 동공에 해당하는 부분보다 피부에 해당하는 밝은 부분이 훨씬 많이 차지하고 있기 때문에 이진화 결과에서 차이가 난다. 따라서 본 연구에서는 이러한 특징을 사용하여 눈 개폐 상태를 판단하였다.
그림 4눈 개폐 상태 판단 과정의 흐름도 Fig. 4 Flowchart of identification eye state(open/close)
2.4 실험 결과
실험은 Kinect와 MATLAB 2014버전을 사용하여 진행되었다. 눈의 닫힘을 인식하도록 하고 총 150프레임을 대상으로 실험을 진행하였다. 또한 운전 시의 상황과 비슷하게 연출하여 진행 할 수 있도록 운전자와 카메라의 거리와 위치를 설정하였다. 이를 위해 그림 5와 같이 본 연구실에서 실내등과 자연광이 비치는 오전11시 ~ 오후4시 시점에 실험을 진행하였다. 또한 어두운 환경에서 촬영한 적외선 영상에도 적용이 가능한지 살펴보기 위해 오후 8시~10시에 실험실 내부를 어둡게 하여 적외선 영상에의 적용 결과도 함께 살펴 보았다. 컬러 영상과 적외선 영상 모두 약 150 프레임의 눈 영상을 이용하여 눈 개폐 여부에 대한 성능을 측정하였으며 그 결과는 표1과 그림 6에 나타내었다. 실험 진행 동안 피험자는 의식하지 않고 자연스럽게 눈을 감고 뜰 수 있도록 하였으며 표1에 실제 눈 개폐 상태에 대한 횟수와 제안한 방법을 적용한 프로그램의 인식 결과를 나타내었다. 또한 그림 6에는 black pixel의 수에 따른 눈 개폐 상태가 어떻게 분포하고 있는지를 살펴보고 이 그림을 통해 눈을감은 상태 일수록 black pixel의 수가 증가하는 것을 볼 수 있으며 black pixel수가 165이하인 경우에 눈이 닫힌 것으로 판단하도록 하였다. 이는 눈을 감은 영상과 눈을 뜬 영상의 black pixel을 여러번 비교해본 결과 이 수치에서 가장 성능이 좋았기 때문에 임계치를 정하였다.
그림 5실험 환경의 구성 (a) 촬영 환경 (b) 키넥트 Fig. 5 Experimental environment (a) Recording environment (b) Kinect
그림 6Black pixel 수에 따른 눈 개폐 상태의 분포 결과 Fig. 6 The result of identification eye status according to number of black pixel
표 1제안한 방법을 적용한 실험 결과 Table 1 Experimental results
표 1의 결과를 보면 컬러 영상에서의 실험 결과는 실제 눈을 감은 횟수와 제안한 방법을 적용한 결과인 눈 닫힘 인식 횟수가 일치하고 그 프레임 번호 또한 일치한 것을 확인 할 수 있었다. 적외선 영상의 경우 컬러 영상과 달리 RGB 값으로 구성되어 있지 않고 어둡고 밝은 값만 가지고 있기때문에 제안한 방법이 적용은 가능하지만 컬러 영상에 비해 높은 정확도를 가지진 못했다. 하지만 적외선 영상의 실험 결과 또한 90%이상으로 높은 정확도를 보이기 때문에 충분히 적용 가능한 방법이라고 할 수 있다.
3. 결 론
본 논문에서는 졸음 방지 시스템에서의 눈 개폐 상태 판단에 대한 방법을 제안하였다. 사람의 의식 수준과 상관관 계가 높은 눈을 가지고 졸음을 판단하기 위해서, viola-jones face detection 알고리즘을 사용하여 눈 영역을 감지해내고 눈썹이나 다른 필요 없는 부분들을 제외하고 눈에 더 가까운 영상을 영상처리 과정을 통하여 얻어내었다. 그 후 눈 영상에서 동공 영역만을 추출해내기 위해 각 행과 열의 평균값, 각 요소와 평균값의 차이를 이용하는 방법을 사용하여 동공을 추출해내었다. 그 후 추출한 동공 영상의 이진화를 통해 눈 개폐 상태를 판단하도록 하였고, Kinect를 사용한 실험 결과는 컬러 영상의 경우 100%였고 적외선 영상은 90%로 높은 정확도를 나타내었다. 이러한 결과는 본 논문에서 제안한 방법이 실제상황에 적용되었을 때도 운전자의 졸음을 감지하기 위한 눈 개폐 상태 판단에 있어 높은 활용도를 보일 것으로 기대된다. 향후, 주의 산만을 검출해 낼 수 있도록 시선을 감지 할 수 있는 연구가 함께 진행된다면 더욱 적극적인 활용이 가능할 것으로 보인다.
References
- http://news.koroad.or.kr/articleview.php?idx=196
- Q. Ji, et al., "Real-time nonintrusive monitoring and prediction of driver fatigue," Ieee Transactions on Vehicular Technology, vol. 53, pp. 1052-1068, Jul 2004. https://doi.org/10.1109/TVT.2004.830974
- Comprehensive analysis of the market prospects for the black boxes and business Strategies for cars : MARKET REPORT, 2013. 9
- http://www.automotivereport.co.kr/news/articlecView.html?idxno=131
- Tomofurni Miyakawa, Hironobu Takano, and Kiyomi Nakamura, "Development of Non-contact Real-time Blink Detection System for Doze Alarm", SICE Annual Conference in Sapporo, pp. 1626-1631, August 4-6, 2004
- J. Sweller, "Element Interactivity and Intrinsic, Extraneous, and Germane Cognitive Load," Educational Psychology Rev., vol. 22, no. 2, 2010, pp. 123-138. https://doi.org/10.1007/s10648-010-9128-5
- R. Schleicher et al., "Blinks and Saccades as Indicators of Fatigue in Sleepiness Warnings: Looking Tired?" Ergonomics, vol. 51, no. 7, 2008, pp. 982-1010. https://doi.org/10.1080/00140130701817062
- P. Viola and M. J. Jones, "Robust real-time face detection," International Journal of Computer Vision, vol. 57, pp. 137-154, May 2004. https://doi.org/10.1023/B:VISI.0000013087.49260.fb
Cited by
- Sleepiness Determination of Driver through the Frequency Analysis of the Eye Opening and Shutting vol.26, pp.6, 2016, https://doi.org/10.5391/JKIIS.2016.26.6.464