请教图片任意角度旋转,如何使标注框跟随旋转。
在做“AI识虫”的练习赛,除了老师基线版本中的,网上能找到的图片数据增广基本都用了(还没研究GAN)。查看分类结果发现测试集中的一些未能被模型识别的样本就是前一图片样本的旋转。现在正在尝试任意角度旋转图片。这遇到一个问题:就是如何让标注框也随图片旋转?有什么好的解决方法么?
我比较偷懒采用了先增强在训练的办法,同时旋转图片和box生成新的jpeg和yaml
我当时最开始考虑的引入旋转增强的原因有两个其一图像长宽比基本1,旋转后图像比例不会太大,变化;其次是背景本身是一个圆形的培养皿感觉非常适合选择,但是由于代码能力相对较弱,没有写出一个实时处理的办法而是借用了github上一个数据增强的git
参考的git链接如下https://github.com/Paperspace/DataAugmentationForObjectDetection,不过其实采用的这个还是有点小问题,比如旋转后空白部分填补黑色这点个人认为不太好,有条件可以修改成填充背景色,比如选靠边的几圈像素做平均值作为填充色彩
但是旋转后的标注框也歪了不行吧,得虫子转而标注框始终保持水平。
我的思路是设置一个权重变量与标注框的长宽做运算,随着旋转角度这个权重变量的值在0~1之间变化,所以我用的sin函数。然后图像旋转90度时正好使图像的长宽互换,180时再换回来,这样每90度循环一次。
谢谢,我研究下。
挤在一起的虫子你有什么识别的高招么?比如复制另一个标注框中的目标的部分?
框还是水平的具体可以参考那个git的example
你说的是mixup的技巧吗,那个可以提高一部分
我考虑的是拼接,这个是融合。虽然不是完全一回事,但谢谢提供新思路。我搜了一些相关的帖子,挺有启发,还有专门的论文。
看来数据增广也有好多人研究啊
用的这个库,里面有coco格式目标检测数据增强的实现
https://github.com/albumentations-team/albumentations
不过好像没有mixup?而且有时用了旋转的数据增强好像是负效果。。。
我觉得在实际场景中,任意角度旋转应该是能增强泛化能力的,但也会增加训练时长。如果训练时长不增加,是会看上去降低模型效果的。而且,我发现这个练习赛版的数据集中的测试集数据好像是人为设置的,有些图像就是把原图旋转了90度。所以旋转任意角度效果不明显。但实际场景中虫子的姿势应该是任意角度的。
谢谢提供参考,我去看看。
一般添加噪声,添加到多少比较好,研究过么?
我在另一个比赛里试过,如果图片不像识虫这样,是工业上用的一个方向上的图片和标注,用了旋转之后数据增强是-10个点左右,好像李沐的论文中也是这么说的。论文说有一种数据增强是正效果,就算把不同图片的目标互相复制粘贴几遍,比如图A的虫子粘贴到图B的某个位置,这样等于扩大了训练集范围,就是找不到怎么实现的= =
你的意思是旋转后提高了还是降低了10个百分点?
我在8楼说的就是用复制粘贴标注框内容的方式增广数据,感觉可以实现吧。你提到的论文有网址么?或者名字叫什么?
我在这个数据集上的旋转增强提高非常有限0.5个点左右
我比较偷懒采用了先增强在训练的办法,同时旋转图片和box生成新的jpeg和yaml
我当时最开始考虑的引入旋转增强的原因有两个其一图像长宽比基本1,旋转后图像比例不会太大,变化;其次是背景本身是一个圆形的培养皿感觉非常适合选择,但是由于代码能力相对较弱,没有写出一个实时处理的办法而是借用了github上一个数据增强的git
参考的git链接如下https://github.com/Paperspace/DataAugmentationForObjectDetection,不过其实采用的这个还是有点小问题,比如旋转后空白部分填补黑色这点个人认为不太好,有条件可以修改成填充背景色,比如选靠边的几圈像素做平均值作为填充色彩
但是旋转后的标注框也歪了不行吧,得虫子转而标注框始终保持水平。
我的思路是设置一个权重变量与标注框的长宽做运算,随着旋转角度这个权重变量的值在0~1之间变化,所以我用的sin函数。然后图像旋转90度时正好使图像的长宽互换,180时再换回来,这样每90度循环一次。
谢谢,我研究下。
挤在一起的虫子你有什么识别的高招么?比如复制另一个标注框中的目标的部分?
框还是水平的具体可以参考那个git的example
你说的是mixup的技巧吗,那个可以提高一部分
我考虑的是拼接,这个是融合。虽然不是完全一回事,但谢谢提供新思路。我搜了一些相关的帖子,挺有启发,还有专门的论文。
看来数据增广也有好多人研究啊
用的这个库,里面有coco格式目标检测数据增强的实现
https://github.com/albumentations-team/albumentations
不过好像没有mixup?而且有时用了旋转的数据增强好像是负效果。。。
我觉得在实际场景中,任意角度旋转应该是能增强泛化能力的,但也会增加训练时长。如果训练时长不增加,是会看上去降低模型效果的。而且,我发现这个练习赛版的数据集中的测试集数据好像是人为设置的,有些图像就是把原图旋转了90度。所以旋转任意角度效果不明显。但实际场景中虫子的姿势应该是任意角度的。
谢谢提供参考,我去看看。
一般添加噪声,添加到多少比较好,研究过么?
我在另一个比赛里试过,如果图片不像识虫这样,是工业上用的一个方向上的图片和标注,用了旋转之后数据增强是-10个点左右,好像李沐的论文中也是这么说的。论文说有一种数据增强是正效果,就算把不同图片的目标互相复制粘贴几遍,比如图A的虫子粘贴到图B的某个位置,这样等于扩大了训练集范围,就是找不到怎么实现的= =
你的意思是旋转后提高了还是降低了10个百分点?
我在8楼说的就是用复制粘贴标注框内容的方式增广数据,感觉可以实现吧。你提到的论文有网址么?或者名字叫什么?
我在8楼说的就是用复制粘贴标注框内容的方式增广数据,感觉可以实现吧。你提到的论文有网址么?或者名字叫什么?
我在这个数据集上的旋转增强提高非常有限0.5个点左右