免費/開源的醫學影像後處理工具

 

綜述

醫學影像的處理有兩個特質。一是複雜,整個處理流程涉及多種算法,需要調整的參數較多。二是發展快,從採集、重建到後處理,新處理方法層出不窮,每年都有新工具,每五年又有個大熱點。因此影像後處理工具主要有兩方面的要求:易用性(交互參數少)和易拓展性(加入新功能快,第三方開發容易)。所有的工具都必須要平衡這兩方面上找到一個定位(下圖)。
在這裏插入圖片描述

果要強調易用性,整個軟件架構就要封閉一些,首先開放給用戶調整的參數就不能太多,其次要保證計算速度,設計上多考慮併發和內存傳遞,最後是要有一個設計良好的用戶界面。各種工作站就是此類產品的例子,操作按照解剖部位和處理需求進行流程優化,基本上點點鼠標就能完成。但是這樣一來,可擴展性就不強,雖然也有可能做一些插件接口支持用戶開發(如飛利浦的PRIDE和GE的Func2),但開發必須符合設定好的框架,空間很小。更極端的例子是CAD軟件,譬如invivo的DynaCAD之類,使用上非常簡便,但基本不考慮擴展。

如果要強調可拓展性,整個軟件架構就要非常開放。開放的極致就是一個各種工具組成的包,譬如FSL,DIPY等,用戶自己設計處理流程,自由組合工具函數,並加入自己開發的模塊。可擴展性極強。稍微用戶友好一些的是MITK(作者爲德國癌症研究中心的那套軟件www.mitk.org),MRtrix之類帶圖形界面的後處理工具包,用戶可以通過修改編譯腳本來自行調配處理流程和組件。開放的代價是易用性很差,如果科研團隊裏沒有熟悉編程的計算機背景的成員,幾乎不能真正用上這些工具。

我們在開發IMAge/enGINE(核磁彌散處理工具新版本)的時候,考慮面向的用戶是沒有工程團隊支持的醫學背景的大夫和研究生,因此儘量向易用性優化了,因此界面操作簡單,計算速度快。舉例來說,在i5-4570 CPU的計算機上測試,與其它開源工具比較如下。

在這裏插入圖片描述

