淺談iOS中的人臉識(shí)別及活體檢測(cè)

????????做了兩年的人臉識(shí)別領(lǐng)域的工作起趾,一直沒(méi)有寫過(guò)關(guān)于這個(gè)領(lǐng)域的文章诗舰,想了想,還是寫一篇淺談一下训裆。眶根。。

????????現(xiàn)在隨著人工智能的發(fā)展越來(lái)越快边琉,已經(jīng)有很多公司在做人臉識(shí)別技術(shù)了属百。在中國(guó)做算法比較好的比如說(shuō)Face++、云從变姨、商湯族扰、大華等,而基于算法做這個(gè)領(lǐng)域的更多定欧,百度AI渔呵、騰訊云、阿里云砍鸠、訊飛等大公司都有了相應(yīng)提供的API扩氢。之前電聯(lián)過(guò)訊飛的客服,他們說(shuō)他們就是基于face++的算法的睦番,好像支付寶也是基于face++类茂。而國(guó)外我了解的最多的就是OpenCV了,OpenCV不管是做人臉檢測(cè)還是活體檢測(cè)托嚣,對(duì)于開(kāi)源框架都是比較好的了巩检。

? ? ? ? 而從iOS 5之后蘋果也開(kāi)發(fā)了人臉識(shí)別的庫(kù),但是一直沒(méi)這么受重視示启,直到這兩年才好點(diǎn)兢哭,這就是CoreImage庫(kù),使用的方法相當(dāng)簡(jiǎn)單:

1.首先要導(dǎo)入CoreImage.framework框架

2.引入頭文件#import <CoreImage/CoreImage.h>

3.創(chuàng)建個(gè)按鈕調(diào)用相冊(cè)或者相機(jī)(記得現(xiàn)在蘋果對(duì)于隱私權(quán)限很重視夫嗓,一定要在info.plist中添加獲取攝像頭及相冊(cè)的參數(shù))

4.提示框加個(gè)UIAlertViewDelegate

5.直接上代碼

#pragma mark --判斷是否是人臉

-(void)camerImage:(UIImage*)image{

? ? CIImage* ciimage = [CIImageimageWithCGImage:image.CGImage];

? ? NSDictionary* opts = [NSDictionary dictionaryWithObject:

? ? ? ? ? ? ? ? ? ? ? ? ? CIDetectorAccuracyHigh forKey:CIDetectorAccuracy];

? ? CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? context:niloptions:opts];

? ? //所有的人臉數(shù)據(jù)

? ? NSArray* features = [detectorfeaturesInImage:ciimage];

? ? if(features.count>0) {

? ? ? ?UIAlertView*alert = [[UIAlertViewalloc]initWithTitle:@"提示"message:[NSStringstringWithFormat:@"檢測(cè)到%lu張人臉",(unsignedlong)features.count] delegate:selfcancelButtonTitle:@"確定"otherButtonTitles:nil,nil];

? ? ? ? [alertshow];

? ? ? ? CIFaceFeature*face=[featuresfirstObject];

? ? ? ? if(face.hasSmile)

? ? ? ? ? ? NSLog(@"有微笑");

? ? ? ? if(face.leftEyeClosed)

? ? ? ? ? ? NSLog(@"左眼閉著的");

? ? ? ? if(face.rightEyeClosed)

? ? ? ? ? ? NSLog(@"右眼閉著的");

? ? ? ? if(face.hasLeftEyePosition)

? ? ? ? ? ? NSLog(@"左眼位置:%@",NSStringFromCGPoint(face.leftEyePosition));

? ? ? ? if(face.hasRightEyePosition)

? ? ? ? ? ? NSLog(@"右眼位置:%@",NSStringFromCGPoint(face.rightEyePosition));

? ? ? ? if(face.hasMouthPosition)

? ? ? ? ? ? NSLog(@"嘴巴位置:%@",NSStringFromCGPoint(face.mouthPosition));

? ? ? ? NSLog(@"臉部區(qū)域:%@",NSStringFromCGRect(face.bounds));

? ? ? ? if(face.bounds.size.width==face.bounds.size.height)

? ? ? ? ? ? NSLog(@"臉蛋是圓的");

? ? }else{

? ? ? ? UIAlertView*alert = [[UIAlertViewalloc]initWithTitle:@"提示"message:@"檢測(cè)人臉失敗"delegate:selfcancelButtonTitle:@"確定"otherButtonTitles:nil,nil];

? ? ? ? [alertshow];

? ? }

}


