车牌识别

节点基于 YOLO 检测车牌位置,并使用 HyperLPR3 对裁剪区域进行读牌;在图像上叠加【原始车牌文本 + 置信度】并发布结构化结果。

内置节点 license_plate_recognition 订阅 /camera_raw,识别并可视化后发布图像与消息结果(未安装 hyperlpr3 时仅输出检测框)。

启动命令

shell
ros2 run pycodevision license_plate_recognition

该节点默认绑定可以直接通过平台节点管理菜单启动。

节点参数说明

参数名 描述 类型 默认值 说明
det_model_path 车牌检测模型文件路径 String best.pt 支持 .onnx 或 .pt/.pth;相对路径将基于环境变量 PYCODEBOT_HOME 拼接到 src/model/license_plate_recognition,必须是存在的“文件”,否则报错退出。
input_topic 订阅主题 String camera/image_raw 输入图像主题;可改为压缩图像主题(例如 /camera_jpeg)
input_encoding 输入图像编码 String bgr8 仅支持 bgr8 或 jpeg;据此自动选择订阅消息类型(sensor_msgs/Image 或 sensor_msgs/CompressedImage)
output_fps 发布帧率 int 6 定时器发布频率(Hz),影响图像/消息的发送速率
output_quality JPEG 压缩质量 int 60 范围 [0~100];仅对发布的压缩图像生效(值越大越清晰但更大)
output_image_close 关闭图像发布 bool false false:发布处理后图像到 /{name}/image_jpeg;true:仅发布文字消息

参数使用方法

shell
# 订阅压缩图像输入(来自 camera_jpeg),并指定检测模型与降低输出帧率、画质 ros2 run pycodevision license_plate_recognition --ros-args \ -p det_model_path:=best.onnx \ -p input_topic:=/camera_jpeg \ -p input_encoding:=jpeg \ -p output_fps:=5 \ -p output_quality:=50 # 仅发布文字消息(不发布处理后图像) ros2 run pycodevision license_plate_recognition --ros-args -p output_image_close:=true

视频查看

点击“车牌识别”节点,进入该节点通信页面。

订阅图像输出示意

点击发布主题“/license_plate_recognition/image_jpeg”中的“订阅”按钮,类型默认选择“图片”,弹出视频显示窗口;或点击发布主题“/license_plate_recognition/message”选择“文本”,即可查看发布消息。

消息输出示意