[PYTHON] Versuchen Sie die Objekterkennung in Echtzeit mit YOLOv2 (TensorFlow).

Einführung

Bisher haben wir Methoden wie BING, Selective Search und Faster-RCNN zur Objekterkennung ausprobiert. Dieses Mal möchte ich YOLO (v2) ausprobieren, das momentan wahrscheinlich das schnellste ist (Juni 2017). Das Original ist in C-Sprache geschrieben. https://pjreddie.com/darknet/yolo/ ・ 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 Lassen Sie uns Echtzeitobjekte mit Faster R-CNN erkennen

Ausführungsumgebung

OS: Ubuntu16.04LTS GPU:GTX-1050 Python:3.5 CUDA8.0 cuDNN5.1

Vorbereitung

Zum Glück wurde die Version mit TensorFlow veröffentlicht, daher werde ich dieses Mal [hier] verwenden (https://github.com/thtrieu/darkflow). (Ich habe auch eine Wrapper-Klasse in C ++ erstellt, möchte aber Python verwenden.) Die Installation ist genau wie in der Readme-Datei beschrieben, daher glaube ich nicht, dass Sie stolpern werden. (* Wenn TensorFlow und OpenCV nicht installiert sind, installieren Sie sie bitte im Voraus.)

Klonen Sie von GitHub und geben Sie den Ordner ein. git clone https://github.com/thtrieu/darkflow.git cd darkflow Laden Sie die Gewichtsdatei von der YOLO-Homepage herunter. wget https://pjreddie.com/media/files/yolo.weights

Es gibt drei Möglichkeiten, es zu installieren. Lassen Sie es uns entsprechend Ihrer Umgebung installieren. ■ Methode 1 (: Wenn Sie auf diese Weise installieren, müssen Sie ./flow im duplizierten Dark Flow-Verzeichnis anstelle von Flow verwenden, da es nicht global installiert ist.) python3 setup.py build_ext --inplace ■ Methode 2 (Global mit pip installieren. Weltweit zugänglich, Codeänderungen werden jedoch sofort wirksam.) pip install -e . ■ Methode 3 (Global mit pip installieren) pip install .

Beispielcode

Es gibt nichts besonders Schwieriges. bin / yolo.weights enthält den Pfad der zuvor heruntergeladenen Weight-Datei. Das Ergebnis result speichert das Ergebnis im JSON-Format. Danach analysieren Sie dies und zeichnen.

from darkflow.net.build import TFNet
import cv2

options = {"model": "cfg/yolo.cfg", "load": "bin/yolo.weights", "threshold": 0.1, "gpu": 1.0}

tfnet = TFNet(options)

imgcv = cv2.imread("./sample_img/dog.jpg ")
result = tfnet.return_predict(imgcv)
print(result)

Ergebnis

sample1.png

Zusammenfassung

Diesmal habe ich TensorFlow verwendet, Andere Versionen wie Keras und Chainer wurden auf GitHub hochgeladen. Probieren Sie YOLO (v2) mit Ihrem bevorzugten Framework aus. Keras-Version Chianer-Version Ich bin jedoch sehr dankbar, dass die neuesten Methoden mit verschiedenen Frameworks problemlos ausprobiert werden können. Ich möchte heutzutage auch eine nützliche Quelle für Menschen bereitstellen.

Recommended Posts

Versuchen Sie die Objekterkennung in Echtzeit mit YOLOv2 (TensorFlow).
Versuchen wir die Echtzeit-Objekterkennung mit Faster R-CNN
Logoerkennung mit der TensorFlow-Objekterkennungs-API
Versuchen Sie es mit der handgeschriebenen Zeichenerkennung (OCR) von GCP.
Kreisförmige Objekterkennung mittels Huff-Transformation
Versuchen Sie es mit Bash unter Windows 10 2 (TensorFlow-Installation)
Objekterkennung mit Jetson Nano (YOLOv3) - (1) Jetson Nano-Einstellungen-
Versuchen Sie es mit Tkinter
Versuchen Sie es mit Docker-Py
Nogizaka-Erkennungsprogramm (mit Yolov5) Inhaltsverzeichnis
Versuchen Sie es mit verteiltem Tensorfluss
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 pandas.DataFrame
Versuchen Sie es mit Tensorflow. ① Erstellen Sie eine Python-Umgebung und führen Sie Tensorflow ein
Versuchen Sie es mit Django-Swiftbrowser
Versuchen Sie es mit matplotlib
Versuchen Sie es mit tf.metrics
Versuchen Sie es mit PyODE
Versuchen Sie es mit virtualenv (virtualenvwrapper)
[Azure] Versuchen Sie, Azure-Funktionen zu verwenden
Versuchen Sie es jetzt mit virtualenv
Versuchen Sie es mit W & B.
Versuchen Sie es mit Django templates.html
[Kaggle] Versuchen Sie es mit LGBM
Versuchen Sie es mit dem Feed-Parser von Python.
Versuchen Sie es mit Pythons Tkinter
TensorFlow Tutorial-Bilderkennung (Übersetzung)
Versuchen Sie eine Regression mit TensorFlow
Versuchen Sie es mit Tweepy [Python2.7]
Versuchen Sie es mit Pytorchs collate_fn
2020/02 Python 3.7 + TensorFlow 2.1 + Keras 2.3.1 + YOLOv3 Objekterkennung mit der neuesten Version
Allgemeine Objekterkennung mit dem von Google vorab trainierten Modell (über TensorFlow Hub)
Echtzeit-Bilderkennung auf Mobilgeräten mithilfe des TensorFlow-Lernmodells
[Für Anfänger] Ich habe versucht, die Tensorflow-Objekterkennungs-API zu verwenden