Yolov3 转换后模型运行报错,Frank进来帮个忙呗

转换的3个脚本如下:
1、0_import_model
NAME=yolov3
ACUITY_PATH=…/bin/

convert_caffe=${ACUITY_PATH}convertcaffe
convert_tf=${ACUITY_PATH}convertensorflow
convert_tflite=${ACUITY_PATH}convertflite
convert_darknet=${ACUITY_PATH}convertdarknet
convert_onnx=${ACUITY_PATH}convertonnx

$convert_tf
–tf-pb ./model/yolov3_dx_18003__27_3anchors_608.pb
–inputs input/input_data
–input-size-list ‘608,608,3’
–outputs conv_sbbox/BiasAdd\ conv_mbbox/BiasAdd\ conv_lbbox/BiasAdd
–net-output ${NAME}.json
–data-output ${NAME}.data
2、1_quantize_model
NAME=yolov3
ACUITY_PATH=…/bin/

tensorzone=${ACUITY_PATH}tensorzonex

#dynamic_fixed_point-i8 asymmetric_affine-u8
$tensorzone
–action quantization
–dtype float32
–source text
–source-file ./data/validation_tf.txt
–channel-mean-value ‘0 0 0 255.0’
–model-input ${NAME}.json
–model-data ${NAME}.data
–model-quantize ${NAME}.quantize
–quantized-dtype dynamic_fixed_point-i8
–quantized-rebuild

3、2_export_case_code

NAME=yolov3
ACUITY_PATH=…/bin/

export_ovxlib=${ACUITY_PATH}ovxgenerator

$export_ovxlib
–model-input ${NAME}.json
–data-input ${NAME}.data
–reorder-channel ‘2 1 0’
–channel-mean-value ‘0 0 0 255.0’
–export-dtype quantized
–model-quantize ${NAME}.quantize
–optimize VIPNANOQI_PID0X88
–viv-sdk ${ACUITY_PATH}vcmdtools
–pack-nbg-unify

首先第一个问题,./data/validation.txt 中./path/img.jpg, 813。这个813是什么意思?比如我们模型输入是608×608×3,这里813要改成608吗?

第二个问题,–reorder-channel ‘2 1 0’ ,按照我们上面模型输入608×608×3,这里是0 1 2 ,还是2 1 0,我试了两个好像最后运行时候都会报错,报错信息如下:
model.width:3
model.height:608
model.channel:608
E detect_api:[Inputsize not match! net VS img is height:608vs608, width:channel:608vs3]
感谢感谢!@Frank

@least1924

813是指,space_shuttle,jpg这个图片上的飞船,是所有class里面的第813个.

这里的 0 1 2 和 2 1 0 是指通道,0 1 2 是RGB, 2 1 0 是BGR

ok,上面两个都了解了,现在问题是,我按照教程转换出来的模型,width一直是3,channel一直是608,这俩反了。。。

@least1924 你用tf的工具读过你的shape没? 用summarize_graph读一下

Netron查看出来的模型结构,输入是Nx608x608x3,我再用summarize_graph瞅瞅

@least1924 还有这里–channel-mean-value ‘0 0 0 255.0’

255,不要传255.0

这里已经修改了,测试不对
字数补丁字数补丁字数补丁字数补丁

@least1924 你这是从哪里获取的tf的模型? 我怀疑你的通道没设置对.一般tf都是rgb模型

–reorder-channel ‘2 1 0’ 这里应该是0 1 2

确认一下你的的模型的通道排序

我们自己训练的模型呀 :joy:
通道这里我下午换过012,结果也是不对的 :sob:

@least1924 你这明显就是设置错了,weights和channel 给你搞错了.
你应该把脚本先还原回去,再重新修改. 0 0 0 256 以及 0 1 2 .测试完请把脚本截图出来,不要复制粘贴

好,稍等,字数补丁字数补丁字数补丁字数补丁字数补丁

还原再修改后的脚本,我先转换模型

@least1924 你的这个outpu是三个节点的?


字数补丁字数补丁字数补丁字数补丁字数补丁

@least1924 那你的input-size-list也要配置三个啊.文档里面有写的

模型是单张图(节点)输入,三个节点输出,不是多个输入,这样也需要配置三个input-size-list?
608,608,3#608,608,3#608,608,3
这样???

@least1924 是我看错了,你用 summarize_graph 测试过了么?

暂时有点其他事情,稍晚会再弄这个,麻烦您了,您先忙别的吧。
我晚点弄了,再回复。