Firefly开源社区

12
发表新贴

RV1126 基于 rockx 实现的 isp 摄像头动态识别 demo

258

积分

1

威望

0

贡献

技术达人

Rank: 2

积分
258
发表于 2021-9-2 20:40:01     
本帖最后由 799959745 于 2021-9-4 16:31 编辑

rockx 可以说是最简单上手模型。目前写了一些好玩的模型应用,识别效果也都还不错。有兴趣的朋友可以上手玩玩。SDK 代码仓库已经更新。想玩的朋友可以直接按照教程上手。

# 使用手册
* demo 目前只支持 CORE-1126-JD4/CORE-1109-JD4 板型。不支持智能双目摄像头模组 CAM-C1126S2U/CAM-C1109S2U

编译 mk 文件选择

  1. ./build.sh device/rockchip/rv1126_rv1109/aio-rv1126-xhlpr.mk
复制代码


* 由于默认 mk 文件会自动编译 XHLPR_APP 车牌识别。对应的 buildroot 配置文件 sdk/buildroot/configs/firefly_rv1126_rv1109_xhlpr_defconfig
如不需要 XHLPR_APP 请保证 buildroot/configs/firefly_rv1126_rv1109_xhlpr_defconfig 已经关闭 XHLPR_APP 编译配置
  1. BR2_PACKAGE_XHLPR_APP=n
复制代码

* 请保证 buildroot 已经打开以下配置
  1. # OPENCV3
  2. BR2_PACKAGE_OPENCV3=y
  3. BR2_PACKAGE_OPENCV3_LIB_CALIB3D=y
  4. BR2_PACKAGE_OPENCV3_LIB_FEATURES2D=y
  5. BR2_PACKAGE_OPENCV3_LIB_FLANN=y
  6. BR2_PACKAGE_OPENCV3_LIB_HIGHGUI=y
  7. BR2_PACKAGE_OPENCV3_LIB_IMGCODECS=y
  8. BR2_PACKAGE_OPENCV3_LIB_IMGPROC=y
  9. BR2_PACKAGE_OPENCV3_LIB_ML=y
  10. BR2_PACKAGE_OPENCV3_LIB_OBJDETECT=y
  11. BR2_PACKAGE_OPENCV3_LIB_PHOTO=y
  12. BR2_PACKAGE_OPENCV3_LIB_SHAPE=y
  13. BR2_PACKAGE_OPENCV3_LIB_STITCHING=y
  14. BR2_PACKAGE_OPENCV3_LIB_SUPERRES=y
  15. BR2_PACKAGE_OPENCV3_LIB_TS=y
  16. BR2_PACKAGE_OPENCV3_LIB_VIDEOIO=y
  17. BR2_PACKAGE_OPENCV3_LIB_VIDEO=y
  18. BR2_PACKAGE_OPENCV3_LIB_VIDEOSTAB=y
  19. BR2_PACKAGE_OPENCV3_WITH_FFMPEG=y
  20. BR2_PACKAGE_OPENCV3_WITH_GSTREAMER1=y
  21. BR2_PACKAGE_OPENCV3_WITH_JASPER=y
  22. BR2_PACKAGE_OPENCV3_WITH_JPEG=y
  23. BR2_PACKAGE_OPENCV3_WITH_PNG=y
  24. BR2_PACKAGE_OPENCV3_WITH_PROTOBUF=y
  25. BR2_PACKAGE_OPENCV3_WITH_TIFF=y
  26. BR2_PACKAGE_OPENCV3_WITH_V4L=y
  27. BR2_PACKAGE_OPENCV3_WITH_WEBP=y

  28. # firefly_rockx_demo
  29. BR2_PACKAGE_FIREFLY_ROCKX_DEMO=y
复制代码

* PC Linux vlc 软件预览识别画面。需要将设备 ip 对应到链接。
  1. vlc rtsp://<设备ip>:8554/H264_stream_0
复制代码


* 可直接在浏览器输入设备 ip 即可预览识别画面(由于播放器的原因,可能会有些许卡顿)。默认账号和密码登录网页:

  1. 账号:admin
  2. 密码:admin
