Computer Vision (CV)
了解计算机视觉如何让机器理解图像和视频。学习核心任务、行业应用以及如何开始使用 Ultralytics YOLO。
计算机视觉(CV)是人工智能(AI)的一个领域,使计算机和系统能够从数字图像、视频及其他视觉输入中提取有价值的信息。如果说AI赋予了机器思考的能力,计算机视觉则赋予了它们看见、观察和理解的能力。与基于规则的图像处理工具不同,现代系统直接从数据中学习:它们从未被明确告知汽车或肿瘤长什么样,而是通过成千上万个带标签的示例来识别底层的模式,并将这些知识泛化到它们从未见过的图像中。通过应用机器学习(ML)和深度学习(DL),计算机视觉将非结构化视觉数据转化为软件可以采取行动的决策。
计算机视觉的工作原理#
计算机将图像视为表示像素的数值数组。将该数组转化为行动遵循一个五个阶段的流水线。

图像采集。 工作流从硬件开始——CMOS传感器、红外相机或LiDAR扫描仪——捕获光线并将其转换为数字像素网格。在分析开始之前,相机标定会处理镜头几何形状。
预处理。 捕获的数据被归一化,以便模型接收到一致的输入:调整大小、降噪和调整对比度。
特征提取。 系统识别低级特征,如边缘、梯度和角点。随着数据深入网络内部,这些基本图元组合成高级特征——纹理、模式和复杂的几何形状。系统可能会检测到垂直线,将其识别为栅栏柱,然后将场景理解为边界。这个过程被称为特征提取。
模型推理。 现代计算机视觉的引擎是卷积神经网络 (CNN)。与将图像视为平坦数字列表的标准神经网络不同,CNN 通过在图像上滑动的滤波器来保留像素之间的空间关系,从而检测出模式,无论它们出现在画面的哪个位置。最近,视觉 Transformer (ViT) 已经成为一种强大的替代方案,将自然语言处理中的注意力机制应用于图像数据。
输出与行动。 模型返回一个结构化结果——一个标签、一组边界框或一个像素掩码——周围的系统据此采取行动:拒绝有缺陷的零件、刹车或发出警报。
模型如何学习#
模型的好坏取决于它所使用的数据。监督学习需要大量的训练数据,像ImageNet和COCO这样的基准测试提供了数百万个带注释的示例。在训练期间,模型进行预测,将预测结果与真实标签进行比较,并调整其内部权重以减少误差。一旦训练完成,同一个模型就会执行上述推理步骤。
从基于规则的系统向深度学习的转变#

AlexNet的发表标志着一个转折点。它在超过一百万张带标签的ImageNet图像上进行训练,证明了卷积网络可以在规模上胜过人工设计的方法。深度学习用能够自己学习特征的架构取代了人工调整的规则——这些架构足够灵活,能够在从未被完全控制的现实世界条件下保持稳定。
计算机视觉与图像处理与机器视觉的对比#
区分计算机视觉与经常与之混淆的相邻领域是很重要的。
- **图像处理**通过操作图像来增强它或提取信号——调整亮度、对比度或应用滤波器。它的输出通常是另一张图像。计算机视觉以图像为输入,输出解释(“这个房间里有三个人”)。计算机视觉通常使用图像处理作为准备步骤。
- **机器视觉**指在具有固定光照和已知零件位置的严格控制环境中运行的工业检测系统。计算机视觉是一个更广泛的学科,专为处理不可预测的、不受控的条件而构建。
- 自然语言处理处理文本和语音。计算机视觉完全围绕视觉数据展开,不过视觉语言模型正在越来越多地将两者桥接起来。
核心计算机视觉任务#
计算机视觉不是单一的功能,而是一组不同的任务,每个任务都解决不同的问题。有关每个任务的更深入演练,请参阅计算机视觉任务完整指南。
- **图像分类:**为整张图像分配一个单一标签,回答“这张图片里有什么?”——例如,将产品分类为有缺陷或无缺陷。与之密切相关的是图像识别,它能识别出存在什么内容。
- **目标检测:**识别不同的对象并在每个对象周围画一个边界框,使系统能够在单帧中计数和定位多个对象。
- **实例分割:**为每个检测到的对象生成像素级掩码,分离出同一类别的各个实例。语义分割则为每个像素分配一个类别,而不区分实例。
- **姿态估计:**检测对象上的关键点(如人体关节),以追踪运动和姿势。
- **旋转边界框:**为未对齐轴的对象拟合旋转框——这在航空和卫星影像中至关重要。
- **目标追踪:**在视频流中跟随对象,在帧之间保持一致的ID。光流通过分析连续帧之间的表观运动来扩展这一点。
- **光学字符识别(OCR):**将打印或手写文本的图像转换为机器可读的数据,从而大规模自动化文档处理。
选择正确的任务#
从一开始就将技术任务与业务目标保持一致,可以避免代价高昂的返工。
| 业务目标 | 要使用的任务 |
|---|---|
| 将产品分类 | 图像分类 |
| 统计物品或定位其位置 | 目标检测 |
| 分析物体的确切形状或边界 | 实例分割 |
| 追踪视频帧中的运动 | 目标跟踪 |
| 测量身体位置或关节角度 | 姿态估计 |
| 检测航空影像中的旋转物体 | 旋转边界框 |
| 从文档或标签中读取文本 | 光学字符识别 |
实际应用#
计算机视觉现在是大多数主要行业中生产系统的基石。

