国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android FaceDetector實現人臉檢測功能

2019-10-22 18:10:41
字體:
來源:轉載
供稿:網友

關于人臉檢測被折磨了半個月,前2周開需求會時需要要做一個“人臉認證上傳功能,具體是打開前置攝像頭,識別出用戶的臉并且臉在一個指定的圓圈內然后自動保存這個狀態的圖像待用戶是否確定上傳”。聽到這個需求我第一時間想到比較專業的圖形處理庫OpenCV。去github上面搜了一下關于openCV識別人臉的demo,樣例確實有點多,也確實是可以實現 但是OpenCV庫實在是有點大8M,用這個庫估計會被構架師說死。然后我還搜過其它的第三方庫(虹軟,face++,阿里云人臉檢測)這幾款都不是省油的燈一款需要兼容android5.0以上,其它2款都是收費版,至于阿里云更厲害了不支持離線檢測。

后來才選擇了google自帶api,網上一搜發現google 的一個類android.hardware.Camera里面有已經幫你封裝好的人臉檢測的api有這方面了解的同學可以參考一下點擊打開鏈接。我開始也是使用這種方式實現的,磕磕碰碰的寫完后最終發現合乎需求,后來自己打算測試一下機子兼容性,拿了一臺華為機子一測試,發現人臉的那個接口沒有任何回調(nexus6P調用還會發現閃退,打log發現是ndk層拋出來的),心馬上沉入谷底。

最后發現好像沒有啥捷徑可走了,只好老實實使用android.media.FaceDetector進行開發。這種方式的使用的思路是,使用Camera+TextureView(鑒于對開發時間緊,對已過時有點了解就沒有使用Camera2)進行預覽,通過設置PreviewCallback實時抓取每一幀圖像進行檢測是否合格。圖像預覽本人推薦google關于Camera使用demo進行修改,因為在實際中有很多機型未必都能合乎預想(本人也確實被坑過,自己封裝的Camera發現跑在一些機子上圖像方向是反向的。當然如果對Camera很熟悉那也是可以自己寫的)。好了啰嗦了一大堆下面來看看正題

先看看集成到app里面的實際效果

Android,FaceDetector,人臉檢測

這里說明不是APP卡,我用的錄屏軟件共享桌面時一卡一卡的

首先圖像預覽改自google demo,demo拿過來是不能直接使用的,里面需要自己手動添加每一幀的回調,代碼如下(這里直接貼圖了,更直觀,稍后我會把demo發出來)

Android,FaceDetector,人臉檢測

Android,FaceDetector,人臉檢測

Android,FaceDetector,人臉檢測

google CameraDemo主要改了這么多,下面來看看在獲取到每一幀時對圖像的處理跟識別

Android,FaceDetector,人臉檢測

再看看FaceThread做的Bitmap轉換,Bitmap旋轉及對Bitmap是否有人臉的識別

Android,FaceDetector,人臉檢測

Android,FaceDetector,人臉檢測

好了,主要邏輯就這些吧,關于FaceDetector具體使用,這是我寫好的demo(上面演示是把demo驗證沒問題情況拷貝到項目中,最終實現需要按照你的需求來。演示地址)

最后給一個忠告,在開發中遇到完全不熟悉的api最好去找google的實現的demo看效果,看代碼的實現。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临城县| 万源市| 内江市| 合江县| 乌鲁木齐县| 红原县| 吉安县| 靖远县| 区。| 上饶市| 曲阜市| 五莲县| 广饶县| 略阳县| 清水县| 衡阳县| 庆元县| 讷河市| 新巴尔虎左旗| 庆云县| 石林| 雷州市| 安康市| 湾仔区| 赣榆县| 盐山县| 安陆市| 绥阳县| 江安县| 白朗县| 平昌县| 安阳市| 富顺县| 宜宾县| 通州市| 东兰县| 阿图什市| 林芝县| 区。| 萨迦县| 双柏县|