首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >图像分类技术报告

图像分类技术报告

原创
作者头像
智科帮
修改于 2020-10-09 07:54:44
修改于 2020-10-09 07:54:44
2.5K0
举报
文章被收录于专栏:AIGOAIGO

一、图像分类问题描述

图像分类问题是计算机视觉领域的基础问题,它的目的是根据图像的语义信息将不同类别图像区分开来,实现最小的分类误差。具体任务要求是从给定的分类集合中给图像分配一个标签的任务。总体来说,对于单标签的图像分类问题,它可以分为跨物种语义级别的图像分类,子类细粒度图像分类,以及实例级图像分类三大类别。因为VOC数据集是不同物种类别的数据集,所以本文主要研究讨论跨物种语义级别的图像分类任务。

通常图像分类任务存在以下技术难点:

(1)视角变化:同一个物体,摄像机可以从多个角度来展现。

(2)大小变化:物体可视的大小通常是会变化的。

(3)形变:很多东西的形状并非一成不变,会有很大变化。 (4)遮挡:目标物体可能被挡住。有时候只有物体的一小部分是可见的。

(5)光照条件:在像素层面上,光照的影响非常大。

(6)背景干扰:物体可能混入背景之中,使之难以被辨认。

(7)类内差异:一类物体的个体之间的外形差异很大,比如椅子。这一类物体有许多不同的对象,每个都有自己的外形。

二、已有研究进展

一般说来,图像分类算法通过手工特征或者特征学习方法对整个图像进行全局描述,然后使用分类器判断是否存 在某类物体。应用比较广泛的图像特征有SIFT,HOG,SURF等。这些对图像分类的研究中,大多数特征提取过程是人工设计的, 通过浅层学习获得图像底层特征,与图像高级主题间还存在很大的“语义鸿沟” 。而深度学习利用设定好的网络结构, 完全从训练数据中学习图像的层级结构性特征, 能够提取更加接近图像高级语义的抽象特征,在图像识别上的表现远远超过传统方法,因此这里只关注于深度学习的进展。

2.1 MNIST与LeNet5

在计算机视觉分类算法的发展中,MNIST 是首个具有通用学术意义的基准。这是一个手写数字的分类标准,包含 60000 个训练数据,10000 个测试数据,图像均为灰度图,通用的版本大小为 28×28。

在上个世纪90年代末本世纪初,SVM and K-nearest neighbors方法被使用的比较多,以SVM为代表的方法,可以将MNIST分类错误率降低到了0.56%,彼时仍然超过以神经网络为代表的方法,即LeNet系列网络。LeNet网络诞生于1994年,后经过多次的迭代才有了1998年的LeNet5,是为我们所广泛知晓的版本。

这是一个经典的卷积神经网络,它包含着一些重要的特性,这些特性仍然是现在CNN网络的核心。

(1)卷积层由卷积,池化,非线性激活函数构成。从1998年至今,经过20年的发展后,卷积神经网络依然遵循着这样的设计思想。其中,卷积发展出了很多的变种,池化则逐渐被带步长的卷积完全替代,非线性激活函数更是演变出了很多的变种。

(2)稀疏连接,也就是局部连接,这是以卷积神经网络为代表的技术能够发展至今的最大前提。利用图像的局部相似性,这一区别于传统全连接的方式,推动了整个神经网络技术的发展。

虽然LeNet5当时的错误率仍然停留在0.7%的水平,不如同时期最好的SVM方法,但随着网络结构的发展,神经网络方法很快就超过了其他所有方法,错误率也降低到了0.23%,甚至有的方法已经达到了错误率接近0的水平。

2.2 ImageNet与AlexNet

在本世纪的早期,虽然神经网络开始有复苏的迹象,但是受限于数据集的规模和硬件的发展,神经网络的训练和优化仍然是非常困难的。MNIST和CIFAR数据集都只有60000张图,这对于10分类这样的简单的任务来说,或许足够,但是如果想在工业界落地更加复杂的图像分类任务,仍然是远远不够的。

