制作目标检测训练样本的方案
作者:互联网
1.做感受野分析,确定能够检测目标边长范围
这一步得自己算。现成的网络都能搜到别人算好的结果,拿来直接用。
2. 用最终特征图的尺寸反推训练样本图像的尺寸
这一步也得自己算。有了目标边长范围,选择大于目标框最大边长2倍左右的训练样本图像的尺寸。
3. 对原始样本图像进行旋转和成像效果变换增广
这一步得写代码。目前广泛使用的正框样本库,旋转之后范围框更加不准,没得意义。如果自己要做样本记得一定要用倾斜范围框去标注,这样才能做旋转样本增广,从倾斜范围框生成的正框准一些。旋转增广有现成的工具可以用,但是都是基于正框实现的,这里有一个基于python和opencv实现的(https://github.com/XuelianZ/augment)。成像效果变换样本指,通过直方图匹配等算法,仿真夜晚、雾、雨、雪等天气情况的成像效果。
为什么这两种增广放到切图之前 ?对于成像效果变换来说需要的统计信息越准确越好,切成小图之后难以得到较好的算法效果。对于旋转来说,切完图进行旋转,必然要填充值。填充值属于人为制造的伪显著区域,不符合检测时的实际情况。
4. 对原始样本图像进行切图,切图的同时可以做平移样本增广
这一步还得写代码。已经有的工具很多都是简单的切图,只能支持0-255的普通数码照片,也没有考虑到能够检测的目标边长范围。如果有超过能够检测的目标边长范围的范围框,需要对图像进行缩小,且要将这个缩小比率记录下来。检测目录时也要按这个缩放比率进行检测。对于医学图像、遥感图像在切图过程中需要进行归一化处理。归一化参数需要从原始大样本图像上计算出来,切完的小图的统计信息不够全面,归一化参数可能不够好。
5.其它样本增广操作
比如翻转、加噪、拼接、抠洞、缩放等等,这些操作可以在训练过程中随机执行。个人认为拼接、抠洞、缩放对工程应用来说没有意义。拼接增广指随机找几张图各取一部分或者缩小之后拼起来作为一幅图用,拼接出来的图有强烈的拼接痕。抠洞指随机的将目标的一部分区域扣掉填充0值。拼接、抠洞属于人为制造的伪显著区域,不符合实际情况,白白增加训练量。
拼接的一个作用是增加了小目标样本的数量,其实平移增广也可以增加小目标样本的数量。因为小目标可以在图像范围内平移的次数更多。
训练过程随机缩放也是没必要的,缩放之后的图像可能会导致特征图和输入图像映射错位(参考“样本图像的尺寸仅与内存、显存大小有关吗?”);另外工程应用过程中控制好成像距离就能控制目标尺寸范围。仅采集符合所设计目标尺寸范围的样本图像即可。
标签:缩放,增广,检测,样本,切图,拼接,图像,训练样本,制作 来源: https://blog.csdn.net/weixin_45074568/article/details/123076387