当前位置: 首页 > news >正文

使用Ultralytics YOLO11进行距离计算

什么是距离计算?

在指定空间内测量两个物体之间的距离称为距离计算。在Ultralytics YOLO11的情况下,边界框的质心被用来计算用户突出显示的边界框之间的距离。



观看:如何使用Ultralytics YOLO在像素中估算检测到的物体之间的距离 🚀

视觉效果

使用Ultralytics YOLO11进行距离计算

距离计算的优势

  • 定位精度:提高计算机视觉任务中的准确空间定位。
  • 尺寸估算:允许估算物体尺寸,以更好地理解上下文。
  • 场景理解:改善3D场景理解,以便在自动驾驶车辆和监控系统等应用中做出更好的决策。
  • 避碰:使系统能够通过监测移动物体之间的距离来检测潜在的碰撞。
  • 空间分析:促进对监控环境中对象关系和相互作用的分析。

距离计算

  • 用鼠标左键点击任意两个边界框以计算距离。
  • 使用右键鼠标删除所有绘制的点。
  • 在框架的任何位置单击以添加新点。

距离是估算的

距离是一个估算,可能并不完全准确,因为它是基于二维数据计算的,这缺乏深度信息。

使用Ultralytics YOLO进行距离计算

import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") assert cap.isOpened(), "Error reading video file" # Video writer w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) video_writer = cv2.VideoWriter("distance_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) # Initialize distance calculation object distancecalculator = solutions.DistanceCalculation( model="yolo11n.pt", # path to the YOLO11 model file. show=True, # display the output ) # Process video while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or processing is complete.") break results = distancecalculator(im0) print(results) # access the output video_writer.write(results.plot_im) # write the processed frame. cap.release() video_writer.release() cv2.destroyAllWindows() # destroy all opened windows

DistanceCalculation()论据

这里有一个包含DistanceCalculation论据的表格:

争论类型默认描述
modelstrNone通往超预测 YOLO 模型文件的路径。

你也可以利用各种trackDistanceCalculation解决方案中。

争论类型默认描述
trackerstr'botsort.yaml'指定使用的跟踪算法,例如,bytetrack.yamlbotsort.yaml
conffloat0.3设置检测的置信阈值;较小的值允许跟踪更多的物体,但也可能包括假阳性。
ioufloat0.5设置交并比 (IoU) 用于过滤重叠检测的阈值。
classeslistNone通过类索引过滤结果。例如,classes=[0, 2, 3]只跟踪指定的类。
verboseboolTrue控制跟踪结果的显示,提供跟踪对象的视觉输出。
devicestrNone指定推理设备(例如,cpucuda:00)。允许用户在CPU、特定GPU或其他计算设备之间选择用于模型执行的设备。

此外,以下可视化参数是可用的:

争论类型默认描述
showboolFalse如果True,在窗口中显示标注的图像或视频。在开发或测试期间提供即时视觉反馈。
line_widthint or NoneNone指定边界框的线宽。如果None,线宽将根据图像大小自动调整。提供视觉定制以提高清晰度。
show_confboolTrue显示每个检测的置信分数以及标签。了解模型对每个检测的确定性。
show_labelsboolTrue在视觉输出中显示每个检测的标签。提供对检测到的物体的即时理解。

实施细节

DistanceCalculation类通过在视频帧中跟踪物体并计算所选边界框的质心之间的欧几里得距离来工作。当你点击两个物体时,解决方案:

  1. 提取所选边界框的质心(中心点)
  2. 计算这些质心之间的欧几里得距离(以像素为单位)
  3. 显示框架上物体之间的距离,并用连接线表示。

该实现使用mouse_event_for_distance方法来处理鼠标交互,允许用户选择对象并根据需要清除选择。process方法处理逐帧处理、跟踪对象和计算距离。

应用程序

使用YOLO11进行距离计算具有众多实际应用:

  • 零售分析:测量客户与产品的接近度并分析商店布局的有效性
  • 工业安全:监控工人与机械之间的安全距离
  • 交通管理:分析车辆间距并检测跟车行为
  • 运动分析:计算球员、球和关键场地位置之间的距离
  • 医疗保健:确保候诊区的适当距离并监控患者移动
  • 机器人技术:使机器人能够与障碍物和人保持适当的距离

常见问题

如何使用Ultralytics YOLO11来计算物体之间的距离?

使用 Ultralytics YOLO11 计算物体之间的距离时,你需要识别检测到的物体的边界框中心。这个过程涉及初始化DistanceCalculationUltralytics 的solutions模块中的类,并使用模型的跟踪输出来计算距离。

