床长人工智能教程免费文档pdf——目标检测算法综述 包括
.
声明:本人只是分享一些床长人工智能教程相关的免费pdf文档而已,并非床长人工智能网校的收费文章。尊重版权,支持原创!
年初的目标检测算法综述
本文只讲基于深度学习的主要算法。
前言
如,深度学习算法之后的目标检测算法主要有两个分支,和算法。
算法主要是系列,包括,,,其中和之间过渡了一个。
之后在框架的基础上,又出现了更好的网络。
之后的融合了架构和,以及里的方法,在多完成了的同时也提高了的。
算法最早是后面又更新了,,该算法速度极快,也极低。
之后出现了速度和兼具的在基础上又出现了,,,等改进网络。
还有解决了算法里正负样本极不平衡问题的。
算法和算法的区别在于,算法会先使用一个网络生成,如和网络,前者是基于一些人造特征来的,是一个也需要进行训练的网络,出现后,方法基本就被摒弃。
网络接在像特征提取网络后和之后的网络架构共用特征提取层,会设置对网络进行训练,生成的再送到后面的网络中进行更精细的和。
追求速度舍弃了架构,即不再设置单独网络生成,而是直接在上进行密集抽样,产生大量的先验框,如的网格方法和沿用的方法。
这些先验框没有经过两步处理,且框的尺寸往往是人为规定,精度肯定会比较低,而且论文中提到,产生的先验框正负样本比例严重失衡背景样本占多数,会引起训练上的问题正是为了解决这个问题。
在首次引入后,后面很多网络不论是还是算法大都使用了该方法,如,,等,虽然没用但是升级版使用了。
不过在年问世后,的算法火了起来。
后来又相继出现了,等算法。
其实的算法在年的中就被提出,第一版也是的,该类方法的架构比基于的算法更简单和易于理解,不过类算法能达到算法的精度,也是建立在前人的成果上的,主要是和等。
值得一提的是,大神参与或主导了,,,,等的网络,甚至目前在领域,的网络也是的截至年月,是时候打印一张大神的照片挂墙上了。
该架构是的基础,建议将论文和官方代码都仔细读一遍,论文详解出门左拐一文读懂
检测时的主要步骤为
使用算法从待检测像中提取个左右的区域候选框,这些候选框可能包含要检测的目标。
把所有侯选框缩放成固定大小原文采用。
用提取每个候选框的特征,得到固定长度的特征向量。
把特征向量送入进行分类得到类别信息,送入全连接网络进行回归得到对应位置坐标信息。
的问题对于选取的每个候选框都单独做一次卷积运算,计算量太大特征向量提取出来后送给分类器进行分类,之后再送入全连接网络进行回归,没有实现端到端的训练。
的改进
只对原进行一次卷积运算,然后将在原上用选取的候选框按位置映射到获得的特征上,获得上的候选框。
由于直接在特征上进行,得到的候选框尺寸不一样,为了统一尺寸输入到后面的网络中,采用了如下的网络,即。
不同的候选框都采取种不同尺寸的,尺寸即将候选框划分成个格子,每个格子内部进行,尺寸就是全局的,之后再将中尺寸的结果直接在一起,形成的特征,输入到之后的全连接网络中。
沿用了将候选框映射到特征上的方法,不过使用了的缩减版,即只有一个尺寸的。
将不同尺寸的输入成单一尺寸的特征,从而输入片可以是任意尺寸,变形过程通常是缩小,所以称为。
假设变形前的尺寸为,要求变形后统一输出尺寸,则将变形前区域分成单位为和的网格网格个数为个,再对每个网格进行即可。
这种方法会有非整数出现,此时用的实际上是最近邻插值,会带来精度上的问题使用双线性插值解决了这个问题。
另外,去掉了之前使用的分类器,而是用完成分类,同时分支做回归,结合两种一同训练。
网络
在的基础上不再使用方法产生候选框,方法太耗时间,而是添加了一个网络用于生成候选框,网络生成的过程使用了方法,这也是最大的贡献。
网络接在像特征提取网络后,共享了特征提取层。
网络的卷积后,对每个像素点,可以上采样映射到原始像一个区域网络的感受野,映射方法和正好相反,见,找到这个感受野的中心位置,然后基于这个中心位置按规则选取种论文中三种面积,个,即对特征的每个像素都设置个候选区域。
这些都是对应于原的尺寸,可以直接使用标记的候选框和分类结果进行训练。
其中
把每个标定的与其重叠最大的记为前景样本。
保证每个至少对应一个正样本
剩余的与某个重叠大余的记为前景样本。
每个可能会对应多个正样本。
但每个正样本只可能对应一个
与任意一个标记重叠小于的记为背景样本。
其余的舍弃。
在训练过程中,经历了个阶段
特征,对于一个的像,的数量在个。
训练时,去掉超过像边界的,还剩下个。
由于有些直接重叠部分过多,使用算法去除重叠部分,剩下个。
论文里算法的设置为。
最后从之后的候选框中选来进行后续的。
训练方法四步训练法
单独训练网络,网络参数由预训练模型载入
单独训练网络,将第一步的输出候选区域作为检测网络的输入。
具体而言,输出一个候选框,通过候选框截取原像,并将截取后的像通过几次,然后再通过和再输出两条支路,一条是目标分类,另一条是回归。
截止到现在,两个网络并没有共享参数,只是分开训练了
再次训练,此时固定网络公共部分的参数,只更新独有部分的参数
那的结果再次微调网络,固定网络公共部分的参数,只更新独有部分的参数。
注意和前面的不是同一个东西,里的是,里的是
特征金字塔较于基础网络如,,等,有种相较于的感觉当然里的除外,是的一个组件,而不是重新创建了一个新的。
在信息的传导上,就更有种的感觉了,虽然当前特征层的信息经过卷积会传到下一层,但是还是会选择性地丢掉很多信息,所以不如结合多个特征层的信息一起作用于后面的分类和回归,虽然计算量变大,但是精度会提高正是给上个层每一个单元都添加了权重,相当于利用了每个单元的信息,而不再只是最后一个单元的信息。
实际上,在像的卷积网络里,低层分辨率高,语义特征没有捕捉很充分,不适合做分类但是很适合做分割任务,实际上不同分辨率的特征也适合不同尺寸的目标检测,分辨率高的更有利于小物体的检测。
而最大的好处就是提供了多尺度的特征表达,这个好处可以给很多任务带来质变。
为了应对的问题,其实最简单的方法就是设置多种尺度的像,每种尺度单独训练一个网络用于检测,如下所示。
但这种方法效率不达标,会使的时间大大增加,在端到端地训练网络时内存需求也是极大的,这导致了没有在里使用。。。