From 34eb763ccdbf724b2df7e20f5b28b7cff1d7388e Mon Sep 17 00:00:00 2001 From: Graham Jones Date: Tue, 20 Sep 2022 11:55:34 +0100 Subject: [PATCH] V4.1.0a - neural network model runs and prints pSeizure to logcat. --- CHANGELOG.md | 1 + app/build.gradle | 10 ++- app/src/main/AndroidManifest.xml | 4 +- app/src/main/assets/best_model_v0.02.tflite | Bin 0 -> 107192 bytes .../org/openseizuredetector/MainActivity.java | 1 + .../uk/org/openseizuredetector/SdAlgNn.java | 83 ++++++++++++++++++ .../org/openseizuredetector/SdDataSource.java | 11 +++ build.gradle | 1 + 8 files changed, 108 insertions(+), 3 deletions(-) create mode 100644 app/src/main/assets/best_model_v0.02.tflite create mode 100644 app/src/main/java/uk/org/openseizuredetector/SdAlgNn.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 86c8307..6135216 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ OpenSeizureDetector Android App - Change Log ============================================ + V4.1.0 - Added experimental support for neural network based seizure detector. V4.0.7 - Improvements to Data Sharing data log manager screen - Removed automatic refresh of shared data events list (Issue #62) - Added option to include warnings in shared data events list (Issue #64) diff --git a/app/build.gradle b/app/build.gradle index 05b0690..8241f89 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,13 +32,20 @@ android { dependencies { implementation 'androidx.multidex:multidex:2.0.1' - implementation files('libs/mpandroidchartlibrary-2-0-7.jar') + //implementation files('libs/mpandroidchartlibrary-2-0-7.jar') + //implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + // V2.1.3 of MPAndroidChart is the most recent version that compiles without modifying + // how we use ValueFormatter + // FIXME: Update mainactivity so we can use the latest version. + implementation 'com.github.PhilJay:MPAndroidChart:v2.1.3' implementation 'com.getpebble:pebblekit:3.1.0@aar' // Unit testing dependencies implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'com.google.android.material:material:1.4.0' implementation 'com.google.firebase:firebase-auth:19.2.0' implementation 'androidx.test:core:1.4.0' + implementation 'com.google.android.gms:play-services-tflite-java:16.0.0' + implementation 'com.google.android.gms:play-services-tflite-support:16.0.0' testImplementation 'junit:junit:4.13.2' // Set this dependency if you want to use Mockito testImplementation 'org.mockito:mockito-core:4.3.1' @@ -59,6 +66,7 @@ dependencies { implementation 'com.google.firebase:firebase-analytics' implementation 'com.firebaseui:firebase-ui-auth:7.2.0' implementation 'com.google.firebase:firebase-firestore' + } repositories { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 05789f6..bf26521 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,8 +2,8 @@ + android:versionCode="104" + android:versionName="4.1.0a"> diff --git a/app/src/main/assets/best_model_v0.02.tflite b/app/src/main/assets/best_model_v0.02.tflite new file mode 100644 index 0000000000000000000000000000000000000000..bdf2a2387d7a612023745e48ba08d481c5ec7c0b GIT binary patch literal 107192 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

aynUt{Z?iB+6KPR{(tauEYMho&?hehgr~s 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 z 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 literal 0 HcmV?d00001 diff --git a/app/src/main/java/uk/org/openseizuredetector/MainActivity.java b/app/src/main/java/uk/org/openseizuredetector/MainActivity.java index 1a55010..d6cd7dd 100644 --- a/app/src/main/java/uk/org/openseizuredetector/MainActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/MainActivity.java @@ -57,6 +57,7 @@ import com.github.mikephil.charting.components.YAxis; import com.github.mikephil.charting.data.BarData; import com.github.mikephil.charting.data.BarDataSet; import com.github.mikephil.charting.data.BarEntry; + import com.github.mikephil.charting.utils.ValueFormatter; import com.rohitss.uceh.UCEHandler; diff --git a/app/src/main/java/uk/org/openseizuredetector/SdAlgNn.java b/app/src/main/java/uk/org/openseizuredetector/SdAlgNn.java new file mode 100644 index 0000000..7305b8a --- /dev/null +++ b/app/src/main/java/uk/org/openseizuredetector/SdAlgNn.java @@ -0,0 +1,83 @@ +package uk.org.openseizuredetector; + +import android.content.Context; +import android.util.Log; + +import com.android.volley.AuthFailureError; +import com.android.volley.Request; +import com.android.volley.RequestQueue; +import com.android.volley.Response; +import com.android.volley.VolleyError; +import com.android.volley.toolbox.StringRequest; +import com.google.android.gms.tasks.Task; +import com.google.android.gms.tflite.java.TfLite; +//import com.google.android.gms.tflite.java.TfLite; + +import org.json.JSONException; +import org.json.JSONObject; +import org.tensorflow.lite.InterpreterApi; +import org.tensorflow.lite.support.common.FileUtil; + +import java.io.IOException; +import java.nio.MappedByteBuffer; +import java.util.HashMap; +import java.util.Map; + +public class SdAlgNn { + private final static String TAG = "SdAlgNn"; + private final static String MODEL_PATH = "best_model_v0.02.tflite"; + private String mUrlBase = "https://osdApi.ddns.net"; + private InterpreterApi interpreter; + private Context mContext; + RequestQueue mQueue; + + + public SdAlgNn(Context context) { + Log.d(TAG, "SdAlgNn Constructor"); + mContext = context; + Task initializeTask = TfLite.initialize(mContext); + + initializeTask.addOnSuccessListener(a -> { + MappedByteBuffer modelBuffer; + try { + Log.d(TAG, "onSuccessListener - loading model"); + modelBuffer = FileUtil.loadMappedFile(context, MODEL_PATH); + Log.d(TAG, "onSuccessListener - model loaded"); + } catch (IOException e) { + Log.e(TAG, "Error Loading Model File"); + return; + } + Log.d(TAG, "onSuccessListener - creating interpreter"); + interpreter = InterpreterApi.create(modelBuffer, + new InterpreterApi.Options().setRuntime( + InterpreterApi.Options.TfLiteRuntime.FROM_SYSTEM_ONLY)); + Log.d(TAG, "onSuccessListener - interpreter created ok"); + }) + .addOnFailureListener(e -> { + Log.e(TAG, String.format("Cannot initialize interpreter: %s", + e.getMessage())); + }); + // FIXME - Add hardware acceleration - see https://www.tensorflow.org/lite/android/play_services + Log.d(TAG, "constructor finished - Note, NOT using hardware acceleration yet!!!!"); + } + + public void close() { + Log.d(TAG,"close()"); + interpreter.close(); + } + + public int run(SdData sdData) { + int i; + float[][][] modelInput = new float[1][125][1]; + float[][] modelOutput = new float[1][2]; + for (int j = 0; j < 125; j++) { + modelInput[0][j][0] = (float)sdData.rawData[j]; + } + interpreter.run(modelInput, modelOutput); + Log.d(TAG,"run - pSeizure="+modelOutput[0][1]); + if (modelOutput[0][1]>0.5) + return 1; + else + return 0; + } +} diff --git a/app/src/main/java/uk/org/openseizuredetector/SdDataSource.java b/app/src/main/java/uk/org/openseizuredetector/SdDataSource.java index 2b9a1ae..12c5be1 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdDataSource.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdDataSource.java @@ -91,6 +91,7 @@ public abstract class SdDataSource { private short mFallThreshMax; private short mFallWindow; private int mMute; // !=0 means muted by keypress on watch. + private SdAlgNn mSdAlgNn; // Values for SD_MODE private int SIMPLE_SPEC_FMAX = 10; @@ -110,6 +111,8 @@ public abstract class SdDataSource { mUtil = new OsdUtil(mContext, mHandler); mSdDataReceiver = sdDataReceiver; mSdData = new SdData(); + + mSdAlgNn = new SdAlgNn(mContext); } /** @@ -484,6 +487,7 @@ public abstract class SdDataSource { // Check this data to see if it represents an alarm state. alarmCheck(); + nnCheck(); hrCheck(); o2SatCheck(); fallCheck(); @@ -724,6 +728,13 @@ public abstract class SdDataSource { } } + void nnCheck() { + //Check the current set of data using the neural network model to look for alarms. + Log.d(TAG,"nnCheck"); + int nnResult = mSdAlgNn.run(mSdData); + Log.d(TAG,"nnCheck - nnResult="+nnResult); + } + /** * updatePrefs() - update basic settings from the SharedPreferences * - defined in res/xml/SdDataSourceNetworkPassivePrefs.xml diff --git a/build.gradle b/build.gradle index 7b445bc..c577bdd 100644 --- a/build.gradle +++ b/build.gradle @@ -22,6 +22,7 @@ allprojects { } google() //maven { url 'https://jitpack.io' } + maven { url 'https://jitpack.io' } // for mpandroidchart } tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"