0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于PyTorch的物体检测包围框数据增强包

新机器视觉 来源:AI公园 作者:Harpal Sahota 2021-07-01 09:23 次阅读

作者:Harpal Sahota

编译:ronghuaiyang

导读

实现了Google Research,Brain Team中的增强策略。

像许多神经网络模型一样,目标检测模型在训练大量数据时效果最好。通常情况下,可用的数据有限,世界各地的许多研究人员正在研究增强策略,以增加可用的数据量。谷歌的大脑团队进行了一项这样的研究,并发表在了一篇论文中,名为Learning Data Augmentation Strategies for Object Detection。在这篇论文中,作者确定了一组增强称为策略,它对目标检测问题表现良好。该策略通过增强搜索获得,提高了通用模型的性能。

作者将增强策略定义为一组子策略。在模型进行训练时,随机选择其中一个子策略用于增强图像。在每个子策略中都有要依次应用于图像的增强。每个转换也有两个超参数:概率和幅度。概率表示该增强将被应用的可能性,而幅度表示该增强的程度。下面的代码显示了本文中使用的策略:

policy = [

[(‘TranslateX_BBox’, 0.6, 4), (‘Equalize’, 0.8, 10)],

[(‘TranslateY_Only_BBoxes’, 0.2, 2), (‘Cutout’, 0.8, 8)],

[(‘Sharpness’, 0.0, 8), (‘ShearX_BBox’, 0.4, 0)],

[(‘ShearY_BBox’, 1.0, 2), (‘TranslateY_Only_BBoxes’, 0.6, 6)],

[(‘Rotate_BBox’, 0.6, 10), (‘Color’, 1.0, 6)],

在这个策略中有5个子策略,如果我们取第一个子策略,它就包含了TranslateX_BBox和Equalize增强。TranslateX_BBox操作在x轴上转换图像的幅度为4。在本例中,大小并不直接转换为像素,而是根据大小缩放为像素值。该增强的概率也为0.6,这意味着如果该增强被选中,则应用该增强的概率为60%。

随着每个增强都有一个相关的概率,引入了一个随机的概念,给训练增加了一定程度的随机性。总的来说,Brain Team已经提出了4个策略: v0, v1, v2和v3。本文中显示了v0策略,其他三个策略包含更多的子策略,这些子策略具有几种不同的转换。总的来说,增加分为三类,作者定义为:

颜色操作: 扭曲颜色通道,不影响边界框的位置。

几何操作:几何扭曲图像,这相应地改变了边界框的位置和大小。

包围框操作:只会扭曲包围框中包含的像素内容。

BBAug

那么BBAug)在这方面有什么贡献呢?BBAug是一个python包,它实现了谷歌Brain Team的所有策略。这个包是一个包装器,可以更容易地使用这些策略。实际的扩展是由优秀的imgaug包完成的。

上面显示的策略应用于一个示例图像,如下所示。每一行是一个不同的子策略,每一列是该子策略的不同运行。

正如你所看到的,在子策略的运行之间有一定程度的变化,因此给训练增加了一定程度的随机性。这只是BBAug实施的4个策略之一。要查看所有4个策略的完整可视化,请查看包的GitHub页面:https://github.com/harpalsahota/bbaug。

该包还提供了一些有用的功能,比如定制策略的可能性,以及位于图像外部的边界框,如果它们部分位于图像外部,则会被自动删除或剪切。例如,在下面的图像中,应用了平移增强,将边界框部分推到图像外部。你可以看到新的边界框已经缩小以适应这一点。

也可以创建只影响边界框区域的增强。在下图中,solarisaugmentation只应用于边界框区域:

用随机策略增加单个图像有多容易?就像这样简单:

from bbaug import policies

# select policy v0 set

aug_policy = policies.policies_v0()

# instantiate the policy container with the selected policy set

policy_container = policies.PolicyContainer(aug_policy)

# select a random policy from the policy set

random_policy = policy_container.select_random_policy()

# Apply the augmentation. Returns the augmented image and bounding boxes.

# Image is a numpy array of the image

# Bounding boxes is a list of list of bounding boxes in pixels (int)。

# e.g. [[x_min, y_min, x_man, y_max], [x_min, y_min, x_man, y_max]]

# Labels are the class labels for the bounding boxes as an iterable of ints e.g. [1,0]

img_aug, bbs_aug = policy_container.apply_augmentation(random_policy, image, bounding_boxes, labels)

# image_aug: numpy array of the augmented image

# bbs_aug: numpy array of augmneted bounding boxes in format: [[label, x_min, y_min, x_man, y_max],。。。]

总结

该包实现了谷歌Brain Team推导出的增强策略。目前,已经实现了所有4个策略,该包还附带了notebooks,以帮助用户将这些策略集成到他们的PyTorch训练pipeline中。

英文原文:https://towardsdatascience.com/bbaug-a-package-for-bounding-box-augmentation-in-pytorch-e9b9fbf1504b

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4773

    浏览量

    100888
  • pytorch
    +关注

    关注

    2

    文章

    808

    浏览量

    13249

