Commit 84ec1267 authored by vincent's avatar vincent

age gender recognition nodejs example

parent 731e34fa
import * as faceapi from 'face-api.js';
import { canvas, faceDetectionNet, faceDetectionOptions, saveFile } from './commons';
async function run() {
await faceDetectionNet.loadFromDisk('../../weights')
await faceapi.nets.faceLandmark68Net.loadFromDisk('../../weights')
await faceapi.nets.ageGenderNet.loadFromDisk('../../weights')
const img = await canvas.loadImage('../images/bbt1.jpg')
const results = await faceapi.detectAllFaces(img, faceDetectionOptions)
.withFaceLandmarks()
.withAgeAndGender()
const out = faceapi.createCanvasFromMedia(img) as any
faceapi.draw.drawDetections(out, results.map(res => res.detection))
results.forEach(result => {
const { age, gender, genderProbability } = result
new faceapi.draw.DrawTextField(
[
`${faceapi.round(age, 0)} years`,
`${gender} (${faceapi.round(genderProbability)})`
],
result.detection.box.bottomLeft
).draw(out)
})
saveFile('ageAndGenderRecognition.jpg', out.toBuffer('image/jpeg'))
console.log('done, saved results to out/ageAndGenderRecognition.jpg')
}
run()
\ No newline at end of file
......@@ -5,10 +5,12 @@ import { canvas, faceDetectionNet, faceDetectionOptions, saveFile } from './comm
async function run() {
await faceDetectionNet.loadFromDisk('../../weights')
await faceapi.nets.faceLandmark68Net.loadFromDisk('../../weights')
await faceapi.nets.faceExpressionNet.loadFromDisk('../../weights')
const img = await canvas.loadImage('../images/surprised.jpg')
const results = await faceapi.detectAllFaces(img, faceDetectionOptions)
.withFaceLandmarks()
.withFaceExpressions()
const out = faceapi.createCanvasFromMedia(img) as any
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment