The APICULTURAL SOCIETY OF KOREA
1

Current Issue

Journal of Apiculture - Vol. 35 , No. 3

[ Original research article ]
Journal of Apiculture - Vol. 35, No. 3, pp.149-159
Abbreviation: J. Apic.
ISSN: 1225-0252 (Print)
Print publication date 30 Sep 2020
Received 29 Jun 2020 Revised 21 Sep 2020 Accepted 25 Sep 2020
DOI: https://doi.org/10.17519/apiculture.2020.09.35.3.149

기본 특징추출신경망에 따른 YOLO의 말벌인식 성능 평가
이철희* ; 정윤주1
안동대학교 컴퓨터공학과
1안동대학교 SW융합교육원

Performance Evaluation of YOLO according to Based Feature Extraction Network in Vespa Detection
Cheolhee Lee* ; Yunju Jeong1
Department of Computer Engineering, Andong National University, Andong, Republic of Korea
1Institute of Software Convergence Education, Andong National University, Andong, Republic of Korea
Correspondence to : * E-mail: chlee@andong.ac.kr

Funding Information ▼

Abstract

Real-time monitoring system for Vespa is necessary to reduce the damage to beekeeping farmers. In this paper, we compare and analyze the performance of the YOLO-based deep learning algorithms suitable for developing real-time automatic recognition and classification systems for Apis mellifera and five types of vespas such as V. velutina nigrithorax, V. mandarinia, V. ducalis, V. similima and V. crabro. YOLO has shown the best quality for real-time object detection due to its fast speed by replacing iterative object detection with once regression for an input image. However, the YOLO utilizes the conventional DCNN (deep convolutional neural network) algorithm to extract features from images thus, detection performance of the YOLO depends on the DCNN utilized. Therefore, we evaluate the object detection performance by changing the feature extraction layers of YOLOv2 with AlexNet, VGG19, GoogLeNet, and ResNet50 to find the best combination DCNN model for YOLO on the six bees above. The comparison results are as follows. In terms of the speed of detection and classification, the model in which YOLOv2 is combined with the AlexNet as a feature extraction layer showed the highest detection speed per second. This model can detect and classify 5 vespas and a bee from an average of 438 images per second, but has a relatively low accuracy of 71.7%. In terms of accuracy, the model that combines the feature extraction layer of VGG19 with YOLOv2 generated the highest accuracy, 83.2%. In addition, it can process an average of 135 images per second, enabling real-time processing of surveillance videos for wasps and bees. Therefore, we verified that the combined YOLO model with the VGG19 can be the best real-time monitoring system for the vespa detection.


Keywords: Deep CNN, Vespa monitoring system, YOLOv2, Feature extraction layer, VGG19, Transfer learning

서 론

딥러닝 기술은 인식, 추론, 학습, 행동과 같은 영역에서 혁신적인 발전을 이루고 있으며 심층합성곱 (Deep Convolutional Neural Network)기반의 딥러닝 기술은 영상인식 분야에서 인간의 인식능력을 초월하는 수준에 이르게 되었다 (Orga et al., 2014). 이러한 심층합성곱을 이용한 객체인식은 다양한 분야로 확대되고 있으며 최근 말벌의 분류에도 관련 연구가 보고된 바 있다. 상기 연구는 말벌의 효과적인 분류를 위해 가장 큰 피해를 주는 장수말벌 (Vespa mandarinia)과 외래종인 등검은말벌 (V. velutina nigrithorax), 그리고 말벌을 대상으로 입력 영상에서 각 말벌을 분류하는 성능을 평가하였다 (Lee et al., 2019).

양봉가에게 가을철 봉군 유지의 가장 큰 장애는 말벌류의 공격이다 (Kim et al., 2017). 현재까지 10종 (2아종 포함)의 말벌이 보고되고 있다 (Choi et al., 2013). 이러한 말벌은 8월 상순부터 11월 초순 사이의 봉군에 주로 피해를 주며 이로 인해 벌통 전체가 폐사할 수 있다고 보고된 바 있다 (Kim et al., 2006). 또한, 말벌 중에서도 집단공격형 사냥 전략을 가진 장수말벌 (V. mandarinia)의 피해가 가장 큰 것으로 보고되고 있다. 아울러, 외래 생물인 등검은말벌 (V. velutina)이 국내에 침입하여 말벌로 인한 문제의 복합성이 높아지고 있다. 특히 등검은말벌의 정착은 토착 말벌 군집구조에도 영향을 미친다고 보고되고 있다 (Jung, 2012).

