Firefly开源社区

标题: RKmedia教学(zbar 二维码识别) [打印本页]

作者: 板蓝根    时间: 2021-5-27 10:54
标题: RKmedia教学(zbar 二维码识别)
本帖最后由 板蓝根 于 2021-5-27 10:59 编辑

要想更好的使用 1126/1109 的硬件资源就必须掌握一套媒体框架。此贴会已一个智慧金融的应用场景,介绍一下 RKmedia 的,VI 、VO、RGA 模块以及 zbar 的使用。应用功能:通过 RGB 摄像头识别二维码。



gitlab 仓库地址: https://gitlab.com/firefly-linux/app/firefly_rkmedia_demo

源码文件:firefly_rkmedia_demo/rkmedia_vi_zbar_test.c


可以安装一个浏览器域名二维码生成插件,到任意网站生成二维码传到手机中。运行程序
  1. ./rkmedia_vi_zbar_test -a /oem/etc/iqfiles
复制代码
然后把二维码放到摄像头前,打印信息就会识别出网站域名。





我会在源码上更新注释,也可以查看 WIKI RKmedia 讲解。https://wiki.t-firefly.com/zh_CN/CAM-C11262U/Rkmedia.html


作者: tom_liu    时间: 2021-6-29 16:15
值得学习!
作者: ubuntu    时间: 2021-7-16 16:50
rkmedia_vi_zbar_test.c  中第十行 ` 10 #include <zbar.h>    `
请问这个zbar.h从哪里来的?

  1. 搜索发现有三个路径, 但这些都是build时生成的, 原生的codebase并无此文件, 它是怎么来的?

  2. ./buildroot/output/firefly_rv1126_rv1109/build/zbar-854a5d97059e395807091ac4d80c53f7968abb8f/include/zbar.h
  3. ./buildroot/output/firefly_rv1126_rv1109/build/buildroot-config/br2/package/zbar.h
  4. ./buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/zbar.h

  5. 找到一段疑似code,没打开, 难道是从这个地址下载后丢到./buildroot/output/firefly_rv1126_rv1109/ 里面的?
  6. hg clone http://zbar.hg.sourceforge.net:8000/hgroot/zbar
复制代码

作者: daijh223    时间: 2021-7-19 10:41
ubuntu 发表于 2021-7-16 16:50
rkmedia_vi_zbar_test.c  中第十行 ` 10 #include     `
请问这个zbar.h从哪里来的?

教程说了,编译buildroot时候需要编译zbar
作者: ubuntu    时间: 2021-7-20 09:21
daijh223 发表于 2021-7-19 10:41
教程说了,编译buildroot时候需要编译zbar

您的话和我说的是一个东西吗?
zbar.h的生成方法 和 buildroot 存在什么联系呢?
作者: 板蓝根    时间: 2021-7-22 09:22
ubuntu 发表于 2021-7-20 09:21
您的话和我说的是一个东西吗?
zbar.h的生成方法 和 buildroot 存在什么联系呢?

你不把 zbar 相关依赖编译进 buildroot 怎么会有对应头文件呢?
作者: ubuntu    时间: 2021-7-22 14:41
本帖最后由 ubuntu 于 2021-7-23 14:49 编辑
板蓝根 发表于 2021-7-22 09:22
你不把 zbar 相关依赖编译进 buildroot 怎么会有对应头文件呢?

