在样本量不足的情况下,我们通常会采用mixup或者填鸭式的方法来进行数据增强。其中mixup是将正负样本融合成新的一组样本,使得样本量翻倍。填鸭式是将原本样本里的目标抠出来,随机复制粘贴到其他地方。(个人理解)
import os
import json
import numpy as np
import pandas as pd
import cv2
import glob
import random
from PIL import Image
import time
from sklearn import metrics as mr
random.seed(2019)
aug_name=['target']
defect_img_root='C:\\Users\\Administrator\\Desktop\\new_front'
save_dir='...'
if not os.path.exists(save_dir):
os.mkdir(save_dir)
anno_file='...'
anno_result= pd.read_json(open(anno_file,"r"))
name_list=anno_result["name"].unique()
ring_width=10# default is 5
result=[]
last_result_length=0
img_name_count=0
for root,paths,files in os.walk(defect_img_root):
for path in paths:
img_name=path+'.jpg'
img_anno = anno_result[anno_result["name"] == img_name]
bboxs = img_anno["bbox"].tolist()
# print(bboxs)
img_name_count+=1
defect_names = img_anno["defect_name"].tolist()
# defect_names = [defect_name2label[x] for x in defect_names]
print(defect_names)
assert img_anno["name"].unique()[0] == img_name
# testimg=cv2.imread(root+path+'/'+img_name)
testimg=Image.open(root+path+'/'+img_name)
template_img_name='template_'+path.split('_')[