Android實現人臉識別(人臉檢測)初識

2021-10-06 09:30:07 字數 1708 閱讀 7035

title: android實現人臉識別(人臉檢測)初識

categories: 介紹

本篇文章主要介紹一下移動端android的人臉識別大致邏輯,後續文章會陸續放出乾貨,首先我們要明確兩個名詞

人臉檢測,即從一張**中或者乙個相機中,檢測有沒有人臉的出現,

可以說在現在計算機視覺應用中,人臉識別尤為關鍵,我們可以想象到常見的美顏相機,就是人臉識別為基礎,以及人臉特效啥的(某音常見的)

那麼我們android怎麼實現自己的人臉識別呢

目前有幾個比較成熟的技術,

camera原生api(已過時不推薦)

camera2 + facedetector(後面會詳細說)

opencv(筆主採用的4.3.0版本)

arcore(google service)

關鍵知識點

若要知道人臉識別,影象的處理是必不可少的,那麼相機等格式也是需要了解,其中有幾個關鍵點的知識需要有所了解

nv21,yuv420這些原始資料格式(大致了解會用即可)

bitmap(bitmap type 格式rgb 565,rgb4444等,大致了解即可)

灰度化,二值化

影象的二值化是將影象上的畫素點的灰度值設定為0或255,也就是將整個影象呈現出明顯的黑白效果。

將256個亮度等級的灰度影象通過適當的閥值選取而獲得仍然可以反映影象整體和區域性特徵的二值化影象。在數字影象處理中,二值影象占有非常重要的地位,

首先,影象的二值化有利於影象的進一步處理,使影象變得簡單,而且資料量減小,能凸顯出感興趣的目標的輪廓。其次,要進行二值影象的處理與分析,首先要把灰度影象二值化,得到二值化影象。

所有灰度大於或等於閥值的畫素被判定為屬於特定物體,其灰度值為255表示,否則這些畫素點被排除在物體區域以外,灰度值為0,表示背景或者例外的物體區域

而人臉的特徵,大家都懂,乙個鼻子兩個眼,一張嘴2個耳朵,這些都是不同技術共同點,都是靠特徵點去比對,然後檢測人臉

(感興趣的可以繼續了解影象二值化後,影象加減法,色彩調節等,迷宮演算法,等還挺有意思的)

關於這些知識點,android老鳥基本都了解,那麼對後面的操作就比較簡單了,

-----知道這些那麼針對你的需求可以繼續了

技術對比

如果你需要的是只需要測出人臉,螢幕**現人臉的個數等,而不需要關注人臉的其餘資訊,只需要知道人臉出現在了鏡頭中,ok

那麼你就可以方法二,facedetector,該技術的特徵模型,是檢測眼睛,雙目間距,眉眼特徵來的,理論來講只需要知道雙眼座標,

就可以知道,你相對鏡頭的角度,人臉的大致位置,眉心中心點,等,(這種方法的好處是,比如說現在疫情,戴口罩,ok,沒問題,你帶口罩我也能認出你來)

如果說你需要做比較詳細的人臉資訊,可以採用opencv來比較靈活,影象處理後,可以配合多種演算法,各種成熟的模型,來做人臉識別,說白了就是對影象處理後,拿到資料,愛用什麼演算法算就用什麼算,

愛用什麼模型匹配,用什麼模型匹配,對接起來比較簡單,要精確可以簡單的提公升精確度,當然,模型不同原理也不同比較常用就haar lbp等分類器

當然專案的體積也會增加較多

好了,這篇文章先寫這麼多,後續補充,

後面陸續補全,方法二和方法三的具體實現,

至於方法四,後面也會有demo和解讀,,,比較厲害的乙個東西

部落格android實現人臉識別(人臉檢測)初識

人臉識別 人臉庫

1.mit 影象集 美國,麻省理工學院 包括 16 人,每個人有不同光照 不同尺寸 不同角度的 27 張 2.feret 影象集 美 方 此影象集包含大量的人臉影象,並且每幅圖中均只有乙個人臉。該集中,同乙個人的 有不同表情,光照,姿態和年齡的變化。3.umist 影象集 英國,曼切斯特大學 20 ...

人臉識別 人臉資料集大全

資料庫描述 用途獲取方法 webface 10k 人,約500k張 非限制場景 鏈結facescrub 530人,約100k張 非限制場景 鏈結youtube face 鏈結lfw 5k 人臉,超過10k張 標準的人臉識別資料集 鏈結multipie 337個人的不同姿態 表情 光照的人臉影象,共7...

ios識別人臉自動拍照 ios人臉拍照識別

人臉識別,ios人臉拍照識別 人臉識別,ios人臉拍照識別產品背景 隨著深度學習方法的應用,人臉識別技術的識別率已經得到質的提公升,目前人臉識別率已經達到99 以上。人臉識別技術與其他生物特徵識別技術相比,在實際應用中具有天然獨到的優勢 通過攝像頭直接獲取,可以非接觸的方式完成識別過程,方便快捷。目...