yolov5模型转换sh 03_build.sh

在使用自己训练的yolov5模型进行模型构建,运行到03_build.sh报错,如下:

前两步均正确无误,日志文件如下:

2022-07-29 10:55:27,172 file: hb_mapper.py func: hb_mapper line No: 111 Start hb_mapper…

2022-07-29 10:55:27,173 file: hb_mapper.py func: hb_mapper line No: 112 log will be stored in /open_explorer/ddk/samples/ai_toolchain/horizon_model_convert_sample/04_detection/03_yolov5/mapper/hb_mapper_makertbin.log

2022-07-29 10:55:27,174 file: hb_mapper.py func: hb_mapper line No: 113 hbdk version 3.27.1

2022-07-29 10:55:27,175 file: hb_mapper.py func: hb_mapper line No: 114 horizon_nn version 0.12.8

2022-07-29 10:55:27,176 file: hb_mapper.py func: hb_mapper line No: 115 hb_mapper version 1.5.5

2022-07-29 10:55:27,176 file: hb_mapper_makertbin.py func: hb_mapper_makertbin line No: 590 Start Model Convert…

2022-07-29 10:55:27,193 file: mapper_conf_parser.py func: mapper_conf_parser line No: 811 Using abs path /open_explorer/ddk/samples/ai_toolchain/horizon_model_convert_sample/01_common/model_zoo/mapper/detection/yolov5_onnx_optimized/yolov5s.onnx

2022-07-29 10:55:27,215 file: mapper_conf_parser.py func: mapper_conf_parser line No: 137 validating model_parameters…

2022-07-29 10:56:00,090 file: mapper_conf_parser.py func: mapper_conf_parser line No: 811 Using abs path /open_explorer/ddk/samples/ai_toolchain/horizon_model_convert_sample/04_detection/03_yolov5/mapper/model_output

2022-07-29 10:56:00,105 file: mapper_conf_parser.py func: mapper_conf_parser line No: 149 validating model_parameters finished

2022-07-29 10:56:00,108 file: mapper_conf_parser.py func: mapper_conf_parser line No: 153 validating input_parameters…

2022-07-29 10:56:00,111 file: helper.py func: helper line No: 124 Model input names: [‘images’]

2022-07-29 10:56:00,113 file: mapper_conf_parser.py func: mapper_conf_parser line No: 273 input num is set to 1 according to input_names

2022-07-29 10:56:00,115 file: mapper_conf_parser.py func: mapper_conf_parser line No: 279 model name missing, using model name from model file: [‘images’]

2022-07-29 10:56:00,116 file: mapper_conf_parser.py func: mapper_conf_parser line No: 325 model input shape missing, using shape from model file: [[1, 3, 640, 640]]

2022-07-29 10:56:00,117 file: mapper_conf_parser.py func: mapper_conf_parser line No: 164 validating input_parameters finished

2022-07-29 10:56:00,118 file: mapper_conf_parser.py func: mapper_conf_parser line No: 168 validating calibration_parameters…

2022-07-29 10:56:00,150 file: mapper_conf_parser.py func: mapper_conf_parser line No: 811 Using abs path /open_explorer/ddk/samples/ai_toolchain/horizon_model_convert_sample/04_detection/03_yolov5/mapper/calibration_data_rgb_f32

2022-07-29 10:56:00,154 file: mapper_conf_parser.py func: mapper_conf_parser line No: 182 validating calibration_parameters finished

2022-07-29 10:56:00,155 file: mapper_conf_parser.py func: mapper_conf_parser line No: 186 validating custom_op…

2022-07-29 10:56:00,156 file: mapper_conf_parser.py func: mapper_conf_parser line No: 724 custom_op does not exist, skipped

2022-07-29 10:56:00,158 file: mapper_conf_parser.py func: mapper_conf_parser line No: 192 validating custom_op finished

2022-07-29 10:56:00,159 file: mapper_conf_parser.py func: mapper_conf_parser line No: 195 validating compiler_parameters…

2022-07-29 10:56:00,160 file: mapper_conf_parser.py func: mapper_conf_parser line No: 201 validating compiler_parameters finished

2022-07-29 10:56:00,161 file: hb_mapper_makertbin.py func: hb_mapper_makertbin line No: 56 Dump config:

2022-07-29 10:56:00,161 file: hb_mapper_makertbin.py func: hb_mapper_makertbin line No: 57 calibration_parameters:

cal_data_dir: ./calibration_data_rgb_f32

calibration_type: default

preprocess_on: false

compiler_parameters:

compile_mode: latency

debug: false

optimize_level: O3

input_parameters:

input_layout_train: NCHW

input_name: ‘’

input_shape: ‘’

input_type_rt: nv12

input_type_train: rgb

mean_value: ‘’

norm_type: data_scale

