Skip to content

Commit d114007

Browse files
testcases for detectSingleFace
1 parent 0c493fc commit d114007

File tree

5 files changed

+133
-1
lines changed

5 files changed

+133
-1
lines changed

test/tests/mtcnn/mtcnn.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as faceapi from '../../../src';
2+
import { FullFaceDescription } from '../../../src/classes/FullFaceDescription';
23
import { MtcnnOptions } from '../../../src/mtcnn/MtcnnOptions';
34
import { loadImage } from '../../env';
45
import { expectFaceDetections } from '../../expectFaceDetections';
@@ -75,6 +76,31 @@ describe('mtcnn', () => {
7576
expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas)
7677
})
7778

79+
it('detectSingleFace.withFaceLandmarks().withFaceDescriptor()', async () => {
80+
const options = new MtcnnOptions({
81+
minFaceSize: 20
82+
})
83+
84+
const result = await faceapi
85+
.detectSingleFace(imgEl, options)
86+
.withFaceLandmarks()
87+
.withFaceDescriptor()
88+
89+
const deltas = {
90+
maxScoreDelta: 0.01,
91+
maxBoxDelta: 10,
92+
maxLandmarksDelta: 6,
93+
maxDescriptorDelta: 0.2
94+
}
95+
expect(result instanceof FullFaceDescription).toBe(true)
96+
expectFullFaceDescriptions(
97+
[result as FullFaceDescription],
98+
[expectedFullFaceDescriptions[0]],
99+
[expectedScores[0]],
100+
deltas
101+
)
102+
})
103+
78104
it('no memory leaks', async () => {
79105
await expectAllTensorsReleased(async () => {
80106
await faceapi

test/tests/ssdMobilenetv1/ssdMobilenetv1.node.test.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { expectFaceDetectionsWithLandmarks } from '../../expectFaceDetectionsWit
77
import { expectedSsdBoxes } from './expectedBoxes';
88
import { loadImage } from '../../env';
99
import * as tf from '@tensorflow/tfjs-core';
10+
import { FullFaceDescription } from '../../../src/classes/FullFaceDescription';
1011

1112
describe('ssdMobilenetv1 - node', () => {
1213

@@ -72,6 +73,32 @@ describe('ssdMobilenetv1 - node', () => {
7273
expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas)
7374
})
7475

76+
it('detectSingleFace.withFaceLandmarks().withFaceDescriptor()', async () => {
77+
const options = new SsdMobilenetv1Options({
78+
minConfidence: 0.5
79+
})
80+
81+
const result = await faceapi
82+
.detectSingleFace(imgTensor, options)
83+
.withFaceLandmarks()
84+
.withFaceDescriptor()
85+
86+
const deltas = {
87+
maxScoreDelta: 0.05,
88+
maxBoxDelta: 5,
89+
maxLandmarksDelta: 4,
90+
maxDescriptorDelta: 0.2
91+
}
92+
93+
expect(result instanceof FullFaceDescription).toBe(true)
94+
expectFullFaceDescriptions(
95+
[result as FullFaceDescription],
96+
[expectedFullFaceDescriptions[2]],
97+
[expectedScores[2]],
98+
deltas
99+
)
100+
})
101+
75102
it('no memory leaks', async () => {
76103
await expectAllTensorsReleased(async () => {
77104
await faceapi

test/tests/ssdMobilenetv1/ssdMobilenetv1.test.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { expectFullFaceDescriptions } from '../../expectFullFaceDescriptions';
66
import { expectFaceDetectionsWithLandmarks } from '../../expectFaceDetectionsWithLandmarks';
77
import { expectedSsdBoxes } from './expectedBoxes';
88
import { loadImage } from '../../env';
9+
import { FullFaceDescription } from '../../../src/classes/FullFaceDescription';
910

1011
describe('ssdMobilenetv1', () => {
1112

@@ -71,6 +72,32 @@ describe('ssdMobilenetv1', () => {
7172
expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas)
7273
})
7374

75+
it('detectSingleFace.withFaceLandmarks().withFaceDescriptor()', async () => {
76+
const options = new SsdMobilenetv1Options({
77+
minConfidence: 0.5
78+
})
79+
80+
const result = await faceapi
81+
.detectSingleFace(imgEl, options)
82+
.withFaceLandmarks()
83+
.withFaceDescriptor()
84+
85+
const deltas = {
86+
maxScoreDelta: 0.05,
87+
maxBoxDelta: 5,
88+
maxLandmarksDelta: 2,
89+
maxDescriptorDelta: 0.2
90+
}
91+
92+
expect(result instanceof FullFaceDescription).toBe(true)
93+
expectFullFaceDescriptions(
94+
[result as FullFaceDescription],
95+
[expectedFullFaceDescriptions[2]],
96+
[expectedScores[2]],
97+
deltas
98+
)
99+
})
100+
74101
it('no memory leaks', async () => {
75102
await expectAllTensorsReleased(async () => {
76103
await faceapi

test/tests/tinyFaceDetector/tinyFaceDetector.node.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { expectFaceDetectionsWithLandmarks } from '../../expectFaceDetectionsWit
77
import { expectedTinyFaceDetectorBoxes } from './expectedBoxes';
88
import { loadImage } from '../../env';
99
import * as tf from '@tensorflow/tfjs-core';
10+
import { FullFaceDescription } from '../../../src/classes/FullFaceDescription';
1011

1112
describe('tinyFaceDetector - node', () => {
1213

@@ -72,6 +73,31 @@ describe('tinyFaceDetector - node', () => {
7273
expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas)
7374
})
7475

76+
it('detectSingleFace.withFaceLandmarks().withFaceDescriptor()', async () => {
77+
const options = new TinyFaceDetectorOptions({
78+
inputSize: 416
79+
})
80+
81+
const result = await faceapi
82+
.detectSingleFace(imgTensor, options)
83+
.withFaceLandmarks()
84+
.withFaceDescriptor()
85+
86+
const deltas = {
87+
maxScoreDelta: 0.05,
88+
maxBoxDelta: 5,
89+
maxLandmarksDelta: 10,
90+
maxDescriptorDelta: 0.2
91+
}
92+
expect(result instanceof FullFaceDescription).toBe(true)
93+
expectFullFaceDescriptions(
94+
[result as FullFaceDescription],
95+
[expectedFullFaceDescriptions[2]],
96+
[expectedScores[2]],
97+
deltas
98+
)
99+
})
100+
75101
it('no memory leaks', async () => {
76102
await expectAllTensorsReleased(async () => {
77103
await faceapi

test/tests/tinyFaceDetector/tinyFaceDetector.test.ts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import * as faceapi from '../../../src';
22
import { describeWithNets, expectAllTensorsReleased, assembleExpectedFullFaceDescriptions, ExpectedFullFaceDescription } from '../../utils';
3-
import { fetchImage, TinyFaceDetectorOptions } from '../../../src';
3+
import { TinyFaceDetectorOptions } from '../../../src';
44
import { expectFaceDetections } from '../../expectFaceDetections';
55
import { expectFullFaceDescriptions } from '../../expectFullFaceDescriptions';
66
import { expectFaceDetectionsWithLandmarks } from '../../expectFaceDetectionsWithLandmarks';
77
import { expectedTinyFaceDetectorBoxes } from './expectedBoxes';
88
import { loadImage } from '../../env';
9+
import { FullFaceDescription } from '../../../src/classes/FullFaceDescription';
910

1011
describe('tinyFaceDetector', () => {
1112

@@ -71,6 +72,31 @@ describe('tinyFaceDetector', () => {
7172
expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas)
7273
})
7374

75+
it('detectSingleFace.withFaceLandmarks().withFaceDescriptor()', async () => {
76+
const options = new TinyFaceDetectorOptions({
77+
inputSize: 416
78+
})
79+
80+
const result = await faceapi
81+
.detectSingleFace(imgEl, options)
82+
.withFaceLandmarks()
83+
.withFaceDescriptor()
84+
85+
const deltas = {
86+
maxScoreDelta: 0.05,
87+
maxBoxDelta: 5,
88+
maxLandmarksDelta: 10,
89+
maxDescriptorDelta: 0.2
90+
}
91+
expect(result instanceof FullFaceDescription).toBe(true)
92+
expectFullFaceDescriptions(
93+
[result as FullFaceDescription],
94+
[expectedFullFaceDescriptions[2]],
95+
[expectedScores[2]],
96+
deltas
97+
)
98+
})
99+
74100
it('no memory leaks', async () => {
75101
await expectAllTensorsReleased(async () => {
76102
await faceapi

0 commit comments

Comments
 (0)