poniedziałek, marca 06, 2017

Czy się stoi czy się siedzi.... kamerka w laptopie jako detektor tego czy biurko jest w trybie stand czy sit ;-)

W czwartek i piątek mieliśmy Hackhaton.
Wiele osób zrobiło rzeczy przydatne, wiele ciekawe, jeszcze inni zrobili ambitne.

Ja zrobiłem dziwną ;-)

Najpierw zamierzałem połączyć funkcjonalność timera z Google z Toggl i Keep by móc bawić się Pomodoro.
Tak powstało Pomodororororo, ale było nudne i nieciekawe.
Tzn. ciekawa była zabawa z Polymerem, ale jakoś nie umiałem wymyślić dobrego sposobu na to jak ugryźć wygodne połączenie timera z rejestrowaniem aktywności....

Wtedy zaczęło za mną łazić, że przecież mam certyfikat z Machine Learningu to mógłbym spróbować niedawno zdobytej wiedzy...
Pierwszy pomysł był by zrobić rozpoznawanie twarzy, ale upadł bo dużo próbek bym potrzebował.
Z drugiej strony od dłuższego czasu zabieram się za realizację czujnika wykrywającego stanie/siedzenie przy biurku w domu by móc je rejestrować i wiedzieć ile stoję.

Pierwsza szalona wersja pomysłu była by zrobić trochę zdjęć kamerką gdy stoję i gdy siedzę i użyć ich do nauki... Ale po chwili stwierdziłem, że może najpierw sprawdzę co widać na kamerce ;-) wiedząc co widać na kamerce uznałem, że wiem czego nauczy się Machine Learning.
Stąd zakodowałem to co wg. mnie machine learning by znalazł ;-)

Efekt widać poniżej ;-)

To działa :-)

Gdy stoję mam śliczny obrazek:
 A gdy siedzę taki:

(oba są kradzione z Internetu)

Działanie widać na filmiku :-)

Jednak cały "system" oszukuje ;-)

Tak się po prostu składa, że gdy wszystko jest w pozycji siedzącej to pole widzenia kamerki jest dość mocno ograniczone przez jeden z monitorów... a monitor jest czarny....
Stąd okazuje się, że porównanie średniego koloru prawego górnego rogu obrazu z kamerki ze średnią reszty obrazu pozwala stwierdzić, że ten róg jest ciemny i uznać, że wszystko jest w pozycji siedzącej ;-)

Wszystko jest napisane w JavaScript'cie i HTMLu z użyciem Polymera, ale Polymer jest tu najmniej istotny ;-)

To jak z poziomu HTML/JavaScript dobrać się do obrazu z kamerki wiem z tego tutoriala.

Później co sekundę skanuję obraz z kamerki licząc średni kolor górnego prawego roku i reszty obrazu i wszystko działa ;-)

Jak ktoś ciekaw to tu są źródła ;-)

Podobne postybeta
Biurko
AppInventor - tego się da używać :-)
Za co nie lubię machine learningu.... i jak się przed nim bronić ;-)
Data binding w Polymerze jest oszukany ;-)
Zdjęciofilm :-)