[PYTHON] Essayons la détection d'objets en temps réel en utilisant Faster R-CNN

introduction

Jusqu'à présent, nous avons introduit des méthodes telles que BING et la recherche sélective comme R-CNN. ・ Cliquez ici pour les articles précédents J'ai essayé d'utiliser BING avec OpenCV comme prétraitement de CNN J'ai essayé d'utiliser la recherche sélective comme R-CNN Cependant, la précision de BING n'est pas très bonne. Il y a encore des plaintes concernant la recherche sélective, comme la lenteur du traitement. Alors cette fois, je voudrais essayer Faster R-CNN.

Qu'est-ce que Faster R-CNN?

C'est une méthode qui a été accélérée en détectant des candidats candidats pour des objets à l'aide de CNN. À l'origine, une méthode appelée Fast R-CNN a été annoncée plus tôt, Peu de temps après, le plus rapide R-CNN a été annoncé. (La vitesse du progrès dans ce monde est terrifiante.) Pour plus de détails, veuillez vous référer à la page de l'Université Cornnel. https://arxiv.org/abs/1506.01497

manière

L'original est Caffe https://github.com/rbgirshick/py-faster-rcnn/tree/96dc9f1dea3087474d6da5a98879072901ee9bf9 Je ne veux pas vraiment utiliser Caffe comme passe-temps personnel, donc cette fois j'utiliserai la version Chainer. https://github.com/mitmul/chainer-faster-rcnn

Environnement: Ubuntu16.04LTS, Python2.7.12, Chainer1.12.0 Suivez simplement les étapes de ReadMe.

□ Clonez le style neuronal à chaîne rapide.

$ git clone https://github.com/mitmul/chainer-faster-rcnn

□ Allez dans le dossier de la bibliothèque et créez

$ cd chainer-faster-rcnn/lib
$ python setup.py build_ext -i
$ cd ..

□ Téléchargez le modèle entraîné

$ if [ ! -d data ]; then mkdir data; fi; cd data
$ wget https://dl.dropboxusercontent.com/u/2498135/faster-rcnn/VGG16_faster_rcnn_final.model`
$ cd ..

□ Téléchargez et exécutez l'image de test

$ wget http://vision.cs.utexas.edu/voc/VOC2007_test/JPEGImages/004545.jpg
$ python forward.py --img_fn 004545.jpg --gpu 0

résultat

C'est le résultat de l'image de test result_master.jpg C'est une image que je me suis préparée result_dog.jpg Les deux sont détectés avec précision. De plus, lors de l'utilisation de GTX970, il est détecté en environ 0,3 à 0,4 seconde. À propos, cela a pris environ 30 secondes pour le processeur uniquement.

Résumé

Le R-CNN plus rapide semble être une très bonne technique pour le moment. Une carte graphique est requise. À l'avenir, il y aura des modèles légers qui fonctionneront sur les appareils mobiles.

[PostScript 30/11/2016] Si vous y réfléchissez, il semble y avoir une méthode plus rapide appelée Détection multi-boîtes à un coup. https://arxiv.org/abs/1512.02325 J'aimerais aussi essayer ceci pendant mon temps libre.

Recommended Posts

Essayons la détection d'objets en temps réel en utilisant Faster R-CNN
Essayez la reconnaissance d'objets en temps réel avec YOLOv2 (TensorFlow)
Essayons la traduction automatique neuronale avec Transformer
Essayons la détection d'objets en temps réel en utilisant Faster R-CNN
Détection de logo à l'aide de l'API de détection d'objets TensorFlow
Détection d'objets à l'aide de Jetson Nano (YOLOv3) - (1) Paramètres Jetson Nano-
Essayez la détection d'objets avec Raspberry Pi 4 + Coral
Essayons la traduction automatique neuronale avec Transformer
J'ai essayé la détection d'objets en utilisant Python et OpenCV
Essayez d'utiliser Tkinter
Essayez d'utiliser docker-py
Essayez d'utiliser Cookiecutter
Essayez d'utiliser PDFMiner
Essayez d'utiliser des géopandas
Essayez d'utiliser Selenium
Essayez d'utiliser scipy
Essayez d'utiliser pandas.DataFrame
Essayez d'utiliser django-swiftbrowser
Essayez d'utiliser matplotlib
Essayez d'utiliser tf.metrics
Essayez d'utiliser PyODE
Essayez la détection des visages en temps réel à l'aide d'une webcam
[Résumé] Modèle de détection d'objets utilisant Transformer "Détection d'objets de bout en bout avec des transformateurs"