.詳解什麼才是車牌辨識算法!

Vehicle License Plate Recognition

任何顏色車牌——都拍攝的清清楚楚!

SwEn-丁

車牌辨識是以圖像分割和圖像辨識理論,對含有車牌辨識車輛號牌的圖像,進行分析處理,從而確定牌照在圖像中的位置,並進一步提取和辨識出文本字符。

車牌辨識過程包括圖像採集、預處理、車牌定位、字符分割、字符辨識、結果輸出等一系列算法運算,其運行流程如下圖所示:





1.圖像採集
根據車輛檢測方式的不同,圖像採集一般分為兩種,一種是靜態模式下的圖像採集,透過車輛觸發地感線圈、紅外線或雷達等裝置,給攝影機一個觸發信號,攝影機在接收到觸發信號後,會拍攝一張圖像,該方法的優點是觸發率高,性能穩定,缺點是需要切割地面鋪設線圈,施工量大;

另一種是影像模式下的圖像採集,外部不需要任何觸發信號,攝影機會即時地記錄影像流圖像,該方法的優點是施工方便,不需要切割地面鋪設線圈,也不需要安裝車檢器等零組件,但其缺點也十分顯著,由於算法的極限,該方案的觸發率與辨識率較之外設觸發都要低一些。

2.預處理
由於圖像品質容易受光照、天氣、攝影機位置等因素的影響,所以在辨識車牌之前,需要先對攝影機和圖像做一些預處理,以保證得到車牌最清晰的圖像。

一般會根據對現場環境,和已經拍攝到的圖像的分析得出結論,實現攝影機的自動曝光處理、自動白平衡處理、自動逆光處理、自動過爆處理等,並對圖像進行噪聲過濾、對比度增強、圖像縮放等處理。

去噪方法有均值濾波、中值濾波和高斯濾波等;增強對比度的方法有對比度線性拉伸、直方圖均衡和同態濾波器等;圖像縮放的主要方法有最近鄰插值法、雙線性插值法和立方卷積插值等。

逆光圖像


過曝圖像





有噪聲圖像



  
3.車牌定位
從整個圖像中準確地檢測出車牌區域,是車牌辨識過程的一個重要步驟,如果定位失敗或定位不完整,會直接導致最終辨識失敗。車牌定位方法一般會依據紋理特徵、顏色特徵和形狀特徵等資訊,採用投影分析、連通場域分析、機器學習等算法檢測車牌。

投影分析方法根據車牌字符與背景,交替出現的次數,相比於其他情況要多這個特徵,透過圖像在水平和垂直方向的投影分析,來定位車牌。連通場域分析根據車牌中的每個字符,都是一個連通場域,且這些連通場域的結構和顏色都一致的特徵,透過檢測並合併這些連通場域來定位車牌;

機器學習的思路是,先使用從很多個車牌樣本中,提取出來的特徵,把一個弱分類器訓練成一個強分類器,再使用這個強分類器,對圖像進行掃描檢測,從而定位到車牌。由於複雜的圖像背景,且要考慮不清晰車牌的定位,所以很容易把柵欄,廣告牌等噪聲當成車牌,所以如何排除這些偽車牌,也是車牌定位的一個難點。為了提高定位的準確率和提高辨識速度,一般的車牌辨識系統,都會設計一個外部接口,讓用戶自己根據現場環境,設置不同的辨識區域。

基於連通場域分析的車牌定位方法流程圖







  
4.車牌校正
由於受拍攝角度、鏡頭等因素的影響,圖像中的車牌存在水平傾斜、垂直傾斜,或梯形畸變等變形,這給後續的辨識處理帶來了困難。如果在定位到車牌後,先進行車牌校正處理,這樣做有利於去除車牌邊框等噪聲,更有利於字符辨識。

目前常用校正方法有:Hough 變換法,透過檢測車牌上下、左右邊框直線來計算傾斜角度;

旋轉投影法,透過按不同角度,將圖像在水平軸上進行垂直投影,其投影值為 0 的點數之和最大時的角度即為垂直傾斜角度,水平角度的計算方法與其相似;

主成分分析法,根據車牌背景與字符交界處的顏色,具有固定搭配這一特徵、求出顏色對特徵點的主成分方向,即為車牌的水平傾斜角度;