push到/oem/usr/bin 下运行失败。
[RKMEDIA][SYS][Warn]:VI[1]:"rkispp_scale0" buffer may be occupied by other modules or apps, try again...


  1. [root@RV1126_RV1109:/oem/usr/bin]# ./rkmedia_vi_zbar_test  -a /oem/etc/iqfiles

  2. [RKMEDIA][SYS][Info]:RKAIQ: model(rkisp0): isp_info(0): isp-subdev entity name: /dev/v4l-subdev4
  3. [RKMEDIA][SYS][Info]:RKAIQ: parsing /dev/media2
  4. [RKMEDIA][SYS][Info]:RKAIQ: model(rkispp0): ispp_info(0): ispp-subdev entity name: /dev/v4l-subdev0
  5. [RKMEDIA][SYS][Info]:#V4l2Stream: camraID:1, Device:rkispp_scale0

  6. [RKMEDIA][SYS][Error]:V4L2-CTX: open  failed No such file or directory
  7. [RKMEDIA][VI][Info]:Create stream v4l2_capture_stream failed
  8. [RKMEDIA][VI][Info]:#SourceStreamFlow[]: stream off....
  9. [RKMEDIA][VI][Info]:#SourceStreamFlow[]: read thread exit sucessfully!
  10. [RKMEDIA][VI][Info]:#SourceStreamFlow[]: stream reset sucessfully!
  11. [RKMEDIA][SYS][Warn]:VI[1]:"rkispp_scale0" buffer may be occupied by other modules or apps, try again...
  12. Create vi[1] failed! ret=-11
复制代码


尝试做如下两种方式排查无效, 请教该如何做?

  1. 方法1:
  2. [root@RV1126_RV1109:/]# reboot
  3. [root@RV1126_RV1109:/]# grep '' /sys/class/video4linux/video*/name
  4. /sys/class/video4linux/video19/name:rkispp_scale0
  5. [root@RV1126_RV1109:/]# fuser /dev/video19
  6. 946
  7. [root@RV1126_RV1109:/]# kill -9 946
  8. [root@RV1126_RV1109:/oem/usr/bin]# ./rkmedia_vi_zbar_test  -a /oem/etc/iqfiles

  9. 方法2:
  10. [root@RV1126_RV1109:/]# reboot
  11. [root@RV1126_RV1109:/oem]# ./RkLunch-stop.sh
  12. [root@RV1126_RV1109:/oem/usr/bin]# ./rkmedia_vi_zbar_test  -a /oem/etc/iqfiles
复制代码



运行环境:
  1. 刷机包: 官方如下最新包:AIO-RV1126_RV1109-JD4_2021_0709_1611
  2. hw:官方购买的Core-1126-JD4› + os04a10
复制代码

作者: ubuntu    时间: 2021-7-22 14:43
补充说明:进vlc 正常预览,确认camera 导通正常。
作者: 板蓝根    时间: 2021-7-22 15:24
VI[1]:"rkispp_scale0" buffer may be occupied by other modules or apps, try again...
这里已经说了 VI 被占用了,真个固件只有 RkLunch.sh 调用了摄像头。
你确定 ./RkLunch-stop.sh 之后还是报这个 log 吗?传一下完整 log
作者: ubuntu    时间: 2021-7-23 15:12
请教一下,怎么抓的log 最完整?
我尝试抓了几次,似乎都被吃了一部分.

log 提交多次总被论坛文字狱报包含敏感字符.
所以我放到如下剪贴板上了:
https://paste.ubuntu.com/p/yssTNw5qGN/

作者: ubuntu    时间: 2021-7-28 14:18
@板蓝根 log看到了吗?
作者: 板蓝根    时间: 2021-7-28 15:33
ubuntu 发表于 2021-7-28 14:18
@板蓝根 log看到了吗?

参考 9 楼,Rklunch-stop.sh 关闭了应用了吗?
作者: ubuntu    时间: 2021-7-28 17:17
板蓝根 发表于 2021-7-28 15:33
参考 9 楼,Rklunch-stop.sh 关闭了应用了吗?

您在#9 楼是说要提供关闭后的log.
首先, 我已经关闭了.
其次, log我也在#10 楼提供了

您可以参考我如下link中发的log, 中间第八行执行就是关闭的指令

https://paste.ubuntu.com/p/yssTNw5qGN/


谢谢!
作者: 板蓝根    时间: 2021-7-28 17:44
本帖最后由 板蓝根 于 2021-7-28 18:04 编辑
ubuntu 发表于 2021-7-28 17:17
您在#9 楼是说要提供关闭后的log.
首先, 我已经关闭了.
其次, log我也在#10 楼提供了

