1 发展历程
1.1 早期探索(1960s-1970s)
计算机视觉的研究可追溯至20世纪60年代,当时科学家们试图让计算机理解简单的二维图像。早期工作包括Larry Roberts于1963年提出的“积木世界”概念,尝试从边缘和线条中重建三维物体。70年代,David Marr提出了视觉计算理论,强调从二维图像恢复三维信息的分层处理框架。这一时期主要集中于基础图像处理和边缘检测算法,受限于当时的计算能力和缺乏大规模数据,进展较为缓慢。
1.2 统计学习与特征工程(1980s-1990s)
80年代和90年代,计算机视觉转向统计学习方法,研究者开始设计手工特征来描述图像内容。例如,SIFT(尺度不变特征变换)和HOG(方向梯度直方图)等特征提取算法被广泛应用于目标识别和图像匹配。同时,支持向量机、随机森林等浅层机器学习模型成为主流分类工具。这一时期还诞生了人脸检测领域的里程碑——Viola-Jones检测器,实现了实时人脸检测。然而,这些方法依赖手工设计特征,泛化能力有限,无法应对复杂场景。
1.3 深度学习革命(2012年至今)
1.3.1 AlexNet的突破
2012年,AlexNet在ImageNet大规模视觉识别挑战赛(ILSVRC)中以显著优势夺冠,将图像分类的错误率从26.2%骤降至15.3%。该网络采用了深度卷积神经网络(CNN)、ReLU激活函数、Dropout正则化以及GPU并行训练等技术,标志着深度学习在计算机视觉领域的全面爆发。AlexNet的成功验证了深度网络在大数据和大算力条件下对传统方法的全面超越,开启了计算机视觉的新纪元。
1.3.2 卷积神经网络(CNN)的普及
受AlexNet启发,卷积神经网络迅速成为视觉任务的标准架构。此后数年,VGGNet、GoogLeNet(Inception)、ResNet等更深的网络相继诞生,不断刷新各项视觉基准的纪录。CNN通过局部连接、权重共享和池化操作,能够自动学习从低级边缘到高级语义的分层特征,彻底取代了手工特征工程。这一阶段,计算机视觉从学术研究快速走向工业应用。
2 核心任务
2.1 图像分类
图像分类任务要求模型为给定图像分配一个或多个类别标签,是最基础的视觉理解任务。代表性的基准数据集包括ImageNet和CIFAR。分类性能通常以Top-1和Top-5准确率衡量。该任务为其他高级任务(如检测、分割)提供了基础骨干网络。
2.2 目标检测
目标检测旨在定位图像中特定物体的位置(通常用边界框表示)并识别其类别。检测任务分为两阶段和单阶段两大类方法。
2.2.1 两阶段检测器(如Faster R-CNN)
两阶段检测器首先生成候选区域(Region Proposals),然后对每个区域进行精细分类和边界框回归。Faster R-CNN通过引入区域提议网络(RPN),将候选区域生成过程融入网络端到端训练,显著提升了检测速度和精度。两阶段方法通常精度较高,适用于对准确性要求严格的任务(如工业质检)。
2.2.2 单阶段检测器(如YOLO、SSD)
单阶段检测器直接在图像上预测边界框和类别概率,无需候选区域阶段。YOLO(You Only Look Once)将检测视为回归问题,一次前向传播即可输出所有目标信息,速度极快。SSD(Single Shot MultiBox Detector)结合不同尺度特征图进行预测,兼顾了速度和精度。单阶段方法更适合实时应用场景(如自动驾驶)。
2.3 图像分割
图像分割将图像划分为多个语义区域,按精细程度可分为语义分割、实例分割和全景分割。
2.3.1 语义分割
语义分割为图像中的每个像素分配一个类别标签(如“道路”、“天空”、“车辆”),但不区分同一类别中的不同个体。代表性网络有FCN(全卷积网络)、U-Net和DeepLab系列。应用包括自动驾驶道路场景解析和医学图像器官划分。
2.3.2 实例分割
实例分割不仅分割出不同类别的物体,还区分同一类别的不同实例(如“汽车1”、“汽车2”)。Mask R-CNN在Faster R-CNN基础上附加了分割分支,成为实例分割的经典基线。广泛用于精细物体感知、视频编辑等场景。
2.3.3 全景分割
全景分割统一了语义分割和实例分割,要求为图像中每个像素同时分配语义类别和实例ID。Panoptic FPN等网络被提出以解决该任务。全景分割是迈向全面场景理解的重要一步。
2.4 目标跟踪
目标跟踪任务持续定位视频序列中特定目标的位置。单目标跟踪(如SiamFC、SiamRPN)在给定初始目标框后,追踪其后续轨迹;多目标跟踪(MOT)则同时跟踪多个目标并维持身份一致性。该技术广泛应用于视频监控、人机交互和运动分析。
2.5 图像生成与修复
图像生成任务涉及从随机噪声或条件输入生成逼真的图像,代表性模型为生成对抗网络(GAN)和扩散模型(如Stable Diffusion)。图像修复旨在填充图像中缺失或损坏的区域,常用方法包括基于GAN的修复网络和自监督学习方法。该领域在艺术创作、文物修复和医疗影像增强中具有重要价值。
3 关键技术
3.1 图像预处理
3.1.1 滤波与增强
图像预处理是视觉管线的第一步。滤波操作(如高斯滤波、中值滤波)用于去除噪声;增强技术(如直方图均衡化、伽马校正)用于改善对比度和光照条件。良好的预处理能有效提升下游任务的鲁棒性。
3.1.2 色彩空间变换
不同色彩空间(如RGB、HSV、Lab)适用于不同场景。例如,HSV空间对光照变化不敏感,常用于颜色检测;Lab空间更接近人眼感知,在图像分割和风格迁移中常用。色彩空间变换还可用于数据增强或去相关处理。
3.2 特征提取
3.2.1 手工特征(SIFT、HOG)
深度学习普及前,手工特征是视觉分析的核心。SIFT(尺度不变特征变换)具有尺度、旋转和光照不变性,广泛应用于图像匹配和拼接。HOG(方向梯度直方图)通过统计局部梯度方向分布来刻画物体形状,是行人检测的标准特征。这些特征至今仍在某些特定场景中发挥作用。
3.2.2 深度学习特征
深度神经网络学习的是端到端的抽象特征。卷积网络浅层提取边缘、纹理等低级特征,深层提取语义概念(如眼睛、车轮)。通过预训练模型(如ResNet、ViT)提取的特征可直接迁移到多个任务中,具有强大的泛化能力。
3.3 模型架构
3.3.1 卷积神经网络(CNN)
CNN是视觉领域最经典的架构,通常由卷积层、激活函数、池化层和全连接层堆叠而成。卷积核在图像上滑动提取局部模式,并通过多层堆叠获得全局感受野。常用变体包括空洞卷积(扩大感受野)、深度可分离卷积(减少参数量)等。
3.3.2 残差网络(ResNet)
深度神经网络面临梯度消失和性能退化问题。ResNet引入跳跃连接(skip connection),允许梯度直接回传到浅层,从而训练上百层深度的网络。该结构不仅提升了分类精度,还被广泛应用于检测和分割骨干网络。
3.3.3 Transformer在视觉中的应用(ViT)
2020年,Vision Transformer(ViT)将自然语言处理中的Transformer架构移植到视觉领域,将图像切分为固定大小的块并投影为序列,通过自注意力机制建模全局依赖。ViT在大规模数据上性能超越CNN,并催生了Swin Transformer、DETR等后续模型,标志着视觉架构向统一框架演进。
3.4 训练与优化
3.4.1 损失函数(交叉熵、IoU、Dice)
损失函数指导模型优化方向。分类任务常用交叉熵损失(cross-entropy);目标检测使用边界框回归损失(如Smooth L1、IoU Loss)和分类损失的组合;图像分割任务中,Dice损失和Focal Loss被广泛用于处理类别不平衡问题。
3.4.2 数据增强
数据增强通过随机变换(翻转、旋转、缩放、裁剪、色彩抖动)扩充训练数据,显著提升模型泛化性和鲁棒性。现代技术如MixUp、CutMix和AutoAugment进一步自动化了增强策略的选择。
3.4.3 迁移学习与预训练
迁移学习是在大尺度数据集(如ImageNet)上预训练模型,然后在小规模特定任务上微调。这一范式极大降低了数据标注需求,加速了模型收敛。近年来,大规模视觉预训练(如CLIP、DINO)使得零样本迁移成为可能。
4 典型应用
4.1 自动驾驶
自动驾驶是计算机视觉最典型的综合应用场景,集成多项核心技术。
4.1.1 车道线检测
车道线检测利用图像分割或边缘检测算法标定车道边界,为车辆横向控制提供依据。常用的方法包括霍夫变换、语义分割网络(如LaneNet)以及基于三维重建的曲线拟合。
4.1.2 交通标志识别
交通标志识别结合目标检测和图像分类,实时识别限速、禁行等标志。受光照、遮挡和天气影响,该任务常用光照归一化和小样本增强策略。
4.1.3 行人检测与避障
行人检测是自动驾驶安全的核心,常与目标跟踪结合预测行人轨迹。多模态融合(雷达+摄像头)被用于提升夜间和恶劣天气下的检测鲁棒性。
4.2 医疗影像分析
4.2.1 肿瘤检测
利用目标检测和分割网络从CT、MRI或X光片中自动标定肿瘤位置。深度学习模型在肺部结节、乳腺癌和脑肿瘤检测中已达到甚至超过放射科医生的敏感度。
4.2.2 病理图像分割
全玻片病理图像分割用于识别细胞核、组织区域和病变区域。U-Net及其衍生架构是这一任务的标准工具,广泛应用于癌症诊断和分级。
4.3 工业自动化
4.3.1 缺陷检测
在制造线上,视觉系统通过图像分类或分割检测产品表面瑕疵(划痕、裂纹、气泡)。深度学习方法相比传统图像处理具有更高的召回率和适应多种产品的能力。
4.3.2 机器人视觉引导
视觉引导机械臂完成抓取、装配和分拣任务。通过目标检测和三维姿态估计,机器人能够识别工件位置和朝向,实现柔性自动化生产。
4.4 安防与监控
4.4.1 人脸识别
人脸识别系统结合人脸检测、对齐和特征提取,用于身份验证和检索。近年来的主流方法基于深度学习(如FaceNet、ArcFace),在受控场景下准确率超过99%。
4.4.2 异常行为检测
监控系统中,异常行为检测模型分析视频流,识别打架、跌倒、闯入等突发事件。常用方法包括基于骨架的人体动作识别和时序模型(如LSTM、Transformer)。
4.5 增强现实与虚拟现实
增强现实(AR)依赖视觉SLAM(同步定位与地图构建)实时估计摄像机位姿,并将虚拟物体叠加到真实场景中。计算机视觉负责平面检测、光照估计和物体跟踪,使得AR应用(如游戏、导航和工业维修)能够精确融合虚实。
5 挑战与前沿
5.1 数据标注瓶颈
精准的视觉任务(如实例分割)依赖大规模像素级标注,成本高昂且耗时。弱监督、半监督和自监督学习的兴起部分缓解了这一问题,但长尾分布下的人工标注仍是主要瓶颈。
5.2 小样本与零样本学习
许多应用场景(如稀有物种识别、罕见病变检测)缺乏足量标注样本。小样本学习通过元学习或嵌入度量方法从少量实例中泛化;零样本学习则利用语义属性或文本描述实现未见类别的识别。
5.3 模型可解释性
深度学习模型通常被视为“黑箱”,阻碍了其在医疗、金融等高风险领域的部署。可解释性研究试图通过注意力可视化(如Grad-CAM)、概念激活向量等方法揭示模型决策依据,但距离完全透明仍有距离。
5.4 对抗性攻击与鲁棒性
图像上微小的、人眼不可察的扰动(对抗性样本)可能导致模型完全错误分类。对抗性训练是提升鲁棒性的主要手段,但模型在真实世界恶劣环境(雨雪、光照变化)下的泛化鲁棒性仍是开放问题。
5.5 实时性与算力约束
边缘设备(如手机、嵌入式摄像头)的算力有限,难以运行大型深度模型。模型压缩(知识蒸馏、量化和剪枝)以及轻量架构设计(如MobileNet、ShuffleNet)是该方向的研究热点。
5.6 三维视觉与场景理解
从二维图像重建三维场景面临深度模糊和遮挡问题。神经辐射场(NeRF)和三维高斯泼溅等新兴技术使得高质量的视场合成成为可能,但高计算成本和对多视角输入的依赖限制了实用化。
6 常用数据集与基准
6.1 ImageNet
ImageNet包含超过1400万张图像、2万多个类别,是图像分类领域最权威的基准。其大规模挑战赛(ILSVRC)推动了深度学习的跨越式发展,至今仍被用作预训练和性能对比的标准。
6.2 COCO
Microsoft COCO(Common Objects in Context)数据集包含30万张图像、80个常见物体类别,提供目标检测、实例分割和人体关键点标注。COCO的评估指标(如AP@[0.5:0.95])成为检测和分割任务的通用标准。
6.3 Cityscapes
Cityscapes专注于城市街景语义理解,包含50个欧洲城市的精细标注图像(其中5k张精细标注、20k张粗略标注)。它覆盖27个语义类别(如行人、车辆、建筑),是自动驾驶场景解析的代表性基准。
6.4 KITTI
KITTI数据集由车载传感器采集,包含立体图像、激光雷达点云和GPS数据,面向自动驾驶任务如目标检测、深度估计和光流。其挑战赛每年推出,真实性高,被视为从学术研究到落地的桥梁。
7 主流开源工具与框架
7.1 OpenCV
OpenCV(Open Source Computer Vision Library)是跨平台计算机视觉和图像处理库,支持C++、Python和Java接口。它提供丰富的功能,包括图像I/O、滤波、特征提取、相机标定和对象检测(如Haar级联)。OpenCV是入门视觉和快速原型开发的必备工具。
7.2 PyTorch与TorchVision
PyTorch是当前学术界和工业界最流行的深度学习框架之一,以动态计算图和易用性著称。TorchVision是其官方视觉扩展,提供了常见数据集、模型架构(如ResNet、Mask R-CNN)和图像转换工具。PyTorch生态丰富,大量新兴模型均在之上实现。
7.3 TensorFlow与Keras
TensorFlow是谷歌开发的深度学习框架,强调生产化和部署能力。Keras作为其高层API,简化了模型构建流程。TensorFlow Hub和TensorFlow Lite分别支持模型复用和移动端部署,适用于大规模分布式训练和流水线构建。
7.4 Detectron2
Detectron2是Facebook AI Research开发的目标检测和分割平台,基于PyTorch。它集成了Faster R-CNN、Mask R-CNN、FCOS、DETR等主流检测器,代码模块化、配置灵活,被广泛用于研究复现和工业项目快速搭建。
8 相关学科与交叉领域
8.1 图像处理
图像处理是计算机视觉的基础,聚焦于图像变换、滤波、增强和编码等技术。经典方法(如傅里叶变换、小波变换)与深度学习协同工作(如去噪超分、图像恢复)。许多视觉预处理管线直接继承自图像处理学科。
8.2 计算机图形学
计算机图形学关注从数据生成图像(渲染、建模),而视觉关注从图像提取数据(理解)。两者在三维重建(从照片生成模型)、神经渲染(NeRF)和图形驱动的视觉模拟等方面深度交叉,共同推进虚拟现实和数字内容创作。
8.3 自然语言处理(视觉语言模型)
视觉和语言的结合催生了多模态学习。视觉语言模型(如CLIP、Flamingo、BLIP-2)利用对比学习将图像和文本映射到共享嵌入空间,实现了图像描述、视觉问答、文本到图像生成等跨模态任务。该方向正成为人工智能统一的桥梁之一。
8.4 机器人学
机器人学依赖视觉传感器进行环境感知和导航。视觉里程计、SLAM(同时定位与地图构建)和抓取姿态估计是机器人和计算机视觉的核心交叉领域。深度视觉和强化学习的结合使机器人能够从视觉反馈中自主学习操作技能,迈向通用智能系统。