[PYTHON] Essayez la reconnaissance d'objets en temps réel avec YOLOv2 (TensorFlow)

introduction

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

Environnement d'exécution

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

Préparation

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 .

Exemple de code

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.

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)

résultat

sample1.png

Résumé

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

Essayez la reconnaissance d'objets en temps réel avec YOLOv2 (TensorFlow)
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
Essayez d'utiliser la reconnaissance de caractères manuscrits (OCR) de GCP
Reconnaissance d'objet circulaire à l'aide de la transformation de Huff
Essayez d'utiliser Bash sur Windows 10 2 (installation de TensorFlow)
Détection d'objets à l'aide de Jetson Nano (YOLOv3) - (1) Paramètres Jetson Nano-
Essayez d'utiliser Tkinter
Essayez d'utiliser docker-py
Programme de reconnaissance Nogizaka (utilisant Yolov5) Table des matières
Essayez Distributed Tensor Flow
Essayez d'utiliser Cookiecutter
Essayez d'utiliser PDFMiner
Essayez d'utiliser des géopandas
Essayez d'utiliser Selenium
Essayez d'utiliser pandas.DataFrame
Essayez d'utiliser tensorflow ① Créez un environnement python et introduisez tensorflow
Essayez d'utiliser django-swiftbrowser
Essayez d'utiliser matplotlib
Essayez d'utiliser tf.metrics
Essayez d'utiliser PyODE
Essayez d'utiliser virtualenv (virtualenvwrapper)
[Azure] Essayez d'utiliser Azure Functions
Essayez d'utiliser virtualenv maintenant
Essayez d'utiliser W & B
Essayez d'utiliser Django templates.html
[Kaggle] Essayez d'utiliser LGBM
Essayez d'utiliser l'analyseur de flux de Python.
Essayez d'utiliser Tkinter de Python
Tutoriel TensorFlow - Reconnaissance d'image (traduction)
Essayez la régression avec TensorFlow
Essayez d'utiliser Tweepy [Python2.7]
Essayez d'utiliser collate_fn de Pytorch
2020/02 Python 3.7 + TensorFlow 2.1 + Keras 2.3.1 + YOLOv3 Détection d'objets avec la dernière version
Détection générale des objets à l'aide du modèle pré-entraîné de Google (via TensorFlow Hub)
Reconnaissance d'image en temps réel sur les appareils mobiles à l'aide du modèle d'apprentissage TensorFlow
[Pour les débutants] J'ai essayé d'utiliser l'API Tensorflow Object Detection