@echo off chcp 65001 >nul cls set "REPO_DIR=%~dp0" pushd "%REPO_DIR%" set "YOLO_LAUNCHER=" where yolo >nul 2>nul if %ERRORLEVEL% equ 0 set "YOLO_LAUNCHER=yolo" if not defined YOLO_LAUNCHER ( py -3.11 -c "import ultralytics" >nul 2>nul if %ERRORLEVEL% equ 0 set "YOLO_LAUNCHER=py -3.11 -m ultralytics" ) if not defined YOLO_LAUNCHER ( python -c "import ultralytics" >nul 2>nul if %ERRORLEVEL% equ 0 set "YOLO_LAUNCHER=python -m ultralytics" ) if not defined YOLO_LAUNCHER ( echo [错误] 未找到可用的 Ultralytics 启动方式 echo. echo 请先确保满足以下任一条件: echo 1. yolo 命令已加入 PATH echo 2. py -3.11 可运行并已安装 ultralytics echo 3. python 可运行并已安装 ultralytics popd pause exit /b 1 ) set "DATASET=%REPO_DIR%datasets\shoe-roi-mix\data.yaml" if not exist "%DATASET%" ( echo [错误] 找不到 ROI 数据集配置: %DATASET% echo. echo 请先构建 ROI 数据集: echo python "%REPO_DIR%09_build_roi_shoe_dataset.py" --clean popd pause exit /b 1 ) echo ============================================================ echo 训练鞋子 ROI 检测模型 (YOLOv8s + 640x640) echo ============================================================ echo. echo [信息] 数据集: %DATASET% echo [信息] 模型: yolov8s.pt echo. set "EPOCHS=150" set "IMGSZ=640" set "BATCH=16" set "PROJECT=%REPO_DIR%runs\roi_yolov8s_640" set "RUN_NAME=train_roi" echo 训练参数: echo - Epochs: %EPOCHS% echo - Image Size: %IMGSZ%x%IMGSZ% echo - Batch Size: %BATCH% echo - Device: GPU (cuda:0) echo - Project: %PROJECT% echo - Run Name: %RUN_NAME% ^(已存在时会自动递增,不覆盖旧模型^) echo. echo ============================================================ echo 开始训练 echo ============================================================ echo. call %YOLO_LAUNCHER% detect train data="%DATASET%" model="yolov8s.pt" epochs=%EPOCHS% imgsz=%IMGSZ% batch=%BATCH% device=0 project="%PROJECT%" name="%RUN_NAME%" if %ERRORLEVEL% neq 0 ( echo. echo [错误] 训练失败! popd pause exit /b 1 ) echo. echo ============================================================ echo 训练完成! echo ============================================================ echo. echo 模型输出目录: %PROJECT% echo. popd pause