Phone-Gestik erkennen: Künstliche Intelligenz für Alle!

Von Philipp Wintersberger (Gastblogger) Autor Feed 17. January 2013 21:00

Den Anwender Symbole am Touchsreen zeichnen lassen um bestimmte Aktionen auszulösen? Das Handy das von selbst erkennt, ob sein Benutzer gerade im Zug oder doch zu Hause sitzt? Bei der täglichen Jogging-Session automatisch Anrufe unterdrücken? Ein Bowling Spiel, bei dem das Smartphone die Rolle der Kugel übernimmt?

Apps mit derartigen (gern gesehenen) Features haben nicht nur für Developer seinen Reiz, sie wirken ausgereifter und verkaufen sich meist auch besser – nicht nur weil es „cool“ ist, sondern weil ein erweitertes Set an Inputmodalitäten auch dafür sorgt, dass sich Benutzerinteraktionen natürlich anfühlen und der ohnehin schon kleine Screen nicht mit überflüssigen Buttons belastet wird. Schließlich werden die Geräte mit einer Vielzahl an Sensoren ausgeliefert - daher sollte man sie, wenn möglich, auch nutzen!

Viele enthusiastische Entwickler wünschen sich diese Features – wissen jedoch oft nicht wie man derartige Dinge umsetzt. An diese Personen richtet sich meine neue Blog-Reihe. Im ein- bis zweiwöchigen Takt werde ich die dafür nötigen Kenntnisse und Taktiken vorstellen, damit ihr eure Apps mit diesen tollen Dingen austatten könnt, die Kontrolle über eure Applikationen behält und nicht auf fremde Frameworks angewiesen seid - welche natürlich nicht schlecht, aber oft jedoch ein Kompromiss sind (damit diese Dinge gut funktionieren müssen sie auf den jeweiligen Anwendungsfall zugeschnitten sein).

Wenn es darum geht, einen Bowlingkugelwurf mit Hilfe eines Beschleunigungssensors zu implementieren, hat man oft schnell eine Vorstellung, wie derartiges zu bewerkstelligen ist. Man liest einfach die Sensordaten aus und prüft, ob sie einem „Wurf“ entsprechen. Dabei nimmt man bestimmte Sensorwerte für einen Wurf an und schaut, ob sich diese innerhalb dieses definierten Rahmens bewegen. Erst ist die Methode ein paar Zeilen lang, nach ein paar Tests bemerkt man jedoch wie schwierig dies eigentlich ist; Unzählige Spezialfälle werden implementiert und am Ende hat man ein unglaublich langes Stück Programmcode, das mit viel Glück halbwegs gut funktioniert, jedoch für jede andere Verwendung unbrauchbar ist. Dies ist auf jeden Fall die falsche Taktik und mit unglaublich großem Aufwand verbunden. Vor allem reichen kleinste Änderungen in der Bewegung, um eine korrekte Interpretation zunichte zu machen.

Was hat das alles mit künstlicher Intelligenz zu tun?

Es gibt viele Definitionen für Intelligenz, die meisten jedoch haben eines gemeinsam (und auch Intelligenztest mit Tieren zielen meist darauf ab):
Als Intelligenz bezeichnet man die Fähigkeit eines Individuums, sich auf neue Situationen richtig einzustellen, zu lernen und bisher unbekannte Herausforderungen erfolgreich zu meistern.

Künstliche Intelligenz beschäftigt sich vorrangig mit dem Lernen und erfolgreichen Meistern von bisher unbekannten Problemstellungen. Einen Roboter wird man eher als intelligent bezeichnen wenn er leichtfüßig durch unbekanntes Terrain schreitet oder Gesprochenes von einer ihm bisher unbekannten Stimme erkennt – anstatt stümperhaft überall anzulaufen und falsche Antworten auszuspucken.

Im Falles des Bowlingwurfes kann man dieses Konzept für den Beschleunigungssensor praktisch 1:1 umlegen:
Jeder neue Wurf ist eine neue Herausforderung, die es zu erkennen gilt (gültiger Wurf? Guter Wurf?). Als Basis kann man nun ein System entwerfen, welches sowohl von Bowling-Profis als auch Amateuren trainiert wird und danach Würfe erkennen kann. Der große Vorteil an einem derartigen System ist, dass es sich schneller auf andere Bereiche ausdehnen lässt.

Ein Golf-Abschlag? Kein Problem!
Zeichnen eines Kreises auf dem Touchscreen? Kein Problem!
Oder doch ein Quadrat? Auch kein Problem!

Wenn ihr nun Lust auf mehr habt, schaut ab kommender Woche regelmäßig auf CODEFEST.AT vorbei, wo ihr sowohl genaue Theorie als auch Codebeispiele zu diesen Themen finden werdet!

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

Datenschutzhinweis: Sie stimmen durch "Kommentar speichern" der Speicherung Ihrer Angaben durch Microsoft Österreich für die Beantwortung der Anfrage zu. Sie erhalten dadurch keine unerwünschten Werbezusendungen. Ihre Emailadresse wird auf Ihren Wunsch dazu verwendet Sie über neue Kommentare zu informieren.

Microsoft respektiert den Datenschutz. Datenschutz & Cookies

Entwickler Wettbewerbe:

Wettbewerbe

Aktuelle Downloads

Visual Studio Downloads
 
Windows Azure Free Trial
Instagram
CodeFest.at on Facebook

Datenschutz & Cookies · Nutzungsbedingungen · Impressum · Markenzeichen
© 2013 Microsoft. Alle Rechte vorbehalten · BlogEngine.NET 2.7.0.0 · Diese Website wird für Microsoft von atwork gehostet.
powered by atwork