RDK X3出马,YOLOv5拍你违停没商量!

一、核心内容概述

1.1 项目背景与目标

随着城市电动车保有量突破3.5亿辆,违规停放问题已成为影响交通秩序和公共安全的重要挑战。传统固定监控覆盖范围有限,无人机应用受城市环境制约,智能停车桩部署成本高昂,亟需一种高效、低功耗的智能化解决方案——恐眼照你团队

本系统基于RDK X3开发板与TogetheROS.Bot平台,构建了一套集环境感知、智能识别、自动导航于一体的电动车违停检测系统,旨在实现:

  • 固定区域内的自主巡逻与导航

  • 电动车违停行为的实时检测与判断

  • 违规车辆的车牌识别与信息记录

  • 人机交互语音提示功能

1.2 系统工作流程

  1. 环境建图与导航:通过N10激光雷达获取点云数据,利用Gmapping算法完成区域地图构建,基于Nav2框架实现A*算法路径规划。

  2. 目标检测与 语义分割:使用YOLOv5算法识别电动车及障碍物,结合Mobilenet-UNet语义分割模型区分停车区域与禁停区域。

  3. 违停判断逻辑:通过检测框底部线段与停车线的相交关系,计算区域内占比判断违停状态,支持消防通道等禁停区域检测。

  4. 数据交互与记录:通过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 典型应用场景

  • 小区/校园管理:自动巡检消防通道、楼道口等禁停区域

  • 商业综合体:规范电动车停放秩序,优化出入口通行效率

  • 智慧城市管理:为城管部门提供违停数据支持,辅助执法决策