点上方计算机视觉联盟获取更多干货

仅作学术分享,不代表本公众号立场,侵权联系删除

转载于:AI公园     作者:Harpal Sahota

编译:ronghuaiyang

AI博士笔记系列推荐

周志华《机器学习》手推笔记正式开源!可打印版本附pdf下载链接

实现了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_BBoxEqualize增强。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

-------------------

END

--------------------

我是王博Kings,985AI博士,华为云专家、CSDN博客专家(人工智能领域优质作者)。单个AI开源项目现在已经获得了2100+标星。现在在做AI相关内容,欢迎一起交流学习、生活各方面的问题,一起加油进步!

我们微信交流群涵盖以下方向(但并不局限于以下内容):人工智能,计算机视觉,自然语言处理,目标检测,语义分割,自动驾驶,GAN,强化学习,SLAM,人脸检测,最新算法,最新论文,OpenCV,TensorFlow,PyTorch,开源框架,学习方法...

这是我的私人微信,位置有限,一起进步!

王博的公众号,欢迎关注,干货多多

王博Kings的系列手推笔记(附高清PDF下载):

博士笔记 | 周志华《机器学习》手推笔记第一章思维导图

博士笔记 | 周志华《机器学习》手推笔记第二章“模型评估与选择”

博士笔记 | 周志华《机器学习》手推笔记第三章“线性模型”

博士笔记 | 周志华《机器学习》手推笔记第四章“决策树”

博士笔记 | 周志华《机器学习》手推笔记第五章“神经网络”

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(上)

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(下)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(上)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(下)

博士笔记 | 周志华《机器学习》手推笔记第八章集成学习(上)

博士笔记 | 周志华《机器学习》手推笔记第八章集成学习(下)

博士笔记 | 周志华《机器学习》手推笔记第九章聚类

博士笔记 | 周志华《机器学习》手推笔记第十章降维与度量学习

博士笔记 | 周志华《机器学习》手推笔记第十一章稀疏学习

博士笔记 | 周志华《机器学习》手推笔记第十二章计算学习理论

博士笔记 | 周志华《机器学习》手推笔记第十三章半监督学习

博士笔记 | 周志华《机器学习》手推笔记第十四章概率图模型

点分享

点收藏

点点赞

点在看

BBAug: PyTorch的物体检测包相关推荐

  1. BBAug: 一个用于PyTorch的物体检测包围框数据增强包

    本文转载自AI公园. 作者:Harpal Sahota 编译:ronghuaiyang 导读 实现了Google Research,Brain Team中的增强策略. 像许多神经网络模型一样,目标检测 ...

  2. pytorch模型加载测试_使用Pytorch实现物体检测(Faster R-CNN)

    在本示例中,介绍一种two-stage算法(Faster R-CNN),将目标区域检测和类别识别分为两个任务进行物体检测.本示例采用PyTorch引擎进行模型构建. 如果您已熟练使用Notebook和 ...

  3. PyTorch开源物体检测工具包

    MMDetection是一个基于PyTorch的开源物体检测工具包.该工具包采用模块化设计,支持多种流行的物体检测和实例分割算法,并且可以灵活地进行拓展,在速度和显存消耗上也具有优势.(https:/ ...

  4. [pytorch] RCNN物体检测的简化实现(d2l-香蕉数据集)

    论文地址 RCNN物体检测的主要步骤如下: 训练: 监督预训练:利用ILSVRC 2012进行预训练,lr=0.01 在VOC 2012 train上微调:将CNN最后的1000分类初始化为21分类( ...

  5. 二十. 在ROS系统上实现基于PyTorch YOLO v5的实时物体检测

    一. 背景介绍 在我前面的博文 十八.在JetsonNano上为基于PyTorch的物体检测网络测速和选型 中,我介绍过在基于Jetson Nano硬件平台和Ubuntu 18.04 with Jet ...

  6. 深度学习二(Pytorch物体检测实战)

    深度学习二(Pytorch物体检测实战) 文章目录 深度学习二(Pytorch物体检测实战) 1.PyTorch基础 1.1.基本数据结构:Tensor 1.1.1.Tensor数据类型 1.1.2. ...

  7. 《深度学习之PyTorch物体检测实战》—读书笔记

    随书代码 物体检测与PyTorch 深度学习 为了赋予计算机以人类的理解能力与逻辑思维,诞生了人工智能(Artificial Intelligence, AI)这一学科.在实现人工智能的众多算法中,机 ...

  8. 深度学习之PyTorch物体检测

    深度学习之PyTorch物体检测 董洪义 著 ISBN:9787111641742 包装:平装 开本:16开 用纸:胶版纸 出版社:机械工业出版社 出版时间:2020-01-01

  9. 深度学习之PyTorch物体检测实战——新书赠送活动

    点击我爱计算机视觉标星,更快获取CVML新技术 另外52CV联合北京大学出版社抽奖送书 8 本: 为防止羊毛党机器人,在我爱计算机视觉公众号后台回复"PyTorch物体检测",即可 ...

最新文章

  1. 算法---找到数组中第二大的数
  2. java实现Kafka生产者示例
  3. 方法论、方法论——程序员的阿喀琉斯之踵
  4. THREE TRACKS AT UNIVERSITY
  5. LinkedHashMap的使用
  6. C语言编程序编数独,求用C语言编一个解九宫格数独的程序怎么办? 爱问知识人...
  7. 卷积码主要是对抗_【零基础学会LTE】【3】LTE 36.212 咬尾卷积码详解
  8. SWFTools (pdf2swf) to properly work with Flex (精彩转载)
  9. 3x3矩阵怎么求逆矩阵_表象变换的幺正算符怎么定义的? 为何说算符与态可以看作矩阵?...
  10. 使用SaveAsPDFandXPS + jacob实现Java word转pdf(开发笔记)
  11. unity 中文 离线文档下载安装
  12. ubantu 14.04重置密码
  13. 感谢以色列,站在对抗邪恶的最前线
  14. 〖毕业季|进击的技术er〗其他人都在缅怀青春、告诉你如何拿到 offer 、提高自己的技术栈、做未来规划路线,我偏要反其道而行、告诉你们一个不一样的技术er的职场成长。
  15. 文本自动生成研究进展与趋势之总结与展望
  16. 智能网联汽车信息安全研究报告
  17. c语言随机产生一组四则运算题,随机生成四则运算
  18. VNC共享剪切板,打开远程复制粘贴功能
  19. 移动用户和运营商的签约速率
  20. php 相同数据合并单元格,elementUI table合并相同数据的单元格

热门文章

  1. java c 转换_Java怎么转换c语言?
  2. 计算机在线问答,网络信息安全知识:公安机关发现影响计算机信息系统安全的隐患时,()。...
  3. java二叉树算法_java构建二叉树算法
  4. Java io流小技巧_选择用流的小规律(java)基本的io流
  5. 中的枚举属性函数_软件特攻队|Qt中的反射机制之Q_PROPERTY
  6. java 强制走catch_java – IDE强制使用try / catch包围但不抛出异常
  7. react native ios 上架
  8. 吴恩达机器学习课程笔记章节二单变量线性回归
  9. 02工厂模式+抽象工厂模式(创建型模式)
  10. Objectc 基础类型