YOLO图像识别系统
基于YOLO的图像识别系统,结合Flask、Bootstrap和SQLite,提供完整的图像检测、数据管理和用户交互功能。

主要功能
1. 图像识别与处理
- 图像上传: 支持拖拽或文件选择方式上传单张或多张图片
- 实时目标检测: 集成YOLOv8模型,自动识别图像中的目标(人、车辆、动物等)
- 结果可视化 : 展示识别后的图像,生成结构化数据列表

2. 实时视频检测 ⭐ 功能
- 摄像头检测: 支持通过摄像头进行实时视频流检测
- 视频文件检测: 支持上传视频文件进行逐帧检测
- 测试视频: 提供测试视频,方便功能验证
- 实时统计: 实时显示检测到的对象数量和分类统计
- MJPEG流: 使用高效的视频流传输协议,减少延迟
- 性能优化 : 每3帧检测一次,降低CPU占用


3. 数据存储与管理
- 记录存储: 使用SQLite数据库保存识别元数据
- 历史查询: 按时间或目标类别检索历史记录
- 用户管理 : 用户注册与登录,识别历史与账户关联

4. 用户界面与交互
- 响应式界面: Bootstrap构建,适配PC与移动端
- 操作反馈: 实时显示识别进度与状态提示
- 结果导出: 支持将检测结果以CSV格式导出
技术栈
- 后端: Flask 3.0.0
- 数据库: SQLite
- AI模型: YOLOv8 (Ultralytics)
- 前端: Bootstrap 5.3.0 + Bootstrap Icons
- 图像处理: OpenCV, Pillow
检测模式说明
系统支持两种检测模式:
1. 模拟模式(默认)
- 无需安装torch和ultralytics
- 使用图像边缘检测生成演示结果
- 检测框显示为蓝色,标注显示"[DEMO]"
- 适合演示、测试和开发环境
2. 真实YOLO模式
- 需要安装torch(约900MB)和ultralytics
- 使用真实的YOLOv8模型进行目标检测
- 检测框显示为红色,标注显示真实类别
- 适合生产环境和实际应用
模式切换:
- 系统自动检测依赖,未安装torch时自动使用模拟模式
- 安装torch后自动切换到真实YOLO模式
- 无需修改代码
3. 使用系统
图像检测:
- 注册账户: 首次使用需要注册用户账户
- 登录系统: 使用注册的账户登录
- 上传图片: 点击"上传图片"按钮,选择或拖拽图片
- 查看结果: 系统自动识别并显示检测结果
- 历史记录: 在仪表盘查看所有识别历史
- 统计分析: 查看统计数据和类别分布
- 导出数据 : 导出检测结果为CSV文件

实时视频检测 ⭐:
- 点击导航栏的"实时检测"
- 选择视频源类型:
- 摄像头: 使用连接的摄像头设备(需要硬件支持)
- 视频文件: 上传本地视频文件进行检测
- 测试视频: 使用系统提供的测试视频验证功能
- 配置参数(如摄像头ID、选择视频)
- 点击"开始检测"
- 实时查看检测结果和统计信息
- 点击"停止检测"结束
支持的图像格式
- PNG
- JPG/JPEG
- GIF
- BMP
- WEBP
检测的类别
YOLOv8模型可以检测80个类别,包括但不限于:
- 人 (person)
- 车辆 (car, bus, truck, motorcycle, bicycle)
- 动物 (dog, cat, horse, cow, sheep, bird)
- 物品 (chair, couch, bottle, cup, phone, laptop)