互联网技术 / 互联网资讯 · 2024年1月18日 0

BBAug: PyTorch物体检测包围框数据增强工具

BBAug: PyTorch物体检测包围框数据增强工具

像许多神经网络模型一样,目标检测模型在训练大量数据时效果最好。可用的数据有限,世界各地的许多研究人员正在研究增强策略,以增加可用的数据量。谷歌的大脑团队进行了一项这样的研究,并发表在了一篇论文中,名为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%。

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

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

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

BBAug

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

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

BBAug: PyTorch物体检测包围框数据增强工具

BBAug: PyTorch物体检测包围框数据增强工具

BBAug: PyTorch物体检测包围框数据增强工具

BBAug: PyTorch物体检测包围框数据增强工具

BBAug: PyTorch物体检测包围框数据增强工具

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

BBAug: PyTorch物体检测包围框数据增强工具

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

BBAug: PyTorch物体检测包围框数据增强工具

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

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中。