YOLO之Mini_Rect Training(矩形训练)

        mini_rect training 又称矩形训练,是从YOLOV3开始引入的一个训练技巧。在YOLOV3之前的网络训练都是Square training,即输入图片是正方形,如 416*416、 640*640等。

        Square training的优点是,图片的大小一致,方便训练处理;缺点是,在填充图片的过程中,引入了冗余信息,并且这一部分信息对于样本来说属于完全无用数据,增加了训练计算量。

        下面第一张图为原始图像,分辨率为810*1080,进行正方形训练对图像进行处理后填充到640*640后如下第二张图所示,左右填充了冗余数据。

        为了优化这个问题,从yolov3开始提出mini_rect training 训练策略。

        mini_rect training 即对图片进行加载时,将原始图片的较长的边填充到最大长度,短边只填充到32的倍数。

        处理代码如下:

         经过处理后,大大缩小了原来正方形训练时引入冗余信息。矩形训练引入较少的冗余信息,可以加快训练速度。如下图所示处理后分辨率为512*640, 左右冗余数据明显减少。

        如果采用mini_rect training,那么整个batch内的图片的shape要一致,这就需要计算这个符合整个batch的shape。而且还要对数据集按照高宽比进行排序,这样才能保证同一个batch的图片的形状差不多相同,再选则一个共同的shape代价也比较小。

        以下为yolov5/8下处理batch shape大小代码:

        这就导致在dataloader时不能使用shuffle功能,如果使用shuffle功能,将随机打乱图片顺序,不能保证在一个batch处理时数据尺寸基本一致。在YOLOV8中同时设置 rect 和 shuffle会报警告信息,并禁用shuffle操作。

        总结,mini_rect training是为了减少冗余信息,提高训练推理速度及精度,使用mini_rect training时不能使用shuffle操作。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值