计算机视觉是人工智能的一个分支,它试图让计算机能够“看”懂并理解数字图像和视频中的内容。简单来说,它的目标是赋予机器视觉感知的能力,从而能够自动执行原本需要人类视觉参与的任务。以下为计算机视觉技术主要解决的问题和方案。
一、低级视觉任务
低级视觉任务(Low-Level Vision)旨在处理图像的底层特征,注重像素级操作:
- 图像去噪:消除传感器噪声(如高斯噪声)。
- 超分辨率重建:从低分辨率图像恢复高清细节(如老照片修复)。
- 图像增强:调整亮度/对比度(如医疗X光片增强)。
- 色彩校正:白平衡调整、风格迁移(如滤镜效果)。
例如传统滤波是数字图像处理中用于增强或提取特定信息的经典方法。
二、中级视觉任务
中级视觉任务(Mid-Level Vision)旨在提取结构化信息,建立像素与物体间的关联:
- 边缘检测:识别物体轮廓(如Canny算子)。
- 特征提取:SIFT、ORB等传统特征点,或CNN深层特征。
- 光流估计:分析视频中像素的运动(如自动驾驶预测行人轨迹)。
- 立体视觉:通过多视图计算深度(如双目摄像头测距)。
应用场景:SLAM(同步定位与建图)、3D重建。
三、高级视觉任务
高级视觉任务(High-Level Vision)旨在理解视觉的语义内容,接近人类认知水平:
1、图像分类与目标检测
图像分类和目标检测是计算机视觉中的两个基础任务,它们的核心区别体现在任务目标、输出形式和应用场景上。
- 图像分类(Image Classification):判断整张图像的类别是什么,输出类别标签,例如ResNet模型区分图像中的猫或狗。
- 目标检测(Object Detection):不仅能识别图像中的物体,还能精确地定位它们的位置,例如YOLO模型检测图像中的行人、车辆和每个目标的边界框。
| 任务 | 图像分类 | 目标检测 |
|---|---|---|
| 核心目标 | 判断整张图像的类别(是什么) | 定位图像中所有目标的位置并分类(在哪里+是什么) |
| 输出要求 | 只需给出类别标签(如“狗”) | 需输出每个目标的边界框(Bounding Box)+类别标签 |
示例:
- 分类:输入一张图,输出“猫”。
- 检测:输入一张图,输出“猫:[100,120,200,250]”和“狗:[300,80,450,200]”。
图像分类和目标检测在技术实现方面的区别:
| 方法 | 图像分类 | 目标检测 |
|---|---|---|
| 经典模型 | LeNet、AlexNet、ResNet | R-CNN系列、YOLO、SSD、RetinaNet |
| 网络结构 | 全连接层+Softmax输出类别概率 | 卷积网络+回归头(预测框坐标)+分类头 |
| 训练数据 | 只需图像和类别标签 | 需标注每个目标的边界框和类别 |
两者区别总结:
- 图像分类是目标检测的子任务:目标检测需先定位再图像分类,但图像分类无法反向推导目标的位置。
- 计算成本:检测模型通常更耗资源(需实时检测时常用YOLO等轻量化模型)。
- 进阶方向:目标检测可扩展为实例分割(精确到像素级轮廓)、姿态估计等任务。
浏览图像分类案例:图像分类问题 – 甲壳虫AI案例精选
浏览目标检测案例:目标检测问题 – 甲壳虫AI案例精选
2、语义分割和实例分割
语义分割和实例分割是计算机视觉中两种重要的像素级分割任务,它们的核心区别在于对“对象”的区分粒度和任务目标。
- 语义分割(Semantic Segmentation):语义分割 的任务是对图像中的每个像素都进行分类,将其划分到某个预定义的语义类别中。 它只关心“这个像素是什么物体?”,而不关心这个物体是哪一个独立的个体,例如U-Net模型进行图像语义分割细胞膜、Mask R-CNN语义分割肿瘤区域。
- 实例分割(Instance Segmentation):实例分割的任务是:在语义分割的基础上,进一步区分出同一个类别中的不同个体实例。 它既要回答“这个像素是什么物体?”,也要回答“这个像素属于这个类别的第几个物体?”。其本质上是 目标检测+语义分割的结合,例如区分羊群中的每只羊。
定义与输出对比:
| 特性 | 语义分割 | 实例分割 |
|---|---|---|
| 核心目标 | 为每个像素分配类别标签(是什么) | 区分同类物体的不同个体(是什么+是谁) |
| 输出形式 | 单通道掩码(相同类别像素值一致) | 多通道掩码或带ID的掩码(每个实例唯一标识) |
| 是否区分个体 | 否(同类物体合并) | 是(同类物体分开标记) |
示例:
输入图像:一张有3只猫和1只狗的图片。
- 语义分割输出:所有猫像素标为“猫”(同一颜色),狗像素标为“狗”。
- 实例分割输出:每只猫单独标记(如猫1、猫2、猫3不同颜色),狗单独标记。
技术实现差异:
| 方法 | 语义分割 | 实例分割 |
|---|---|---|
| 经典模型 | FCN、U-Net、DeepLab | Mask R-CNN、YOLACT、SOLO |
| 关键操作 | 全卷积网络(端到端像素分类) | 先检测实例(边界框),再分割掩码 |
| 训练数据 | 需像素级类别标签 | 需实例级标签(掩码+ID) |
架构区别:
- 语义分割:直接通过编码器-解码器结构输出类别概率图。
- 实例分割:通常两阶段(如Mask R-CNN):
- 目标检测:生成候选框(RoI)。
- 掩码预测:对每个RoI预测精细掩码。
显著目标检测和语义分割
显著目标检测:
- 任务目标:找出图像中最吸引人类视觉注意力的区域或物体。它回答的是:“哪里最显眼?”
- 输出:一个二值掩码(Binary Mask)或概率图,其中:
- 前景(显著物体)被标记为 1(或白色)。
- 背景(不显著的区域)被标记为 0(或黑色)。
- 核心思想:基于人类的视觉注意机制,区分“主体”和“背景”。它不关心这个主体具体是什么类别(是人、是狗、还是汽车),只关心它是否是视觉上的焦点。
U²-Net 正是为这个任务而设计的。 它的输出就是一个高精度的显著图,清晰地将前景物体从背景中分离出来。
图像语义分割:
- 任务目标:对图像中的每一个像素都分配一个类别标签。它回答的是:“这个像素是什么?”
- 输出:一个彩色掩码,其中不同的颜色代表图像中不同类别的物体(例如,红色代表“人”,蓝色代表“车”,绿色代表“树”)。
- 核心思想:理解整个场景的语义构成,需要对图像进行全面的解析。
主要区别:
| 特性 | 显著目标检测 | 图像语义分割 |
|---|---|---|
| 任务核心 | 找出“哪里最吸引人” | 识别“每个像素是什么” |
| 输出类型 | 二值图(前景/背景) | 多类别标签图 |
| 类别信息 | 无类别,只区分显著与否 | 有明确的类别信息(人、车、路等) |
| 问题范围 | 相对狭义,专注于视觉注意力 | 相对广义,是对整个场景的理解 |
U²-Net 与语义分割的关联:
尽管U²-Net本身不做语义分割,但它们之间存在紧密的技术关联和应用上的结合:
- 技术同源性:两者都是密集预测任务,都需要编码器-解码器结构来融合深层语义信息和浅层细节信息。U²-Net使用的U型结构和跳跃连接正是源自U-Net(一个经典的语义分割网络)。因此,U²-Net在架构上与语义分割网络非常相似。
- 作为预处理步骤:U²-Net的显著图可以作为语义分割的前置步骤。例如:可以先使用U²-Net检测出图像中的显著物体。然后只对这些显著区域进行精细的语义分割,这样可以节省计算资源,并避免复杂背景的干扰。
- 引导注意力:在更复杂的网络中,U²-Net生成的显著图可以作为一个注意力图,告诉语义分割网络“应该更关注图像的哪些部分”,从而提升分割的准确性。
U²-Net 是一个专门为「显著目标检测」任务设计的顶尖网络。 它输出的是无类别的前景-背景分割图。虽然它不是一个直接的语义分割模型,但它所采用的嵌套U型架构和多尺度特征融合思想对语义分割领域有重要的借鉴意义。同时,它的输出结果可以非常有效地与语义分割任务相结合,以提升后者的性能或效率。所以,简单来说:U²-Net 做的是“找焦点”,而语义分割做的是“认东西”。
浏览语义和实例分割案例:语义和实例分割问题 – 甲壳虫AI案例精选
4、OCR等特殊任务
- 人脸识别:身份验证(如Face ID)。
- OCR(光学字符识别):从图像提取文字(如扫描文档转电子版)。
- 关键点定位(Keypoint Localization):面部关键点检测(如眼睛、鼻子、嘴巴等位置的定位)、识别人体关节位置。
浏览光学字符识别案例:光学字符识别问题 – 甲壳虫AI案例精选
4、姿态识别
关键点定位(Key Point Localization)的目标是以极高的精度回归出图像中特定语义关键点的坐标位置。例如面部关键点检测和人体关节关键点检测。姿态识别(Pose Recognition)是在关键点定位的基础上进行的更高层次的语义理解任务。姿态识别,也称为姿态估计,其目标是识别并定位出图像或视频中人体(或物体)的关键部位(如关节、关键点)的位置,并推断出其整体的姿态结构。
浏览姿态识别案例:姿态识别 – 甲壳虫AI案例精选
5、场景理解
- 场景理解:判断图像整体语义(如“厨房”或“办公室”)。
- 图像描述生成:用文字描述图像内容(如“一只棕色的狗在草地上奔跑”)。
四、视频分析任务
视频分析的核心在于处理时序维度信息,其强时序性要求模型必须对连续帧进行解析,以捕捉动态场景中的物体动作轨迹与演变规律。
- 视频目标跟踪:跨帧追踪特定物体(如体育赛事中的运动员)。
- 行为识别:分析视频中的动作序列,例如监控中的异常行为检测、如摔倒检测。
- 视频摘要:提取关键帧或生成缩略内容。
浏览视频分析案例:视频分析问题 – 甲壳虫AI案例精选
五、生成与合成任务
从语义信息生成视觉内容:
- 图像生成:GAN生成虚拟人脸(StyleGAN)、扩散模型(Stable Diffusion)。
- 图像修复:填充缺失区域(如老照片破损修复)。
- 风格迁移:将艺术风格应用于照片(如将照片转为梵高画风)。
六、跨模态任务
结合视觉与其他模态数据:
- 视觉问答(VQA):回答关于图像的提问(如“图中有什么颜色的汽车?”)。
- 图文匹配:关联图像与文本描述(如搜索引擎以图搜文)。
- 多模态生成:根据文本生成图像(DALL·E)、视频(Sora)。
计算机视觉的边界正不断扩展,从传统图像处理到AIGC、元宇宙构建,成为AI落地的核心驱动力之一。