CNN+transformer入门学习

2024-05-30 20:46:35 浏览数 (1)

历代算法

基于LeNet5的卷积神经网络结构

1998年Yann Le Cun等人首先提出了基于LeNet5的卷积神经网络结构

AlexNet

2012 年 Krizhevsky A 等提出了网络结构 AlexNet,速度远超传统算法

分类和回归两种算法

往后,随着发展分为分类和回归两种算法

第一步选择候选区域(region proposals),并对候选区域进行分类和定位,由此输出目标检测结果

2014 年, Girshick R 等人提出了 R-CNN

先取得输入的图像,再采用选择性搜索(Selective Search)算法,自下而上提取大约2000个区域,再用大型卷积神经网络(CNN)对每个提取区域的特征进行分析,并最终采用特定的类线性SVM对各区域进行分类 。

优点:简单 、可扩展性好 缺点:训练网络中的正、负样本候选区域是用传统算法产生的,这就给算法的运算速度造成了一定的限制;每一次检测都要产生2000多个候选框,每一个候选框都要进行一次卷积运算 ,因此产生了大量的重复运算 ,降低了检测的效率

He K等人2014年在卷积神经网络中提出了一种金字塔池化层SPP-Net

可以处理任何候选区域 ,无论多大分辨率的图片 ,它的输出大小都是相同的 ,从而改善了图像的不变性 ,减少了过拟合。

然而,与R-CNN方法相比,由于训练的图像大小不一致,使得候选框的感兴趣区域存在较大的偏差,因此不能采用逆向传播算法进行加权更新。

2015 年, Ren 等人针对SPP-Net 存在的两大问题 ,提出了基于 Fast R-CNN 算法

将图像和多个感兴趣区域 (Region of Interest ,RoI) 输入到基本卷积网络 ,各感兴趣区域集中在一个特定尺寸的特征映射上 ,再由全连接层 (FC)将其映射到特征矢量。该方法通过多任务损失对算法进行端到端的训练。

然而,FastR-CNN仍然采用选择性搜索方法来提取区域候选框,这会导致运算时间和运算速度降低。

Ren S等人在2015年提出Faster R-CNN算法

在这之前都是依据 Selective Search 或者 Edge Boxes 等传统方法, 这些方法是基 于低等级视觉特征 , 无法在数据驱动形式中学习到。

先以整幅图像为输入,通过卷积运算生成特征层,再将卷积特征输入到RPN网络中,获取候选框的特征信息,再利 用分类器对候选框中的特征进行分类,最终确定其属于某个特征的候选框,再利用回归器对其进行定位微调。该网络能够将由卷积神经网络所提取的特征信息与整个网络的数据进行共享,使得该方法的运算速度和精确度得到了极大的改善,使得两阶段模型能够更好地进行深度处理。然而,当具有特定大小的卷积特征图时,RPN网络可以产生多种大小的候选框,从而导致了目标物体大小可变和固定感受野的不一致性。

2016年,Redmon J等人提出了一种新的目标检测算法YOLO

把目标检测的概念看成是一个空间的回归问题,单个神经网络一次操作就可以从一个完整的图像中提取出预测的边框和分类概率,从而可以最大限度地优化检测性能。基于全局信息的检测方法

Redmon J等在 2016 年引进了一种新型的YOLO9000算法

实时的目标检测系统,它能探测到9000多种不同类型的目标。

YOLOv3

对于候选框中是否含有对象进行了判断,减少了识别错误;并采用二分类器对每一个候选框进行多类别预测

加入多尺度预测,提高了对小型目标的识别

提出了一个新的基础网络darknet53

在定位精度方面存在的缺陷

Liu W 等人在 2016 年提出SSD(Single Shot MultiBox Detector)算法

使用深度神经网络。

定位边框是一组空间上离散的默认框,并与不同的长宽比和映射位置相对应

根据每个默认框中的目标分类,自动生成相应的概率得分,并通过调节默认框来达到较好的匹配效果

