-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
使用谷歌提供的tflite模型编译成功,并在手机上进行了测试。基本能达到实时的速度
- Loading branch information
wei-supreme
committed
Dec 22, 2019
0 parents
commit 3d2e21d
Showing
77 changed files
with
8,317 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
*.iml | ||
.gradle | ||
/local.properties | ||
/.idea/libraries | ||
/.idea/modules.xml | ||
/.idea/workspace.xml | ||
.DS_Store | ||
/build | ||
app/build | ||
/captures | ||
.externalNativeBuild | ||
|
||
/.gradle/ | ||
/.idea/ | ||
*.apk | ||
*.tflite | ||
*.pb |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# TensorFlow Lite Object Detection Android Demo | ||
### Overview | ||
This is a camera app that continuously detects the objects (bounding boxes and classes) in the frames seen by your device's back camera, using a quantized [MobileNet SSD](https://github.com/tensorflow/models/tree/master/research/object_detection) model trained on the [COCO dataset](http://cocodataset.org/). These instructions walk you through building and running the demo on an Android device. | ||
|
||
The model files are downloaded via Gradle scripts when you build and run. You don't need to do any steps to download TFLite models into the project explicitly. | ||
|
||
Application can run either on device or emulator. | ||
|
||
<!-- TODO(b/124116863): Add app screenshot. --> | ||
|
||
## Build the demo using Android Studio | ||
|
||
### Prerequisites | ||
|
||
* If you don't have already, install **[Android Studio](https://developer.android.com/studio/index.html)**, following the instructions on the website. | ||
|
||
* You need an Android device and Android development environment with minimum API 21. | ||
* Android Studio 3.2 or later. | ||
|
||
### Building | ||
* Open Android Studio, and from the Welcome screen, select Open an existing Android Studio project. | ||
|
||
* From the Open File or Project window that appears, navigate to and select the tensorflow-lite/examples/object_detection/android directory from wherever you cloned the TensorFlow Lite sample GitHub repo. Click OK. | ||
|
||
* If it asks you to do a Gradle Sync, click OK. | ||
|
||
* You may also need to install various platforms and tools, if you get errors like "Failed to find target with hash string 'android-21'" and similar. | ||
Click the Run button (the green arrow) or select Run > Run 'android' from the top menu. You may need to rebuild the project using Build > Rebuild Project. | ||
|
||
* If it asks you to use Instant Run, click Proceed Without Instant Run. | ||
|
||
* Also, you need to have an Android device plugged in with developer options enabled at this point. See **[here](https://developer.android.com/studio/run/device)** for more details on setting up developer devices. | ||
|
||
|
||
### Model used | ||
Downloading, extraction and placing it in assets folder has been managed automatically by download.gradle. | ||
|
||
If you explicitly want to download the model, you can download from **[here](http://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip)**. Extract the zip to get the .tflite and label file. | ||
|
||
### Additional Note | ||
_Please do not delete the assets folder content_. If you explicitly deleted the files, then please choose *Build*->*Rebuild* from menu to re-download the deleted model files into assets folder. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
/build | ||
/build/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
apply plugin: 'com.android.application' | ||
apply plugin: 'de.undercouch.download' | ||
|
||
android { | ||
compileSdkVersion 28 | ||
buildToolsVersion '28.0.3' | ||
defaultConfig { | ||
applicationId "org.tensorflow.lite.examples.detection" | ||
minSdkVersion 21 | ||
targetSdkVersion 21 | ||
versionCode 1 | ||
versionName "1.0" | ||
} | ||
buildTypes { | ||
release { | ||
minifyEnabled false | ||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | ||
} | ||
} | ||
aaptOptions { | ||
noCompress "tflite" | ||
} | ||
compileOptions { | ||
sourceCompatibility = '1.8' | ||
targetCompatibility = '1.8' | ||
} | ||
lintOptions { | ||
abortOnError false | ||
} | ||
} | ||
|
||
// import DownloadModels task | ||
project.ext.ASSET_DIR = projectDir.toString() + '/src/main/assets' | ||
project.ext.TMP_DIR = project.buildDir.toString() + '/downloads' | ||
|
||
// Download default models; if you wish to use your own models then | ||
// place them in the "assets" directory and comment out this line. | ||
//apply from: "download_model.gradle" | ||
|
||
apply from:'download_model.gradle' | ||
|
||
dependencies { | ||
implementation fileTree(dir: 'libs', include: ['*.jar','*.aar']) | ||
implementation 'androidx.appcompat:appcompat:1.0.0' | ||
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.0.0' | ||
implementation 'com.google.android.material:material:1.0.0' | ||
implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly' | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
|
||
task downloadZipFile(type: Download) { | ||
src 'http://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip' | ||
dest new File(buildDir, 'zips/') | ||
overwrite false | ||
} | ||
|
||
|
||
task downloadAndUnzipFile(dependsOn: downloadZipFile, type: Copy) { | ||
from zipTree(downloadZipFile.dest) | ||
into project.ext.ASSET_DIR | ||
} | ||
|
||
|
||
task extractModels(type: Copy) { | ||
dependsOn downloadAndUnzipFile | ||
} | ||
|
||
tasks.whenTaskAdded { task -> | ||
if (task.name == 'assembleDebug') { | ||
task.dependsOn 'extractModels' | ||
} | ||
if (task.name == 'assembleRelease') { | ||
task.dependsOn 'extractModels' | ||
} | ||
} |
Oops, something went wrong.