方差最小法,根據字符在垂直方向投影點的座標方差最小,導出垂直傾斜角的閉合表達式,從而確定垂直傾斜角度;透視變換,利用檢測到的車牌的四個頂點,經過相關矩陣變換後,實現車牌的畸變校正。

水平和垂直傾斜







梯形畸變







5.字符分割
定位出車牌區域後,由於並不知道車牌中總共有幾個字符、字符間的位置關係、每個字符的寬高等資訊,所以,為了保證車牌類型匹配和字符辨識正確,字符分割是必不可少的一步。

字符分割的主要思路是,基於車牌的二值化結果或邊緣提取結果,利用字符的結構特徵、字符間的相似性、字符間間隔等資訊,一方面把單個字符分別提取出來,也包括粘連和斷裂字符等特殊情況的處理;

另一方面把寬、高相似的字符歸為一類從而去除車牌邊框以及一些小的噪聲。一般採用的算法有:連通區域分析、投影分析,字符聚類和模板匹配等。污損車牌和光照不均,造成的模糊車牌,仍是字符分割算法所面對的挑戰,有待更好的算法出現,並解決以上問題。







6.字符辨識
對分割後的字符的灰度圖像,進行歸一化處理,特徵提取,然後經過機器學習,或與字符數據庫模板進行匹配,最後選取匹配度最高的結果,作為辨識結果。目前比較流行的字符辨識算法有:模板匹配法、人工神經網路法、支持向量機法,和 Adaboost 分類法等。

模板匹配法的優點,是辨識速度快、方法簡單,缺點是對斷裂、污損等情況的處理有一些困難;人工神經網路法學習能力強、適應性強、分類能力強但比較耗時;

支持向量機法對於未見過的測試樣本,具有更好的辨識能力,且需要較少的訓練樣本;Adaboost 分類法能側重於比較重要的訓練數據,辨識速度快、即時性較高。

台灣車牌由英文字母和阿拉伯數字兩種字符組成,且具有統一的樣式,這也是辨識過程的方便之處。

但由於車牌很容易受外在環境的影響,出現模糊、斷裂、污損字符的情況,如何提高這類字符和易混淆字符的辨識率,也是字符辨識的難點之一。易混淆字符包括:0與D、0與Q、2與Z、8與B、5與S、6與G、4與 A 等。

污損車牌







7.車牌結果輸出
將車牌辨識結果以文本格式輸出,包括車牌號,車牌顏色,車牌類型等。

車牌輸出結果



.物聯網創新之下的邊緣運算

Internet-of-Things (IoT): 
Edge Computing Implementation

任何顏色車牌——都拍攝的清清楚楚!
來源: 企业网


物联网创新之下的边缘计算




邊緣的發展一向引人注目,但不是所有事情,都能達到意想之中的繁榮。

我們都非常自然的,將雲端運算邊緣運算,看做相互競爭的存在。作為IT的核心,兩種技術都先後取得了最高的地位,並且根據企業的優先事項和能力,被定位為一個明智的選擇。然而,這個「不是/或」的難題,是一個值得被詳解的神話;他們是完全不同的概念。

邊緣 —— 讓運算和智慧更加接近數據源的物理空間,成為雲中斷開元素的傳遞機制。因此,他們可以協同工作,而不是作為替代品。慢慢形成一種有效的混合方式,將邊緣的靈活性與中央雲的高效處理能力相結合。

這就是為什麼這兩種環境,都是為新一代開發人員部署的選項,可以創建更智慧,事件驅動的微服務,從而實現更快,更靈活的應用程式開發。

雖然預測到由於連接成本將會降低,中央雲中智慧定位系統,則會為企業首選的標準,但這些預測並沒有實現。相反,我們看到了由 IoT 創建的數據逐漸向邊緣遷移的過程,以及增強的連接和功能的自然發展。

的確,網路邊緣的智慧不僅更容易獲取,而且還能即實時捕獲,讓其發展在純粹的形式和最新鮮的狀態中。這些都使得它成為最有價值的資訊,是即時和準確的操作決策。

改變的好處在於:直接在設備上運算,多個設備返回到一個中央核心網路,所引起的瓶頸將被交付給過去。此外,安全風險被降至最低,因為在數據傳輸過程中被消耗,容易受到攻擊。當分析添加到混合時,事情就會變得更加有趣,因為數據的子集與分析本地化,可以讓決策更具說服力。

