Wykrywanie aktywności użytkownika

Octave

Analiza danych

Napisz program zapisujący dane z akcelerometru do bazy SQLite (mozesz tez przerobic program: 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
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();
}

Import do Octave/Python

  1. Zaimportuj dane z odczytów do Octave:
    • W tym celu otwórz bazę danych w SQLite:
       sqlite3 acc.db
    • Ustaw separator danych na tabulator
       .mode tabs 

      albo na przecinki

       .mode csv 
    • Ustaw wyjscie z SQLite do pliku:
       .output 'dane.dat'
    • Wrzuć dane z trzech osi do pliku:
      SELECT acc_x, acc_y, acc_z FROM acc;
  2. Następnie otwórz Octave i zaimportuj dane do zmiennej Acc:
    1. Acc = load('dane.dat');
    2. df = pandas.read_csv('dane.dat',sep='\t');

Określenie parametrów danych

  1. 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:
    1. stanie
    2. chodzenie
    3. bieganie
    4. siadanie
    5. wstawanie
  2. Spróbuj określić aktywność na podstawie maksymalnej i minimalnej amplitudy oraz średniej amplitudy w oknie czasowym o długości np. 3 sekund.
  3. Zapoznaj się (pobieżnie) z artykułem: Activity recognition i zastanów się, czy możesz zastosowac którys z opisanych algorytmów do swoich danych
  4. Możesz też wykorzystać „gotowiec” z poprzedniego semestru: https://drive.google.com/file/d/1-8bU3wu5oPP2ybIuyFskIvBwNIIN6eWz/view (Sekcja „Dane to wszystko”

Android

  1. Android API oferuje wbudowaną klasę do wykrywania aktywności o nazwie ActivityRecognition.
  2. Pobierz przykładową aplikację wykorzystującą tą klasę: Activity recognition i zapoznaj się z kodem źródłowym. Opis kodu źródłowego znajduje się tutaj
  3. 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.txt · ostatnio zmienione: 2019/06/27 15:50 (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