# AI-Driver **Repository Path**: leonarial/ai-driver ## Basic Information - **Project Name**: AI-Driver - **Description**: 基于联邦学习的自动驾驶目标检测系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-16 - **Last Updated**: 2025-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自动驾驶目标检测系统 基于YOLOv5的联邦学习目标检测系统,实现了数据隐私保护下的分布式训练和在线目标检测功能。 ## 项目结构 ``` ├── web/ # Web应用目录 │ ├── app.py # Web服务器应用 │ ├── templates/ # 前端模板 │ │ ├── index.html # 检测系统主页面 │ │ ├── login.html # 用户登录页面 │ │ └── dashboard.html # 数据分析面板 │ ├── static/ # 静态资源目录 │ │ └── images/ # 图表和图像资源 │ ├── schema.sql # 数据库结构定义 │ └── results/ # 检测结果存储目录 ├── models/ # 模型存储目录 │ ├── client_A.pt # 客户端A的模型 │ ├── client_B.pt # 客户端B的模型 │ ├── client_C.pt # 客户端C的模型 │ └── client_D.pt # 客户端D的模型 ├── yolov5/ # YOLOv5核心代码 ├── train.py # 训练脚本 ├── evaluate.py # 模型评估脚本 ├── data_partition.py # 数据预处理脚本 ├── client.py # 客户端脚本 └── server.py # 服务器脚本 ``` ## 环境要求 - Python 3.8+ - PyTorch 1.7+ - Flask - MySQL数据库 - YOLOv5 环境 - OpenCV - 其他依赖项:socket, json, struct, subprocess, shutil, werkzeug ## 功能特性 ### 1. 数据预处理 - KITTI数据集分割 - Non-IID数据分布 - 自动标签格式转换(KITTI到YOLO) - 训练集和验证集自动划分 ### 2. 联邦学习训练 - 支持多客户端独立训练 - 自适应批次大小 - 余弦学习率调度 - 标签平滑 - 早停机制 - 定期模型保存 ### 3. 在线检测系统 - 用户认证与登录系统 - 支持图片和视频文件上传 - 拖拽式文件上传界面 - 多模型并行检测 - 实时显示检测结果 - 支持检测结果下载 - 历史记录管理 ### 4. 数据分析面板 - 模型性能可视化 - PR曲线、F1曲线分析 - P曲线、R曲线分析 - 混淆矩阵展示 - 检测结果统计 ## 使用说明 ### 1. 数据准备 ```bash python data_partition.py ``` - 自动划分训练集和验证集(默认比例0.8:0.2) - 为每个客户端生成数据集配置文件 - 自动转换标签格式 ### 2. 模型训练 ```bash python train.py ``` 训练参数: - batch-size: -1(自适应) - epochs: 100 - 学习率策略:余弦调度 - 标签平滑:0.05 - 早停耐心值:10 - 保存周期:每20轮 ### 3. 模型评估 ```bash # 无需运行,集成在服务器脚本中 python evaluate.py ``` 评估参数: - batch-size: 32 - conf-thres: 0.001 - iou-thres: 0.65 - 支持多模型同时评估 ### 4. 联邦学习服务 ```bash # 启动服务器 python server.py # 启动客户端(新终端) python client.py ``` 网络配置: - 服务器地址:localhost - 端口:12345 ### 5. Web检测系统 1. 初始化数据库: ```bash mysql -u root -p < web/schema.sql ``` 2. 启动服务: ```bash cd web python app.py ``` 3. 访问系统: ``` http://localhost:5000 ``` 4. 登录系统: - 默认管理员账号:admin - 默认密码:admin123 - 或注册新用户 5. 使用功能: - 文件上传:支持拖拽或点击选择 - 支持格式:jpg, jpeg, png, bmp, mp4, avi, mov - 文件大小:最大50MB - 结果查看:自动显示检测结果 - 结果下载:支持检测结果文件下载 - 数据分析:点击顶部导航栏切换到数据分析面板 ## 系统配置 ### 目录配置 - YOLO路径:/root/Driver/yolov5 - 模型存储:/root/Driver/models - 检测结果:/root/Driver/web/results ### 服务器配置 - Web服务器:127.0.0.1:5000 - 联邦学习服务器:localhost:12345 ### 数据库配置 - 数据库名:driver_auth - 用户表:users - 默认管理员:admin