日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

【Opencv综合应用】自制训练集的人脸识别2——制作csv文件

發布時間:2024/3/13 pytorch 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Opencv综合应用】自制训练集的人脸识别2——制作csv文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【Opencv綜合應用】自制訓練集的人臉識別2——制作csv文件

  • 一,準備工作
    • 環境
  • 二,主要步驟
  • 三,代碼部分
  • 四,結果
  • 五,總結

一,準備工作

本文參考自: https://www.cnblogs.com/fpzs/p/10535093.html.
在上一篇【Opencv綜合應用】自制訓練集的人臉識別1——拍攝10張人臉圖片中我們在s41文件中生成了自己的10張人臉灰度pgm圖像,現在我們需要將s41文件夾移到ORL人臉庫文件夾att中,里面已經包含了s1—s40的40組且每組10張的pgm格式人臉圖像了,加入我們的圖像后按照接下來的步驟生成csv文件,就能方便以后制作訓練集xml文件了

ORL人臉庫(Olivetti Research Laboratory人臉數據庫)是由英國劍橋Olivetti實驗室從1992年4月到1994年4月期間拍攝的一系列人臉圖像組成,共有40個不同年齡、不同性別和不同種族的對象。每個人10幅圖像共計400幅灰度圖像組成,圖像尺寸是92×112,圖像背景為黑色。其中人臉部分表情和細節均有變化,例如笑與不笑、眼睛睜著或閉著,戴或不戴眼鏡等,人臉姿態也有變化,其深度旋轉和平面旋轉可達20度,人臉尺寸也有最多10%的變化,是目前使用最廣泛的標準人臉數據庫。

之前由于我無論如何都登不上他們英國劍橋Olivetti實驗室去下載人臉庫,就算翻墻那網頁也顯示404 Not Found,所以我這里直接把好不容易搞到的ORL人臉庫放網盤了,有同樣情況的直接用我的就行。
鏈接: https://pan.baidu.com/s/1WxTNsMZ1RXr7GnFbSNuWQw.
提取碼:gom8

環境

由于這次要用到Python沒有的tensorflow模塊,沒有的需要下載安裝,比較麻煩,所以我推薦還沒按Python的不要下Python,直接下載Anaconda(Anaconda是一個開源的Python發行版本,其中已經包含了conda、Python等180多個科學包及依賴項,同樣也包含了tensorflow包,省去了以后安裝很多包的麻煩),如果已經安裝了Python的也可以下載Anaconda,到時候選擇編譯器時直接選擇Anaconda中的Python.exe編譯器就行

我的環境是win10+Anaconda3 4.3(里面帶著Python3.5)+Pycharm

二,主要步驟

1、載入對應的路徑,取到包含著人臉庫文件的路徑就行,不然會報錯(我這里文件結構是在可執行文件同目錄下,有人臉識別att文件夾,里面包含了s1—s41組文件,每組文件里又包含10副pgm圖,但我路徑只取到att就行)
2、提取每一張圖片對應的位置與同一個人臉對應的標簽
3、寫入存儲文件夾att.txt

三,代碼部分

"""------------------------------------------------------------------ 利用pyhton生成csv文件 人臉模型訓時需要讀取人臉和人臉對應的標簽,利用csv文件讀取,以取代傳統的 逐一讀取方式,直接在數據庫讀取效率很低。在訓練之前生成csv文件,主要步驟: 1、載入對應的路徑,取到包含著人臉庫文件的路徑就行,不然會報錯(我這里文件結構是在可執行文件同目錄下,有人臉識別att文件夾,里面包含了s1—s41組文件,每組文件里又包含10副pgm圖,但我路徑只取到att就行 2、提取每一張圖片對應的位置與同一個人臉對應的標簽 3、寫入存儲文件夾data.txt ---------------------------------------------------------------------""" import tensorflow as tf import os.path """定義csv文件生成函數""" def MakeLabel():global labelface_path = "att" # 人臉數據的路徑 separator = ";" # 分隔符file = open("att.txt", 'w') # 打開存儲的文件"""filenames對應att; dirnames對應s1; dirname對應1.pgm;故為att/s1/1.pgm"""for dirname, dirnames, filenames in os.walk(face_path):for targetname in dirnames:target_path = os.path.join(dirname, targetname)for filename in os.listdir(target_path):targetname2 = targetname[::-1]targetname3 = targetname2[:-1]targetname4 = targetname3[::-1]label = int(targetname4) # 文件名字符串型轉數字int型path = "%s/%s" % (target_path, filename)print("%s%s%d" % (path, separator, label))file.write(path) # 寫入路徑file.write(separator) # 寫入;號file.write(str(label)) # 寫入標簽file.write("\n")label = label + 1file.close() #關閉存儲的文件"""啟動函數""" def main(argv=None):MakeLabel() if __name__ =='__main__':tf.app.run()

四,結果


可以在運行窗口看見生成成功

打開att.txt可以看見路徑和標號已經讀進去了

五,總結

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

下一篇 【Opencv綜合應用】自制訓練集的人臉識別3——用csv文件生成xml文件.

總結

以上是生活随笔為你收集整理的【Opencv综合应用】自制训练集的人脸识别2——制作csv文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。