본 연구는 실시간 말벌 모니터링의 기반연구로 5종의 말벌과 양봉꿀벌 (Apis mellifera)을 대상으로 벌류의 실시간 인식 알고리즘에 대한 평가를 진행하고자 한다. 대상 말벌로는 등검은말벌 (V. velutina nigrithorax), 장수말벌 (V. mandarinia), 꼬마장수말벌 (V. ducalis), 털보말벌 (V. similima), 말벌 (V. crabro)이다. 실시간 객체인식을 위해서는 객체의 위치 탐지 (object localization)와 분류 (classification) 두 가지 단계가 필요하다. 실시간 객체인식을 위한 기술로는 R-CNN, Fast R-CNN, Faster-RCNN, YOLO 등이 있다. 이 중 YOLO는 객체인식에서 가장 빠른 속도로 가지며 객체 탐지와 분류가 동시에 이루어지는 알고리즘이다 (Joseph et al., 2016). YOLO는 입력 영상을 가로와 세로에 대해 임의의 크기를 갖는 그리드 셀로 분할하고 레이블링된 물체의 경계 영역 (bounding box)의 중심이 위치한 그리드 셀에 속한 복수 개의 앵커 박스 (anchor box)에 대해 객체에 대한 클래스 확률, 객체의 존재 확률, 그리고 객체의 중심위치와 경계영역의 폭과 높이를 추정하여 객체의 위치와 종류를 인식하는 방법이다. 그러나 이때 객체의 종류를 분류하는 과정에서 심층합성곱 신경망을 사용하며 이때 이용되는 합성곱신경망의 성능에 따라 인식성능에 차이가 발생한다. 따라서 본 연구에서는 최근 가장 많이 활용되고 있는 4종류의 심층합성곱 신경망 (AlexNet, VGG19, GoogLeNet, ResNet50)에서 특징추출레이어 부분을 떼어내서 이를 YOLO 레이어와 결합하여 동일한 조건으로 학습한 후 특징추출신경망에 따른 YOLO의 말벌 인식성능을 평가함으로써 실시간 말벌 모니터링에 가장 효과적인 YOLO의 인식성능 향상을 위해 적합한 특징추출신경망을 찾고, 특징추출신경망에 따른 YOLO의 객관적인 성능을 평가하고자 한다.


재료 및 방법
1. 말벌 5종 및 양봉꿀벌에 대한 학습데이터

심층합성곱 신경망을 이용한 객체인식은 지도 학습 (supervised learning)의 한 분야이며 학습용 데이터 집합의 크기와 데이터 영상의 해상도는 각 신경망 추론의 정확도에 큰 영향을 준다. 본 연구에서는 5종의 말벌 (등검은말벌-V. velutina nigrithorax, 장수말벌-V. mandarinia, 꼬마장수말벌-V. ducalis, 털보말벌-V. similima, 말벌-V. crabro)과 양봉꿀벌 (Apis mellifera)에 대해 각각 종별로 1,000장씩 6,000장의 영상을 인터넷 및 실제 촬영을 통해 획득한 후 말벌 전문가로부터 영상별로 종의 분류에 대한 사전 검증을 받았다. 영상은 Matlab의 image labeler를 이용하여 Fig. 1과 같이 벌 영역에 대한 좌표 데이터 (바운딩 박스) 및 종별 라벨링 데이터를 영상과 함께 저장하여 학습데이터로 활용하였다.


Fig. 1. 
Bounding box images for training data. (a) Apis mellifera, (b) V. velutina nigrithorax, (c) V. crabro, (d) V. ducalis (e) V. mandarinia, (f) V. similima.

2. 심층합성곱 신경망과 YOLOv2를 결합한 말벌인식 신경망의 구성
1) AlexNet+YOLOv2

AlexNet은 5개의 합성곱 층과 3개의 완전연결 층 (FC, Fully Connected Layer)으로 구성된 직렬 형태의 합성곱 신경망이다 (Alex et al., 2012). 본 논문에서는 AlexNet의 특징추출레이어와 YOLOv2를 결합하기 위하여 AlexNet의 완전연결 층 대신에 YOLOv2 (Joseph and Ali, 2017)를 이용하여 심층합성곱 신경망을 구성하였으며 간략한 구조는 Table 1과 같다. YOLOv2 객체 인식 하위망의 입력으로써 사용되는 특징추출 레이어의 입력은 Layer 5에서 MaxPooling의 출력을 이용하여 학습에 활용하였다.

Table 1. 
Full description of the AlexNet+YOLOv2
Layer Type No of Filter Filter Size/Stride
0 Image Input - -
1 Conv2D, ReLU, CrossChannelNormalization, MaxPooling 96 11×11/4×4
2 Grouped Conv2D, ReLU, CrossChannelNormalization, MaxPooling 128 5×5/1×1
3 Conv2D, ReLU 384 3×3/1×1
4 Grouped Conv2D, ReLU 192 3×3/1×1
5 Grouped Conv2D, ReLU, MaxPooling 128 3×3/1×1
6 Conv2D, BatchNormalization, ReLU 256 3×3/1×1
7 Conv2D, BatchNormalization, ReLU 256 3×3/1×1
8 Conv2D 44 1×1/1×1
9 YOLOv2Transform - -
10 YOLOv2Output - -

