聶海麗 上海鐵路局科研所
基于Camera Link的雙相機(jī)高速同步采集系統(tǒng)的研制
聶海麗 上海鐵路局科研所
提出一個(gè)基于Camera Link的雙相機(jī)高速采集系統(tǒng),介紹該系統(tǒng)的特點(diǎn)和主要硬件組成。通過(guò)重點(diǎn)講述雙相機(jī)的外觸發(fā)同步采集方式和海量存儲(chǔ)技術(shù)、闡述主要的軟件架構(gòu)和圖像采集、顯示的軟件實(shí)現(xiàn),從而達(dá)到利用這些技術(shù)為鐵路的現(xiàn)場(chǎng)檢測(cè)帶來(lái)新的解決途徑的目的。
Camera Link;同步采集;海量存儲(chǔ)
近年來(lái),隨著電荷耦合元件(CCD)技術(shù)的發(fā)展,圖像的采集與處理技術(shù)逐漸成為鐵路檢測(cè)領(lǐng)域的一個(gè)重要組成部分。在檢測(cè)的過(guò)程中,往往采用高頻率、大分辨率的多個(gè)CCD相機(jī)共同工作來(lái)獲取高質(zhì)量的寬幅圖像數(shù)據(jù)。相機(jī)常常被安裝在檢測(cè)車上,在檢測(cè)車高速前進(jìn)的過(guò)程中,相機(jī)持續(xù)地、實(shí)時(shí)地將運(yùn)動(dòng)路徑上的圖像拍攝下來(lái),以便事后進(jìn)行分析和處理。高速的采集會(huì)產(chǎn)生高達(dá)每秒上百兆的圖像數(shù)據(jù)流,而多個(gè)相機(jī)的協(xié)作又會(huì)引出相機(jī)的同步問(wèn)題,這些都對(duì)系統(tǒng)的硬件和軟件結(jié)構(gòu)設(shè)計(jì)提出了較高的要求。為了解決這些難題,本文設(shè)計(jì)并開(kāi)發(fā)了基于Camera Link的雙相機(jī)高速同步采集系統(tǒng)。
采集系統(tǒng)的總體設(shè)計(jì)方案如圖1所示。系統(tǒng)主要由兩臺(tái)高頻率線陣列相機(jī)、帶有雙Camera Link接口的采集卡、編碼器、工控機(jī)和磁盤(pán)陣列存儲(chǔ)器組成。
圖1 系統(tǒng)總體設(shè)計(jì)
線陣列相機(jī)逐行掃描沿途經(jīng)過(guò)的寬幅被測(cè)物體,并將采集到的線圖像數(shù)據(jù)通過(guò)Camera Link總線接口傳送給圖像采集卡。在采集卡中,完成由線到圖的拼接,并將整幅圖像發(fā)送給工控機(jī)。工控機(jī)對(duì)圖像進(jìn)行實(shí)時(shí)處理,并最終存儲(chǔ)到磁盤(pán)陣列存儲(chǔ)器中。系統(tǒng)需要編碼器來(lái)同步兩個(gè)相機(jī)的拍攝,編碼器將外觸發(fā)信號(hào)通過(guò)External Signal接口發(fā)送給采集卡,由采集卡對(duì)信號(hào)進(jìn)行整合后發(fā)送給兩個(gè)相機(jī),使兩個(gè)相機(jī)在同一信號(hào)觸發(fā)下完成每次拍攝。
該系統(tǒng)的主要特點(diǎn):
(1)非接觸、可遠(yuǎn)距離測(cè)量:被測(cè)物體距相機(jī)的距離可在3~9 m之間,而且是非接觸,特別適合鐵路領(lǐng)域的現(xiàn)場(chǎng)檢測(cè)。
(2)無(wú)縫拼接:因?yàn)橄鄼C(jī)是線陣列相機(jī),所以沿相機(jī)行進(jìn)方向拍攝下來(lái)的圖像可以無(wú)扭曲、無(wú)變形的無(wú)縫拼接,可拼接圖像長(zhǎng)度亦不受限制。
(3)海量存儲(chǔ):高頻率高分辨率的圖像采集意味著會(huì)在短時(shí)內(nèi)產(chǎn)生大量的圖像數(shù)據(jù),該系統(tǒng)采用了先進(jìn)的存儲(chǔ)技術(shù),滿足了鐵路領(lǐng)域長(zhǎng)時(shí)間進(jìn)行不間斷檢測(cè)的需求。
兩臺(tái)相機(jī)采用相同型號(hào)的線陣列相機(jī),相機(jī)分辨率2 k,雙通道模式下最高線掃描頻率36 kHz。程序通過(guò)Camera Link串行通訊接口控制相機(jī)。編程參數(shù)有增益、偏移、曝光時(shí)間、線掃描頻率、觸發(fā)模式和輸出測(cè)試模式等。
本系統(tǒng)所使用的采集卡連接兩個(gè)獨(dú)立的線掃描相機(jī),采樣時(shí)鐘頻率達(dá)到125 MHz。采集卡采用Camera Link接口,能夠保證圖像實(shí)時(shí)智能傳輸?shù)絻?nèi)存而不需要CPU干預(yù)。采集卡的其中一個(gè)核心部件是ACUPlus,它不間斷地從線陣列相機(jī)那里采集圖像數(shù)據(jù),而作為另一核心部件的DTE,則保證了圖像數(shù)據(jù)在板卡和主機(jī)之間的快速、完整傳輸。
Camera Link是一個(gè)工業(yè)高速串口數(shù)據(jù)的連接協(xié)議,旨在簡(jiǎn)化CCD和采集卡之間的連接。
比起IEEE 1394總線,Camera link總線具有更強(qiáng)的通用性和靈活性。Camera Link總線具有占用CPU較少,傳輸速率高,I/O同步能力強(qiáng)的優(yōu)點(diǎn)。Camera Link接口可以方便地利用直接存儲(chǔ)器存儲(chǔ)技術(shù),大大提高了CPU使用效率。這幾年采用千兆以太網(wǎng)的CCD相機(jī)也較多,千兆以太網(wǎng)技術(shù)在Optimized模式下占用CPU也較少,但是比起Camera Link來(lái),較低的傳輸速率制約了其在CCD圖像采集領(lǐng)域的廣泛應(yīng)用。因此對(duì)于高分辨率的圖像采集來(lái)說(shuō),Camera Link接口無(wú)疑是最佳的選擇。
兩臺(tái)相機(jī)在內(nèi)觸發(fā)工作模式下,只能按照設(shè)定的線掃描頻率或者曝光時(shí)間各自獨(dú)立工作,無(wú)法實(shí)現(xiàn)同步,所以本系統(tǒng)采用外觸發(fā)模式來(lái)進(jìn)行相機(jī)的采集控制。在外觸發(fā)模式下圖像采集卡利用如圖2所示的相機(jī)接口信號(hào)來(lái)實(shí)現(xiàn)對(duì)相機(jī)的控制及圖像數(shù)據(jù)的采集操作。
其中EXSYNC為外觸發(fā)讀出信號(hào),是必備信號(hào)。當(dāng)EXSYNC固定接低電平時(shí),相機(jī)以最大線速率輸出圖像數(shù)據(jù);當(dāng) EXSYNC正負(fù)交替時(shí),它的下降沿觸發(fā)圖像讀出。本系統(tǒng)中,由編碼器產(chǎn)生的外觸發(fā)信號(hào)接到由采集卡的J4接口上,該信號(hào)通過(guò)J4接口傳入采集卡,然后由采集卡產(chǎn)生EXSYNC信號(hào)對(duì)兩個(gè)相機(jī)進(jìn)行同步控制并且改變曝光時(shí)間,確保兩臺(tái)相機(jī)同步采集被測(cè)物體的圖像數(shù)據(jù),從而實(shí)現(xiàn)對(duì)寬幅物體的不同部分的協(xié)同拍攝。
在現(xiàn)場(chǎng)拍攝時(shí),編碼器和相機(jī)安裝在同一檢測(cè)車上。編碼器與車軸同步旋轉(zhuǎn),觸發(fā)的頻率由車速?zèng)Q定,車速越快,編碼器的觸發(fā)頻率越高,線掃描時(shí)間就越短。因?yàn)檐囕v在行進(jìn)時(shí)難以保持始終勻速運(yùn)行,因此不能將曝光時(shí)間設(shè)置成最大曝光模式(曝光時(shí)間與線掃描時(shí)間相同的模式),因?yàn)檫@樣拍出的圖像必定會(huì)有明暗變化,不能達(dá)到期望的效果,因此,綜合考慮,選擇如圖3所示的曝光模式。在這種模式下,相機(jī)的線掃描速度由外觸發(fā)信號(hào)的頻率決定,曝光時(shí)間與外觸發(fā)信號(hào)的脈寬相同。EXSYNC信號(hào)的上升沿決定曝光時(shí)間的開(kāi)始而下降沿決定讀取數(shù)據(jù)的開(kāi)始。
在鐵路現(xiàn)場(chǎng)檢測(cè)的過(guò)程中,往往要將相機(jī)安裝在高速行進(jìn)的車輛上來(lái)拍攝沿線的情況。為了能夠使拍攝的圖像達(dá)到一定的精度,相機(jī)會(huì)使用較高的掃描頻率,對(duì)于線陣列相機(jī)來(lái)說(shuō),在行車速度達(dá)到100 km/h時(shí),如果想要保證1 mm/線的拍攝精度,需要相機(jī)的線掃描頻率為27 kHz。如果每個(gè)相機(jī)橫向的分辨率為2 048,像素灰度值為8位,則兩臺(tái)相機(jī)每秒產(chǎn)生的數(shù)據(jù)量就高達(dá)105 MB,如果僅僅按照傳統(tǒng)的方式存到硬盤(pán)上,則在容量上和存儲(chǔ)速度上都很難滿足需求。為此,必須通過(guò)一定的技術(shù)手段來(lái)解決海量數(shù)據(jù)的存儲(chǔ)問(wèn)題。
(1)使用 SCSI總線
SCSI總線傳輸速度快,目前并行SCSI接口的最高傳輸速率可以達(dá)到320 MB/s,作為一種智能化的系統(tǒng)級(jí)接口,該接口具有獨(dú)立于物理設(shè)備具體特性的高級(jí)命令結(jié)構(gòu),允許多個(gè)FO任務(wù)并行操作,具有獨(dú)立的I/0處理能力。
(2)使用磁盤(pán)陣列
磁盤(pán)陣列通過(guò)在多個(gè)磁盤(pán)上同時(shí)存儲(chǔ)和讀取數(shù)據(jù)來(lái)大幅提高存儲(chǔ)系統(tǒng)的數(shù)據(jù)吞吐量。在磁盤(pán)陣列中,可以讓很多磁盤(pán)驅(qū)動(dòng)器同時(shí)傳輸數(shù)據(jù),而這些磁盤(pán)驅(qū)動(dòng)器在邏輯上又是一個(gè)磁盤(pán)驅(qū)動(dòng)器,所以使用磁盤(pán)陣列可以達(dá)到單個(gè)磁盤(pán)驅(qū)動(dòng)器幾倍、幾十倍甚至上百倍的速率。同時(shí)因?yàn)榇疟P(pán)陣列的存儲(chǔ)速度更加接近內(nèi)存的存取速度,亦與高速度的CPU相匹配,從而使整體的工作速度大為提高。
本項(xiàng)目采用Visual C++作為應(yīng)用程序的開(kāi)發(fā)工具,使用Sepera++作為圖像采集和處理的主要類庫(kù)來(lái)進(jìn)行開(kāi)發(fā)。類庫(kù)主要分為基礎(chǔ)類和圖形用戶接口類?;A(chǔ)類是Sepera++的核心類,包括管理類、通用硬件控制類,專用采集卡類。圖形用戶接口類是一組以MFC對(duì)話框類為基礎(chǔ)的類,它們實(shí)現(xiàn)了Sepera LT應(yīng)用程序通常要實(shí)現(xiàn)的一些基礎(chǔ)功能,為編程提供了一些基礎(chǔ)工作。
為了控制相機(jī)采集圖像,程序中為每個(gè)相機(jī)建立了一組Sepera類。這些類相互協(xié)作,共同完成采集任務(wù)。主要包括:SapAcqusition類、SapBuffer類、SapTransfer類。SapAcqusition類負(fù)責(zé)控制采集卡的圖像采集。SapBuffer類用來(lái)存儲(chǔ)采集的圖像數(shù)據(jù)。一個(gè)SapBuffer其實(shí)是一個(gè)Buffer數(shù)組,用來(lái)存儲(chǔ)多幀圖像。SapTransfer類負(fù)責(zé)采集圖像的傳輸,將SapAcqusition類采集的圖像傳遞到SapBuffer類的內(nèi)存空間中儲(chǔ)存。
程序中使用SapView類來(lái)控制圖像的顯示,SapView類負(fù)責(zé)將SapBuffer中的內(nèi)容顯示在Window中。它可以顯示SapBuffer緩存數(shù)組的當(dāng)前幀,也可以顯示指定幀和下一幀。一個(gè)內(nèi)部線程負(fù)責(zé)優(yōu)化緩存圖像的實(shí)時(shí)顯示。SapView類與SapTransfer類的工作一直保持同步,所以緩存中的圖像會(huì)實(shí)時(shí)流暢的顯示出來(lái)。
基于Camera Link的雙相機(jī)同步采集系統(tǒng)的實(shí)現(xiàn)為鐵路領(lǐng)域的現(xiàn)場(chǎng)檢測(cè)帶來(lái)了新的途徑。高頻率、高分辨率的圖像采集不僅提供了最直觀的現(xiàn)場(chǎng)資料,而且為后期的圖像智能分析與處理提供了基礎(chǔ)。隨著機(jī)器視覺(jué)技術(shù)的發(fā)展,這一技術(shù)必將在鐵路的檢測(cè)領(lǐng)域得到更廣泛的應(yīng)用。
責(zé)任編輯:許耀元 朱挺
來(lái)稿日期:2013-05-10