目前的教學文章都只有重點提要
我整整試了一天才有初步成果
以下全為try and error出的步驟
如果有錯的話還請大家提出來
事前準備:
1.OpenCV(版本1.0)
2.OpenCV內建的兩個執行檔:createsamples.exe
haartraining.exe
這兩個執行檔在哪呢?搜尋一下OPENCV的資料夾很快就會找到了
3.N張人臉照片:
N=? 當然是愈多愈好
這步我覺得是最難的,目前手邊有將近2000張人臉照片才得出一個還算可以的結果
所以真的要製作的話,就去網路上找找有沒有人臉資料庫吧
4.N張非人臉照片:
為了讓電腦分辨何為人臉,何為非人臉,這步也是很重要的,但我手邊也不多
隨便抓了15張照片做為非人臉,沒想到還不錯,應該是我人臉的張數有cover非人臉的吧
如果沒有的話,想辦法抓下以下連結的非人臉吧,科科科
http://tutorial-haartraining.googlecode.com/svn/trunk/data/negatives/
--------------------------------OVER------------------------
接下來就是sts啦
1.創建一個資料夾,內容放置如下圖:
在img資料夾中有如下:
三個資料夾:data(等一下放產生出來的檔案,一開始為空資料夾)、negatives(非人臉資料夾)、
positives(人臉資料夾)
兩個執行檔:createsamples.exe、haartraining.exe
2.開始--->執行--->cmd
3.進入剛才所創建的資料夾---->再進入positives資料夾,如下圖:
由於positives放了很多人臉照片,我們要創建一個文件檔,去記錄這些照片的檔名及"資訊",
所以加入 dir /b /s > positives.txt 這行指令去建立一個txt檔,如下圖:
接著就可以在positives這個資料夾中看到positives.txt了,如下圖:
接下來對這個txt檔做一些小修改:
在txt開啓的狀態下 編輯--->取代,
將路徑中的C:\...........一直到圖檔檔名前的路徑全取代成空白,如下圖:
上圖中,"取代為"的欄位中就保持空白。
結果如下:
接下來同樣是編輯--->取代
在bmp後方輸入這些數據 1 0 0 200 250
其中1是固定的 0 0 200 250則是圖片大小(假如圖片是200乘250的話)
範例如下:
如果如下,記得!!!!!!!!!!!!!!下面有個positive.txt這行要刪掉:
接著退出positives這個資料夾,進入negatives資料夾同樣動作,如下圖:
但!!!接下來只要做到這樣就好了:
也就是刪去路徑即可,不用加入數據,接下來回到前一個資料夾,也就是img資料夾
OK!!
如此一來準備工作就好了
接下來就正式進入建立xml的過程
在cmd中輸入如下字串:
-info是代表人臉照片位置放在哪
-vec則是我們要輸出的vec檔 目前是設定輸出到data的資料夾中
-num是圖片個數,目前人臉資料夾中有1788張照片
-w 由於圖片一般都太大 我們要設定重設圖片大小 w是圖片寬度 如上圖是設定 20個pixel
-h 圖片高度
接著按下Enter鍵,會出現轉換資訊
OK!!!如下圖:
接下來輸入:
-data 是等一下產生的檔案要放在哪 目前設定是放在data資料夾的data資料夾中(等一下他會自己產生)
-vec 剛才在createsample.exe產生的vec的路徑
-bg 非人臉資料夾的位置,我們是放在negatives資料夾中的negatives.txt
-mem 記憶體愈大可處理的檔案愈大
-w -h 寬度 高度 請和之前的寬度和高度設同樣大小
按下Enter鍵,就會產生轉換資訊,圖檔愈多,轉換時間愈久,不要懷疑是不是當了
以我P4雙核3.0G都要跑快半小時了吧
萬一negative的圖要是和positives中的圖差不多多,那應該要很久
接著
可看見data資料夾中產了一個data資料夾及一個data.xml及一個在createsample時產生的positives.vec檔
xml就是拿來做人臉的分類器。
注意~~!!!這篇文章是在教如何製作xml檔,不負責教如何拿這個xml檔做人臉辨識
如果想要範例程式的話,可以去這個網站抓
我修改了一下後
在網路上找了9張圖片(好吧~~~其中有兩張是我私心合成的)
結果呈現如下(挑過結果算好一點的):
最後要提醒大家
這是為初學者而寫的
其中在createsamples和haartraining時會有許多參數可以校調
目前是用了最簡單的設定,所以想更進一步使這個分類更準確,請參閱以下文件自行學習校調:
以上............................................................
留言列表