YOLO Vision 2026:
指南

利用可视化技术增强计算机视觉应用

了解如何使用 Ultralytics Python 包将计算机视觉应用中的数据转换为易于理解的图表,以获得更好的洞察。

NUNuvola Ladi4 min read
将计算机视觉数据转化为分析图表

从机场航站楼、火车站到购物中心,每分钟都在产生海量数据。随着人工智能的普及,这些数据大多已被分析和拆解。但有时,这些AI模型的结果很难让你一目了然地识别模式或理解趋势。这就是数据可视化发挥作用的地方——它能将复杂的输出转化为清晰、易于消化的见解。

在计算机视觉应用中尤其如此。计算机视觉人工智能 (AI)的一个分支,可帮助机器解释和理解周围世界的视觉信息(例如图像和视频)。虽然诸如 Ultralytics YOLO11 之类的视觉 AI 模型可以帮助分析此类视觉数据以获取信息,但数据可视化有助于将该信息转化为易于理解的格式。

简而言之,数据可视化通过使用有意义的分析图表,弥合了原始数据与真正理解之间的差距。在当今数据驱动的世界中,这一点至关重要,因为机器仅仅执行任务是不够的——我们还需要它们讲述一个故事。

这种讲故事的需求正是数据可视化兴起的原因,预计到 2030 年该市场规模将达到 183.6 亿美元。此前,我们探讨了计算机视觉如何提供有价值的商业洞察。今天,我们将进一步通过 Ultralytics 软件包演示如何为计算机视觉应用生成清晰、有见地的分析图表。我们开始吧!

Visualizing data based on outputs from Ultralytics YOLO11

图 1。基于 YOLO11 输出的数据可视化示例。

计算机视觉应用程序中数据可视化的概述#

计算机视觉应用中的数据可视化涉及将计算机视觉任务(例如对象检测和跟踪)的结果转换为易于理解的图表或仪表板。这些视觉效果有助于识别模式和趋势,在处理大量视频素材时尤其如此。

例如,与其手动查看数小时的监控视频,不如用一个简单的折线图来展示随时间推移检测到的汽车或人数,这可以快速凸显高峰时段或异常安静的时期。

以下是数据可视化为何有用的几个关键原因:

  • 简化复杂数据: 成千上万个目标检测结果可能会令人不知所措,但柱状图或饼图等可视化工具可以让你更容易地看到全局,例如哪些物体出现得最频繁。

  • 揭示趋势: 折线图和柱状图有助于识别随时间变化的模式,例如人流量在何时何地趋于增加。

  • 节省时间: 图表可以快速突出重要细节,例如车辆活动的突然激增或限制区域内异常目标的出现,而无需逐帧查看视频。

  • 改善沟通: 可视化效果使与非技术人员分享见解变得更容易,有助于每个人更清晰地理解结果。

不同类型的数据可视化#

不同类型的分析图表可以将计算机视觉结果转化为清晰、易懂的视觉效果。假设你正在开发一个用于检测监控视频中的人员和车辆的计算机视觉应用。在这种情况下,折线图非常适合展示检测数量随时间的变化情况,例如跟踪全天人流量的高峰。

同样,当你想要比较检测到的不同目标类型的数量时(例如查看视频中出现的汽车、自行车或行人哪个更多),柱状图很有帮助。另一方面,饼图则显示了每种目标类型占总检测量的百分比。每个图表都有其特定的用途,有助于使复杂的计算机视觉数据更易于解释和分享。

分析图表示例

图 2。分析图表示例。

生成分析图表以获取计算机视觉见解#

既然我们已经探讨了什么是数据可视化以及为什么不同类型的分析图表很重要,接下来让我们仔细看看如何使用 Ultralytics Analytics 解决方案来可视化计算机视觉模型预测的结果。在我们逐步浏览该过程之前,先来看看用于训练和使用 Ultralytics 软件包以及 YOLO11 等模型的工具和设置选项。

