Simon Says
Inspiration
Simon Says ist ein Kinderspiel, bei dem die Spieler das tun, was ihnen „Simon“ befiehlt. Wenn Simon „sagt“, dass etwas getan werden soll, muss die Aktion ausgeführt werden. Stammt der Befehl jedoch nicht von Simon, darf die Aktion nicht ausgeführt werden.
Interessantes Detail: Im Guiness-Buch ist ein Weltrekord eingetragen, bei dem 12 215 Spieler an einem Spiel von Simon Says beteiligt waren. Dieses Spiel fand am 14. Juni 2007 bei den Sommerspielen in Utah statt.
Was passiert
Unser Projekt erstellt eine Deep-Learning-Plattform auf Basis von Simon Says, bei der alle am gleichen globalen Spiel teilnehmen können, während mit DeepLens die richtige Aktion jedes Spielers verifiziert wird.
Erstellt von: Abdul Rahman Abdul Ghani und Michael Bawiec




Vorgehensweise
Wir haben unsere Anwendung mithilfe von zwei Open Source-Projekten entwickelt: Openpose und mxnet Realtime Pose Estimation. Zunächst haben wir ein bereits trainiertes Modell optimiert, damit es auf Basis der Deep Learning-Inferenz-Engine von Intel ausgeführt werden kann. Mit diesem Modell erstellen wir eine Karte mit verschiedenen Körperhaltungen („Pose Map“), in der die Position des Körpers dargestellt wird. Wir haben diese Pose Map verwendet, um ein kleineres Netzwerk für die Umsetzung der Aktion der Spieler zu klassifizieren.
Das globale Spielenetzwerk setzt auf der serverlosen AWS-Architektur auf. Wir beginnen, indem wir im Minutentakt über CloudWatch ein Ereignis auslösen, das eine Reihe von Lambda-Funktionen zur Generierung eines Spiels aktiviert. Nachdem ein neues Spiel generiert wurde, wird es über den IoT-Nachrichtendienst an die einzelnen Geräte übertragen. Mit dieser Nachricht kann das Gerät die erforderlichen Audiodateien, die mit AWS Polly generiert wurden, herunterladen, um das Spiel zu starten. Diese Architektur ist unserer Ansicht nach so skalierfähig, dass sie sehr viele Geräte unterstützen kann.
Herausforderungen
Bei der Entwicklung unseres Projekts waren wir mit verschiedenen Herausforderungen konfrontiert. Das größte Problem war die Konvertierung des Modells, damit es sich für die Inferenz-Engine von Intel eignet. Wir haben begonnen, indem wir mit dem Python-Konvertierungsprogramm ein MXNet-Modell konvertiert haben, stießen jedoch auf mehrere Fehler, die auf ein fehlendes axis-Attribut für die concat-Schicht zurückzuführen waren. Nach der Behebung dieser Fehler trat das nächste Problem auf, das sich in folgender Fehlermeldung äußerte: Test fehlgeschlagen: Dieses Sample akzeptiert nur Netzwerke, die lediglich eine Ausgabe haben. Dies bedeutete, dass wir die endgültige Ausgabeschicht umstrukturieren oder die Ausführung auf der GPU überspringen mussten. KORREKTUR in Version 1.2.2 – AWS Support-Foren
Erfolge, die uns stolz machen
Wir haben oft gedacht, dass das Projekt ein aussichtsloses Unterfangen wäre. Angefangen bei den Schwierigkeiten mit der Modelloptimierung bis hin zur Interpretation der Ergebnisse war es ein steiniger Weg, bis wir endlich eine funktionsfähige Demoversion hatten. Als wir das erste Mal den Live-Projektfeed mit der überlagernden Pose Map sahen, wussten wir endlich, dass wir unser begonnenes Projekt auch zu Ende bringen konnten.
Haftungsausschluss
Dieses Projekt darf nicht für kommerzielle Zwecke verwendet werden, und Sie müssen sich an die Bestimmungen der ursprünglichen Lizenz halten.
Die nächsten Themen
Kurzfristig möchten wir die Erkennung mehrerer Posen ermöglichen, damit eine Gruppe von Spielern am gleichen Gerät spielen kann. Das Modell ist bereits hierfür konfiguriert, wir müssen es jedoch noch im Spiel implementieren. In der Demoversion war es einfacher, da wir nur einen Spieler eingerichtet hatten.
Langfristig arbeiten wir an einer Trainings-/Klassifizierungsschleife, bei der das System den Spieler nach dem Zufallsprinzip auffordert, eine neue Aktion auszuführen. Wir könnten dann mit der generierten Pose unsere Klassifizierungsgewichtungen aktualisieren.
Insgesamt gesehen bietet diese Art der Körperhaltungsanalyse und -klassifizierung zahlreiche Einsatzmöglichkeiten. Das Verfahren könnte beispielsweise bei der Beaufsichtigung von Kindern, der Erkennung von Ladendiebstählen oder in anderen Arten von Spielen, etwa bei Tänzen, genutzt werden. Es ist sogar als Trainingsanwendung beim Sport denkbar.
Erstellt mit
Python
Amazon Web Services
DeepLens
Deep Learning-Inferenz-Engine von Intel
MXNet
Caffe
Deep Learning
AWS Polly
AWS Lambda
IoT
AWS API-Gateway
AWS Athena