儘管邊緣的這種優勢一直是引人注目的,但並不是所有的東西,都能在傳統背景下蓬勃發展。就像今天的機器學習算法,包括他們對於大量數據,和運算能力的需求,長期以來都是依賴雲,來完成繁重的工作。

然而,隨著人工智慧成為更加主流的顯示,從智慧汽車到數為私人助理,外界在迅速改變。現在大家的焦點,開始轉向如何能更好的在網路外圍設備,更接近行動電話、電腦,和利用該技術,應用運行其他設備空間進行交付。

我們已經看到了智慧家庭領域的優勢。在這裡,網路邊緣的深度學習功能,可以透過整合和互動,物聯網數位工具的細微差別,和直接反應來洞察,從而隨著情況的變化,而提供洞察力。然後,他們可以將即時上下文資訊反饋給房子主人,或者如果入侵者出現,則將反饋給專業監控資源。

這只是一個開始,將機器學習功能帶入設備邊緣,無需連接要求,並簡化了長期的 IoT 整合挑戰,對於消費領域之外的眾多行業,和應用產生更廣泛的影響。

能夠以毫秒為單位響應時間的解決方案,代表了這一梁宇最前沿的創新技術,從而為工業環境等不同領域,如醫療領域創造更大價值。

在這裡,最容易獲取的即時資訊,將會推動醫療設備的智慧診斷功能,並中機器學習來進行各種預測,例如最易患上醫院感染,或最有可能在出院後重新接種的患者。在這個階段,我們並不知道 AI 在這個環境中的全部潛力。

然而,未來醫療機構可以為患者提供,從人工智慧軟體程式,接收在線上醫療建議的選項即將出現,並有望從速度和效率、患者護理和成本節約等方面進行改進。

同樣,工業環境正在取得進展,數據必須在現場無數感測器,設備,資產和機器之間流動,通常在結構化或具有挑戰性和偏遠條件下進行。

在邊緣設備上檢測異常情況,提供了預測性監控和關鍵人物決策所需的靈活性,從而可以節省數百萬美元,在設備損壞之前解決設備故障問題。

非常重要的是,簡化微服務和物聯網應用開發,和部署的開源項目,將成為這一創新的基石。透過為更智慧的邊緣,和更容易獲得物聯網開發的時代,實現自主設備操作,潛力無限。



.網路安全和物聯網:生物辨識技術的時代到了

Internet of Things (IoT) & Biometrics 


工業物聯網

康橋科技 —— 白光攝影機專業廠商!

要讓連網設備代表您採取行動,無論是當您的智慧冰箱重新訂購牛奶時付款,還是允許或拒絕,孩子下載或觀看特定節目的智慧電視,都必須有一個認證過程。

網路安全和物聯網:生物辨識技術的時代到了

  
物聯網(IoT)正在快速發展,連網設備和白色家電,正以前所未有的速度,進入我們的家庭和工作場所。

現在,由於WiFi的出現,我們曾經認為是白色家電的東西,正變得越來越互聯和「聰明」。現在可以訂購比薩、給冰箱填充食物,並下載電影觀看,所有這些都可以在十分鐘內完成,而且還不用離開舒適慵懶的沙發——利用物聯網技術,幸福吧!
  
毫無疑問,物聯網讓生活變得更簡單,無需再去商店或與他人爭奪僅有的停車位,或者拎著滿滿的購物袋在大街上蹣跚。
  
物聯網讓我們每天都可以,將重要又普通的事務,委託給連網設備,讓我們可以自由地專注生活中,更複雜和更有趣的事情。如果您的冰箱可以自動購牛奶(如果它還沒有,您很有可能需要在適當的時候,擁有一台智慧冰箱),那麼在忙碌的現代生活中,或下班回家路上,您就可以少考慮家庭瑣事。
  
然而,就像大多數好消息一樣,物聯網也有一些注意事項,其中最主要的是網路安全問題。
  
誰向您的賬戶收費?
要讓連網設備代表您採取行動,無論是當您的智慧冰箱重新訂購牛奶時付款,還是允許或拒絕孩子,下載或觀看特定節目的智慧電視,都必須有一個認證過程。換句話說,設備或提供商,必須確保提出請求的人是正確的,就像傳統上,使用銀行信用卡時一樣。
  
