開箱即用的人臉識別算法大盤點

2021-01-15 快科技

人工智慧領域最近幾年的發展可以說是如火如荼,這裡面既有創業者的磨刀霍霍,也有資本的一路執著狂跟,還有學生和程式設計師群體的熱情追隨。回顧人工智慧領域從2012年的星星之火,到15年左右的瘋狂態勢,再到18年理性的聲音初現。有人開始對人工智慧抱有懷疑的態度,認為這一波AI並沒有想像中那麼強。

但是,不可否認,人工智慧真的在一些領域中得到了很好的落地,其中最典型的就是人臉識別的相關應用。現在我們乘車可以無票自動人證核驗通行;通過人臉驗證身份在線辦各種證件手續,也不再需要跑到各個局去現場辦理;還有很方便的手機人臉解鎖等等。可以說,人臉識別還是一個真正實用的技術。

人臉識別的流程介紹

對於一個落地可用的人臉識別系統,一般要包含以下幾個步驟:

1) 人臉檢測——將人臉從圖像中檢測出來;

2) 人臉關鍵點檢測——從檢測到的人臉中檢測關鍵點(landmark);

3) 人臉對齊——根據人臉關鍵點,將人臉"扭正";

4) 人臉特徵提取——把"扭正"的人臉送進特徵提取網絡,產生特徵向量(例如128維、512維的特徵向量);

5) 人臉比對——將人臉特徵和底庫裡面存儲的人的特徵向量進行比較。

從上面的流程可以看到,一個真正work的人臉識別系統,是包含多個流程的。在多數場合,中間還需要加一個"活體檢測"的步驟,也就是判斷人臉是真的人臉,還是別人拿照片或者視頻錄像假冒的;如果你是從視頻中檢測人臉,還需要加一個"人臉質量分"判斷,也就是判斷一個視頻序列中哪個人臉質量最好,然後將最好的這個人臉送入到人臉識別系統。

有哪些可用的人臉識別算法

在上面一節,我們簡要介紹了如何做一個人臉識別系統。可以說,要做好這個系統還是需要很大工作量的。從算法層面,要解決特徵提取模型、活體檢測、人臉圖像質量檢測三塊硬骨頭。此外,還需要考慮如何優化低功耗、高性能等工程化問題。

還好,現在有一些AI科技公司開放了成熟的人臉識別算法,可以讓程式設計師很快可以完成部署。那麼當前有哪些可用的免費人臉識別算法,目前市面上主流的開箱即用的人臉識別算法又有哪些呢?下邊,小算農為大家整理一下。

按照調用方式來看,主要分為兩種:雲服務API和離線SDK。

雲服務API

雲服務API本質上是"在線請求,返回結果",從功能上來說它是一個接口。多數人臉識別廠商將算法布置在雲端,將API接口向有需求的公司開放。終端設備與雲端連接後,人臉識別過程都在雲端進行,消耗雲端算力,本地端只需要上傳照片,接收結果。

雲服務人臉識別API的優勢主要有:

輕量級,集成方便,基本上任何語言都可以通過Http調用雲服務API;

多為APP或一些網頁在使用。

當然,凡事都有兩面性,雲服務API也有不少劣勢:

無法離線運行,需要網絡流量成本,在一些特定場景下無法使用(無網絡、無法訪問公網的企業機構);

雲端API廠商只能在較少調用量下(基本是產品測試階段),提供免費使用。一旦規模化商用,尤其是App端等場景下大規模調用收費高昂;

受網絡影響大,受網絡穩定性影響較大,存在一定延遲,這樣即使算法、算力再給力,也無法彌補網絡的延遲。

在人臉識別API雲服務裡,國內的BAT應該是最大的玩家,如果你打開阿里雲、百度雲、騰訊雲,會發現他們提供了齊全的人臉識別相關的服務,另外,國內的"CV四小龍"、圖普等眾多公司也提供雲端人臉識別API。

大致價格如下表所示:

表 1 人臉比對API價格表

可以看到如果單純使用人臉比對,且調用量比較小的話,採用雲服務API的價格還是可以接受的。但是,需要注意的是,表中僅是人臉比對的API價格,上文也提到了,一個完整的人臉識別系統至少還要包括人臉檢測+人臉活體檢測+人臉識別+人臉檢索這四個過程,需要分別購買四個模塊的API,加起來價格並不便宜。

