當(dāng)前位置:首頁(yè) > 智能硬件 > 人工智能AI
[導(dǎo)讀]   在之前講到的人臉測(cè)試后,提取出人臉來(lái),并且保存下來(lái),以供訓(xùn)練或識(shí)別是用,提取人臉的代碼如下:      人臉預(yù)處理   現(xiàn)在你已經(jīng)得到一張人臉,你可以使用那張人臉圖片

  在之前講到的人臉測(cè)試后,提取出人臉來(lái),并且保存下來(lái),以供訓(xùn)練或識(shí)別是用,提取人臉的代碼如下:

  

  人臉預(yù)處理

  現(xiàn)在你已經(jīng)得到一張人臉,你可以使用那張人臉圖片進(jìn)行人臉識(shí)別。然而,假如你嘗試這樣簡(jiǎn)單地從一張普通圖片直接進(jìn)行人臉識(shí)別的話,你將會(huì)至少損失10%的準(zhǔn)確率!

  在一個(gè)人臉識(shí)別系統(tǒng)中,應(yīng)用多種預(yù)處理技術(shù)對(duì)將要識(shí)別的圖片進(jìn)行標(biāo)準(zhǔn)化處理是極其重要的。多數(shù)人臉識(shí)別算法對(duì)光照條件十分敏感,所以假如在暗室訓(xùn)練,在明亮的房間就可能不會(huì)被識(shí)別出來(lái)等等。這個(gè)問(wèn)題可歸于“luminaTIon dependent”,并且還有其它很多例子,比如臉部也應(yīng)當(dāng)在圖片的一個(gè)十分固定的位置(比如眼睛位置為相同的像素坐標(biāo)),固定的大小,旋轉(zhuǎn)角度,頭發(fā)和裝飾,表情(笑,怒等),光照方向(向左或向上等),這就是在進(jìn)行人臉識(shí)別前,使用好的圖片預(yù)處理過(guò)濾器十分重要的原因。你還應(yīng)該做一些其它事情,比如去除臉部周圍的多余像素(如用橢圓遮罩,只顯示其內(nèi)部的人臉區(qū)域而不是頭發(fā)或圖片背景,因?yàn)樗麄兊淖兓嘤谀槻繀^(qū)域)。

  為簡(jiǎn)單起見(jiàn),我展示給你的人臉識(shí)別系統(tǒng)是使用灰度圖像的特征臉?lè)椒āK晕覍⑾蚰阏f(shuō)明怎樣簡(jiǎn)單地把彩色圖像轉(zhuǎn)化為灰度圖像,并且之后簡(jiǎn)單地使用直方圖均衡化(Histogram EqualizaTIon)作為一種自動(dòng)的標(biāo)準(zhǔn)化臉部圖像亮度和對(duì)比度的方法。為了得到更好的結(jié)果,你可以使用彩色人臉識(shí)別(color face recogniTIon,ideally with color histogram fitTIng in HSV or another color space instead of RGB),或者使用更多的預(yù)處理,比如邊緣增強(qiáng)(edge enhancement),輪廓檢測(cè)(contour detection),手勢(shì)檢測(cè)(motion detection),等等。

  PCA原理

  現(xiàn)在你已經(jīng)有了一張經(jīng)過(guò)預(yù)處理后的臉部圖片,你可以使用特征臉(PCA)進(jìn)行人臉識(shí)別。OpenCV自帶了執(zhí)行PCA操作的”cvEigenDecomposite()”函數(shù),然而你需要一個(gè)圖片數(shù)據(jù)庫(kù)(訓(xùn)練集)告訴機(jī)器怎樣識(shí)別當(dāng)中的人。

  所以你應(yīng)該收集每個(gè)人的一組預(yù)處理后的臉部圖片用于識(shí)別。比如,假如你想要從10人的班級(jí)當(dāng)中識(shí)別某個(gè)人,你可以為每個(gè)人存儲(chǔ)20張圖片,總共就有200張大小相同(如100×100像素)的經(jīng)預(yù)處理的臉部圖片。

  特征臉的理論在Servo Magazine的兩篇文章(Face Recognition with Eigenface)中解釋了,但我仍會(huì)在這里嘗試著向你解釋。

  我們使用“主元分析”把你的200張訓(xùn)練圖片轉(zhuǎn)換成一個(gè)代表這些訓(xùn)練圖片主要區(qū)別的“特征臉”集。首先它將會(huì)通過(guò)獲取每個(gè)像素的平均值,生成這些圖片的“平均人臉圖片”。然后特征臉將會(huì)與“平均人臉”比較。第一個(gè)特征臉是最主要的臉部區(qū)別,第二個(gè)特征臉是第二重要的臉部區(qū)別,等……直到你有了大約50張代表大多數(shù)訓(xùn)練集圖片的區(qū)別的特征臉。

  在上面這些示例圖片中你可以看到平均人臉和第一個(gè)以及最后一個(gè)特征臉。注意到,平均人臉顯示的是一個(gè)普通人的平滑臉部結(jié)構(gòu),排在最前的一些特征臉顯示了一些主要的臉部特征,而最后的特征臉(比如Eigenface 119)主要是圖像噪聲。你可以在下面看到前32張?zhí)卣髂槨?/p>

  簡(jiǎn)單地說(shuō),特征臉?lè)椒ǎ≒rincipal Component Analysis)計(jì)算出了訓(xùn)練集中圖片的主要區(qū)別,并且用這些“區(qū)別”的組合來(lái)代表每幅訓(xùn)練圖片。

  比如,一張訓(xùn)練圖片可能是如下的組成:

 ?。╝verageFace) + (13.5% of eigenface0) – (34.3% of eigenface1) + (4.7% of eigenface2) + … + (0.0% of eigenface199)。

  一旦計(jì)算出來(lái),就可以認(rèn)為這張訓(xùn)練圖片是這200個(gè)比率(ratio):

  {13.5, -34.3, 4.7, …, 0.0}。

  用特征臉圖片分別乘以這些比率,并加上平均人臉圖片 (average face),從這200個(gè)比率還原這張訓(xùn)練圖片是完全可以做到的。但是既然很多排在后面的特征臉是圖像噪聲或者不會(huì)對(duì)圖片有太大作用,這個(gè)比率表可以被降低到只剩下最主要的,比如前30個(gè),不會(huì)對(duì)圖像質(zhì)量有很大影響。所以現(xiàn)在可以用30個(gè)特征臉,平均人臉圖片,和一個(gè)含有30個(gè)比率的表,來(lái)代表全部的200張訓(xùn)練圖片。

  在另一幅圖片中識(shí)別一個(gè)人,可以應(yīng)用相同的PCA計(jì)算,使用相同的200個(gè)特征臉來(lái)尋找200個(gè)代表輸入圖片的比率。并且仍然可以只保留前30個(gè)比率而忽略其余的比率,因?yàn)樗鼈兪谴我摹H缓笸ㄟ^(guò)搜索這些比率的表,尋找在數(shù)據(jù)庫(kù)中已知的20個(gè)人,來(lái)看誰(shuí)的前30個(gè)比率與輸入圖片的前30個(gè)比率最接近。這就是尋找與輸入圖片最相似的訓(xùn)練圖片的基本方法,總共提供了200張訓(xùn)練圖片。

  訓(xùn)練圖片

  創(chuàng)建一個(gè)人臉識(shí)別數(shù)據(jù)庫(kù),就是訓(xùn)練一個(gè)列出圖片文件和每個(gè)文件代表的人的文本文件,形成一個(gè)facedata.xml“文件。

  比如,你可以把這些輸入一個(gè)名為”trainingphoto.txt”的文本文件:

  joke1.jpg

  joke2.jpg

  joke3.jpg

  joke4.jpg

  lily1.jpg

  lily2.jpg

  lily3.jpg

  lily4.jpg

  它告訴這個(gè)程序,第一個(gè)人的名字叫“joke,而joke有四張預(yù)處理后的臉部圖像,第二個(gè)人的名字叫”lily”,有她的四張圖片。這個(gè)程序可以使用”loadFaceImgArray()”函數(shù)把這些圖片加載到一個(gè)圖片數(shù)組中。

  為了從這些加載好的圖片中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),你可以使用OpenCV的”cvCalcEigenObjects()”和”cvEigenDecomposite()”函數(shù)。

  獲得特征空間的函數(shù):

  void cvCalcEigenObjects( int nObjects, void* input, void* output, int ioFlags, int ioBufSize, void* userData,CvTermCriteria* calcLimit, IplImage* avg, float* eigVals )

  nObjects:目標(biāo)的數(shù)目,即輸入訓(xùn)練圖片的數(shù)目。

  input:輸入訓(xùn)練的圖片。

  output:輸出特征臉,總共有nEigens

  ioFlags、ioBufSize:默認(rèn)為0

  userData:指向回調(diào)函數(shù)(callback function)必須數(shù)據(jù)結(jié)構(gòu)體的指針。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