YOLO는 Fig. 2와 같이 입력 영상을 S×S개의 그리드 셀로 분할하고 레이블링된 물체의 경계 영역 (bounding box)의 중심이 위치한 그리드 셀에 속한 복수 개의 앵커 박스 (anchor box)에 대해 객체에 대한 클래스 확률, 객체의 존재 확률, 그리고 객체의 중심위치와 경계영역의 폭과 높이를 추정하여 객체의 위치와 종류를 인식하는 방법이다. 이때 앵커 박스의 수는 각 그리드 셀에서 존재할 수 있는 객체의 갯수를 의미하며 YOLO의 경우 2개를 사용하여 YOLOv2의 경우 5개의 서로 다른 폭과 높이를 갖는 앵커 박스를 미리 정의하여 사용한다. 앵커 박스의 폭과 높이는 학습과정에서 수렴시간을 결정한다. 본 논문에서는 6,000개의 학습데이터에 대해 Fig. 1과 같이 바운딩 박스 영역을 얻고 이에 대한 종횡비 및 면적에 대해 LBG 알고리즘을 이용하여 4개의 앵커 박스를 얻어 YOLO의 학습에 활용하였으며 6,000개 학습데이터의 종횡비 및 면적은 Fig. 3과 같다.


Fig. 2. 
Image recognition by YOLO (from machinethink.net).


Fig. 3. 
Aspect ratios and box areas of 6000 training images.

2) VGG19+YOLOv2

VGGNet은 신경망에서 망의 깊이가 미치는 영향을 연구하기 위해 개발된 심층합성곱 신경망이며 11~19층을 갖는 5종류가 있다 (Karen and Andrew, 2015). 본 논문에서는 19층을 갖는 VGG19를 특징추출 레이어로 활용하여 YOLOv2를 결합하기 위하여 VGG19의 완전연결 층 대신에 YOLOv2를 이용하여 심층합성곱 신경망을 구성하였으며 간략한 구조는 Table 2와 같다. 여기서 YOLOv2 객체 인식 하위망의 입력으로써 사용되는 특징추출 레이어의 입력은 Layer 16에서 ReLU의 출력을 이용하여 학습에 활용하였다.

Table 2. 
Full description of the VGG19+YOLOv2
Layer Type No of Filter Filter Size/Stride
0 Input Image - -
1 Conv2D, ReLU 64 3×3/1×1
2 Conv2D, ReLU, MaxPooling 64 3×3/1×1
3 Conv2D, ReLU 128 3×3/1×1
4 Conv2D, ReLU, MaxPooling 128 3×3/1×1
5 Conv2D, ReLU 256 3×3/1×1
6 Conv2D, ReLU 256 3×3/1×1
7 Conv2D, ReLU 256 3×3/1×1
8 Conv2D, ReLU, MaxPooling 256 3×3/1×1
9 Conv2D, ReLU 512 3×3/1×1
10 Conv2D, ReLU 512 3×3/1×1
11 Conv2D, ReLU 512 3×3/1×1
12 Conv2D, ReLU 512 3×3/1×1
13 Conv2D, ReLU, MaxPooling 512 3×3/1×1
14 Conv2D, ReLU 512 3×3/1×1
15 Conv2D, ReLU 512 3×3/1×1
16 Conv2D, ReLU 512 3×3/1×1
17 Conv2D, BachNormalization, ReLU 512 3×3/1×1
18 Conv2D, BachNormalization, ReLU 512 3×3/1×1
19 Conv2D 44 3×3/1×1
20 YOLOv2Transform - -
21 YOLOv2Output - -

3) GoogLeNet+YOLOv2

GoogLeNet은 망의 깊이와 넓이의 증가를 통해 신경망 추론의 정확도를 개선하면서, 동시에 DCNN에서 비선형적인 특징추출의 어려움과 망의 깊이 증가로 발생하는 연산량 증가를 개선하기 위해 고안된 새로운 합성곱 신경망이다 (Christian et al., 2015). 본 논문에서는 GoogLeNet을 특징추출레이어로 활용하여 YOLOv2를 결합하기 위하여 GoogLeNet의 완전연결 층 대신에 YOLOv2를 이용하여 심층합성곱 신경망을 구성하였으며 간략한 구조는 Table 3과 같다. 여기서 YOLOv2 객체 인식 하위망의 입력으로써 사용되는 특징추출 레이어의 입력은 Layer 58에서 DepthConcatenation의 출력을 이용하여 학습에 활용하였다.

