Kennen Sie THE IDOLM @ STER SHINY COLORS?
Wenn Sie es nicht wissen, spielen Sie einfach Shanimas. Die Community und die Karten sind großartig. Sie können das Wiedergabevideo auch auf Youtube ansehen. Bitte schauen Sie es sich trotzdem an.
Übrigens, wenn Sie mit Originaldaten trainieren, möchten Sie dies mit Ihrem Lieblingsinhalt tun, also eine Aufzeichnung des Versuchs der Bilderkennung mit Shanimas-Zeichen.
Ich bin mir nicht sicher, ob die Bedingungen korrekt sind.
PC lernen
Da einige Arbeiten auf dem Mac ausgeführt wurden, wurden einige Screenshots auf dem Mac aufgenommen.
Da die gesamte verwendete Software von Python erstellt wird, kann sie unabhängig vom Betriebssystem verwendet werden.
Ich möchte, dass du Darknet irgendwie vorstellst. Die spezifische Installationsmethode wird hier nicht erläutert.
Wenn Sie das übliche Bild erhalten, können Sie loslegen.
Nachdem Sie bestätigt haben, dass es funktioniert, können Sie loslegen!
Um das Bild beurteilen zu können, muss das Bild zuerst vorbereitet werden.
Da es sehr schwierig ist, einen nach dem anderen herunterzuladen, verwenden wir dieses Mal ein Tool namens icrawler. Dieses Tool lädt automatisch Bildsuchergebnisse herunter, sodass Sie Bilder einfach vorbereiten können.
Weil Python enthalten sein sollte, wenn Darknet installiert ist
pip install icrawler
Kann mit installiert werden.
Schreiben Sie Code, um Bilder zu sammeln.
So sammeln Sie Shanimas-Idole: Ich hatte den Eindruck, dass es nur wenige stehende Bilder gab, daher könnte es eine gute Idee sein, "Character Name Community" usw. hinzuzufügen.
from icrawler.builtin import GoogleImageCrawler
google_crawler = GoogleImageCrawler(
feeder_threads = 1,
parser_threads = 2,
downloader_threads = 4,
storage = {'root_dir': 'shiny'}
)
filters = dict(
size = 'large'
)
words = ["Idol Master Shiny Colors","Shanimas","Mano Sakuragi","Akari Kazeno","Tour Hachinomiya",
"Tsukioka Koibane","Mami Tanaka","Yuka Mitsumine","Sakuya Shirase", "Kiriko Yuya","Jinka Osaki","Kana Osaki","Chiyuki Kuwayama",
"Kaho Komiya","Juri Saijo","Rinyo Morino","Chiyoko Sonoda","Arisugawa Natsuha","Asahi Serizawa","Ai Izumi", "Yuko Mayuyu",
"L’Antica","illumination STARS","ALSTROEMERIA Shanimas","Straylight","Höhepunkt Mädchen nach der Schule"]
max_num = 100 #Die Anzahl der Bildersammlungen 100 ist das Limit in Google
#Toru Asakura", "Hinana Ichikawa","Enka Higuchi","Fukumaru Koito", "Noctil Shanimas" #Kommentar aus, da Noctchill am Tag nach der Bildaufnahme angekündigt wurde
for i in range(len(words)):
google_crawler.crawl(keyword=words[i], filters=filters, max_num=max_num, file_idx_offset=i*max_num)
Speichern Sie es als Python-Datei und führen Sie es aus. Anschließend wird der Ordner / shiny erstellt und das erfasste Bild gespeichert.
Die diesmal heruntergeladene Datei enthält zusätzlich zur Erweiterung jpg png und gif.
Wenn dies unverändert bleibt, wird das Lernen behindert, sodass diese Dateien gelöscht werden. Es gibt eine Problemumgehung zum Konvertieren der Erweiterung, die jedoch problematisch ist. Daher habe ich sie durch Löschen behoben. Es wird Löcher in den Seriennummern geben, aber es ist mir egal, weil es keine Wirkung gibt.
Wir haben dieses Mal auch Shanimas-Kartenillustrationen verwendet, um zu lernen. Ich werde nicht erklären, wie man es herunterlädt, aber es wird leicht zu finden sein.
Wenn Multi-Byte-Zeichen gemischt werden, ist dies ebenfalls problematisch. Konvertieren Sie sie daher entsprechend. Einfache Möglichkeit, eine große Anzahl von Dateien mit Seriennummern umzubenennen (Standard-Windows-Funktion)
Wenn das Bild fertig ist, handelt es sich schließlich um eine Anmerkung. Es ist sehr schwierig, 2700 Bilder mit Anmerkungen zu versehen (tatsächlich sind es ungefähr 2500, da einige von ihnen gelöscht wurden).
Versuchen Sie nicht, alles auf einmal zu tun, sondern teilen Sie es in mehrere Tage auf.
Dieses Mal haben wir labelimg zum Kommentieren verwendet.
git clone https://github.com/tzutalin/labelImg.git
sudo apt install pyqt5-dev-tools
cd labelImg
make qt5py3
python3 labelimg.py
Kann mit ausgeführt werden.
Verschieben Sie die vorbereitete Bilddatei einmal in den Ordner labelimg.
Ändern Sie außerdem predefined_class.txt in der Klasse labelimg / data. Auf diese Weise wird der Anfangswert der Klasse festgelegt, was die Annotation etwas erleichtert.
Geben Sie die Namen von 24 Personen ein, die durch Zeilenumbrüche getrennt sind, und speichern Sie sie.
Sakuragi Mano
Kazano Hiori
Hachimiya Meguru
Tanaka Mamimi
Yukoku Kiriko
Tsukioka Kogane
Mitsumine Yuika
Shirase Sakuya
Morino Rinze
Sonoda Chiyoko
Komiya Kaho
Saijo Juri
Arisugawa Natsuha
Osaki Amana
Osaki Tenka
Kuwayama Chiyuki
Serizawa Asahi
Mayuzumi Fuyuko
Izumi Mei
Ichikawa Hinana
Asakura Toru
Higuchi Madoka
Fukumaru Koito
Nanakusa Hazuki
Öffnen Sie den Bildordner mit Open Dir </ b> und geben Sie das Speicherziel mit Save Dir </ b> an.
Geben Sie diesmal denselben Ordner an. Wählen Sie dann PscalVOC unter Speichern und wechseln Sie zu YOLO </ b>. Wenn Sie es nicht ändern, werden Sie weinen sehen, also seien Sie vorsichtig!
Kommentieren Sie, wann ein Bild angezeigt wird. Drücken Sie die Taste "W", um den Bereichsspezifikationsmodus aufzurufen. Wählen Sie daher den Bereich der Leerlauffläche aus. Der Bildschirm zur Auswahl des Klassennamens wird angezeigt. Wählen Sie das richtige Idol aus und klicken Sie auf OK.
Dies wird für immer wiederholt.
Wenn Sie "Ansicht-> Automatischer Speichermodus" aktivieren, wird es automatisch gespeichert. Dann kann der größte Teil der Arbeit nur durch Tastatureingabe erledigt werden.
"W" → Bereich angeben → Anfangsbuchstaben des Leerlaufnamens eingeben → Mit den Pfeiltasten auswählen → Eingabe → Mit "D" zum nächsten Bild wechseln
Kann man sagen.
Da mehr als 2000 Anmerkungen ausgeführt werden, stürzt die Software manchmal ab. Zu diesem Zeitpunkt ist möglicherweise die Datei "classes.txt" im Bildordner beschädigt. Wenn Sie es während der Arbeit mit einem Notizblock öffnen, können Sie es sofort wiederherstellen, auch wenn es beschädigt ist.
Wenn Sie aufgrund eines Tippfehlers eine neue Klasse erstellen, können Sie diese auf die gleiche Weise korrigieren. Löschen Sie jedoch unbedingt die in der neuen Klasse angegebene Klasse.
Darüber hinaus werden Bilder, die nicht beschriftet werden können, aufgrund der bequemen Bildersammlung aufgenommen. Sie können das Bild so wie es ist überspringen.
Stellen Sie sicher, dass das Bild und die Textdatei erstellt wurden. ## DatenaufteilungTeilen Sie die Daten im Ordner in Lehrerdaten und Lerndaten.
das ist How to train YOLOv2 to detect custom objects Wir werden einige der oben genannten Programme ändern, um die Daten automatisch zu trennen.
import glob, os
# Current directory
current_dir = os.path.dirname(os.path.abspath(__file__))
# Directory where the data will reside, relative to 'darknet.exe'
path_data = 'data/obj/'
# Percentage of images to be used for the test set
percentage_test = 10
# Create and/or truncate train.txt and test.txt
file_train = open('train.txt', 'w')
file_test = open('test.txt', 'w')
# Populate train.txt and test.txt
counter = 1
index_test = round(100 / percentage_test)
texts = glob.glob(os.path.basename(os.path.join(current_dir, "*.txt")))
for pathAndFilename in glob.iglob(os.path.join(current_dir, "*.jpg ")):
title, ext = os.path.splitext(os.path.basename(pathAndFilename))
if (title + ".txt") in texts:
if counter == index_test:
counter = 1
file_test.write(path_data + title + '.jpg' + "\n")
else:
file_train.write(path_data + title + '.jpg' + "\n")
counter = counter + 1
Geben Sie ihm einen geeigneten Dateinamen, speichern Sie ihn im selben Ordner wie das Bild und führen Sie ihn aus. Dadurch werden nur die Bilder mit einer Textdatei zur Datei train.txt oder test.txt hinzugefügt. Da das Verhältnis der Lehrerdaten durch Prozentsatz_Test = 10 bestimmt wird, ändern Sie es entsprechend.
Verschieben Sie den Ordner, der diese enthält, nach darknet / data / </ b> (damit es zu darknet / data / shiny wird).
Bereiten Sie die zum Lernen erforderlichen Dateien vor.
Verwenden Sie diese, da es eine offizielle vorgefertigte Gewichtsdatei gibt.
wget https://pjreddie.com/media/files/darknet53.conv.74
Sie können es unter herunterladen.
Erstellen Sie eine Datei.
Erstellen Sie eine .data-Datei.
classes= 24
train = data/shiny/train.txt
valid = data/shiny/test.txt
names = cfg/obj_shiny.names
backup = backup/
Nennen Sie es obj_shiny.data </ b> und speichern Sie es in cfg / Erstellen Sie gleichzeitig einen Sicherungsordner unter darknet.
Erstellen Sie eine obj_shiny.names </ b> -Datei, sodass sie zu cfg / obj_shiny.names wird. Der Inhalt ist der gleiche wie in classes.txt, daher können Sie classes.txt unter einem neuen Namen speichern.
Kopieren Sie cfg / yolov3-voc.cfg und es gibt 3 Stellen
Wenn die Änderung abgeschlossen ist, speichern Sie sie als cfg / yolov3_shiny.cfg </ b>.
Ändern Sie die Klassen und Filter in diesem Teil.
[convolutional]
size=1
stride=1
pad=1
filters=87
activation=linear
[yolo]
mask = 6,7,8
anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
classes=24
num=9
jitter=.3
ignore_thresh = .5
truth_thresh = 1
random=1
Wenn Sie ernsthaft trainieren möchten, finden Sie dies im ersten [Netto] Teil.
Ändern.
Abhängig von der Leistung der GPU kann ein Speicherfehler auftreten. Reduzieren Sie daher den Stapel oder erhöhen Sie die Unterteilungen.
darknet.exe detector train cfg/obj_shiny.data cfg/yolov3_shiny.cfg darknet53.conv.74
Das Training beginnt mit der Ausführung. Wenn das Diagramm nicht angezeigt wird, besteht eine hohe Wahrscheinlichkeit, dass ein Fehler aufgetreten ist. Überprüfen Sie es daher.
Wenn das Lernen beendet ist
darknet.exe detector test cfg/obj_shiny.data cfg/yolov3_shiny.cfg backup/yolov3-obj_last.weights
Sie können mit überprüfen.
Natürlich können die Abbildungen der trainierten Karten identifiziert werden. Toru Asakura konnte nur etwa 10 Blätter vorbereiten, aber er erkannte es, wenn es sich um ein stehendes Bild handelte. Asahi Serizawa, eine neue Illustration, die nicht trainiert worden war, wurde erkannt und diskriminiert. Ich konnte das Profil nicht erkennen, aber ich kann sagen, dass ich lernen konnte.Zusätzlich wurden alle Shanimas-Illustrationskarten für die Bilder verwendet, die dieses Mal zum Lernen verwendet wurden. Daher wird das Bild wie das erste, das zum Lernen verwendet wird, natürlich erkannt. Es kann gesagt werden, dass experimentellere Bilder hätten erstellt werden müssen, um zu bestätigen, dass sie wirklich erkannt wurden.
How to train YOLOv2 to detect custom objects
Ist Ihre Bestellung YOLO! ?? (Bis zum Erlernen und Ausführen von YOLO unter Windows 10)
Ist Ihre Bestellung YOLO v3! ?? - Ausführen von YOLO v3 unter Windows-
Referenzartikel im icrawer-Teil Einfache Erfassung von Bilddaten mit dem Python-Bibliotheks-Icrawler
Recommended Posts