删除 run_detection.py
This commit is contained in:
parent
e86c554594
commit
1d008154d9
143
run_detection.py
143
run_detection.py
@ -1,143 +0,0 @@
|
||||
#!/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()
|
||||
Loading…
Reference in New Issue
Block a user