republish due to tfjs 2.8.0 issues

pull/280/head
Vladimir Mandic 2020-12-16 14:49:14 -05:00
parent 31f728e502
commit ab87288e7d
3 changed files with 33 additions and 49 deletions

View File

@ -22,16 +22,16 @@
"dependencies": {}, "dependencies": {},
"peerDependencies": {}, "peerDependencies": {},
"devDependencies": { "devDependencies": {
"@tensorflow/tfjs": "^2.8.0", "@tensorflow/tfjs": "^2.7.0",
"@tensorflow/tfjs-backend-cpu": "^2.8.0", "@tensorflow/tfjs-backend-cpu": "^2.7.0",
"@tensorflow/tfjs-backend-wasm": "^2.8.0", "@tensorflow/tfjs-backend-wasm": "^2.7.0",
"@tensorflow/tfjs-backend-webgl": "^2.8.0", "@tensorflow/tfjs-backend-webgl": "^2.7.0",
"@tensorflow/tfjs-converter": "^2.8.0", "@tensorflow/tfjs-converter": "^2.7.0",
"@tensorflow/tfjs-core": "^2.8.0", "@tensorflow/tfjs-core": "^2.7.0",
"@tensorflow/tfjs-data": "^2.8.0", "@tensorflow/tfjs-data": "^2.7.0",
"@tensorflow/tfjs-layers": "^2.8.0", "@tensorflow/tfjs-layers": "^2.7.0",
"@tensorflow/tfjs-node": "^2.8.0", "@tensorflow/tfjs-node": "^2.7.0",
"@tensorflow/tfjs-node-gpu": "^2.8.0", "@tensorflow/tfjs-node-gpu": "^2.7.0",
"@vladmandic/pilogger": "^0.2.10", "@vladmandic/pilogger": "^0.2.10",
"chokidar": "^3.4.3", "chokidar": "^3.4.3",
"dayjs": "^1.9.7", "dayjs": "^1.9.7",

View File

@ -423,44 +423,26 @@ class Human {
} }
async warmup(userConfig) { 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); if (userConfig) this.config = mergeDeep(this.config, userConfig);
return new Promise((resolve) => {
const video = this.config.videoOptimized; const video = this.config.videoOptimized;
this.config.videoOptimized = false; this.config.videoOptimized = false;
let src; let blob;
let size;
switch (this.config.warmup) { switch (this.config.warmup) {
case 'face': case 'face': blob = await b64toBlob(sample.face); break;
size = 256; case 'full': blob = await b64toBlob(sample.body); break;
src = sample.face; default: blob = null;
break;
case 'full':
size = 1200;
src = sample.body;
break;
default:
size = 0;
src = null;
} }
const img = new Image(size, size); if (!blob) return null;
img.onload = () => { const bitmap = await createImageBitmap(blob);
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(); const t0 = now();
this.detect(data, config).then((warmup) => { const warmup = await this.detect(bitmap, config);
const t1 = now(); const t1 = now();
bitmap.close();
log('Warmup', this.config.warmup, (t1 - t0), warmup); log('Warmup', this.config.warmup, (t1 - t0), warmup);
this.config.videoOptimized = video; this.config.videoOptimized = video;
resolve(warmup); return warmup;
});
};
if (src) img.src = src;
else resolve(null);
});
} }
} }

View File

@ -1,4 +1,5 @@
export const face = `data:image/jpeg;base64, // data:image/jpeg;base64,
export const face = `
/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA /9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA
AAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu AAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu
bmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob bmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob
@ -151,7 +152,8 @@ c6oaM5TUJ8EgGsG4kLNUHT0M64OaqMMikSRsuKbnFMRLG3zVehOaGNE445NNlnVFpDMu6uie9Vo1
ylFtbdT1xUWNWzU0/Zbwlgfmx8zGsHWtRHmMqE59aAMyNifvHPc1f0gtPdqkY5JosJHeNci2tktY ylFtbdT1xUWNWzU0/Zbwlgfmx8zGsHWtRHmMqE59aAMyNifvHPc1f0gtPdqkY5JosJHeNci2tktY
euPnNY+oXWZEVJNrZ9aun8SIq/CzodHuriIokhDIR1ronbKZr0o6o8ipoz//2Q==`; euPnNY+oXWZEVJNrZ9aun8SIq/CzodHuriIokhDIR1ronbKZr0o6o8ipoz//2Q==`;
export const body = `data:image/jpeg;base64, // data:image/jpeg;base64,
export const body = `
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAsICAoIBwsKCQoNDAsNERwSEQ8PESIZGhQcKSQrKigk /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAsICAoIBwsKCQoNDAsNERwSEQ8PESIZGhQcKSQrKigk
JyctMkA3LTA9MCcnOEw5PUNFSElIKzZPVU5GVEBHSEX/2wBDAQwNDREPESESEiFFLicuRUVFRUVF JyctMkA3LTA9MCcnOEw5PUNFSElIKzZPVU5GVEBHSEX/2wBDAQwNDREPESESEiFFLicuRUVFRUVF
RUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUX/wAARCASwBLADASIA RUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUX/wAARCASwBLADASIA