So erstellen Sie einen wahnsinnig guten Bildklassifizierer in weniger als 10 Minuten

In den letzten Jahren war eine der größten Anwendungen des maschinellen Lernens die Bildklassifizierung - die Fähigkeit eines Computers, ein Objekt intelligent zu erkennen. Solche Arbeiten werden bei den größten Technologieunternehmen durchgeführt, und seitdem ist dieser ungerechtfertigte Begriff der Exklusivität entstanden. Wir haben eine Erzählung verfasst, in der man, um sich mit maschinellem Lernen und künstlicher Intelligenz die Hände schmutzig zu machen, eine Art zertifizierbares Genie sein muss oder zumindest ein Ingenieur-Absolvent, nur um einzubrechen. Ich denke, das ist Schwachsinn, also bin ich ' Ich werde Ihnen zeigen, wie Sie in weniger als 10 Minuten einen voll funktionsfähigen Bildklassifizierer erstellen können, der jedes (ja, jedes) Objekt mit wahnsinnig hohen Wahrscheinlichkeiten erkennt. Und ich werde kein einziges Schlagwort verwenden.

Wenn Sie an einem umfassenden Blick auf die Bildklassifizierung interessiert sind, bitte ich Sie, sich mein Video oben anzusehen. Ich beschreibe die Grundlagen der Funktionsauswahl, Trainingssätze, Umgebungseinstellungen und den allgemeinen Überblick. Dieses Tutorial wird etwas mechanischer sein - ich möchte Sie so schnell wie möglich zum Laufen bringen.

Das Wichtigste zuerst: Sie benötigen Python. Es ist eine einfache, effiziente und geradezu schöne Programmiersprache, die in fast jeder Branche verwendet wird. Ich denke auch, dass das Erlernen genauso wichtig ist wie die Microsoft Word-Kenntnisse.

Die Installationsseite ist hier. Holen Sie sich Python 2.7 und klicken Sie sich als Spam durch das Setup. Als nächstes kommt TensorFlow, eine Open-Source-Bibliothek für die Datenflussprogrammierung. Wenn Sie einen Mac verwenden, können Sie das Terminal öffnen und einfach ausführen:

pip install tensorflow

Wenn dies nicht funktioniert hat, lesen Sie die Installationsseite hier. Wählen Sie Ihr Betriebssystem und installieren Sie es gemäß den nativen Pip-Richtlinien. Sie sind am einfachsten zu verfolgen und zu implementieren.

Groß! Jetzt haben wir alle notwendigen Abhängigkeiten. Beginnen wir mit dem Klonen des TensorFlow-Repositorys. Wir verwenden eine spezielle Variante von Google, die einige ziemlich tolle Skripte enthält. Öffnen Sie Ihr Terminal und führen Sie Folgendes aus:

Git-Klon https://github.com/googlecodelabs/tensorflow-for-poets-2 cd tensorflow-for-poets-2

Jetzt können Sie Ihre Bilder auswählen! Sie haben die Wahl - Sie müssen nur sicherstellen, dass sie durch die Kategorien, die Sie klassifizieren möchten, nach Ordnern getrennt sind (Bilder unten). Wenn wir beispielsweise die im Beispiel bereitgestellten Blumenbilder verwenden möchten, können wir Folgendes ausführen (stellen Sie mithilfe der obigen Zeilen sicher, dass Sie sich im richtigen Verzeichnis befinden):

locken http://download.tensorflow.org/example_images/flower_photos.tgz | tar xz -C tf_files

Dadurch werden Bilder von fünf verschiedenen Arten von Blumen in unser Repository heruntergeladen.

ls tf_files / flower_photos

Es sollte alle zusätzlichen Ordner im Verzeichnis flower_photos ausdrucken.

Gänseblümchen / Löwenzahn / Rosen / Sonnenblumen / Tulpe / LICENSE.txt

Sie können beliebige Bilder verwenden. Je mehr desto besser (streben Sie ein paar Tausend an). Trennen Sie sie wie oben beschrieben nach Kategorien und stellen Sie sicher, dass sie sich in einem Ordner namens tf_files befinden. Ich habe ein großartiges Plugin gefunden, das das Herunterladen von Batch-Bildern in Google Chrome ermöglicht - das Auffinden von Trainingsdaten wird zum Kinderspiel. Hier verlinkt.

