人臉識別服務需要包括以下幾個功能模組:
1、人臉檢測和人臉校正模組
2、人臉特徵提取模組
3、人臉特徵匹配模組
4、人臉識別結果計算模組
人臉特徵提取:人臉特徵提取的目的就是將人臉影象進行向量化表示,因為程式**是沒辦法直接處理影象資料的,必須要將其數位化,提到向量就自然而然的會想到向量空間,以及向量的空間距離。這也是人臉特徵提取鎖關心的東西,人臉特徵提取方法就是要找到乙個高維向量空間,在這個向量空間中,屬於同一身份的不同人臉影象在高維向量空間中分布緊密(即向量的空間距離小),屬於不同身份的人臉影象在高維向量空間中分布較遠(即向量的空間距離大)。
輸入:人臉檢測並校正後的人臉影象
輸出:人臉特徵向量(如512維的特徵向量)
目前公開的主流人臉特徵提取方法主要有facenet和arcface。下面簡要介紹一下人臉特徵提取方法:
遵循的原則:人臉特徵提取方法堅信,在特徵空間中屬於同一身份的人臉影象相近,屬於不同身份的人臉影象較遠,這是我們堅定的信仰,也符合認知常識。近些年的所有人臉特徵提取方法都是在這個原則框架下工作,企圖通過設計各種網路模型,來尋找滿足上述原則的方法。
努力的方向:通過上面的描述可以,想提高提取的人臉特徵質量,有兩個努力的方向。其一是努力降低屬於同一身份人臉影象之間的空間距離,也就是讓類內距更小;其二就是增大屬於不同身份人臉影象之間的空間距離,也就是讓類間距更大。
上述原則和方向在facenet演算法中也體現的相當清楚:
anchor和positive屬於同一身份的人臉,anchor和negative屬於不同身份的人臉影象,經過learning學習,使得anchor與positive的距離較近,anchor與negative的距離較遠。對映到下面的公式上就是說anchor和positive之間的距離加上乙個正數
順便說一句:人臉特徵提取方法進行的是相似度學習,所謂的相似度學習就是說網路模型學習的並不是只識別訓練集中涉及到的人物身份,而是學習到了屬於同一身份的人臉影象應該具備更小的空間距離,屬於不同身份的人臉影象應該具備更大的空間距離這一潛在規則。也就是說一旦模型學習到了這個規則,理論上就可以自然而然的擴充套件泛化到無限大的人臉影象上去。這一點與影象分類方法等只能**訓練集中的結果不同,可以做到一次訓練,到處使用。
下面簡要介紹一下arcface人臉特徵提取方法:
有了上面的原則框架和努力方向,聰明的科研人員發明了各種各樣的方法來提公升人臉特徵提取的質量,其中的乙個主流研究方向就是通過精心設計網路模型的損失函式,強制網路模型學習的引數來滿足上述原則框架和努力方向。在arcface方法中的模型如下所示:
與facenet中增加
[0,π
]區間內單調遞減的特性,通過額外加上乙個非負的
?m引數,使得
cos(?1
+?)取得更小的值,也就是說額外的加上乙個m還要使得不等式滿足條件,那也就只能減少
這些年的人臉特徵提取模型主要在損失函式上做文章,通過增加更強的約束條件,來迫使網路模型學習到更加滿足上述提到的原則和努力方向的特徵。近些年的一些模型損失函式如下:
上圖的l1就是softmax loss,這個很常見,其他幾個都在在cos余弦函式上做文章,l3、l6、l7在不同的位置引入m,來獲取到更小的
站點搭建從零開始(二)server空間
前面介紹了網域名稱相關知識。這裡介紹server,也經常被叫做空間。也就是站點資料實際儲存的地方。依據國家相關規定,國內server空間須要進行備案。也就是到相關的機構進行登記。詳細方法能夠網上找。網域名稱也有備案一說。國內網域名稱不備案可能會被禁用。國外的網域名稱和server。一般就不須要備案了...
hadoop環境搭建 從零開始
對hadoop的認識只停留在是mapreduce的一種實現工具,大資料,分布式等抽象層面,完全沒有具象了解。搭建環境,完全從零開始,走了挺多彎路。總結之。0.目前較為普遍的起步方式是在虛擬機器上模擬多台搭建hadoop。初始時為調查找問,魯莽從cygwin下手,結果被缺失的linux知識打敗,浪費很...
jQuery從零開始 二
1.css類的操作 addclass 向被選元素新增乙個或者多個類 removeclass 刪除被選元素的類 toggleclass 取反 css 獲取或者設定被選元素的css樣式 使用這個方法的時候不需要使用小駝峰,當通過這個方法設定樣式的時候,可以通過傳入乙個物件的形式來設定css樣式 widt...