下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、百度文庫(kù)-讓每個(gè)人平等地提升自我基于OpenCV的人臉識(shí)別設(shè)計(jì)方案圖(2012/7/12 13:34 )人臉識(shí)別的研究可以追溯到上個(gè)世紀(jì)六、七十年代,經(jīng)過(guò)幾十年的曲折發(fā)展已日趨成 熟,構(gòu)建人臉識(shí)別系統(tǒng)需要用到一系列相關(guān)技術(shù),包括人臉圖像采集、人臉定位、人臉識(shí) 別預(yù)處理、身份確認(rèn)以及身份查找等.而人臉識(shí)別在基于內(nèi)容的檢索、數(shù)字視頻處理、視 頻檢測(cè)等方面有著重要的應(yīng)用價(jià)值,可廣泛應(yīng)用于各類(lèi)監(jiān)控場(chǎng)合,因此具有廣泛的應(yīng)用前 景。OpenCV是公司支持的開(kāi)源視覺(jué)庫(kù)。它輕量級(jí)而且高效-由一系列C函數(shù)和少量 C+類(lèi)構(gòu)成,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法,作為一個(gè)基本的計(jì)算 機(jī)視覺(jué)、圖像處理和模式
2、識(shí)別的開(kāi)源項(xiàng)目,OpenCV可以直接應(yīng)用于很多領(lǐng)域,其中就包 括很多可以應(yīng)用于人臉識(shí)別的算法實(shí)現(xiàn),是作為第二次開(kāi)發(fā)的理想工具。1系統(tǒng)組成本文的人臉識(shí)別系統(tǒng)在Linux操作系統(tǒng)下利用QT庫(kù)來(lái)開(kāi)發(fā)圖形界而,以O(shè)penCV圖 像處理庫(kù)為基礎(chǔ),利用庫(kù)中提供的相關(guān)功能函數(shù)進(jìn)行各種處理:通過(guò)相機(jī)對(duì)圖像數(shù)據(jù)進(jìn)行 采集,人臉檢測(cè)主要是調(diào)用已訓(xùn)練好的Haar分類(lèi)器來(lái)對(duì)采集的圖像進(jìn)行模式匹配,檢測(cè) 結(jié)果利用PCA算法可進(jìn)行人臉圖像訓(xùn)練與身份識(shí)別,而人臉表情識(shí)別則利用了 Camshift 跟蹤算法和Lucas-Kanade光流算法。2搭建開(kāi)發(fā)環(huán)境采用德國(guó)Basler acA640-100gc相機(jī),PC機(jī)上的操作系統(tǒng)
3、是Fedora 10,并安裝編 譯器,QT和軟件工具包,為了處理視頻,編譯OpenCV前需編譯FFmpeg,而FFmpeg 還依賴(lài)于Xvid庫(kù)和X264庫(kù)。3應(yīng)用系統(tǒng)開(kāi)發(fā)程序主要流程如圖1所示。圖1程序流程(visio)圖像采集圖像采集模塊可以通過(guò)cvCaptureFromAVI ()從本地保存的圖像文件或 c vCa pt u re From Ca m ()從相機(jī)得到圖像,cvSetCaptureProperty ()可以對(duì)返 回的結(jié)構(gòu)進(jìn)行設(shè)置:Ipllmage *frame;CvCapture* cAMEra = 0;camera = cvCaptureFromCAM ( 0 ):cvSe
4、tCaptureProperty (camera,CV CAP PROP FRAME WIDTH, 320 );cvSetCaptureProperty (camera,CV CAP PROP FRAME HEIGHT, 240 );然后利用start ()函數(shù)開(kāi)啟QTimer定時(shí)器,每隔一段時(shí)間發(fā)送信號(hào)調(diào)用自定義的 槽函數(shù),該槽函數(shù)用cvGmbFrame ()從視頻流中抓取一幀圖像放入緩存,再利用 CvRetrieveFrame ()從內(nèi)部緩存中將幀圖像讀出用于接下來(lái)的處理與顯示。在qt中顯 示之前,需將Ipllmage* source轉(zhuǎn)換為QPixmap類(lèi)型。uchar *qImageBu
5、ffer = NULL;/*根據(jù)圖像大小分配緩沖區(qū)*/qlmageBuffer = (uchar*) malloc (source->width *source->height * 4 * sizeof (uchar):/*將緩沖區(qū)指針拷貝到存取Qimage的指針中*/uchar *QImagePtr = qlmageBuffer;/*獲取源圖像內(nèi)存指針*/Const uchar*iplImagePtr=reinterpret_cast (source->imageData):/*通過(guò)循環(huán)將源圖像數(shù)據(jù)拷貝入緩沖區(qū)內(nèi)*/for (int y = 0; y < source
6、->height; +y) for (int x = 0; x < source->width; +x) QImagePtr0 = iplImagePtr0;QImagePtrl = iplImagePtrl;QImagePtr2 = iplImagePtr2;QImagePtr3 = 0;QlmagePtr += 4;iplImagePtr += 3; iplImagePtr+=source->widthStep-3*source->width; /*將 Qimage 轉(zhuǎn)換為 Qpixmap*/QPixmap local =QPixmap:fromlmage (
7、Qimage (qImageBuffer,source->width,source->height, Qimage:Format_RGB32);/*釋放緩沖區(qū)*/free (qlmageBuffer):最后利用QLabel的setPixmap ()函數(shù)進(jìn)行顯示.圖像預(yù)處理3百度文庫(kù)-讓每個(gè)人平等地提升白我由于大部分的臉部檢測(cè)算法對(duì)光照,臉部大小,位置表情等非常敏感,當(dāng)檢測(cè)到臉部 后需利用cvCvtcolor ()轉(zhuǎn)化為灰度圖像,利用cvEqualizeHist ()進(jìn)行直方圖歸一化 處理。臉部檢測(cè)方法OpenCV采用一種叫做Haar cascade classifier的人臉檢測(cè)器
8、,他利用保存在XML 文件中的數(shù)據(jù)來(lái)確定每一個(gè)局部搜索圖像的位置,先用“Load ()從文件中加載 CvHaarClassifierCascade 變量,然后利用 cvHaarDetectObjects ()來(lái)進(jìn)行檢測(cè), 函數(shù)使用針對(duì)某目標(biāo)物體訓(xùn)練的級(jí)聯(lián)分類(lèi)器在圖像中找到包含目標(biāo)物體的矩形區(qū)域,并且 將這些區(qū)域作為一序列的矩形框返回,最終檢測(cè)結(jié)果保存在cvRect變量中。臉部識(shí)別方法識(shí)別步驟及所需函數(shù)如圖2所示。圖2識(shí)別步驟(visio)PCA方法(即特征臉?lè)椒?是和在文獻(xiàn)中提出的,該方法的基本思想是將圖像向量經(jīng) 過(guò)K-L變換后由高維向量轉(zhuǎn)換為低維向量,并形成低維線性向量空間,即特征子空間,然
9、 后將人臉投影到該低維空間,用所得到的投影系數(shù)作為識(shí)別的特征向量。識(shí)別人臉時(shí),只 需將待識(shí)別樣本的投影系數(shù)與數(shù)據(jù)庫(kù)中目標(biāo)樣本集的投影系數(shù)進(jìn)行比對(duì),以確定與哪一類(lèi) 最近。PCA算法分為兩步:核心臉數(shù)據(jù)庫(kù)生成階段,即訓(xùn)練階段以及識(shí)別階段。訓(xùn)練階段主要需要經(jīng)過(guò)如下的幾步:(1)需要一個(gè)訓(xùn)練人臉照片集。(2)在訓(xùn)練人臉照片集上計(jì)算特征臉,即計(jì)算特征值,保存最大特征值所對(duì)應(yīng)的的 M張圖片。這M張圖片定義了”特征臉空間”(原空間的一個(gè)子空間)。當(dāng)有新的人臉添 加進(jìn)來(lái)時(shí),這個(gè)特征臉可以進(jìn)行更新和重新計(jì)算得到。(3)在“特征臉空間”上,將要識(shí)別的各個(gè)個(gè)體圖片投影到各個(gè)軸(特征臉)上,計(jì) 算得到一個(gè)M維的權(quán)重向
10、量。簡(jiǎn)單而言,就是計(jì)算得到各個(gè)個(gè)體所對(duì)應(yīng)于M維權(quán)重空間 的坐標(biāo)值。OpenCV實(shí)現(xiàn)為:cvLoadlmage ()載入圖片并利用cvCvtcolor ()轉(zhuǎn)換為灰 度圖片,建立自定義的迭代標(biāo)準(zhǔn)CvTermCriter調(diào)用cvCalcEigenObjects ()進(jìn)行 PCA操作,計(jì)算出的曰genface都存放在向量組成的數(shù)組中,利用cvEigenDecomposite ()將每一個(gè)訓(xùn)練圖片投影在PCA子空間(eigenspace)上,結(jié) 果保存在矩陣數(shù)組中,用“Write將訓(xùn)練結(jié)果保存至XML文件中。下面圖3為訓(xùn)練得到 的部分特征臉圖像。身份識(shí)別階段在識(shí)別新的人臉圖片時(shí),具體的操作方法流程如下
11、:(1)基于前面得到的M個(gè)特征臉,將新采集的圖片投影到各個(gè)特征臉,計(jì)算得到一 個(gè)權(quán)重集合(權(quán)重向量)。(2)判斷新圖片是否是一幅人臉圖像,即通過(guò)判斷圖像是否足夠靠近人臉空間。(3)如果是人臉圖像,則根據(jù)前而計(jì)算的權(quán)重集合(權(quán)重向量),利用權(quán)重模式將 這個(gè)人臉?lè)诸?lèi)劃歸到初始時(shí)計(jì)算得到的各個(gè)個(gè)體或者是成為一個(gè)新的個(gè)體照片。簡(jiǎn)單而 言,就是計(jì)算新權(quán)重到原來(lái)各個(gè)個(gè)體權(quán)重的距離,選擇最近的,認(rèn)為是識(shí)別成這個(gè)個(gè)體: 如果最近的距離超出閾值,則認(rèn)為是一個(gè)新的個(gè)體。(4)更新特征臉或者是權(quán)重模式。(5)如果一個(gè)未知的人臉,出現(xiàn)了很多次,也就意味著,對(duì)這個(gè)人臉沒(méi)有記錄,那 么計(jì)算它的特征權(quán)重(向量),然后將其添
12、加到已知人臉中6.OpenCV實(shí)現(xiàn)調(diào)用cvRead加載訓(xùn)練結(jié)果XML文件,調(diào)cvEigenDecomposite () 將采集圖片映射至PCA子空間,利用最近距離匹配方法SquaredEuclidean Distance, 計(jì)算要識(shí)別圖片同每一個(gè)訓(xùn)練結(jié)果的距離,找出距離最近的即可。臉部表情識(shí)別臉部運(yùn)動(dòng)跟蹤利用了 Camshift算法,該算法利用目標(biāo)的顏色直方圖模型將圖像轉(zhuǎn)換 為顏色概率分布圖,初始化一個(gè)搜索窗的大小和位置,并根據(jù)上一幀得到的結(jié)果自適應(yīng)調(diào) 整搜索窗口的位置和大小,從而定位出當(dāng)前圖像中目標(biāo)的中心位置。Camshift能有效解決目標(biāo)變形和遮擋的問(wèn)題,對(duì)系統(tǒng)資源要求不高,時(shí)間復(fù)雜度低,
13、 在簡(jiǎn)單背景下能夠取得良好的跟蹤效果。Camshift的OpenCV實(shí)現(xiàn)分以下幾步:(1)調(diào)用cvCvtColor ()將色彩空間轉(zhuǎn)化到HSI空間,調(diào)用cvSplit ()獲得其中 的H分量。(2)調(diào)用cvCreateHist ()計(jì)算H分量的直方圖,即1D直方圖。(3)調(diào)用 cvCalcBackProject ()計(jì)算 Back Projection.(4)調(diào)用cvCamShift ()輸出新的Search Window的位置和面積。我們利用光流算法評(píng)估了兩幀圖像的之間的變化,Lucas-Kanade光流算法是一種兩 幀差分的光流估計(jì)算法。它計(jì)算兩幀在時(shí)間t到t+bt之間每個(gè)每個(gè)像素點(diǎn)位置的
14、。是基 于圖像信號(hào)的泰勒級(jí)數(shù),就是對(duì)于空間和時(shí)間坐標(biāo)使用偏導(dǎo)數(shù)。首先要用到shi-Tomasi算法,該算法主要用于提取特征點(diǎn),即圖中哪些是我們感興 趣需要跟蹤的點(diǎn),對(duì)應(yīng)函數(shù)為cvGoodFeaturesToTrack (),可以自定義第一幀特征點(diǎn) 的數(shù)目,函數(shù)將輸出所找到特征值。接下來(lái)是cvCalcOptica舊owPyrLK函數(shù),實(shí)現(xiàn)了 金字塔中Lucas-Kanade光流計(jì)算的稀疏迭代版本。它根據(jù)給出的前一幀特征點(diǎn)坐標(biāo)計(jì) 算當(dāng)前視頻幀上的特征點(diǎn)坐標(biāo)。輸入?yún)?shù)包括跟蹤圖像的前一幀和當(dāng)前幀,以及上面函數(shù) 輸出的前一幀圖像特征值,自定義的迭代標(biāo)準(zhǔn),輸出所找到的當(dāng)前幀的特征值點(diǎn)。這些點(diǎn) 可以確定面部局部區(qū)域的特征如眼部,鼻子高度與寬度,嘴部?jī)蓚?cè)與底部的夾角等等,利 用與前一幀的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 海南體育職業(yè)技術(shù)學(xué)院《物聯(lián)網(wǎng)自動(dòng)識(shí)別技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 舞蹈基礎(chǔ)民族舞課程設(shè)計(jì)
- 課程設(shè)計(jì)展示匯報(bào)
- 2025年度物聯(lián)網(wǎng)技術(shù)研發(fā)與商業(yè)化應(yīng)用合同2篇
- 二零二五年度廢棄物減量化處理?xiàng)壨翀?chǎng)租賃合同3篇
- 二零二五年度教育培訓(xùn)分期支付合同6篇
- 消防器材設(shè)施管理制度范文(二篇)
- 2025年度甲乙雙方關(guān)于房地產(chǎn)項(xiàng)目開(kāi)發(fā)合作合同
- 設(shè)備潤(rùn)滑管理制度模版(2篇)
- 中西方文化差異的英文例句
- 高二年級(jí)體育課教案高二年級(jí)體育課教案全集
- 紅色經(jīng)典影片與近現(xiàn)代中國(guó)發(fā)展答案考試
- 2018年10月自考00015英語(yǔ)二真題及答案含解析
- 推進(jìn)文化自信自強(qiáng),鑄就社會(huì)主義文化新輝煌 心得體會(huì)
- 電工(四級(jí))理論知識(shí)考核要素細(xì)目表
- GP12控制作業(yè)指導(dǎo)書(shū)
- PMC部門(mén)職責(zé)及工作流程課件
- 西藏省考行測(cè)歷年真題及答案
- 安防系統(tǒng)保養(yǎng)維護(hù)方案
- 《人體發(fā)育學(xué)》考試復(fù)習(xí)題庫(kù)及答案
- 【人生哲學(xué)與傳統(tǒng)道德4200字(論文)】
評(píng)論
0/150
提交評(píng)論