張 靜
(西南醫(yī)科大學(xué)附屬醫(yī)院腫瘤科,四川瀘州 646000)
機(jī)器視覺系統(tǒng)越來越多的應(yīng)用在醫(yī)療系統(tǒng)中,特別是醫(yī)務(wù)人員視覺不能滿足要求的情況下,多用機(jī)器視覺代替人工目測(cè)。該文所研究的機(jī)器視覺并非采用X線透視來獲得影像資料,而是通過工業(yè)相機(jī)快速拍照的方式,將采集的數(shù)據(jù)實(shí)時(shí)處理并用于實(shí)時(shí)控制的過程。對(duì)于胸腹部腫瘤患者在實(shí)施放射治療過程中,由于呼吸運(yùn)動(dòng)會(huì)導(dǎo)致腫瘤不規(guī)則運(yùn)動(dòng),對(duì)放射治療的精確性產(chǎn)生很大影響。為了確保臨床腫瘤臨床靶區(qū)CTV接受高劑量照射,傳統(tǒng)的方法是腫瘤的臨床靶區(qū)CTV被醫(yī)生勾畫出來后,在此基礎(chǔ)之上考慮到靶區(qū)的呼吸運(yùn)動(dòng)位移再繼續(xù)擴(kuò)大CTV的靶區(qū)邊界變?yōu)橛?jì)劃靶區(qū)PTV[1],該方法無疑增加了靶區(qū)周圍組織的劑量。利用機(jī)器視覺技術(shù),在患者靶區(qū)表面敷貼一鉛點(diǎn)做為標(biāo)記物,利用工業(yè)相機(jī)對(duì)治療中的患者快速拍照,跟蹤鉛點(diǎn)運(yùn)動(dòng)的軌跡,獲得治療床或MLC反向運(yùn)動(dòng)的信號(hào)。通過這種方式,能減小呼吸運(yùn)動(dòng)導(dǎo)致的治療誤差,給予腫瘤更精確的劑量。同時(shí),機(jī)器視覺系統(tǒng)是一套數(shù)字化系統(tǒng),便于與其他數(shù)字化自動(dòng)控制系統(tǒng)連接實(shí)現(xiàn)靶區(qū)運(yùn)動(dòng)的智能跟蹤控制。
機(jī)器視覺(Machine vision)技術(shù)目前已經(jīng)廣泛應(yīng)用于科學(xué)技術(shù)的各個(gè)領(lǐng)域,例如人臉識(shí)別、車牌識(shí)別都是大家熟知的,工業(yè)領(lǐng)域主要包括異物識(shí)別、自動(dòng)檢測(cè)等,醫(yī)療領(lǐng)域目前主要應(yīng)用于消化系統(tǒng)的檢查,如電子胃鏡等??梢婋m然機(jī)器視覺技術(shù)涉及技術(shù)基本一致,但是在各個(gè)領(lǐng)域都得到了充分的利用[2]。
該文采用的圖像采集單元(工業(yè)相機(jī))使用Camera Link協(xié)議,圖像處理單元接收工業(yè)相機(jī)采集的數(shù)據(jù),在前期進(jìn)行處理后把圖像的像素?cái)?shù)據(jù)上傳到圖像處理單元中的存儲(chǔ)器中。相機(jī)上傳的數(shù)據(jù)主要包括像素?cái)?shù)據(jù)、同步信號(hào)、相機(jī)的控制命令以及響應(yīng)的設(shè)置參數(shù)等[3]。圖像處理單元對(duì)這些數(shù)據(jù)進(jìn)行整理,并提取出有用信號(hào)發(fā)送給圖像處理單元,并發(fā)送相機(jī)控制命令,以達(dá)到數(shù)據(jù)和命令傳送的目的。圖像處理單元對(duì)接收到的數(shù)據(jù)進(jìn)行處理運(yùn)算得出控制命令或?qū)?shù)據(jù)傳送到上位機(jī)。圖像采集器原理框圖如圖1所示。
其中,圖像處理單元采用FPGA作為硬件平臺(tái),以Verilog HDL語言為軟件設(shè)計(jì)工具,系統(tǒng)內(nèi)嵌NIOS軟核,實(shí)現(xiàn)對(duì)相機(jī)的配置、控制、數(shù)據(jù)接受并存入SRAM,同時(shí)通過HDMI接口送到監(jiān)視器顯示實(shí)時(shí)照片。驗(yàn)證以FPGA平臺(tái)實(shí)現(xiàn)基于Camera Link協(xié)議高速圖像采集系統(tǒng)的可行性,評(píng)估以FPGA為平臺(tái)設(shè)計(jì)的圖像采集系統(tǒng)性能,部分解決嵌入式NIOS軟核與高速IO接口協(xié)調(diào)工作的問題。上位機(jī)選擇X86硬件構(gòu)架和Windows操作系統(tǒng)。
圖1 圖像采集器原理框圖
由于FPGA本身的高性能、靈活的可編程應(yīng)用,可實(shí)現(xiàn)高速硬件計(jì)算和并行運(yùn)算,非常適合于高性能的嵌入式圖像處理系統(tǒng)[4]。FPGA定義邏輯單元陣列LCA(Logic Cell Array)的概念,邏輯單元陣列包括輸出輸入模塊IOB(Input Output Block)、可配置邏輯模塊CLB(Configurable Logic Block)、內(nèi)部連接(Interconnect)3部分?,F(xiàn)場(chǎng)可編程門陣列(FPGA)是一種可編程的器件,允許無限次的編程操作[5]。其中FPGA系統(tǒng)設(shè)計(jì)框圖如圖2所示。
圖2 FPGA系統(tǒng)設(shè)計(jì)框圖
圖2 中,COUNTER模塊是按鍵信號(hào)采集器,輸入信號(hào)為系統(tǒng)板上4個(gè)獨(dú)立按鍵,系統(tǒng)時(shí)鐘信號(hào)和復(fù)位信號(hào),輸出信號(hào)為4路按鍵觸發(fā)信號(hào),按鍵次數(shù)計(jì)數(shù)、LED位選信號(hào)。TRIGER模塊是相機(jī)觸發(fā)信號(hào)發(fā)生器,該模塊接受COUNTER輸出的特定按鍵信號(hào)后,發(fā)出一個(gè)符合相機(jī)要求的觸發(fā)脈沖,通過Camera Link接口送給相機(jī)。ANSYC_FIFO模塊作為相機(jī)Camera Link接口的圖像數(shù)據(jù)、同步信號(hào)、像素時(shí)鐘的輸入接口,接收?qǐng)D片數(shù)據(jù)并緩存后以系統(tǒng)頻率輸出數(shù)據(jù)。SRAM模塊是外部存儲(chǔ)器SRAM與系統(tǒng)的接口,接收由ASYNC_FIFO輸出的數(shù)據(jù)和數(shù)據(jù)有效信號(hào),將一幀圖片存入SRAM中?;蛘咦x出SRAM中的數(shù)據(jù),由數(shù)據(jù)輸出口輸出。LCD模塊是LCD顯示器的接口,輸入為系統(tǒng)時(shí)鐘、系統(tǒng)復(fù)位、8bit×1數(shù)據(jù)和數(shù)據(jù)有效信號(hào),輸出為用于控制LCD顯示的各個(gè)控制位和數(shù)據(jù)總線。LED模塊作為L(zhǎng)ED顯示器接口。輸入信號(hào)為系統(tǒng)時(shí)鐘、系統(tǒng)復(fù)位、刷新頻率參數(shù),四位待顯示數(shù)據(jù)。輸出信號(hào)為L(zhǎng)ED顯示器位選和段選信號(hào)。FIFO_1,F(xiàn)IFO_2這兩個(gè)模塊作為乒乓緩存,對(duì)輸入的數(shù)據(jù)按照輸入時(shí)鐘進(jìn)行高速存儲(chǔ),輸出數(shù)據(jù)時(shí)按照輸出時(shí)鐘讀出數(shù)據(jù),因此同時(shí)起數(shù)據(jù)時(shí)鐘變換作用。此模塊被ASYNC_FIFO調(diào)用并實(shí)例化。Nios的異步串行通信模塊作為相機(jī)的配置模塊,參照工作狀況和相機(jī)性能,對(duì)相機(jī)進(jìn)行適當(dāng)配置。
Modelsim作為圖像處理單元FPGA的仿真工具,支持VHDL、Verilog HDL以及兩者的混合仿真,整個(gè)程序分步執(zhí)行,設(shè)計(jì)者可以非常方便地觀察程序下一步需要執(zhí)行的語句[6]。設(shè)計(jì)可以隨時(shí)查看任意變量的數(shù)值,某一單元或模塊連續(xù)變化的輸入輸出量可以在在Dataflow窗口中查看[7]。以下為FPGA系統(tǒng)級(jí)功能仿真分析[8]。
輸入信號(hào):SYSCLK,RST_B,CAMERA_PIXCLK,CAMERA_FVAL,CAMERA_LVAL,CAMERA_DATA_IN.
輸出信號(hào):CAMERA_TRIG_SIGNAL,SRAM_CS_B,SRAM_OE_B,SRAM_WE_B,SRAM_ADDR_BUS,SRAM_DATA_BUS,SRAM_DATA_OUT,SRAM_DATA_OUT_EN,LED_DATA,LED_SEL.
內(nèi)部監(jiān)控信號(hào):FIFO:DATA_IN_X,DATA_OUT,DATA_EN,Q_X.
信 號(hào) 說 明 :SYSCLK, RST_B, 同 上 。 CAMERA_PIXCLK:相機(jī)輸出像素時(shí)鐘,CAMERA_FVAL:相機(jī)輸出幀同步信號(hào),CAMERA_LVAL:相機(jī)輸出行同步信號(hào),CAMERA_DATA_IN:相機(jī)輸出像素?cái)?shù)據(jù)。CAMERA_TRIG_SIGNAL:TRIGER輸出的相機(jī)觸發(fā)信號(hào)。SRAM_CS,SRAM_OE_B,SRAM_WE_B,SRAM_ADDR_BUS,SRAM_DATA_BUS,SRAM_DATA_OUT,SRAM_DATA_OUT_EN,LED_DATA,LED_SEL分別如上所述。系統(tǒng)總體功能仿真如圖3所示。由圖3可以看出,相機(jī)輸出符合設(shè)計(jì)預(yù)期,F(xiàn)IFO、SRAM協(xié)同工作符合預(yù)期。
根據(jù)精確放療的實(shí)際需求,針對(duì)現(xiàn)有技術(shù)的不足,設(shè)計(jì)整套圖像數(shù)據(jù)采集系統(tǒng),對(duì)系統(tǒng)各模塊進(jìn)行功能仿真,系統(tǒng)整體運(yùn)行仿真,最后進(jìn)行系統(tǒng)實(shí)際驗(yàn)證。系統(tǒng)實(shí)際工作試驗(yàn)結(jié)果表明,系統(tǒng)運(yùn)行穩(wěn)定,圖像傳輸速率快,傳輸穩(wěn)定。并且系統(tǒng)有充足的升級(jí)余量。相機(jī)可按需配置,配置程序簡(jiǎn)單,可觸發(fā)拍照,應(yīng)用范圍廣。目前存在的主要問題是高速總線走線不規(guī)范,致使系統(tǒng)在高速運(yùn)行時(shí)受到干擾較強(qiáng)烈。主要原因是系統(tǒng)由獨(dú)立模塊搭建而成而非專門的圖像接收系統(tǒng)。
由于患者呼吸運(yùn)動(dòng)較快并且幅度較大,用機(jī)器視覺檢測(cè)時(shí),每個(gè)患者需要數(shù)百張照片進(jìn)行比對(duì),以檢測(cè)其運(yùn)動(dòng)位移,對(duì)于圖像的傳輸、處理速度要求非常高。采用Camera Link接口協(xié)議,可以解決此設(shè)計(jì)中的速度瓶頸。由于高速圖像采集系統(tǒng)是高速機(jī)器視覺系統(tǒng)的關(guān)鍵部分,該設(shè)計(jì)僅是原理驗(yàn)證性設(shè)計(jì),目的在于暴露系統(tǒng)設(shè)計(jì)中的問題,并提出解決方案,積累經(jīng)驗(yàn),為高速機(jī)器視覺系統(tǒng)奠定基礎(chǔ),為精確放療提供更好的解決方案。從實(shí)測(cè)結(jié)果來看,該設(shè)計(jì)基本達(dá)到了目標(biāo)。設(shè)計(jì)過程中對(duì)遇到的各種問題進(jìn)行詳細(xì)記錄,并提出數(shù)套解決方案,為機(jī)器視覺系統(tǒng)應(yīng)用于精確放療積累寶貴資料。不論是設(shè)計(jì)結(jié)果還是過程,都達(dá)到預(yù)期效果。
圖3 功能仿真圖