Es ist ein Durcheinander, aber ich zeige Ihnen, wie Sie ein Objekt sehr einfach erkennen können.
Was ist YOLO überhaupt? Was ist Objekterkennung? Antworten auf Fragen wie z. Dieser Artikel ist auch in den 3 Stunden der Erstellung enthalten. Bitte verzeihen Sie mir, obwohl es einige Stellen gibt, an denen er kaputt ist.
Bereiten Sie einfache Lehrerdaten vor. In meinem Fall wollte ich dieses Mal das Vinylhaus entdecken, also habe ich vorerst 30 Bilder vorbereitet. So was. Das Luftbild von Google Maps ist so schön![Screenshot 2019-12-20 20.37.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285361 /aa7b62c1-f85c-4b13-b543-35e0fe032768.png)
Wir werden Annotationsarbeiten (Beschriftungen) daran durchführen. Diesmal habe ich ein Tool namens labelImg verwendet. Es gibt andere Tools namens VoTT und BBox-Label-Tool, aber VoTT unterstützt YOLO. Wenn dies jedoch nicht funktioniert, ist es schwierig, von vorne zu beginnen, und die Einrichtung von BBox ist schwierig, wenn versucht wird, mehrere Klassen zu erstellen. Also habe ich mich für labelImg entschieden.
Führen Sie den folgenden Befehl aus, um labelImg einsatzbereit zu machen. Wenn Sie Python3 installiert haben, können Sie Zeile 3.4 überspringen.
git clone https://github.com/tzutalin/labelImg.git sudo apt install pyqt5-dev-tools sudo apt install python3-pip sudo pip3 install lxml cd labelImg make qt5py3
Erstellen Sie einen Ordner mit einem beliebigen Namen im labelimg-Ordner und verschieben Sie das vorbereitete Bild dorthin. (Vinyl usw. für Vinylhäuser) Ändern Sie dann predefined_class.txt in labelimg / data. Zunächst werden ungefähr 20 Klassen im Voraus geschrieben. Löschen Sie diesmal jedoch alle bereits geschriebenen Klassennamen und schreiben Sie den Klassennamen mit einem Zeilenumbruch mit Ihrem Lieblingsnamen. Ich habe eine Zeile mit Vinyl geschrieben.
python3 labelimg.py Führen Sie labelImg by aus. Schnitt für interne Arbeit. Grob gesagt
Ich werde es so beschriften. 30 Blatt ist ein Augenblick. Damit ist die Vorbereitung der Lehrerdaten abgeschlossen.
Wir werden uns auf das Lernen vorbereiten. Installieren Sie zur Verwendung von YOLO ein Framework namens darknet. Dieses Framework funktioniert ziemlich gut mit YOLO. (Wird es eher von YOLO-Entwicklern verwendet?) Installieren Sie mit dem folgenden Befehl.
git clone https://github.com/pjreddie/darknet.git
Verschieben Sie anschließend die mit labelImg verwendeten Bilder nach darknet / data / images und die mit labelImg erstellten Textdateien nach darknet / data / label. In diesem Zustand / bei Darknet python3 process.py Ausführen. Dies trennt die Lehrerdaten in eine Lehrerdatei und eine Lerndatei.
Von hier aus werden wir verschiedene Arbeiten ausführen. Aufzählen.
Wenn /darknet/cfg/yolo-obj.cfg nicht vorhanden ist, kopieren Sie /darknet/cfg/yolov2-voc.cfg und bearbeiten Sie es. 3. Zeile: Batch = 64 setzen. Die Anzahl der Bilder, die für jeden Lernschritt verwendet werden. Sie können Zeile 6 auskommentieren und aktivieren 4. Zeile: Unterteilungen setzen = 8. Die Charge wird durch 8 geteilt. Sie können Zeile 7 auskommentieren und aktivieren
Ändern Sie abschließend /darknet/cfg/obj.data wie folgt: classes=1 train = data/images/train.txt valid = data/images/test.txt labels = data/images/obj.names backup = backup/
https://pjreddie.com/media/files/darknet19_448.conv.23 Sie können loslegen, indem Sie herunterladen.
Es lernt endlich. Im aktuellen Zustand ./darknet detector train cfg/obj.data cfg/yolo-obj.cfg darknet19_448.conv.23 Es ist in Ordnung, zum ersten Mal zu lernen, aber es kostet viel Zeit und Verzweiflung mit einer CPU. Daher lernen wir hier per GPU mit Google Colaboratory.
Google Colaboratory ist ein Tool, mit dem Sie die GPU kostenlos verwenden können. Es ist sehr benutzerfreundlich, da es im Grunde mit Tools für tiefes Lernen ausgestattet ist. KI-Anfänger sollten es unbedingt benutzen. (Nur wenn Sie keine Informationen verwenden, die nicht offengelegt werden können, weil sie Open Source sind.)
Laden Sie den Darknet-Ordner hoch, an dem Sie gearbeitet haben. Speichern Sie anschließend die mit Google Collaboration verbundene Datei wie folgt und führen Sie die in .ipynb beschriebenen Schritte aus. git clone https://github.com/foifoi1201/yolo.git
Wenn Ihr Beitrag korrekt ist, sollte dies die Modellerstellung abschließen. Der Rest basiert auf den heruntergeladenen .weights ./darknet detect cfg/obj.cfg obj_final.weights data/***.jpg Ich denke, dass es durch Ausführen erkannt werden kann.
Wenn Sie versuchen, innerhalb von 3 Stunden ein Objekterkennungsmodell mit 30 Lehrerdaten zu erstellen, sieht das Ergebnis folgendermaßen aus.
Ich kann es bestätigen. .. ..
Die Objekterkennung mit YOLO ist sehr mühsam zu erstellen, und tatsächlich ist es möglicherweise nicht möglich, alles gut zu machen, wenn Sie dies auf diese Weise tun. Außerdem wird Google Colabatory ständig aktualisiert, sodass es möglich ist, dass dieselbe Erstellungsmethode im Laufe der Zeit nicht funktioniert. (Eigentlich scheint das Update auch dieses Mal durchgeführt worden zu sein, und es hat mehr Zeit als erwartet gedauert, um es zu erstellen. Vielen Dank für den Hinweis ...
Ich hoffe, es wird für dieselben KI-Anfänger wie mich hilfreich sein.