
    =pj                         S SK JrJrJrJrJrJr  S SKrSSK	J
r
  SSKJrJr  SSKJr  SSKJr  S	S
KJr  S	SKJr  \R,                   " S S\5      5       r\
" S5       " S S\5      5       rg)    )AnyDictListOptionalTupleUnionN   )pipeline_requires_extra   )	HPIConfigPaddlePredictorOption)	DetResult)	benchmark   )(AutoParallelImageSimpleInferencePipeline)BasePipelinec                   D  ^  \ rS rSrSrSSSSSSS.S\S\\   S\\   S	\\\\4      S
\\	   S\
S\\\\\4   \4      SS4U 4S jjjr    SS\\\\   \R                   \\R                      4   S\\\\4      S\\
   S\\\\\\4   4      S\\   S\4S jjrSrU =r$ )_ObjectDetectionPipeline   zObject Detection PipelineNFdeviceengineengine_config	pp_optionuse_hpip
hpi_configconfigr   r   r   r   r   r   returnc          
        > [         TU ]  " S
UUUUUUS.UD6  US   S   n	0 n
SU	;   a  U	S   U
S'   SU	;   a  U	S   U
S'   SU	;   a  U	S   U
S'   SU	;   a  U	S   U
S'   SU	;   a  U	S   U
S'   U R                  " U	40 U
D6U l        g	)a  
Initializes the object detection pipeline.

Args:
    config: Configuration dictionary containing model and other parameters.
    device (Optional[str], optional): Device to run the prediction on. Defaults to `None`.
    engine (Optional[str], optional): Inference engine. Defaults to `None`.
    engine_config (Optional[Dict[str, Any]], optional): Engine-specific config. Defaults to `None`. Defaults to `None`.
    pp_option (Optional[PaddlePredictorOption], optional): Paddle predictor options.
        Defaults to `None`.
    use_hpip (bool, optional): Whether to use HPIP. Defaults to `False`.
    hpi_config (Optional[Union[Dict[str, Any], HPIConfig]], optional): HPIP configuration.
        Defaults to `None`.
r   
SubModulesObjectDetection	thresholdimg_size
layout_nmslayout_unclip_ratiolayout_merge_bboxes_modeN )super__init__create_model	det_model)selfr   r   r   r   r   r   r   kwargs	model_cfgmodel_kwargs	__class__s              q/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/paddlex/inference/pipelines/object_detection/pipeline.pyr)   !_ObjectDetectionPipeline.__init__   s    4 	 	
'!	
 	
 <():;	)#(1+(>L%"'0'<L$9$)2<)@L& I-2;<Q2RL./%27@*8L34 **9EE    inputr"   r$   r%   r&   c              +   P   #    U R                   " U4UUUUS.UD6 Sh  vN   g N7f)a\  Predicts object detection results for the given input.

Args:
    input (Union[str, list[str], np.ndarray, list[np.ndarray]]): The input image(s) or path(s) to the images.
    img_size (Optional[Union[int, Tuple[int, int]]]): The size of the input image. Default is None.
    threshold (Optional[float]): The threshold value to filter out low-confidence predictions. Default is None.
    layout_nms (Optional[bool], optional): Whether to use layout-aware NMS. Defaults to `False`.
    layout_unclip_ratio (Optional[Union[float, Tuple[float, float]]], optional): The ratio of unclipping the bounding box.
        Defaults to `None`.
        If it's a single number, then both width and height are used.
        If it's a tuple of two numbers, then they are used separately for width and height respectively.
        If it's None, then no unclipping will be performed.
    layout_merge_bboxes_mode (Optional[str], optional): The mode for merging bounding boxes. Defaults to `None`.
    **kwargs: Additional keyword arguments that can be passed to the function.
Returns:
    DetResult: The predicted detection results.
)r"   r$   r%   r&   Nr+   )r,   r4   r"   r$   r%   r&   r-   s          r1   predict _ObjectDetectionPipeline.predictR   s;     4 >>
! 3%=
 
 	
 	
s   &$&r6   )NNNN)__name__
__module____qualname____firstlineno____doc__r   r   strr   r   boolr   r   r)   r   npndarrayfloatdictr   r   r7   __static_attributes____classcell__)r0   s   @r1   r   r      sN   # !% $2659AE1F1F 	1F
 1F  S#X/1F 121F 1F U4S>9#<=>1F 
1F 1Fl 37%)KO26!
S$s)RZZbjj1AAB!
 E%+./!
 TN	!

 &eE53F,F&GH!
 #+3-!
 
!
 !
r3   r   cvc                   .    \ rS rSrSr\S 5       rS rSrg)ObjectDetectionPipelinev   object_detectionc                     [         $ )N)r   )r,   s    r1   _pipeline_cls%ObjectDetectionPipeline._pipeline_clsz   s    ''r3   c                 2    US   S   R                  SS5      $ )Nr    r!   
batch_size   )get)r,   r   s     r1   _get_batch_size'ObjectDetectionPipeline._get_batch_size~   s     l#$56::<KKr3   r'   N)	r9   r:   r;   r<   entitiespropertyrL   rR   rD   r'   r3   r1   rH   rH   v   s    !H( (Lr3   rH   )typingr   r   r   r   r   r   numpyr@   
utils.depsr
   modelsr   r   models.object_detection.resultr   utils.benchmarkr   	_parallelr   baser   time_methodsr   rH   r'   r3   r1   <module>r_      sk    ; :  2 6 7 ( @  W
| W
 W
t LF L Lr3   