引言
基于多線陣CCDS相機(jī)的拼接型高精度大幅面掃描儀的研制一直是國(guó)內(nèi)、外學(xué)者及產(chǎn)業(yè)界關(guān)注的重點(diǎn)領(lǐng)域,但是由于涉及精密光路設(shè)計(jì)心1、復(fù)雜機(jī)械平臺(tái)、完備硬件系統(tǒng)H1、友好人機(jī)界面、智能算法實(shí)現(xiàn)這五個(gè)關(guān)鍵技術(shù),其中高精度實(shí)時(shí)拼接技術(shù)又是其中的重點(diǎn)難點(diǎn)。迄今為止,基于多線陣CCDS相機(jī)的拼接型高精度大幅面掃描儀的全部關(guān)鍵技術(shù)基本上被國(guó)外跨國(guó)公司與大型研究機(jī)構(gòu)所壟斷,國(guó)內(nèi)完全依靠進(jìn)口。
高精度實(shí)時(shí)拼接技術(shù)是多線陣CCDS相機(jī)的大幅面掃描儀中的重點(diǎn)難點(diǎn)。由于線陣CCDS相機(jī)的視場(chǎng)有限,在視場(chǎng)范圍要求大掃描精度高的大幅面掃描儀應(yīng)用背景下,單個(gè)三線陣CCDS相機(jī)顯然不能滿足需求,因此需要多個(gè)三線陣相機(jī)拼接實(shí)現(xiàn)。
拼接最重要的指標(biāo)是保證圖像信息不丟失不錯(cuò)位,最理想的情況是,所有三線陣CCDS相機(jī)保持在同一水平面,相鄰兩個(gè)相機(jī)采集圖像的像素連續(xù)。
為了適應(yīng)拼接型多線陣CCDS大幅面掃描儀這一應(yīng)用需求,通常采用光學(xué)拼接或光學(xué)拼接加入軟件后續(xù)處理¨01.光學(xué)拼接通過(guò)分光棱鏡將多個(gè)線陣CCDS相機(jī)首位相連,即前一級(jí)CCDS相機(jī)最后一個(gè)有效像素與下一級(jí)CCDS相機(jī)第1個(gè)有效像素相連,其精度要求偏差在1個(gè)像素以內(nèi),且多個(gè)CCDS相機(jī)所有像素必須在同一個(gè)水平面上,這對(duì)機(jī)械加工精度要求非常高,相應(yīng)成本也非常高,其拼接精度隨著使用時(shí)間增加而降低。光學(xué)拼接加入軟件后續(xù)處理通過(guò)將相鄰兩個(gè)CCDS相機(jī)有效像素進(jìn)行重疊以此保證圖像信息不丟失,然后將采集到的圖像信息保存在電腦內(nèi)存里,通過(guò)軟件算法將每個(gè)相機(jī)采集到的圖像數(shù)據(jù)上下左右平移進(jìn)行拼接,這種拼接方式對(duì)機(jī)械的精度要求有所降低,但是對(duì)電腦配置要求較高,拼接時(shí)間較長(zhǎng)需要2 s一3 s,對(duì)大幅面掃描儀的實(shí)時(shí)性有一定影響¨2|.
針對(duì)這一問(wèn)題,深入研究了FPGA/SDRAM/'CCDS的內(nèi)部結(jié)構(gòu),通過(guò)多次試驗(yàn)驗(yàn)證,提出了一種新的基于多線陣CCDS相機(jī)的大幅面掃描儀高精度實(shí)時(shí)拼接實(shí)現(xiàn)新方法一硬件拼接法。
1 基本理論
1.1拼接原理
為了保證相鄰相機(jī)首尾相連處數(shù)據(jù)不丟失,必須使兩相機(jī)之間有效像素部分重合,如圖1拼接原理圖所示。
相機(jī)1與相機(jī)2重疊W1個(gè)像素,相機(jī)2與相機(jī)3重疊W2個(gè)像素。將SDRAM的地址分為3個(gè)地址分塊,相機(jī)1對(duì)應(yīng)的初始地址為ADDRESS-1,相機(jī)2對(duì)應(yīng)的初始地址為ADDRESS-2,相機(jī)3對(duì)應(yīng)的初始地址為ADDRESS_3.三線陣CCDS相機(jī)逐行掃描,將3個(gè)相機(jī)采集到的每一行數(shù)據(jù)分別連續(xù)存儲(chǔ)到SDRAM開(kāi)辟的3個(gè)地址分塊里,因?yàn)镾DRAM的地址與數(shù)據(jù)一一對(duì)應(yīng),知道每一行數(shù)據(jù)的首地址,通過(guò)對(duì)偏移量的設(shè)置,從指定每行數(shù)據(jù)首地址位開(kāi)始連續(xù)讀取數(shù)據(jù)即可對(duì)3個(gè)相機(jī)的數(shù)據(jù)進(jìn)行實(shí)時(shí)拼接。
1.2拼接過(guò)程中出現(xiàn)的實(shí)際情況與處理方法
實(shí)際過(guò)程中,由于機(jī)械平臺(tái)加工的精度問(wèn)題,3個(gè)相機(jī)可能不在同一水平面上,并且相鄰兩相機(jī)的重疊像素部分也不一定相同,就造成常規(guī)數(shù)據(jù)傳輸中有錯(cuò)位現(xiàn)象產(chǎn)生。根據(jù)實(shí)驗(yàn)與分析,拼接過(guò)程中會(huì)出現(xiàn)6種可能情況,如圖2(a)、2(b)、2(c)、2(d)、2(e)、2(f)所示。
圖2(a)為相機(jī)l水平位置大于相機(jī)2水平位置。相機(jī)2水平位置大于相機(jī)3水平位置時(shí),圖像有效數(shù)據(jù)錯(cuò)位情況。圖2(b)為相機(jī)1水平位置小于相機(jī)2水平位置,相機(jī)2水平位置小于相機(jī)3水平位置時(shí)。圖像有效數(shù)據(jù)錯(cuò)位情況。圖2(c)為相機(jī)2水平位置大于相機(jī)l水平位置,相機(jī)l水平位置大于相機(jī)3水平位置時(shí),圖像有效數(shù)據(jù)錯(cuò)位情況。
圖2(d)為相機(jī)2水平位置大于相機(jī)3水平位置,相機(jī)3水平位置大于相機(jī)1水平位置時(shí),圖像有效數(shù)據(jù)錯(cuò)位情況。圖2(e)為相機(jī)3水平位置大于相機(jī)1水平位置,相機(jī)1水平位置大于相機(jī)2水平位置時(shí),圖像有效數(shù)據(jù)錯(cuò)位情況。圖2(f)為相機(jī)1水平位置大于相機(jī)3水平位置,相機(jī)3水平位置大于相機(jī)2水平位置時(shí),圖像有效數(shù)據(jù)錯(cuò)位情況。
因此需要先確定掃描儀3個(gè)相機(jī)處于何種位置情況,相機(jī)每一行像素個(gè)數(shù)為L(zhǎng)=5340個(gè),上位機(jī)根據(jù)特定情況設(shè)定H1、H2、W1、w2的值,根據(jù)H1、H2、W1、W2的預(yù)設(shè)值計(jì)算出需要緩存數(shù)據(jù)最大行數(shù),相機(jī)2每行緩存數(shù)據(jù)的讀出首地址與末地址,相機(jī)3每行緩存數(shù)據(jù)的讀出首地址與末地址,最后順序讀寫(xiě)出每一個(gè)相機(jī)緩存數(shù)據(jù)傳輸?shù)缴衔粰C(jī)實(shí)時(shí)顯示。
圖2所示6種情況中的寫(xiě)緩存初始地址都是一致的,即,相機(jī)1寫(xiě)緩存初始地址ADDRESS-WRITEBUFFER.1=ADDRESS一1,相機(jī)2寫(xiě)緩存初始地址ADDRESS-WRITEBUFFER_2=ADDRESS_2,相機(jī)寫(xiě)緩存初始地址ADDRESS-WRITEBUFFER一3=ADDRESS_3.
針對(duì)圖2(a)的情況,需緩存BUFFER-LINE=H1+H2+1行數(shù)據(jù),相機(jī)2連續(xù)寫(xiě)人H1+1行數(shù)據(jù)后需對(duì)寫(xiě)入地址初始化,相機(jī)3連續(xù)寫(xiě)人H1+H2+1行數(shù)據(jù)后需對(duì)寫(xiě)入地址初始化。相機(jī)1寫(xiě)初始地址ADDRESS-WRITE一1=ADDRESS一1+(H2一H1)·L+H2一H1,相機(jī)2寫(xiě)初始地址ADDRESS-WRITE一2=ADDREsS一2+H2·L+H2,相機(jī)3寫(xiě)初始地址ADDRESS-Wr{ITE_3=ADDRESS_3.相機(jī)1讀初始地址ADDRESS-READ一1=ADDRESS一1+(H1+H2)·L+H1+H2,相機(jī)2讀初始地址ADDRESS-READ_2=ADDRESS_2+H2·L+W1+H2,相機(jī)3讀初始地址ADDRESS-READ_3=ADDRESS._3+W2.
針對(duì)圖2(b)的情況,需緩存BUFFER-LINE=HI+H2+l行數(shù)據(jù),相機(jī)1連續(xù)寫(xiě)入H1+H2+1行數(shù)據(jù)后需對(duì)寫(xiě)入地址初始化,相機(jī)2連續(xù)寫(xiě)入H2+l行數(shù)據(jù)后需對(duì)寫(xiě)人地址初始化。相機(jī)1寫(xiě)初始地址ADDRESS-WRITE一1=ADDRESS一1,相機(jī)2寫(xiě)初始地址ADDRESS-WrtlTE_2=ADDRESS_2+H1·L+H1,相機(jī)3寫(xiě)初始地址ADDRKSS_WRrI'E_3=ADDRESS_3+(H1+H2)·L+H1+H2.相機(jī)1讀初始地址ADDRESS-READ一1=ADDRESS一1,相機(jī)2讀初始地址ADDRESS-READ一2=ADDRESS一2+H1·L+W1+Hl,相機(jī)3讀初始地址ADDRESS-READ一3=ADDRESS 3+(Hl+H2)·L+Hl+H2+W2.
針對(duì)圖2(c)的情況,需緩存BUFFER-LINE=H2+1行數(shù)據(jù),相機(jī)1連續(xù)寫(xiě)入H1+1行數(shù)據(jù)后需對(duì)寫(xiě)入地址初始化,相機(jī)3連續(xù)寫(xiě)人H2+1行數(shù)據(jù)后需對(duì)寫(xiě)入地址初始化。相機(jī)1寫(xiě)初始地址ADDRESS-WRITE一1=ADDRESS一1+(H2一H1)·L+H2一H1,相機(jī)2寫(xiě)初始地址ADDRESS-WRITE一2=ADDRESS一2+H2·L+H2,相機(jī)3寫(xiě)初始地址ADDRESS-WRITE_3=ADDRESS一3.相機(jī)1讀初始地址ADDRESS_READ一1=ADDRESs一1+(H2一H1)·L+H2一H1,相機(jī)2讀初始地址ADDRESS-READ一2=ADDRESS一2+I-12·L+w1+H2,相機(jī)3讀初始地址ADDRESS_READ_3=ADDRESS_3+W2.
針對(duì)圖2(d)的情況,需緩存BUFFER-LINE=Hl+1行數(shù)據(jù),相機(jī)l連續(xù)寫(xiě)入Hl+l行數(shù)據(jù)后需對(duì)寫(xiě)入地址初始化,相機(jī)3連續(xù)寫(xiě)人H2+1行數(shù)據(jù)后需對(duì)寫(xiě)入地址初始化。相機(jī)1寫(xiě)初始地址ADDRESS-WRITE一1=ADDRESS一1,相機(jī)2寫(xiě)初始地址ADDRESS-WRITE一2=ADDRESS一2+H1·L+W1+HI,相機(jī)3寫(xiě)初始地址ADDRESS-WRITE一3=ADDRESS._3+(H1一H2)·L+HI-H2.相機(jī)1讀初始地址ADDRESS-READ一1=ADDRESS一1,相機(jī)2讀初始地址ADDRESS-READ一2=ADDRESS一2+Hl·L+W1+H1,相機(jī)3讀初始地址ADDRESS-READ一3=ADDRESS_3+(H1一H2)·L+H1一H2+W2.
針對(duì)圖2(e)的情況,需緩存BUFFER-LINE=H2+1行數(shù)據(jù),相機(jī)1連續(xù)寫(xiě)入H2一HI+1行數(shù)據(jù)后需對(duì)寫(xiě)入地址初始化,相機(jī)2連續(xù)寫(xiě)入H2+1行數(shù)據(jù)后需對(duì)寫(xiě)入地址初始化。相機(jī)1寫(xiě)初始地址ADDRESS-WRITE一1=ADDRESS一1+H1·L+H1,相機(jī)2寫(xiě)初始地址ADDRESS-WRITE一2=ADDRESS一2,相機(jī)3寫(xiě)初始地址ADDRESS-WRITE-3=ADDRESS一3+H2·L+H2.相機(jī)1讀初始地址ADDRESS-READ一1=ADDRESS一1+HI·L+H1,相機(jī)2讀初始地址ADDRESS-rtE,~D._2=ADDRESS_2+Wl,相機(jī)3讀初始地址ADDRESS-r{EAD_3=ADDRESS_3+H2·L+H2+W2.
針對(duì)圖2(f)的情況,需緩存BUFFER-LINE=H1+l行數(shù)據(jù),相機(jī)2連續(xù)寫(xiě)入H1+1行數(shù)據(jù)后需對(duì)寫(xiě)入地址初始化,相機(jī)3連續(xù)寫(xiě)入H1一H2+1行數(shù)據(jù)后需對(duì)寫(xiě)入地址初始化。相機(jī)1寫(xiě)初始地址ADDRESS-WRITE一1=ADDRESS一1+H1·L+H1,相機(jī)2寫(xiě)初始地址ADDRESS-WRITE一2=ADDRESS一2,相機(jī)3寫(xiě)初始地址ADDRESS_WRITE_3=ADDRESS_3+H2·L+H2.相機(jī)1讀初始地址ADDRESS-READ一1=ADDRESS一1+H1·L+H1,相機(jī)2讀初始地址ADDRESS-READ_2=ADDRESS_2+W1,相機(jī)3讀初始地址ADDRESS-READ一3=ADDRESS一3+H2·L+H2+W2.
2實(shí)驗(yàn)結(jié)果與討論
2.1方法執(zhí)行過(guò)程
多線陣CCDS相機(jī)的大幅面掃描儀高精度實(shí)時(shí)拼接實(shí)現(xiàn)新方法流程如圖3所示。根據(jù)主要器件的特性,上電后需對(duì)FPGA、SDRAM初始化,使其處于正常工作狀態(tài)。從上位機(jī)獲取H1、H2、W1、W2的預(yù)設(shè)值,判別相機(jī)位置處于何種情況。定義H1最高位為1時(shí),相機(jī)l水平位置高于相機(jī)2水平位置,H1最高位位為0時(shí),相機(jī)1水平位置低于相機(jī)2水平位置。定義I-12最高位為1時(shí),相機(jī)2水平位置高于相機(jī)3水平位置,H2最高位為0時(shí),相機(jī)2水平位置低于相機(jī)3水平位置。圖2所示6種情況分對(duì)應(yīng)H1、H2預(yù)設(shè)值的6種狀態(tài)。H1最高位為1,H2最高位為l時(shí)對(duì)應(yīng)圖2(a);H1最高位為0,H2最高位為0時(shí)對(duì)應(yīng)圖2(b);HI最高位為0,I-12最高位為1,且Hl小于I-12時(shí)對(duì)應(yīng)圖2(c);H1最高位為0,H2最高位為l,且H1大于等于H2時(shí)對(duì)應(yīng)圖2(d);H1最高位為l,H2最高位為0,且H1小于H2時(shí)對(duì)應(yīng)圖2(e),Hl最高位為1,H2最高位0,且Hl大于等于H2時(shí)對(duì)應(yīng)圖2(f)。獲取預(yù)設(shè)值后就進(jìn)行數(shù)據(jù)緩存,按照相機(jī)編號(hào)逐行讀出圖像數(shù)據(jù),判斷讀地址是否需要初始化,按照相機(jī)編號(hào)逐行寫(xiě)人圖像數(shù)據(jù),判斷寫(xiě)地址是否需要初始化,最后判斷是否接收到上位機(jī)發(fā)出的結(jié)束信號(hào)。
2.2大幅面掃描儀上的實(shí)際使用效果
采用多線陣CCDS相機(jī)的大幅面掃描儀高精度實(shí)時(shí)拼接實(shí)現(xiàn)新方法后,3個(gè)相機(jī)圖像數(shù)據(jù)能夠?qū)崟r(shí)拼接傳輸,圖像水平錯(cuò)位現(xiàn)象得以解決,重疊部分裁剪后實(shí)現(xiàn)無(wú)縫拼接。經(jīng)分析測(cè)試,H1=56,H2=6,W1=118,W2=168,且Hl最高位為0,I-12最高位為0,即對(duì)應(yīng)圖2(b)所示情況。圖4(a)為采用新方法前相機(jī)1與相機(jī)2拼接效果圖,圖4(b)為采用新方法后相機(jī)1與相機(jī)2拼接效果圖。圖5(a)為采用新方法前相機(jī)2與相機(jī)3拼接效果圖,圖5(b)為采用新方法后相機(jī)2與相機(jī)3拼接效果圖。圖6為拼接型大幅面掃描儀整機(jī)圖,圖7為硬件拼接核心板。
3 結(jié)論
通過(guò)對(duì)基于多線陣CCDS相機(jī)的大幅面掃描儀拼接方法的深入分析,并比較現(xiàn)有的通行方式,提出了一種高精度實(shí)時(shí)拼接的新方法,制作了國(guó)內(nèi)第一臺(tái)基于多線陣CDDS相機(jī)的拼接型大幅面掃描儀,解決了拼接過(guò)程中水平錯(cuò)位、無(wú)縫拼接的難題。
實(shí)驗(yàn)及測(cè)試結(jié)果表明:項(xiàng)目組制作的大幅面掃描儀最大幅面A0,光學(xué)分辨率高達(dá)l 200 DPI,掃描速度達(dá)到2.54 cm/s,掃描及拼接精度能達(dá)到+/一l像素,能夠進(jìn)行實(shí)時(shí)拼接傳輸。
高精度實(shí)時(shí)拼接新方法在該掃描裝備的成功實(shí)施。解決了在基于多線陣CCDS相機(jī)的大幅面拼接型高精度掃描儀的諸多難題,填補(bǔ)了該領(lǐng)域的工程應(yīng)用空白。據(jù)我們所知,在應(yīng)用上成功實(shí)現(xiàn)大幅面拼接性高精度一次性成像掃描儀的高精度實(shí)時(shí)硬件拼接,國(guó)內(nèi)、外未見(jiàn)報(bào)道。
在以后的工作中,將對(duì)高精度實(shí)時(shí)硬件拼接進(jìn)行進(jìn)一步的優(yōu)化處理,并在速度保障的情況下,爭(zhēng)取進(jìn)一步提高圖像質(zhì)量,能夠更加接近理想狀態(tài)。
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7031瀏覽量
89039 -
相機(jī)
+關(guān)注
關(guān)注
4文章
1351瀏覽量
53618 -
掃描儀
+關(guān)注
關(guān)注
2文章
424瀏覽量
67862
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論