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()

输出结果:

相关推荐
星越华夏5 小时前
计算机视觉:YOLOv12安装环境
人工智能·yolo·计算机视觉
羊羊小栈9 小时前
AI赋能电力巡检:智能故障预警系统
人工智能·yolo·目标检测·毕业设计·大作业
动物园猫14 小时前
面向智慧牧场的牛行为识别数据集分享(适用于YOLO系列深度学习分类检测任务)
深度学习·yolo·分类
埃菲尔铁塔_CV算法14 小时前
YOLO11 与传统纹理特征融合目标检测 完整实现教程
人工智能·神经网络·yolo·计算机视觉
小白|16 小时前
hccl:昇腾集合通信库架构深度实践
人工智能·yolo·目标检测
AI棒棒牛17 小时前
YOLO26改进创新 | 全网首发!VECA弹性核心注意力重塑全局建模,线性复杂度增强检测骨干,嘎嘎创新!
python·yolo·目标检测·yolo26·主干改进
Deep-w17 小时前
【目标检测系统网页版】基于YOLOv8的淡水鱼检测系统
人工智能·yolo·目标检测
星越华夏19 小时前
智能驾驶工程师职业指南
人工智能·yolo·目标检测
小白|19 小时前
CANN目标检测实战:用ops-cv优化YOLOv8预处理Pipeline
人工智能·yolo·目标检测
萤萤七悬20 小时前
【AI精彩BUG汇总】一、yolo图像训练截图蓝色变橙色
人工智能·yolo·bug