您的智慧冰箱必須確保是,您剛剛訂購了香檳和魚子醬,並要求將費用記在您的賬戶/卡上,而不是您家的小孩、清潔工,或者侵入您冰箱進行詐欺交易的人。
  
我們也不要忘記,您的製造商或服務提供商,必須確保這是一台真正的冰箱,並且它屬於您,這樣它才能知道,它正在和正確的電器通信。畢竟,製造商需要能夠認證,它是正確的冰箱,接收來自正確的人的請求,以及認證付款。
  
作為一個習慣於認證交易的社會,它每天都在發生。通常,這個過程涉及一個 PIN 碼或者密碼——例如,當我們在商店中使用信用卡,或查看我們銀行卡餘額時。

問題是,我們知道這些身份驗證方法,已不再適用,例如,犯罪分子可能很容易猜測到,或發現 PIN 碼,而密碼也經常被洩露。
  
事實上,不斷重複的建議是,密碼必須是獨特的、複雜的。舉一個例子,說明瞭為什麼這種身份驗證,方法已經過時:如果預測正確,到 2020 年,將有超過 200 億台設備連接到物聯網,並且很大一部分設備將與支付直接相關。

這將為網路罪犯分子,提供了多達 200 億的機會,尤其是當這些設備依賴於過時的身份驗證協議時。
  
答案就在您的指尖
為了保護我們珍惜的東西,我們需要更高級別的認證,這對我們來說完全是跟個人有關的,不可能複製的。生物識別技術就是物聯網的答案。
  
智慧產品製造商,必須將指紋感測器嵌入連網設備中,這樣認證就可以在現場進行,而不用將資訊發送到網絡空間。
  
用於身份驗證的本地儲存的生物辨識數據,實際上不可能被犯罪分子入侵或攔截,並且任何人都無法親自複製。唯一能夠認證涉及生物辨識的行為、許可或交易的人,一定是其指紋作為記錄保存在設備上的人。
  
生物辨識身份驗證,將消除人們目前對設備丟失或被盜,甚至被出售的擔憂。使用生物辨識技術進行身份驗證,將為用戶提供真正個性化,且安全的物聯網體驗。
  
畢竟,如果有人要從家裡的智慧冰箱,訂購幾瓶香檳和一公斤魚子醬,難道您不想確定那個人就是您嗎

.人臉辨識技術全面總結:從傳統方法到深度學習

Python Face Recognition Tutorial 
w/ Code Download




机器之心 

英國赫特福德大學與 GBG Plc 的研究者,近日發佈了一篇綜述論文,對人臉辨識方法,進行了全面的梳理和總結,其中涵蓋各種傳統方法,和如今風頭正盛的深度學習方法。機器之心重點編譯介紹了其中的深度學習方法部分,更多有關傳統人臉辨識方法的內容,請參閱原論文。
自七十年代以來,人臉辨識已經成為了電腦視覺和生物辨識領域,被研究最多的主題之一。基於人工設計的特徵,和傳統機器學習技術的傳統方法,近來已被使用非常大型的數據集訓練的深度神經網路取代。

在這篇論文中,我們對流行的人臉辨識方法,進行了全面且最新的文獻總結,其中既包括傳統方法(基於幾何的方法、整體方法、基於特徵的方法和混合方法),也有深度學習方法

引言
人臉辨識是指能夠辨識或驗證圖像,或影像中的主體的身份的技術。首個人臉辨識算法誕生於七十年代初 [1,2]。自那以後,它們的準確度已經大幅提升,現在相比於指紋或虹膜辨識 [3] 等傳統上被認為更加穩健的生物辨識方法,人們往往更偏愛人臉辨識。

讓人臉辨識比其它生物辨識方法,更受歡迎的一大不同之處,是人臉辨識本質上是非侵入性的。比如,指紋辨識需要使用者將手指按在感測器上,虹膜辨識需要使用者與攝影機靠得很近,語音辨識則需要使用者大聲說話。

相對而言,現代人臉辨識系統僅需要使用者,處於攝影機的視野內(假設他們與攝影機的距離也合理)。這使得人臉辨識成為了,對使用者最友好的生物辨識方法。這也意味著人臉辨識的潛在應用範圍更廣,因為它也可被部署在,使用者不期望與系統合作的環境中,比如監控系統中。