根据多个特征映射对分辨率不同的目标进行全面的预测,从而完成多尺度物体的检测。

优点:简洁、有效,省去了区域提取和下采样的步骤,将所有的运算都打包在一个单一的网络中,易于学习和整合。

缺点:小目标与特征图中的小面积区域相对应,不能得到完全训练,所以SSD对小目标的识别仍然不够有效;而在无候选区域时,区域回归困难,较难收敛;SSD各层次的特征图分别作为单独的输入,使得同一对象在同一尺度上被不同尺寸的框同时检测,从而产生重复操作。

小目标检测现状

下面是一些解决方案

使用小目标数据集:

DOTA数据集,VEDAI数据集

多尺度预测

一种是采用多尺度神经网络来提取不同水平的特征,以满足各种尺寸物体的目标检测,多尺度预测采用多层次特征,对不同规模大小的特征图进行预测大小不一的目标。

特征金字塔,FPN,2017年,LinTY等基于Faster R-CNN网络提出。

FPN的自上而下和自下而上: 自下而上(bottom-up)的过程是指从网络底部的低级特征层向上传递信息的过程。在FPN中,通过堆叠卷积层或金字塔池化层,底层特征被逐渐提取和上采样,产生具有不同尺度和语义信息的特征图。这样做的目的是为了捕捉图像中的细节和局部特征。

自上而下(top-down)的过程是指从网络顶部的高级特征层向下传递信息的过程。在FPN中,高级特征图通过上采样或插值操作得到与底层特征图相同的分辨率,然后与底层特征图进行逐元素的融合。这种融合操作通过连接或加权求和等方式,将高级语义信息传递给底层特征图,以提供更丰富的上下文信息。

GAN

人数统计现状

2012 年钱鹤庆等人提出一种基于人脸检测的人数统计方法,利用 AdaBoost 算法和跳帧检测方法进行实验,最终检测效果以及统计速度都有提升;

2019年陈久红等人通过改进R-FCN网络大大提高了R-FCN目标检测算法对小目标的识别能力,准 确率有较大的提升;

鞠默然等人针对小目标检测率低、虚警率高等问题,提出了改进YOLOv3 的模型结构,结果显示改进后的模型结构对小目标的召回率和准确率都有明显提升。

陈晓等人针对目标检测中的误检漏检问题,提出了一种基于视频的人数统计方 法,通过对特征提取、损失函数以及后处理阶段的改进,使得检测准确率以及召回率有一定提高,且处理速度较快。

成玉荣等人为了统计当前监控环境下的人数,引入了通道注意力机制,改进了Tiny-YOLOv3算法,训练人体头部的目标检测模型,实验的平均检测精度高达80%。

郑国书[58]等人基SSD模型,提出了一种基于人头检测的视频室内人数统计方法,该算法可以对小尺度人头进行检测,准确度高,实时性好,但是SSD模型中的特征提取不足,主要是利用低层次的特征来进行小目标的识别。

此次研究主要内容

对YOLOv3网络结构中的特征提取部分以及特征融合部分通过增加网络深度、加入注意力机制、修改网络的层级结构等方法分别进行改进,以减少统计中的误检率和漏检率。

卷积神经网络

生物自然视觉的一种前馈神经网络,源于多层次感知器(MLP),具有局部区域连接、权重共享、欠采样等特点,因而在图像处理方面具有较好的应用前景。独特之处在于它的权值分享和局部连接,还有那些层……

残差网络

随着网络层数增加,CNN会出现退化,浅层网络的学习效率高于深层网络,所以我们直接将千层信息传递给上层所以在深层与浅层之间添加一个信息。残差网络是由一系列残差块组成的,采用shortcut恒等连接,残差块分成两部分直接映射部分和残差部分

残差块:由两个主要部分组成:主路径(main path)和跳跃连接(skip connection)。主路径由一系列的卷积层、批量归一化层和激活函数构成,用于对输入进行特征提取和转换。跳跃连接直接将输入跳过主路径,并将其与主路径的输出相加。

