Jusqu'à présent, nous avons essayé des méthodes telles que BING, Selective Search et Faster-RCNN pour la détection d'objets. Cette fois, j'aimerais essayer YOLO (v2), qui est probablement le plus rapide du moment (juin 2017). L'original est écrit en langage C. https://pjreddie.com/darknet/yolo/ ・ 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 Détectons les objets en temps réel en utilisant Faster R-CNN
OS: Ubuntu16.04LTS GPU:GTX-1050 Python:3.5 CUDA8.0 cuDNN5.1
Heureusement, la version utilisant TensorFlow a été publiée, donc cette fois je vais utiliser ici. (J'ai également créé une classe wrapper en C ++, mais je souhaite utiliser Python) L'installation est exactement ce qui est écrit dans le Readme, donc je ne pense pas que vous trébucherez. (* Si TensorFlow et OpenCV ne sont pas installés, veuillez les installer à l'avance.)
Clonez depuis GitHub et entrez dans le dossier.
git clone https://github.com/thtrieu/darkflow.git
cd darkflow
Téléchargez le fichier de poids depuis la page d'accueil YOLO.
wget https://pjreddie.com/media/files/yolo.weights
Il existe trois façons de l'installer. Installons-le en fonction de votre environnement.
■ Méthode 1 (: si vous installez de cette manière, vous devez utiliser ./flow dans le répertoire Dark Flow dupliqué au lieu de Flow car il n'est pas installé globalement.)
python3 setup.py build_ext --inplace
■ Méthode 2 (installation globale à l'aide de pip. Accessible à l'échelle mondiale, mais les modifications de code prennent effet immédiatement)
pip install -e .
■ Méthode 3 (installation globale à l'aide de pip)
pip install .
Il n'y a rien de particulièrement difficile.
bin / yolo.weights
contiendra le chemin du fichier de poids que vous avez téléchargé précédemment.
Le résultat result
stocke le résultat au format JSON. Après cela, analysez ceci et dessinez.
Gpu: 1.0
est le taux d'utilisation du GPU. Dans mon environnement, lorsque je l'ai réglé sur 1.0, j'ai eu une erreur de mémoire insuffisante, donc je l'ai réglé sur 0.6.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)
J'ai utilisé TensorFlow cette fois, D'autres versions telles que Keras et Chainer ont été téléchargées sur GitHub. Essayez YOLO (v2) avec votre framework préféré. Version Keras Version Chianer Cependant, je suis très reconnaissant que les dernières méthodes puissent être facilement essayées avec différents frameworks. Je veux également fournir une source utile pour les gens de nos jours.
Recommended Posts