mosaic图像增强技术基于现有数据极大的丰富了样本的多样性,极大程度降低了模型对于多样性学习的难度,本文将对yolov5中mosaic实现的核心源码进行解析并结合自身项目经历谈下其局限性,mosaic实现位于datasets.py中的load_mosaic()函数,入参是当前训练的图片序号,出参是一幅经过mosaic图像增强的图片及其label;

经过如下步骤得到mosaic增强图像:

step1. 假设模型输入尺寸为s,生成一幅尺寸为2s * 2s的灰色图

step2. 从点A(s/2, s/2)和点B(3s/2, 3s/2)限定的矩形内随机选择一点作为拼接点,代码如下

yc, xc = [int(random.uniform(-x, 2 * s + x)) for x in self.mosaic_border] # mosaic center x, y

step3. 随机选择四张图,取其部分拼入该图,如下图所示,四种颜色代表四张样本图,超出的部分将被舍弃

step4. 将图片进行变换后得到最终输出,对应代码和示意图如下

    # Augment
    img4, labels4 = random_perspective(img4, labels4,
                                       degrees=self.hyp['degrees'],
                                       translate=self.hyp['translate'],
                                       scale=self.hyp['scale'],
                                       shear=self.hyp['shear'],
                                       perspective=self.hyp['perspective'],
                                       border=self.mosaic_border)  # border to remove

 

下面是实际的mosaic增强后的图:

 

 参考:YOLOv5输入端(一)—— Mosaic数据增强|CSDN创作打卡_tt丫的博客-CSDN博客_yolov5数据增强

 yolov5中的mosaic实现原理_龙城肥酱的博客-CSDN博客_mosaic yolov5

GitHub 加速计划 / yo / yolov5
642
37
下载
yolov5 - Ultralytics YOLOv8的前身,是一个用于目标检测、图像分割和图像分类任务的先进模型。
最近提交(Master分支:3 个月前 )
6981c274 Refactor code for speed and clarity Co-authored-by: UltralyticsAssistant <web@ultralytics.com> 2 个月前
f003c3df This commit resolves an issue where the save-csv command did not write the CSV header. The code now correctly saves the header in the CSV file. Signed-off-by: Ali Ghanbari <alighanbari446@gmail.com> Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com> 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