人臉跟蹤開源項目HyperFT代碼算法解析及改進

一损肛、簡介

人臉識別已經(jīng)成為計算機視覺領(lǐng)域中最熱門的應(yīng)用之一稿黄,其中,人臉信息處理的第一個環(huán)節(jié)便是人臉檢測和人臉跟蹤铛只。人臉檢測是指在輸入的圖像中確定所有人臉的位置、大小和姿勢的過程糠溜。人臉跟蹤是指在圖像序列中確定各幀間人臉的對應(yīng)關(guān)系的過程淳玩,即確定每個人臉的運動軌跡及其大小變化的過程。


人臉跟蹤最初的應(yīng)用源于人類識別非竿。人臉識別是指將輸入的人臉圖像與已知人臉庫中的模型進行比較蜕着,以確定是否存在相匹配的人臉。隨著近幾年信息化進程日益加快,安全認(rèn)證系列應(yīng)用的涌現(xiàn)红柱,這使得高度自動化的人臉識別系統(tǒng)的研究成為一個熱點承匣。以往大多數(shù)系統(tǒng)要求被識別者固定在攝像機前的某一位置,?十分不便,且在某些場合如監(jiān)控領(lǐng)域也無法實現(xiàn)豹芯。如何基于視頻悄雅,在復(fù)雜背景中直接檢測、定位運動的人臉铁蹈,并加以識別宽闲,這一問題迫切需要得到解決众眨。



二、HyperFT

這是一個移動端快速視頻多人臉跟蹤的開源項目容诬,項目是基于mtcnn人臉檢測加上簡單的模板匹配進行人臉跟蹤娩梨,算法簡單但效果顯著,移動端速度可達150幀以上览徒,該項目的優(yōu)點是可實現(xiàn)多人臉跟蹤狈定。


github地址:https://github.com/zeusees/HyperFT


三、代碼算法解析

HyperFT項目的多人臉跟蹤算法分為三大部分:

第一部分是初始化习蓬。通過mtcnn的人臉檢測找出第一幀的人臉位置纽什,然后根據(jù)結(jié)果對人臉跟蹤進行初始化;


第二部分是更新躲叼。首先利用模板匹配進行人臉目標(biāo)位置的初步預(yù)判芦缰,再結(jié)合mtcnn中的onet對人臉位置進行更加精細的定位,最后通過mtcnn中的rnet的置信度來判斷跟蹤目標(biāo)是否為人臉枫慷,防止當(dāng)有手從面前慢慢揮過時让蕾,框會跟著手走,導(dǎo)致無法跟蹤到真正的人臉或听;


第三部分是定時檢測探孝。通過在更新的部分中加入一個定時器來做定時人臉檢測,從而判斷中途是否有新的人臉加入誉裆,本項目在定時人臉檢測中使用了一個trick——就是將已跟蹤的人臉?biāo)谖恢美妹砂嬲诒纹饋矶俾苊饬巳四槞z測的重復(fù)進行,從而減少其計算量找御,提高了檢測速度元镀。


四、算法改進的思路

HyperFT項目是在當(dāng)前已實現(xiàn)多人臉跟蹤的開源項目中取得顯著效果的項目之一霎桅,其優(yōu)點是人臉跟蹤速度快且可以進行對多個人臉的跟蹤栖疑。由于使用的算法是基于mtcnn和模板匹配實現(xiàn)的,在進行多人臉跟蹤時有一定的局限性滔驶,所以算法仍存在一定的可提升空間遇革。

1、替換人臉檢測模型:可將mtcnn的人臉檢測模型替換成yufacedetectnetRetinaFace等模型揭糕,人臉檢測的時間即可不受人臉數(shù)量的影響萝快。

2、替換目標(biāo)跟蹤算法:可將模板匹配算法替換成TLD和光流法等跟蹤算法著角,相比于模板匹配揪漩,跟蹤速度有一定的提升。


五吏口、項目中加入五個關(guān)鍵點跟蹤的實踐

1奄容、在HyperFT項目中的Face類中僅定義了人臉矩形的變量冰更,如若需要加入五個關(guān)鍵點的跟蹤則需要在Face類中需要定義一個Bbox類的faceBbox,這樣Face即能保存人臉位置又能保存人臉關(guān)鍵點昂勒。

?


2蜀细、在原來的doingLandmark_onet函數(shù)的基礎(chǔ)上重載函數(shù),將傳入的std::vector<cv::Point> &pts改為傳入Bbox& faceBbox戈盈。


?

3奠衔、在tracking函數(shù)中修改doingLandmark_onet函數(shù)的調(diào)用

?


4、通過人臉跟蹤中Face類中的faceBbox即可獲得人臉的位置及其五個人臉關(guān)鍵點(main.cpp)

?


改進后的項目->GitHub地址:https://github.com/qaz734913414/Ncnn_FaceTrack


?


zeusee.com智云視圖

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末塘娶,一起剝皮案震驚了整個濱河市归斤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌血柳,老刑警劉巖官册,帶你破解...
    沈念sama閱讀 212,294評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異难捌,居然都是意外死亡,警方通過查閱死者的電腦和手機鸦难,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評論 3 385
  • 文/潘曉璐 我一進店門根吁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人合蔽,你說我怎么就攤上這事击敌。” “怎么了拴事?”我有些...
    開封第一講書人閱讀 157,790評論 0 348
  • 文/不壞的土叔 我叫張陵沃斤,是天一觀的道長。 經(jīng)常有香客問我刃宵,道長衡瓶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,595評論 1 284
  • 正文 為了忘掉前任牲证,我火速辦了婚禮哮针,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘坦袍。我一直安慰自己十厢,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,718評論 6 386
  • 文/花漫 我一把揭開白布捂齐。 她就那樣靜靜地躺著蛮放,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奠宜。 梳的紋絲不亂的頭發(fā)上包颁,一...
    開封第一講書人閱讀 49,906評論 1 290
  • 那天瞻想,我揣著相機與錄音,去河邊找鬼徘六。 笑死内边,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的待锈。 我是一名探鬼主播漠其,決...
    沈念sama閱讀 39,053評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼竿音!你這毒婦竟也來了和屎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,797評論 0 268
  • 序言:老撾萬榮一對情侶失蹤春瞬,失蹤者是張志新(化名)和其女友劉穎柴信,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宽气,經(jīng)...
    沈念sama閱讀 44,250評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡随常,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,570評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了萄涯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绪氛。...
    茶點故事閱讀 38,711評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖涝影,靈堂內(nèi)的尸體忽然破棺而出枣察,到底是詐尸還是另有隱情,我是刑警寧澤燃逻,帶...
    沈念sama閱讀 34,388評論 4 332
  • 正文 年R本政府宣布序目,位于F島的核電站,受9級特大地震影響伯襟,放射性物質(zhì)發(fā)生泄漏猿涨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,018評論 3 316
  • 文/蒙蒙 一逗旁、第九天 我趴在偏房一處隱蔽的房頂上張望嘿辟。 院中可真熱鬧,春花似錦片效、人聲如沸红伦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,796評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昙读。三九已至,卻和暖如春膨桥,著一層夾襖步出監(jiān)牢的瞬間蛮浑,已是汗流浹背唠叛。 一陣腳步聲響...
    開封第一講書人閱讀 32,023評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沮稚,地道東北人艺沼。 一個月前我還...
    沈念sama閱讀 46,461評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蕴掏,于是被迫代替她去往敵國和親障般。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,595評論 2 350

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