pull/97/head
Vladimir Mandic 2021-12-01 07:51:57 -05:00
parent e7fd0efd27
commit f1a2ef34a5
91 changed files with 127 additions and 173 deletions

View File

@ -31,6 +31,7 @@
"@typescript-eslint/no-var-requires": "off", "@typescript-eslint/no-var-requires": "off",
"camelcase": "off", "camelcase": "off",
"class-methods-use-this": "off", "class-methods-use-this": "off",
"default-param-last": "off",
"dot-notation": "off", "dot-notation": "off",
"func-names": "off", "func-names": "off",
"guard-for-in": "off", "guard-for-in": "off",

View File

@ -9,12 +9,15 @@
## Changelog ## Changelog
### **1.5.8** 2021/11/30 mandic00@live.com
### **origin/master** 2021/10/28 mandic00@live.com
### **1.5.7** 2021/10/28 mandic00@live.com ### **1.5.7** 2021/10/28 mandic00@live.com
### **origin/master** 2021/10/23 mandic00@live.com
### **1.5.6** 2021/10/22 mandic00@live.com ### **1.5.6** 2021/10/22 mandic00@live.com

View File

@ -10,7 +10,7 @@
"development": ["serve", "watch", "compile"] "development": ["serve", "watch", "compile"]
}, },
"clean": { "clean": {
"locations": ["dist/*", "types/*", "typedoc/*"] "locations": ["dist/*", "types/src/*", "typedoc/*"]
}, },
"lint": { "lint": {
"locations": [ "src/**" ], "locations": [ "src/**" ],

View File

@ -426,12 +426,7 @@ var Box = class {
// src/classes/BoundingBox.ts // src/classes/BoundingBox.ts
var BoundingBox = class extends Box { var BoundingBox = class extends Box {
constructor(left, top, right, bottom, allowNegativeDimensions = false) { constructor(left, top, right, bottom, allowNegativeDimensions = false) {
super({ super({ left, top, right, bottom }, allowNegativeDimensions);
left,
top,
right,
bottom
}, allowNegativeDimensions);
} }
}; };
@ -580,12 +575,7 @@ function inverseSigmoid(x) {
// src/classes/Rect.ts // src/classes/Rect.ts
var Rect = class extends Box { var Rect = class extends Box {
constructor(x, y, width, height, allowNegativeDimensions = false) { constructor(x, y, width, height, allowNegativeDimensions = false) {
super({ super({ x, y, width, height }, allowNegativeDimensions);
x,
y,
width,
height
}, allowNegativeDimensions);
} }
}; };
@ -1104,7 +1094,7 @@ function isMediaLoaded(media) {
function awaitMediaLoaded(media) { function awaitMediaLoaded(media) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) if (media instanceof env.getEnv().Canvas || isMediaLoaded(media))
return resolve(null); resolve(null);
function onError(e) { function onError(e) {
if (!e.currentTarget) if (!e.currentTarget)
return; return;
@ -2147,7 +2137,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
} }
// package.json // package.json
var version10 = "1.5.7"; var version10 = "1.5.8";
// src/xception/extractParams.ts // src/xception/extractParams.ts
function extractorsFactory2(extractWeights, paramMappings) { function extractorsFactory2(extractWeights, paramMappings) {

File diff suppressed because one or more lines are too long

20
dist/face-api.esm.js vendored
View File

@ -1368,7 +1368,7 @@ var require_long = __commonJS({
} }
}); });
var require_browser = __commonJS({ var require_browser = __commonJS({
"(disabled):node_modules/.pnpm/node-fetch@2.6.5/node_modules/node-fetch/browser.js"() { "(disabled):node_modules/.pnpm/node-fetch@2.6.6/node_modules/node-fetch/browser.js"() {
} }
}); });
var require_alea = __commonJS({ var require_alea = __commonJS({
@ -63738,12 +63738,7 @@ var Box = class {
// src/classes/BoundingBox.ts // src/classes/BoundingBox.ts
var BoundingBox = class extends Box { var BoundingBox = class extends Box {
constructor(left, top, right, bottom, allowNegativeDimensions = false) { constructor(left, top, right, bottom, allowNegativeDimensions = false) {
super({ super({ left, top, right, bottom }, allowNegativeDimensions);
left,
top,
right,
bottom
}, allowNegativeDimensions);
} }
}; };
@ -63892,12 +63887,7 @@ function inverseSigmoid(x) {
// src/classes/Rect.ts // src/classes/Rect.ts
var Rect = class extends Box { var Rect = class extends Box {
constructor(x, y, width, height, allowNegativeDimensions = false) { constructor(x, y, width, height, allowNegativeDimensions = false) {
super({ super({ x, y, width, height }, allowNegativeDimensions);
x,
y,
width,
height
}, allowNegativeDimensions);
} }
}; };
@ -64416,7 +64406,7 @@ function isMediaLoaded(media) {
function awaitMediaLoaded(media) { function awaitMediaLoaded(media) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (media instanceof env2.getEnv().Canvas || isMediaLoaded(media)) if (media instanceof env2.getEnv().Canvas || isMediaLoaded(media))
return resolve(null); resolve(null);
function onError(e) { function onError(e) {
if (!e.currentTarget) if (!e.currentTarget)
return; return;
@ -65459,7 +65449,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
} }
// package.json // package.json
var version6 = "1.5.7"; var version6 = "1.5.8";
// src/xception/extractParams.ts // src/xception/extractParams.ts
function extractorsFactory2(extractWeights, paramMappings) { function extractorsFactory2(extractWeights, paramMappings) {

File diff suppressed because one or more lines are too long

4
dist/face-api.js vendored

File diff suppressed because one or more lines are too long

View File

@ -550,12 +550,7 @@ var Box = class {
// src/classes/BoundingBox.ts // src/classes/BoundingBox.ts
var BoundingBox = class extends Box { var BoundingBox = class extends Box {
constructor(left, top, right, bottom, allowNegativeDimensions = false) { constructor(left, top, right, bottom, allowNegativeDimensions = false) {
super({ super({ left, top, right, bottom }, allowNegativeDimensions);
left,
top,
right,
bottom
}, allowNegativeDimensions);
} }
}; };
@ -706,12 +701,7 @@ function inverseSigmoid(x) {
// src/classes/Rect.ts // src/classes/Rect.ts
var Rect = class extends Box { var Rect = class extends Box {
constructor(x, y, width, height, allowNegativeDimensions = false) { constructor(x, y, width, height, allowNegativeDimensions = false) {
super({ super({ x, y, width, height }, allowNegativeDimensions);
x,
y,
width,
height
}, allowNegativeDimensions);
} }
}; };
@ -1233,7 +1223,7 @@ function isMediaLoaded(media) {
function awaitMediaLoaded(media) { function awaitMediaLoaded(media) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) if (media instanceof env.getEnv().Canvas || isMediaLoaded(media))
return resolve(null); resolve(null);
function onError(e) { function onError(e) {
if (!e.currentTarget) if (!e.currentTarget)
return; return;
@ -2302,7 +2292,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
} }
// package.json // package.json
var version = "1.5.7"; var version = "1.5.8";
// src/ageGenderNet/AgeGenderNet.ts // src/ageGenderNet/AgeGenderNet.ts
var tf20 = __toModule(require_tfjs_esm()); var tf20 = __toModule(require_tfjs_esm());

18
dist/face-api.node.js vendored
View File

@ -550,12 +550,7 @@ var Box = class {
// src/classes/BoundingBox.ts // src/classes/BoundingBox.ts
var BoundingBox = class extends Box { var BoundingBox = class extends Box {
constructor(left, top, right, bottom, allowNegativeDimensions = false) { constructor(left, top, right, bottom, allowNegativeDimensions = false) {
super({ super({ left, top, right, bottom }, allowNegativeDimensions);
left,
top,
right,
bottom
}, allowNegativeDimensions);
} }
}; };
@ -706,12 +701,7 @@ function inverseSigmoid(x) {
// src/classes/Rect.ts // src/classes/Rect.ts
var Rect = class extends Box { var Rect = class extends Box {
constructor(x, y, width, height, allowNegativeDimensions = false) { constructor(x, y, width, height, allowNegativeDimensions = false) {
super({ super({ x, y, width, height }, allowNegativeDimensions);
x,
y,
width,
height
}, allowNegativeDimensions);
} }
}; };
@ -1233,7 +1223,7 @@ function isMediaLoaded(media) {
function awaitMediaLoaded(media) { function awaitMediaLoaded(media) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) if (media instanceof env.getEnv().Canvas || isMediaLoaded(media))
return resolve(null); resolve(null);
function onError(e) { function onError(e) {
if (!e.currentTarget) if (!e.currentTarget)
return; return;
@ -2302,7 +2292,7 @@ function drawFaceLandmarks(canvasArg, faceLandmarks) {
} }
// package.json // package.json
var version = "1.5.7"; var version = "1.5.8";
// src/ageGenderNet/AgeGenderNet.ts // src/ageGenderNet/AgeGenderNet.ts
var tf20 = __toModule(require_tfjs_esm()); var tf20 = __toModule(require_tfjs_esm());

4
dist/tfjs.esm.js vendored
View File

@ -863,9 +863,9 @@ var require_long = __commonJS({
} }
}); });
// (disabled):node_modules/.pnpm/node-fetch@2.6.5/node_modules/node-fetch/browser.js // (disabled):node_modules/.pnpm/node-fetch@2.6.6/node_modules/node-fetch/browser.js
var require_browser = __commonJS({ var require_browser = __commonJS({
"(disabled):node_modules/.pnpm/node-fetch@2.6.5/node_modules/node-fetch/browser.js"() { "(disabled):node_modules/.pnpm/node-fetch@2.6.6/node_modules/node-fetch/browser.js"() {
} }
}); });

File diff suppressed because one or more lines are too long

View File

@ -66,7 +66,7 @@
"eslint-plugin-import": "^2.25.3", "eslint-plugin-import": "^2.25.3",
"eslint-plugin-json": "^3.1.0", "eslint-plugin-json": "^3.1.0",
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.1.1", "eslint-plugin-promise": "^5.2.0",
"node-fetch": "^3.1.0", "node-fetch": "^3.1.0",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"seedrandom": "^3.0.5", "seedrandom": "^3.0.5",

View File

@ -7,10 +7,8 @@ export interface IBoundingBox {
bottom: number bottom: number
} }
export class BoundingBox extends Box<BoundingBox> implements IBoundingBox { export class BoundingBox extends Box implements IBoundingBox {
constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions = false) { constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions = false) {
super({ super({ left, top, right, bottom }, allowNegativeDimensions);
left, top, right, bottom,
}, allowNegativeDimensions);
} }
} }

View File

@ -3,10 +3,9 @@ import { IBoundingBox } from './BoundingBox';
import { Box } from './Box'; import { Box } from './Box';
import { IRect } from './Rect'; import { IRect } from './Rect';
export class LabeledBox extends Box<LabeledBox> { export class LabeledBox extends Box {
public static assertIsValidLabeledBox(box: any, callee: string) { public static assertIsValidLabeledBox(box: any, callee: string) {
Box.assertIsValidBox(box, callee); Box.assertIsValidBox(box, callee);
if (!isValidNumber(box.label)) { if (!isValidNumber(box.label)) {
throw new Error(`${callee} - expected property label (${box.label}) to be a number`); throw new Error(`${callee} - expected property label (${box.label}) to be a number`);
} }

View File

@ -7,10 +7,8 @@ export interface IRect {
height: number height: number
} }
export class Rect extends Box<Rect> implements IRect { export class Rect extends Box implements IRect {
constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions = false) { constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions = false) {
super({ super({ x, y, width, height }, allowNegativeDimensions);
x, y, width, height,
}, allowNegativeDimensions);
} }
} }

View File

@ -4,7 +4,7 @@ import { isMediaLoaded } from './isMediaLoaded';
export function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) { export function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {
// eslint-disable-next-line consistent-return // eslint-disable-next-line consistent-return
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) return resolve(null); if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) resolve(null);
function onError(e: Event) { function onError(e: Event) {
if (!e.currentTarget) return; if (!e.currentTarget) return;

View File

@ -7,12 +7,7 @@ import { DrawTextField } from './DrawTextField';
export type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}> export type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>
export function drawFaceExpressions( export function drawFaceExpressions(canvasArg: string | HTMLCanvasElement, faceExpressions: DrawFaceExpressionsInput | Array<DrawFaceExpressionsInput>, minConfidence = 0.1, textFieldAnchor?: IPoint) {
canvasArg: string | HTMLCanvasElement,
faceExpressions: DrawFaceExpressionsInput | Array<DrawFaceExpressionsInput>,
minConfidence = 0.1,
textFieldAnchor?: IPoint,
) {
const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions]; const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];
faceExpressionsArray.forEach((e) => { faceExpressionsArray.forEach((e) => {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
types/dist/tfjs.esm.d.ts vendored Normal file
View File

@ -0,0 +1 @@
export * from '@tensorflow/tfjs';

View File

@ -12,15 +12,15 @@ export declare abstract class NeuralNetwork<TNetParams> {
reassignParamFromPath(paramPath: string, tensor: tf.Tensor): void; reassignParamFromPath(paramPath: string, tensor: tf.Tensor): void;
getParamList(): { getParamList(): {
path: string; path: string;
tensor: any; tensor: tf.Tensor;
}[]; }[];
getTrainableParams(): { getTrainableParams(): {
path: string; path: string;
tensor: any; tensor: tf.Tensor;
}[]; }[];
getFrozenParams(): { getFrozenParams(): {
path: string; path: string;
tensor: any; tensor: tf.Tensor;
}[]; }[];
variable(): void; variable(): void;
freeze(): void; freeze(): void;

View File

@ -5,6 +5,6 @@ export interface IBoundingBox {
right: number; right: number;
bottom: number; bottom: number;
} }
export declare class BoundingBox extends Box<BoundingBox> implements IBoundingBox { export declare class BoundingBox extends Box implements IBoundingBox {
constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions?: boolean); constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions?: boolean);
} }

View File

@ -1,7 +1,7 @@
import { IBoundingBox } from './BoundingBox'; import { IBoundingBox } from './BoundingBox';
import { Box } from './Box'; import { Box } from './Box';
import { IRect } from './Rect'; import { IRect } from './Rect';
export declare class LabeledBox extends Box<LabeledBox> { export declare class LabeledBox extends Box {
static assertIsValidLabeledBox(box: any, callee: string): void; static assertIsValidLabeledBox(box: any, callee: string): void;
private _label; private _label;
constructor(box: IBoundingBox | IRect | any, label: number); constructor(box: IBoundingBox | IRect | any, label: number);

View File

@ -5,6 +5,6 @@ export interface IRect {
width: number; width: number;
height: number; height: number;
} }
export declare class Rect extends Box<Rect> implements IRect { export declare class Rect extends Box implements IRect {
constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions?: boolean); constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions?: boolean);
} }

View File

@ -3,12 +3,11 @@ import { NetInput, TNetInput } from '../dom/index';
import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor'; import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';
import { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types'; import { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';
import { FaceProcessor } from '../faceProcessor/FaceProcessor'; import { FaceProcessor } from '../faceProcessor/FaceProcessor';
import { FaceExpressions } from './FaceExpressions';
export declare class FaceExpressionNet extends FaceProcessor<FaceFeatureExtractorParams> { export declare class FaceExpressionNet extends FaceProcessor<FaceFeatureExtractorParams> {
constructor(faceFeatureExtractor?: FaceFeatureExtractor); constructor(faceFeatureExtractor?: FaceFeatureExtractor);
forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D; forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D;
forward(input: TNetInput): Promise<tf.Tensor2D>; forward(input: TNetInput): Promise<tf.Tensor2D>;
predictExpressions(input: TNetInput): Promise<FaceExpressions | FaceExpressions[]>; predictExpressions(input: TNetInput): Promise<any>;
protected getDefaultModelName(): string; protected getDefaultModelName(): string;
protected getClassifierChannelsIn(): number; protected getClassifierChannelsIn(): number;
protected getClassifierChannelsOut(): number; protected getClassifierChannelsOut(): number;

View File

@ -1,5 +1,5 @@
import * as tf from '../../dist/tfjs.esm'; import * as tf from '../../dist/tfjs.esm';
export declare function seperateWeightMaps(weightMap: tf.NamedTensorMap): { export declare function seperateWeightMaps(weightMap: tf.NamedTensorMap): {
featureExtractorMap: any; featureExtractorMap: tf.NamedTensorMap;
classifierMap: any; classifierMap: tf.NamedTensorMap;
}; };

View File

@ -1,5 +1,5 @@
import * as tf from '../../dist/tfjs.esm'; import * as tf from '../../dist/tfjs.esm';
import { ConvLayerParams } from './types'; import { ConvLayerParams } from './types';
export declare function conv(x: tf.Tensor4D, params: ConvLayerParams): any; export declare function conv(x: tf.Tensor4D, params: ConvLayerParams): tf.Tensor4D;
export declare function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams): any; export declare function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams): tf.Tensor4D;
export declare function convDown(x: tf.Tensor4D, params: ConvLayerParams): any; export declare function convDown(x: tf.Tensor4D, params: ConvLayerParams): tf.Tensor4D;