按教程转换yolo3模型之后,在板子上检测效果很差

如题,我猜测是量化的时候损失精度太多?
我也测试Demo程序,发现识别精度一样很差。。应该怎么提高精度阿?

还有一个问题就是,Demo程序偶尔会出现崩溃的问题。

@zhakangning

@zhakangning 那你可以需要自己优化模型结构,从浮点转换成整型是会丢失掉一部分精度的。这毕竟是一个近似转换,这里提供几个思路

  1. demo里面对图片只进行了1次risize,方式是伸缩变形,这会造成一些精度损失,建议改成2次resize,改成按比例缩放并填充黑色,这样子精度会有提升
  2. 调整你转换时的参数,看看能不能提升精度,你可以研究下转换参数,不同参数是会有不同的效果的
  3. 优化yolov3的cfg文件,再重新训练

@zhakangning 崩溃的问题,我会测试验证。这个仅仅是demo,仅供参考,要实际应用,还是要自己写应用的

可以不量化直接转换模型到板子上运行吗?

凑字数凑字数凑子

@zhakangning 不量化,那你就需要自己在后续的C++源码中去处理这个过程,建议是在转换过程中量化

意思转换过程中不量化,后续程序运行的时候还是需要把32位浮点型转化为8位的过程吗?

换句话说,咱们这个VIM3的NPU可以支持32位浮点型的计算吗?

@zhakangning NPU只支持整型

哦,明白了,谢谢!

00000000000000000000000

@Frank 这个Demo除了那张1080p.bmp的示例照片,我用其他照片测试都没有检测正确的。。是我哪里操作不对吗?

@zhakangning 图片检测的这个,确认存在问题,你可以先使用摄像头的demo,那边是正常啊的。或者回退git到这个commit: 1c3380a97606b85dbe3c087bf0f0576dbf7793b3

我这里没有摄像头,可以直接给我发一个正常的图片识别的Demo程序源码吗?
326482852@qq.com

感谢!

@zhakangning 回退代码到1c3380a97606b85dbe3c087bf0f0576dbf7793b3这个commit就行,但是这个是使用opencv做resize,不是用ge2d的

软解码是解jpg吗?
这个github链接是哪个?我记得有一个只包含demo程序的https://gitlab.com/khadas/aml_npu_demo_binaries
有一个是包含demo源码的

@zhakangning

可执行程序是这个仓库https://gitlab.com/khadas/aml_npu_demo_binaries

回退到这个commit: 1c3380a97606b85dbe3c087bf0f0576dbf7793b3

Screenshot from 2021-05-08 18-57-47

测试完可以了,最新版本是Demo是哪一层出问题了?
根据我的研究有3层,最上层是detect_demo,中间是libnn_detect.so,底层是libnn_yolo.so

@zhakangning 应用层处理图片的地方有问题,与库无关

@Frank 这个应用层代码的bug有计划修复吗?或者能提供一份以前正常的应用层代码吗?我这边需要根据这个代码来修改,实现自己的业务逻辑。

@zhakangning 在计划中,但是没这么快,最快下周处理。你可以回退到79429a1565a5d0c3dda8f2a24792127de628eeca