yolo imgaug数据增强 标签同时也增强

原文:https://blog.csdn.net/m0_37940759/article/details/115212083

完整代码:

import xml.etree.ElementTree as ET
import pickle
import os
from os import getcwd
import numpy as np
from PIL import Image
import shutil
import matplotlib.pyplot as plt

import imgaug as ia
from imgaug import augmenters as iaa


ia.seed(1)


def read_xml_annotation(root, image_id):
    in_file = open(os.path.join(root, image_id))
    tree = ET.parse(in_file)
    root = tree.getroot()
    bndboxlist = []

    for object in root.findall('object'):  # 找到root节点下的所有country节点
        bndbox = object.find('bndbox')  # 子节点下节点rank的值

        xmin = int(bndbox.find('xmin').text)
        xmax = int(bndbox.find('xmax').text)
        ymin = int(bndbox.find('ymin').text)
        ymax = int(bndbox.find('ymax').text)
        # print(xmin,ymin,xmax,ymax)
        bndboxlist.append([xmin, ymin, xmax, ymax])
        # print(bndboxlist)

    bndbox = root.find('object').find('bndbox')
    return bndboxlist


# (506.0000, 330.0000, 528.0000, 348.0000) -> (520.4747, 381.5080, 540.5596, 398.6603)
def change_xml_annotation(root, image_id, new_target):
    new_xmin = new_target[0]
    new_ymin = new_target[1]
    new_xmax = new_target[2]
    new_ymax = new_target[3]

    in_file = open(os.path.join(root, str(image_id) + '.xml'))  # 这里root分别由两个意思
    tree = ET.parse(in_file)
    xmlroot = tree.getroot()
    object = xmlroot.find('object')
    bndbox = object.find('bndbox')
    xmin = bndbox.find('xmin')
    xmin.text = str(new_xmin)
    ymin = bndbox.find('ymin')
    ymin.text = str(new_ymin)
    xmax = bndbox.find('xmax')
    xmax.text = str(new_xmax)
    ymax = bndbox.find('ymax')
    ymax.text = str(new_ymax)
    tree.write(os.path.join(root, str("%06d" % (str(id) + '.xml'))))


def change_xml_list_annotation(root, image_id, new_target, saveroot, id):
    in_file = open(os.path.join(root, str(image_id) + '.xml'))  # 这里root分别由两个意思
    tree = ET.parse(in_file)
    #修改xml中的filename
    elem = tree.find('filename')
    elem.text = (str
  • 1
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
YOLO格式数据增强是指在YOLO目标检测算法中对训练数据进行扩增的方法。根据引用,YOLOv4的作者在他们的论文中提到了一系列的贡献,其中包括了对训练pipeline的数据管理和数据增强进行改进,以提高模型性能。数据增强是一种重要的机器学习方法,通过生成更多的训练数据,使得扩增的数据尽可能接近真实分布的数据,从而提高检测精度并增强模型的泛化能力。 具体来说,YOLO格式数据增强可以包括以下步骤和方法: 1. 图像增强:通过应用旋转、平移、缩放、翻转等操作对图像进行变换,以增加数据的多样性。 2. 随机裁剪:随机从图像中裁剪出子区域作为训练样本,以模拟不同目标在不同位置和尺度上的出现。 3. 颜色变换:对图像进行亮度、对比度、饱和度等颜色方面的变换,以模拟不同的光照条件。 4. 噪声添加:向图像中添加噪声,如高斯噪声、椒盐噪声等,以增加数据的鲁棒性。 5. 尺度变换:对图像进行缩放操作,以模拟不同目标在不同尺度上的出现。 通过这些数据增强方法,可以使得训练集中的样本更加多样化,增加模型对各种场景的适应能力,提高检测精度和泛化能力。同时,这些数据增强方法不会增加推断时间延迟,因此可以在不影响模型性能的情况下提高训练效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值