VIM3 NPU6.4.3 Linux SDK 使用acuity-toolkit从官方下载模型量化,无识别结果输出

如题,NPU6.4.3 Linux SDK 使用acuity-toolkit从官方下载模型量化,无识别结果输出,
NPU SDK下载路径为:百度网盘 请输入提取码 (code: vi5e)

请教下大家有没有遇到这种情况,量化参数参考detect_yolo_v4,采用INT8,但是用SDK自带的转换好的yolov4_88.nb,可以正常识别物体分类,求助,问题已经困扰了一周

@algoideas 你的cfg和权重文件是哪里来的?是使用的多大的size

使用的size是416x416,cfg采用darknet的cfg目录下的yolov4.cfg, 仅改了分辨率,权重文件来自https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights

转换步骤:
第一步:
#!/bin/bash

NAME=yolov4
ACUITY_PATH=…/bin/

convert_darknet=${ACUITY_PATH}convertdarknet

$convert_darknet
–net-input ./model/${NAME}.cfg
–weight-input ./model/${NAME}.weights
–net-output ${NAME}.json
–data-output ${NAME}.data

第二步:
#!/bin/bash

NAME=yolov4
ACUITY_PATH=…/bin/

tensorzone=${ACUITY_PATH}tensorzonex

#dynamic_fixed_point-i8 asymmetric_affine-u8 dynamic_fixed_point-i16(s905d3 not support point-i16)
$tensorzone
–action quantization
–dtype float32
–source text
–source-file data/dataset.txt
–channel-mean-value ‘0 0 0 256’
–reorder-channel ‘0 1 2’
–model-input ${NAME}.json
–model-data ${NAME}.data
–model-quantize ${NAME}.quantize
–quantized-dtype asymmetric_affine-u8
–quantized-rebuild \

第三步:
#!/bin/bash

NAME=yolov4
ACUITY_PATH=…/bin/

export_ovxlib=${ACUITY_PATH}ovxgenerator

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

@algoideas 如果你的权重文件本身也是416的,那应该是没问题的,你确认过这个权重文件的size么

权重文件的size和cfg里面的分辨率要一致吗?下载的官方权重文件,可能不是416x416,只是改了cfg为416x416去量化,这样的做法是否可行

@algoideas 要保持一致,你要确保你的权重文件也是416的

好的,我再找下和cfg配置相同分辨率的权重文件,再试试,Thanks

@algoideas 你可以用我的试试
链接: https://pan.baidu.com/s/1Sj8s8qPuJtqtqhF_nG4LNQ 提取码: smb3 复制这段内容后打开百度网盘手机App,操作更方便哦

OK,Thanks,我试试再反馈验证结果

已经试了用您的模型和权重文件验证,分辨率416x416,可以正常识别物体

@algoideas 应该就是这个匹配不上的关系,你可以找对应得上的用

Frank,您好,我也遇到了相似的问题想请教下:
我自己训练的yolov4模型(链接: https://pan.baidu.com/s/1TrjHLrXgO_4dTsdQ3Ltdfw 提取码: 1p9t );cfg文件里面size也是416*416,用PC的darknet跑模型文件是能正确推理出结果的,但是用NPU6.4.3 linux SDK里面的acuity-tookit量化后,放到VIM3上跑的话,结果始终不对;附件我上传了对比的cfg的差异图片。麻烦帮忙看下!谢谢。

@kiwin 训练时的batch可以是32和64,训练完以后,batch应该改为1

hi, Frank,这边只是改batch为1后重新量化,试了下还是不行。
自己训练的模型的完整cfg文件已经上传到百度网盘,和你发的还是有其他地方的差异,由于这里上传图片大小有限制,无法将cfg完整差异贴上来,上面只是贴了一小部分,麻烦在帮忙看下,感谢!

@kiwin 你可以用我上面的测试下先,至于cfg文件,尽量不要动,我也是从darknet官网拿过来的,你也可以去看github上面看我的仓库