人臉辨識的其它常見應用,還包括門禁管理、詐欺檢測、身份認證和社交媒體

當被部署在無約束條件的環境中時,由於人臉圖像在現實世界中的呈現,具有高度的可變性(這類人臉圖像通常被稱為自然人臉(faces in-the-wild)),所以人臉辨識也是最有挑戰性的生物辨識方法之一。

人臉圖像可變的地方包括頭部姿勢、年齡、遮擋、光照條件和人臉表情。圖 1 給出了這些情況的示例。



1:在自然人臉圖像中找到的典型變化。(a)頭部姿勢,(b)年齡,(c)光照,(d)臉部表情,(e)遮擋。

人臉辨識技術,這些年已經發生了重大的變化。傳統方法依賴於人工設計的特徵(比如邊和紋理描述量)與機器學習技術(比如主成分分析、線性判別分析或支持向量機)的組合。

人工設計在無約束環境中,對不同變化情況穩健的特徵是很困難的,這使得過去的研究者,側重研究針對每種變化類型的專用方法,比如能應對不同年齡的方法 [4,5]、能應對不同姿勢的方法 [6]、能應對不同光照條件的方法 [7,8] 等。

近段時間,傳統的人臉識別方法已經被基於卷積神經網絡(CNN)的深度學習方法接替。深度學習方法的主要優勢是它們可用非常大型的數據集進行訓練,從而學習到表徵這些數據的最佳特徵。

網路上可用的大量自然人臉圖像,已讓研究者可收集到大規模的人臉數據集 [9-15],這些圖像包含了真實世界中的各種變化情況。使用這些數據集訓練,基於 CNN 的人臉辨識方法,已經實現了非常高的準確度,因為它們能夠學到人臉圖像中穩健的特徵,從而能夠應對在訓練過程中,使用的人臉圖像所呈現出的真實世界變化情況。

此外,深度學習方法在電腦視覺方面的不斷普及,也在加速人臉識別研究的發展,因為 CNN 也正被用於解決許多其它電腦視覺任務,比如目標檢測和辨識、分割、光學字符辨識、臉部表情分析、年齡估計等。

人臉辨識系統,通常由以下建構模組組成:
  • 人臉檢測。人臉檢測器用於尋找圖像中人臉的位置,如果有人臉,就返回包含每張人臉的邊界框的座標。如圖 3a 所示。
  • 人臉對齊。人臉對齊的目標,是使用一組位於圖像中,固定位置的參考點,來縮放和裁剪人臉圖像。這個過程通常需要使用一個特徵點檢測器,來尋找一組人臉特徵點,在簡單的 2D 對齊情況中,即為尋找最適合參考點的最佳仿射變換。圖 3b 和 3c 展示了兩張使用了同一組參考點對齊後的人臉圖像。更複雜的 3D 對齊算法(如 [16])還能實現人臉正面化,即將人臉的姿勢調整到正面向前。
  • 人臉表徵。在人臉表徵階段,人臉圖像的像素值,會被轉換成緊湊且可判別的特徵向量,這也被稱為模板(template)。理想情況下,同一個主體的所有人臉都應該映射到相似的特徵向量。
  • 人臉匹配。在人臉匹配建構模組中,兩個模板會進行比較,從而得到一個相似度分數,該分數給出了兩者屬於同一個主體的可能性。


2:人臉辨識的構建模塊。

很多人認為人臉表徵,是人臉辨識系統中最重要的組件,這也是本論文第二節所關注的重點。


3:(a)人臉檢測器找到的邊界框。(b)和(c):對齊後的人臉和參考點。

深度學習方法
卷積神經網路(CNN),是人臉辨識方面最常用的一類深度學習方法。深度學習方法的主要優勢,是可用大量數據來訓練,從而學到對訓練數據中,出現的變化情況,穩健的人臉表徵。這種方法不需要設計對不同類型的類內差異(比如光照、姿勢、臉部表情、年齡等)穩健的特定特徵,而是可以從訓練數據中學到它們。

深度學習方法的主要缺點,是它們需要使用非常大的數據集來訓練,而且這些數據集中,需要包含足夠的變化,從而可以泛化到未曾見過的樣本上。