使用Ultralytics YOLO11进行距离计算有哪些优势?

使用Ultralytics YOLO11进行距离计算具有以下优势:

  • 定位精度:为物体提供精确的空间定位。
  • 尺寸估算:帮助估算物理尺寸,有助于更好地理解上下文。
  • 场景理解:增强对3D场景的理解,有助于在自动驾驶和监控等应用中改进决策。
  • 实时处理:可实时进行计算,适用于实时视频分析。
  • 集成能力:与其他YOLO11解决方案无缝集成,例如物体跟踪和速度估计。

我能使用Ultralytics YOLO11在实时视频流中进行距离计算吗?

是的,你可以使用Ultralytics YOLO11在实时视频流中进行距离计算。这个过程包括使用OpenCV捕获视频帧,运行YOLO11物体检测,并使用DistanceCalculation类来计算连续帧中物体之间的距离。有关详细的实现,请参阅视频流示例。

如何删除在使用Ultralytics YOLO11进行距离计算时绘制的点?

要删除在 Ultralytics YOLO11 距离计算过程中绘制的点,可以使用右键单击。此操作将清除您所绘制的所有点。有关更多详细信息,请参阅 距离计算示例 下的注释部分。

在Ultralytics YOLO11中,初始化DistanceCalculation类的关键参数是什么?

在Ultralytics YOLO11中初始化DistanceCalculation类的关键参数包括:

  • model: YOLO11 模型文件的路径。
  • tracker: 跟踪算法的使用(默认是‘botsort.yaml’)。
  • conf检测的置信阈值。
  • show: 显示输出的标志。

欲了解完整的列表和默认值,请参阅DistanceCalculation的参数。

http://www.jsqmd.com/news/204687/

相关文章:

  • 能深层清洁的纯植物配方洗发水?3 款热门款场景实测,油敏肌也安心
  • 深度学习基于yolov8的路面缺陷检测
  • 【DevOps效率革命】:为什么顶尖团队都在用Docker做Git工作树切换?
  • 2025年江油高中复读学校口碑调查:家长推荐榜,名办高中/实验中学/高中复读学校/中学/学校/高中/实验学校高中复读学校企业好不好 - 品牌推荐师
  • /root目录下找不到脚本?检查VibeThinker镜像完整性方法
  • 使用Ultralytics YOLO11进行速度估算
  • 基于RCGELAN-YOLOv11的路面损伤检测算法
  • charles常用功能-重复请求
  • 基于asp.net的智能粮库管理系统的设计与实现
  • 【Git 报错解决】作者身份未配置(`Author identity unknown`)
  • 用户指南写不好?这份实用手册教你打造高效指引
  • 2026年有实力的三丰(Mitutoyo),三丰轮廓仪,三丰影像仪代理商实力排行 - 品牌鉴赏师
  • 能否微调定制?用户自定义训练VibeThinker的可行性讨论
  • 婚纱摄影网站系统
  • 基于Django的毕业生招聘信息可视化分析系统研究
  • 昆明珠宝回收推荐案例调查-昆明钱鑫珠宝甄选/黄金回收门店/珠宝回收门店/翡翠回收门店 - charlieruizvin
  • 使用Ultralytics YOLO11的TrackZone
  • 基于springboot + vue宠物商城平台网站系统
  • CSDN技术博主都在用的AI模型:VibeThinker-1.5B真实反馈
  • 【2026年】【国内】【GEO优化源码】排行榜 - 品牌推荐官优选
  • Docker Falco 实时监控实战(从部署到告警的完整链路)
  • 餐厅点餐系统
  • 无停机发布真的能做到吗?,深度拆解Docker Rollout中的平滑升级机制
  • 【Java毕设源码分享】基于springboot+vue的教通无界管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 2026年Q1全地域升降机厂家推荐TOP10 苏州卓高优选指南 - 品牌智鉴榜
  • 2025集电环选购风向标:国内实力厂家大比拼,定制滑环/过孔滑环/集电环/滑环定制/帽式滑环,集电环源头厂家哪家权威 - 品牌推荐师
  • append函数为什么直接改变原列表?高效使用技巧全解析
  • CTF Web模块系列分享(三):客户端漏洞专题,核心讲解XSS和CSRF
  • 基于Django的超市收银管理系统设计与实现
  • 基于LangChain与Ollama的Qwen2.5智能助手:打造支持网络搜索与假期查询 Agent