Firefly开源社区

C40PL 适配车牌识别应用2.0(固件发布)

189

积分

1

威望

0

贡献

技术小白

积分
189
发表于 2021-8-9 17:20:11     
本帖最后由 799959745 于 2021-9-7 09:41 编辑

介绍
  C40PL 是 Firefly 平台推出的硬件基于 Core-1126-JD4 的 AI 网络摄像头新品。 由于搭载 RV1126 平台,Soc 强悍的 VPU 视频编解码、NPU 推理和 ISP 视频处理能力让 C40PL 比普通的网络摄像头枪机拥有更广阔的应用场景。例如:车牌识别、人脸识别、People count等等。本帖将会介绍 C40PL 适配车牌识别应用的场景。
c40pl.jpg

准备
  软件:git clone https://gitlab.com/firefly-linux/external/xhlpr_app.git
  固件:AIO-RV1126_RV1109-XHLPR_IPC_2021_0906_1125。固件下载链接
  硬件:C40PL、电脑

环境搭建
  1.设备上电开机
    C40PL 只有一根外漏的网线而且支持 POE 供电,所以请使用 POE 交换机/路由器供电,或者使用出货配套的 POE 电源。

电源.jpg

  2.接入网络
    你所用的电脑需要和 C40PL 接入同一局域网。


  3.搜索设备 ip
    Windows:参看 wiki 教程使 xhlpr_app/tool/windows/RK_IPCamera_Tool-V1.1.zip 获取设备 ip。

    Linux:执行以下步骤
  1. sudo apt install libjson-c-dev
  2. cd xhlpr_app/tool
  3. ./build.sh
  4. ./seek_device
  5. 效果如下:
  6. lvsx@lvsx:~/test/tool$ ./seek_device
  7. ************************
  8. 0.help
  9. 1.seek device
  10. 2.config device
  11. ************************
  12. please enter:1
  13. please enter:
  14. ************************
  15. device: 168.168.109.101
  16. ************************
复制代码



  4.软件部署
    设备支持网络 adb,电脑可以通过 adb 对设备进行控制和传文件

    修改配置文件 /usr/share/xhlpr_app/xhlpr_app.cfg
  1. adb connect [ip]
  2. adb shell
  3. [root@RV1126_RV1109:/]# vi /usr/share/xhlpr_app/xhlpr_app.cfg
  4. 将 h:http_path=http://168.168.106.247:5000/license_plate 中 的 168.168.106.247 修改成电脑的 ip 。
  5. 修改完毕之后执行 reboot 重启
复制代码


  5.上位机
    Linux:
  1. # 介绍
  2. 本分支为了识别 RV1126 车牌识别做的 http 服务端和客户端。为了让 windows 和 Linux 平台都可以用,使用了跨平台语言 python。
  3. 依赖:
  4. tkinter
  5. flask
  6. 请使用 pip3 和 apt 自行安装以上环境。
  7. 根据电脑 ip 配置 ip_config.txt 文件的 ip 和端口
  8. # 运行
  9. 打开两个终端:
  10. cd xhlpr_app/pywebservice/linux
  11. python3 draw.py
  12. python3 Pywebservice.py
复制代码

    Windows:
  1. 进入 xhlpr_app\windows\bin 目录
  2. 根据电脑 ip 配置 ip_config.txt 文件的 ip 和端口
  3. 执行:
  4. draw.exe
  5. Pywebservice.exe
复制代码

效果
  应用实现了 rtsp 推流,可以通过 vlc 或者其他 rtsp 流播放器观看效果。播放地址:rtsp://168.168.109.101:8554/H264_stream_0 这里的 IP 需要改成自己的 IP。
compress_blue_plate.png

compress_green_plate.png

程序框架:
程序框架.png

  为了方便客户快速更换 AI 算法。将 AI 算法独立成 client 进程。client 进程与 server 进程和 http 进程之间使用共享内存通信。所以更换 AI 算法的时候只需要修改 client 进程自身和共享内存接口数据结构体即可。xhlpr_app 仓库提供了 rockx 车牌识别算法替换掉薪火车牌识别算法。修改方法如下:
  1. # 修改脚本文件如下
  2. /usr/share/xhlpr_app/start_xhlpr_app.sh

  3. # 修改后
  4. #client_file="/usr/bin/xhlpr_client"
  5. client_file="/usr/bin/rockx_client"
复制代码


FAQ
  1.运行出现算法初始化失败。

    (1)date 命令查看时间是否对应北京时间。如果不对应则联网执行 ntp_sync.sh 同步时间。
    (2)算法需要授权,如果需要使用可以联系我们获取授权码。也可以使用自己的算法,或者其他第三方算法。
  
  2.效果图展示的小窗口是什么。
    应用实现 rtsp 推流画框,而且向 "-u" 指定的服务器发送车牌识别信息,我们在电脑上捕获了识别信息绘制在窗口上以更直观的展示效果。客户只需要在 PC 端搭建一个服务器就可以获取结果。简单的 python 代码。


注:
该固件使用的是普通 SDK,支持板型 CORE-1126-JD4/CORE-1109-JD4。
源码获取:https://wiki.t-firefly.com/zh_CN/CORE-1126-JD4/Source_code.html
固件编译方法:

  1. cd sdk-path/
  2. ./build.sh device/rockchip/rv1126_rv1109/aio-rv1126-xhlpr.mk
  3. ./build.sh
复制代码
修改摄像头识别的分辨率:
  1. 修改 /usr/share/xhlpr_app/xhlpr_app.cfg 文件。
  2. 默认摄像头识别分辨率为 720x576:
  3. c:activation_conf_path=/usr/share/xhlpr_app/licSever/activation.conf licSever_path=/usr/share/xhlpr_app/licSever VideoNode=rkispp_scale1 VideoType=6 EnImageType=4 EnVideoWidth=1920 EnVideoHeight=1080 InImageType=4 OutImageType=18 InVideoWidth=720 InVideoHeight=576 OutVideoWidth=720 OutVideoHeight=576

  4. 修改摄像头识别分辨率为 2K:
  5. c:activation_conf_path=/usr/share/xhlpr_app/licSever/activation.conf licSever_path=/usr/share/xhlpr_app/licSever VideoNode=rkispp_scale1 VideoType=6 EnImageType=4 EnVideoWidth=1920 EnVideoHeight=1080 InImageType=4 OutImageType=18 InVideoWidth=2688 InVideoHeight=1520 OutVideoWidth=2688 OutVideoHeight=1520
复制代码















回复

使用道具 举报

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

本版积分规则

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