Ultralytics Python 程序包可以轻松训练模型、检测目标、运行预测并可视化结果。要开始使用它,你需要一个编码环境。这里有三个简单的选项:

  • 命令行界面 (CLI): 这是一个基础的、纯文本工具,你可以在其中输入命令来运行代码。它没有可视化界面,你需要通过在终端或命令提示符中输入指令来与其交互。

  • Jupyter Notebooks: 这是一个交互式编码环境,你可以在其中一次编写、运行和测试一小段代码(称为“单元格”)。它直接在每个单元格下方显示结果,从而易于逐步理解正在发生的事情。它对于学习和实验特别有用。

  • Google Colab:此选项是 Jupyter Notebooks 的免费云端版本,可在网页浏览器中运行。它不需要在你的计算机上进行任何设置,并且为你提供免费的 GPU 以实现更快的处理速度。

这些工具非常适合快速上手,但用户也可以将 Ultralytics 集成到诸如 Visual Studio Code (VS Code) 的集成开发环境 (IDE) 中或生产流水线中。有关更多选项,请探索官方 Ultralytics 文档

第 1 步:设置环境#

一旦选择了首选环境,下一步就是将其设置为运行预测并可视化结果。你可以根据你最熟悉的工具,使用上述提到的任何环境。

如果你在 Google Colab 中工作,请记住它默认使用 CPU,这可能会降低性能。为了加快速度,请通过进入“运行时”菜单,选择“更改运行时类型”,并将硬件加速器设置为 GPU(理想情况下是 T4)来切换到 GPU。

为了准备好你的环境,你需要使用下面提到的命令安装 Ultralytics Python 软件包。在诸如 Colab 或 Jupyter 的基于 Notebook 的工具中,请务必在命令前加上惊叹号 (!)。

pip install ultralytics

第 2 步:下载视频文件#

接下来,我们需要一段视频来处理。你可以从 Pexels 等免费素材网站轻松下载。确保选择包含 Ultralytics YOLO11 可以检测到的物体的视频。由于该模型在 COCO dataset 上进行了预训练,因此它可以识别诸如行人、汽车和自行车等常见物体。

在本教程中,我们将使用繁忙机场航站楼中行李处理的视频。你可以使用相同的视频,或者选择适合你项目的其他视频。

显示机场航站楼行李处理的输入视频画面

图 3。显示机场航站楼行李处理的输入视频画面。

第 3 步:导入程序包#

接下来,我们可以导入必要的库并加载输入视频。

我们将从导入 OpenCV (cv2) 开始,这是一个在计算机视觉中广泛用于处理图像和视频的库。我们还将导入 Ultralytics 库,它可帮助我们运行对象检测并从视频中生成分析

然后,我们将通过指定路径尝试打开视频文件。请确保将 "path/to/video.mp4" 替换为你下载的视频文件的实际位置。

此外,下面的代码片段包含一个简单的检查,以确保视频正确加载。如果路径错误或文件损坏,程序将停止并显示错误消息:"Error reading video file."

import cv2
from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

第 4 步:准备视频写入器#

然后,我们将设置一个视频写入器来保存输出结果。当我们运行分析时,这部分代码将创建一个新的视频文件,记录从原始视频的每一帧生成的更新图表。

在下面的代码片段中,我们首先从输入视频中提取关键属性:其宽度、高度和每秒帧数 (fps)。这些值直接取自视频并转换为整数,以确保它们符合写入输出时的正确格式。

接下来,我们使用 cv2.VideoWriter 函数创建一个名为 "analytics_output.avi" 的新视频文件(你可以根据需要重命名它)。视频使用 MJPG 格式保存,这是一种常见的视频压缩方法。输出分辨率设置为 1280×720 像素,无论原始视频的大小如何。

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
    "analytics_output.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),
)

第 5 步:设置 Ultralytics Analytics 解决方案#

现在,我们将设置 Ultralytics Analytics 解决方案以从视频生成图表。你可以选择数据的显示方式(例如折线图、饼图、面积图或柱状图),以及要使用的 YOLO 模型。在此示例中,我们将使用轻量级的 "yolo11n.pt" 模型并将结果显示为面积图。

analytics = solutions.Analytics(
    show=True,
    analytics_type="area",
    model="yolo11n.pt",
)

第 6 步:处理输入视频#

代码的最后一部分运行一个循环,每次处理视频的一帧。每一帧都会传递给分析工具,该工具会实时更新图表。然后将更新后的图表写入输出视频。如果无法读取某一帧,循环将停止。在所有帧处理完毕后,视频将保存并关闭任何打开的窗口。

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)
        out.write(results.plot_im)
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

