Toybrick

yolov4-tiny C++版本程序无法打开视频文件

CQQQQQQQQQQ

注册会员

积分
91
楼主
发表于 2021-4-1 12:38:34    查看: 50548|回复: 11 | [复制链接]    打印 | 只看该作者
本帖最后由 CQQQQQQQQQQ 于 2021-4-12 18:10 编辑

        自己训练的Yolov4-tiny模型,使用rknn-toolkite-1.6.0转换成rknn模型,使用论坛上面提供的C++版本的程序,如果使用摄像头采集视频,程序运作正常,帧率在30FPS(受限于摄像头的帧率),但是如果使用本地视频文件,则一直报错,报错信息如下:     
  1. librga:RGA_GET_VERSION:3.02,3.020000
  2. ctx=0x5574a74e90,ctx->rgaFd=3
  3. Rga built version:version:+2017-09-28 10:12:42
  4. This system has 6 processor(s).
  5. Bind NPU process(1) to CPU 5
  6. Bind VideoCapture process to CPU 2
  7. Bind NPU process(0) to CPU 4
  8. Bind Display process to CPU 3
  9. [mpeg4_v4l2m2m @ 0x7f90002750] Could not find a valid device
  10. [mpeg4_v4l2m2m @ 0x7f90002750] can't configure decoder
  11. [ WARN:0] OpenCV | GStreamer warning: GStreamer: pipeline have not been created
  12. [ERROR:0] VIDEOIO(createGStreamerCapture(filename)): raised OpenCV exception:

  13. OpenCV(3.4.7) /home/firefly/Downloads/opencv-3.4.7/modules/videoio/src/cap_gstreamer.cpp:160: error: (-215:Assertion failed) ptr in function 'get'


  14. VIDIOC_REQBUFS: Inappropriate ioctl for device
  15. Fail to open test1_405.mp4
  16. D RKNNAPI: ==============================================
  17. D RKNNAPI: RKNN VERSION:
  18. D RKNNAPI:   API: 1.4.0 (bbe0dfc build: 2020-09-14 14:06:05)
  19. D RKNNAPI:   DRV: 1.6.0 (159d2d3 build: 2021-01-12 15:23:09)
  20. D RKNNAPI: ==============================================
  21. D RKNNAPI: ==============================================
  22. D RKNNAPI: RKNN VERSION:
  23. D RKNNAPI:   API: 1.4.0 (bbe0dfc build: 2020-09-14 14:06:05)
  24. D RKNNAPI:   DRV: 1.6.0 (159d2d3 build: 2021-01-12 15:23:09)
  25. D RKNNAPI: ==============================================
  26. The initialization of NPU Process 0 has been completed.
  27. The initialization of NPU Process 1 has been completed.
复制代码

        网上搜了一下报错信息,可能是没有安装FFmpeg导致的,于是编译安装FFmpeg4.1,依然报错,报错信息如下:
  1. librga:RGA_GET_VERSION:3.02,3.020000
  2. ctx=0x55cfa9de90,ctx->rgaFd=3
  3. Rga built version:version:+2017-09-28 10:12:42
  4. mpi: mpp version: 1614c5d4 author: Caesar Wang debian: add rules for mpp with 20191031
  5. mpp_rt: NOT found ion allocator
  6. mpp_rt: found drm allocator
  7. mpp: deprecated block control, use timeout control instead
  8. mpp: deprecated block control, use timeout control instead
  9. [swscaler @ 0x55cfade7c0] drm_prime is not supported as input pixel format
  10. terminate called after throwing an instance of 'cv::Exception'
  11.   what():  OpenCV(3.4.7) /home/firefly/Downloads/opencv-3.4.7/modules/highgui/src/window.cpp:358: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow'

  12. Aborted (core dumped)
复制代码
      API使用的是github上1.6.0版本的,请问大家能正确读取视频文件吗?欢迎大佬赐教!















回复

使用道具 举报

sunkai

中级会员

