서창진
(Chang Jin Seo)
1†
-
(Dept. of Information Security Engineering, Sangmyung University, Korea)
Copyright © The Korean Institute of Electrical Engineers(KIEE)
Key words
Deep learning, UAV, Target tracking, Object detection, YOLOv3, Kalman filter
1. 서론
최근 들어 딥러닝(deep learning)을 이용한 다양한 지능형 시스템 개발에 관한 연구가 활발하게 진행되고 있다. 과거 몇 년 전만 해도 낮은
인식률, 대용량 연산으로 인한 느린 처리속도, 신경망 다층 구조 학습의 어려움으로 지능형 시스템 성장 속도가 둔화하였다. 그러나 최근 10년 사이
GPGPU(general purpose graphic processor unit)의 급속한 발전과 다양한 딥러닝 학습구조 개발로 인하여 딥러닝을 이용한
지능형 시스템에 관한 연구가 활발하다
(1). 특히 딥러닝을 이용하여 지능형 교통시스템, 자율주행 자동차, 무인 항공기, 무인 로봇 및 인공지능 에이전트 기술을 이용한 지능형 시스템이 사회
전반으로 활용 영역이 확장되고 있다
(2). 본 논문에서 다루는 저고도 무인 항공기를 이용한 보행자 추적 분야는 지능형 교통시스템(intelligent transport system) 구축에
필수적으로 필요한 분야이다. 지능형 교통시스템은 기존 교통체계의 효율성과 안전성을 위하여 전기, 전자, 정보, 통신, 제어 및 지능형 기술을 이용하는
차세대 지능형 교통체계이다. 이러한 지능형 교통시스템 구축을 위해서는 도로의 환경정보를 수집할 수 있는 자료수집기능이 선행되어야 한다. 현재 도로정보의
자료수집기능은 도로에 매설된 매립형 루프 검지 감지기 (loop detect sensor), 무선센서, 감시카메라와 같은 고정형 장비가 대부분이다.
이런 고정형 장비들은 한번 설치하면 오랫동안 사용할 수 있는 장점은 있으나 설치과정의 비용문제 및 설치 후 유지보수의 문제점을 가지고 있다
(3). 이러한 고정형 장비의 문제점을 해결하기 위하여 인공위성, 비행기, 헬리콥터, 비행선, 무인 항공기 등을 이용한 항공 영상 분석시스템 연구가 진행되고
있다. 그러나 인공위성과 항공기를 이용한 항공 영상 획득은 비용이 과다하고 시간 및 날씨의 변화에 실시간으로 대응하지 못하는 단점을 가지고 있다.
이러한 문제점을 해결하기 위하여 최근 비행선 및 무인 항공기를 이용한 항공 영상 획득으로 지상의 물체를 탐지하고 추적하는 분야의 연구가 진행되고 있으며
그 응용 분야도 매우 다양하다. 무인 항공기를 이용하는 방법은 저렴한 비용으로 초고화질 항공 영상을 실시간으로 사용할 수 있어 최근 연구가 매우 활발히
진행되는 분야 중 하나이다
(4,5).
본 논문에서는 딥러닝기술과 무인 항공기를 이용하여 지상에서 움직이는 보행자를 탐지하고 추적하는 방법에 대하여 제안한다. 본 논문의 구성은 다음과 같다.
2장에서는 제안하는 연구방법의 배경이 되는 딥러닝기술과 YOLO, 칼만 필터에 대하여 살펴보고, 3장에서는 제안하는 연구방법, 4장에서는 제안하는
연구방법의 실험 결과, 5장에서는 결론 및 향후 연구과제를 제시하고자 한다.
2. 관련 연구
최근까지 영상에 존재하는 물체(object)를 탐지하기 위하여 다양한 방법들에 대하여 연구가 시도되고 있다. 영상의 물체 탐지를 위해 영상의 공간영역(spatial
domain) 특징정보를 이용하면 쉽고 빠르게 물체를 탐지할 수 있는 장점이 있으나 물체의 회전, 이동, 크기, 색상의 변화에 탐지 성능이 떨어지는
단점이 있다. 그리고 영상의 주파수 영역(frequency domain) 특징정보를 이용하면 회전, 이동, 크기 변화에 어느 정도 적응성이 있으나
탐지 속도가 느린 단점을 가지고 있다. 결국, 영상에 존재하는 물체의 특징정보가 어떻게 변화되는지에 대한 영상분석(image analysis)이 선행되어야
한다. 영상분석이란 탐지하고자 하는 물체의 특징정보(color, size, shape, texture, histogram, frequency)를 어떤
방법으로 추출하고 물체 탐지(object detection)에 적용할 것인지에 대한 분석이다. 결국, 어떤 영상분석 작업을 선택하는지에 따라서 물체
탐지 시간 및 정확도에 차이를 보이게 된다. 그러므로 물체 탐지 알고리즘의 성능이 물체 탐지 및 추적기 성능에 많은 영향을 주게 된다. 영상에 존재하는
물체를 탐지하기 위하여 복잡한 알고리즘을 채택하면 탐지 성능은 좋아지나 실시간 분석능력이 저하되고 간단한 알고리즘을 채택하면 실시간 처리 능력은 좋아지나
탐지 성능이 저하되는 문제점을 가지고 있다. 결국, 영상에 존재하는 다양한 물체의 특징정보를 어떻게 추출하고 적용하는가에 따라 전체 시스템의 성능에
영향을 주게 된다
(6,7).
이러한 문제점을 해결하기 위하여 최근 영상에 존재하는 목표물(object)을 탐지(detecting)하고 추적(tracking)하는 분야의 연구에
딥러닝을 적용하고 있으며, 이를 이용하여 영상에 존재하는 물체(사람, 사물, 자동차, 특정물체)를 탐지하는 연구가 활발히 진행되고 있다.
2.1 딥러닝(Deep Learning)
최근 인공지능 분야에서 딥러닝에 관한 관심이 높아지고 있다. 딥러닝은 새로운 개념이 아니라 기본구조는 1980년대 개발된 인공신경망(artificial
neural network)에 그 기반 구조를 두고 있다. 기존 인공신경망이 가지는 느린 학습속도, 지역 최솟값(local minima), 과적합(over
fitting), 초기웨이트값 설정 문제 등과 함께 네트워크 계층이 커질수록 학습이 잘되지 않는 문제점으로 인하여 1990년대 말부터 연구자들 관심에서
점차 멀어진 알고리즘이다. 그러나 2000년대 중반 기존 인공신경망의 문제점들이 하나씩 해결되고, 강력한 GPGPU의 개발로 복잡한 행렬 연산에 필요한
시간이 크게 단축되어 다양한 인식 분야에 널리 적용되게 되면서 딥러닝이라는 이름으로 발전되었다. 이러한 딥러닝 알고리즘의 개발로 현재 음성, 영상인식
분야에서 최고 수준의 성능을 보여주고 있으며 인식이 필요한 분야에서 탁월한 성능을 나타내고 있다.
다양한 종류의 딥러닝 학습구조가 있지만, 대부분 그 구조는 인공신경망 구조에서 파생되었다. 일반적인 딥러닝의 구조는 입력층(input layer)과
출력층(output layer) 사이에 여러 개의 은닉층(hidden layer)을 가진 일반적인 인공신경망 형태로 되어있다. 일반적인 딥러닝 네트워크는
인공신경망의 오류역전파(backpropagation)알고리즘으로 학습할 수 있으며, 네트워크 가중치(weights)는 경사 하강법(gradient
descent)을 이용하여 수정될 수 있다. 그러나 기존 인공신경망과는 다르게 가중치의 사전학습(pre-training), 미니배치(mini-batch),
드롭아웃(Drop-out) 등을 도입하여 시간복잡도, 과적합, 학습오류 등의 문제를 해결하여 다양한 딥러닝 구조로 발전하고 있다.
2.2 YOLO(You Only Look Once)
YOLO의 네트워크 구조는
그림. 1과 같이 총 24개의 컨볼루션 계층과 2개의 완전히 연결된 층으로 이루어져 있다. 그리고 이미지 분류를 위하여 설계된 GoogLeNet 구조를 기반으로
설계되었으며 GoogLeNet에서 사용된 인셥센 모듈을 대신하여 1×1 컨볼루션 계층 다음에 3×3 컨볼루션 계층을 사용하여 계산량을 줄여 빠른 물체
탐지가 가능하도록 설계되었다
(8).
그림. 1. YOLO 네트워크 구조
Fig. 1. The Architecture of YOLO(8).
YOLO는 네트워크 최종출력 단에서 경계박스 위치와 클래스 분류가 동시에 이루어진다. 단 하나의 네트워크가 한 번에 특징도 추출하고, 경계박스도 만들고
클래스를 같이 분류하므로 그 구조가 간단하고 매우 빠른 성능을 가지고 있다.
YOLO 네트워크는
그림. 2와 같이 좌측의 입력 영상이 네트워크를 통과하면 중앙의 2개의 데이터를 얻는 구조로 구성되어 있다. 이 안에는 경계박스들과 영상을 7×7 그리드로
나누었을 때 해당 그리드 셀 안에는 어떤 클래스가 있는지에 대한 정보가 포함되어 있다.
그림. 4의 오른쪽 영상은 네트워크 최종출력을 이용해 생성한 정보로 네트워크가 직접 생성한 것이다. YOLO 네트워크는 영상을 7×7 그리드로 나눈다. 각
그리드에서 중심을 그리도 안쪽으로 하면서 크기가 일정하지 않은 경계박스를 2개씩 생성한다. 그리드 셀이 7×7=49개이므로 총 98개의 경계박스가
생성되는 구조로 되어있다. 이 정보 중에서 경계박스 안쪽에 어떤 물체가 있을 것 같다고 확신(confidence score)이 높을수록 박스를 굵게
생성한다. 최종 단계에서는 굵은 경계박스들만 남기고 얇은 경계박스를 지우며 남은 후보 경계박스를 NMS(non-maximal suppression)
알고리즘을 이용하여 최종 객체를 선정하면
그림. 2의 우측 이미지와 같이 3개만 남는 구조로 구성되어 있다.
그림. 2. YOLO 기본 그리드 구조
Fig. 2. The YOLO basic grid Model(8).
2.3 Kalman Filter
Kalman 필터는 시스템 상태의 최적 예측인 선형최소오차(linear minimum variance of error) 예측을 위한 순차적이면서 재귀적인
알고리즘이다. Kalman 필터는 잡음이 따르는 측정을 하는 시스템의 실시간 예측 추적에 사용되며 베이지 추정기법을 기반으로 구성되어 있다. Kalman
필터는
그림. 3과 같이 현 상태의 벡터 x
t에 대한 일정 시간 경과 후 전개될 상태를 묘사하는 시스템 모델이다. 상태들 사이의 천이는 알려진 천이(transition)행렬 Φ
t와 공분산(covariance) Q
t의 가우시안 잡음첨가에 따라 구성된다
(9).
그림. 3. 칼만 필터 개념도
Fig. 3. Block diagram of Kalman filter
추적을 위한 Kalman 필터 구성을 위해 운동모델 설정이 필요하며 본 논문에서 사용된 가정은 다음과 같다.
(1)관성운동을 하는 보행자는 완만하게 움직이므로 운동 파라미터의 급격한 변화는 발생하지 않는다.
(2)보행자의 이동 속도는 인접한 시간 축에서는 상수 값을 가지는 등가속 운동을 한다.
3. 제안하는 연구방법
3.1 실험환경 구축
본 논문에서는 보행자 도로에서 이동 있는 사람을 무인 항공기를 이용하여 탐지하고 추적하기 위하여 다음과 같은 실험환경을 구축하였다. 제안하는 실험환경
구축을 위하여 딥러닝 학습 및 물체 탐지를 위하여 현재 최고의 성능을 보이는 YOLOv3(https://github.com/AlexeyAB/darknet)를
재구성하여 데이터학습, 탐지에 적용하였다
(10). 그리고 효과적인 보행자 추적을 위하여 가변 탐색영역을 가지는 칼만 필터를 제안하여 물체 추적에 적용하였다. YOLOv3는 기존의 YOLO 모델의
단점을 일부 수정하여 효과적인 학습과 빠른 탐지 속도를 유지하면서 Faster R-CNN, SSD 모델보다 우수한 성능을 보인다
(11). 실험환경 구축을 위하여 OpenCV 3.4, CUDA 9.1, Xeon E5-2650 4CPU, GTX-1080Ti 4GPU를 탑재한 SDX-4195
딥러닝 전용 서버를 사용하여 실험환경을 구축하였다. 프로그램 환경은 C와 CUDA 기반 프레임워크인 Darknet을 이용하여 프로그램 환경을 구축하였다.
3.2 학습데이터 구성
보행자 도로에서 움직이는 보행자를 탐지하기 위해서는 먼저 지상의 보행자 영상에 대한 다양한 학습 과정이 필요하다. 실험에 사용한 보행자 영상은 DJI사의
Phantom 3 Professional을 이용하여 교내 보행자 도로를 산책하고 있는 보행자를 사선 방향과 직각 방향으로 고도 25∼30m 상공에서
촬영하고 1920×1080, 60fps Full HD 크기로 구성하였다.
그림. 4는 학습에 사용한 보행자 영상이다.
그림. 4. 학습에 사용한 보행자 이미지
Fig. 4. The pedestrian image for network training(12)
3.3 보행자 학습 및 탐지
딥러닝 신경망은 학습데이터 집합을 기반으로 신경망의 구조에 따라 학습을 진행하여 특징을 추출하고 가중치를 최적화하기 때문에 딥러닝 신경망의 구조가
물체 탐지 성능에 매우 큰 영향을 준다. 본 논문에서는 보행자 도로를 산책하는 지상의 보행자를 무인 항공기가 탐지하고 추적할 수 있도록 Darknet-53을
기반으로 딥러닝 신경망을 구성하여 보행자를 학습하였다. Darknet-53은 Darknet-19에 Residual 네트워크를 추가하여 새로 만든 네트워크이며,
3×3과 1×1의 컨볼루션 계층을 반복되도록 구성하고 Shortcut 연결을 하여 53개의 컨볼루션 계층을 갖도록 설계되었다. 실험에 사용한 Darknet-53의
구조는
그림. 5와 같으며 Resnet-101, Resnet-152보다 최대 2배 이상 효율적인 것으로 알려져 있다
(10).
그림. 5. Darknet-53 모델의 구조
Fig. 5. The structure of Darknet-53 Model
3.4 보행자 추적(가변영역 Kalman Filter)
탐지된 보행자를 연속된 프레임에서 추적하기 위해서 보행자의 이동 속도 및 방향 정보가 필요하다. 프레임간 보행자의 이동 거리는 매우 작으므로 일반적으로
고정된 영역 내의 최소거리에 탐지되는 보행자를 이전 프레임 보행자로 판단할 수 있다. 그러나 다수 보행자의 인접 보행 및 보행자의 방향이 갑자기 변경하는
경우 추적오류를 발생할 수 있다. 제안하는 논문에서는 이런 오류를 최소화하기 위하여 이전 프레임에서 측정된 보행자의 이동 경로를 이용하여 칼만 예측모델을
설계함으로써 보다 강건한 보행자 추적이 가능하도록 설계하였다.
연속된 보행자를 추적하기 위해서는 보행자의 운동모델이 필요하다. 시간 t에서 추적목표 상태벡터는
식(3.1)과 같다.
운동모델의 상태변수를 이용한 이산 시간 후 보행자의 위치를 예측을 위한 상태방정식은
식(3.2)와 같다.
여기서, Φ(x) : 상태천이 행렬, w(k) : prediction error, 평균 0, 공분산 행렬 Q(k)인 가우시안 분포
보행자의 이동 궤적은 등가속 운동을 한다고 가정하고 물체의 이동 방향은 선형적으로 변화한다. 그러므로 상태천이 행렬은
식(3.3)과 같이 정의된다.
시스템의 상태와 측정값들의 집합은 선형관계가 있다고 가정을 하면 관측값은
식(3.4) 와 같이 정의된다.
여기서 z(k) : 관측값의 집합, H(k) : 관측행렬, v(k) :측정잡음(measurement error), 평균 0,공분산 행렬 R(k)인
가우시안 분포
본 논문에서는 입력 벡터의 차원이 좌표점과 x, y축의 변량을 가지는 4차원 벡터를 가지므로 관측행렬 H
k는
식(3.5)와 같이 설정하였다.
w(k), v(k)는 운동잡음과 측정잡음이다. 상태예측 과정에서 k시간에서의 예측값
(k|k-1)과 측정값 z(k)와의 오차 v(k)를
식(3.6)과
식(3.7)로 측정할 수 있다.
이때 오차 v(k)를 이노베이션(innovation)이라 하며, 본 논문에서는 이노베이션 정보를 이용하여 다음 프레임에 존재하는 보행자 탐색에 필요한
탐색영역 설정 정보로 사용하였다. 즉, 보행자 이동 속도가 빠를 경우 넓은 범위의 탐색영역을 설정하고 속도가 느린 경우 좁은 범위의 탐색영역을 설정하여
정밀한 탐색이 가능하도록 하였다.
4. 실험 결과
실험에 사용한 딥러닝 네트워크와 가변 탐색영역을 가지는 칼만 필터의 성능을 평가하기 위하여 대학 캠퍼스에서 산책하는 다양한 보행자 영상을 이용하여
실험에 사용하였다. 네트워크 학습을 위하여 다양한 형태의 사람과 여러 방향에서 보행하는 보행자 이미지를 학습하였다. 제안하는 시스템에서는 3,528의
학습 이미지와 1,851개의 테스트 이미지를 사용하여 네트워크 학습을 진행하였다. 학습 후 네트워크 테스트 결과 임계값(threshold) 0.25에서
TP(true positive) 2,914, FP(false positive) 163, FN(false negative) 6의 값으로 평균 IoU
79.68%, mAP(mean average precision) 0.9081 성능을 보였다.
단독보행을 하는 보행자의 경우 초기 보행자 탐지가 성공된 이후 추적까지 완벽하게 추적할 수 있었다. 그러나 다수의 보행자가 동시에 진행하는 경우 보행자
이미지 병합 및 분리로 다음과 같은 문제점이 발생하였다.
1) 병합 : 2명 이상의 보행자가 1명의 보행자로 인식
2) 분리 : 1명의 보행자가 다수의 보행자로 인식
1번 병합의 경우는 도로를 걷고 있는 보행자들이 서로 떨어져서 이동하다 병합하여 보행할 경우 발생하였다. 이런 경우는 사선 방향으로 촬영된 영상에
존재하는 보행자가 서로 겹쳐 후면 보행자가 영상에서 보이지 않는 경우이다. 이런 경우는 후면 보행자를 탐지할 수 없었다. 이 문제를 해결하기 위하여
지표면과 직각으로 영상을 촬영한 경우 어느 정도 문제를 해결할 수 있었으나 손을 잡고 이동하는 경우, 어깨동무하는 경우, 팔짱을 끼고 이동하는 경우에는
병합되어 인식되는 경우가 발생 되었다. 제안하는 시스템에서는 보행자가 개별 이동 중 병합된 경우 병합 보행자로 판단하여 추적하도록 하였다.
2번 분리의 경우는 병합되어 이동하는 보행자들이 추적 중 서로 분리되는 경우와 탐지기의 탐지 오류로 발생 되었다. 제안하는 시스템에서는 병합 이동하는
보행자가 서로 분리될 경우 분리 보행자로 인식하여 보행자를 개별 추적하도록 하였다.
표 1은 제안하는 가변영역 탐지 추적방법과 고정영역 탐지영역을 비교 실험한 실험 결과이며
그림. 6은 사선 방향 촬영 영상으로 보행자를 탐지하고 추적한 영상이고,
그림. 7은 지표면과 직각 방향으로 촬영한 영상으로 보행자를 탐지하고 추적한 결과 영상이다. 실험 결과 제안하는 가변 탐색영역 보행자 추적 시스템이 고정영역
탐색시스템보다 1.5배 이상 정밀하게 보행자를 추적함을 알 수 있었다.
표 1. 제안한 방법의 실험 결과
Table 1. The experiment result of proposed method
test video
|
total tracking frames
|
proposed method # of error frames
|
fixed method # of error frames
|
mean FPS
|
#1
|
33,158
|
371
|
683
|
43.59
|
#2
|
22,465
|
258
|
465
|
41.78
|
#3
|
3,654
|
27
|
49
|
37.14
|
#4
|
7,629
|
43
|
84
|
45.57
|
그림. 6. 사선 방향 영상을 이용한 탐지, 추적 결과
Fig. 6. The detecting and tracking result of oblique direction video
그림. 7. 직각 방향 영상을 이용한 탐지, 추적 결과
Fig. 7. The detecting and tracking result of orthogonal direction video
5. 결 론
본 논문에서는 지상에서 보행하는 보행자를 학습시킨 딥러닝 네트워크를 이용하여 이동하는 보행자를 실시간으로 탐지하고 추적하는 모델을 제안하였다. 제안하는
방법으로 실험한 결과 최대 53FPS, 평균 35∼43FPS로 이동하는 보행자를 탐지, 추적하는 것을 확인할 수 있었다. 그리고 제안하는 시스템이
고정 탐지영역 시스템보다 매우 낮은 오류 상태에서 동작하는 것을 확인 할 수 있었다. 그러나 실험에 사용한 테스트 영상이 다양하지 못하여 정확성을
판단하기에는 다소 어려움이 있지만, 보행자 탐지 및 추적 속도는 다른 알고리즘에 비교해 현재 최고의 성능을 보임을 알 수 있었다. 향후 연구과제는
다양한 시간대에 촬영된 영상으로 물체(사람, 자동차, 신호등 등)를 탐지 및 분류하여 추적하는 시스템에 관한 연구가 필요할 것으로 판단된다.
감사의 글
본 연구는 2017년도 상명대학교 교내연구비 지원에 의해 수행되었습니다.
References
LeCun Y., Bengio Y., Hinton G., 2015, Deep learning, Nature
Dollar P., Wojek C., Schiele B., Perona P., 2009, Pedestrian detection: A benchmark,
Computer Vision and Pattern Recognition, CVPR 2009. IEEE Conference on, pp. 304-311
Benenson Rodrigo, Omran Mohamed, Jan Hosang, Schiele Bernt, 2015, Ten Years of Pedestrian
Detection, What Have We Learned?, Computer Vision - ECCV 2014 Workshops LNCS, Vol.
8926, pp. 613-627
Yao Wentao, Deng Zhidong, 2012, A Robust Pedestrian Detection Approach based on Shapelet
Feature and Haar Detector Ensembles, Tsinghua Science and Technology, Vol. 17, No.
1, pp. 40-50
Chen Zhiqian, Chen Kai, Chen J., 2013, Vehicle and Pedestrian Detection Using Support
Vector Machine and Histogram of Oriented Gradients Features, Computer Sciences and
Applications (CSA), 2013 International Conference, pp. 365-368
Ren Shaoqing, He Kaiming, Girshick Ross, Sun Jian, June 1 2017, Faster R-CNN: Towards
Real-Time Object Detection with Region Proposal Networks, IEEE Transactions on Pattern
Analysis and Machine Intelligence, Vol. 39, No. 6, pp. 1137-1149
Najibi Mahyar, Rastegari Mohammad, Davis Larry S., 2016, G-CNN: An Iterative Grid
Based Object Detector, The IEEE Conference on Computer Vision and Pattern Recognition
(CVPR), Vol. , No. , pp. 2369-2377
Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi, 2016, You Only Look Once:
Unified, Real-Time Object Detection, The IEEE Conference on Computer Vision and Pattern
Recognition (CVPR), pp. 779-788
Chen S. Y., Nov 2012, Kalman Filter for Robot Vision: A Survey, IEEE Transactions
on Industrial Electronics, Vol. 59, No. 11, pp. 4409-4420
Redmon Joseph, Farhadi Ali, 2017, YOLO9000: Better, Faster, Stronger, The IEEE Conference
on Computer Vision and Pattern Recognition (CVPR), Vol. , No. , pp. 7263-7271
Redmon J., Farhadi A., 2018, YOLOv3: An incremental improvement, arXiv:1804.02767
Alexey , Yolo-v3 Windows and Linux version, https://github.com/AlexeyAB/darknet
저자소개
부산대학교 멀티미디어 석사
부산대학교 멀티미디어 박사
2013년 3월~현재 : 상명대학교 정보보안공학과
관심분야 : Object Detection, Target Tracking, Artificial Vision, Multimedia, E-Learning,
Security
E-mail :
cjseo@smu.ac.kr