[PYTHON] Ich habe versucht, YOLO v3 mit Google Colab auszuführen

Einführung

Dieses Mal habe ich versucht, YOLO v3 in der Umgebung von Google Colaboratory auszuführen.

Befolgen Sie die Schritte, um YOLO v3 in Google Colaboratory einzurichten YOLO-Setup Bitte lesen Sie das Kapitel.

Was ist YOLO v3?

** YOLO ** ist ein ** Echtzeit-Objekterkennungssystem **. Es ist Teil eines neuronalen Netzwerk-Frameworks namens Darknet. Das Wort YOLO ist eine Abkürzung für "Sie schauen nur einmal". YOLO v3 ist Version 3 von YOLO und derzeit die neueste Version. Weitere Informationen finden Sie auf der offiziellen YOLO-Seite.

YOLO v3 bei Google Colab

Umgebung

Die diesmal verwendete Umgebung ist Google Colaboratory. Andere Versionen sind wie folgt.

import platform
import cv2

print("Python " + platform.python_version())
print("OpenCV " + cv2.__version__)
# Python 3.6.9
# OpenCV 4.1.2

Vorbereitung

Importieren Sie die zur Anzeige des Bildes erforderliche Bibliothek.

import cv2
import matplotlib.pyplot as plt
%matplotlib inline
import matplotlib

YOLO-Setup

Jetzt richten wir YOLO v3 in Google Colab ein. Wir werden ein Arbeitsverzeichnis erstellen und darin arbeiten. Beachten Sie, dass dieses Setup nach dem ersten nicht erforderlich ist (arbeiten Sie zu diesem Zweck im Arbeitsverzeichnis).

import os

os.mkdir(working_dir) # working_dir ist das Arbeitsverzeichnis
os.chdir(working_dir)

Darknet klonen.

!git clone https://github.com/pjreddie/darknet

Wechseln Sie nach dem Klonen in das Darknet-Verzeichnis und führen Sie make aus.

os.chdir(working_dir + 'darknet')
!make

Laden Sie nach Abschluss der Erstellung das trainierte Modell (Gewicht) herunter.

!wget https://pjreddie.com/media/files/yolov3.weights

Damit ist die Einrichtung von YOLO v3 in Google Colab abgeschlossen.

Lass uns YOLO bewegen

Bewegen wir nun YOLO, um Objekte zu erkennen. Verwenden Sie das bereits vorbereitete Beispielbild. Das Beispielbild befindet sich unter Darknet / Daten.

!./darknet detect cfg/yolov3.cfg yolov3.weights 'data/dog.jpg'

# layer     filters    size              input                output
#     0 conv     32  3 x 3 / 1   608 x 608 x   3   ->   608 x 608 x  32  0.639 BFLOPs
#     1 conv     64  3 x 3 / 2   608 x 608 x  32   ->   304 x 304 x  64  3.407 BFLOPs
#     2 conv     32  1 x 1 / 1   304 x 304 x  64   ->   304 x 304 x  32  0.379 BFLOPs
#     3 conv     64  3 x 3 / 1   304 x 304 x  32   ->   304 x 304 x  64  3.407 BFLOPs
#     4 res    1                 304 x 304 x  64   ->   304 x 304 x  64
#     5 conv    128  3 x 3 / 2   304 x 304 x  64   ->   152 x 152 x 128  3.407 BFLOPs
#     6 conv     64  1 x 1 / 1   152 x 152 x 128   ->   152 x 152 x  64  0.379 BFLOPs
#     7 conv    128  3 x 3 / 1   152 x 152 x  64   ->   152 x 152 x 128  3.407 BFLOPs
#     8 res    5                 152 x 152 x 128   ->   152 x 152 x 128
# .........
#    97 upsample            2x    38 x  38 x 128   ->    76 x  76 x 128
#    98 route  97 36
#    99 conv    128  1 x 1 / 1    76 x  76 x 384   ->    76 x  76 x 128  0.568 BFLOPs
#   100 conv    256  3 x 3 / 1    76 x  76 x 128   ->    76 x  76 x 256  3.407 BFLOPs
#   101 conv    128  1 x 1 / 1    76 x  76 x 256   ->    76 x  76 x 128  0.379 BFLOPs
#   102 conv    256  3 x 3 / 1    76 x  76 x 128   ->    76 x  76 x 256  3.407 BFLOPs
#   103 conv    128  1 x 1 / 1    76 x  76 x 256   ->    76 x  76 x 128  0.379 BFLOPs
#   104 conv    256  3 x 3 / 1    76 x  76 x 128   ->    76 x  76 x 256  3.407 BFLOPs
#   105 conv    255  1 x 1 / 1    76 x  76 x 256   ->    76 x  76 x 255  0.754 BFLOPs
#   106 yolo
# Loading weights from yolov3.weights...Done!
# data/dog.jpg: Predicted in 22.825540 seconds.
# dog: 100%
# truck: 92%
# bicycle: 99%

Die Objekterkennung ist abgeschlossen. Lassen Sie uns das Bild anzeigen und überprüfen. Das Bild, das das Ergebnis der Objekterkennung darstellt, ist darknet / vorhers.jpg.

img_in = cv2.imread('data/dog.jpg')
img_out = cv2.imread('predictions.jpg')
plt.figure(figsize=[20,10])
plt.subplot(121);plt.imshow(img_in[:,:,::-1]);plt.axis('off')
plt.subplot(122);plt.imshow(img_out[:,:,::-1]);plt.axis('off')

image.png

"Hund", "Fahrrad" und "Auto" können erkannt werden.

Lassen Sie uns auch andere Bilder überprüfen.

