上传文件至 /

This commit is contained in:
Wang_Run_Ze 2025-06-27 10:48:48 +08:00
parent 0f10187716
commit 0ed9a0db0d
5 changed files with 315 additions and 0 deletions

84
install.bat Normal file
View File

@ -0,0 +1,84 @@
@echo off
chcp 65001 >nul
cd /d "%~dp0"
echo ========================================
echo 道路损伤检测系统 - 环境安装脚本
echo ========================================
echo.
echo 正在检查Python环境...
python --version >nul 2>&1
if errorlevel 1 (
echo 错误: 未找到Python环境
echo 请先安装Python 3.8或更高版本
echo 下载地址: https://www.python.org/downloads/
pause
exit /b 1
)
echo ✓ Python环境检查通过
python --version
echo.
echo 正在检查pip...
pip --version >nul 2>&1
if errorlevel 1 (
echo 错误: pip未找到
echo 请重新安装Python并确保包含pip
pause
exit /b 1
)
echo ✓ pip检查通过
echo.
echo 正在升级pip...
python -m pip install --upgrade pip
echo.
echo 正在安装项目依赖...
echo 这可能需要几分钟时间,请耐心等待...
echo.
pip install -r requirements.txt
if errorlevel 1 (
echo.
echo 安装过程中出现错误,尝试使用国内镜像源...
echo.
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
)
echo.
echo 正在创建必要的文件夹...
if not exist "input_videos" mkdir "input_videos"
if not exist "output_frames" mkdir "output_frames"
if not exist "logs" mkdir "logs"
echo ✓ 文件夹创建完成
echo.
echo 正在测试安装...
python -c "import cv2, numpy, ultralytics; print('✓ 所有依赖库安装成功')"
if errorlevel 1 (
echo ✗ 依赖库测试失败
echo 请检查安装过程中的错误信息
pause
exit /b 1
)
echo.
echo ========================================
echo 安装完成!
echo ========================================
echo.
echo 使用说明:
echo 1. 将视频文件放入 input_videos 文件夹
echo 2. 双击 start_detection.bat 开始检测
echo 3. 或者运行: python run_detection.py
echo.
echo 详细说明请查看 README.md 文件
echo.
pause

33
requirements.txt Normal file
View File

@ -0,0 +1,33 @@
# 视频检测系统依赖包
# 核心依赖
ultralytics>=8.0.0
opencv-python>=4.5.0
numpy>=1.21.0
Pillow>=8.0.0
# 数据处理
pandas>=1.3.0
# 进度显示
tqdm>=4.62.0
# 配置文件处理
PyYAML>=6.0
# 图像处理增强
scipy>=1.7.0
matplotlib>=3.4.0
# GPU支持 (可选)
# torch>=1.9.0
# torchvision>=0.10.0
# 系统工具
psutil>=5.8.0
# Web应用框架
flask>=2.0.0
werkzeug>=2.0.0
flask-wtf>=1.0.0
python-dotenv>=0.15.0

143
run_detection.py Normal file
View File

