react-native-face-embeddings
v1.0.0
Published
Face recognition embeddings for React Native
Maintainers
Readme
react-native-face-embeddings
A Node.js package for generating face embeddings using face-api.js and TensorFlow. Perfect for face recognition, comparison, and identity verification applications.
Installation
npm install react-native-face-embeddingsPrerequisites
This package requires the face-api.js model files. Download them from: https://github.com/vladmandic/face-api/tree/master/model
Place the following model files in a models directory in your project root:
ssd_mobilenetv1_model-*face_landmark_68_model-*face_recognition_model-*
Usage
import { createEmbedding, findNearestMatch } from 'react-native-face-embeddings';
// Create embedding from a file path
const embedding1 = await createEmbedding('./photo1.jpg');
// Create embedding from base64 (React Native camera)
const embedding2 = await createEmbedding('data:image/jpeg;base64,...');
// Compare embeddings
const knownFaces = [
{ id: 'person1', embedding: embedding1 }
];
const match = findNearestMatch(knownFaces, embedding2);
if (match) {
console.log(`Match found: ${match.id} (${match.confidence * 100}% confident)`);
}API Reference
createEmbedding(imageInput)
Creates a 128-dimensional face embedding from an image.
Parameters:
imageInput(string|Buffer|Uint8Array): Image source- File path:
'/path/to/image.jpg' - File URI:
'file:///path/to/image.jpg' - Base64:
'data:image/jpeg;base64,...' - Buffer or Uint8Array
- File path:
Returns: Promise<Array<number>> - 128-dimensional embedding
findNearestMatch(embeddings, targetEmbedding, threshold = 0.6)
Finds the best matching embedding from a list.
Parameters:
embeddings(Array): Array of{id, embedding}objectstargetEmbedding(Array): Embedding to matchthreshold(number): Maximum distance for a match (default: 0.6)
Returns: Object|null - {id, distance, confidence} or null
findAllMatches(embeddings, targetEmbedding, threshold = 0.6)
Finds all matching embeddings above threshold.
Returns: Array<Object> - Sorted array of matches
Example
See test/run.js for a complete example.
License
MIT © Harshadeep Donapati
