This commit is contained in:
2025-07-29 10:13:29 -07:00
parent 02ad4d87d2
commit 6617acb1c9
2 changed files with 25 additions and 8 deletions

View File

@@ -148,9 +148,13 @@ def download_yolo_models():
"yolov8n.pt", # Detection models
"yolov8s.pt",
"yolov8m.pt",
"yolo11l.pt", # YOLOv11 detection models
"yolo11x.pt",
"yolov8n-seg.pt", # Segmentation models
"yolov8s-seg.pt",
"yolov8m-seg.pt"
"yolov8m-seg.pt",
"yolo11l-seg.pt", # YOLOv11 segmentation models
"yolo11x-seg.pt"
]
models_dir = Path(__file__).parent / "models" / "yolo"
@@ -193,7 +197,11 @@ def download_yolo_models():
if not found:
# Last resort: use urllib to download directly
yolo_url = f"https://github.com/ultralytics/assets/releases/download/v8.2.0/{model_name}"
# Use different release versions for different YOLO versions
if model_name.startswith("yolov11"):
yolo_url = f"https://github.com/ultralytics/assets/releases/download/v8.3.0/{model_name}"
else:
yolo_url = f"https://github.com/ultralytics/assets/releases/download/v8.2.0/{model_name}"
print(f" Downloading directly from {yolo_url}...")
download_file(yolo_url, str(model_path), f"YOLO {model_name}")
@@ -201,7 +209,11 @@ def download_yolo_models():
print(f" ⚠ Error downloading {model_name}: {e}")
# Try direct download as fallback
try:
yolo_url = f"https://github.com/ultralytics/assets/releases/download/v8.2.0/{model_name}"
# Use different release versions for different YOLO versions
if model_name.startswith("yolov11"):
yolo_url = f"https://github.com/ultralytics/assets/releases/download/v8.3.0/{model_name}"
else:
yolo_url = f"https://github.com/ultralytics/assets/releases/download/v8.2.0/{model_name}"
print(f" Trying direct download from {yolo_url}...")
download_file(yolo_url, str(model_path), f"YOLO {model_name}")
except Exception as e2:
@@ -213,8 +225,8 @@ def download_yolo_models():
success = all((models_dir / model).exists() for model in yolo_models)
if success:
print("✓ YOLO models setup complete!")
print(" Available detection models: yolov8n.pt, yolov8s.pt, yolov8m.pt")
print(" Available segmentation models: yolov8n-seg.pt, yolov8s-seg.pt, yolov8m-seg.pt")
print(" Available detection models: yolov8n.pt, yolov8s.pt, yolov8m.pt, yolov11l.pt, yolov11x.pt")
print(" Available segmentation models: yolov8n-seg.pt, yolov8s-seg.pt, yolov8m-seg.pt, yolov11l-seg.pt, yolov11x-seg.pt")
else:
missing_models = [model for model in yolo_models if not (models_dir / model).exists()]
print("⚠ Some YOLO models may be missing:")
@@ -302,4 +314,4 @@ def main():
print(f" {Path(__file__).parent / 'models'}")
if __name__ == "__main__":
main()
main()