scale_value: ‘0.003921568627451’

model_parameters:

layer_out_dump: false

log_level: debug

march: bernoulli2

onnx_model: /open_explorer/ddk/samples/ai_toolchain/horizon_model_convert_sample/01_common/model_zoo/mapper/detection/yolov5_onnx_optimized/yolov5s.onnx

output_model_file_prefix: yolov5_672x672_nv12

working_dir: model_output

2022-07-29 10:56:00,171 file: hb_mapper_makertbin.py func: hb_mapper_makertbin line No: 63 input ‘images’ : original model shape: [1, 3, 640, 640]

2022-07-29 10:56:00,200 file: loader.py func: loader line No: 44 *******************************************

2022-07-29 10:56:00,201 file: loader.py func: loader line No: 45 First calibration picture name: 0.rgb

2022-07-29 10:56:00,202 file: loader.py func: loader line No: 47 First calibration picture md5:

2022-07-29 10:56:01,014 file: loader.py func: loader line No: 51 *******************************************

2022-07-29 10:56:01,023 file: loader.py func: loader line No: 125 created RawImageDirLoader of shape:[3, 640, 640]

2022-07-29 10:56:01,024 file: loader.py func: loader line No: 130 Read raw file: /open_explorer/ddk/samples/ai_toolchain/horizon_model_convert_sample/04_detection/03_yolov5/mapper/calibration_data_rgb_f32/0.rgb

2022-07-29 10:56:01,608 file: hb_mapper_makertbin.py func: hb_mapper_makertbin line No: 279 load cal data for input ‘images’ error

2022-07-29 10:56:01,609 file: tool_utils.py func: tool_utils line No: 116 exception in command: makertbin

2022-07-29 10:56:01,740 file: tool_utils.py func: tool_utils line No: 117 Traceback (most recent call last):

File “/usr/local/lib/python3.6/site-packages/horizon_tc_ui/utils/tool_utils.py”, line 114, in __decorator

func(*args, **kargs)

File “/usr/local/lib/python3.6/site-packages/horizon_tc_ui/hb_mapper.py”, line 117, in makertbin

MakertbinRunner(config, model_type).run(__version__)

File “/usr/local/lib/python3.6/site-packages/horizon_tc_ui/hb_mapper_makertbin.py”, line 596, in run

build_cal_params = self._get_build_calibration_params()

File “/usr/local/lib/python3.6/site-packages/horizon_tc_ui/hb_mapper_makertbin.py”, line 280, in _get_build_calibration_params

raise e

File “/usr/local/lib/python3.6/site-packages/horizon_tc_ui/hb_mapper_makertbin.py”, line 276, in _get_build_calibration_params

{input_name: get_all_data(loaders[input_name])})

File “/usr/local/lib/python3.6/site-packages/horizon_tc_ui/utils/tool_utils.py”, line 319, in get_all_data

data_set = np.array(next(generator))

File “/usr/local/lib/python3.6/site-packages/horizon_nn/data/loader.py”, line 32, in __next__

return self.perform()

File “/usr/local/lib/python3.6/site-packages/horizon_nn/data/loader.py”, line 35, in perform

data = self._parant.perform()

File “/usr/local/lib/python3.6/site-packages/horizon_tc_ui/data/loader.py”, line 57, in perform

return self.image_read_method(next(self.file_gen))

File “/usr/local/lib/python3.6/site-packages/horizon_tc_ui/data/loader.py”, line 132, in image_read_method

.reshape(self.shape).astype(np.float32)

ValueError: cannot reshape array of size 1354752 into shape (3,640,640)

2022-07-29 10:56:01,741 file: tool_utils.py func: tool_utils line No: 118 cannot reshape array of size 1354752 into shape (3,640,640)

我们用地平线ddk中的YOLOv5的onnx模型进行转换可以跑通,提供的模型input_shape是[[1,3,672,672]],我们自己使用的是github下载的yolov5s.pt是[[1,3,640,640]]就不可以,请问在yolov5的.pt转onnx有什么特别的要求吗?有没有相关的教程说明。

你好,这个报错的意思是你的校准数据准备的尺寸不太对,可以自行打印出来check一下。

校准数据准备的大小应该是:1x3x640x640=1228800,你现在的数据是:1354752。

另外补充说一下哈,你的校准数据需要准备成 input_type_train 和 input_layout_train 的格式(比如0~255范围的BGR),减均值除方差的归一化操作不需要做,放在yaml里面去配置就可以了

您好,您的问题我们已收到,技术同事稍后会为您解答~

“校准数据需要准备成 input_type_train 和 input_layout_train 的格式”是什么意思?从哪里操作修改,请详细说一下。

您好,可以参照readme中进行模型转换,里面有转换的具体链接

您好,config 配置文件里面可以修改的