
    jv                    B    d dl mZ d dlmZ d dlmZmZmZ 	 	 	 dddZdS )    )annotations)Path)IS_COLABLOGGERYAMLrk3588N 	onnx_filestr
output_dir
Path | strnamemetadatadict | Noneprefixreturnc           	        |dv rt          d| d          ddlm} t          j        d| d            |d            |d	           t
          rdd
l}d |_        ddlm	} t          |          }|                    dd            |d          }|                    g dgg dg|           |                    |            |                    d           |                    t!          |t          |           j         d| dz                       |rt%          j        |dz  |           t!          |          S )a  Export an ONNX model to RKNN format for Rockchip NPUs.

    Args:
        onnx_file (str): Path to the source ONNX file (already exported, opset <=19).
        output_dir (Path | str): Directory to save the exported RKNN model.
        name (str): Target platform name (e.g. ``"rk3588"``).
        metadata (dict | None): Metadata saved as ``metadata.yaml``.
        prefix (str): Prefix for log messages.

    Returns:
        (str): Path to the exported ``_rknn_model`` directory.
    >   rv1103rv1106rv1103brv1106bzRockchip target 'z' requires INT8 quantization, which is not yet supported by Ultralytics RKNN. Use a target that supports FP16 builds (e.g. rk2118, rk3562, rk3566, rk3568, rk3576, rk3588, rv1126b).r   )check_requirements
z& starting export with rknn-toolkit2...zrknn-toolkit2>=2.3.2zonnx<1.19.0Nc                     d S )N r       `/var/www/html/Carbon-Document/venv/lib/python3.11/site-packages/ultralytics/utils/export/rknn.py<lambda>zonnx2rknn.<locals>.<lambda>-   s     r   )RKNNT)parentsexist_okF)verbose)r   r   r   )   r#   r#   )mean_values
std_valuestarget_platform)model)do_quantization-z.rknnzmetadata.yaml)
ValueErrorultralytics.utils.checksr   r   infor   builtinsexitrknn.apir   r   mkdirconfig	load_onnxbuildexport_rknnr   stemr   save)	r
   r   r   r   r   r   r-   r   rknns	            r   	onnx2rknnr8   
   s   & 999v v v v
 
 	

 <;;;;;
KCVCCCDDD-...}%%% %$j!!JTD1114DKKYYYK___4EW[K\\\NNN###JJuJ%%%Si)=&K&K&K&K&KKLLMMM :	*.999z??r   )r   Nr	   )r
   r   r   r   r   r   r   r   r   r   r   r   )	
__future__r   pathlibr   ultralytics.utilsr   r   r   r8   r   r   r   <module>r<      sw    # " " " " "       4 4 4 4 4 4 4 4 4 4  1 1 1 1 1 1 1r   