积分
310
沙发
发表于 2021-4-1 15:10:59 | 只看该作者
请问一下,c++版本的代码在哪里获取的
回复

使用道具 举报

CQQQQQQQQQQ

注册会员

积分
91
板凳
 楼主| 发表于 2021-4-1 16:36:28 | 只看该作者
sunkai 发表于 2021-4-1 15:10
请问一下,c++版本的代码在哪里获取的

http://t.rock-chips.com/forum.ph ... ight=C%2B%2B%2Byolo
这个帖子里面的附件有C++版本的代码,你需要注册账号,登陆后才能看到
回复

使用道具 举报

CQQQQQQQQQQ

注册会员

积分
91
地板
 楼主| 发表于 2021-4-2 11:50:41 | 只看该作者
本帖最后由 CQQQQQQQQQQ 于 2021-4-12 11:42 编辑

。。。



回复

使用道具 举报

sunkai

中级会员

积分
310
5#
发表于 2021-4-2 14:11:43 | 只看该作者
CQQQQQQQQQQ 发表于 2021-4-2 11:50
找到原因了,opencv存储的图片是BGR模式,改成RGB模式就ok了。即程序里面run_process函数中关于cvtColor的 ...

请问一下,你是在3399上面跑的,运行步骤能大概说下吗,是需要添加opencv的包先进行编译再运行吗
回复

使用道具 举报

CQQQQQQQQQQ

注册会员

积分
91
6#
 楼主| 发表于 2021-4-2 14:57:06 | 只看该作者
sunkai 发表于 2021-4-2 14:11
请问一下,你是在3399上面跑的,运行步骤能大概说下吗,是需要添加opencv的包先进行编译再运行吗 ...

我是在3399pro上面跑的,要先编译安装opencv,然后按照api文件夹里面的使用说明书操作就可以了,即编译好工程之后,拷贝生成的可执行文件到/tmp文件夹里面运行
回复

使用道具 举报

sunkai

中级会员

积分
310
7#
发表于 2021-4-6 10:56:34 | 只看该作者
你好,官方给的opencv中好像不能直接调用   videocapture方法吧,请问您是怎么处理的,编译opencv源文件吗
回复

使用道具 举报

Devin

中级会员

积分
452
8#
发表于 2021-4-7 15:28:13 | 只看该作者
你测的20ms是推理时间还是包括了nms等后处理时间?
回复

使用道具 举报

CQQQQQQQQQQ

注册会员

积分
91
9#
 楼主| 发表于 2021-4-12 11:02:11 | 只看该作者
sunkai 发表于 2021-4-6 10:56
你好,官方给的opencv中好像不能直接调用   videocapture方法吧,请问您是怎么处理的,编译opencv源文件吗 ...

是的,官方api库文件里面没有videoio.so文件,我自己编译安装的opencv3.4.7,但是现在只能用cameraRead函数,使用videoRead函数会报错,报错信息如下:
[mpeg4_v4l2m2m @ 0x558d7ddbc0] Could not find a valid device
[mpeg4_v4l2m2m @ 0x558d7ddbc0] can't configure decoder
[ WARN:0] OpenCV | GStreamer warning: GStreamer: pipeline have not been created
[ERROR:0] VIDEOIO(createGStreamerCapture(filename)): raised OpenCV exception:

OpenCV(3.4.7) /home/firefly/Downloads/opencv-3.4.7/modules/videoio/src/cap_gstreamer.cpp:160: error: (-215:Assertion failed) ptr in function 'get'
VIDIOC_REQBUFS: Inappropriate ioctl for device
回复

使用道具 举报

CQQQQQQQQQQ

注册会员

积分
91
10#
 楼主| 发表于 2021-4-12 11:04:10 | 只看该作者
Devin 发表于 2021-4-7 15:28
你测的20ms是推理时间还是包括了nms等后处理时间?

是包括了nms等后处理时间,
回复

使用道具 举报

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

本版积分规则

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


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