Ⅰ. 서 론
최근 차 대 사람 교통사고의 경우에는 차량보다 비교적 교통 약자인 보행자의 사망 발생 확률이 높다고 보고되고 있다. 따라서 국내·외에서는 차 대 사람의 교통사고를 줄이기 위하여 차량의 전방에 설치된 센서를 이용하여 보행자를 탐지할 시에 운전자에게 경고하거나, 자동 제동 시스템(ABS; Auto Braking System)을 수 행하는 자율주행 자동차 측면에서의 기술에 관한 연구가 활발하게 수행되고 있다.
그렇지만 경찰청 자료에 의하면 2017년에 발생한 차 대 사람의 전체 교통사고 사망자 중에서 60.2%가 횡 단보도 내에서 사망했으며, 특히 우회전 차량의 운전자가 횡단 중인 보행자를 발견하지 못함으로 발생하는 사고가 잦았다(Korean National Police Agency, 2018). 대부분의 우회전 교통사고는 모퉁이에 불법 주·정차된 차량으로 인하여 운전자의 시야가 확보되지 못하는 경우와 어린이 또는 고령 보행자의 부주의로 인해 발생 한다. 특히, 초등학생의 경우에는 성인보다 주의 관찰력이 떨어지고 보행 중에 스마트폰에 집중하여 적색 보 행 신호에 횡단보도에 진입하거나 녹색 보행 신호로 변경되자마자 횡단보도에 진입하는 경우가 잦음으로 운 전자에게 주행 경로상의 보행자에 대한 경고 메시지를 제공할 필요가 있다.
이 보고서 내용에서 주목할 점은 실제 도로 상황에서 운전자의 시야가 확보되지 못하는 경우가 매우 빈번하 며 이로 인하여 교통사고가 자주 발생하고 있다는 점이다. 이는 차량에 설치된 센서 기반의 보행자 충돌방지 시스템은 센서가 감지 범위를 벗어난 공간의 보행자 안전을 보장하지 못하는 맹점이 있으며, 이를 해결하지 않 고서는 교통사고를 방지하기 어렵다는 것을 의미한다. 실제로 미국 고속도로 안전보험협회(IIHS; Insurance Institute for Highway Safety)에서 2019년 10월 29일에 실시한 중형차 16종의 보행자 충돌방지 시스템 평가에 서도 시야가 방해받지 않는 상황을 평가 조건으로 하는 등 센서 기반의 보행자 충돌방지 시스템이 비 가시 구역 보행자의 안전을 보장하지 못함을 나타내고 있다.
따라서 최근에는 운전자에게 교통 상황에 대한 정보 및 경고 메시지를 제공하는데 C-ITS1) 서비스가 활용되 고 있다. C-ITS 서비스 중에서 보행자 충돌방지 경고 서비스는 보행자의 안전을 향상하기 위하여 교차로 또는 도로 구간의 주행 시 횡단 보행자 및 자전거와 충돌사고를 예방하는 목적을 가진다. 그러나 현재 C-ITS 보행자 충돌방지 경고 시스템은 CCTV 카메라에서 수집한 영상이 영상분석 서버로 전송되고 영상분석 서버에서 보행 자(보행자, 자전거)를 검출하기 때문에 운전자에게 보행 충돌방지 경고 메시지를 전송하는데 지연시간이 길다. 최악의 경우에는 운전자가 보행자와 충돌이 발생한 후에 경고 메시지를 받을 수 있는 문제점이 있다.
이러한 문제를 해결하기 위하여 본 논문에서는 엣지 카메라를 이용하여 횡단 보행자 또는 자전거를 현장 에서 실시간으로 검출하여 보행자 충돌 경고 메시지를 진입 차량에 바로 전달함으로써 지연시간을 최소화하 는 C-ITS 보행자 충돌방지 경고 시스템을 제안한다. 엣지 카메라는 카메라 내부에 고속 영상처리 장치를 내 장하고 있어서 실시간으로 횡단 보행자 또는 자전거 등과 같은 객체를 탐지하고, 엣지 카메라의 고속 영상처 리 장치는 경량의 딥러닝 알고리즘을 사용하여 객체를 정확하게 인식하고 실시간성을 보장한다.
논문의 구성은 다음과 같다. 2장에서는 이 시스템의 기본 기술인 C-ITS의 보행자 충돌방지 경고 서비스, 임베디드 환경용 딥러닝 알고리즘에 관하여 기술하고, 3장에서는 제안하는 엣지 카메라 기반 보행자 충돌방 지 경고 시스템에 관하여 기술하며, 4장에서는 실제 구현 방법과 실험 방법, 그리고 실험 결과에 대한 분석 을 논하며, 마지막으로 5장에서는 결론을 기술한다.
Ⅱ. 연구 배경
1. C-ITS의 보행자 충돌방지 경고 서비스
C-ITS는 차량이 주행 중인 운전자에게 주변 교통 상황과 급정거, 낙하물 등의 사고 위험 정보를 실시간으 로 제공하는 시스템을 의미한다(Ministry of Land, Infrastructure and Transport & Korea Expressway Corporation, 2019). C-ITS는 DSRC2), WAVE3) 등의 V2X4) 통신을 이용하여 차량과 도로 인프라 간에 데이터를 양방향으 로 수집 및 제공하며, 센터에서는 교통 상황 정보를 수집하고 분석하여 ITS 서비스를 제공한다. <Table 1>과 같이 C-ITS 서비스는 7개 분야, 15개 서비스로 구성된다. C-ITS 서비스 중에서 보행자 충돌방지 경고 서비스 는 보행자의 안전을 향상하기 위하여 교차로 또는 도로 구간의 주행 시 횡단 보행자 및 자전거와 충돌사고 를 예방하는 목적을 가진다.
C-ITS의 보행자 충돌방지 경고 서비스는 보행자 정보를 V2I5) 기술을 이용하여 차량에 제공함으로 보행자 의 안전을 제공하는 기술이다. C-ITS 표준에 명시된 보행자 충돌방지 경고 서비스의 구조는 크게 지원 시스 템, RSU, OBU 등으로 이루어져 있다(Intelligent Transport Society of Korea, 2017). 지원 시스템은 보행자를 검 출하는 시스템으로 원적외선 카메라, 가시광 카메라, 밀리파 레이더 등 다양한 센서를 사용할 수 있으며, 센 서의 특성에 따라 보행자를 검출하는 속도, 정확도 등 성능에서의 차이점이 있다(Jung, 2010). RSU와 OBU는 보행자 검출 정보를 I2V로 무선 전송하기 위해 사용되며, RSU는 지원 시스템으로부터 보행자 검출 정보를 수신하여 OBU로 전달한다. RSU는 보행자 충돌방지 경고 서비스에 RSA6) 메시지 셋을 사용한다. RSA는 CCTV 혹은 돌발상황감지기와 같은 센서에서 감지한 위험을 RSU를 통해 차량에 제공하는 메시지 규격이다. RSA 메시지는 이벤트 타입(type Event)을 포함하고 있으며 보행자 충돌방지 경고 서비스와 관련된 이벤트 타 입은 ‘people_on_road’ 이다.
현재 C-ITS 표준을 준용하여 시범사업에 구현된 보행자 충돌방지 경고 서비스는 <Fig. 1>과 같이 횡단보 도 등 보행자를 검지하고자 하는 구역에 설치된 카메라에서 영상 데이터를 획득하고, 영상 데이터는 영상검 지기 서버에 스트리밍 방식으로 전달된다. 영상검지기 서버에서는 전달받은 영상 데이터를 분석하여 보행자 를 검출하고, 검출된 보행자 검출 정보는 V2X 서버, 검지 구역 주변의 RSU를 거쳐서 주변의 차량에 전달된 다. 카메라에서 획득한 영상 데이터를 영상검지기로 스트리밍한 후에 보행자를 검출하는 이유는 보행자를 정확하게 검출하기 위한 딥러닝 알고리즘이 GPU 기반의 고성능 컴퓨터 시스템을 요구하기 때문이다.
그러나 이 구조의 보행자 충돌방지 경고 시스템은 카메라에서 획득한 영상 정보를 영상검지기 서버로 전송 하는 과정에서 압축 알고리즘이 수행된다. 카메라에서 획득한 영상은 압축하는 과정에서 약 2~3초 정도 지연 이 발생한다. 또한, 압축된 영상 정보를 영상검지기 서버로 전송할 때에도 전송할 영상 정보가 비교적 고용량 이기 때문에 전송하는데 막대한 네트워크 비용이 발생하며, 네트워크 환경에 따라서 지연시간이 발생한다는 단점도 존재한다. 특히 카메라와 영상검지기 서버 사이에서는 실험값으로 평균 20ms 정도 지연시간이 발생하 지만, 네트워크의 길이에 따라서 지연시간이 100ms를 초과하는 등 편차가 심하다는 점은 카메라와 영상검지 기 서버의 위치에 따라서 지연시간의 요구사항을 정확하게 만족시키기 어렵다는 문제점이 작용한다.
그리고 기존의 시스템에서는 실제 도로에 해당 시스템을 적용할 때에 영상검지기 서버에서 도로에 설치 되는 수많은 카메라에서 획득되는 영상 정보를 처리해야 하는 문제점이 존재한다. 대부분의 관련 연구에서 는 단일 카메라의 경우이거나 제한된 수량의 카메라를 사용하는 경우만 고려하고 있으며, 시스템을 실용화 할 때는 영상검지기 서버 한 대에서 처리할 수 있는 카메라 수와 비례하여 서버 시스템을 구축해야 하므로 막대한 비용이 요구된다는 문제점이 있다. YOLOv3 알고리즘의 경우에는 1대의 카메라 영상을 처리하는데 약 33ms 정도의 지연시간이 발생하며, 카메라 수에 비례하여 지연시간이 늘어난다.
따라서 기존의 보행자 충돌방지 경고 시스템은 1대의 카메라만 사용하는 경우를 고려할 때 최악의 경우에 약 3,055ms의 지연시간이 발생하여 C-ITS 표준에서 요구하는 300ms를 훨씬 초과하며, 보행자를 검출하고 차 량에 전달되기까지 네트워크 구조상 많은 단계를 거쳐야 하므로 지연시간이 많이 소요된다는 점과 영상검지 기 서버를 구축할 때에 비용 측면에서 문제점이 있다. 그러므로 검지하고자 하는 구역으로 운행 중인 차량은 보행자와 충돌이 발생하기 이전에 보행자가 검출되었다는 정보를 전달받는 방법과 시스템 구축 비용을 줄이 는 방법에 관한 연구가 필요하다.
2. 임베디드 환경용 경량화 딥러닝 알고리즘
최근 수행되고 있는 대부분의 딥러닝 기술에 관한 연구는 강력한 GPU 기반의 컴퓨팅 자원을 이용하여 다 양한 딥러닝 모델의 개발에 대하여 수행하고 있다. 하지만 실제로 현 시장에서는 스마트 모바일 장치, 산업 용 임베디드 시스템, IoT 센서 등의 경량 장치가 많이 활용되고 있으며, 이 장치에서 기존의 딥러닝 모델을 적용하기 어렵다는 문제점이 있다. 따라서 기존의 딥러닝 모델의 정확도를 유지하면서 연산을 간소화하는 경량화 딥러닝 알고리즘에 관한 연구가 최근에 이슈화되고 있다(Lee et al., 2019). 그중에서 대표적인 알고리 즘으로 MobileNet, Tiny-YOLO, Pelee가 있으며, 각 알고리즘의 특성에 대하여 살펴보기로 한다.
1) MobileNet
MobileNeV1은 CNN(Convolutional Neural Network) 아키텍처를 모바일 또는 임베디드 플랫폼에서도 충분하 게 활용할 수 있게 경량화한 모델이다. 현재까지 진행 중인 대부분의 연구 방향은 정확도를 향상하는 방향으 로 치우쳐져 있으며 대표적인 모델은 VGG, Googlenet, Resnet 등이 있다. 그러나 이 모델들은 향상된 성능만큼 연산량이 증가하여 속도가 저하되는 단점이 존재한다. 따라서 무조건 정확도를 향상하는 것보다는 속도와의 효율성에 중점을 가질 필요성이 나타났으며, 이를 해결하기 위한 결과로 MobileNet이 제시되었다. MobileNet 은 계산량을 줄이기 위하여 Depth-wise Separable Convolution을 사용하며, 이는 Depth-wise Convolution(Spatial Convolution)과 Point-wise Convolution(Channel Convolution)을 나누어서 시행하는 구조이다. 이 모델은 네트워 크의 단계는 기존의 CNN(3단계)보다 더 증가(6단계)하였지만, 계산량은 약 1/8 ~ 1/9 정도로 줄이는 효과가 있다(Howord et al., 2017).
MobileNetV2는 기존의 MobileNet에서 발생하는 bottleneck 현상을 해결하기 위하여 inverted residual block을 적용한 모델로서 연산량이 증가하는 것처럼 보일 수 있지만 실제로는 네트워크 크기가 줄어들어 메모리를 더 효율적으로 사용할 수 있게 한 모델이다(Sandler et al., 2018).
2) Tiny-YOLO
Tiny-YOLO는 YOLO의 네트워크 구조를 그대로 수용하면서 객체 검출 단계를 줄여 더욱더 빠른 속도를 제공한다. YOLO(You Only Look Once) 모델은 이미지 내의 객체의 종류와 위치를 동시에 검출한다. Tiny-YOLO는 처리 과정이 간단하여 속도가 매우 빨라 실시간 처리가 가능하며, 기존의 실시간 검출 모델과 비교하여 2배 정도 높은 mAP(mean Average Precision)를 보인다. 그리고 객체에 대하여 조금 더 일반화된 특 징을 학습하여 다른 검출 모델과 비교하면 훨씬 높은 성능이 나타난다(Redmond et al., 2018).
3) Pelee
Pelee(Wang et al., 2018)는 SSD(Single Shot multibox Detector)(Liu et al., 2016)를 최적화시키고, Backbone CNN으로 PeleeNet을 사용한 객체 검출 모델이다. DenseNet(Iandola et al., 2014)을 기반으로 더욱더 정확하고 빠르게 조정하여 모바일 장치에서 딥러닝을 수행하기 위한 모델인 PeleeNet은 GoogLeNet(Szegedy et al., 2015) 의 Dense Layer를 변형한 Two-way Dense Layer를, Inception-v4(Szegedy et al., 2017)와 DSOD(Deeply Supervised Object Detectors)(Shen et al., 2017)에서 Stem Block 개념을 인용하여 적용한 모델이다. Pelee는 연산량을 줄이 기 위하여 38×38 feature map을 사용하지 않고, SSD 구조의 Prediction Block을 Residual Block으로 사용하고, Residual Prediction Block에 1×1 convolution kernel을 사용하여 연산량을 줄였다.
위에서 언급한 MobileNet, Tiny-YOLO, Pelee 외에도 다양한 경량화 딥러닝 알고리즘이 있으며, 본 논문에서 는 엣지 카메라 기반의 보행자 충돌방지 경고 시스템의 보행자 검출 모델을 실시간성에 강한 Tiny-YOLOv3 알고리즘으로 사용한다.
Ⅲ. 엣지 카메라 기반 보행자 충돌방지 경고 시스템
본 논문에서는 엣지 카메라를 이용하여 교차로 및 횡단보도의 사각 지역에 횡단하는 보행자를 검출하고, V2X 통신을 기반으로 운전자에게 실시간으로 보행자 충돌 경고를 제공하는 엣지 카메라 기반 보행자 충돌 방지 경고 시스템을 제안한다. 시스템의 하드웨어는 횡단보도 구간의 영상 정보를 획득하기 위한 카메라를 GPU가 내장된 임베디드 시스템을 적용한 엣지 카메라를 사용하고, 엣지 카메라 내부에서 검출된 보행자 정 보를 차량으로 전송하기 위한 WAVE 무선 통신 장치를 RSU와 OBU로 사용하며, 보행자 정보를 운전자에게 알리기 위하여 경량 임베디드 장치를 차량 단말로 사용한다.
다음절에서는 먼저 시스템의 구조에 관하여 기술하고, 그 이후에는 시스템의 동작 과정에 대하여 상세하 게 기술하도록 한다.
1. 시스템 구조
제안하는 시스템은 <Fig. 2>와 같이 크게 노변 장치와 차량 내 장치로 구분된다.
노변 장치는 보행자 검출을 위한 엣지 카메라와 WAVE 통신을 이용하여 메시지를 전송하는 RSU로 구성 된다. 엣지 카메라는 영상 정보를 획득하는 비디오카메라와 객체 검출을 위한 알고리즘, 객체 검출결과에 따 라 보행자 검출 정보 메시지를 생성하는 RSA 서비스 응용, 생성된 메시지를 RSU로 전달하는 외부 인터페이 스 모듈로 구성되며, 교차로 횡단보도 주변에 설치되어 횡단보도상에 보행자가 존재하는지를 검출하고, 검출 된 보행자 정보를 RSU로 전달하는 기능을 수행한다. RSU는 엣지 카메라에서 이더넷 통신으로 연결되어 보 행자 검출 정보 메시지를 수신하는 외부 인터페이스와 RSA 서비스를 포함하여 V2X 서비스를 제공하는 V2X 서비스 응용, 그리고 WAVE 통신을 위한 J2735-BSM, WAVE Stack 모듈 등으로 구성되며, 횡단보도 구 역에 보행자가 있는 동안 주변 차량에 경고 메시지를 지속해서 전송하는 장치이다.
차량 내 장치는 WAVE 통신을 이용하여 메시지를 수신하는 OBU와 차량 운전자에게 보행자 경고 표출 단말기로 구성된다. OBU는 하드웨어적으로는 RSU와 동일하며, RSU에서 전송한 경고 메시지를 수신하여 보 행자 검출 정보를 보행자 경고 표출 단말기로 전달한다. 보행자 경고 표출 단말기는 보행자 검출 정보를 운 전자에게 표출하는 알람 디스플레이, 수신된 보행자 검출 정보 메시지를 해석하는 RSA 서비스 응용, RSU로 부터 메시지를 수신하는 외부 인터페이스 모듈로 구성되며, 전달받은 경고 메시지를 해석하여 운전자에게 화면 또는 음성으로 경고를 제공한다.
2. 시스템의 동작 과정
제안하는 시스템은 <Fig. 3>과 같이 엣지 카메라에서 획득한 영상 정보를 이용하여 객체 검출 알고리즘으 로 보행자를 검출하고, 검출 정보는 RSU로 직접 전달되어 주변의 차량에 장착된 OBU와 표출 단말을 통하 여 운전자에게 표출된다.
1) 보행자 검출
제안하는 시스템은 보행자 감지를 실시간으로 수행하기 위하여 임베디드 환경용 경량화 딥러닝 알고리즘 인 Tiny-YOLOv3를 활용하였다. 보행자 충돌방지 경고 서비스에 필요한 객체만 검출하도록 엣지 카메라 객 체검출기를 학습하였다. 엣지 카메라 객체검출기는 6종의 교통 객체(‘보행자’, ‘자전거’, ‘오토바이’, ‘차량’, ‘트럭’, ‘버스’)를 검출하도록 데이터를 구성하여 재학습 시켰다. 먼저, 이미지넷(ImageNet) 객체 분류용 데이 터를 이용하여 Tiny-YOLOv3를 사전 학습하고, 사전 학습 결과를 초기 가중치로 사용하여 보행자 충돌방지 경고 서비스용 딥러닝 모델을 재학습하였다. 재학습에는 Pascal VOC 데이터 셋, COCO 데이터 셋 및 자체 제작한 데이터 셋을 사용하였다. <Fig. 4>는 재학습 결과로 생성된 모델을 적용하여 횡단보도 및 교차로에서 1920×1080의 해상도의 카메라 영상으로 객체를 검출한 결과를 보여준다.
엣지 카메라는 횡단보도의 보행자(보행자, 자전거)가 검출되면 RSU로 보행자 검출 정보를 제공한다. 이때, 엣지 카메라와 RSU는 이더넷으로 연결되고 보행자 검출 정보는 검출 시간, 검출 위치를 포함한다. 추가로 보행자의 검출 위치뿐만 아니라 보행자의 이동 방향, 이동 속도를 제공할 수 있다.
2) RSA 메시지 전달 과정
엣지 카메라에서는 반복적으로 영상 프레임이 입력되어 프레임 내에서 객체가 존재하는지를 검출한다. 객 체 검출결과 중에서 ‘사람’이 검출될 때는 그 즉시 검출 정보를 주변 차량으로 전송하기 위하여 RSU로 검출 정보를 전송한다. 엣지 카메라에서 RSU로 전송하는 데이터의 종류는 다음과 같다.
-
- 패킷 타입(packet_type)
-
- 송신 시점의 시간 정보(seconds, micro_seconds)
-
- 검출 대상 정보(its_code)
-
- 검출 대상의 이벤트 정보(its_code_event)
패킷 타입은 메시지의 종류를 나타내는 코드로써 RSU에서는 메시지를 수신하여 패킷 타입의 코드에 따라 서 해당하는 서비스를 수행한다. 제안 시스템에서는 RSA 서비스를 사용하기 위하여 RSA 메시지임을 나타 내는 코드와 이벤트 해제를 나타내는 코드를 사용한다. 송신 시점의 시간 정보는 보행자가 발견된 시점의 날 짜 및 시간 정보로써 초 단위 시간 정보와 마이크로초 단위의 시간 정보이다. 검출 대상 정보는 검출된 객체 가 무엇인지를 나타내는 코드로써 제안 시스템에서는 ‘보행자’일 경우만 고려한다. 검출 대상의 이벤트 정보 는 검출된 객체의 행위에 대한 정보로써 ‘보행자’의 경우에는 ‘보행자가 서 있다’, ‘보행자가 누워있다’ 등에 서 ‘서있다’, ‘누워있다‘ 등과 같은 행위에 대한 정보를 의미한다. 제안 시스템에서는 횡단보도 구역에 보행 자가 존재하는지만을 고려하므로 검출 대상의 이벤트 정보는 사용하지 않는다.
엣지 카메라에 내장된 보행자 검출 알고리즘에서 보행자가 검출되었을 때에는 패킷 타입을 RSA 메시지 코 드로 설정하고, 검출 대상 정보를 ’사람‘ 코드로 설정하여 메시지를 이더넷 통신으로 RSU에게 전달한다. 이때 엣지 카메라에서의 보행자 검출은 검출 알고리즘의 정확도에 따라 실제로 보행자가 계속 존재함에도 연속적으 로 검출되지 못하기 때문에 보행자가 검출될 때는 검출되었다는 상태를 일정 시간 지속시킨다. 만약 일정 시간 이상 보행자가 검출되지 않을 때는 패킷 타입을 이벤트 해제 코드로 설정하고 RSU로 메시지를 전달한다.
RSU는 보행자 충돌방지 경고 시스템뿐만 아니라 다양한 서비스에 대한 처리를 수행한다. WAVE 통신으로 보행자 충돌 경고 서비스가 제공되고 있음을 주기적으로 전파하여, 주변의 차량에 해당 서비스를 이용 가능함 을 알려준다. 그리고 RSU는 수신되는 메시지의 패킷 타입에 따라서 해당하는 서비스를 수행하며, 제안 시스템 에서 사용하는 RSA 메시지 코드를 수신할 때는 WAVE 통신으로 주변 차량에 이벤트가 있음을 100ms 주기로 계속해서 전파한다. 제안 시스템에서는 횡단보도 구역 내에 보행자가 존재함을 알리는 서비스이므로 엣지 카메 라로부터 RSA 메시지를 수신할 때에는 주변 차량에 보행자가 존재한다는 메시지를 전파한다. 그리고 이벤트가 종료되었다는 메시지를 엣지 카메라로부터 수신할 때에는 주변 차량으로의 메시지 전송을 중단한다.
OBU는 WAVE 통신으로 RSU에서 전파하는 메시지를 계속해서 수신함으로 차량 주변에 보행자 충돌 경고 서 비스가 제공되는지를 확인한다. OBU는 주변에 설치된 RSU에서 해당 서비스가 제공될 때 횡단보도 구역에 보행 자가 존재하는지에 대한 RSA 메시지 수신을 기다리고, 보행자가 존재한다는 정보가 담긴 RSA 메시지를 수신할 때 해당 정보를 경고 알람 장치에 전달한다. 이때 OBU는 RSU에서 계속 전파하고 있는 RSA 메시지를 받을 때 마다 경고 알람 장치로 메시지를 전달하며, RSU로부터 수신되는 메시지가 없을 때는 메시지 전달을 중지한다.
경고 알람 장치는 OBU와 이더넷으로 연결되어 횡단보도 구역에 보행자가 존재한다는 정보를 수신할 때 디스플레이에 충돌 경고를 표출하는 기능을 수행하며, 경고 알람을 울려 운전자에게 주의할 것을 알려준다. OBU에서 RSA 메시지를 수신하면, 운전자에게 알람으로 주의할 것을 알려주고, RSA 메시지가 수신되지 않 을 때는 알람을 해제한다.
Ⅳ. 구현 및 성능 평가
본 장에서는 제안하는 시스템의 구현 방법을 기술하고, 제안 시스템의 성능 측정을 위한 실험 방법 및 실 험 결과를 정리한다. 그리고 마지막으로 실험 결과의 분석 내용을 기술한다.
1. 구현
제안하는 시스템을 구현하기 위한 하드웨어는 엣지 카메라, RSU, OBU, 경고 알람 장치로 구성된다. 엣지 카메라는 내부에서 임베디드 환경용 경량화 딥러닝 알고리즘을 수행해야 하므로 GPU가 내장된 임베디드 보 드를 사용한다. RSU와 OBU는 WAVE 통신을 위한 차량용 무선 통신 장치를 사용하며, RSA 서비스가 표준 을 준용하여 구현되어있다. 그리고 경고 알람 장치는 컴퓨팅 성능이 크게 제한되지 않음으로 현재 널리 사용 되고 있는 임베디드 보드 중에서 선택하여 사용하였다. 구현에 사용된 하드웨어의 상세 정보는 <Table 2>에 명시하였다. 그리고 <Fig. 5>는 엣지 카메라, RSU, OBU 및 차량 표출 장치로 구성된 개발 환경을 보여준다. 개발 PC는 엣지 카메라, 경고 알람 장치, RSU, OBU 등을 원격 접속하는 용도와 엣지 카메라와 경고 알람 장치의 시간 동기화를 위한 타임 서버의 용도로 사용된다.
엣지 카메라에서 보행자를 검출할 때 검출 정보를 RSU로 전달하는 기능을 구현하기 위하여 제안 시스템 에서는 C 언어 기반의 오픈소스 딥러닝 프레임워크인 Darknet에서 검출 기능만 추출하여 구현된 YOLO2 Light를 사용하였으며, 검출에 사용할 데이터 셋은 COCO를 활용하였고, 학습 값은 Tiny-YOLOv3를 사용하였 다. 입력된 프레임에서 객체가 검출되면 검출된 객체 명이 무엇인지 판별하고, 판별된 객체가 ‘사람’일 때는 즉시 RSU로 전송할 메시지의 패킷 타입을 RSA로 설정하고, 검출 시점의 시간 정보를 설정한다. 그리고 즉 시 TCP/IP 소켓으로 RSU로 메시지를 전송하도록 구현하였다. 그리고 실제로 ‘사람’이 있으나 검출되지 않는 문제를 해결하기 위하여 카운트 값을 두어 ‘사람’이 검출되지 않을 때는 카운트 값을 1씩 감소시켜서 카운트 값이 0이 되면 ‘사람’이 없는 것으로 판별되도록 하였다. 만약에 ‘사람’이 검출되었을 때는 카운트 값을 다시 초깃값으로 설정하여 특정 횟수 이상 검출되지 않을 때만 이벤트가 해제되도록 하였다. 또한, 만약에 이벤트 가 해제되었다는 메시지가 전송되기 전에는 모두 같은 이벤트로 간주하여 시간 정보는 업데이트되지 않는 다. 본 논문에서 실험할 때에는 카운트의 초깃값을 10으로 설정하였다.
RSU와 OBU는 업체에서 제공된 모듈 내부의 펌웨어를 수정할 수 없으므로, 제공된 소프트웨어를 그대로 사용하였다.
경고 알람 장치는 OBU로부터 TCP/IP 소켓으로 전송되는 메시지를 확인하여 RSA 메시지가 수신될 때는 화 면에 알람을 띄우고, 버저 음을 발생시키도록 구현하였다. OBU에서는 이벤트가 지속하는 동안에 계속해서 같 은 RSA 메시지를 전송하도록 구현되어있다. 따라서 한번 발생한 이벤트는 메시지 내부의 데이터가 같은 데이 터가 계속 전송된다. 따라서 수신되는 메시지가 이전의 이벤트인지 새로운 이벤트인지를 판별하기 위하여, 수 신되는 메시지의 시간 정보를 확인하여 이전의 메시지와 시간 값이 다를 경우에는 새로운 이벤트로 간주한다.
2. 실험 방법
엣지 카메라와 경고 알람 장치 간의 지연시간을 측정하기 위해서는 두 기기의 시간 동기화가 필요하다. 실험에서는 개발 PC에 NTP 서버를 운영하여 엣지 카메라와 경고 알람 장치를 비교적 근거리의 서버와 동기 화함으로 시간 오차를 줄이도록 하였다. 일반적으로 두 기기 간의 시간 동기화를 위해서는 모시계(Master Clock) 장비를 이용하거나 GPS 시간을 이용해서 동기화하는 방법이 많이 사용되고 있으며, NTP 타임 서버를 이용하여 동기화하는 방법도 많이 사용되고 있다. 일반적으로는 장거리의 범용 NTP 서버를 이용하여 동기 화하지만, 이 방법은 시간 오차가 발생할 가능성이 있다.
그리고 제안하는 시스템에서는 보행자 검출 시점에서 차량에 전달되는 지연시간을 측정하기 위해서 엣지 카메라에서 객체를 판별하는 시점과 경고 알람 장치에서 메시지를 수신하여 알람을 띄우는 시간의 지연시간 을 측정하였다. 영상이 입력되는 시점에서 알람을 띄우는 시간까지의 전체 지연시간은
과 같다.
여기서 Linput은 카메라에서 획득한 영상을 제안 시스템으로 입력받는데 소요되는 지연시간이며, Ldetect는 입력받은 영상에서 객체를 검출하는데 소요되는 지연시간이다. 그리고 Ltransmit는 검출된 객체 정보를 경고 알람 장치로 전송하는데 소요되는 지연시간이며, Lalarm은 경고 알람 장치에서 수신받은 정보를 확인하여 알 람을 표출하는데 소요되는 지연시간이다. Linput과 Lalarm은 시스템 내부에서 데이터가 전달되는 지연시간으 로서 메모리 접근 지연시간, CPU 처리 지연시간 등 컴퓨팅 성능에 따라 달라질 수 있지만 무시할 수 있을 정도로 작은 것으로 간주하여 본 논문에서 성능 분석할 때에는 적용하지 않는다. Ldetect의 경우에는 검출 알 고리즘에서 측정되는 FPS(frame per second)를 이용한다. FPS는 1초에 처리 가능한 프레임 수를 나타내며, 10FPS를 예를 들면 1초에 10개의 프레임을 처리하므로 하나의 프레임당 처리되는 시간을 10fps/1,000ms로 계 산할 수 있으며, 100ms 주기로 하나의 프레임을 처리할 수 있다고 할 수 있다.
따라서 본 논문에서는 객체가 검출되고 클래스가 판별되는 시점과 경고 알람 장치에서 보행자 검출 정보 가 도착한 시점의 시간 값의 차를 이용하여 Ltransmit를 측정하고, 검출 알고리즘의 FPS를 측정하여 변환한 Ldetect값과의 합으로 전체 지연시간을 계산한다.
3. 실험 결과 및 분석
1) Ldetect 측정 결과
본 논문에서는 Ldetect를 측정하기 위하여 엣지 카메라에 저장된 샘플 영상을 입력으로 하여 10회 측정하 였다. 샘플 영상은 MPEG4 video(H.264) 압축 포맷이며, 재생 시간은 10분, 해상도는 960×540, 프레임 수는 29.97fps, 비트율은 6,988kbps, 파일 크기는 508MB이다. 측정 결과는 <Table 3>과 같다. 측정 결과로 Ldetect는 최소 19.4fps, 최대 41.8fps, 평균 36.17fps이며, 이를 ms 단위로 환산할 때는 최소 약 24.271ms, 최대 약 42.918ms, 평균 약 27.651ms임을 알 수 있다.
2) Ltransmit 측정 결과
Ltransmit를 측정하기 위하여 엣지 카메라에서 객체를 검출할 때 그 시간을 메시지에 담아서 경고 알람 장 치로 보내며, 경고 알람 장치에서는 보행자가 검출되었을 때의 시간을 이용하여 전송 지연시간을 측정한다. 이벤트가 해제되는 경우는 중요하지 않음으로 지연시간을 측정하는 것을 제외한다. Ltransmit 역시 10분 분량 의 샘플 영상을 입력으로 하여 10회 측정하였으며, 그 결과는 <Table 4>와 같다. 측정 결과로 Ltransmit는 최 소 32.069ms, 최대 96.143ms, 평균 47.928ms임을 알 수 있다.
3) 실험 결과 분석
실험 결과를 바탕으로 성능 평가는 최악의 상황(worst case)을 고려해야 하므로, Ldetect와 Ltransmit 값은 최 대일 경우로 평가한다. Ldetect의 최댓값은 42.918ms이며, Ltransmit의 최댓값은 96.143ms이므로, 실험 결과에서 최악의 상황일 때의 전체 지연시간은 139.061ms이다.
그러나 실시간성을 고려할 때는 실험에서 사용된 샘플 영상과 같이 약 30fps로 영상이 실시간으로 입력될 때는 33.333ms마다 하나의 프레임이 입력되며, Ldetect가 더 크기 때문에 모든 프레임을 처리할 때는 프레임 이 입력되는 버퍼가 누적되어 실시간 처리에는 지연시간이 더 소요된다는 점도 고려되어야 한다. 일반적으 로 실시간을 고려한 객체 검출 알고리즘에서는 모든 프레임을 처리하지 않고 검출 알고리즘을 시작할 시점 의 최근 프레임을 선택적으로 사용하는 프레임 스킵이 사용된다. <Fig. 6>은 실험 결과에서 최악의 상황에서 의 지연시간 수치를 이용하여 영상 입력과 검출 알고리즘의 소요 시간에 대한 예시를 나타난 그램이다. 이 그림을 살펴보면 n frame이 입력될 때 즉시 검출 알고리즘이 수행되었다면, n+1 frame은 실제 비디오가 획득 된 시점에서 9.585ms 뒤에 검출 알고리즘을 수행할 수 있다. 따라서 n+1 frame의 영상 획득에서 검출이 완료 되는데 약 52.503ms가 소요된다. 그리고 만약에 n+2가 입력되기 직전에 검출 알고리즘이 수행된다고 가정하 며, n+1이 검출 완료되기까지는 약 76.251ms(33.333ms + 42.918ms)가 소요된다.
따라서 결과적으로 영상이 입력되는 시점에서 검출결과가 차량으로 전달되어 알람을 표시하기까지는 약 172.394ms가 소요되며, C-ITS 표준에서 요구하고 있는 300ms 이내로 보행자 검출결과가 전달될 수 있다는 것을 알 수 있다.
Ⅴ. 결 론
본 논문에서는 보행자 충돌방지 경고 시스템에서 횡단보도상의 보행자를 검출하는 시점에서 횡단보도에 진입하는 차량까지 보행자가 검출됨을 알리는 지연시간을 줄이고자 하였다.
기존의 보행자 충돌방지 경고 시스템은 검지 시스템과 통신 시스템의 이원화로 인하여, 보행자 검출 시스 템과 V2X 서비스 시스템을 거쳐서 RSU로 검출 정보가 전송되는 데 많은 시간이 소요된다. 보행자 검출 알 고리즘은 약 33ms의 지연시간 발생으로 엣지 카메라에서 수행할 때보다 훨씬 작게 나타났다. 그러나 네트워 크의 통신 지연시간은 최대 약 100ms까지 지연되는 때도 있었으며, 영상을 압축하는 시간이 약 3초 정도 소 요되는 것을 확인하였다. 결과적으로 검출 알고리즘 자체는 고성능 GPU에서 처리하기 때문에 임베디드 시 스템에서 사용되는 GPU보다 훨씬 좋은 성능을 보일수 있지만, 네트워크의 통신 지연과 영상 압축 지연이 심 하게 증가하기 때문에 기존의 보행자 충돌방지 경고 시스템은 C-ITS 표준에서 횡단보도상에 보행자가 존재 할 경우 주변의 차량에 300ms 이내에 보행자가 존재함을 전달할 수 있도록 요구하는 것을 만족하지 못한다.
제안한 시스템은 카메라에서 획득한 영상을 압축하고, 전송하는 비용을 줄이기 위하여 보행자 검출 알고 리즘을 엣지 카메라에서 수행하며, 엣지 카메라와 RSU를 이더넷으로 직접 연결함으로써 네트워크 전송 거 리를 최소화하였다. 엣지 카메라는 딥러닝 알고리즘의 수행을 위하여 GPU 기반의 임베디드 보드를 사용하 였고, 차량용 무선 통신 장치인 RSU와 OBU는 WAVE 표준을 준용하는 상용 보드를 사용하였다. 실험 결과 로 분석했을 때에 제안 시스템은 최대 약 172.394ms의 지연시간이 소요됨을 보였다. 따라서 제안 시스템은 최악의 상황에서 소요되는 지연시간이 C-ITS 표준에서 제시하고 있는 요구성능을 크게 만족하고 있으므로 실제로 상용화 가능할 수준의 성능임을 입증하였다.
마지막으로 향후에는 후속 연구를 통해 자율주행차와의 연동함으로써 자율주행의 안전 문제를 보완하는 것에 활용할 예정이다.