摘要:本文探討了一種基于 SOPC(片上可編程系統)技術(shù)的視覺(jué)測量系統設計方案 ——Nios II軟核結合用戶(hù)自定義邏輯的方案。系統設計的基本思想如下:首先針對視覺(jué)測量算法進(jìn)行劃分,對算法簡(jiǎn)單、數據處理量大的部分用 FPGA邏輯單元自定義硬件模塊的方法實(shí)現,各硬件模塊之間數據采取流水線(xiàn)操作;算法復雜、數據處理量小的部分則在 Nios II軟核中用軟件的方法實(shí)現,從而使本系統既具速度優(yōu)勢又具良好的靈活性。本文給出了系統的總體設計方案,實(shí)現了系統功能。經(jīng)測試,系統速度優(yōu)勢非常明顯,相比較于較傳統的 PC機,處理效率得到極大的提高。 1引言 視覺(jué)測量技術(shù)是以機器視覺(jué)技術(shù)為基礎,融合電子技術(shù)、計算機技術(shù)、近景攝影測量技術(shù)、圖像處理技術(shù)為一體的測量技術(shù),其基本任務(wù)是以測量為目的,從圖像信息出發(fā)計算三維空間中物體的幾何信息。其中,圖像處理技術(shù)是視覺(jué)測量系統中最重要的一部分,也是本文的研究重點(diǎn)。 傳統的視覺(jué)測量系統主要是在 PC機上采用軟件方式實(shí)現,由于其專(zhuān)用性不夠高,因此處理速度較慢。近年來(lái),基于 FPGA的 SOPC技術(shù)的出現,使 FPGA高效的硬件并行信號處理能力和軟件控制的靈活性完美的結合到一起。在 SOPC系統中,對速度要求高的算法可以采用自定義硬件邏輯的方法實(shí)現;而用硬件難以實(shí)現的復雜算法以及控制流程可以在 Nios II核中以軟件方式實(shí)現。因此基于 SOPC技術(shù)的系統具有很好的實(shí)時(shí)性、靈活性以及可擴展性。設計者可以自由的進(jìn)行軟硬協(xié)同設計,并且可以在設計的各個(gè)階段不受限制的修改設計而無(wú)需重新構建硬件平臺。 本文所討論的 SOPC系統是大尺寸三維視覺(jué)測量系統的一部分,以 PCI板卡的形式內嵌在 PC機中。在整個(gè)大尺寸三維視覺(jué)測量系統中,采用數字相機從不同位置拍攝多幅圖像,經(jīng)過(guò)特征點(diǎn)提取、點(diǎn)中心的二維坐標計算、特征點(diǎn)匹配、三維拼接、面形擬合等步驟,得到被測物體的三維面形信息。點(diǎn)中心的計算精度直接影響測量精度,且其計算速度一直是系統的瓶頸之一。為提高處理速度和計算精度,采用 SOPC系統完成特征點(diǎn)提取和點(diǎn)中心計算,其結果通過(guò) PCI總線(xiàn)上傳給 PC機,由其上的軟件模塊完成后續的計算和處理工作。 2 SOPC系統的總體設計方案 本系統采用加拿大 SBS公司的 TSUNAMI A40系列開(kāi)發(fā)板,其核心的 FPGA模塊是 Altera公司的 Stratix EP1S40芯片。 2.1 系統算法的基本原理 系統算法實(shí)現流程如圖 1所示。首先,針對本系統圖像處理的要求與算法實(shí)現特點(diǎn)進(jìn)行軟硬件劃分。圖像預處理部分所需要處理的數據量比較大,但算法相對簡(jiǎn)單,可以通過(guò) FPGA自定義相應的 IP模塊,采用硬件的方式實(shí)現;后續處理部分由于算法相對復雜,用硬件實(shí)現比較困難,而且其數據處理量不大,所以采用在 Nios II軟核中以軟件的方式實(shí)現。最后編寫(xiě)系統控制軟件對整個(gè)系統進(jìn)行控制使軟硬件協(xié)同工作。 2.2 系統硬件的設計方案 如圖 2所示,本系統硬件開(kāi)發(fā)板通過(guò) PCI橋與 PC機相連,原始圖片保存在 PC機中。 PCI-Avalon橋是 PC機與 FPGA開(kāi)發(fā)板的通信接口,圖像數據經(jīng)過(guò) PCI-Avalon橋進(jìn)入系統處理模塊。Sdram管理控制器用來(lái)管理和控制 Sdram中的數據存取?刂電路用來(lái)控制與協(xié)調各個(gè)外設的運行,實(shí)現狀態(tài)控制與數據傳輸等基本操作,包括讀取 Sdram中保存的圖像數據,控制圖像處理各模塊。 Sdram用來(lái)保存圖像數據。原始圖像數據最初由 PC機下載到 Sdram中,再通過(guò) Sdram管理控制器傳輸給各處理模塊依次處理。處理后的圖像數據仍然通過(guò) Sdram管理控制器返回 Sdram中保存。最后通過(guò) PCI橋把最終圖像返回到 PC機。 2.3 系統軟件的設計 本系統的控制流程相對簡(jiǎn)單,因此在 Nios II軟核中沒(méi)有內嵌操作系統,而是通過(guò) IO操作調用中斷的方式實(shí)現運行狀態(tài)的控制、數據通信、協(xié)調外設等基本操作,控制系統各硬件模塊,使系統軟硬件協(xié)同工作。整個(gè)系統搭建成功之后,在 PC機上編寫(xiě)應用程序對整個(gè)SOPC系統的運行進(jìn)行控制。 3 系統算法的具體實(shí)現 3.1 濾波模塊 根據所采集到的圖像的特點(diǎn),本文采用 3×3的模板實(shí)現中值濾波,這種方法不僅可以濾除圖像中的噪聲,而且可以將邊緣信息很好的保留下來(lái)。一般求取中值的方法是采用取冒泡法排序,但這種算法并不適合硬件實(shí)現?紤]到硬件實(shí)現的特點(diǎn)和效率,本文采用了一種全新的求取中值的算法,其原理如圖 3所示。其中 max、mid、min分別表示三輸入的最大值、中值和最小值比較器。最后經(jīng)幾輪比較后求得中值。 3.2 邊緣提取模塊及二值化模塊 邊緣提取采用 Roberts算子。 Roberts邊緣檢測算子利用局部差分算子尋找邊緣,其計算由式 1給出。 由于待處理圖像特征明顯,采用經(jīng)驗閾值法對圖像進(jìn)行二值化,算法簡(jiǎn)單、實(shí)現方便。 3.3 邊緣細化模塊 本文的邊緣是建立在二值化之后的,因此處理的圖像都是二值化的,邊緣非常清晰,不需要太復雜的算法。這里采用兩個(gè) 3×3模板作乘積,如圖所示, X為待處理像素。如果模板乘積不為 0,于是中心象素為 1,反之為 0,即點(diǎn)的周?chē)谢叶葹?0的象素,則保留此點(diǎn),否則剔除。如此很容易得到二值化后點(diǎn)的單象素邊緣。 3.4 后續處理部分 后續處理部分由于其數據處理量并不大且算法比較復雜,所以在本系統中,這部分算法在 NiosⅡ中以軟件的方法實(shí)現。由于篇幅所限,在此不作詳細介紹。 4 系統測試結果的分析與總結 圖 4為原始圖像。圖 5為處理后的最終圖像,點(diǎn)中心已經(jīng)標注如圖所示。 經(jīng)測試,本系統所有算法用 C語(yǔ)言在 PC機(配置: Pentium( R) 4 CPU 3.00GHz, 512MB內存)上實(shí)現,所需時(shí)間為 2'12",而本系統僅需 30",其中主要耗時(shí)為 NiosII軟件處理部分,系統的硬件算法部分所耗時(shí)間不到 1"。 本文作者創(chuàng )新點(diǎn):一是采用 FPGA設計硬件模塊實(shí)現圖像預處理算法,這是視覺(jué)測量系統在處理效率上的創(chuàng )新;二是在系統中加入Nios II CPU,用以 FPGA難以實(shí)現的算法,從而使基于 SOPC技術(shù)的視覺(jué)測量系統更具靈活性,這是視覺(jué)測量系統在靈活性方面的創(chuàng )新;谝陨蟽牲c(diǎn)創(chuàng )新設計的視覺(jué)測量系統兼顧了效率和靈活性,為視覺(jué)測量系統的設計和研究提供了一種新的思路。 |