Ultralytics 解决方案:利用 YOLO26 解决现实世界中的问题
Ultralytics 解决方案提供了 YOLO 模型的前沿应用,带来了诸如目标计数、模糊处理和安防系统等实际解决方案,提升了各行各业的效率和 accuracy。探索 YOLO26 在实用且具有影响力方面的实现能力。
![]()
Watch: How to Run Ultralytics Solutions from the Command Line (CLI) | Ultralytics YOLO26 🚀
解决方案
这是我们整理的 Ultralytics 解决方案列表,可用于构建出色的 computer vision 项目。
- Analytics:进行全面的数据分析以发现模式并做出明智决策,利用 YOLO26 进行描述性、预测性和指导性分析。
- Distance Calculation:使用 YOLO26 中 bounding box 的中心点来计算对象之间的距离,这对空间分析至关重要。
- Heatmaps:利用检测热图可视化矩阵中的数据强度,为计算机视觉任务提供清晰的见解。
- Instance Segmentation with Object Tracking:通过 YOLO26 实现 instance segmentation 和对象跟踪,以获取精确的对象边界和连续监控。
- Live Inference with Streamlit:借助用户友好的 Streamlit 界面,通过网页浏览器直接利用 YOLO26 的强大功能进行实时 object detection。
- Object Blurring:在图像和视频处理中使用 YOLO26 进行对象模糊处理,以保护隐私。
- Object Counting:学习如何使用 YOLO26 进行实时目标计数。掌握在实时视频流中准确计数对象的专业知识。
- Object Counting in Regions:使用 YOLO26 在特定区域内对对象进行计数,以在不同场景中实现精确检测。
- Object Cropping:掌握使用 YOLO26 进行对象裁剪,以从图像和视频中精确提取对象。
- Parking Management:使用 YOLO26 组织和引导停车区域的车辆流动,优化空间利用率和用户体验。
- Queue Management:使用 YOLO26 实施高效的排队管理系统,以最大限度地减少等待时间并提高生产力。
- Security Alarm System:使用 YOLO26 创建一个安全警报系统,在检测到新对象时触发警报。自定义系统以满足你的具体需求。
- Similarity Search:通过将 OpenAI CLIP 嵌入与 Meta FAISS 相结合,实现智能图像检索,支持如“拿着包的人”或“移动中的车辆”等自然语言查询。
- Speed Estimation:使用 YOLO26 和对象跟踪技术估算对象速度,这对于自动驾驶车辆和交通监控等应用至关重要。
- Track Objects in Zone:学习如何使用 YOLO26 在视频帧的特定区域内跟踪对象,以实现精确高效的监控。
- VisionEye View Objects Mapping:开发模仿人眼聚焦于特定对象的系统,增强计算机识别和优先处理细节的能力。
- Workouts Monitoring:了解如何使用 YOLO26 监控锻炼。学习实时跟踪和分析各种健身动作。
解决方案参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 模型文件的路径。 |
region | list | '[(20, 400), (1260, 400)]' | 定义计数区域的点列表。 |
show_in | bool | True | 用于控制是否在视频流中显示进入计数的标志。 |
show_out | bool | True | 用于控制是否在视频流中显示离开计数的标志。 |
analytics_type | str | 'line' | 图表类型,例如 line(折线图)、bar(柱状图)、area(面积图)或 pie(饼图)。 |
colormap | int | cv2.COLORMAP_DEEPGREEN | 用于热图的配色方案。 |
json_file | str | None | 包含所有停车坐标数据的 JSON 文件路径。 |
up_angle | float | 145.0 | “向上”姿势的角度阈值。 |
kpts | list[int] | '[6, 8, 10]' | 用于监控健身训练的三个关键点索引列表。这些关键点对应于身体关节或部位,例如肩部、肘部和腕部,适用于俯卧撑、引体向上、深蹲和腹部训练等动作。 |
down_angle | int | 90 | “向下”姿势的角度阈值。 |
blur_ratio | float | 0.5 | 调节模糊强度百分比,取值范围为 0.1 - 1.0。 |
crop_dir | str | 'cropped-detections' | 用于存储裁剪后的检测结果的目录名称。 |
records | int | 5 | 触发带有安全警报系统的电子邮件所需的总检测计数。 |
vision_point | tuple[int, int] | (20, 20) | 使用 VisionEye 解决方案追踪对象并绘制路径的点。 |
source | str | None | 输入源(视频、RTSP 等)的路径。仅可用于解决方案命令行界面 (CLI)。 |
figsize | tuple[int, int] | (12.8, 7.2) | 用于分析图表(如热图或统计图)的图形大小。 |
fps | float | 30.0 | 用于速度计算的每秒帧数。 |
max_hist | int | 5 | 用于速度/方向计算时,每个对象最大追踪的历史点数。 |
meter_per_pixel | float | 0.05 | 用于将像素距离转换为现实世界单位的比例因子。 |
max_speed | int | 120 | 视觉叠加层中的最高速度限制(用于警报)。 |
data | str | 'images' | 用于相似度搜索的图像目录路径。 |
解决方案也支持 track 中的部分参数,包括 conf、line_width、tracker、model、show、verbose 和 classes 等。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 指定使用的跟踪算法,例如 bytetrack.yaml 或 botsort.yaml。 |
conf | float | 0.1 | 设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能会包含误报。 |
iou | float | 0.7 | 设置过滤重叠检测的 Intersection over Union (IoU) 阈值。 |
classes | list | None | 按类别索引过滤结果。例如,classes=[0, 2, 3] 将仅跟踪指定的类别。 |
verbose | bool | True | 控制跟踪结果的显示,提供跟踪对象的视觉输出。 |
device | str | None | 指定推理设备(例如 cpu、cuda:0 或 0)。允许用户选择 CPU、特定的 GPU 或其他计算设备来执行模型。 |
你可以使用 show_conf、show_labels 和其他提到的参数来自定义可视化效果。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
show | bool | False | 如果设为 True,则在一个窗口中显示标注后的图像或视频。这对于开发或测试期间的即时视觉反馈非常有用。 |
line_width | int or None | None | 指定边界框的线宽。如果为 None,线宽将根据图像大小自动调整。提供视觉自定义以提高清晰度。 |
show_conf | bool | True | 在标签旁边显示每个检测结果的置信度分数。让你可以洞察模型对每个检测的确定性。 |
show_labels | bool | True | 在可视化输出中显示每个检测结果的标签。提供对检测对象的即时了解。 |
使用 SolutionAnnotator
所有 Ultralytics 解决方案都使用单独的 SolutionAnnotator 类,该类扩展了主 Annotator 类,并具有以下方法:
| 方法 | 返回类型 | 描述 |
|---|---|---|
draw_region() | None | 使用指定的点、颜色和厚度绘制区域。 |
queue_counts_display() | None | 在指定区域显示排队计数。 |
display_analytics() | None | 显示停车场管理的总体统计信息。 |
estimate_pose_angle() | float | 计算对象姿态中三点之间的角度。 |
draw_specific_points() | None | 在图像上绘制特定的关键点。 |
plot_workout_information() | None | 在图像上绘制带标签的文本框。 |
plot_angle_and_count_and_stage() | None | 可视化锻炼监控的角度、步数和阶段。 |
plot_distance_and_line() | None | 显示中心点之间的距离并用线条连接它们。 |
display_objects_labels() | None | 用对象类标签注释边界框。 |
sweep_annotator() | None | 可视化垂直扫描线和可选标签。 |
visioneye() | None | 将对象中心点映射并连接到视觉“眼”点。 |
adaptive_label() | None | 在边界框中心绘制圆形或矩形背景形状标签。 |
使用 SolutionResults
除 Similarity Search 外,每个解决方案调用都会返回一个 SolutionResults 对象列表。
- 对于对象计数,结果包含
in_count、out_count和classwise_count。
import cv2
from ultralytics import solutions
im0 = cv2.imread("path/to/img")
region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
counter = solutions.ObjectCounter(
show=True, # display the output
region=region_points, # pass region points
model="yolo26n.pt", # model="yolo26n-obb.pt" for object counting with OBB model.
# classes=[0, 2], # count specific classes i.e. person and car with COCO pretrained model.
# tracker="botsort.yaml" # Choose trackers i.e "bytetrack.yaml"
)
results = counter(im0)
print(results.in_count) # display in_counts
print(results.out_count) # display out_counts
print(results.classwise_count) # display classwise_countSolutionResults 对象具有以下属性:
| 属性 | 类型 | 描述 |
|---|---|---|
plot_im | np.ndarray | 带有视觉叠加层(例如计数、模糊效果或特定解决方案增强)的图像。 |
in_count | int | 视频流中检测到进入定义区域的对象的总数。 |
out_count | int | 视频流中检测到离开定义区域的对象的总数。 |
classwise_count | Dict[str, int] | 记录按类别划分的对象进/出计数的字典,用于高级分析。 |
queue_count | int | 当前位于预定义队列或等待区域中的对象数量(适用于排队管理)。 |
workout_count | int | 运动跟踪期间完成的锻炼重复总次数。 |
workout_angle | float | 锻炼期间计算的关节或姿态角度,用于动作评估。 |
workout_stage | str | 当前的锻炼阶段或动作阶段(例如,'up','down')。 |
pixels_distance | float | 两个对象或点(例如边界框)之间基于像素的距离。(适用于距离计算)。 |
available_slots | int | 监控区域中未占用的空位数量(适用于停车场管理)。 |
filled_slots | int | 监控区域中已占用的位置数量。(适用于停车场管理) |
email_sent | bool | 指示通知或警报电子邮件是否已成功发送(适用于安防警报)。 |
total_tracks | int | 视频分析期间观察到的唯一对象轨迹总数。 |
region_counts | Dict[str, int] | 用户定义区域或范围内的对象计数。 |
speed_dict | Dict[str, float] | 按轨迹划分的计算对象速度字典,对速度分析很有用。 |
total_crop_objects | int | ObjectCropper 解决方案生成的裁剪对象图像的总数。 |
speed | Dict[str, float] | 包含跟踪和解决方案处理性能指标的字典。 |
更多详情,请参考 SolutionResults 类文档。
通过 CLI 使用解决方案
大多数解决方案都可以通过命令行界面直接使用,包括:
Count, Crop, Blur, Workout, Heatmap, Isegment, Visioneye, Speed, Queue, Analytics, Inference, Trackzone
语法
yolo SOLUTIONS SOLUTION_NAME ARGS
- SOLUTIONS 是必需关键字。
- SOLUTION_NAME 是以下之一:
['count', 'crop', 'blur', 'workout', 'heatmap', 'isegment', 'queue', 'speed', 'analytics', 'trackzone', 'inference', 'visioneye']。 - ARGS(可选)是自定义的
arg=value对,例如show_in=True,用于覆盖默认设置。
yolo solutions count show=True # for object counting
yolo solutions count source="path/to/video.mp4" # specify video file path为我们的解决方案做出贡献
我们欢迎社区做出贡献!如果你精通 Ultralytics YOLO 的某个特定方面,而我们的解决方案尚未涵盖,我们鼓励你分享你的专业知识。撰写指南是回馈社区并帮助我们使文档更加全面和易于使用的好方法。
要开始贡献,请阅读我们的 贡献指南,了解如何提交 Pull Request (PR) 🛠️ 的相关准则。我们期待你的贡献!
让我们共同努力,使 Ultralytics YOLO 生态系统更加强大和通用 🙏!
常见问题 (FAQ)
我该如何使用 Ultralytics YOLO 进行实时目标计数?
Ultralytics YOLO26 可以通过利用其先进的目标检测能力进行实时目标计数。你可以按照我们的 目标计数 详细指南来设置 YOLO26 进行实时视频流分析。只需安装 YOLO26,加载你的模型,并处理视频帧即可动态计数目标。
使用 Ultralytics YOLO 用于安防系统有什么好处?
Ultralytics YOLO26 通过提供实时目标检测和警报机制增强了安防系统。通过使用 YOLO26,你可以创建一个安防报警系统,当监控区域内检测到新目标时触发警报。了解如何使用 YOLO26 设置 安防报警系统 以实现强大的安全监控。
Ultralytics YOLO 如何改善排队管理系统?
Ultralytics YOLO26 可以通过精确计数和跟踪排队人数,从而帮助减少等待时间和优化服务效率,显著改善排队管理系统。遵循我们关于 排队管理 的详细指南,了解如何实现 YOLO26 以进行有效的排队监控和分析。
Ultralytics YOLO 能用于锻炼监控吗?
是的,Ultralytics YOLO26 可以通过实时跟踪和分析健身动作有效地用于锻炼监控。这允许对锻炼姿势和表现进行精确评估。探索我们的 锻炼监控 指南,了解如何使用 YOLO26 搭建基于 AI 的锻炼监控系统。
Ultralytics YOLO 如何帮助创建用于 数据可视化 的热图?
Ultralytics YOLO26 可以生成热图以可视化给定区域内的数据强度,突出显示高活动或高关注度区域。此功能对于理解各种计算机视觉任务中的模式和趋势特别有用。了解更多关于使用 YOLO26 创建和使用 热图 的信息,以进行全面的数据分析和可视化。