姜睿林,陳春曉,崔建良,徐俊琪
(南京航空航天大學(xué)生物醫(yī)學(xué)工程系,南京 211106)
內(nèi)窺鏡成像系統(tǒng)已經(jīng)廣泛應(yīng)用于醫(yī)療領(lǐng)域,逐漸成為醫(yī)生診斷疾病及引導(dǎo)微創(chuàng)手術(shù)的重要工具。普通電子內(nèi)窺鏡是寬光譜白光成像,而窄帶光成像(narrow band imaging,NBI)技術(shù)是將普通內(nèi)鏡的廣譜濾波片切換為窄帶光濾波片[1],分別獲取藍(lán)光和綠光的圖像。由于不同波長的光在粘膜的穿透深度不同,經(jīng)過NBI增強(qiáng)后的內(nèi)鏡可以顯著提高毛細(xì)血管與周圍組織的對比度[2],增加黏膜組織下毛細(xì)血管的能見度,更加有利于觀察毛細(xì)血管凹凸變化,發(fā)現(xiàn)普通白光內(nèi)鏡下難以發(fā)現(xiàn)的微小病變[3-9]。高潔等[10]觀察電子內(nèi)鏡NBI模式與白光模式對病變檢出率的差異,研究發(fā)現(xiàn),NBI模式可以提高21%的檢出率;楊旭[11]探究NBI成像對浸潤性膀胱癌診斷價(jià)值,結(jié)果顯示,對于非肌層浸潤型膀胱癌,白光內(nèi)鏡檢出率為75%,NBI內(nèi)鏡檢出率為90%,對于肌層浸潤性膀胱癌,NBI內(nèi)鏡檢出的黏膜異常情況更為清晰,提高了檢出影像的可視性以及對比性;呂文選等[12]探討NBI技術(shù)對膀胱腫瘤術(shù)后復(fù)查患者的診斷價(jià)值,結(jié)果表明,電子內(nèi)鏡NBI模式可以顯著提高術(shù)后復(fù)發(fā)的檢出率。然而,傳統(tǒng)NBI技術(shù)需要窄帶光濾波片來限制透射光譜帶寬,光學(xué)機(jī)構(gòu)較為復(fù)雜。日本Chiba大學(xué)Miyake發(fā)明了富士能智能電子分光技術(shù)[13],該技術(shù)依據(jù)可見光譜的光子滲透到黏膜組織的物理過程,利用算法從白光全部光譜中獲得獨(dú)立波長的光譜信息,然后進(jìn)行圖像再合成,得到最后的色彩增強(qiáng)圖像??梢?,隨著圖像處理技術(shù)的發(fā)展,利用算法模擬光的物理傳播過程,實(shí)現(xiàn)NBI圖像的生成,已成為增強(qiáng)白光內(nèi)窺鏡圖像的重要研究內(nèi)容之一。
內(nèi)窺成像與傳統(tǒng)的開放式成像系統(tǒng)不同,醫(yī)生必須高度依賴內(nèi)窺鏡的影像進(jìn)行操作,因此,提高內(nèi)窺鏡成像系統(tǒng)的實(shí)時性和清晰度對改善內(nèi)窺鏡的可操作性具有重要意義。隨著電子技術(shù)快速發(fā)展,視頻圖像的分辨率實(shí)現(xiàn)了從標(biāo)清到高清、超高清的轉(zhuǎn)變[14-16]。圖像分辨率的提高意味著圖像數(shù)據(jù)量的成倍增加,這對高清視頻流的處理方法提出了新挑戰(zhàn)[17]。針對傳統(tǒng)基于CPU串行處理高分辨率圖像的方法存在實(shí)時性差、圖像延遲等問題。近年來,F(xiàn)PGA技術(shù)的發(fā)展和推廣為上述問題提供了新的解決方案[18]。FPGA內(nèi)部可編程邏輯資源的并行處理能力及多級流水線的設(shè)計(jì)架構(gòu),可以實(shí)現(xiàn)對數(shù)據(jù)的快速處理,提升高分辨率內(nèi)窺鏡成像系統(tǒng)的實(shí)時性,極大緩解因圖像處理算法造成的圖像延時問題[19]。
綜上所述,本研究基于FPGA的NBI圖像生成算法,在保證圖像生成質(zhì)量的前提下,可以滿足內(nèi)窺系統(tǒng)高清實(shí)時要求。
普通內(nèi)窺鏡采用可見光光源成像,黏膜中的血紅蛋白對415 nm的藍(lán)光和540 nm的綠光具有較強(qiáng)的吸收性,所以正常黏膜表面主要為紅色。此外,可見光在粘膜中的散射能力與波長密切相關(guān),散射越弱,穿透深度越大[20-21]。415 nm藍(lán)光散射最強(qiáng),穿透深度為0.17 mm,它可以較好地反映黏膜表層結(jié)構(gòu),在其照射下黏膜表層毛細(xì)血管呈現(xiàn)棕色。540 nm的綠光散射程度居中,穿透深度為0.25 mm,在其照射下黏膜下層血管結(jié)構(gòu)呈現(xiàn)青綠色[22]。根據(jù)上述原理,窄帶光成像是利用415 nm的藍(lán)光和540 nm的綠光進(jìn)行成像,從而達(dá)到增強(qiáng)血管成像的目的。
物體表面的反射率可描述物體的表面特性,不隨客觀環(huán)境而改變。然而,人體組織在內(nèi)鏡中呈現(xiàn)的色彩與相機(jī)的響應(yīng)特性和光源緊密相關(guān),不同的光源和相機(jī)拍攝同一組織所呈現(xiàn)的色彩并不相同。當(dāng)波長為λ時,物體反射光通量Φr(λ)與入射光通量Φi(λ)的比值為光譜反射率[23],公式如下:
(1)
因此,測量所需波段光譜反射率可以得到對應(yīng)波段的反射率曲線。實(shí)際應(yīng)用中,通?;趫D像各通道像素值與對應(yīng)物點(diǎn)在對應(yīng)通道上的光譜反射率成正比的原理,建立物理模型估計(jì)物體的反射率[24]。
假設(shè)E(λ)為光源的光譜功率分布函數(shù),fi(λ),i={r,g,b}為濾波片的光譜透過率,S(λ)為CCD或CMOS的光譜敏感函數(shù),L(λ)為鏡頭的光譜傳輸率,r(λ,x,y)為組織表面反射率。在可見光譜范圍內(nèi),像素點(diǎn)(x,y)處的系統(tǒng)響應(yīng)值vi可以表示為:
(2)
式(2)中E(λ),S(λ),fi(λ),L(λ)均反映系統(tǒng)本身特性,因此,可以將上述函數(shù)合并處理為單一函數(shù)mi(λ),即mi(λ)=E(λ)S(λ)fi(λ)L(λ),式(2)簡化為:
(3)
將式(3)寫為向量矩陣形式:
v=[vr,vg,vb]T=Mr
(4)
式(4)為算法的物理模型,其中M為光譜響應(yīng)矩陣,反映成像系統(tǒng)的性質(zhì)。取r=[r(410),r(540),r(605)]T,反射光譜的估計(jì)值如下:
(5)
其中,G為估計(jì)矩陣,與式(4)中M有關(guān),求解G就能夠根據(jù)響應(yīng)v重建窄帶光譜。本研究使用的CMOS圖像傳感器OV5640的G為:
(6)
(7)
由式(5)與式(7)整理得:
(8)
根據(jù)式(8)可以得到重建后的窄帶光圖像。此外,由于人眼對明暗度的敏感程度要高于對色彩的敏感程度[25],因此,為了增大黏膜下層血管和上層粘膜組織的對比度,重新匹配RGB通道:
(9)
最后,將式(9)各通道進(jìn)行g(shù)amma變換,得到增強(qiáng)后的窄帶光圖像,便可以達(dá)到傳統(tǒng)窄帶光成像的效果。
為了提高窄帶光內(nèi)窺系統(tǒng)的實(shí)時性,本研究采用FPGA+ARM的體系結(jié)構(gòu),設(shè)計(jì)并實(shí)現(xiàn)了基于光傳播特性的窄帶光成像系統(tǒng),見圖 1。系統(tǒng)主要由圖像采集模塊、窄帶光變換模塊、內(nèi)存映射模塊、顯示模塊組成。在可編程邏輯(programmable logic,PL)部分,視頻采集模塊獲取CMOS攝像頭的原始圖像數(shù)據(jù),將其整合為RGBA32格式輸出,便于下位機(jī)處理;窄帶光變換模塊將上一級輸出的RGBA格式的白光數(shù)據(jù)通過窄帶光變換算法變換為窄帶光圖像數(shù)據(jù)輸出,為整個系統(tǒng)的核心部分;內(nèi)存映射模塊將窄帶光圖像數(shù)據(jù)通過直接內(nèi)存映射的方式傳輸?shù)紻DR作為緩存。在處理系統(tǒng)(processing system,PS)部分,ARM處理器通過IIC和GPIO接口模擬SCCB協(xié)議對攝像頭進(jìn)行控制;同時,顯示模塊實(shí)現(xiàn)DP接口驅(qū)動邏輯,將DDR中的圖像數(shù)據(jù)輸出到顯示器。
圖1 系統(tǒng)結(jié)構(gòu)圖
窄帶光成像系統(tǒng)采用Xilinx公司生產(chǎn)的基于Zynq的UltraScale+MpSoc系列XCZU3EG型號工業(yè)級芯片,該片具有154 k個邏輯單元和360個DSPSlices,擁有高達(dá)7 600 kbits的大容量BlockRAM資源,每秒2 400 Mbits高速DDR4接口的64位4 GB內(nèi)存,擁有10個PLL時鐘管理模塊和一路MiniDisplayPort輸出顯示接口,最高支持1 080P@60 Hz輸出,可以滿足窄帶光成像系統(tǒng)高清實(shí)時的要求。
圖像采集模塊選用OminiVision公司生產(chǎn)的OV5640攝像頭,分辨率為2 592×1 944的CMOS圖像傳感器,幀率在 15~90 fps范圍內(nèi)可調(diào)。本系統(tǒng)通過PS端IIC配置CMOS_H_PIXEL為1 920,CMOS_V_PIXEL為1 080,設(shè)置視頻輸出模式為DVP,圖像格式為RGB565,8位數(shù)據(jù)線實(shí)現(xiàn)視頻數(shù)據(jù)流的采集。攝像頭后端ISP采用alinx_ov5640自定義IP,其中包含 cmos_8_16bit 和cmos_in_axi4s兩個模塊。cmos_8_16bit模塊用來把8位攝像頭輸入的數(shù)據(jù)轉(zhuǎn)化為16位RGB565 格式, cmos_in_axi4s模塊把攝像頭的RGB565數(shù)據(jù)轉(zhuǎn)化為AXI4-Stream協(xié)議格式,用作后續(xù)處理。
系統(tǒng)采用Xilinx公司推出的高層次綜合工具(high level synthesis,HLS)設(shè)計(jì)窄帶光變換IP,與寄存器傳輸級(register transfer level,RTL)邏輯設(shè)計(jì)不同,HLS使用高級語言C/C++進(jìn)行程序設(shè)計(jì),而不是傳統(tǒng)的硬件描述語言,極大的提高了開發(fā)效率[26]。程序設(shè)計(jì)中使用xfOpenCV圖像處理模塊實(shí)現(xiàn)基本的圖像處理算法,程序設(shè)計(jì)流程見圖2。
程序整體采用data_flow優(yōu)化策略實(shí)現(xiàn)任務(wù)級流水線;AXIVideo2Mat子模塊將輸入的AXI4-Stream格式的圖像數(shù)據(jù)流轉(zhuǎn)換為Mat類型,采用stream策略實(shí)現(xiàn)Mat,通過雙端口BlockRAM實(shí)現(xiàn)深度為1 920的FIFO,提高視頻流的讀寫速度;采用雙循環(huán)遍歷Mat,外層循環(huán)采用flatten策略,內(nèi)層循環(huán)采用pipeline策略,將各操作流水線化;ExtractPixel子模塊采用unroll優(yōu)化策略,用并行資源提取圖像中的RGB三通道像素;乘加運(yùn)算子模塊實(shí)現(xiàn)窄帶光生成算法。由于FPGA不擅長處理浮點(diǎn)運(yùn)算,為了提高FPGA執(zhí)行效率,將式(9)中的系數(shù)轉(zhuǎn)為整數(shù)處理:
GNBI=(-1 012R+659G+425B)>>8
(10)
BNBI=(-184R+73G+333B)>>8
(11)
圖2 圖像處理流程
溢出處理子模塊對圖像進(jìn)行防溢出處理:
(12)
PackPixel子模塊采用unroll策略將像素?cái)?shù)據(jù)重新打包為Mat,并采用stream策略實(shí)現(xiàn)Mat;AXIVideo2Mat子模塊將Mat轉(zhuǎn)化為AXI4-Stream格式輸出;此外,采用向AXI4-Stream接口添加寄存器的策略提高時序性能;最終生成IP核,并添加到PL設(shè)計(jì)中。
內(nèi)存映射模塊采用Xilinx公司的VDMA IP實(shí)現(xiàn)。此IP使用AXI4協(xié)議接口,實(shí)現(xiàn)了PL端與PS端的數(shù)據(jù)通訊。VDMA結(jié)構(gòu)見圖3,VDMA采用直接內(nèi)存映射技術(shù),無需ARM介入處理,PL直接獨(dú)立讀寫PS端DDR中的數(shù)據(jù),以提高系統(tǒng)的實(shí)時性。
VDMA將上位機(jī)AXI4-Stream格式的視頻流數(shù)據(jù)轉(zhuǎn)換為標(biāo)準(zhǔn)的AXI4格式,通過axi4_s2mm接口將數(shù)據(jù)發(fā)送到PS端HP_FPD接口,并傳輸?shù)紻DR中,見圖3。此外,VDMA還有一個AXI4-Lite接口,通過PS端HPM_LPD口讀取VDMA的狀態(tài)以及配置VDMA的參數(shù)。
圖3 VDMA工作流程
在VDMA配置中, 采用三幀緩存,使能寫通道,突發(fā)長度(write_burst_size)為128,數(shù)據(jù)位寬(stream_data_width)為32,行緩存深度(line_buffer_size)為4 096。將VDMA的同步鎖相模式(genlock_mode)設(shè)置為Master,幀同步選項(xiàng)(fsync_options)為s2mm_tuser。
AXU3EG開發(fā)板帶有1路標(biāo)準(zhǔn)的DisplayPort輸出顯示接口,用于視頻圖像的顯示。在本系統(tǒng)中選用RGBA32格式,由于每個像素點(diǎn)的顏色深度為24位,即RGB每個顏色分量占8位,通過在PL中添加一個AXI4-Stream Subset Converter模塊,將24位數(shù)據(jù)轉(zhuǎn)換為32位數(shù)據(jù),便于后端顯示。在PS端設(shè)置顯示分辨率為1 920×1 080,綁定VDMA映射的DDR地址,用作圖像顯示的后緩沖。
為了驗(yàn)證窄帶光變換算法的有效性,在同一幀白光圖像條件下,對比本研究系統(tǒng)生成的NBI圖像與德國KARL STORZ公司膀胱NBI軟鏡結(jié)果,見圖4。
圖4 窄帶光對比圖像
由圖4可知,本研究利用FPGA實(shí)現(xiàn)基于物理算法生成的窄帶光圖像可以達(dá)到光學(xué)NBI圖像的效果,與傳統(tǒng)的白光圖像比較,血管形態(tài)結(jié)構(gòu)、凹凸性、色調(diào)等得到了顯著增強(qiáng),且與周圍黏膜組織邊界清晰。
為了進(jìn)一步驗(yàn)證系統(tǒng)的臨床效果,使用本課題組與南京諾源醫(yī)療器械有限公司聯(lián)合開發(fā)的 REAL-IGS 內(nèi)窺鏡熒光影像系統(tǒng)(蘇械注準(zhǔn) 20202060782)采集膀胱內(nèi)窺白光圖像,再經(jīng)過本系統(tǒng)生成窄帶光圖像,結(jié)果見圖5。
圖5 白光與NBI對比圖像
由圖 5可知,與白光圖像比較,利用REAL-IGS 內(nèi)窺鏡熒光影像系統(tǒng)生成NBI圖像的毛細(xì)血管結(jié)構(gòu)清晰、與周圍黏膜對比度高。
本研究對系統(tǒng)性能指標(biāo)進(jìn)行測試, NBI成像系統(tǒng)采用Xilinx FPGA XCZU3EG ARM Cortex-A53@1.20 GHz平臺,使用HLS xfOpenCV圖像處理模塊設(shè)計(jì)硬件;性能指標(biāo)對比實(shí)驗(yàn)PC平臺為Intel i5-9400F CPU@2.90 GHz Windows 10,使用OpenCV編程,對比結(jié)果見表1,片內(nèi)資源使用情況見表2。
表1 FPGA與CPU性能比較
表2 片內(nèi)資源使用情況
由表1和表2可知,相對PC系統(tǒng)而言,采用FPGA的NBI成像系統(tǒng)速度提高了5倍左右,且片內(nèi)資源消耗小,有足夠的余量可供后續(xù)開發(fā)。
針對傳統(tǒng)基于CPU的NBI內(nèi)鏡存在的光學(xué)結(jié)構(gòu)復(fù)雜、成像延遲等問題,本研究基于光傳播特性的窄帶光成像算法,設(shè)計(jì)實(shí)現(xiàn)了基于FPGA的窄帶光成像系統(tǒng)。該系統(tǒng)生成的NBI圖像可以有效增強(qiáng)毛細(xì)血管與周圍組織的對比度,并顯著提高內(nèi)窺成像系統(tǒng)的實(shí)時性。