Table 3. 
Full description of the GoogLeNet+YOLOv2
Layer Type No of
Filter
Filter Size/
Stride
Layer Type No of
Filter
Filter Size/
Stride
0 Input Image - - 32 Conv2D, ReLU 24 1×1/1×1
1 Conv2D, ReLU, MaxPooling,
CrossChannelNormalization
64 7×7/2×2 33 Conv2D, ReLU, MaxPooling 64 5×5/1×1
2 Conv2D, ReLU 64 1×1/1×1 34 Conv2D, ReLU,
DepthConcatenation
64 1×1/1×1
3 Conv2D, ReLU 192 3×3/1×1 35 Conv2D, ReLU 112 1×1/1×1
4 Conv2D, ReLU,
CrossChannelNormalization,
MaxPooling
192 3×3/1×1 36 Conv2D, ReLU 144 1×1/1×1
5 Conv2D, ReLU 64 1×1/1×1 37 Conv2D, ReLU 288 3×3/1×1
6 Conv2D, ReLU 96 1×1/1×1 38 Conv2D, ReLU 32 1×1/1×1
7 Conv2D, ReLU 128 3×3/1×1 39 Conv2D, ReLU, MaxPooling 64 5×5/1×1
8 Conv2D, ReLU 16 1×1/1×1 40 Conv2D, ReLU,
DepthConcatenation
64 1×1/1×1
9 Conv2D, ReLU, MaxPooling 32 5×5/1×1 41 Conv2D, ReLU 256 1×1/1×1
10 Conv2D, ReLU,
DepthConcatenation
32 5×5/1×1 42 Conv2D, ReLU 160 1×1/1×1
11 Conv2D, ReLU 128 1×1/1×1 43 Conv2D, ReLU 320 3×3/1×1
12 Conv2D, ReLU 128 1×1/1×1 44 Conv2D, ReLU 32 1×1/1×1
13 Conv2D, ReLU 192 3×3/1×1 45 Conv2D, ReLU, MaxPooling 128 5×5/1×1
14 Conv2D, ReLU 32 1×1/1×1 46 Conv2D, ReLU,
DepthConcatenation
MaxPooling
128 1×1/1×1
15 Conv2D, ReLU, MaxPooling 96 5×5/1×1 47 Conv2D, ReLU 256 1×1/1×1
16 Conv2D, ReLU,
DepthConcatenation,
MaxPooling
64 1×1/1×1 48 Conv2D, ReLU 160 1×1/1×1
17 Conv2D, ReLU 192 1×1/1×1 49 Conv2D, ReLU 320 3×3/1×1
18 Conv2D, ReLU 96 1×1/1×1 50 Conv2D, ReLU 32 1×1/1×1
19 Conv2D, ReLU 208 3×3/1×1 51 Conv2D, ReLU, MaxPooling 128 5×5/1×1
20 Conv2D, ReLU 16 1×1/1×1 52 Conv2D, ReLU,
DepthConcatenation
128 1×1/1×1
21 Conv2D, ReLU, MaxPooling 48 5×5/1×1 53 Conv2D, ReLU 384 1×1/1×1
22 Conv2D, ReLU,
DepthConcatenation
64 1×1/1×1 54 Conv2D, ReLU 192 1×1/1×1
23 Conv2D, ReLU 160 1×1/1×1 55 Conv2D, ReLU 384 3×3/1×1
24 Conv2D, ReLU 112 1×1/1×1 56 Conv2D, ReLU 48 1×1/1×1
25 Conv2D, ReLU 224 3×3/1×1 57 Conv2D, ReLU, MaxPooling 128 5×5/1×1
26 Conv2D, ReLU 24 1×1/1×1 58 Conv2D, ReLU,
DepthConcatenation
128 1×1/1×1
27 Conv2D, ReLU, MaxPooling 64 5×5/1×1 59 Conv2D, BatchNormailzation,
ReLU
1024 3×3/1×1
28 Conv2D, ReLU,
DepthConcatenation
64 1×1/1×1 60 Conv2D, BatchNormailzation,
ReLU
1024 3×3/1×1
29 Conv2D, ReLU 128 1×1/1×1 61 Conv2D 44 1×1/1×1
30 Conv2D, ReLU 128 1×1/1×1 62 YOLOv2Transform - -
31 Conv2D, ReLU 256 3×3/1×1 63 YOLOv2Output - -

4) ResNet50+YOLOv2

ResNet은 합성곱 신경망의 층이 증가하면서 발생하는 정확도의 감소를 해결하기 위해 잔차 학습 (Residual Learning)을 기존 VGGNet 기반 신경망에 적용한 개선된 합성곱 신경망이다 (Kaiming et al., 2016). 본 논문에서는 ResNet50을 특징추출 레이어로 활용하여 YOLOv2를 결합하기 위하여 ResNet50의 완전연결 층 대신에 YOLOv2를 이용하여 심층합성곱 신경망을 구성하였으며 간략한 구조는 Table 4와 같다. 여기서 YOLOv2 객체 인식 하위망의 입력으로써 사용되는 특징추출 레이어의 입력은 Layer 43에서 ReLU의 출력을 이용하여 학습에 활용하였다.

