[PYTHON] Versuchen Sie, ein Objekt mit RaspberryPi zu erkennen ~ Teil 1: Vergleich der Erkennungsgeschwindigkeit ~

Einführung

Bei der Objekterkennung mit RaspberryPi habe ich die Erkennungsgeschwindigkeit und Erkennungsgenauigkeit jeder YOLO-Quelle (Sie sehen nur einmal) verglichen. Dies ist eine der wichtigsten Objekterkennungsmethoden, daher werde ich sie zusammenfassen.

In Bezug auf den Mechanismus von YOLO war es leicht zu verstehen [Verlauf der Objekterkennungsmethode: Einführung von YOLO].

Was ich mit Raspberry Pi machen möchte

Ich möchte nicht nur eine Haustierkamera für Katzen machen, sondern auch zwischen vier Katzen unterscheiden! Das Muster ist für alle vier unterschiedlich! Ich denke nur darüber nach, was zu unterscheiden und was zu tun ist, z. B. den Zustand der Katze zu überwachen und die Fernbedienung der Klimaanlage zu steuern oder den Umfang der Aktivität zu betrachten und sie für das Gesundheitsmanagement zu verwenden.

--MUSS: Sie können die Anzahl der Klassen ändern, um Ihr eigenes Lernmodell zu identifizieren und zu erstellen (außerhalb des Geltungsbereichs dieses Artikels).

Umgebung

