A face comparison library using face-api.js and TensorFlow.js for React Native applications.
npm install face-recognition-node
# or
yarn add face-recognition-node
Also install peer dependencies:
npm install @tensorflow/tfjs @tensorflow/tfjs-react-native face-api.js
# or
yarn add @tensorflow/tfjs @tensorflow/tfjs-react-native face-api.js
import React, { useEffect } from 'react';
import { View, Text } from 'react-native';
import { useFaceRecognition } from 'face-recognition-node';
const FaceComparisonExample = () => {
const { initialize, compareFaces, isInitialized, isProcessing, error } = useFaceRecognition();
useEffect(() => {
initialize();
}, []);
const handleComparison = async (image1Uri, image2Uri) => {
try {
const result = await compareFaces(image1Uri, image2Uri);
console.log('Match:', result.isMatch);
console.log('Similarity:', result.similarity);
} catch (err) {
console.error('Comparison failed:', err);
}
};
return (
<View>
<Text>Status: {isInitialized ? 'Ready' : 'Initializing...'}</Text>
{error && <Text>Error: {error}</Text>}
{/* Your UI components */}
</View>
);
};
Place these files in your app's assets folder:
- face_recognition_model-weights_manifest.json
- face_recognition_model-shard1
- face_recognition_model-shard2
- face_landmark_68_model-weights_manifest.json
- face_landmark_68_model-shard1
- ssd_mobilenetv1_model-weights_manifest.json
- ssd_mobilenetv1_model-shard1
Loads the required face-api.js models.
Compares two face images and returns similarity score.
Converts a React Native image element to a tensor.
- Images should contain clear, front-facing facial images
- Only one face per image is supported
- Performance may vary based on device capabilities
- Requires proper model files to be available in the app assets
ISC