计算机视觉导论
视觉的世界
视觉是人类和动物最重要的感知通道——人脑有约一半的区域参与视觉信息处理,超过 80% 的外界信息经由视觉获取。视觉在进化过程中被反复「发明」,足见其生存价值:它能提供分辨率极高的颜色、纹理、深度、运动和形状信息。
从 16 世纪的暗箱到如今每天产生数十亿张图片的数字时代,人类一直在追求用技术手段捕获和理解视觉世界。计算机视觉(Computer Vision, CV)正是这一追求的延续——让机器学会「看」。
本章作为课程的开篇,将回答三个基本问题:图像是什么?计算机视觉在做什么?这个问题为什么如此困难?
成像技术简史
人类对「捕获光影」的探索远比计算机的历史悠久。
16 世纪出现的暗箱(Camera Obscura)是最早的成像装置:光线通过小孔进入暗室,在对面墙壁上投射出倒立的外部景象。画家们曾利用暗箱辅助绘画,它也是现代相机的原型。
第一张照片诞生于 19 世纪。英国人福克斯·塔尔博特(Fox Talbot)发现了卤化银的感光性能以及碘化钾、浓盐水的定影作用,被誉为「现代摄影术之父」。他将一片普通树叶放在感光纸上,经阳光曝光后,纸上清晰地显现出树叶的轮廓和脉络——第一次,光影被永久地留了下来。
第一张彩色照片则源于麦克斯韦(Maxwell)的三色理论——他提出用红、绿、蓝三原色可以混合出世间任意一种颜色。1861 年,摄影师托马斯·萨顿(Thomas Sutton)按照这一理论,分别透过红、绿、蓝三色滤镜拍摄同一条苏格兰花格呢缎带(Tartan Ribbon),再将三幅影像叠加投射到银幕上,得到了历史上第一张彩色照片。这一实验不仅验证了三色理论,也奠定了此后所有彩色成像技术的基础。
第一张数码照片出现在 1975 年。美国柯达实验室的工程师用 CCD 传感器获取了一个孩子与小狗的黑白图像,并记录在盒式音频磁带上——这是世界上第一台数码相机的产物。从胶片到数字,影像的获取和传播方式被彻底改写。
视觉数据的爆发
进入 21 世纪,相机、手机、平板电脑等设备的普及,社交网络、短视频、直播等应用的兴起,使得视觉数据呈爆炸式增长。「一图胜似千言」——图像和视频已成为信息传递的主要载体。
这种数据的丰富催生了广泛的应用场景:
| 领域 | 典型应用 |
|---|---|
| 安防监控 | 视频分析、异常行为检测、人脸识别布控 |
| 智能交通 | 无人驾驶(Tesla)、交通标志识别 |
| 人机交互 | 手势识别、表情识别、情感机器人(软银 Pepper) |
| 虚拟/增强现实 | VR(Oculus)、AR(微软 HoloLens)、智能眼镜(Google Glass) |
| 生物医学 | 医学影像分析、手术机器人(达芬奇) |
| 工业视觉 | 工件表面检测、质量控制 |
| 遥感测绘 | 航空/卫星图像分析 |
| 无人机 | 航拍、农业植保(大疆) |
| 数字艺术 | 图像风格迁移、AI 创作 |
从视觉信息的角度看,这些应用都涉及一条完整的处理链路:获取 → 压缩 → 传输 → 重建 → 处理。更具体地,一个典型的图像处理分析系统包含以下核心步骤:
flowchart LR
A[图像采集] --> B[图像增强<br/>图像复原]
B --> C[形态学处理<br/>彩色处理<br/>图像压缩]
C --> D[图像分割]
D --> E[表示与描述]
E --> F[对象识别]
classDef input fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef process fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
classDef output fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
class A input
class B,C,D,E process
class F output
从采集到识别,每一步都是计算机视觉的研究领域。本课程将沿着这条链路,逐步展开各个环节的原理与方法。
图像的类型
图像不仅仅是日常拍摄的照片。不同的成像原理和记录方式,产生了形式各异的图像数据。
电磁波谱下的图像
人眼只能感知极窄的可见光波段,但电磁波谱远比可见光宽广。不同波段的电磁辐射都能形成「图像」,揭示物体不同方面的信息:
| 波段 | 典型应用 |
|---|---|
| 宇宙射线 | 天体物理观测 |
| X 射线 | 医学影像(骨骼、肺部)、安检 |
| 紫外线 | 荧光检测、天文观测 |
| 可见光 | 日常摄影、大多数 CV 应用 |
| 红外线 | 夜视、热成像、遥感 |
| 无线电波 | 雷达成像、射电天文 |
| 交流电波 | 电力系统检测 |
宇宙微波背景辐射
如果你调节老式电视机使其偏离频道,屏幕上跳动闪烁的小雪花中就包含了宇宙微波背景辐射(Cosmic Microwave Background, CMB)的信号——这些光子诞生于约 138 亿年前的大爆炸之后不久,平均温度约 ,弥漫在整个宇宙之中。即使是最日常的「噪声」,也可能蕴含宇宙级别的信息。
此外,同一场景在不同光照条件下也会呈现截然不同的外观——白天与夜间、可见光与红外线下的同一物体可能判若两物。这种视觉信息的多样性,既是计算机视觉的数据来源,也是它面临的挑战之一。
图像的多种形态
按照记录信息的不同,图像可以分为多种类型:
- 彩色图像(Color Image):记录红、绿、蓝三个通道的颜色信息,每个像素由 RGB 三个分量组成。一幅彩色图像可以分解为三幅分量图
- 多光谱图像(Multispectral Image):记录多个波段的信息(不限于可见光),常用于遥感
- 纹理图像(Texture Image):记录表面纹理模式
- 立体图像(Stereo Image):由两个不同视角的相机同时拍摄,用于恢复深度信息
- 深度图像(Depth Image):记录场景中每个点到相机的距离,如 RGB-D 图像
- 三维图像(3D Image):如 CT 扫描的体数据
- 序列图像(Sequence Image):同一场景在不同时刻的图像
- 投影重建图像:从多角度投影重建的图像,如医学 CT
- 合成图像(Synthetic Image):由计算机图形学方法生成的图像
视频
视频(Video)是内容随时间变化的一组动态图像序列,又称运动图像或活动图像。视频可以看作图像在时间维度上的扩展——每一帧都是一幅静态图像,连续播放便形成运动效果。视频分析需要同时处理空间和时间信息,比静态图像分析更为复杂。
什么是计算机视觉
有了丰富多样的图像数据,下一个问题是:如何让计算机理解它们?
图像处理、计算机视觉与机器视觉
在正式定义计算机视觉之前,有必要区分几个容易混淆的相关概念。
三个相关概念
图像处理(Image Processing)主要集中在二维图像的分析和变换,如滤波、增强、光学字符识别、航空照片分析等。它是计算机视觉的基础工具。
计算机视觉(Computer Vision)是图像处理、模式识别与人工智能技术的结合,着重于对一幅或多幅图像的计算机分析——识别目标物体、确定其位置和姿态、对三维景物进行符号描述和解释。图像可以由单个或多个传感器获取,也可以是不同时刻的序列。
机器视觉(Machine Vision)是计算机视觉技术的工程化应用,能够自动获取和分析特定图像以控制相应行为。
三者的关系可以简单理解为:图像处理是底层工具,计算机视觉是核心理论,机器视觉是工程落地。计算机视觉为机器视觉提供理论和算法基础,机器视觉为计算机视觉的实现提供传感器模型和系统架构。
至今,计算机视觉没有公认统一的定义——有学者将其视为模式识别的分支,也有人称其为「人工智能的眼睛」。但无论如何定义,它的目标是清晰的。
跨越语义鸿沟
计算机视觉的核心目标可以用一句话概括:
To extract "meaning" from pixels.
对人类而言,一张图片蕴含丰富的语义——物体、场景、情感、行为;但对计算机而言,它看到的只是一个个数值组成的矩阵。这道鸿沟被称为语义鸿沟(Semantic Gap),它是计算机视觉需要跨越的核心障碍。
具体来说,计算机视觉需要从像素中恢复两个层面的信息:
- 底层属性理解与重建:三维结构、光照条件、材质(反射率)、视角等物理属性
- 高层语义识别:目标检测、目标分割、身份识别、行为识别、属性识别、材料分类等
视觉信息的层次
从一张图像中可以提取的信息远比表面看到的要丰富。以一幅街景照片为例,我们可以逐层提取出不同深度的信息:
几何信息(Geometric Information)描述场景的三维结构和空间布局——物体的形状、大小、距离、朝向,以及表面的法向量、深度等。哪些表面是垂直的(墙壁),哪些是水平的(地面),物体之间的空间关系如何。
语义信息(Semantic Information)指对图像内容的高层理解——识别物体类别(树、汽车、行人、建筑)、场景类型(户外、城市、欧洲风格)及其空间关系。
功能可供性(Affordance)进一步回答「这些物体能做什么」:地面是可行走的、门是可以打开的、垃圾桶可以用来投放垃圾、汽车可以移动。这一概念源自心理学家 Gibson 的生态心理学理论,强调感知与行为的紧密联系。
视觉驱动行为(Vision for Action)是视觉信息的最终归宿——生物体利用视觉来指导行动,自动驾驶系统和机器人同样需要从视觉中获取行动决策。
flowchart LR
A["像素矩阵"] --> B["几何信息<br/>形状·距离·朝向"]
A --> C["语义信息<br/>物体·场景·关系"]
A --> D["功能可供性<br/>可行走·可操作"]
A --> E["行为决策<br/>导航·操控"]
B -.-> C -.-> D -.-> E
classDef input fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef geo fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
classDef sem fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
classDef aff fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
classDef act fill:#ffebee,stroke:#c62828,stroke-width:2px
class A input
class B geo
class C sem
class D aff
class E act
这四个层次从底层物理属性到高层行为决策,逐步缩小着像素与「意义」之间的语义鸿沟。
相关学科
计算机视觉是一个高度交叉的领域,与以下学科密切相关:
| 学科 | 与 CV 的关系 |
|---|---|
| 光学 | 提供成像原理和物理基础 |
| 神经生物学 | 启发算法设计,如视觉皮层的层次化处理启发了深度学习 |
| 信号处理 | 提供滤波、变换、频率分析等底层工具 |
| 机器学习 | 提供分类、回归、聚类等核心学习算法 |
| 模式识别(Pattern Recognition) | 关注从数据中发现规律和模式,与 CV 方法论高度重合 |
| 数学 | 线性代数、概率统计、优化理论——CV 的数学语言 |
计算机视觉与图形学
计算机视觉和计算机图形学(Computer Graphics)是一对「镜像」关系:
- 图形学是综合(Synthesis):给定三维模型、材质和光照 → 渲染出二维图像
- 计算机视觉是分析(Analysis):从二维图像 → 推断三维场景的结构、材质和光照
一个从模型到像素,一个从像素到模型——两者互为逆过程。近年来两者的界限日益模糊,NeRF 等技术同时涉及场景重建和新视角合成。
计算机视觉为何困难
目标已经明确——从像素中提取意义。但实现这一目标何其困难。尽管人类视觉系统运转得毫不费力,计算机「看懂」一张图片却面临根本性的障碍。
大幅度的外观变化
同一物体在不同拍摄条件下可能呈现截然不同的外观:视角(Viewpoint)变化使同一栋建筑从正面和侧面看完全不同;光照(Illumination)变化使同一张脸在顺光和逆光下判若两人;遮挡(Occlusion)使关键特征不可见;尺度(Scale)变化使远近物体大小悬殊。
类内差异
属于同一类别的不同个体在外观上可能差异巨大。「椅子」这个类别包含了从高背扶手椅到折叠椅、从沙发到吊椅的各种形态——它们在形状、颜色、材质上几乎没有共同的视觉特征,但人类毫不费力地将它们归为同一类别。
上下文依赖
相同的像素区域在不同上下文中可能被解读为完全不同的物体。视觉理解往往依赖全局上下文而非局部特征——一个小的灰色区域可能是建筑外墙的一部分,也可能是一只鸽子,只有结合周围环境才能做出正确判断。
病态问题
从根本上说,计算机视觉是一个病态问题(Ill-posed Problem)
真实世界远比图像中能测量到的信息复杂得多。三维场景到二维图像的投影是一个不可逆的多对一映射——无穷多种不同的三维场景可以产生同一张二维图像。从图像中恢复三维世界本质上是不可能精确求解的(impossible to literally "invert" image formation process),我们只能利用先验知识和统计规律来寻找最可能的解释。
即使是人类视觉也会出错。2015 年风靡网络的「蓝黑/白金裙子」之争(The Dress)正说明了这一点——面对同一张照片,不同的人看到了截然不同的颜色。这是因为人脑对光照条件做出了不同的假设,进行了不同的颜色恒常性补偿。图像本身是歧义的(Ambiguous)。
发展简史
尽管困难重重,计算机视觉已经走过了六十余年的历程,可以划分为几个鲜明的阶段。
早期探索(1960s-1970s)
1966 年,MIT 的 Marvin Minsky 布置了一个著名的暑期项目:让几个本科生用一个夏天编程,让计算机通过摄像头识别场景中的物体。他认为这个问题一个暑假就能解决。半个多世纪后的今天,我们仍在为之奋斗——这个轶事完美地体现了视觉问题「看似简单,实则深邃」的本质。
这一时期的里程碑包括:
- Hough 变换(1959):用于检测图像中的直线和简单形状,至今仍是图像处理的基础工具
- Roberts 的积木世界(1963):第一篇计算机视觉博士论文,将视觉世界简化为简单几何形状进行识别和重建
- Rosenfeld 的 Picture Processing by Computer(1969)
- Duda 和 Hart 的 Pattern Classification and Scene Analysis(1972)
早期研究聚焦于积木世界(Blocks World)——由简单几何体组成的受控场景。研究者定义了若干核心问题(边缘检测、区域分割、三维恢复),提出了初步方法。一些雄心勃勃的场景理解方案昙花一现。斯坦福科学家提出了用「广义圆柱体」来表示物体——认为每个对象都由简单的几何基元组合而成。
学科确立(1980s-1990s)
1980 年代,计算机视觉作为独立学科正式确立:
- 1982 年,David Marr 出版了划时代的著作 Vision
- 同年,Ballard 和 Brown 出版了 Computer Vision,Horn 于 1986 年出版了 Robot Vision
- 1983 年,首届 CVPR 会议召开
- 1987 年,ICCV 和 IJCV 期刊创刊
David Marr 与视觉计算框架
David Marr(1945-1980)是计算机视觉的先驱,被尊为「计算机视觉之父」。尽管英年早逝(年仅 35 岁),他在 1982 年出版的 Vision 一书提出了影响深远的视觉计算框架。ICCV 的最佳论文奖——马尔奖(Marr Prize)——正是以他命名,它是计算机视觉领域最高的荣誉之一。
Marr 视觉计算框架
Marr 提出,理解任何信息处理系统都需要在三个层次上进行分析:
- 计算层(Computational Level):系统要解决什么问题?为什么要解决?即任务的目标和约束
- 算法与表示层(Algorithmic/Representational Level):系统如何解决问题?输入、输出和中间信息如何表示?使用什么算法?
- 实现层(Implementational/Physical Level):系统如何在物理上实现?对于生物视觉,对应哪些神经结构和活动;对于计算机视觉,涉及硬件架构的选择
这三个层次彼此独立又相互关联。理解一个视觉能力,需要在所有三个层次上给出解释。随着 GPU 和多核架构的兴起,实现层的约束如何反过来影响算法设计,再次成为重要议题。
flowchart TD
A["<b>计算层</b><br/>What & Why<br/>视觉任务的目标与约束"] --> B["<b>算法与表示层</b><br/>How<br/>数据结构与处理流程"]
B --> C["<b>实现层</b><br/>Physical Realization<br/>神经结构 / 硬件架构"]
classDef level fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
class A,B,C level
这一时期经历了「几何识别阶段」,多视图几何逐渐成熟(最终由 Hartley 和 Zisserman 的经典著作总结)。到 1990 年代末,研究者开始不再「害怕像素」——即不再局限于手工设计的几何模型,而转向直接从大量图像数据中学习特征和模式。
视觉感知的早期探索
对「如何表示和识别物体」的理解也在不断演变:
- Hubel 和 Wiesel 因对视觉信息处理的开创性工作获得诺贝尔医学和生理学奖——他们通过经典实验揭示了大脑如何从眼睛获取简单信息并转化为复杂的视觉感知
- 1987 年,David Lowe 尝试用线条和边缘特征来进行物体识别,为后来的局部特征方法奠定了基础
数据驱动时代(2000s-2010s)
进入 21 世纪,计算机视觉的范式发生了根本性转变——从手工设计特征转向数据驱动的学习方法。数据集和基准测试成为推动进步的核心引擎。
局部特征(如 SIFT、SURF)能检测并描述图像中具有辨别力的关键点,「解决」了运动恢复结构(Structure from Motion, SfM)和实例识别问题。但通用类别识别和检测仍是核心挑战——直到深度学习的到来。
数据集的演进
图像数据集的规模和质量直接反映了领域的发展水平:
| 时期 | 代表数据集 | 规模 |
|---|---|---|
| 2000s | Caltech-101/256, PASCAL VOC | 数千至数万张 |
| 2009 | ImageNet | 1400 万张图像,2 万多类别 |
| 2020s | LAION-5B | 50 亿对图像-文本对 |
ImageNet 大规模视觉识别挑战赛(ILSVRC,1000 类、143 万张图像)成为衡量进步的标尺。2012 年 AlexNet 在该竞赛中的突破性表现,开启了深度学习在 CV 领域的统治时代。LAION-5B 则代表了开放大规模多模态数据集的新纪元。
视频数据集同样经历了显著的规模增长:从 2010 年以前的小规模受控数据集,到 UCF-101、Kinetics 系列等中大规模数据集,再到 InternVid(ICLR 2024 Spotlight)等超大规模视频-文本数据集。
基础模型时代(2020s)
2020 年代,AI 进入了基础模型(Foundation Models)时代。在海量数据上预训练的大规模模型展现出强大的通用能力和涌现特性。缩放定律(Scaling Laws)揭示了语言模型的性能与模型参数量、训练数据量和计算量呈幂律关系——只要持续扩大规模,性能就会持续提升。
Transformer 架构基于自注意力机制(Self-Attention),能捕捉序列中任意位置之间的依赖关系,已成为现代深度学习的核心架构。以此为基础,大语言模型快速发展:
- BERT(EMNLP 2018):双向 Transformer 编码器,通过遮蔽 token 预测(Masked Token Prediction)——随机遮蔽输入中的部分 token,让模型预测被遮蔽内容——进行自监督预训练
- GPT 系列:Transformer 解码器架构,通过下一 token 预测(Next Token Prediction)训练。从 GPT(2018)到 GPT-2(15 亿参数)再到 GPT-3(1750 亿参数,NeurIPS 2020 最佳论文),模型规模的增长带来了惊人的少样本学习能力——仅凭几个示例就能完成此前需要大量标注数据才能解决的任务
从 GPT 到 ChatGPT:RLHF
InstructGPT 和 ChatGPT 的关键突破是引入了基于人类反馈的强化学习(Reinforcement Learning with Human Feedback, RLHF),流程分为三步:
- 在人工撰写的高质量对话数据上有监督微调
- 训练奖励模型(Reward Model),学习人类对不同回答的偏好排序
- 使用 PPO(Proximal Policy Optimization)强化学习算法,让模型输出更符合人类期望的回答
这种对齐(Alignment)技术使 GPT 从语言模型转变为对话助手。
多模态模型进一步将视觉能力引入大语言模型:GPT-4 支持视觉输入和推理,Sora(2024)能根据文本生成高质量长视频,Google Gemini 原生支持文本、图像、音频和视频的理解与生成。这些模型正在重新定义计算机视觉的边界。
前沿全景
六十年的积累,今天的计算机视觉能做什么?CVPR 会议的投稿量逐年攀升,计算机视觉已成为人工智能最活跃的研究领域之一。以下从几个核心方向概览前沿进展。
识别与检测
深度学习在 ImageNet 挑战赛上的持续突破,推动通用类别识别取得了显著进展——到 2014 年,深度学习方法的准确率已大幅超越传统手工特征方法。
目标检测经历了从两阶段到端到端范式的演进:
- Mask R-CNN(ICCV 2017 最佳论文)在统一框架中同时完成目标检测和实例分割(Instance Segmentation)——不仅标出「这里有一只猫」,还精确地勾勒出猫的轮廓
- AdaMixer(CVPR 2022)等基于查询的检测方法实现了更快收敛
- SparseBEV(ICCV 2023)将检测从 2D 扩展到多相机视频的三维空间,面向自动驾驶场景
视频动作识别也从传统方法跨越到深度学习时代:从将动作建模为移动点(Actions as Moving Points, ECCV 2020)到单阶段稀疏检测器(STMixer, CVPR 2023),检测效率持续提升。CV 识别技术已融入日常设备——手机上的鸟类识别应用(如 Merlin)和植物识别功能就是典型例子。
图像与视频生成
图像生成是近年来进展最为惊人的方向,经历了从 GAN 到扩散模型的范式转变。
GAN 时代
Progressive GAN(ICLR 2018)首次生成了逼真的 1024×1024 高分辨率人脸图像——其核心思想是渐进式增长,从低分辨率开始逐步增加细节。BigGAN(ICLR 2019)将生成扩展到 ImageNet 的 512×512 多类别图像,但不同类别的生成难度差异明显——简单类别(如风景)的质量远优于复杂类别。
文本到图像生成
DALL-E(ICML 2021)实现了零样本文本到图像生成。其底层技术是自回归生成(Autoregressive Generation)——模型将文本编码为 256 个 token,图像编码为 1024 个 token(32×32 网格),用 Transformer 解码器逐个生成图像 token,最后解码为 256×256 图像。
DALL-E 2(2022)引入了全新架构:先用 CLIP(Contrastive Language-Image Pre-Training)分别编码文本和图像,训练生成模型从 CLIP 文本编码产生 CLIP 图像编码,再用扩散模型(GLIDE)生成图像,从 64×64 逐步上采样到 1024×1024。
DALL-E 3(2023)在文本理解和图像质量上实现了飞跃,能更精确地将文字描述转化为对应的图像。
扩散模型
去噪扩散概率模型
去噪扩散概率模型(Denoising Diffusion Probabilistic Models, DDPMs)是当前图像生成的主流范式:
- 前向过程 :逐步向图像添加高斯噪声,将干净图像转化为纯噪声
- 反向过程 :逐步从噪声中去除噪声,恢复出干净图像
- 当时间步增量足够小时,反向过程每步 近似为高斯分布,可以训练神经网络来估计给定 时 的均值
直觉上,扩散模型就像雕塑——从一块混沌的大理石(噪声)开始,一刀一刀雕琢(去噪),最终得到精美的作品(图像)。
Stable Diffusion 的关键创新是在潜在空间(Latent Space)而非原始像素空间中进行扩散过程,大幅降低计算成本,使高质量图像生成变得「平民化」。2022 年,AI 图像生成被 Science 杂志评为年度突破(Breakthrough of the Year)。
视觉理解与描述
图像描述(Image Captioning)让计算机用自然语言描述图像内容,需要同时理解视觉内容和生成流畅的自然语言。视频描述(Video Captioning)则更具挑战——需要理解时间维度上的事件演变。高清视频描述模型能够生成详细准确的视频描述,但仍存在幻觉(Hallucination)问题——在描述中加入图像中实际不存在的内容。这一问题在多模态大模型中同样普遍,是当前研究的重要挑战之一。
三维场景理解与行为驱动
神经辐射场(Neural Radiance Fields, NeRF,ECCV 2020)用一个神经网络隐式表示三维场景——输入空间坐标和观察方向,输出该点的颜色和密度,通过体渲染生成任意视角的图像。这一工作开辟了 3D 场景理解和生成的新方向。
视觉驱动行为将视觉与行为决策连接起来。例如 SFV(SIGGRAPH Asia 2018)展示了通过强化学习从视频中学习物理技能——让虚拟角色模仿视频中人物的动作,实现自然的运动控制。
AIGC 的挑战
AI 生成内容(AIGC)在带来革命性能力的同时,也引发了严重关切:
- 深度伪造(Deepfakes):可以伪造任何人的视频或音频,已被用于政治欺诈和虚假信息传播(如伪造的泽连斯基投降视频)
- 偏见与有害内容:模型继承训练数据中的偏见。例如 DALL-E 2 生成的「律师」图像以白人男性为主,「空乘人员」图像以女性为主,反映了数据中的刻板印象
- AI 与艺术创作:2022 年,AI 生成的作品在科罗拉多州艺术博览会上获一等奖,引发关于 AI 创作的伦理争论
研究方向一览
计算机视觉的研究课题涵盖从底层处理到高层理解的各个层面。其中,一个经典的图像分类流程为:
flowchart LR
A[输入图像] --> B[预处理]
B --> C[特征提取]
C --> D[学习算法]
D --> E[类标]
classDef input fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef process fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
classDef output fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
class A input
class B,C,D process
class E output
不同的视觉任务在理解粒度上有着明显的层次:
| 粒度 | 任务 | 说明 |
|---|---|---|
| 图像级 | 图像分类 | 判断整张图像属于哪个类别 |
| 样例级 | 目标检测 | 定位每个目标的位置(边界框)并识别类别 |
| 部件级 | 关键点检测 | 定位目标的关键部位(如人体姿态的关节点) |
| 像素级 | 语义分割 | 为每个像素分配类别标签 |
以下是计算机视觉主要研究方向的概览,它们将在后续章节或前沿专题中逐步深入:
| 方向 | 说明 |
|---|---|
| 图像分类与识别 | 识别图像中的物体类别,最基础的 CV 任务 |
| 目标检测 | 在图像中同时定位和识别多个物体 |
| 图像分割 / 语义分割 | 将图像划分为有意义的区域,或为每个像素分配语义标签 |
| 图像检索 | 给定查询图像,在数据库中找到相似图像 |
| 光学字符识别(OCR) | 从图像中识别和提取文字 |
| 人脸识别 | 识别或验证人脸身份 |
| 行人检测 | 在图像或视频中检测行人,用于安防和自动驾驶 |
| 人体姿态估计 | 检测人体关节点,估计身体姿态 |
| 图像 / 视频生成 | 生成逼真的新图像或视频(GAN、扩散模型等) |
| 文本-图像生成 | 根据自然语言描述生成图像 |
| 图像风格迁移 | 将一幅图像的内容与另一幅图像的风格融合 |
| 人脸表情迁移 | 将一个人的表情转移到另一个人脸上 |
| 视觉问答(VQA) | 给定图像和自然语言问题,自动生成答案 |
| CV4Science | 计算机视觉在科学研究中的应用 |
这些方向的共同核心在于特征表达——如何从图像中提取有效的特征,直接决定了下游任务的性能。从手工设计的 SIFT 到深度学习自动学习的特征表示,这一核心问题的演进贯穿了计算机视觉的发展历程。
In general, computer vision does not work (except in certain situations/conditions).
尽管在受控条件和特定任务上已取得巨大进展,通用的、鲁棒的计算机视觉仍是一个远未解决的开放问题。
图像的数学表示
在深入研究具体算法之前,我们需要建立图像的数学语言。
图像作为二维函数
从数学角度看,一幅图像可以用一个二维函数 来表示:
- 是空间坐标(连续实数)
- 是该点的幅度,表示亮度、强度或灰度值
Image、Picture 与 Drawing
英文中有几个相关但含义不同的词:
- Image:泛指用镜头等技术手段获取的视觉形象
- Picture:偏指手工描绘的人物或景物画
- Drawing:人工绘制的工程图
数字图像与像素
自然图像中 、 和 都是连续的。为了让计算机处理,需要对三者进行离散化(Digitization)——对空间坐标采样,对幅度值量化。离散化后的结果就是数字图像(Digital Image),其中每个最小单元称为像素(Pixel, Picture Element)。
一幅数字灰度图像可以表示为一个二维矩阵,每个元素对应一个像素的亮度值:
每个数值代表该像素的亮度(通常 0 为全黑,1 为全白)。放大一幅图像,就会看到这些离散的像素方格。
色彩模型与深度图像
灰度图像只有一个通道,而彩色和多通道图像则更为丰富:
RGB 模型是最常见的彩色图像表示。每个像素由红(R)、绿(G)、蓝(B)三个通道的值组成。一幅 RGB 图像可以看作三个灰度图像的叠加——分别对应红、绿、蓝三个分量图。
HSV 模型用色调(Hue)、饱和度(Saturation)、明度(Value)描述颜色。HSV 比 RGB 更符合人类对颜色的直觉感知——「红色、鲜艳、明亮」比「R=255, G=30, B=20」更容易理解。HSV 在图像分割和颜色检测等任务中常被使用。
RGB-D 图像在 RGB 三通道之外增加了深度(Depth)通道,记录相机到物体表面的距离。RGB-D 传感器(如 Kinect)广泛用于三维重建、增强现实和机器人导航。
相机与坐标系
相机是沟通三维世界与二维图像的桥梁。理解图像的生成过程,需要区分三个坐标系:
- 世界坐标系(World Coordinate System):描述空间点在真实世界中的绝对位置,单位为米
- 相机坐标系(Camera Coordinate System):以相机的光心为原点,可由世界坐标系通过旋转和平移得到,单位为米
- 图像坐标系(Image Coordinate System):以成像平面左上角为原点,单位为像素
三维场景点先经过世界坐标系到相机坐标系的刚体变换(由相机外参决定),再经过相机坐标系到图像坐标系的透视投影(由相机内参决定),最终形成二维图像上的像素坐标。这一成像过程的数学建模将在后续章节详细讨论。
分辨率
图像的分辨率(Resolution)描述了图像的精细程度,通常用像素数量来衡量:
- 手机相机标注「1600 万像素」,表示图像总共约 1600 万个像素点
- 屏幕比例「18:9」描述图像宽高比
- 视频分辨率中的 480P、720P、1080P 分别指垂直方向的像素数(P 代表逐行扫描 Progressive):
- 480P:约 640×480,标清
- 720P(HD):1280×720,高清
- 1080P(Full HD):1920×1080,全高清
分辨率越高,图像越清晰细腻,但数据量和计算开销也相应增大——这在实时视觉系统中是一个需要权衡的工程问题。
数学符号约定
本课程使用以下数学符号约定,将贯穿后续所有章节:
| 类型 | 符号规范 | 示例 | 备注 |
|---|---|---|---|
| 标量 | 大写或小写斜体 | , | — |
| 向量 | 小写粗斜体 | 默认列向量, 为第 个元素 | |
| 矩阵 | 大写粗斜体 | 为第 行第 列元素;亦可按列优先定义 | |
| 张量 | 大写粗斜体 | 索引方式类推向量和矩阵 | |
| 集合 | 大写花体 | — | |
| 空间 | 大写黑板粗体 | — | |
| 函数 | 小写斜体 | 变量括在圆括号中,逗号分隔 | |
| 点坐标 | 向量或逗号列表 | 等价于 |