计算机视觉让机器理解图像和视频。它应用在质检、安防、医疗影像、自动驾驶、OCR、内容审核、以图搜图和视觉生成等场景。

图像对模型来说不是“画面”,而是像素矩阵。视觉模型的核心任务,是从像素中学习边缘、纹理、形状、局部结构和高级语义。

一、常见视觉任务

任务 输出
图像分类 图片属于哪个类别
目标检测 目标类别和边界框
图像分割 每个像素属于哪个区域
OCR 图片中的文字内容
关键点检测 人脸、人体或物体关键点
图像检索 找到相似图片

任务定义不同,数据标注成本也不同。分类只需要图片级标签,检测需要框,分割需要像素级掩码。

二、图像预处理

常见预处理包括:

  • 调整尺寸。
  • 归一化像素值。
  • 数据增强,例如翻转、裁剪、旋转、颜色扰动。
  • 去除损坏图片和异常标注。
  • 类别均衡或采样策略。

数据增强是视觉任务中非常重要的正则化手段。它能让模型更鲁棒,减少对特定拍摄角度、光照和背景的依赖。

三、CNN 的核心思想

卷积神经网络通过卷积核在图像上滑动,提取局部特征。浅层学习边缘和纹理,深层组合成更抽象的形状和语义。

CNN 的关键优势:

  • 局部连接减少参数。
  • 权重共享提高效率。
  • 平移等变适合图像结构。
  • 多层卷积能逐级提取特征。

经典网络包括 LeNet、AlexNet、VGG、ResNet、EfficientNet 等。其中 ResNet 的残差连接显著缓解了深层网络训练困难。

四、目标检测与分割

目标检测不仅要知道图片里有什么,还要知道在哪里。常见思路包括两阶段检测和单阶段检测。

图像分割进一步要求像素级理解:

  • 语义分割:每个像素属于哪个类别。
  • 实例分割:区分同类中的不同对象。
  • 全景分割:同时处理背景和实例对象。

检测和分割更依赖高质量标注,也更容易受到场景变化影响。

五、迁移学习

视觉任务通常使用预训练模型作为起点。原因很简单:底层边缘、纹理和形状特征具有通用性。

常见策略:

  1. 使用预训练模型提取特征,只训练分类头。
  2. 冻结部分层,微调后几层。
  3. 全量微调,但使用较小学习率。

迁移学习能大幅降低数据需求,是视觉工程落地的常规做法。

六、Vision Transformer

Vision Transformer 把图像切成 patch,把每个 patch 当作类似 token 的输入,通过注意力机制建模全局关系。

与 CNN 相比,ViT 更擅长捕捉长距离依赖,但通常需要更多数据和更强预训练。现代视觉系统中,CNN 和 Transformer 经常结合使用。

七、视觉模型的工程问题

落地时要关注:

  • 输入图片质量和尺寸差异。
  • 标注一致性。
  • 类别不均衡。
  • 推理延迟和模型大小。
  • 边缘设备部署能力。
  • 数据漂移,例如光照、相机、场景变化。

视觉模型的离线指标好,不代表线上稳定。真实场景中的模糊、遮挡、反光、压缩、裁剪和罕见角度,都可能导致模型失效。

八、实践建议

先用成熟预训练模型建立基线,再根据错误样本决定是否增加数据、清洗标签、调整增强策略或改模型结构。视觉项目的提升,经常来自数据和标注质量,而不是盲目换更大的网络。