以影像為基礎,融合多模態資料提供自動轉診能力、提供確診決策支援、提供初級影像報告,這就是全病種醫療影像閱讀者給出的願景。
在醫療影像領域最知名的一些公開資料集中,BRATS 關注腦部影像中腦腫瘤的檢測和分割,LUNA16 旨在從胸片中檢測肺結節,而以 Kaggle Diabetic Retinopathy Challenge 2015 為代表的多個資料集則關注糖尿病視網膜病變程度分類。在這些面向某一特定病種的任務上,研究者都已經取得了精確度不錯的成果。然而從一個好的分類模型到臨床實踐之間的距離有多遠?
「目前的醫療影像識別技術大多面向『重病大病』。然而,拿大家最熟悉的胸部 CT 的分析做例子,患者和醫生真的需要一個『專看肺癌病灶,但是其他肺病一概不會看』的系統嗎?」體素科技創始人丁曉偉提出的這個問題,答案是顯而易見的。
醫生是根據患者症狀、患病風險或其他檢查的結果來為患者做某種影像檢查,希望查明「為什麼咳嗽?」,而非「是否患了肺癌?」。哪怕是定向疾病的篩查,閱片醫生一樣有義務彙報所有影像中的可見異常。單一病種識別模型只能完成單一病種的假設與檢驗,然後回答問題二,對於問題一,只能表示無能為力。理想的系統既要能夠回答「您沒有患肺癌」,也能告訴患者「但是有肺炎」。「發現所有可見異常病定性」這個醫療診斷的基本邏輯,讓「特定影像協議(Imaging Protocol)下的的全病種識別能力」成了人工智慧醫療影像技術投入真實場景的底線。
「全病種醫療影像閱讀」對於人類醫生來說尚且不是一個容易達成的目標。丁曉偉談到,我國大約有一半的早期大病沒有獲得應有的檢查。基層醫院其實有豐富的影像裝置資源,但是為豐富的裝置配備同等豐富的醫生資源卻是幾乎不可能的。
因此,將「給定影像協議下的全病種醫療影像閱讀者」作為所有產品線定位的體素科技(VoxelCloud)才顯得與眾不同。「作為一款 AI 影像分析產品,如果想有效地控制診斷質量,就需要可用場景寬廣且邊界清晰,避免人為因素的影響。正面例子有:適用於所有非增強胸部 CT 的可見異常檢測產品、適用於所有眼底彩照的可見異常檢測產品。反面例子就是:適用於所有肺結節類病人的產品、適用於所有糖網病案例的產品。」
總而言之,產品需要從影像中得到近似醫生撰寫的自然語言報告來最大成度降低醫生工作量。而為了呈現這簡單一步,需要背後的機器學習模型具有人體各器官與組織的位置認知能力和導航能力、對所有可見病理型別在不同位置的檢測和識別能力,以及對病灶的定性和量化能力。
「用機器學習的語言描述,我們的 VoxelCloud Retina 眼底照相完整解決方案,就是一個能完成 10 種病灶型別的分類和量化,也能完成 8 種可見疾病的分類的多工模型。」體素眼科產品線負責人 Joseph 介紹說。
VOXELCLOUD Retina 覆蓋的病灶型別與疾病型別
而另一條產品線 VoxelCloud Thorax 胸部 CT 解決方案的負責人則直接向我們展示了一張巨大的列表。
肺部結節特性列表
「如果想要生成一份 CT 結節類病灶報告,肺結節的檢測(detection)和定位(localization)某種意義上都是一些預處理工作。完成之後,更關鍵的工作是分割(segmentation)以及特性描述(characterization)。這份列表是對結節特性的描述,一共包括九個型別超過 30 種特性描述。除了在影像專家的建議下去除了一些冗餘外,體素的系統進行了全部有意義特性的描述。除此之外,系統還需要進行精準的肺部分割、肺葉分割、血管和氣管的識別,才能理解病灶與周邊組織的相對關係。基於上述理解,進一步提供同一病人不同時間隨訪掃描的對應病灶匹配,加以量化對比,才能最終輸出一段完整的結節自然語言描述。每種病灶型別的報告生成過程都是如此。」
這家創立於洛杉磯和上海的人工智慧醫療影像公司,從名字就開始展現了他們對於醫療影像領域的抱負。
Voxel 或者說體素,來自於 volumetric pixel 的簡稱。它是「畫素」概念的三維版本,代表了三維空間上資料的最小單位。瞭解了它的定義,也就不難明白為什麼在日常生活裡「畫素」常見而「體素」不常有了:再高階的相機,拍出來的影像也都是天然二維的,醫療影像幾乎是唯一一個原生三維的場景。想要把計算機視覺領域裡常見的二維模型用於醫療影像,似乎只有兩個選擇:把模型升級成三維,或者把影像降級到二維。
體素用名字告訴了我們它的選擇。「既然醫療影像天生就是 3D 影像,那麼我們還是選擇使用 3D 模型解決 3D 問題」,丁曉偉這樣解釋道。
心包脂肪體積 3D 量化
不用常見的二維計算機視覺模型處理影像截面,而是用三維模型處理影像整體,可以說是選了視覺領域最難啃的骨頭之一。當影像的大小隨著維度增加而指數級地擴大,「記憶體有限」這個當下深度學習模型的「阿喀琉斯之踵」被打擊了個正著;同時,當識別主體佔影像的比例指數級地減小,卷積神經網路引以為傲的按層級抽取特徵的能力在明顯不足的主體資訊面前也無從發揮。
「為了讓計算機能夠在不耗盡記憶體的情況下處理一整張不經壓縮也不經切割的影響,我們對模型結構進行了很多專門的設計。」丁曉偉提到這個框架時非常興奮,「我們使用了空間可分解卷積(spatially separable convolution)和深度/廣度可分解卷積(depth-width separable convolution)替代了原有的卷積層。」
空間可分解卷積的邏輯是把一個 7 x 7 的卷積核分解成一個 7 x 1 的向量和一個 1 x 7 的向量的乘積,這樣原本需要 49 個引數的卷積操作就只需要 14 個引數了。深度/廣度可分解卷積則對三維影像的每一層進行二維卷積,然後再對所有的二維特徵圖進行卷積,形成一個三維特徵圖。「三維卷積模型非常難以訓練,但是在推理階段比二維逐層處理的速度快二十倍,精確率也更高。一根血管和一個結節的截面可能在二維空間上很難分辨,但是在三維空間裡是一目瞭然的。」
醫療影像處理的其他難點還包括樣本不均衡性。拋開影像裝置的水平、醫生操作水平、資料標註質量等種種參差,就算上述一切完美,我們收集到的資料庫裡,仍然會有大量影像是未患病的(陰性),少量影像是患病的(陽性)。大量的負樣本和大量的容易分類的樣本讓模型並不能專注於從錯誤中學習。「為了解決這一問題,我們使用了 Focal Loss 來作為損失函式。」Joseph 介紹道。
Focal Loss 是去年 10 月的 ICCV 2017 最佳學生論文,由 Facebook 人工智慧實驗室(FAIR)的 Ross Girshick 和何愷明參與提出。這種損失函式旨在從交叉熵出發,透過減少那些容易分類的樣本的權重,讓模型更專注於難分類的樣本。
這份去年 8 月剛剛釋出預印版的論文,從新鮮出爐到經歷工程試驗投入到產業中,用時一年還不到,這對於在引入新事物上審慎到近乎遲滯的、研究往往落後工程技術業界五年的醫療行業來說,不啻于飛速。
「實際上醫療影像領域對深度學習整體的接受速度就很快。因為它確實讓前深度學習時代不可能解決的問題變得可解。」丁曉偉仍然以肺結節為例,「上世紀 80 年代以西門子為代表的諸多醫療影像巨頭們就組織了大量人力,耗時十年,致力於以手工設計的特徵來檢測肺結節。然而這樣龐大的工程也僅僅能止步於肺結節的檢測,無法做好更加細微的結節良惡性風險判斷。結節的良惡性是由一些極為微小的特徵差別決定的,這很難以語言或手工特徵的形式描述,同時規律非常不明顯,很難以正向思維進行總結。然而深度學習帶來了資料驅動的可能,當模型從無數的真實肺結節樣例中抽象出了無法在低維空間進行描述的特徵,良惡性、乃至更多的特性描述就變得可能了。」
如果說決定以三維模型、以全新的損失函式解醫療影像問題是方法論上的選擇,以「全病種醫療影像閱讀」為目標是從滿足現實需求的角度進行產品設計,那麼「多工學習」(multi-task learning)則是二者的一個結合。
多工學習是基於共享表示(shared representation),把多個相關的任務放在一起學習的一種機器學習方法。「(多工學習)既是一種提高模型表現能力的方法論,也是實現全病種的一種實用的方法,模型客戶端部署時受到成本和硬體的限制,需要使用盡量少的模型個數來完成儘量複雜的推理任務。」丁曉偉說。
在眼底照相中,存在近二十個彼此相關的分類任務,選擇進行多工學習之後,先對哪一個任務進行訓練就會極大影響訓練時間以及模型效果。「實驗證明,先學習那些不確定性減少最快的模型獲得的效果最好」,Joseph 介紹道。
而在胸部影像領域,體素在進行一些更為大膽的嘗試。
用一個可以端到端訓練的多工模型進行所有肺部相關影像診斷工作
「我們試圖用一個模型進行所有肺部相關的工作。」丁曉偉畫了一張框圖:同一個模型,首先共用一個編碼器(Encoder)將三維醫療影像壓縮成特徵向量,然後在兩個分支上分別用解碼器(Decoder)完成肺葉分割、用 Mask R-CNN 進行結節檢測。在完成結節檢測的同時,利用獲得的球心和半徑資訊獲得 3D 結節 ROI(Region of Interest,感興趣區域),然後再次基礎上分別進行結節分割和結節特性描述。最終,彙總各個分支模型,為每個檢測到的結節生成一份自然語言報告:「在左下肺葉發現一處圓形實性磨玻璃混合型結節(2.5mm*4.4mm),邊緣平整,有血管穿過、內含脂肪組織,惡性風險 15%。」
肺葉分割與肺結節分割
在用特殊的演算法設計解決了算力問題之後,剩下的問題只有一個:資料。想要完成這樣一個規模宏大的模型,前提條件是擁有每一張影像的所有資訊標註。
「我們就快完工了」,丁曉偉提到。這裡的完工,是指建立一個包含了超過 8 萬份胸部 CT 全病種精標記資料集。
除了肺癌相關資料之外,體素在其他型別肺部病種上也積累了每種約 3 千份的儲備,累計收集了超過 15 萬份胸部 CT 資料。此外,還有超過 5 萬份帶有 5 年隨訪記錄的心臟冠脈造影 CT 資料和超過 420 萬眼底影像資料。
一年前的採訪中,丁曉偉提到,「體素想做醫療影像界的 ImageNet,把人的各種結構、各類常見病種病理全部交給一個統一模型,讓模型首先對影像裡『有什麼』有一個概念,然後再針對具體的應用開發精校的模型。」如今這個巴比倫塔一樣的工作已經展現出了雛形。ImageNet 的出現讓複雜的神經網路模型在「勢均力敵」的複雜資料集上進行訓練,最終將計算機視覺帶入深度學習的時代。在醫療影像的世界裡,資料集的規模量變引起質變的轉捩點,是不是也即將到來呢?
一個擁有全病種閱讀能力的計算機視覺系統能夠做什麼?在技術語言與數字之上,是一個美好的願景。
如今有超過 50% 的糖尿病患者沒有及時進行併發症眼病篩查,因為很難要求內分泌醫生具有眼底照相閱片能力。而一個視網膜影像全病種閱讀者的存在,讓糖尿病為代表的慢性病隨訪管理,變成基層醫院可以完成的任務。
眼底彩照篩查報告生成過程
更進一步,當全病種影像閱讀者從 to B 走向 to C,能夠覆蓋的人群就更為廣泛。
如今中國有 6000 萬處於視力發育關鍵時期的 3 歲以下兒童。其中有大約 4% 存在各類視力問題風險。3 歲以下兒童的認知能力尚不足以配合普通眼科醫生進行常規視力檢查,而全國能夠進行專業小兒眼科檢查的醫生卻僅有數千人。一個能從家長拍攝的影片裡分析眼球和身體的動作表現是否有異常,發現視力有問題的兒童並及時轉診干預的系統,把兒童視力問題的普查變得可能。
兒童過度斜視與眯眼
以影像為基礎,融合多模態資料提供自動轉診能力、提供確診決策支援、提供初級影像報告,這就是全病種醫療影像閱讀者給出的願景。