Firefly开源社区

打印 上一主题 下一主题

[应用开发] RKmedia教学(zbar 二维码识别)

1万

积分

14

威望

13

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
11182

优秀版主

发表于 2021-7-29 11:30:21        只看该作者  21#

根据14 楼,有修改过吗?
[size=15.5556px]根据14 楼,有修改过吗?
[size=15.5556px]根据14 楼,有修改过吗?
[size=15.5556px]根据14 楼,有修改过吗?
回复

使用道具 举报

1万

积分

14

威望

13

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
11182

优秀版主

发表于 2021-7-29 13:04:52        只看该作者  22#
把我的修改贴给你,如本帖图片所示,示例在双目运行的,”camera id  1 是 彩色摄像头,camera id 0 是 黑白摄像头“ 如果你在 core-1126-jd4 上运行只有 1 个摄像头, 所以 camera id 要改成 0.

同时应用和 Rklunch 的 VO 冲突了。你需要先执行以下步骤:

./Rklunch-stop.sh
dbserver &
ispserver &
./rkmedia_vi_zbar_test -a /oem/etc/iqfiles/


diff --git a/rkmedia_vi_zbar_test.c b/rkmedia_vi_zbar_test.c
index 010857c..96ea1ea 100644
--- a/rkmedia_vi_zbar_test.c
+++ b/rkmedia_vi_zbar_test.c
@@ -13,7 +13,7 @@
#include "rkmedia_api.h"
#include "rkmedia_venc.h"

-#if 0
+#if 1
#define DBG(x...) printf(x)
#else
#define DBG(x...) do {} while(0)
@@ -170,11 +170,11 @@ int main(int argc, char *argv[])
   RK_MPI_SYS_Init();
#ifdef RKAIQ
   rk_aiq_working_mode_t hdr_mode = RK_AIQ_WORKING_MODE_NORMAL;
-  RK_BOOL fec_enable = RK_FALSE;
+  RK_BOOL fec_enable = RK_TRUE;
   int fps = 30;

-  SAMPLE_COMM_ISP_Init(1,hdr_mode, fec_enable, iq_file_dir);
-  SAMPLE_COMM_ISP_Run(1);
+  SAMPLE_COMM_ISP_Init(0,hdr_mode, fec_enable, iq_file_dir);
+  SAMPLE_COMM_ISP_Run(0);
   SAMPLE_COMM_ISP_SetFrameRate(fps);
#else
   (void)argc;
@@ -189,8 +189,8 @@ int main(int argc, char *argv[])
   vi_chn_attr.u32Height = 1080;
   vi_chn_attr.enPixFmt = IMAGE_TYPE_NV12;
   vi_chn_attr.enWorkMode = VI_WORK_MODE_NORMAL;