[size=15.5556px]双目和单目的 AIQ 初始化不一样,请问你用的是哪款设备,是CAM-CRV1126S2U 吗?


  1. SAMPLE_COMM_ISP_Init(1,hdr_mode, fec_enable, iq_file_dir)
  2. SAMPLE_COMM_ISP_Run(1);
复制代码


[size=15.5556px]请在代码中找到以上两行做一下尝试:
[size=15.5556px]1.[size=15.5556px]fec_enable 设置成 RK_TRUE 看看行不行。
[size=15.5556px]2.如果 step1 还是不可以,在 step1 的基础下再把这两行的 1 改成 0 再试试行不行。



作者: ubuntu    时间: 2021-7-29 08:59
板蓝根 发表于 2021-7-28 17:44
双目和单目的 AIQ 初始化不一样,请问你用的是哪款设备,是CAM-CRV1126S2U 吗?

1. 我CAM-CRV1126S2U Core-1126-JD4两套设备都买了. 目前用Core-1126-JD4 测试的.
2. 您贴的code 和我用的不一样. 我的code是这样:

  1. external/rkmedia/examples/rkmedia_vi_get_frame_test.c
  2.   if (pIqfilesPath) {
  3. #ifdef RKAIQ
  4.     printf("#####Aiq xml dirpath: %s\n\n", pIqfilesPath);
  5.     printf("#bMultictx: %d\n\n", bMultictx);
  6.     rk_aiq_working_mode_t hdr_mode = RK_AIQ_WORKING_MODE_NORMAL;
  7.     int fps = 30;
  8.     SAMPLE_COMM_ISP_Init(s32CamId, hdr_mode, bMultictx, pIqfilesPath);
  9.     SAMPLE_COMM_ISP_Run(s32CamId);
  10.     SAMPLE_COMM_ISP_SetFrameRate(s32CamId, fps);
  11. #endif
  12.   }
复制代码

作者: 板蓝根    时间: 2021-7-29 09:03
ubuntu 发表于 2021-7-29 08:59
1. 我CAM-CRV1126S2U Core-1126-JD4两套设备都买了. 目前用Core-1126-JD4 测试的.
2. 您贴的code 和我用 ...

你贴的是 rkmedia_vi_get_frame_test.c , 你是要调试这个还是 zbar ?
把硬件型号,固件版本,确认一下,我复现一下
作者: ubuntu    时间: 2021-7-29 11:01
板蓝根 发表于 2021-7-29 09:03
你贴的是 rkmedia_vi_get_frame_test.c , 你是要调试这个还是 zbar ?
把硬件型号,固件版本,确认一下 ...

谢谢回复.
我要调试的是zbar, 刚贴错成rkmedia_vi_get_frame_test.c 了.

硬件: Core-1126-JD4+os04a10
固件:
  1. repo init  --no-clone-bundle --repo-url https://gitlab.com/firefly-linux/git-repo.git -u https://gitlab.com/firefly-linux/manifests.git -b master -m rv1126_rv1109_linux_release.xml  --no-repo-verify
  2. ./build.sh aio-rv1126-jd4.mk
复制代码


复现过程见:
https://paste.ubuntu.com/p/yssTNw5qGN/

作者: 板蓝根    时间: 2021-7-29 11:12
ubuntu 发表于 2021-7-29 11:01
谢谢回复.
我要调试的是zbar, 刚贴错成rkmedia_vi_get_frame_test.c 了.

zbar 的话请参考  14 楼测试过吗?
作者: ubuntu    时间: 2021-7-29 11:14
板蓝根 发表于 2021-7-29 11:12
zbar 的话请参考  14 楼测试过吗?


https://paste.ubuntu.com/p/yssTNw5qGN/
就是拿zbar 测试的.
参考line 834:

