o
    *j,                     @   s   d dl mZ d dlmZ d dlZd dlZd dl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jejejd
G dd deZdd ZdS )    N)Optional)
functional)Models)Tensor
TorchModel)MODELS)MattingNetwork)	ModelFileTasks)
get_logger)module_namec                       s"   e Zd Zdef fddZ  ZS )VideoMattingNetwork	model_dirc                    sp   t  j|g|R i | t|tj}tj|dd}t | _	d|
 v r)|d }| j	j|dd | j	  d S )Ncpu)Zmap_locationZmodel_state_dictT)strict)super__init__ospjoinr	   ZTORCH_MODEL_FILEtorchloadr   modelkeysZload_state_dicteval)selfr   argskwargsZ
model_pathparams	__class__ o/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/modelscope/models/cv/video_human_matting/model.pyr      s   zVideoMattingNetwork.__init__)__name__
__module____qualname__strr   __classcell__r    r    r   r!   r      s    r   c                 C   sF   t | d }|ddd}t|}|d d d d d d d f }|S )Ng     o@   r      )npZfloat32Z	transposer   Z
from_numpy)imageZframe_npZframe_tensorZimage_tensorr    r    r!   
preprocess!   s
   
r+   )Zos.pathpathr   typingr   numpyr)   r   ZtorchvisionZtorch.nnr   FZmodelscope.metainfor   Zmodelscope.models.baser   r   Zmodelscope.models.builderr   Z/modelscope.models.cv.video_human_matting.modelsr   Zmodelscope.utils.constantr	   r
   Zmodelscope.utils.loggerr   Zregister_moduleZvideo_human_mattingr   r+   r    r    r    r!   <module>   s"   