<\/HEAD>
Motivation<\/STRONG><\/SPAN><\/P>Amazon hat kürzlich eine Deep Learning-fähige Kamera namens DeepLens (https:\/\/aws.amazon.com\/deeplens\/<\/A>) veröffentlicht. Der DeepLens ermöglicht es Entwicklern, Deep Learning-Modelle zu erstellen, zu trainieren und bereitzustellen, um benutzerdefinierte Computer Vision-Aufgaben durchzuführen. Das Applications Prototype Lab hat einen DeepLens erhalten und begann, seine Fähigkeiten und Grenzen zu erforschen.<\/P><\/P>
Eine der häufigsten Aufgaben in der Computer Vision ist die Objekterkennung. Diese Aufgabe ist etwas komplexer als die Bildklassifikation, da sie die Lokalisierung des Objekts im Bildraum erfordert. In diesem Sommer haben wir die Objekterkennung untersucht und wie wir sie erweitern können, um unseren Anforderungen gerecht zu werden. Ein Anwendungsfall könnte beispielsweise darin bestehen, verschiedene Tierarten in einem Wildschutzgebiet zu erkennen und zu identifizieren. Dadurch können wir relevante standortbezogene Informationen sammeln und diese Informationen nutzen, um spezifische Aktionen durchzuführen.<\/P>
<\/P>
Die Erkennung von Tierarten wurde mit Tensorflow27s Object Detection API getestet, die den Aufbau eines Modells ermöglichte, das einfach auf dem DeepLens bereitgestellt werden konnte. Wir mussten jedoch unsere Erkennungsdemo verkleinern, um sie auf dem ESRI-Campus leichter testen zu können. Dafür haben wir uns die Gesichtserkennung angesehen.<\/P>
<\/P>
Der DeepLens wird mit Beispielprojekten geliefert, darunter solche zur Objekt- und Gesichtserkennung. Ffcr experimentelle Zwecke haben wir beschlossen zu prüfen, ob wir das Beispiel zur Gesichtserkennung erweitern können, um verschiedene Personen erkennen und unterscheiden zu kf6nnen.<\/P>
<\/P>
Dienste und Frameworks<\/STRONG><\/SPAN><\/H1>Im Laufe des Sommers haben wir eine Demo zur Gesichtserkennung unter Verwendung verschiedener Amazon- und ESRI-Dienste erstellt. Diese Dienste umfassen:<\/P>Die AWS DeepLens Console (zur Erleichterung der Bereitstellung der Projekte auf dem DeepLens)<\/LI>Amazon Lambda (zur Entwicklung der Python Lambda-Funktionen, die die Inferenzmodelle ausführen)<\/LI>Amazon S3 (zur Speicherung der trainierten Datenbank sowie der für die Inferenz erforderlichen Modelle)<\/LI>Die AWS IoT Console (zur Erleichterung der Kommunikation zum und vom DeepLens)<\/LI>Ein Feature-Service und eine Webkarte gehostet auf ArcGIS (zur Speicherung der Daten aus den Erkennungen des DeepLens)<\/LI>Operations Dashboard (jeweils eines für jeden DeepLens, zur Anzeige der relevanten Informationen)<\/LI><\/UL><\/P>Für die Durchführung der Inferenz in diesem Experiment verwendeten wir folgende Machine Learning Frameworks/Toolkits:<\/P>MxNet (das standardmäßige MxNet-Modell, trainiert für Gesichtserkennung und optimiert für den DeepLens)<\/LI>Dlib (ein Toolkit mit Funktionalität zur Erkennung von Gesichtsmerkmalen, das bei der Gesichtserkennung hilft)<\/LI><\/UL><\/P>Ablauf<\/STRONG><\/SPAN><\/H1>Die MxNet- und Dlib-Modelle werden zusammen mit einer Inferenz-Lambda-Funktion auf dem DeepLens bereitgestellt. Der DeepLens lädt die Modelle und beginnt damit, Frames von seinem Videoeingang aufzunehmen. Diese Frames werden durch die Gesichtsdetektions- und Erkennungsmodelle geleitet, um eine Übereinstimmung aus der in einem Amazon S3-Bucket gespeicherten Datenbank zu finden. Wenn das Gesicht erkannt wird, wird der Feature-Service mit relevanten Informationen wie Name, Erkennungszeitpunkt, DeepLens-ID und DeepLens-Standort aktualisiert, und der Erkennungsprozess wird fortgesetzt.<\/P><\/P> Wenn keine Übereinstimmung in der Datenbank gefunden wird oder wenn das Erkennungsmodell unsicher ist, wird dennoch eine Übereinstimmung mit 22Unidentified22 als Name zurückgegeben. In diesem Fall wird der DeepLens zum Training ausgelöst. Hierfür läuft eine lokale Anwendung auf demselben Gerät wie das Dashboard. Beim Auftreten eines nicht identifizierten Objekts fordert die Anwendung die Person auf, mit dem Training zu beginnen. Wird das Training ausgelöst, gibt der DeepLens Audioanweisungen aus und erfasst die relevanten Gesichtsmerkmalsinformationen zur Selbstschulung. Die Datenbank im S3-Bucket wird schließlich mit diesen Daten aktualisiert, und der Erkennungsprozess wird fortgesetzt.<\/P>
<\/P>Ergebnisse<\/STRONG><\/SPAN><\/P>Das Gesichtserkennungsmodell liefert ein Ergebnis zurück, wenn seine Inferenz eine Genauigkeit von mindestens 60 % erreicht. Das Modell konnte in etwa 80 % der Tests das korrekte Ergebnis liefern, egal ob identifiziert oder nicht identifiziert. Es gab einige Fälle von falsch positiven und falsch negativen Ergebnissen, aber diese wurden durch Verschärfung der Schwellenwerte und Rückgabe nur konsistenter Erkennungen (über mehrere Frames) deutlich reduziert. Die Genauigkeit der DeepLens-Erkennungen kann durch weitere Anpassungen der Modellparameter und Schwellenwerte erhöht werden.<\/P><\/P>Das Modell wurde ursprünglich auf einer Datenbank trainiert und getestet, die Gesichtsmerkmal-Daten für vier Personen enthielt. Seitdem wurde die Datenbank auf zehn Personen erweitert. Dies führte zu einer Verringerung von falsch positiven Ergebnissen.Das Modell ist wahrscheinlicher genau, wenn mehr Personen trainiert und in der Datenbank gespeichert sind.<\/SPAN><\/P><\/P>Objekt- oder Tierartenerkennung kann auf dem DeepLens implementiert werden, wenn wir ein Modell haben, das auf ausreichend Daten trainiert wurde (bezogen auf das/die Objekt(e), das/die wir erkennen möchten). Diese Daten sollten sowohl Positive (Bilder mit dem zu erkennenden Objekt) als auch Negative (Bilder ohne das Objekt) für beste Genauigkeit enthalten.<\/SPAN> Sobald wir die Modelle bereit haben, ist der Prozess zum Ausführen auf dem DeepLens sehr ähnlich demjenigen zur Ausführung der Gesichtserkennungsdemo.<\/P><\/P>Einschränkungen<\/STRONG><\/SPAN><\/H1>Derzeit unterstützt der DeepLens nur Lambda-Funktionen, die in Python 2.7 geschrieben sind, aber Amazon scheint daran zu arbeiten, Unterstützung für Python 3.x aufzubauen.<\/P><\/P>Der Modelloptimierer für den DeepLens unterstützt nur die Optimierung bestimmter MxNet-, Tensorflow- und Caffe-Modelle für die integrierte GPU. Andere Frameworks und Modelle können weiterhin auf dem DeepLens verwendet werden, aber die Inferenzgeschwindigkeit wird drastisch reduziert.<\/P><\/P>Zukünftige Arbeit<\/STRONG><\/SPAN><\/H1>Wir haben entdeckt, dass der DeepLens über ein einfaches Mikrofon verfügt. Obwohl der DeepLens hauptsächlich für Computer Vision-Aufgaben konzipiert ist, wäre es interessant, Audioanalyse-Tests durchzuführen und diese parallel zu anderen Computer Vision-Aufgaben laufen zu lassen – zum Beispiel um zu wissen, wann eine Tür geöffnet oder geschlossen wurde.<\/P><\/BODY><\/HTML>