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
OS: Ubuntu16.04LTS GPU:GTX-1050 Python:3.5 CUDA8.0 cuDNN5.1
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 .
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.
Gpu: 1.0
ist die GPU-Nutzungsrate. Wenn ich in meiner Umgebung den Wert auf 1,0 gesetzt habe, ist der Fehler "Nicht genügend Speicher" aufgetreten, daher habe ich ihn auf 0,6 gesetzt.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)
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