[SWIFT] [Maschinelles Lernen] Ich habe die Objekterkennung mit Create ML [Objekterkennung] ausprobiert.

Was ich diesmal umgesetzt habe

ダウンロード.gif

Vorbereitung

Dieses Mal habe ich versucht, die Münze zu Beginn als Gif zu erkennen und zu identifizieren. Was vorzubereiten?

Grobe Arten des maschinellen Lernens

Für maschinelles Lernen ・ Bildklassifizierung ・ Klangklassifizierung ・ Aktionsklassifizierung ・ Objekterkennung Dieses Mal werden wir jedoch die Objekterkennung implementieren, dh Objekte erkennen.

Was ist Objet Detection?

Objekterkennung bezieht sich auf die Erkennung eines Objekts, daher ist es notwendig zu beurteilen, "was auf dem Bild ist". Daher sind "Foto" und "Positionsinformationen" erforderlich. Nehmen Sie Fotos im Voraus auf und speichern Sie sie in Ordnern. (Ordnername = Klassifizierungsname) Dieses Mal möchten wir Münzen erkennen und identifizieren, daher benötigen wir einen Ordner von 500 Yen bis 1 Yen und die Positionsinformationen jedes Bildes. → Klicken Sie hier, um mehr über die Objekterkennung zu erfahren. Training des Objekterkennungsmodells in Create ML

Verfahren

--Daten sammeln. (Nehmen Sie das Foto auf, das Sie erkennen möchten.)

Machen Sie ein Foto (Daten vorbereiten)

Was die Fotos betrifft, habe ich diesmal ungefähr 100 Fotos von Coin vorbereitet. スクリーンショット 2020-09-26 19.10.21.jpg

Foto ・ Fotos aus verschiedenen Winkeln ・ Für jedes der drei Muster in großen, mittleren und kleinen Größen stehen ca. 30 Blatt zur Verfügung. ・ Der Hintergrund ist einheitlich und weiß

Erstellen Sie einen Datensatz (JSON-Datei)

Für die Objekterkennung sind nicht nur Fotos, sondern auch JSON-Dateien erforderlich (da Standortinformationen erforderlich sind). Daher habe ich dieses Mal IBM Cloud Annotations-Konto (kostenlos) verwendet. Erstellt. Wie man es macht ist wie folgt.

· Klicken Sie auf IBM Cloud fortsetzen

・ Klicken Sie auf ein neues Projekt

・ Klicken Sie auf Lokalisierung

・ Geben Sie den Dateinamen ein und geben Sie ihn ein, da Sie das Foto beim Projektstart D & D können.

・ Ziehen Sie zum Objekt (diesmal Münze) und legen Sie es bei ・ Der Markenname kann auf der rechten Seite eingegeben werden.

・ Da der einmal beschriebene Labelname aus der unteren Liste oben links ausgewählt werden kann, ist es effizient, der Münze ein Label hinzuzufügen.

・ Exportieren Sie nach dem Anhängen des Etiketts an alle Fotos aus der Datei, damit es in Create ML verwendet werden kann.

・ Erfolgreich, wenn diese Datei generiert wird

-Überprüfen Sie, ob sich eine JSON-Datei im Ordner befindet

Modell erstellen mit ML erstellen

Sobald der Datensatz erstellt wurde, klicken Sie mit der rechten Maustaste auf Xcode und starten Sie Create ML

Wählen Sie Objekterkennung und D & D den Ordner des zuvor erstellten Datensatzes Es scheint nicht gut zu sein, wenn die Anzahl der Wiederholungen des Lerntrainings (glaube ich) groß ist, aber selbst wenn es extrem klein ist, wird keine Genauigkeit erzielt. Wenn es also süß ist, versuchen Sie es ein wenig anzuheben und anzupassen. (Ich habe diesmal 300, 600, 1000 ausprobiert, aber es hat sich nicht geändert.)

Testen Sie es nach dem Lernen und nehmen Sie das Modell heraus, wenn es kein Problem gibt. (Kann von D & D herausgenommen werden)

Probieren Sie es mit Erkennen von Objekten in Live Capture aus

Laden Sie anschließend RecognizingObjectsInLiveCapture von Apple herunter und öffnen Sie es.

D & D das von Create ML erstellte Modell hier

Der Code liest ursprünglich ein Modell namens Object Detector und ist es ein Croissant oder eine Banane? Weil es etwas zu erkennen und zu identifizieren gibt

guard let modelURL = Bundle.main.url(forResource: "ObjectDetector", withExtension: "mlmodelc")

