Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

基于飞桨PaddlePaddle的多种图像分类预训练模型强势发布

计算机视觉领域,图像分类是非常重要的基本问题,是图像目标检测图像分割图像检索、视频理解、物体跟踪、行为分析等其他高层视觉任务的基础,在实际场景中,有着广泛应用。飞桨(PaddlePaddle)视觉模型库图像分类持续提供业内领先的分类网络结构训练方法以及在imagenet 1000分类任务上的预训练模型。目前,已开源10种不同网络结构,25个预训练模型,包括当前效果最优的ResNet50(top-1:79.84%),助力用户提高构建模型的效率,大大减轻“炼丹”的烦恼。

一、当前效果最优的ResNet50预训练模型

ResNet是近几年非常流行的卷积神经网络结构,其创造性提出的残差结构,一举在ILSVRC2015比赛中取得冠军,并且获得计算机视觉顶级会议CVPR 2016的最佳论文。其中50层的网络结构(ResNet50)的效果优化,备受学术界和工业界关注。

一方面,广泛使用的ResNet50在imagenet 1000分类任务上,top1识别准确率可以达到较高的识别准确率76.5%;另一方面对一张224*224的图像进行分类,预测效率高,适合研究探索新方法和实际场景应用,在TeslaP4卡测试,如果使用飞桨核心框架Paddle Fluid预测,平均预测时间是8.787ms,进一步结合TensorRT预测,平均预测时间可以加速到5.434ms。「Bag of Tricks for ImageClassification with Convolutional Neural Networks」[1]汇总了近些年ResNet50改进工作,通过采用网络结构微调、余弦学习率衰减、标签平滑、mixup以及知识蒸馏技巧,在预测效率基本不变的前提下,将ResNet50的top1识别准确率从76.5%提升到79.29%。

百度视觉技术团队,基于百度深度学习平台飞桨,不仅复现了这些技巧,而且对知识蒸馏进行改进,将ResNet50的top1识别准确率从79.29%提升到79.84%,同时将这些技巧用于训练其他分类网络结构,提升这些网络预训练模型的能力。以下将会对网络结构微调和知识蒸馏两部分进行介绍。

对于ResNet网络结构微调,「Bag of Tricks for ImageClassification with Convolutional Neural Networks」[1]中提到了三种:ResNet-B、ResNet-C和ResNet-D。ResNet-B与标准的ResNet主要区别是每个残差模块特征图下采样的位置不同。ResNet-C主要改动如下,将输入图像后面第一个7x7的卷积核换成3个3x3的卷积核,在不改变初始感受野的情况下能带来更好的性能。ResNet-D的改动也是在每个残差模块,在stride为2的1x1的卷积核做下采样前接一个2x2的avg-pool,这样可以在几乎不增加计算量的同时,有效避免信息丢失。ResNet(B,C,D)改动如下图所示。

在设计知识蒸馏技巧时,我们的基本思想是在student model有预训练的情况下,让student model直接学习teacher model的softmax输出而不考虑真实label的情况会有更低的泛化误差,采用这种非常简单的方式,可以有效将teacher model的能力迁移到student model,如下图所示,将ResNet152_vd(top1:80.59%)作为teacher model,将已训练好的ResNet50_vd(top1:79.12)作为student model, 学习率采用带warmup的余弦下降的方式训练100epoch。最终ResNet50_vd网络结构 top1的识别准确率可以达到79.84%。这个预训练模型已经开源,其训练代码不久将会发布。

下表显示了每一次网络结构改动及增加训练策略后在imagenet 1000分类任务上top1的识别准确率,其中LSR为Label Smoothing Regularization的缩写。

二、飞桨已开源的图像分类预训练模型简介

AlexNet[2]

2012年,Alex等人提出的AlexNet网络在ImageNet大赛上以远超第二名的成绩夺冠,卷积神经网络乃至深度学习引起了广泛的关注。AlexNet使用relu作为CNN的激活函数,解决了sigmoid在网络较深时的梯度弥散问题。训练时使用Dropout随机丢掉一部分神经元,避免了模型过拟合。在CNN中使用重叠的最大池化(步长小于卷积核)。此前CNN中普遍使用平均池化,使用最大池化可以避免平均池化的模糊效果,同时重叠效果提升了特征的丰富性。从某种意义上说,AlexNet引爆了神经网络的研究与应用热潮。