@ -0,0 +1,143 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
视频检测系统启动脚本
简化的用户界面方便快速开始检测
"""
import os
import sys
from pathlib import Path
from batch_detector import BatchVideoDetector
from config import config
def check_requirements():
"""检查运行环境"""
try:
import cv2
import numpy as np
from ultralytics import YOLO
print("✓ 所有依赖库已安装")
return True
except ImportError as e:
print(f"✗ 缺少依赖库: {e}")
print("请运行: pip install ultralytics opencv-python")
return False
def check_model():
"""检查模型文件"""
model_path = config.get_model_path()
if Path(model_path).exists():
print(f"✓ 模型文件存在: {model_path}")
return True
else:
print(f"✗ 模型文件不存在: {model_path}")
print("请检查模型路径配置")
return False
def setup_folders():
"""设置文件夹结构"""
config.create_folders()
input_folder = Path(config.INPUT_FOLDER)
output_folder = Path(config.OUTPUT_FOLDER)
print(f"✓ 输入文件夹: {input_folder.absolute()}")
print(f"✓ 输出文件夹: {output_folder.absolute()}")
if not any(input_folder.iterdir()) if input_folder.exists() else True:
print(f"⚠ 输入文件夹为空,请将视频文件放入: {input_folder.absolute()}")
return False
return True
def get_user_settings():
"""获取用户设置"""
print("\n=== 检测参数设置 ===")
# 置信度设置
while True:
try:
confidence_input = input(f"请输入置信度阈值 (0.1-0.9, 默认 {config.CONFIDENCE_THRESHOLD}): ").strip()
if not confidence_input:
confidence = config.CONFIDENCE_THRESHOLD
break
confidence = float(confidence_input)
if 0.1 <= confidence <= 0.9:
break
else:
print("置信度必须在 0.1 到 0.9 之间")
except ValueError:
print("请输入有效的数字")
# 输入文件夹
input_folder = input(f"输入视频文件夹 (默认 '{config.INPUT_FOLDER}'): ").strip()
if not input_folder:
input_folder = config.INPUT_FOLDER
# 输出文件夹
output_folder = input(f"输出图片文件夹 (默认 '{config.OUTPUT_FOLDER}'): ").strip()
if not output_folder:
output_folder = config.OUTPUT_FOLDER
return confidence, input_folder, output_folder
def main():
"""主函数"""
print("=" * 60)
print(" 道路损伤检测系统 - 视频批量处理")
print("=" * 60)
# 检查运行环境
print("\n1. 检查运行环境...")
if not check_requirements():
return
if not check_model():
return
# 设置文件夹
print("\n2. 设置文件夹...")
if not setup_folders():
input("\n请添加视频文件后重新运行程序。按回车键退出...")
return
# 获取用户设置
confidence, input_folder, output_folder = get_user_settings()
# 确认设置
print("\n=== 检测设置确认 ===")
print(f"模型文件: {config.get_model_path()}")
print(f"置信度阈值: {confidence}")
print(f"输入文件夹: {Path(input_folder).absolute()}")
print(f"输出文件夹: {Path(output_folder).absolute()}")
print(f"检测类别: {list(config.CLASS_NAMES_CN.values())}")
confirm = input("\n确认开始检测? (y/n): ").strip().lower()
if confirm not in ['y', 'yes', '', '确认']:
print("检测已取消")
return
# 开始检测
print("\n=== 开始批量检测 ===")
try:
detector = BatchVideoDetector(
model_path=config.get_model_path(),
confidence=confidence
)
detector.process_all_videos(input_folder, output_folder)
print("\n检测完成! 请查看输出文件夹中的结果。")
except KeyboardInterrupt:
print("\n检测被用户中断")
except Exception as e:
print(f"\n检测过程中出现错误: {e}")
import traceback
traceback.print_exc()
input("\n按回车键退出...")
if __name__ == '__main__':
main()

29
start_detection.bat Normal file
View File

@ -0,0 +1,29 @@
@echo off
chcp 65001 >nul
cd /d "%~dp0"
echo ========================================
echo 道路损伤检测系统 - 快速启动
echo ========================================
echo.
echo 正在检查Python环境...
python --version >nul 2>&1
if errorlevel 1 (
echo 错误: 未找到Python环境
echo 请先安装Python 3.8或更高版本
pause
exit /b 1
)
echo Python环境检查通过
echo.
echo 正在启动检测系统...
echo.
python run_detection.py
echo.
echo 程序已结束
pause

26
start_web_app.bat Normal file
View File

@ -0,0 +1,26 @@
@echo off
echo ===================================
echo 道路损伤视频检测系统 - Web界面
echo ===================================
echo.
REM 检查Python环境
python --version >nul 2>&1
if %ERRORLEVEL% NEQ 0 (
echo [错误] 未检测到Python环境请安装Python 3.8或更高版本。
goto :end
)
REM 检查依赖包
echo [信息] 检查依赖包...
pip install -r requirements.txt
echo.
echo [信息] 启动Web应用...
echo [信息] 请在浏览器中访问: http://localhost:5000
echo.
python app.py
:end
pause