o
    ॵiA                     @   s   d dl mZ d dlmZmZ d dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZ e Zejeje	jdG dd deZdS )    N)AnyDict)	Pipelines)MogFaceDetector)
OutputKeys)InputPipeline)	PIPELINES)	LoadImage)	ModelFileTasks)
get_logger)module_namec                       s   e Zd Zdef fddZdedeeef fddZdeeef deeef fdd	Z	d
eeef deeef fddZ
  ZS )MogFaceDetectionPipelinemodelc                    sV   t  jdd|i| t|tj}td|  t|| j	d}|| _
td dS )z
        use `model` to create a face detection pipeline for prediction
        Args:
            model: model id on modelscope hub.
        r   zloading model from )
model_pathdevicezload model doneN )super__init__ospjoinr   TORCH_MODEL_FILEloggerinfor   r   detector)selfr   kwargs	ckpt_pathr   	__class__r   g/home/ubuntu/.local/lib/python3.10/site-packages/modelscope/pipelines/cv/mog_face_detection_pipeline.pyr      s   z!MogFaceDetectionPipeline.__init__inputreturnc                 C   s"   t |}|tj}d|i}|S )Nimg)r
   convert_to_ndarrayastypenpfloat32)r   r"   r$   resultr   r   r!   
preprocess$   s   
z#MogFaceDetectionPipeline.preprocessc                 C   sX   |  |}|d usJ |d d d df  }|d d df  }tj|tj|tjd iS )N   )r   tolistr   SCORESBOXES	KEYPOINTS)r   r"   r)   bboxesscoresr   r   r!   forward*   s   
z MogFaceDetectionPipeline.forwardinputsc                 C   s   |S )Nr   )r   r3   r   r   r!   postprocess6   s   z$MogFaceDetectionPipeline.postprocess)__name__
__module____qualname__strr   r   r   r   r*   r2   r4   __classcell__r   r   r   r!   r      s
    "*r   )os.pathpathr   typingr   r   numpyr'   modelscope.metainfor   #modelscope.models.cv.face_detectionr   modelscope.outputsr   modelscope.pipelines.baser   r   modelscope.pipelines.builderr	   modelscope.preprocessorsr
   modelscope.utils.constantr   r   modelscope.utils.loggerr   r   register_moduleface_detectionmog_face_detectionr   r   r   r   r!   <module>   s    