第 7 步:综合所有步骤#

最后,让我们把所有内容整合在一起。只需几行额外的代码,我们就可以生成两个输出视频:一个显示带有边界框和标签的 Ultralytics YOLO11 object detection 结果,另一个显示实时分析图表。

为此,我们将设置两个 VideoWriter 实例——一个用于保存预测视频,另一个用于分析。此版本的代码同时包含了目标跟踪和图表生成,因此你可以在查看视觉见解的同时看到检测结果。

这是完整的代码以及预测和分析输出的示例。

import cv2
from ultralytics import YOLO, solutions

# Load model and video
model = YOLO('yolo11n.pt')
cap = cv2.VideoCapture('path/to/video.mp4')
assert cap.isOpened(), "Error opening video"

# Get properties
w, h = int(cap.get(3)), int(cap.get(4))
fps = cap.get(5)
analytics_res = (1280, 720)

# Writers for prediction and analytics videos
out_pred = cv2.VideoWriter('output_predictions.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
out_ana = cv2.VideoWriter('output_analytics.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, analytics_res)

# Analytics setup
analytics = solutions.Analytics(show=True, analytics_type="area", model='yolo11n.pt')

# Process frames
frame_count = 0
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    frame_count += 1
    pred_frame = model.track(frame, persist=True)[0].plot()
    out_pred.write(pred_frame)
    resized = cv2.resize(pred_frame, analytics_res)
    out_ana.write(analytics(resized, frame_count).plot_im)

cap.release(), out_pred.release(), out_ana.release(), cv2.destroyAllWindows()

当上述代码成功运行时,它将生成两个输出视频。文件 “output_predictions.avi” 将显示带有边界框和标签的目标检测结果,而 “output_analytics.avi” 将显示基于检测的实时分析图表。

对象检测输出视频的画面

图 4. “output_predictions.avi” 文件中的一帧。

这是基于预测的分析输出的一帧。使用面积图,我们可以获得诸如行李计数随时间波动之类的见解,例如在第 268 帧附近出现的峰值,这表明视频的那部分存在行李移动或活动。

Ultralytics YOLO11 predictions visualized as an area graph

图 5. 以面积图形式可视化的 Ultralytics YOLO11 预测结果。

在现实世界的计算机视觉应用程序中使用图表#

以下是一些数据可视化具有重大影响的现实计算机视觉应用程序:

  • 医疗保健:计算机视觉系统可以实时监测患者活动、员工移动和设备使用情况。这会生成大量的视觉数据,在经过可视化处理后,可以揭示规律——例如患者高峰占用时间或响应延迟。

  • 零售和电子商务: 视觉 AI 可用于跟踪客户移动、在货架前的停留时间以及产品交互。柱状图或饼图等视觉分析可以突出显示哪些商店区域或商品最受关注,从而帮助零售商优化产品摆放并提高转化率。

  • 制造业: 配备计算机视觉模型的摄像头可以监控装配线的缺陷、安全违规或设备状态。数据可视化可以显示最常见缺陷类型的趋势,或突出显示错误率最高的时间段,从而实现更快的决策制定和预防性维护。

关键要点#

使用 Ultralytics 程序包,你可以轻松地将视频素材转化为清晰、富有洞察力的图表,揭示正在发生的事情,例如跟踪随时间推移出现的人数或目标数量。与其手动查看数小时的视频,你不如生成视觉摘要来突出关键模式和趋势,从而更轻松地迅速采取行动。无论是在医院、零售店还是制造工厂,这些图表都能将复杂的 AI 输出转化为任何人都能理解和使用的见解。

想了解更多关于 AI 的信息吗?浏览我们的 GitHub 仓库,连接我们的社区,并查看我们的许可选项以启动你的计算机视觉项目。在我们的解决方案页面上了解更多关于制造业中的 AI物流行业的计算机视觉等创新技术。

Explore solutions

Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。
了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。
了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。
了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。
了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。
了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。
了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。
了解更多
Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。
了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。
了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。
了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。
了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。
了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。
了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。
了解更多
Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。
了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。
了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。
了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。
了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。
了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。
了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。
了解更多

让我们一起构建 AI 的未来!

开启你的机器学习未来之旅