YOLOv3算法

借鉴了 R-CNN 的思路,引入了 anchor box 思想,并通过聚类进行选取,添加了细粒度特征,把浅层的特征映射到深层特征,将网络修改为全卷积网络,YOLOv3 进一步加入了特征金字塔网络的思想,采用多尺度特征进行物体检测,可以提高预测准确率,特别是对较小的物体的识别,同时又能保证较快的速度。

YOLOv3网络架构:Darknet-53,53个卷积层,里面有5个残差模块,各残差模块由多个残差单元组成,每个残差单元包括两个CBL单元和一条快捷链路。 与多尺度结合,采用3x3和1x1卷积核抽取局部特征

yolov3损失函数:中心坐标误差、宽高坐标误差、置信度误差和分类误差

注释: R-CNN:首先,在输入图像中提取候选区域,这些候选区域可能包含目标对象。通过合并具有相似颜色、纹理和空间接近的区域,生成候选目标区域。 然后,每个候选区域被独立地提取和处理。卷积神经网络来提取每个候选区域的特征表示。这些特征表示被送入一个分类器(通常是支持向量机,SVM)来判断每个区域内是否存在目标,并进行目标的分类。 最后,对于被分类为目标的候选区域,R-CNN使用回归器来精确调整其边界框,以更准确地包围目标。

anchor box思想:用于提高检测算法对于不同尺度和不同形状目标的泛化能力。

注意力机制Coordinate Attention

CA:一种用于模型关注重要输入部分或上下文信息的计算模型。它可以在处理序列数据或图像数据时,根据不同的输入元素赋予不同的权重,以提高模型的表现能力和准确性。

普通的注意力机制算法不能很好的利用全局上下文信息,往往会无视位置信息,增加了很多运算量,而CA嵌入了位置信息,通过对空间维度进行平均池化,得到横向和纵向的两个一维向量。然后,通过拼接和1x1卷积来压缩通道,并使用批归一化层和非线性激活函数对空间信息进行编码。接下来,分别通过1x1卷积将编码后的空间信息转换为与输入特征图相同的通道数。最后,在通道上对空间信息进行加权处理。

灵活轻量级,有效利用全局上下文信息和准确的位置信息。

Global Context Network(全局上下文网络)是一种结合了Non-local和SE-Net的全局上下文建模网络,简称为GC-Net。它综合了Non-local的上下文建模能力和SE-Net低计算量的优势,能够高效地构建目标模型。

注释:Non-local模块可以理解为一个特殊的处理单元,它可以让每个像素都能够与整张图片进行交互。通过计算不同像素之间的相似度和权重,模块可以找到每个像素对于其他像素的重要程度。然后,它将所有像素的特征按照这些权重进行组合,得到最终的输出特征。可以捕捉到更广泛的上下文信息。

当我们看一张图片时,有些部分可能更重要,而其他部分可能不那么重要。SE-Net的作用就是帮助神经网络更聪明地决定哪些部分对于任务更有用。

这两种机制可以互相补充和增强。在深度神经网络中引入Non-local模块可以帮助模型理解全局上下文信息和像素之间的依赖关系,而引入SE-Net可以让模型更聪明地决定每个通道的重要程度。通过结合使用,网络可以更全面地捕捉到图像的特征和上下文信息,提高模型的性能和表达能力。

基于全局注意力的室内人数统计模型

YOLOv3算法特征提取网络的改进

1.自建数据集: 取2000张图片打上标记 2.聚类候选: 将所有训练集样本的真实框(ground truth)都进行聚类,从而获得一个典型的有代表性形状的宽高(维度聚类),作为锚框 3.CA-Resnet模块设计(A/B),替换YOLOv3原有的残差模块 4.CA模块改进:使用平均池化操作进行图像数据的处理,保存了更多的背景信息,

实验设计

