mmbuw / shakecast Goto Github PK
View Code? Open in Web Editor NEWShakeCast: handshake detection for setup-free exchange of contact data
Home Page: https://dl.acm.org/citation.cfm?id=3122131
License: GNU General Public License v3.0
ShakeCast: handshake detection for setup-free exchange of contact data
Home Page: https://dl.acm.org/citation.cfm?id=3122131
License: GNU General Public License v3.0
As discussed with Michael and Tim G. from Webis today, the text task is collecting a large database of two-sided handshakes, which can be used for training a machine learning classifier.
In order to simplify the data acquisition, commit 1bb727d is now able to store handshakes together with their start/end labelling automatically and to upload them to a FTP storage. The storage is accessible using http://mmlabbuw.bplaced.net/ . The username is mmlabbuw and the password the common one used within the mobile media lab (also for Wifi, etc.).
Wenn das Display der Smartwatch nach einiger Zeit ausgeht, fällt die Übertragungsframerate der Accelerometerdaten von 100 auf 4, was es unmöglich macht, Händeschütteln ordentlich zu erkennen. Auch durch die Verwendung von Wake Locks tritt keine Änderung ein.
Dies scheint ein bekanntes Problem zu sein: http://stackoverflow.com/questions/9982433/android-accelerometer-not-working-when-screen-is-turned-off
Allerdings scheinen nur bestimmte Geräte davon betroffen zu sein; allerdings leider auch unsere Uhr.
Die einzige Lösung ist, während der Übertragung ein FULL_WAKE_LOCK zu sichern, was allerdings zur Folge hat, dass auch der Bildschirm die ganze Zeit aktiviert bleibt, was sicherlich nicht gut für die Batterie ist.
Es gilt, eine passende Metrik zu finden, welche aus dem Handshake einen "Fingerabdruck" berechnet. Wenn die Fingerabdrücke zweier Uhren matchen, wollen wir davon ausgehen, dass genau diese beiden Personen die Hände geschüttelt haben.
Folgende Ansätze haben sich bis jetzt als nicht hilfreich erwiesen:
Vielleicht dienen solche Metriken nur dazu, nicht passende Handshakes abzulehnen, aber nicht, um gleiche Handshakes zu bestätigen.
I have opened a new branch develop, in which the latest commit (0421ea8) also stores the internal acceleration of the mobile phone to the file. The next task therefore is to record some handshakes with the internal acceleration activated.
A script for gnuplot to visualize the file output may look as follows:
gnuplot -e "set term wxt 0 title '$1 x-axis';
plot '$1' using 1 with lines title 'x-watch' lt rgb '#ff0000', '$1' using 4 with lines title 'x-internal' lt rgb '#ff00ff';
set term wxt 1 title '$1 y-axis';
plot '$1' using 2 with lines title 'y' lt rgb '#00ff00', '$1' using 5 with lines title 'y-internal' lt rgb '#006600';
set term wxt 2 title '$1 z-axis';
plot '$1' using 3 with lines title 'z' lt rgb '#0000ff', '$1' using 6 with lines title 'z-internal' lt rgb '#33ccff';
pause -1"
Ich bin heute bei der Recherche auf verwandte Arbeiten gestoßen, die so ziemlich genau das machen, was wir auch vorhaben:
Das erste Paper (http://www2.tkn.tu-berlin.de/publications/papers/smc10.pdf) beschreibt ein System, welches Handshakes zunächst mit einfachen Algorithmen auf dem Wearable selbst erkennt und bei Empfangen von anderen Handshakes dann abgleicht, ob diese miteinander zusammenpassen. Im passenden Falle werden Kontaktdaten ausgetauscht. Interessant in dem Paper sind die Ansätze, die Erkennung auf der Uhr nur zu starten, wenn das Smartphone auch Bluetoothgeräte in der Umgebung erkennt und ansonsten zu schlafen.
Die zweite Veröffentlichung ist eine Masterarbeit (http://www.es.ewi.tudelft.nl/msc-theses/2015-Ferouge.pdf) und beschäftigt sich ganz konkret mit dem Entwurf und der Realisierung eines Systems, welches mit Smartbands Handshakes erkennt und im Falle von mehreren Handshakes diese mit Hilfe eines "Fingerprints" disambiguiert. Die Kapitel zur Erkennung und zum Matching sind angenehm geschrieben und nachvollziehbar; es wird breit erklärt, welche Features aus Accelerometer-Daten gezogen sind und sich am nützlichsten für die Handshake-Erkennung gezeigt haben. Für uns können wir daraus ziehen, dass wir auf jeden Fall nicht die Gravity aus den Rohdaten rausrechnen sollten, weil sie uns wichtige Informationen über die Orientierung der Uhr gibt (auch ohne Gyroskop). Im Rahmen des Matchings zeigt sich, dass viele Features gedropped werden können; die höchste Accuracy zeigt ein Fingerprint auf Basis von "Top-n Peakmaps", die mit Cross-Correlation verglichen werden.
Zentral in beiden Veröffentlichungen ist die Verwendung des Java-Machine-Learning-Frameworks WEKA. In dieses kann man leicht Trainingsdaten in Form von extrahierten Feature-Vectors reinladen und dann trainieren. Als vielversprechender Algorithmus für die Erkennung zeigt sich für den Handshake-Fall J48.
Und was machen wir jetzt? Nachimplementieren? Die Arbeiten wirklich sehr durchdacht und es sind klare Gedankenprozesse zu sehen, die zu den jeweiligen Algorithmen geführt haben. Ich glaube schwer, dass wir die Algorthmen noch toppen können - und damit wäre dann unser Research-Beitrag nicht mehr vorhanden :(
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.