999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于嵌入式平臺的實時人臉檢測系統

2011-12-27 08:16:40張洪杰劉衛光
中原工學院學報 2011年4期
關鍵詞:嵌入式檢測系統

張洪杰,劉衛光

基于嵌入式平臺的實時人臉檢測系統

張洪杰,劉衛光

通過對實時人臉檢測算法AdaBoost和庫OpenCV的分析,設計并實現了在Intel PXA 270核心板上的嵌入式實時人臉檢測系統.該系統不依賴圖形界面,使用V 4L和FrameBuffer直接讀取和顯示視頻圖像,根據嵌入式平臺特點優化程序執行效率,并解決了OpenCV 1.0版本在嵌入式平臺中部分函數不能正確執行的問題,在一定程度上達到了實時性和檢測精度的同時提升,具有一定的實用價值.

實時人臉檢測;PXA 270;嵌入式;OpenCV;AdaBoost;V 4L;FrameBuffer

(中原工學院,鄭州 450007)

人臉檢測是指在一幅輸入的圖像中找到人臉的坐標位置和它的大小的過程[1].近年來,人臉檢測的應用背景已經遠遠超出了人臉識別系統的范疇,在圖像檢索、數字視頻處理、視覺檢測等方面有著重要的應用價值[2].傳統的嵌入式平臺檢測系統是使用嵌入式設備作圖像采集,通過網絡方式傳輸到服務器端進行處理并檢測;而隨著嵌入式硬件設備性能的不斷提高,可以使用嵌入式設備采集到圖像之后直接進行處理,以減輕服務器端的壓力,而且能夠設計成便攜式的人臉檢測設備[3].

本文在 Intel PXA 270硬件平臺上,利用嵌入式Linux操作系統和開源計算機視覺類庫OpenCV的特點,設計了嵌入式平臺實時人臉檢測系統.這里先介紹對AdaBoost方法的具體算法分析,然后通過對Linux平臺的實時人臉檢測系統進行分析設計,最后從軟件設計方面著手,設計并實現了arm-Linux平臺的實時人臉檢測系統.

1 實時人臉檢測算法分析

在人臉檢測方法中,灰度、梯度和膚色是常見的人臉檢測方法.Viola P和Jones M通過積分圖概念的引入[4],提出了基于類 Haar特征和級聯結構的 Ada-Boost算法,成功地實現了物體的快速檢測,并將其應用于人臉檢測領域,實現了實時人臉檢測[5].這種檢測方法檢測率較高,速度較快,準確率也較高,更適合于嵌入式平臺的使用,因此這里采用AdaBoost算法.

A daBoost算法的基本思想是將大量的分類能力一般的弱分類器通過一定方法疊加起來,構成一個具有很強分類能力的強分類器[6].而且可以證明,分類器的數量愈大,錯誤率越低,檢測精度就會越高.

A daBoost算法描如下[7]:

這里的αm是一個權重序列;gm(x)是一個二值判別公式,{gm(x)}:X→{-1,+1},它通常由決策樹gm(x)=sgn[φm(x)-tm]來實現 ,其中φm(x)表示特征值,tm表示閾值.gm(x)每次構造錯誤率最低的簡單分類器,并進行遍歷,其中第m次迭代的最大下降趨向為:

gm(x)=argming(err(m))

而這里的err(m)就是gm(x)和二值判別函數I產生的總錯誤值,即

其中,二值判別函數為:

最后,更新權重:

得到分類器GAmda(x),最終得到的最優分類步數目為:

2 嵌入式平臺的視覺庫分析

OpenCV(Intel OpenSource Computer Vision Library)是Intel公司研發的一套開源計算機視覺類庫,它是由一些C函數和C++類所組成的,其中包含了一些基本的圖像處理算法和計算機視覺算法.代碼非常簡潔高效,很適合嵌入式平臺使用.

