Toybrick

yolov4预训练模型生成的.rknn后,推理出现问题,看提示是输...

liufeng

中级会员

积分
228
楼主
发表于 2020-8-20 20:23:45    查看: 39083|回复: 16 | [复制链接]    打印 | 只看该作者
toybrick@debian10:~/yolov3_demo$ python3 rknn_picture_tiny.py
-->loading model
loading model done
--> Init runtime environment
I NPUTransfer: Starting NPU Transfer Client, Transfer version 1.9.8 (40e4a8a@2020-01-02T09:16:20)
D RKNNAPI: ==============================================
D RKNNAPI: RKNN VERSION:
D RKNNAPI:   API: 1.3.2 (9eebd73 build: 2020-04-02 15:30:36)
D RKNNAPI:   DRV: 1.3.0 (c4f8c23 build: 2019-11-25 10:39:29)
D RKNNAPI: ==============================================
done
E RKNNAPI: rknn_input_set,  inputs[0].buf wrong, buf = 0x23281160, size = 519168 (min_size = 1108992)!
E Catch exception when setting inputs.
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 1162, in rknn.api.rknn_base.RKNNBase.inference
E   File "rknn/api/rknn_base.py", line 1077, in rknn.api.rknn_base.RKNNBase.set_inputs
E   File "rknn/api/rknn_runtime.py", line 468, in rknn.api.rknn_runtime.RKNNRuntime.set_inputs
E Exception: Set inputs failed. error code: RKNN_ERR_PARAM_INVALID
Traceback (most recent call last):
  File "rknn_picture_tiny.py", line 224, in <module>
    out_boxes, out_boxes2 = rknn.inference(inputs=[mat])
TypeError: cannot unpack non-iterable NoneType object

哪位同仁成功尝试了其他版本的yolov4模型的推理吗?

回复

使用道具 举报

jefferyzhang

版主

积分
13578
沙发
发表于 2020-8-20 22:06:28 | 只看该作者
驱动版本太低
回复

使用道具 举报

liufeng

中级会员

积分
228
板凳
 楼主| 发表于 2020-8-21 09:09:13 | 只看该作者

你好,这个驱动版本用你们提供的yolov3训练好的模型是正常推理的,yolov4也是应该支持的吧?
回复

使用道具 举报

liufeng

中级会员

积分
228
地板
 楼主| 发表于 2020-8-21 09:12:28 | 只看该作者

yolov4预训练模型的rknn生成好了,只是推理提示说输入buf的size过小,小于规定最小的min_size?
回复

使用道具 举报

liufeng

中级会员

积分
228
5#
 楼主| 发表于 2020-8-21 14:20:11 | 只看该作者

问题解决了,应该不是驱动问题,不过还是感谢。从解决问题的地方来看是参照修改的rknn_transform_yolov4.py里的量化函数rknn.build里的参数dataset没设置对,修改成608x608的就顺利完成了推理函数,不过新问题来了,看着是数组不匹配导致,但已经有思路。
toybrick@debian10:~/yolov3_demo$ python3 rknn_picture_608x608.py
-->loading model
loading model done
--> Init runtime environment
I NPUTransfer: Starting NPU Transfer Client, Transfer version 1.9.8 (40e4a8a@2020-01-02T09:16:20)
D RKNNAPI: ==============================================
D RKNNAPI: RKNN VERSION:
D RKNNAPI:   API: 1.3.2 (9eebd73 build: 2020-04-02 15:30:36)
D RKNNAPI:   DRV: 1.3.0 (c4f8c23 build: 2019-11-25 10:39:29)
D RKNNAPI: ==============================================
done
Traceback (most recent call last):
  File "rknn_picture_608x608.py", line 227, in <module>
    out_boxes = out_boxes.reshape(SPAN, LISTSIZE, GRID0, GRID0)
ValueError: cannot reshape array of size 1472880 into shape (3,85,19,19)
回复

使用道具 举报

yanggui

注册会员

积分
151
6#
发表于 2020-9-23 09:04:24 | 只看该作者
楼上的问题解决了嘛?
回复

使用道具 举报

brunolin

高级会员

积分
640
7#
发表于 2020-9-23 16:37:14 | 只看该作者
yanggui 发表于 2020-9-23 09:04
楼上的问题解决了嘛?

若以608x608來說,YOLOv3的三個輸出是19x19, 38x38, 76x76
YOLOv4是76x76, 38x38, 19x19,和v3是相反的
回复

使用道具 举报

YeeLearn

注册会员

积分
184
8#
发表于 2020-10-23 11:39:38 | 只看该作者
brunolin 发表于 2020-9-23 16:37
若以608x608來說,YOLOv3的三個輸出是19x19, 38x38, 76x76
YOLOv4是76x76, 38x38, 19x19,和v3是相反的
...

请问yolov4预测和v3除了三个head顺序不同,还有其它问题吗
回复

使用道具 举报

brunolin

高级会员

积分
640
9#
发表于 2020-10-23 15:16:53 | 只看该作者
YeeLearn 发表于 2020-10-23 11:39
请问yolov4预测和v3除了三个head顺序不同,还有其它问题吗

用rknn-toolkit v1.4.0來轉檔,並且驅動版本要>1.3以上。這樣應該沒有其他問題
唯一的問題就是推理時間太長。
回复

使用道具 举报

YeeLearn

注册会员

积分
184
10#
发表于 2020-10-23 16:05:06 | 只看该作者
brunolin 发表于 2020-10-23 15:16
用rknn-toolkit v1.4.0來轉檔,並且驅動版本要>1.3以上。這樣應該沒有其他問題
唯一的問題就是推理時間太 ...

我用激活函数mish的yolov4检测不到目标,激活函数leaky的yolov4可以正常检测,不知道你那边是不是用到了mish激活函数?模型都是darknet仓库model zoo下载的模型。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表