Simple Copy-Paste论文阅读和调试记录

文章链接:Simple Copy-Paste is a Strong Data Augmentation Method for Instance Segmentation

主要记录下文章中做的实验和一些有意思的related work。

文章主旨:

介绍copy paste这一方法可以显著提升实例分割的性能。前人的工作大都集中于对目标周围的视觉场景建模,后进行粘贴。与此对比,copy paste作为一种更为简单的方法(对目标物进行随机粘贴)可以给模型带来足够好的效果。特别是对半监督算法和自训练而言,copy paste可生成extra data作为pseudo label进行训练,带来很好的效果。

core:

(1)选择源图像和目标图像;

(2)选择要粘贴的物体;

(3)选择粘贴位置。

此外,除却粘贴,算法中还加入小幅抖动(small scale jittering)、大幅抖动(large scale jittering)和随机resize,对粘贴后的图像进行处理。实验表示SJ处理大大提高了数据有效性。

related work:

实例分割中提到的文章我很感兴趣,copy paste用于弱监督实例分割。Remez等将copy paste作为一种对抗性方法,原理是基于一张给定bbox的图像,生成网络对bbox中的目标进行预测,生成mask。基于给定的mask,让该目标融入其他的图像,判决网络用来确保生成的mask or image足够的真实。

method:

好像一些文章中没有提到,论文中使用了高斯滤波平滑粘贴图像边缘,然而效果并不好。

SSJ的resize范围是0.8~1.25,LSJ的resize范围是0.1~2.0. 如果生成图像小于原始图像,用灰色像素点pad。

experiment:

主要对自训练很感兴趣。

To combine self-training and Copy-Paste we first use a supervised teacher model trained with Copy-Paste to generate pseudo labels on unlabeled data. Next we take ground truth objects from COCO and paste them into pseudo labeled images and COCO images. Finally, we train the student model on all these images.

这个没做过相关项目,回头看看具体效果。实验结果表明与baseline相比,提升2.9AP。

最后放个小demo:

import cv2
import numpy as np

# 读取源图像和目标图像
source_image = cv2.imread('C:/Users/10351/Desktop/1.jpg')
target_image = cv2.imread('C:/Users/10351/Desktop/3.jpg')

# 指定目标在源图像中的位置和尺寸
x, y, xmax, ymax = 48, 240, 195, 371
w = xmax - x
h = ymax - y

# 提取目标
cropped_image = source_image[y:y+h, x:x+w]

# 计算目标的缩放比例,保持原始宽高比,设置0.5
scale_factor = 0.5

# 调整目标的大小
new_width = int(w * scale_factor)
new_height = int(h * scale_factor)

cropped_image_resized = cv2.resize(cropped_image, (new_width, new_height))

# 将目标随机粘贴到目标图像的位置
x_pos = np.random.randint(0, target_image.shape[1] - new_width)
y_pos = np.random.randint(0, target_image.shape[0] - new_height)
# 创建一个与目标图像相同大小的空白图像
result_image = target_image.copy()

# 粘贴目标到目标图像,保持原始宽高比
result_image[y_pos:y_pos+new_height, x_pos:x_pos+new_width] = cropped_image_resized

# 保存合成的图像
cv2.imwrite("result_image.jpg", result_image)

### 回答1: yolov5数据增强copy-paste是一种数据增强方法,它可以通过将图像中的某些区域复制并粘贴到其他位置来生成新的训练数据。这种方法可以增加数据集的多样性,提高模型的鲁棒性和泛化能力。在yolov5中,copy-paste数据增强可以通过使用imgaug库来实现。 ### 回答2: YoloV5是一个非常流行的目标检测算法,而数据增强技术则是提高模型精度的重要手段。其中一种常见的数据增强方法是copy-paste,即将图片中的某个区域复制并粘贴到其他区域,从而生成更多的训练数据。 具体来说,copy-paste数据增强可以通过以下步骤实现: 1. 选择目标区域。通常情况下,我们会选择图片中包含目标物体的区域,以确保生成的新图片仍然包含该物体。 2. 复制目标区域。通过将目标区域从原图中复制出来,可以获得一个新的带有目标物体的小图像。 3. 选择粘贴位置。选择另一个区域作为粘贴位置,这里通常会选择一些背景区域或者其他未包含目标的区域。 4. 进行粘贴。将复制的区域粘贴到目标位置,就可以得到一个新的包含目标物体的图像。 5. 调整位置和大小。由于复制区域和粘贴位置的大小和形状可能不同,因此需要根据需要进行微调,以确保新图片的质量。 通过copy-paste数据增强,可以生成更多的训练数据,从而提高模型的泛化能力和鲁棒性。此外,还可以通过扭曲、旋转、颜色变换等技术进一步增强数据,以获得更好的训练效果。 ### 回答3: 在深度学习中,数据增强是提高模型性能的一种方式。YOLOv5是一种基于深度学习的目标检测算法,而Copy-Paste是YOLOv5数据增强的一种方式。以下是我对该数据增强方式的理解和解释。 Copy-Paste是指将一个物体从一张图像中复制到另一张图像中,然后将其放置在随机位置。该方法通过增加训练样本数量,增强了训练集的多样性,能提高模型的鲁棒性,从而提高模型的准确性和泛化能力。 Copy-Paste在YOLOv5中的具体实现步骤如下: 1. 随机从原始图像中选定一个物体作为复制对象。 2. 随机选择另一张与原始图像大小相同的图像,将选定的物体复制到该图像中。 3. 随机调整复制物体的大小和旋转角度,使其适应新的图像环境。 4. 随机选择新图像的位置,并将复制的物体粘贴到该位置上。 5. 计算图像中所有物体的坐标和类别,并将其转换为相对于图像大小的百分比。 使用Copy-Paste数据增强技术可以大大改善模型的性能,增加数据多样性以达到模型推广到更多的应用的目的,可以有效解决数据少的情况下模型过拟合问题。当然这个数据增强方法也有一定的缺陷,因为复制的物体可能不匹配目标图像的背景,会导致背景不连续甚至不真实。需要进行质量评估。然而,该方法可以通过调整参数来改进,比如增加复制物体的数量和增加旋转和平移的方式来进一步提高模型的性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值