复制代码
* 修改识别分辨率为 2K。修改文件 rockx_app.cfg :
  1. 修改前:c:activation_conf_path=/usr/share/firefly_rockx_demo/licSever/activation.conf licSever_path=/usr/share/firefly_rockx_demo/licSever VideoNode=rkispp_scale1 VideoType=6 EnImageType=4 EnVideoWidth=1920 EnVideoHeight=1080 InImageType=4 OutImageType=18 InVideoWidth=720 InVideoHeight=576 OutVideoWidth=720 OutVideoHeight=576

  2. 修改后:c:activation_conf_path=/usr/share/firefly_rockx_demo/licSever/activation.conf licSever_path=/usr/share/firefly_rockx_demo/licSever VideoNode=rkispp_scale1 VideoType=6 EnImageType=4 EnVideoWidth=1920 EnVideoHeight=1080 InImageType=4 OutImageType=18 InVideoWidth=2688 InVideoHeight=1520 OutVideoWidth=2688 OutVideoHeight=1520
复制代码

* 请确保 VI 接口(摄像头)没有被占用。请尝试执行:RkLunch-stop.sh 关闭摄像头服务。
* 手动参考示例执行 demo。或根据需求修改以下脚本然后执行启动。
  1. # 默认启动车牌识别
  2. /usr/share/firefly_rockx_demo/start_rockx_app.sh
复制代码

* 手动执行示例 demo 则需要手动执行网页推流(不执行则网页无法预览识别结果)
  1. # 只推流视频命令
  2. ffmpeg -f rtsp -rtsp_transport tcp -i "rtsp://127.0.0.1:8554/H264_stream_0" -c  copy -f flv "rtmp://127.0.0.1/live/mainstream" &

  3. # 同时推流视频和音频命令(目前只有运行示例 rockx_face_attribute 的 rockx_face_attribute_aenc_venc_rtsp_service 能执行以下命令)
  4. ffmpeg -f rtsp -rtsp_transport tcp -i "rtsp://127.0.0.1:8554/H264_stream_0" -i "rtsp://127.0.0.1:8555/audio_stream_0" -c  copy -f flv "rtmp://127.0.0.1/live/mainstream" &
复制代码

# 示例

* rockx_carplate
# 说明
* 车牌识别
# 代码路径
* app/firefly_rockx_demo/
# 快速使用

  1. rockx_carplate_service -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
  2. rockx_carplate_client -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
复制代码
* demo 效果
车牌识别.png


* 终端打印
车牌识别终端结果.png


* rockx_face_attribute
# 说明
* 人脸特征点定位(只推流视频,无音频推流)
# 代码路径
* app/firefly_rockx_demo/
# 快速使用
  1. rockx_face_attribute_service -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
  2. rockx_face_attribute_client -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
复制代码
* demo 效果
人脸属性识别.png


* rockx_face_attribute
# 说明
* 人脸特征点定位(同时推流音频和视频)
# 代码路径
* app/firefly_rockx_demo/
# 快速使用
  1. rockx_face_attribute_aenc_venc_rtsp_service -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
  2. rockx_face_attribute_client -c /usr/share/firefly_rockx_demo/rockx_app.cfg &

  3. # ffmpeg 命令需要修改成以下命令
  4. ffmpeg -f rtsp -rtsp_transport tcp -i "rtsp://127.0.0.1:8554/H264_stream_0" -i "rtsp://127.0.0.1:8555/audio_stream_0" -c  copy -f flv "rtmp://127.0.0.1/live/mainstream" &
复制代码
* demo 效果
人脸属性识别.png


* rockx_face_landmark
# 说明
* 人脸关键点识别
# 代码路径
* app/firefly_rockx_demo/
# 快速使用
  1. rockx_face_landmark_service -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
  2. rockx_face_landmark_client -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
复制代码
* demo 效果
人脸关键点定位.png


* rockx_face_masks_detection
# 说明
* 人脸口罩检测
# 代码路径
* app/firefly_rockx_demo/
# 快速使用
  1. rockx_face_masks_detection_service -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
  2. rockx_face_masks_detection_client -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
复制代码
* demo 效果
不戴口罩
人脸口罩识别_无口罩.png


戴口罩
人脸口罩识别_有口罩.png


* rockx_face_recognition
# 说明
* 人脸识别,需要手动输入图片。图片名字即识别显示 id。不支持中文 id 显示。
# 代码路径
* app/firefly_rockx_demo/
# 快速使用
  1. rockx_face_recognition_service -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
  2. rockx_face_recognition_client -c /usr/share/firefly_rockx_demo/rockx_app.cfg -i /path/to/id.jpg &
复制代码
* demo 效果
识别失败
人脸识别_识别失败.png


识别成功
人脸识别_识别成功.png


* rockx_head_detection
# 说明
* 人头检测
# 代码路径
* app/firefly_rockx_demo/
# 快速使用
  1. rockx_head_detection_service -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
  2. rockx_head_detection_client -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
复制代码
* demo 效果
人头识别.png



