(3)给数据做标签:trainData:valData = 7:3
随机将数据分开再Label Image:
txt格式,例如:plane/plane_0.jpg2
from __future__ import division
import os
import random
import cv2
#将TrainDataFinal里面的数据分别移到FinalTrain和FinalVal里面
DataPath = "TrainDataFinal/"
TrainSavePath = "FinalTrain/"
ValSavePath = "FianlVal/"
for root, dirs, files, in os.walk(DataPath):
N = 0
for name in files:
FileFullPath = os.path.join(root, name)
folder = root.split('/')[-1]
cls = folder[-1]
random.shuffle(files)
fileNub = len(files)
ValNub = fileNub*3/10
if N <= ValNub:
img = cv2.imread(FileFullPath)
ValPath = ValSavePath + folder
if not os.path.exists(ValPath):
os.mkdir(ValPath)
cv2.imwrite(ValPath + '/' + name, img)
with open("FinalAnno/val.txt",'a') as f:
f.write(folder[:-1] + '/' + name + '\t' + cls + '\n')
N += 1
else:
img = cv2.imread(FileFullPath)
TrainPath = TrainSavePath + folder
if not os.path.exists(TrainPath):
os.mkdir(TrainPath)
cv2.imwrite(TrainPath + '/' + name, img)
with open("FinalAnno/train.txt",'a') as f:
f.write(folder[:-1] + '/' + name + '\t' + cls + '\n')
N += 1
print N