Image processing/Real-time

[2018] Pelee: Real-Time Object Detection System On Mobile Devices

유니디니 2020. 8. 2. 16:05
728x90
반응형

Written by Robert J. Wang, Xiang Li & Charles X. Ling


Git : https://github.com/Robert-JunWang/Pelee


[Abstract]


컨볼루션 신경망이 제한된 Computing Power나 메모리 Resource를 가진 모바일 디바이스에서 동작하기 위해서는 효율적인 모델 디자인이 필요하다. 이에 MobileNet, SuffleNet, MobileNetV2과 같은 형태의 방법들이 제안되었으며, 대부분의 모델들은 효율적인 구현이 부족한 Depthwise separable convolution에 크게 의존하고 있었다. 우리는 기존의 컨볼루션 대신, 효율적인 구조의 PeleeNet를 제안하였다. 우리는 ImageNet ILSVRC 2012 데이터 셋에서, 높은 정확도와 NVIDIA TX2환경에서 MobileNet, MobileNetV2에 비하여 1.8배 빠른 속도를 보였다. 또한, MobileNet에 비하여 66% 모델의 크기를 보이고 있다. 우리는 SSD와 결합하여 Real-time 객체 탐지 방법을 제안하였으며, 빠른 속도를 위하여 구조를 최적화 하였다. 

Pelee는 IPhone 8환경에서 PASCAL VOC2007는 mAP 76.4%, MS COCO에서는 22.4mAP와 23.6FPS, NVIDIA TX2에서는 125FPS를 보였다. 

COCO에서의 결과는 13.6배 낮은 계산 비용 및 11.3배 더 작은 모델 크기를 고려할 때, YOLO v2보다 성능이 뛰어나다.


[Introduction]


제한된 Computing Power와 메모리 리소스를 가진 환경에서 동작하기 위해서는 효율적인 구조의 모델이 필요하다. 본 논문에서 제안된 방법은 다음과 같다. 


Two-Way Dense Layer : GoogleNet(2015)에 영감을 받아, 크기가 다른 Receptive field를 가진 2-way Dense Layer를 사용하였다. 한가지 방법은 3x3 컨볼루션을 사용하였으며, 또 다른 방법은 큰 물체의 패턴을 학습하기 위해 2개의 쌓여진 형태의 3x3 컨볼루션을 사용하였다. 구조는 그림 1과 같다. 


Stem Block : Inception-v4 szegedy et al.(2017)과 DSOD Shen et al. (2017)에 영감을 받아, 첫번째 Dense Layer 이전에 비용적으로 효율적인 Stem Block을 적용하였다. 구조는 그림 2와 같으며, 많은 추가비용(e.g. 첫번째 컨볼루션 연산의 채널수 증가, Growth rate의 증가) 없이 Feature expression ability를 높였다. 



Dynamic Number of Channels in Bottleneck Layer : 또 다른 특징은 BottleNeck층의 채널 수가 기존 DenseNet에 사용된 Growthrate = 4의 고정된 숫자 대신 입력 모양(Input Shape)에 따라 달라진다는 것이다. DenseNet에서는 처음 몇개의 계층의 경우 BottleNeck 채널의 수가 입력 채널의 수보다 크기 때문에 오히려 계산 비용을 증가시킨다. 따라서, 모델의 구조를 유지하며 BottleNeck 레이어를 모든 레이어에 계속 추가하되, 입력 모양에 따라 동적으로 조정되어 채널 수가 입력 채널을 초과하지 못하도록 하였다. 


이러한 변화는 실험을 통해, 정확도에 약간의 영향을 미쳤으며 계산비용이 최대 28.5% 절약되었다.



Transition Layer without Compression : 실험을 통해 기존의 DenseNet은 Feature Expression을 손상시킴을 밝혔으며, 이러한 문제를 보완하기 위해 Transition layer를 통해 결과 채널들의 수를 입력 채널들의 수로 유지시켰다.


Composite Function : Speed를 향상시키기 위해 DenseNet에서 사용되는 Pre-activation 대신, 복합 기능으로 post-activation(Conv-batch norm- Relu)을 사용하였다. Post-activation은 모든 배치 정규화 레이어를 추론 단계에서 컨볼루션 레이어와 병합하여 속도를 크게 높일 수 있으며, 이러한 변화로 인한 부정적인 영향을 보상하기 위해 다양한 형태의 네트워크 구조를 사용한다. 또한, 마지막 레이어 뒤에 1x1 컨볼루션 레이어를 추가하여 더욱 강한 표현능력을 얻었다.


우리는 SSD의 네트워크를 최적화하고, 속도 향상을 위해 PeleeNet과 결합하였다. 

 

PASCAL VOC 2007에서 76.4% mAP, COCO에 대해 22.4% mAP의 정확도를 가지며, 속도 및 모델의 크기 측면에서 YOLOV2 보다 뛰어난 성능을 가지고 있다. 속도와 정확성을 위해 주요 개선된 사항은 다음과 같다. 


Feature Map Selection : 5개의 특징맵(19x19, 10x10, 5x5, 3x3, 1x1)을 사용하였으며, 계산 비용을 줄이기 위해 SSD에서 활용된 38x38은 사용하지 않았다. 


Residual Prediction Block : 우리의 네트워크는 feature extraction network를 지나가게 만들었으며, ResBlock를 추가하여 구조는 그림 4와 같다.


Small Convolution Kernel for Prediction :  Residual Prediction Block은 1x1 Convolution을 적용가능하게 만들며, Category scores와 Box offset을 예측할 수 있다. 우리의 실험에 따르면, 1x1 커널을 사용하는 모델의 정확도는 3x3 커널을 사용하는 모델의 정확도와 거의 같다. 그러나, 1x1 커널은 계산 비용을 21.5% 줄인다.  


[Model Design]

제안된 Pelee는 표 1과 같으며, Stem, Transition Layer로 구성된다. 


[Ablation Study]


1. Effects of Various Design Choices On The Performance


우리의 네트워크는 Densenet과는 2가지 차이점이 있다. 첫번째는 transition layer의 매개변수가 64개 대신 24개의 채널이 있으며, 커널의 크기도 7x7에서 3x3으로 변경되었다. 두번째는 블록의 레이어 수가 조정된다는 것이다. 표 2는 다양한 디자인에 따른 성능을 보이고 있다. 


2. Results On ImageNet ILSVRC 2012


표 3에서 볼 수 있듯이, 66% 이하의 모델 크기와 낮은 계산 비용으로 MobileNet 및 SuffleNet보다 높은 정확도를 달성한다. PeleeNet의 모델 크기는 VGG16의 1/49에 불과하다. 


3. Speed On Real Devices



Comparision With Other Frameworks(Object Detection)


반응형