From bdd282a12796e32459898cd06a87e4b425c88718 Mon Sep 17 00:00:00 2001 From: ly261666 Date: Wed, 10 May 2023 01:04:10 +0800 Subject: [PATCH] [to #42322933] add transface model Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/12568301 --- data/test | 2 +- .../test_face_recognition_onnx_transface.py | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 tests/pipelines/test_face_recognition_onnx_transface.py diff --git a/data/test b/data/test index 0a61e00d..8d062525 160000 --- a/data/test +++ b/data/test @@ -1 +1 @@ -Subproject commit 0a61e00de4a4b529099b357cbb0b2af83ac2f31e +Subproject commit 8d0625256b88bdf41655563049a4a68ec1025638 diff --git a/tests/pipelines/test_face_recognition_onnx_transface.py b/tests/pipelines/test_face_recognition_onnx_transface.py new file mode 100644 index 00000000..a41271c1 --- /dev/null +++ b/tests/pipelines/test_face_recognition_onnx_transface.py @@ -0,0 +1,40 @@ +# Copyright (c) Alibaba, Inc. and its affiliates. +import unittest + +import numpy as np + +from modelscope.outputs import OutputKeys +from modelscope.pipelines import pipeline +from modelscope.utils.constant import Tasks +from modelscope.utils.demo_utils import DemoCompatibilityCheck +from modelscope.utils.test_utils import test_level + + +class TransFaceRecognitionTest(unittest.TestCase, DemoCompatibilityCheck): + + def setUp(self) -> None: + self.task = Tasks.face_recognition + self.model_id = 'damo/cv_vit_face-recognition' + + @unittest.skipUnless(test_level() >= 0, 'skip test in current test level') + def test_face_compare(self): + img1 = 'data/test/images/face_recognition_1.png' + img2 = 'data/test/images/face_recognition_2.png' + + face_recognition = pipeline( + Tasks.face_recognition, model=self.model_id) + emb1 = face_recognition(img1)[OutputKeys.IMG_EMBEDDING] + emb2 = face_recognition(img2)[OutputKeys.IMG_EMBEDDING] + if emb1 is None or emb2 is None: + print('No Detected Face.') + else: + sim = np.dot(emb1[0], emb2[0]) + print(f'Cos similarity={sim:.3f}, img1:{img1} img2:{img2}') + + @unittest.skipUnless(test_level() >= 0, 'skip test in current test level') + def test_demo_compatibility(self): + self.compatibility_check() + + +if __name__ == '__main__': + unittest.main()