sphereFace人臉識別之caffe配置訓練
本教程是在windows微軟版caffe環境配置好基礎上新增sphereFace的新層MarginInnerProduct的示例,其他新層也可參考這樣做。作者開放的整個人臉識別原始碼在https://github.com/wy1iu/sphereface。另外caffe的微軟版本地址為:https://github.com/Microsoft/caffe。圖1所示的是作者提供訓練的網路結構檔案prototxt。
圖1 訓練的網路結構
一、檔案改寫
在github上下載作者的整個code,解壓。找到tools資料夾下的caffe-shpereface版本,其實這個版本跟微軟版本的caffe基本上都一樣,不一樣的地方就是新層方面和一些其他連帶的細節檔案。
1、原始碼拷貝:在tools資料夾下找到"caffe-shpereface/src/caffe/include/caffe/layers”下的margin_inner_product_layer.cpp、margin_inner_product_layer.cu拷貝到C:\caffe\caffe-master\src\caffe\layers目錄下(這個是我的微軟版caffe原始碼目錄),其中“.cu”的是用於GPU的cuda原始碼,沒GPU的電腦可以不拷貝。另外依賴的原始碼math_functions.cpp、math_functions.cu也要拷貝到相應目錄,這個數學計算的檔案一般在src/caffe/util目錄下,也可搜尋檔案位置。
2、標頭檔案拷貝:在tools下找到"caffe-sphereface/include/caffe/layers "下的margin_inner_product_layer.hpp 拷貝到C:\caffe\caffe-master\include\caffe\layers目錄下。另外依賴的標頭檔案math_functions.hpp,mkl_alternate.hpp也需要類似拷貝到相應目錄,可以搜尋位置。
3、caffe.proto改寫:在tools下找到" caffe-sphereface\src\caffe\proto " 目錄下"caffe.proto"檔案,用notepad++或者記事本開啟,這個檔案對很重要,其定義了caffe所有支援層的引數,型別,名字,ID等。
要改寫的地方在message LayerParameter {
...
...
}
和最下面的message MarginInnerProductParameter{
...
...
}
在微軟版的caffe類似目錄下(我的目錄C:\caffe\caffe-master\src\caffe\proto)找到"caffe.proto"檔案開啟,這2個檔案大致上一樣,其實上有很多不一樣的地方,如果“圖方便”直接把caffe.proto替換掉微軟的會有錯誤,踩坑不少,後面編譯會有莫名其妙的錯誤。開啟後找到如圖2所示的位置,看箭頭指的下一個適合的指定層ID是多少,然後在下面適合位置根據第一個開啟的caffe.proto新層引數往第二個裡面新增引數,如圖3綠色那一行新增的所示。
圖2 層的引數資訊
圖3 引數ID指定
然後在檔案最後添上一些新層的引數ID說明,也是根據第一個新增,如圖4灰色部分所示。
圖4 最後新增的部分
二、編譯原始碼
由於第一步添加了新層,故需要重新編譯caffe那一項即可,其他15個專案(如果以前沒有新增的話)可以不需要重新編譯,編譯時間較長。
1,在VS2013中開啟微軟版caffe專案,在libcaffe專案裡面新增新的原始碼包含進來,如圖5所示。
圖5 包含新層的原始碼
編譯caffe專案,滑鼠右鍵caffe,選擇重新生成,等待編譯完成,這時候如果報錯,看錯誤原因,是在哪個cpp檔案或者標頭檔案的問題,然後再對照微軟版的caffe找問題。若成功,則可以看到編譯後的caffe.exe比原來要大點,我的是3.44M的樣子。
圖6 編譯後的caffe.exe
這時,就可以像圖7下面那樣使用新的Layer了。
圖7 新的layer
三、訓練
按照sphereface提供的網路結構,準備好自己的資料,可以訓練自己的模型了。圖8spherefaceNet-20訓練
相關推薦
sphereFace人臉識別之caffe配置訓練
本教程是在windows微軟版caffe環境配置好基礎上新增sphereFace的新層MarginInnerProduct的示例,其他新層也可參考這樣做。作者開放的整個人臉識別原始碼在https://github.com/wy1iu/sphereface。另外ca
OpenCV實踐之路——人臉識別之二模型訓練
本文由@星沉閣冰不語出品,轉載請註明作者和出處。在之前的部落格人臉識別之一資料收集和預處理之中,已經下載了ORL人臉資料庫,並且為了識別自己的人臉寫了一個拍照程式自拍。之後對拍的照片進行人臉識別和提取,最後我們得到了一個包含自己的人臉照片的資料夾s41。在部落格的最後我們提到
人臉識別之人臉檢測(二)--人臉識別樣本製作及訓練測試
閒得沒事,折騰下opencv 人臉識別,從樣本製作到評估。 1.直接copy opencv裡的原始碼,建立工程,新增opencv庫,可以直接cmake原始碼,但我之所以自己建立工程,是想多學習,並且降低與原始碼框架的耦合度。 這裡如果出現_imp__CreateToo
人臉識別之SphereFace
2017的一篇cvpr,SphereFace: Deep Hypersphere Embedding for Face Recognition,繼centerloss之後又一大作。 文章主要提出了歸一化權值(normalize weights and zero biases
人臉識別之表情識別(五)--MBP+CNN
轉自:https://blog.csdn.net/app_12062011/article/details/80482048 EmotiW 2015 LBP特徵輸入到CNN模型中,並經過特殊對映,得到高於基線15%的效能提升。 作者採用了: 4個cnn模型VGG S,VGG M-2
人臉識別之人臉對齊(九)--SDM演算法
轉自:http://blog.csdn.net/huneng1991/article/details/51901912 http://blog.csdn.net/qq_14845119/article/details/53520847 略刪改。 SDM(Supervis
人臉識別之人臉對齊(八)--LBF演算法
整體來看,其實 ,ESR是基礎版本的形狀迴歸,ERT將回歸樹修改為GBDT,由原始的直接回歸形狀,改進為迴歸形狀殘差,而LBF,是加速特徵提取,由原來的畫素差分特徵池,改為隨機選擇點。 轉自:http://blog.csdn.net/qq_14845119/article/de
人臉識別之人臉對齊(七)--JDA演算法
其實,這裡JDA之前在人臉檢測中解釋過,這裡再轉一篇的目的在於,此文更貼近論文,同時,JDA本來包含人臉檢測和人臉對齊,作為一個整體訓練和測試的。 轉自:http://blog.csdn.net/shixiangyun2/article/details/50809078 第一節: &nb
人臉識別之人臉對齊(六)--ERT演算法
1.概述 文章名稱:One Millisecond Face Alignment with an Ensemble of Regression Trees 文章來源:2014CVPR 文章作者:Vahid Kazemi ,Josephine Sullivan 簡要介紹:One Milliseco
人臉識別之人臉對齊(五)--ESR演算法
轉自:https://blog.csdn.net/app_12062011/article/details/52573024 原文:http://www.thinkface.cn/thread-2911-1-2.html 原文翻譯我看的好蛋疼,完全機器翻譯。甚至懷疑作者是否有通讀過一次
人臉識別之人臉對齊(四)--CLM演算法及概率圖模型改進
原文: http://blog.csdn.net/marvin521/article/details/11489453 04、概率圖模型應用例項 最近一篇文章《Deform
人臉識別之人臉對齊(三)--AAM演算法原文: http://blog.csdn.net/colourfulcloud/article/details/9774017 AAM(Active Appear
原文: http://blog.csdn.net/colourfulcloud/article/details/9774017 AAM(Active Appearance Model)主動外觀模型主要分為兩個階段,模型建立階段和模型匹配階段。其中模型建立階段包括了對訓練樣本分別建立形狀模型(
百度Aip人臉識別之python程式碼
用python來做人臉識別程式碼量少 思路清晰, 在使用之前我們需要在我們的配置的編譯器中通過pip install baidu-aip 即可 from aip import AipFace 就可以開始使用api了 我們第一
CV之FC:人臉識別之判斷相似度極高的國內外明星根據人工智慧演算法(AP雲)預測判別是否為同一個人
CV之FC:人臉識別之判斷相似度極高的國內外明星根據人工智慧演算法(AP雲)預測判別是否為同一個人 根據美國人口調查局的估計,截至到2013年1月4日,全世界有70.57億人。美國人口調查局的資料顯示全球人口在2012年3月12日突破70億;而聯合國人
人臉識別之face_recognition:(三)face_recognition在樹莓派上的提速
在前面說過,樹莓派上使用face_recognition是十分慢的,這裡講解一下作者自己的提速方法: face_recognition在不同機器上識別時間對比 可能是因為我在樹莓派上使用了多執行緒,opencv等原因樹莓派上識別時間比較久,後來關閉了多執行緒識別
基於opencv2.0的haar演算法以人臉識別為例的訓練分類器xml的方法
基於opencv2.0的haar演算法以人臉識別為例的訓練分類器xml的方法 基於opencv2.0的演算法 第一步 採集樣本 1、 將正負樣本分別放在兩個不同的資料夾下
Keras搭建CNN進行人臉識別系列(二)--配置,獲取實時視訊流
1.準備工作 1)首先需要準備一個USB攝像頭,能夠支援Ubuntu之類的linux作業系統; 2)PC機上安裝好Ubuntu14以上64位版本(儘量雙系統不要虛擬機器,不然模型訓練速度會慢得像蝸牛),可以安裝win7/win10,但我沒有試過在64位win系統上安裝te
opencv 人臉識別 (一)訓練樣本的處理
本文實現基於eigenface的人臉檢測與識別。給定一個影象資料庫,進行以下步驟:進行人臉檢測,將檢測出的人臉存入資料庫2對資料庫2進行人臉建模在測試集上進行recognition本篇實現第一步:進行人臉檢測,將檢測出的人臉存入資料庫2環境:vs2010+opencv 2.4
人臉識別之人臉檢測(三)--Haar特徵原理及實現
本文主要由於OpenCV的haartraining程式,對haar特徵的補充及程式碼註釋。 Haar特徵的原理是什麼? Haar特徵分為三類:邊緣特徵、線性特徵、中心特徵和對角線特徵,組合成特徵模板。特徵模板內有白色和黑色兩種矩形,並定義該模板的特徵值為白色矩形畫
人臉識別之人臉識別技術綜述
1 人臉識別技術概述 近年來,隨著計算機技術的迅速發展,人臉自動識別技術得到廣泛研究與開發,人臉識別成為近30年裡模式識別和影象處理中最熱門的研究主題之一。人臉識別的目的是從人臉影象中抽取人的個性化特徵,並以此來識別人的身份。一個簡單的自動人臉識別系統,包括以下4個方