mirror of https://github.com/vladmandic/human
republish due to tfjs 2.8.0 issues
parent
31f728e502
commit
ab87288e7d
20
package.json
20
package.json
|
@ -22,16 +22,16 @@
|
|||
"dependencies": {},
|
||||
"peerDependencies": {},
|
||||
"devDependencies": {
|
||||
"@tensorflow/tfjs": "^2.8.0",
|
||||
"@tensorflow/tfjs-backend-cpu": "^2.8.0",
|
||||
"@tensorflow/tfjs-backend-wasm": "^2.8.0",
|
||||
"@tensorflow/tfjs-backend-webgl": "^2.8.0",
|
||||
"@tensorflow/tfjs-converter": "^2.8.0",
|
||||
"@tensorflow/tfjs-core": "^2.8.0",
|
||||
"@tensorflow/tfjs-data": "^2.8.0",
|
||||
"@tensorflow/tfjs-layers": "^2.8.0",
|
||||
"@tensorflow/tfjs-node": "^2.8.0",
|
||||
"@tensorflow/tfjs-node-gpu": "^2.8.0",
|
||||
"@tensorflow/tfjs": "^2.7.0",
|
||||
"@tensorflow/tfjs-backend-cpu": "^2.7.0",
|
||||
"@tensorflow/tfjs-backend-wasm": "^2.7.0",
|
||||
"@tensorflow/tfjs-backend-webgl": "^2.7.0",
|
||||
"@tensorflow/tfjs-converter": "^2.7.0",
|
||||
"@tensorflow/tfjs-core": "^2.7.0",
|
||||
"@tensorflow/tfjs-data": "^2.7.0",
|
||||
"@tensorflow/tfjs-layers": "^2.7.0",
|
||||
"@tensorflow/tfjs-node": "^2.7.0",
|
||||
"@tensorflow/tfjs-node-gpu": "^2.7.0",
|
||||
"@vladmandic/pilogger": "^0.2.10",
|
||||
"chokidar": "^3.4.3",
|
||||
"dayjs": "^1.9.7",
|
||||
|
|
56
src/human.js
56
src/human.js
|
@ -423,44 +423,26 @@ class Human {
|
|||
}
|
||||
|
||||
async warmup(userConfig) {
|
||||
const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());
|
||||
|
||||
if (userConfig) this.config = mergeDeep(this.config, userConfig);
|
||||
return new Promise((resolve) => {
|
||||
const video = this.config.videoOptimized;
|
||||
this.config.videoOptimized = false;
|
||||
let src;
|
||||
let size;
|
||||
switch (this.config.warmup) {
|
||||
case 'face':
|
||||
size = 256;
|
||||
src = sample.face;
|
||||
break;
|
||||
case 'full':
|
||||
size = 1200;
|
||||
src = sample.body;
|
||||
break;
|
||||
default:
|
||||
size = 0;
|
||||
src = null;
|
||||
}
|
||||
const img = new Image(size, size);
|
||||
img.onload = () => {
|
||||
const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');
|
||||
canvas.width = size;
|
||||
canvas.height = size;
|
||||
const ctx = canvas.getContext('2d');
|
||||
ctx.drawImage(img, 0, 0);
|
||||
const data = ctx.getImageData(0, 0, size, size);
|
||||
const t0 = now();
|
||||
this.detect(data, config).then((warmup) => {
|
||||
const t1 = now();
|
||||
log('Warmup', this.config.warmup, (t1 - t0), warmup);
|
||||
this.config.videoOptimized = video;
|
||||
resolve(warmup);
|
||||
});
|
||||
};
|
||||
if (src) img.src = src;
|
||||
else resolve(null);
|
||||
});
|
||||
const video = this.config.videoOptimized;
|
||||
this.config.videoOptimized = false;
|
||||
let blob;
|
||||
switch (this.config.warmup) {
|
||||
case 'face': blob = await b64toBlob(sample.face); break;
|
||||
case 'full': blob = await b64toBlob(sample.body); break;
|
||||
default: blob = null;
|
||||
}
|
||||
if (!blob) return null;
|
||||
const bitmap = await createImageBitmap(blob);
|
||||
const t0 = now();
|
||||
const warmup = await this.detect(bitmap, config);
|
||||
const t1 = now();
|
||||
bitmap.close();
|
||||
log('Warmup', this.config.warmup, (t1 - t0), warmup);
|
||||
this.config.videoOptimized = video;
|
||||
return warmup;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
export const face = `data:image/jpeg;base64,
|
||||
// data:image/jpeg;base64,
|
||||
export const face = `
|
||||
/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA
|
||||
AAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu
|
||||
bmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob
|
||||
|
@ -151,7 +152,8 @@ c6oaM5TUJ8EgGsG4kLNUHT0M64OaqMMikSRsuKbnFMRLG3zVehOaGNE445NNlnVFpDMu6uie9Vo1
|
|||
ylFtbdT1xUWNWzU0/Zbwlgfmx8zGsHWtRHmMqE59aAMyNifvHPc1f0gtPdqkY5JosJHeNci2tktY
|
||||
euPnNY+oXWZEVJNrZ9aun8SIq/CzodHuriIokhDIR1ronbKZr0o6o8ipoz//2Q==`;
|
||||
|
||||
export const body = `data:image/jpeg;base64,
|
||||
// data:image/jpeg;base64,
|
||||
export const body = `
|
||||
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAsICAoIBwsKCQoNDAsNERwSEQ8PESIZGhQcKSQrKigk
|
||||
JyctMkA3LTA9MCcnOEw5PUNFSElIKzZPVU5GVEBHSEX/2wBDAQwNDREPESESEiFFLicuRUVFRUVF
|
||||
RUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUX/wAARCASwBLADASIA
|
||||
|
|
Loading…
Reference in New Issue