一、核心内容概述
1.1 项目背景与目标
随着城市电动车保有量突破3.5亿辆,违规停放问题已成为影响交通秩序和公共安全的重要挑战。传统固定监控覆盖范围有限,无人机应用受城市环境制约,智能停车桩部署成本高昂,亟需一种高效、低功耗的智能化解决方案——恐眼照你团队
本系统基于RDK X3开发板与TogetheROS.Bot平台,构建了一套集环境感知、智能识别、自动导航于一体的电动车违停检测系统,旨在实现:
固定区域内的自主巡逻与导航
电动车违停行为的实时检测与判断
违规车辆的车牌识别与信息记录
人机交互语音提示功能
1.2 系统工作流程
环境建图与导航:通过N10激光雷达获取点云数据,利用Gmapping算法完成区域地图构建,基于Nav2框架实现A*算法路径规划。
目标检测与 语义分割:使用YOLOv5算法识别电动车及障碍物,结合Mobilenet-UNet语义分割模型区分停车区域与禁停区域。
违停判断逻辑:通过检测框底部线段与停车线的相交关系,计算区域内占比判断违停状态,支持消防通道等禁停区域检测。
数据交互与记录:通过Socket通信将违规车辆图像传输至PC端,利用HyperLPR3实现车牌识别并记录至Excel。
二、创新点解析
2.1 边缘计算部署创新
低功耗高性能架构:基于旭日X3开发板(5T运算量,低功耗)部署多模型,突破传统CPU+GPU架构功耗瓶颈,为边缘设备违停检测提供新思路。
多模型协同优化:在单一开发板上集成YOLOv5目标检测、Mobilenet-UNet语义分割,通过模型轻量化处理实现实时推理(检测帧率≥15FPS)。
2.2 算法与系统设计创新
动态区域检测策略:根据小车巡逻路径(默认左侧行驶)优化检测区间,聚焦图像右侧目标,减少干扰并提升检测效率。
违停判断 算法 创新:针对机器人低视角特性,提出基于检测框底部线段的相交比计算方法,相比传统交并比算法更适应实际场景。
全流程自动化方案:从环境建图、目标检测到车牌识别形成闭环,减少人工干预,系统误检率<5%,漏检率<3%。
2.3 工程化应用创新
可移植数据集构建:收集涵盖小区、写字楼、商圈等多场景数据,模型可快速迁移至不同应用环境。
低成本硬件方案:采用STM32F407VET6控制板与N10激光雷达组合,硬件成本较同类方案降低40%。
三、硬件系统架构
3.1 核心硬件组件
组件名称 型号 功能描述
主控开发板 RDK X3 运行AI模型,处理传感器数据与控制逻辑
控制板 STM32F407VET6 电机控制,姿态数据采集
激光雷达 N10 环境扫描,点云数据获取,建图导航
语音模块 Audio Driver HAT 语音指令接收与播报(ES7210编码+ES8156解码)
姿态传感器 MPU6050 采集小车加速度与角速度数据
电机驱动 AT8236 直流电机控制(支持6A峰值电流)
动力系统 JGB37-520 直流减速电机(带霍尔编码器速度反馈)
3.2 硬件连接示意图
RDK X3开发板 ←串口→ STM32F407VET6控制板
↖USB→ N10激光雷达
↖USB→ 摄像头
↖I2C→ Audio Driver HAT语音模块
STM32F407VET6 ←I2C→ MPU6050
←PWM→ AT8236电机驱动板 ←→ 直流减速电机
四、软件系统设计
4.1 系统架构分层
4.1.1 感知层
环境感知:N10激光雷达点云数据采集(扫描范围360°,测距精度±3cm)
视觉感知:USB摄像头图像采集(1080P/30FPS),YOLOv5目标检测(电动车、障碍物识别)
姿态感知:MPU6050六轴数据采集(加速度±16g,角速度±2000°/s)
4.1.2 控制层
建图导航:
Gmapping建图核心流程
import rospy
from sensor_msgs.msg import LaserScan
from nav_msgs.msg import OccupancyGrid
def laser_callback(scan):
# 激光雷达数据预处理
processed_data = preprocess_laser(scan)
# 发布至Gmapping节点
gmapping_pub.publish(processed_data)
def map_callback(map_data):
# 地图保存逻辑
save_occupancy_grid(map_data)
导航控制:Nav2框架集成A*算法,支持目标点导航与路径规划
违停判断:基于语义分割结果与YOLOv5检测框的坐标运算
4.1.3 应用层
人机交互:语音指令解析(关键词识别)与播报(TTS合成)
数据管理:Socket通信(TCP协议)实现图像传输,HyperLPR3车牌识别,Excel记录系统
4.2 算法核心模块
4.2.1 YOLOv5目标检测
YOLOv5推理流程(简化)
import torch
加载模型
model = torch.hub.load('ultralytics/yolov5', 'custom', path='电动车检测模型.pt')
def detect_bicycle(img):
# 图像预处理
results = model(img)
# 过滤电动车类别(class=0)
bicycle_detections = results.xyxy[0][results.xyxy[0][:, 5] == 0]
return bicycle_detections
4.2.2 语义分割与违停判断
语义分割与违停判断逻辑
def is_parking_violation(bicycle_box, seg_mask):
# 获取停车线区域
parking_lines = get_parking_lines(seg_mask)
if not parking_lines:
return True # 无停车线时视为违停
# 提取检测框底部线段
bottom_line = get_bottom_line(bicycle_box)
# 计算线段与停车线交点
intersections = line_intersection(bottom_line, parking_lines)
if intersections:
# 计算区域内占比
in_ratio = calculate_ratio(intersections, bottom_line)
return in_ratio < 0.5 # 区域内占比<50%视为违停
else:
# 延长线检测逻辑
extended_line = extend_line(bottom_line)
cross_count = count_crossings(extended_line, parking_lines)
return cross_count < 1 # 穿越次数<1视为违停
五、系统性能与应用场景
5.1 关键性能指标
检测准确率:电动车识别准确率92.3%,违停判断准确率89.7%
响应时间:从检测到完成车牌记录全程<10秒
续航能力:搭载12V/5Ah锂电池,连续巡逻时间≥4小时
环境适应性:支持0.5m/s以下风速、-10℃~40℃温度环境
5.2 典型应用场景
小区/校园管理:自动巡检消防通道、楼道口等禁停区域
商业综合体:规范电动车停放秩序,优化出入口通行效率
智慧城市管理:为城管部门提供违停数据支持,辅助执法决策