Ultralytics Solutions 实战指南:用 YOLO26 快速构建计数、模糊、安防等实时视觉方案

发布时间:2026/9/9 12:38:46
Ultralytics Solutions 实战指南:用 YOLO26 快速构建计数、模糊、安防等实时视觉方案 Ultralytics Solutions 实战指南用 YOLO26 快速构建计数、模糊、安防等实时视觉方案【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics本文以仓库中的 Solutions 索引文档 为主体系统梳理 Ultralytics 内置的 17 类开箱即用视觉解决方案。读者可以了解各解决方案的适用场景、统一参数体系Solution参数 / 跟踪参数 / 可视化参数、SolutionResults结构化返回结果、命令行CLI调用语法并结合 solutions 源码包 理解其底层工作原理从而直接上手在自己的项目里落地目标计数、区域计数、目标模糊、停车场管理、AI 健身等场景。什么是 Ultralytics SolutionsUltralytics Solutions 是基于 YOLO 系列模型当前文档以 YOLO26 为示例封装的一批面向真实业务的即用型视觉应用覆盖目标计数、区域计数、模糊/裁剪、安全告警、热力图、速度估计、队列与停车场管理、距离计算、相似度检索、AI 健身监测等典型需求。它把检测 跟踪 区域判断 统计/告警 可视化这一套常见流水线固化为高层 API开发者无需自行拼接跟踪器、坐标换算与绘制代码只需实例化对应类并传入图片/视频即可获得带标注画面与结构化统计结果。在仓库中这些解决方案位于 ultralytics/solutions/ 包内并在 ultralytics/solutions/init.py 中统一导出包括AIGym、Analytics、DistanceCalculation、Heatmap、Inference、InstanceSegmentation、ObjectBlurrer、ObjectCounter、ObjectCropper、ParkingManagement、ParkingPtsSelection、QueueManager、RegionCounter、SearchApp、SecurityAlarm、SpeedEstimator、TrackZone、VisionEye、VisualAISearch。每个类均可from ultralytics import solutions后通过solutions.ClassName直接使用。解决方案全景场景与对应指南以下是仓库提供的解决方案导览。每一条都对应一份独立的分步指南文档位于 docs/en/guides/可按需深入Analytics基于 YOLO26 进行描述性、预测性与规范性数据分析从视觉流中发现规律、辅助决策。Distance Calculation利用目标边界框质心计算目标间距适用于空间关系分析。Heatmaps以检测热力图呈现目标在画面中的分布密度直观定位高活动区域。Instance Segmentation with Object Tracking实例分割 目标跟踪兼顾精细目标边界与持续监控。Live Inference with Streamlit基于 Streamlit 在浏览器中实时进行目标检测。Object Blurring对检测目标打码模糊用于图像/视频的隐私保护。Object Counting对实时视频流中的目标进行出入计数。Object Counting in Regions在自定义区域内统计目标数量适合多区域差异化监控。Object Cropping从图像/视频中精确裁剪出检测目标。Parking Management停车场车辆流组织与调度优化空间利用率。Queue Management排队区域人数统计与等待管理减少等待时间、提升效率。Security Alarm System检测到新目标即触发告警支持邮件通知可自定义规则。Similarity Search将 OpenAI CLIP 嵌入与余弦相似度检索结合支持person holding a bagvehicles in motion等自然语言检索图片。Speed Estimation结合跟踪估算目标移动速度适用于自动驾驶与交通监控。Track Objects in Zone只在画面中指定区域内跟踪目标实现精确高效的定点监控。VisionEye View Objects Mapping模拟人眼聚焦效果将目标质心映射到视觉焦点提升计算机对细节的辨析与优先级排序能力。Workouts Monitoring实时跟踪分析健身动作俯卧撑、引体向上、深蹲等的角度、次数与动作阶段。用 Python 调用并读取结构化结果SolutionResults除 Similarity Search 外所有 Solution 调用都会返回一个SolutionResults对象其中封装了画面绘制结果与业务统计字段。以目标计数为例代码继承自原文档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( showTrue, # display the output regionregion_points, # pass region points modelyolo26n.pt, # modelyolo26n-obb.pt for object counting with OBB model. # classes[0, 2], # count specific classes i.e. person and car with COCO pretrained model. # trackerbotsort.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_count要点说明model既支持yolo26n.pt这类检测模型也可换用yolo26n-obb.pt做旋转框OBB目标计数模型配置参考 ultralytics/cfg/models/26/。classes可用 COCO 预训练模型的类别索引过滤例如classes[0, 2]只统计 person0与 car2。计数逻辑依赖跟踪器跨帧关联同一目标因此可以切换trackerbytetrack.yaml等跟踪配置见下文跟踪参数。传入单帧图片时可直接counter(im0)传入视频路径时 Solution 内部会自动按帧迭代处理。SolutionResults的完整属性在源码 ultralytics/solutions/solutions.py 中定义初始化时带有默认值并支持通过**kwargs覆盖。文档明确列出如下属性属性类型说明plot_imnp.ndarray叠加了计数、模糊等效果或 Solution 特有增强的绘制结果图in_countint视频流中进入定义区域的目标总数out_countint视频流中离开定义区域的目标总数classwise_countDict[str, int]按类别记录的进出数量字典用于进阶分析queue_countint当前处于排队/等待区域内的目标数量队列管理workout_countlist[int]AI Gym 中每个正在跟踪个体的动作次数一人一项workout_anglelist[float]AI Gym 中每个正在跟踪个体的动作角度workout_stagelist[str]AI Gym 中每个正在跟踪个体当前所处动作阶段pixels_distancefloat两个目标/点之间基于像素的距离距离计算available_slotsint监控区域中的空闲车位数量停车场管理filled_slotsint监控区域中已被占用的车位数量停车场管理email_sentbool告警邮件是否已成功发送安全告警系统total_tracksint视频分析期间观测到的唯一目标轨迹总数region_countsDict[str, int]用户自定义区域内各区域的目标数量speed_dictDict[str, float]按轨迹记录的目标速度字典用于速度分析total_crop_objectsintObjectCropper 方案生成的裁剪目标图总数speedDict[str, float]跟踪与 Solution 处理流程的性能耗时统计字典SolutionResults还实现了__str__会剔除plot_im以及值为None/0/0.0/False/空容器的字段后格式化输出便于快速打印本次调用的有效统计。Solution 统一参数一次学会所有方案的配置各 Solution 构造器共享一套统一定义参数默认值见仓库 docs/macros/solutions-args.md参数类型默认值说明modelstrNoneUltralytics YOLO 模型文件路径regionlist或dictNone定义感兴趣区域的点可以是(x, y)元组列表也可以是区域名 → 点列表的字典仅RegionCounter支持多区域。为None时需要区域的 Solution 会回退到预设默认区域show_inboolTrue是否在视频流上显示进入in计数show_outboolTrue是否在视频流上显示离开out计数analytics_typestrline图表类型line、bar、area或piecolormapintcv2.COLORMAP_DEEPGREEN热力图使用的 OpenCV 颜色映射line_widthint2Solution 绘制的框、关键点与计数的线条粗细verboseboolTrue是否逐帧打印输入尺寸、类别数量与处理速度日志底层跟踪调用本身始终静默json_filestrNone存放停车场坐标数据的 JSON 文件路径up_anglefloat145.0判定上姿态的角度阈值kptslist[int][6, 8, 10]健身监测使用的三个关键点索引对应肩、肘、腕等关节点用于俯卧撑、引体向上、深蹲与卷腹等动作down_angleint90判定下姿态的角度阈值blur_ratiofloat0.5模糊强度比例取值范围0.1 - 1.0crop_dirstrcropped-detections存放裁剪检测结果的目录名recordsint5触发安全告警系统发送邮件的累计检测次数vision_pointtuple[int, int](20, 20)VisionEye 方案中视觉追踪并绘制路径的焦点位置sourcestrNone输入源路径视频、RTSP 等仅用于 Solutions 命令行接口CLIfigsizetuple[float, float](12.8, 7.2)分析图表热力图/曲线图等的画布尺寸fpsfloat30.0速度计算所用的帧率max_histint5每个目标用于速度/方向计算保留的最大历史点数量meter_per_pixelfloat0.05将像素距离换算为真实世界单位的比例系数max_speedint120可视化叠加层中的最大速度限值用于告警datastrimages相似度检索所用图片目录路径imgszint640模型推理输入图像尺寸可以看到这套参数横跨了计数显示、绘制风格、健身角度、模糊比例、车位数据文件、安全告警阈值、相似度检索数据目录等多个方案的具体需求实际使用时只需传入与自身方案相关的参数即可其余保持默认。跟踪参数Solution 向track转发的能力多个 Solution 依赖跟踪器实现跨帧关联因此会将其中的部分参数转发给底层的track调用即tracker、conf、iou、classes和device参数表见 docs/macros/solutions-track-args.md参数类型默认值说明trackerstrbotsort.yaml指定跟踪算法内置可选botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yamlconffloat0.25检测置信度阈值调低会跟踪更多目标但可能引入误检ioufloat0.7用于过滤重叠检测的交并比IoU阈值classeslistNone按类别索引过滤结果例如classes[0, 2, 3]只跟踪指定类别devicestrNone推理设备如cpu、cuda:0或0可在 CPU、指定 GPU 或其他计算设备间选择全部跟踪算法配置文件位于 ultralytics/cfg/trackers/。实际业务中conf直接决定计数/统计的噪声程度而tracker的选择会影响目标 ID 的稳定性与跨帧连续性——例如拥挤场景往往更倾向 ByteTrack 或深度特征重识别类的跟踪器。可视化参数控制输出画面多数方案支持用show_conf、show_labels等参数定制叠加画面默认值定义在 docs/macros/visualization-args.md。文档重点说明的三个参数如下参数类型默认值说明showboolFalse为True时在窗口中实时显示标注后的图像/视频便于开发调试即时反馈show_confboolTrue在标签旁显示每个检测的置信度帮助判断模型对每个检测的把握程度show_labelsboolTrue在可视化输出中为每个检测显示类别标签同表还支持save、save_frames、save_txt、save_conf、save_crop、show_boxes、line_width等参数可用于保存结果、导出文本检测记录格式为[class] [x_center] [y_center] [width] [height] [confidence]或裁剪检测目标。底层绘制能力SolutionAnnotator所有 Ultralytics Solution 使用一个独立类SolutionAnnotator它继承自主标注类Annotator。在源码 ultralytics/solutions/solutions.py 中可以看到其构造器与父类保持一致的参数图像、线宽、字号、字体、是否使用 PIL 渲染、示例文本并在此基础上扩展了面向解决方案的绘制方法方法返回类型说明draw_region()None用指定点、颜色与粗细绘制区域queue_counts_display()None在指定区域显示队列计数display_analytics()None显示停车场管理的整体统计信息estimate_pose_angle()float计算目标姿态中三点构成的夹角draw_specific_kpts()np.ndarray在图像上绘制指定关键点plot_workout_information()int在图像上绘制带标签的文本框plot_angle_and_count_and_stage()None可视化角度、步数与动作阶段健身监测plot_distance_and_line()None显示质心间距离并用连线连接距离计算display_objects_labels()None为边界框标注目标类别标签sweep_annotator()None可视化一条竖向扫掠线及可选标签visioneye()None将目标质心映射连接到视觉焦点点VisionEyeadaptive_label()None在边界框中心绘制圆形或矩形背景标签以draw_region为例源码实现先用cv2.polylines闭合绘制区域轮廓再在每个角点画实心小圆以标出关键顶点这正是各计数/区域方案共用的一套区域可视化基础。通过 CLI 命令行使用大部分 Solution 可直接在命令行中使用包括count、crop、blur、workout、heatmap、isegment、visioneye、speed、queue、analytics、inference、trackzone。命令语法yolo SOLUTIONS SOLUTION_NAME ARGSSOLUTIONS固定关键字solutions。SOLUTION_NAME取值为[count, crop, blur, workout, heatmap, isegment, queue, speed, analytics, trackzone, inference, visioneye, region, security, parking]之一。ARGS可选自定义的argvalue键值对用于覆盖默认设置例如show_inTrue。示例yolo solutions count showTrue # 目标计数并显示输出画面 yolo solutions count sourcepath/to/video.mp4 # 指定视频文件路径命令行中的source参数见上文 Solution 参数表允许输入本地视频或 RTSP 流showTrue则会弹出窗口实时预览。CLI 与 Python API 共用同一套model/conf/iou/region等配置便于从命令行快速验证再到 Python 中集成。从源码理解Solution 类与结果对象如何协作将文档与仓库源码对照可以更清晰地把握这套架构统一的导出入口ultralytics/solutions/init.py 把 19 个类统一收进__all__这就是from ultralytics import solutions能直接使用solutions.ObjectCounter、solutions.Heatmap等的原因。结构化的返回对象SolutionResults定义在 ultralytics/solutions/solutions.py其构造器接受任意**kwargs并以默认值兜底因而不同方案可以只填充各自关注的字段如计数方案填in_count/out_countAI Gym 填workout_count/workout_angle停车场方案填available_slots/filled_slots。统一视觉增强层SolutionAnnotator继承基础Annotator因此既拥有仓库通用标注能力见 docs/en/reference/utils/plotting.md又扩展了上述与具体业务相关的绘制方法。逐方案实现每个方案都有独立文件与单元测试如 tests/test_solutions.py例如 object_counter.py、heatmap.py、ai_gym.py、parking_management.py 等需要阅读某个方案的具体计数/告警/统计逻辑时可按对应文件名直接定位。常见问题FAQ如何用 Ultralytics YOLO 做实时目标计数YOLO26 借助其目标检测能力即可完成实时计数参考 Object Counting 指南安装后加载模型并逐帧处理视频即可动态统计目标。计数前可先通过classes[0, 2]限定类别、用conf过滤低置信度检测再通过跟踪器保证同一目标只计一次。用 Ultralytics YOLO 构建安防系统有什么收益YOLO26 提供实时检测与告警机制可在监控区域检测到新目标时触发告警。参考 Security Alarm System通过records参数控制触发邮件通知的累计检测次数即可搭建稳健的安防监控。Ultralytics YOLO 如何改善排队管理通过准确计数与跟踪队列中的人员减少等待时间、优化服务效率。参考 Queue Management利用queue_count掌握当前等候区人数必要时可结合自定义region划定排区域。Ultralytics YOLO 能否用于健身动作监测可以。YOLO26 可实时跟踪分析健身动作评估动作姿势与完成度。参考 Workouts Monitoring其中kpts、up_angle、down_angle分别控制参与角度计算的关键点与上下两个姿态判定阈值SolutionResults中的workout_count/workout_angle/workout_stage返回逐人计数、角度与阶段。Ultralytics YOLO 如何生成热力图辅助数据可视化YOLO26 可将目标空间分布生成热力图标出高活动/高关注区域适合分析活动规律与趋势。参考 Heatmaps并通过colormap调整 OpenCV 颜色映射、figsize控制画布尺寸以适配不同展示需求。延伸阅读与后续探索想为某个方案补充指南或新方案参考 贡献指南 了解提交流程。各方案的类与方法签名细节见 docs/en/reference/solutions/ 下的逐类参考文档solutions.md汇总SolutionAnnotator与SolutionResults。动手跑通全部方案前建议先阅读各自的分步指南链接见上文解决方案全景一节从单帧图片验证region/绘制参数再切换到视频或 RTSP 流做端到端验证。【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