在人臉檢測之前,需要獲取圖像,并對獲取的目標圖像進行預處理,達到增強圖像的目的,為下一步的檢測做好準備.而OpenCV中包含了很多對圖像進行預處理的函數,如灰度處理、中值濾波、尺寸裁剪等.而且源碼公開,可以根據實際情況來定制所需要的函數.OpenCV中的圖像數據信息都被封裝在一個叫做Ip l Image的結構體中,類似于 W indow s系統中的BM P格式,其中包含了圖像的通道、像素的位深、圖像像素大小等相關信息和圖像數據本身.而且其中包含了對Adaboost算法的C語言實現,可以直接通過相應的程序來訓練分類器并檢測目標圖像,大大降低了開發周期,提高了開發效率.

這里選用的是OpenCV的1.0版本,函數實現比較簡單,而且絕大多數使用的是純C函數,執行效率較高,更適合在嵌入式Linux系統中應用.其中一個Haar特征由2~3個具有相應權重的矩形組成,結構體CvHaarStageClassifier作為一個強分類器節點,其中包含了弱分類器的數量、分類器閾值等信息,結構體CvHaarClassifierCascade包含了標志位、級聯分類器中強分類器的數目、訓練中原始目標的大小、待檢測物體的大小、Haar塊縮放的尺寸等.

OpenCV中包含的AdaBoost方法的 C語言實現,包括創建所有可能的 Haar特征、從正樣本集中載入正樣本、從負樣本集中載入負樣本、計算 Haar特征值和訓練一個強分類器等.

這里使用OpenCV中自帶的訓練程序,在 Red-Hat Linux中編譯為可執行程序,就可以直接通過正負樣本的輸入訓練來得到需要的人臉分類器.本文使用的樣本是從M IT人臉庫挑選的部分樣本,來作為輸入樣本進行訓練,正樣本共2 000個,負樣本4 000個.訓練完成的分類器保存在XML文件中,供檢測算法讀取調用.同時,OpenCV本身也提供了已經訓練好的人臉分類器,可供直接使用.

3 檢測算法的實現

檢測算法主要步驟如圖1所示.

圖1 檢測算法

(1)加載分類器,將訓練好的分類器XML文件加載,為下一步的檢測做好準備.

(2)讀取目標圖像,按照 Ip l Image的格式封裝,為下一步的掃描做準備.

(3)掃描目標圖像,然后用cvhaarobjectdetects函數檢測圖像中的所有人臉.

使用訓練好的級聯分類器,在圖像中找到包含目標物體的矩形區域,并且將這些區域作為一序列的矩形框返回.函數以不同比例大小的掃描窗口對圖像進行若干次搜索,每次對圖像中的這些重疊區域進行檢測,利用Canny邊緣檢測器來排除一些邊緣很少或者很多的圖像區域,因為這樣的區域一般不含被檢目標,人臉檢測中使用這種方法,提高了檢測速度.

4 系統設計與實現

本系統的基本設計思路為:通過OV 511驅動把從攝像頭獲取的一幀圖像壓縮為RGB編碼格式的圖像數據,通過V 4L[8]提供的相關函數讀取從視頻設備獲取的數據,然后把得到的RGB格式的圖像數據提交給圖像處理和檢測函數進行處理,處理過的圖像數據映射至FrameBuffer,通過FrameBuffer的接口函數將結果直接顯示在LCD顯示器中.這里沒有使用任何的圖形界面類庫,目的是使系統簡潔、高效.系統設計如圖2所示.

圖2 系統設計框圖

根據圖2所示設計框圖編寫程序,在裝有Red Hat Linux的 PC上,將OpenCV的源碼使用gcc進行安裝[9],生成x86下的動態鏈接庫文件,然后進行編譯、執行.系統實現的主要流程如下:

流程 1:定義 V 4L視頻采集數據結構體 v4l_struct,其中包含了 FrameBuffer設備句柄、Frame-Buffer屏幕可變的信息、FrameBuffer固定不變的信息、video_capability 、video_picture、video_channel 、video_mmap、video_mbuf等信息.

