[PYTHON] Versuchen wir die Echtzeit-Objekterkennung mit Faster R-CNN

Einführung

Bisher haben wir Methoden wie BING und Selective Search als R-CNN eingeführt. ・ Klicken Sie hier für frühere Artikel Ich habe versucht, BING mit OpenCV als Vorverarbeitung von CNN zu verwenden Ich habe versucht, die selektive Suche als R-CNN zu verwenden Die Genauigkeit von BING ist jedoch nicht sehr gut. Es gibt immer noch Beschwerden über die selektive Suche, wie z. B. langsame Verarbeitungsgeschwindigkeit. Diesmal möchte ich also Faster R-CNN ausprobieren.

Was ist schnelleres R-CNN?

Diese Methode wurde beschleunigt, indem Kandidatenkandidaten für Objekte mithilfe von CNN ermittelt wurden. Ursprünglich wurde eine Methode namens Fast R-CNN früher angekündigt, Bald darauf wurde das schnellere Faster R-CNN angekündigt. (Die Geschwindigkeit des Fortschritts in dieser Welt ist erschreckend.) Weitere Informationen finden Sie auf der Seite der Cornnel University. https://arxiv.org/abs/1506.01497

Weise

Das Original ist Caffe https://github.com/rbgirshick/py-faster-rcnn/tree/96dc9f1dea3087474d6da5a98879072901ee9bf9 Ich möchte Caffe nicht sehr oft als persönliches Hobby verwenden, daher werde ich dieses Mal die Chainer-Version verwenden. https://github.com/mitmul/chainer-faster-rcnn

Umgebung: Ubuntu16.04LTS, Python2.7.12, Chainer1.12.0 Befolgen Sie einfach die Schritte in ReadMe.

□ Klonen Sie den Chainer-Fast-Neural-Stil.

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

□ Wechseln Sie in den Bibliotheksordner und erstellen Sie

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

□ Laden Sie das trainierte Modell herunter

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

□ Laden Sie das Testbild herunter und führen Sie es aus

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

Ergebnis

Es ist das Ergebnis des Testbildes result_master.jpg Dies ist ein Bild, das ich selbst vorbereitet habe result_dog.jpg Beide werden genau erfasst. Darüber hinaus wird es bei Verwendung der GTX970 in etwa 0,3 bis 0,4 Sekunden erkannt. Übrigens hat es nur für die CPU ca. 30 Sekunden gedauert.

Zusammenfassung

Schnelleres R-CNN scheint im Moment eine ziemlich gute Technik zu sein. Eine Grafikkarte ist erforderlich. In Zukunft wird es leichte Modelle geben, die auf Mobilgeräten funktionieren.

[30.11.2016 Nachtrag] Wenn Sie darüber nachdenken, scheint es eine schnellere Methode zu geben, die als Single Shot Multi-Box-Erkennung bezeichnet wird. https://arxiv.org/abs/1512.02325 Das möchte ich auch in meiner Freizeit ausprobieren.

Recommended Posts

Versuchen wir die Echtzeit-Objekterkennung mit Faster R-CNN
Versuchen Sie die Objekterkennung in Echtzeit mit YOLOv2 (TensorFlow).
Versuchen wir die neuronale maschinelle Übersetzung mit Transformer
Versuchen wir die Echtzeit-Objekterkennung mit Faster R-CNN
Logoerkennung mit der TensorFlow-Objekterkennungs-API
Objekterkennung mit Jetson Nano (YOLOv3) - (1) Jetson Nano-Einstellungen-
Versuchen Sie die Objekterkennung mit Raspberry Pi 4 + Coral
Versuchen wir die neuronale maschinelle Übersetzung mit Transformer
Ich habe versucht, Objekte mit Python und OpenCV zu erkennen
Versuchen Sie es mit Tkinter
Versuchen Sie es mit Docker-Py
Versuchen Sie es mit einem Ausstecher
Versuchen Sie es mit PDFMiner
Versuchen Sie es mit Geopandas
Versuchen Sie es mit Selen
Versuchen Sie es mit scipy
Versuchen Sie es mit pandas.DataFrame
Versuchen Sie es mit Django-Swiftbrowser
Versuchen Sie es mit matplotlib
Versuchen Sie es mit tf.metrics
Versuchen Sie es mit PyODE
Versuchen Sie die Gesichtserkennung in Echtzeit mit einer Webkamera
[Zusammenfassung] Objekterkennungsmodell "End-to-End-Objekterkennung mit Transformatoren" mit Transformer