四次对比, 1.A模块嵌入YOLOv3 B模块嵌入,//不同位置的影响 2.GC模块和CA1模块替换CA模块//对比不同注意力模块所带来的影响 3.自建数据集在传统和CA1上进行对比实验,验证改进性能 4.CA1,与传统,SSD,及鞠改进的YOLOv3对比试验

评价指标

准确率 预测为正的样本中,真实正样本比例 ,目标召回率 在原始正样本中,最终被正确预测为正的概率 ,均值平均精度 每个类别 AP(Average Precision)的平均值,AP 是 PR 曲线下的面积,以召回率为横坐标,准确率为纵坐标,绘制 P-R 曲线,利用积分求 mAP 的值,其中 c 表示类别数,p 表示 Precision,r 表示 Recall,p 是一个以 r 为参数的函数

数据集 1000张经过标注的图像,9:1

环境训练参数:训练迭代次数 epoch 设置为 100; 2)每次迭代训练的 图像数目 batch_size 设置为 4; 3)将 batch_size 进行分组后送入网络的 subdivision 设置为 1;4)网络输入尺寸为 640×640; 5)学习率为 0.001。

基于特征融合网络与多尺度预测的室内人数统计模型

目标检测与常规的滑窗提取方法不同,基于深度学习的目标检测方法通过生成候选区域来进行特征提取,从而提高了目标检测的准确率和速率,但是收到各种因素影响,小目标检测仍然不准确,图像像素点少、图像模糊性差导致漏检误检。

基于F-YOLOv3模型的人数统计方法

1.自建数据集,这个数据集主要特点是包含了动态信息,以MKV格式,8秒一帧输出成相应图像序列 2.聚类候选锚框,设置不同的锚框尺寸:(11×20),(19×32),(25×52),(37×89),(43×56),(58×106),(68×106), (89×125),(108×187),(常规COCO集,有九个三类锚框,不适合小目标检测) 3.改进特征融合网络与多尺度预测的F-YOLOv3模型:首先利用低层特征,将原网络输出的8倍降采样52×52的特征图进行上采样,再将得到的结果与 Darknet-53 中第 2 个残差块输出的 4 倍降采样特征图进行拼接,得到 104×104 尺寸特征图的输出,取消了13×13尺寸特征图输出,最终输出26×26、52×52、104×104三种尺寸的特征图。然后将原网络上采样后的 26×26 尺寸特征图再进行 2 倍上采样和 4 倍上采样,得到52×52 和 104×104 的特征图与原网络的 52×52 和 104×104 的特征图进行拼接,同样将原网络上采样后的 52×52 尺寸特征图再进行 2 倍上采样,得到 104×104 的特征图与原网络的 104×104 的特征图进行拼接,这样可以从小目标中得到更细粒度的特征以及位置信息,从而增加目标识别与其位置的准确率。增强特征的充分提取,将输出层前的 5 个卷积变成了 1 个卷积和 2 个残差单元,减少人头小目标在复杂场景的漏检率,提高检测率。 4.ADIOU Loss:原来的smooth L1 Loss,是通过四个点回归坐标的方式,独立的求出四个点的loss,然后相加得到最终Bounding Box Loss,这种做法的假设是 4 个点是相互独立的,实际是有一定相关性的,实际评价框检测的指标是使用 IOU,这两者是不等价的,多个检测框可能有相同大小的 smooth L1 Loss ,但 IOU 可能差异很大,为了解决这个问题就引入了 IOU Loss。 但 IOU 只是面积比值,当两个框不存在交集时,IOU 为 0,这时网络无法判断两个框之间靠的非常近还是非常远,并且从面积比值中无法知道两框的重叠状态,因此本文中增加了一个 ADIOU Loss 分支,对于预测框的x,y,w,h进行了计算

注释:IOU:假设我们有一个预测的边界框(或分割结果)和一个真实的边界框(或分割标注),我们可以计算它们的交集面积和并集面积。然后,通过将交集面积除以并集面积,得到一个介于0到1之间的值,就是IOU。

0 人点赞