VGG 系列模型[3]

VGGNet是牛津大学计算机视觉组和DeepMind公司共同研发一种深度卷积网络,2014年在ILSVRC比赛上获得了分类项目的第二名和定位项目的第一名,其网络设计思想直接影响了往后这些年的CNN网络设计,进一步推动了基于深度学习计算机视觉的发展。当前飞桨分类模型库提供了VGG11,VGG13,VGG16以及VGG19四个网络结构预训练模型。

GoogLeNet[4]与InceptionV4[5]

GoogLeNet又名InceptionV1,是Inception网络的开山鼻祖,GoogLeNet创造性地使用了1x1的卷积来进行升降维并且在多个尺寸上同时进行卷积再聚合,在相同的计算量下能提取到更多的特征,从而提升训练结果。此后Inception系列网络在不断升级,InceptionV4更是达到了当时的state of the art的效果,在各类AI竞赛中,也总能看到InceptionV4的影子。当前飞桨分类模型库提供的InceptionV4由于采用了label_smoothing与mixup混合训练的方式,将论文的指标提高了近0.8个点,成为目前开源最好的InceptonV4的预训练模型。

MobileNet系列模型[6] [7]

MobileNet是谷歌大脑为移动端设计的网络,它的出现一定程度上满足了移动端应用深度学习技术的需求,截止到现在,MobileNet网络一共有三代,每一代都在上一代的基础上进行了改进与优化,使得其称为名副其实的速度快,精度高,存储空间小的网络。

当前飞桨分类模型库提供了MobileNetV1和MobileNetV2的预训练模型(1x),其精度指标都高于论文指标,其他大小的预训练模型将在不久后开源。

ShuffleNet系列模型[8] [9]

随着移动端网络的需求的发展,移动端网络也成为很多科研机构的研究对象。旷视科技在2017,2018年相继提出的轻量级可用于移动设备的卷积神经网络ShuffleNetV1与ShuffleNetV2。其与MobileNet系列网络一块促进了移动端网络的发展。当前飞桨分类模型库提供了ShuffleNetV2(1x)的预训练模型,其精度指标都高于论文指标。其他大小的预训练模型将在不久后开源。

ResNet 系列模型[10]

ResNet创新性的提出了残差结构,一举在ILSVRC2015比赛中取得冠军,top5错误率为3.57%。斯坦福大学的Joyce Xu将ResNet称为「真正重新定义了我们看待神经网络的方式」的三大架构之一。在最新发布的飞桨分类预训练模型包括ResNet18,ResNet34,ResNet50,ResNet101和ResNet152。

ResNet系列模型的改进版[1]

由于ResNet系列网络的泛化性能强,‘性价比’高,从其诞生以来,就成为学术界和工业界青睐的网络,因此其改进版的网络也越来越多。在最新发布的飞桨分类预训练模型包括ResNet50_vc,ResNet50_vd,ResNet101_vd,ResNet152_vd和ResNet200_vd。

ResNeXt系列模型及改进版[11]

ResNeXt是ResNet和InceptionV4的结合体,然而ResNext不需要人工设计复杂的Inception结构细节,而是每一个分支都采用相同的拓扑结构。ResNeXt的本质是分组卷积,通过变量基数(Cardinality)来控制组的数量。与ResNet 参数量相同的条件下,ResNeXt表现出更低的泛化误差。在最新发布的飞桨分类预训练模型包括有ResNeXt101_64x4d,ResNeXt101_vd_64x4d,其他ResNeXt预训练模型将在不久后开源。

SE_ResNeXt 系列模型及改进版[12]

SE 全称 Sequeeze-and-Excitation,在ILSVRC 2017 的分类项目中取得了第一名的成绩。在 ImageNet 数据集上将 top-5 错误率从原先的最好成绩 2.991% 降低到 2.251%。

最新发布的飞桨预训练模型包括SE_ResNeXt50_32x4d,SE_ResNeXt101_32x4d,SE154_vd.

