崔永剛,王 梅,陳德華,潘 喬
(東華大學計算機科學與技術學院,上海 201620)
腦脊液是在大腦的腔室和管腔,脊髓的中央管中以及在大腦和脊髓的外部發現的透明液體,其內部包含二十多種細胞,這些細胞的數量及形態反映了機體的健康狀況。目前使用顯微鏡對腦脊液進行檢查是診斷多種傳染性、炎性和代謝性疾病的主要手段。在臨床工作中,大多數醫院的檢查方式為使用電子顯微鏡對細胞影像進行觀察,記錄電鏡圖片,再由醫生對不同的細胞或細菌進行辨認分類并計數[1]。由于腦脊液中所含有的細胞種類較多,且不同種類細胞的視覺特征非常相似,再加上需要辨別統計的細胞數量十分龐大,對于醫生來說無疑是一項繁重的任務。除此之外,不同規模的醫院以及不同發展情況的城市對于病理醫師的配置情況也有所不同,一些地方醫院沒有能力配置病理醫師進行腦脊液成像的辨別,而對病人來說,于各醫院之間的奔波不僅會加重病人的經濟負擔,甚至有可能延誤最佳的治療時機。
針對上述問題,本文提出基于深度學習研發的腦脊液細胞學AI分析系統,針對特定應用場景,通過使用前后端分離系統實現技術、目標檢測等技術,進而實現對細胞進行檢測以及分類,不同類別細胞的計數統計,輔助病理醫師標注制作新的數據集,對數據集進行處理以及模型的補充訓練等功能。區別于一般的目標檢測系統,本系統引入了細胞形態學進行特征提取以達到輔助分類的效果,并引入了事后解釋器對分類依據進行解釋。
本文以實際醫院中病理科對腦脊液顯微鏡載玻片進行細胞學檢查為應用場景,開發了腦脊液AI輔助分析Web系統。在實際應用中,還需要配置相應的硬件,本系統配套的主要硬件有:①光學顯微鏡;②CCD相機;③控制箱;④計算機(內置影像系統);⑤邊緣微服務器。主要的使用過程為:首先,控制箱控制顯微鏡鏡頭移動,對多張載玻片進行自動掃描切片,同時光學顯微鏡的CCD模塊會截取到顯微鏡內的腦脊液細胞涂片圖像,截取到的圖像通過連接線以電信號的形式傳輸最終編碼成bmp格式的圖片存儲到醫生端的計算機中。腦脊液細胞學AI分析系統采用B/S架構模式,被部署在邊緣微服務器上,通過病理醫師端的計算機瀏覽器可以訪問該Web應用,實現對腦脊液影像的上傳、預測以及數據集的標注、訓練。
如圖1所示,本系統主要包含五個模塊。其中,采集的腦脊液圖像通過圖像上傳模塊上傳到服務器;通過預測模塊進行處理,預測模塊主要包含了對細胞圖像進行檢測分類,輸出模型的可解釋結果,以及細胞計數服務;輔助標注模塊用來對腦脊液圖像進行標注,擴充數據集;通過補充訓練模塊對數據集進行處理,實現模型新的訓練;通過信息管理模塊對患者就診記錄進行管理。
系統采用了Spring Boot+Vue+Mybatis框架,B/S架構,將web系統的前端與后端分為兩個獨立的模塊分別進行開發部署。在前端,設計一個基于Web界面的交互及可視化工具,供用戶進行交互式的操作及圖像的展示;在后端,使用服務器存儲醫學圖像數據,接收客戶端的請求并對醫學圖像數據進行處理和分析并返回到界面,這種方式可以有效提高開發過程的靈活度以及用戶的體驗。
本系統采用了MySQL和Redis兩種類型的數據庫。其中MySQL主要用來對病人信息、就診記錄、預測結果進行持久儲存,對于經常訪問的熱點數據,系統采用Redis作為緩存,以減少去MySQL獲取數據的時間,提升醫生端的訪問體驗。如圖2所示,數據庫主要設計了patient、record、prediction、image、slime、train和manager七個表,其中patient表用于存儲患者信息,record表存儲了每個患者的就診記錄,image表存儲了每次就診記錄的圖片,prediction表存儲了每個圖片的預測記錄,slime表用于存儲每個預測記錄的可解釋圖像,train表用于存儲每次模型的訓練結果,manager表用于存儲管理員的賬戶密碼等信息。
預測模塊為整個系統的核心模塊,用于對患者每次就診記錄的AI預測分析,該模塊包含的服務主要有細胞檢測、分類可解釋以及細胞的計數統計功能。
2.1.1 細胞檢測
細胞檢測主要是對患者的一次腦脊液細胞學檢查獲得的所有細胞顯微鏡切片圖像進行數據量較多的三類細胞:淋巴細胞、單核細胞、中性粒細胞的三分類目標檢測。該功能選用了基于Faster R-CNN[2]的目標檢測算法實現,Faster R-CNN是經典的目標檢測算法,輸入圖像送入Faster R-CNN后會在特征提取模塊中進行特征提取,并在生成的特征圖上設置多個候選框,之后對候選框進行前景背景的分類和邊界調整,最后送入分類網絡中得到每個細胞的邊界和類別,由于腦脊液數據集的樣本不均衡,各樣本差異性小等特點,本系統在該基礎上引入了人工特征進行輔助分類,并實現了基于圖像分割的特征自動提取。圖像分割可以看作是對圖像每個像素點進行分類,本系統使用了U-net[3]進行細胞的圖像分割,輸入圖像首先經過編碼部分獲得分層特征,這些特征包含原始圖像的上下文信息以及語義信息(顏色、紋理等),之后在解碼部分得到的特征圖與編碼部分的特征圖進行融合上采樣,最終在預測部分獲得每個像素點的類別。具體的實現方法為:使用Faster R-CNN模型獲得細胞的標注框以及類別,使用U-net圖像分割模型將圖像的所有像素點區分為細胞核、細胞質以及背景,并用Faster R-CNN得到的標注框對分割結果進行截取,并將Faster R-CNN標注框中的結果近似看作為該細胞的結果,如此便得到了每個細胞的細胞核與細胞質的分割圖,再根據各個特征提取的算法得到細胞的特征,最后使用機器學習算法對提取到的人工特征細胞進行二次分類。
本文根據幾何學以及細胞形態學共設計了細胞核凹凸度、細胞核粗糙度、細胞核圓度、細胞核長寬比、核質比、細胞核面積以及細胞面積七個人工特征供分類樹用作二次分類。訓練好的模型會被部署到服務器上,提供接口供service層調用。進入醫院使用該系統檢查的患者會在服務器工作目錄下生成一個以病人就診ID命名的文件夾,病人進行一次細胞學檢查后生成的所有切片圖像上傳到服務器時,系統會在每個病人的文件夾下針對每一次檢查記錄,生成以檢查時間命名的檢查記錄文件夾,該文件夾里面保存了此次檢查的所有腦脊液顯微鏡細胞圖像。病理醫師選擇一次就診記錄之后點擊預測按鈕就會跳轉到細胞縮略圖頁面,獲得每張圖像的標注結果,選擇圖像后可以查看每個記錄的詳細信息,包括對每個標注結果的預測類別、位置、置信度以及可解釋信息。
2.1.2 分類可解釋
在實際的應用中,使用訓練好的模型去預測新的圖像,特別是由于本實驗所使用的醫療數據以及醫療背景的敏感性,僅僅給出模型的預測結果往往不能使醫生足夠放心。為此,本系統使用了S-LIME[4]事后解釋器,對模型的預測結果進行解釋,最終得到模型的判斷依據。在S-LIME中,需要解釋的黑盒模型訓練好后會被送入S-LIME中,在S-LIME中生成和原始黑盒模型預測能力最為接近的線性模型以及線性模型的權重信息,通過基于中心極限定理的假設檢驗框架來確定保證結果解釋穩定性所需的模擬數據集數量。在該模塊中,使用凹凸度等人工特征訓練的模型會被保存,對于需要解釋的細胞實例,S-LIME會根據該實例進行數據的擾動,生成一定數量的模擬數據,在此基礎上建立分類模型并獲得特征的權重,此權重信息代表了對該實例分類最重要的人工特征信息。病理醫師在界面上點擊預測后可以獲得對分類結果的解釋,包括模型預測細胞三個類別的概率,人工特征的權重排序以及人工特征的值。
2.1.3 細胞計數
模型在進行AI預測(即對腦脊液圖像檢測并辨別細胞)時,除了生成標注后的圖像外,模型的預測結果(類別、置信度、坐標等信息)會保存在數據庫的prediction表中。在進行細胞統計時,CountCellService可以直接調取相應的Dao接口,執行SQL語句查詢本次記錄的所有預測結果,并分別對三個種類的細胞使用SQL中的count函數獲得細胞的數量,Vue獲得返回值之后會通過調用Vue封裝的sChart圖表組件生成相應的分布圖展示在前端頁面上。病理醫師在導航欄選擇細胞統計功能后,選中希望統計的就診記錄,頁面就會顯示此次檢查的細胞統計情況。
該模塊用于輔助病理醫師標記數據集,以生成數目更大、更具有實時性且標注結果更精確的腦脊液細胞數據集,從而保證模型的預測準確率長期處在一個較高的區間。病理醫師首先選擇一次就診記錄,服務器會根據record_id檢索出該就診id的全部圖片url并返回到頁面上,醫生選擇感興趣的圖片后,系統會去prediction表里調出該圖像的預測記錄返回到頁面,其中包括該結果的局部放大展示、預測類別、邊界參數以及置信度,病理醫師可以選擇認為有問題的預測結果,對結果進行再標注(重新定位或重新分類),修改后的結果再直接保存到prediction表中,用作數據集生成。
該模塊可以使病理醫師在使用過程中隨著數據集的擴充,繼續訓練模型以保證模型的準確性,為了方便模型切分數據集并進行訓練,使用生成數據集功能后,系統首先會判斷數據庫是否存在更新,如果存在更新,系統會對預測記錄表進行檢索,檢索的記錄會以txt文件的形式存儲在工作目錄/data/txt文件夾下,具體字段包括圖片路徑、標注類別以及圖片的上、下、左、右邊界,并進行數據集的分割。系統執行get_map.py腳本后,會在/log/result文件夾存儲此次訓練的loss曲線以及最終結果的準確率、map值等,對應的train表里將會生成此次訓練記錄。病理醫師可以對模型進行補充訓練,在模型訓練結束后病理醫師可以查看每次訓練的loss曲線以及細胞檢測的map指標。
本文以實際病理醫師對腦脊液細胞學圖像進行檢查為應用場景,搭建了一個完整的細胞檢測系統并對該系統依托的硬件及配置環境進行了介紹,對腦脊液細胞學圖像AI分析系統整個運作流程進行了描述,通過使用Spring Boot+Vue對Web系統進行開發,使用引入人工特征的Faster R-CNN對腦脊液細胞圖像進行檢測,使用S-Lime算法實現了對分類結果的解釋,還實現了不同類別細胞的計數統計,輔助病理醫師標注制作新的數據集,對數據集進行處理以及模型的補充訓練等功能。綜上所述,本應用可輔助病理醫師對腦脊液進行細胞學分析,降低成本,具有較高的應用價值和擴展空間。