人工智能領域最近幾年的發展可以說是如火如荼,這里面既有創業者的磨刀霍霍,也有資本的一路執著狂跟,還有學生和程序員群體的熱情追隨?;仡櫲斯ぶ悄茴I域從2012年的星星之火,到15年左右的瘋狂態勢,再到18年理性的聲音初現。有人開始對人工智能抱有懷疑的態度,認為這一波AI并沒有想象中那么強。
但是,不可否認,人工智能真的在一些領域中得到了很好的落地,其中最典型的就是人臉識別的相關應用?,F在我們乘車可以無票自動人證核驗通行;通過人臉驗證身份在線辦各種證件手續,也不再需要跑到各個局去現場辦理;還有很方便的手機人臉解鎖等等。可以說,人臉識別還是一個真正實用的技術。
人臉識別的流程介紹
對于一個落地可用的人臉識別系統,一般要包含以下幾個步驟:
1) 人臉檢測——將人臉從圖像中檢測出來;
2) 人臉關鍵點檢測——從檢測到的人臉中檢測關鍵點(landmark);
3) 人臉對齊——根據人臉關鍵點,將人臉“扭正”;
4) 人臉特征提取——把“扭正”的人臉送進特征提取網絡,產生特征向量(例如128維、512維的特征向量);
5) 人臉比對——將人臉特征和底庫里面存儲的人的特征向量進行比較。
從上面的流程可以看到,一個真正work的人臉識別系統,是包含多個流程的。在多數場合,中間還需要加一個“活體檢測”的步驟,也就是判斷人臉是真的人臉,還是別人拿照片或者視頻錄像假冒的;如果你是從視頻中檢測人臉,還需要加一個“人臉質量分”判斷,也就是判斷一個視頻序列中哪個人臉質量最好,然后將最好的這個人臉送入到人臉識別系統。
有哪些可用的人臉識別算法
在上面一節,我們簡要介紹了如何做一個人臉識別系統??梢哉f,要做好這個系統還是需要很大工作量的。從算法層面,要解決特征提取模型、活體檢測、人臉圖像質量檢測三塊硬骨頭。此外,還需要考慮如何優化低功耗、高性能等工程化問題。
還好,現在有一些AI科技公司開放了成熟的人臉識別算法,可以讓程序員很快可以完成部署。那么當前有哪些可用的免費人臉識別算法,目前市面上主流的開箱即用的人臉識別算法又有哪些呢?下邊,小算農為大家整理一下。
云服務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輔導,畢竟是科創板上市企業。
所以也推薦大家可以去他們的官網下載體驗一下。
責任編輯:pj
-
人臉識別
+關注
關注
76文章
4012瀏覽量
82031 -
SDK
+關注
關注
3文章
1039瀏覽量
46027 -
云服務
+關注
關注
0文章
826瀏覽量
38939
發布評論請先 登錄
相關推薦
評論