react-native-mlkit-face-detector
v0.0.1-beta2
Published
## Getting started
Downloads
9
Maintainers
Readme
react-native-mlkit-face-detector
Getting started
$ npm install react-native-mlkit-face-detector --save
Installation
iOS
Via Pods
- Append the following lines to your
Podfile
pod 'React', :path => '../node_modules/react-native', :modular_headers => true #important!!!
pod 'Firebase/Core'
pod 'Firebase/MLVision'
pod 'Firebase/MLVisionFaceModel'
pod 'RNFaceDetector', :path=> '../node_modules/react-native-mlkit-face-detector/ios'
- Add
$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)
to your projectBuild Settings
->Library Search Paths
Manualy (not tested)
- In XCode, in the project navigator, right click
Libraries
➜Add Files to [your project's name]
- Go to
node_modules
➜react-native-mlkit-face-detector
and addRNFaceDetector.xcodeproj
- In XCode, in the project navigator, select your project. Add
libRNFaceDetector.a
to your project'sBuild Phases
➜Link Binary With Libraries
- Run your project (
Cmd+R
)
Android (not supported yet, WIP)
- Open up
android/app/src/main/java/[...]/MainActivity.java
- Add
import com.reactlibrary.RNFaceDetectorPackage;
to the imports at the top of the file - Add
new RNFaceDetectorPackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':react-native-mlkit-face-detector' project(':react-native-mlkit-face-detector').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-mlkit-face-detector/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:compile project(':react-native-mlkit-face-detector')
Both platforms
Don't forget to setup Firebase
:
- iOS [https://firebase.google.com/docs/ios/setup]
- Android [https://firebase.google.com/docs/android/setup]
Usage
import { FaceDetector, FaceDetectorCameraView, } from 'react-native-mlkit-face-detector';
class Screen extends React.Component {
cameraRef = React.createRef()
render() {
return (
<FaceDetectorCameraView
ref={this.cameraRef}
style={styles.container}
cameraType={this.state.camera}
options={this.options}
onFacesDetected={this.handleFacesDetection}
/>
)
}
handleFacesDetection = ({ faces, width, height, recordingTime, }) => {
// do whatever you want
}
handleStartPress = () => {
if (this.cameraRef) {
this.cameraRef.current.startRecording()
.then(({ path, }) => {})
.catch((e) => {
console.warn(e, 'Something whent wrong');
});
}
}
handleStopPress = () => {
if (this.cameraRef) {
this.cameraRef.current.stopRecording(); // will resolve startRecording call
}
}
}
API
Configuration constants
FaceDetector contain setup options constants FaceDetector.OPTIONS
| Name | Type | Example | Description |
| --- | --- | --- | --- |
| PERFOMANCE_MODE | String
| performanceMode: FaceDetector.OPTIONS.PERFOMANCE_MODE.FAST
| Face detection performance mode. Values: FAST
, ACCURATE
|
| LANDMARK_MODE | String
| landmarkMode: FaceDetector.OPTIONS.LANDMARK_MODE.NONE
| Face detection landmark mode, declare that model must detect landmarks. Values: ALL
, NONE
|
| CONTOUR_MODE | String
| contourMode: FaceDetector.OPTIONS.CONTOUR_MODE.NONE
| Face detection contour mode, declare that model must detect contours. Values: ALL
, NONE
|
| LANDMARK_MODE | String
| classificationMode: FaceDetector.OPTIONS.LANDMARK_MODE.NONE
| Face detection classification mode, declare that model must detect opened eyes and smile. Values: ALL
, NONE
|
... (WIP)