YOLOWorld 实现开集障碍物检测

目的:如何做障碍物模型。

开集障碍物模型

开集障碍物模型 (Open-Set Obstacle Model),核心是让感知系统既能识别训练时见过的已知障碍物 (如车、人、锥桶),也能检测 / 告警训练时未定义的未知障碍物 (如掉落的纸箱、翻倒的共享单车、破损井盖),本质是分布外检测 (OOD) 与开放世界感知问题。

OOD 检测(Out-of-Distribution Detection,分布外检测);

效果:

YOLO 的 OOD(Out-of-Distribution)检测本身通常不能告诉你"这个未知障碍物具体是什么",它只能判断"这不是我训练时见过的任何类别"。

基于文本提示的开集检测:

复制代码
from ultralytics import YOLOWorld
import os

# 检查图像是否存在
#img_path = '/Users/wangfeng/Downloads/1767196111.600000_1767196111.561000.webp'
img_path = '/Users/wangfeng/Downloads/dog1.webp'
if not os.path.exists(img_path):
    raise FileNotFoundError(f"Image not found: {img_path}")

# 加载模型(注意:yolov8s-worldv2.pt 是正确的名称)
model = YOLOWorld('yolov8s-worldv2.pt')

# 定义你的提示词列表(顺序即类别ID)
custom_classes = ['car', 'dog', 'person', 'bicycle', 'cone', 'truck', 'unknown obstacle', 'road debris', 'fallen object']
model.set_classes(custom_classes)

# 推理
results = model(img_path, conf=0.3, imgsz=640)

# 分离已知和未知
known_set = {'car', 'person', 'bicycle', 'cone', 'truck', 'dog'}  # 使用 set 提升查找效率
known_dets = []
unknown_dets = []

for box in results[0].boxes:
    cls_id = int(box.cls.item())  # 获取类别索引
    if cls_id >= len(custom_classes):
        continue  # 防御性处理(理论上不会发生)
    
    cls_name = custom_classes[cls_id]  # 正确获取类别名
    bbox = box.xyxy.cpu().numpy()[0]
    
    if cls_name in known_set:
        known_dets.append((cls_name, bbox))
    else:
        unknown_dets.append((cls_name, bbox))

# 打印结果
print(f"已知物体: {len(known_dets)} 个")
for name, bbox in known_dets:
    print(f"  - {name}: {bbox}")

print(f"未知障碍物: {len(unknown_dets)} 个")
for name, bbox in unknown_dets:
    print(f"  - {name}: {bbox}")

# 可视化(会显示所有检测框,包括 unknown obstacle 等)
results[0].show()

输出结果:

相关推荐
FL162386312916 小时前
外来入侵植物检测数据集VOC+YOLO格式1111张5类别
人工智能·yolo·机器学习
菜鸟变凤凰202320 小时前
基于深度学习 YOLOv8 的各种识别系统(Vue3 + Element Plus + Django 全栈项目)
深度学习·yolo·django
冷雨夜中漫步20 小时前
YOLO快速入门——(2)YOLO V26安装与快速入门
图像处理·算法·yolo·计算机视觉
YOLO数据集集合20 小时前
遥感滑坡图像识别数据集 | 滑坡识别 遥感影像 语义分割 灾害监测 无人机航拍 目标检测 深度学习数据集 计算机视觉9172期
人工智能·yolo·目标检测·计算机视觉·无人机·滑坡
YOLO数据集集合21 小时前
空中鸟类检测数据集 | 单目标 鸟类检测 生态监测 鸟击防范 目标检测9174期
安全·yolo·目标检测·飞鸟数据集·飞鸟
YOLO数据集集合21 小时前
学生课堂行为智能检测系统 | 课堂行为检测 YOLOv13 DeepSeek 智慧教育 行为识别 9178期
yolo·目标检测·计算机视觉·课堂·学生课堂行为
YOLO数据集集合2 天前
Deepseek融合yolo的行人车辆多目标检测系统 |行人检测 车辆检测 多目标检测 YOLO DeepSeek9165期
人工智能·yolo·目标检测·计算机视觉·车辆检测·行人检测
YOLO数据集集合2 天前
YOLO 目标检测模型与 DeepSeek/Qwen 大语言模型融合的跌倒检测系统 | 跌倒检测 YOLO DeepSeek Qwen 行为识别 目标检测
yolo·目标检测·语言模型
YOLO数据集集合2 天前
道路与桥梁灾后损伤检测数据集 | 道路损伤 桥梁损坏 灾后评估 无人机巡检 目标检测 YOLO格式 深度学习数据集 计算机视觉10551期
yolo·目标检测·计算机视觉·无人机·桥梁损害·灾后评估
答案是你3 天前
YOLOE 开放词汇检测 + ONNX / TensorRT 推理,开源了!
python·深度学习·yolo·目标检测·计算机视觉·视觉检测