mirror of https://github.com/vladmandic/human
added demo load image from http
parent
547d599479
commit
cbc7ff9276
14
demo/node.js
14
demo/node.js
|
@ -1,6 +1,7 @@
|
||||||
const log = require('@vladmandic/pilogger');
|
const log = require('@vladmandic/pilogger');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const process = require('process');
|
const process = require('process');
|
||||||
|
const fetch = require('node-fetch').default;
|
||||||
|
|
||||||
// for NodeJS, `tfjs-node` or `tfjs-node-gpu` should be loaded before using Human
|
// for NodeJS, `tfjs-node` or `tfjs-node-gpu` should be loaded before using Human
|
||||||
const tf = require('@tensorflow/tfjs-node'); // or const tf = require('@tensorflow/tfjs-node-gpu');
|
const tf = require('@tensorflow/tfjs-node'); // or const tf = require('@tensorflow/tfjs-node-gpu');
|
||||||
|
@ -49,7 +50,16 @@ async function init() {
|
||||||
|
|
||||||
async function detect(input) {
|
async function detect(input) {
|
||||||
// read input image file and create tensor to be used for processing
|
// read input image file and create tensor to be used for processing
|
||||||
const buffer = fs.readFileSync(input);
|
let buffer;
|
||||||
|
log.info('Loading image:', input);
|
||||||
|
if (input.startsWith('http')) {
|
||||||
|
const res = await fetch(input);
|
||||||
|
const mime = res.headers.get('content-type');
|
||||||
|
if (res && res.ok) buffer = await res.buffer();
|
||||||
|
else log.error('Invalid image URL:', input, res.status, res.statusText, mime);
|
||||||
|
} else {
|
||||||
|
buffer = fs.readFileSync(input);
|
||||||
|
}
|
||||||
const decoded = human.tf.node.decodeImage(buffer);
|
const decoded = human.tf.node.decodeImage(buffer);
|
||||||
const casted = decoded.toFloat();
|
const casted = decoded.toFloat();
|
||||||
const image = casted.expandDims(0);
|
const image = casted.expandDims(0);
|
||||||
|
@ -111,7 +121,7 @@ async function main() {
|
||||||
if (process.argv.length !== 3) {
|
if (process.argv.length !== 3) {
|
||||||
log.warn('Parameters: <input image> missing');
|
log.warn('Parameters: <input image> missing');
|
||||||
await test();
|
await test();
|
||||||
} else if (!fs.existsSync(process.argv[2])) {
|
} else if (!fs.existsSync(process.argv[2]) && !process.argv[2].startsWith('http')) {
|
||||||
log.error(`File not found: ${process.argv[2]}`);
|
log.error(`File not found: ${process.argv[2]}`);
|
||||||
} else {
|
} else {
|
||||||
await detect(process.argv[2]);
|
await detect(process.argv[2]);
|
||||||
|
|
Loading…
Reference in New Issue