深度学习数据增强(Data Augmentation)--VOC数据集

前言

最近在做钢筋检测的比赛,因为比赛提供的数据只有200多张,而要使用神经网络模型来完成这个任务的话,这样的数据集就显得非常不足了,因而当我们要训练一个神经网络模型时,数据增强就变成了一种非常有必要的手段了,数据增强一般非为两种方式:一类是离线增强,一类是在线增强。

  • 离线增强 : 直接对数据集进行处理,数据的数目会变成增强因子 x 原数据集的数目 ,这种方法常常用于数据集很小的时候
  • 在线增强 : 这种增强的方法用于,获得 batch 数据之后,然后对这个 batch
    的数据进行增强,如旋转、平移、翻折等相应的变化,由于有些数据集不能接受线性级别的增长,这种方法长用于大的数据集,很多机器学习框架已经支持了这种数据增强方式,并且可以使用
    GPU 优化计算。

本篇博客我也将具体讲一下这两种方式的具体使用。本次主要做的是VOC2007数据格式的数据增强,使用的数据库主要是imaug,imgaug是一个用于机器学习实验中图像增强的python库,支持python2.7和3.4以上的版本。 它支持多种增强技术,允许轻松组合这些技术,具有简单但功能强大的随机界面,可以在这些界面上增加图像和关键点/界标,并在后台进程中提供增强功能以提高性能。

1.离线增强

代码地址:https://github.com/xinyu-ch/Data-Augment

读取xml原始坐标
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 b
  • 12
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 74
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值