上传文件至 /
This commit is contained in:
parent
0f10187716
commit
0ed9a0db0d
84
install.bat
Normal file
84
install.bat
Normal 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
33
requirements.txt
Normal 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
143
run_detection.py
Normal 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
29
start_detection.bat
Normal 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
26
start_web_app.bat
Normal 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
|
||||
Loading…
Reference in New Issue
Block a user