update samples with images under cc licence only
|
@ -9,11 +9,11 @@
|
|||
|
||||
## Changelog
|
||||
|
||||
### **HEAD -> main** 2022/01/14 mandic00@live.com
|
||||
|
||||
|
||||
### **2.5.8** 2022/01/14 mandic00@live.com
|
||||
|
||||
|
||||
### **origin/main** 2022/01/08 mandic00@live.com
|
||||
|
||||
- fix samples
|
||||
- fix(src): typo
|
||||
- change on how face box is calculated
|
||||
|
|
|
@ -3,8 +3,8 @@ const path = require('path');
|
|||
const process = require('process');
|
||||
const log = require('@vladmandic/pilogger');
|
||||
const canvas = require('canvas');
|
||||
const tf = require('@tensorflow/tfjs-node'); // for nodejs, `tfjs-node` or `tfjs-node-gpu` should be loaded before using Human
|
||||
const Human = require('../../dist/human.node.js'); // this is 'const Human = require('../dist/human.node-gpu.js').default;'
|
||||
// const tf = require('@tensorflow/tfjs-node-gpu'); // for nodejs, `tfjs-node` or `tfjs-node-gpu` should be loaded before using Human
|
||||
const Human = require('../../dist/human.node-gpu.js'); // this is 'const Human = require('../dist/human.node-gpu.js').default;'
|
||||
|
||||
const config = { // just enable all and leave default settings
|
||||
debug: true,
|
||||
|
@ -56,19 +56,21 @@ async function main() {
|
|||
log.state('Loaded image:', inFile, tensor.shape);
|
||||
|
||||
const result = await human.detect(tensor);
|
||||
tf.dispose(tensor);
|
||||
human.tf.dispose(tensor);
|
||||
log.data(`Detected: ${image}:`, 'Face:', result.face.length, 'Body:', result.body.length, 'Hand:', result.hand.length, 'Objects:', result.object.length, 'Gestures:', result.gesture.length);
|
||||
|
||||
const outputCanvas = new canvas.Canvas(tensor.shape[2], tensor.shape[1]); // create canvas
|
||||
const outputCtx = outputCanvas.getContext('2d');
|
||||
const inputImage = await canvas.loadImage(buffer); // load image using canvas library
|
||||
outputCtx.drawImage(inputImage, 0, 0); // draw input image onto canvas
|
||||
// @ts-ignore
|
||||
human.draw.all(outputCanvas, result); // use human build-in method to draw results as overlays on canvas
|
||||
const outFile = path.join(outDir, image);
|
||||
const outStream = fs.createWriteStream(outFile); // write canvas to new image file
|
||||
outStream.on('finish', () => log.state('Output image:', outFile, outputCanvas.width, outputCanvas.height));
|
||||
outStream.on('error', (err) => log.error('Output error:', outFile, err));
|
||||
const stream = outputCanvas.createJPEGStream({ quality: 0.5, progressive: true, chromaSubsampling: true });
|
||||
// @ts-ignore
|
||||
stream.pipe(outStream);
|
||||
}
|
||||
}
|
||||
|
|
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 198 KiB |
After Width: | Height: | Size: 190 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 146 KiB |
After Width: | Height: | Size: 142 KiB |
After Width: | Height: | Size: 139 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 104 KiB |
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 111 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 111 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 107 KiB |
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 108 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 86 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 98 KiB |
|
@ -45,11 +45,13 @@
|
|||
'person-carolina.jpg', 'person-celeste.jpg', 'person-leila1.jpg', 'person-leila2.jpg', 'person-lexi.jpg', 'person-linda.jpg', 'person-nicole.jpg', 'person-tasia.jpg',
|
||||
'person-tetiana.jpg', 'person-vlado1.jpg', 'person-vlado5.jpg', 'person-vlado.jpg', 'person-christina.jpg', 'person-lauren.jpg',
|
||||
'group-1.jpg', 'group-2.jpg', 'group-3.jpg', 'group-4.jpg', 'group-5.jpg', 'group-6.jpg', 'group-7.jpg',
|
||||
'daz3d-brianna.jpg', 'daz3d-chiyo.jpg', 'daz3d-cody.jpg', 'daz3d-drew-01.jpg', 'daz3d-drew-02.jpg', 'daz3d-ella-01.jpg', 'daz3d-ella-02.jpg', 'daz3d-gillian.jpg',
|
||||
'daz3d-hye-01.jpg', 'daz3d-hye-02.jpg', 'daz3d-kaia.jpg', 'daz3d-karen.jpg', 'daz3d-kiaria-01.jpg', 'daz3d-kiaria-02.jpg', 'daz3d-lilah-01.jpg', 'daz3d-lilah-02.jpg',
|
||||
'daz3d-lilah-03.jpg', 'daz3d-lila.jpg', 'daz3d-lindsey.jpg', 'daz3d-megah.jpg', 'daz3d-selina-01.jpg', 'daz3d-selina-02.jpg', 'daz3d-snow.jpg',
|
||||
'daz3d-sunshine.jpg', 'daz3d-taia.jpg', 'daz3d-tuesday-01.jpg', 'daz3d-tuesday-02.jpg', 'daz3d-tuesday-03.jpg', 'daz3d-zoe.jpg', 'daz3d-ginnifer.jpg',
|
||||
'daz3d-_emotions01.jpg', 'daz3d-_emotions02.jpg', 'daz3d-_emotions03.jpg', 'daz3d-_emotions04.jpg', 'daz3d-_emotions05.jpg',
|
||||
'cgi-model-1.jpg', 'cgi-model-10.jpg', 'cgi-model-11.jpg', 'cgi-model-12.jpg', 'cgi-model-13.jpg', 'cgi-model-14.jpg', 'cgi-model-15.jpg', 'cgi-model-16.jpg',
|
||||
'cgi-model-17.jpg', 'cgi-model-18.jpg', 'cgi-model-19.jpg', 'cgi-model-2.jpg', 'cgi-model-20.jpg', 'cgi-model-21.jpg', 'cgi-model-22.jpg', 'cgi-model-23.jpg',
|
||||
'cgi-model-24.jpg', 'cgi-model-25.jpg', 'cgi-model-26.jpg', 'cgi-model-27.jpg', 'cgi-model-28.jpg', 'cgi-model-29.jpg', 'cgi-model-3.jpg', 'cgi-model-30.jpg',
|
||||
'cgi-model-31.jpg', 'cgi-model-32.jpg', 'cgi-model-33.jpg', 'cgi-model-34.jpg', 'cgi-model-35.jpg', 'cgi-model-36.jpg', 'cgi-model-4.jpg', 'cgi-model-5.jpg',
|
||||
'cgi-model-6.jpg', 'cgi-model-7.jpg', 'cgi-model-8.jpg', 'cgi-model-9.jpg', 'cgi-multiangle-1.jpg', 'cgi-multiangle-10.jpg', 'cgi-multiangle-11.jpg',
|
||||
'cgi-multiangle-2.jpg', 'cgi-multiangle-3.jpg', 'cgi-multiangle-4.jpg', 'cgi-multiangle-5.jpg', 'cgi-multiangle-6.jpg', 'cgi-multiangle-7.jpg', 'cgi-multiangle-8.jpg', 'cgi-multiangle-9.jpg',
|
||||
'cgi-group-1.jpg', 'cgi-group-2.jpg', 'cgi-group-3.jpg',
|
||||
];
|
||||
const image = document.getElementById('image');
|
||||
image.addEventListener('click', () => {
|
||||
|
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 178 KiB |
After Width: | Height: | Size: 170 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 104 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 79 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 81 KiB |
After Width: | Height: | Size: 111 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 136 KiB |
After Width: | Height: | Size: 104 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 105 KiB |
Before Width: | Height: | Size: 390 KiB After Width: | Height: | Size: 346 KiB |
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 130 KiB |
Before Width: | Height: | Size: 319 KiB After Width: | Height: | Size: 310 KiB |
Before Width: | Height: | Size: 293 KiB After Width: | Height: | Size: 287 KiB |
Before Width: | Height: | Size: 443 KiB After Width: | Height: | Size: 400 KiB |
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 223 KiB |
Before Width: | Height: | Size: 245 KiB After Width: | Height: | Size: 219 KiB |
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 116 KiB |