[[
✎ pl:dydaktyka:aml:lab5
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Wykrywanie aktywności użytkownika ====== ===== Octave ===== ==== Analiza danych ==== Napisz program zapisujący dane z akcelerometru do bazy SQLite (mozesz tez przerobic program: [[https://ai.ia.agh.edu.pl/wiki/_media/pl:dydaktyka:aml:prv:projects2016:amlactivityrecognition.zip|Wykrywanie Aktywnosci]]) Aby zapisać bazę danych w pamięci urządzenia, wykorzystaj poniższy kod. * Pamiętaj żeby dodać odpowiednie ''uses-permission'' do manifestu * Jeśli z poziomu systemu operacyjnego nie będzie dostępu do pamięci urządzenia, spróbuj zapisać bazę danych w katalogu ze zdjęciami i np. wysłać ją sobie z telefonu mailem. Ustalmy że: * Baza danych będzie nazywać się **acc**, tabela przechowująca dane, również **acc** * Będzie zawierać 4 kolumny: **id, acc_x, acc_y, acc_z** <code java> try { File sd = Environment.getExternalStorageDirectory(); File data = Environment.getDataDirectory(); if (sd.canWrite()) { String currentDBPath = "//data//" + context.getApplicationContext().getPackageName() + "//databases//" + DataBaseHelper.DATABASE_NAME; String backupDBPath = DataBaseHelper.DATABASE_NAME; File currentDB = new File(data, currentDBPath); File backupDB = new File(sd, backupDBPath); FileChannel src = new FileInputStream(currentDB).getChannel(); FileChannel dst = new FileOutputStream(backupDB).getChannel(); dst.transferFrom(src, 0, src.size()); src.close(); dst.close(); } } catch (Exception e) { e.printStackTrace(); } </code> === Import do Octave/Python=== - Zaimportuj dane z odczytów do Octave: * W tym celu otwórz bazę danych w SQLite: <code bash> sqlite3 acc.db</code> * Ustaw separator danych na tabulator <code sqlite> .mode tabs </code> albo na przecinki <code sqlite> .mode csv </code> * Ustaw wyjscie z SQLite do pliku: <code sqlite> .output 'dane.dat'</code> * Wrzuć dane z trzech osi do pliku: <code sql>select acc_x, acc_y, acc_z from acc;</code> - Następnie otwórz Octave i zaimportuj dane do zmiennej **Acc**: - <code octave>Acc = load('dane.dat');</code> - <code python>df = pandas.read_csv('dane.dat',sep='\t');</code> === Określenie parametrów danych === - Przyglądając się wykresom wyodrębnij cechy które twoim zdaniem mogą mieć wpływ na rozróżnienie poszczególnych aktywności użytkownika takich jak: - stanie - chodzenie - bieganie - siadanie - wstawanie - Spróbuj określić aktywność na podstawie maksymalnej i minimalnej amplitudy oraz średniej amplitudy w oknie czasowym o długości np. 3 sekund. - Zapoznaj się (pobieżnie) z artykułem: {{:pl:dydaktyka:aml:activity-recognition-phone.pdf| Activity recognition}} i zastanów się, czy możesz zastosowac którys z opisanych algorytmów do swoich danych - Możesz też wykorzystać "gotowiec" z poprzedniego semestru: https://drive.google.com/file/d/1-8bU3wu5oPP2ybIuyFskIvBwNIIN6eWz/view (Sekcja "Dane to wszystko" ===== Android===== - Android API oferuje wbudowaną klasę do wykrywania aktywności o nazwie //ActivityRecognition//. - Pobierz przykładową aplikację wykorzystującą tą klasę: [[http://developer.android.com/shareables/training/ActivityRecognition.zip|Activity recognition]] i zapoznaj się z kodem źródłowym. Opis kodu źródłowego znajduje się [[http://developer.android.com/training/location/activity-recognition.html|tutaj]] - Przetestuj działanie aplikacji. Czy klasę można byłoby udoskonalić o analizę danych z akcelerometru jak w pierwszym zadaniu z laboratorium?
pl/dydaktyka/aml/lab5.1542605734.txt.gz
· ostatnio zmienione: 2019/06/27 15:51 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry