專利名稱:一種用于機器視覺的嵌入式圖像處理方法及裝置的制作方法
技術領域:
本發(fā)明屬于圖像處理技術領域,特別涉及到嵌入式圖像處理技術。
背景技術:
在機器視覺領域,傳統(tǒng)的圖像處理方法包括兩種基于PC的處理技術和基于嵌入式系統(tǒng)的處理技術。前者利用PC的CPU計算能力作為圖像計算的硬件結構,PC條件下的軟件開發(fā)方 便、快速,算法靈活,缺點是系統(tǒng)龐大,系統(tǒng)穩(wěn)定性比專用的嵌入式系統(tǒng)低。后者是利用嵌入式處理器或者圖像處理專用集成電路ASIC的處理能力,來進行 圖像計算,其特點是針對性強、功耗低、穩(wěn)定性好,處理能力可從低端覆蓋到高端。但是嵌入 式處理器開發(fā)復雜、周期長,非ASIC電路處理能力弱,單純DSP的處理速度甚至普遍不及目 前的PC中的桌面處理器,性能高的專用ASIC電路成本昂貴。隨著半導體技術的發(fā)展,F(xiàn)PGA作為一種嵌入式處理技術,其處理能力有了長足的 發(fā)展,其理論處理能力可以與ASIC相比美,售價卻遠遠低于后者,目前一個典型的FPGA芯 片,其全部硬件資源的處理能力可達到400G MACs,而相比之下當今主流的PC架構雙核CPU 只有8G MACs的處理速度,二者相差50倍。FPGA的處理能力雖說有了長足的進步,但是對 于機器視覺中的圖像處理而言,挑戰(zhàn)依然存在,原因在于圖像本身的數(shù)據(jù)量過于龐大,而一 般的FPGA內(nèi)部內(nèi)存資源甚至還沒法放下完整的一張長、寬皆為2000x2000像素,24位真彩 的圖像。由于一般圖像處理算法的后一個算法步驟需要前一個算法步驟的輸出作為輸入, 但是FPGA內(nèi)部圖像只能放下一張,所以在某一個時刻只能有一個算法步驟在對圖像進行 處理和運算,這就違背了 FPGA并行計算的天性,沒法發(fā)揮FPGA的處理能力。幸運的是內(nèi)存 技術的發(fā)展使得大容量、高帶寬的片外內(nèi)存成為可能,以標準的128bit DDR2內(nèi)存為例,在 200MHz IO速率下,其吞吐量可以達到6. 4G字節(jié)每秒,相當于266幀/S的2000x2000x24bit 的圖像,這個吞吐量遠遠超多目前各種相機的輸出速度,若配合FPGA內(nèi)部的內(nèi)存資源,足 以滿足絕大多數(shù)圖像處理的應用需求。此外,在機器視覺領域,由于圖像處理算法的發(fā)展,典型的機器視覺圖像方案中, 圖像的處理方法已經(jīng)形成標準的步驟,如圖像增強、模板匹配、測量、瑕疵檢測等等。其中每 一種功能都有許多具體的實現(xiàn)算法,理論上每個步驟之間只需要通過圖像數(shù)據(jù)進行交互, 同一個圖像被前面一個算法步驟處理后,緊接著就被送往下一個處理步驟,算法步驟之間 幾乎沒有太多的牽連,可以并行執(zhí)行,但是必須針對不同的圖像,這種特性恰恰是FPGA所 擅長的,但是如前所述,F(xiàn)PGA內(nèi)部沒法提供足夠的內(nèi)存資源同時處理幾副圖像數(shù)據(jù)。在這樣的背景下,本發(fā)明提供了一種可結合FPGA高速并行處理的特性和DDR2內(nèi) 存吞吐量大的特性的圖像處理的方法和裝置。
發(fā)明內(nèi)容
本發(fā)明的目 的在于提供一種用于機器視覺的嵌入式圖像處理的方法及裝置,用以 提供一種具有處理機器視覺圖像功能的嵌入式電子設備裝置及其實現(xiàn)方法。一種用于機器視覺的嵌入式圖像處理的方法,該方法包括有如下步驟步驟1,在FPGA內(nèi)部根據(jù)需求情況設置包括有圖像采集模塊、圖像預處理模塊、圖 像輸出模塊和橋路模塊在內(nèi)的功能模塊;步驟2,在存儲器中,對應著上一步驟所設定的各功能模塊,分別設定內(nèi)存塊,每個 內(nèi)存塊與在FPGA內(nèi)部所設置的功能模塊相對應;步驟3,在FPGA中的功能模塊在執(zhí)行運算功能時,通過DSP經(jīng)由存儲器上的內(nèi)存塊 進行信息調(diào)度;步驟4,信息在FPGA中處理完成后由DSP調(diào)度轉存至存儲器中;步驟5,經(jīng)由DSP調(diào)度需要處理的下一個內(nèi)存塊中的信息內(nèi)容。進一步,所述的方法還包括如下這些技術特征對應著每個內(nèi)存塊,在其首部用來存放圖像的基本信息,該信息包括圖像的采集 時間、大小、格式、圖像數(shù)據(jù)的具體位置在內(nèi)。所述的設置在存儲器中的內(nèi)存塊,其大小相同。所述的設置在高速內(nèi)存中的內(nèi)存塊大小,對應著系統(tǒng)所需要處理的最大圖像大小。多個功能模塊可以共享同一個內(nèi)存模塊。 各個設置在FPGA中的功能模塊通過統(tǒng)一的內(nèi)存接口來訪問存儲器中的內(nèi)存塊。設置在FPGA中的功能模塊還可以是圖像增強濾波的IP單元。一種嵌入式圖像處理裝置,它是這樣實現(xiàn)的,該裝置包括有如下的組成部分DSP處理器,它是用以控制下述的FPGA和存儲器之間協(xié)調(diào)處理的運算處理器;FPGA,它由用以實現(xiàn)各自作用的功能模塊組成,該功能模塊包括有圖像采集模塊、 圖像輸出模塊和橋路模塊;存儲器,它包括有與FPGA中每個功能模塊相對應的內(nèi)存塊,可通過DSP處理器的 調(diào)度向FPGA提供預存的圖像以及存儲經(jīng)FPGA處理過的圖像。進一步,在DSP中設置有圖像后處理模塊。而在FPGA中,還可以設置有圖像預處理功能模塊。本發(fā)明的優(yōu)點在于本發(fā)明所述的用于機器視覺的嵌入式圖像處理方法及裝置,在機器視覺領域圖像 處理方面,克服了利用PC處理圖像時的系統(tǒng)龐大,系統(tǒng)穩(wěn)定性比專用的嵌入式系統(tǒng)低的缺
點O該裝置的出現(xiàn)非常充分的顯示了,利用嵌入式處理器或者圖像處理專用集成電路 ASIC的處理能力,來進行圖像計算時針對性強、功耗低、穩(wěn)定性好,處理能力可從低端覆蓋 到高端的種種優(yōu)點。該裝置的存儲器內(nèi)存容量大,速度快,可以同時存儲多幅圖像,并隨時由FPGA中 的功能模塊調(diào)用。更重要的是本設計方法中各種功能塊的接口統(tǒng)一,相互之間沒有必然的 關聯(lián),替換一個步驟并不會影響前后的處理步驟的效果,這樣可以使功能升級方便簡單,如 若設計更改,直接增加或者減少功能模塊,原有設計結構保持不變,從而減少了工作量,力口塊新產(chǎn)品推廣速度。
圖1是本發(fā)明所述的用于機器視覺的嵌入式圖像處理的裝置的結構框圖。圖2是本發(fā)明所述的用于機器視覺的嵌入式圖像處理的裝置的結構框圖。圖3是本發(fā)明所述的用于機器視覺的嵌入式圖像處理方法的流程圖。 具體實施例參圖1所示,本發(fā)明的設計結構為在存儲器400中,預設一定數(shù)量的內(nèi)存塊410, 其中內(nèi)存塊410的首部用來存放圖像的基本信息,如圖像的采集時間、大小、格式、圖像數(shù) 據(jù)的具體位置等數(shù)據(jù)。每個內(nèi)存塊410的大小相同,對應系統(tǒng)內(nèi)最大需要處理的圖像大小。 內(nèi)存塊由FPGA300統(tǒng)一管理,在FPGA300內(nèi)部按照需要設計有各種功能模塊310,每個功能 模塊310在工作時候都可以擁有一塊存儲器400中的內(nèi)存塊410,功能模塊310可按照設計 的不同,完成不同的功能且可以對獲取的圖像塊進行寫入和讀取,各個功能模塊之間沒有 必然關系,它們只獨立的負責處理對應數(shù)據(jù),處理完成后由DSP200進行調(diào)度開始處理下以 一個內(nèi)存塊410。功能模塊310之間功能,只能被主系統(tǒng)啟動,功能模塊310被啟動后即自動運行, 直到該模塊定義的處理任務結束。各個功能模塊310結構統(tǒng)一,可按照需要擴展。多個功 能模塊310可以共享同一個內(nèi)存模塊410,各個功能模塊310通過統(tǒng)一的內(nèi)存接口 500操作 訪問存儲器400。具體的功能模塊310可以是往存儲器400內(nèi)寫入數(shù)據(jù)的數(shù)據(jù)源,比如照相機,再具 體的可以是數(shù)字相機(如USB相機或者千兆網(wǎng)相機),也可以是一個通過視頻解碼器連接 進入系統(tǒng)的傳統(tǒng)模擬相機?;蛘吖δ苣K310也可能是一個圖像增強濾波的IP單元,它可 同時往存儲器400中讀取圖像的時候回送增強后的圖像數(shù)據(jù)。亦或者是用于圖像輸出的單 元,負責讀取把存儲器400中的圖像并輸出到顯示器600上,亦或者是個外部訪問存儲器 400的橋路。結合圖2再舉相關實施例進行描述該具體實施例是一個典型的圖像處理裝置,它由FPGA300、DSP200、DDR2401、顯示 器600組成,F(xiàn)PGA300中實現(xiàn)的具體功能模塊包括圖像采集模塊320負責從各種數(shù)據(jù)源采集圖像數(shù)據(jù),并裝置采用的千兆網(wǎng)的接口 的相機。圖像輸出模塊350負責以固定的間期將內(nèi)存中的圖像數(shù)據(jù)搬移到顯示器上。圖像預處理模塊330負責從內(nèi)存中獲取圖像塊并進行圖像預處理,包括圖像的內(nèi) 容與格式的處理等。橋路模塊340,用來負責為DSP200提供圖像數(shù)據(jù),并將處理結果寫回DDR2401存儲 器內(nèi)。另外還有一個圖像后處理模塊210在DSP200中實現(xiàn),他通過橋路模塊340獲取圖 像數(shù)據(jù)并通過DSP200軟件的方式進行圖像處理。DSP200控制各個功能模塊310之間的協(xié)調(diào)圖像采集模塊320采集好數(shù)據(jù)放到410中后,通知DSP200新圖像數(shù)據(jù)準備好的信息,DSP200控制該功能模塊310連接另外一片空閑的內(nèi)存塊410,并再次啟動圖像采集模塊320抓取下一幅圖像。同時剛才抓取到的圖 像放到內(nèi)存塊410中后,DSP200通知下一個圖像預處理模塊330從內(nèi)存塊410中提取圖像 數(shù)據(jù)并進行預處理。預處理結束后,圖像抓取模塊一般已經(jīng)獲得下一幅圖像,則此時立即開始預處理 最新圖像,否則模塊空閑等待下一個數(shù)據(jù)。被預處理過的圖像數(shù)據(jù)被橋路模塊340送往圖 像后處理模塊210進行后處理,該處理過程,主要用以圖像顯示方面的內(nèi)容、格式等處理操 作。處理后的圖像再被送往圖像輸出模塊350,再輸出給顯示器600進行顯示。在一副新的圖像數(shù)據(jù)經(jīng)過流水線各個步驟到達圖像輸出模塊350之前,圖像輸出 模塊350將一直重復輸出上次的圖像。本裝置的系統(tǒng)的速度瓶頸在于圖像的輸入速度,即 圖像采集模塊320抓取圖像的速度,由于是面向圖像數(shù)據(jù)塊的模塊化設計,所以圖像采集 模塊320、圖像預處理模塊330、橋路模塊340以及圖像輸出模塊350相互之間功能獨立,互 不影響。比如可以任意提高圖像預處理模塊330的算法復雜度,來轉變圖像的內(nèi)容及格式。 期間可適當?shù)脑黾釉撃K處理時間,只要該模塊處理完畢,圖像采集模塊320新采集的圖 像數(shù)據(jù)還沒有或者剛剛準備好則系統(tǒng)的吞吐量不受任何影響。綜合前述內(nèi)容,參考著圖3所示,該用于機器視覺的嵌入式圖像處理方法如下步驟1,在FPGA300內(nèi)部根據(jù)需求情況設置包括有圖像采集模塊320、圖像預處理 模塊330、圖像輸出模塊350和橋路模塊340在內(nèi)的功能模塊310 ;步驟2,在存儲器400中,對應著上一步驟所設定的各功能模塊310,分別設定內(nèi)存 塊410,每個內(nèi)存塊410與在FPGA300內(nèi)部所設置的功能模塊310相對應;步驟3,在FPGA300中的功能模塊310在執(zhí)行運算功能時,通過DSP200經(jīng)由存儲器 400上的內(nèi)存塊410進行信息調(diào)度;步驟4,信息在FPGA 300中處理完成后由DSP200調(diào)度轉存至存儲器400中;步驟5,經(jīng)由DSP200調(diào)度需要處理的下一個內(nèi)存塊410中的信息內(nèi)容。該設計方法的優(yōu)點是利用了 FPGA并行計算的特征,各個功能模塊可同時分別進 行運算,DSP作為主控制器可以靈活切換、調(diào)配各個功能模塊,甚至可以通過特定的功能模 塊獲取內(nèi)存塊的數(shù)據(jù)進行處理;配套的內(nèi)存,如DDR2內(nèi)存,其容量大,速度快,可以同時存 儲多幅圖像,并隨時由FPGA中的功能塊調(diào)用。最后更重要的是本設計方法中各種功能塊的 接口統(tǒng)一,相互之間沒有必然的關聯(lián),替換一個步驟并不會影響前后的處理步驟的效果,這 樣可以使功能升級方便簡單,如若設計更改,直接增加或者減少功能模塊,原有設計結構保 持不變,從而減少了工作量,加塊新產(chǎn)品推廣速度。以上是對本發(fā)明的描述而非限定,基于本發(fā)明思想的其它實施方式,均在本發(fā)明 的保護范圍之中。
權利要求
一種用于機器視覺的嵌入式圖像處理方法,其特征在于該方法包括有如下步驟步驟1,在FPGA內(nèi)部根據(jù)需求情況設置包括有圖像采集模塊、圖像預處理模塊、圖像輸出模塊和橋路模塊在內(nèi)的功能模塊;步驟2,在存儲器中,對應著上一步驟所設定的各功能模塊,分別設定內(nèi)存塊,每個內(nèi)存塊與在FPGA內(nèi)部所設置的功能模塊相對應;步驟3,在FPGA中的功能模塊在執(zhí)行運算功能時,通過DSP經(jīng)由存儲器上的內(nèi)存塊進行信息調(diào)度;步驟4,信息在FPGA中處理完成后由DSP調(diào)度轉存至存儲器中;步驟5,經(jīng)由DSP調(diào)度需要處理的下一個內(nèi)存塊中的信息內(nèi)容。
2.根據(jù)權利要求1所述的一種用于機器視覺的嵌入式圖像處理方法,其特征在于對 應著每個內(nèi)存塊,在其首部用來存放圖像的基本信息,該信息包括圖像的采集時間、大小、 格式、圖像數(shù)據(jù)的具體位置在內(nèi)。
3.根據(jù)權利要求1所述的一種用于機器視覺的嵌入式圖像處理方法,其特征在于所 述的設置在存儲器中的內(nèi)存塊,其大小相同。
4.根據(jù)權利要求1所述的一種用于機器視覺的嵌入式圖像處理方法,其特征在于所 述的設置在高速內(nèi)存中的內(nèi)存塊大小,對應著系統(tǒng)所需要處理的最大圖像大小。
5.根據(jù)權利要求1所述的一種用于機器視覺的嵌入式圖像處理方法,其特征在于多 個功能模塊可以共享同一個內(nèi)存模塊。
6.根據(jù)權利要求1所述的一種用于機器視覺的嵌入式圖像處理方法,其特征在于各 個設置在FPGA中的功能模塊通過統(tǒng)一的內(nèi)存接口來訪問存儲器中的內(nèi)存塊。
7.根據(jù)權利要求1所述的一種用于機器視覺的嵌入式圖像處理方法,其特征在于設 置在FPGA中的功能模塊還可以是圖像增強濾波的IP單元。
8.一種用于機器視覺的嵌入式圖像處理裝置,其特征在于該裝置包括有如下的組成部分DSP處理器,它是用以控制下述的FPGA和存儲器之間協(xié)調(diào)處理的運算處理器; FPGA,它由用以實現(xiàn)各自作用的功能模塊組成,該功能模塊包括有圖像采集模塊、圖像 輸出模塊和橋路模塊;存儲器,它包括有與FPGA中每個功能模塊相對應的內(nèi)存塊,可通過DSP處理器的調(diào)度 向FPGA提供預存的圖像以及存儲經(jīng)FPGA處理過的圖像。
9.根據(jù)權利要求1所述的一種用于機器視覺的嵌入式圖像處理裝置,其特征在于在 DSP中設置有圖像后處理模塊。
10.根據(jù)權利要求1所述的一種用于機器視覺的嵌入式圖像處理裝置,其特征在于在 FPGA設置有圖像預處理功能模塊。
11.根據(jù)權利要求1所述的一種用于機器視覺的嵌入式圖像處理裝置,其特征在于所 述的存儲器,為DDR2存儲器。
全文摘要
本發(fā)明提供一種用于機器視覺的嵌入式圖像處理方法及裝置,屬于圖像處理技術領域,特別涉及到嵌入式圖像處理技術。本發(fā)明所述的裝置,包括有如下的組成部分DSP處理器,它是用以控制下述的FPGA和存儲器之間協(xié)調(diào)處理的運算處理器;FPGA,它由用以實現(xiàn)各自作用的功能模塊組成,該功能模塊包括有圖像采集模塊、圖像輸出模塊和橋路模塊;存儲器,它包括有與FPGA中每個功能模塊相對應的內(nèi)存塊。本發(fā)明的優(yōu)點在于其中的存儲器內(nèi)存容量大,速度快,可以同時存儲多幅圖像,并隨時通過DSP調(diào)用FPGA中的功能模塊,所實現(xiàn)的圖像處理功能的速度快,且新品開發(fā)形式更為簡潔。
文檔編號G06T1/20GK101859429SQ200910049158
公開日2010年10月13日 申請日期2009年4月10日 優(yōu)先權日2009年4月10日
發(fā)明者張勇, 王青 申請人:王青;張勇