[root@RV1126_RV1109:/oem/usr/bin]# ./rkmedia_vi_zbar_test  -a /oem/etc/iqfiles
作者: ubuntu    时间: 2021-7-29 11:17
Core-1126-JD4 验证demo似乎使用不太顺,
我今天切换到CAM-CRV1126S2U 测试, 还在build , 希望CAM-CRV1126S2U 能验证demo 顺利些.
毕竟若前期坑太多有点打击自信.
作者: 板蓝根    时间: 2021-7-29 11:30
ubuntu 发表于 2021-7-29 11:14
https://paste.ubuntu.com/p/yssTNw5qGN/
就是拿zbar 测试的.
参考line 834:

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

作者: 板蓝根    时间: 2021-7-29 13:04
把我的修改贴给你,如本帖图片所示,示例在双目运行的,”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;
作者: ubuntu    时间: 2021-7-29 14:34
板蓝根 发表于 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 */
复制代码

作者: ubuntu    时间: 2021-7-29 14:39
补充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
复制代码

作者: 板蓝根    时间: 2021-7-29 15:09
本帖最后由 板蓝根 于 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 之前保存下来,看看图片有什么异常,用手机扫扫这张图片的二维码看看能不能识别。
作者: ubuntu    时间: 2021-7-29 15:31
板蓝根 发表于 2021-7-29 15:09
1.如本帖展示图所示,demo 是通过 VO (mipi 屏幕)预览的,如果要推流的话可能需要自己去修改了
2.“为什 ...

谢谢您的帮助!
您贴的1, 2, 3客制化步骤对我来说还要一段时间熟悉code才能尝试实现.
幸好我也购买了CAM-CRV11262U, 一会对比试试.
作者: ubuntu    时间: 2021-7-30 15:28
ubuntu 发表于 2021-7-29 14:39
补充CTRL+C后的log.
1. 另外, 这种情况如何预览画面呢?
我把二维码对到摄像头前面, 但log无反应, 希望能 ...


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

您好, 我今天用如下版本CAM-CRV11262U 测试,发现该版本也无法使用此demo, 您说您是用CAM-CRV11262U验证的, 可否告知您验证的软件版本?
完整log 版本信息如下, 不知下面链接哪个字符又被文字狱了.
https://paste.ubuntu.com/p/WP6NwQ8QbJ/

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

1.首先 demo 不依赖 oepncv
2.你编译的时候链接的 sysroot 就应该是你板子本身的 rootfs,如果你都编译过去了,就不可能出现问题。如果你用的 rootfs 是和你的 sysroot 是同一个 config 编译出来的话。
作者: ubuntu    时间: 2021-7-30 16:17
板蓝根 发表于 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
作者: 板蓝根    时间: 2021-7-30 16:51
ubuntu 发表于 2021-7-30 16:17
谢谢您的回复.

问题的复现步骤:

去掉就好了
作者: ubuntu    时间: 2021-7-30 16:55
板蓝根 发表于 2021-7-30 16:51
去掉就好了

是的, 去掉就可以.
请教一下, 您那边用的下面哪套code呢,或者您建议哪套code 适配demo code 比较好?
1. 如果需要开发Facial_Gate类型应用请下载 rv1126_rv1109_linux_release REPO_SDK 软件包,
2. 如果需要开发AI_UVC应用请下载 rv1126_rv1109_linux_ai_camera_release REPO_SDK 软件包。
作者: 板蓝根    时间: 2021-7-30 16:59
ubuntu 发表于 2021-7-30 16:55
是的, 去掉就可以.
请教一下, 您那边用的下面哪套code呢,或者您建议哪套code 适配demo code 比较好?
1. ...

看应用场景,demo 哪一套都可以跑的
作者: ubuntu    时间: 2021-7-30 17:24
板蓝根 发表于 2021-7-30 16:59
看应用场景,demo 哪一套都可以跑的

我还是尝试用Facial_Gate的code吧.
因为以这个zbar code为例:
若我选Facical Gate的codebase ,参考您#1 的说明, 可以运行成功.
若选用AI_UVC的codebase, 就会遇到#28 楼的两个问题, 导致无法运行成功. 虽然通过您的额帮助小修小改可以解决.
所以我觉得贵司那边测试zbar 用的Facical Gate的codebase?
作者: ubuntu    时间: 2021-8-2 10:51
板蓝根 发表于 2021-7-30 16:59
看应用场景,demo 哪一套都可以跑的

