Package Exports
- tflite-react-native
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tflite-react-native) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
tflite-react-native
Getting started
$ npm install tflite-react-native --save
Mostly automatic installation
$ react-native link tflite-react-native
Manual installation
iOS
- In XCode, in the project navigator, right click
Libraries
➜Add Files to [your project's name]
- Go to
node_modules
➜tflite-react-native
and addTfliteReactNative.xcodeproj
- In XCode, in the project navigator, select your project. Add
libTfliteReactNative.a
to your project'sBuild Phases
➜Link Binary With Libraries
- Run your project (
Cmd+R
)<
Android
- Open up
android/app/src/main/java/[...]/MainApplication.java
- Add
import com.reactlibrary.TfliteReactNativePackage;
to the imports at the top of the file - Add
new TfliteReactNativePackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':tflite-react-native' project(':tflite-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/tflite-react-native/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:compile project(':tflite-react-native')
Add models to the project
iOS
In XCode, right click on the project folder, click Add Files to "xxx"..., select the model and label files.
Android
In Android Studio (1.0 & above), right-click on the
app
folder and go to New > Folder > Assets Folder. Click Finish to create the assets folder.Place the model and label files at
app/src/main/assets
.In
android/app/build.gradle
, add the following setting inandroid
block.
aaptOptions {
noCompress 'tflite'
}
Usage
import Tflite from 'tflite-react-native';
let tflite = new Tflite();
Load model:
tflite.loadModel({
model: 'models/mobilenet_v1_1.0_224.tflite',// required
labels: 'models/mobilenet_v1_1.0_224.txt', // required
numThreads: 1, // defaults to 1
},
(err, res) => {
if(err)
console.log(err);
else
console.log(res);
});
Image classification:
tflite.runModelOnImage({
path: imagePath, // required
imageMean: 128.0, // defaults to 127.5
imageStd: 128.0, // defaults to 127.5
numResults: 3, // defaults to 5
threshold: 0.05 // defaults to 0.1
},
(err, res) => {
if(err)
console.log(err);
else
console.log(res);
});
Object detection:
- SSD MobileNet
tflite.detectObjectOnImage({
path: imagePath,
model: 'SSDMobileNet',
imageMean: 127.5,
imageStd: 127.5,
threshold: 0.3, // defaults to 0.1
numResultsPerClass: 2,// defaults to 5
},
(err, res) => {
if(err)
console.log(err);
else
console.log(res);
});
- Tiny YOLOv2
tflite.detectObjectOnImage({
path: imagePath,
model: 'YOLO',
imageMean: 0.0,
imageStd: 255.0,
threshold: 0.3, // defaults to 0.1
numResultsPerClass: 2, // defaults to 5
anchors: [...], // defaults to [0.57273,0.677385,1.87446,2.06253,3.33843,5.47434,7.88282,3.52778,9.77052,9.16828]
blockSize: 32, // defaults to 32
},
(err, res) => {
if(err)
console.log(err);
else
console.log(res);
});
Release resources:
tflite.close();
Demo
Refer to the example.