!./darknet detect cfg/yolov3.cfg yolov3.weights 'data/horses.jpg'
img_in = cv2.imread('data/horses.jpg')
img_out = cv2.imread('predictions.jpg')
plt.figure(figsize=[20,10])
plt.subplot(121);plt.imshow(img_in[:,:,::-1]);plt.axis('off')
plt.subplot(122);plt.imshow(img_out[:,:,::-1]);plt.axis('off')

image.png

!./darknet detect cfg/yolov3.cfg yolov3.weights 'data/person.jpg'
img_in = cv2.imread('data/person.jpg')
img_out = cv2.imread('predictions.jpg')
plt.figure(figsize=[20,10])
plt.subplot(121);plt.imshow(img_in[:,:,::-1]);plt.axis('off')
plt.subplot(122);plt.imshow(img_out[:,:,::-1]);plt.axis('off')

image.png

!./darknet detect cfg/yolov3.cfg yolov3.weights 'data/kite.jpg'
img_in = cv2.imread('data/kite.jpg')
img_out = cv2.imread('predictions.jpg')
plt.figure(figsize=[20,10])
plt.subplot(121);plt.imshow(img_in[:,:,::-1]);plt.axis('off')
plt.subplot(122);plt.imshow(img_out[:,:,::-1]);plt.axis('off')

image.png

Zusammenfassung

Dieses Mal habe ich versucht, YOLO v3 in der Umgebung von Google Colaboratory auszuführen. Die Objekterkennung wurde unter Verwendung der bereits vorbereiteten Beispielbilder durchgeführt. Ich denke, es wäre interessant, verschiedene Bilder vorzubereiten und Objekte zu erkennen.

Referenz

Recommended Posts

Ich habe versucht, YOLO v3 mit Google Colab auszuführen
Ich habe versucht, Objekte mit YOLO v3 (TensorFlow 2.0) auf einer Windows-CPU zu erkennen!
Ich habe versucht, Pymc auszuführen
Ich habe versucht, TensorFlow auszuführen
Ich habe versucht, Objekte mit YOLO v3 (TensorFlow 2.1) auf der GPU von Windows zu erkennen!
Ich habe versucht, die App auf der IoT-Plattform "Rimotte" auszuführen.
Führen Sie YOLO v3 unter AWS v2 aus
Führen Sie YOLO v3 unter AWS aus
Ich habe MLflow auf Databricks ausprobiert
Ich habe vorerst versucht, PIFuHD unter Windows auszuführen
Ein Fehler, der beim Erlernen von YOLO mit Google Colab aufgetreten ist
Ich habe AdaNet gegen Tabellendaten ausprobiert
Ich habe versucht, GAN in Colaboratory auszuführen
Ich habe Cython unter Ubuntu auf VirtualBox ausprobiert
Ich habe es mit Grumpy versucht (Python ausführen).
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Spielen Sie mit Turtle auf Google Colab
Hinweise zum Ausführen von M5Stick V mit uPyLoader
Ich habe versucht, YOUTUBE Data API V3 zu verwenden
Maschinelles Lernen mit Pytorch in Google Colab
Bildsegment mit Oxford_iiit_pet in Google Colab
Ich habe versucht, Flask auf Raspberry Pi 3 Model B + mit Nginx und uWSGI auszuführen
Ich habe versucht, Remote API mit GAE / J zu verwenden
Ich habe "License OCR" mit der Google Vision API ausprobiert
Ich habe versucht, die Google Cloud Vision-API zu verwenden
Ich habe versucht, jupyter nteract auf dem Heroku-Server zu starten
[Pythonocc] Ich habe versucht, CAD auf einem Jupyter-Notebook zu verwenden
Versuchen Sie, Distributed TensorFlow auf der Google Cloud Platform auszuführen
Ich habe versucht, mit Python Faiss zu laufen, Go, Rust
Ich habe versucht, Python -m summpy.server -h 127.0.0.1 -p 8080 auszuführen
Ich habe "Receipt OCR" mit der Google Vision API ausprobiert
Ich habe versucht, Deep Floor Plan mit Python 3.6.10 auszuführen.
Ich habe versucht, alembic auszuführen, ein Migrationstool für Python
Ich habe LINE Message API (line-bot-sdk-python) mit GAE ausprobiert
Ich habe versucht, mit tkinter mit dem Taschenrechner zu spielen
Ich habe versucht zu kratzen
Ich habe PyQ ausprobiert
Ich habe AutoKeras ausprobiert
[Rails] v1.0 kam auf Google-Cloud-Vision von Gem heraus, also habe ich versucht, es zu unterstützen
Ich habe es mit Papiermühle versucht
Ich habe versucht, Django-Slack
Ich habe es mit Django versucht
YOLO mit Chainer
Ich habe es mit Spleeter versucht
Ich habe es mit cgo versucht
Ich habe Python zum ersten Mal auf dem Mac ausprobiert.
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, BERT mit Sakura VPS (ohne GPU) auszuführen.
Ich habe versucht, Python aus einer Bat-Datei auszuführen
Ich habe Python zum ersten Mal mit Heroku ausprobiert
Ich habe versucht, TensorFlow in der AWS Lambda-Umgebung auszuführen: Vorbereitung
Ich habe einen visuellen Regressionstest auf GitHub Pages versucht
[Python] Ich habe versucht, einen lokalen Server mit flask auszuführen
Ich habe versucht, PySpark von Jupyter 4.x auf EMR zu verwenden
Ich habe versucht, die Eingabe für UE4 Python VS Code zu interpolieren
Ich habe Kaokore, einen klassischen japanischen Datensatz, auf EfficientNet ausprobiert.
Ich habe versucht, den Linux-Kernel auf virtualbox + vagrant zu installieren