교통사고 저감을 위한 인공지능 기반 인캐빈 모니터링 시스템
Copyright ⓒ 2023 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(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.
초록
졸음운전으로 인한 사고는 매년 증가하는 추세이며, 사고 발생 가능성과 사고 발생 시 심각도가 높다. 졸음운전 치사율을 낮추기 위해서는 운전자의 졸음을 감지하고 상태를 평가해 적절한 조치를 취하는 시스템 개발이 중요하다. 본 논문에서는 아두이노와 라즈베리파이를 사용하여 운전자의 눈 상태 분석과 이산화탄소 농도 분석을 통한 졸음 감지 시스템과 졸음 상태를 인식한 후 적절한 조치를 취하는 시스템을 개발하여 졸음운전의 사망률을 줄일 수 있는 방식을 제안하고자 한다. 제안하는 모델의 PR curve의 AUC (area under curve)는 각 클래스별로 0.9 이상이며 F1-confidence curve의 F1 score 또한 0.90으로 높은 성능을 보였다. 제안하는 방식을 통하여 운전자의 졸음과 주의력을 지속적으로 모니터링함으로써 다가오는 자율주행차 시대에 충돌 경고, 차선 이탈 경고와 함께 근본적인 운전자 보조 도구 역할을 할 것으로 기대된다.
Abstract
Vision contains the majority of the information necessary for humans to interact with their surrounding environment. For these reasons, visually impaired individuals face significant limitations in terms of information access compared to non-visually impaired individuals. This paper proposes a system to enhance information accessibility for the visually impaired by extracting and translating text from images into Braille, enabling real-time implementation. The proposed system utilizes optical character recognition technology, specifically EasyOCR, and a Korean language recognition model to recognize and digitize text after separating phonemes. The hardware-implemented system operates through a relay and solenoid-based Braille system, allowing individuals with visual impairments to recognize the outputted Braille using tactile senses. This approach aims to reduce barriers to information access for the visually impaired, providing them with equal opportunities in various aspects compared to sighted individuals and fostering their active participation in society.
Keywords:
Drowsy Driving Detection, Recognition, Arduino, Traffic Safety, YOLO키워드:
졸음운전감지, 객체 인식, 아두이노, 교통안전Ⅰ. 서 론
현대의 급속한 기술 발전과 끊임없는 혁신은 다양한 분야에서 혁명적인 변화를 일으키고 있다. 특히 자동차 개발업체를 중심으로 교통 및 자동차 산업에서는 인간의 운전 능력을 대체하는 지능형 차량에 관한 연구가 증가하고 있다[1]. 기존 자동차에 지능을 부여하기 위해 다양한 응용 및 제어알고리즘이 개발되고 있다. 지능형 차량 (intelligent vehicle) 또는 자율주행 자동차 (autonomous vehicle)는 인간의 개입 없이도 스스로 운전을 수행하는 차량을 말한다. 차량의 자율주행 기술은 에너지를 효율적으로 사용할 수 있으며 운전자의 제한을 해소하여 높은 편의성과 안정성을 제공한다. 이러한 자율주행 차량의 발전에는 야간 투시 기능, 레이더 센서를 이용한 안전거리 주행, 차세대 GPS (global positioning system), 차선추적, 탈선경보 시스템, 외장 에어백, 졸음운전 경고 시스템 등이 포함된다[2],[3]. 자율주행 차량은 미래의 모빌리티에 대한 새로운 지평을 열어주며, 안전성, 효율성 및 편의성 측면에서 혁신적인 가능성을 제시하고 있다.
기술 혁신의 환경이 빠르게 발전함에 따라 특히 졸음운전 및 도로 사고에 미치는 영향과 같은 중요한 안전 문제를 고려할 때 지능형 차량 기술의 발전이 점점 더 중요해지고 있다. 졸음운전은 음주운전과 함께 가장 위험한 운전으로 손꼽힌다. 한국도로공사의 분석에 따르면 지난 2016년부터 2020년까지 고속도로 교통사고 사망원인 1위는 ‘졸음 및 주시 태만 (drowsiness and inattention)’으로 약 70%를 차지한다[4]. 또한 고속도로에서 발생한 사고 중 부주의에 의한 사고가 졸음운전 사고보다 건수는 많지만 100건당 사망자 수가 1명 수준이라면 졸음운전 사고 사망자 수는 2배에 가까운 1.9명에 달한다. 고속버스운송조합이 매월 시행하고 있는 안전 캠페인에서 배포하는 한국도로공사 자료에 따르면 졸음운전 사망률이 18.5%에 이른다. 이 비율은 과속사고 사망률의 약 2.4배, 전체 교통사고 치명률인 11.1%보다 약 1.7배 높은 수치이다. 부주의 운전은 본인의 판단하에 이뤄지기에 오랜 시간 주의를 쏟지 않아 돌발 상황에 의한 대처를 제외하면 작은 탈선 등에 머무르는 자잘한 사고들이 잦다.
졸음운전 시에는 운전자의 주의력이 심하게 감소하여 운전자의 운전 조작 및 방어 조작 능력이 현저하게 저하된다. 순간적으로 완전히 잠에 빠져 의식이 사라지기 때문에 중간에 핸들을 바로 잡거나 브레이크를 밟는 등의 일체 방어를 하지 못한 채 사고가 나게 되어 높은 확률로 대형 사고가 된다. 이에 따라 차량 통제력을 잃을 가능성이 커지므로 그 위험성이 더 크다. 졸음 상태나 수면 상태에 직면하게 된 운전자는 눈을 뜨고 있거나 머리를 똑바로 유지하기가 어렵다. 졸음운전 사고가 더 안타까운 이유는 다른 사고들에 비해 고의성이 적기 때문이다. 과속 운전, 음주운전은 개인의 선택과 판단으로 이루어진다. 반면 졸음운전은 운전 중 피로에 의해 졸음이 몰려오고 주변에 졸음쉼터나 휴게소 등 마땅히 쉴 장소가 없을 때, 또는 졸음이 몰려온 것조차 인지하지 못하는 등 개인이 통제할 수 없는 요인에 의해 유발되는 경우가 많다. 이때, 동승자가 있다면 깨워 주거나 대화하는 등의 조치를 취할 수 있지만 홀로 운전하는 운전자의 경우 졸음운전에 취약하기 마련이다. 이러한 졸음운전의 주요인은 육체적인 피로와 과도한 시각의 사용이며, 고속도로 위에서 흔히 발생하는 단조로운 운전, 장시간 운전, 수면 부족 및 불충분한 휴식 시간 등이 졸음운전의 원인에 해당한다. 또한 졸음운전으로 인한 사고의 발생은 매년 증가하는 추세이며, 사고 발생 가능성과 사고 발생 시 심각도가 높다. 따라서 졸음운전에 대한 대응책이 요구되고 있다.
이러한 이유로 자동차 제조업체는 운전자의 집중력을 모니터링하고 졸음이나 산만함의 징후를 감지하기 위해 다양한 시스템의 개발을 적극적으로 추진하고 있다. 이러한 시스템에는 운전자 모니터링 시스템, 조종 행동 분석, 차로 이탈 경고, 음성 분석 등의 다양한 접근 방식을 포함한다. 고급 센서 기술과 인공지능으로 구동되는 이 시스템은 운전자의 행동과 생리적 반응을 평가한다. 또한 많은 기업도 운전자의 집중도를 확인하는 시스템을 연구 중이다. 현대자동차 현대모비스는 ‘엠브레인 (M.Brain)’, ‘엠빅스 (M.VICS)’ 기술, ‘스마트 캐빈 제어기’ 등과 같이 뇌파를 감지하는 등 생체신호를 이용하는 이른바 ‘헬스케어’ 측면의 방법과 컴퓨터 비전 기술을 이용한다. 현대모비스의 ‘엠브레인’의 경우 뇌파 기반 신기술을 활용한 운전자 모니터링 시스템이다. 엠브레인을 착용한 채로 운전하는 운전자는 졸음운전 등의 식후 부주의를 30% 감소하고, 고속도로에서도 최대 20%를 감소할 수 있는 시스템을 개발하는 등 졸음운전 방지를 위한 기술을 활발히 연구 중이다. 이러한 졸음운전을 방지하기 위한 연구는 국내에 국한되지 않는다. 유럽, 미국, 일본 등은 운전자의 졸음이나 피로에 의한 대비책으로 여러 안전장치의 개발에 많은 인력과 투자가 이루어지고 있다. 유럽은 DRIVE (dedicated road infrastructure for vehicle safety in europe)와 PROMETHEUS (programmed for a european traffic with highest efficiency and unprecedented safety)의 2개의 대형 프로젝트를 중심으로 교통안전과 관련한 연구를 추진하고 있다. 미국의 IVHS (intelligent vehicle highway systems) 프로젝트는 7개의 상호 연관된 부문으로 구성하여 추진하고 있으며, 일본의 ASV (advanced safety vehicle) 등도 국가적 계획을 세우고 수년 전부터 상업화가 가능한 졸음 방지 장치의 개발에 박차를 가하고 있다.
일반적인 환경에서 사람의 졸음 상태는 심박수나 뇌파 신호, 맥박 등 생체신호를 이용하여 판단할 수 있지만 이는 별도의 장비 착용이 필요하여 차량 환경에서의 사용이 불편하다. 따라서 최근에는 영상처리 기술을 이용하는 비접촉식 졸음운전 감지 시스템이 주요 연구 분야로 떠오르고 있다[5],[6]. 참고[5]에서는 Haar Cascade 알고리즘을 사용하여 얼굴인식을 진행하였다. 얼굴인식 후 눈 감김 여부를 판단하기 위해 졸음운전 감지에서 주로 사용되는 방식인 얼굴의 특징점과 관심 영역 (ROI; region of interest)에 기반해 운전자의 양쪽 눈의 위아래 눈꺼풀 좌표를 계산하여 졸음을 판단하였다. 참고[6]에서는 ROI에 기반한 졸음 판단 방식이 아닌 객체 탐지 (object detection) 신경망인 YOLO (you only look once)를 사용하여 운전자의 졸음을 감지하고 물총을 발사하는 시스템으로 졸음방지를 구현하였다. 기존 연구는 졸음감지와 졸음방지 중 하나만 구현되었거나, 구현 방식이 본 논문과 다르다. 본 논문에서는 이산화탄소 감지와 눈 감김 여부를 개별적으로 판단하는 연구를 모두 진행하여 운전자의 졸음을 감지하고, 졸음 방지 기능 또한 구현한다.
본 논문에서는 운전자의 눈 상태를 분석하여 졸음 상태를 감지하는 시스템을 제안한다. 졸음운전 치사율을 낮추기 위해서는 운전자의 졸음을 감지하고 상태를 평가해 적절한 조치를 취하는 시스템 개발이 중요하다. 라즈베리파이와 아두이노를 사용하여 졸음을 감지한 후 졸음 상태를 인식하여 적절한 조치를 취하는 시스템을 개발하여 졸음운전의 사망률을 줄일 수 있는 방식을 제안하고자 한다[7]. 제안하는 방법은 기존에 많이 사용하였던 방법인 관심 영역(ROI)에 기반한 운전자의 졸음 상태를 양안의 좌표를 계산하여 검출하는 방식이 아닌 YOLO v5와 딥러닝 라이브러리인 PyTorch를 이용하여 커스텀 데이터를 통한 학습을 진행하는 방식을 사용한다[8]. 해당 방식을 통해 운전자의 눈과 얼굴을 총체적으로 관찰한 후, 객체 인식을 진행하여 사용자의 눈 감김 여부를 판단한다. 그다음, 눈 감김의 지속시간에 따라 졸음 여부를 파악하여 부저를 울리는 시스템을 제안한다. 또한 차내 이산화탄소 농도에 따라 창문을 개방하여 사용자의 졸음을 방지할 수 있는 시스템을 제안한다. 마지막으로 실험을 통해 제안한 시스템을 증명한다.
Ⅱ. 본 론
제안하는 방식은 객체 인식 알고리즘인 YOLO를 통해 학습을 진행한다. 객체 인식은 컴퓨터 비전 분야에서 사용되는 기술로, 디지털 이미지나 비디오에서 특정 객체의 위치와 종류를 식별하고 인식하는 작업을 말한다[9]. 컴퓨터 비전이란 컴퓨터를 이용해서 사진 혹은 영상을 처리하고 어떠한 일을 하는 것을 말한다. 이는 의학적, 군사적으로도 매우 가치가 큰 기술이며, 현재는 OpenCV라는 오픈소스 프레임워크를 이용하여 누구나 쉽게 비전 분야를 접해볼 수 있다. 일반적으로 객체 인식 기술은 머신러닝과 딥러닝 알고리즘을 사용하여 구현된다. 이러한 기술은 이미지 내의 객체 위치를 바운딩 박스 (bounding box)로 표시하고 해당 객체의 클래스 레이블을 부여하는 방식으로 동작한다. 딥러닝 기술이 발전하면서 객체 검출률은 이전에 비해 더 높은 수준으로 발전하였다. CNN (convolutional neural networks)는 객체 인식에 더 많이 사용되고 있으며, 최근에는 DNN (deep neural networks)을 기반으로 한 faster R-CNN, YOLO, SSD (single shot multibox detector)와 같은 알고리즘들이 객체 감지 분야에서 큰 발전을 이루었다. 이를 통해 컴퓨터 시스템은 이미지나 비디오 속에서 사람, 동물, 차량 등의 다양한 객체를 자동으로 감지하고 구별할 수 있다.
이러한 객체 감지 기술은 자율 주행 자동차, 보안 시스템, 의료 영상 분석, 산업 자동화 등 다양한 분야에서 활용되며, 실시간 객체 감지의 필요성이 점점 더 높아지고 있다. YOLO는 빠른 시간에 다수의 객체를 동시에 검출할 수 있도록 고안된 인공신경망이다[8],[10]. 영상 내에서 객체의 위치 문제와 객체 분류 문제 하나의 회귀 문제로 접근하여 객체 인식 문제를 간소화하여 훈련 및 검출 속도를 크게 향상한 알고리즘이다. 영상 내의 객체 위치와 객체 분류를 단일 회귀 문제로 간주하여 이미지를 한번 보는 것으로 객체의 종류와 위치를 추정한다. 이러한 YOLO의 가장 큰 특징은 간단한 작동 과정으로 인해 처리 속도가 빠르다는 장점과 영상 전체를 한 번에 바라본다는 관점으로 객체에 대한 맥락적 이해도가 높다는 특징이 있다. 그뿐만 아니라, 필요할 경우 기존 신경망 구조를 상황에 맞게 일부 수정함으로써 객체 검출 응용프로그램의 개발에 시간과 비용을 절약할 수 있는 장점이 있다. 2015년에 조셉 레드먼이 새로운 객체 인식 방식으로 YOLO를 제안하였으며, YOLO의 첫 번째 모델 YOLO v1이다. YOLO v1 모델이 등장한 이후, 2016년에 YOLO v2가 등장하였으며, 2018년 및 2019년 말에 YOLO v3, YOLO v4가 등장하였다[11],[12]. YOLO v5는 울트라리틱스 LLC가 2020년 5월 제출하였다.
본 연구에서는 YOLO의 다섯 번째 모델인 YOLO v5와 PyTorch의 커스텀 데이터 학습 기능을 이용하여 운전자의 눈 감김 여부를 판단하는 방식을 사용한다[13]. 바운딩 박스를 이루는 각 네 점의 좌표와 객체의 클래스 값을 받아와 객체 인식을 진행한 후 눈 감김 여부를 판단한다.
2-1 시스템 프로세스
그림 1은 제안하는 시스템의 순서도를 나타낸 것이다. 운전이 시작되면 운전자의 눈 감김 여부를 판단한다. 0.1초마다 운전자의 눈 감김 여부를 판단하여 일정 시간 이상 눈 감김 상태가 지속될 경우 졸음 상태라 판단하여 경고음을 발생시키고 LED를 점등한다. 또한, 눈 감김 여부 판단과 별개로 이산화탄소 농도를 측정한다. 운전이 시작되면 이산화탄소 농도 감지 센서를 통해 차량과 실내의 이산화탄소 농도를 측정한다. 일정 농도 이상의 이산화탄소가 측정되면 경고용 LED를 점등하고 창문을 개방하여 강제로 환기하도록 한다. 이를 통해 운전자의 졸음 상태를 인식하고 조치하는 프로그램을 제작한다.
2-2 졸음 감지
먼저, 눈 감김 여부 판단을 위한 데이터 수집을 위해 웹캠을 활용하여 이미지 데이터를 수집하고, 이를 직접 라벨링 하였다. 프로그램 실행 시 1초의 간격을 두고 눈을 뜬 이미지와 눈을 감고 있는 이미지를 50장씩 촬영하여 ‘open’, ‘close’로 분류한다. 또한 각 데이터의 중복을 방지하기 위해 파일명을 라벨명과 UUID 버전 1로 생성하여 jpg 형식으로 저장한다. 운전자가 운전하는 과정을 지속적으로 모니터링하는 프로그램이기 때문에 운전자가 행동할 수 있는 다양한 행동 범위 내에서 이미지 촬영을 진행하였다. 정면 주시, 좌우 측면 주시, 몸을 앞으로 내밀거나 고개를 비트는 행동 등 다양한 상황 속 행동을 가정하여 우선 500여 장의 이미지를 수집하였다. 생성된 파일들은 open과 close를 구분하여 YOLO를 통해 커스텀 학습을 진행한다. 객체 인식 기술은 컴퓨터 비전 기술인 OpenCV를 사용하여 카메라를 통해 운전자의 행동을 입력받아 object detection 알고리즘인 YOLO v5와 PyTorch의 커스텀 데이터 학습 기능을 이용해 판단한다. YOLO v5는 객체 인식 후 바운딩 박스 처리 시 .xyxy() 또는 .xywh() 메소드를 사용한다. 해당 메소드를 이용하여 바운딩 박스를 이루는 각 네 점의 좌표와 객체의 클래스 값을 받아오며 이를 통해 별도의 라이브러리와 모듈 없이 객체 인식을 진행한다. 시스템이 이미지를 판단할 수 있도록 바운딩 박스를 지정해 직접 데이터셋을 생성한다. 샘플 프로그램은 관찰 대상의 눈 깜빡임을 인식하여 판단하는 것을 목표로 하였기 때문에 바운딩 박스를 관찰 대상의 양안을 중심으로 선정한다. 그림 2와 같이 바운딩 박스를 오른쪽 눈과 왼쪽 눈에 각각 설정하여 양안을 각각 따로 검출한다. 왼쪽 눈 감김, 왼쪽 눈 뜸, 오른쪽 눈 감김, 오른쪽 눈 뜸의 총 4가지의 클래스를 설정하였다. 해당 방법을 통해 웹캠으로 촬영한 5천여 장의 데이터와 웹 크롤링을 통해 수집한 운전자 이미지 데이터 5천 장에 라벨링 작업을 진행하였다. 구글 colab 환경에서 속도가 빠르고 용량이 비교적 적은 Yolov5s.pt 가중치 모델을 이용하여 batch 16, epoch 100으로 설정하고 훈련을 진행하였다. 2.5초 이상 눈 감김이 인식될 경우 졸음운전 및 피로 상태라고 인식하여 졸음 방지 조치를 수행한다. 2.5초 이상 졸음 상태가 인식될 경우 아두이노의 시리얼 통신을 통해 ‘R’이라는 비트 데이터를 전송한다. Python에서 아두이노에 시리얼 통신으로 전송된 ‘R’ 데이터가 존재할 경우 아두이노에 연결된 LED를 점등하고 1000 Hz로 버저가 울린다. LED의 점등과 버저의 울림은 3초 동안 지속되며, 3초 이후에는 버저와 LED를 low 상태로 변경한다. 이를 통해 실시간 모니터링으로 운전자의 졸음이 감지되면 3초 동안 경고 LED를 점등하고, 버저를 통해 경고음을 출력하는 과정을 진행할 수 있다.
2-3 졸음 방지
실시간 모니터링으로 운전자의 졸음운전이 인식되면 사후 조치를 취하는 것에 더하여 운전자의 졸음을 사전에 방지할 수 있는 시스템을 고안하기 위하여 실내의 농도를 측정하여 일정 수치가 넘었을 때 강제로 환기를 진행하게끔 하는 시스템을 설계하였다. 2006년에 환경부에서 발표한 연구자료에 따르면 실내 이산화탄소 농도가 1,000 ppm만 넘어가도 불쾌감을 느끼는 상태가 되며, 2,000 ppm이 넘어가면 가벼운 두통과 함께 집중력이 저하되면서 졸음이 오는 상태가 된다고 한다. 또한 3,000 ppm이 넘어가면 두통, 어깨 결림 등의 신체 변화가 생길 수 있으며 장시간 노출될 시, 건강을 해친다고 한다. 삼성 교통 문화 안전연구소에 따르면 4인 기준 차량 주행 중 환기하지 않았을 경우, 차량 운전 1시간 30분 만에 실내 이산화탄소 농도가 3,000 ppm으로 증가한다고 나타났다. 따라서 본 논문에서는 아두이노 이산화탄소 측정 센서 (MH-Z19B)를 이용하여 차량 내 이산화탄소 농도를 측정하여 일정 농도를 초과했을 경우 1차로 경고용 LED를 점등하고, 이후 2차로 창문을 개방하여 강제 환기하는 상황을 가정하여 모터가 작동하도록 하였다. 차량의 창문을 강제로 개방하는 상황을 가정하여 차량과 실내의 이산화탄소 농도를 낮추고 운전자가 졸음 상태에서 회복할 수 있도록 한다. 그림 3은 실험에서 사용한 MH-Z19B 센서의 사진과 간단한 데이터시트를 나타내었다. MH-Z19B 센서는 PWM 출력과 UART 출력 두 가지 방식이 존재한다. MH-Z19B 센서를 PWM 방식으로 측정할 시, 2,000 ppm까지 측정할 수 있으며, UART로 출력 시, 5,000 ppm까지 측정할 수 있다. 본 연구에서는 PWM 방식으로 이산화탄소 농도를 측정하여 일정 농도 이상의 이산화탄소가 검출될 시, LED 점등과 함께 창문을 개방하여 공기가 환기될 수 있도록 하는 프로그램이 동작하도록 하였다.
Ⅲ. 실험 결과
3-1 졸음 감지
먼저, 생성된 모델링 파일의 동작 검증을 위하여 로컬환경에서 OpenCV 동작 코드로 실행하여 확인하였다. 그 결과, 그림 4에 나타난 것처럼 눈을 감거나 뜨는 모습을 정상적으로 인식하는 모습을 확인할 수 있다. 테가 두꺼운 안경을 착용한 경우에도 눈 감김 여부를 정상적으로 인식하며 고개를 돌리거나 숙이는 등의 동작을 취해도 눈을 잘 검출해 내는 모습을 확인하였다. OpenCV 환경에서 모델이 잘 동작하는지 확인하였으면, 운전자가 눈을 감았다고 판단되었을 시에 LED를 점등하고 버저가 울리는 동작이 작동되어야 한다. 이를 위해서 해당 모델의 라즈베리파이 환경에서 이상 없이 동작하는지를 확인할 필요성이 존재하였다. 그림 5는 모델링 파일과 프로그램을 라즈베리파이 환경에서 실행한 결과이다. 해당 결과도 로컬 환경과 마찬가지로 눈 깜빡임을 잘 인식하는 모습을 확인할 수 있다. 또한 사용자의 눈 감김이 판단되면, LED에 불이 들어오고 버저의 소리가 이상 없이 울리는 것을 확인할 수 있었다.
3-2 졸음 방지
이산화탄소의 농도를 측정하기 위해 아두이노에 MH-Z19B 센서를 연결하였다. 그림 6은 경고 LED와 MH-Z19B를 연결한 아두이노 회로 이미지이다. 이산화탄소의 농도가 일정값 이상이 되면 LED가 점등되고 경고 메시지가 출력된다. 그림 7은 이산화탄소 측정 프로그램을 serial monitor에 출력한 결과이다. 측정값이 설정한 값 이상일 경우 low 상태에서 high 상태로 상태가 변경하여 이산화탄소 농도가 높음을 보여주고 경고 LED를 점등한다. High 상태가 2초 이상 지속될 경우 ‘2초 이상 경과’라는 메시지와 함께 창문 강제 개방을 진행한다.
3-3 모델 성능
그림 8은 앞서 생성한 모델의 precision-recall curve이다. [Sleepy] 클래스의 경우 하품을 인식하기 위해 라벨링을 진행한 것이다. 해당 그래프에서 모든 클래스가 0.9 이상의 값을 갖는 것을 확인하여 프로그램이 오차범위 내에서 제대로 동작하고 있다는 것을 확인할 수 있었다. 그림 8과 같이 모델의 precision-recall curve는 정상적으로 우하향 곡선을 그리는 것을 확인할 수 있다. PR curve의 AUC (area under curve), 즉 PR curve의 적분값들이 클래스별로 0.9 이상이고, 모든 클래스에 대한 평균값 또한 0.946으로 1에 가까운 성능을 내는 것을 확인할 수 있다. 그림 9는 본 논문에서 제안한 모델의 F1-confidence curve이다. 그래프의 F1 score을 확인해보면, confidence 값이 0.425일 때 모든 클래스의 F1 평균이 0.90로 높은 성능을 나타내는 것을 확인할 수 있다.
Ⅳ. 결 론
본 논문에서는 카메라를 이용하여 졸음운전 위험이 있는 운전자를 식별하도록 설계된 실시간 졸음 감지 시스템을 제안한다. 이 시스템은 졸음을 효과적으로 예방하기 위해 경고 메시지를 표시하고 이산화탄소 농도를 측정하여 강제로 창문을 여는 시스템을 활용한다. 국내 및 국외에서 운전자의 졸음을 판단하는 기준은 눈 감김 측정, 뇌파 측정, 심박수 측정 등으로 다양하다. 하지만 심박수 측정, 뇌파 분석 등의 방법은 추가 장비 착용이 필요해 운전자 불편을 초래할 수 있다. 해당 문제를 해결하기 위해 본 연구에서는 비교적 거부감이 적은 카메라 설치와 이산화탄소 농도 감지를 통해 졸음 여부를 판단한다. 또한, 졸음이라고 판단될 시, 경고음이 울리고 창문 강제 개방 시스템으로 운전자의 졸음을 방지한다. 졸음 감지 방법으로 눈감김여부와 이산화탄소 농도를 모두 판단하며 졸음 방지 방법으로 LED 점등 및 버저 울림, 창문개방을 통한 환기를 모두 진행하는 것이 제안하는 방식의 장점이다. 제안하는 모델의 PR curve의 AUC는 각 클래스별로 0.9 이상이며 F1 score 또한 0.90으로 높은 성능을 나타내는 것을 확인할 수 있다. 제안하는 방식을 통하여 운전자의 졸음과 주의력을 지속적으로 모니터링함으로써 다가오는 자율주행차 시대에 충돌 경고, 차선 이탈 경고와 함께 근본적인 운전자 보조 도구 역할을 할 것으로 기대된다. 이는 앞으로 다가올 자율 주행 자동차 상용화를 앞당기고 이는 자동차 외부의 환경을 인식해 인간의 개입 없이 안전한 목적지 도착에 초점을 맞춘 현재 자율 주행 자동차를 보완하여 운전자의 생체 이상을 인식해 인간을 더욱 안전하게 할 것이라 기대한다. 본 논문은 운전자의 눈 상태를 판단하는 데만 초점을 맞추었지만, 후속 연구에서는 입 모양이나 머리 움직임 분석 또는 터널이나 그림자 등과 같은 운전 환경 변화와 같이 보다 복잡한 정보를 종합하여 시스템의 신뢰성을 향상시킬 예정이다.
Acknowledgments
본 연구는 2023년도 교육부의 재원으로 한국연구재단의 지원을 받아 수행된 지자체-대학 협력기반 지역혁신 사업의 결과입니다. (과제관리번호: 2021RIS-002)
References
- I. Yang, W.-H. Jeon, and J. Lee, “A Study to Recognize and Classify Road Dangerous Objects Automatically Using Deep Learning,” Journal of Digital Contents Society, Vol. 22, No. 8, pp. 1323-1329, August 2021. [https://doi.org/10.9728/dcs.2021.22.8.1323]
- Y. H. Joo, J. K. Kim, and I. H. Ra, “Intelligent Drowsiness Drive Warning System,” Journal of Korean Institute of Intelligent Systems, Vol. 18, No. 2, pp. 223-229, April 2008. [https://doi.org/10.5391/JKIIS.2008.18.2.223]
- Y. Lee and S. Yeom, “Drowsy Driver Warning with Eye Recognition,” in Proceedings of Autumn Conference of the Institute of Electronics and Information Engineers, Seoul, pp. 329-330, November 2010.
- Korea Transportation Safety Authority. To Encourage a Reduction in Traffic Accidents, Inspect Truck Driver Rest Times [Internet]. Available: https://www.kotsa.or.kr/portal/bbs/report_view.do?menuCode=05010200&bbscCode=report&bbscSeqn=17919, .
- J.-W. Seo, W.-T. Roh, S.-R. Lee, R.-H. Jeong, and W. Kim, “Drowsiness Detection and Prevention with RaspberryPi,” in Proceedings of the Korea Information Processing Society Fall Conference, Online, pp. 220-223, November 2020.
- H.-A. Lee and S.-Y. Shin, “Implementation of Drowsy Prevention System Using Arduino and YOLO,” Journal of the Korea Institute of Information and Communication Engineering, Vol. 25, No. 7, pp. 917-922, July 2021. [https://doi.org/10.6109/jkiice.2021.25.7.917]
- S.-J. Na and J.-W. Song, “Development of Remote Plant Monitoring System based on Raspberry Pi,” Journal of Digital Contents Society, Vol. 22, No. 4, pp. 737-742, April 2021. [https://doi.org/10.9728/dcs.2021.22.4.737]
- K.-H. Kim, H.-Y. Yu, H.-J. Lee, and H.-W. Byun, “Automatic Garbage Classification System based on YOLOv4 and Rasberry Pi,” Journal of Digital Contents Society, Vol. 22, No. 12, pp. 2111-2119, December 2021. [https://doi.org/10.9728/dcs.2021.22.12.2111]
- P.-H. Lee and J.-W. Song, “Forest Fire Object Detection Using Deep Learning-Based Algorithm,” Journal of Digital Contents Society, Vol. 23, No. 9, pp. 1869-1877, September 2022. [https://doi.org/10.9728/dcs.2022.23.9.1869]
- J. Redmon, S. Divvala, R. Girshick, and A. Farhadi, “You Only Look Once: Unified, Real-Time Object Detection,” in Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas: NV, pp. 779-788, June 2016. [https://doi.org/10.1109/CVPR.2016.91]
- J. Redmon and A. Farhadi, “YOLOv3: An Incremental Improvement,” arXiv:1804.02767, , April 2018. [https://doi.org/10.48550/arXiv.1804.02767]
- A. Bochkovskiy, C.-Y. Wang, and H.-Y. M. Liao, “YOLOv4: Optimal Speed and Accuracy of Object Detection,” arXiv:2004.10934, , April 2020. [https://doi.org/10.48550/arXiv.2004.10934]
- Z. Ge, S. Liu, F. Wang, Z. Li, and J. Sun, “YOLOX: Exceeding Yolo Series in 2021,” arXiv:2107.08430, , July 2021. [https://doi.org/10.48550/arXiv.2107.08430]
저자소개
2018년~현 재: 전남대학교 컴퓨터정보통신공학과 학사과정
※관심분야:컴퓨터비전, 인공지능, 웹프로그래밍 등
2018년~현 재: 전남대학교 컴퓨터정보통신공학과 학사과정
※관심분야:인공지능, 정보보안 등
2023년:전남대학교 컴퓨터정보통신공학과 (학사)
2023년~현 재: 전남대학교 ICT융합시스템공학과 석사과정
※관심분야:메모리 설계 및 테스트, 보안 설계 방법론 등
2011년:인하대학교 전자공학 (공학사)
2015년:연세대학교 전기전자공학 (공학석사)
2020년:연세대학교 전기전자공학 (공학박사)
2011년~2015년: Teradyne SoC Test Division 선임연구원
2020년~2021년: 삼성전자 Test & System Package 책임연구원
2021년~현 재: 전남대학교 컴퓨터정보통신공학과 조교수
※관심분야:VLSI/SoC 설계 및 테스트, 메모리 테스트 기술, 보안 설계 방법론 등