《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > Adaboost算法的FPGA實現與性能分析
Adaboost算法的FPGA實現與性能分析
摘要: 本文創新點在于采用了一種像素積分單元陣列結構,能夠對 Adaboost 算法中的Haar 特征進行并行處理。結合Virtex5 平臺豐富和特殊結構的邏輯資源,得到了理想的性能,甚 至已經能夠和高性能的PC平臺相提并論。從結果中可以看到,本系統只使用了部分資源。 通過在FPGA芯片內部例化更多的處理單元,還有進一步增大并行性以取得性能提升的空間。
關鍵詞: FPGA Adaboost算法 Virtex5
Abstract:
Key words :

    Adaboost 算法是Freund 和Schapire 于1995 年提出的,全稱為Adaptive Boosting。它是 Boosting 算法的改進,意為該算法通過機器訓練與學習不斷自適應地調整假設的錯誤率,這 種靈活性使得Adaboost 算法很容易與實際應用聯系起來。2001 年,微軟研究院的P.Viola 提出了基于Haar 特征的Adaboost 算法[1],創造性地將積分圖的概念引入到人臉檢測的特征 計算當中,由于此算法使用了大量尺寸不一的矩形作用來表征人臉。并且該算法中用以檢測 人臉的分類器是采用的級聯結構,按照由弱到強的順序組織的,其優點在于按照統計概率, 在圖像檢測的一開始就能夠將大部分不包含人臉的區域排除在外,省去了后面計算負載更重 的檢測步驟,以此達到檢測速度提升的目的。經過實際測試,P3 700MHz 的處理器對352*288 的圖像進行檢測的速度為15 幀/秒[2]。但是如果在嵌入式平臺上運行的話,純軟件的檢測速 度則為2 幀/秒[3]。本設計將這種快速檢測算法轉化成了一種并行處理圖片像素點的硬件結 構,能夠大幅度提升圖像中的人臉檢測速度。

  目標平臺

  Virtex5 系列FPGA 是Xilinx 最新一代基于65nm 的FPGA 產品。相比上代產品,速度 平均提高30%。其改進后的六輸入的查找表 (LUT) 和新型對角互連結構,減少了邏輯層次, 增強了構造塊之間的信號互連。

  本文系統的實現主要用到了兩類邏輯資源來優化系統性能: DSP48E Slice:25x18 位二進制補碼乘法器能產生48 位全精度結果。此功能單元還能夠 實現諸多DSP 模塊如乘累加器、桶形移位器、寬總線多路復用器等。

  Block RAM:可配置成2 個18 Kb 或1 個36 Kb 的Block RAM,也能夠配置為雙端口 RAM 或FIFO,并提供了ECC 校驗檢查功能,提高了系統可靠性。

  硬件系統結構

  本文采用了一種像素積分單元陣列的結構來實現對圖像進行人臉檢測的并行性處理 [4,5]。該陣列的計算對象為Haar 特征。該特征被抽象為各種尺寸大小的矩形。一系列的矩形 組合起來即被用來表征人臉。黑白矩形內像素的灰度值經過加權求和后即為該特征的特征 值。積分圖ii 的定義是:其中ii(x, y)是積分圖在點(x, y)處的積分值,i(x', y')是圖像在點(x', y')處的灰度值。利用積分圖可以快速計算矩形S的灰度和,即Sum=A+D-B-C,其中A、B、C、D 是積分圖中矩形頂點對應的積分值。

  系統結構框圖如圖 3 所示,整個系統的工作流程和各模塊功能闡述如下:

  圖像輸入模塊:系統輸入端外接一個模擬攝像頭,采集到的圖像信號經過板上的A/D 芯片轉換成ITU-R BT.656 (YCrCb 4:2:2,8 位數據寬度)分辨率為352x288(CIF)的圖像格式。 該模塊的作用為當檢測控制狀態機發送初始化信號后,通過I2C 總線配置A/D 芯片完成信號轉換。另外,由于BT.656 格式混合包含了視頻的場信息和圖像數據,因此該模塊還要從 BT.656 信號中提取出圖像數據存放到圖像RAM 中。針對該實現,RAM 大小為8 位寬度, 深度為101376。

  像素積分陣列:像素積分單元陣列是本系統中進行快速人臉檢測的核心處理模塊。在將 圖像進入片內RAM 后,系統將采用20x20 的移動窗口對整幅圖像進行掃描處理。每個周期 的開始階段,檢測窗口包含的一行(20 像素)的灰度值由底部進入積分陣列,積分陣列上部輸 出按從左至右方向的行像素值的積分和,右部則輸出每行按從左至右方向的像素值的平方 和。陣列中的灰色方格則保存了檢測窗口對應原始圖像部分的像素積分值。陣列中的帶豎線 和右斜線的方格表示了存儲特征所包含的矩形權重和特征相似度等參數的流水線。在整個掃 描窗口的像素積分值都進入此陣列后經過左側編碼模塊的編碼控制后,從陣列的右側可以得 到當前一級分類器所包含的矩形的像素灰度值。此灰度值被送到右側的檢測模塊(如圖 4): 首先會和當前一級分類器中對應特征的權重weight 相乘,然后將乘積進行累加后即得到當 前區域對應此特征的特征值。接著這個值會與分類器中的特征閾值a 比較,從而選擇對應 的特征相似度γo(大于等于a )或者γ1 (小于a ),此相似度值也將被累加,當該級分類器中 所包含的全部特征的特征相似度都累加完畢后會與最終的該級的檢測閾值β比較。比較后 的結果顯示了該窗口區域是否包含了人臉,1 即為包含,0 即為不包含。如果包含人臉,此 模塊還將把當前檢測到的人臉的區域信息(包括矩形的左上角起始坐標和矩形長、寬)保存在 一個專用的存儲區域,以用于后面的結果輸出。

  人臉信息處理單元:像素積分單元陣列檢測到人臉后,此單元將首先保存檢測到的人臉 位置信息。如同檢測階段中分類器中的特征包含的矩形表達式一樣,人臉位置信息也是由起 始點坐標和矩形的長、寬組成:(x, y, width, height)。接著根據此信息控制后一級的視頻輸出 模塊用以顯示人臉。讀取(x, y),在圖像RAM中檢索到對應人臉的起始點的地址,往該地址 中寫入像素值0。接著縱坐標不變,延x軸方向只至x+width-1的點的像素值均更新為0。然后 是繪制人臉的縱向邊界。保持橫坐標為x+width-1,y坐標依次增1只至y+height-1,將此列對 應點的像素值更新為0。后面再按照類似的方法折回完成余下的人臉邊界的標識。此時存放 在RAM中的檢測后的圖像數據被送入到視頻輸出模塊,該模塊以800x600的分辨率將最后的 檢測結果顯示在VGA屏幕上,在屏幕顯示中,被黑色方框包圍的區域即是人臉。

  圖像縮放單元:此模塊用以檢測圖像中大于20x20像素的人臉。本文采用的是固定大小 為20x20的移動窗口,以從上至下,從左至右的方向遍歷掃描整幅圖像來檢測人臉。對原始 圖像數據掃描完一遍后,能夠直接檢測出圖像中大小在20x20以內的人臉。然后有檢測控制 狀態機負責啟動該單元模塊,以一定系數對原始圖像進行縮小處理。處理方法采用的是按照 縮小比例生成提取像素點的地址,并將這些像素點重新組成縮小后的圖像。其計算公式如下 所示,其中( x0 ,y0  )   和(x1 , y1) 分別為原圖像和縮小后的點坐標,scale參數為查表所得:

  測試結果

  該 系 統 在 Xilinx ML509 開發板上進行測試, 該開發板上采用了一塊 XC5VLX110T-FF1136 的FPGA 芯片,測試方案為:將攝像頭實時采集到的圖像送進系統視 頻輸入模塊,然后經過撥碼開關來控制板上的AD9880 芯片轉化為384x288 的8 位灰度圖送 入核心檢測模塊檢測并輸出在VGA 顯示器上。整個系統邏輯資源占用情況如表 1 所示。表 2 為最后系統能夠運行的最高頻率。

  結論

  本文創新點在于采用了一種像素積分單元陣列結構,能夠對 Adaboost 算法中的Haar 特征進行并行處理。結合Virtex5 平臺豐富和特殊結構的邏輯資源,得到了理想的性能,甚 至已經能夠和高性能的PC平臺相提并論。從結果中可以看到,本系統只使用了部分資源。 通過在FPGA芯片內部例化更多的處理單元,還有進一步增大并行性以取得性能提升的空間。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 激情综合色五月丁香六月亚洲 | 丁香婷婷综合网 | 日产精品一区二区三区免费 | 四虎成人精品国产一区a | 精品精品国产自在久久高清 | 精品福利视频导航 | 奇米第四色视频 | 国产在线2021 | www.成人网.com | 一级一级毛片 | 亚洲天堂网在线观看视频 | 欧美成人午夜精品一区二区 | 毛片免费网 | 国产精品免费福利 | 国产日产一区二区三区四区五区 | 久久福利一区二区三区 | 91久久老司机福利精品网 | 99re热久久 | 免费黄色网站视频 | 色视频网站色视频播放 | 久久精品a一国产成人免费网站 | 国产四虎 | 99免费精品| 狠狠亚洲婷婷综合色香五 | 日本一区二区三区久久 | 色网站视频 | 97中文字幕在线观看 | 久久公开视频 | 亚洲欧美日韩精品久久 | 国语精品视频在线观看不卡 | 四虎精品影视 | 国产精品久久久久影视青草 | 蜜臀在线视频 | 日韩欧美国产综合 | 成人精品视频在线观看 | 四虎4hutv永久在线影院 | 韩国福利视频一区二区 | 成人精品一区二区激情 | 多哥 电影| 久久精品国产只有精品下载 | 日美欧韩一区二去三区 |