1.2.3 图像分类
本章以图像分类数据集cifar-10与cifar-100作为检验多源数据融合效果的实验数据。现对图像分类任务概念与常用模型进行简要介绍。
图像分类是计算机视觉研究领域中较为基础的分类任务,其目标是将每张图片分入一个或若干个类目中,以使总体分类误差最小。随图像的难度与规模的发展,其基准数据集由最初的10分类灰度图像手写数字识别mnist,发展为32长宽的RGB图片10分类cifar-10、100分类cifar-100等,到如今的ImageNet分类任务,其中包含了超过1000万张图片与2万个图片类目。由监督学习训练得到的模型的分类能力已经超越了人类水平。
对于单标签图像分类任务,根据预测主体的不同,可以划分为跨物种语义图像分类、子物种细粒度图像分类与实例分类三个类别。
跨物种语义图像分类旨在对图片进行不同物种层面上的识别,例如对猫狗等动物,对汽车、飞机等交通工具,等等。cifar-10与cifar-100是典型的跨物种语义图像分类数据集(48),在cifar-10中,包含了飞机、汽车、鸟、猫、鹿、狗、马、青蛙、船、卡车等10类不同的预测类别,涵盖了交通工具与动物两大品类,在语义上可以得到完全的区分,如图1.2.6所示。由于这个特性,跨物种语义图像分类数据的类间方差大、类内方差小,可以使用分簇算法或区间划分能力较强的分类模型进行预测。
图1.2.6 cifar-10数据集图片示例(49)
子物种细粒度图像分类任务旨在对同物种的不同品种进行分类,例如,识别一条犬是京巴、秋田还是德牧,识别一只鹦鹉是金刚鹦鹉还是亚马逊鹦鹉。由于同种动物体态通常较为相似,分类器被要求识别不同品类间存在差异的部分,对分类器提取细粒度特征的能力提出了较高的要求。子物种细粒度图像分类往往与跨物种语义图像分类共存,例如,Caltech-UCSD Birds 200数据集(50),包含了约11000张鸟类图片、200种鸟类,其中既存在不同类别的鸟类,也有同类别不同品种的鸟类。图1.2.7给出了数据集的品种示例,依序分别为黑脚信天翁、黑燕鸥、黑喉蓝莺鸟与黑喉麻雀。容易发现,数据集中即使是同类型的照片也包含了不同体态,对分类器的推理泛化能力提出了进一步的挑战。
图1.2.7 Caltech-UCSD Birds 200数据集图片示例(51)
实例级分类要求对图片中的不同个体进行区分,也可以认为是一个更加细化的识别问题,不仅需要判断图中个体的类别(往往存在多个个体),还需要判断个体所在的位置。较为简单的实例级分类任务有用于考勤的人脸识别、用于自动扣费的停车场车辆识别等,而难度较大的有视频监控中的人像定位与跟踪等。
除了上述三类定义较为完善的图像分类问题外,也有一些各领域衍生的子问题被研究。一是极细粒度图像分类,例如对上千种材料、商品进行分类。二是多标签图片分类,在所整理的类别目录中,一张图片可能同时归属于其中的多个类别。三是无监督图片分类,在无法快速获得高质量监督数据的情况下,如何在减少标签信息的同时保证分类器的精度。四是对抗攻击,目前基于深度学习的分类器往往学习能力强而泛化能力弱,大多在精心设计的数据集下进行训练,在主动添加极细微的扰动后,分类器预测效果会大幅下降。
由于图像分类子任务的难度并非本书关注的重点,本书选择cifar-10与cifar-100作为基准数据集,主要关注跨物种语义图像分类任务的模型推理。图像分类问题一直是计算机视觉中一个基础而热门的研究问题。在传统机器学习领域,常用SIFT、SURF等特征描述算法与SVM等统计学习分类器联合学习,先由特征描述方法抽取图像特征,再送到分类器中学习并推理,两个阶段是独立进行的,前者的误差会对后者产生影响。近年来,建立在大量数据基础上的深度学习方法逐渐兴起,在图像分类任务上也展现出了与人类比肩的能力。与传统机器学习方法不同,深度学习类的算法能够自行提取有效的特征,从而具有更强的推理能力。
牛津大学提出的VGGNet(52)系统研究了深度网络中卷积核宽度对于模型推理能力的影响,并发现使用若干个更小的卷积核替换一个大的卷积核,能够在降低参数量的情况下使网络变得更深,并增加网络的非线性,有利于决策函数辨别。特别地,作者在模型中引入了宽度为1,3的卷积核,通过在该卷积的线性映射基础上添加激活函数的方式,在不影响模型感受野的情况下进一步增加了非线性,如图1.2.8所示。
图1.2.8 VGGNet仅使用宽度为1,3的卷积核,最多将深度模型堆叠到19层(53)
在此基础上,何凯明等在2015年提出了用于构建更深卷积神经网络(CNN)的ResNet,讨论了一味堆叠神经网络层数对于大量图像数据的学习并非始终产生积极作用,并提出了加入“短路连接”的新网络结构(54)。在短路连接的辅助下,网络结构能够由十几层加深到三十多层甚至上百层,并且不会出现梯度消失的问题。尽管在实验中也发现,在模型深度扩展到一定程度后,其推理能力的提升将不再显著,但其新颖的连接形式仍为后续工作中设计大规模数据的模型结构提供了指导。
以ResNet短路连接为基础,为了更好地重用特征,由康奈尔大学、清华大学与Facebook AI Research实验室共同提出了密集连接所有CNN特征提取层的DenseNet,并获得了2017年度的CVPR(55)最佳论文奖(56)。DenseNet相较于之前的结构,采用了更加密集的连接方式:相互连接同一区域内的所有层,对于一个L层的网络区域,DenseNet会包含L(L+1)/2个层间连接,如图1.2.9所示。此外,DenseNet发现ResNet以加和方式融合短路连接提供的输入会出现信息损失,因此使用拼接的方式代替了直接对提取的特征向量进行加和。
图1.2.9 DenseNet在所有层间设计了激进的密集连接方式(57)
值得注意的是,尽管DenseNet使用特征复用降低了模型训练与推理过程中的计算连接,但仍涉及大量的层间连接,如果实现方式不当会占用很大的显存。DenseNet的主要作者在后续以科技报告的形式提供了一份高效实现方案,通过以精心设计的策略进行内存共享,使得该模型结构能够在小容量内存的GPU上进行训练与推理,如图1.2.10所示。
与科技报告类似,由于对图像分类应用在移动端或嵌入式设备落地的需要,研究者们也对小参数量的高效推理模型结构进行了研究,以期在缩小参数量、提升推理速度的同时,尽可能地保持模型的精度。例如,Google在2017年提出了轻量级网络框架MobileNet,与同一年提出的DenseNet走向了小与大的两个极端。
图1.2.10 DenseNet的简单实现(左)与高效实现(右)(58)
考虑到小设备场景下低延迟的要求,MobileNet(59)设计了深度级的可分离卷积基本单元(Depth-wise Separable Convolution),通过通道(Depthwise)与像素(Pointwise)分别卷积,将原先的相乘复杂度降低到相加复杂度,从而使模型变得更加精简高效,如图1.2.11所示。
图1.2.11 MobileNet对卷积的分离,图a/b/c分别代表普通/逐通道/逐像素的卷积(60)