请教一下:
贵司cam-crv1126s2u 开发套件验证过如下codebase吗?
我这边如下build 后oem分区都是空的?
而且IQ文件里面配置的也没有ov2093的sensor , 见rockchip_rv1126_rv1109_facial_gate_defconfig

若没有贵司没有验证过, 可否告知贵司验证zbar code 用的哪份codebase.
您也知道, 我这边为了测试zbar code已经花了两周了, 换了贵司的各种硬件.
1.  Core-1126-JD4 ==> 您说没有在单目上验证, ;;;贵司用的CAM-CRV1126S2U验证,参考#25
2. CAM-CRV1126S2U ==> 我用wiki建议的`rv1126_rv1109_linux_ai_camera_release`+`cam-crv1126s2u-uvcc.mk` , 然后build后有要自己修改build.sh ,参考# 31
3. CAM-CRV1126S2U ==> 我尝试用的`rv1126_rv1109_linux_release.xml`+`./build.sh cam-crv1126s2u-facial_gate.mk ` , IQ配置无ov2093, oem也是空的.

试错太多次了, 可否直接告知贵司CAM-CRV1126S2U  验证zbar用的codebase和mk配置文件?



  1. repo init  --no-clone-bundle --repo-url https://gitlab.com/firefly-linux/git-repo.git -u https://gitlab.com/firefly-linux/manifests.git -b master -m rv1126_rv1109_linux_release.xml --no-repo-verify
  2. ./build.sh cam-crv1126s2u-facial_gate.mk

复制代码

作者: ubuntu    时间: 2021-8-2 11:18
ubuntu 发表于 2021-8-2 10:51
请教一下:
贵司cam-crv1126s2u 开发套件验证过如下codebase吗?
我这边如下build 后oem分区都是空的?

补充一下:
第三中组合 , vlc 输入usb 模拟的网卡无法预览. 相互可以ping通.
3. CAM-CRV1126S2U ==> 我尝试用的`rv1126_rv1109_linux_release.xml`+`./build.sh cam-crv1126s2u-facial_gate.mk ` , IQ配置无ov2093, oem也是空的.
作者: 板蓝根    时间: 2021-8-2 11:21
本帖最后由 板蓝根 于 2021-8-2 11:23 编辑
ubuntu 发表于 2021-8-2 10:51
请教一下:
贵司cam-crv1126s2u 开发套件验证过如下codebase吗?
我这边如下build 后oem分区都是空的?

1.我们没有ov2093 sensor ,只适配 gc2093
2.“2. CAM-CRV1126S2U ==> 我用wiki建议的`rv1126_rv1109_linux_ai_camera_release`+`cam-crv1126s2u-uvcc.mk` , 然后build后有要自己修改build.sh ,参考# 31”不能验证 zbar 功能吗?
3.facial_gate 的 iq 在 /etc/iqfile 下面不再 oem,而且 facial_gate 同样会占用 vo

sdk 和 代码一直更新,以前可能直接把 opencv 加入 buildroot 配置项,后来发现用不到就为了缩小 buildroot 固件大小裁剪掉了。这个相当于你一个 apk 在 android 5 可以跑,在 android 10 就未必能跑一个道理。如果上述 2 这个情况能跑起来就可以了吧。
作者: ubuntu    时间: 2021-8-2 12:24
本帖最后由 ubuntu 于 2021-8-2 12:27 编辑