后来在李飞飞等人数年时间的整理下,2009年,ImageNet数据集发布了,并且从2010年开始每年举办一次ImageNet大规模视觉识别挑战赛,即ILSVRC。ImageNet数据集总共有1400多万幅图片,涵盖2万多个类别,在论文方法的比较中常用的是1000类的基准。

在ImageNet发布的早年里,仍然是以SVM和Boost为代表的分类方法占据优势,直到2012年AlexNet的出现。

AlexNet是第一个真正意义上的深度网络,与LeNet5的5层相比,它的层数增加了3层,网络的参数量也大大增加,输入也从28变成了224,同时GPU的面世,也使得深度学习从此进行GPU为王的训练时代。

AlexNet有以下的特点:

(1)网络比LeNet5更深,包括5个卷积层和3个全连接层。

(2)使用Relu激活函数,收敛很快,解决了Sigmoid在网络较深时出现的梯度弥散问题。

(3)加入了Dropout层,防止过拟合。

(4)使用了LRN归一化层,对局部神经元的活动创建竞争机制,抑制反馈较小的神经元放大反应大的神经元,增强了模型的泛化能力。

(5)使用裁剪翻转等操作做数据增强,增强了模型的泛化能力。预测时使用提取图片四个角加中间五个位置并进行左右翻转一共十幅图片的方法求取平均值,这也是后面刷比赛的基本使用技巧。

(6)分块训练,当年的GPU计算能力没有现在强大,AlexNet创新地将图像分为上下两块分别训练,然后在全连接层合并在一起。

(7)总体的数据参数大概为240M,远大于LeNet5。

2.3 分类模型的逐年进步

2013年ILSVRC分类任务冠军网络是Clarifai,不过更为我们熟知的是zfnet。hinton的学生Zeiler和Fergus在研究中利用反卷积技术引入了神经网络的可视化,对网络的中间特征层进行了可视化,为研究人员检验不同特征激活及其与输入空间的关系成为了可能。在这个指导下对AlexNet网络进行了简单改进,包括使用了更小的卷积核和步长,将11x11的卷积核变成7x7的卷积核,将stride从4变成了2,性能超过了原始的AlexNet网络。

2014年的冠亚军网络分别是GoogLeNet和VGGNet。

其中VGGNet包括16层和19层两个版本,共包含参数约为550M。全部使用3×3的卷积核和2×2的最大池化核,简化了卷积神经网络的结构。VGGNet很好的展示了如何在先前网络架构的基础上通过简单地增加网络层数和深度就可以提高网络的性能。虽然简单,但是却异常的有效,在今天,VGGNet仍然被很多的任务选为基准模型。

GoogLeNet是来自于Google的Christian Szegedy等人提出的22层的网络,其top-5分类错误率只有6.7%。

GoogleNet的核心是Inception Module,它采用并行的方式。一个经典的inception结构,包括有四个成分。1×1卷积,3×3卷积,5×5卷积,3×3最大池化,最后对四个成分运算结果进行通道上组合。这就是Inception Module的核心思想。通过多个卷积核提取图像不同尺度的信息然后进行融合,可以得到图像更好的表征。自此,深度学习模型的分类准确率已经达到了人类的水平(5%~10%)。

与VGGNet相比,GoogleNet模型架构在精心设计的Inception结构下,模型更深又更小,计算效率更高。

2015年,ResNet获得了分类任务冠军。它以3.57%的错误率表现超过了人类的识别水平,并以152层的网络架构创造了新的模型记录。由于ResNet采用了跨层连接的方式,它成功的缓解了深层神经网络中的梯度消散问题,为上千层的网络训练提供了可能。

2016年依旧诞生了许多经典的模型,包括赢得分类比赛第二名的ResNeXt,101层的ResNeXt可以达到ResNet152的精确度,却在复杂度上只有后者的一半,核心思想为分组卷积。即首先将输入通道进行分组,经过若干并行分支的非线性变换,最后合并。

在ResNet基础上,密集连接的DenseNet在前馈过程中将每一层与其他的层都连接起来。对于每一层网络来说,前面所有网络的特征图都被作为输入,同时其特征图也都被后面的网络层作为输入所利用。