Table 4. 
Full description of the ResNet50+YOLOv2
Layer Type No of
Filter
Filter Size/
Stride
Layer Type No of
Filter
Filter Size/
Stride
0 Input Image - - 29 Conv2D, Batch Normalization,
ReLU
256 1×1/1×1
1 Conv2D, Batch Normalization,
ReLU, MaxPooling
64 7×7/2×2 30 Conv2D, Batch Normalization,
vReLU
256 3×3/1×1
2 Conv2D, Batch Normalization,
ReLU
64 1×1/1×1 31 Conv2D, Batch Normalization,
Addition, ReLU
1024 1×1/1×1
3 Conv2D, Batch Normalization,
ReLU
64 3×3/1×1 32 Conv2D, Batch Normalization,
ReLU
256 1×1/1×1
4 Conv2D 256 1×1/1×1 33 Conv2D, Batch Normalization,
ReLU
256 3×3/1×1
5 Conv2D, Batch Normalization,
Batch Normalization, Addition,
ReLU
256 1×1/1×1 34 Conv2D, Batch Normalization,
Addition, ReLU
1024 1×1/1×1
6 Conv2D, Batch Normalization,
ReLU
64 1×1/1×1 35 Conv2D, Batch Normalization,
ReLU
256 1×1/1×1
7 Conv2D, Batch Normalization,
ReLU
64 3×3/1×1 36 Conv2D, Batch Normalization,
ReLU
256 3×3/1×1
8 Conv2D, Batch Normalization,
Addition, ReLU
256 1×1/1×1 37 Conv2D, Batch Normalization,
Addition, ReLU
1024 1×1/1×1
9 Conv2D, Batch Normalization,
ReLU
64 1×1/1×1 38 Conv2D, Batch Normalization,
vReLU
256 1×1/1×1
10 Conv2D, Batch Normalization,
ReLU
64 3×3/1×1 39 Conv2D, Batch Normalization,
ReLU
256 3×3/1×1
11 Conv2D, Batch Normalization,
Addition, ReLU
256 1×1/1×1 40 Conv2D, Batch Normalization,
Addition, ReLU
1024 1×1/1×1
12 Conv2D, Batch Normalization,
ReLU
128 1×1/1×1 41 Conv2D, Batch Normalization,
ReLU
256 1×1/1×1
13 Conv2D, Batch Normalization,
ReLU
128 3×3/1×1 42 Conv2D, Batch Normalization,
ReLU
256 3×3/1×1
14 Conv2D 512 1×1/1×1 43 Conv2D, Batch Normalization,
Addition, ReLU
1024 1×1/1×1
15 Conv2D, Batch Normalization,
Batch Normalization, Addition,
ReLU
512 1×1/1×1 44 Conv2D, Batch Normalization,
ReLU
512 1×1/2×2
16 Conv2D, Batch Normalization,
ReLU
128 1×1/1×1 45 Conv2D, Batch Normalization,
ReLU
512 3×3/1×1
17 Conv2D, Batch Normalization,
ReLU
128 3×3/1×1 46 Conv2D 2048 1×1/1×1
18 Conv2D, Batch Normalization,
Addition, ReLU
512 1×1/1×1 47 Conv2D, Batch Normalization,
Batch Normalization, Addition,
ReLU
2048 1×1/2×2
19 Conv2D, Batch Normalization,
ReLU
128 1×1/1×1 48 Conv2D, Batch Normalization,
ReLU
512 1×1/1×1
20 Conv2D, Batch Normalization,
ReLU
128 3×3/1×1 49 Conv2D, Batch Normalization,
ReLU
512 3×3/1×1
21 Conv2D, Batch Normalization,
Addition, ReLU
512 1×1/1×1 50 Conv2D, Batch Normalization,
Addition, ReLU
2048 1×1/1×1
22 Conv2D, Batch Normalization,
ReLU
128 1×1/1×1 51 Conv2D, Batch Normalization,
ReLU
512 1×1/1×1
23 Conv2D, Batch Normalization,
ReLU
128 3×3/1×1 52 Conv2D, Batch Normalization,
ReLU
512 3×3/1×1
24 Conv2D, Batch Normalization,
Addition, ReLU
512 1×1/1×1 53 Conv2D, Batch Normalization,
Addition, ReLU
2048 1×1/1×1
25 Conv2D, Batch Normalization,
ReLU
256 1×1/2×2 54 Conv2D, Batch Normalization,
ReLU
2048 3×3/1×1
26 Conv2D, Batch Normalization,
ReLU
256 3×3/1×1 55 Conv2D, Batch Normalization,
ReLU
2048 3×3/1×1
27 Conv2D 1024 1×1/1×1 56 Conv2D 44 1×1/1×1
28 Conv2D, Batch Normalization,
Batch Normalization, Addition,
ReLU
1024 1×1/2×2 57 YOLOv2Transform - -
58 YOLOv2Output - -

5) YOLOv2 전이 학습 (transfer learning)

