Computer Vision (CV)
计算机视觉(CV)是让机器理解图像和视频的 AI 领域。介绍其工作原理、核心任务、应用和挑战。
计算机视觉 (CV) 是人工智能 (AI)的一个领域,使计算机能够从图像、视频和其他视觉数据中提取含义:有哪些对象、对象在哪里、如何移动,以及场景中发生了什么。现代系统通过样本学习这些能力。在数千张标注图像上训练的模型可以学会汽车、裂缝或肿瘤的视觉模式,并将这些模式应用于从未见过的图像;因此,这一领域如今以机器学习 (ML),尤其是深度学习 (DL)为基础。
计算机视觉的工作原理#
对计算机来说,彩色图像就是一个数字网格。一张 640×480 的照片包含 921,600 个数值,每个像素的三个颜色通道各对应一个强度值,范围为 0 到 255。计算机视觉流水线会通过五个阶段将这个网格转换为决策。

相机或传感器负责采集图像;随后,预处理(通常使用 OpenCV)会调整图像大小并进行归一化,让模型始终接收相同格式的输入。接着,模型执行特征提取:卷积神经网络 (CNN)的早期层会响应边缘和颜色梯度,中间层会将它们组合成纹理和部件,深层则会响应完整对象。视觉 Transformer (ViT)通过将图像切分为图块,并利用自注意力关联每个图块与其他所有图块,从而获得相似的表示。特定任务的检测头会将特征转换为输出,例如类别标签、一组边界框或像素掩码;外围系统则会据此采取行动,例如剔除有缺陷的零件、让车辆制动或触发警报。
模型通过监督学习学习这些特征。训练期间,模型会对标注图像进行预测;损失函数会衡量每项预测与真实标注的差距;反向传播则会调整权重以缩小误差。ImageNet等大型公开数据集包含 1400 多万张标注图像,COCO包含 80 种日常对象类别;大多数定制模型都通过迁移学习从这些数据集提供的预训练模型开始。
从手工设计特征到深度学习#

早期计算机视觉依赖人工设计的特征。工程师编写边缘、角点和梯度模式(例如 SIFT 和 HOG)的检测器,然后将这些特征传给分类器;每当光照、视角或背景发生变化,这些系统就会失效。转折点出现在 2012 年:AlexNet在 ImageNet 挑战赛中获胜,top-5 错误率为 15.3%,而排名第二的参赛作品为 26.2%。从那以后,CNN 和自 2020 年起的视觉 Transformer 开始直接从数据中学习特征。视觉语言模型 (VLM)如今会将图像与文本配对,因此一个模型就能回答有关照片的开放式问题,或查找用自然语言描述的对象。VLM Leaderboard会衡量这些模型在真实世界数据集中检测对象的准确度。
计算机视觉的核心任务#
不同任务会回答有关图像的不同问题:
- 目标检测:查找每个对象并在其周围绘制边界框,同时给出类别和置信度分数,从而实现计数和定位。
- 实例分割:为每个对象生成独立的像素掩码,让并排站立的两个人仍能彼此区分。
- 语义分割:为每个像素标注类别,例如道路、人行道或天空。
- 深度估计:根据单张图像预测每个像素与相机之间的距离。
- 图像分类:为整张图像分配一个标签,例如“有缺陷”或“正常”。
- 姿态估计:定位身体关节等关键点,以测量姿势和动作。
- 有向边界框 (OBB):为任意角度的对象拟合旋转边界框,例如卫星图像中的船只和飞机。
- 对象跟踪:关联视频帧中的检测结果,让每个对象始终保持一致的 ID。
选择任务时,首先要考虑应用需要什么输出:
Ultralytics YOLO26通过一个 Python API支持其中七种任务:相同的 YOLO() 调用可以加载检测、实例分割、语义分割、深度、分类、姿态或 OBB 模型,而 model.track() 可增加视频跟踪。以下示例会对示例图像运行目标检测:
from ultralytics import YOLO
# 加载一个预训练的 YOLO26 nano 目标检测模型
model = YOLO("yolo26n.pt")
# 对示例街景图像运行推理
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# 打印每个类别的检测对象数量,并保存标注后的图像
print(result.verbose())
result.save(filename="bus_detections.jpg")打印的内容是每个类别的检测数量;保存的图像会为每个对象绘制边界框、标签和置信度分数。
计算机视觉与相关领域的比较#
- 图像处理:通过锐化、降噪、缩放或调整对比度,将一张图像转换为另一张图像。计算机视觉流水线会在解读场景前将这些操作用作预处理。
- 机器视觉:计算机视觉在工业检测和机器人引导中的应用,通常使用固定相机、受控光照,以及生产线上的专用硬件。
- 图像识别:图像分类的常见同义词,有时也被宽泛地用于指代任何识别图像内容的任务。
实际应用#

- 制造业:相机以生产线速度检查每个零件是否存在裂缝、划痕和部件错位,并在机械设备发生故障前跟踪其磨损情况。
- 医学影像:模型会在 X 光片、CT 扫描和视网膜照片中标出肿瘤、骨折和视网膜疾病,供放射科医生审核。
- 自动驾驶汽车:汽车会实时检测车道、标志、行人和其他车辆,并将相机输出与雷达及 LiDAR 数据融合,构建周围环境的 3D 模型。
- 零售:货架相机会检测空货位和摆放错误的商品;无需结账的商店则会跟踪每位顾客拿取的商品。
- 农业:无人机和喷洒设备会逐株区分作物与杂草,让除草剂和肥料只用在需要的地方。
- 安防与智慧城市:系统会统计人员和车辆、监控交通流量,并利用异常检测标记限制区域内的异常事件。
挑战与局限#
模型的表现取决于训练集的质量,而数据标注——在数千张图像上绘制边界框或掩码——往往比模型训练本身更费力。部署后条件也会变化:雨水、眩光、夜间光照、遮挡或相机位置变动,都可能让输入偏离模型训练时见过的数据。数据增强会在训练期间模拟这些情况,使用留出图像进行验证则能在发布前发现过拟合。
算力是下一个限制因素。相机、无人机和手机需要在严格的功耗和内存预算内运行模型,因此边缘 AI部署倾向于使用小型模型和模型量化,以实现实时速度,而无需将视频发送到云端。
分析人的系统会引发关于偏差和隐私的担忧。如果某些群体在数据集中代表性不足,模型在不同群体上的表现就会不均衡;在大多数隐私法规中,面部和身体数据都属于敏感个人数据。自 2025 年 2 月起,欧盟人工智能法案禁止执法部门在公众可进入的场所实时远程识别生物特征,但搜寻绑架受害者或防止迫在眉睫的恐怖威胁等少数例外情况除外。










