1.2.1 • Published 4 months ago
bakuparjo v1.2.1
Bakuparjo
A JavaScript face comparison library that automatically handles model loading and provides easy-to-use face similarity detection.
Features
- Compare faces between images with percentage similarity scores
- Automatic download and caching of face recognition models
- Works in both Node.js and browser environments
- Simple API for face detection and comparison
Installation
npm install bakuparjo
Usage
Basic usage
import FaceComparison from 'bakuparjo';
async function checkAttendance() {
const faceComparer = new FaceComparison();
const collectionImages = [
"/media/person1.jpg",
"/media/person2.jpg",
"/media/person3.jpg"
];
const loginImage = "/facelogin/new-capture.jpg";
try {
const results = await faceComparer.compareFaces(loginImage, collectionImages);
console.log('Similarity results:');
results.forEach(result => {
console.log(${result.imagePath}: ${result.similarity}% similar);
});
const mostSimilar = results.reduce((prev, current) =>
(parseFloat(prev.similarity) > parseFloat(current.similarity)) ? prev : current
);
console.log(Most similar image: ${mostSimilar.imagePath} with ${mostSimilar.similarity}% similarity);
} catch (error) {
console.error('Error comparing faces:', error);
}
}
Advanced usage
const faceComparer = new FaceComparison({
threshold: 0.5, // Adjust similarity threshold (lower = stricter)
modelPath: './my-models' // Custom model path
});
API Reference
new FaceComparison(options)
Creates a new face comparison instance.
Options:
threshold
(number): Similarity threshold (default: 0.6)modelPath
(string): Path to store/load models (default: './models' in Node.js, '/models' in browser)
async loadModels()
Loads the required face recognition models. Called automatically when needed.
async compareFaces(referenceImagePath, collectionImagePaths)
Compares a reference face with a collection of faces.
Parameters:
referenceImagePath
(string): Path to the reference imagecollectionImagePaths
(array): Array of paths to compare against
Returns: Array of objects with:
imagePath
(string): Path to the compared imagesimilarity
(string): Percentage similarity (0-100%)error
(string, optional): Error message if processing failed
Browser Usage
For browser environments, make sure the models are available in your web root:
<!-- Models should be available at /models/ -->
<script type="module">
import FaceComparison from 'bakuparjo';
const faceComparer = new FaceComparison();
// ...
</script>
License
MIT