Commit 2efd6f27 by Jonathan Derrough

Added FaceMatcher.toJSON() & LabeledFaceDescriptors.toJSON()

Reverted build/ & dist/ to master
parent 875898d7
......@@ -4,6 +4,4 @@ export declare class LabeledFaceDescriptors {
constructor(label: string, descriptors: Float32Array[]);
readonly label: string;
readonly descriptors: Float32Array[];
static fromJSON(jsonString: string): LabeledFaceDescriptors;
static fromPOJO(pojo: any): LabeledFaceDescriptors;
}
......@@ -21,15 +21,6 @@ var LabeledFaceDescriptors = /** @class */ (function () {
enumerable: true,
configurable: true
});
LabeledFaceDescriptors.fromJSON = function (jsonString) {
return LabeledFaceDescriptors.fromPOJO(JSON.parse(jsonString));
};
LabeledFaceDescriptors.fromPOJO = function (pojo) {
var descriptors = pojo._descriptors.map(function (d) {
return new Float32Array(Object.keys(d).map(function (key) { return d[key]; }));
});
return new LabeledFaceDescriptors(pojo._label, descriptors);
};
return LabeledFaceDescriptors;
}());
exports.LabeledFaceDescriptors = LabeledFaceDescriptors;
......
{"version":3,"file":"LabeledFaceDescriptors.js","sourceRoot":"","sources":["../../../src/classes/LabeledFaceDescriptors.ts"],"names":[],"mappings":";;AAAA;IAIE,gCAAY,KAAa,EAAE,WAA2B;QACpD,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;SACtF;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,YAAY,YAAY,CAAC,EAA/B,CAA+B,CAAC,EAAE;YAC5F,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;SAC5G;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,sBAAW,yCAAK;aAAhB,cAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;;;OAAA;IACjD,sBAAW,+CAAW;aAAtB,cAA2C,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IAEvD,+BAAQ,GAAtB,UAAuB,UAAkB;QACvC,OAAO,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IAEa,+BAAQ,GAAtB,UAAuB,IAAS;QAC9B,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAC,CAAM;YAC/C,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,CAAC,GAAG,CAAC,EAAN,CAAM,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;IAEH,6BAAC;AAAD,CAAC,AA/BD,IA+BC;AA/BY,wDAAsB"}
\ No newline at end of file
{"version":3,"file":"LabeledFaceDescriptors.js","sourceRoot":"","sources":["../../../src/classes/LabeledFaceDescriptors.ts"],"names":[],"mappings":";;AAAA;IAIE,gCAAY,KAAa,EAAE,WAA2B;QACpD,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;SACtF;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,YAAY,YAAY,CAAC,EAA/B,CAA+B,CAAC,EAAE;YAC5F,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;SAC5G;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,sBAAW,yCAAK;aAAhB,cAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;;;OAAA;IACjD,sBAAW,+CAAW;aAAtB,cAA2C,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IACvE,6BAAC;AAAD,CAAC,AAnBD,IAmBC;AAnBY,wDAAsB"}
\ No newline at end of file
......@@ -10,6 +10,4 @@ export declare class FaceMatcher {
computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number;
matchDescriptor(queryDescriptor: Float32Array): FaceMatch;
findBestMatch(queryDescriptor: Float32Array): FaceMatch;
static fromJSON(jsonString: string): FaceMatcher;
static fromPOJO(pojo: any): FaceMatcher;
}
......@@ -57,14 +57,6 @@ var FaceMatcher = /** @class */ (function () {
? bestMatch
: new FaceMatch_1.FaceMatch('unknown', bestMatch.distance);
};
FaceMatcher.fromJSON = function (jsonString) {
return FaceMatcher.fromPOJO(JSON.parse(jsonString));
};
FaceMatcher.fromPOJO = function (pojo) {
var labeledDescriptors = pojo._labeledDescriptors
.map(function (ld) { return LabeledFaceDescriptors_1.LabeledFaceDescriptors.fromPOJO(ld); });
return new FaceMatcher(labeledDescriptors, pojo._distanceThreshold);
};
return FaceMatcher;
}());
exports.FaceMatcher = FaceMatcher;
......
{"version":3,"file":"FaceMatcher.js","sourceRoot":"","sources":["../../../src/globalApi/FaceMatcher.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"FaceMatcher.js","sourceRoot":"","sources":["../../../src/globalApi/FaceMatcher.ts"],"names":[],"mappings":";;AAAA,kDAAiD;AACjD,4EAA2E;AAC3E,0DAAyD;AAGzD;IAKE,qBACE,MAAgJ,EAChJ,iBAA+B;QAA/B,kCAAA,EAAA,uBAA+B;QAG/B,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAA;QAE3C,IAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAE5D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;SAC3E;QAED,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAM,iBAAiB,GAAG,cAAM,OAAA,YAAU,KAAK,EAAI,EAAnB,CAAmB,CAAA;QAEnD,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,GAAG,CAAC,UAAC,IAAI;YAC7C,IAAI,IAAI,YAAY,+CAAsB,EAAE;gBAC1C,OAAO,IAAI,CAAA;aACZ;YAED,IAAI,IAAI,YAAY,YAAY,EAAE;gBAChC,OAAO,IAAI,+CAAsB,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;aAC/D;YAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,YAAY,YAAY,EAAE;gBAC9D,OAAO,IAAI,+CAAsB,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;aAC1E;YAED,MAAM,IAAI,KAAK,CAAC,qMAAqM,CAAC,CAAA;QACxN,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,sBAAW,2CAAkB;aAA7B,cAA4D,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC;;;OAAA;IAC7F,sBAAW,0CAAiB;aAA5B,cAAyC,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC;;;OAAA;IAElE,yCAAmB,GAA1B,UAA2B,eAA6B,EAAE,WAA2B;QACnF,OAAO,WAAW;aACf,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,qCAAiB,CAAC,CAAC,EAAE,eAAe,CAAC,EAArC,CAAqC,CAAC;aAC/C,MAAM,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,EAAE,GAAG,EAAE,EAAP,CAAO,EAAE,CAAC,CAAC;cAC3B,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;IACjC,CAAC;IAEM,qCAAe,GAAtB,UAAuB,eAA6B;QAApD,iBAOC;QANC,OAAO,IAAI,CAAC,kBAAkB;aAC3B,GAAG,CAAC,UAAC,EAAsB;gBAApB,4BAAW,EAAE,gBAAK;YAAO,OAAA,IAAI,qBAAS,CAC1C,KAAK,EACL,KAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,WAAW,CAAC,CACzD;QAHgC,CAGhC,CAAC;aACD,MAAM,CAAC,UAAC,IAAI,EAAE,IAAI,IAAK,OAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAA3C,CAA2C,CAAC,CAAA;IACxE,CAAC;IAEM,mCAAa,GAApB,UAAqB,eAA6B;QAChD,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAA;QACvD,OAAO,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB;YAChD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,qBAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;IAEH,kBAAC;AAAD,CAAC,AAhED,IAgEC;AAhEY,kCAAW"}
\ No newline at end of file
......@@ -4,6 +4,4 @@ export declare class LabeledFaceDescriptors {
constructor(label: string, descriptors: Float32Array[]);
readonly label: string;
readonly descriptors: Float32Array[];
static fromJSON(jsonString: string): LabeledFaceDescriptors;
static fromPOJO(pojo: any): LabeledFaceDescriptors;
}
......@@ -19,15 +19,6 @@ var LabeledFaceDescriptors = /** @class */ (function () {
enumerable: true,
configurable: true
});
LabeledFaceDescriptors.fromJSON = function (jsonString) {
return LabeledFaceDescriptors.fromPOJO(JSON.parse(jsonString));
};
LabeledFaceDescriptors.fromPOJO = function (pojo) {
var descriptors = pojo._descriptors.map(function (d) {
return new Float32Array(Object.keys(d).map(function (key) { return d[key]; }));
});
return new LabeledFaceDescriptors(pojo._label, descriptors);
};
return LabeledFaceDescriptors;
}());
export { LabeledFaceDescriptors };
......
{"version":3,"file":"LabeledFaceDescriptors.js","sourceRoot":"","sources":["../../../src/classes/LabeledFaceDescriptors.ts"],"names":[],"mappings":"AAAA;IAIE,gCAAY,KAAa,EAAE,WAA2B;QACpD,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;SACtF;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,YAAY,YAAY,CAAC,EAA/B,CAA+B,CAAC,EAAE;YAC5F,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;SAC5G;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,sBAAW,yCAAK;aAAhB,cAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;;;OAAA;IACjD,sBAAW,+CAAW;aAAtB,cAA2C,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IAEvD,+BAAQ,GAAtB,UAAuB,UAAkB;QACvC,OAAO,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IAEa,+BAAQ,GAAtB,UAAuB,IAAS;QAC9B,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAC,CAAM;YAC/C,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,CAAC,GAAG,CAAC,EAAN,CAAM,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;IAEH,6BAAC;AAAD,CAAC,AA/BD,IA+BC"}
\ No newline at end of file
{"version":3,"file":"LabeledFaceDescriptors.js","sourceRoot":"","sources":["../../../src/classes/LabeledFaceDescriptors.ts"],"names":[],"mappings":"AAAA;IAIE,gCAAY,KAAa,EAAE,WAA2B;QACpD,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;SACtF;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,YAAY,YAAY,CAAC,EAA/B,CAA+B,CAAC,EAAE;YAC5F,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;SAC5G;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,sBAAW,yCAAK;aAAhB,cAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;;;OAAA;IACjD,sBAAW,+CAAW;aAAtB,cAA2C,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IACvE,6BAAC;AAAD,CAAC,AAnBD,IAmBC"}
\ No newline at end of file
......@@ -10,6 +10,4 @@ export declare class FaceMatcher {
computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number;
matchDescriptor(queryDescriptor: Float32Array): FaceMatch;
findBestMatch(queryDescriptor: Float32Array): FaceMatch;
static fromJSON(jsonString: string): FaceMatcher;
static fromPOJO(pojo: any): FaceMatcher;
}
......@@ -55,14 +55,6 @@ var FaceMatcher = /** @class */ (function () {
? bestMatch
: new FaceMatch('unknown', bestMatch.distance);
};
FaceMatcher.fromJSON = function (jsonString) {
return FaceMatcher.fromPOJO(JSON.parse(jsonString));
};
FaceMatcher.fromPOJO = function (pojo) {
var labeledDescriptors = pojo._labeledDescriptors
.map(function (ld) { return LabeledFaceDescriptors.fromPOJO(ld); });
return new FaceMatcher(labeledDescriptors, pojo._distanceThreshold);
};
return FaceMatcher;
}());
export { FaceMatcher };
......
{"version":3,"file":"FaceMatcher.js","sourceRoot":"","sources":["../../../src/globalApi/FaceMatcher.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"FaceMatcher.js","sourceRoot":"","sources":["../../../src/globalApi/FaceMatcher.ts"],"names":[],"mappings":"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"}
\ 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.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -18,15 +18,19 @@ export class LabeledFaceDescriptors {
public get label(): string { return this._label }
public get descriptors(): Float32Array[] { return this._descriptors }
public static toJSON(ld: LabeledFaceDescriptors): string {
return `{"label":"${ld.label}","descriptors":[${ld.descriptors.map((d) => `[${Array.from(d)}]`)}]}`;
}
public static fromJSON(jsonString: string): LabeledFaceDescriptors {
return LabeledFaceDescriptors.fromPOJO(JSON.parse(jsonString));
}
public static fromPOJO(pojo: any): LabeledFaceDescriptors {
const descriptors = pojo._descriptors.map((d: any) => {
return new Float32Array(Object.keys(d).map(key => d[key]));
const descriptors = pojo.descriptors.map((d: any) => {
return new Float32Array(d);
});
return new LabeledFaceDescriptors(pojo._label, descriptors);
return new LabeledFaceDescriptors(pojo.label, descriptors);
}
}
\ No newline at end of file
......@@ -67,14 +67,18 @@ export class FaceMatcher {
: new FaceMatch('unknown', bestMatch.distance)
}
public static toJSON(matcher: FaceMatcher): string {
return `{"distanceThreshold":${matcher.distanceThreshold},"labeledDescriptors":[${matcher.labeledDescriptors.map((ld) => LabeledFaceDescriptors.toJSON(ld))}]}`;
}
public static fromJSON(jsonString: string): FaceMatcher {
return FaceMatcher.fromPOJO(JSON.parse(jsonString));
}
public static fromPOJO(pojo: any): FaceMatcher {
const labeledDescriptors = pojo._labeledDescriptors
const labeledDescriptors = pojo.labeledDescriptors
.map((ld: any) => LabeledFaceDescriptors.fromPOJO(ld));
return new FaceMatcher(labeledDescriptors, pojo._distanceThreshold);
return new FaceMatcher(labeledDescriptors, pojo.distanceThreshold);
}
}
\ No newline at end of file
......@@ -4,11 +4,15 @@ describe('globalApi', () => {
describe('LabeledFaceDescriptors', () => {
const json = '{"_label":"foo","_descriptors":[{"0":1,"1":2,"2":3},{"0":4,"1":5,"2":6}]}';
const json = '{"label":"foo","descriptors":[[1,2,3],[4,5,6]]}';
const l1 = 'foo';
const f1 = new Float32Array([1, 2, 3]);
const f2 = new Float32Array([4, 5, 6]);
it('toJSON()', () => {
expect(LabeledFaceDescriptors.toJSON(new LabeledFaceDescriptors(l1, [f1,f2]))).toBe(json);
});
it('fromJSON()', () => {
const ld = LabeledFaceDescriptors.fromJSON(json);
......@@ -27,8 +31,8 @@ describe('globalApi', () => {
expect(ld.descriptors[1]).toEqual(f2);
});
it('JSON.stringify() => fromJSON()', () => {
const ld = LabeledFaceDescriptors.fromJSON(JSON.stringify(new LabeledFaceDescriptors(l1, [f1,f2])));
it('toJSON() => fromJSON()', () => {
const ld = LabeledFaceDescriptors.fromJSON(LabeledFaceDescriptors.toJSON(new LabeledFaceDescriptors(l1, [f1,f2])));
expect(ld.label).toBe(l1);
expect(ld.descriptors.length).toBe(2);
......
......@@ -5,7 +5,7 @@ describe('globalApi', () => {
describe('FaceMatcher', () => {
const json = '{"_distanceThreshold":123.321,"_labeledDescriptors":[{"_label":"foo","_descriptors":[{"0":1,"1":2,"2":3},{"0":4,"1":5,"2":6}]},{"_label":"bar","_descriptors":[{"0":7,"1":8,"2":9},{"0":3,"1":2,"2":1}]}]}';
const json = '{"distanceThreshold":123.321,"labeledDescriptors":[{"label":"foo","descriptors":[[1,2,3],[4,5,6]]},{"label":"bar","descriptors":[[7,8,9],[3,2,1]]}]}';
const dt = 123.321;
const l1 = 'foo';
const l2 = 'bar';
......@@ -18,6 +18,10 @@ describe('globalApi', () => {
new LabeledFaceDescriptors(l2, [f3, f4])
];
it('toJSON()', () => {
expect(FaceMatcher.toJSON(new FaceMatcher(lds, dt))).toBe(json);
});
it('fromJSON()', () => {
const fm = FaceMatcher.fromJSON(json);
......@@ -49,7 +53,7 @@ describe('globalApi', () => {
});
it('JSON.stringify() => fromJSON()', () => {
const fm = FaceMatcher.fromJSON(JSON.stringify(new FaceMatcher(lds, dt)));
const fm = FaceMatcher.fromJSON(FaceMatcher.toJSON(new FaceMatcher(lds, dt)));
expect(fm.distanceThreshold).toBe(dt);
expect(fm.labeledDescriptors.length).toBe(2);
......
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