更多细节详情见:

https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification?fr=gzh

三、总结

无论是学术研究,还是工业应用,图像分类以及在imagenet上预训练模型,都起着非常重要的作用。本文介绍的图像分类技术以及预训练模型已经应用到百度视觉能力方方面面,包括以图搜索图像分类、OCR、人脸识别、视频理解等方向。这些视觉能力不仅用于内部产品,也通过百度AI开放平台持续对外输出,目前已对外开放了包括人脸识别、文字识别(OCR)、图像审核、图像识别、图像搜索等在内的70多项基础能力,为开发者和合作伙伴提供全栈式计算机视觉能力。

百度视觉技术团队会持续跟进业界前沿,基于百度深度学习平台飞桨,为用户提供更多新的图像分类预训练模型(包括NasNet系列,MobileNetV3,EfficientNet系列等),敬请期待。

参考文献

[1]Tong He, Zhi Zhang, Hang Zhang, Zhongyue Zhang, Junyuan Xie, Mu Li, Bag of Tricks for Image Classificationwith Convolutional Neural Networks, In CVPR 2019

[2] A. Krizhevsky, I.Sutskever, and G. E. Hinton. Imagenet classification with deep convolutionalneural networks. In NIPS, 2012.

[3] O. Russakovsky, J. Deng, H.Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M.Bernstein, et al. Imagenet large scale visual recognition challenge. IJCV.

[4] C. Szegedy, W. Liu, Y. Jia,P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich.Going deeper with convolutions. In CVPR, 2015

[5] C. Szegedy, S.Ioffe, and V. Vanhoucke. Inception- v4, inception-resnet and the impact ofresidual con- nections on learning. In ICLR Workshop, 2016.

[6] Howard, A.G., Zhu,M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., An- dreetto, M., Adam, H.: Mobilenets: Efficient convolutional neuralnetworks for mobile visionapplications. arXiv preprint arXiv:1704.04861 (2017)

[7] Sandler, M.,Howard, A., Zhu, M., Zhmoginov, A., Chen, L.C.: Inverted residuals and linearbottlenecks: Mobile networks for classification, detection and segmenta- tion. arXiv preprint arXiv:1801.04381 (2018)

[8] Zhang, X., Zhou, X., Lin,M., and Sun, J. Shufflenet: An ex- tremely efficient convolutional neuralnetwork for mobile devices. CVPR, 2018.

[9] Ma, N., Zhang, X., Zheng,H.-T., and Sun, J. Shufflenet v2: Practical guidelines for efficient cnnarchitecture design. ECCV, 2018.

[10] He, K., Zhang,X., Ren, S., and Sun, J. Deep residual learning for image recognition.CVPR,pp. 770–778, 2016.

[11] Xie, S.,Girshick, R., Dolla ́r, P., Tu, Z., and He, K. Aggregated residualtransformations for deep neural networks. CVPR

[12] Hu, J., Shen, L., and Sun, G. Squeeze-and-excitation net- works. CVPR,2018.

飞桨PaddlePaddle
飞桨PaddlePaddle

飞桨(PaddlePaddle)是中国首个自主研发、功能完备、开源开放的产业级深度学习平台。

https://www.paddlepaddle.org
专栏二维码
工程计算机视觉百度飞桨机器视觉目标检测
相关数据
DeepMind机构

DeepMind是一家英国的人工智能公司。公司创建于2010年,最初名称是DeepMind科技(DeepMind Technologies Limited),在2014年被谷歌收购。在2010年由杰米斯·哈萨比斯,谢恩·列格和穆斯塔法·苏莱曼成立创业公司。继AlphaGo之后,Google DeepMind首席执行官杰米斯·哈萨比斯表示将研究用人工智能与人类玩其他游戏,例如即时战略游戏《星际争霸II》(StarCraft II)。深度AI如果能直接使用在其他各种不同领域,除了未来能玩不同的游戏外,例如自动驾驶、投资顾问、音乐评论、甚至司法判决等等目前需要人脑才能处理的工作,基本上也可以直接使用相同的神经网上去学而习得与人类相同的思考力。

