Commit 0381e197 by vincent

check in latest build

parent 5fefdcd5
import { Rect } from './Rect'; import { Rect } from './Rect';
import { Dimensions } from './types';
export declare class BoundingBox { export declare class BoundingBox {
private _left; private _left;
private _top; private _top;
...@@ -11,6 +12,7 @@ export declare class BoundingBox { ...@@ -11,6 +12,7 @@ export declare class BoundingBox {
readonly bottom: number; readonly bottom: number;
readonly width: number; readonly width: number;
readonly height: number; readonly height: number;
readonly area: number;
toSquare(): BoundingBox; toSquare(): BoundingBox;
round(): BoundingBox; round(): BoundingBox;
padAtBorders(imageHeight: number, imageWidth: number): { padAtBorders(imageHeight: number, imageWidth: number): {
...@@ -26,5 +28,6 @@ export declare class BoundingBox { ...@@ -26,5 +28,6 @@ export declare class BoundingBox {
h: number; h: number;
}; };
calibrate(region: BoundingBox): BoundingBox; calibrate(region: BoundingBox): BoundingBox;
rescale(s: Dimensions | number): BoundingBox;
toRect(): Rect; toRect(): Rect;
} }
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
var Rect_1 = require("./Rect"); var Rect_1 = require("./Rect");
var utils_1 = require("./utils");
var BoundingBox = /** @class */ (function () { var BoundingBox = /** @class */ (function () {
function BoundingBox(_left, _top, _right, _bottom) { function BoundingBox(_left, _top, _right, _bottom) {
this._left = _left; this._left = _left;
...@@ -50,6 +51,13 @@ var BoundingBox = /** @class */ (function () { ...@@ -50,6 +51,13 @@ var BoundingBox = /** @class */ (function () {
enumerable: true, enumerable: true,
configurable: true configurable: true
}); });
Object.defineProperty(BoundingBox.prototype, "area", {
get: function () {
return this.width * this.height;
},
enumerable: true,
configurable: true
});
BoundingBox.prototype.toSquare = function () { BoundingBox.prototype.toSquare = function () {
var _a = this, left = _a.left, top = _a.top, right = _a.right, bottom = _a.bottom; var _a = this, left = _a.left, top = _a.top, right = _a.right, bottom = _a.bottom;
var off = (Math.abs(this.width - this.height) / 2); var off = (Math.abs(this.width - this.height) / 2);
...@@ -98,6 +106,11 @@ var BoundingBox = /** @class */ (function () { ...@@ -98,6 +106,11 @@ var BoundingBox = /** @class */ (function () {
BoundingBox.prototype.calibrate = function (region) { BoundingBox.prototype.calibrate = function (region) {
return new BoundingBox(this.left + (region.left * this.width), this.top + (region.top * this.height), this.right + (region.right * this.width), this.bottom + (region.bottom * this.height)).toSquare().round(); return new BoundingBox(this.left + (region.left * this.width), this.top + (region.top * this.height), this.right + (region.right * this.width), this.bottom + (region.bottom * this.height)).toSquare().round();
}; };
BoundingBox.prototype.rescale = function (s) {
var scaleX = utils_1.isDimensions(s) ? s.width : s;
var scaleY = utils_1.isDimensions(s) ? s.height : s;
return new BoundingBox(this.left * scaleX, this.top * scaleY, this.right * scaleX, this.bottom * scaleY);
};
BoundingBox.prototype.toRect = function () { BoundingBox.prototype.toRect = function () {
return new Rect_1.Rect(this.left, this.top, this.width, this.height); return new Rect_1.Rect(this.left, this.top, this.width, this.height);
}; };
......
{"version":3,"file":"BoundingBox.js","sourceRoot":"","sources":["../src/BoundingBox.ts"],"names":[],"mappings":"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"} {"version":3,"file":"BoundingBox.js","sourceRoot":"","sources":["../src/BoundingBox.ts"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
import * as tf from '@tensorflow/tfjs-core'; import * as tf from '@tensorflow/tfjs-core';
import { Point } from './Point'; import { Point } from './Point';
import { TResolvedNetInput } from './types'; import { TResolvedNetInput, Dimensions } from './types';
export declare class NetInput { export declare class NetInput {
private _inputs; private _inputs;
private _canvases; private _canvases;
...@@ -8,6 +8,7 @@ export declare class NetInput { ...@@ -8,6 +8,7 @@ export declare class NetInput {
private _isBatchInput; private _isBatchInput;
private _inputDimensions; private _inputDimensions;
private _paddings; private _paddings;
private _inputSize;
constructor(inputs: tf.Tensor4D | Array<TResolvedNetInput>, isBatchInput?: boolean, keepCanvases?: boolean); constructor(inputs: tf.Tensor4D | Array<TResolvedNetInput>, isBatchInput?: boolean, keepCanvases?: boolean);
readonly inputs: tf.Tensor3D[]; readonly inputs: tf.Tensor3D[];
readonly canvases: HTMLCanvasElement[]; readonly canvases: HTMLCanvasElement[];
...@@ -16,13 +17,18 @@ export declare class NetInput { ...@@ -16,13 +17,18 @@ export declare class NetInput {
readonly batchSize: number; readonly batchSize: number;
readonly inputDimensions: number[][]; readonly inputDimensions: number[][];
readonly paddings: Point[]; readonly paddings: Point[];
readonly inputSize: number;
readonly relativePaddings: Point[];
readonly reshapedInputDimensions: Dimensions[];
getInputDimensions(batchIdx: number): number[]; getInputDimensions(batchIdx: number): number[];
getInputHeight(batchIdx: number): number; getInputHeight(batchIdx: number): number;
getInputWidth(batchIdx: number): number; getInputWidth(batchIdx: number): number;
getPaddings(batchIdx: number): Point; getPaddings(batchIdx: number): Point;
getRelativePaddings(batchIdx: number): Point;
getReshapedInputDimensions(batchIdx: number): Dimensions;
toBatchTensor(inputSize: number, isCenterInputs?: boolean): tf.Tensor4D; toBatchTensor(inputSize: number, isCenterInputs?: boolean): tf.Tensor4D;
/** /**
* By setting the isManaged flag, all newly created tensors will be automatically * By setting the isManaged flag, all newly created tensors will be
* automatically disposed after the batch tensor has been created * automatically disposed after the batch tensor has been created
*/ */
managed(): this; managed(): this;
......
...@@ -16,6 +16,7 @@ var NetInput = /** @class */ (function () { ...@@ -16,6 +16,7 @@ var NetInput = /** @class */ (function () {
this._isBatchInput = false; this._isBatchInput = false;
this._inputDimensions = []; this._inputDimensions = [];
this._paddings = []; this._paddings = [];
this._inputSize = 0;
if (isTensor_1.isTensor4D(inputs)) { if (isTensor_1.isTensor4D(inputs)) {
this._inputs = tf.unstack(inputs); this._inputs = tf.unstack(inputs);
} }
...@@ -92,6 +93,29 @@ var NetInput = /** @class */ (function () { ...@@ -92,6 +93,29 @@ var NetInput = /** @class */ (function () {
enumerable: true, enumerable: true,
configurable: true configurable: true
}); });
Object.defineProperty(NetInput.prototype, "inputSize", {
get: function () {
return this._inputSize;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NetInput.prototype, "relativePaddings", {
get: function () {
var _this = this;
return Array(this.inputs.length).fill(0).map(function (_, batchIdx) { return _this.getRelativePaddings(batchIdx); });
},
enumerable: true,
configurable: true
});
Object.defineProperty(NetInput.prototype, "reshapedInputDimensions", {
get: function () {
var _this = this;
return Array(this.inputs.length).fill(0).map(function (_, batchIdx) { return _this.getReshapedInputDimensions(batchIdx); });
},
enumerable: true,
configurable: true
});
NetInput.prototype.getInputDimensions = function (batchIdx) { NetInput.prototype.getInputDimensions = function (batchIdx) {
return this._inputDimensions[batchIdx]; return this._inputDimensions[batchIdx];
}; };
...@@ -104,9 +128,21 @@ var NetInput = /** @class */ (function () { ...@@ -104,9 +128,21 @@ var NetInput = /** @class */ (function () {
NetInput.prototype.getPaddings = function (batchIdx) { NetInput.prototype.getPaddings = function (batchIdx) {
return this._paddings[batchIdx]; return this._paddings[batchIdx];
}; };
NetInput.prototype.getRelativePaddings = function (batchIdx) {
return new Point_1.Point((this.getPaddings(batchIdx).x + this.getInputWidth(batchIdx)) / this.getInputWidth(batchIdx), (this.getPaddings(batchIdx).y + this.getInputHeight(batchIdx)) / this.getInputHeight(batchIdx));
};
NetInput.prototype.getReshapedInputDimensions = function (batchIdx) {
var _a = [this.getInputHeight(batchIdx), this.getInputWidth(batchIdx)], h = _a[0], w = _a[1];
var f = this.inputSize / Math.max(h, w);
return {
height: Math.floor(h * f),
width: Math.floor(w * f)
};
};
NetInput.prototype.toBatchTensor = function (inputSize, isCenterInputs) { NetInput.prototype.toBatchTensor = function (inputSize, isCenterInputs) {
var _this = this; var _this = this;
if (isCenterInputs === void 0) { isCenterInputs = true; } if (isCenterInputs === void 0) { isCenterInputs = true; }
this._inputSize = inputSize;
return tf.tidy(function () { return tf.tidy(function () {
var inputTensors = _this._inputs.map(function (inputTensor) { var inputTensors = _this._inputs.map(function (inputTensor) {
var _a = inputTensor.shape, originalHeight = _a[0], originalWidth = _a[1]; var _a = inputTensor.shape, originalHeight = _a[0], originalWidth = _a[1];
...@@ -127,7 +163,7 @@ var NetInput = /** @class */ (function () { ...@@ -127,7 +163,7 @@ var NetInput = /** @class */ (function () {
}); });
}; };
/** /**
* By setting the isManaged flag, all newly created tensors will be automatically * By setting the isManaged flag, all newly created tensors will be
* automatically disposed after the batch tensor has been created * automatically disposed after the batch tensor has been created
*/ */
NetInput.prototype.managed = function () { NetInput.prototype.managed = function () {
......
{"version":3,"file":"NetInput.js","sourceRoot":"","sources":["../src/NetInput.ts"],"names":[],"mappings":"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"} {"version":3,"file":"NetInput.js","sourceRoot":"","sources":["../src/NetInput.ts"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
import { BoundingBox } from './BoundingBox';
export interface IRect { export interface IRect {
x: number; x: number;
y: number; y: number;
...@@ -15,5 +16,6 @@ export declare class Rect implements IRect { ...@@ -15,5 +16,6 @@ export declare class Rect implements IRect {
toSquare(): Rect; toSquare(): Rect;
pad(padX: number, padY: number): Rect; pad(padX: number, padY: number): Rect;
floor(): Rect; floor(): Rect;
toBoundingBox(): BoundingBox;
clipAtImageBorders(imgWidth: number, imgHeight: number): Rect; clipAtImageBorders(imgWidth: number, imgHeight: number): Rect;
} }
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
var BoundingBox_1 = require("./BoundingBox");
var Rect = /** @class */ (function () { var Rect = /** @class */ (function () {
function Rect(x, y, width, height) { function Rect(x, y, width, height) {
this.x = x; this.x = x;
...@@ -41,6 +42,9 @@ var Rect = /** @class */ (function () { ...@@ -41,6 +42,9 @@ var Rect = /** @class */ (function () {
Rect.prototype.floor = function () { Rect.prototype.floor = function () {
return new Rect(Math.floor(this.x), Math.floor(this.y), Math.floor(this.width), Math.floor(this.height)); return new Rect(Math.floor(this.x), Math.floor(this.y), Math.floor(this.width), Math.floor(this.height));
}; };
Rect.prototype.toBoundingBox = function () {
return new BoundingBox_1.BoundingBox(this.x, this.y, this.x + this.width, this.y + this.height);
};
Rect.prototype.clipAtImageBorders = function (imgWidth, imgHeight) { Rect.prototype.clipAtImageBorders = function (imgWidth, imgHeight) {
var _a = this, x = _a.x, y = _a.y, right = _a.right, bottom = _a.bottom; var _a = this, x = _a.x, y = _a.y, right = _a.right, bottom = _a.bottom;
var clippedX = Math.max(x, 0); var clippedX = Math.max(x, 0);
......
{"version":3,"file":"Rect.js","sourceRoot":"","sources":["../src/Rect.ts"],"names":[],"mappings":";;AAOA;IAME,cAAY,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;QAC7D,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACV,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,sBAAW,uBAAK;aAAhB;YACE,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5B,CAAC;;;OAAA;IAED,sBAAW,wBAAM;aAAjB;YACE,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;QAC7B,CAAC;;;OAAA;IAEM,uBAAQ,GAAf;QACM,IAAA,SAA8B,EAA5B,QAAC,EAAE,QAAC,EAAE,gBAAK,EAAE,kBAAM,CAAS;QAClC,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAA;QACrC,IAAI,KAAK,GAAG,MAAM,EAAE;YAClB,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;YACf,KAAK,IAAI,IAAI,CAAA;SACd;QACD,IAAI,MAAM,GAAG,KAAK,EAAE;YAClB,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;YACf,MAAM,IAAI,IAAI,CAAA;SACf;QACD,OAAO,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACtC,CAAC;IAEM,kBAAG,GAAV,UAAW,IAAY,EAAE,IAAY;QAC/B,IAAA,SAA8B,EAA5B,QAAC,EAAE,QAAC,EAAE,gBAAK,EAAE,kBAAM,CAAS;QAClC,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;IAC9E,CAAC;IAEM,oBAAK,GAAZ;QACE,OAAO,IAAI,IAAI,CACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CACxB,CAAA;IACH,CAAC;IAEM,iCAAkB,GAAzB,UAA0B,QAAgB,EAAE,SAAiB;QACrD,IAAA,SAA8B,EAA5B,QAAC,EAAE,QAAC,EAAE,gBAAK,EAAE,kBAAM,CAAS;QACpC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/B,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAE/B,IAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAA;QACjC,IAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAA;QACnC,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAA;QAC5D,IAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAA;QAE/D,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;IAC5E,CAAC;IACH,WAAC;AAAD,CAAC,AA7DD,IA6DC;AA7DY,oBAAI"} {"version":3,"file":"Rect.js","sourceRoot":"","sources":["../src/Rect.ts"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
import { TinyYolov2 } from '.';
import { FaceDetectionNet } from './faceDetectionNet/FaceDetectionNet'; import { FaceDetectionNet } from './faceDetectionNet/FaceDetectionNet';
import { FaceLandmarkNet } from './faceLandmarkNet/FaceLandmarkNet'; import { FaceLandmarkNet } from './faceLandmarkNet/FaceLandmarkNet';
import { FaceRecognitionNet } from './faceRecognitionNet/FaceRecognitionNet'; import { FaceRecognitionNet } from './faceRecognitionNet/FaceRecognitionNet';
import { FullFaceDescription } from './FullFaceDescription'; import { FullFaceDescription } from './FullFaceDescription';
import { Mtcnn } from './mtcnn/Mtcnn'; import { Mtcnn } from './mtcnn/Mtcnn';
import { MtcnnForwardParams } from './mtcnn/types'; import { MtcnnForwardParams } from './mtcnn/types';
import { TinyYolov2ForwardParams } from './tinyYolov2/types';
import { TNetInput } from './types'; import { TNetInput } from './types';
export declare function allFacesFactory(detectionNet: FaceDetectionNet, landmarkNet: FaceLandmarkNet, recognitionNet: FaceRecognitionNet): (input: TNetInput, minConfidence?: number, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>; export declare function allFacesSsdMobilenetv1Factory(ssdMobilenetv1: FaceDetectionNet, landmarkNet: FaceLandmarkNet, recognitionNet: FaceRecognitionNet): (input: TNetInput, minConfidence?: number, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>;
export declare function allFacesTinyYolov2Factory(tinyYolov2: TinyYolov2, landmarkNet: FaceLandmarkNet, recognitionNet: FaceRecognitionNet): (input: TNetInput, forwardParams?: TinyYolov2ForwardParams, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>;
export declare function allFacesMtcnnFactory(mtcnn: Mtcnn, recognitionNet: FaceRecognitionNet): (input: TNetInput, mtcnnForwardParams?: MtcnnForwardParams, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>; export declare function allFacesMtcnnFactory(mtcnn: Mtcnn, recognitionNet: FaceRecognitionNet): (input: TNetInput, mtcnnForwardParams?: MtcnnForwardParams, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>;
...@@ -30,16 +30,15 @@ function computeDescriptorsFactory(recognitionNet) { ...@@ -30,16 +30,15 @@ function computeDescriptorsFactory(recognitionNet) {
}); });
}; };
} }
function allFacesFactory(detectionNet, landmarkNet, recognitionNet) { function allFacesFactory(detectFaces, landmarkNet, recognitionNet) {
var computeDescriptors = computeDescriptorsFactory(recognitionNet); var computeDescriptors = computeDescriptorsFactory(recognitionNet);
return function (input, minConfidence, useBatchProcessing) { return function (input, useBatchProcessing) {
if (minConfidence === void 0) { minConfidence = 0.8; }
if (useBatchProcessing === void 0) { useBatchProcessing = false; } if (useBatchProcessing === void 0) { useBatchProcessing = false; }
return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__awaiter(this, void 0, void 0, function () {
var detections, faceTensors, faceLandmarksByFace, _a, alignedFaceBoxes, descriptors; var detections, faceTensors, faceLandmarksByFace, _a, alignedFaceBoxes, descriptors;
return tslib_1.__generator(this, function (_b) { return tslib_1.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: return [4 /*yield*/, detectionNet.locateFaces(input, minConfidence)]; case 0: return [4 /*yield*/, detectFaces(input)];
case 1: case 1:
detections = _b.sent(); detections = _b.sent();
return [4 /*yield*/, extractFaceTensors_1.extractFaceTensors(input, detections)]; return [4 /*yield*/, extractFaceTensors_1.extractFaceTensors(input, detections)];
...@@ -69,7 +68,36 @@ function allFacesFactory(detectionNet, landmarkNet, recognitionNet) { ...@@ -69,7 +68,36 @@ function allFacesFactory(detectionNet, landmarkNet, recognitionNet) {
}); });
}; };
} }
exports.allFacesFactory = allFacesFactory; function allFacesSsdMobilenetv1Factory(ssdMobilenetv1, landmarkNet, recognitionNet) {
return function (input, minConfidence, useBatchProcessing) {
if (minConfidence === void 0) { minConfidence = 0.8; }
if (useBatchProcessing === void 0) { useBatchProcessing = false; }
return tslib_1.__awaiter(this, void 0, void 0, function () {
var detectFaces, allFaces;
return tslib_1.__generator(this, function (_a) {
detectFaces = function (input) { return ssdMobilenetv1.locateFaces(input, minConfidence); };
allFaces = allFacesFactory(detectFaces, landmarkNet, recognitionNet);
return [2 /*return*/, allFaces(input, useBatchProcessing)];
});
});
};
}
exports.allFacesSsdMobilenetv1Factory = allFacesSsdMobilenetv1Factory;
function allFacesTinyYolov2Factory(tinyYolov2, landmarkNet, recognitionNet) {
return function (input, forwardParams, useBatchProcessing) {
if (forwardParams === void 0) { forwardParams = {}; }
if (useBatchProcessing === void 0) { useBatchProcessing = false; }
return tslib_1.__awaiter(this, void 0, void 0, function () {
var detectFaces, allFaces;
return tslib_1.__generator(this, function (_a) {
detectFaces = function (input) { return tinyYolov2.locateFaces(input, forwardParams); };
allFaces = allFacesFactory(detectFaces, landmarkNet, recognitionNet);
return [2 /*return*/, allFaces(input, useBatchProcessing)];
});
});
};
}
exports.allFacesTinyYolov2Factory = allFacesTinyYolov2Factory;
function allFacesMtcnnFactory(mtcnn, recognitionNet) { function allFacesMtcnnFactory(mtcnn, recognitionNet) {
var computeDescriptors = computeDescriptorsFactory(recognitionNet); var computeDescriptors = computeDescriptorsFactory(recognitionNet);
return function (input, mtcnnForwardParams, useBatchProcessing) { return function (input, mtcnnForwardParams, useBatchProcessing) {
......
{"version":3,"file":"allFacesFactory.js","sourceRoot":"","sources":["../src/allFacesFactory.ts"],"names":[],"mappings":"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"} {"version":3,"file":"allFacesFactory.js","sourceRoot":"","sources":["../src/allFacesFactory.ts"],"names":[],"mappings":";;;AACA,2DAA0D;AAM1D,6DAA4D;AAO5D,mCACE,cAAkC;IAElC,OAAO,UAAe,KAAgB,EAAE,gBAAwB,EAAE,kBAA2B;;;;;4BAChE,qBAAM,uCAAkB,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAA;;wBAAtE,kBAAkB,GAAG,SAAiD;6BAExD,kBAAkB,EAAlB,wBAAkB;wBAClC,qBAAM,cAAc,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,EAAA;;wBAA9D,KAAA,SAAgF,CAAA;;4BAChF,qBAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CACxC,UAAA,UAAU,IAAI,OAAA,cAAc,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAhD,CAAgD,CAC/D,CAAC,EAAA;;wBAFA,KAAA,SAEkB,CAAA;;;wBAJhB,WAAW,KAIK;wBAEtB,kBAAkB,CAAC,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,OAAO,EAAE,EAAX,CAAW,CAAC,CAAA;wBAE5C,sBAAO,WAAW,EAAA;;;;KACnB,CAAA;AACH,CAAC;AAED,yBACE,WAA2D,EAC3D,WAA4B,EAC5B,cAAkC;IAElC,IAAM,kBAAkB,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAA;IAEpE,OAAO,UACL,KAAgB,EAChB,kBAAmC;QAAnC,mCAAA,EAAA,0BAAmC;;;;;4BAGhB,qBAAM,WAAW,CAAC,KAAK,CAAC,EAAA;;wBAArC,UAAU,GAAG,SAAwB;wBACvB,qBAAM,uCAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAA;;wBAAzD,WAAW,GAAG,SAA2C;6BAEnC,kBAAkB,EAAlB,wBAAkB;wBAC1C,qBAAM,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,EAAA;;wBAA9C,KAAA,SAAmE,CAAA;;4BACnE,qBAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CACjC,UAAA,UAAU,IAAI,OAAA,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,EAAvC,CAAuC,CACtD,CAAC,EAAA;;wBAFA,KAAA,SAEqB,CAAA;;;wBAJnB,mBAAmB,KAIA;wBAEzB,WAAW,CAAC,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,OAAO,EAAE,EAAX,CAAW,CAAC,CAAA;wBAE/B,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAC9C,UAAC,SAAS,EAAE,CAAC,IAAK,OAAA,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAvC,CAAuC,CAC1D,CAAA;wBAEmB,qBAAM,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAA;;wBAAnF,WAAW,GAAG,SAAqE;wBAEzF,sBAAO,UAAU,CAAC,GAAG,CAAC,UAAC,SAAS,EAAE,CAAC;gCACjC,OAAA,IAAI,yCAAmB,CACrB,SAAS,EACT,mBAAmB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAkB,SAAS,CAAC,MAAM,EAAE,CAAC,EACxE,WAAW,CAAC,CAAC,CAAC,CACf;4BAJD,CAIC,CACF,EAAA;;;;KAEF,CAAA;AACH,CAAC;AAED,uCACE,cAAgC,EAChC,WAA4B,EAC5B,cAAkC;IAElC,OAAO,UACL,KAAgB,EAChB,aAA2B,EAC3B,kBAAmC;QADnC,8BAAA,EAAA,mBAA2B;QAC3B,mCAAA,EAAA,0BAAmC;;;;gBAE7B,WAAW,GAAG,UAAC,KAAgB,IAAK,OAAA,cAAc,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EAAhD,CAAgD,CAAA;gBACpF,QAAQ,GAAG,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,CAAA;gBAC1E,sBAAO,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAA;;;KAC3C,CAAA;AACH,CAAC;AAdD,sEAcC;AAED,mCACE,UAAsB,EACtB,WAA4B,EAC5B,cAAkC;IAElC,OAAO,UACL,KAAgB,EAChB,aAA2C,EAC3C,kBAAmC;QADnC,8BAAA,EAAA,kBAA2C;QAC3C,mCAAA,EAAA,0BAAmC;;;;gBAE7B,WAAW,GAAG,UAAC,KAAgB,IAAK,OAAA,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EAA5C,CAA4C,CAAA;gBAChF,QAAQ,GAAG,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,CAAA;gBAC1E,sBAAO,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAA;;;KAC3C,CAAA;AACH,CAAC;AAdD,8DAcC;AAED,8BACE,KAAY,EACZ,cAAkC;IAElC,IAAM,kBAAkB,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAA;IAEpE,OAAO,UACL,KAAgB,EAChB,kBAA2C,EAC3C,kBAAmC;QADnC,mCAAA,EAAA,uBAA2C;QAC3C,mCAAA,EAAA,0BAAmC;;;;;4BAGnB,qBAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAA;;wBAAxD,OAAO,GAAG,SAA8C;wBAExD,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAClC,UAAC,EAAiB;gCAAf,gCAAa;4BAAO,OAAA,aAAa,CAAC,KAAK,EAAE;wBAArB,CAAqB,CAC7C,CAAA;wBAEmB,qBAAM,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAA;;wBAAnF,WAAW,GAAG,SAAqE;wBAEzF,sBAAO,OAAO,CAAC,GAAG,CAAC,UAAC,EAAgC,EAAE,CAAC;oCAAjC,gCAAa,EAAE,gCAAa;gCAChD,OAAA,IAAI,yCAAmB,CACrB,aAAa,EACb,aAAa,EACb,WAAW,CAAC,CAAC,CAAC,CACf;4BAJD,CAIC,CACF,EAAA;;;;KAEF,CAAA;AACH,CAAC;AA7BD,oDA6BC"}
\ No newline at end of file \ No newline at end of file
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
var iou_1 = require("../iou");
function nonMaxSuppression(boxes, scores, iouThreshold, isIOU) { function nonMaxSuppression(boxes, scores, iouThreshold, isIOU) {
if (isIOU === void 0) { isIOU = true; } if (isIOU === void 0) { isIOU = true; }
var areas = boxes.map(function (box) { return (box.width + 1) * (box.height + 1); });
var indicesSortedByScore = scores var indicesSortedByScore = scores
.map(function (score, boxIndex) { return ({ score: score, boxIndex: boxIndex }); }) .map(function (score, boxIndex) { return ({ score: score, boxIndex: boxIndex }); })
.sort(function (c1, c2) { return c1.score - c2.score; }) .sort(function (c1, c2) { return c1.score - c2.score; })
...@@ -17,13 +17,7 @@ function nonMaxSuppression(boxes, scores, iouThreshold, isIOU) { ...@@ -17,13 +17,7 @@ function nonMaxSuppression(boxes, scores, iouThreshold, isIOU) {
var idx = indices[i]; var idx = indices[i];
var currBox = boxes[curr]; var currBox = boxes[curr];
var idxBox = boxes[idx]; var idxBox = boxes[idx];
var width = Math.max(0.0, Math.min(currBox.right, idxBox.right) - Math.max(currBox.left, idxBox.left) + 1); outputs.push(iou_1.iou(currBox, idxBox, isIOU));
var height = Math.max(0.0, Math.min(currBox.bottom, idxBox.bottom) - Math.max(currBox.top, idxBox.top) + 1);
var interSection = width * height;
var out = isIOU
? interSection / (areas[curr] + areas[idx] - interSection)
: interSection / Math.min(areas[curr], areas[idx]);
outputs.push(out);
} }
indicesSortedByScore = indicesSortedByScore.filter(function (_, j) { return outputs[j] <= iouThreshold; }); indicesSortedByScore = indicesSortedByScore.filter(function (_, j) { return outputs[j] <= iouThreshold; });
}; };
......
{"version":3,"file":"nonMaxSuppression.js","sourceRoot":"","sources":["../../src/commons/nonMaxSuppression.ts"],"names":[],"mappings":";;AAEA,2BACE,KAAoB,EACpB,MAAgB,EAChB,YAAoB,EACpB,KAAqB;IAArB,sBAAA,EAAA,YAAqB;IAGrB,IAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CACrB,UAAA,GAAG,IAAI,OAAA,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAlC,CAAkC,CAC1C,CAAA;IAED,IAAI,oBAAoB,GAAG,MAAM;SAC9B,GAAG,CAAC,UAAC,KAAK,EAAE,QAAQ,IAAK,OAAA,CAAC,EAAE,KAAK,OAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,EAArB,CAAqB,CAAC;SAC/C,IAAI,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,EAAnB,CAAmB,CAAC;SACrC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,CAAA;IAEvB,IAAM,IAAI,GAAa,EAAE,CAAA;;QAGvB,IAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,EAAY,CAAA;QACjD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEf,IAAM,OAAO,GAAG,oBAAoB,CAAA;QAEpC,IAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YAEtB,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;YAC3B,IAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;YAEzB,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YAC5G,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YAC7G,IAAM,YAAY,GAAG,KAAK,GAAG,MAAM,CAAA;YAEnC,IAAM,GAAG,GAAG,KAAK;gBACf,CAAC,CAAC,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;gBAC1D,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;YAEpD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAClB;QAED,oBAAoB,GAAG,oBAAoB,CAAC,MAAM,CAChD,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,OAAO,CAAC,CAAC,CAAC,IAAI,YAAY,EAA1B,CAA0B,CACrC,CAAA;IACH,CAAC;IA3BD,OAAM,oBAAoB,CAAC,MAAM,GAAG,CAAC;;KA2BpC;IAED,OAAO,IAAI,CAAA;AAEb,CAAC;AAjDD,8CAiDC"} {"version":3,"file":"nonMaxSuppression.js","sourceRoot":"","sources":["../../src/commons/nonMaxSuppression.ts"],"names":[],"mappings":";;AACA,8BAA6B;AAE7B,2BACE,KAAoB,EACpB,MAAgB,EAChB,YAAoB,EACpB,KAAqB;IAArB,sBAAA,EAAA,YAAqB;IAGrB,IAAI,oBAAoB,GAAG,MAAM;SAC9B,GAAG,CAAC,UAAC,KAAK,EAAE,QAAQ,IAAK,OAAA,CAAC,EAAE,KAAK,OAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,EAArB,CAAqB,CAAC;SAC/C,IAAI,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,EAAnB,CAAmB,CAAC;SACrC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,CAAA;IAEvB,IAAM,IAAI,GAAa,EAAE,CAAA;;QAGvB,IAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,EAAY,CAAA;QACjD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEf,IAAM,OAAO,GAAG,oBAAoB,CAAA;QAEpC,IAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YAEtB,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;YAC3B,IAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;YAEzB,OAAO,CAAC,IAAI,CAAC,SAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;SAC1C;QAED,oBAAoB,GAAG,oBAAoB,CAAC,MAAM,CAChD,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,OAAO,CAAC,CAAC,CAAC,IAAI,YAAY,EAA1B,CAA0B,CACrC,CAAA;IACH,CAAC;IAnBD,OAAM,oBAAoB,CAAC,MAAM,GAAG,CAAC;;KAmBpC;IAED,OAAO,IAAI,CAAA;AAEb,CAAC;AArCD,8CAqCC"}
\ No newline at end of file \ No newline at end of file
...@@ -47,7 +47,7 @@ var FaceDetectionNet = /** @class */ (function (_super) { ...@@ -47,7 +47,7 @@ var FaceDetectionNet = /** @class */ (function (_super) {
if (minConfidence === void 0) { minConfidence = 0.8; } if (minConfidence === void 0) { minConfidence = 0.8; }
if (maxResults === void 0) { maxResults = 100; } if (maxResults === void 0) { maxResults = 100; }
return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__awaiter(this, void 0, void 0, function () {
var netInput, _a, _boxes, _scores, boxes, scores, i, scoresData, _b, _c, iouThreshold, indices, paddedHeightRelative, paddedWidthRelative, results; var netInput, _a, _boxes, _scores, boxes, scores, i, scoresData, _b, _c, iouThreshold, indices, paddings, results;
return tslib_1.__generator(this, function (_d) { return tslib_1.__generator(this, function (_d) {
switch (_d.label) { switch (_d.label) {
case 0: return [4 /*yield*/, toNetInput_1.toNetInput(input, true)]; case 0: return [4 /*yield*/, toNetInput_1.toNetInput(input, true)];
...@@ -66,18 +66,17 @@ var FaceDetectionNet = /** @class */ (function (_super) { ...@@ -66,18 +66,17 @@ var FaceDetectionNet = /** @class */ (function (_super) {
scoresData = _c.apply(_b, [_d.sent()]); scoresData = _c.apply(_b, [_d.sent()]);
iouThreshold = 0.5; iouThreshold = 0.5;
indices = nonMaxSuppression_1.nonMaxSuppression(boxes, scoresData, maxResults, iouThreshold, minConfidence); indices = nonMaxSuppression_1.nonMaxSuppression(boxes, scoresData, maxResults, iouThreshold, minConfidence);
paddedHeightRelative = (netInput.getPaddings(0).y + netInput.getInputHeight(0)) / netInput.getInputHeight(0); paddings = netInput.getRelativePaddings(0);
paddedWidthRelative = (netInput.getPaddings(0).x + netInput.getInputWidth(0)) / netInput.getInputWidth(0);
results = indices results = indices
.map(function (idx) { .map(function (idx) {
var _a = [ var _a = [
Math.max(0, boxes.get(idx, 0)), Math.max(0, boxes.get(idx, 0)),
Math.min(1.0, boxes.get(idx, 2)) Math.min(1.0, boxes.get(idx, 2))
].map(function (val) { return val * paddedHeightRelative; }), top = _a[0], bottom = _a[1]; ].map(function (val) { return val * paddings.y; }), top = _a[0], bottom = _a[1];
var _b = [ var _b = [
Math.max(0, boxes.get(idx, 1)), Math.max(0, boxes.get(idx, 1)),
Math.min(1.0, boxes.get(idx, 3)) Math.min(1.0, boxes.get(idx, 3))
].map(function (val) { return val * paddedWidthRelative; }), left = _b[0], right = _b[1]; ].map(function (val) { return val * paddings.x; }), left = _b[0], right = _b[1];
return new FaceDetection_1.FaceDetection(scoresData[idx], new Rect_1.Rect(left, top, right - left, bottom - top), { return new FaceDetection_1.FaceDetection(scoresData[idx], new Rect_1.Rect(left, top, right - left, bottom - top), {
height: netInput.getInputHeight(0), height: netInput.getInputHeight(0),
width: netInput.getInputWidth(0) width: netInput.getInputWidth(0)
......
{"version":3,"file":"FaceDetectionNet.js","sourceRoot":"","sources":["../../src/faceDetectionNet/FaceDetectionNet.ts"],"names":[],"mappings":"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"} {"version":3,"file":"FaceDetectionNet.js","sourceRoot":"","sources":["../../src/faceDetectionNet/FaceDetectionNet.ts"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
...@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); ...@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib"); var tslib_1 = require("tslib");
var tf = require("@tensorflow/tfjs-core"); var tf = require("@tensorflow/tfjs-core");
var NeuralNetwork_1 = require("../commons/NeuralNetwork"); var NeuralNetwork_1 = require("../commons/NeuralNetwork");
var normalize_1 = require("../commons/normalize");
var toNetInput_1 = require("../toNetInput"); var toNetInput_1 = require("../toNetInput");
var convLayer_1 = require("./convLayer"); var convLayer_1 = require("./convLayer");
var extractParams_1 = require("./extractParams"); var extractParams_1 = require("./extractParams");
var loadQuantizedParams_1 = require("./loadQuantizedParams"); var loadQuantizedParams_1 = require("./loadQuantizedParams");
var normalize_1 = require("./normalize");
var residualLayer_1 = require("./residualLayer"); var residualLayer_1 = require("./residualLayer");
var FaceRecognitionNet = /** @class */ (function (_super) { var FaceRecognitionNet = /** @class */ (function (_super) {
tslib_1.__extends(FaceRecognitionNet, _super); tslib_1.__extends(FaceRecognitionNet, _super);
...@@ -21,7 +21,8 @@ var FaceRecognitionNet = /** @class */ (function (_super) { ...@@ -21,7 +21,8 @@ var FaceRecognitionNet = /** @class */ (function (_super) {
} }
return tf.tidy(function () { return tf.tidy(function () {
var batchTensor = input.toBatchTensor(150, true); var batchTensor = input.toBatchTensor(150, true);
var normalized = normalize_1.normalize(batchTensor); var meanRgb = [122.782, 117.001, 104.298];
var normalized = normalize_1.normalize(batchTensor, meanRgb).div(tf.scalar(256));
var out = convLayer_1.convDown(normalized, params.conv32_down); var out = convLayer_1.convDown(normalized, params.conv32_down);
out = tf.maxPool(out, 3, 2, 'valid'); out = tf.maxPool(out, 3, 2, 'valid');
out = residualLayer_1.residual(out, params.conv32_1); out = residualLayer_1.residual(out, params.conv32_1);
......
{"version":3,"file":"FaceRecognitionNet.js","sourceRoot":"","sources":["../../src/faceRecognitionNet/FaceRecognitionNet.ts"],"names":[],"mappings":"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"} {"version":3,"file":"FaceRecognitionNet.js","sourceRoot":"","sources":["../../src/faceRecognitionNet/FaceRecognitionNet.ts"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
...@@ -15,24 +15,28 @@ export declare const detectionNet: FaceDetectionNet; ...@@ -15,24 +15,28 @@ export declare const detectionNet: FaceDetectionNet;
export declare const landmarkNet: FaceLandmarkNet; export declare const landmarkNet: FaceLandmarkNet;
export declare const recognitionNet: FaceRecognitionNet; export declare const recognitionNet: FaceRecognitionNet;
export declare const nets: { export declare const nets: {
ssdMobilenet: FaceDetectionNet; ssdMobilenetv1: FaceDetectionNet;
faceLandmark68Net: FaceLandmarkNet; faceLandmark68Net: FaceLandmarkNet;
faceRecognitionNet: FaceRecognitionNet; faceRecognitionNet: FaceRecognitionNet;
mtcnn: Mtcnn; mtcnn: Mtcnn;
tinyYolov2: TinyYolov2; tinyYolov2: TinyYolov2;
}; };
export declare function loadFaceDetectionModel(url: string): Promise<void>; export declare function loadSsdMobilenetv1Model(url: string): Promise<void>;
export declare function loadFaceLandmarkModel(url: string): Promise<void>; export declare function loadFaceLandmarkModel(url: string): Promise<void>;
export declare function loadFaceRecognitionModel(url: string): Promise<void>; export declare function loadFaceRecognitionModel(url: string): Promise<void>;
export declare function loadMtcnnModel(url: string): Promise<void>; export declare function loadMtcnnModel(url: string): Promise<void>;
export declare function loadTinyYolov2Model(url: string): Promise<void>; export declare function loadTinyYolov2Model(url: string): Promise<void>;
export declare function loadFaceDetectionModel(url: string): Promise<void>;
export declare function loadModels(url: string): Promise<[void, void, void, void, void]>; export declare function loadModels(url: string): Promise<[void, void, void, void, void]>;
export declare function locateFaces(input: TNetInput, minConfidence?: number, maxResults?: number): Promise<FaceDetection[]>; export declare function locateFaces(input: TNetInput, minConfidence?: number, maxResults?: number): Promise<FaceDetection[]>;
export declare function detectLandmarks(input: TNetInput): Promise<FaceLandmarks68 | FaceLandmarks68[]>; export declare function detectLandmarks(input: TNetInput): Promise<FaceLandmarks68 | FaceLandmarks68[]>;
export declare function computeFaceDescriptor(input: TNetInput): Promise<Float32Array | Float32Array[]>; export declare function computeFaceDescriptor(input: TNetInput): Promise<Float32Array | Float32Array[]>;
export declare function mtcnn(input: TNetInput, forwardParams: MtcnnForwardParams): Promise<MtcnnResult[]>; export declare function mtcnn(input: TNetInput, forwardParams: MtcnnForwardParams): Promise<MtcnnResult[]>;
export declare function tinyYolov2(input: TNetInput, forwardParams: TinyYolov2ForwardParams): Promise<FaceDetection[]>; export declare function tinyYolov2(input: TNetInput, forwardParams: TinyYolov2ForwardParams): Promise<FaceDetection[]>;
export declare type allFacesFunction = (input: tf.Tensor | NetInput | TNetInput, minConfidence?: number, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>; export declare type allFacesSsdMobilenetv1Function = (input: tf.Tensor | NetInput | TNetInput, minConfidence?: number, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>;
export declare const allFaces: allFacesFunction; export declare const allFacesSsdMobilenetv1: allFacesSsdMobilenetv1Function;
export declare type allFacesTinyYolov2Function = (input: tf.Tensor | NetInput | TNetInput, forwardParams?: TinyYolov2ForwardParams, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>;
export declare const allFacesTinyYolov2: allFacesTinyYolov2Function;
export declare type allFacesMtcnnFunction = (input: tf.Tensor | NetInput | TNetInput, mtcnnForwardParams?: MtcnnForwardParams, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>; export declare type allFacesMtcnnFunction = (input: tf.Tensor | NetInput | TNetInput, mtcnnForwardParams?: MtcnnForwardParams, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>;
export declare const allFacesMtcnn: allFacesMtcnnFunction; export declare const allFacesMtcnn: allFacesMtcnnFunction;
export declare const allFaces: allFacesSsdMobilenetv1Function;
...@@ -12,16 +12,16 @@ exports.recognitionNet = new FaceRecognitionNet_1.FaceRecognitionNet(); ...@@ -12,16 +12,16 @@ exports.recognitionNet = new FaceRecognitionNet_1.FaceRecognitionNet();
// nets need more specific names, to avoid ambiguity in future // nets need more specific names, to avoid ambiguity in future
// when alternative net implementations are provided // when alternative net implementations are provided
exports.nets = { exports.nets = {
ssdMobilenet: exports.detectionNet, ssdMobilenetv1: exports.detectionNet,
faceLandmark68Net: exports.landmarkNet, faceLandmark68Net: exports.landmarkNet,
faceRecognitionNet: exports.recognitionNet, faceRecognitionNet: exports.recognitionNet,
mtcnn: new Mtcnn_1.Mtcnn(), mtcnn: new Mtcnn_1.Mtcnn(),
tinyYolov2: new TinyYolov2_1.TinyYolov2() tinyYolov2: new TinyYolov2_1.TinyYolov2()
}; };
function loadFaceDetectionModel(url) { function loadSsdMobilenetv1Model(url) {
return exports.nets.ssdMobilenet.load(url); return exports.nets.ssdMobilenetv1.load(url);
} }
exports.loadFaceDetectionModel = loadFaceDetectionModel; exports.loadSsdMobilenetv1Model = loadSsdMobilenetv1Model;
function loadFaceLandmarkModel(url) { function loadFaceLandmarkModel(url) {
return exports.nets.faceLandmark68Net.load(url); return exports.nets.faceLandmark68Net.load(url);
} }
...@@ -38,9 +38,13 @@ function loadTinyYolov2Model(url) { ...@@ -38,9 +38,13 @@ function loadTinyYolov2Model(url) {
return exports.nets.tinyYolov2.load(url); return exports.nets.tinyYolov2.load(url);
} }
exports.loadTinyYolov2Model = loadTinyYolov2Model; exports.loadTinyYolov2Model = loadTinyYolov2Model;
function loadFaceDetectionModel(url) {
return loadSsdMobilenetv1Model(url);
}
exports.loadFaceDetectionModel = loadFaceDetectionModel;
function loadModels(url) { function loadModels(url) {
return Promise.all([ return Promise.all([
loadFaceDetectionModel(url), loadSsdMobilenetv1Model(url),
loadFaceLandmarkModel(url), loadFaceLandmarkModel(url),
loadFaceRecognitionModel(url), loadFaceRecognitionModel(url),
loadMtcnnModel(url), loadMtcnnModel(url),
...@@ -49,7 +53,7 @@ function loadModels(url) { ...@@ -49,7 +53,7 @@ function loadModels(url) {
} }
exports.loadModels = loadModels; exports.loadModels = loadModels;
function locateFaces(input, minConfidence, maxResults) { function locateFaces(input, minConfidence, maxResults) {
return exports.nets.ssdMobilenet.locateFaces(input, minConfidence, maxResults); return exports.nets.ssdMobilenetv1.locateFaces(input, minConfidence, maxResults);
} }
exports.locateFaces = locateFaces; exports.locateFaces = locateFaces;
function detectLandmarks(input) { function detectLandmarks(input) {
...@@ -68,6 +72,8 @@ function tinyYolov2(input, forwardParams) { ...@@ -68,6 +72,8 @@ function tinyYolov2(input, forwardParams) {
return exports.nets.tinyYolov2.locateFaces(input, forwardParams); return exports.nets.tinyYolov2.locateFaces(input, forwardParams);
} }
exports.tinyYolov2 = tinyYolov2; exports.tinyYolov2 = tinyYolov2;
exports.allFaces = allFacesFactory_1.allFacesFactory(exports.nets.ssdMobilenet, exports.nets.faceLandmark68Net, exports.nets.faceRecognitionNet); exports.allFacesSsdMobilenetv1 = allFacesFactory_1.allFacesSsdMobilenetv1Factory(exports.nets.ssdMobilenetv1, exports.nets.faceLandmark68Net, exports.nets.faceRecognitionNet);
exports.allFacesTinyYolov2 = allFacesFactory_1.allFacesTinyYolov2Factory(exports.nets.tinyYolov2, exports.nets.faceLandmark68Net, exports.nets.faceRecognitionNet);
exports.allFacesMtcnn = allFacesFactory_1.allFacesMtcnnFactory(exports.nets.mtcnn, exports.nets.faceRecognitionNet); exports.allFacesMtcnn = allFacesFactory_1.allFacesMtcnnFactory(exports.nets.mtcnn, exports.nets.faceRecognitionNet);
exports.allFaces = exports.allFacesSsdMobilenetv1;
//# sourceMappingURL=globalApi.js.map //# sourceMappingURL=globalApi.js.map
\ No newline at end of file
{"version":3,"file":"globalApi.js","sourceRoot":"","sources":["../src/globalApi.ts"],"names":[],"mappings":";;AAEA,qDAA0E;AAE1E,wEAAuE;AACvE,qEAAoE;AAEpE,8EAA6E;AAE7E,uCAAsC;AAGtC,sDAAqD;AAIxC,QAAA,YAAY,GAAG,IAAI,mCAAgB,EAAE,CAAA;AACrC,QAAA,WAAW,GAAG,IAAI,iCAAe,EAAE,CAAA;AACnC,QAAA,cAAc,GAAG,IAAI,uCAAkB,EAAE,CAAA;AAEtD,8DAA8D;AAC9D,oDAAoD;AACvC,QAAA,IAAI,GAAG;IAClB,YAAY,EAAE,oBAAY;IAC1B,iBAAiB,EAAE,mBAAW;IAC9B,kBAAkB,EAAE,sBAAc;IAClC,KAAK,EAAE,IAAI,aAAK,EAAE;IAClB,UAAU,EAAE,IAAI,uBAAU,EAAE;CAC7B,CAAA;AAED,gCAAuC,GAAW;IAChD,OAAO,YAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAFD,wDAEC;AAED,+BAAsC,GAAW;IAC/C,OAAO,YAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACzC,CAAC;AAFD,sDAEC;AAED,kCAAyC,GAAW;IAClD,OAAO,YAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1C,CAAC;AAFD,4DAEC;AAED,wBAA+B,GAAW;IACxC,OAAO,YAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC;AAFD,wCAEC;AAED,6BAAoC,GAAW;IAC7C,OAAO,YAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC;AAFD,kDAEC;AAED,oBAA2B,GAAW;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC;QACjB,sBAAsB,CAAC,GAAG,CAAC;QAC3B,qBAAqB,CAAC,GAAG,CAAC;QAC1B,wBAAwB,CAAC,GAAG,CAAC;QAC7B,cAAc,CAAC,GAAG,CAAC;QACnB,mBAAmB,CAAC,GAAG,CAAC;KACzB,CAAC,CAAA;AACJ,CAAC;AARD,gCAQC;AAED,qBACE,KAAgB,EAChB,aAAsB,EACtB,UAAmB;IAEnB,OAAO,YAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;AACxE,CAAC;AAND,kCAMC;AAED,yBACE,KAAgB;IAEhB,OAAO,YAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;AACtD,CAAC;AAJD,0CAIC;AAED,+BACE,KAAgB;IAEhB,OAAO,YAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;AAC7D,CAAC;AAJD,sDAIC;AAED,eACE,KAAgB,EAChB,aAAiC;IAEjC,OAAO,YAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;AACjD,CAAC;AALD,sBAKC;AAED,oBACE,KAAgB,EAChB,aAAsC;IAEtC,OAAO,YAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;AAC1D,CAAC;AALD,gCAKC;AAQY,QAAA,QAAQ,GAAqB,iCAAe,CACvD,YAAI,CAAC,YAAY,EACjB,YAAI,CAAC,iBAAiB,EACtB,YAAI,CAAC,kBAAkB,CACxB,CAAA;AAQY,QAAA,aAAa,GAA0B,sCAAoB,CACtE,YAAI,CAAC,KAAK,EACV,YAAI,CAAC,kBAAkB,CACxB,CAAA"} {"version":3,"file":"globalApi.js","sourceRoot":"","sources":["../src/globalApi.ts"],"names":[],"mappings":";;AAEA,qDAAmH;AAEnH,wEAAuE;AACvE,qEAAoE;AAEpE,8EAA6E;AAE7E,uCAAsC;AAGtC,sDAAqD;AAIxC,QAAA,YAAY,GAAG,IAAI,mCAAgB,EAAE,CAAA;AACrC,QAAA,WAAW,GAAG,IAAI,iCAAe,EAAE,CAAA;AACnC,QAAA,cAAc,GAAG,IAAI,uCAAkB,EAAE,CAAA;AAEtD,8DAA8D;AAC9D,oDAAoD;AACvC,QAAA,IAAI,GAAG;IAClB,cAAc,EAAE,oBAAY;IAC5B,iBAAiB,EAAE,mBAAW;IAC9B,kBAAkB,EAAE,sBAAc;IAClC,KAAK,EAAE,IAAI,aAAK,EAAE;IAClB,UAAU,EAAE,IAAI,uBAAU,EAAE;CAC7B,CAAA;AAED,iCAAwC,GAAW;IACjD,OAAO,YAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACtC,CAAC;AAFD,0DAEC;AAED,+BAAsC,GAAW;IAC/C,OAAO,YAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACzC,CAAC;AAFD,sDAEC;AAED,kCAAyC,GAAW;IAClD,OAAO,YAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1C,CAAC;AAFD,4DAEC;AAED,wBAA+B,GAAW;IACxC,OAAO,YAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC;AAFD,wCAEC;AAED,6BAAoC,GAAW;IAC7C,OAAO,YAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC;AAFD,kDAEC;AAED,gCAAuC,GAAW;IAChD,OAAO,uBAAuB,CAAC,GAAG,CAAC,CAAA;AACrC,CAAC;AAFD,wDAEC;AAED,oBAA2B,GAAW;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC;QACjB,uBAAuB,CAAC,GAAG,CAAC;QAC5B,qBAAqB,CAAC,GAAG,CAAC;QAC1B,wBAAwB,CAAC,GAAG,CAAC;QAC7B,cAAc,CAAC,GAAG,CAAC;QACnB,mBAAmB,CAAC,GAAG,CAAC;KACzB,CAAC,CAAA;AACJ,CAAC;AARD,gCAQC;AAED,qBACE,KAAgB,EAChB,aAAsB,EACtB,UAAmB;IAEnB,OAAO,YAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;AAC1E,CAAC;AAND,kCAMC;AAED,yBACE,KAAgB;IAEhB,OAAO,YAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;AACtD,CAAC;AAJD,0CAIC;AAED,+BACE,KAAgB;IAEhB,OAAO,YAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;AAC7D,CAAC;AAJD,sDAIC;AAED,eACE,KAAgB,EAChB,aAAiC;IAEjC,OAAO,YAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;AACjD,CAAC;AALD,sBAKC;AAED,oBACE,KAAgB,EAChB,aAAsC;IAEtC,OAAO,YAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;AAC1D,CAAC;AALD,gCAKC;AAQY,QAAA,sBAAsB,GAAmC,+CAA6B,CACjG,YAAI,CAAC,cAAc,EACnB,YAAI,CAAC,iBAAiB,EACtB,YAAI,CAAC,kBAAkB,CACxB,CAAA;AAQY,QAAA,kBAAkB,GAA+B,2CAAyB,CACrF,YAAI,CAAC,UAAU,EACf,YAAI,CAAC,iBAAiB,EACtB,YAAI,CAAC,kBAAkB,CACxB,CAAA;AAQY,QAAA,aAAa,GAA0B,sCAAoB,CACtE,YAAI,CAAC,KAAK,EACV,YAAI,CAAC,kBAAkB,CACxB,CAAA;AAEY,QAAA,QAAQ,GAAG,8BAAsB,CAAA"}
\ No newline at end of file \ No newline at end of file
import * as tf from '@tensorflow/tfjs-core'; import * as tf from '@tensorflow/tfjs-core';
export { tf }; export { tf };
export * from './BoundingBox';
export * from './FaceDetection'; export * from './FaceDetection';
export * from './FullFaceDescription'; export * from './FullFaceDescription';
export * from './NetInput'; export * from './NetInput';
...@@ -13,8 +14,10 @@ export * from './faceDetectionNet'; ...@@ -13,8 +14,10 @@ export * from './faceDetectionNet';
export * from './faceLandmarkNet'; export * from './faceLandmarkNet';
export * from './faceRecognitionNet'; export * from './faceRecognitionNet';
export * from './globalApi'; export * from './globalApi';
export * from './iou';
export * from './mtcnn'; export * from './mtcnn';
export * from './padToSquare'; export * from './padToSquare';
export * from './tinyYolov2'; export * from './tinyYolov2';
export * from './toNetInput'; export * from './toNetInput';
export * from './utils'; export * from './utils';
export * from './types';
...@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ...@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib"); var tslib_1 = require("tslib");
var tf = require("@tensorflow/tfjs-core"); var tf = require("@tensorflow/tfjs-core");
exports.tf = tf; exports.tf = tf;
tslib_1.__exportStar(require("./BoundingBox"), exports);
tslib_1.__exportStar(require("./FaceDetection"), exports); tslib_1.__exportStar(require("./FaceDetection"), exports);
tslib_1.__exportStar(require("./FullFaceDescription"), exports); tslib_1.__exportStar(require("./FullFaceDescription"), exports);
tslib_1.__exportStar(require("./NetInput"), exports); tslib_1.__exportStar(require("./NetInput"), exports);
...@@ -16,6 +17,7 @@ tslib_1.__exportStar(require("./faceDetectionNet"), exports); ...@@ -16,6 +17,7 @@ tslib_1.__exportStar(require("./faceDetectionNet"), exports);
tslib_1.__exportStar(require("./faceLandmarkNet"), exports); tslib_1.__exportStar(require("./faceLandmarkNet"), exports);
tslib_1.__exportStar(require("./faceRecognitionNet"), exports); tslib_1.__exportStar(require("./faceRecognitionNet"), exports);
tslib_1.__exportStar(require("./globalApi"), exports); tslib_1.__exportStar(require("./globalApi"), exports);
tslib_1.__exportStar(require("./iou"), exports);
tslib_1.__exportStar(require("./mtcnn"), exports); tslib_1.__exportStar(require("./mtcnn"), exports);
tslib_1.__exportStar(require("./padToSquare"), exports); tslib_1.__exportStar(require("./padToSquare"), exports);
tslib_1.__exportStar(require("./tinyYolov2"), exports); tslib_1.__exportStar(require("./tinyYolov2"), exports);
......
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0CAA4C;AAG1C,gBAAE;AAIJ,0DAAgC;AAChC,gEAAsC;AACtC,qDAA2B;AAC3B,kDAAwB;AACxB,iDAAuB;AAEvB,oDAA0B;AAC1B,8DAAoC;AACpC,yDAA8B;AAC9B,+DAAoC;AACpC,6DAAmC;AACnC,4DAAkC;AAClC,+DAAqC;AACrC,sDAA4B;AAC5B,kDAAwB;AACxB,wDAA8B;AAC9B,uDAA6B;AAC7B,uDAA6B;AAC7B,kDAAuB"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0CAA4C;AAG1C,gBAAE;AAIJ,wDAA8B;AAC9B,0DAAgC;AAChC,gEAAsC;AACtC,qDAA2B;AAC3B,kDAAwB;AACxB,iDAAuB;AAEvB,oDAA0B;AAC1B,8DAAoC;AACpC,yDAA8B;AAC9B,+DAAoC;AACpC,6DAAmC;AACnC,4DAAkC;AAClC,+DAAqC;AACrC,sDAA4B;AAC5B,gDAAsB;AACtB,kDAAwB;AACxB,wDAA8B;AAC9B,uDAA6B;AAC7B,uDAA6B;AAC7B,kDAAwB"}
\ No newline at end of file \ No newline at end of file
import * as tf from '@tensorflow/tfjs-core'; import * as tf from '@tensorflow/tfjs-core';
import { BoundingBox } from '../BoundingBox';
import { NeuralNetwork } from '../commons/NeuralNetwork'; import { NeuralNetwork } from '../commons/NeuralNetwork';
import { FaceDetection } from '../FaceDetection'; import { FaceDetection } from '../FaceDetection';
import { NetInput } from '../NetInput'; import { NetInput } from '../NetInput';
import { Point } from '../Point';
import { TNetInput } from '../types'; import { TNetInput } from '../types';
import { NetParams, TinyYolov2ForwardParams } from './types'; import { NetParams, PostProcessingParams, TinyYolov2ForwardParams } from './types';
export declare class TinyYolov2 extends NeuralNetwork<NetParams> { export declare class TinyYolov2 extends NeuralNetwork<NetParams> {
constructor(); private _withSeparableConvs;
private _anchors;
constructor(withSeparableConvs?: boolean);
readonly withSeparableConvs: boolean;
readonly anchors: Point[];
forwardInput(input: NetInput, inputSize: number): tf.Tensor4D; forwardInput(input: NetInput, inputSize: number): tf.Tensor4D;
forward(input: TNetInput, inputSize: number): Promise<tf.Tensor4D>; forward(input: TNetInput, inputSize: number): Promise<tf.Tensor4D>;
locateFaces(input: TNetInput, forwardParams?: TinyYolov2ForwardParams): Promise<FaceDetection[]>; locateFaces(input: TNetInput, forwardParams?: TinyYolov2ForwardParams): Promise<FaceDetection[]>;
postProcess(outputTensor: tf.Tensor4D, {scoreThreshold, paddings}: PostProcessingParams): {
box: BoundingBox;
score: number;
row: number;
col: number;
anchor: number;
}[];
protected loadQuantizedParams(uri: string | undefined): Promise<{ protected loadQuantizedParams(uri: string | undefined): Promise<{
params: NetParams; params: NetParams;
paramMappings: { paramMappings: {
......
...@@ -8,3 +8,5 @@ export declare const INPUT_SIZES: { ...@@ -8,3 +8,5 @@ export declare const INPUT_SIZES: {
export declare const NUM_BOXES = 5; export declare const NUM_BOXES = 5;
export declare const IOU_THRESHOLD = 0.4; export declare const IOU_THRESHOLD = 0.4;
export declare const BOX_ANCHORS: Point[]; export declare const BOX_ANCHORS: Point[];
export declare const BOX_ANCHORS_SEPARABLE: Point[];
export declare const MEAN_RGB: number[];
...@@ -11,4 +11,12 @@ exports.BOX_ANCHORS = [ ...@@ -11,4 +11,12 @@ exports.BOX_ANCHORS = [
new Point_1.Point(10.246, 4.59428), new Point_1.Point(10.246, 4.59428),
new Point_1.Point(12.6868, 11.8741) new Point_1.Point(12.6868, 11.8741)
]; ];
exports.BOX_ANCHORS_SEPARABLE = [
new Point_1.Point(1.603231, 2.094468),
new Point_1.Point(6.041143, 7.080126),
new Point_1.Point(2.882459, 3.518061),
new Point_1.Point(4.266906, 5.178857),
new Point_1.Point(9.041765, 10.66308)
];
exports.MEAN_RGB = [117.001, 114.697, 97.404];
//# sourceMappingURL=config.js.map //# sourceMappingURL=config.js.map
\ No newline at end of file
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/tinyYolov2/config.ts"],"names":[],"mappings":";;AAAA,kCAAiC;AAEpB,QAAA,WAAW,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;AACpD,QAAA,SAAS,GAAG,CAAC,CAAA;AACb,QAAA,aAAa,GAAG,GAAG,CAAA;AAEnB,QAAA,WAAW,GAAG;IACzB,IAAI,aAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,aAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,IAAI,aAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,IAAI,aAAK,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,IAAI,aAAK,CAAC,OAAO,EAAE,OAAO,CAAC;CAC5B,CAAA"} {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/tinyYolov2/config.ts"],"names":[],"mappings":";;AAAA,kCAAiC;AAEpB,QAAA,WAAW,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;AACpD,QAAA,SAAS,GAAG,CAAC,CAAA;AACb,QAAA,aAAa,GAAG,GAAG,CAAA;AAEnB,QAAA,WAAW,GAAG;IACzB,IAAI,aAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,aAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,IAAI,aAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,IAAI,aAAK,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,IAAI,aAAK,CAAC,OAAO,EAAE,OAAO,CAAC;CAC5B,CAAA;AAEY,QAAA,qBAAqB,GAAG;IACnC,IAAI,aAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,aAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,aAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,aAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,aAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC9B,CAAA;AAEY,QAAA,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA"}
\ No newline at end of file \ No newline at end of file
import * as tf from '@tensorflow/tfjs-core'; import * as tf from '@tensorflow/tfjs-core';
import { ConvWithBatchNorm } from './types'; import { ConvWithBatchNorm, SeparableConvParams } from './types';
export declare function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D; export declare function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm | SeparableConvParams): tf.Tensor4D;
...@@ -2,13 +2,20 @@ ...@@ -2,13 +2,20 @@
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
var tf = require("@tensorflow/tfjs-core"); var tf = require("@tensorflow/tfjs-core");
var leaky_1 = require("./leaky"); var leaky_1 = require("./leaky");
var types_1 = require("./types");
function convWithBatchNorm(x, params) { function convWithBatchNorm(x, params) {
return tf.tidy(function () { return tf.tidy(function () {
var out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]); var out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]);
if (params instanceof types_1.SeparableConvParams) {
out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');
out = tf.add(out, params.bias);
}
else {
out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid'); out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');
out = tf.sub(out, params.bn.sub); out = tf.sub(out, params.bn.sub);
out = tf.mul(out, params.bn.truediv); out = tf.mul(out, params.bn.truediv);
out = tf.add(out, params.conv.bias); out = tf.add(out, params.conv.bias);
}
return leaky_1.leaky(out); return leaky_1.leaky(out);
}); });
} }
......
{"version":3,"file":"convWithBatchNorm.js","sourceRoot":"","sources":["../../src/tinyYolov2/convWithBatchNorm.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,iCAAgC;AAGhC,2BAAkC,CAAc,EAAE,MAAyB;IACzE,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAgB,CAAA;QACpE,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QAC1D,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;QAChC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;QACpC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,OAAO,aAAK,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;AACJ,CAAC;AATD,8CASC"} {"version":3,"file":"convWithBatchNorm.js","sourceRoot":"","sources":["../../src/tinyYolov2/convWithBatchNorm.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,iCAAgC;AAChC,iCAAiE;AAEjE,2BAAkC,CAAc,EAAE,MAA+C;IAC/F,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAgB,CAAA;QAEpE,IAAI,MAAM,YAAY,2BAAmB,EAAE;YACzC,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAChG,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;SAC/B;aAAM;YACL,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAC1D,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YAChC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;YACpC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACpC;QAED,OAAO,aAAK,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;AACJ,CAAC;AAhBD,8CAgBC"}
\ No newline at end of file \ No newline at end of file
import { ParamMapping } from '../commons/types'; import { ParamMapping } from '../commons/types';
import { NetParams } from './types'; import { NetParams } from './types';
export declare function extractParams(weights: Float32Array): { export declare function extractParams(weights: Float32Array, withSeparableConvs: boolean): {
params: NetParams; params: NetParams;
paramMappings: ParamMapping[]; paramMappings: ParamMapping[];
}; };
...@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ...@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
var tf = require("@tensorflow/tfjs-core"); var tf = require("@tensorflow/tfjs-core");
var extractConvParamsFactory_1 = require("../commons/extractConvParamsFactory"); var extractConvParamsFactory_1 = require("../commons/extractConvParamsFactory");
var extractWeightsFactory_1 = require("../commons/extractWeightsFactory"); var extractWeightsFactory_1 = require("../commons/extractWeightsFactory");
var types_1 = require("./types");
function extractorsFactory(extractWeights, paramMappings) { function extractorsFactory(extractWeights, paramMappings) {
var extractConvParams = extractConvParamsFactory_1.extractConvParamsFactory(extractWeights, paramMappings); var extractConvParams = extractConvParamsFactory_1.extractConvParamsFactory(extractWeights, paramMappings);
function extractBatchNormParams(size, mappedPrefix) { function extractBatchNormParams(size, mappedPrefix) {
...@@ -16,24 +17,34 @@ function extractorsFactory(extractWeights, paramMappings) { ...@@ -16,24 +17,34 @@ function extractorsFactory(extractWeights, paramMappings) {
var bn = extractBatchNormParams(channelsOut, mappedPrefix + "/bn"); var bn = extractBatchNormParams(channelsOut, mappedPrefix + "/bn");
return { conv: conv, bn: bn }; return { conv: conv, bn: bn };
} }
function extractSeparableConvParams(channelsIn, channelsOut, mappedPrefix) {
var depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);
var pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);
var bias = tf.tensor1d(extractWeights(channelsOut));
paramMappings.push({ paramPath: mappedPrefix + "/depthwise_filter" }, { paramPath: mappedPrefix + "/pointwise_filter" }, { paramPath: mappedPrefix + "/bias" });
return new types_1.SeparableConvParams(depthwise_filter, pointwise_filter, bias);
}
return { return {
extractConvParams: extractConvParams, extractConvParams: extractConvParams,
extractConvWithBatchNormParams: extractConvWithBatchNormParams extractConvWithBatchNormParams: extractConvWithBatchNormParams,
extractSeparableConvParams: extractSeparableConvParams
}; };
} }
function extractParams(weights) { function extractParams(weights, withSeparableConvs) {
var _a = extractWeightsFactory_1.extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights; var _a = extractWeightsFactory_1.extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;
var paramMappings = []; var paramMappings = [];
var _b = extractorsFactory(extractWeights, paramMappings), extractConvParams = _b.extractConvParams, extractConvWithBatchNormParams = _b.extractConvWithBatchNormParams; var _b = extractorsFactory(extractWeights, paramMappings), extractConvParams = _b.extractConvParams, extractConvWithBatchNormParams = _b.extractConvWithBatchNormParams, extractSeparableConvParams = _b.extractSeparableConvParams;
var conv0 = extractConvWithBatchNormParams(3, 16, 'conv0'); var extractConvFn = withSeparableConvs ? extractSeparableConvParams : extractConvWithBatchNormParams;
var conv1 = extractConvWithBatchNormParams(16, 32, 'conv1'); var numAnchorEncodings = withSeparableConvs ? 5 : 6;
var conv2 = extractConvWithBatchNormParams(32, 64, 'conv2'); var conv0 = extractConvFn(3, 16, 'conv0');
var conv3 = extractConvWithBatchNormParams(64, 128, 'conv3'); var conv1 = extractConvFn(16, 32, 'conv1');
var conv4 = extractConvWithBatchNormParams(128, 256, 'conv4'); var conv2 = extractConvFn(32, 64, 'conv2');
var conv5 = extractConvWithBatchNormParams(256, 512, 'conv5'); var conv3 = extractConvFn(64, 128, 'conv3');
var conv6 = extractConvWithBatchNormParams(512, 1024, 'conv6'); var conv4 = extractConvFn(128, 256, 'conv4');
var conv7 = extractConvWithBatchNormParams(1024, 1024, 'conv7'); var conv5 = extractConvFn(256, 512, 'conv5');
var conv8 = extractConvParams(1024, 30, 1, 'conv8'); var conv6 = extractConvFn(512, 1024, 'conv6');
var conv7 = extractConvFn(1024, 1024, 'conv7');
var conv8 = extractConvParams(1024, 5 * numAnchorEncodings, 1, 'conv8');
if (getRemainingWeights().length !== 0) { if (getRemainingWeights().length !== 0) {
throw new Error("weights remaing after extract: " + getRemainingWeights().length); throw new Error("weights remaing after extract: " + getRemainingWeights().length);
} }
......
{"version":3,"file":"extractParams.js","sourceRoot":"","sources":["../../src/tinyYolov2/extractParams.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,gFAA+E;AAC/E,0EAAyE;AAIzE,2BAA2B,cAAsC,EAAE,aAA6B;IAE9F,IAAM,iBAAiB,GAAG,mDAAwB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;IAEjF,gCAAgC,IAAY,EAAE,YAAoB;QAEhE,IAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;QAEjD,aAAa,CAAC,IAAI,CAChB,EAAE,SAAS,EAAK,YAAY,SAAM,EAAE,EACpC,EAAE,SAAS,EAAK,YAAY,aAAU,EAAE,CACzC,CAAA;QAED,OAAO,EAAE,GAAG,KAAA,EAAE,OAAO,SAAA,EAAE,CAAA;IACzB,CAAC;IAED,wCAAwC,UAAkB,EAAE,WAAmB,EAAE,YAAoB;QAEnG,IAAM,IAAI,GAAG,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,EAAK,YAAY,UAAO,CAAC,CAAA;QAClF,IAAM,EAAE,GAAG,sBAAsB,CAAC,WAAW,EAAK,YAAY,QAAK,CAAC,CAAA;QAEpE,OAAO,EAAE,IAAI,MAAA,EAAE,EAAE,IAAA,EAAE,CAAA;IACrB,CAAC;IAED,OAAO;QACL,iBAAiB,mBAAA;QACjB,8BAA8B,gCAAA;KAC/B,CAAA;AAEH,CAAC;AAED,uBAA8B,OAAqB;IAE3C,IAAA,2DAG4B,EAFhC,kCAAc,EACd,4CAAmB,CACa;IAElC,IAAM,aAAa,GAAmB,EAAE,CAAA;IAElC,IAAA,qDAG8C,EAFlD,wCAAiB,EACjB,kEAA8B,CACoB;IAEpD,IAAM,KAAK,GAAG,8BAA8B,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAC5D,IAAM,KAAK,GAAG,8BAA8B,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAC7D,IAAM,KAAK,GAAG,8BAA8B,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAC7D,IAAM,KAAK,GAAG,8BAA8B,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAC9D,IAAM,KAAK,GAAG,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAC/D,IAAM,KAAK,GAAG,8BAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAC/D,IAAM,KAAK,GAAG,8BAA8B,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAChE,IAAM,KAAK,GAAG,8BAA8B,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACjE,IAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;IAErD,IAAI,mBAAmB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,oCAAkC,mBAAmB,EAAE,CAAC,MAAQ,CAAC,CAAA;KAClF;IAED,IAAM,MAAM,GAAG,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,CAAA;IAEhF,OAAO,EAAE,MAAM,QAAA,EAAE,aAAa,eAAA,EAAE,CAAA;AAClC,CAAC;AA/BD,sCA+BC"} {"version":3,"file":"extractParams.js","sourceRoot":"","sources":["../../src/tinyYolov2/extractParams.ts"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
import { SizeType, TinyYolov2ForwardParams } from './types'; import { SizeType, TinyYolov2ForwardParams } from './types';
export declare function getDefaultParams(params: TinyYolov2ForwardParams): { export declare function getDefaultParams(params: TinyYolov2ForwardParams): {
sizeType: SizeType; inputSize: SizeType;
scoreThreshold: number; scoreThreshold: number;
} & TinyYolov2ForwardParams; } & TinyYolov2ForwardParams;
...@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ...@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = require("./types"); var types_1 = require("./types");
function getDefaultParams(params) { function getDefaultParams(params) {
return Object.assign({}, { return Object.assign({}, {
sizeType: types_1.SizeType.MD, inputSize: types_1.SizeType.MD,
scoreThreshold: 0.5 scoreThreshold: 0.5
}, params); }, params);
} }
......
{"version":3,"file":"getDefaultParams.js","sourceRoot":"","sources":["../../src/tinyYolov2/getDefaultParams.ts"],"names":[],"mappings":";;AAAA,iCAA4D;AAE5D,0BAAiC,MAA+B;IAC9D,OAAO,MAAM,CAAC,MAAM,CAClB,EAAE,EACF;QACE,QAAQ,EAAE,gBAAQ,CAAC,EAAE;QACrB,cAAc,EAAE,GAAG;KACpB,EACD,MAAM,CACP,CAAA;AACH,CAAC;AATD,4CASC"} {"version":3,"file":"getDefaultParams.js","sourceRoot":"","sources":["../../src/tinyYolov2/getDefaultParams.ts"],"names":[],"mappings":";;AAAA,iCAA4D;AAE5D,0BAAiC,MAA+B;IAC9D,OAAO,MAAM,CAAC,MAAM,CAClB,EAAE,EACF;QACE,SAAS,EAAE,gBAAQ,CAAC,EAAE;QACtB,cAAc,EAAE,GAAG;KACpB,EACD,MAAM,CACP,CAAA;AACH,CAAC;AATD,4CASC"}
\ No newline at end of file \ No newline at end of file
import { TinyYolov2 } from './TinyYolov2'; import { TinyYolov2 } from './TinyYolov2';
export * from './TinyYolov2'; export * from './TinyYolov2';
export declare function createTinyYolov2(weights: Float32Array): TinyYolov2; export declare function createTinyYolov2(weights: Float32Array, withSeparableConvs?: boolean): TinyYolov2;
...@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); ...@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib"); var tslib_1 = require("tslib");
var TinyYolov2_1 = require("./TinyYolov2"); var TinyYolov2_1 = require("./TinyYolov2");
tslib_1.__exportStar(require("./TinyYolov2"), exports); tslib_1.__exportStar(require("./TinyYolov2"), exports);
function createTinyYolov2(weights) { function createTinyYolov2(weights, withSeparableConvs) {
var net = new TinyYolov2_1.TinyYolov2(); if (withSeparableConvs === void 0) { withSeparableConvs = true; }
var net = new TinyYolov2_1.TinyYolov2(withSeparableConvs);
net.extractWeights(weights); net.extractWeights(weights);
return net; return net;
} }
......
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tinyYolov2/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAE1C,uDAA6B;AAE7B,0BAAiC,OAAqB;IACpD,IAAM,GAAG,GAAG,IAAI,uBAAU,EAAE,CAAA;IAC5B,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC;AAJD,4CAIC"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tinyYolov2/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAE1C,uDAA6B;AAE7B,0BAAiC,OAAqB,EAAE,kBAAkC;IAAlC,mCAAA,EAAA,yBAAkC;IACxF,IAAM,GAAG,GAAG,IAAI,uBAAU,CAAC,kBAAkB,CAAC,CAAA;IAC9C,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC;AAJD,4CAIC"}
\ No newline at end of file \ No newline at end of file
...@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); ...@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
var tf = require("@tensorflow/tfjs-core"); var tf = require("@tensorflow/tfjs-core");
function leaky(x) { function leaky(x) {
return tf.tidy(function () { return tf.tidy(function () {
return tf.maximum(x, tf.mul(x, tf.scalar(0.10000000149011612))); var min = tf.mul(x, tf.scalar(0.10000000149011612));
return tf.add(tf.relu(tf.sub(x, min)), min);
//return tf.maximum(x, min)
}); });
} }
exports.leaky = leaky; exports.leaky = leaky;
......
{"version":3,"file":"leaky.js","sourceRoot":"","sources":["../../src/tinyYolov2/leaky.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,eAAsB,CAAc;IAClC,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;AACJ,CAAC;AAJD,sBAIC"} {"version":3,"file":"leaky.js","sourceRoot":"","sources":["../../src/tinyYolov2/leaky.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,eAAsB,CAAc;IAClC,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,IAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAA;QACrD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAC3C,2BAA2B;IAC7B,CAAC,CAAC,CAAA;AACJ,CAAC;AAND,sBAMC"}
\ No newline at end of file \ No newline at end of file
import { ParamMapping } from '../commons/types'; import { ParamMapping } from '../commons/types';
import { NetParams } from './types'; import { NetParams } from './types';
export declare function loadQuantizedParams(uri: string | undefined): Promise<{ export declare function loadQuantizedParams(uri: string | undefined, withSeparableConvs: boolean): Promise<{
params: NetParams; params: NetParams;
paramMappings: ParamMapping[]; paramMappings: ParamMapping[];
}>; }>;
...@@ -4,7 +4,9 @@ var tslib_1 = require("tslib"); ...@@ -4,7 +4,9 @@ var tslib_1 = require("tslib");
var disposeUnusedWeightTensors_1 = require("../commons/disposeUnusedWeightTensors"); var disposeUnusedWeightTensors_1 = require("../commons/disposeUnusedWeightTensors");
var extractWeightEntryFactory_1 = require("../commons/extractWeightEntryFactory"); var extractWeightEntryFactory_1 = require("../commons/extractWeightEntryFactory");
var loadWeightMap_1 = require("../commons/loadWeightMap"); var loadWeightMap_1 = require("../commons/loadWeightMap");
var types_1 = require("./types");
var DEFAULT_MODEL_NAME = 'tiny_yolov2_model'; var DEFAULT_MODEL_NAME = 'tiny_yolov2_model';
var DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';
function extractorsFactory(weightMap, paramMappings) { function extractorsFactory(weightMap, paramMappings) {
var extractWeightEntry = extractWeightEntryFactory_1.extractWeightEntryFactory(weightMap, paramMappings); var extractWeightEntry = extractWeightEntryFactory_1.extractWeightEntryFactory(weightMap, paramMappings);
function extractBatchNormParams(prefix) { function extractBatchNormParams(prefix) {
...@@ -22,30 +24,38 @@ function extractorsFactory(weightMap, paramMappings) { ...@@ -22,30 +24,38 @@ function extractorsFactory(weightMap, paramMappings) {
var bn = extractBatchNormParams(prefix + "/bn"); var bn = extractBatchNormParams(prefix + "/bn");
return { conv: conv, bn: bn }; return { conv: conv, bn: bn };
} }
function extractSeparableConvParams(prefix) {
var depthwise_filter = extractWeightEntry(prefix + "/depthwise_filter", 4);
var pointwise_filter = extractWeightEntry(prefix + "/pointwise_filter", 4);
var bias = extractWeightEntry(prefix + "/bias", 1);
return new types_1.SeparableConvParams(depthwise_filter, pointwise_filter, bias);
}
return { return {
extractConvParams: extractConvParams, extractConvParams: extractConvParams,
extractConvWithBatchNormParams: extractConvWithBatchNormParams extractConvWithBatchNormParams: extractConvWithBatchNormParams,
extractSeparableConvParams: extractSeparableConvParams
}; };
} }
function loadQuantizedParams(uri) { function loadQuantizedParams(uri, withSeparableConvs) {
return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__awaiter(this, void 0, void 0, function () {
var weightMap, paramMappings, _a, extractConvParams, extractConvWithBatchNormParams, params; var weightMap, paramMappings, _a, extractConvParams, extractConvWithBatchNormParams, extractSeparableConvParams, extractConvFn, params;
return tslib_1.__generator(this, function (_b) { return tslib_1.__generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: return [4 /*yield*/, loadWeightMap_1.loadWeightMap(uri, DEFAULT_MODEL_NAME)]; case 0: return [4 /*yield*/, loadWeightMap_1.loadWeightMap(uri, withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME)];
case 1: case 1:
weightMap = _b.sent(); weightMap = _b.sent();
paramMappings = []; paramMappings = [];
_a = extractorsFactory(weightMap, paramMappings), extractConvParams = _a.extractConvParams, extractConvWithBatchNormParams = _a.extractConvWithBatchNormParams; _a = extractorsFactory(weightMap, paramMappings), extractConvParams = _a.extractConvParams, extractConvWithBatchNormParams = _a.extractConvWithBatchNormParams, extractSeparableConvParams = _a.extractSeparableConvParams;
extractConvFn = withSeparableConvs ? extractSeparableConvParams : extractConvWithBatchNormParams;
params = { params = {
conv0: extractConvWithBatchNormParams('conv0'), conv0: extractConvFn('conv0'),
conv1: extractConvWithBatchNormParams('conv1'), conv1: extractConvFn('conv1'),
conv2: extractConvWithBatchNormParams('conv2'), conv2: extractConvFn('conv2'),
conv3: extractConvWithBatchNormParams('conv3'), conv3: extractConvFn('conv3'),
conv4: extractConvWithBatchNormParams('conv4'), conv4: extractConvFn('conv4'),
conv5: extractConvWithBatchNormParams('conv5'), conv5: extractConvFn('conv5'),
conv6: extractConvWithBatchNormParams('conv6'), conv6: extractConvFn('conv6'),
conv7: extractConvWithBatchNormParams('conv7'), conv7: extractConvFn('conv7'),
conv8: extractConvParams('conv8') conv8: extractConvParams('conv8')
}; };
disposeUnusedWeightTensors_1.disposeUnusedWeightTensors(weightMap, paramMappings); disposeUnusedWeightTensors_1.disposeUnusedWeightTensors(weightMap, paramMappings);
......
{"version":3,"file":"loadQuantizedParams.js","sourceRoot":"","sources":["../../src/tinyYolov2/loadQuantizedParams.ts"],"names":[],"mappings":";;;AAEA,oFAAmF;AACnF,kFAAiF;AACjF,0DAAyD;AAIzD,IAAM,kBAAkB,GAAG,mBAAmB,CAAA;AAE9C,2BAA2B,SAAc,EAAE,aAA6B;IAEtE,IAAM,kBAAkB,GAAG,qDAAyB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAE9E,gCAAgC,MAAc;QAC5C,IAAM,GAAG,GAAG,kBAAkB,CAAiB,MAAM,SAAM,EAAE,CAAC,CAAC,CAAA;QAC/D,IAAM,OAAO,GAAG,kBAAkB,CAAiB,MAAM,aAAU,EAAE,CAAC,CAAC,CAAA;QACvE,OAAO,EAAE,GAAG,KAAA,EAAE,OAAO,SAAA,EAAE,CAAA;IACzB,CAAC;IAED,2BAA2B,MAAc;QACvC,IAAM,OAAO,GAAG,kBAAkB,CAAiB,MAAM,aAAU,EAAE,CAAC,CAAC,CAAA;QACvE,IAAM,IAAI,GAAG,kBAAkB,CAAiB,MAAM,UAAO,EAAE,CAAC,CAAC,CAAA;QACjE,OAAO,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAA;IAC1B,CAAC;IAED,wCAAwC,MAAc;QACpD,IAAM,IAAI,GAAG,iBAAiB,CAAI,MAAM,UAAO,CAAC,CAAA;QAChD,IAAM,EAAE,GAAG,sBAAsB,CAAI,MAAM,QAAK,CAAC,CAAA;QACjD,OAAO,EAAE,IAAI,MAAA,EAAE,EAAE,IAAA,EAAE,CAAA;IACrB,CAAC;IAED,OAAO;QACL,iBAAiB,mBAAA;QACjB,8BAA8B,gCAAA;KAC/B,CAAA;AAEH,CAAC;AAED,6BACE,GAAuB;;;;;wBAGL,qBAAM,6BAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAA;;oBAAxD,SAAS,GAAG,SAA4C;oBACxD,aAAa,GAAmB,EAAE,CAAA;oBAElC,KAGF,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,EAF7C,iBAAiB,uBAAA,EACjB,8BAA8B,oCAAA,CACe;oBAGzC,MAAM,GAAG;wBACb,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC;wBAC9C,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC;wBAC9C,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC;wBAC9C,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC;wBAC9C,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC;wBAC9C,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC;wBAC9C,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC;wBAC9C,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC;wBAC9C,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC;qBAClC,CAAA;oBAED,uDAA0B,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;oBAEpD,sBAAO,EAAE,MAAM,QAAA,EAAE,aAAa,eAAA,EAAE,EAAA;;;;CACjC;AA5BD,kDA4BC"} {"version":3,"file":"loadQuantizedParams.js","sourceRoot":"","sources":["../../src/tinyYolov2/loadQuantizedParams.ts"],"names":[],"mappings":";;;AAEA,oFAAmF;AACnF,kFAAiF;AACjF,0DAAyD;AAEzD,iCAAuF;AAEvF,IAAM,kBAAkB,GAAG,mBAAmB,CAAA;AAC9C,IAAM,iCAAiC,GAAG,kCAAkC,CAAA;AAE5E,2BAA2B,SAAc,EAAE,aAA6B;IAEtE,IAAM,kBAAkB,GAAG,qDAAyB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAE9E,gCAAgC,MAAc;QAC5C,IAAM,GAAG,GAAG,kBAAkB,CAAiB,MAAM,SAAM,EAAE,CAAC,CAAC,CAAA;QAC/D,IAAM,OAAO,GAAG,kBAAkB,CAAiB,MAAM,aAAU,EAAE,CAAC,CAAC,CAAA;QACvE,OAAO,EAAE,GAAG,KAAA,EAAE,OAAO,SAAA,EAAE,CAAA;IACzB,CAAC;IAED,2BAA2B,MAAc;QACvC,IAAM,OAAO,GAAG,kBAAkB,CAAiB,MAAM,aAAU,EAAE,CAAC,CAAC,CAAA;QACvE,IAAM,IAAI,GAAG,kBAAkB,CAAiB,MAAM,UAAO,EAAE,CAAC,CAAC,CAAA;QACjE,OAAO,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAA;IAC1B,CAAC;IAED,wCAAwC,MAAc;QACpD,IAAM,IAAI,GAAG,iBAAiB,CAAI,MAAM,UAAO,CAAC,CAAA;QAChD,IAAM,EAAE,GAAG,sBAAsB,CAAI,MAAM,QAAK,CAAC,CAAA;QACjD,OAAO,EAAE,IAAI,MAAA,EAAE,EAAE,IAAA,EAAE,CAAA;IACrB,CAAC;IAED,oCAAoC,MAAc;QAChD,IAAM,gBAAgB,GAAG,kBAAkB,CAAiB,MAAM,sBAAmB,EAAE,CAAC,CAAC,CAAA;QACzF,IAAM,gBAAgB,GAAG,kBAAkB,CAAiB,MAAM,sBAAmB,EAAE,CAAC,CAAC,CAAA;QACzF,IAAM,IAAI,GAAG,kBAAkB,CAAiB,MAAM,UAAO,EAAE,CAAC,CAAC,CAAA;QAEjE,OAAO,IAAI,2BAAmB,CAC5B,gBAAgB,EAChB,gBAAgB,EAChB,IAAI,CACL,CAAA;IACH,CAAC;IAED,OAAO;QACL,iBAAiB,mBAAA;QACjB,8BAA8B,gCAAA;QAC9B,0BAA0B,4BAAA;KAC3B,CAAA;AAEH,CAAC;AAED,6BACE,GAAuB,EACvB,kBAA2B;;;;;wBAGT,qBAAM,6BAAa,CAAC,GAAG,EAAG,kBAAkB,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAA;;oBAAlH,SAAS,GAAG,SAAsG;oBAClH,aAAa,GAAmB,EAAE,CAAA;oBAElC,KAIF,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,EAH7C,iBAAiB,uBAAA,EACjB,8BAA8B,oCAAA,EAC9B,0BAA0B,gCAAA,CACmB;oBAEzC,aAAa,GAAG,kBAAkB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,8BAA8B,CAAA;oBAEhG,MAAM,GAAG;wBACb,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;wBAC7B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;wBAC7B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;wBAC7B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;wBAC7B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;wBAC7B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;wBAC7B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;wBAC7B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;wBAC7B,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC;qBAClC,CAAA;oBAED,uDAA0B,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;oBAEpD,sBAAO,EAAE,MAAM,QAAA,EAAE,aAAa,eAAA,EAAE,EAAA;;;;CACjC;AA/BD,kDA+BC"}
\ No newline at end of file \ No newline at end of file
import * as tf from '@tensorflow/tfjs-core'; import * as tf from '@tensorflow/tfjs-core';
import { ConvParams } from '../commons/types'; import { ConvParams } from '../commons/types';
import { Point } from '../Point';
export declare type BatchNorm = { export declare type BatchNorm = {
sub: tf.Tensor1D; sub: tf.Tensor1D;
truediv: tf.Tensor1D; truediv: tf.Tensor1D;
}; };
export declare class SeparableConvParams {
depthwise_filter: tf.Tensor4D;
pointwise_filter: tf.Tensor4D;
bias: tf.Tensor1D;
constructor(depthwise_filter: tf.Tensor4D, pointwise_filter: tf.Tensor4D, bias: tf.Tensor1D);
}
export declare type ConvWithBatchNorm = { export declare type ConvWithBatchNorm = {
conv: ConvParams; conv: ConvParams;
bn: BatchNorm; bn: BatchNorm;
}; };
export declare type NetParams = { export declare type NetParams = {
conv0: ConvWithBatchNorm; conv0: ConvWithBatchNorm | SeparableConvParams;
conv1: ConvWithBatchNorm; conv1: ConvWithBatchNorm | SeparableConvParams;
conv2: ConvWithBatchNorm; conv2: ConvWithBatchNorm | SeparableConvParams;
conv3: ConvWithBatchNorm; conv3: ConvWithBatchNorm | SeparableConvParams;
conv4: ConvWithBatchNorm; conv4: ConvWithBatchNorm | SeparableConvParams;
conv5: ConvWithBatchNorm; conv5: ConvWithBatchNorm | SeparableConvParams;
conv6: ConvWithBatchNorm; conv6: ConvWithBatchNorm | SeparableConvParams;
conv7: ConvWithBatchNorm; conv7: ConvWithBatchNorm | SeparableConvParams;
conv8: ConvParams; conv8: ConvParams;
}; };
export declare enum SizeType { export declare enum SizeType {
...@@ -29,3 +36,7 @@ export declare type TinyYolov2ForwardParams = { ...@@ -29,3 +36,7 @@ export declare type TinyYolov2ForwardParams = {
inputSize?: SizeType | number; inputSize?: SizeType | number;
scoreThreshold?: number; scoreThreshold?: number;
}; };
export declare type PostProcessingParams = {
scoreThreshold?: number;
paddings: Point;
};
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
var SeparableConvParams = /** @class */ (function () {
function SeparableConvParams(depthwise_filter, pointwise_filter, bias) {
this.depthwise_filter = depthwise_filter;
this.pointwise_filter = pointwise_filter;
this.bias = bias;
}
return SeparableConvParams;
}());
exports.SeparableConvParams = SeparableConvParams;
var SizeType; var SizeType;
(function (SizeType) { (function (SizeType) {
SizeType["XS"] = "xs"; SizeType["XS"] = "xs";
......
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tinyYolov2/types.ts"],"names":[],"mappings":";;AA0BA,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,qBAAS,CAAA;IACT,qBAAS,CAAA;IACT,qBAAS,CAAA;IACT,qBAAS,CAAA;AACX,CAAC,EALW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAKnB"} {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tinyYolov2/types.ts"],"names":[],"mappings":";;AAUA;IACE,6BACS,gBAA6B,EAC7B,gBAA6B,EAC7B,IAAiB;QAFjB,qBAAgB,GAAhB,gBAAgB,CAAa;QAC7B,qBAAgB,GAAhB,gBAAgB,CAAa;QAC7B,SAAI,GAAJ,IAAI,CAAa;IACvB,CAAC;IACN,0BAAC;AAAD,CAAC,AAND,IAMC;AANY,kDAAmB;AAyBhC,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,qBAAS,CAAA;IACT,qBAAS,CAAA;IACT,qBAAS,CAAA;IACT,qBAAS,CAAA;AACX,CAAC,EALW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAKnB"}
\ No newline at end of file \ No newline at end of file
...@@ -3,6 +3,8 @@ import { Dimensions } from './types'; ...@@ -3,6 +3,8 @@ import { Dimensions } from './types';
export declare function isFloat(num: number): boolean; export declare function isFloat(num: number): boolean;
export declare function isEven(num: number): boolean; export declare function isEven(num: number): boolean;
export declare function round(num: number): number; export declare function round(num: number): number;
export declare function sigmoid(x: number): number;
export declare function isDimensions(obj: any): boolean;
export declare function resolveInput(arg: string | any): any; export declare function resolveInput(arg: string | any): any;
export declare function isLoaded(media: HTMLImageElement | HTMLVideoElement): boolean; export declare function isLoaded(media: HTMLImageElement | HTMLVideoElement): boolean;
export declare function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement): Promise<{}>; export declare function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement): Promise<{}>;
......
...@@ -15,6 +15,14 @@ function round(num) { ...@@ -15,6 +15,14 @@ function round(num) {
return Math.floor(num * 100) / 100; return Math.floor(num * 100) / 100;
} }
exports.round = round; exports.round = round;
function sigmoid(x) {
return 1 / (1 + Math.exp(-x));
}
exports.sigmoid = sigmoid;
function isDimensions(obj) {
return obj && obj.width && obj.height;
}
exports.isDimensions = isDimensions;
function resolveInput(arg) { function resolveInput(arg) {
if (typeof arg === 'string') { if (typeof arg === 'string') {
return document.getElementById(arg); return document.getElementById(arg);
...@@ -37,14 +45,14 @@ function awaitMediaLoaded(media) { ...@@ -37,14 +45,14 @@ function awaitMediaLoaded(media) {
return; return;
e.currentTarget.removeEventListener('load', onLoad); e.currentTarget.removeEventListener('load', onLoad);
e.currentTarget.removeEventListener('error', onError); e.currentTarget.removeEventListener('error', onError);
resolve(); resolve(e);
} }
function onError(e) { function onError(e) {
if (!e.currentTarget) if (!e.currentTarget)
return; return;
e.currentTarget.removeEventListener('load', onLoad); e.currentTarget.removeEventListener('load', onLoad);
e.currentTarget.removeEventListener('error', onError); e.currentTarget.removeEventListener('error', onError);
reject(); reject(e);
} }
media.addEventListener('load', onLoad); media.addEventListener('load', onLoad);
media.addEventListener('error', onError); media.addEventListener('error', onError);
......
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,0CAA4C;AAE5C,+CAAgD;AAGhD,iBAAwB,GAAW;IACjC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AAFD,0BAEC;AAED,gBAAuB,GAAW;IAChC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AAFD,wBAEC;AAED,eAAsB,GAAW;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;AACpC,CAAC;AAFD,sBAEC;AAED,sBAA6B,GAAiB;IAC5C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;KACpC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AALD,oCAKC;AAED,kBAAyB,KAA0C;IACjE,OAAO,CAAC,KAAK,YAAY,gBAAgB,IAAI,KAAK,CAAC,QAAQ,CAAC;WACvD,CAAC,KAAK,YAAY,gBAAgB,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,CAAA;AACnE,CAAC;AAHD,4BAGC;AAED,0BAAiC,KAA8D;IAC7F,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,KAAK,YAAY,iBAAiB,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;YACzD,OAAO,OAAO,EAAE,CAAA;SACjB;QAED,gBAAgB,CAAQ;YACtB,IAAI,CAAC,CAAC,CAAC,aAAa;gBAAE,OAAM;YAC5B,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACnD,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACrD,OAAO,EAAE,CAAA;QACX,CAAC;QAED,iBAAiB,CAAQ;YACvB,IAAI,CAAC,CAAC,CAAC,aAAa;gBAAE,OAAM;YAC5B,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACnD,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACrD,MAAM,EAAE,CAAA;QACV,CAAC;QAED,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACtC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;AACJ,CAAC;AAvBD,4CAuBC;AAED,6BAAoC,MAAyB;IAC3D,IAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;KAC7C;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAND,kDAMC;AAED,sBAA6B,EAA6B;QAA3B,gBAAK,EAAE,kBAAM;IAC1C,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,OAAO,MAAM,CAAA;AACf,CAAC;AALD,oCAKC;AAED,+BAAsC,KAA0C,EAAE,IAAiB;IACjG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;KAC9E;IAEK,IAAA,sCAAqD,EAAnD,gBAAK,EAAE,kBAAM,CAAsC;IAC3D,IAAM,MAAM,GAAG,YAAY,CAAC,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;IAC9C,mBAAmB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACjE,OAAO,MAAM,CAAA;AACf,CAAC;AATD,sDASC;AAED,4BAAmC,KAA0C;IAC3E,IAAI,KAAK,YAAY,gBAAgB,EAAE;QACrC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,CAAA;KAClE;IACD,IAAI,KAAK,YAAY,gBAAgB,EAAE;QACrC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAA;KAC9D;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AARD,gDAQC;AAED,uBAA8B,GAAS;IACrC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,EAAE;YAC1B,OAAO,MAAM,CAAC,kDAAkD,CAAC,CAAA;SAClE;QAED,IAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;QAC/B,MAAM,CAAC,MAAM,GAAG;YACd,IAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAA;YACvB,GAAG,CAAC,MAAM,GAAG,cAAM,OAAA,OAAO,CAAC,GAAG,CAAC,EAAZ,CAAY,CAAA;YAC/B,GAAG,CAAC,OAAO,GAAG,MAAM,CAAA;YACpB,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAA;QACzB,CAAC,CAAA;QACD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAA;QACvB,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC;AAhBD,sCAgBC;AAED,6BACE,SAAoB,EACpB,MAA0B;;;;;;oBAEpB,YAAY,GAAG,MAAM,IAAK,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;oBAE1D,KAA+B,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAlF,MAAM,QAAA,EAAE,KAAK,QAAA,EAAE,WAAW,QAAA,CAAwD;oBACnF,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,KAAK,EAAE,EAAlD,CAAkD,CAAC,CAAA;oBACrF,qBAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,EAAA;;oBAA5C,SAA4C,CAAA;oBAE5C,WAAW,CAAC,OAAO,EAAE,CAAA;oBAErB,sBAAO,YAAY,EAAA;;;;CACpB;AAbD,kDAaC"} {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment