目标检测数据集预处理:图像增强之目标遮挡

针对目标检测任务中的图像遮挡问题,通过数据集预处理进行图像增强可以有效缓解模型过拟合。本文聚焦于利用遮挡生成新的训练数据,涉及步骤包括读取XML标注文件、确定遮挡位置和生成遮挡物,最终形成新的图像和XML文件。采用图片和颜色填充作为遮挡物,并对目标不同部位进行不同程度的遮挡。
摘要由CSDN通过智能技术生成

目标检测任务中常常会遇到图像中目标被遮挡严重的问题,由于遮挡数据复杂多样,遮挡信息丢失严重,模型在训练过程中往往陷入过拟合问题,对训练集中外的数据检测效果下降,在模型层面很难做到很好的改善,这时候就需要我们对数据集进行预处理,一般的方法就是进行图像增强,获取大量的差异性数据增强数据集,生成更多的数据,改善过拟合问题。

本文主要针对大量遮挡目标任务进行数据集增强,通过对目标的部分位置进行遮挡,生成大量新的数据进行训练。

数据集格式使用的VOC数据集格式,标注文件格式下xml

流程:

1.读取xml文件,获取目标的位置信息。

2.(读取作为遮挡物的图像信息)也可以生成指定颜色的遮挡物,一般为黑色

3.读取图像信息

4.根据遮挡部位,计算遮挡物在图像中的位置信息

5.在图像中进行遮挡。

6.生成新的图像文件和xml文件

代码实现:

代码中分别使用图片和色块(即颜色填充)作为遮挡物

分别对目标的不同位置遮挡(左上,右上,左下,右下,左,右,上,下各部分)

分别使用不同的遮挡比例(1/4, 1/2, 3/4)

"""
File: MaskForAugmentation.py
"""
from PIL import Image
from pylab import *
import os
import xml.etree.ElementTree as ET
import random
from shutil import copyfile

"""将数据集中的标注框从图片中剪裁出来
anno_dir存放xml文件,image_dir存放图片
mask_image_dir存放生成的图片,anno_dir存放生成的xml
occlusion_dir存放作为遮挡的图片
up_path存放作为上半部分遮挡的图片
"""
anno_dir = 'F:/数据集/car/anno/'
image_dir = 'F:/数据集/car/image/'
mask_image_dir = 'F:/数据集/car/aug_image/'
mask_xml_dir = 'F:/数据集/car/aug_anno/'
occlusion_dir = 'F:/数据集/car/occ/'
Ratio = [1/4, 1/2, 3/4]
IsImage = True
IsFilling = True

def _main():
    #获取全部图片文件名和遮挡图片名
    filelist = os.listdir(image_dir)
    filelist_occlusion= os.listdir(occlusion_dir)
    for file in filelist:
        #将图片文件名转换成xml文件名
        anno_file = os.path.splitext(file)[0] + '.xml'
        #解析xml文件,得到目标的类别名和标注框位置信息
        num, annos = _ParseAnnotation(anno_file)
        for j in range(num): 
            #随机选取作为遮挡的图片和遮挡面积比例
            occ = random.randint(0, len(Ratio)-1)
            ra = random.randint(0, len(filelist_occlusion)-1)
            if IsImage:
                _Mask_Image(j, annos[j], anno_file, filelist_occlusion[occ], Ratio[ra])               
            if IsFilling:
                _Mask_Filling(j, annos
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>