1. 程式人生 > >android 人臉識別踩坑實錄

android 人臉識別踩坑實錄

隨著AI技術的發展,人臉識別的應用場景越來越多,提供技術支援的API也有好多可以選擇,但是大部分都是需要收費的,或者免費試用。由此可見人臉識別演算法確實是核心技術,不是隨便就可以獲取到的。經過多次嘗試,記錄一下自己在實現人臉識別遇到的坑吧。

也有免費的Api打著人臉識別的旗號,其實都是實現人臉檢測的功能。智慧識別出來圖片中是否有人臉,而關於人臉更多的資訊就獲取不到了。

比如是否是正臉、側臉面對鏡頭;

是否能夠獲取人臉關鍵點資訊;

是否能夠獲取尤拉角(尤拉角具體定義請百度~);

最後實驗之後發現都是隻能夠獲取人臉座標或者中心點座標,眼距等簡單的資訊。如果只是簡單判斷圖片上是否有人臉,實現起來綽綽有餘,如果想做更復雜的操作,免費的API好像並不能夠實現功能。

在網上找了許多資料,找到了一個免費提供的API——虹軟。

http://ai.arcsoft.com.cn/technology/faceDetection.html
官網上也有詳細的介紹,有興趣的可以看一下。唯一遺憾的是——人臉識別SDK中暫無關鍵點演算法技術開放。

android系統也有提供自己的方法。通過FaceDetector的內部類FaceDetector.Face返回人臉資訊,在android提供的API文件中,我們可以瞭解到,face返回的內容。
https://developer.android.google.cn/reference/android/media/FaceDetector.Face

英文的文件,但是不難看懂。

其中有一段描述,pose(int euler)方法可以返回X、YorZ方向的尤拉角,我還以為找到新大陸了,可以獲取人臉的角度,但是測試之後發現返回值一直都是0。也是讓我很無奈,不知道如何才能獲取更多的資訊。難道就沒有免費的可以獲取更多人臉資訊的開源資料麼。
android還提供一個類只是已經過時了,Camera.Face可以返回人臉資訊,但是隻能在部分手機上獲取關鍵點座標,也是很無奈。大家需要的話可以拿著關鍵字百度一下就可以了。

LZ雖然沒有找到好的方法,只能給不好的和大家分享一下了,技術在進步,相信免費開源的很快就能被LZ發現了。