生成人臉檢測負樣本
阿新 • • 發佈:2018-12-22
從sun資料集中選了幾百張沒有人的影象,用滑動視窗在這些圖片上裁出背景圖片作為人臉檢測的負樣本
有一個問題就是暫停後裁剪並沒有停下來,自己一直也沒注意。。。發現的時候裁剪的圖片已經把硬碟塞滿了
#人臉檢測負樣本生成 from PIL import Image import os #一個rec—width上滑動的步數 w_step=5 h_step=5 rec_width_list=[60,100,150,200] rec_height_list=[70,120,180,240] #裁剪影象並儲存 def crop_and_save(rec_width,rec_height,k): w_step_num=round((width-rec_width)/(rec_width/w_step)) h_step_num=round((height-rec_height)/(rec_height/h_step)) y1=0 for i in range(h_step_num): x1=0 i=i+1 for j in range(w_step_num): j=j+1 k=k+1 img.crop((x1,y1,x1+rec_width,y1+rec_height)).resize((50,50)).save(r'E:\negtive_img_crops\{}.jpg'.format(k)) x1=x1+rec_width/w_step y1=y1+rec_height/h_step return k m=0 n=0 for dir,folder,file in os.walk(r'E:\negative_img'): for i in file: m=m+1 #輸出當前正在裁剪的圖片名及已裁剪張數 print(i) print(m) img = Image.open(os.path.join(r'E:\negative_img',i)) # 轉為灰度圖 img=img.convert('L') height=img.size[1] width=img.size[0] for i in range(len(rec_width_list)): rec_width=rec_width_list[i] rec_height=rec_height_list[i] n=crop_and_save(rec_width,rec_height,n)