幸運的是,一些包含自然人臉圖像的大規模人臉數據集已被公開 [9-15],可被用來訓練 CNN 模型。除了學習判別特徵,神經網路還可以降維,並可被訓練成分類器,或使用度量學習方法。CNN 被認為是端到端可訓練的系統,無需與任何其它特定方法結合。

用於人臉辨識的 CNN 模型,可以使用不同的方法來訓練。其中之一是,將該問題當作是一個分類問題,訓練集中的每個主體都對應一個類別。訓練完之後,可以透過去除分類層,並將之前層的特徵用作人臉表徵,而將該模型用於辨識不存在於訓練集中的主體 [99]。

在深度學習文獻中,這些特徵通常被稱為瓶頸特徵(bottleneck features)。在這第一個訓練階段之後,該模型可以使用其它技術來進一步訓練,以為目標應用優化瓶頸特徵(比如使用聯合貝葉斯 [9] ,或使用一個不同的損失函數,來微調該 CNN 模型 [10])。

另一種學習人臉表徵的常用方法,是透過優化配對的人臉 [100,101] 或人臉三元組 [102] 之間的距離度量,來直接學習瓶頸特徵。

使用神經網路來做人臉辨識,並不是什麼新思想。1997 年就有研究者為人臉檢測、眼部定位和人臉辨識提出了一種名為「基於概率決策的神經網路(PBDNN)」[103] 的早期方法。

這種人臉辨識 PDBNN ,被分成了每一個訓練主體,一個全連接子網路,以降低隱藏單元的數量和避免過擬合。研究者使用密度和邊特徵,分別訓練了兩個 PBDNN,然後將它們的輸出組合起來,得到最終分類決定。

另一種早期方法 [104] 則組合,使用了自組織映射(SOM)和卷積神經網路。自組織映射 [105] 是一類以無監督方式訓練的神經網路,可將輸入數據映射到更低維的空間,同時也能保留輸入空間的拓撲性質(即在原始空間中,相近的輸入,在輸出空間中也相近)。

注意,這兩種早期方法,都不是以端到端的方式訓練的([103] 中使用了邊特徵,[104] 中使用了 SOM),而且提出的神經網路架構也都很淺。

[100] 中提出了一種端到端的人臉辨識 CNN。這種方法使用了一種孿生式架構,並使用了一個對比損失函數 [106] 來進行訓練。這個對比損失,使用了一種度量學習流程,其目標是最小化對應同一主體的特徵向量對之間的距離,同時最大化對應不同主體的特徵向量對之間的距離。該方法中使用的 CNN 架構也很淺,且訓練數據集也較小。

上面提到的方法,都未能取得突破性的成果,主要原因是使用了能力不足的網路,且訓練時能用的數據集也相對較小。直到這些模型得到擴展,並使用大量數據 [107] 訓練後,用於人臉辨識的首個深度學習方法 [99,9] 才達到了當前最佳水準。

尤其值得一提的是, Facebook 的 DeepFace [99],這是最早的用於人臉辨識的 CNN 方法之一,其使用了一個能力很強的模型,在 LFW 基準上實現了 97.35% 的準確度,將之前最佳表現的錯誤率降低了 27%。

研究者使用 softmax 損失,和一個包含 440 萬張人臉(來自 4030 個主體)的數據集,訓練了一個 CNN。本論文有兩個全新的貢獻:(1)一個基於明確的 3D 人臉建模的高效的人臉對齊系統;(2)一個包含局部連接的層的 CNN 架構 [108,109],這些層不同於常規的卷積層,可以從圖像中的每個區域,學到不同的特徵。

在那同時,Deep ID 系統 [9] 透過在圖塊(patch)上,訓練 60 個不同的 CNN ,而得到了相近的結果,這些圖塊包含十個區域、三種比例,以及 RGB 或灰度通道。在測試階段,會從每個圖塊提取出 160 個瓶頸特徵,加上其水平翻轉後的情況,可形成一個 19200 維的特徵向量(160×2×60)。

類似於 [99],新提出的 CNN 架構,也使用了局部連接的層。其驗證結果,是透過在這種由 CNN 提取出的 19200 維特徵向量上,訓練一個聯合貝葉斯分類器 [48] 得到的。訓練該系統所使用的數據集,包含 202599 張人臉圖像,來自 10177 位名人 [9]。

