Commit 8fda8661 by vincent

check in latest build

parent fdf28275
...@@ -69,7 +69,7 @@ var FaceLandmarks = /** @class */ (function () { ...@@ -69,7 +69,7 @@ var FaceLandmarks = /** @class */ (function () {
// TODO: pad in case rectangle is out of image bounds // TODO: pad in case rectangle is out of image bounds
var x = Math.floor(Math.max(0, refPoint.x - (relX * size))); var x = Math.floor(Math.max(0, refPoint.x - (relX * size)));
var y = Math.floor(Math.max(0, refPoint.y - (relY * size))); var y = Math.floor(Math.max(0, refPoint.y - (relY * size)));
return new Rect_1.Rect(x, y, Math.min(size, this._imageWidth - x), Math.min(size, this._imageHeight - y)); return new Rect_1.Rect(x, y, Math.min(size, this._imageWidth + x), Math.min(size, this._imageHeight + y));
}; };
FaceLandmarks.prototype.getRefPointsForAlignment = function () { FaceLandmarks.prototype.getRefPointsForAlignment = function () {
throw new Error('getRefPointsForAlignment not implemented by base class'); throw new Error('getRefPointsForAlignment not implemented by base class');
......
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 { 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 { Rect } from './Rect';
import { TNetInput } from './types'; import { TNetInput } from './types';
export declare function allFacesFactory(detectionNet: FaceDetectionNet, landmarkNet: FaceLandmarkNet, computeDescriptors: (input: TNetInput, alignedFaceBoxes: Rect[], useBatchProcessing: boolean) => Promise<Float32Array[]>): (input: TNetInput, minConfidence: number, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>; export declare function allFacesFactory(detectionNet: FaceDetectionNet, landmarkNet: FaceLandmarkNet, recognitionNet: FaceRecognitionNet): (input: TNetInput, minConfidence?: number, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>;
export declare function allFacesMtcnnFactory(mtcnn: Mtcnn, computeDescriptors: (input: TNetInput, alignedFaceBoxes: Rect[], useBatchProcessing: boolean) => Promise<Float32Array[]>): (input: TNetInput, mtcnnForwardParams: MtcnnForwardParams, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>; export declare function allFacesMtcnnFactory(mtcnn: Mtcnn, recognitionNet: FaceRecognitionNet): (input: TNetInput, mtcnnForwardParams?: MtcnnForwardParams, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>;
...@@ -3,8 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true }); ...@@ -3,8 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib"); var tslib_1 = require("tslib");
var extractFaceTensors_1 = require("./extractFaceTensors"); var extractFaceTensors_1 = require("./extractFaceTensors");
var FullFaceDescription_1 = require("./FullFaceDescription"); var FullFaceDescription_1 = require("./FullFaceDescription");
function allFacesFactory(detectionNet, landmarkNet, computeDescriptors) { function computeDescriptorsFactory(recognitionNet) {
return function (input, alignedFaceBoxes, useBatchProcessing) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var alignedFaceTensors, descriptors, _a;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0: return [4 /*yield*/, extractFaceTensors_1.extractFaceTensors(input, alignedFaceBoxes)];
case 1:
alignedFaceTensors = _b.sent();
if (!useBatchProcessing) return [3 /*break*/, 3];
return [4 /*yield*/, recognitionNet.computeFaceDescriptor(alignedFaceTensors)];
case 2:
_a = _b.sent();
return [3 /*break*/, 5];
case 3: return [4 /*yield*/, Promise.all(alignedFaceTensors.map(function (faceTensor) { return recognitionNet.computeFaceDescriptor(faceTensor); }))];
case 4:
_a = _b.sent();
_b.label = 5;
case 5:
descriptors = _a;
alignedFaceTensors.forEach(function (t) { return t.dispose(); });
return [2 /*return*/, descriptors];
}
});
});
};
}
function allFacesFactory(detectionNet, landmarkNet, recognitionNet) {
var computeDescriptors = computeDescriptorsFactory(recognitionNet);
return function (input, minConfidence, useBatchProcessing) { return function (input, minConfidence, 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;
...@@ -41,8 +70,10 @@ function allFacesFactory(detectionNet, landmarkNet, computeDescriptors) { ...@@ -41,8 +70,10 @@ function allFacesFactory(detectionNet, landmarkNet, computeDescriptors) {
}; };
} }
exports.allFacesFactory = allFacesFactory; exports.allFacesFactory = allFacesFactory;
function allFacesMtcnnFactory(mtcnn, computeDescriptors) { function allFacesMtcnnFactory(mtcnn, recognitionNet) {
var computeDescriptors = computeDescriptorsFactory(recognitionNet);
return function (input, mtcnnForwardParams, useBatchProcessing) { return function (input, mtcnnForwardParams, useBatchProcessing) {
if (mtcnnForwardParams === void 0) { mtcnnForwardParams = {}; }
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 results, alignedFaceBoxes, descriptors; var results, alignedFaceBoxes, descriptors;
......
{"version":3,"file":"allFacesFactory.js","sourceRoot":"","sources":["../src/allFacesFactory.ts"],"names":[],"mappings":";;;AAAA,2DAA0D;AAI1D,6DAA4D;AAM5D,yBACE,YAA8B,EAC9B,WAA4B,EAC5B,kBAAwH;IAExH,OAAO,UACL,KAAgB,EAChB,aAAqB,EACrB,kBAAmC;QAAnC,mCAAA,EAAA,0BAAmC;;;;;4BAGhB,qBAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EAAA;;wBAAjE,UAAU,GAAG,SAAoD;wBAEnD,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;AAtCD,0CAsCC;AAED,8BACE,KAAY,EACZ,kBAAwH;IAExH,OAAO,UACL,KAAgB,EAChB,kBAAsC,EACtC,kBAAmC;QAAnC,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;AA3BD,oDA2BC"} {"version":3,"file":"allFacesFactory.js","sourceRoot":"","sources":["../src/allFacesFactory.ts"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
...@@ -27,5 +27,7 @@ export declare function locateFaces(input: TNetInput, minConfidence?: number, ma ...@@ -27,5 +27,7 @@ export declare function locateFaces(input: TNetInput, minConfidence?: number, ma
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 const allFaces: (input: tf.Tensor | NetInput | TNetInput, minConfidence: number, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>; export declare type allFacesFunction = (input: tf.Tensor | NetInput | TNetInput, minConfidence?: number, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>;
export declare const allFacesMtcnn: (input: tf.Tensor | NetInput | TNetInput, mtcnnForwardParams: MtcnnForwardParams, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>; export declare const allFaces: allFacesFunction;
export declare type allFacesMtcnnFunction = (input: tf.Tensor | NetInput | TNetInput, mtcnnForwardParams?: MtcnnForwardParams, useBatchProcessing?: boolean) => Promise<FullFaceDescription[]>;
export declare const allFacesMtcnn: allFacesMtcnnFunction;
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var allFacesFactory_1 = require("./allFacesFactory"); var allFacesFactory_1 = require("./allFacesFactory");
var extractFaceTensors_1 = require("./extractFaceTensors");
var FaceDetectionNet_1 = require("./faceDetectionNet/FaceDetectionNet"); var FaceDetectionNet_1 = require("./faceDetectionNet/FaceDetectionNet");
var FaceLandmarkNet_1 = require("./faceLandmarkNet/FaceLandmarkNet"); var FaceLandmarkNet_1 = require("./faceLandmarkNet/FaceLandmarkNet");
var FaceRecognitionNet_1 = require("./faceRecognitionNet/FaceRecognitionNet"); var FaceRecognitionNet_1 = require("./faceRecognitionNet/FaceRecognitionNet");
...@@ -59,33 +57,6 @@ function mtcnn(input, forwardParams) { ...@@ -59,33 +57,6 @@ function mtcnn(input, forwardParams) {
return exports.nets.mtcnn.forward(input, forwardParams); return exports.nets.mtcnn.forward(input, forwardParams);
} }
exports.mtcnn = mtcnn; exports.mtcnn = mtcnn;
exports.allFaces = allFacesFactory_1.allFacesFactory(exports.detectionNet, exports.landmarkNet, computeDescriptorsFactory(exports.nets.faceRecognitionNet)); exports.allFaces = allFacesFactory_1.allFacesFactory(exports.nets.ssdMobilenet, exports.nets.faceLandmark68Net, exports.nets.faceRecognitionNet);
exports.allFacesMtcnn = allFacesFactory_1.allFacesMtcnnFactory(exports.nets.mtcnn, computeDescriptorsFactory(exports.nets.faceRecognitionNet)); exports.allFacesMtcnn = allFacesFactory_1.allFacesMtcnnFactory(exports.nets.mtcnn, exports.nets.faceRecognitionNet);
function computeDescriptorsFactory(recognitionNet) {
return function (input, alignedFaceBoxes, useBatchProcessing) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var alignedFaceTensors, descriptors, _a;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0: return [4 /*yield*/, extractFaceTensors_1.extractFaceTensors(input, alignedFaceBoxes)];
case 1:
alignedFaceTensors = _b.sent();
if (!useBatchProcessing) return [3 /*break*/, 3];
return [4 /*yield*/, recognitionNet.computeFaceDescriptor(alignedFaceTensors)];
case 2:
_a = _b.sent();
return [3 /*break*/, 5];
case 3: return [4 /*yield*/, Promise.all(alignedFaceTensors.map(function (faceTensor) { return recognitionNet.computeFaceDescriptor(faceTensor); }))];
case 4:
_a = _b.sent();
_b.label = 5;
case 5:
descriptors = _a;
alignedFaceTensors.forEach(function (t) { return t.dispose(); });
return [2 /*return*/, descriptors];
}
});
});
};
}
//# 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":"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"} {"version":3,"file":"globalApi.js","sourceRoot":"","sources":["../src/globalApi.ts"],"names":[],"mappings":";;AAEA,qDAA0E;AAE1E,wEAAuE;AACvE,qEAAoE;AAEpE,8EAA6E;AAE7E,uCAAsC;AAKzB,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;CACnB,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,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;KACpB,CAAC,CAAA;AACJ,CAAC;AAPD,gCAOC;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;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"}
\ No newline at end of file \ No newline at end of file
...@@ -4,12 +4,12 @@ import { TNetInput } from '../types'; ...@@ -4,12 +4,12 @@ import { TNetInput } from '../types';
import { MtcnnForwardParams, MtcnnResult, NetParams } from './types'; import { MtcnnForwardParams, MtcnnResult, NetParams } from './types';
export declare class Mtcnn extends NeuralNetwork<NetParams> { export declare class Mtcnn extends NeuralNetwork<NetParams> {
constructor(); constructor();
forwardInput(input: NetInput, forwardParams: MtcnnForwardParams): Promise<{ forwardInput(input: NetInput, forwardParams?: MtcnnForwardParams): Promise<{
results: MtcnnResult[]; results: MtcnnResult[];
stats: any; stats: any;
}>; }>;
forward(input: TNetInput, forwardParams: MtcnnForwardParams): Promise<MtcnnResult[]>; forward(input: TNetInput, forwardParams?: MtcnnForwardParams): Promise<MtcnnResult[]>;
forwardWithStats(input: TNetInput, forwardParams: MtcnnForwardParams): Promise<{ forwardWithStats(input: TNetInput, forwardParams?: MtcnnForwardParams): Promise<{
results: MtcnnResult[]; results: MtcnnResult[];
stats: any; stats: any;
}>; }>;
......
...@@ -24,6 +24,7 @@ var Mtcnn = /** @class */ (function (_super) { ...@@ -24,6 +24,7 @@ var Mtcnn = /** @class */ (function (_super) {
return _super.call(this, 'Mtcnn') || this; return _super.call(this, 'Mtcnn') || this;
} }
Mtcnn.prototype.forwardInput = function (input, forwardParams) { Mtcnn.prototype.forwardInput = function (input, forwardParams) {
if (forwardParams === void 0) { forwardParams = {}; }
return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__awaiter(this, void 0, void 0, function () {
var params, inputTensor, inputCanvas, stats, tsTotal, imgTensor, onReturn, _a, height, width, _b, minFaceSize, scaleFactor, maxNumScales, scoreThresholds, scaleSteps, scales, ts, out1, out2, out3, results; var params, inputTensor, inputCanvas, stats, tsTotal, imgTensor, onReturn, _a, height, width, _b, minFaceSize, scaleFactor, maxNumScales, scoreThresholds, scaleSteps, scales, ts, out1, out2, out3, results;
return tslib_1.__generator(this, function (_c) { return tslib_1.__generator(this, function (_c) {
...@@ -98,6 +99,7 @@ var Mtcnn = /** @class */ (function (_super) { ...@@ -98,6 +99,7 @@ var Mtcnn = /** @class */ (function (_super) {
}); });
}; };
Mtcnn.prototype.forward = function (input, forwardParams) { Mtcnn.prototype.forward = function (input, forwardParams) {
if (forwardParams === void 0) { forwardParams = {}; }
return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a; var _a;
return tslib_1.__generator(this, function (_b) { return tslib_1.__generator(this, function (_b) {
...@@ -113,6 +115,7 @@ var Mtcnn = /** @class */ (function (_super) { ...@@ -113,6 +115,7 @@ var Mtcnn = /** @class */ (function (_super) {
}); });
}; };
Mtcnn.prototype.forwardWithStats = function (input, forwardParams) { Mtcnn.prototype.forwardWithStats = function (input, forwardParams) {
if (forwardParams === void 0) { forwardParams = {}; }
return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a; var _a;
return tslib_1.__generator(this, function (_b) { return tslib_1.__generator(this, function (_b) {
......
{"version":3,"file":"Mtcnn.js","sourceRoot":"","sources":["../../src/mtcnn/Mtcnn.ts"],"names":[],"mappings":"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"} {"version":3,"file":"Mtcnn.js","sourceRoot":"","sources":["../../src/mtcnn/Mtcnn.ts"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
...@@ -1095,7 +1095,7 @@ ...@@ -1095,7 +1095,7 @@
// TODO: pad in case rectangle is out of image bounds // TODO: pad in case rectangle is out of image bounds
var x = Math.floor(Math.max(0, refPoint.x - (relX * size))); var x = Math.floor(Math.max(0, refPoint.x - (relX * size)));
var y = Math.floor(Math.max(0, refPoint.y - (relY * size))); var y = Math.floor(Math.max(0, refPoint.y - (relY * size)));
return new Rect(x, y, Math.min(size, this._imageWidth - x), Math.min(size, this._imageHeight - y)); return new Rect(x, y, Math.min(size, this._imageWidth + x), Math.min(size, this._imageHeight + y));
}; };
FaceLandmarks.prototype.getRefPointsForAlignment = function () { FaceLandmarks.prototype.getRefPointsForAlignment = function () {
throw new Error('getRefPointsForAlignment not implemented by base class'); throw new Error('getRefPointsForAlignment not implemented by base class');
...@@ -2443,8 +2443,37 @@ ...@@ -2443,8 +2443,37 @@
return createFaceRecognitionNet(weights); return createFaceRecognitionNet(weights);
} }
function allFacesFactory(detectionNet, landmarkNet, computeDescriptors) { function computeDescriptorsFactory(recognitionNet) {
return function (input, alignedFaceBoxes, useBatchProcessing) {
return __awaiter$1(this, void 0, void 0, function () {
var alignedFaceTensors, descriptors, _a;
return __generator$1(this, function (_b) {
switch (_b.label) {
case 0: return [4 /*yield*/, extractFaceTensors(input, alignedFaceBoxes)];
case 1:
alignedFaceTensors = _b.sent();
if (!useBatchProcessing) return [3 /*break*/, 3];
return [4 /*yield*/, recognitionNet.computeFaceDescriptor(alignedFaceTensors)];
case 2:
_a = _b.sent();
return [3 /*break*/, 5];
case 3: return [4 /*yield*/, Promise.all(alignedFaceTensors.map(function (faceTensor) { return recognitionNet.computeFaceDescriptor(faceTensor); }))];
case 4:
_a = _b.sent();
_b.label = 5;
case 5:
descriptors = _a;
alignedFaceTensors.forEach(function (t) { return t.dispose(); });
return [2 /*return*/, descriptors];
}
});
});
};
}
function allFacesFactory(detectionNet, landmarkNet, recognitionNet) {
var computeDescriptors = computeDescriptorsFactory(recognitionNet);
return function (input, minConfidence, useBatchProcessing) { return function (input, minConfidence, useBatchProcessing) {
if (minConfidence === void 0) { minConfidence = 0.8; }
if (useBatchProcessing === void 0) { useBatchProcessing = false; } if (useBatchProcessing === void 0) { useBatchProcessing = false; }
return __awaiter$1(this, void 0, void 0, function () { return __awaiter$1(this, void 0, void 0, function () {
var detections, faceTensors, faceLandmarksByFace, _a, alignedFaceBoxes, descriptors; var detections, faceTensors, faceLandmarksByFace, _a, alignedFaceBoxes, descriptors;
...@@ -2480,8 +2509,10 @@ ...@@ -2480,8 +2509,10 @@
}); });
}; };
} }
function allFacesMtcnnFactory(mtcnn, computeDescriptors) { function allFacesMtcnnFactory(mtcnn, recognitionNet) {
var computeDescriptors = computeDescriptorsFactory(recognitionNet);
return function (input, mtcnnForwardParams, useBatchProcessing) { return function (input, mtcnnForwardParams, useBatchProcessing) {
if (mtcnnForwardParams === void 0) { mtcnnForwardParams = {}; }
if (useBatchProcessing === void 0) { useBatchProcessing = false; } if (useBatchProcessing === void 0) { useBatchProcessing = false; }
return __awaiter$1(this, void 0, void 0, function () { return __awaiter$1(this, void 0, void 0, function () {
var results, alignedFaceBoxes, descriptors; var results, alignedFaceBoxes, descriptors;
...@@ -3167,6 +3198,7 @@ ...@@ -3167,6 +3198,7 @@
return _super.call(this, 'Mtcnn') || this; return _super.call(this, 'Mtcnn') || this;
} }
Mtcnn.prototype.forwardInput = function (input, forwardParams) { Mtcnn.prototype.forwardInput = function (input, forwardParams) {
if (forwardParams === void 0) { forwardParams = {}; }
return __awaiter$1(this, void 0, void 0, function () { return __awaiter$1(this, void 0, void 0, function () {
var params, inputTensor, inputCanvas, stats, tsTotal, imgTensor, onReturn, _a, height, width, _b, minFaceSize, scaleFactor, maxNumScales, scoreThresholds, scaleSteps, scales, ts, out1, out2, out3, results; var params, inputTensor, inputCanvas, stats, tsTotal, imgTensor, onReturn, _a, height, width, _b, minFaceSize, scaleFactor, maxNumScales, scoreThresholds, scaleSteps, scales, ts, out1, out2, out3, results;
return __generator$1(this, function (_c) { return __generator$1(this, function (_c) {
...@@ -3241,6 +3273,7 @@ ...@@ -3241,6 +3273,7 @@
}); });
}; };
Mtcnn.prototype.forward = function (input, forwardParams) { Mtcnn.prototype.forward = function (input, forwardParams) {
if (forwardParams === void 0) { forwardParams = {}; }
return __awaiter$1(this, void 0, void 0, function () { return __awaiter$1(this, void 0, void 0, function () {
var _a; var _a;
return __generator$1(this, function (_b) { return __generator$1(this, function (_b) {
...@@ -3256,6 +3289,7 @@ ...@@ -3256,6 +3289,7 @@
}); });
}; };
Mtcnn.prototype.forwardWithStats = function (input, forwardParams) { Mtcnn.prototype.forwardWithStats = function (input, forwardParams) {
if (forwardParams === void 0) { forwardParams = {}; }
return __awaiter$1(this, void 0, void 0, function () { return __awaiter$1(this, void 0, void 0, function () {
var _a; var _a;
return __generator$1(this, function (_b) { return __generator$1(this, function (_b) {
...@@ -3322,35 +3356,8 @@ ...@@ -3322,35 +3356,8 @@
function mtcnn(input, forwardParams) { function mtcnn(input, forwardParams) {
return nets.mtcnn.forward(input, forwardParams); return nets.mtcnn.forward(input, forwardParams);
} }
var allFaces = allFacesFactory(detectionNet, landmarkNet, computeDescriptorsFactory(nets.faceRecognitionNet)); var allFaces = allFacesFactory(nets.ssdMobilenet, nets.faceLandmark68Net, nets.faceRecognitionNet);
var allFacesMtcnn = allFacesMtcnnFactory(nets.mtcnn, computeDescriptorsFactory(nets.faceRecognitionNet)); var allFacesMtcnn = allFacesMtcnnFactory(nets.mtcnn, nets.faceRecognitionNet);
function computeDescriptorsFactory(recognitionNet) {
return function (input, alignedFaceBoxes, useBatchProcessing) {
return __awaiter$1(this, void 0, void 0, function () {
var alignedFaceTensors, descriptors, _a;
return __generator$1(this, function (_b) {
switch (_b.label) {
case 0: return [4 /*yield*/, extractFaceTensors(input, alignedFaceBoxes)];
case 1:
alignedFaceTensors = _b.sent();
if (!useBatchProcessing) return [3 /*break*/, 3];
return [4 /*yield*/, recognitionNet.computeFaceDescriptor(alignedFaceTensors)];
case 2:
_a = _b.sent();
return [3 /*break*/, 5];
case 3: return [4 /*yield*/, Promise.all(alignedFaceTensors.map(function (faceTensor) { return recognitionNet.computeFaceDescriptor(faceTensor); }))];
case 4:
_a = _b.sent();
_b.label = 5;
case 5:
descriptors = _a;
alignedFaceTensors.forEach(function (t) { return t.dispose(); });
return [2 /*return*/, descriptors];
}
});
});
};
}
function createMtcnn(weights) { function createMtcnn(weights) {
var net = new Mtcnn(); var net = new Mtcnn();
......
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