谢谢您的答疑.
1. 第一点是我笔误, 的确是gc2093 rgb camera
2. 参考#31,我要没有验证. 因为我不想做裁剪, 后面要用opencv. 所有现在我会试试在 firefly_rv1126_rv1109_uvcc_defconfig 中加入opencv的如下code试试.
3. facail-gate比较奇怪, `cam-crv1126s2u-facial_gate.mk ` , IQ配置无ov2093,难道此项目IQ不是在 `cam-crv1126s2u-facial_gate.mk `配饰的吗, 我担心我找错路径了?还是说facail-gate没有配置gc2093, 只用IR camera gc2053? 还是说CAM-CRV1126S2U 默认code不支持facail-gete? 这点希望能麻烦帮忙答疑一下?


  1. # Naf Add

  2. # OPENCV3
  3. BR2_PACKAGE_OPENCV3=y
  4. BR2_PACKAGE_OPENCV3_LIB_CALIB3D=y
  5. BR2_PACKAGE_OPENCV3_LIB_FEATURES2D=y
  6. BR2_PACKAGE_OPENCV3_LIB_FLANN=y
  7. BR2_PACKAGE_OPENCV3_LIB_HIGHGUI=y
  8. BR2_PACKAGE_OPENCV3_LIB_IMGCODECS=y
  9. BR2_PACKAGE_OPENCV3_LIB_IMGPROC=y
  10. BR2_PACKAGE_OPENCV3_LIB_ML=y
  11. BR2_PACKAGE_OPENCV3_LIB_OBJDETECT=y
  12. BR2_PACKAGE_OPENCV3_LIB_PHOTO=y
  13. BR2_PACKAGE_OPENCV3_LIB_SHAPE=y
  14. BR2_PACKAGE_OPENCV3_LIB_STITCHING=y
  15. BR2_PACKAGE_OPENCV3_LIB_SUPERRES=y
  16. BR2_PACKAGE_OPENCV3_LIB_TS=y
  17. BR2_PACKAGE_OPENCV3_LIB_VIDEOIO=y
  18. BR2_PACKAGE_OPENCV3_LIB_VIDEO=y
  19. BR2_PACKAGE_OPENCV3_LIB_VIDEOSTAB=y
  20. BR2_PACKAGE_OPENCV3_WITH_FFMPEG=y
  21. BR2_PACKAGE_OPENCV3_WITH_GSTREAMER1=y
  22. BR2_PACKAGE_OPENCV3_WITH_JASPER=y
  23. BR2_PACKAGE_OPENCV3_WITH_JPEG=y
  24. BR2_PACKAGE_OPENCV3_WITH_PNG=y
  25. BR2_PACKAGE_OPENCV3_WITH_PROTOBUF=y
  26. BR2_PACKAGE_OPENCV3_WITH_TIFF=y
  27. BR2_PACKAGE_OPENCV3_WITH_V4L=y
  28. BR2_PACKAGE_OPENCV3_WITH_WEBP=y

  29. BR2_PACKAGE_ZBAR=y
复制代码


anyway,
若参考wiki如下说明的话,若我要用CAM-CRV1126S2U, 结合我#36刚测试的第三点, facial_gate无法点亮, 故结论是一定要选`rv1126_rv1109_linux_ai_camera_release` REPO_SDK 软件包 + cam-crv1126s2u-uvcc.mk吧?
  1. 如果需要开发Facial_Gate类型应用请下载 `rv1126_rv1109_linux_release` REPO_SDK 软件包,

  2. ```bash
  3. repo init  --no-clone-bundle --repo-url https://gitlab.com/firefly-linux/git-repo.git -u https://gitlab.com/firefly-linux/manifests.git -b master -m rv1126_rv1109_linux_release.xml --no-repo-verify
  4. ```

  5. 如果需要开发AI_UVC应用请下载 `rv1126_rv1109_linux_ai_camera_release` REPO_SDK 软件包。

  6. 默认我拿到的出厂bin是AI_UV

  7. ```bash
  8. repo init  --no-clone-bundle --repo-url https://gitlab.com/firefly-linux/git-repo.git -u https://gitlab.com/firefly-linux/manifests.git -b master -m rv1126_rv1109_linux_ai_camera_release.xml --no-repo-verify
  9. ```
复制代码




复制代码