對於基於 CNN 的人臉辨識方法,影響準確度的因素主要有三個:訓練數據、CNN 架構和損失函數。因為在大多數深度學習應用中,都需要大訓練集來防止過擬合。一般而言,為分類任務訓練的 CNN 的準確度,會隨每類的樣本數量的成長而提升。這是因為當類內差異更多時,CNN 模型能夠學習到更穩健的特徵。

但是,對於人臉辨識,我們感興趣的是提取出,能夠泛化到訓練集中,未曾出現過的主體上的特徵。因此,用於人臉辨識的數據集,還需要包含大量主體,這樣模型也能學習到更多類間差異。[110] 研究了數據集中主體的數量,對人臉辨識準確度的影響。

在這項研究中,首先以降序形式,按照每個主體的圖像數量,對一個大數據集,進行了排序。然後,研究者透過逐漸增大主體數量,而使用訓練數據的不同子集,訓練了一個 CNN。當使用了圖像數量最多的 10000 個主體進行訓練時,得到的準確度是最高的。

增加更多主體會降低準確度,因為每個額外主體可用的圖像非常少。另一項研究 [111] 研究了更寬度的數據集更好,還是更深度的數據集更好(如果一個數據集包含更多主體,則認為它更寬;類似地,如果每個主體包含的圖像更多,則認為它更深)。這項研究總結到:如果圖像數量相等,則更寬的數據集能得到更好的準確度。

研究者認為,這是因為更寬度的數據集,包含更多類間差異,因而能更好地泛化,到未曾見過的主體上。表 1 展示了某些最常用於訓練人臉辨識 CNN 的公開數據集。
1:公開的大規模人臉數據集。


用於人臉辨識的 CNN 架構,從那些在 ImageNet 大規模視覺辨識挑戰賽(ILSVRC)上,表現優異的架構上,取得了很多靈感。舉個例子,[11] 中使用了一個帶有 16 層的 VGG 網路 [112] 版本,[10] 中則使用了一個相似但更小的網路。

[102] 中探索了兩種不同類型的 CNN 架構:VGG 風格的網路 [112] 和 GoogleNet 風格的網路 [113]。即使這兩種網路,實現了相當的準確度,但 Google Net 風格的網路的參數,數量少 20 倍。

更近段時間,殘差網路(ResNet)[114] ,已經成為了很多目標辨識任務,最受偏愛的選擇,其中包括人臉辨識 [115-121]。ResNet 的主要創新點,是引入了一種使用捷徑,連接的建構模組來學習殘差映射,如圖 7 所示。捷徑連接的使用,能讓研究者訓練更深度的架構,因為它們有助於跨層的資訊流動。

[121] 對不同的 CNN 架構,進行了全面的研究。在準確度、速度和模型大小之間的最佳權衡,是使用帶有一個殘差模組(類似於 [122] 中提出的那種)的 100 層 ResNet 得到的。


 7:[114] 中提出的原始的殘差模組
選擇用於訓練 CNN 方法的損失函數,已經成為近來人臉辨識最活躍的研究領域。即使使用 softmax 損失訓練的 CNN 已經非常成功 [99,9,10,123],但也有研究者認為使用這種損失函數,無法很好地泛化到訓練集中,未出現過的主體上。

這是因為 softmax 損失,有助於學習能增大類間差異的特徵(以便在訓練集中區別不同的類),但不一定會降低類內差異。研究者已經提出了,一些能緩解這一問題的方法。優化瓶頸特徵的一種簡單方法,是使用判別式子空間方法,比如聯合貝葉斯 [48],就像 [9,124,125,126,10,127] 中所做的那樣。另一種方法是使用度量學習。

比如,[100,101] 中,使用了配對的對比損失,來作為唯一的監督信號,[124-126] 中還結合使用了分類損失。人臉辨識方面最常用的度量學習方法,是三元組損失函數 [128],最早在 [102] 中被用於人臉辨識任務。三元組損失的目標,是以一定餘量,分開正例對之間的距離,和負例對之間的距離。從數學形式上講,對於每個三元組 i,需要滿足以下條件 [102]:

