
    wiS                         d dl Z d dlZ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mZ ddlmZ d	d
lmZmZ  G d de          Z G d de          ZdS )    N)Path)AnyDict)
DictConfig)Core   )DownloadFileDownloadFileInput)logger   )FileInfoInferSessionc                   z     e Zd Zdef fdZdedeeef         fdZdej	        dej	        fdZ
d
dedefd	Z xZS )OpenVINOInferSessioncfgc           	          t                                          |           t                      }|                    dd           }||                     t          |j        |j        |j        |j	        |j
                            }| j        t          |d                   j        z  }t          |d         |d         |t                    }t!          j        |           t          j        d|            t          |          }|                     |           |                     |          }|                    d|           |                    |          }|                    |d          }|                                | _        d S )	N
model_path)engine_typeocr_version	task_type	lang_type
model_type	model_dirSHA256)file_urlsha256	save_pathr   zUsing CPU)modeldevice_name)super__init__r   getget_model_urlr   r   r   r   r   r   DEFAULT_MODEL_PATHr   namer
   r   r	   runinfo_verify_model_init_configset_property
read_modelcompile_modelcreate_infer_requestsession)
selfr   corer   
model_infodownload_paramsconfig
model_onnxr-   	__class__s
            z/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/rapidocr/inference_engine/openvino.pyr"   zOpenVINOInferSession.__init__   s|   vvWW\400
++ # #!m!m"~   J 04
;8O3P3P3UUJ/#K0!(+$	  O _---)Z))****%%
:&&&""3''%(((__Z00
***OO$99;;    returnc                 
   i }|                     di           }|                     dd          }|dk    r3d|cxk    rt          j                    k    rn nt          |          |d<   |                     dd           }|t          |          |d<   |                     dd          }|dk    rt          |          |d	<   |                     d
d           }|t          |          |d<   |                     dd          }|dk    rt          |          |d<   |                     dd           }	|	t          |	          |d<   |                     dd           }
|
t          |
          |d<   t	          j        d|            |S )N
engine_cfginference_num_threadsr   INFERENCE_NUM_THREADSperformance_hintPERFORMANCE_HINTperformance_num_requestsPERFORMANCE_HINT_NUM_REQUESTSenable_cpu_pinningENABLE_CPU_PINNINGnum_streamsNUM_STREAMSenable_hyper_threadingENABLE_HYPER_THREADINGscheduling_core_typeSCHEDULING_CORE_TYPEzUsing OpenVINO config: )r#   os	cpu_countstrr   r(   )r0   r   r4   r;   infer_num_threadsr?   rA   rC   rE   rG   rI   s              r7   r*   z!OpenVINOInferSession._init_config7   s   WW\2..
&NN+BBGG""q,='O'O'O'O'O'O'O'O'O.12C.D.DF*+%>>*<dCC'),-=)>)>F%&#->>2Lb#Q#Q #r))69:R6S6SF23'^^,@$GG)+./A+B+BF'( nn]B77"$'$4$4F=!!+0H$!O!O!-/23I/J/JF+,)~~.DdKK+-01E-F-FF)*6f66777r8   input_contentc                     	 | j                             |g           | j                                         j        S # t          $ r(}t          j                    }t          |          |d }~ww xY w)N)inputs)r/   inferget_output_tensordata	Exception	traceback
format_excOpenVIONError)r0   rO   e
error_infos       r7   __call__zOpenVINOInferSession.__call__Z   sv    	3L}o666<113388 	3 	3 	3"-//J
++2	3s   9< 
A.#A))A.	characterkeyc                     dS )NF )r0   r]   s     r7   have_keyzOpenVINOInferSession.have_keyb   s    ur8   )r\   )__name__
__module____qualname__r   r"   r   r   r*   npndarrayr[   rM   boolr`   __classcell__)r6   s   @r7   r   r      s        "<J "< "< "< "< "< "<H!
 !tCH~ ! ! ! !F3bj 3RZ 3 3 3 3 C $        r8   r   c                       e Zd ZdS )rX   N)ra   rb   rc   r_   r8   r7   rX   rX   f   s        Dr8   rX   )rK   rV   pathlibr   typingr   r   numpyrd   	omegaconfr   openvino.runtimer   utils.download_filer	   r
   	utils.logr   baser   r   r   rU   rX   r_   r8   r7   <module>rq      s   
			                                   ! ! ! ! ! ! A A A A A A A A       ( ( ( ( ( ( ( (Q Q Q Q Q< Q Q Qh	 	 	 	 	I 	 	 	 	 	r8   