




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
視頻處理接口概要設(shè)計基于嵌入式系統(tǒng)的智能安防系統(tǒng)V1.0編寫:甘淼日期:2015-08-15檢查:胡德昆日期:審核:日期:批準(zhǔn):日期:成都大學(xué)計算機(jī)學(xué)院1、系統(tǒng)概述本系統(tǒng)是基于嵌入式的智能安防分析系統(tǒng),系統(tǒng)拓?fù)鋱D如圖1所示,接口利用高清監(jiān)控攝像頭獲取視頻數(shù)據(jù),通過視頻分析接口分析視頻,并將異常發(fā)送至終端。視頻采集層:本系統(tǒng)對攝像頭圖像的采集,主要是利用linux內(nèi)核提供的usb設(shè)備的編程框架v4l2。通過v4l2可以簡單方便的打開usb和板載攝像頭,以及對攝像頭屬性、格式的設(shè)定。視頻分析層:本接口自動將傳入的各種視頻原始數(shù)據(jù)(YUV420、YUV422)轉(zhuǎn)換成視頻分析所需要的視頻格式(RGB24),再通過分析RGB24視頻流來發(fā)現(xiàn)異常(攝像頭干擾、物體闖入、陌生人員等)。報警應(yīng)用層:若系統(tǒng)檢測出異常,則使用報警應(yīng)用層將異常信息推送至報警設(shè)備,報警設(shè)備可以是電腦端、手機(jī)端、平板端以及其它報警設(shè)備,報警應(yīng)用層負(fù)責(zé)對報警設(shè)備的管理或者對報警信息的推送等等。Main管理層:對視頻采集模塊、視頻分析模塊以及報警模塊做統(tǒng)一管理。通過調(diào)用視頻采集模塊獲取視頻流,并將視頻流傳入視頻分析接口,若接口返回異常,則調(diào)用報警模塊。
圖1系統(tǒng)拓?fù)鋱D2、系統(tǒng)結(jié)構(gòu)本系統(tǒng)主要分為三層結(jié)構(gòu),視頻采集層、視頻分析接口層以及報警層。實現(xiàn)的功能模塊有視頻采集、視頻格式轉(zhuǎn)換、攝像頭干擾檢測、人臉檢測與識別以及物品出入檢測。功能結(jié)構(gòu)圖如圖2所示:視頻采集層分析接口層圖2系統(tǒng)功能結(jié)構(gòu)圖YuV視頻報警模塊.報警視頻采集層分析接口層圖2系統(tǒng)功能結(jié)構(gòu)圖YuV視頻報警模塊.報警設(shè)備3報警設(shè)備2■(待定)報警設(shè)備1應(yīng)用層系統(tǒng)通過高清攝像頭來獲取實時監(jiān)控視頻,由于獲取的視頻幀格式Y(jié)UV420和YUV422格式,所以系統(tǒng)會先將視頻格式轉(zhuǎn)換至視頻分析算法需要的RGB24格式,分析接口層負(fù)責(zé)分析視頻信息,如若分析接口分析出異常,則調(diào)用報警模塊來管理報警設(shè)備或者發(fā)送報警信息,接收報警信息的設(shè)備為遠(yuǎn)程終端或者本地報警設(shè)備。采集設(shè)備:系統(tǒng)暫定為ARM自帶的板載攝像頭或者外接的USB攝像頭,系統(tǒng)可以采集這兩種設(shè)備視頻信息,若要使用其它類別的攝像頭,比如網(wǎng)絡(luò)攝像頭等等,則需要重新設(shè)計編碼采集模塊。采集模塊:系統(tǒng)通過調(diào)用Linux內(nèi)核提供的IO通道管理接口V4L2來獲取實時視頻,因為V4L2管理USB攝像頭和板載攝像頭采用的是相同的管理方式,所以本系統(tǒng)同時對者兩種設(shè)備兼容。格式轉(zhuǎn)換模塊:系統(tǒng)獲取到的視頻為YUV420和YUV422格式,本模塊負(fù)責(zé)將YUV格式的視頻轉(zhuǎn)換成RGB格式的視頻。干擾檢測模塊:通過設(shè)計的干擾檢測算法來分析實時視頻,如若分析出攝像頭受到遮擋或者干擾,返回干擾異常。人臉檢測模塊:通過訓(xùn)練好的人臉模型,來對實時視頻幀做遍歷檢測,若找到人臉,則返回人臉輪廓。人臉識別模塊:若人臉檢測模塊找到人臉輪廓,則本模塊負(fù)責(zé)分割人臉圖像,然后與訓(xùn)練好的人臉作比對,返回相應(yīng)的人名。若人臉檢測模塊未找到人臉,則本模塊不做處理。物品檢測模塊(待定):通過相應(yīng)的物品檢測算法來分析實時視頻幀,若檢測到物品出入,則返回異常,若未檢測到物品出入,則返回正常。報警模塊:報警模塊負(fù)責(zé)接收相應(yīng)的報警狀態(tài),然后做出相應(yīng)的報警操作,報警操作主要包括對本地報警設(shè)備的管理,和發(fā)送報警信息至遠(yuǎn)程終端。報警設(shè)備:報警設(shè)備可以是本地設(shè)備(蜂鳴器、顯示器等),也可以是遠(yuǎn)程終端(PC機(jī)、手機(jī)、平板電腦等)。3、模塊分析3.1視頻采集模塊3.1.1模塊功能視頻采集模塊主要通過linux提供的V4L接口來管理攝像頭,模塊主要功能有攝像頭的打開、初始化、幀提取以及關(guān)閉攝像頭,模塊流程如圖3所示:圖3采集流程V4L利用open函數(shù)打開設(shè)備文件并獲取設(shè)備文件標(biāo)識符,然后通過接口函數(shù)ioctl和文件標(biāo)識符來管理IO通道,達(dá)到初始化攝像頭的目的。由于申請到的緩存屬于內(nèi)核存儲區(qū),所以需要用mmap函數(shù)將內(nèi)核存儲區(qū)映射到用戶存儲區(qū)。V4L關(guān)閉攝像頭,就是利用ioctl來關(guān)閉視頻流,用close函數(shù)關(guān)閉設(shè)備文件,從而達(dá)到對關(guān)閉攝像頭所做的善后處理。3.1.2模塊接口函數(shù)⑴打開攝像頭接口函數(shù):boolopenCam(char*device);函數(shù)功能:打開攝像頭的設(shè)備文件,獲取到攝像頭的設(shè)備ID,成功返回true,失敗返回falseo函數(shù)介紹:device:為攝像頭設(shè)備文件的路徑,由接口外部傳入接口。vfd:獲取到的設(shè)備文件標(biāo)識符。O_RDWR:以讀寫方式打開文件。⑵攝像頭初始化接口函數(shù):voidcamInit();函數(shù)功能:查詢攝像頭支持的所有格式、設(shè)置幀格式、申請幀緩存、將緩存映射到用戶存儲區(qū)、打開視頻流。函數(shù)介紹:intioctl(intfd,intcmd,…);fd:文件標(biāo)識符cmd:VIDIOC_RECBUFS分配內(nèi)存VIDIOC_QUERYBUF把VIDIOC_RECBUFS中分配的內(nèi)存轉(zhuǎn)換成物理地址VIDIOC_ENUM_FMT查詢當(dāng)前驅(qū)動支持的視頻格式VIDIOC_S_FMT設(shè)置當(dāng)前驅(qū)動的頻捕獲格式VIDIOC_G_FMT讀取當(dāng)前驅(qū)動的頻捕獲格式VIDIOC_TRY_FMT驗證當(dāng)前驅(qū)動的顯示格式VIDIOC_QBUF把數(shù)據(jù)從緩存中讀出來VIDIOC_DQBUF把數(shù)據(jù)放入緩存隊列VIDIOC_STREAMOM打開數(shù)據(jù)流VIDIOC_STREAMOFF關(guān)閉數(shù)據(jù)流V4L2_FIELD_NONE以逐行采用獲取視頻V4L2_MEMORY_MMAP以映射方式讀取緩存mmap函數(shù)將內(nèi)核緩存區(qū)映射到用戶內(nèi)存區(qū)⑶取幀接口函數(shù):unsignedchar*getFrame();函數(shù)功能:讀取幀序列中的一幀,返回幀緩存首地址函數(shù)介紹:intselect(vfd+1,&rfds,NULL,NULL,&ts)select機(jī)制VIDEO結(jié)構(gòu)體用戶緩存一幀⑷關(guān)閉攝像頭接口函數(shù):voidcloseCam();函數(shù)功能:關(guān)閉數(shù)據(jù)流,關(guān)閉設(shè)備文件函數(shù)介紹:vfd設(shè)備文件標(biāo)識符close()關(guān)閉文件3.1.3模塊私有函數(shù)⑴視頻格式查詢私有函數(shù):voidqueryFormat();函數(shù)功能:查詢設(shè)備驅(qū)動支持的視頻格式,存儲結(jié)構(gòu)為structv4l2_fmtdescfmtd,提供給格式設(shè)置時調(diào)用函數(shù)介紹:利用ioctl接口的VIDIOC_ENUM_FMT宏控制查詢視頻格式,存儲在v4l2_fmtdesc結(jié)構(gòu)中3.1.4結(jié)構(gòu)介紹⑴structv4l2_format(enumv4l3_buf_typetype;union(/*V4L2_BUF_TYPE_VIDEO_CAPTURE*/structv4l2_pix_formatpix; //本系統(tǒng)中的格式/*V4L2_BUF_TYPE_VIDEO_OVERLAY*/structv4l2_windowwin;/*V4L2_BUF_TYPE_VBI_CAPTURE*/structv4l2_vbi_formatvbi;/*V4L2_BUF_TYPE_SLICED_VBI_CAPTURE*/structv4l2_sliced_vbi_formatsliced;/*userdefined*/__u8raw_data[200];}}⑵structv4l2_pix_format{__u32width; //幀寬__u32height;//幀高_(dá)_u32pixelforamt;//幀格式enumv4l2_filedfiled;//采樣區(qū)域__u32bytesperline;//備用__u32sizeimage;//圖像大小enumv4l2_colorspace;//顏色空間__u32priv; //私有數(shù)據(jù)}⑶structv4l2_requestbuffers{__u32count; 〃緩存區(qū)大小,幀數(shù)量enumv4l2_buf_typetype;//緩存區(qū)類型enumv4l2_memorymemory;//內(nèi)存區(qū)的使用方式__u32reserved[2];//}3.2格式轉(zhuǎn)換模塊3.2.1模塊功能格式轉(zhuǎn)換模塊的功能就是負(fù)責(zé)將采集模塊采集到的視頻轉(zhuǎn)換成視頻分析所需要的格式。其中分為YUV420轉(zhuǎn)IplImage、YUV422轉(zhuǎn)IplImage以及RGB轉(zhuǎn)IplImage,轉(zhuǎn)換流程如圖4所示:圖4格式轉(zhuǎn)換流程本系統(tǒng)使用的攝像頭暫定為arm板載攝像頭和USB攝像頭,獲取的視頻格式分別為YUV420打包格式和YUV422平面格式,所以本模塊暫時只支持這兩種格式轉(zhuǎn)換,YUV轉(zhuǎn)RGB的通用公式如公式(1)。系統(tǒng)采用的是計算機(jī)視覺開源庫opencv,所以還需要將RGB數(shù)據(jù)轉(zhuǎn)換成IplImage結(jié)構(gòu),這里要注意IplImage結(jié)構(gòu)通道排列為BGR。1R]‘10 1.402'fy11^^FT1-0.3441-0.7141>\(U-128)>⑴B.11.772 0,.(V-128),⑴原始數(shù)據(jù)轉(zhuǎn)IplImage接口函數(shù):IplImage*DATA_2_IplImage(unsignedchar*input,intwidth,intheight,enumframeformatformat);接口功能:YUV422平面格式轉(zhuǎn)IplImage、YUV420打包格式轉(zhuǎn)IplImage以及RGB格式轉(zhuǎn)IplImage的統(tǒng)一封裝接口,提供給各個分析模塊調(diào)用接口介紹:input輸入的原始數(shù)據(jù)幀width幀寬度height幀高度format原始幀格式,這里支持YUV422(平面)、YUV420(打包)、RGB24⑵YUV420轉(zhuǎn)IplImage接口函數(shù):IplImage*YUV420_2_IplImage(unsignedchar*input,intwidth,intheight);接口功能:將yuv420數(shù)據(jù)幀轉(zhuǎn)換成IplImage幀(備用)接口介紹:input 傳入的yuv420數(shù)據(jù)width 幀寬height 幀高⑶YUV422轉(zhuǎn)IplImage接口函數(shù):IplImage*YUV422_2_IplImage(unsignedchar*input,intwidth,intheight);接口功能:將yuv422數(shù)據(jù)幀轉(zhuǎn)換成IplImage幀(備用)接口介紹:input 傳入的yuv422數(shù)據(jù)width 幀寬height 幀高⑷RGB轉(zhuǎn)IplImage接口函數(shù):IplImage*BGR_2_IplImage(unsignedchar*input,intwidth,intheight);接口功能:將RGB數(shù)據(jù)幀轉(zhuǎn)換成IplImage幀(備用)接口介紹:input 傳入的BGR數(shù)據(jù)width 幀寬height幀高3.2.3模塊私有函數(shù)⑴YUV420轉(zhuǎn)BGR私有函數(shù):boolYUV420_2_BGR(unsignedchar*puc_y,unsignedchar*puc_u,unsignedchar*puc_v,unsignedchar*puc_rgb,intwidth,intheight);函數(shù)功能:將YUV420原始數(shù)據(jù)轉(zhuǎn)換成IplImage需要的BGR24格式,提供給YUV420_2_IplImage接口使用函數(shù)介紹:puc_y Y通道分量puc_u U通道分量puc_v V通道分量puc_rgb輸出的BGR數(shù)組width、height幀的寬高⑵YUV422轉(zhuǎn)BGR私有函數(shù):boolYUV422_2_BGR(unsignedchar*yuv_buf,unsignedchar*rgb_buf,intwidth,intheight);函數(shù)功能:將YUV422數(shù)據(jù)轉(zhuǎn)換成IplImage需要的BGR24格式,提供給YUV422_2_IplImage接口使用函數(shù)介紹:yuv_buf輸入的yuv數(shù)據(jù)rgb_buf輸出的rgb數(shù)據(jù)width幀寬height幀高3.2.4結(jié)構(gòu)介紹⑴typedefstruct_IplImage{intnSize; //IplImage 大小intID; 〃版本intnChannels; 〃通道數(shù)intalphaChannel;〃忽略intdepth; 〃位深charcolorMode[4];〃被opencv忽略charchannelSeq[4];//被opencv忽略intdataOrder; //0-交叉存取顏色通道1-分開存取顏色通道intorigin; 〃圖像原點位置intwidth; 〃圖像寬度intheight; 〃圖像高度structIplROI*roi;〃圖像感興趣區(qū)域struct_IplImage*maskROI;//opencv中為NULLvoid*imageId;//同上struct_IplTileInfo*tileInfo;//同上intimageSize; 〃圖像大小char*imageData;〃像素數(shù)據(jù)intwidthStep; 〃行大小,字節(jié)為單位intBorderMode⑷;//邊際結(jié)束模式,被opencv忽略intBorderConst[4];//同上char*imageDataOrigin;//指針指向一個不同的圖像數(shù)據(jù)結(jié)構(gòu)(不是必須排列的),是為了糾正圖像內(nèi)存分配準(zhǔn)備的}IplImage;
3.3干擾檢測模塊3.3.1模塊功能干擾檢測模塊的功能是自動檢測攝像設(shè)備是否受到遮擋或其它干擾,若檢測到異常及時反饋。檢測流程如圖5所示:NO圖NO圖5干擾檢測流程干擾檢測模塊的檢測算法,主要采用混合高斯模型來提取前景,通過計算前景區(qū)域面積所占比例來判斷攝像頭是否受到干擾?;旌细咚顾惴ㄏ啾绕渌惴ㄗR別準(zhǔn)確率更高,抗干擾能力更強(qiáng),能有效識別各類復(fù)雜場景,非常適合做本場景的前景提取。3.3.2模塊接口函數(shù)⑴干擾檢測接口函數(shù):intinterference(unsignedchar*input,intwidth,intheight,enumframeformatformat);接口功能:檢測攝像設(shè)備是否受到遮擋或者其它干擾,干擾返回1,正常返接口介紹:input視頻幀數(shù)據(jù)width幀寬height幀高format傳入的視頻幀格式3.3.3模塊私有函數(shù)無3.3.4結(jié)構(gòu)介紹⑴Mat類型查看:/893948.html3.4人臉檢測模塊3.4.1模塊功能人臉檢測模塊的功能主要是通過訓(xùn)練好的級聯(lián)分類器對傳入的視頻幀進(jìn)行查找,然后返回找到的人臉個數(shù)和人臉輪廓。人臉檢測流程如圖6所示:圖6圖6人臉檢測流程識別模塊本系統(tǒng)用的人臉模型和檢測算法摒棄了復(fù)雜的浮點數(shù)運算,人臉模型和檢測算法均采用二進(jìn)制整數(shù)形式存儲和運算,檢測速度得到大大的提升,非常適合嵌入式系統(tǒng)應(yīng)用。檢測算法采用N.Markus,M.Frljak,I.SPandzic,J.Ahlberg和R.Forchheimer算法實現(xiàn),版權(quán)歸上述人所有。3.4.2模塊接口函數(shù)⑴人臉檢測接口函數(shù):intdetectFaceInImage(IplImage*input,CvRect**faceRect);接口功能:檢測幀圖像中的人臉,返回人臉輪廓和人臉數(shù),本接口函數(shù)只提供給人臉識別模塊調(diào)用接口介紹:inputImg輸入的幀圖像facesRect輸出的人臉輪廓3.4.3模塊私有函數(shù)⑴人臉查找私有函數(shù):intfind_objects(floatrs[],floatcs[],floatss[],floatqs[],intmaxndetections,void*params,void*pixels,intnrows,intncols,intldim,floatscalefactor,floatstridefactor,floatminsize,flaotmaxsize);函數(shù)功能:查找返回圖像中所有檢測到的人臉以及人臉數(shù),其中包括臨近的人臉簇函數(shù)介紹:rs人臉中心y坐標(biāo)cs人臉中心x坐標(biāo)ss人臉直徑qs人臉可信度maxndetections最大查找人臉數(shù)params人臉模型pixels待檢測的像素數(shù)據(jù)nrows圖像高度9)ncols圖像寬度Idim圖像行字節(jié)數(shù)scalefactor查找框放大比例系數(shù)stridefactors查找框移動步幅minsize最小查找框maxsize最大查找框⑵消除人臉簇私有函數(shù):intcluster_detections(floatrs[],floatcs[],floatss[],floatqs[],intn);函數(shù)功能:find_object函數(shù)找到的人臉,包含了相同人臉的不同大小輪廓,本函數(shù)負(fù)責(zé)去除這些人臉簇,返回實際人臉數(shù)函數(shù)介紹:rs人臉中心y坐標(biāo)cs人臉中心x坐標(biāo)ss人臉直徑qs人臉可信度nfind_object函數(shù)返回的輪廓個數(shù)⑶加載人臉分類器私有函數(shù):boolloadCascade(char*cascadeFile);函數(shù)功能:加載人臉分類器至內(nèi)存,為人臉檢測提供人臉模型函數(shù)介紹:1)cascadeFile人臉分類器文件,文件名為facefinder3.4.4結(jié)構(gòu)介紹⑴typedefstruct_CvRect{Intx;//矩形左上方x坐標(biāo)Inty;//矩形左上方y(tǒng)坐標(biāo)Intwidth;//矩形寬度Intheight;//矩形高度}CvRect;
3.5人臉識別模塊3.5.1模塊功能人臉識別模塊的功能是對視頻幀中的人臉與訓(xùn)練好的人臉做比對,返回可信度最大的可信值和人名,檢測流程如圖7所示:檢測模塊人臉分割人臉圖像h檢測模塊人臉分割人臉圖像h重置大小人臉圖像b直方圖均衡化人臉圖像b人臉識別圖像,圖像,圖像,MaxConfidence,Name圖7人臉識別流程本系統(tǒng)使用的人臉識別算法采用的是opencv基于PCA原理的的特征點識別算法,其實現(xiàn)流程主要為,對人臉圖像做預(yù)處理,增強(qiáng)圖像的人臉特征,然后利用深度卷積神經(jīng)網(wǎng)絡(luò)(CNNs,ConvolutionalNeuralNetwork)模型對圖像做識別,使精確性較更高。3.5.2模塊接口函數(shù)⑴人臉識別接口接口函數(shù):char*faceRecongnition(unsignedchar*input,intwidth,intheightEnumframeformatformat);接口功能:對傳入的視頻幀中的人臉做識別,返回可信度最高的人臉名字接口介紹:input傳入的視頻幀數(shù)據(jù)width圖像寬度height圖形高度format傳入的圖像格式3.5.3模塊私有函數(shù)⑴加載訓(xùn)練的人臉數(shù)據(jù)私有函數(shù):intloadTrainingData(CvMat**pTrainPersonNumMat);函數(shù)功能:加載訓(xùn)練好的人臉結(jié)果集,成功返回1,失敗返回0函數(shù)介紹:1)pTrainPersonNumMat輸出的訓(xùn)練的人臉結(jié)果集⑵人臉分割私有函數(shù):IplImage*c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 固定資產(chǎn)抵押合同債務(wù)協(xié)議
- 土建承攬合同范本
- 2025年企業(yè)發(fā)起人合同模板
- 數(shù)字廣告營銷計劃與實施服務(wù)合同范文2025年
- 2025年農(nóng)田自動灌溉工程實施合同
- 面向服務(wù)的Web架構(gòu)設(shè)計實踐-深度研究
- 雙鴨山吊車租用合同范例
- 圍巾加工合同范本
- 品牌連鎖餐飲加盟合同范例
- 土地合伙協(xié)議合同范本
- 2025年天翼云解決方案架構(gòu)師認(rèn)證考試指導(dǎo)題庫-上(單選題)
- 2025年廣東省深圳市高考語文一模試卷
- 2025年春人教版英語八年級下冊同步課件 Unit 7 Whats the highest mountain in the world課件 Section A 1a-2d
- 2025年哈爾濱鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫必考題
- 行為規(guī)范教育中學(xué)校長在國旗下講話:嚴(yán)格要求自己規(guī)范自己的行為
- 2025年福建省高職單招職業(yè)適應(yīng)性測試題庫及答案解析
- 七下綜合世界真奇妙-共享“地球村”
- 自媒體運營實戰(zhàn)教程(抖音版) 課件 第7章 短視頻運營-自媒體中級
- 2025年信陽職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024年廣東職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
評論
0/150
提交評論