DenseNet中的密集连接还可以缓解梯度消失的问题,同时相比ResNet,可以更强化特征传播和特征的复用,并减少了参数的数目。DenseNet相较于ResNet所需的内存和计算资源更少,并达到更好的性能。

2017年,也是ILSVRC图像分类比赛的最后一年,SeNet获得了冠军。这个结构,仅仅使用了“特征重标定”的策略来对特征进行处理,通过学习获取每个特征通道的重要程度,根据重要性去降低或者提升相应的特征通道的权重。

卷积神经网络在特征表示上具有极大的优越性,模型提取的特征随着网络深度的增加越来越抽象,越来越能表现图像主题语义,不确定性越少,识别能力越强。虽然基本的图像分类任务,尤其是比赛趋近饱和,但是现实中的图像任务仍然有很多的困难和挑战。如类别不均衡的分类任务,类内方差非常大的细粒度分类任务,以及包含无穷负样本的分类任务。

三、方法与实现

3.1 数据处理

考虑到深度学习中模型性能与数据集数量密切相关,以及数据不足导致的训练不充分,本文通过对数据进行预处理以及数据增强提升分类性能,增强模型的泛化性。主要包括调整图像大小、镜像、剪切、旋转和随机擦除等。

神经网络在学习的时候一般采取批学习方式提高效率,在具体实现时,模型接受的是张量,所以首先要把原始数据处理成张量形式。然后是对图像进行预处理,调整大小到统一尺寸,目的是适应模型训练;同时对读入的图像进行归一化,目的是为了让某些激活函数的梯度不致于过小,加快收敛。

通过对图像镜像、剪切、旋转以及随机擦除不仅可以增加数据集的数量,还可以增加图像的识别难度和训练过程中的难例,让模型能够学到更多的有效特征。

3.2 基准模型

由于深度残差网络的简洁性和有效性,因此我们方法的基准网络模型采用深度残差网络ResNet。

深度残差网络是2015年提出的深度卷积网络,一经出世,便在ImageNet中斩获图像分类、检测、定位三项的冠军。 一般来说,增加网络的宽度和深度可以很好的提高网络的性能,深的网络一般都比浅的的网络效果好,通过实验我们发现,当网络层数达到一定的数目以后,网络的性能就会饱和,再增加网络的性能就会开始退化,但是这种退化并不是由过拟合引起的,因为我们发现训练精度和测试精度都在下降,这说明当网络变得很深以后,深度网络就变得难以训练了。 ResNet的出现其实就是为了解决网络深度变深以后的性能退化问题。如下图所示,ResNet主要通过残差网络结构使优化的目标变为H(x)=F(x)+x(x就是该结构的输入),通过这种结构以后就把优化的目标由H(x)转化为H(x)-x,这时候就不是把上面几层训练到一个等价映射了,而是将其逼近与0,这样训练的难度比训练到一个等价映射下降了很多,同时解决网络太深难训练的问题。

残差网络结构
残差网络结构
深度残差网络分类
深度残差网络分类

如上图所示,按照网络模型输出层数的不同,残差网络可以分为ResNet 18、ResNet 34、 ResNet 50、 ResNet 101等。我们分别在这几个基准模型进行了图像分类任务的实现。

3.3 损失函数

多分类问题最常用的方法是设置n个输出节点,其中n为类别的个数。对于每一个样例,网络模型可以得到的一个n维数组作为输出结果。数组中的每一个维度(也就是每一个输出节点)对应一个类别。在理想情况下,如果一个样本属于类别k,那么这个类别所对应的输出节点的输出值应该为1,而其他节点的输出都为0。

交叉熵是最好的评判方法之一。交叉熵刻画了两个概率分布之间的距离,它是分类问题中使用比较广的一种损失函数。本文采用的是加权的交叉熵函数,按照不同类别图像的数量设置权值,目的是平衡不同类别的图像的数量。

3.4 算法流程

(1)数据处理:将数据按需处理为张量、随机组成批量、归一化、标准化以及一些数据增强等效果。

(2)模型定义:定义ResNet模型,设计网络层数,层的类别,包括卷积,池化,批标准化,激活函数的设置。