其中 x_a 是錨圖像,x_p 是同一主體的圖像,x_n 是另一個不同主體的圖像,f 是模型學習到的映射關係,α 施加在正例對和負例對距離之間的餘量。在實踐中,使用三元組損失訓練的 CNN 的收斂速度,比使用 softmax 的慢,這是因為需要大量三元組(或對比損失中的配對),才能覆蓋整個訓練集。

儘管這個問題,可以透過在訓練階段,選擇困難的三元組(即違反餘量條件的三元組)來緩解 [102],但常見的做法,是在第一個訓練階段,使用 softmax 損失訓練,在第二個訓練階段使用三元組損失,來對瓶頸特徵進行調整 [11,129,130]。

研究者們已經提出了,三元組損失的一些變體。比如 [129] 中使用了點積,作為相似度度量,而不是阿基里德距離;[130] 中提出了一種概率式三元組損失;[131,132] 中提出了一種修改版的三元組損失,它也能最小化正例和負例分數,分布的標準差。

用於學習判別特徵的另一種損失函數,是 [133] 中提出的中心損失(centre loss)。中心損失的目標,是最小化瓶頸特徵,與它們對應類別的中心之間的距離。透過使用 softmax 損失和中心損失,進行聯合訓練,結果顯示 CNN 學習到的特徵,能夠有效增大類間差異(softmax 損失),和降低類內個體差異(中心損失)。

相比於對比損失和三元組損失,中心損失的優點,是更高效和更容易實現,因為它不需要在訓練過程中構建配對或三元組。另一種相關的度量學習方法,是 [134] 中提出的範圍損失(range loss),這是為改善使,用不平衡數據集的訓練而提出的。範圍損失有兩個組件。

類內的損失組件,是最小化同一類樣本之間的 k-最大距離,而類間的損失組件,是最大化每個訓練批中,最近的兩個類中心之間的距離。透過使用這些極端案例,範圍損失為每個類,都使用同樣的資訊,而不管每個類別中有多少樣本可用。類似於中心損失,範圍損失需要與 softmax 損失結合起來,以避免損失降至零 [133]。

當結合不同的損失函數時,會出現一個困難,即尋找每一項之間的正確平衡。最近一段時間,已有研究者提出了幾種修改 softmax 損失的方法,這樣它無需與其它損失結,合也能學習判別特徵。

一種已被證明,可以增加瓶頸特徵的判別能力的方法,是特徵歸一化 [115,118]。比如,[115] 提出歸一化特徵,以具有單位 L2 範數,[118] 提出歸一化特徵,以具有零均值和單位方差。一個成功的方法,已經在 softmax 損失中,每類之間的決策邊界中,引入了一個餘量 [135]。為了簡單,我們介紹一下使用 softmax 損失進行二元分類的情況。在這種情況下,每類之間的決策邊界(如果偏置為零)可由下式給定:


其中 x 是特徵向量,W_1 和 W_2 是對應每類的加權,θ_1 和 θ_2 是 x 分別與 W_1 和 W_2 之間的角度。透過在上式中引入一個乘法餘量,這兩個決策邊界,可以變得更加嚴格:



如圖 8 所示,這個餘量可以有效地增大,類別之間的區分程度,以及各自類別之內的緊湊性。根據將該餘量整合進損失的方式,研究者們已經提出了多種可用方法 [116,119-121]。比如 [116] 中,對加權向量,進行了歸一化以具有單位範數,這樣使得決策邊界,僅取決於角度 θ_1 和 θ_2。

[119,120] 中則提出了一種加性餘弦餘量。相比於乘法餘量 [135,116],加性餘量更容易實現和優化。在這項工作中,除了歸一化加權向量,特徵向量也如 [115] 中,一樣進行了歸一化和比例調整。

[121] 中提出了另一種加性餘量,它既有 [119,120] 那樣的優點,還有更好的幾何解釋方式,因為這個餘量是加在角度上的,而不是餘弦上。表 2 總結了有餘量的 softmax ,損失的不同變體的決策邊界。這些方法是人臉辨識領域的當前最佳。



8:在兩個類別之間的決策邊界中引入一個餘量 m 的效果。(asoftmax 損失,(b)有餘量的 softmax 損失。


2:有餘量的 softmax 損失的不同變體的決策邊界。注意這些決策邊界針對的,是二元分類案例中的類別 1