https://deepmind.com/
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

图像分割技术

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像索赋予相同的编号。

池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

图像检索技术

图像检索系统是用于从大型数字图像数据库浏览、搜索和检索图像的计算机系统。 大多数传统和常见的图像检索方法利用向图像添加诸如字幕、关键字或描述之类的元数据的一些方法,以便可以对注释词执行检索。 手动图像注释耗时,费力且昂贵; 为了解决这个问题,人们已经对自动图像标注进行了大量研究。

Dropout技术

神经网络训练中防止过拟合的一种技术

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

图像搜索技术

图像搜索是通过搜索图像文本或者视觉特征,为用户提供互联网上相关图像资料检索服务的专业搜索引擎系统,是搜索引擎的一种细分。图像搜索方法一般有两种:通过输入与图片名称或内容相似的关键字来进行检索;或者通过上传与搜索结果相似的图片或图片URL进行搜索。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

人脸识别技术

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

最大池化技术

最大池化(max-pooling)即取局部接受域中值最大的点。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

图搜索技术

在计算机科学中,图遍历(也称为图搜索)是指在图中访问(检查/或更新)每个顶点的过程。这样的遍历是按访问顶点的顺序进行分类的。比如,树遍历就是图遍历的一个特例。 与树遍历不同,图遍历可能需要多次访问某些顶点,因为在转换到一个已经被探索的顶点之前,它并不一定是已知的。随着图形变得越来越密集,这种冗余变得更加普遍,导致计算时间增加;随着图形变得越来越稀疏,相反的情况也成立。 因此,通常需要记住哪些顶点已经被算法探索过了,这样就可以尽可能少地重新访问顶点(或者在最坏的情况下,防止遍历无限延续)。这可以通过将图中的每个顶点与在遍历期间的“颜色”或“访问”状态相关联来完成,然后在算法访问每个顶点时检查和更新。如果顶点已经被访问过,它就被忽略了,路径就不再被继续了;否则,算法会检查/更新顶点,并继续它当前的路径。

GoogLeNet技术

同样在2014年,谷歌提出了 GoogLeNet(或Inception-v1)。该网络共有22层,且包含了非常高效的Inception模块,它同样没有如同VGG-Net那样大量使用全连接网络,因此参数量非常小。GoogLeNet最大的特点就是使用了Inception模块,它的目的是设计一种具有优良局部拓扑结构的网络,即对输入图像并行地执行多个卷积运算或池化操作,并将所有输出结果拼接为一个非常深的特征图。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

知识蒸馏技术

Hinton 的工作引入了知识蒸馏压缩框架,即通过遵循“学生-教师”的范式减少深度网络的训练量,这种“学生-教师”的范式,即通过软化“教师”的输出而惩罚“学生”。为了完成这一点,学生学要训练以预测教师的输出,即真实的分类标签。这种方法十分简单,但它同样在各种图像分类任务中表现出较好的结果。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

百度智能云机构

百度是全球最大的中文搜索引擎,是一家互联网综合信息服务公司,更是全球领先的人工智能平台型公司。2000年1月1日创立于中关村,公司创始人李彦宏拥有“超链分析”技术专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

http://www.baidu.com
旷视科技机构

旷视成立于2011年,是全球领先的人工智能产品和解决方案公司。深度学习是旷视的核心竞争力,我们打造出自研的AI生产力平台Brain++并开源其核心——深度学习框架“天元”,实现了算法的高效开发与部署。在持续引领技术进步的同时,我们推动AI产业的商业化落地,聚焦个人物联网、城市物联网、供应链物联网三大赛道,为个人用户带来更出色的美学体验与安全保障、让城市空间更有序、并帮助企业实现工业、仓储数字化升级。我们提供包括算法、软件和硬件产品在内的全栈式、一体化解决方案。

https://www.megvii.com
目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

感受野技术

一个感觉神经元的感受野是指这个位置里适当的刺激能够引起该神经元反应的区域。感受野一词主要是指听觉系统、本体感觉系统和视觉系统中神经元的一些性质。

推荐文章
暂无评论
暂无评论~