face-api/build/utils/index.js

49 lines
1.5 KiB
JavaScript
Raw Normal View History

2020-08-20 02:10:42 +02:00
import * as tf from '@tensorflow/tfjs-core';
import { Point } from '../classes';
import { Dimensions } from '../classes/Dimensions';
export function isTensor(tensor, dim) {
2020-08-18 14:04:33 +02:00
return tensor instanceof tf.Tensor && tensor.shape.length === dim;
}
2020-08-20 02:10:42 +02:00
export function isTensor1D(tensor) {
2020-08-18 14:04:33 +02:00
return isTensor(tensor, 1);
}
2020-08-20 02:10:42 +02:00
export function isTensor2D(tensor) {
2020-08-18 14:04:33 +02:00
return isTensor(tensor, 2);
}
2020-08-20 02:10:42 +02:00
export function isTensor3D(tensor) {
2020-08-18 14:04:33 +02:00
return isTensor(tensor, 3);
}
2020-08-20 02:10:42 +02:00
export function isTensor4D(tensor) {
2020-08-18 14:04:33 +02:00
return isTensor(tensor, 4);
}
2020-08-20 02:10:42 +02:00
export function isFloat(num) {
2020-08-18 14:04:33 +02:00
return num % 1 !== 0;
}
2020-08-20 02:10:42 +02:00
export function isEven(num) {
2020-08-18 14:04:33 +02:00
return num % 2 === 0;
}
2020-08-20 02:10:42 +02:00
export function round(num, prec = 2) {
2020-08-18 14:04:33 +02:00
const f = Math.pow(10, prec);
return Math.floor(num * f) / f;
}
2020-08-20 02:10:42 +02:00
export function isDimensions(obj) {
2020-08-18 14:04:33 +02:00
return obj && obj.width && obj.height;
}
2020-08-20 02:10:42 +02:00
export function computeReshapedDimensions({ width, height }, inputSize) {
2020-08-18 14:04:33 +02:00
const scale = inputSize / Math.max(height, width);
2020-08-20 02:10:42 +02:00
return new Dimensions(Math.round(width * scale), Math.round(height * scale));
2020-08-18 14:04:33 +02:00
}
2020-08-20 02:10:42 +02:00
export function getCenterPoint(pts) {
return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))
.div(new Point(pts.length, pts.length));
2020-08-18 14:04:33 +02:00
}
2020-08-20 02:10:42 +02:00
export function range(num, start, step) {
2020-08-18 14:04:33 +02:00
return Array(num).fill(0).map((_, i) => start + (i * step));
}
2020-08-20 02:10:42 +02:00
export function isValidNumber(num) {
2020-08-18 14:04:33 +02:00
return !!num && num !== Infinity && num !== -Infinity && !isNaN(num) || num === 0;
}
2020-08-20 02:10:42 +02:00
export function isValidProbablitiy(num) {
2020-08-18 14:04:33 +02:00
return isValidNumber(num) && 0 <= num && num <= 1.0;
}
//# sourceMappingURL=index.js.map