与许多神经网络模型一样,对象检测模型在对大量数据进行训练时效果最佳。通常,可用数据是有限的,世界各地的许多研究人员都在研究增强策略以增加可用数据量。谷歌的大脑团队进行了一项这样的研究,并将其发表在一篇名为LearningDataAugmentationStrategiesforObjectDetection的论文中。在这篇论文中,作者确定了一组称为策略的增强,它们在对象检测问题上表现良好。该策略是通过增强搜索获得的,提高了通用模型的性能。作者将增强策略定义为一组子策略。当模型训练时,随机选择其中一个子策略进行图像增强。在每个子策略中,都有依次应用于图像的增强功能。每个转换还有两个超参数:概率和幅度。概率表示应用增强的可能性,而幅度表示增强的程度。下面的代码显示了本文中使用的策略: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和Equalizeenhanced.TranslateX_BBox操作将图像在x轴上平移4个量级。在这种情况下,尺寸并没有直接转换为像素,而是根据尺寸缩放为像素值。这种增强的概率也是0.6,这意味着如果选择这种增强,则有60%的概率应用这种增强。每个增强都有一个相关的概率,引入了随机性的概念,为训练增加了一定程度的随机性。总体而言,BrainTeam提出了4种策略:v0、v1、v2和v3。本文展示了v0策略,其他三个策略包含更多具有几种不同转换的子策略。总的来说,增强分为三类,作者将其定义为:颜色操纵:扭曲颜色通道而不影响边界框的位置。几何操作:几何扭曲图像,相应地改变边界框的位置和大小。边界框操作:仅扭曲边界框包含的像素内容。BBAug那么BBAug)在这方面有什么贡献呢?BBAug是一个python包,实现了GoogleBrainTeam的所有策略。这个包是一个包装器,可以更轻松地使用这些策略。实际缩放是由优秀的imgaug包完成的。上面显示的策略应用于示例图像,如下所示。每行是一个不同的子策略,每一列是该子策略的不同运行。如您所见,子策略的运行之间存在一定程度的变化,从而为训练增加了一定程度的随机性。这只是BBAug实施的4种策略之一。要查看所有4种策略的完整可视化,请查看软件包的GitHub页面:https://github.com/harpalsahota/bbaug。该软件包还提供了一些有用的功能,例如自定义策略的可能性,以及位于图像外部的边界框,如果它们部分位于图像之外,则会自动删除或剪裁。例如,在下图中,应用了平移增强,将部分边界框推到图像之外。您可以看到新的边界框已按比例缩小以适合它。也可以创建仅影响边界框区域的增强。在下图中,solarisaugmentation仅应用于边界框区域:使用随机策略来增强单个图像有多容易?aug_policy)#selectarandompolicyfromthepolicysetrandom_policy=policy_container.select_random_policy()#Applytheaugmentation.Returnstheaugmentedimageandboundingboxes.#Imageisanumpyarrayoftheimage#Boundingboxesisalistoflistofboundingboxesinpixels(int).#e.g.[[x_min,y_min,x_man,y_max],[x_min,y_min,x_man,y_max]]#Labelsaretheclasslabelsfortheboundingboxesasaniterableofintse.g.[1,0]img_aug,bbs_aug=policy_container.apply_augmentation(random_policy,image,bounding_boxes,labels)#image_aug:numgpyarrayaugtheagenumpyarrayofaugmnetedboundingboxesinformat:[[label,x_min,y_min,x_man,y_max],...]摘要这个包实现了GoogleBrain团队推导出的增强策略。目前,所有4种策略都已实现,并且该软件包还附带笔记本,以帮助用户将这些策略集成到他们的PyTorch训练管道中。
