Shunya UETA

Software Engineer As Data Scientist

OpenCV 3.3から使えるDNNモジュールを使って物体検出

Posted at — Nov 14, 2017

OpenCVとMobileNetを使って物体検出を行った

image

Object Detection with OpenCV dnn modules and MobileNetSSD on Jupyter Notebook

Introduction

物体検出をDeep LeaningとOpenCVを用いて行う

OpenCV 3.3からdnnモジュールが正式にリリースされた > _The main news is that we promoted DNN module from opencvcontrib to the main repository, improved and accelerated it a lot. An external BLAS implementation is not needed anymore. For GPU there is experimental DNN acceleration using Halide (http://halide-lang.org_). The detailed information about the module can be found in our wiki: Deep Learning in OpenCV.
> _https://opencv.org/opencv-3-3.html

今回はそのdnnモジュールを使って物体検出を行う

この記事は主にpyimagesearchの記事を参考に行いました。詳細な解説がありがたいですDeep Leaningを基にした物体検出で有名な手法は以下の3つである

物体検出を行う際のDNNのアーキテクチャでは主にVGGかResNetが用いられる。しかし欠点としてこれらのアーキテクチャは非常に大きく200–500MBのサイズになってしまう

物体検出において速度、精度、メモリの3つのバランスを考慮する場合、どのアーキテクチャを選ぶべきかをGoogleが論文としてまとめている

[1611.10012] Speed/accuracy trade-offs for modern convolutional object detectors

一行でまとめると、基本的に速度と精度はトレードオフであり、最速はSSDs MobileNet, 最高精度はFaster R-CNN w/Inception Resnet at stride 8

今回は省メモリかつ速度が早いSSDs MobileNetを用いて物体検出を行った

Demo on JupyterNotebook

Code

hurutoriya/yolov2_api

Study

Future Work

comments powered by Disqus