在這裏插入圖片描述
OsiriX(http://www.osirix-viewer.com)是一款運行在iOS上的DICOM瀏覽器 (只有iOS版,無MAC的同學請跳過此節 )。其收費版,也就是OsiriX MD版是通過FDA認證的,可以在很多國家和地區直接用於臨牀。OsiriX也提供免費版,代價是運行過程中有彈窗跳出,需要等待若干秒才能繼續使用。OsiriX的功能主要集中在影像融合,影像渲染,影像標註上,計算參數圖並不是強項。其提供了第三方開發接口(https://github.com/pixmeo/osirixplugins),有很多第三方的插件,譬如提供結構化報告的Pi-RADS Bi-RADS 冠脈分析等插件,也有計算ADC的IB diffusion,計算DCE的IB DCE等等。
在這裏插入圖片描述
3DSlicer (https://www.slicer.org/)可能是發展最好,最全面的免費+開源影像處理工具了。它可以運行在iOS, windows和linux上。3DSlicer主要是哈佛大學醫學院佈列根婦女醫院(BWH),麻省總醫院(MGH),依阿華大學(University of Iowa)和GE醫療開發的。3DSlicer是用04年到現在超過47個的NIH經費灌溉出來的。光彌散方向的插件,就有04,13,15年的3項經費。另外還有放療引導,手術引導,放射組學,深度學習,XNAT接口,胸部影像平臺(Chest Imaging Platform)等海量功能組件。而且要相信哈佛醫學院系統拿funding的能力,他們可以一直搞新玩意兒,因此開發社區也極其活躍,新東西層出不窮。譬如這兩年火爆的深度學習,就已經有Deep Infer提供的前列腺分割和肺外形分割組件了。其中前列腺分割號稱DICE85+,建議各位把自己數據灌進去玩一玩,省得天天吹CNN也不知道最後替誰背了鍋。基本上,掌握了3DSlicer,大部分花錢的科研平臺就是來搞笑的……(部分組件見下圖)
在這裏插入圖片描述
更加難能可貴的是,這是一個開源平臺(Why?在美國,納稅人經費做的當然要開源),許可非常寬鬆,允許改造、商用等等。我們仔細閱讀過它的源碼,在開發IMAgen/enGINE的過程中,也借鑑了它的很多模塊(如DICOM導入管理部分)。我們碼農界有句老話,叫Talk is cheap, show me the code (吹水無用,請給代碼)。我們看了Slicer的代碼,真心膜拜人家在代碼架構,多團隊合作管理,版本控制方面的專業性。

但是,正如它在易用性-易擴展性圖中的位置一樣,它爲了多單位合作,支持更多的開發者,將插件接口做得極其開放。因此有2個缺點,1是暴露的參數太多了,使用非常複雜,必須仔細看文檔或者參加培訓班才容易上手。自己瞎玩的話,大概率連個彌散數據都灌不進去。(或許……我們可以開個培訓班賺錢?)2是計算速度慢,緣於其使用了大量的硬盤文件緩存方式進行模塊間通訊。舉例來說,下圖是UKF(Unscented Karman Filter)白質纖維束追蹤插件的參數界面,此種纖維束追蹤方法比較新,對數據量要求小追蹤效果好纖維束不容易斷,而且支持NODDI模型的追蹤。不過我感覺對於不懂技術細節的臨牀背景研究者,只能抓瞎了:
在這裏插入圖片描述
在這裏插入圖片描述
ImageJ(https://imagej.nih.gov)是一個工程師界的傳奇。它是NIH一個工作人員Wayne Rasband利用自己的業餘時間搭建的影像處理工具,開發者2010年從NIH退休之後,還在繼續做很多工作。它也擁有大量的第三方插件(列表見此https://imagej.nih.gov/ij/plugins)。和大部分影像處理軟件不同,這是個使用Java語言開發的工具,曾經還以applet方式提供在線使用。假設您團隊的開發者更熟悉Java系的工具,這應該是您首選的科研工具。不過它也存在用戶友好性的問題,而且界面比3DSlicer更加粗陋。因爲我們不用Java,這個工具我們用得比較少。各位可以自己官網查閱資料。
MITK
在這裏插入圖片描述
The Medical Imaging Toolkit (MITK, www.mitk.org)是德國癌症協會(German Cancer Research Center)搞的一套跨平臺的免費+開源軟件。雖然有圖形界面,但它更像是一套工具集而不是一個軟件。它可以理解爲基於QT,ITK,VTK,OpenCV編寫了一些自有的圖形組件和算法庫。然後通過靈活編寫cmake腳本和使用它的預編譯宏,可以把這些組件組成一個應用軟件。譬如官方搞的MITK Diffusion,可以做HARDI之類的運算和追蹤。下圖是一個DTI的一個界面:

在這裏插入在這裏插入圖片描述圖片描述

根據上次文章所說的易用性和開放性成反比的理論,MITK架構設計靈活,易用性就比較差。根據我的使用經驗,以它的工具庫組織起來的軟件往往不太穩定,bug比較多。各位可以試着下載安裝版試試,不經歷一番摸爬滾打恐怕是用不了的。MITK更像是給研究團隊中的工程技術人員根據科研需求,快速定製自制軟件用的。同樣在德國的一家公司出品的mevislab軟件應該是延續了這個思路(https://www.mevislab.de/),工程團隊可以用mevislab快速把算法界面化,給醫療團隊使用。這種研究團隊種包含了有開發實力的工程技術人員的情況,在國內可能不太多見。這也是我們把IMAge/enGINE往易用性方面優化的原因。

另外再介紹兩種專門用來做分割的後處理工具:

ITK Snap
在這裏插入圖片描述
ITK Snap (http://itksnap.org) 是跨平臺的免費開源軟件。支持iOS,WIN和Linux。其界面走技術硬核風,如下圖:

在這裏插入圖片描述

手動分割工具齊全而且實現了大量的ITK半自動方法,而且軟件架構比較開放,很方便往裏塞ITK寫的新方法,比較適合做分割算法開發的工程師們用來調參數或者嘗試新算法。對於醫學背景的同學們,我更推薦下面這個軟件:

Seg3D

Seg3D (http://www.sci.utah.edu/download/seg3d/)是一款交互設計非常獨樹一幟的免費開源影像處理軟件。考慮到它的開發單位猶他大學與Photoshop的淵源,Seg3D基於“蒙版”和“圖層”的使用也並不意外。每一步分割算法都是生成一個新的“蒙版”,蒙版之間也可以便捷的邏輯運算。不過Seg3D裏的半自動方法比較有限,只有區域生長,閾值之類的幾種。軟件比較封閉,想要二次開發加入新的方法也不是那麼容易。下圖是一個CT增強的顱內血管分割的小例子

在這裏插入圖片描述

首先可以使用閾值和聯通域找到血管(圖層一,綠色),但很容易連到骨皮之類其它類似信號的區域上。

然後再從原始數據使用Otsu法找到顱內,進行幾次腐蝕,確保顱內區域遠離骨皮(圖層二,黃色)。

最後把圖層一和圖層二做一個“與”邏輯(圖層三,紫色),就能粗略地得到顱內的血管部分了。

結合手動方法,願意花時間的話,應該說可以滿足絕大多數醫學影像分割需求了。還可以把分割好的模型直接3D打印。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章