简易视频检测抽帧工具
| README.md | ||
| report.html | ||
| requirements.txt | ||
| run_detection.py | ||
| start_detection.bat | ||
| start_web_app.bat | ||
| style.css | ||
| video_results.html | ||
📋 系统简介
本系统是一个基于YOLO深度学习模型的道路损伤检测系统,支持对视频文件进行智能分析,自动识别和标注道路损伤区域。系统提供了命令行和Web界面两种使用方式,适合不同用户需求。
主要功能
- 📹 支持多种视频格式批量处理
- 🌐 友好的Web界面操作
- 📊 详细的检测报告和统计分析
- 🔧 灵活的模型管理和参数配置
- 💾 完整的检测结果保存和导出
🚀 快速开始
第一步:环境准备
-
安装Python环境
- 下载并安装 Python 3.8 或更高版本
- 下载地址:https://www.python.org/downloads/
- 安装时勾选 "Add Python to PATH"
-
安装系统依赖
# 方法一:使用安装脚本(推荐) 双击运行 install.bat # 方法二:手动安装 pip install -r requirements.txt
第二步:准备文件
-
准备视频文件
- 将需要检测的视频文件放入
input_videos文件夹 - 支持格式:
.mp4,.avi,.mov,.mkv,.wmv,.flv,.webm - 可以创建子文件夹组织视频文件
- 将需要检测的视频文件放入
-
准备检测模型
- 系统已预置
best.pt和yolov8x.pt模型 - 可通过Web界面上传自定义模型(.pt格式)
- 系统已预置
第三步:开始检测
方式一:Web界面(推荐)
# 启动Web应用
双击运行 start_web_app.bat
# 或者
python app.py
然后在浏览器中访问:http://localhost:5000
方式二:命令行批量检测
# 使用启动脚本
双击运行 start_detection.bat
# 或者
python run_detection.py
🌐 Web界面使用指南
界面布局
- 左侧面板:检测结果列表,显示历史检测记录
- 右侧面板:文件处理和配置功能
功能详解
1. 模型管理
- 上传新模型:点击上传区域选择.pt格式的YOLO模型文件
- 查看模型列表:显示所有可用模型及其信息
- 删除模型:移除不需要的模型文件
2. 视频文件管理
- 添加视频:直接将视频文件放入
input_videos文件夹 - 查看文件列表:显示当前待检测的视频文件
- 删除文件:移除单个视频文件
- 清空文件夹:一键清空所有视频文件
3. 检测配置
- 选择模型:从下拉列表中选择检测模型
- 置信度阈值:调整检测敏感度(0.1-0.9)
- 低值:检测更多目标,可能包含误检
- 高值:只检测高置信度目标,可能遗漏部分目标
4. 开始检测
- 点击"开始检测"按钮启动检测过程
- 实时显示检测进度和状态
- 显示当前处理的视频和帧数信息
5. 结果查看
- 检测报告:查看详细的检测统计和分析
- 视频结果:浏览每个视频的检测结果
- 导出功能:下载检测报告和结果数据
💻 命令行使用指南
基本命令
# 批量检测所有视频
python batch_detector.py
# 交互式检测
python run_detection.py
# 单个视频检测
python detector.py --input video.mp4 --model best.pt
参数说明
--input: 输入视频文件路径--model: 检测模型路径--conf: 置信度阈值(默认0.5)--output: 输出目录路径
📁 文件结构说明
检测系统/
├── app.py # Web应用主程序
├── batch_detector.py # 批量检测器
├── config.py # 配置文件
├── detector.py # 核心检测器
├── run_detection.py # 交互式检测脚本
├── requirements.txt # Python依赖包列表
├── install.bat # 环境安装脚本
├── start_web_app.bat # Web应用启动脚本
├── start_detection.bat # 批量检测启动脚本
├── input_videos/ # 输入视频文件夹
├── models/ # 检测模型文件夹
│ ├── best.pt # 预训练模型
│ ├── best_info.json # 模型信息
│ ├── yolov8x.pt # YOLO模型
│ └── yolov8x_info.json # 模型信息
├── output_frames/ # 检测结果输出文件夹
├── logs/ # 系统日志文件夹
├── static/ # Web界面静态资源
│ └── css/
│ └── style.css # 界面样式文件
└── templates/ # Web界面模板
├── index.html # 主页面
├── layout.html # 布局模板
├── report.html # 报告页面
└── video_results.html # 视频结果页面
🔧 配置说明
系统配置(config.py)
INPUT_FOLDER: 输入视频文件夹路径OUTPUT_FOLDER: 输出结果文件夹路径MODELS_FOLDER: 模型文件夹路径CONFIDENCE_THRESHOLD: 默认置信度阈值SUPPORTED_FORMATS: 支持的视频格式
检测参数调优
-
置信度阈值
- 道路损伤检测推荐:0.3-0.6
- 精确检测推荐:0.6-0.8
- 宽松检测推荐:0.2-0.4
-
模型选择
best.pt: 专门训练的道路损伤检测模型yolov8x.pt: 通用目标检测模型
📊 检测结果说明
输出文件结构
output_frames/
└── [检测时间戳]/
├── report.html # 检测报告
├── summary.json # 检测摘要
└── [视频名称]/
├── original/ # 原始帧
├── annotated/ # 标注帧
└── detections.json # 检测数据
检测数据格式
{
"frame_number": 123,
"timestamp": "00:02:05",
"detections": [
{
"class": "pothole",
"confidence": 0.85,
"bbox": [x, y, width, height]
}
]
}
🚨 故障排除
常见问题
-
Web界面无法访问
- 检查防火墙设置
- 确认端口5000未被占用
- 重启Web应用
-
检测速度慢
- 检查是否有GPU可用
- 降低视频分辨率
- 调整检测参数
-
内存不足
- 减少批量处理的视频数量
- 降低视频分辨率
- 关闭其他应用程序
-
模型加载失败
- 检查模型文件完整性
- 确认模型格式正确(.pt)
- 重新下载模型文件
日志查看
# 查看系统日志
type logs\app.log
# 查看检测日志
type logs\detection.log
🔄 系统更新
更新依赖包
pip install -r requirements.txt --upgrade
更新模型
- 下载新的模型文件
- 放入
models文件夹 - 通过Web界面上传或直接复制
📞 技术支持
系统要求
- 操作系统: Windows 10/11, macOS 10.14+, Ubuntu 18.04+
- Python版本: 3.8 或更高
- 内存: 建议8GB以上
- 存储: 建议10GB可用空间
- GPU: 可选,NVIDIA GPU可加速检测
性能优化建议
-
硬件优化
- 使用SSD存储提高I/O性能
- 配置NVIDIA GPU加速
- 增加系统内存
-
软件优化
- 定期清理输出文件夹
- 优化视频文件大小
- 调整检测参数
📝 更新日志
v2.0.0
- 新增Web界面
- 优化检测算法
- 改进用户体验
- 增加批量处理功能
v1.0.0
- 初始版本发布
- 基础检测功能
- 命令行界面
注意: 本系统仅供学习和研究使用,检测结果仅供参考,实际应用请结合专业判断。