本篇内容主要讲解“在RarePlanes数据集上怎么使用YOLOv5”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在RarePlanes数据集上怎么使用YOLOv5”吧!
如何使用物体的多个特征来提升物体检测的能力,使用YOLOv5进行多属性物体检测的实验。
RarePlanes数据集是由CosmiQ Works和AI.Reverie通过将主要是机场的遥感数据与综合生成的数据相结合创建的。然后将这些图像按照5个特征、10个属性和33个子属性进行分类。每架飞机都通过从机头到翼尖再到尾部的菱形来标注,以保持宽度和长度的比例,然后,不同的飞机特征被标注在每个标注上。
下面是数据集中使用的飞机分类树。
在我们开始之前,先介绍一下背景。我们尝试了语义分割方法和物体检测方法。最终,我们决定使用YOLOv5进行物体检测,事后看来,这是对的,分割方法很难分离靠的很近的相似物体。
YOLO网络在各种任务上都显示了优良的性能。
You Only Look Once version 5 (YOLOv5),就像它的前身一样,它是一个物体检测网络。它将输入图像分割成一个个网格,然后输出每个网格框的包围框置信度和类概率矩阵。然后对这些输出进行过滤,从最终的预测中去除重叠和低置信的检测。这些包围框然后被输送到一个神经网络中进行检测。使用YOLO的网格建议方法(而不是R-CNN风格的网络中使用的更大的区域建议网络),预测的速度要快得多,允许YOLOv5实时工作。我们选择使用Ultralytics的YOLOv5实现,因为它非常简单,使用该模型创建管道比使用类似方法要简单得多。
RarePlanes数据集包含了tiled图像,这些tiled图像是在PS-RGB_tiled
目录下找到的实例周围进行局部选取的。我们建议首先对这些图像进行训练,因为它们可以提高训练速度。下载好了图片,必须按照下面的结构进行组织:
使用RarePlanes数据集,你可以为你想要检测的特性提供许多选项。例如,你可以检测飞机的位置、飞机的单个属性或属性的唯一组合。如果我们想检测属性的唯一组合,预处理中的第一步是创建自定义类。“role”,“num_engines”,“propulsion”,“canards”,“num_tail_fins”,“wing_position”,“wing_type”,“faa_wingspan_class”的任何组合都可以用来创建一个自定义类。在本教程中,我们选择在自定义类中组合“num_engines”和“propulsion”,因为我们希望通过强制模型尝试识别这两个相关属性来促进对这两个类的模型推断。
然后必须将这些自定义类的列表添加到YOLO特定的data .yaml文件中,该文件包括到训练和测试映像的文件路径、类的数量和类列表。
最后一步是从平片图像中创建YOLO标签,这些图像是由空格分隔的文本文件,包含每个框的类类型、位置和大小。为每个图像创建这些标签,在每个目标周围创建边框,用于训练和模型评估。
在这里有用于训练和运行推理的pipeline的基础实现。它告诉脚本在哪里找到我们上面创建的图像和训练标签。
训练
使用下面的命令,使用2个NVIDIA Titan XP GPUs训练大约需要4-5个小时。
推理和评分脚本也预先构建在这个YOLOv5实现中,可以用作性能的初始衡量标准。只需将函数指向训练过的权重,我们就可以在不到两分钟的时间内对所有2700多张图像运行推断。
初步推断:
初步评分:
使用简单的单行bash命令运行这些脚本。然而,这些结果并不是最准确的,因为它们包括重复的预测和部分预测。再运行一轮非极大抑制,去掉重复数据,拼接预测并在tiled的图像上给它们评分。现在,让我们看看我们做得如何。
使用F1度量,IoU为0.5,结果在90年代的飞机数据集上的F1得分非常稳定。值得注意的是,该模型能够识别引擎的位置和数量,而不需要训练数据集为引擎提供特定的标注。引擎的数量与每个飞机实例相关联,而不是引擎本身。
此外,对于不太常见的飞机,结果明显不那么好,这可能是由于缺少模型合适的样本。之前,我们讨论了如何使用合成数据来增强这些稀有类(或稀有飞机),以提高特定类的性能。
到此,相信大家对“在RarePlanes数据集上怎么使用YOLOv5”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。