计算机视觉让机器理解图像和视频。它应用在质检、安防、医疗影像、自动驾驶、OCR、内容审核、以图搜图和视觉生成等场景。
图像对模型来说不是“画面”,而是像素矩阵。视觉模型的核心任务,是从像素中学习边缘、纹理、形状、局部结构和高级语义。
一、常见视觉任务
| 任务 | 输出 |
|---|---|
| 图像分类 | 图片属于哪个类别 |
| 目标检测 | 目标类别和边界框 |
| 图像分割 | 每个像素属于哪个区域 |
| OCR | 图片中的文字内容 |
| 关键点检测 | 人脸、人体或物体关键点 |
| 图像检索 | 找到相似图片 |
任务定义不同,数据标注成本也不同。分类只需要图片级标签,检测需要框,分割需要像素级掩码。
二、图像预处理
常见预处理包括:
- 调整尺寸。
- 归一化像素值。
- 数据增强,例如翻转、裁剪、旋转、颜色扰动。
- 去除损坏图片和异常标注。
- 类别均衡或采样策略。
数据增强是视觉任务中非常重要的正则化手段。它能让模型更鲁棒,减少对特定拍摄角度、光照和背景的依赖。
三、CNN 的核心思想
卷积神经网络通过卷积核在图像上滑动,提取局部特征。浅层学习边缘和纹理,深层组合成更抽象的形状和语义。
CNN 的关键优势:
- 局部连接减少参数。
- 权重共享提高效率。
- 平移等变适合图像结构。
- 多层卷积能逐级提取特征。
经典网络包括 LeNet、AlexNet、VGG、ResNet、EfficientNet 等。其中 ResNet 的残差连接显著缓解了深层网络训练困难。
四、目标检测与分割
目标检测不仅要知道图片里有什么,还要知道在哪里。常见思路包括两阶段检测和单阶段检测。
图像分割进一步要求像素级理解:
- 语义分割:每个像素属于哪个类别。
- 实例分割:区分同类中的不同对象。
- 全景分割:同时处理背景和实例对象。
检测和分割更依赖高质量标注,也更容易受到场景变化影响。
五、迁移学习
视觉任务通常使用预训练模型作为起点。原因很简单:底层边缘、纹理和形状特征具有通用性。
常见策略:
- 使用预训练模型提取特征,只训练分类头。
- 冻结部分层,微调后几层。
- 全量微调,但使用较小学习率。
迁移学习能大幅降低数据需求,是视觉工程落地的常规做法。
六、Vision Transformer
Vision Transformer 把图像切成 patch,把每个 patch 当作类似 token 的输入,通过注意力机制建模全局关系。
与 CNN 相比,ViT 更擅长捕捉长距离依赖,但通常需要更多数据和更强预训练。现代视觉系统中,CNN 和 Transformer 经常结合使用。
七、视觉模型的工程问题
落地时要关注:
- 输入图片质量和尺寸差异。
- 标注一致性。
- 类别不均衡。
- 推理延迟和模型大小。
- 边缘设备部署能力。
- 数据漂移,例如光照、相机、场景变化。
视觉模型的离线指标好,不代表线上稳定。真实场景中的模糊、遮挡、反光、压缩、裁剪和罕见角度,都可能导致模型失效。
八、实践建议
先用成熟预训练模型建立基线,再根据错误样本决定是否增加数据、清洗标签、调整增强策略或改模型结构。视觉项目的提升,经常来自数据和标注质量,而不是盲目换更大的网络。