-  ret = RK_MPI_VI_SetChnAttr(1, 1, &vi_chn_attr);
-  ret |= RK_MPI_VI_EnableChn(1, 1);
+  ret = RK_MPI_VI_SetChnAttr(0, 1, &vi_chn_attr);
+  ret |= RK_MPI_VI_EnableChn(0, 1);
   if (ret) {
     printf("Create vi[1] failed! ret=%d\n", ret);
     return -1;
回复

使用道具 举报

408

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
408
发表于 2021-7-29 14:34:57        只看该作者  23#
板蓝根 发表于 2021-7-29 13:04
把我的修改贴给你,如本帖图片所示,示例在双目运行的,”camera id  1 是 彩色摄像头,camera id 0 是 黑 ...

按照#22 说明step-by-step后log如下.
请教一下:
1. 为什么要额外加dbserver & ispserver & 这两个指令
2. 这样的log正常吗?

  1. [root@RV1126_RV1109:/oem/usr/bin]# ./rkmedia_vi_zbar_test -a /oem/etc/iqfiles/
  2. [Banlangen1430] origin media get entity by name: rkcif-lvds-subdev is null
  3. [Banlangen1430] origin media get entity by name: rkcif-lite-lvds-subdev is null
  4. [Banlangen1430] origin media get entity by name: rkisp-mpfbc-subdev is null
  5. [Banlangen1430] origin media get entity by name: rkisp_dmapath is null
  6. [Banlangen1430] origin media get entity by name: rockchip-mipi-dphy-rx is null
  7. Rga built version:1.04 9286b22+2021-07-21 09:58:28
  8. ##RKMEDIA Log level: 2
  9. [RKMEDIA][SYS][Info]:text is all=2
  10. [RKMEDIA][SYS][Info]:module is all, log_level is 2
  11. [RKMEDIA][SYS][Info]:RK_MPI_VI_EnableChn: Enable VI[0:1]:rkispp_scale0, 1920x1080 Start...
  12. [RKMEDIA][SYS][Info]:RKAIQ: parsing /dev/media0
  13. [Banlangen1430] origin media get entity by name: rkcif-lvds-subdev is null
  14. [Banlangen1430] origin media get entity by name: rkcif-lite-lvds-subdev is null
  15. [RKMEDIA][SYS][Info]:RKAIQ: parsing /dev/media1
  16. [Banlangen1430] origin media get entity by name: rkisp-mpfbc-subdev is null
  17. [Banlangen1430] origin media get entity by name: rkisp_dmapath is null
  18. [Banlangen1430] origin media get entity by name: rockchip-mipi-dphy-rx is null
  19. [RKMEDIA][SYS][Info]:RKAIQ: model(rkisp0): isp_info(0): isp-subdev entity name: /dev/v4l-subdev4
  20. [RKMEDIA][SYS][Info]:RKAIQ: parsing /dev/media2
  21. [RKMEDIA][SYS][Info]:RKAIQ: model(rkispp0): ispp_info(0): ispp-subdev entity name: /dev/v4l-subdev0
  22. [RKMEDIA][SYS][Info]:#V4l2Stream: camraID:0, Device:rkispp_scale0
  23. [RKMEDIA][SYS][Warn]:camera_id: 0, chn: rkispp_scale0
  24. [RKMEDIA][SYS][Warn]:camera_id: 0, chn: rkispp_scale0, idx: 0
  25. [RKMEDIA][SYS][Info]:#V4l2Stream: camera id:0, VideoNode:/dev/video19
  26. Using mplane plugin for capture
  27. [RKMEDIA][SYS][Info]:#V4L2Ctx: open /dev/video19, fd 6
  28. [RKMEDIA][SYS][Info]:Opened DRM device /dev/dri/card0: driver rockchip version 2.0.0.
  29. [RKMEDIA][SYS][Info]:RK_MPI_VI_EnableChn: Enable VI[0:1]:rkispp_scale0, 1920x1080 End...
  30. [RKMEDIA][SYS][Info]:RK_MPI_RGA_CreateChn: Enable RGA[0], Rect<0,0,1920,1080> Start...
  31. [RKMEDIA][SYS][Info]:FilterFlow:rkrga: Enable BufferPool! memtype:hw_mem, memcnt:12
  32. [RKMEDIA][SYS][Info]:RK_MPI_RGA_CreateChn: Enable RGA[0], Rect<0,0,1920,1080> End...
  33. [RKMEDIA][SYS][Info]:RK_MPI_VO_CreateChn: Enable VO[0] Start...
  34. [RKMEDIA][SYS][Info]:conn id : 56, enc id: 55, crtc id: 53, plane id: 52, w/h: 800,1280, fps: 54
  35. [RKMEDIA][SYS][Info]:RK_MPI_VO_CreateChn: Enable VO[0] End!
  36. [RKMEDIA][SYS][Info]:RK_MPI_RGA_CreateChn: Enable RGA[1], Rect<0,0,1920,1080> Start...
  37. [RKMEDIA][SYS][Info]:FilterFlow:rkrga: Enable BufferPool! memtype:hw_mem, memcnt:12
  38. [RKMEDIA][SYS][Info]:RK_MPI_RGA_CreateChn: Enable RGA[1], Rect<0,0,1920,1080> End...
  39. [RKMEDIA][SYS][Info]:RK_MPI_SYS_Bind: Bind Mode[VI]:Chn[1] to Mode[RGA]:Chn[0]...
  40. [RKMEDIA][SYS][Info]:RK_MPI_SYS_Bind: Bind Mode[VI]:Chn[1] to Mode[RGA]:Chn[1]...
  41. [RKMEDIA][SYS][Info]:RK_MPI_SYS_Bind: Bind Mode[RGA]:Chn[1] to Mode[VO]:Chn[0]...
  42. main initial finish
复制代码


  1.   /* MPI Init */
  2.   RK_MPI_SYS_Init();
  3. #ifdef RKAIQ
  4.   rk_aiq_working_mode_t hdr_mode = RK_AIQ_WORKING_MODE_NORMAL;
  5.   RK_BOOL fec_enable = RK_TRUE;
  6.   int fps = 30;

  7.   SAMPLE_COMM_ISP_Init(0,hdr_mode, fec_enable, iq_file_dir);
  8.   SAMPLE_COMM_ISP_Run(0);
  9.   SAMPLE_COMM_ISP_SetFrameRate(fps);
  10.   printf("[BLG] Create vi[1] failed! ret=%d\n", ret);

  11. #else
  12.   (void)argc;
  13.   (void)argv;
  14. #endif
  15.   
  16.   /* Create VI */
  17.   VI_CHN_ATTR_S vi_chn_attr;
  18.   vi_chn_attr.pcVideoNode = "rkispp_scale0";
  19.   vi_chn_attr.u32BufCnt = 4;
  20.   vi_chn_attr.u32Width = 1920;
  21.   vi_chn_attr.u32Height = 1080;
  22.   vi_chn_attr.enPixFmt = IMAGE_TYPE_NV12;
  23.   vi_chn_attr.enWorkMode = VI_WORK_MODE_NORMAL;
  24.   ret = RK_MPI_VI_SetChnAttr(0, 1, &vi_chn_attr);
  25.   ret |= RK_MPI_VI_EnableChn(0, 1);
  26.   if (ret) {
  27.     printf("Create vi[1] failed! ret=%d\n", ret);
  28.     return -1;
  29.   }

  30.   /* Create RGA */
复制代码
欢迎与我进行rv1109 rv1126 方面的技术交流.
我的QQ: 712715984
我擅长的: 手机平台的camera driver isp
回复

使用道具 举报

408

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
408
发表于 2021-7-29 14:39:54        只看该作者  24#
补充CTRL+C后的log.
1. 另外, 这种情况如何预览画面呢?
我把二维码对到摄像头前面, 但log无反应, 希望能通过vlc 推流看二维码对了没有, 但vlc 推流失败, 这是正常的吗?若正常, 如何预览呢?
2. 硬件环境: Core-1126-JD4

  1. ispserver[3241]: [ispserver][thread_func]:thread_func cam_id 0...
  2. ispserver[3241]: [ispserver][database_hash_init]:database_hash_init init complete
  3. ispserver[3241]: [ispserver][database_init]:database_init
  4. ispserver[3241]: [ispserver][main]:call_fun_ipc_demo_server init
  5. ispserver[3241]: [ispserver][hash_data_init_by_id]:hashtable init complete!
  6. ispserver[3241]: [ispserver][database_init]:database_init over
  7. ispserver[3241]: [ispserver][manage_init]:manage_init
  8. ispserver[3241]: [ispserver][subscrible_stream_event]:subscribe events from /dev/video15 success !
  9. ispserver[3241]: [ispserver][init_engine]:hdr_mode_db: 16
  10. ispserver[3241]: [ispserver][init_engine]:hdr mode: 1
  11. ispserver[3241]: [ispserver][init_engine]:set fec_en: 0, ret is 0
  12. ispserver[3241]: [ispserver][init_engine]:brightness:50, contrast:50, saturation:50, sharpness:50, hue:50

  13. ispserver[3241]: [ispserver][auto_exposure_set]:Set auto exposure, ret is 0
  14. ispserver[3241]: [ispserver][init_engine]:nr_mode:0, distortion_correction_mode:0, dehaze_mode:0, spatial_level:50, temporal_level:50, dehaze_level:0, ldch_level:0, fec_level:100, rotation_angle: 0

  15. ispserver[3241]: [ispserver][init_engine]:frequency_mode is 1, mirror_mode is 0

  16. ispserver[3241]: [ispserver][frequency_mode_set]:frequency mode is 1
  17. ispserver[3241]: [ispserver][isp_output_fps_set_no_mutex]:set output fps: 25, ret is 0
  18. ispserver[3241]: [ispserver][dc_para_set]:mode is 0, ldch_level is 0, fec_level is 100
  19. ispserver[3241]: [ispserver][white_balance_set_by_hash_table]:white balance mode is 0, r: 50, g: 50, b: 50
  20. ispserver[3241]: [ispserver][white_balance_style_set]:set autoWhiteBalance, ret is 0
  21. ispserver[3241]: [ispserver][mirror_mode_set]:set mirror mode 0
  22. ispserver[3241]: [ispserver][mirror_mode_set]:set mirror 0, set flip 0, ret is 0
  23. ispserver[3241]: [ispserver][bypass_stream_rotation_set]:rotation: 0
  24. ispserver[3241]: [ispserver][night_to_day_para_cap_set_db]:lght src support list is [ ]
  25. ispserver[3241]: [ispserver][thread_func]:wait stream start event...
  26. ispserver[3241]: [ispserver][set_day_mode]:set day mode, ret is -2
  27. ispserver[3241]: [ispserver][hdr_mode_set]:set hdr mode 16, led status 0, gc_hdr_mode is 16
  28. ispserver[3241]: [ispserver][set_day_mode]:set hdr2 when switching to day mode
  29. ispserver[3241]: [ispserver][night_to_day_auto_mode_set]:set night to day auto mode, ret is -2
  30. ispserver[3241]: [ispserver][thread_func]:wait stream start event success ...
  31. ispserver[3241]: [ispserver][thread_func]:state=0
  32. ispserver[3241]: [ispserver][thread_func]:start engine...
  33. ispserver[3241]: [ispserver][start_engine]:rkisp_init engine succeed
  34. ispserver[3241]: [ispserver][thread_func]:wait stream stop event...
  35. client_loop: send disconnect: Connection reset
复制代码
欢迎与我进行rv1109 rv1126 方面的技术交流.
我的QQ: 712715984
我擅长的: 手机平台的camera driver isp
回复

使用道具 举报

1万

积分

14

威望

13

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
11182

优秀版主

发表于 2021-7-29 15:09:21        只看该作者  25#
本帖最后由 板蓝根 于 2021-7-29 15:11 编辑

1.如本帖展示图所示,demo 是通过 VO (mipi 屏幕)预览的,如果要推流的话可能需要自己去修改了
2.“为什么需要开 dbserver 和 ispserver”。因为编译 demo 默认没有定义 RKAIQ 宏,默认没有初始化 ISP ,所以需要运行 ispserver,而 运行 ispserver 前需要运行 dbserver 不然会被刷屏。为什么 CAM-CRV1126S2U 不用,因为 CAM-CRV11262U 的 Rklunch.sh 没有占用 VO 所以不会冲突,不需要关闭。而 Rklunch 本身就帮我们初始化好 ISP了就不需要再初始化了。
3.为什么识别不了二维码?这个要调试一下 zbar 模块,demo 只在双目上测试过。core-1126-jd4 不行很有可能是 id 为 0 的摄像头默认前置摄像头模式图片被镜像了。你可以加一些代码在图片送入 zbar 之前保存下来,看看图片有什么异常,用手机扫扫这张图片的二维码看看能不能识别。
回复

使用道具 举报

408

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
408
发表于 2021-7-29 15:31:41        只看该作者  26#
板蓝根 发表于 2021-7-29 15:09
1.如本帖展示图所示,demo 是通过 VO (mipi 屏幕)预览的,如果要推流的话可能需要自己去修改了
2.“为什 ...

谢谢您的帮助!
您贴的1, 2, 3客制化步骤对我来说还要一段时间熟悉code才能尝试实现.
幸好我也购买了CAM-CRV11262U, 一会对比试试.
欢迎与我进行rv1109 rv1126 方面的技术交流.
我的QQ: 712715984
我擅长的: 手机平台的camera driver isp
回复

使用道具 举报

408

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
408
发表于 2021-7-30 15:28:07        只看该作者  27#
ubuntu 发表于 2021-7-29 14:39
补充CTRL+C后的log.
1. 另外, 这种情况如何预览画面呢?
我把二维码对到摄像头前面, 但log无反应, 希望能 ...

欢迎与我进行rv1109 rv1126 方面的技术交流.
我的QQ: 712715984
我擅长的: 手机平台的camera driver isp
回复

使用道具 举报

408

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
408
发表于 2021-7-30 15:32:25        只看该作者  28#
板蓝根 发表于 2021-7-29 15:09
1.如本帖展示图所示,demo 是通过 VO (mipi 屏幕)预览的,如果要推流的话可能需要自己去修改了
2.“为什 ...

您好, 我今天用如下版本CAM-CRV11262U 测试,发现该版本也无法使用此demo, 您说您是用CAM-CRV11262U验证的, 可否告知您验证的软件版本?
完整log 版本信息如下, 不知下面链接哪个字符又被文字狱了.
https://paste.ubuntu.com/p/WP6NwQ8QbJ/
欢迎与我进行rv1109 rv1126 方面的技术交流.
我的QQ: 712715984
我擅长的: 手机平台的camera driver isp
回复

使用道具 举报

1万

积分

14

威望

13

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
11182

优秀版主

发表于 2021-7-30 16:11:51        只看该作者  29#
ubuntu 发表于 2021-7-30 15:32
您好, 我今天用如下版本CAM-CRV11262U 测试,发现该版本也无法使用此demo, 您说您是用CAM-CRV11262U验证的 ...

1.首先 demo 不依赖 oepncv
2.你编译的时候链接的 sysroot 就应该是你板子本身的 rootfs,如果你都编译过去了,就不可能出现问题。如果你用的 rootfs 是和你的 sysroot 是同一个 config 编译出来的话。
回复

使用道具 举报

408

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
408
发表于 2021-7-30 16:17:37        只看该作者  30#
板蓝根 发表于 2021-7-30 16:11
1.首先 demo 不依赖 oepncv
2.你编译的时候链接的 sysroot 就应该是你板子本身的 rootfs,如果你都编译 ...

谢谢您的回复.

问题的复现步骤:
1. 参考#28 里面的codebase, 纯净版 full build.
2. 参考#1 增加+BR2_PACKAGE_ZBAR=y
3. 参考 #1 修改build.sh . build 复现问题.

您可以看看你的如下文件, 里面是否要依赖opencv, 我抓的code 有此依赖项
app/firefly_rkmedia_demo/build.sh
欢迎与我进行rv1109 rv1126 方面的技术交流.
我的QQ: 712715984
我擅长的: 手机平台的camera driver isp
回复

使用道具 举报

返回列表
12345... 6
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表