图像分类
Image Classification
图像分类是计算机视觉中最基础、最核心的任务之一。其目标是,对于给定的单张图像,从一个预定义的类别集合中,为其分配一个唯一的、最合适的类别标签。例如,判断一张图片的内容是“猫”、“狗”还是“汽车”。
图像分类是许多更复杂视觉任务(如目标检测、语义分割)的基础。
经典流程演进
1. 传统机器学习方法
在深度学习时代之前,图像分类通常遵循一个多阶段的流程:
- 特征提取 (Feature Extraction): 这是最关键也最困难的一步。研究者需要手动设计复杂的算法来从图像中提取有代表性的特征。常用的手工特征包括:
- 特征编码 (Feature Encoding): 将提取出的特征编码成一个固定长度的向量(如使用Bag of Visual Words模型)。
- 分类器训练 (Classifier Training): 使用编码后的特征向量来训练一个标准的机器学习分类器,如支持向量机 (SVM)、K近邻 (KNN) 或随机森林。
流程: 图像 -> 手工特征提取 -> 特征编码 -> 机器学习分类器 -> 类别标签
局限: 性能高度依赖于手工特征的设计,而设计出在各种场景下都鲁棒的特征极其困难。
2. 深度学习方法
卷积神经网络 (CNN) 的出现彻底改变了图像分类。CNN能够端到端 (End-to-End) 地从原始像素中自动学习层次化的特征,无需人工干预。
流程: 图像 -> 卷积神经网络 -> 类别标签
优势: 通过大规模数据驱动,CNN能够学习到比手工特征更强大、更鲁棒的特征表示,极大地提升了分类的准确率。从AlexNet在2012年ImageNet竞赛中取得突破开始,深度学习已成为图像分类的绝对主流。
关键挑战
图像分类任务看似简单,但在现实世界中面临诸多挑战:
- 视角变化 (Viewpoint Variation): 同一个物体,从不同角度拍摄,其图像可能完全不同。
- 尺度变化 (Scale Variation): 物体在图像中的尺寸大小不一。
- 形变 (Deformation): 许多物体(如动物、衣物)是非刚性的,形态可变。
- 遮挡 (Occlusion): 物体可能被部分遮挡。
- 光照条件 (Illumination Conditions): 光照的强度、方向、颜色都会极大地影响图像像素值。
- 背景混杂 (Background Clutter): 物体可能与背景融为一体,难以区分。
- 类内差异 (Intra-class Variation): 同一个类别内部,也存在巨大的差异。例如,“椅子”这一类别包含了成千上万种不同的样式。
- 类间相似性 (Inter-class Similarity): 不同类别之间可能长得非常像,如“猫”和“豹猫”。
里程碑:ImageNet竞赛
ImageNet是一个包含超过1400万张手写标注图像、超过2万个类别的大规模数据集。ImageNet大规模视觉识别挑战赛 (ILSVRC) 是基于该数据集的年度竞赛,极大地推动了计算机视觉的发展。从2012年的AlexNet到2015年的ResNet,深度学习模型在该竞赛上的成功,是整个深度学习领域爆发的催化剂。
评估指标
- 准确率 (Accuracy):
(正确预测的样本数) / (总样本数)。最直观的指标,但在类别不平衡时具有误导性。 - 混淆矩阵 (Confusion Matrix): 一个表格,用于可视化分类模型在各个类别上的表现。
- 精确率 (Precision):
TP / (TP + FP)。在所有被预测为“正类”的样本中,有多少是真正的“正类”。 - 召回率 (Recall):
TP / (TP + FN)。在所有真正的“正类”样本中,有多少被成功地预测出来了。 - F1分数 (F1-Score): 精确率和召回率的调和平均数,是综合评价模型性能的常用指标。