성능 평가로 사용할 4개의 심층 합성곱 신경망을 구성하기 위하여 Matlab deep learning toolbox를 활용하였다. 그리고 학습의 정확도 개선 및 속도 향상을 위하여 전이 학습을 사용하였다. 각 합성곱 신경망에 대해 백만 개 이상의 영상으로 사전 학습된 신경망을 이용하였고, Tables 1~4와 같이 YOLOv2 모델을 결합하여 추가적인 전이 학습을 하였다. 학습에 사용한 데이터는 5종의 말벌 (등검은말벌, 장수말벌, 꼬마장수말벌, 털보말벌, 말벌)과 양봉꿀벌 각각 1,000장씩 6,000장의 영상을 활용했으며 유효성 검사 데이터의 비율은 종류별로 20%로 설정하였다. 각 종마다 800장은 학습용, 200장은 유효성 검사용으로 활용하였다. Epoch마다 학습용 데이터 집합과 유효성 검사 데이터 집합을 무작위로 구성하였고 데이터 증대를 위해 매 전방전달 (forward propagation)에서 입력 영상을 무작위 회전 (-20°~20°)과 가로, 세로 방향으로 무작위 이동 (-3~3화소)을 동시에 수행한 뒤 입력으로 사용했다. 그리고 최적화 함수로는 모멘텀을 갖는 확률적 경사 하강법과 모멘텀 (stochastic gradient descent with momemtum)을 사용하였고 미니배치 (minibatch)의 크기는 16으로 설정하였다. 성능 평가 척도는 각 종별 평균정확도의 평균 (mAP, Mean Average Precision)이고 평가용 데이터 집합은 6,000개와 별도로 각 종마다 100개씩 구성한 총 600장의 말벌 영상이다. 정해진 Epoch만큼 학습한 신경망을 평가하고 다시 새로운 평가를 위해 정해진 Epoch을 수행하기 전에 GPU 및 신경망의 구성과 관련된 메모리 초기화 과정을 거쳐 각 테스트에서 같은 학습조건을 유지하였다. YOLOv2 전이 학습의 전체적인 과정은 Fig. 4와 같다.


Fig. 4. 
Transfer Learning for YOLOv2.


결과 및 고찰
1. 심층 합성망 신경망의 종류에 따른 YOLOv2의 정확도 평가

전이 학습의 경우 사전 학습된 모델의 구조를 이용하므로 신경망의 구조 및 가중치가 각 모델에 대해 최적화되어 있다. 따라서 신경망에서 일부분의 층을 조정하고 새로운 학습데이터를 이용해 학습할 경우 빠른 학습이 가능하다. 실험에서는 사전 학습된 심층합성곱 신경망에서 완전 연결 층을 제외하고 YOLOv2 transform, YOLOv2 ouput층을 추가하여 학습을 실행하였다. 다양한 epoch을 설정하고 실험해 본 결과 100회의 이상에서는 epoch에 따른 유의미한 개선이 없어 100회의 epoch에 대해 신경망별로 5회씩 학습하고 이를 평균하여 mAP (mean of average precision)평가 결과를 제시하였다.

Fig. 5는 100회 epoch 과정에서 신경망별로 학습용 데이터 집합에 대한 loss를 나타낸다. X축은 가중치 갱신 횟수이며 Y축은 학습용 데이터 집합에 대한 loss이다. 학습과정에서 학습과 검증 데이터는 8 : 2로 하였으며 epoch마다 학습과 검증 데이터를 변경하여 사용하였다. 6,000개의 학습데이터에 대해 미니배치 크기를 16으로 설정하여 100회 epoch의 경우 37,500회의 가중치 갱신을 수행한다. 가중치 갱신 후 평가된 loss를 로그함수를 이용하여 Y축에 표시하였다. 이를 바탕으로 검증용 데이터 집합에 대한 정확도는 Table 5와 같다. Table 5에서 mAP는 각 클래스별로 100개씩 600개의 검증용 영상에 대해 모델의 추론값과 실제 클래스를 비교하여 클래스별로 정밀도를 계산하여 평균한 값이다. 실질적으로 충분한 학습이 이루어졌을 경우 각 신경망의 정확도 순위는 ILSVRC 2012년~2015년 순위에 따르면 ResNet50, GoogLeNet, VGG19, AlexNet 순으로 알려져 있다. 그러나 YOLO 기반 벌 인식의 경우 특징추출 레이어로 활용된 심층 합성곱 신경망의 정확도는 VGG19, ResNet, GoogLeNet, AlexNet 순으로 나타났다. 이는 검증용 데이터 뿐만 아니라 학습에 사용된 validation 데이터셋에 대해서도 동일한 순의 정확도를 나타냈다. 이는 적절한 학습에 따라 일반화 (generalization)결과도 유사한 정확도를 나타냄을 의미한다. Table 6은 학습을 마친 후 실시간 추론 속도의 비교를 위해 테스트 영상을 모두 메인 메모리에 적재한 상태에서 4개의 신경망을 이용해 600개의 검증용 영상에 대해 바운딩박스, 라벨링, 식(1)의 confidence 계산을 5회씩 수행한 결과이다. 아래 식에서 의미하는 바와 같이 confidence는 인식한 객체의 종류와 위치를 동시에 고려한 점수이다.


