目标检测的数据增强 -- 代码实现

这篇博客探讨了在目标检测任务中如何实施数据增强,包括resize、center_crop、random_flip和random_crop等操作。由于这些操作会改变图像中boxes的位置,所以在使用时必须同步调整boxes坐标。文中提供了详细的Python和PyTorch实现代码。
摘要由CSDN通过智能技术生成

        与分类任务不同的是,目标检测任务的数据集有boxes位置的标注,而若进行上下翻转、裁剪等操作,坐标位置也就随之改变,需要在transform时对boxes坐标作出对应的转换。

import math
import random
import torch
from PIL import Image, ImageDraw

1、resize

def resize(img, boxes, size, max_size=1000): # 调整大小缩放
    w, h = img.size  # 输入img w h (480, 364)
    if isinstance(size, int):  # 按照短边长度,等比例缩放另一边
        size_min = min(w, h)  # 输入size=300
        size_max = max(w, h)  # 首先找到短边,缩放的边是364 h
        sw = sh = float(size) / size_min  # 计算出短边h缩放的比例,将长边w缩放到同等比例
        if sw * size_max > max_size:  # 放置缩放过大
            sw = sh = float(max_size) / size_max  # 缩放至最大程度
        ow = int(w * sw + 0.5)
        oh = int(h * sh + 0.5)  # 向上取整
    else:  # 直接固定长度缩放
        ow, oh = size  # 输入size(300,300)
        sw = float(ow) / w
        sh &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值