流程2:Video4linux下視頻編程的基本流程如圖3所示.

圖3 視頻編程的基本流程圖

(1)打開視頻設備.使用Linux的讀文件函數open函數以讀寫方式打開視頻設備文件.

(2)讀取設備信息.使用 ioctl函數的控制符V ID IOCGCAP和V ID IOCGPICT讀取設備信息.

(3)更改設備當前設置.設置圖像數據格式為RGB24,以方便下一步進行圖像處理和檢測.

(4)進行視頻采集.有2種方法:①內存映射的方法;②直接從設備讀取的方法.

這里采用的是使用雙緩沖的內存映射方法,使用ioctl函數的控制符 V ID IOCMCAPTURE和V ID IOCSYNC來讀取幀數據和進行同步控制.這樣通過2幀雙通道來完成視頻數據的采集工作,在某些場合應用時還可以采用緩沖隊列等方式.

通過當前幀號和當前使用情況,2個元素來控制雙幀采集,以及采集相關操作函數.

(5)對采集的圖像數據進行處理.讀取緩沖區中的圖像數據,將從緩沖區獲得的一幀圖像提交給detect函數進行預處理和人臉檢測,其中detect函數的執行流程如圖4所示.

圖4 detect函數的執行流程圖

①讀取分類器.讀取訓練好的分類器XML文件,為下一步的檢測做好準備.

②創建動態內存塊.動態內存塊是一個可用來存儲諸如序列、輪廓、圖形、子劃分等動態增長數據結構的底層結構,用來存儲檢測到的一序列候選目標矩形框的內存區域.

③檢測目標圖像,進行預處理,然后用cvhaarobjectdetects函數檢測圖像中的所有人臉.

④掃描圖像,獲取所有符合特征的人臉,標識人臉區域,并將處理過的圖像數據按照RGB24格式返回,為下一步的圖像數據顯示做好準備.

(6)打開Frame_buffer,實時顯示數據;通過打開設備文件“/dev/fb0”,對 FrameBuffer進行相關讀寫操作,并將處理過的RGB24格式的圖像數據通過行掃描和列掃描的方式,實現LCD實時顯示處理過的圖像.

處理完畢并顯示成功后,從緩存區讀取下一幀圖像并處理顯示,這樣反復循環,以達到實時顯示的目的.

5 嵌入式平臺移植

本系統采用的是基于OV511+的網眼2000CMOS攝像頭,30萬像素,USB插口.開發使用的核心板為Intel PXA270,主頻520 M Hz,顯示屏為256色彩色液晶屏(320×240像素)的STN LCD設備.PXA270是 Intel XScale系列芯片,它屬于ARM的V5TE體系,擁有7級流水線,低功耗,高性能,顯著改善了多媒體處理性能,適合于作多媒體處理器[10].

本系統采用的Linux內核版本為2.4.18,根文件系統采用了cramfs只讀文件系統.由于PXA 270芯片屬于arm體系結構,因此這里需要建立arm-linux交叉編譯環境,以編譯OpenCV源碼和目標程序.Linux內核2.4版本中已經包含了OV 511攝像頭的驅動和V 4L支持,只需要在編內核的時候加載編入內核即可[8];還可以添加支持大容量USB的設備,方便以后使用U盤對根文件系統中數據的讀取.

在PC的RedHat Linux中調試程序,運行正常之后可以向嵌入式平臺移植系統.主要的移植工作包括:OpenCV類庫的編譯和目標程序針對arm平臺上的性能優化.

本系統采用的OpenCV版本為1.0,在移植到arm體系結構中運行時,用到了其中的highgui庫.由于大小端的問題,OpenCV 1.0版本對于端序支持存在BUG(在2.0以上版本中已解決),需要將cxtypes.h文件中的cvround函數最后一句的返回值改為:

return(int)(value+(value>=0?0.5∶-0.5))