* rockx_object_track
# 说明
* 人车物检测与追踪
# 代码路径
* app/firefly_rockx_demo/
# 快速使用
  1. rockx_object_track_service -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
  2. rockx_object_track_client -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
复制代码
* demo 效果
人车物识别与追踪.png


* rockx_person_detection
# 说明
* 人体识别
# 代码路径
* app/firefly_rockx_demo/
# 快速使用
  1. rockx_person_detection_service -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
  2. rockx_person_detection_client -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
复制代码
* demo 效果
人体识别.png


* rockx_pose_body
# 说明
* 身体骨骼关键点定位
# 代码路径
* app/firefly_rockx_demo/
# 快速使用
  1. rockx_pose_body_service -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
  2. rockx_pose_body_client -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
复制代码
* demo 效果
身体骨骼关键点识别.png


身体骨骼关键点识别2.png


* rockx_pose_finger
# 说明
* 手指关键点定位
# 代码路径
* app/firefly_rockx_demo/
# 快速使用
  1. rockx_pose_finger_service -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
  2. rockx_pose_finger_client -c /usr/share/firefly_rockx_demo/rockx_app.cfg &
复制代码
* demo 效果
手指关键点定位.png





回复

使用道具 举报

230

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
230
发表于 2021-9-22 14:57:26     
赞, 楼主颜值爆表, 希望以后多发干货, 顺便多爆照哈.
欢迎与我进行rv1109 rv1126 方面的技术交流.
我的QQ: 712715984
我擅长的: 手机平台的camera driver isp
回复

使用道具 举报

230

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
230
发表于 2021-9-22 17:06:42     
build fail, 我用的`rv1126_rv1109_linux_ai_camera_release` REPO_SDK 软件包。
2021-09-22T15:53:09 ERROR: /opt/ws/AI_UVC_CAM-CRV1126S2U/buildroot/../app/rkaiq_switch_mode does not exist

请问您用的下面哪个软件包呢?
如果需要开发Facial_Gate类型应用请下载 `rv1126_rv1109_linux_release` REPO_SDK 软件包,

```bash
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
```

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


```bash
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
```
欢迎与我进行rv1109 rv1126 方面的技术交流.
我的QQ: 712715984
我擅长的: 手机平台的camera driver isp
回复

使用道具 举报

258

积分

1

威望

0

贡献

技术达人

Rank: 2

积分
258
发表于 2021-9-23 10:46:07     
ubuntu 发表于 2021-9-22 17:06
build fail, 我用的`rv1126_rv1109_linux_ai_camera_release` REPO_SDK 软件包。
2021-09-22T15:53:09 ERR ...

仔细看一下说明:不支持智能双目摄像头模组 CAM-C1126S2U/CAM-C1109S2U
应该使用rv1126_rv1109_linux_release
回复

使用道具 举报

230

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
230
发表于 2021-9-23 14:18:54     
收到, 谢谢.
欢迎与我进行rv1109 rv1126 方面的技术交流.
我的QQ: 712715984
我擅长的: 手机平台的camera driver isp
回复

使用道具 举报

100

积分

0

威望

0

贡献

技术小白

积分
100
发表于 2021-9-23 16:01:43     
我也遇到同样的问题了,按照wiki的提示编译固件提示进行的,然后编译时候说找不到/apprkaiq_switch_mode。这个怎么解呢?
回复

使用道具 举报

100

积分

0

威望

0

贡献

技术小白

积分
100
发表于 2021-9-23 16:04:52     

这个问题,你那里解决了吗?现在默认就是带这个ai的,但是app里却没有更新到。
回复

使用道具 举报

258

积分

1

威望

0

贡献

技术达人

Rank: 2

积分
258
发表于 2021-9-23 16:06:26     
leo99 发表于 2021-9-23 16:01
我也遇到同样的问题了,按照wiki的提示编译固件提示进行的,然后编译时候说找不到/apprkaiq_switch_mode。 ...

用rv1126_rv1109_linux_release.xml编译就不会出问题
回复

使用道具 举报

100

积分

0

威望

0

贡献

技术小白

积分
100
发表于 2021-9-23 16:41:08     
799959745 发表于 2021-9-23 16:06
用rv1126_rv1109_linux_release.xml编译就不会出问题

您好,谢谢回复。我是国内用户,使用的是【Docs » 源码编译】方式一进行sdk更新的,没有您说的这个文件呢?https://wiki.t-firefly.com/zh_CN/CORE-1126-JD4/Source_code.html
回复

使用道具 举报

258

积分

1

威望

0

贡献

技术达人

Rank: 2

积分
258
发表于 2021-9-24 08:52:48     
image.png
更新一下
回复

使用道具 举报

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

本版积分规则

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