Commit d114007d by vincent

testcases for detectSingleFace

parent 0c493fc2
import * as faceapi from '../../../src'; import * as faceapi from '../../../src';
import { FullFaceDescription } from '../../../src/classes/FullFaceDescription';
import { MtcnnOptions } from '../../../src/mtcnn/MtcnnOptions'; import { MtcnnOptions } from '../../../src/mtcnn/MtcnnOptions';
import { loadImage } from '../../env'; import { loadImage } from '../../env';
import { expectFaceDetections } from '../../expectFaceDetections'; import { expectFaceDetections } from '../../expectFaceDetections';
...@@ -75,6 +76,31 @@ describe('mtcnn', () => { ...@@ -75,6 +76,31 @@ describe('mtcnn', () => {
expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas) expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas)
}) })
it('detectSingleFace.withFaceLandmarks().withFaceDescriptor()', async () => {
const options = new MtcnnOptions({
minFaceSize: 20
})
const result = await faceapi
.detectSingleFace(imgEl, options)
.withFaceLandmarks()
.withFaceDescriptor()
const deltas = {
maxScoreDelta: 0.01,
maxBoxDelta: 10,
maxLandmarksDelta: 6,
maxDescriptorDelta: 0.2
}
expect(result instanceof FullFaceDescription).toBe(true)
expectFullFaceDescriptions(
[result as FullFaceDescription],
[expectedFullFaceDescriptions[0]],
[expectedScores[0]],
deltas
)
})
it('no memory leaks', async () => { it('no memory leaks', async () => {
await expectAllTensorsReleased(async () => { await expectAllTensorsReleased(async () => {
await faceapi await faceapi
......
...@@ -7,6 +7,7 @@ import { expectFaceDetectionsWithLandmarks } from '../../expectFaceDetectionsWit ...@@ -7,6 +7,7 @@ import { expectFaceDetectionsWithLandmarks } from '../../expectFaceDetectionsWit
import { expectedSsdBoxes } from './expectedBoxes'; import { expectedSsdBoxes } from './expectedBoxes';
import { loadImage } from '../../env'; import { loadImage } from '../../env';
import * as tf from '@tensorflow/tfjs-core'; import * as tf from '@tensorflow/tfjs-core';
import { FullFaceDescription } from '../../../src/classes/FullFaceDescription';
describe('ssdMobilenetv1 - node', () => { describe('ssdMobilenetv1 - node', () => {
...@@ -72,6 +73,32 @@ describe('ssdMobilenetv1 - node', () => { ...@@ -72,6 +73,32 @@ describe('ssdMobilenetv1 - node', () => {
expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas) expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas)
}) })
it('detectSingleFace.withFaceLandmarks().withFaceDescriptor()', async () => {
const options = new SsdMobilenetv1Options({
minConfidence: 0.5
})
const result = await faceapi
.detectSingleFace(imgTensor, options)
.withFaceLandmarks()
.withFaceDescriptor()
const deltas = {
maxScoreDelta: 0.05,
maxBoxDelta: 5,
maxLandmarksDelta: 4,
maxDescriptorDelta: 0.2
}
expect(result instanceof FullFaceDescription).toBe(true)
expectFullFaceDescriptions(
[result as FullFaceDescription],
[expectedFullFaceDescriptions[2]],
[expectedScores[2]],
deltas
)
})
it('no memory leaks', async () => { it('no memory leaks', async () => {
await expectAllTensorsReleased(async () => { await expectAllTensorsReleased(async () => {
await faceapi await faceapi
......
...@@ -6,6 +6,7 @@ import { expectFullFaceDescriptions } from '../../expectFullFaceDescriptions'; ...@@ -6,6 +6,7 @@ import { expectFullFaceDescriptions } from '../../expectFullFaceDescriptions';
import { expectFaceDetectionsWithLandmarks } from '../../expectFaceDetectionsWithLandmarks'; import { expectFaceDetectionsWithLandmarks } from '../../expectFaceDetectionsWithLandmarks';
import { expectedSsdBoxes } from './expectedBoxes'; import { expectedSsdBoxes } from './expectedBoxes';
import { loadImage } from '../../env'; import { loadImage } from '../../env';
import { FullFaceDescription } from '../../../src/classes/FullFaceDescription';
describe('ssdMobilenetv1', () => { describe('ssdMobilenetv1', () => {
...@@ -71,6 +72,32 @@ describe('ssdMobilenetv1', () => { ...@@ -71,6 +72,32 @@ describe('ssdMobilenetv1', () => {
expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas) expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas)
}) })
it('detectSingleFace.withFaceLandmarks().withFaceDescriptor()', async () => {
const options = new SsdMobilenetv1Options({
minConfidence: 0.5
})
const result = await faceapi
.detectSingleFace(imgEl, options)
.withFaceLandmarks()
.withFaceDescriptor()
const deltas = {
maxScoreDelta: 0.05,
maxBoxDelta: 5,
maxLandmarksDelta: 2,
maxDescriptorDelta: 0.2
}
expect(result instanceof FullFaceDescription).toBe(true)
expectFullFaceDescriptions(
[result as FullFaceDescription],
[expectedFullFaceDescriptions[2]],
[expectedScores[2]],
deltas
)
})
it('no memory leaks', async () => { it('no memory leaks', async () => {
await expectAllTensorsReleased(async () => { await expectAllTensorsReleased(async () => {
await faceapi await faceapi
......
...@@ -7,6 +7,7 @@ import { expectFaceDetectionsWithLandmarks } from '../../expectFaceDetectionsWit ...@@ -7,6 +7,7 @@ import { expectFaceDetectionsWithLandmarks } from '../../expectFaceDetectionsWit
import { expectedTinyFaceDetectorBoxes } from './expectedBoxes'; import { expectedTinyFaceDetectorBoxes } from './expectedBoxes';
import { loadImage } from '../../env'; import { loadImage } from '../../env';
import * as tf from '@tensorflow/tfjs-core'; import * as tf from '@tensorflow/tfjs-core';
import { FullFaceDescription } from '../../../src/classes/FullFaceDescription';
describe('tinyFaceDetector - node', () => { describe('tinyFaceDetector - node', () => {
...@@ -72,6 +73,31 @@ describe('tinyFaceDetector - node', () => { ...@@ -72,6 +73,31 @@ describe('tinyFaceDetector - node', () => {
expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas) expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas)
}) })
it('detectSingleFace.withFaceLandmarks().withFaceDescriptor()', async () => {
const options = new TinyFaceDetectorOptions({
inputSize: 416
})
const result = await faceapi
.detectSingleFace(imgTensor, options)
.withFaceLandmarks()
.withFaceDescriptor()
const deltas = {
maxScoreDelta: 0.05,
maxBoxDelta: 5,
maxLandmarksDelta: 10,
maxDescriptorDelta: 0.2
}
expect(result instanceof FullFaceDescription).toBe(true)
expectFullFaceDescriptions(
[result as FullFaceDescription],
[expectedFullFaceDescriptions[2]],
[expectedScores[2]],
deltas
)
})
it('no memory leaks', async () => { it('no memory leaks', async () => {
await expectAllTensorsReleased(async () => { await expectAllTensorsReleased(async () => {
await faceapi await faceapi
......
import * as faceapi from '../../../src'; import * as faceapi from '../../../src';
import { describeWithNets, expectAllTensorsReleased, assembleExpectedFullFaceDescriptions, ExpectedFullFaceDescription } from '../../utils'; import { describeWithNets, expectAllTensorsReleased, assembleExpectedFullFaceDescriptions, ExpectedFullFaceDescription } from '../../utils';
import { fetchImage, TinyFaceDetectorOptions } from '../../../src'; import { TinyFaceDetectorOptions } from '../../../src';
import { expectFaceDetections } from '../../expectFaceDetections'; import { expectFaceDetections } from '../../expectFaceDetections';
import { expectFullFaceDescriptions } from '../../expectFullFaceDescriptions'; import { expectFullFaceDescriptions } from '../../expectFullFaceDescriptions';
import { expectFaceDetectionsWithLandmarks } from '../../expectFaceDetectionsWithLandmarks'; import { expectFaceDetectionsWithLandmarks } from '../../expectFaceDetectionsWithLandmarks';
import { expectedTinyFaceDetectorBoxes } from './expectedBoxes'; import { expectedTinyFaceDetectorBoxes } from './expectedBoxes';
import { loadImage } from '../../env'; import { loadImage } from '../../env';
import { FullFaceDescription } from '../../../src/classes/FullFaceDescription';
describe('tinyFaceDetector', () => { describe('tinyFaceDetector', () => {
...@@ -71,6 +72,31 @@ describe('tinyFaceDetector', () => { ...@@ -71,6 +72,31 @@ describe('tinyFaceDetector', () => {
expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas) expectFullFaceDescriptions(results, expectedFullFaceDescriptions, expectedScores, deltas)
}) })
it('detectSingleFace.withFaceLandmarks().withFaceDescriptor()', async () => {
const options = new TinyFaceDetectorOptions({
inputSize: 416
})
const result = await faceapi
.detectSingleFace(imgEl, options)
.withFaceLandmarks()
.withFaceDescriptor()
const deltas = {
maxScoreDelta: 0.05,
maxBoxDelta: 5,
maxLandmarksDelta: 10,
maxDescriptorDelta: 0.2
}
expect(result instanceof FullFaceDescription).toBe(true)
expectFullFaceDescriptions(
[result as FullFaceDescription],
[expectedFullFaceDescriptions[2]],
[expectedScores[2]],
deltas
)
})
it('no memory leaks', async () => { it('no memory leaks', async () => {
await expectAllTensorsReleased(async () => { await expectAllTensorsReleased(async () => {
await faceapi await faceapi
......
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