否則的話,所有使用到該函數的函數命令都無法在arm體系結構平臺中正常運行.人臉檢測中的cv HaarDetectObjects函數正是用到了cvround函數,在沒有修改返回值的情況下,處理后的圖像點陣數據全為0.修改后,使用arm-linux-gcc編譯OpenCV類庫,產生動態鏈接庫文件,放入將要制作的根文件系統文件夾,制作成cramfs類型的根文件系統.

對于目標程序而言,性能優化包括閾值調整和浮點轉定點運算[11].目標程序在x86平臺已經能夠正常運行,但是由于嵌入式平臺硬件資源相對緊缺,需要調整檢測閾值來提高運行速度.為了能對視頻圖像進行更快的實時檢測并同時具有一定的識別精度,經過多次的實驗嘗試,最終將cvHaarDetectObjects函數參數設置為:scale_factor=1.2,min_neighbors=3,flags=CV_HAAR_DO_CANNY_PRUN ING,min_size=(30,30)).此外,由于ARM處理器本身并不支持浮點運算,所有的浮點運算都是在浮點運算模擬器上進行,因此計算速度特別緩慢.需要浮點運算的函數,常要耗費數千個循環才能執行完畢.因此這里將盡量避免使用浮點運算,出現的浮點數都盡可能強制轉換為定點數,在一些運算中可以提高數倍、數十倍甚至更高的速度.

內核和根文件系統移植完畢后,使用U盤將編譯過的應用程序放入目標板的Linux目錄下,啟動人臉檢測應用程序,系統會通過驅動加載自動判斷USB攝像頭是否接入,并完成人臉的自動檢測.

在CPU主頻為2.67 GHz、內存為256 MB、操作系統為RedHat Linux 9的PC中檢測一幀視頻圖像需要6 ms左右,由于嵌人式微處理器本身速度的限制,檢測一幀視頻圖像中的所有人臉目標需要300 ms左右,每秒大概能夠處理3~4幀視頻圖像,基本上實現了實時檢測,最終的實驗結果對比如圖5和圖6所示.

6 結 語

本文通過對Adaboost算法的分析,使用了開源類庫OpenCV,在嵌入式Linux平臺上設計并實現了實時人臉檢測系統.隨著嵌入式微處理器性能的不斷提高,檢測時間進一步縮短,精度和性能都會有很大的提升,其應用范圍會更加廣泛.

[1]Feraud R,Bernier O J,Viallet J E,et al.A Fast and Accurate Face Detecto r Based on Neural Netwo rks[J].IEEE Transactions on Pattern Analysis and M achine Intelligence,2001,23:42-53.

[2]梁路宏,艾海舟,徐光祐,等.人臉檢測研究綜述[J].計算機學報,2002,25(5):449-458.

[3]李外云,王淑仙,劉錦高.基于嵌入式Linux的便攜式自動人臉檢測與跟蹤系統的應用研究[J].微型電腦應用,2008(1):28-31.

[4]Viola P,Jones M.Robust Real Time Object Detection[C].IEEE ICCV Wo rkshop on Statistical and Computational Theories of Vision,Vancouver canada,2001.

[5]王瑞平,陳杰,山世光,等.基于支持向量機的人臉檢測訓練集增強[J].軟件學報,2008,19(11):2921-2931.

[6]阮錦新,尹俊勛.基于人臉特征和AdaBoost算法的多姿態人臉檢測[J].計算機應用,2010(4):967-970.