Fig. 5. 
Training Loss for 100 Epochs. (a) AlexNet+YOLOv2, (b) VGG19+YOLOv2, (c) GoogLeNet+YOLOv2, (d) ResNet50+YOLOv2.

Table 5. 
mAP(mean of average precision) comparison for test and validation dataset, 100 Epochs
Model Alexnet+YOLOv2 VGG19+YOLOv2 GoogLeNet+YOLOv2 ResNet50+YOLOv2
Class Test dataset Validation datatset Test dataset Validation datatset Test dataset Validation datatset Test dataset Validation datatset
Apis 0.980 0.988 0.980 0.994 1.000 1.000 1.000 0.994
Black 0.690 0.967 0.860 1.000 0.820 0.990 0.850 0.991
Crabro 0.620 0.978 0.810 0.996 0.650 0.981 0.760 0.996
Ggoma 0.580 0.944 0.680 0.986 0.600 0.978 0.600 0.986
Jangsu 0.760 0.942 0.860 0.990 0.870 0.977 0.860 0.985
Simil 0.670 0.954 0.800 1.000 0.680 0.979 0.770 0.994
mAP 0.717 0.962 0.832 0.994 0.770 0.984 0.807 0.991
apis: Apis mellifera, black: Vespa velutina nigrithorax, crabro: Vespa crabro, ggoma: Vespa ducalis, jangsu: Vespa mandarinia, simil: Vespa similima

Table 6. 
Elapsed time and throughput comparison for test dataset with 600 images
AlexNet+YOLOv2 VGG19+YOLOv2 GoogLeNet+YOLOv2 ResNet50+YOLOv2
Elapsed
time (sec)
Image/
Second
Elapsed
time (sec)
Image/
Second
Elapsed
time (sec)
Image/
Second
Elapsed
time (sec)
Image/
Second
1st 1.544 389 4.694 128 2.015 298 2.742 219
2nd 1.323 454 4.338 138 2.063 291 2.784 216
3rd 1.331 451 4.383 137 2.008 299 2.738 219
4th 1.334 450 4.501 133 2.033 295 2.771 217
5th 1.325 453 4.359 138 2.005 299 2.729 220
Mean 1.371 438 4.455 135 2.025 296 2.753 218
CPU: i9, GPU: RTX2080ti, RAM: 32GB, Matlab 2020a, CUDA: 11.0, Driver: 446.14

PrClassiIOUpredtruth(1) 

검증용 영상의 크기는 가로, 세로 235×136 화소를 갖는 13 KB의 영상부터 2816×2112 화소를 갖는 1.054 KB의 영상으로 다양하며 모두 jpg 혹은 jpeg 포맷으로 구성되어 있다. 계산량이 가장 많은 VGG19가 가장 늦은 처리 속도를 보였으며 계산량이 가장 적은 AlexNet이 가장 우수한 처리 속도를 보였다. 검증용 영상의 크기가 작은 관계로 평균 초당 138개에서 438개의 영상을 처리할 수 있음을 확인하였다. 따라서 처리 속도가 가장 늦은 VGG19+YOLOv2의 경우에도 FHD 정도 해상도의 영상인 경우, PC를 이용한 실시간 처리에 어려움이 없음을 예측할 수 있다. Fig. 6은 mAP와 처리량 (Throughput)을 동시에 비교한 그림이다. 정확도 측면에서는 VGG19를 특징추출 레이어로 활용한 YOLO 모델이 가장 우수하며 처리량을 우선 고려할 경우 AlexNet을 활용한 모델이 가장 우수함을 알 수 있다.


Fig. 6. 
mAP and Throughput comparison.

Fig. 7은 분류성능이 가장 우수한 VGG19+YOLOv2을 이용하여 검증용 영상을 인식한 결과의 예이다. (a)~ (e)의 종에 대해서 학습 과정에서 black, crabro, ggoma, jangsu, apis, simil라는 이름으로 라벨링하였으며 추론 시스템은 바운딩 박스와 라벨링 이름 그리고 confidence로 벌을 인식한 결과이다. Table 5에서 확인되는 것과 같이 6가지의 클래스 중에서 꼬마장수말벌의 인식률이 가장 낮음을 알 수 있다. 눈으로 확인하더라도 꼬마장수말벌과 장수말벌의 경우 그 구분이 쉽지 않다. Fig. 7의 경우 검증용 영상의 해상도가 높고 초점이 잘 맞은 경우라서 장수말벌을 제외하고는 90% 이상의 confidence 점수로 영상에 포함된 벌의 종류와 영역을 잘 추론함을 알 수 있다.


