
    >|h                     J    d dl mZ d dlZd dlmZ d dlmZm	Z	  G d de      Z
y)    )ListN)
RetinaFace)DetectorFacialAreaRegionc                   <    e Zd Zd Zdej
                  dee   fdZy)RetinaFaceClientc                 6    t        j                         | _        y N)rfbuild_modelmodel)selfs    \/var/www/html/test/engine/venv/lib/python3.12/site-packages/deepface/detectors/RetinaFace.py__init__zRetinaFaceClient.__init__   s    ^^%
    imgreturnc           
         g }t        j                  || j                  d      }t        |t              s|S |j                         D ]  }||   }|d   }|d   }|d   |z
  }|d   }	|d   |	z
  }
|d   d	   }|d   d
   }t        d |D              }t        d |D              }|d   }t        |	||
||||      }|j                  |        |S )z
        Detect and align face with retinaface

        Args:
            img (np.ndarray): pre-loaded image as numpy array

        Returns:
            results (List[FacialAreaRegion]): A list of FacialAreaRegion objects
        g?)r   	thresholdfacial_area      r      	landmarks	right_eyeleft_eyec              3   2   K   | ]  }t        |        y wr
   int.0is     r   	<genexpr>z0RetinaFaceClient.detect_faces.<locals>.<genexpr>*   s     6SV6   c              3   2   K   | ]  }t        |        y wr
   r   r    s     r   r#   z0RetinaFaceClient.detect_faces.<locals>.<genexpr>+   s     8c!f8r$   score)xywhr   r   
confidence)	r   detect_facesr   
isinstancedictkeystupler   append)r   r   respobjface_idxidentity	detectionr(   r*   r'   r)   r   r   r+   r   s                  r   r,   zRetinaFaceClient.detect_faces   s    oocsC#t$K
 	%H8}H /I!A!q A!A!q A  ,[9H -j9I 6X66H8i88I!'*J*!#%K KK$;	%> r   N)	__name__
__module____qualname__r   npndarrayr   r   r,    r   r   r   r      s$    &0

 0t4D/E 0r   r   )typingr   numpyr:   
retinafacer   r   deepface.models.Detectorr   r   r   r<   r   r   <module>rA      s      ' ?4x 4r   