人臉識別性別識別 csv文件生成

當我們寫人臉模型的訓練程序的時候,我們需要讀取人臉和人臉對應的標籤。直接在數據庫中讀取顯然是低效的。所以我們用csv文件讀取。csv文件中包含兩方面的內容,一是每一張圖片的位置所在,二是每一個人臉對應的標籤,就是爲每一個人編號。這個at.txt就是我們需要的csv文件。

我的數據集在"E:/WXE/yan_yi/gender/gender/gender_img"文件夾下面,我就用下面兩行命令:

cd E:\WXE\yan_yi\gender\gender\gender_img

dir b/s *.png *.jpg >at.txt

數據集文件夾下面就多出了一個at.txt文件,但是現在是隻有路徑沒有標籤的。

     接下來添加標籤

import sys

import os.path


# This is a tiny script to help you creating a CSV file from a face
# database with a similar hierarchie:
#
#  philipp@mango:~/facerec/data/at$ tree
#  .
#  |-- README
#  |-- s1
#  |   |-- 1.pgm
#  |   |-- ...
#  |   |-- 10.pgm
#  |-- s2
#  |   |-- 1.pgm
#  |   |-- ...
#  |   |-- 10.pgm
#  ...
#  |-- s40
#  |   |-- 1.pgm
#  |   |-- ...
#  |   |-- 10.pgm
#


if __name__ == "__main__":


    # if len(sys.argv) != 3:
        # print "usage: create_csv <base_path> <SAVE_FILE_NAME>"
        # sys.exit(1)

#Sys.argv[]是用來獲取命令行參數的,sys.argv[0]表示代碼本身文件路徑,所以參數從1開始
#指明被遍歷的文件夾
#BASE_PATH=sys.argv[1]
    BASE_PATH = "E:/WXE/yan_yi/gender/gender/gender_img"#數據集的目錄
#FILE_NAME = sys.argv[2]
    SEPARATOR=";"
    fh = open("E:/WXE/yan_yi/gender/gender/at.txt",'w')#寫入的文本文件


    label = 0
    #os.walk()可以得到一個三元tupple(dirpath, dirnames, filenames)
#其中第一個爲起始路徑
#第二個爲起始路徑下的文件夾,第三個是起始路徑下的文件。
#三個參數:分別返回1.父目錄 2.所有文件夾名字(不含路徑) 3.所有文件名字
#os.listdir()函數獲得指定目錄中的內容
    label = 0
    for dirname, dirnames, filenames in os.walk(BASE_PATH):
        for subdirname in dirnames:
            subject_path = os.path.join(dirname, subdirname)#"E:/WXE/yan_yi/gender/gender/gender_img/female(或者male)"
            for filename in os.listdir(subject_path):
                abs_path = "%s/%s" % (subject_path, filename)
                print "%s%s%d" % (abs_path, SEPARATOR, label)
                fh.write(abs_path)
                fh.write(SEPARATOR)
                fh.write(str(label))
                fh.write("\n")      
            label = label + 1#另一個子文件的標籤
    fh.close()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章