原文标题:BBAug: 一个用于PyTorch的物体检测包围框数据增强包

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    《DNK210使用指南 -CanMV版 V1.0》第四十一章 YOLO2物体检测实验

    第四十一章 YOLO2物体检测实验 在上一章节中,介绍了利用maix.KPU模块实现YOLO2的人手检测,本章将继续介绍利用maix.KPU模块实现YOLO2的物体检测。通过本章的学习,读者将学习到
    发表于 11-14 09:22

    PyTorch 数据加载与处理方法

    PyTorch 是一个流行的开源机器学习库,它提供了强大的工具来构建和训练深度学习模型。在构建模型之前,一个重要的步骤是加载和处理数据。 1. PyTorch 数据加载基础 在
    的头像 发表于 11-05 17:37 433次阅读

    在目标检测中大物体的重要性

    导读实验表明,对大型物体赋予更大的权重可以提高所有尺寸物体检测分数,从而整体提升目标检测器的性能(在COCOval2017数据集上使用In
    的头像 发表于 10-09 08:05 485次阅读
    在目标<b class='flag-5'>检测</b>中大<b class='flag-5'>物体</b>的重要性

    pytorch环境搭建详细步骤

    了conda、Python等180多个科学及其依赖项,非常适合用于科学计算(数据科学、机器学习应用、大数据处理
    的头像 发表于 08-01 15:38 871次阅读

    低功耗蓝牙模块+气体检测仪蓝牙方案介绍

    在工业安全领域,气体检测仪是保障工作场所安全的关键设备之一。气体检测仪蓝牙模组方案的出现,使得气体检测数据可以通过蓝牙技术传输到智能手机、平板电脑等移动设备上,实现远程监测与管理。工作
    的头像 发表于 07-17 16:59 355次阅读
    低功耗蓝牙模块+气<b class='flag-5'>体检测</b>仪蓝牙方案介绍

    pytorch如何训练自己的数据

    本文将详细介绍如何使用PyTorch框架来训练自己的数据。我们将从数据准备、模型构建、训练过程、评估和测试等方面进行讲解。 环境搭建 首先,我们需要安装PyTorch。可以通过访问
    的头像 发表于 07-11 10:04 556次阅读

    PyTorch如何训练自己的数据

    PyTorch是一个广泛使用的深度学习框架,它以其灵活性、易用性和强大的动态图特性而闻名。在训练深度学习模型时,数据集是不可或缺的组成部分。然而,很多时候,我们可能需要使用自己的数据集而不是现成
    的头像 发表于 07-02 14:09 1803次阅读

    纵观全局:YOLO助力实时物体检测原理及代码

    YOLO 流程的最后一步是将边界预测与类别概率相结合,以提供完整的检测输出。每个边界的置信度分数由类别概率调整,确保检测既反映边界的准
    的头像 发表于 03-30 14:43 2502次阅读

    我国气体检测仪发展现状

    什么是气体检测仪?气体检测仪是一种气体泄露浓度检测的仪器仪表工具,气体检测仪器仪表通过将气体传感器采集的物理或者化学非电信号转化为电信号,再通过外部电路对以上电信号整流、滤波等处理,并
    的头像 发表于 03-27 10:25 789次阅读
    我国气<b class='flag-5'>体检测</b>仪发展现状

    我国气体检测仪发展现状

    什么是气体检测仪? 气体检测仪是一种气体泄露浓度检测的仪器仪表工具,气体检测仪器仪表通过将气体传感器采集的物理或者化学非电信号转化为电信号,再通过外部电路对以上电信号整流、滤波等处理,
    的头像 发表于 03-19 19:25 504次阅读

    arcgis空间参考与数据不匹配如何解决

    当使用ArcGIS软件进行空间数据处理时,经常会遇到空间参考与数据不匹配的问题。这种不匹配可能导致数据显示不正确,分析结果不准确,甚至引发其他错误。本文将详细介绍空间参考与
    的头像 发表于 02-25 11:17 1.3w次阅读

    基于 GPU 渲染的高性能空间包围计算

    空间包围检测在计算机图形学、虚拟仿真、工业生产等有着广泛的应用。
    的头像 发表于 02-18 10:47 695次阅读
    基于 GPU 渲染的高性能空间<b class='flag-5'>包围</b>计算

    红外气体检测仪的工作原理 红外气体检测仪的使用方法

    红外气体检测仪是一种常用的气体检测装置,通过测量目标气体在红外光谱范围内的吸收特性来实现气体的检测。红外气体检测仪具有高精度、快速响应、稳定性好等优点,广泛应用于工业和环境监测领域。
    的头像 发表于 02-01 16:52 2300次阅读

    体检测仪手持终端定制_便携式多种气体检测

    体检测仪手持终端定制_便携式多种气体检测仪|气体检测仪方案。手持气体检测仪终端在工业施工等领域具有重要的作用。该仪器可以有效地检测到可燃气
    的头像 发表于 01-23 19:44 1063次阅读
    气<b class='flag-5'>体检测</b>仪手持终端定制_便携式多种气<b class='flag-5'>体检测</b>仪

    实现稳定物体检测所需的光电传感器选择方法和使用方法

    使用反射型传感器时,应用上的各种要素将会影响光电传感器的物体检测。尤其对于黑色物体、光泽物体及透明物体等,使用传统光电传感器难以实现稳定的检测
    的头像 发表于 01-13 08:23 868次阅读
    实现稳定<b class='flag-5'>物体检测</b>所需的光电传感器选择方法和使用方法