o
    *j@                  	   @   s   d dl Z d dlmZ d dlmZmZmZmZmZ d dl	Z	d dl
Zd dlZ	ddeeef dee deeef fddZd	ejdejfd
dZd	ejdeeeef  dejfddZdS )    N)Path)AnyDictListOptionalUnion	file_pathrename_in_layersreturnc           	      C   sl   t j| dd d}|dur4|d }i }| D ]\}}| D ]\}}t|||}q|||< q||d< |S )zLoads PyTorch checkpoint, optionally renaming layer names.
    Args:
        file_path: path to the torch checkpoint.
        rename_in_layers: {from_name: to_name}
            ex: {"model.0.": "",
                 "model.": ""}
    Returns:
    c                 S   s   | S N )Zstoragelocr   r   v/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/modelscope/models/cv/skin_retouching/retinaface/utils.py<lambda>   s    z!load_checkpoint.<locals>.<lambda>)Zmap_locationNZ
state_dict)torchloaditemsresub)	r   r	   
checkpointZmodel_state_dictresultkeyvalueZkey_rZvalue_rr   r   r   load_checkpoint   s   

r   imagec                 C   s   t | d} t| S )N)   r      )npZ	transposer   Z
from_numpy)r   r   r   r   tensor_from_rgb_image'   s   
r   annotationsc              	   C   s   |   }|D ]K}|d }g d}t|D ]\}\}}tj|||fd|| dd}q|d \}	}
}}t|	d|d }	t|
d|d }
tj||	|
f||fdd	d
}q|S )N	landmarks))   r   r   )   r!   r   )r!      f   )r$   r"   r!   )r   r!   r!      )Zradiuscolor	thicknessZbboxr   r   )r   r!   r   r   )r&   r'   )copy	enumeratecv2circler   ZclipZ	rectangle)r   r   Z	vis_image
annotationr    colorsZlandmark_idxyZx_minZy_minZx_maxZy_maxr   r   r   vis_annotations,   s(   r0   r   )r   pathlibr   typingr   r   r   r   r   r*   numpyr   r   strdictr   ZndarrayZTensorr   r0   r   r   r   r   <module>   s$   