![RaspberryPi-RaspberryPi4 ModelB (4 GB)](https://img.shields.io/badge/Raspberry Pi-RaspberryPi4 ModelB (4 GB) - hellgrün)![OS-Raspbian 32bit (Version 2020.5.27)](https :: //img.shields.io/badge/OS-Raspbian 32bit (Version 2020.5.27) - hellgrün)

Ergebnis

Das Bewertungsziel ist der COCO-Datensatz (80 Klassen), YOLO-Autorenseite: YOLO: Echtzeit-Objekterkennung und [AlexeyAB](https :: //github.com/AlexeyAB/darknet) verwendet die Gewichte des verteilten trainierten Modells. Jedes Modell hat ein "Tiny", das die Erkennungszeit priorisiert.

Unten sehen Sie das Ergebnis von Source x Model. Die Erklärung, das Bild des Ergebnisses und der Eindruck werden später beschrieben.

Quelle Model Erkennungszeit Erkennungsgenauigkeit
pjreddie v2 477 Sekunden
pjreddie v2-Tiny 42 Sekunden ×
AlexeyAB v2 33 Sekunden
AlexeyAB v2-Tiny 6.6 Sekunden
AlexeyAB v3 74 Sekunden
AlexeyAB v3-Tiny 6.7 Sekunden
AlexeyAB v4 152 Sekunden
AlexeyAB v4-Tiny 7.8 Sekunden
keras-yolo3 v3 12 Sekunden
keras-yolo3 v3-Tiny 0.75 Sekunden
Tensorflow-YOLOv3 v3 8.9 Sekunden
Tensorflow-YOLOv3 v3-Tiny 3.4 Sekunden
yolov3-tf2 v3 5.6 Sekunden
yolov3-tf2 v3-Tiny 0.67 Sekunden

Die Erkennungsgenauigkeit ist subjektiv, basiert jedoch auf der Erkennungsrate des Hauptobjekts in jedem Bild. ◎ (90% -100%), 〇 (70% -90%), △ (50% -70%), × (nicht erkennbar).

Erklärung, Ergebnisbild, Eindruck für jede Quelle

pjreddie/darknet https://pjreddie.com/ https://github.com/pjreddie/darknet

gcc-8.3.0 (Raspbian 8.3.0-6+rpi1)

Model dog person
v2 predictions_v2_dog.jpg predictions_v2_person.jpg
v2-tiny predictions_v2t_dog.jpg predictions_v2t_person.jpg

AlexeyAB/darknet https://github.com/AlexeyAB/darknet

gcc-8.3.0 (Raspbian 8.3.0-6+rpi1)

Model dog person
v2 predictions_v2_dog.jpg predictions_v2_person.jpg
v2-tiny predictions_v2t_dog.jpg predictions_v2t_person.jpg
v3 predictions_v3_dog.jpg predictions_v3_person.jpg
v3-tiny predictions_v3t_dog.jpg predictions_v3t_person.jpg
v4 predictions_v4_dog.jpg predictions_v4_person.jpg
v4-tiny predictions_v4t_dog.jpg predictions_v4t_person.jpg

qqwweee/keras-yolo3 https://github.com/qqwweee/keras-yolo3

--keras Version

Keras-2.2.5tensorflow-1.13.1Python-3.7.3

Model dog person
v3 out_v3_dog.jpg out_v3_person.jpg
v3-tiny out_v3t_dog.jpg out_v3t_person.jpg

neuralassembly/Tensorflow-YOLOv3 https://github.com/neuralassembly/Tensorflow-YOLOv3 Versuchen Sie die Objekterkennung mit YOLO v3-Tiny / YOLO v3 auf Raspberry Pi

tensorflow-1.13.1Python-3.7.3

Model dog person
v3 image_output_v3_dog.png image_output_v3_person.png
v3-tiny image_output_v3t_dog.png image_output_v3t_person.png

zzh8829/yolov3-tf2 https://github.com/zzh8829/yolov3-tf2

--tensorflow2 System (mit tf.keras)

tensorflow-2.2.0Python-3.7.3

Model dog person
v3 output_v3_dog.jpg output_v3_person.jpg
v3-tiny output_v3t_dog.jpg output_v3t_person.jpg

Zusammenfassung

――Um "Ich möchte einmal pro Sekunde beurteilen" zu erfüllen, sinkt die Erkennungsgenauigkeit ein wenig, aber es ist nur mit Python v3-tiny schwierig. ――Wenn ich es benutze, wird die Anzahl der Klassen gering sein, daher hoffe ich, dass es die Genauigkeit verbessert.

Unser Ziel

--Bauen Sie zum Lernen Alexey AB auf der GPU-Version auf und führen Sie es in Google Colaboratory aus. 1000 Epochen für Tiny: ca. 7 Minuten. ――Für die Objekterkennung entscheiden Sie anhand der einfachen Umleitung vom Python-System, welche verwendet werden soll. (Ist zzh8829 / yolov3-tf2 für die Zukunft sicher?) ――Ich muss ein Foto von der Katze machen. ..

Referenz

Verwenden von Darknet mit Raspberry Pi YOLOv3 Paper Translation

qqwweee/keras-yolo3

zzh8829/yolov3-tf2

Recommended Posts

Versuchen Sie, ein Objekt mit RaspberryPi zu erkennen ~ Teil 1: Vergleich der Erkennungsgeschwindigkeit ~
Versuchen Sie die Objekterkennung mit Raspberry Pi 4 + Coral
Stellen wir uns den Raum mit Raspeltorte vor, Teil 1
Ich habe versucht, ein Objekt mit M2Det zu erkennen!
Ich habe versucht, mit Raspberry Pi 4 eine Umgebung von Ubuntu 20.04 LTS + ROS2 zu erstellen
Bildanalyse mit Objekterkennungs-API zum Ausprobieren in 1 Stunde
Versuchen Sie, 3 Servos mit Raspeye zu bewegen
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Machen wir ein IoT-Shirt mit Lambda, Kinesis, Raspberry Pi [Teil 1]
Versuchen Sie, mit Raspberry Pi nach Wakasagi zu fischen
So fügen Sie OpenCV in Raspberry Pi ein und sammeln mit Python ganz einfach Bilder von Gesichtserkennungsergebnissen
Versuchen Sie den Geschwindigkeitsvergleich der BigQuery Storage API
Bedienen Sie das Oszilloskop mit dem Raspberry Pi
Versuchen Sie, ein Bild mit Entfremdung zu erzeugen
Ich habe ein npm-Paket erstellt, um die ID der IC-Karte mit Raspberry Pi und PaSoRi zu erhalten
Versuchen Sie, den Hintergrund und das sich bewegende Objekt des Videos mit OpenCV zu trennen
[Überprüfung] Versuchen Sie, die Punktgruppe an der Optimierungsfunktion von Pytorch Part 1 auszurichten
Versuchen Sie, die 4-Kern-CPU des Raspberry Pi 2 mit Parallel Python zu verbrauchen
CSV-Ausgabe von Impulsdaten mit Raspberry Pi (CSV-Ausgabe)
Holen Sie sich CPU-Informationen von Raspberry Pi mit Python
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Versuchen Sie, Fische mit Python + OpenCV2.4 (unvollendet) zu erkennen.
Messen Sie die CPU-Temperatur von Raspeye mit Python
[Cloud 9] Versuchen Sie, eine Umgebung mit Django 1.11 von Python 3.4 zu erstellen, ohne auch nur 1 mm zu verstehen
Stoppschilderkennung Entwicklung des Visualisierungsteils Teil5 Zeigen Sie an, was erkannt wurde, als ein Objekt erkannt wurde
Einfaches IoT, um mit Raspeye und MESH zu beginnen
Versuchen Sie, Python auf Raspberry Pi mit Visual Studio zu debuggen.
Ermitteln Sie den Tragezustand der Maske mit OpenCV und Raspberry Pi
Nehmen Sie den Wert des SwitchBot-Thermo-Hygrometers mit Raspberry Pi
Umschalten der Bot-Thermo-Hygrometer-Werte mit Raspberry Pi
Versuchen Sie, den Inhalt von Word mit Golang zu erhalten
Machen Sie eine Regenschirmerinnerung mit Raspberry Pi Zero W.
Lassen Sie uns GPIO von Raspeye mit Python CGI betreiben
Bis Sie Ihren eigenen Datensatz mit Anmerkungen versehen und ein Objekt mit EfficientDet ~ Zeichengesichtserkennung ~ erkennen
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Ich habe versucht, mit OpenCV eine Bewegungserkennungsüberwachungskamera mit einer WEB-Kamera mit Raspberry Pi herzustellen
GPGPU mit Raspberry Pi
DigitalSignage mit Raspberry Pi
Einfache Einführung in Home Hack mit Raspberry Pi und discord.py
Anwendung der affinen Umwandlung durch Tensor - von der Basis- zur Objekterkennung -
Aktualisieren Sie Raspberry Pi Python mit pyenv auf 3.7 oder höher
Spielen Sie mit dem Raspberry Pi Zero WH-Kameramodul Teil 1
Eine Einführung in die Objektorientierung: Ändern Sie den internen Status eines Objekts
Ich habe versucht, Movidius NCS mit Python von Raspberry Pi3 auszuführen
Erstellen Sie LCD-Spiele (16x2) mit Raspberry Pi und Python
Machen Sie einen in die Klimaanlage integrierten Personal Computer "airpi" mit Raspberry Pi 3!
Herstellung eines Temperaturregelungssystems mit Himbeerkuchen und ESP32 (1)
Versuchen Sie, den Betrieb von Netzwerkgeräten mit Python zu automatisieren
Versuchen Sie, die Geschwindigkeit von Zeitraffervideos automatisch anzupassen (Teil 2).
Verbinden Sie Raspberry Pi mit "Python" mit der Alibaba Cloud IoT Platform
Ich habe die Daten von Raspberry Pi an GCP gesendet (kostenlos)
Versuchen Sie, Merkmale von Sensordaten mit CNN zu extrahieren
Liste der Dinge, die Sie möglicherweise tun müssen, um OBD Linux auf Raspeye mit Buildroot zu entwickeln
Messen Sie Temperatur, Luftfeuchtigkeit usw. mit SensorTag und senden Sie es über Raspberry Pi 3 an Ambient, um es Teil 2 grafisch darzustellen