freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm的實(shí)時(shí)人眼定位系統(tǒng)(參考版)

2025-06-22 13:16本頁面
  

【正文】 (2)對(duì)于AdaBoost算法來說,訓(xùn)練圖片的選取非常。但是,由于實(shí)驗(yàn)環(huán)境和條件以及各方面的限制,本系統(tǒng)在很多方面還存在著不足:(1)圖像采集部分受外界因素影響較大,比如夜晚或地下等光線較暗的情況下。因此OpenCV在嵌入式上的移植,代碼的研究和應(yīng)用開發(fā)中的具體問題將是本文的重點(diǎn)研究內(nèi)容。另外由于OpenCV對(duì)于圖像處理很好的支持,本文還介紹了如何使用OpenCV實(shí)現(xiàn)實(shí)時(shí)人眼定位的軟件的設(shè)計(jì)。本文通過對(duì)嵌入式技術(shù)和產(chǎn)品便攜化的深入研究,建立了一個(gè)基于ARM的嵌入式實(shí)時(shí)人眼定位的實(shí)驗(yàn)系統(tǒng),采用ARM9處理器S3C2440作為系統(tǒng)的CPU,Linux作為嵌入式操作系統(tǒng),使得定位系統(tǒng)小型、便攜并且具有較低的開發(fā)成本。無論是在科技、國防、工商業(yè)還是金融等領(lǐng)域,越來越多的圖像處理的理論和實(shí)踐成果在現(xiàn)實(shí)的生產(chǎn)生活中得到積極的應(yīng)用。 實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)可實(shí)時(shí)定位人眼位置,但該系統(tǒng)也存在明顯的不足,比如在光照條件差和有遮擋物的情況下無法定位人眼,所以系統(tǒng)仍然需要改進(jìn)。 cvRectangle( img, left, right, colors, 3, 8, 0 )。 = (rx + rwidth*5/6)*scale)。//獲得人臉的矩形框 = (rx + rwidth/6)*scale)。該方法定位速度快,精度良好,而且一些遮擋物如眼鏡等對(duì)定位效果沒有影響,程序如下。//Haar特征檢測函數(shù)人臉檢測到后,根據(jù)人眼在人臉中的比例位置近似定位人眼。//導(dǎo)入訓(xùn)練好的xml文件storage = cvCreateMemStorage(0)。為了能對(duì)視頻圖像進(jìn)行更快的實(shí)時(shí)檢測,最小檢測窗口設(shè)為60*60,程序如下。有時(shí)候也會(huì)利用某些繼承技術(shù)以減少分析的候選區(qū)域,例如利用Canny邊緣檢測裁減的方法[39]。函數(shù)以不同比例大小的掃描窗口對(duì)圖像進(jìn)行幾次搜索。 人臉檢測和人眼定位在Adaboost算法中,比較重要的環(huán)節(jié)是訓(xùn)練人臉分類器,而在OpenCV視覺庫中有很多訓(xùn)練好的人臉分類器,這些分類器都經(jīng)過了優(yōu)化,檢測精度高,速度快,而且在實(shí)際應(yīng)用中得到驗(yàn)證,所以我們使用現(xiàn)成的人臉分類器。訓(xùn)練過程中會(huì)在data文件夾中生成每一層分類器的參數(shù),用記事本文件保存。一般而言,訓(xùn)練樣本數(shù)量越多,訓(xùn)練層次越多,訓(xùn)練的時(shí)間越長,如果想訓(xùn)練一個(gè)比較好的分類器一般要訓(xùn)練23天。最后使用的特征個(gè)數(shù)也會(huì)和迭代的次數(shù)相關(guān)(圖中使用的是stumps分類器,所以使用特征個(gè)數(shù)和迭代次數(shù)相同)。其中“N”表示進(jìn)行迭代的輪次;“%SMP”表示采用的樣本的百分比(默認(rèn)狀況一般是100%);“F”表示是否存在翻轉(zhuǎn),“+”表示有(選用了sym參數(shù)才有效),“”表示沒有;“”表示當(dāng)前的判斷閾值;“HR”表示hitrate;“FA”表示false alarm;“”表示構(gòu)成的強(qiáng)分類器目前的錯(cuò)誤率。所以,當(dāng)訓(xùn)練的層數(shù)越高時(shí),尋找負(fù)樣本的時(shí)間就花得越多。在訓(xùn)練之前會(huì)有一個(gè)預(yù)處理步驟,就是要將負(fù)樣本從背景圖像中提取出來。w h訓(xùn)練樣本的尺寸,以像素為單位。mode選擇用來訓(xùn)練的haar特征集的種類。minhitrate每層分類器需要的最小的命中率。我們認(rèn)定人臉和鼻子圖像是左右垂直對(duì)稱的,單一的眼睛圖像是非左右垂直對(duì)稱的。symnonsym指定訓(xùn)練的目標(biāo)對(duì)象是否左右垂直對(duì)稱。mem預(yù)先計(jì)算的以MB為單位的可用內(nèi)存。如果為1,則一個(gè)簡單的stump分類使用。nstages所生成的級(jí)聯(lián)AdaBoost分類器的層數(shù)。nposnneg用來訓(xùn)練每一個(gè)分類器階段的正/負(fù)樣本數(shù)量。將樣本圖像統(tǒng)一縮放到指定寬度和高度進(jìn)行特量提取。num需要從原始圖像中進(jìn)行特征提取的正樣本數(shù)量總數(shù)。其中,:info包含正樣本矩形參數(shù)的寫字本文件路徑。 樣本的創(chuàng)建樣本的創(chuàng)建是針對(duì)正樣本而言的。 測試OpenCV庫查看頭文件: [rootlocalhostopencvarm]ls/usr/local/arm/lib/opencv/include/opencv / [rootlocalhostopencvarm]ls/usr/local/arm/lib/opencv/include/opencv/ 查看庫文件:[rootlocalhost opencvarm] ls /usr/local/arm/lib/opencv/lib [rootlocalhost opencvarm] ls /usr/local/arm/lib/opencv/lib armlinuxg++I/usr/local/arm/lib/opencv/include/opencv/ L/usr/local/arm/lib/opencv/lib/ lcv lcxcore lhighgui lpthread lrt o test 首先復(fù)制主機(jī)/usr/local/arm/lib/opencv/lib/,再復(fù)制我們編譯的test到嵌入式系統(tǒng)/opt/myworks/目錄下(并確保文件test屬性為可執(zhí)行),如果test可正常運(yùn)行沒有報(bào)告缺少庫文件,說明我們編譯的armlinux版OpenCV庫已經(jīng)可以正常使用。,CMAKE_EXE_LINKER_FLAGS原來為空,加上lpthread lrt,重新編譯,錯(cuò)誤消除。../../lib/: undefined reference to `pthread_setspecific39。../../lib/: undefined reference to `pthread_key_create39。另外,我沒有安裝tiff圖像的支持,因此去掉WITH_TIFF點(diǎn)擊Generate生成Makefile。 選擇源代碼目錄:/usr/local/ 選擇Build目錄:/usr/local/opencvarm/ 點(diǎn)擊Configure,保持generator為Unix Makefiles,選擇Specify options for crosspiling,點(diǎn)擊Next。,作為CMake編譯arm版本的工作目錄。解壓到目錄/usr/local/,然后在環(huán)境變量PATH中增加/usr/local/。 OpenCV庫函數(shù)在ARM平臺(tái)的移植過程 預(yù)備工作:1. 安裝交叉編譯鏈:我使用的是armlinuxgcc ,解壓到目錄/usr/local/arm/,然后在環(huán)境變量PATH中增加/usr/local/arm/。該方法可以充分利用編譯時(shí)優(yōu)化(pile time optimization),能夠讓CPU即使執(zhí)行浮點(diǎn)運(yùn)算也能執(zhí)行連續(xù)的指令,減少無謂的分支。另一種是使用軟浮點(diǎn)工具鏈,它是由交叉工具鏈提供的。(3)采用軟浮點(diǎn)運(yùn)算。比如像素,在要求不嚴(yán)格的情況下可直接定義為整型。這是C而不是C++,所以這些初始化函數(shù)只是內(nèi)聯(lián)函數(shù),它們首先提取參數(shù)列表,然后返回被賦予相關(guān)值的結(jié)構(gòu)。所有這些數(shù)據(jù)類型具有以其名稱來定義的初始化函數(shù),例如cvSize()。緊接著是包含4個(gè)整型成員的CvScalar類型,當(dāng)內(nèi)存不是問題時(shí),CvScalar經(jīng)常用來代替2或者3個(gè)實(shí)數(shù)成員。如果希望使用浮點(diǎn)類型,則選用CvSize的變體類型CvSize2D32f。CvPoint有兩個(gè)變體類型:CvPoint2D32f和CvPoint3D32f,二者都有兩個(gè)成員x,y,但它們是浮點(diǎn)類型,而后者卻多了一個(gè)浮點(diǎn)類型的成員。可以在“…/OpenCV/cxcore/include”。 移植的關(guān)鍵問題本文所要嘗試的是將OpenCV從通用PC平臺(tái)移植到ARM平臺(tái),所以數(shù)據(jù)類型成為研究的關(guān)鍵問題。軟件單元在這里主要指應(yīng)用程序、系統(tǒng)程序或一個(gè)程序的組件;一個(gè)軟件系統(tǒng)是軟件單元的集合;環(huán)境在這里具體指在安裝過程中與所移植的軟件產(chǎn)生相互作用的一切基礎(chǔ)設(shè)施,通常包括處理器和操作系統(tǒng),也可能包括I/O設(shè)備、各種軟件庫、網(wǎng)絡(luò)或更大的人文和物理系統(tǒng)。除了基本圖像結(jié)構(gòu)、矩陣結(jié)構(gòu)和點(diǎn)結(jié)構(gòu)外,開放庫中還提供了許多數(shù)據(jù)類型,如數(shù)組(CvArray)、動(dòng)態(tài)存儲(chǔ)結(jié)構(gòu)(CvMemStorge)、序列(CvSeq)、尺寸(CvSize)等。//x軸(橫軸)坐標(biāo)int y。(3)點(diǎn)結(jié)構(gòu)圖像處理中經(jīng)常涉及對(duì)像素點(diǎn)的訪問,OpenCV中定義了5種點(diǎn)結(jié)構(gòu),其中二維點(diǎn)結(jié)構(gòu)有CvPoint、CvPointZD32f、CvPointZD64;三維點(diǎn)結(jié)構(gòu)有CvPoint3D32f、CvPoint3D64f。 Int cols。 }。union{ int cols。 int height。}data。float * f1。Short * s。 int hdr_refcount。 int step。(2)矩陣結(jié)構(gòu)圖像處理中涉及到大量的矩陣運(yùn)算,而OpenCV對(duì)矩陣運(yùn)算有很好的支持,定義了CvMat—二維矩陣,CvMatND—多維矩陣,CvSparseMat—稀疏矩陣等幾種常用矩陣結(jié)構(gòu)體。//表示四個(gè)邊的常數(shù)char* imageDataOrigin。//排列的行字節(jié)數(shù)int BorderMode[4]。//圖像的大小,以字節(jié)(bytes)為單位char*imageData。//用于應(yīng)用中,對(duì)于OpenCV庫可忽略struct_IplTileInfo*tilelnfo。//指向感興趣區(qū)域ROI結(jié)構(gòu)體的指針,NULL表示沒有,即整個(gè)圖像全部選中,若該值非空則只對(duì)該區(qū)域進(jìn)行處理struct_IplImage*maskROI。//圖像的寬度,單位是像素(pixel)int height。//坐標(biāo)原點(diǎn)方式,0表示左上角,1表示左下角int align。//通道順序,如“RGB”,“BGR”等int dataOrder。//像素的位深度,可支持 IPL_DEPTH_8U,IPL_DEPTH_8S,IPL_DEPTH_16U, IPL_DEPTH_16S,IPL_DEPTH_32S,IPL_DEPTH_32f,IPL DEPTH 64fchar colorModel[4]。//顏色通道數(shù),大多數(shù)OPenCV函數(shù)支持1,2,3通道 int alphaChannel。//IplImage結(jié)構(gòu)體的大小int ID。 OpenCV常用數(shù)據(jù)結(jié)構(gòu)使用OpenCV輔助軟件開發(fā),首先必須了解OpenCV支持的數(shù)據(jù)結(jié)構(gòu),其中常用的數(shù)據(jù)結(jié)構(gòu)有如下幾種:(1)圖像結(jié)構(gòu)OpenCV定義了最基本也是最重要的結(jié)構(gòu)體IPlImage,將圖像描述為一系列屬性和指向圖像相關(guān)數(shù)據(jù)的指針集合。OpenCV包括以下幾個(gè)模塊,其具體功能是:CV,主要的OpeCV函數(shù)庫;CVAUX,輔助的(實(shí)驗(yàn)性的)OpenCV函數(shù)庫;CXCORE,數(shù)據(jù)結(jié)構(gòu)與線性代數(shù)支持:HIGHGUI,圖像界面函數(shù);ML,機(jī)器學(xué)習(xí),包括模式分類和回歸分析;CVCA人理,負(fù)責(zé)讀取攝像頭數(shù)據(jù)的模塊。(10)具有基本的GUI功能,包括圖像與視頻顯示、鍵盤和鼠標(biāo)事件處理及滾動(dòng)條。(8)對(duì)運(yùn)動(dòng)的縫隙,如對(duì)光流、運(yùn)動(dòng)分割和跟蹤的分析。(6)可對(duì)各種結(jié)構(gòu)進(jìn)行分析,包括距離變換、各種距的計(jì)算、模板匹配、Hough變換、多邊形逼近、直線擬合、橢圓擬合和Delaunay三角劃分等。(4)可對(duì)各種動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),如列表、隊(duì)列、集合、樹和圖等進(jìn)行操作。(2)對(duì)圖像和視頻的輸入輸出,指文件和攝像頭作為輸入,圖像和視頻文件作為輸出??梢?,作為一個(gè)基本的圖像處理、計(jì)算機(jī)視覺和模式識(shí)別的開源項(xiàng),OpenCV可以直接應(yīng)用于很多領(lǐng)域,作為二次開發(fā)的理想工具。它為用戶減輕了開發(fā)維護(hù)應(yīng)用程序龐大機(jī)器代碼的沉重負(fù)擔(dān)。可嵌入性:與C/C++編譯器不同。Web實(shí)現(xiàn)性:類似于ASP和Java服務(wù)程序。因此Ch函數(shù)庫的擴(kuò)充潛能幾乎是無限的。適合于快速建模和應(yīng)用程序開發(fā),同時(shí)為游動(dòng)代碼的計(jì)算機(jī)視覺提供了可能。Ch本身是一種嵌入式跨平臺(tái)的C/C++腳本編譯器,有自己的外殼程序,可以應(yīng)用于2D/3D繪圖、數(shù)值計(jì)算、分布式網(wǎng)絡(luò)運(yùn)算。從而得到較快的運(yùn)算速度,滿足實(shí)時(shí)性運(yùn)算的要求。平臺(tái)無關(guān)性:基于OpenCV開發(fā)的程序可以直接在Windows,Unix,Linux,MacoSX,HP等平臺(tái)之間相互移植,無需對(duì)代碼進(jìn)行任何修改。不同于以往由業(yè)余愛好者憑興趣或是根據(jù)自己的項(xiàng)目要求而制作的各種源代碼開發(fā)包,OpenCV是由Intel資助的開源項(xiàng)目,其代碼規(guī)范而且具備良好的后繼開發(fā)和改進(jìn)能力。開源軟件之所以能夠風(fēng)靡世界,首先是其開源的無需付費(fèi)特性。源代碼是由軟件命令電腦執(zhí)行指定動(dòng)作的程序語句,是一個(gè)軟件的核心所在,最著名的開源軟件當(dāng)屬芬蘭人林努斯 多分類器級(jí)聯(lián)結(jié)構(gòu)一個(gè)級(jí)聯(lián)分類器由多個(gè)弱分類器組成,每一級(jí)都是經(jīng)Adaboost方法訓(xùn)練得到的弱分類器,調(diào)整參數(shù)使得每一級(jí)都讓幾乎全部的人臉樣本通過,而拒絕很大一部分非人臉樣本,并且前幾級(jí)的矩形特征數(shù)少、計(jì)算快,排除了大量非人臉樣本,越往后,通過的候選窗口越少,雖然計(jì)算的矩形特征數(shù)增多了,但是時(shí)間也不會(huì)增加很多。經(jīng)過T次迭代后,獲得了T個(gè)最佳弱分類器,當(dāng)這個(gè)強(qiáng)分類器對(duì)一幅圖像待檢測時(shí),相當(dāng)于讓構(gòu)成該強(qiáng)分類器的所有弱分類器投票,再對(duì)投票結(jié)果按照弱分類器的錯(cuò)誤率加權(quán)求和,將投票加權(quán)求和的結(jié)果與平均投票結(jié)果比較得出最終的結(jié)果。弱學(xué)習(xí)過程在每一輪訓(xùn)練過程中,對(duì)于每一個(gè)特征來說,都要確定一個(gè)最優(yōu)閾值,使得該閾值對(duì)樣本的分類效果最好。將弱分類器和特征掛鉤起來的一個(gè)很直接的方法是,將弱分類器和特征做一一對(duì)應(yīng)的關(guān)系,也就是說,
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1