- 制造业与质量控制。 现代生产线的运行速度超过了人类的视觉能力。视觉系统以产线速度执行即时的质量检测,识别微小裂纹或错位的组件,而不会产生人类检查员积累的疲劳。监测机械的磨损模式还能实现预测性维护——在故障导致计划外停机之前发现故障特征。参见制造业中的计算机视觉和缺陷检测。
- 医疗保健与诊断。 医学图像分析算法处理X光、MRI和CT扫描,以检测在时间压力下容易漏诊的早期肿瘤、微小骨折和视网膜异常。在手术室中,视觉系统在微创手术期间提供实时的空间映射。参见医疗保健中的计算机视觉。
- 零售。 无人收银店使用传感器融合和视觉算法来追踪离开货架的商品并自动向客户计费。同样的系统实时监控货架库存水平以触发补货警报,支持库存管理和零售防损。参见零售中的计算机视觉。
- 自动驾驶运输。 感知层是自动驾驶汽车中最关键的安全组件。视觉系统实时识别车道标记、交通标志、行人和其它车辆,将相机输入与雷达和LiDAR相结合,通过3D目标检测构建车辆周围环境的360度模型。参见自动驾驶汽车。
- 安全与监控。 安全基础设施已经从被动记录转变为主动干预——检测受限制区域内的徘徊、在异常行为模式发生时进行标记,以及支持公共场所的排队管理。异常检测是其底层能力。
- 农业。 无人机和拖拉机在单个植物级别评估作物健康状况,分析多光谱图像以寻找脱水、害虫侵扰或营养缺乏。随后,水、农药和肥料只在需要的地方施用,而不是覆盖整个田地。参见农业中的计算机视觉。
边缘端的计算机视觉#
实时视觉分析越来越多地在边缘端运行——直接在相机或本地网关上——而不是将视频路由到集中的云服务器。这之所以重要,有两个原因。
延迟降至接近零,这对于自动机器人或工业流水线检测来说是不可妥协的,因为毫秒级的延迟就会产生错误。并且由于跨网络传输的是元数据而不是原始视频,带宽需求急剧下降,同时隐私性得到提升,因为敏感画面永远不会离开本地设备。边缘AI和实时推理使这一切变得切实可行,诸如ONNX和TensorRT等模型部署选项使单个训练好的模型能够在各种硬件上运行。
挑战与局限性#
数据质量。 模型反映了其训练数据的质量。低分辨率、标注不良或缺乏代表性的数据集会产生不可靠的模型,构建多样化的标注数据集往往比设计算法更耗费人力。参见数据标注。
环境变量。 暴雨、镜头眩光、部分遮挡和可变的物体尺度都会降低性能。强大的系统在训练期间依赖数据增强来模拟这些条件并在部署前建立弹性,并通过仔细验证来避免过拟合。
伦理考量与偏见。 在缺乏人口统计多样性的数据集上训练的模型在各个群体间的表现会不均衡。部署分析人的系统(如医学影像、工作场所安全或公共场所)的组织必须对其数据集进行公平性审计,并遵守涵盖自动化决策的新兴法规。
计算机视觉的未来#
Vision Transformers正在重塑在需要理解图像遥远部分之间关系的任务中所能实现的目标。除此之外,多模态学习将视觉数据与文本、音频和深度相结合,以构建具有更丰富上下文理解能力的系统——回答有关图像问题的视觉语言模型就是一个早期示例。
生成式AI正在直接解决数据稀缺问题。合成数据使得创建罕见场景的高真实感图像成为可能——例如在现实世界中无法收集到足够体量的特定故障模式、罕见疾病表现。同时,深度感测相机和LiDAR正将系统从平坦的图像分析推向空间计算,在此计算中,数字信息被叠加在物理世界上,用于AR引导的维护和结构测绘等应用。
使用Ultralytics实现计算机视觉#
对于正在试用计算机视觉项目的团队来说,Ultralytics YOLO26是实时目标检测的实用起点——开源、文档齐全,且速度足够快,可以在边缘端运行。跨硬件的准确性和延迟数据发布在基准测试页面上,文档中包含模型横向对比。更广泛的生态系统包括用于经典图像处理的OpenCV以及作为主要训练框架的PyTorch。
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Run inference on a standard example image
# The model identifies objects and their locations
results = model("https://ultralytics.com/images/bus.jpg")
# Display the resulting image with bounding boxes
results[0].show()此脚本使用预训练模型在几行代码内执行推理。从试用转向生产的团队可以使用Ultralytics Platform来标注数据集、在云端训练模型并管理部署,或者应用迁移学习,以比从头训练少得多的标注数据将预训练模型适应于自定义数据集。
常见问题解答#
计算机视觉与机器学习有什么区别? 机器学习是构建从数据中学习的系统的更广泛学科。计算机视觉是该学科的应用——通常通过深度学习——应用于图像和视频等视觉输入。几乎所有现代计算机视觉都建立在机器学习的基础上,但机器学习还涵盖文本、音频和表格数据。
计算机视觉等同于图像识别吗? 不是。图像识别是计算机视觉中的一个任务——即识别图像中出现的内容。计算机视觉还涵盖目标检测、分割、姿态估计、追踪和场景理解。
**训练计算机视觉模型需要多少数据?**这取决于任务的复杂程度以及模型需要处理的变体数量。从预训练模型(如 Ultralytics YOLO26)进行迁移学习可以大大减少数据需求,并且实用的自定义检测器通常每个类别只需几百到几千张标注图像,而不需要训练基础模型所需的数百万张图像。
计算机视觉可以在没有互联网连接的情况下运行吗? 可以。模型可以直接部署到边缘设备并完全离线运行,在延迟、带宽或数据隐私排除了将视频发送到云端的情况下,这是标准做法。
计算机视觉使用哪种编程语言? Python占主导地位,这归功于其生态系统的成熟度——ultralytics包、PyTorch和OpenCV。在需要最大推理性能的地方则使用C++,通常是在嵌入式和汽车系统中。






