799959745 发表于 2021-8-9 17:20:11

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

本帖最后由 799959745 于 2021-9-7 09:41 编辑

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

/home/lvsx/rv1126/社区帖子图/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 电源。

/home/lvsx/rv1126/社区帖子图/电源.jpg
2.接入网络
    你所用的电脑需要和 C40PL 接入同一局域网。

3.搜索设备 ip
    Windows:参看 wiki 教程使 xhlpr_app/tool/windows/RK_IPCamera_Tool-V1.1.zip 获取设备 ip。
    Linux:执行以下步骤:
sudo apt install libjson-c-dev
cd xhlpr_app/tool
./build.sh
./seek_device
效果如下:
lvsx@lvsx:~/test/tool$ ./seek_device
************************
0.help
1.seek device
2.config device
************************
please enter:1
please enter:
************************
device: 168.168.109.101
************************


4.软件部署
    设备支持网络 adb,电脑可以通过 adb 对设备进行控制和传文件
    修改配置文件 /usr/share/xhlpr_app/xhlpr_app.cfgadb connect
adb shell
# vi /usr/share/xhlpr_app/xhlpr_app.cfg
将 h:http_path=http://168.168.106.247:5000/license_plate 中 的 168.168.106.247 修改成电脑的 ip 。
修改完毕之后执行 reboot 重启

5.上位机
    Linux:# 介绍
本分支为了识别 RV1126 车牌识别做的 http 服务端和客户端。为了让 windows 和 Linux 平台都可以用,使用了跨平台语言 python。
依赖:
tkinter
flask
请使用 pip3 和 apt 自行安装以上环境。
根据电脑 ip 配置 ip_config.txt 文件的 ip 和端口
# 运行
打开两个终端:
cd xhlpr_app/pywebservice/linux
python3 draw.py
python3 Pywebservice.py
    Windows:
进入 xhlpr_app\windows\bin 目录
根据电脑 ip 配置 ip_config.txt 文件的 ip 和端口
执行:
draw.exe
Pywebservice.exe
效果
应用实现了 rtsp 推流,可以通过 vlc 或者其他 rtsp 流播放器观看效果。播放地址:rtsp://168.168.109.101:8554/H264_stream_0 这里的 IP 需要改成自己的 IP。




程序框架:


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

# 修改后
#client_file="/usr/bin/xhlpr_client"
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。
固件编译方法:
cd sdk-path/
./build.sh device/rockchip/rv1126_rv1109/aio-rv1126-xhlpr.mk
./build.sh
修改摄像头识别的分辨率:
修改 /usr/share/xhlpr_app/xhlpr_app.cfg 文件。
默认摄像头识别分辨率为 720x576:
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

修改摄像头识别分辨率为 2K:
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














张文军 发表于 2021-12-21 21:32:53

学习...................
页: [1]
查看完整版本: C40PL 适配车牌识别应用2.0(固件发布)