




收到,我CHECK一下哈

前处理:
1. 先通过hrt_model_info model_info --model_file看一下模型的输入是什么图像格式的?{ typedef enum {HB_DNN_IMG_TYPE_Y,HB_DNN_IMG_TYPE_NV12,HB_DNN_IMG_TYPE_NV12_SEPARATE,HB_DNN_IMG_TYPE_YUV444,HB_DNN_IMG_TYPE_RGB,HB_DNN_IMG_TYPE_BGR, ……}
2. 根据要求的格式,参照/open_explorer/ddk/samples/ai_toolchain/horizon_runtime_sample/code/00_quick_start/src/run_mobileNetV1_224x224.cc中的 read_image_2_tensor_as_nv12 函数对图像进行预处理。需要注意的是:opencv读取的原始图像格式为 (高度, 宽度, 通道数) 格式的BGR顺序的数据,如果和模型不匹配,需要修改。

输出:
模型的输出与模型的业务有关系,这个需要根据业务进行数据解析。
不过下面两点需要注意:
1. 推理结束后的output需要使用hbSysFlushMem对内存cache进行刷新以读取最新推理结果。
2. 如过模型编译过程移除了反量化节点,在进行业务解析时需要对数据进行反量化处理。反量化参考代码可以参考/open_explorer/ddk/samples/ai_toolchain/horizon_runtime_sample/code/00_quick_start/src/run_mobileNetV1_224x224.cc文件get_topk_result中的反量化逻辑
或/open_explorer/ddk/samples/ai_toolchain/horizon_runtime_sample/code/01_api_tutorial/tensor/src/tensor_example.cc中的 dequantize_process_core

多输入模型的配置信息参考/open_explorer/ddk/samples/ai_toolchain/horizon_model_convert_sample/05_miscellaneous/04_multi_input_example这个例子吧,针对双双目,因为两个图像的处理流程是一样的,只是处理的来源和存储位置有差别,参考ptyhon脚本/open_explorer/ddk/samples/ai_toolchain/horizon_model_convert_sample/05_miscellaneous/04_multi_input_example/mapper/data_preprocess.py的处理逻辑修改一下就OK了