Python-Code zum Trainieren und Testen mit Custom Vision of Cognitive Service

Annahme

--Erstellen Sie in Azure eine Cognitive Service Custom Vision Service-Ressource und erstellen Sie ein Projekt

Lernbilder hochladen und Lernen ausführen

train.py


import os, glob, time
from PIL import Image

from azure.cognitiveservices.vision.customvision.training import CustomVisionTrainingClient
from azure.cognitiveservices.vision.customvision.training.models import ImageFileCreateEntry

#Stellen Sie die folgenden Informationen in den Umgebungsvariablen im Voraus ein
# export CUSTOMVISION_ENDPOINT=<your API endpoint>
# export CUSTOMVISION_TRAINING_KEY=<your training key>
# export CUSTOMVISION_PROJECT_ID=<your project id>

project_id = os.environ['CUSTOMVISION_PROJECT_ID']

trainer = CustomVisionTrainingClient(os.environ['CUSTOMVISION_TRAINING_KEY'], endpoint=os.environ['CUSTOMVISION_ENDPOINT'])

#Erstellen Sie eine Liste mit Tags
tag_list = []
tag_list.append(trainer.create_tag(project_id, "tagA"))
tag_list.append(trainer.create_tag(project_id, "tagB"))
tag_list.append(trainer.create_tag(project_id, "tagC"))

#Geben Sie den Pfad des Bildes an, das dem Tag entspricht
path_list = []
path_list.append('train-images/train/tagA/*.JPG')
path_list.append('train-images/train/tagB/*.JPG')
path_list.append('train-images/train/tagC/*.JPG')

#Erstellen Sie eine Liste der hochzuladenden Bilder
image_list = []

for i, tag in enumerate(tag_list):
    for file_path in glob.glob(path_list[i]):
        with open(file_path, "rb") as image_contents:
            image_list.append(ImageFileCreateEntry(name=os.path.basename(file_path), contents=image_contents.read(), tag_ids=[tag.id]))

#Laden Sie bis zu 64 Elemente mit maximaler Größe hoch
for i in range(0, len(image_list), 64):
    print('uploading', i, '-', i+64, '/', len(image_list))
    upload_result = trainer.create_images_from_files(project_id, images=image_list[i:i+64])

    if not upload_result.is_batch_successful:
        print("Image batch upload failed.")
        for image in upload_result.images:
            print("Image status: ", image.status)
        exit(-1)

#Durchführung des Trainings
print ("Training...")
iteration = trainer.train_project(project_id)
while (iteration.status != "Completed"):
    iteration = trainer.get_iteration(project_id, iteration.id)
    print ("Training status: " + iteration.status)
    time.sleep(5)

Testen Sie das erstellte Modell mit einem Testbild

quickTest.py


import os, glob
from PIL import Image

from azure.cognitiveservices.vision.customvision.training import CustomVisionTrainingClient
from azure.cognitiveservices.vision.customvision.training.models import ImageFileCreateEntry

def probability(prediction):
   return prediction.probability

#Stellen Sie die folgenden Informationen in den Umgebungsvariablen im Voraus ein
# export CUSTOMVISION_ENDPOINT=<your API endpoint>
# export CUSTOMVISION_TRAINING_KEY=<your training key>
# export CUSTOMVISION_PROJECT_ID=<your project id>

project_id = os.environ['CUSTOMVISION_PROJECT_ID']

trainer = CustomVisionTrainingClient(os.environ['CUSTOMVISION_TRAINING_KEY'], endpoint=os.environ['CUSTOMVISION_ENDPOINT'])

#Geben Sie die zu testende Iteration an
iterations = trainer.get_iterations(project_id)
target_iteration = iterations[0]

print('target iteration:', target_iteration.name)

#Geben Sie die Datei an, die im Test verwendet werden soll
files = glob.glob('train-images/test/**/*.JPG', recursive=True)

for i, file in enumerate(files):
    image = open(file, 'rb').read()
    result = trainer.quick_test_image(project_id, image, iteration_id=target_iteration.id)

    max_prediction = max(result.predictions, key=probability)

    print(file, max_prediction.tag_name, max_prediction.probability)

Ausgabebild