Zu

guard let modelURL = Bundle.main.url(forResource: "coindetection", withExtension: "mlmodelc")

Implementiert durch Umschreiben in den diesmal generierten Modellnamen

Ist es allgemein erfolgreich? Sie können alles vom Datensatz bis zur Implementierung in ca. 2 Stunden erledigen. Probieren Sie es aus!

Schließlich

Ich habe diesmal ein Beispiel verwendet, aber da es eine große Sache ist, möchte ich mich herausfordern, es in Zukunft mit Swift UI zu schaffen! Darüber hinaus möchte ich mich Herausforderungen stellen, von der Erstellung eines Datensatzes zum maschinellen Lernen bis zur Implementierung. Wenn Sie also interessiert sind, lesen Sie dies bitte auch durch!

Twitter https://twitter.com/oka_yuuji note https://note.com/oka_yuuji

Ich bin auch ein Mitglied der High School Fakultät, aber ich liebe es zu lernen und zu forschen! Wenn Sie eine technische Anfrage oder Recherche haben, kontaktieren Sie uns bitte per DM unten. https://twitter.com/oka_yuuji

Recommended Posts

[Maschinelles Lernen] Ich habe die Objekterkennung mit Create ML [Objekterkennung] ausprobiert.
Ich habe das maschinelle Lernen von Oracle OSS "Tribuo" ausprobiert.
Ich habe mit Studyplus zeitsparendes Management-Lernen versucht.
Ich habe eine App für maschinelles Lernen mit Dash (+ Docker) Teil 3 ~ Übung ~ erstellt
Ich habe DI mit Ruby versucht
Ich habe Spring State Machine ausprobiert
Ich habe UPSERT mit PostgreSQL ausprobiert.
Ich habe BIND mit Docker ausprobiert
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
Ich habe versucht, JOOQ mit Gradle zu verwenden
Ich habe eine morphologische Analyse mit MeCab versucht
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, UDP mit Java zu kommunizieren
Ich habe eine App für maschinelles Lernen mit Dash (+ Docker) Teil 2 ~ Grundlegende Schreibweise für Dash ~ erstellt
Ich habe GraphQL mit Spring Boot ausprobiert
Ich habe versucht, das Java-Lernen zusammenzufassen (1)
Ich habe Flyway mit Spring Boot ausprobiert
Ich habe versucht, Slim mit Scaffold anzupassen
Ich habe versucht, Java mit einer Reihe zu lernen, die Anfänger klar verstehen können
[Nachdem ich Progate gelernt hatte] Ich habe versucht, form_with beim Vergleich mit form_tag zusammenzufassen
Ich habe versucht, Realm mit Swift UI zu verwenden
Ich habe Cassandras Object Mapper für Java ausprobiert
Ich habe versucht, mit Web Assembly zu beginnen
Ich habe versucht, Scalar DL mit Docker zu verwenden
Ich habe versucht, OnlineConverter mit SpringBoot + JODConverter zu verwenden
Ich habe versucht, ein wenig mit BottomNavigationView zu spielen ①
Erstellen Sie eine temporäre Klasse mit new Object () {}
Ich habe versucht, OpenCV mit Java + Tomcat zu verwenden
Ich habe Lazy Initialization mit Spring Boot 2.2.0 ausprobiert
Ich habe versucht, ein Portfolio mit AWS, Docker, CircleCI, Laravel [mit Referenzlink] zu erstellen.
Ich habe versucht, AdoptOpenJDK 11 (11.0.2) mit dem Docker-Image zu überprüfen
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
Ich habe versucht, die Federbeinkonfiguration mit Coggle zu verwalten
Ich habe versucht, Anmeldeinformationen mit JMX zu verwalten
Ich habe auch Web Assembly mit Nim und C ausprobiert
Ich habe versucht, eine LINE-Klon-App zu erstellen
Ich habe Eclipse MicroProfile OpenAPI mit WildFly Swarm ausprobiert
Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen
Ich habe versucht, den Block mit Java zu brechen (1)
Ich habe versucht, mit Gradle auf Heroku zu beginnen
Ich habe versucht, mit Java und Spring eine Funktion / einen Bildschirm für den Administrator einer Einkaufsseite zu erstellen
Ich habe versucht, Text in Ruby mithilfe der Vision API (trainiertes Modell für maschinelles Lernen) zu extrahieren.
[Azure] Ich habe versucht, eine kostenlose Java-App zu erstellen ~ Mit FTP verbinden ~ [Anfänger]