[7]Hamed Masnadi-Shirazi,Nuno Vasconcelos.Cost-Sensitive Boosting[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2011,33(2):294-309.

[8]劉步中,張曦煌,王慶磊.基于嵌入式Linux的視頻監控系統的設計[J].安防科技,2009(6):18-21.

[9]譚學科.基于ARM和OpenCV的增強現實平臺研究[D].大連:大連理工大學,2008.

[10]王金莉,蘇宛新.基于PXA 270的嵌入式系統設計[J].微計算機信息,2008,24(4):11-12.

[11]石學林,張兆慶,武成崗.定浮點數據算術及其優化[J].計算機科學,2005,32(6):176-180.

Real-time Face Detection System Based on Embedded Platform

ZHANG Hong-jie,L IU Wei-guang
(Zhongyuan University of Technology,Zhengzhou 450007,China)

An embedded real-time face detection system has been designed and developed in the Intel PXA 270 core board after the analysis of the face detection algorithm A daBoost and the OpenCV library.This system does not depend on any other kinds of GU I,but uses the V 4L APIand FrameBuffer API to get and disp lay video frames.Acco rding to the characteristics of the embedded p latfo rm,the p rogram is op timized and a function’s bug has been solved in the OpenCV version 1.0 w hen excuted in the embedded p latform.To a certain extent,this system has better timeliness and p recision imp roved,w ith some p ractical values.

real-time face detect;PXA 270;embedded system;OpenCV;Adaboost;V 4L;FrameBuffer

TP391.4

A

10.3969/j.issn.1671-6906.2011.04.007

1671-6906(2011)04-0029-05

2011-06-27

河南省科技攻關計劃項目(092102210331)

張洪杰(1986-),男,河南洛陽人,碩士生.

猜你喜歡
嵌入式檢測系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: julia中文字幕久久亚洲| 国产玖玖玖精品视频| 成人欧美日韩| 国产中文一区a级毛片视频| 欧美a网站| 亚洲成人www| 中文字幕永久在线观看| 国产白浆视频| 欧美自慰一级看片免费| 男女精品视频| 国产精品三级专区| 国产精品主播| 亚洲精品成人片在线观看| 国产毛片高清一级国语| 日本欧美成人免费| 中文字幕丝袜一区二区| 欧美色综合久久| 国产人人射| 天天做天天爱夜夜爽毛片毛片| 国产激情在线视频| 99热这里只有精品2| 18禁高潮出水呻吟娇喘蜜芽| 亚洲精选无码久久久| 波多野结衣一区二区三区四区视频| 在线观看无码a∨| 女人18毛片水真多国产| 91毛片网| 亚洲精品777| 欧美.成人.综合在线| 色婷婷综合激情视频免费看| 欧美va亚洲va香蕉在线| 亚洲欧美一区二区三区麻豆| 日韩免费视频播播| 老司国产精品视频| 亚洲中文无码h在线观看| 91美女视频在线观看| 婷婷六月在线| 免费一级毛片完整版在线看| 久久国产毛片| 五月天综合婷婷| 波多野结衣无码AV在线| 亚洲视频免| 亚洲热线99精品视频| 中国黄色一级视频| 色播五月婷婷| 久久久噜噜噜久久中文字幕色伊伊| 国产正在播放| 久久久亚洲色| 国产精女同一区二区三区久| 亚洲国产91人成在线| 免费观看成人久久网免费观看| 另类欧美日韩| 国产在线无码一区二区三区| 国产麻豆福利av在线播放| 九九这里只有精品视频| 日韩高清一区 | 亚洲欧美在线看片AI| 亚洲欧洲AV一区二区三区| 性欧美在线| 无码内射在线| 91网站国产| 国产在线视频福利资源站| 91精品专区| 欧美有码在线| 曰韩人妻一区二区三区| 久久综合色88| 国模私拍一区二区三区| 亚洲欧美日韩久久精品| 国产午夜精品鲁丝片| 四虎永久在线精品国产免费| 波多野结衣一区二区三区AV| 天天躁日日躁狠狠躁中文字幕| 直接黄91麻豆网站| 欧美性猛交一区二区三区| 青草视频免费在线观看| 亚洲啪啪网| 欧美伊人色综合久久天天| 一级全免费视频播放| 国产在线一区二区视频| 亚洲人成影视在线观看| 国产精品55夜色66夜色| 久久久久久久久18禁秘|