????????實(shí)現(xiàn)起來(lái)很簡(jiǎn)單迟螺,經(jīng)過(guò)測(cè)試這中方法可以檢測(cè)多張人臉,但是相對(duì)專業(yè)算法識(shí)別失敗的概率還是較大舍咖,同時(shí)矩父,類人臉卡通圖片有很大的可能性識(shí)別成功,沒(méi)辦法篩選出來(lái)排霉。

????????另外窍株,現(xiàn)在很多時(shí)候單單的人臉檢測(cè)已經(jīng)滿足不了需求了,還需要加上活體檢測(cè)來(lái)提高安全性,活體檢測(cè)現(xiàn)在普遍用的是眨眼球订,張嘴后裸,左右上下?lián)u頭等,來(lái)判斷是否是真人冒滩。但是微驶,現(xiàn)在的小伙伴都是有才的人,這種方法怎么可能難住呢开睡,于是錄個(gè)點(diǎn)頭搖頭或者眨眼的視頻就來(lái)騙這種活體檢測(cè)的方法因苹,而且很多時(shí)候還成功了~~~所以,針對(duì)人臉活體檢測(cè)目前個(gè)人覺(jué)得最好的辦法是人臉檢測(cè)+隨機(jī)數(shù)字閱讀士八。

????????第三方的人臉活體檢測(cè)中容燕,訊飛的活體檢測(cè)不是太穩(wěn)定,識(shí)別的坐標(biāo)點(diǎn)跳動(dòng)偏差較大婚度,同時(shí)CPU的使用率很高蘸秘,我用了十來(lái)分鐘手機(jī)就開(kāi)始發(fā)燙,而要是屏幕小的手機(jī)識(shí)別率又變的更低蝗茁。醋虏。。


加上OpenCV地址:https://opencv.org/releases.html

未完待續(xù)~~~

沒(méi)有續(xù)了哮翘,第三方的不管了颈嚼。如果有商務(wù)合作的話,第三方會(huì)把你當(dāng)上帝的饭寺。阻课。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末艰匙,一起剝皮案震驚了整個(gè)濱河市限煞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌员凝,老刑警劉巖署驻,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異健霹,居然都是意外死亡旺上,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門糖埋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宣吱,“玉大人,你說(shuō)我怎么就攤上這事瞳别×杞冢” “怎么了钦听?”我有些...
    開(kāi)封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵洒试,是天一觀的道長(zhǎng)倍奢。 經(jīng)常有香客問(wèn)我,道長(zhǎng)垒棋,這世上最難降的妖魔是什么卒煞? 我笑而不...
    開(kāi)封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮叼架,結(jié)果婚禮上畔裕,老公的妹妹穿的比我還像新娘。我一直安慰自己乖订,他們只是感情好扮饶,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著乍构,像睡著了一般甜无。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哥遮,一...
    開(kāi)封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天岂丘,我揣著相機(jī)與錄音,去河邊找鬼眠饮。 笑死奥帘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仪召。 我是一名探鬼主播寨蹋,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼扔茅!你這毒婦竟也來(lái)了已旧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤咖摹,失蹤者是張志新(化名)和其女友劉穎评姨,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體萤晴,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吐句,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了店读。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗦枢。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖屯断,靈堂內(nèi)的尸體忽然破棺而出文虏,到底是詐尸還是另有隱情侣诺,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布氧秘,位于F島的核電站年鸳,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏丸相。R本人自食惡果不足惜搔确,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望灭忠。 院中可真熱鬧膳算,春花似錦、人聲如沸弛作。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)映琳。三九已至机隙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刊头,已是汗流浹背黍瞧。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留原杂,地道東北人印颤。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像穿肄,于是被迫代替她去往敵國(guó)和親年局。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容