Android 人臉識別 活體檢測 人臉對比
人臉識別技術應用於支付、門禁、以及手機解鎖在當下已經非常成熟,作為一個Android 開發者,掌握人臉識別技術已經是必須做的事情了,市面上比較流行的人臉識別API主要有阿里雲(5000條以內免費)、騰訊雲(收費)、以及虹軟API(免費,活體檢測免費用一年,一年之後重新申請)。
人臉識別技術原理:
人臉識別系統主要包括四個組成部分,分別為:人臉影象採集及檢測、人臉影象預處理、人臉影象特徵提取以及匹配與識別。
人臉影象採集:不同的人臉影象都能通過攝像鏡頭採集下來,比如靜態影象、動態影象、不同的位置、不同表情等方面都可以得到很好的採集。當用戶在採集裝置的拍攝範圍內時,採集裝置會自動搜尋並拍攝使用者的人臉影象。
人臉檢測:人臉檢測在實際中主要用於人臉識別的預處理,即在影象中準確標定出人臉的位置和大小。人臉影象中包含的模式特徵十分豐富,如直方圖特徵、顏色特徵、模板特徵、結構特徵及Haar特徵等。人臉檢測就是把這其中有用的資訊挑出來,並利用這些特徵實現人臉檢測。
主流的人臉檢測方法基於以上特徵採用Adaboost學習演算法,Adaboost演算法是一種用來分類的方法,它把一些比較弱的分類方法合在一起,組合出新的很強的分類方法。
人臉檢測過程中使用Adaboost演算法挑選出一些最能代表人臉的矩形特徵(弱分類器),按照加權投票的方式將弱分類器構造為一個強分類器,再將訓練得到的若干強分類器串聯組成一個級聯結構的層疊分類器,有效地提高分類器的檢測速度。
人臉影象預處理:對於人臉的影象預處理是基於人臉檢測結果,對影象進行處理並最終服務於特徵提取的過程。系統獲取的原始影象由於受到各種條件的限制和隨機干擾,往往不能直接使用,必須在影象處理的早期階段對它進行灰度校正、噪聲過濾等影象預處理。對於人臉影象而言,其預處理過程主要包括人臉影象的光線補償、灰度變換、直方圖均衡化、歸一化、幾何校正、濾波以及銳化等。
人臉影象特徵提取:人臉識別系統可使用的特徵通常分為視覺特徵、畫素統計特徵、人臉影象變換系數特徵、人臉影象代數特徵等。人臉特徵提取就是針對人臉的某些特徵進行的。人臉特徵提取,也稱人臉表徵,它是對人臉進行特徵建模的過程。人臉特徵提取的方法歸納起來分為兩大類:一種是基於知識的表徵方法;另外一種是基於代數特徵或統計學習的表徵方法。
基於知識的表徵方法主要是根據人臉器官的形狀描述以及他們之間的距離特性來獲得有助於人臉分類的特徵資料,其特徵分量通常包括特徵點間的歐氏距離、曲率和角度等。人臉由眼睛、鼻子、嘴、下巴等區域性構成,對這些區域性和它們之間結構關係的幾何描述,可作為識別人臉的重要特徵,這些特徵被稱為幾何特徵。基於知識的人臉表徵主要包括基於幾何特徵的方法和模板匹配法。
人臉影象匹配與識別:提取的人臉影象的特徵資料與資料庫中儲存的特徵模板進行搜尋匹配,通過設定一個閾值,當相似度超過這一閾值,則把匹配得到的結果輸出。人臉識別就是將待識別的人臉特徵與已得到的人臉特徵模板進行比較,根據相似程度對人臉的身份資訊進行判斷。這一過程又分為兩類:一類是確認,是一對一進行影象比較的過程,另一類是辨認,是一對多進行影象匹配對比的過程。
整合阿里雲人臉識別(暫不支援活體檢測):開通阿里雲,獲取acceskeys(ak_id和ak_secret)。
檢視官方文件,官方文件說的相對簡單,呼叫起來還需做許多工作。
在諮詢如何呼叫時,官方有給出兩篇文章:https://market.aliyun.com/products/57124001/cmapi019979.html?spm=5176.730005.productlist.d_cmapi019979.1a903524pirGBp&innerSource=search_%E4%BA%BA%E8%84%B8%E6%A3%80%E6%B5%8B(人臉識別,面部特徵),另一篇https://market.aliyun.com/products/57124001/cmapi020044.html?spm=5176.730005.productlist.d_cmapi020044.1a903524pirGBp&innerSource=search_%E4%BA%BA%E8%84%B8%E6%A3%80%E6%B5%8B (人臉對比),開發者可參考使用。
說一下我是如何使用的,直接上程式碼:
一、人臉識別,面部特徵:
將bitmap轉換成Base64字串(官方文件要求)
呼叫介面相對簡單。執行結果如下:可檢測出人臉個數和位置等資訊。
執行結果:
虹軟SDK整合下一章節說,謝謝。