?python生成人脸识别数据集,包括训练集与测试集,前提是通过形如下图的url下载的图片
?通过下方代码生成训练集与测试集,形式为"图片地址 label 人脸坐标"
代码目前存在局限性,只能手动输入不同path路程,同时不同path标签也需要自己手动输入...,如有大量文件需要进行类似操作,应该再在外面套个category这种,用个for category in categories这种套进去...具体咋弄等有大量文件夹时再搞搞吧......
import os
def findd():
#f1 = open(r'C:\Users\fr150\Desktop\useuse\A.J._Buckley.txt', 'r')
path = r'F:\test\Bellamy_Young_use4'#需要转为txt照片所在地
# 图片
f = open(r'F:\txt\test.txt', 'a')#需要写入的txt,'a'表示可追加
dirs = os.listdir(path)
# 图片名字
# dirs = f1.readlines()
for dir in dirs:
with open(r'C:\Users\fr150\Desktop\useuse\Bellamy_Young.txt', 'r')as f1:#必须有with这个前提,才能循环进去
txts = f1.readlines()
#n_txts = len(txts)
for txt in txts:
aa = txt.split(" ")[1]#按空格分割取txt中第一位
if dir in aa:#根据图片名称按行读取txt,如存在相应图片名称则执行下面操作
bb = txt.split(" ")[2] + '\t' +txt.split(" ")[3] + '\t'+ txt.split(" ")[4] +'\t'+txt.split(" ")[5]#用split取人脸坐标,\t表示空格
#print(bb)
cc= path + '/' + dir + '\t'+'4' + '\t'+bb+'\n'#生成最后"图片地址 标签 人脸位置",'4'是标签,可以自己改
print(cc)
f.writelines(cc)#写入需要的txt
if __name__ == '__main__':
findd()
?
|