cnstream的demo程序中,yolov5的demo并未支持开启firstconv选项,所以会出此问题,您可以自定义一个preprocess函数来支持firstconv的UINT8格式的输入,具体代码可参考yolov3的demo程序。展开
“c” should be 3,but 4,表示实际需要的是未开启firstconv的3通道的浮点输入,而不是4通道的UINT8的输入,那么可能2个原因:1)模型并非开启了firstconv的模型,请检查下模型的.cambricon_twins文件,确认模型的输入是否是4通道的。2)json配置文件,显式的指定了输入是3通道FP32的请您补充下最终的json配置文件信息和模型.cambricon_twins文件的内容,谢谢展开
你好,可以加个微信联系下吗,向您请教下,把问题解决了,这个问题很久没解决.
cnstream提供的示例前处理是和仓库中的模型对应的,你可以在原来的基础上进行修改。或者参考示例自定义自己的前处理类。当前报错是因为,VideoPreprocYolov5类只适用于不加firstconv的yolov5网络。如果加了firstconv需要:1,修改以下判断。2,修改前处理逻辑(模型输入为U8,并且不再需要mean std)VideoPreprocYolov5::Execute()中,将3改为4if (input_shape[c_idx] != 3) {LOGE(DEMO) << "[VideoPreprocYolov5] model input shape not supported, `c` should be 3, but " << input_shape[c_idx];return false;}展开
你好,可以加个微信联系下吗,向您请教下,把问题解决了,这个问题很久没解决.
cnstream提供的示例前处理是和仓库中的模型对应的,你可以在原来的基础上进行修改。或者参考示例自定义自己的前处理类。当前报错是因为,VideoPreprocYolov5类只适用于不加firstconv的yolov5网络。如果加了firstconv需要:1,修改以下判断。2,修改前处理逻辑(模型输入为U8,并且不再需要mean std)VideoPreprocYolov5::Execute()中,将3改为4if (input_shape[c_idx] != 3) {LOGE(DEMO) << "[VideoPreprocYolov5] model input shape not supported, `c` should be 3, but " << input_shape[c_idx];return false;}展开
你好,非常感谢你的帮助,请问下您说的2,修改前处理逻辑,模型输入为U8是改下面这里,如下图:
“c” should be 3,but 4,表示实际需要的是未开启firstconv的3通道的浮点输入,而不是4通道的UINT8的输入,那么可能2个原因:1)模型并非开启了firstconv的模型,请检查下模型的.cambricon_twins文件,确认模型的输入是否是4通道的。2)json配置文件,显式的指定了输入是3通道FP32的请您补充下最终的json配置文件信息和模型.cambricon_twins文件的内容,谢谢展开
你好,非常感谢你的回答,最终json配置文件信息为:"model_input_pixel_format": "RGBA32",图片读取为opencv的CV_32FC4,firstconv的模型.cambricon_twins文件的内容如下:
“c” should be 3,but 4,表示实际需要的是未开启firstconv的3通道的浮点输入,而不是4通道的UINT8的输入,那么可能2个原因:1)模型并非开启了firstconv的模型,请检查下模型的.cambricon_twins文件,确认模型的输入是否是4通道的。2)json配置文件,显式的指定了输入是3通道FP32的请您补充下最终的json配置文件信息和模型.cambricon_twins文件的内容,谢谢展开
Inferencer2模块
报错补充:“c” should be 3,but 4
cnstream提供的示例前处理是和仓库中的模型对应的,你可以在原来的基础上进行修改。或者参考示例自定义自己的前处理类。
当前报错是因为,VideoPreprocYolov5类只适用于不加firstconv的yolov5网络。
如果加了firstconv需要:1,修改以下判断。2,修改前处理逻辑(模型输入为U8,并且不再需要mean std)
VideoPreprocYolov5::Execute()中,将3改为4
if (input_shape[c_idx] != 3) {
LOGE(DEMO) << "[VideoPreprocYolov5] model input shape not supported, `c` should be 3, but " << input_shape[c_idx];
return false;
}
根据log打印判断,设置的model_input_pixel_format和模型的输入shape的c通道不符合报错。麻烦再确认下,设置的value是 RGBA32/BGRA32/ARGB32/ABGR32 吗?(要加32)需根据模型输入pixel format设置model_input_pixel_format,假设为RGBA32, Inferencer2模块的配置如下:"model_input_pixel_format": "RGBA32"展开
你好,按照你的格式设置,Inferencer2模块的配置如下:"model_input_pixel_format": "RGBA32",输入前的图片格式设置为opencv的CV_32FC4或CV_32FC3,还是报错,报错如下:
修改json配置文件的model_input_pixel_format : RGBA、BGRA、ARGB、ABGR还会报错,请问下具体如何修改。展开
根据log打印判断,设置的model_input_pixel_format和模型的输入shape的c通道不符合报错。
麻烦再确认下,设置的value是 RGBA32/BGRA32/ARGB32/ABGR32 吗?(要加32)
需根据模型输入pixel format设置model_input_pixel_format,假设为RGBA32, Inferencer2模块的配置如下:
"model_input_pixel_format": "RGBA32"
开启firstconv后,输入数据类型为UINT8,在推理是不需要做mean/std,输入的Layout为RGBA、BGRA、ARGB、ABGR几种,您生成模型的时候开启了firstconv,那么在启动cnstream的时候,请确认您的json配置文件关于inference模块的preprocess部分的配置是否与模型的layout的datatype一致展开
修改json配置文件的model_input_pixel_format : RGBA、BGRA、ARGB、ABGR还会报错,请问下具体如何修改。
开启firstconv后,输入数据类型为UINT8,在推理是不需要做mean/std,输入的Layout为RGBA、BGRA、ARGB、ABGR几种,您生成模型的时候开启了firstconv,那么在启动cnstream的时候,请确认您的json配置文件关于inference模块的preprocess部分的配置是否与模型的layout的datatype一致展开
你好,我可以这样设置吗,摄像头获取图片输入的datatype:CV_8UC4,json配置文件layout的datatype:BGRA;
请登录后评论