VS Code Remote-SSH 离线安装全指南:版本匹配与依赖穿透
2026/9/17 23:43:48
| 项目 | 内容 |
|---|---|
| 数据集名称 | visual pollution Dataset |
| 任务类型 | 目标检测 (Object Detection) |
| 图片总数 | 约3570 张 |
| 类别数量 | 3 类 |
| 具体类别 | 1. Concrete barriers(混凝土护栏) 2. potholes(坑洼) 3. sand on road(路面沙土) |
| 模型 | YOLOv8、YOLOv8s、YOLOv5 |
| 数据格式 | 图像 + 标注文件(目标检测标准格式) |
1
1
1
1
以下是针对Visual Pollution Dataset(视觉污染检测数据集)的完整 YOLO 训练方案,包含3 类目标:
Concrete barriers(混凝土护栏)potholes(坑洼)sand on road(路面沙土)支持YOLOv5 / YOLOv8 / YOLOv8s,提供可直接运行的训练代码。
data.yaml# data.yamlpath:./datasetstrain:images/trainval:images/valnc:3names:['concrete_barriers','potholes','sand_on_road']📌 注意:
- 类别名使用下划线命名(避免空格),与标注文件中的类别 ID 对应
- 标注格式为标准 YOLO 格式(每行:
class_id x_center y_center width height,归一化)
VisualPollutionDetection/ ├── datasets/ │ ├── images/ │ │ ├── train/ # ~2856 张(80%) │ │ └── val/ # ~714 张(20%) │ └── labels/ │ ├── train/ │ └── val/ ├── data.yaml ├── train_yolov8.py # YOLOv8 训练脚本 └── requirements.txt# train_yolov8.pyfromultralyticsimportYOLOimportargparsedefmain(model_name='yolov8s.pt',epochs=100,imgsz=640,batch=16,name='visual_pollution_yolo8'):model=YOLO(model_name)results=model.train(data='data.yaml',epochs=epochs,imgsz=imgsz,batch=batch,name=name,cache=False,device=0,workers=8,patience=20,save=True,exist_ok=False,# 增强策略(适合道路场景)hsv_h=0.015,hsv_s=0.7,hsv_v=0.4,degrees=5.0,translate=0.1,scale=0.3,mosaic=0.8,flipud=0.0,fliplr=0.5)print(f"✅ 训练完成!最佳模型保存在: runs/detect/{name}/weights/best.pt")if__name__=='__main__':parser=argparse.ArgumentParser()parser.add_argument('--model',type=str,default='yolov8s.pt')parser.add_argument('--epochs',type=int,default=100)parser.add_argument('--imgsz',type=int,default=640)parser.add_argument('--batch',type=int,default=16)parser.add_argument('--name',type=str,default='visual_pollution_exp')args=parser.parse_args()main(**vars(args))需先克隆 YOLOv5 仓库:
git clone https://github.com/ultralytics/yolov5
# train_yolov5.pyimportosimportargparsedefmain(weights='yolov5s.pt',epochs=100,imgsz=640,batch=16,name='visual_pollution_yolov5'):cmd=f""" python yolov5/train.py \ --img{imgsz}\ --batch{batch}\ --epochs{epochs}\ --data data.yaml \ --weights{weights}\ --name{name}\ --cache ram \ --workers 8 """os.system(cmd)if__name__=='__main__':parser=argparse.ArgumentParser()parser.add_argument('--weights',type=str,default='yolov5s.pt')parser.add_argument('--epochs',type=int,default=100)parser.add_argument('--imgsz',type=int,default=640)parser.add_argument('--batch',type=int,default=16)parser.add_argument('--name',type=str,default='visual_pollution_yolov5')args=parser.parse_args()main(**vars(args))# requirements.txt (YOLOv8) ultralytics>=8.3.0 opencv-python numpy torch>=2.0.0若使用 YOLOv5,需额外安装:
pipinstall-r yolov5/requirements.txtpython train_yolov8.py --model yolov8s.pt --epochs100--batch16--name vp_yolo8spython train_yolov5.py --weights yolov5s.pt --epochs100--batch16--name vp_yolov5sfromultralyticsimportYOLO model=YOLO('runs/detect/vp_yolo8s/weights/best.pt')results=model('road_image.jpg')# 可视化results[0].show()# 获取检测结果forboxinresults[0].boxes:cls_id=int(box.cls.item())label=model.names[cls_id]conf=float(box.conf.item())print(f"检测到:{label}, 置信度:{conf:.2f}")