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