diff --git a/src/gesture/gesture.ts b/src/gesture/gesture.ts index 34123c36..e227b895 100644 --- a/src/gesture/gesture.ts +++ b/src/gesture/gesture.ts @@ -103,8 +103,8 @@ export const iris = (res): GestureResult[] => { const rightIrisCenterX = Math.abs(res[i].mesh[33][0] - res[i].annotations.rightEyeIris[0][0]) / res[i].box[2]; const leftIrisCenterX = Math.abs(res[i].mesh[263][0] - res[i].annotations.leftEyeIris[0][0]) / res[i].box[2]; if (leftIrisCenterX > 0.06 || rightIrisCenterX > 0.06) center = false; - if (leftIrisCenterX > 0.06) gestures.push({ iris: i, gesture: 'looking right' }); - if (rightIrisCenterX > 0.06) gestures.push({ iris: i, gesture: 'looking left' }); + if (leftIrisCenterX > 0.05) gestures.push({ iris: i, gesture: 'looking right' }); + if (rightIrisCenterX > 0.05) gestures.push({ iris: i, gesture: 'looking left' }); const rightIrisCenterY = Math.abs(res[i].mesh[145][1] - res[i].annotations.rightEyeIris[0][1]) / res[i].box[3]; const leftIrisCenterY = Math.abs(res[i].mesh[374][1] - res[i].annotations.leftEyeIris[0][1]) / res[i].box[3]; diff --git a/test/test-main.js b/test/test-main.js index d4e4e726..6c5cec56 100644 --- a/test/test-main.js +++ b/test/test-main.js @@ -188,11 +188,11 @@ async function test(Human, inputConfig) { else log('state', 'passed: warmup none result match'); config.warmup = 'face'; res = await testWarmup(human, 'default'); - if (!res || res?.face?.length !== 1 || res?.body?.length !== 1 || res?.hand?.length !== 1 || res?.gesture?.length !== 7) log('error', 'failed: warmup face result mismatch', res?.face?.length, res?.body?.length, res?.hand?.length, res?.gesture?.length); + if (!res || res?.face?.length !== 1 || res?.body?.length !== 1 || res?.hand?.length !== 1 || res?.gesture?.length !== 8) log('error', 'failed: warmup face result mismatch', res?.face?.length, res?.body?.length, res?.hand?.length, res?.gesture?.length); else log('state', 'passed: warmup face result match'); config.warmup = 'body'; res = await testWarmup(human, 'default'); - if (!res || res?.face?.length !== 1 || res?.body?.length !== 1 || res?.hand?.length !== 1 || res?.gesture?.length !== 5) log('error', 'failed: warmup body result mismatch', res?.face?.length, res?.body?.length, res?.hand?.length, res?.gesture?.length); + if (!res || res?.face?.length !== 1 || res?.body?.length !== 1 || res?.hand?.length !== 1 || res?.gesture?.length !== 7) log('error', 'failed: warmup body result mismatch', res?.face?.length, res?.body?.length, res?.hand?.length, res?.gesture?.length); else log('state', 'passed: warmup body result match'); // test default config async @@ -271,7 +271,7 @@ async function test(Human, inputConfig) { config.body = { minConfidence: 0.0001 }; config.hand = { minConfidence: 0.0001 }; res = await testDetect(human, 'samples/in/ai-body.jpg', 'default'); - if (!res || res?.face?.length !== 1 || res?.body?.length !== 1 || res?.hand?.length !== 2 || res?.gesture?.length !== 7) log('error', 'failed: sensitive result mismatch', res?.face?.length, res?.body?.length, res?.hand?.length, res?.gesture?.length); + if (!res || res?.face?.length !== 1 || res?.body?.length !== 1 || res?.hand?.length !== 2 || res?.gesture?.length !== 9) log('error', 'failed: sensitive result mismatch', res?.face?.length, res?.body?.length, res?.hand?.length, res?.gesture?.length); else log('state', 'passed: sensitive result match'); // test sensitive details face @@ -279,7 +279,7 @@ async function test(Human, inputConfig) { if (!face || face?.box?.length !== 4 || face?.mesh?.length !== 478 || face?.embedding?.length !== 1024 || face?.rotation?.matrix?.length !== 9) { log('error', 'failed: sensitive face result mismatch', res?.face?.length, face?.box?.length, face?.mesh?.length, face?.embedding?.length, face?.rotation?.matrix?.length); } else log('state', 'passed: sensitive face result match'); - if (!face || face?.emotion?.length !== 4) log('error', 'failed: sensitive face emotion result mismatch', face?.emotion.length); + if (!face || face?.emotion?.length < 3) log('error', 'failed: sensitive face emotion result mismatch', face?.emotion.length); else log('state', 'passed: sensitive face emotion result mismatch', face?.emotion.length); // test sensitive details body @@ -343,9 +343,6 @@ async function test(Human, inputConfig) { else log('state', 'passed: segmentation', [res.data.length]); human.env.Canvas = undefined; - // tests end - const t1 = process.hrtime.bigint(); - // check if all instances reported same const tensors1 = human.tf.engine().state.numTensors; const tensors2 = first.tf.engine().state.numTensors; @@ -353,6 +350,9 @@ async function test(Human, inputConfig) { if (tensors1 === tensors2 && tensors1 === tensors3 && tensors2 === tensors3) log('state', 'passeed: equal usage'); else log('error', 'failed: equal usage', tensors1, tensors2, tensors3); + // tests end + const t1 = process.hrtime.bigint(); + // report end log('info', 'events:', evt); log('info', 'tensors', human.tf.memory().numTensors);