Ich folgte der gleichen Ordnerstruktur wie oben und erstellte einen Garbage Classifier (dazu später mehr). So sah mein Setup als visuelle Referenz aus:

Achten Sie nur auf garbage_photos. Die anderen Ordner sind für Schritte nach dem Training vorgesehen.In garbage_photos. Alle Ihre Bilder sollten nach Kategorien getrennt sein.Das Glasverzeichnis als Beispiel.

Jetzt sind wir bereit, unser Modell zu trainieren! Der einzige Weg, wie wir einen Computer dazu bringen können, Objekte zu erkennen, besteht darin, dass wir aus allen Bildern lernen, die wir gerade heruntergeladen haben. Zum Glück dauert dies nur ein paar Zeilen Python. Wenn Sie eine detailliertere Erklärung der Wissenschaft und Theorie wünschen, schauen Sie sich mein Video oben an .

IMAGE_SIZE = 224 ARCHITECTURE = "mobilet_0.50 _ $ {IMAGE_SIZE}" python -m scripts.retrain \ --bottleneck_dir = tf_files / Bottlenecks \ --model_dir = tf_files / models / "$ {ARCHITECTURE}" \ --summaries_dir = training_summaries / "$ {ARCHITECTURE}" \ --output_graph = tf_files / retrained_graph.pb \ --output_labels = tf_files / retrained_labels.txt \ --architecture = "$ {ARCHITECTURE}" \ --image_dir = tf_files /

Füllen Sie YOUR_IMAGE_DIRECTORY_HERE mit dem Ordner mit den heruntergeladenen Bildern aus. Der Trainingsschritt dauert zwischen 30 Minuten und einer Stunde. Machen Sie sich keine Sorgen, wenn es einige Zeit dauert - dies hängt stark von den technischen Daten Ihres Computers ab. Sobald Sie fertig sind, haben Sie jedoch einen Bildklassifizierer zum Testen bereit!

Laden Sie ein Bild aus dem Internet herunter oder nehmen Sie eines selbst mit Ihrem Telefon und führen Sie den folgenden Befehl aus:

python -m scripts.label_image \ --graph = tf_files / retrained_graph.pb \ --image = YOUR_PATH_TO_IMAGE_HERE

Ersetzen Sie erneut YOUR_PATH_TO_IMAGE_HERE durch den Dateipfad des gerade heruntergeladenen Bildes. Wenn Sie die Linie laufen lassen, sollten Sie probabilistische Ergebnisse darüber sehen, was das Bild enthält!

Ich habe einen Müllklassifikator gebaut, der sechs verschiedene Arten von Müll erkennt: Pappe, Glas, Papier, Metall, Müll und Plastik. Hier sind einige meiner Beispiele:

python -m scripts.label_image \ --graph = tf_files / retrained_graph.pb \ --image = / Users / Nikhil / Desktop / beerbottle.jpg
Glas mit einer Wahrscheinlichkeit von 0,996. Alles sieht gut aus!
python -m scripts.label_image \ --graph = tf_files / retrained_graph.pb \ --image = / Users / Nikhil / Desktop / package.jpg
Müll mit einer Wahrscheinlichkeit von 0,984.

Herzliche Glückwünsche! Sie haben erfolgreich einen Image-Klassifikator erstellt, und es waren lediglich einige allgemeine Kenntnisse und die Installation einiger Pakete erforderlich. Sie werden feststellen, dass die Wunder der Informatik leicht zugänglich sind - alles, was Sie tun müssen, ist, nach ihnen zu suchen. Es gibt so viele Open-Source-Tools und -Bibliotheken, die für Bastler und Entwickler entwickelt wurden, um kreativ zu werden. Bauen Sie etwas für Ihren Chef oder schließen Sie es an einen Raspberry Pi an und erstellen Sie Ihr eigenes Haussicherungssystem. Egal, wissen Sie einfach, dass jeder in der Lage ist, große Dinge beim maschinellen Lernen zu tun .