한국정보통신학회논문지 Vol. 25, No. 7: 962~970, Jul. 2021
전방 추돌 경보를 위한 영상 기반 실시간 차량 검출 및 추적 알고 리즘
홍성훈1·박대진2*
Vision-based Real-time Vehicle Detection and Tracking Algorithm for Forward Collision Warning
Sunghoon Hong1 · Daejin Park2*
1Senior Engineer, CARNAVICOM, Incheon, 21984 Korea
2*Assistant Professor, School of Electronics Engineering, Kyungpook National University, Daegu, 41566 Korea
요 약
대부분의 자동차 사고는 졸음운전과 같은 운전자의 부주의로 인해 발생한다. 전방 추돌 경보 시스템 (FCWS)은 전 방 차량으로부터 추돌 위험을 감지하여 운전자에게 사전에 경고함으로써 사고의 위험을 현저하게 줄여준다. 본 논문 은 주행 안전을 위한 저전력 임베디드 기반 FCWS를 소개한다. 단일 카메라로부터 전방 차량에 대해 검출, 추적, 거 리를 계산하고 현재 차량의 속도 정보를 통해 충돌시간 (TTC)을 계산한다. 또한 저성능 임베디드 시스템에서 실시간 으로 동작하기 위해 높고 낮은 수준의 프로그램 최적화 기법을 소개한다. 이 시스템은 임베디드 시스템에서 사전에 취득해둔 주행 영상을 통해서 테스트 하였다. 최적화 기법을 사용한 결과는 이전에 최적화를 하지 않은 프로세스 보 다 실행 시간이 약 170배 향상되었다.
ABSTRACT
The cause of the majority of vehicle accidents is a safety issue due to the driver’s inattention, such as drowsy driving.
A forward collision warning system (FCWS) can significantly reduce the number and severity of accidents by detecting the risk of collision with vehicles in front and providing an advanced warning signal to the driver. This paper describes a low power embedded system based FCWS for safety. The algorithm computes time to collision (TTC) through detection, tracking, distance calculation for the vehicle ahead and current vehicle speed information with a single camera.
Additionally, in order to operate in real time even in a low-performance embedded system, an optimization technique in the program with high and low levels will be introduced. The system has been tested through the driving video of the vehicle in the embedded system. As a result of using the optimization technique, the execution time was about 170 times faster than that when using the previous non-optimized process.
키워드 : 첨단 운전자 보조 시스템, 전방 추돌 경보 시스템, 사물 검출, 저전력 비전 처리
Keywords : Advanced driver assistance systems, Forward collision warning system, Object detection, Low-power vision processing
Received 8 June 2021, Revised 9 June 2021, Accepted 19 June 2021
* Corresponding Author Daejin Park (E-mail:[email protected], Tel:+82-53-950-5548)
Assistant Professor, School of Electronics Engineering, Kyungpook National University, Daegu, 41566 Korea
Open Access http://doi.org/10.6109/jkiice.2021.25.7.962 print ISSN: 2234-4772 online ISSN: 2288-4165
Ⅰ. 서 론
첨단 운전자 보조 시스템 (ADAS)은 운전자의 운전 에 도움을 주는 시스템으로 운전 피로를 감소시키고, 안 전한 운전을 도와준다. 그 중에 전방 추돌 경보 시스템 은 전방 차량과의 추돌 위험을 미리 감지하여 운전자에 게 경보를 해주는 시스템으로, 시각적인 디스플레이나 청각적인 오디오 사운드 또는 그 외의 요소를 통해 운전 자에게 위험에 대한 사전 경보를 알려줄 수 있다.
전방 추돌 경보 시스템은 전방 차량으로부터 거리가 너무 가까우면 추돌 위험 가능성이 크기에 운전자에게 사전 경보를 전달해 줌으로써 사고의 위험을 현저하게 줄이는데 중요한 역할을 한다. 충돌시간은 전방 차량으 로부터 거리와 현재 차량의 속도 정보를 통해 계산이 되 는데, 전방 차량으로 부터의 거리를 계산하기 위해서는 차량 검출 및 추적 알고리즘이 필요하다. 차량 검출에는 보다 성능이 좋은 딥 러닝 기반 검출 알고리즘이 있으나 많은 계산량이 요구되기에 실시간 검출을 위해서는 고 사양의 GPU가 포함된 하드웨어가 필요하다.
차량에 ADAS를 접목시키기 위해서는 자동차에 대 한 소비전력을 낮추는 것 또한 중요한 요소이다. 소비 전력이 높으면 배터리의 잦은 충전으로 인해 차량의 연 비 또한 낮아지기에 비효율적이다.
그러므로 본 논문에서는 보다 빠른 검출을 위해 머신 러닝을 기반으로 한 알고리즘을 소개한다. 하르 (Haar) 특징을 기반으로 한 케스케이드 (Cascade) 분류기는 머 신 러닝의 한 종류이며 사물 검출에 있어 효과적이다 [1, 2]. 그러나 이 알고리즘 또한 저성능 임베디드 시스템에 적용하는데 한계가 있기에 최적화 기법이 필요하다.
차량 추적 알고리즘은 검출된 차량으로부터 거리를 계산하는데 요구되며 차량 추적은 template-matching 기술을 사용 한다 [3, 4]. 전방에 끼어드는 차량을 빠르 게 감지하기 위해 차량 검출 알고리즘은 항상 실시간으 로 동작해야한다. 그러나 만약 차량 검출과 추적 알고리 즘이 동시에 동작한다면 계산 복잡도가 증가하기 때문 에 FCWS의 성능이 저하될 우려가 있다.
연산 처리 속도를 향상시키기 위해 최적화 기법이 필 요한데, 멀티 코어 기법을 사용한 방법이 있다. 멀티 코 어를 사용하여 차량 검출과 추적 알고리즘을 각 코어마 다 적절히 배분하여 병렬로 처리함으로써 성능을 향상 시킬 수 있다. 최근에는 ARM NEON처럼 single instruction
multiple data (SIMD) 명령어를 사용하여 반복되는 연산 을 병렬로 처리하기에 보다 빠른 성능 개선을 보여주고 있다.
Ⅱ. 관련 연구
FCWS에서는 대표적으로 레이더 (Radar)와 카메라 (Camera) 또는 라이다 (Lidar)와 카메라를 융합하여 사 용하는 방식이 있다. 이 시스템에서 레이더 또는 라이다 는 카메라로부터 검출된 차량에서 정확한 거리와 거리 변화율을 계산하는데 사용된다. 그러나 이러한 솔루션 은 비싸고 각각의 센서들을 정합하는데 쉽지가 않다.
반면에 카메라만 사용한 방식은 비용도 저렴하고 별 도의 센서 정합이 요구되지 않기에 설치가 간편하다는 장점이 있다. 카메라만 사용하는 경우 차량을 검출하기 위해 오직 엣지 (Edge) 정보만을 사용하여 검출하는 방 법이 있는데 엣지 정보만으로는 차량을 정확하게 검출 하는데 한계가 있기에 잘못된 검출이 많이 발생 한다 [5]. 이러한 오검출을 줄이기 위해 YOLOv3 같은 딥 러 닝 기법을 사용하는 방법이 있다 [6].
딥 러닝은 차량 검출에 있어 성능이 좋지만 많은 연산 량이 요구되기 때문에 저성능 임베디드 시스템에서는 적용하기 힘든 단점이 있다. 반면에 머신 러닝은 딥 러 닝 보다 연산량이 적기 때문에 빠른 장점이 있으며 그 중에 하나가 케스케이드 분류기이다 [7]. 하지만 이전에 도 언급했듯이 머신 러닝 기법 또한 저성능 임베디드 시 스템에 바로 접목시키기에는 한계가 있기 때문에 동작 성능을 향상시키기 위해서는 최적화 기법이 필요하다.
여기에는 다양한 최적화 기법이 있는데 높은 수준에 서의 최적화는 루프 언롤링 (Loop unrolling)을 사용한 루프 최적화 기법, 응답 성능을 향상시키기 위해 멀티 쓰레드 (Multi thread)를 이용한 프로세스 분할처리 등 이 있다. 그러나 높은 수준에서만 최적화하기에는 한계 가 있기에 낮은 수준에서의 최적화 기법도 같이 고려해 야 한다. 낮은 수준에서의 최적화 기법은 단일 명령어로 다중 데이터를 처리하는 SIMD, 처리 속도를 향상시키 기 위해 멀티코어를 이용한 프로세스 병렬처리, GPU를 활용한 최적화 기법 등이 있다.
GPU는 컴퓨터 시스템에서 그래픽과 관련된 연산을 빠르게 처리하여 결과 값을 전달하는 장치로 CPU의 부
담을 크게 줄일 수 있다. 일반적으로 GPU 프로그래밍을 위해 언어를 선택해야 되는데, 그 중 대표적인 것이 OpenCL과 CUDA가 있다.
Ⅲ. 최적화 기반 FCWS
FCWS의 최종 목표는 전방 차량으로부터의 충돌 시 간을 계산하여 운전자에게 추돌 위험을 알려주는 것 이 다. 충돌 시간을 계산하기 위해서는 차량 검출, 추적 그 리고 거리 계산하는 과정이 요구된다. 차량 검출 및 추 적 알고리즘은 많은 계산량이 요구되기 때문에 임베디 드 시스템은 그림 1과 같이 최적화를 했다.
CPU가 2개라는 가정하에 먼저 카메라 센서로부터 영상을 받는다. 처음에는 검출된 차량이 없어 추적모드 가 아니기에 듀얼 코어를 사용하여 차량 검출 속도를 향 상시킨다. 만약 전방에 차량이 검출된다면 추적모드는 활성화되어 한 개의 코어에서는 차량 검출이 동작하고 나머지 한 개의 코어에서는 검출된 차량을 지속적으로 추적한다. 추적된 차량으로부터 TTC를 계산하여 추돌 위험가능성이 있으면 운전자에게 위험 경고를 알려주 기 때문에 추돌 위험을 사전에 방지하는데 도움을 준다.
Fig. 1 FCWS flowchart
3.1. Vehicle Detection
3.1.1. Haar feature-based cascade classifiers
차량 검출 알고리즘은 하르 특징을 기반으로 한 케스 케이드 분류기를 사용한다. 하르 특징을 기반으로 한 케 스케이드 분류기는 머신 러닝 기반이며 딥 러닝 기법보 다 더 빠르고 가벼운 장점이 있다.
Fig. 2 Haar-like feature
그림 2와 같이 하르 특징들은 지정된 흰색 사각 영역 들의 모든 픽셀 합과 검은색 사각 영역들의 모든 픽셀 합의 차이를 통해서 단일 값으로 계산된다. 이러한 하르 특징 하나가 하나의 약 분류기 (Week classifier)에 해당 하는데 약 분류기 하나만 가지고 차량을 검출하기에는 정보가 많이 부족하다. 그렇기에 다수의 약 분류기를 사 용하여 보다 강인한 강 분류기 (Strong classifier)를 만들 어야 하는데, 차량 검출에 있어 의미 있는 약 분류기들 만을 추출하기 위해 Adaboost 알고리즘을 사용해서 학 습 한다 [8, 9].
최종적으로 케스케이드 함수는 20x20 크기의 차량에 해당하는 수많은 포지티브 이미지들 (Positive images) 과 차량이 아닌 수많은 네거티브 이미지들 (Negative images)을 통해서 적합한 강 분류기들을 그림 3과 같이 단계별로 구성한다.
Fig. 3 Cascade windows sliding system
만약에 케스케이드를 사용하지 않고 학습을 통해 얻 어진 하르 특징들의 나열인 강 분류기를 모두 다 사용한 다면, 흰색 배경과 같은 20x20의 관심영역 (ROI)에서 강 분류기를 모두 다 비교하기에 비효율 적이다. 케스케 이드는 학습되어 얻어진 약 분류기들을 적절하게 그룹 화 하여, 여러 개의 강 분류기들을 생성해 단계별로 검
사를 한다.
이미지에서 검출 하고자 하는 관심영역은 각 단계에 서 학습된 강 분류기를 통해 비교가 되는데, 계산된 값 이 학습된 임계값 (Threshold) 이상이면 다음단계로 넘 어간다. 이하이면 현재 관심영역은 버리고 다음 관심영 역에 대해 비교를 하고, 모든 단계를 다 통과하면 최종 적으로 차량으로 검출이 된다.
흰색 배경과 같은 관심영역은 차량과 비슷한 특징이 없기 때문에 앞 단계에서 빠르게 버리고, 차량과 비슷한 특징을 갖는 관심영역은 단계별로 점점 더 자세하게 검 사하기 때문에 검출 속도가 빠른 장점이 있다. 그러나 케스케이드의 문제는 640x480 크기의 입력 이미지가 있을 때, 관심영역의 크기를 반복적으로 키우고 슬라이 딩 (Sliding)하면서 모든 위치에 존재하는 관심영역을 비교하기 때문에 비효율적이다. 실제로 차량이 존재할 수 없는 위치에 대한 관심영역도 케스케이드의 첫 단계 에서 검출에 대한 연산을 하고 있기 때문에 CPU 입장에 서는 자원의 낭비가 될 수 있다.
소실점 (Vanishing point)은 입력 이미지가 있을 때 차량을 검출하기 위한 모든 위치에 존재하는 관심영역 을 사용하는 것이 아니라, 실제로 차량이 존재할 수 있 는 위치에서의 관심영역을 추출하는데 도움을 준다.
3.1.2. Vanishing point based cascade classifiers 소실점은 3차원 공간에서 평행하는 두 개의 직선이 2 차원 평면에 투영이 되면서 두 개의 직선이 만나는 점을 말한다. 2차원 이미지에서 검출된 차량의 경우 차량의 바퀴와 지면과 닿는 부분에 대한 픽셀 좌표는 소실점에 대한 픽셀 좌표보다 상단에 존재할 수 없다. 이러한 성 질을 이용해서 그림 4와 같이 소실점을 기준으로 6개의 윈도우를 생성한다.
Fig. 4 Vanishing point based cascade system
생성된 6개의 윈도우는 각각 60x60 크기의 고정된 스 케일로 변환하여 케스케이드 알고리즘을 적용한다. 윈 도우 크기가 큰 영역은 60x60으로 크기가 축소되어 실 제로 근접한 차량을 검출하는데 효과적이다. 30x30 크 기를 가지는 윈도우는 60x60으로 변환할 때 윈도우가 확대되기 때문에 원거리에 있는 차량을 검출하는데 효 과적이다.
만약에 6개의 윈도우 영역에서 동시에 케스케이드 알고리즘이 동작한다면, 처리 속도가 느려져 저성능 임 베디드 시스템에서 요구하는 프레임 속도 (FPS)를 보장 하지 못 한다. 높은 수준에서 알고리즘 측면으로 속도를 향상시키기 위해 한 프레임에서 6개의 윈도우 영역을 동시에 계산하는 것이 아니라, 한 프레임 당 1개의 윈도 우 영역을 계산한다. 6개의 모든 윈도우 영역을 계산하 기 위해서는 총 6개의 다른 프레임이 요구된다.
3.1.3. SIMD
SIMD는 병렬 프로세서의 한 종류로, 하나의 명령어 로 여러 개의 값을 동시에 계산하는 방식이다. ARM NEON 기술은 ARM Cotex-A 및 Cortex-R 시리즈 프로 세서를 위한 고급 SIMD 아키텍처 확장이다. NEON 레 지스터는 동일한 데이터 유형의 요소 벡터로 간주되며 NEON 명령어는 여러 요소에서 동시에 동작한다. 최적 화가 필요한 부분을 직접 NEON 어셈블러로 코딩하여 차량 검출에 대한 알고리즘을 가속화하여 속도를 향상 시켰다.
Fig. 5 Matrix multiplication with non-optimization
그림 5는 일반적인 행렬 A와 행렬 B의 곱셈을 표현한 그림이다. 기본적으로 행렬 C의 0번 요소를 계산하기 위 해서는 행렬 A의 첫 번째 행과 행렬 B의 첫 번째 열의 성 분을 각각 곱해서 적분하기에 총 8번의 순차적인 곱셈과 적분이 필요하다. 행렬 C의 첫 번째 행을 계산하기 위해 서는 8×8번의 순차적인 곱셈과 적분이 필요하며, 행렬 C 를 계산하기 위해서는 총 64×8번의 계산이 요구된다.
Fig. 6 Matrix multiplication using SIMD
그림6은 SIMD와 루프 언롤링 기법을 사용하여 행렬 A와 행렬 B의 곱셈을 표현한 그림이다. 32-bit 실수형 데이터라고 가정했을 때, NEON의 128-bit 연산 레지스 터를 사용하면 4개의 32-bit 실수형 데이터를 한 번의 연 산 주기에 수행할 수 있다.
행렬 A의 빨간색 영역에 있는 0번 요소는 행렬 B의 왼쪽 빨간색 영역에 있는 4개의 0번 요소를 한 번의 연 산 주기에 곱셈을 수행하고, 행렬 B의 오른쪽 빨간색 영 역에 있는 4개의 0번 요소들도 동일하게 곱셈을 수행한 다. 그리고 행렬 A의 1번 요소는 행렬 B의 왼쪽 빨간색 영역에 있는 1번 요소들을 한 번의 연산 주기에 곱셈을 수행하고 이전에 구해진 4개의 0번 요소 값을 한 번의 연산 주기에 덧셈을 수행한다. 이러한 과정을 반복하여 행렬 C의 1번째 행을 계산하기 위해서는 16번의 순차적 인 곱셈과 적분이 필요하며, 행렬 C를 계산하기 위해서 는 총 16×8번의 계산이 요구된다.
행렬 A와 행렬 B의 곱셈에 있어 SIMD를 사용하면 기존보다 계산 복잡도가 4배나 줄어드는 것을 확인 할 수 있다. 차량을 검출하는 과정에서는 검출하고자 하는 위치에 대한 관심영역이 필요하다. 보통 관심영역은 사 각형으로 표현되며 사각형을 표현하기 위한 시작 좌표 (x, y)와 사각형에 대한 폭 (width) 및 높이 (height) 정보 가 필요하다. 기존에는 차량을 검출하기 위해 4개의 요 소가 순차적으로 계산 되었지만, SIMD를 사용함으로써 검출 속도가 향상되었다.
3.2. Vehicle Tracking
차량 추적은 기존에 검출된 차량을 연속적으로 추적 하는데 필요한 알고리즘이다. 차량 추적 없이 오직 차량 검출만 한다면 차량이 동일한 위치에 있음에도 불구하 고 검출된 차량에 대한 관심영역의 픽셀 좌표는 불규칙 적으로 다를 것이다. 만약 관심영역의 위치가 불규칙적 으로 변하게 되면 검출된 차량에 대한 거리 값도 불규칙
하게 변하기 때문에 계산된 TTC에 대한 값도 오차가 커 져 신뢰할 수 없게 된다. 이처럼 검출된 차량에 대한 관 심영역 위치가 이전에 검출된 관심영역 위치와 항상 동 일하다는 보장이 없기 때문에 검출된 관심영역 기준으 로 규칙적으로 추적하기 위해서는 차량 추적 알고리즘 이 필요하다. 차량 추적 알고리즘은 20x20 크기의 윈도 우를 기반으로 템플릿 매칭 기법을 사용했다.
템플릿 매칭은 입력 이미지로부터 찾고자 하는 대상 이 되는 템플릿 이미지와 매칭하여 해당되는 위치를 탐 색하는 방법이다. 영상의 밝기를 그대로 사용할 수 있지 만 실외에서는 햇빛이나 환경에 따른 밝기 변화가 심한 경우가 많다. 그렇기 때문에 영상의 밝기 등에 덜 민감 하도록 정규화 하는 과정이 필요하며 식 1과 같다.
′ ′′′ ∙
′ ′
′ ′
′ ′
′′ ′ ′ (1)
는 입력 이미지, 는 찾고자 하는 대상이 되는 템플 릿 이미지, 은 해당되는 좌표에 매칭결과를 저장한 행 렬이며, 기존의 픽셀값의 제곱차를 이용하는 방법에서 정규화 계수를 나눠준다. 정규화는 입력 이미지와 템플 릿 이미지 사이에 조명의 차이가 존재할 때, 그 영향을 줄여주기 때문에 유용한 방법이다. 차량 추적의 속도 향 상을 위해 입력 이미지의 모든 위치를 템플릿 이미지와 비교하지 않고, 검출된 차량 기준으로 일정한 범위의 스 케일과 위치에 있는 영역에서만 비교한다.
그러나 만약 전방에 검출된 차량만 계속 추적한다면 전방에 새로운 차량이 중간에 끼어드는 경우 인식이 늦 을 수 있다. 게다가 실시간으로 차량 추적과 검출을 동 시에 수행한다면, 계산 복잡도가 증가하기에 동작 속도 는 감소하여 차량 추적이 실패 할 수 있다. 이러한 문제 를 해결하기 위해 우리는 멀티 코어 기법을 사용했으며, 듀얼 코어 (Dual core)라고 가정 하에 하나의 코어는 차 량 검출하는 프로세스를 실행하고 나머지 코어는 차량 검출과 추적이 통합된 프로세서를 실행한다.
검출된 차량이 없을 때는 검출 속도를 향상시키기 위 해 코어 2개를 동시에 활용하여 병렬적으로 차량 검출 을 한다. 하나의 코어는 6개의 윈도우 영역 중 3개에 대 해서만 케스케이드 알고리즘을 적용하고 다른 코어는 나머지 3개의 윈도우 영역에 대해 차량 검출을 한다. 차 량이 검출 된 경우에는 하나의 코어에서는 6개의 윈도
우 영역을 모두 사용해서 계속적으로 차량을 검출하게 되고, 다른 코어에서는 기존에 검출된 차량을 지속적으 로 추적하기 위해 추적 알고리즘이 동작된다.
멀티 코어 기법을 통해 연속적으로 차량을 검출함으 로써, 기존에 검출된 차량을 추적하더라도 전방에 끼어 드는 차량을 빠르게 인식하여 추적 대상을 업데이트 할 수 있다.
3.3. Distance Computation
검출된 전방 차량으로부터 거리를 계산하는 과정은 TTC를 계산하는데 있어 가장 중요한 단계이다. 거리 값 은 그림 7과 같이 핀홀 (Pinhole) 카메라 모델을 기반으 로 계산하였다.
Fig. 7 Pinhole camera model
핀홀 카메라 모델은 3차원 공간에서의 임의의 점이 이상적인 핀홀 카메라의 2차원 이미지 평면으로 투영될 때 수학적인 관계를 표현한 것이다. 거리 값은 차량이 검출된 후 추적 단계에서 계산되며 그림 8과 같다.
Fig. 8 Forward vehicle distance calculation
카메라는 오직 세타 (Theta)에 대한 회전 성분만 있다 고 가정하면, 월드 공간 (World space)에서의 한 점이 정 규화된 이미지 평면 (Normalized image plane)으로 투영 될 때 과정은 식 2와 같다.
cos sin sin cos
(2)는 카메라의 틸트 (Tilt) 각도이고 는 월드 공간에 서 정규화된 이미지 평면으로 투영하기 위한 스케일 팩 터 (Scale factor)이다. 회전 행렬 ()과 이동 벡터 ()는 식 3과 같이 월드 공간에서의 한 점을 카메라 공간으로 이동하기 위한 변환 (Transformation)행렬이다.
(3)
는 월드 공간에서 카메라의 중심 좌표이다. 이동 벡터는 식 4, 5와 같이 계산되어진다.
(4)
cos sin sin cos
(5)정규화된 이미지 평면에서의 한 점은 식 6과 같이 정 의 된다.
cos sin cos sinsin sin cos
(6)는 월드 공간에서의 한 점일 때 는 식 7과 같이 정의 된다.
sin cos
cos sin
(7)
는 차량에 설치된 카메라의 높이이고 는 카메라 와 검출된 차량사이의 거리이다. 최종적으로 카메라와 검출된 차량 사이의 거리는 식 8과 같이 표현할 수 있다.
cos sin
cos sin
(8)
는 축에 대한 카메라 초점 거리 (Focal length)이 고, 는 축에 대한 카메라의 주점 (Principal point)이 다. 는 3차원 공간에서 차량의 바퀴와 도로의 지면이 닿는 좌표이며 해당 좌표를 원점으로 설정한다. 월드 공
간에서의 원점이 이미지 평면으로 투영된 좌표는 와 같다.
최종적으로 카메라와 검출된 차량사이의 거리를 나 타내는 는 입력 이미지에서 차량이 도로의 지면과 닿 는 픽셀 좌표에 의해 계산된다.
Ⅳ. 구현 및 실험 결과
본 논문에서는 LS1028A [10] 보드에서 사전에 저장 된 주행 영상을 통해 알고리즘 성능 비교 테스트를 진행 하였다. LS1028A는 NXP 회사에서 만든 프로세서로 2 개의 강력한 64-bit Armv8 프로세서가 탑재되어있다.
Armv8 프로세서에 제공되는 ARM NEON 기술을 통 해 SIMD의 128-bit 연산 레지스터를 사용하여 최적화 가 가능하다. 다른 특징으로는 GPU가 내장되어 있지만 저전력 임베디드 시스템의 경우 GPU가 내장된 경우는 드물기 때문에 본 논문에서는 GPU를 사용하지 않는다.
그림 9와 같이 최적화를 하지 않은 케스케이드 방식은 차량을 검출하는데 있어 평균 5.192 초가 소요되었다. 하 지만 SIMD를 적용해 최적화를 한다면 평균 4.416 초가 소요되어 검출 속도가 향상되었음을 확인 할 수 있다.
Fig. 9 The execution time according to the number of frame
그림 10과 같이 높은 수준에서 최적화를 적용한 소실 점 기반 케스케이드 알고리즘은 차량 검출에 있어 평균 0.034 초가 소요되었으며, SIMD 까지 적용한 결과는 평 균 0.030 초로 검출 속도가 향상되었음을 확인 할 수 있다.
주행 영상에서 총 3356개의 프레임이 실행되는데 소 요되는 시간은 그림 11과 같다. 전체 프레임이 실행되는 데 있어 최적화를 하지 않은 케스케이드 알고리즘은 약
17427.0918 초 소요되었으며, SIMD를 사용한 소실점 기반 케스케이드 알고리즘은 약 102.3967 초가 소요되 었기에 약 170배 성능이 향상 된 것을 확인할 수 있다.
이전에도 말했듯이 최적화를 하지 않은 케스케이드 알고리즘은 입력 이미지로부터 모든 영역을 탐색하게 된다. 관심영역의 크기를 반복적으로 키우고 슬라이딩 하면서 모든 위치에 존재하는 관심영역을 비교하기 때 문에 많은 계산량이 요구된다.
원거리에 있는 자동차의 경우 크기가 작은 관심영역 에서만 검사를 하면 되는데 기존의 방법은 관심영역에 대한 크기를 계속 키워서 결국 최대 크기의 관심영역까 지 계산하기에, 한 번 수행하는데 소요되는 시간이 약 5.192 초인 것을 확인할 수 있다. 실제로 차량이 있을만 한 위치는 한정되어 있기에 모든 영역을 탐색하는 것은 비효율적이다.
소실점을 적용한 케스케이드 알고리즘은 소실점을 기반으로 6개의 윈도우를 생성하여 고정된 60x60 크기 의 윈도우로 변환하기 때문에, 원거리에 있는 차량은 작 은 영역에서만 검사를 하고 근거리에 있는 차량은 큰 영 역에서만 검사하는 효과를 가진다. 이처럼 차량이 있을
Fig. 11 The total execution time according to vehicle detection algorithms
Fig. 10 The execution time according to the number of frame
만한 위치에서만 탐색하기 때문에 결과적으로 한 번 수 행하는데 소요되는 시간 또한 0.030초로 많이 줄어든 것 을 확인 할 수 있다.
그림 12와 같이 차량 추적 알고리즘 또한 SIMD를 사 용했을 때 성능이 향상 된 것을 확인 할 수 있다. 만약에 검출된 차량이 없거나 전방에 끼어드는 차량에 의해 새 로운 차량에 대한 템플릿 이미지가 업데이트 된다면, 차 량 추적 알고리즘은 수행되지 않기 때문에 실행 시간이 0초 인 것을 확인할 수 있다.
Fig. 12 The execution time according to the number of frame
Ⅴ. 결 론
본 논문은 검출 및 추적 알고리즘의 계산 복잡도와 정 확도 사이에 관계를 맺는 상충관계 (Trade-off)를 고려 하여 높은 수준 및 낮은 수준에 해당하는 최적화 기법을 적용한 FCWS를 소개하였다. FCWS를 차량에 접목하 기 위해서는 저전력 임베디드 시스템이 중요하다. 소비 전력은 CPU의 부하와도 관계가 있는데, 계산 복잡도가 증가하면 CPU의 부하도 증가하여 그만큼 소비 전력도 증가하게 된다.
이 시스템은 임베디드 시스템 기반인 LS1028A 보드 에서 단일 카메라로 사전에 저장된 주행 영상을 통해 테 스트하였다. 차량 검출에 있어 최적화를 고려하지 않은 케스케이드 알고리즘은 프로세스 처리 시간이 너무 많 이 소요되기 때문에 실시간성이 요구되는 시스템에는 적합하지 않다.
실시간 처리를 보장하기 위해 알고리즘의 계산 복잡 도를 줄이는 최적화가 필요한데, 높은 수준의 최적화 기
법인 소실점 기반 케스케이드 알고리즘은 차량을 더욱 빠르게 검출하는 데 효과적이다. 하지만 높은 수준에서 만 최적화를 하는 것은 한계가 있기에, 낮은 수준의 최 적화 기법인 SIMD를 사용하여 연산 속도를 더 향상시 킬 수 있었다.
최적화 기법을 통해 저성능 임베디드 시스템에서도 실시간 차량 검출 및 추적을 보장하도록 구현하였으며, 수행 시간이 단축되었음을 확인할 수 있다. 또한 연산 속도가 향상됨으로써 CPU의 부하도 줄어들어 소비 전 력을 감소시켜 주고, 차량의 연비 또한 향상 시켜주는데 도움을 준다. 이처럼 저전력 기반 임베디드 시스템은 차 량에 있어 중요하며 실시간성이 중요한 자율주행에서 도 폭넓게 적용될 수 있을 것이다.
향후에는 딥 러닝 기반으로 한 객체 검출 알고리즘을 저전력 임베디드 시스템에 접목하기 위해 경량화 하는 방법에 대해 연구를 할 예정이다. 기존의 알고리즘은 고 사양의 GPU가 포함된 하드웨어 기반으로 딥 러닝이 동 작하는 것이 대부분이다.
딥 러닝 기반 객체 검출의 성능은 어느 정도 유지하 되, 검출 속도를 향상시킬 수 있다면 하드웨어의 부품에 대한 단가도 낮추는데 도움이 된다. 이러한 연구는 시중 에 이미 적용된 차량에 사용되는 제품을 통해 하드웨어 및 알고리즘에 대한 성능을 비교 및 분석할 예정이다.
ACKNOWLEDGEMENT
This work was supported by the Technology Innovation Program (P0013847, 10%, Development of automatic steering-based accident avoidance system for electric- driven port yard tractors operating at low speed (less than 30 km/h)) funded By the Ministry of Trade, Industry &
Energy(MOTIE, Korea) and Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Science and ICT (NRF-2019 R1A2C2005099, 10%), Ministry of Education (NRF-2018 R1A6A1A03025109, 10%), and partly supported by Institute of Information & communications Technology Planning &
Evaluation (IITP) grant funded by the Korea government (MSIT) (No. 2021-0-00944, Metamorphic approach of unstructured validation/verification for analyzing binary code, 70%)
REFERENCES
[ 1 ] P. Viola and M. 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, CVPR 2001, vol. 1, pp.
511-518, 2001. doi: 10.1109/CVPR.2001.990517.
[ 2 ] C. Zhang, G. Liu, X. Zhu, and H. Cai, “Face Detection Algorithm Based on Improved AdaBoost and New Haar Features,” 2019 12th International Congress on Image and Signal Processing, BioMedical Engineering and Informatics (CISP-BMEI), pp. 1-5, 2019. doi: 10.1109/CISP-BMEI 48845.2019.8965841.
[ 3 ] W. Lee and C. Chen, “A Fast Template Matching Method With Rotation Invariance by Combining the Circular Projection Transform Process and Bounded Partial Correlation,” in IEEE Signal Processing Letters, vol. 19, no.
11, pp. 737-740, Nov. 2012. doi: 10.1109/LSP.2012.
2212010.
[ 4 ] S. Zhang and L. Su, “A New Fast Matching Algorithm for Angle-Adaptive Grayscale Templates,” 2019 2nd World Conference on Mechanical Engineering and Intelligent Manufacturing (WCMEIM), pp. 672-675, 2019. doi:
10.1109/WCMEIM48965.2019.00142.
[ 5 ] S. A. Nur, M. M. Ibrahim, N. M. Ali, and F. I. Y. Nur,
“Vehicle detection based on underneath vehicle shadow using edge features,” 2016 6th IEEE International Conference on Control System, Computing and Engineering (ICCSCE), pp. 407-412, 2016. doi: 10.1109/ICCSCE.2016.
7893608.
[ 6 ] S. Zhang, L. Chai, and L. Jin, “Vehicle Detection in UAV Aerial Images Based on Improved YOLOv3,” 2020 IEEE International Conference on Networking, Sensing and Control (ICNSC), pp. 1-6, 2020. doi: 10.1109/ICNSC48988.
2020.9238059.
[ 7 ] M. A. Zulkhairi, Y. M. Mustafah, Z. Z. Abidin, H. F. M.
Zaki, and H. A. Rahman, “Car Detection Using Cascade Classifier on Embedded Platform,” 2019 7th International Conference on Mechatronics Engineering (ICOM), pp. 1-3, 2019. doi: 10.1109/ICOM47790.2019.8952064.
[ 8 ] Z. Hao, Q. Feng, and L. Kaidong, “An Optimized Face Detection Based on Adaboost Algorithm,” 2018 International Conference on Information Systems and Computer Aided Education (ICISCAE), pp. 375-378, 2018. doi: 10.1109/
ICISCAE.2018.8666925.
[ 9 ] K. Chang and C. Fan, “Cost-Efficient Adaboost-based Face Detection with FPGA Hardware Accelerator,” 2019 IEEE International Conference on Consumer Electronics - Taiwan (ICCE-TW), pp. 1-2, 2019. doi: 10.1109/ICCE-TW46550.
2019.8991862.
[10] NXP Layerscape LS1028A Family of Industrial Applications Processors [Internet]. Available:
https://www.nxp.com/docs/en/fact-sheet/LS1028AFS.pdf.
홍성훈(Sunghoon Hong)
2008년~2014년: 청주대학교 전자공학과 학사 2014년~2016년: 한양대학교 지능형로봇학과 석사 2016년~2018년: ㈜카비 연구원
2018년~2021년: ㈜유진로봇 연구원 2021년~현재: ㈜카네비컴 책임연구원
※관심분야 : 경량화된 임베디드 시스템 기반 자율주행, SLAM, ADAS, Path planning, 알고리즘 최적화
박대진(Daejin Park)
2001년: 경북대학교 전자전기공학부 학사 2003년: KAIST 전기 및 전자공학과 석사 2014년: KAIST 전기 및 전자공학과 박사
2003년~2014년: SK Hynix/ Samsung (차세대 LSI 설계) 수석연구원
2014년~2016년: 경북대학교 전자공학부 연구조교수 (2014년 대통령 Postdoctoral Fellow 선정) 2016년~현재: 경북대학교 전자공학부 조교수
※관심분야 : 저전력 SoC 설계, 하드웨어-소프트웨어 Co-design, Dependable 스마트 IoT 시스템, Robust 임베디드 시스템