Fig. 7. 
Bee recognition by VGG19+YOLOv2. (a) V. velutina nigrithorax, (b) V. crabro, (c) V. ducalis, (d) V. mandarinia, (e) Apis mellifera, (f) V. similima.


적 요

세계적으로 개체 수가 급감하고 있는 꿀벌의 체계적인 관리를 위해서는 양봉 산업에 큰 피해를 주는 말벌류에 대한 실시간 모니터링 체계가 필요하다. 본 연구에서는 최근 실시간 영상인식에서 가장 우수한 성능을 보이는 YOLO 기반 심층 합성곱 신경망의 성능을 평가하였다. 기존의 심층 합성곱 신경망은 영상에 포함된 객체의 종류와 위치를 찾기 위해 영상 전체에 대해 반복적인 마스킹이 필수적이나 YOLO는 그리드 셀로 표현되는 영역별로 마스킹을 하므로 영상의 전체로 보면 한 번의 처리로 객체의 종류와 위치를 찾아 실시간 처리에 유리하다. 그러나 YOLO 역시 그리드 셀 영역에 대한 CNN 기반 특징추출 신경망이 필요하며 이 신경망의 특성에 따라 성능이 좌우된다. 따라서 본 연구에서는 다양한 기존의 특징추출 신경망과 YOLO를 결합하여 실시간 말벌 모니터링시스템의 구축에 가장 유리한 모델을 제시하였다. 실험 결과, VGG19를 특징추출 신경망으로 하고 YOLO를 결합한 모델이 인식성능 측면에서 가장 우수하였고 속도를 고려했을 때는 AlexNet이 유용한 대안이 됨을 확인하였다. 따라서 실시간 처리가 가능한 말벌 모니터링 구축시스템을 위해서는 VGG19 기반의 특징추출 레이어와 YOLO 알고리즘을 연결한 신경망을 이용하는 것이 처리 속도를 만족하면서 정확도의 측면에서 가장 우수하다는 것을 확인하였다.


Acknowledgments

본 논문은 농촌진흥청 공동연구사업 (과제번호: PJ01476103)으로 수행된 결과이며 농촌진흥청의 지원에 깊은 감사를 드립니다.


References
1. Alex, K., S. Ilya and E. H. Geoffrey. 2012. ImageNet Classification with Deep Convolutional Neural Networks. NeurIPS 25: 1097-1105.
2. Choi, M. B., J. K. Kim and J. W. Lee. 2013. Checklist and distribution of Korean vespidae revisited. Korean J. Appl. Entomol. 52(2): 85-89.
3. Christian, S., L. Wei, J. Yangqing, S. Pierre, R. Scott, A. Dragomir, E. Dumitru, V. Vincent and R. Andrew. 2015. Going Deeper with Convolutions. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition 1-9.
4. Joseph, R., D. Santosh, G. Ross and F. Ali. 2016. You only look once: Unified, Real-Time Object Detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition 779-788.
5. Joseph, R. and F. Ali. 2017. YOLO 9000: Better, Faster, Stronger. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition 7263-7271.
6. Jung, C. 2012. Spatial expansion of an invasive hornet, Vespa velutina nigrithorax Buysson (Hymenoptera: Vespidae) in Korea. Korean J. Apic. 27(2): 87-93.
7. Jung, C., M. S. Kang and D. Kim. 2007a. Vespid wasps (Hymenoptera) occurring around apiaries in Andong, Korea: II. Trap catches and seasonal dynamics. Korean J. Apic. 22: 63-70.
8. Kaiming, H., Z. Xiangyu, R. Shaoqing and S. Jian. 2016. Deep residual learning for image recognition. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition 770-778.
9. Karen, S. and Z. Andrew. 2015. Very deep convolutional networks for large-scale image recognition. arXiv: 1409.1556v6.
10. Kim, B. S., S. M. Jeong, G. E. Kim and C. E. Jung. 2017. Early Alert System of Vespa Attack to Honeybee Hive: Prototype Design and Testing in the Laboratory Condition. J. Apic. 32(3): 191-198.
11. Kim, Y. S., M. Y. Lee, M. L. Lee, S. H. Nam and Y. M. Park. 2006. Development of natural luring liquid against the wasps inflicting honeybees. Korean J. Apic. 21(1): 37-42.
12. Lee, C. H., Y. J. Jeong, T. H. Kim, J. H. Park, S. B. Park and C. Jeong. 2019. Performance comparison of deep convolutional neural networks for vespa image recognition. Korean J. Apic. 34(3): 207-215.
13. Olga, R., D. Jia, S. Hao, K. Johanthan, S. SanJeev, M. Sean, H. Zhiheng, K. Andrej, K. Aditya, B. Michael, C. B. Alexander and F. Li. 2014. ImageNet Large Scale Visual Recognition Challenge. J. of Com. Vis. 15(3): 1-34.