亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA和OpenCL硬件加速的運(yùn)動(dòng)物品識(shí)別系統(tǒng)

        2019-01-25 12:00:52
        傳感器世界 2018年11期
        關(guān)鍵詞:開(kāi)發(fā)板傳送帶編程

        江漢大學(xué),湖北武漢 430056

        一、引言

        1、研究背景及意義

        此系統(tǒng)的開(kāi)發(fā)是為了應(yīng)對(duì)現(xiàn)在日益龐大的數(shù)據(jù)處理量需求,加速數(shù)據(jù)處理效率。從最初的單核CPU,發(fā)展到后來(lái)的多核CPU,雖然處理速率有了顯著的增強(qiáng),但功耗較大,且從軟硬件協(xié)同的角度上來(lái)看,在并行操作過(guò)程中,調(diào)整比較困難,再發(fā)展到如今利用CPU、GPU、DSP和FPGA來(lái)互相搭配,實(shí)現(xiàn)多內(nèi)核運(yùn)算,大大降低了功耗,而不足之處在于其算法邏輯的設(shè)計(jì)是一道不可避免的難題[1]。

        2012年11月,Altera公司公開(kāi)展示一款基于FPGA的OpenCL SDK,這種開(kāi)放式標(biāo)準(zhǔn)可以讓開(kāi)發(fā)者在編程實(shí)現(xiàn)過(guò)程中用C/C++語(yǔ)言來(lái)代替?zhèn)鹘y(tǒng)的硬件編程語(yǔ)言,這樣無(wú)需再深入思考FPGA底層的HDL語(yǔ)言設(shè)計(jì),大大簡(jiǎn)化編程實(shí)現(xiàn)過(guò)程,將更多的時(shí)間放在并行加速的優(yōu)化設(shè)計(jì)上[2]。FPGA和OpenCL結(jié)合的優(yōu)勢(shì)如下:

        (1)比較于CPU,GPU等處理器,具有大幅度提高性能,功耗低的優(yōu)勢(shì);

        (2)基于C的編程環(huán)境,具有靈活的可編程性和并行執(zhí)行能力;

        (3)降低在提取線程級(jí)并行處理操作在FPGA中實(shí)現(xiàn)以提高性能時(shí)的難度;

        (4)設(shè)計(jì)過(guò)程中,OpenCL將相應(yīng)的高級(jí)描述轉(zhuǎn)化為流水線,可移植性強(qiáng)。

        2、OpenCL簡(jiǎn)介

        OpenCL(Open Computer Language)是一種開(kāi)放性的語(yǔ)言標(biāo)準(zhǔn),能夠?yàn)楫悩?gòu)平臺(tái)提供編寫程序的框架[3]。最早于2008年由蘋果公司提出,希望能夠?yàn)檐浻布膮f(xié)同設(shè)計(jì)提供更多的方式。OpenCL支持基于C/C++的編程環(huán)境的代碼開(kāi)發(fā),并且可以很好地應(yīng)用于CPU、GPU、DSP和FPGA系統(tǒng)中,除此之外,支持相應(yīng)的API,并通過(guò)PCI-E協(xié)議實(shí)現(xiàn)硬件與主機(jī)的數(shù)據(jù)交互。

        (1)OpenCL架構(gòu)及其模型分析

        OpenCL架構(gòu)由平臺(tái)模型、執(zhí)行模型、內(nèi)存模型、編程模型四個(gè)模型組成[4]。平臺(tái)模型架構(gòu)主要由一個(gè)主機(jī)和多個(gè)OpenCL計(jì)算設(shè)備構(gòu)成,每個(gè)設(shè)備由一個(gè)或多個(gè)計(jì)算單元組成,每個(gè)計(jì)算單元又包含多個(gè)處理元件。所有通過(guò)OpenCL執(zhí)行的操作都是由主機(jī)發(fā)出,控制處理元件完成相應(yīng)計(jì)算工作,再反饋給主機(jī)。執(zhí)行模型的核心工作在于操作相應(yīng)的kernels的運(yùn)行。通過(guò)定義索引,賦予全局以及局部ID來(lái)不斷切割任務(wù),創(chuàng)建相應(yīng)工作組。內(nèi)存模型是通過(guò)私有內(nèi)存、本地內(nèi)存、常量?jī)?nèi)存以及全局內(nèi)存來(lái)完成內(nèi)存空間的管理操作[5]。最后,編程模型是建立在OpenCL提供了基于任務(wù)分割以及數(shù)據(jù)分割的并行運(yùn)算機(jī)制上,在運(yùn)算過(guò)程中,每一個(gè)空間節(jié)點(diǎn)和內(nèi)存中實(shí)例的對(duì)象相對(duì)應(yīng),將算法不斷細(xì)化、切割,且每個(gè)線程相互之間保持獨(dú)立[6]。開(kāi)發(fā)者只需要按照需求定義并行運(yùn)算數(shù)據(jù)量,具體操作交由OpenCL實(shí)現(xiàn)分配。

        (2)OpenCL在FPGA上的實(shí)現(xiàn)

        FPGA可以根據(jù)用戶需求制定特定的硬件設(shè)計(jì)模塊,具有優(yōu)良的并行能力[7]。往往在一塊FPGA系統(tǒng)中,存在著上百萬(wàn)的邏輯單元,通過(guò)這些邏輯電路實(shí)現(xiàn)對(duì)應(yīng)的邏輯功能。除此之外,還具有上千的DSP模塊,用來(lái)實(shí)現(xiàn)算法加速等功能[8]。

        Alter的OpenCL SDK支持異構(gòu)平臺(tái)的并行開(kāi)發(fā)環(huán)境,并不像傳統(tǒng)開(kāi)發(fā)需要在固定的處理器上完成,而是將程序轉(zhuǎn)化為FPGA上的硬件模塊,將其作為FPGA的配置數(shù)據(jù)的形式下輸出。在操作過(guò)程中,PC會(huì)將寫入這些數(shù)據(jù)的FPGA進(jìn)行內(nèi)核處理。從上文的闡述不難看出開(kāi)發(fā)者在編程過(guò)程中可以在不具備硬件設(shè)計(jì)基礎(chǔ)的情況下得到FPGA的配置數(shù)據(jù),用C語(yǔ)言完成中間的設(shè)計(jì)操作。編譯器編譯文件過(guò)程如圖1所示。

        接下來(lái),本文將介紹基于FPGA與OpenCL所設(shè)計(jì)的一套高速傳送帶上的物品分類統(tǒng)計(jì)系統(tǒng),將從系統(tǒng)原理、結(jié)構(gòu)功能、軟硬件實(shí)現(xiàn)以及測(cè)試數(shù)據(jù)及其分析進(jìn)行闡述。

        二、系統(tǒng)介紹

        在現(xiàn)代工業(yè)領(lǐng)域,傳送帶被廣泛運(yùn)用于各類商品的包裝、檢測(cè)等工作中。傳統(tǒng)的傳送帶應(yīng)用一般處于低速狀態(tài),物體運(yùn)動(dòng)速度很低,配合人工輔助操作來(lái)實(shí)現(xiàn),因此這種方法的效率較低,處理速度較慢,且需要人工的參與,逐漸變得不太適合于現(xiàn)今這種物流量大、效率需求高的實(shí)際生產(chǎn)需求。而如果加快傳送帶速度,人工輔助操作就不能與高速運(yùn)動(dòng)下的物體相適應(yīng),人眼甚至不能捕捉到物體準(zhǔn)確的信息,更無(wú)法對(duì)其進(jìn)行判斷與操作。如果計(jì)算機(jī)和機(jī)器可以代替人工操作,便可以實(shí)現(xiàn)在高速傳送帶上的實(shí)際化操作,從而有效地完成各種實(shí)際應(yīng)用,滿足提高效率的需求。為了保證高速識(shí)別,本文基于FPGA和OpenCL技術(shù)設(shè)計(jì)了一款高速傳送帶的運(yùn)動(dòng)物品識(shí)別系統(tǒng),將傳統(tǒng)識(shí)別的傳送帶速度由0.5m/s提升至2.5m/s。

        1、系統(tǒng)設(shè)計(jì)

        本文所設(shè)計(jì)的系統(tǒng)由五部分組成:用于捕獲圖像數(shù)據(jù)的500萬(wàn)像素的高速工業(yè)相機(jī);用于匹配處理圖像數(shù)據(jù)的UP2開(kāi)發(fā)板;用于支持FPGA和OpenCL進(jìn)行硬件加速的C5P開(kāi)發(fā)板;用于顯示結(jié)果并進(jìn)行語(yǔ)音播報(bào)的QT顯示界面;專門定制的3m×1m×0.5m的高速傳送帶,如圖2所示。

        物品在高速傳送帶上經(jīng)過(guò)工業(yè)相機(jī)時(shí),被相機(jī)捕獲相應(yīng)圖像數(shù)據(jù),以. jpg的格式傳給UP2。UP2進(jìn)行圖像的處理和匹配,在處理過(guò)程中先通過(guò)OpenCV進(jìn)行物體特征識(shí)別,物體特征包括形狀、大小、紋理等標(biāo)志位,同時(shí),UP2將部分?jǐn)?shù)據(jù)通過(guò)PCI-E協(xié)議傳送給C5P,C5P對(duì)獲得的圖像數(shù)據(jù)交由硬件加速模塊進(jìn)行硬件加速處理,再將處理后的數(shù)據(jù)返還給UP2,當(dāng)檢測(cè)到正確的樣本,特征標(biāo)志位改變,UP2就將數(shù)據(jù)通過(guò)HDMI轉(zhuǎn)VGA通道和AUX交互給揚(yáng)聲器進(jìn)行語(yǔ)音播報(bào),并將匹配的結(jié)果顯示在QT界面上。

        2、系統(tǒng)功能

        系統(tǒng)功能如圖3所示,其主要功能有以下幾個(gè)方面:

        (1)采集信息:本系統(tǒng)使用500萬(wàn)像素高速工業(yè)相機(jī)捕獲樣本在傳送帶上的圖像信息;

        (2)硬件加速處理圖像數(shù)據(jù):結(jié)合OpenCL與FPGA對(duì)來(lái)自UP2的圖像數(shù)據(jù)進(jìn)行硬件加速處理;

        (3)高速識(shí)別:本系統(tǒng)借助OpenCV實(shí)現(xiàn)了實(shí)時(shí)物體特征識(shí)別。通過(guò)OpenCV,選取擴(kuò)展的LBP特征,結(jié)合Adaboosting算法進(jìn)行樣本檢測(cè)以及分類器的訓(xùn)練,然后通過(guò)實(shí)驗(yàn)測(cè)試分析不同分類器樣本庫(kù)大小和正負(fù)樣本質(zhì)量對(duì)實(shí)驗(yàn)結(jié)果的直接影響,最終通過(guò)實(shí)驗(yàn)比較選取最好的樣本庫(kù);

        (4)基于QT Creater結(jié)果顯示:QT提供了信號(hào)槽機(jī)制,可以很好地降低耦合,提升代碼的復(fù)用性,所以選用其作為顯示界面。上面增設(shè)五個(gè)功能按鈕,分別為預(yù)覽、計(jì)數(shù)、開(kāi)始、停止以及語(yǔ)音播報(bào)的功能。同時(shí)QT的開(kāi)源環(huán)境以及可移植性強(qiáng)的特點(diǎn)也方便于后期的跨平臺(tái)開(kāi)發(fā)[9]。

        三、硬件實(shí)現(xiàn)

        硬件設(shè)計(jì)如圖4所示,主要包括UP2嵌入式開(kāi)發(fā)板、C5P開(kāi)發(fā)板、揚(yáng)聲器以及顯示屏四個(gè)模塊。

        (1)硬件模塊

        SDRAM芯片采用LVCMOS信號(hào)標(biāo)準(zhǔn),可以進(jìn)行數(shù)據(jù)的存儲(chǔ)提取。

        C5P開(kāi)發(fā)板有2個(gè)七段數(shù)碼顯示管,七段數(shù)碼管的每個(gè)引腳(共陽(yáng)模式)均連接到 Cyclone V FPGA,還有4個(gè)由FPGA直接控制的LED。每一個(gè)LED都由Cyclone V FPGA 獨(dú)立驅(qū)動(dòng),驅(qū)動(dòng)相關(guān)的引腳至高電平或低電平來(lái)打開(kāi)或關(guān)閉LED。FPGA輸出低電壓的時(shí)候,對(duì)應(yīng)的字碼段點(diǎn)亮,反之則熄滅,輸出的低電平信號(hào)可作為后期輸出給機(jī)械臂的控制信號(hào)。

        PCI-E接口進(jìn)行UP2和C5P開(kāi)發(fā)板間的通信。PCI-E系統(tǒng)是由FPGA系統(tǒng)和PC系統(tǒng)兩個(gè)主要組件組成。FPGA系統(tǒng)基于Avalon-MM Cyclone V Hard IP for PCI Express 和 Modular SGDMA 開(kāi)發(fā)。PC端的應(yīng)用軟件是Terasic基于Intel PCI-E內(nèi)核模式驅(qū)動(dòng)開(kāi)發(fā)的。

        (2)FPGA結(jié)合OpenCL的硬件加速模塊

        FPGA具有實(shí)現(xiàn)宏函數(shù)的嵌入式陣列以及實(shí)現(xiàn)普通功能的邏輯陣列,具有很強(qiáng)的并行運(yùn)算能力[6],但實(shí)現(xiàn)操作過(guò)程中往往不可避免地需要使用比較繁瑣的HDL語(yǔ)言,而OpenCL就為其提供了一種開(kāi)放式標(biāo)準(zhǔn),用純C語(yǔ)言來(lái)代替HDL,這樣大大簡(jiǎn)化了編程實(shí)現(xiàn)過(guò)程。C環(huán)境下OpenCV的一些識(shí)別算法程序,例如積分圖像算法,在需要計(jì)算多個(gè)區(qū)域的直方圖的時(shí)候,可以用來(lái)提高統(tǒng)計(jì)圖像子區(qū)域像素的效率。這種算法在圖像模糊、邊緣提取、對(duì)象檢測(cè)的時(shí)候可以極大地降低計(jì)算量,所以在OpenCV識(shí)別過(guò)程中會(huì)被反復(fù)調(diào)用執(zhí)行。我們將這類算法通過(guò)OpenCL將其轉(zhuǎn)化為FPGA上的硬件模塊,將這些硬件模塊進(jìn)行并行運(yùn)算,從而加速圖像數(shù)據(jù)處理。具體實(shí)現(xiàn)操作如下:利用Quartus工程編譯最終用于配制FPGA的.sof文件,將.sof文件轉(zhuǎn)化為.jic文件,通過(guò)JTAG端口借助串行Flash引導(dǎo)功能將.jic文件燒寫到EPCQ器件中進(jìn)行編程固化。

        四、軟件實(shí)現(xiàn)

        由于傳送帶上的貨物檢測(cè)主要以邊緣、線段為主,所以采取LBP特征進(jìn)行分類,并通過(guò)Adaboosting算法來(lái)訓(xùn)練分類器,進(jìn)行樣本的檢測(cè)以及可視化分析。Adaboosting算法是一種迭代算法,其核心思想通過(guò)不斷改變權(quán)值,最終按照權(quán)值將弱分類器組合為一個(gè)最強(qiáng)分類器,其原理就不再贅述[10]。識(shí)別流程如圖5所示。

        五、測(cè)試數(shù)據(jù)及分析

        能否快速正確識(shí)別物體是整個(gè)系統(tǒng)能夠正常運(yùn)行的關(guān)鍵。為測(cè)試物體框架的實(shí)時(shí)性和準(zhǔn)確性,構(gòu)建以下測(cè)試框架。首先測(cè)試系統(tǒng)實(shí)時(shí)性,把樣本A、B、C與其他物體放在傳送帶上,改變傳送帶速度,記錄系統(tǒng)是否正確檢測(cè)到相應(yīng)樣本,數(shù)據(jù)如表1所示;其次測(cè)試系統(tǒng)識(shí)別準(zhǔn)確性,將各種各樣的負(fù)樣本放在傳送帶上,記錄系統(tǒng)誤判比,如表2所示。

        對(duì)圖表進(jìn)行處置分析,可知物體識(shí)別準(zhǔn)確性與負(fù)樣本數(shù)目、傳送帶速度有關(guān)。當(dāng)負(fù)樣本數(shù)目足夠時(shí),在通過(guò)OpenCL加速后系統(tǒng)可以在比較理想的識(shí)別率的基礎(chǔ)上對(duì)處于2.5m/s的高速傳送帶上的物品進(jìn)行識(shí)別以及分類,該系統(tǒng)符合設(shè)計(jì)初衷。

        表1 物體識(shí)別實(shí)時(shí)性測(cè)試

        表2 物體識(shí)別準(zhǔn)確性測(cè)試表

        六、總結(jié)

        本文介紹了OpenCL的并行運(yùn)算架構(gòu),研究了并行計(jì)算的模型,以及其在FPGA上的實(shí)現(xiàn)方式,最后基于FPGA與OpenCL的硬件加速設(shè)計(jì)了一套在高速傳送帶上的商品分類識(shí)別系統(tǒng),并對(duì)測(cè)試結(jié)果進(jìn)行了分析,系統(tǒng)的準(zhǔn)確性達(dá)到了預(yù)期的目標(biāo)。該系統(tǒng)進(jìn)一步的完善在于,F(xiàn)PGA開(kāi)發(fā)板會(huì)將PCI-E傳來(lái)的圖片數(shù)據(jù)處理后在FPGA開(kāi)發(fā)板上進(jìn)行LED和數(shù)碼管的顯示,將顯示信號(hào)作為控制信號(hào),搭配相應(yīng)的機(jī)械臂,控制機(jī)械臂抓取移動(dòng)商品,實(shí)現(xiàn)在高速傳送帶上對(duì)商品的分類統(tǒng)計(jì)工作。

        猜你喜歡
        開(kāi)發(fā)板傳送帶編程
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        傾斜傳送帶問(wèn)題突破
        淺探傳送帶模型的分析策略
        Microchip最新推出兩款PIC32 Curiosity開(kāi)發(fā)板
        淺析單片機(jī)開(kāi)發(fā)板的設(shè)計(jì)與制作
        電子制作(2017年22期)2017-02-02 07:10:14
        Mouser為您呈上開(kāi)發(fā)關(guān)鍵之STMicroelectronics Nucleo開(kāi)發(fā)板
        Arduino和Atmel發(fā)布Arduino Zero開(kāi)發(fā)板
        一区二区三区精品偷拍| 国产无遮挡又黄又爽又色| 欧美色欧美亚洲另类二区不卡| 国产日产亚洲系列av| 男女视频网站在线观看| 欧美激情综合色综合啪啪五月| 理论片午午伦夜理片影院| 日韩熟妇精品视频一区二区| 中文字幕人妻久久一区二区三区| 亚洲 另类 小说 国产精品| 国产高清一区二区三区视频 | 精品一精品国产一级毛片| 色欲人妻综合网| 狠狠色综合播放一区二区 | 国产精品日韩亚洲一区二区 | 欧美人与禽2o2o性论交| 成人性生交大片免费看r| bbbbbxxxxx欧美性| 男性av天堂一区二区| 色777狠狠狠综合| 尤物视频一区二区| 青青草免费在线视频导航 | 国产成人亚洲精品91专区手机| av东京热一区二区三区| 国产青青草在线观看视频| 99久久伊人精品综合观看| аⅴ天堂国产最新版在线中文| 国产影片免费一级内射| 色欲人妻aaaaaaa无码| 无码人妻精品一区二区三区66 | 高清不卡av在线播放| 日韩日韩日韩日韩日韩| 97精品伊人久久大香线蕉app| 国产不卡一区二区三区视频| 国产一区二区黄色网页| 特级毛片爽www免费版| 中文字幕无码专区一VA亚洲V专| 亚洲偷自拍国综合第一页国模| 人成在线免费视频网站| 最近中文字幕大全在线电影视频| 久久精品国产免费观看99|