# DESC: 標(biāo)注單類(lèi)數(shù)據(jù)后,生成voc訓(xùn)練格式腳本
import os
import random
import glob
import shutil
trainval_percent = 0.66
train_percent = 0.5
base_path = r'C:\Users\wzauw\Desktop\cougar_body'
xml_path = r''
img_path = r''
total_xml = []
def mk_data_folder(*args, cur=None):
if not cur:
cur = base_path
for idx, arg in enumerate(args, 1):
cur = os.path.join(cur, arg)
if idx == len(args):
if not os.path.exists(cur):
os.makedirs(cur)
return cur
if __name__ == '__main__':
# 創(chuàng)建文件目錄
folder_path = {}
voc2007 = mk_data_folder('VOCdevkit', 'VOC2007')
for foldername in ['Annotations', 'ImageSets', 'JPEGImages']:
folder_path[foldername] = mk_data_folder(foldername, cur=voc2007)
for imgsetname in ['Action', 'Layout', 'Main', 'Segmentation']:
folder_path[imgsetname] = mk_data_folder(imgsetname, cur=folder_path['ImageSets'])
if not img_path:
img_path = base_path
for file in glob.glob(img_path + '/*.*[gG]'):
if os.path.exists(os.path.join(folder_path['JPEGImages'], os.path.basename(file))):
os.remove(file)
else:
shutil.move(file, folder_path['JPEGImages'])
if not xml_path:
xml_path = base_path
for file in glob.glob(xml_path + '/*.xml'):
total_xml.append(os.path.basename(file))
if os.path.exists(os.path.join(folder_path['Annotations'], os.path.basename(file))):
os.remove(file)
else:
shutil.move(file, folder_path['Annotations'])
num = len(total_xml)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(range(num), tv)
train = random.sample(trainval, tr)
ftrainval = open(os.path.join(folder_path['Main'], 'trainval.txt'), 'w')
ftest = open(os.path.join(folder_path['Main'], 'test.txt'), 'w')
ftrain = open(os.path.join(folder_path['Main'], 'train.txt'), 'w')
fval = open(os.path.join(folder_path['Main'], 'val.txt'), 'w')
for i in range(num):
name = total_xml[i][:-4] + '\n'
if i in trainval:
ftrainval.write(name)
if i in train:
ftrain.write(name)
else:
fval.write(name)
else:
ftest.write(name)
ftrainval.close()
ftrain.close()
fval.close()
ftest.close()
記錄自寫(xiě)快捷生成voc訓(xùn)練格式腳本
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- “定投課堂”聽(tīng)Liuda老師講解,并寫(xiě)下聽(tīng)后感: 共讀《反脆弱》的原因:這本書(shū)是核心,通過(guò)這本書(shū)可以在最短的時(shí)間了...
- 昨天到底是忘了日更了。 因?yàn)閷W(xué)?;顒?dòng)要制作美篇,要求當(dāng)天出來(lái),所以昨天就異常忙碌,好不容易把當(dāng)天的活動(dòng)美篇制作好,...
- 這是抗癌露露寫(xiě)給妻子的一首訣別的歌曲,作者想去擁有和妻子在一起的美好但又不敢去觸碰這份情感所帶來(lái)的失去的痛。字里行...
- 表情是什么,我認(rèn)為表情就是表現(xiàn)出來(lái)的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過(guò)就哭了。兩者是相互影響密不可...