target iteration: Iteration 1
train-images/test/tagA/IMG_001.JPG tagA 0.9999913
train-images/test/tagA/IMG_002.JPG tagA 0.9999975
train-images/test/tagB/IMG_003.JPG tagB 0.9999996
...

Beziehung

Bilder für maschinelles Lernen mit Python-Qiita verstärken

Recommended Posts

Python-Code zum Trainieren und Testen mit Custom Vision of Cognitive Service
[Azure] Klicken Sie mit Python auf Custom Vision Service
Liste des zu verschiebenden und zu merkenden Python-Codes
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Führen Sie Jupyter mit der REST-API aus, um Python-Code zu extrahieren und zu speichern
So erstellen Sie eine Python- und Jupyter-Ausführungsumgebung mit VSCode
Installation von Visual Studio Code und Installation von Python
Fraktal zum Erstellen und Spielen mit Python
Wie man einen Taschentest mit Python macht
E2E-Test zur Auswahl des Auswahlfelds mit CasperJS, Nightmare und Python + WebDriver + PhantomJS
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Schritte zum Massen-Download von Fotos des EGAO-Schulfotoservices mit Python-Basis
Kratzen Sie das Essen mit Python und geben Sie es an CSV aus
MessagePack-Versuchen Sie, Java und Python mit RPC zu verbinden
Skript zum Twittern mit Vielfachen von 3 und Zahlen mit 3 !!
So legen Sie Attribute mit Mock of Python fest
Verwendung von OAuth und API für Dienstkonten mit Google API Client für Python
TRIE-Baumimplementierung mit Python und LOUDS
Links und Memos von Python-Zeichencodezeichenfolgen
(Tagebuch 1) Erstellen, Durchsuchen und Registrieren von Daten in der SQL-Datenbank des Microsoft Azure-Dienstes mit Python
Konvertieren Sie den Zeichencode der Datei mit Python3
Statische Analyse von Python-Code mit GitLab CI
Fortsetzung der Multi-Plattform-Entwicklung mit Electron und Python
[Blender x Python] Denken Sie an Code mit Symbolen
Beispiel für das Lesen und Schreiben von CSV mit Python
Extrahieren Sie Bilder und Tabellen mit Python aus PDF, um die Berichtslast zu verringern
Ich habe versucht, das Artikel-Update des Livedoor-Blogs mit Python und Selen zu automatisieren.
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
Die Wand beim Ändern des Django-Dienstes von Python 2.7 auf Python 3-Serie
Prozedur zum Laden von MNIST mit Python und zur Ausgabe an png
Python Ver. Einführung in WebPay mit ein wenig Code
Ich möchte die Optimierung mit Python und CPlex behandeln
Ändern Sie die IP-Einstellungen mit Python in ACL von conoha
Laden Sie mp4 einfach teilweise mit Python und youtube-dl herunter!
Probieren Sie die DB-Operation mit Python aus und visualisieren Sie sie mit d3
[Kapitel 5] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
Ein schneller Vergleich der Testbibliotheken von Python und node.js.
[Kapitel 3] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Kapitel 2] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Schreiben Sie Code in UnitTest, eine Python-Webanwendung
Vergleich von CoffeeScript mit JavaScript-, Python- und Ruby-Grammatik
Versionsverwaltung von Node, Ruby und Python mit anyenv
[Kapitel 4] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Primzahlbeurteilung mit Python
Mit Codetest stärken ⑦
Mit Codetest stärken ⑨
Schreiben Sie Python2-Code in Python3 um (2to3)
Mit Codetest stärken ⑤
Mit Codetest stärken ④
Primzahlbeurteilung mit Python
Mit Codetest stärken ②
Mit Codetest stärken ①
Mit Codetest stärken ⑧
Mit Codetest stärken ⑨
Analysieren von Java-Quellcode mit AST (Abstract Syntax Tree) mithilfe von ANTLR und Python
Geben Sie die Bilddaten mit Flask of Python zurück und zeichnen Sie sie in das Canvas-Element von HTML
Lassen Sie uns den Code des in Python [VS Code] geschriebenen automatischen E2E-Tests statisch überprüfen und formatieren.
AtCoder JSC2019 Qual B Gelöst von Ruby und Python