Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:aml:lab5 [2013/11/14 08:59]
esimon [Analiza danych]
pl:dydaktyka:aml:lab5 [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Wykrywanie aktywności użytkownika ====== ====== Wykrywanie aktywności użytkownika ======
-===== Analiza danych ===== 
-//analiza danych z akcelerometru - pobranie, zapisanie do sqlite, analiza w octave (czestotliwosci maksymalnej i minimalnej, amplituda, srednie przyspieszenie,​ korelacja trzech osi , srednia ​ - jakie?​etc.)//​ 
  
-===== Activity recognition ​===== +===== Octave ​=====
-==== Android==== +
-// Przetestowanie aplikacji do wykrywania aktywnosci +
-==== Octave ==== +
-//​Klasteryzacja z wykorzystaniem danych z analizy+
  
 +==== 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.1384415979.txt.gz · ostatnio zmienione: 2019/06/27 15:51 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0