(3)参数更新:训练模型的过程最基本的就是更新参数,更新参数与模型紧密相关,因此可以把最基础的单次参数更新和模型合在一起包装成一个对象,在训练过程中更新参数时,喂给这个模型数据,然后使用这个对象的行为来实现单次更新。具体流程为根据model生成模型对象,对这些层进行初始化,接受批数据,根据定义好的优化方法,更新对象内的模型参数。

(4)模型选择:模型选择的准则是根据任务需要来的,每次更新完参数测试模型是否满足条件,符合就停止算法,不符继续。

3.5 具体实现

我们的方法实现基于Pytorch深度学习框架,将所有图像调整大小为300*300,批次大小设置为32,模型包括ResNet 18、ResNet 34、 ResNet 50、 ResNet 101,并导入在ImageNet数据集的预训练模型,初始学习率大小设置为1e-3,优化方法选取随机梯度下降方法,动量设置为0.9,训练轮数为16。

四、实验结果

4.1 数据集

本文使用Pascal VOC2012数据集进行模型训练测试,它主要是针对视觉任务中监督学习提供标签数据,它有二十个类别:

(1)Person:person

(2)Animal: bird, cat, cow, dog, horse, sheep

(3)Vehicle:aeroplane, bicycle, boat, bus, car, motorbike, train

(4)Indoor: bottle, chair, dining table, potted plant, sofa, tv/monitor

主要有四个大类别,分别是人、常见动物、交通车辆、室内家具用品。

本文将在VOC数据集的训练集进行训练,在验证集上进行测试评估。在数据集训练评估之前需要将图片中目标部分抠取出来,进行分类任务。

模型定性评估
模型定性评估

4.2 评价指标

本文采取top1准确率进行模型性能评估,即预测的label取最后概率向量里面最大的那一个作为预测结果,如果预测结果中概率最大的那个分类正确,则预测正确,否则预测错误。

4.3 定性评估

如上图所示,本文在VOC的验证集上进行测试,基本能够对目标进行准确分类,包括在形变、遮挡等复杂条件下,依然有较好的分类效果。

4.4 定量评估

模型

resnet18

resnet34

resnet50

resnet101

准确率

88.45

90.84

91.29

92.59

网络层数

102

182

267

522

模型大小

44.6M

83.2M

97.7M

170M

