可以把多batch的输入[6*3*640*640]分成六个[1*3*640*640],但是
insert_image_convert转化没有起效,依然是rgb的输入
import os
import onnx
from hbdk4.compiler.onnx import export
from hbdk4.compiler import convert, compile, visualize, save
script_dir = os.path.dirname(os.path.realpath(__file__))
model_path = os.path.join(script_dir, "bev_fushion/hbm/bev_occ_lane_int16_100", "bev_occ_lane_int16_100_ptq_model.onnx")
onnx_model = onnx.load(model_path)
model = export(onnx_model)
func = model.functions[0]
# 将BATCH拆分开
func.inputs[0].insert_split(dim=0)
for input in func.inputs[::-1]:
if input.name != "img":
print(f"Skip non-image input: {input.name}")
continue
input = input.insert_transpose(permutes=[0, 2, 3, 1])
input = input.insert_image_preprocess(
mode="yuvbt601full2rgb",
divisor=255,
mean=[123.675, 116.28, 103.53],
std=[0.01712475, 0.017507, 0.01742919]
)
y, uv = input.insert_image_convert("nv12")
save(model, os.path.join(script_dir, "model_output_v2", "sample_addpre.bc"))
quantized_model = convert(model, march="nash-e")
save(quantized_model, os.path.join(script_dir, "model_output_v2", "sample_quantized_split.bc"))
hbm = compile(quantized_model, march="nash-e",path=os.path.join(script_dir, "model_output_v2", "sample.hbm"), debug=True,
opt=0, jobs=40, progress_bar=True)


