在深度学习中的图片训练时,需要将图片生成标签文件列表,
本次我是对于多分类问题,一共8个类别,python代码实现如下:
-
#coding:utf-8
-
import os
-
-
def IsSubString(SubStrList,Str):
-
flag=
True
-
for substr
in SubStrList:
-
if
not(substr
in Str):
-
flag=
False
-
-
return flag
-
-
#扫面文件
-
def GetFileList(FindPath,FlagStr=[]):
-
FileList=[]
-
FileNames=os.listdir(FindPath)
-
if len(FileNames)>
0:
-
for fn
in FileNames:
-
if len(FlagStr)>
0:
-
if IsSubString(FlagStr,fn):
-
fullfilename=os.path.join(FindPath,fn)
-
FileList.append(fullfilename)
-
else:
-
fullfilename=os.path.join(FindPath,fn)
-
FileList.append(fullfilename)
-
-
if len(FileList)>
0:
-
FileList.sort()
-
-
return FileList
-
-
-
-
train_txt=open(
'train.txt',
'w')
-
#制作标签数据,多标签数据,编号从0开始
-
imgfile=GetFileList(
'/home/aa/qxq/project/fruits/ncnn-master/data/train/cabbage')
#.py文件目录下
-
for img
in imgfile:
-
str1=img+
' '+
'0'+
'\n'
#用空格代替转义字符 \t
-
train_txt.writelines(str1)
-
-
-
imgfile=GetFileList(
'/home/aa/qxq/project/fruits/ncnn-master/data/train/carrot')
-
for img
in imgfile:
-
str2=img+
' '+
'1'+
'\n'
-
train_txt.writelines(str2)
-
-
-
imgfile=GetFileList(
'/home/aa/qxq/project/fruits/ncnn-master/data/train/cauliflower')
-
for img
in imgfile:
-
str3=img+
' '+
'2'+
'\n'
-
train_txt.writelines(str3)
-
-
-
imgfile=GetFileList(
'/home/aa/qxq/project/fruits/ncnn-master/data/train/cucumber')
-
for img
in imgfile:
-
str4=img+
' '+
'3'+
'\n'
-
train_txt.writelines(str4)
-
-
-
imgfile=GetFileList(
'/home/aa/qxq/project/fruits/ncnn-master/data/train/eggplant')
-
for img
in imgfile:
-
str5=img+
' '+
'4'+
'\n'
-
train_txt.writelines(str5)
-
-
-
imgfile=GetFileList(
'/home/aa/qxq/project/fruits/ncnn-master/data/train/green_pepper')
-
for img
in imgfile:
-
str6=img+
' '+
'5'+
'\n'
-
train_txt.writelines(str6)
-
-
-
imgfile=GetFileList(
'/home/aa/qxq/project/fruits/ncnn-master/data/train/potato')
-
for img
in imgfile:
-
str7=img+
' '+
'6'+
'\n'
-
train_txt.writelines(str7)
-
-
-
imgfile=GetFileList(
'/home/aa/qxq/project/fruits/ncnn-master/data/train/pumpkin')
-
for img
in imgfile:
-
str8=img+
' '+
'7'+
'\n'
-
train_txt.writelines(str8)
-
-
-
imgfile=GetFileList(
'/home/aa/qxq/project/fruits/ncnn-master/data/train/tomato')
-
for img
in imgfile:
-
str9=img+
' '+
'8'+
'\n'
-
train_txt.writelines(str9)
-
-
#转换完成后,将.txt文档关闭
-
train_txt.close()
-
-
#测试集文件列表
-
#test_txt=open('val.txt','w')
-
#制作标签数据,如果是男的,标签设置为0,如果是女的标签为1
-
#imgfile=GetFileList('val/test_cat')#将数据集放在与.py文件相同目录下
-
#for img in imgfile:
-
# str3=img+' '+'1'+'\n'
-
# test_txt.writelines(str3)
-
-
-
#imgfile=GetFileList('val/test_dog')
-
#for img in imgfile:
-
# str4=img+' '+'0'+'\n'
-
# test_txt.writelines(str4)
-
#test_txt.close()
-
-
print(
"成功生成文件列表")
-
-
-
然后就能生成了自己想要的.txt 文件,生成的结果如下: