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结果为39.18%,比之前的SOTA方法(DPNetV3)提高了1.81%。在VisDrone Challenge 2021中,TPH-YOLOv5与YOLOv5相比提高了约7%。
本文的贡献如下:
2 前人工作总结 2.1 Data Augmentation
数据增强的意义主要是扩展数据集,使模型对不同环境下获得的图像具有较高的鲁棒性。
Photometric和geometric被研究人员广泛使用。对于Photometric主要是对图像的色相、饱和度和值进行了调整。在处理geometric时主要是添加随机缩放、裁剪、平移、剪切和旋转。
除了上述的全局像素增强方法外,还有一些比较独特的数据增强方法。一些研究者提出了将多幅图像结合在一起进行数据增强的方法,如MixUp、CutMix和Mosaic。
MixUp从训练图像中随机选取2个样本进行随机加权求和,样本的标签也对应于加权求和。不同于通常使用零像素mask遮挡图像的遮挡工作,CutMix使用另一个图像的区域覆盖被遮挡的区域。Mosaic是CutMix的改进版。拼接4幅图像,极大地丰富了被检测物体的背景。此外,batch normalization计算每层上4张不同图像的激活统计量。
在TPH-YOLOv5的工作中主要是结合了MixUp、Mosaic以及传统方法进行的数据增强。
2.2 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。
2.3 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。
3TPH-YOLOv53.1 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值的差距大于1.5%。虽然YOLOv5x模型的训练计算成本比其他3种模型都要高,但仍然选择使用YOLOv5x来追求最好的检测性能。此外,根据无人机捕获图像的特点,对常用的photometric和geometric参数进行了调整。
3.2 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值提高了约0.8%~1.0%。
4实验与结论
最终在test-set-challenge上取得了39.18的好成绩,远远高于VisDrone2020的最高成绩37.37。
图9 检测结果图
目标检测是与计算机视觉和图像处理相关的计算机技术,用于在一张图片中识别出些物体的种类,同时要求标出物体的位置。目标检测已被广泛应用于人脸检测、自动驾驶和视频监控等图像领域。
目标检测中的常见方法,分为one-stage和two-stage两类。One-stage方法首先输入图片,输出Bounding box (bbox)和分类标签,由一个网络完成,该方法以YOLO、SSD为主要代表。Two-stage方法则以Faster-RCNN为代表,输入图片后,首先生成建议区域(Region Proposal),再输入分类器进行分类,两个任务由不同网络完成。
其中,YOLO目标检测是一种突出且优秀的算法,其为“you only look once”的缩写,意为只需浏览一次即可识别出图中物体的类别与位置,且完美地平衡了检测速度和精度之间的关系。YOLO也由最初的YOLO v1发展到现在最新的YOLO v5。
2015年提出了第一版YOLO v1,YOLO借鉴GoogleNet而提出了Darknet网络。Darknet是用C语言和CUDA编写的开源神经网络框架,用1x1卷积层+3x3卷积层替代GoogleNet的Inception模块。网络由24 层卷积层接2层全连接组成,如图1:
YOLO v1的框架如图2所示:首先调整图像大小为448×448,随后将图像输入CNN,最后通过非极大值抑制(NMS)保留最终标定框。
YOLO v1 的核心思想在于将目标检测视为回归问题,其将图片划分成 SxS 个网格,如果目标中心落入某网格单元,则该网格就负责检测该目标。每个网格单元预测 B个边界框(bbox)和类别信息。此外,每个bbox需要预测(x, y, w, h)和置信度共5个值。因此,最终每个网格应预测B个bbox和C个类别,最终输出S x S x (5*B+C)的tensor。
优点:
YOLO v2在YOLO v1基础上进行了一系列的改进,在保持分类精度的同时,提高了目标定位的精度以及召回率。首先,YOLO v2能够适应不同的输入尺寸,并可根据需要自行权衡检测准确率和检测速度;其次,根据层级分类提出了WordTree来混合检测数据集与分类数据集;最后,提出了可同时在检测和分类数据集上进行的联合训练方式,使用检测数据集训练模型识别部分,使用分类数据集训练模型分类部分,扩充检测种类。
对于YOLO v1更为具体的改进包括以下几点:
不过YOLO v2仍然无法解决同一个网格内物体重叠的问题。YOLO v3则继续在YOLO v2上做了些许改进:
2020年4月,YOLO v4重磅发布。其在MS COCO数据集上的精度达到了43.5% AP,速度达到65FPS,与 YOLO v3相比分别提高了 10% 和 12%。
YOLO v4首先对相关工作进行总结,并对目标检测框架拆分: Object Detection = Backbone + Neck + Head
此外,将所有所有的调优手段分为两类:“Bag of freebies”和“Bag of specials”。
YOLO v4总结了以上各种调优技巧,从中寻找最优组合。并在训练过程中,验证了Bag-of-Freebies和Bag-of-Specials对于YOLO v4的影响。
自YOLO v4发布的40余天后, Ultralytics公司开源了非官方的YOLO v5,其完全基于PyTorch实现。值得注意的是,每个图像的推理时间达到140 FPS,并且YOLOv5的权重文件大小仅为YOLOv4的1/9。YOLO v5更快,也更小巧!
由以上YOLO的发展历程可看出, YOLO系列的发展后期更重视应用落地,没有提出非常新颖的创新点。
openCV具备人脸识别的解决方案,但openCV仿佛是一道坎,我始终不能安排跨过这道坎的计划。很早以前在processing官网中找到了Face Detect(这个链接需要代理才能打开)这个为processing提供人脸识别功能的lib,今天终于静下心来仔细阅读了它的说明文档,下面是其基本使用方法说明: 首先下载pFaceDetect.zip,在processing的libraries文件夹中新建一个名为pFaceDetect的文件夹,再将压缩包内的library文件夹拷贝到这个文件夹中。 其次,Face Detect需要openCV的支持,但并不必须安装openCV到计算机中,只要把openCV的cxcore100.dll 、cv100.dll 、libguide40.dll 三个文件拷贝到processing根目录就行了。 pFaceDetect是对PImage对象进行识别,下面的范例中是通过JMyron来获取视频,并将像素信息复制到PImage对象中,因此,运行下面的范例还需要安装JMyron。 重启processing,新建一个项目并保存,把压缩包内的data文件夹拷贝到当前项目的存档目录中。 不要忘记连接好摄像头。
opencv的人脸识别系统设计的目的是通过人脸识别系统预防同行或者职业打假人。根据查询相关资料显示:作为生意经营者,需要预防同行的咨询、问价等商业活动,这是一种行业内的竞争关系,而通过这套系统可以非常准确的识别出这些特殊群体,从而使得商家能够先发制人,采取主动的措施权。
1. 中期检查报告需要包括项目背景、目的和研究内容的说明,此外还需要介绍研究进展情况,包括理论分析、实验设备和方法,以及实验结果的展示等。2. 在撰写中期检查报告时需要说明stm32单片机两轮自平衡车的研究意义,毕业论文的研究目的,以及该研究对于社会和工程领域的潜在贡献。3. 在报告的内容延伸上,需要详细介绍项目中的理论基础,以及所使用的设备和方法的选取和优化原因,同时总结出实验结果的特点和优缺点,这些都可以使用图表和数据来展示和说明。4. 最后,在撰写中期检查报告前需要仔细分析论文题目的要求和导师给出的要点,确保报告内容的全面和准确,以期报告的结果更直接和有说服力。
基于STM32的智能饮水机系统可以通过控制电机的频率来控制出水量,可以使用模拟控制器来实现,也可以使用数字控制器来实现,比如使用PID控制器来实现自动调节出水量,或者使用智能传感器来实现出水量的自动控制。可以根据用户的设定值,或者使用智能传感器采集到的水位数据来设定出水量,并实时控制出水量。另外,还可以使用智能系统来实现预先设定的出水量,通过调节电机的频率,实现出水量的控制。
stm32单片机两轮自平衡车毕业论文中期检查报告应包括以下内容:首先,应包含论文的研究背景,包括相关研究的现状,讨论它们的优势和劣势。接下来,可以描述论文的研究目的,以及所探讨的论文主题。其次,应详细说明本次实验中使用的硬件和软件,包括stm32单片机,传感器,电机等,以及编程语言,编译工具等。接下来,应详细说明实验过程中的技术框架,描述采用的控制策略,如PID控制,自适应控制等,并阐明选择这些策略的理由。最后,应详细说明实现的结果,包括实验调试的结果,车辆的实际运行表现,和实验结果分析。总之,stm32单片机两轮自平衡车毕业论文中期检查报告应包含论文背景、研究目的、使用的硬件和软件、技术框架、实现结果等内容,以便清楚地展示实验过程,并反映出本次实验的实际效果。
负载 loadx是一个Lua模块,可提供更好的load()。 用法 该模块提供以下功能: loadx(chunk, [, chunkname [, mode [, upvalues...]]]) 加载一个块。 此功能类似于Lua的本机load ,并且具有以下差异: 如果结果函数具有upvalues,则将upvalues设置为upvalues的值(如果指定了该参数)。 如果没有给出第一个升值,则将其设置为全局环境。 (当加载一个主块时,结果函数将始终只具有一个升值_ENV变量。但是,当您加载从一个函数创建的二进制块(例如string.dump )时,结果函数可以具有任意数量的升值)。 有关chunk , chunk chunkname和mode的定义,请参见本机load 。 来自本地load所有警告可能适用。 也可以看看: load : , 。 string.dump :
你好,中知网的文献1酚试剂分光光度法测定甲醛含量的不确定度分析GuangxiSciences2010/01中国期刊全文数据库2偶合反应流动注射化学发光法测定甲醛含量襄樊学院学报2009/11中国期刊全文数据库3目视比色法测定甲醛含量化学教育2008/06中国期刊全文数据库4色谱柱内衍生反应测定甲醛的含量山东化工2007/05中国期刊全文数据库5自动电位滴定法测定甲醛含量云南化工2001/05中国期刊全文数据库6离子电极法测定甲醛含量郑州工业高等专科学校学报2000/02中国期刊全文数据库7过氧化氢氧化酸碱滴定法测定甲醛的含量江苏石油化工学院学报1997/04中国期刊全文数据库8次碘酸盐氧化法测定甲醛含量应注意的问题中国皮革1986/06中国期刊全文数据库9次碘酸盐氧化法测定甲醛含量应注意的问题中国皮革1986/06中国期刊全文数据库希望对你有帮助~知道举手之劳团队队长:晓斌
传感器通常都是4~20mA的信号输出。然后根据你的需要选择精度和量程
stm32家庭环境检查系统设计的意义是可以让用户在检测现场实时监控室内环境,也可以让用户通过远程传输技术使用实时监测房屋的生活环境和平安环境。stm32家庭环境检查系统设计采用了嵌入式开发平台搭载传感器来监测数据。
盲区监测或者叫盲点碰撞预警。车辆盲点监测系统英文缩写是BlindSpotDetection,盲区监测或者叫盲点碰撞预警的主要功能是扫除后视镜盲区,通过微波雷达探测车辆两侧的后视镜盲区中的超车车辆,对驾驶者以提醒,从而避免在变道过程中由于后视镜盲区而发生事故。温馨提示当启动/停止按键位于“RUN”模式,且换挡旋钮位于“R”“N”“D”“S”时,点触雷达关闭按钮,雷达功能关闭,同时指示灯亮起。踩下驻车制动踏板时,雷达系统设置是关闭的,指示灯点亮,此时您无法对此开关进行操作。当启动/停止按键位于“RUN”模式,从任何挡位切换到“R”位置,系统自动激活,指示灯熄灭。
1、通过在汽车后保检杠内安装两个24GHz雷达传感器,在车辆行驶速度大于10KM/H自动启动,实时向左右3米后方8米范围,发出探测微波信号,系统对反射回的微波信号进行分析处理,即可知后面车辆距离,速度和运动方向等信息;
2、通过系统算法,排除固定物体和远离的物体,当探测到盲区内有车辆靠近时,指示灯闪烁,此时驾驶员看不到盲区内的车辆,但是也能通过指示灯知道后方有车辆驶来,变道有碰撞的危险,如果此时驾驶员仍然没有注意到指示灯闪烁,打了转向灯,准备变道,那么系统就会发出哔哔哔的语音警报声,再次提醒驾驶员此时变道有危险,不宜变道;
3、通过整个行车过程中,不间断地探测和提醒,防止行车过程中因恶劣天气,驾驶员疏忽,后视镜盲区,新手上路等潜在危险而造成交通安全事故。
百万购车补贴
盲区监测系统是通过安装在车辆尾部或侧方的传感器(视觉传感器、毫米波雷达)检测后方来车或行人,电子控制单元对于传感器采集的信息进行分析处理,如果盲区内有车辆或行人,预警显示单元会通过发出报警声音或在后视镜中显示报警信息等方式告知驾驶员