泷泷大魔王
经典的目标检测网络RCNN系列分为两步,目标proposal和目标分类。而Faster-RCNN中把目标proposal和目标分类作为一个网络的两个分支分别输出,大大缩短了计算时间。而Yolo系列则把这两个分支都省了,只用一个网络同时输出目标的位置和分类。
输入:一张图片
输出:把每张图片分成SxS个方格,对每个方格,输出一个B*5+C维的数组。其中B是该方格预测方框的数目,包含(x,y,w,h,s),s表示方框的置信度,C表示需要预测的类别数。
在YOLO中,S=7, B=2,PASCAL VOC有20类,所以C=20,B*5+C=30。
YOLO网络结构主要分为两个部分,第一部分是特征提取网络,主要是为了提取物体的通用特征,一般在ImageNet上进行预训练;第二部分是后处理网络,目的是回归出待检测物体的坐标和类别。
第一个版本的YOLO的特征提取网络有24个卷积层和2个全连接层。网络结构如下图。
可以看出,这个网络中主要采用了1x1卷积后跟着3x3卷积的方式。
特征提取网络采用了前20个卷积层,加一个avg-pooling层和一个全连接层,对ImageNet2012进行分类,top-5正确率为88%,输入分辨率为224x224。
检测时,将输入分辨率改为448x448,因为网络结构是全卷积的,所以输入分辨率可以改变,整个网络输出为7x7x30维的tensor。
接下来要重点将一下这个损失函数。
用网络直接回归物体的坐标是很难的,这里对要回归的物体的坐标进行了一些转化。物体方框的长w和宽h分别除以图片的长和宽;x和y坐标分别表示对应方格坐标的偏移,分别除以方格的长和宽;它们都在0到1之间。
损失函数分为多个部分:
其中,其中i表示第i个方格,j表示该方格预测出的第j个方框。 表示物体obj的实际方框与第i个方格有 对应关系 ,即obj的中心落在第i个方格中; 表示物体obj的实际方框与第i个方格预测的第j个方框有 对应关系 ,即obj的中心落在第i个方格中,并与它的第j个预测方框的IOU最大。
可以看到损失函数包括5个部分。第一部分是x,y坐标;第二部分是w,h,采用根号使得小方框size变化的损失比大方框size变化的损失大;第三部分是方框置信度损失,回归目标是预测方框与实际方框的IOU值;前三部分都只在预测方框和实际方框有对应关系时才计算loss;第四部分是没有对应物体的方框置信度损失,实际的置信度都是0;第五部分是分类损失,当方格与物体有对应关系时,才计算分类损失。
因为在图片中很多方格都不包含物体,使得方格预测方框的置信分数趋于0。所以对包含物体的方格加大权重,对不包含物体的方格减小权重。论文中有 。
YOLO-v2在YOLO-v1的版本上做了一些改进。
主要利用了NIN的思想。有19个卷积层和5个maxpooling层,实现了的top-1正确率和的top-5正确率。在448x448的分辨率上,实现了的top-1正确率,和的top-5正确率。网络结构如下图所示。
修改成detection网络时,删除了最后的卷积层,添加了3个3x3x1024的卷积层,和一个1x1x125的卷积层,在最后的3x3x512层和导数第二层之间添加了一个paththrough进行特征concat。
开始学习率是,在60和90个epoch时乘以。
另外,YOLO-v2利用WordTree,将分类和检测任务进行联合训练,对于没有方框标注的物体也能预测出其方框,能够对词典中9000个概念进行预测。YOLO-v2也叫做YOLO9000。
YOLO-v3在YOLO-v2的基础上进行了一些改进。
Darknet-53和Resnet-152正确率相同,但速度是2倍。
总的来说,我觉得,YOLO的发展完全展现了汲取众家之长的力量。还是要多看paper,以上。
参考文献: [1] Redmon, Joseph, et al. "You only look once: Unified, real-time object detection." Proceedings of the IEEE conference on computer vision and pattern recognition. 2016. [2] Redmon J, Farhadi A. YOLO9000: better, faster, stronger[J]. arXiv preprint, 2017. [3] Redmon, Joseph, and Ali Farhadi. "Yolov3: An incremental improvement." arXiv preprint arXiv: (2018).
vicki瑶瑶
1 简介
针对无人机捕获场景的目标检测是最近比较流行的一项任务。由于无人机在不同高度飞行,目标尺度变化较大,这样给模型的优化也带来了很大的负担。此外,在无人机进行高速低空飞行时,也会带来密集目标的运动模糊问题。
图1 小目标与密集问题
为了解决上述2个问题,本文提出了 TPH-YOLOv5 。 TPH-YOLOv5 在YOLOv5的基础上增加了一个prediction heads 来检测不同尺度的目标。然后通过探索Self-Attention的预测潜力使用了Transformer Prediction Heads(TPH)代替原来的prediction heads。同时作者还集成了卷积块Attention模型(CBAM)来寻找密集场景下的注意力区域。
为了进一步改进 TPH-YOLOv5 ,作者还提供了大量有用的策略,如数据增强、多尺度测试、多模型集成和使用额外的分类器。
在VisDrone2021数据集上的大量实验表明,TPH-YOLOv5在无人机捕获场景上具有良好的性能和可解释性。在DET-test-challenge数据集上,TPH-YOLOv5的AP结果为,比之前的SOTA方法(DPNetV3)提高了。在VisDrone Challenge 2021中,TPH-YOLOv5与YOLOv5相比提高了约7%。
本文的贡献如下:
2 前人工作总结 Data Augmentation
数据增强的意义主要是扩展数据集,使模型对不同环境下获得的图像具有较高的鲁棒性。
Photometric和geometric被研究人员广泛使用。对于Photometric主要是对图像的色相、饱和度和值进行了调整。在处理geometric时主要是添加随机缩放、裁剪、平移、剪切和旋转。
除了上述的全局像素增强方法外,还有一些比较独特的数据增强方法。一些研究者提出了将多幅图像结合在一起进行数据增强的方法,如MixUp、CutMix和Mosaic。
MixUp从训练图像中随机选取2个样本进行随机加权求和,样本的标签也对应于加权求和。不同于通常使用零像素mask遮挡图像的遮挡工作,CutMix使用另一个图像的区域覆盖被遮挡的区域。Mosaic是CutMix的改进版。拼接4幅图像,极大地丰富了被检测物体的背景。此外,batch normalization计算每层上4张不同图像的激活统计量。
在TPH-YOLOv5的工作中主要是结合了MixUp、Mosaic以及传统方法进行的数据增强。
Multi-Model Ensemble Method
我们都知道深度学习模型是一种非线性方法。它们提供了更大的灵活性,并可以根据训练数据量的比例进行扩展。这种灵活性的一个缺点是,它们通过随机训练算法进行学习,这意味着它们对训练数据的细节非常敏感,每次训练时可能会得到一组不同的权重,从而导致不同的预测。 这给模型带来了一个高方差 。
减少模型方差的一个成功方法是训练多个模型而不是单一模型,并结合这些模型的预测。
针对不同的目标检测模型,有3种不同的ensemble boxes方法:非最大抑制(NMS)、Soft-NMS、Weighted Boxes Fusion(WBF)。
在NMS方法中,如果boxes的overlap, Intersection Over Union(IoU)大于某个阈值,则认为它们属于同一个对象。对于每个目标NMS只留下一个置信度最高的box删除其他box。因此,box过滤过程依赖于这个单一IoU阈值的选择,这对模型性能有很大的影响。
Soft-NMS是对NMS进行轻微的修改,使得Soft-NMS在标准基准数据集(如PASCAL VOC和MS COCO)上比传统NMS有了明显的改进。它根据IoU值对相邻边界box的置信度设置衰减函数,而不是完全将其置信度评分设为0并将其删除。
WBF的工作原理与NMS不同。NMS和Soft-NMS都排除了一些框,而WBF将所有框合并形成最终结果。因此,它可以解决模型中所有不准确的预测。本文使用WBF对最终模型进行集成,其性能明显优于NMS。
Object Detection
基于CNN的物体检测器可分为多种类型:
一些检测器是专门为无人机捕获的图像设计的,如RRNet、PENet、CenterNet等。但从组件的角度来看,它们通常由2部分组成,一是基于CNN的主干,用于图像特征提取,另一部分是检测头,用于预测目标的类和Box。
此外,近年来发展起来的目标检测器往往在backbone和head之间插入一些层,人们通常称这部分为检测器的Neck。接下来分别对这3种结构进行详细介绍:
Backbone
常用的Backbone包括VGG、ResNet、DenseNet、MobileNet、EfficientNet、CSPDarknet53、Swin-Transformer等,均不是自己设计的网络。因为这些网络已经证明它们在分类和其他问题上有很强的特征提取能力。但研究人员也将微调Backbone,使其更适合特定的垂直任务。
Neck
Neck的设计是为了更好地利用Backbone提取的特征。对Backbone提取的特征图进行不同阶段的再处理和合理使用。通常,一个Neck由几个自底向上的路径和几个自顶向下的路径组成。Neck是目标检测框架中的关键环节。最早的Neck是使用上下取样块。该方法的特点是没有特征层聚合操作,如SSD,直接跟随头部后的多层次特征图。
常用的Neck聚合块有:FPN、PANet、NAS-FPN、BiFPN、ASFF、SAM。这些方法的共性是反复使用各种上下采样、拼接、点和或点积来设计聚合策略。Neck也有一些额外的块,如SPP, ASPP, RFB, CBAM。
Head
作为一个分类网络,Backbone无法完成定位任务,Head负责通过Backbone提取的特征图检测目标的位置和类别。
Head一般分为2种:One-Stage检测器和Two-Stage检测器。
两级检测器一直是目标检测领域的主导方法,其中最具代表性的是RCNN系列。与Two-Stage检测器相比One-Stage检测器同时预测box和目标的类别。One-Stage检测器的速度优势明显,但精度较低。对于One-Stage检测器,最具代表性的型号是YOLO系列、SSD和RetaNet。
Overview of YOLOv5
YOLOv5有4种不同的配置,包括YOLOv5s,YOLOv5m, YOLOv5l和YOLOv5x。一般情况下,YOLOv5分别使用CSPDarknet53+SPP为Backbone,PANet为Neck, YOLO检测Head。为了进一步优化整个架构。由于它是最显著和最方便的One-Stage检测器,作者选择它作为Baseline。
图2 THP-YOLOv5整体架构
当使用VisDrone2021数据集训练模型时,使用数据增强策略(Mosaic和MixUp)发现YOLOv5x的结果远远好于YOLOv5s、YOLOv5m和YOLOv5l, AP值的差距大于。虽然YOLOv5x模型的训练计算成本比其他3种模型都要高,但仍然选择使用YOLOv5x来追求最好的检测性能。此外,根据无人机捕获图像的特点,对常用的photometric和geometric参数进行了调整。
TPH-YOLOv5
TPH-YOLOv5的框架如图3所示。修改了原来的YOLOv5,使其专一于VisDrone2021数据集:
图3 TPH-YOLOv5模型结构 微小物体的预测头
作者统计了VisDrone2021数据集,发现它包含了很多非常小的目标,所以增加了一个用于微小物体检测的预测头。结合其他3个预测头,4头结构可以缓解剧烈的目标尺度变化带来的负面影响。如图3所示,添加的预测头(Head 1)是由low-level、高分辨率的feature map生成的,对微小物体更加敏感。增加检测头后,虽然增加了计算和存储成本,但对微小物体的检测性能得到了很大的提高。
Transformer encoder block
图4 Transformer Block
用Transformer encoder块替换了YOLOv5原版中的一些卷积块和CSP bottleneck blocks。其结构如图4所示。与CSPDarknet53中原有的bottleneck blocks相比,作者认为Transformer encoder block可以捕获全局信息和丰富的上下文信息。
每个Transformer encoder block包含2个子层。第1子层为multi-head attention layer,第2子层(MLP)为全连接层。每个子层之间使用残差连接。Transformer encoder block增加了捕获不同局部信息的能力。它还可以利用自注意力机制来挖掘特征表征潜能。在VisDrone2021数据集中,Transformer encoder block在高密度闭塞对象上有更好的性能。
基于YOLOv5,作者只在头部部分应用Transformer encoder block形成transformer Prediction head(TPH)和backbone端。因为网络末端的特征图分辨率较低。将TPH应用于低分辨率特征图可以降低计算和存储成本。此外,当放大输入图像的分辨率时可选择去除早期层的一些TPH块,以使训练过程可用。
Convolutional block attention module (CBAM)
CBAM是一个简单但有效的注意力模块。它是一个轻量级模块,可以即插即用到CNN架构中,并且可以以端到端方式进行训练。给定一个特征映射,CBAM将沿着通道和空间两个独立维度依次推断出注意力映射,然后将注意力映射与输入特征映射相乘,以执行自适应特征细化。
图5 CBAM注意力机制
CBAM模块的结构如图5所示。通过本文的实验,在不同的分类和检测数据集上将CBAM集成到不同的模型中,模型的性能得到了很大的提高,证明了该模块的有效性。
在无人机捕获的图像中,大覆盖区域总是包含令人困惑的地理元素。使用CBAM可以提取注意区域,以帮助TPH-YOLOv5抵制令人困惑的信息,并关注有用的目标对象。
Self-trained classifier
用TPH-YOLOv5对VisDrone2021数据集进行训练后,对test-dev数据集进行测试,然后通过可视化失败案例分析结果,得出TPH-YOLOv5定位能力较好,分类能力较差的结论。作者进一步探索如图6所示的混淆矩阵,观察到一些硬类别,如三轮车和遮阳三轮车的精度非常低。
图6 检测混淆矩阵
因此,作者提出了一个Self-trained classifier。首先,通过裁剪ground-truth边界框并将每个图像patch的大小调整为64 64来构建训练集。然后选择ResNet18作为分类器网络。实验结果表明,在这个Self-trained classifier的帮助下,所提方法对AP值提高了约。
4实验与结论
最终在test-set-challenge上取得了的好成绩,远远高于VisDrone2020的最高成绩。
图9 检测结果图
高@设计师
改进yolov5能发小论文。
主做目标检测的,正好最近在用yolov5,说点个人看法吧,不一定对。
首先yolo系列发展到现在,思想已经很成熟了,像具体的改进,其实4和5也有很多异曲同工的地方,无论是backbone还是neck。
目前很多改进yolov5发论文的,一些是在backone上做轻量化处理,一些是加入注意力机制,一些是改进neck,或者调整head,还有改损失函数或者nms过程的。
主要是因为yolo本身的思想已经很成熟了,在这个框架下的确很难做出些通用性的创新和提升。至于把各种成熟的模块塞进去发论文,这种仁者见仁智者见智吧。个人感觉还是结合某个方向改进yolo,会有方向一些。毕竟不同的数据集和尺度上,同样的改进有时候效果也是不同的。
Yolov5 目标检测的损失函数由三部分组成,分别是矩形框预测损失函数、置信度预测损失函数以及类别预测损失函数,在上节中分析了目标检测损失函数GIoU 的缺陷及其改进,使用 CIoU 以及带有调节因子的二元交叉熵函数替代原网络的损失函数。
实验验证此次改进,与原算法结果对比如下表所示。根据上表数据可以看到,针对本文的损失函数的改进在实验时得到了 的准确率,提升了 ,可以证明对损失函数的改进可以对目标检测的性能提升提供很大帮助。
论文选题就是定文章的题目,我们在写论文之前就需要定好自己要研究跟论证的问题。我们要注意选题是不是恰当与得当是很重要的。因为从选题上就可以看出论文的研究方向与学术
论文原文: YOLO(you only look once)是继RCNN、faster-RCNN之后,又一里程碑式的目标检测算法。yolo在保持不错的准确度的
正文用小四号宋体。 1、封面,题目:小二号黑体加粗居中。各项内容:四号宋体居中。 2、目录,目录:二号黑体加粗居中。章节条目:五号宋体。行距:单倍行距。 3、论
研究生毕业论文格式及字体字号要求 论文一般由题名、作者、目录、摘要、关键词、正文、参考文献和附录等部分组成,其中部分组成(例如附录)可有可无。下面我为大家整理了
毕业论文系统怎么修改题目: 1.如果是论文刚开始,想换已经提交系统的论题,可以和导师沟通,看看能不能换,如果能换,具体怎么操作、怎么走流程,以学校要求为准。 2