離線人臉識別SDK

離線人臉識別SDK則是另外一種選擇,SDK也就是軟體開發工具包,算法廠商將人臉識別功能封裝成SDK,分發給其他公司使用。接收方下載安裝後使用,算法在本地端運行。

相比雲服務API,離線SDK主要有以下優點:

本地運行,可離線使用,不受網絡環境影響,響應速度快;

人臉數據儲存在本地,無需與服務端進行數據交互,安全性高;

部分公司提供了免費的SDK(例如知名的虹軟視覺開放平臺提供的免費人臉識別SDK,全平臺覆蓋,文檔齊全)

國內提供人臉識別SDK的知名公司及其價格:

表 2 部分主流廠商人臉識別SDK價格

筆者經過統計,發現提供離線人臉SDK的公司相比提供雲服務API的公司要少很多。另外,商業公司的離線人臉識別SDK一般價格比較貴。不過,虹軟視覺開放平臺卻有提供免費、離線的人臉識別SDK。它不僅支持商用、擁有多個平臺版本,而且還提供了非常齊全的文檔。

知道虹軟的人臉識別SDK是因為筆者在知乎搜索,有沒有離線版的人臉識別的sdk可以使用的?看到大家在回答中都重點推薦了科創板上市企業虹軟科技。於是筆者也去官網試了一下,發現該公司的確提供了四大平臺的SDK,而且,最關鍵的是,它是完全免費的!

使用後發現,虹軟提供了人臉識別、認證核驗、活體檢測三大主流應用的免費算法。

另外,對於不同平臺的人臉識別SDK,虹軟都提供了Demo代碼。例如,下面是人臉識別SDK的安卓Demo(所有代碼都在下載的安卓SDK裡面,打開Android Studio加載項目即可編譯安裝)。

其中人臉識別Demo的主頁如圖所示,因為是Demo所以相對簡單。

下邊是人臉屬性識別的效果頁面,從圖片可以看出,算法檢測出了人臉、估計出了年齡、性別、人臉三個角度,是否是活體以及特徵提取和相似度的計算。

另外,筆者也嘗試了Ubuntu版本的人臉識別以及Windows版本的人證合一的SDK,發現調用起來都非常的方便,官方寫的Demo代碼也非常的簡潔易懂。

總結

經過小算農的總結,從性價比來看,離線SDK使用本地算力可以做到完全免費商用。而雲服務API是基於雲端算力,很難真正免費開放,尤其是用戶規模基本都在幾十萬甚至上百萬、上千萬的APP產品應用中,雲端調用的收費還是比較高昂的。

從應用場景來看,雲端API受到網絡條件制約。對於追求低時延,穩定高效、用戶體驗的閘機門禁、刷臉考勤、人臉測溫通行等產品應用中,也更推薦離線SDK。

因此綜合來看,虹軟視覺開放平臺的免費離線人臉SDK,是一個比較不錯的選擇。順便提一個細節,筆者自己在嘗試用虹軟SDK搭建一個應用時,遇到了關於"活體檢測和人臉特徵值提取多線程調用"的小疑問。於是,通過工單系統提交了技術支持需求,不到1天時間就得到了相關技術人員的1對1輔導,畢竟是科創板上市企業。

所以也推薦大家可以去他們的官網下載體驗一下。

