Giter VIP home page Giter VIP logo

shakecast's People

Contributors

1und0 avatar floe avatar nadre avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

shakecast's Issues

Massive data collection

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.).

Accelerometer-Datenrate

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.

Handshake-Fingerprint

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:

  • Vergleich der Anzahl der Maxima/Minima auf beiden Geräten. Trotz der Tatsache, dass sich beide Leute die Hände geschüttelt haben, sind die Maxima/Minima-Profile auf Grund der individuellen Bewegungen zu unterschiedlich, um direkt aufeinander zu matchen.
  • Die Cross-Correlation zwischen den beiden Handshakes ist ähnlich auch für "fremde" Handshakes
  • Die FFT-Differenzen zwischen den beiden Handshakes ist genauso ähnlich für "fremde" Handshakes
  • Die Differenzen der ersten n (n = 5, 10, 20, 30) FFT-Koeffizienten ist genauso ähnlich für "fremde" Handshakes
  • Die Dynamic Time Warping Differenz ist genauso ähnlich für "fremde" Handshakes
  • Eine Differenzanalyse des Periodogramms ist genauso ähnlich für "fremde" Handshakes

Vielleicht dienen solche Metriken nur dazu, nicht passende Handshakes abzulehnen, aber nicht, um gleiche Handshakes zu bestätigen.

Internal acceleration

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"

Example plot:
Example plot

Verwandte Arbeiten

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 :(

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.