如表所示,本文分别在基准模型ResNet 18、ResNet 34、 ResNet 50、 ResNet 101分别训练测试了VOC 2012数据集,可以明显看出随着模型层数的增加和模型大小的增加,准确率有提升,但是提升幅度逐渐放缓,在ResNet 101模型上取得了最好的效果92.59。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
GB/T28181和JT1078哪个更先进?
​上篇blog我们探讨到GB/T28181规范和JT1078区别和各自应用场景,如果非要比较GB/T28181和JT1078哪个更先进,我们可以从二者更适合哪一类场景,包括规范的设计目标、功能特性、应用场景、技术发展趋势来做个探讨。
音视频牛哥
2024/09/04
4410
GB/T28181和JT1078哪个更先进?
从2011到2022:GB/T 28181如何塑造中国视频监控联网生态
GB/T 28181,全称《安全防范视频监控联网系统信息传输、交换、控制技术要求》,是我国视频监控领域的重要国家标准。该标准自发布以来,历经多个版本的迭代升级,逐步构建起统一、开放、兼容的视频监控通信体系,已成为安防行业不可或缺的技术基石。
音视频牛哥
2025/07/02
3280
从2011到2022:GB/T 28181如何塑造中国视频监控联网生态
GB/T28181-2022规范解读、应用场景和技术实现探究
GB/T28181-2022《公共安全视频监控联网系统信息传输、交换、控制技术要求》与 GB/T28181-2016 相比,主要有以下区别:
音视频牛哥
2024/10/22
8050
GB/T28181-2022规范解读、应用场景和技术实现探究
GB28181设备接入模块和轻量级RTSP服务有什么区别?
好多开发者在跟我们沟通直播模块的时候,对GB28181设备接入和RTSP模块特别是轻量级RTSP服务,区分不清楚,不知道分别用在什么场景下。针对这个问题,我们做个简单的探讨。
音视频牛哥
2024/07/16
5160
GB28181设备接入模块和轻量级RTSP服务有什么区别?
一文详解GB28181、RTSP、RTMP
GB28181 即 GB/T28181—2016《公共安全视频监控联网系统信息传输、交换、控制技术要求》。它是公安部提出的公共安全行业标准,在视频监控领域具有重要地位。
音视频牛哥
2024/09/24
8.1K0
一文详解GB28181、RTSP、RTMP
GB28181和RTSP使用场景区别有哪些?
好多开发者纠结,到底使用GB28181还是RTSP,这里简单的谈下二者使用场景区别,GB28181和RTSP(Real-Time Streaming Protocol)是用于视频监控和流媒体传输的两种不同的协议。
音视频牛哥
2023/10/31
3.3K0
GB28181和RTSP使用场景区别有哪些?
GB/T28181-2016传输要求和Android平台设备接入技术实现
GB/T28181-2016公共安全视频监控联网系统 信息传输、交换、控制技术要求相关的传输要求如下:
音视频牛哥
2022/09/10
6960
为什么要做Android端GB28181设备接入模块?
好多开发者跟我们做沟通交流的时候,问的比较多的问题是,你们是怎么想到做Android平台GB28181设备接入模块的?为什么有了RTMP推送模块、轻量级RTSP服务模块,还要费时费力的做GB28181设备接入模块?GB28181规范有什么优势或特点?
音视频牛哥
2024/10/22
2710
为什么要做Android端GB28181设备接入模块?
如何集成Android平台GB28181设备接入模块?
大牛直播SDK的Android平台GB28181设备接入模块在适用场景、音视频能力、定位与通信、数据管理、安全性与稳定性、配置与扩展性以及集成与维护等方面均表现出显著的优势。这些优势使得该模块在视频监控、巡检抢修、远程指挥等多个领域具有广泛的应用前景和重要的应用价值。这些优势主要体现在以下几个方面:
音视频牛哥
2024/09/13
2410
如何集成Android平台GB28181设备接入模块?
Android平台GB28181记录仪在电网巡检抢修中的应用和技术实现
在探讨Android平台GB28181设备接入端在电网巡检抢修优势之前,大牛直播SDK已经在执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终端等场景有了丰富的经验积累,GB28181记录仪在电网巡检抢修中,主要依赖于其强大的实时音视频采集、传输、定位以及远程监控等功能,以提高电网巡检的效率、安全性和数据管理的便捷性,日常巡检可以用无人机,考虑到和现场工作人员的交互,巡检或抢修,用GB28181记录仪也是个非常不错的选择。
音视频牛哥
2024/07/10
2250
Android平台GB28181记录仪在电网巡检抢修中的应用和技术实现
Android平台GB28181记录仪如何用于铁路巡检?
1876 年,中国土地上出现了第一条营业铁路 —— 吴淞铁路,它由英国商人擅自修筑,虽然短暂运营后被拆除,但揭开了中国铁路建设的序幕。之后,清政府开始自主修建铁路,詹天佑主持修建的京张铁路于 1909 年建成通车,这是中国人自行设计和施工的第一条铁路干线 ,它克服了重重困难,展现了中国人民的智慧和勇气。不过,在旧中国,由于战乱频繁、经济落后等原因,铁路建设缓慢,到新中国成立前夕,全国铁路营业里程仅 2.18 万公里,且分布不均,技术装备落后。
音视频牛哥
2025/02/06
2400
Android平台GB28181记录仪如何用于铁路巡检?
Android平台GB28181设备接入侧如何实现按需打开视音频采集传输
GB/T28181是中国国家标准,全称为《安全防范视频监控联网系统信息传输、交换、控制技术要求》,该标准规定了城市安全防范监控系统中视频监控联网系统的一般要求和架构,以及信息传输、交换、控制的技术要求。它主要应用于安防领域,为各种视频监控系统提供了一致的接口规范,使得不同厂商生产的视频监控设备可以相互兼容。规范规定了公共安全视频监控联网系统(以下简称“联网系统”)的互联结构,传输、交换、控制的基本要求和安全性要求,以及控制、传输流程和协议接口等技术要求。适用于公共安全视频监控联网系统的方案设计、系统检测、验收以及与之相关的设备研发生产。其他视频监控联网系统可参照执行。目前已更新至GB/T28181-2022版。
音视频牛哥
2023/09/15
3720
Android平台GB28181设备接入侧如何实现按需打开视音频采集传输
Android平台GB28181设备接入端智慧工地解决方案
智慧工地是一种运用物联网、大数据、云计算、人工智能等新兴技术,对建筑工地进行数字化、信息化、智能化改造的一种新型工地管理模式。智慧工地解决方案是一种基于互联网和物联网技术的创新型管理方式,可以有效提高工地的安全生产监管和建筑质量监管水平。
音视频牛哥
2023/10/12
7090
Android平台GB28181设备接入端智慧工地解决方案
GB/T28181-2022协议版本标识X-GB-Ver解读
GB28181-2022相对2016,其中有个变化是:报文中携带协议版本标识 X-GB-Ver:3.0(3.0-2022 2.0-2016)
音视频牛哥
2023/02/14
1.6K0
GB/T28181-2022协议版本标识X-GB-Ver解读
GB/T28181-2016基于RTP的视音频数据封装和技术实现
基于RTP的 PS封装首先按照ISO/IEC13818-1:2000将视音频流封装成PS包,再将PS包以负载的方式封装成 RTP包。
音视频牛哥
2022/09/25
1.4K0
Android平台GB28181设备接入侧如何同时对外输出RTSP流?
GB28181的应用场景非常广泛,如公共安全、交通管理、企业安全、教育、医疗等众多领域,细分场景可用于如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终端等:
音视频牛哥
2023/07/28
3710
Android平台GB28181设备接入侧如何同时对外输出RTSP流?
政务与应急指挥可视化接入解决方案—基于SmartGBD实现Android平台GB28181接入能力
随着城市治理数字化、应急响应体系现代化的深入推进,政务与应急系统对视频接入、指挥调度、联动响应提出了前所未有的实时性与协同性需求:
音视频牛哥
2025/05/06
3040
政务与应急指挥可视化接入解决方案—基于SmartGBD实现Android平台GB28181接入能力
GB/T28181设备接入端如何应用到数字城管场景?
数字城管,又称“数字化城市管理”或“智慧城管”,是一种采用信息化手段和移动通信技术来处理、分析和管理整个城市的所有城管部件和城管事件信息,促进城市管理现代化的信息化措施。
音视频牛哥
2023/08/13
2800
GB/T28181设备接入端如何应用到数字城管场景?
Android平台GB28181设备接入侧(编码前|编码后|RTSP|RTMP)支持功能浅析
在之前,我有写过Android平台GB28181设备接入模块的好多blog,包括参数设置、功能支持与扩展等,以数据接入为例,支持的数据类型涉及编码前、编码后或直接流数据(RTSP或RTMP流)。可用于如智慧教育、远程办公、生产运输、智慧交通、车载或执-法-记录仪等场景。
音视频牛哥
2022/10/07
1.1K0
Android平台GB28181设备接入侧(编码前|编码后|RTSP|RTMP)支持功能浅析
Android平台如何通过OTG外接UVC摄像头实时预览并回传到GB28181平台
早在2015年,我们在做Android平台RTMP直播推送模块的时候,就有用到UVC摄像头采集,比如移动单兵或采集执法场景,除了Android系统自带的摄像头外,设备端还需要支持UVC外接摄像头。先说什么是UVC吧?实际上,UVC全称为USB Video Class,即:USB视频类,是一种为USB视频捕获设备定义的协议标准。是Microsoft与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标准,已成为USB org标准之一。
音视频牛哥
2025/01/02
1.9K0
Android平台如何通过OTG外接UVC摄像头实时预览并回传到GB28181平台
推荐阅读
相关推荐
GB/T28181和JT1078哪个更先进?
更多 >
交个朋友
加入[腾讯云] DeepSeek开发者交流群
前沿技术深度讨论 发展开发者人脉圈
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档