相關焦點

  • 人臉識別核心算法及技術解析
    1、在檢測到人臉並定位面部關鍵特徵點之後,主要的人臉區域就可以被裁剪出來,經過預處理之後,饋入後端的識別算法。識別算法要完成人臉特徵的提取,並與庫存的已知人臉進行比對,完成最終的分類。我們還進一步提出了融合類均值向量差及KDBFM來構建擴展的決策邊界特徵矩陣(EKDBFM)的方法,並把這兩種方法成功地應用到了人臉識別領域,在FERET和CAS-PEAL資料庫的實驗結果表明該方法比傳統人臉識別算法具有更好的識別性能。
  • 黑客如何用一副紙眼鏡,就「弄瞎」人臉識別算法?
    第二步,將三個材料輸入攻擊算法,生成攻擊人臉識別算法。這裡的攻擊算法就是智慧財產權的核心。算法會利用人臉識別算法模型,從受攻擊者的照片中提取他/她的人臉信息,然後在攻擊者的照片上構造出攻擊用的對抗圖案。一般情況下,研究人員稱攻擊算法生成的圖案為對抗圖案。對抗圖案疊加在原來的圖片上,得到帶有攻擊功能的圖片,叫對抗樣本。
  • 基於小波包變換和壓縮感知的人臉識別算法
    平強、莊連生[6]等針對人臉識別姿態問題提出了基於仿射變換的人臉分塊稀疏表示,提升了算法的識別性能,但仿射變換和分塊稀疏表示都增加了運算複雜度。  2 本文稀疏表示的人臉識別算法  本文將小波包變換和壓縮感知結合應用於人臉識別,具體識別過程如圖2所示。
  • 依圖NIST奪冠,解密人臉識別算法原理
    依圖科技其實是第二次獲得NIST比賽人臉識別冠軍,去年6月NIST官方公布的測試結果中,依圖在千萬分之一誤報下達到識別準確率95.5%,是當時全球工業界在此項指標下的最好水平。今年依圖將這一指標提升到了接近極限的水平,即在千萬分之一誤報下的識別準確率已經接近99%。
  • 不同的人臉識別算法解析
    導讀 在人臉識別領域,有一些比較經典的算法,例如特徵臉法(Eigenface)、局部二值模式法、Fisherface等,不過在這裡選擇了一個目前應用比較廣泛且流行的方法作為示例
  • 既要高精度也要高性能,人臉識別主流算法大合集
    在系列文章的第一篇一文看懂人臉識別技術發展脈絡中,回顧了人臉識別算法的發展歷程,介紹了人臉識別算法從傳統機器學習算法到現在的深度學習算法的演進歷程。接下來,我們將詳細介紹一下人臉識別常見的應用方式,以及現在主流的人臉識別算法。1.
  • 人臉識別行業分析
    人臉識別技術原理簡單來講主要是三大步驟:一是建立一個包含大批量人臉圖像的資料庫;二是通過各種方式來獲得當前要進行識別的目標人臉圖像;三是將目標人臉圖像與資料庫中既有的人臉圖像進行比對和篩選。根據人臉識別技術原理具體實施起來的技術流程則主要包含以下四個部分,即人臉圖像的採集與預處理、人臉檢測、人臉特徵提取、人臉識別和活體鑑別。1.
  • 人臉識別算法精度不斷提高 讓計算機「看人更準」(創新故事)
    依圖科技執行長朱瓏認為,依圖的人臉識別技術能拿到這個創新獎,核心競爭力是其自主研發的人臉識別算法。   人臉識別即計算機視覺處理作為人工智慧的關鍵組成,目前正處在超乎想像的快速發展階段,在安防、金融、醫療等領域已有較為成熟的應用。「我們的算法效率幾乎以每年100倍的速度在提高。現在從幾億量級的面孔中識別出一個人,並不是什麼難事。」
  • 研究:即便是最好的人臉識別算法也會受到口罩幹擾
    據外媒報導,研究人員發現,口罩不僅能有效防新冠肺炎等空氣傳播疾病的傳播,還能成功阻止面部識別算法。 美國國家標準與技術研究所(NIST)在周一發布的一份報告中指出,口罩甚至還能給最先進的面部識別算法造成障礙。 至於錯誤率,從5%到50%不等,具體多少則取決於算法的能力。
  • 應用層下的人臉識別(三):人臉比對
    人臉1:N人臉1:N又稱靜態大庫檢索:即以人臉圖片、人臉相似度作為檢索條件,在人臉庫中搜索與其相似(相似度大於設定閾值)的圖片——類似於百度以圖搜圖。檢索過程實際就是:進行N次人臉比對,並留下比分大於閾值的結果。
  • 在人臉識別的「統治」陰影之下……
    早在1964年,當布萊索(Bledsoe)、海倫·陳(Helen Chan)和查爾斯·比森(Charles Bisson)一起嘗試用計算機識別人類面部時,人類對人臉識別的探索就已經開始了,隨後經歷了不斷失敗和發展的過程。歷史學家認為布萊索等人是自動化人臉識別的開拓者。
  • 推薦算法系統/人臉識別/深度學習對話機器人高級實戰課
    包含了推薦算法系統實戰、深度學習人臉識別實戰、深度學習對話機器人實戰等高級前沿的精品課程,下面分別介紹下各個實戰項目:1、推薦算法系統實戰首先推薦系統不等於推薦算法,更不等於協同過濾。2、深度學習人臉識別實戰人臉識別,是基於人的臉部特徵信息進行身份識別的一種生物識別技術。
  • 一種基於OpenCV的人臉識別設計方案
    它輕量級而且高效--由一系列 C 函數和少量 C++ 類構成,實現了圖像處理和計算機視覺方面的很多通用算法,作為一個基本的計算機視覺、圖像處理和模式識別的開源項目,OpenCV 可以直接應用於很多領域,其中就包括很多可以應用於人臉識別的算法實現,是作為第二次開發的理想工具。
  • Curvelet變換用於人臉特徵提取與識別
    因此,Curvelet對圖像的邊緣,如曲線、直線等幾何特徵的表達更加優於小波,使用Curvelet變換提取人臉特徵是 一條更有效的途徑.2005年CandesEJ等對第1代Curvelet算法進行改進,提出了更簡單、更便於理解的快速Curvelet變換算法,即第2 代Curvelet變換,大大降低了數據的冗餘度。
  • 人臉識別技術原理與實現方式
    接下來對人臉識別算法各技術點逐一進行詳細介紹,包括人臉檢測、人臉定位、人臉校準、人臉比對、人臉反欺詐以及算法優化等。人臉檢測   人臉檢測算法繁多,我們採用由粗到精的高效方式,即先用計算量小的特徵快速過濾大量非人臉窗口圖像,然後用複雜特徵篩選人臉。這種方式能快速且高精度的檢測出正臉(人臉旋轉不超過45度)。該步驟旨在選取最佳候選框,減小非人臉區域的處理,從而減小後續人臉校準及比對的計算量。
  • 魅族「跳水」旗艦機,虹膜算法+人臉識別,便宜1000元!
    魅族「跳水」旗艦機,虹膜算法+人臉識別,便宜1000元!馬上就要進入2019年了,在這段時間手機廠家們發布的手機也非常的少,因為都開始吹籌備2019年的新手機了,所以說這也就導致很多的老款手機開始降價,並且降價的幅度也特別大。
  • 格靈深瞳在人臉識別算法測試(FRVT)中榮獲全球第一
    7月3日,美國國家標準與技術研究院(NIST)公布了全球最權威的人臉識別算法測試(FRVT)的,結果,,參與此競賽的格靈深瞳取得了優異成績:在,挑戰的「非約束性自然環境人臉照片」測試項目中獲得全球第一名的佳績!
  • 人臉識別技術原理與工程實踐(10個月人臉識別領域實戰總結)
    前兩年,很多機場安檢都開始用上了人臉驗證;今年4月,很多一、二線城市的火車站也開通了「刷臉進站」的功能;北京的一些酒店開始使用人臉識別技術來做身份驗證。2 人臉識別應用場景(識別)我們再來看看幾個場景。第一個是刷臉的自動售貨機。當我第一次看到這個機器的時候就有個疑問:」現在人臉識別算法已經做到萬無一失了嗎,認錯人,扣錯錢怎麼辦?」
  • 人臉識別技術理論
    人臉識別,是基於人的臉部特徵信息進行身份識別的一種生物識別技術。用攝像機或攝像頭採集含有人臉的圖像或視頻流,並自動在圖像中檢測和跟蹤人臉,進而對檢測到的人臉進行臉部識別的一系列相關技術,通常也叫做人像識別、面部識別。
  • 人臉識別系統的幾個過程淺析
    人臉識別(FaceRecognition,FR)是一種基於人的臉部特徵信息進行身份識別的一種生物識別技術。用攝像機或攝像頭採集含有人臉的圖像或視頻流,並自動在圖像中檢測和跟蹤人臉,進而對檢測到的人臉進行臉部識別的一系列相關技術,通常也叫做人像識別、面部識別。