作者: 板蓝根    时间: 2021-8-2 12:44
1.第 3 点我已经说了,Facial_gate iqfile 编译完之后不是在 oem/etc/iqfile 是在 /etc/iqfile,其次一样有应用占用 VO 的。
2.编译进 opencv 应该很简单吧,只是 config 加一些配置而已,如果要自己软件开发这是必须要克服的问题,不可能有一个 config 把你所有想要的依赖都刚刚好编译进去,之后你还可能缺其他依赖,也需要这样自己加。
3.编译 buildroot ,像你所说的 Facial_gate 有编译 opencv,你完全可以把 opencv 部分 config 拷贝到 ai_uvc 的config 上用,注释都已经划分好了只是复制粘帖的问题。
作者: ubuntu    时间: 2021-8-2 14:33
板蓝根 发表于 2021-8-2 12:44
1.第 3 点我已经说了,Facial_gate iqfile 编译完之后不是在 oem/etc/iqfile 是在 /etc/iqfile,其次一样有 ...

多谢您的耐心指导.
刚做rk平台, 对您来说是入门的问题,困扰我好久, 再次感谢.
作者: ubuntu    时间: 2021-8-3 17:21
板蓝根 发表于 2021-8-2 12:44
1.第 3 点我已经说了,Facial_gate iqfile 编译完之后不是在 oem/etc/iqfile 是在 /etc/iqfile,其次一样有 ...

您好, 参考您39楼的说明:
我基于如下code build 后
  1. 2. CAM-CRV1126S2U ==> 我用wiki建议的`rv1126_rv1109_linux_ai_camera_release`+`cam-crv1126s2u-uvcc.mk` , 然后build后有要自己修改build.sh ,参考# 31
复制代码


在app/firefly_rkmedia_demo 执行./build.sh rkmedia_vi_zbar_test.c
build 报错.
  1. ./arcsoft/lib/libarcsoft_face_engine.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_local_data()@GLIBCXX_3.4.21'
复制代码


完整报错信息见:
https://paste.ubuntu.com/p/svpnMZTNy9/

请帮忙check 这份codebase 还有什么地方要修改.

ps.
参考#24 楼, 用你的修改, 在Core-1126-JD4 的codebase 上面起码能跑起来, 虽然无法扫码.

作者: 板蓝根    时间: 2021-8-3 18:06
请独立开一个主题,并且用以下命令抓取 log,贴到新主题上
bash -x ./build.sh rkmedia_vi_zbar_test.c
作者: ubuntu    时间: 2021-8-3 19:08
板蓝根 发表于 2021-8-3 18:06
请独立开一个主题,并且用以下命令抓取 log,贴到新主题上
bash -x ./build.sh rkmedia_vi_zbar_test.c

新的帖子见如下链接.

https://dev.t-firefly.com/thread-104495-1-1.html
作者: LCKway    时间: 2021-8-4 11:57
学习
作者: lxf2580    时间: 2021-9-10 14:09
你的设备可以识别带中文的二维码吗?
作者: 板蓝根    时间: 2021-9-10 15:18
lxf2580 发表于 2021-9-10 14:09
你的设备可以识别带中文的二维码吗?

没有测试过
作者: Negro旋    时间: 2021-9-10 15:32
学习
作者: Negro旋    时间: 2021-9-10 15:32
看看

作者: xinzhiling111    时间: 2021-9-26 10:31
感谢分析,学到了
作者: xinzhiling111    时间: 2021-9-26 10:34
单独的帖子发不了了,总是失败,所以只能在这问了:rv1126 firefly_rkmedia_demo编译失败
想编译下rkmedia_rtspget_vdec_rknn_venc_rtsp_test.cc实例,但是编译的时候出现以下错误:libffrtsp.so: undefined reference to `operator delete[](void*)@GLIBCXX_3.4'/../../arm-linux-gnueabihf/bin/ld: ./ffrtsp/libffrtsp.so: undefined reference to `vtable for __cxxabiv1::__si_class_type_info@CXXABI_1.3'
作者: 张文军    时间: 2021-11-17 20:14
学习中......................
作者: wx__CL2UeY    时间: 2022-7-28 20:46
如果使用的是 Debian 系统,编译的时候需要注意些什么吗?




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1