hurutoriya

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

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 opencv_contrib 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

関連しているかもしれない記事

Support

記事をお読みくださりありがとうございます。 このウェブサイトの運営を支援していただける方を募集しています。 もしよろしければ、Buy Me a Coffee からサポート(投げ銭)していただけると、記事の執筆、情報発信のモチベーションに繋がります✨

--

記事を楽しめましたか? RSSで更新情報を配信しているので、お好きなフィードリーダーで購読してみてください。
また、記事へのリアクションやコメントなどを、以下のGitHub を利用したコメントシステムからしていただけると執筆の励みになります。

#python #opencv #machinelearning #computervision