yolov5-mosaic图像增强技术详解

        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. 随机选择四张图,取其部分拼入该图,如下图所示,四种颜色代表四张样本图,超出的部分将被舍弃

yolov5-mosaic图像增强技术详解_第1张图片

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

yolov5-mosaic图像增强技术详解_第2张图片

 

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

 

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

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

你可能感兴趣的:(目标检测,深度学习,人工智能)