yolov5-mosaic图像增强技术详解
yolov5
yolov5 - Ultralytics YOLOv8的前身,是一个用于目标检测、图像分割和图像分类任务的先进模型。
项目地址:https://gitcode.com/gh_mirrors/yo/yolov5
·
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 - 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 个月前
更多推荐




所有评论(0)