在进行模型量化阶段执行hb_mapper makertbin的时候输入array大小出现不匹配该怎么解决,数据预处理的时候已经将图片resize成对应大小了,数据类型也进行了转化,输入尺寸也是匹配的:
# transform code
import os
import cv2
import numpy as np
if __name__=='__main__':
imgpath='/home/gawain/dok/pose/val'
src_images=os.listdir(imgpath)
dstpath='/home/gawain/dok/pose/valbin'
print('tr start, wait for a sec')
for i, x in enumerate(src_images):
x=imgpath+'/'+x
img=cv2.imread(x)
img=cv2.resize(img, (368, 368))
img=np.transpose(img, (2, 0, 1))
img=np.expand_dims(img, axis=0)
img=img.astype(np.float32)
img.tofile(f'{dstpath}/{i}.bgr')
# config.yaml
# Copyright (c) 2020 Horizon Robotics.All Rights Reserved.
# 模型转化相关的参数
model_parameters:
# 必选参数
# Onnx浮点网络数据模型文件, 例如:onnx_model: './horizon_x3_onnx.onnx'
onnx_model: '/home/gawain/dok/pose/merged_network.onnx'
march: "bernoulli2"
layer_out_dump: False
working_dir: 'model_output'
output_model_file_prefix: 'horizon_x3'
# 模型输入相关参数
input_parameters:
input_name: "image:0"
input_shape: '1x3x368x368'
input_type_rt: 'bgr'
input_layout_rt: 'NCHW'
# 必选参数
# 原始浮点模型训练框架中所使用训练的数据类型,可选的值为rgb/bgr/gray/featuremap/yuv444, 例如:input_type_train: 'bgr'
input_type_train: 'bgr'
# 必选参数
# 原始浮点模型训练框架中所使用训练的数据排布, 可选值为 NHWC/NCHW, 例如:input_layout_train: 'NHWC'
input_layout_train: 'NCHW'
input_batch: 1
# 必选参数
# 原始浮点模型训练框架中所使用数据预处理方法,可配置:no_preprocess/data_mean/data_scale/data_mean_and_scale
# no_preprocess 不做任何操作,对应的 mean_value 或者 scale_value 均无需配置
# data_mean 减去通道均值mean_value,对应的 mean_value 需要配置,并注释掉scale_value
# data_scale 对图像像素乘以data_scale系数,对应的 scale_value需要配置,并注释掉mean_value
# data_mean_and_scale 减去通道均值后再乘以scale系数,标识下方对应的 mean_value 和 scale_value 均需配置
norm_type: 'no_preprocess'
# 必选参数
# 图像减去的均值, 如果是通道均值,value之间必须用空格分隔
# 例如:mean_value: 128.0 或者 mean_value: 111.0 109.0 118.0
mean_value:
# 必选参数
# 图像预处理缩放比例,如果是通道缩放比例,value之间必须用空格分隔,计算公式:scale = 1/std
# 例如:scale_value: 0.0078125 或者 scale_value: 0.0078125 0.001215 0.003680
scale_value:
# 模型量化相关参数
calibration_parameters:
# 必选参数
# 模型量化的参考图像的存放目录,图片格式支持Jpeg、Bmp等格式,图片来源一般是从测试集中选择100张图片,并要覆盖典型场景,不要是偏僻场景,如过曝光、饱和、模糊、纯黑、纯白等图片
# 请根据 02_preprocess.sh 脚本中的文件夹路径来配置,例如:cal_data_dir: './calibration_data_yuv_f32'
cal_data_dir: '/home/gawain/dok/pose/valbin_f32'
cal_data_type: 'float32'
calibration_type: 'default'
# max_percentile: 0.99996
# 编译器相关参数
compiler_parameters:
compile_mode: 'latency'
debug: False
# core_num: 2
optimize_level: 'O3'
已经够验证过图像的array大小是符合要求的,但是载入尺寸显示很大是为什么-