45 lines
1,020 B
Python
45 lines
1,020 B
Python
from rknn.api import RKNN
|
|
|
|
def convert(onnx_path, rknn_path):
|
|
print(f"\n=== Converting {onnx_path} → {rknn_path} ===")
|
|
|
|
rknn = RKNN()
|
|
|
|
# Ottimizzazioni consigliate da Rockchip
|
|
rknn.config(
|
|
mean_values=[[127.5, 127.5, 127.5]],
|
|
std_values=[[128.0, 128.0, 128.0]],
|
|
target_platform="rk3588"
|
|
)
|
|
|
|
print("[1] Loading ONNX model...")
|
|
ret = rknn.load_onnx(model=onnx_path)
|
|
if ret != 0:
|
|
print("Error loading ONNX")
|
|
return
|
|
|
|
print("[2] Building RKNN model...")
|
|
ret = rknn.build(do_quantization=False)
|
|
if ret != 0:
|
|
print("Error building RKNN")
|
|
return
|
|
|
|
print("[3] Exporting RKNN model...")
|
|
ret = rknn.export_rknn(rknn_path)
|
|
if ret != 0:
|
|
print("Error exporting RKNN")
|
|
return
|
|
|
|
print("[OK] Conversion completed!")
|
|
|
|
# Convert SCRFD
|
|
convert(
|
|
"models/onnx/scrfd_2.5g.onnx",
|
|
"models/rknn/scrfd.rknn"
|
|
)
|
|
|
|
# Convert ArcFace
|
|
convert(
|
|
"models/onnx/arcface_r100.onnx",
|
|
"models/rknn/arcface.rknn"
|
|
)
|