Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/10012143master
| @@ -0,0 +1,22 @@ | |||||
| # Copyright (c) Alibaba, Inc. and its affiliates. | |||||
| from typing import TYPE_CHECKING | |||||
| from modelscope.utils.import_utils import LazyImportModule | |||||
| if TYPE_CHECKING: | |||||
| from .retinaface import RetinaFaceDetection | |||||
| else: | |||||
| _import_structure = { | |||||
| 'retinaface': ['RetinaFaceDetection'], | |||||
| } | |||||
| import sys | |||||
| sys.modules[__name__] = LazyImportModule( | |||||
| __name__, | |||||
| globals()['__file__'], | |||||
| _import_structure, | |||||
| module_spec=__spec__, | |||||
| extra_objects={}, | |||||
| ) | |||||
| @@ -0,0 +1 @@ | |||||
| from .detection import RetinaFaceDetection | |||||
| @@ -47,6 +47,7 @@ if TYPE_CHECKING: | |||||
| from .easycv_pipelines import EasyCVDetectionPipeline, EasyCVSegmentationPipeline, Face2DKeypointsPipeline | from .easycv_pipelines import EasyCVDetectionPipeline, EasyCVSegmentationPipeline, Face2DKeypointsPipeline | ||||
| from .text_driven_segmentation_pipleline import TextDrivenSegmentationPipleline | from .text_driven_segmentation_pipleline import TextDrivenSegmentationPipleline | ||||
| from .movie_scene_segmentation_pipeline import MovieSceneSegmentationPipeline | from .movie_scene_segmentation_pipeline import MovieSceneSegmentationPipeline | ||||
| from .retina_face_detection_pipeline import RetinaFaceDetectionPipeline | |||||
| from .facial_expression_recognition_pipeline import FacialExpressionRecognitionPipeline | from .facial_expression_recognition_pipeline import FacialExpressionRecognitionPipeline | ||||
| else: | else: | ||||
| @@ -107,6 +108,7 @@ else: | |||||
| ['TextDrivenSegmentationPipeline'], | ['TextDrivenSegmentationPipeline'], | ||||
| 'movie_scene_segmentation_pipeline': | 'movie_scene_segmentation_pipeline': | ||||
| ['MovieSceneSegmentationPipeline'], | ['MovieSceneSegmentationPipeline'], | ||||
| 'retina_face_detection_pipeline': ['RetinaFaceDetectionPipeline'], | |||||
| 'facial_expression_recognition_pipelin': | 'facial_expression_recognition_pipelin': | ||||
| ['FacialExpressionRecognitionPipeline'] | ['FacialExpressionRecognitionPipeline'] | ||||
| } | } | ||||
| @@ -1,10 +1,13 @@ | |||||
| import os.path as osp | import os.path as osp | ||||
| from typing import Any, Dict | from typing import Any, Dict | ||||
| import cv2 | |||||
| import numpy as np | import numpy as np | ||||
| import PIL | |||||
| import torch | |||||
| from modelscope.metainfo import Pipelines | from modelscope.metainfo import Pipelines | ||||
| from modelscope.models.cv.face_detection.retinaface import detection | |||||
| from modelscope.models.cv.face_detection import RetinaFaceDetection | |||||
| from modelscope.outputs import OutputKeys | from modelscope.outputs import OutputKeys | ||||
| from modelscope.pipelines.base import Input, Pipeline | from modelscope.pipelines.base import Input, Pipeline | ||||
| from modelscope.pipelines.builder import PIPELINES | from modelscope.pipelines.builder import PIPELINES | ||||
| @@ -28,7 +31,7 @@ class RetinaFaceDetectionPipeline(Pipeline): | |||||
| super().__init__(model=model, **kwargs) | super().__init__(model=model, **kwargs) | ||||
| ckpt_path = osp.join(model, ModelFile.TORCH_MODEL_FILE) | ckpt_path = osp.join(model, ModelFile.TORCH_MODEL_FILE) | ||||
| logger.info(f'loading model from {ckpt_path}') | logger.info(f'loading model from {ckpt_path}') | ||||
| detector = detection.RetinaFaceDetection( | |||||
| detector = RetinaFaceDetection( | |||||
| model_path=ckpt_path, device=self.device) | model_path=ckpt_path, device=self.device) | ||||
| self.detector = detector | self.detector = detector | ||||
| logger.info('load model done') | logger.info('load model done') | ||||