Mit Amazon Rekognition Objekte auf Fotos erkennen

Seit November letzten Jahres bietet Amazon mit Rekognition einen Service an, welcher Objekte auf Bildern und Merkmale innerhalb von Gesichtern erkennen und benennen kann. Es gibt einen Weg, wie sich dieser Dienst auch direkt von einem iOS-Gerät ansprechen läßt. Vorausgesetzt man hat Pythonista installiert. Für die Nutzung der AWS-Dienste von Python aus wird das boto3 SDK genutzen. Für die Installation in Pythonista wird pip benötigt, welches in abgespeckter Form mit der StaSh-Shell mitkommt. Die Installation innerhalb von Pythonista ist zum Glück mit einem Einzeiler zu bewerkstelligen.

Danach öffnet sich nach der Ausführung von launch_stash.py, die StaSh-Shell und man kann mit pip install boto3 die nötigen Pakete installieren. Vor der Nutzung sollte Pythonsista einmal neu gestartet werden. Sollte man auf Fehler bei der Installation laufen, kann dies damit zu tun haben, dass pip vor kurzem komplett auf https umgestellt hat. Hier ist pip.py ggf. noch nicht auf dem neusten Stand und man muss dies selber nachholen.

Das Script für die Bilderkennung ist denkbar einfach: Ein Bild wird über das iOS-Clipboard in einen geeigneten S3-Bucket abgelegt und Rekognistion holt sich dieses Bild und macht darauf die entsprechende Objekterkennung.
Die Eigentliche Arbeit wird von der AWS Rekognition API gemacht. Der Funktionsaufruf detect_labels() mit dem Objektnamen des Bildes liefert, eine maximale Anzahl Labels für ein bestimmtes Konfidenzniveau zurück.
Mit Hilfe von Apples Workflow-App lässt sich dieser Prozess auch schön automatisieren und über die Oberfläche zugänglich machen. Dazu baut man sich aus einem Photo-Selektor und weiteren Actions (siehe Abbildung 4) einen einfachen Workflow zusammen, welcher das Skript ausführt und das Ergebnis der Objekt-Detektion ausgibt.
Das Ergebnis der Bildanalyse inkl. dem Eingabebild findet sich anbei.
 
Auf Grundlage von boto3 lassen sich in Pythonista auf iOS noch weitere, lustige Dinge tun, welche ich in einer der nächsten Blogeinträge beschreiben werde. Viel Spaß beim Experimentieren.

Schreibe einen Kommentar


(required)

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.