姚妮,董明昊,孟潁輝,朱付保
(鄭州輕工業(yè)大學(xué)計算機與通信工程學(xué)院,河南鄭州,450000)
冠脈造影是目前診斷冠心病的“金標準”,可明確冠脈解剖、冠脈血流和心肌灌注以及冠脈病變。隨著我國冠心病患者逐年增加,大量的冠狀動脈造影給臨床醫(yī)生造成了沉重的負擔(dān)。并且,冠狀動脈造影診斷依賴于醫(yī)生的臨床經(jīng)驗,不同醫(yī)生對同一影像的解讀往往存在一定的主觀差異性,從而影響治療決策[2]。基于此,開發(fā)一個基于Django的冠脈造影血管標注系統(tǒng)并利用深度學(xué)習(xí)技術(shù)進行冠狀動脈造影血管分割,從圖像中自動提取血管結(jié)構(gòu)信息進行標注成了必然要求。本文系統(tǒng)使用U-Net++深度學(xué)習(xí)框架[8]所訓(xùn)練出來的模型對冠脈造影進行預(yù)測分割,其準確性達到了90%,使用基于Python語言的Django框架,可以方便、快捷地創(chuàng)建高品質(zhì)、易維護的應(yīng)用程序。憑借訓(xùn)練的模型的準確性與便捷的操作使冠脈造影血管標注系統(tǒng)更加人性化,便于醫(yī)生進行標注和保存信息。
冠脈造影標注系統(tǒng)是一個基于B/S的Web系統(tǒng)。采用Python語言開發(fā),Web開發(fā)框架使用Python中口碑較好的Django框架,數(shù)據(jù)庫使用SQLite輕型數(shù)據(jù)庫。
基于Django的冠脈造影標注系統(tǒng)采用MTV模式[],這種設(shè)計模式關(guān)鍵的優(yōu)勢在于各種組件都是松耦合的,每個由Django驅(qū)動的Web應(yīng)用都有著明確的目的,并且可以獨立更改不影響到其它部分??傮w架構(gòu)包含模型、視圖、模板、控制器。其中模型負責(zé)業(yè)務(wù)對象和數(shù)據(jù)庫的關(guān)系之間的映射,視圖負責(zé)業(yè)務(wù)邏輯,并在適當(dāng)時候調(diào)用模型和模板,模板負責(zé)如何把頁面展示給用戶,控制器又叫URL分發(fā)器,負責(zé)將URL的頁面請求分發(fā)給不同的視圖處理,基于SQLite輕型數(shù)據(jù)庫在數(shù)據(jù)庫層存放用戶基本信息。系統(tǒng)整體架構(gòu)如圖1所示。
圖1 系統(tǒng)整體架構(gòu)圖
系統(tǒng)用戶劃分為兩種角色,一種是管理員,另一種是普通用戶。普通用戶只能進行登錄和數(shù)據(jù)上傳、調(diào)用模型、修改預(yù)測結(jié)果、下載標注結(jié)果功能。管理員可以對數(shù)據(jù)進行管理刪除,并且對用戶進行管理。
圖2 管理員用例設(shè)計
圖3 普通用戶用例設(shè)計
基于Django的冠脈造影血管標注系統(tǒng)的主要功能如圖4所示。
圖4 冠脈造影血管標注系統(tǒng)總體功能設(shè)計
(1)管理員數(shù)據(jù)管理和增刪用戶功能:每個用戶需要上傳一個病人的四個冠脈造影數(shù)據(jù),數(shù)據(jù)量會很大,管理員需要定時進行數(shù)據(jù)清理工作,保留主要分割結(jié)果和標注結(jié)果數(shù)據(jù)。并對用戶的基本信息進行管理,增加和刪除新用戶。
(2)造影數(shù)據(jù)上傳功能:此頁面為用戶進入系統(tǒng)后的默認頁面,頁面中間有三個按鈕,上傳按鈕可以選擇需要上傳的本地數(shù)據(jù),一次可以上傳一個病人的多個數(shù)據(jù)。點擊Upload上傳按鈕,可以對上傳的冠脈造影數(shù)據(jù)進行解析在后臺進行保存。
(3)調(diào)用模型預(yù)測功能:在選擇了需要預(yù)測的冠脈造影圖片之后,會直接調(diào)用U-Net++深度學(xué)習(xí)分割模型進行預(yù)測,得到的預(yù)測結(jié)果會直接保存到后臺,在下一個界面,將讀取預(yù)測結(jié)果放到畫布上以供修改。
(4)預(yù)測結(jié)果修改保存功能: 調(diào)用模型預(yù)測所產(chǎn)生的結(jié)果可能會有不準確之處。在該頁面實現(xiàn)了可調(diào)整粗細的畫筆和和橡皮擦功能、填充區(qū)域和清除區(qū)域功能、畫布的放大縮小功能和撤銷等功能,來實現(xiàn)對預(yù)測結(jié)果的修改功能。
(4)標注血管保存功能:在修改預(yù)測結(jié)果之后,需要對冠脈造影血管進行目標血管標注,根據(jù)用戶需求,可以對自己需要的主干以及分支血管進行標注。
(5)數(shù)據(jù)下載功能: 在用戶進行標注之后,由于用戶想要利用這些數(shù)據(jù)進行血管重建,所以提供了數(shù)據(jù)下載的功能。
(1)登錄頁面
用戶可以登錄進入系統(tǒng)開始上傳數(shù)據(jù),首次使用可以點擊注冊。如下圖5所示。
圖5 登錄頁面
(2)上傳數(shù)據(jù)界面
點擊Select dicom files 選擇需要上傳的冠脈造影數(shù)據(jù)。可以上傳多個數(shù)據(jù)。然后點擊Upload上傳按鈕開始解析數(shù)據(jù),等待跳出success,代表解析成功。最后點擊ULabel_Fluoro按鈕跳轉(zhuǎn)到選擇需要預(yù)測的圖片界面。如圖6所示。
圖6 上傳數(shù)據(jù)
(3)選擇預(yù)測幀界面
該頁面是用來讓使用者選擇想要去預(yù)測的冠脈造影的某一幀。左側(cè)為功能按鈕,可以切換上下冠脈造影數(shù)據(jù)和切換圖片。Select按鈕是用來選擇圖片的作用,在選擇結(jié)束之后,點擊Predict按鈕可以調(diào)用訓(xùn)練好的U-Net++模型進行預(yù)測并跳出進度條。如圖7所示。
圖7 選擇預(yù)測幀預(yù)測界面
(4)預(yù)測結(jié)果修改界面
該頁面可以用來補充血管,通過畫筆和填充區(qū)域。如下圖8、9所示。
圖8 放大后畫筆操作
圖9 填充區(qū)域操作
修改預(yù)測結(jié)果不準確之處,或者去除非目標血管??梢酝ㄟ^橡皮擦和清除區(qū)域來進行操作,具體如圖10、11所示。
圖10 橡皮擦去除界面
圖11 清除區(qū)域界面
(5)血管標注界面
該頁面是對血管進行標注,并且存儲像素信息,用不同顏色展示。右上為造影的文件名,右下為已經(jīng)標注過的血管,可以點擊前面的小方框進行查看。如圖12所示。
圖12 標注血管界面
(6)數(shù)據(jù)下載
在用戶標注完成全部數(shù)據(jù)之后,可以對當(dāng)前上傳的數(shù)據(jù)進行下載,系統(tǒng)會將存放在云服務(wù)器上的數(shù)據(jù)進行壓縮,以供用戶進行下載到指定位置。
圖13 數(shù)據(jù)下載
冠脈造影能夠清晰地顯示冠狀動脈解剖結(jié)構(gòu),使醫(yī)生和患者一目了然地觀看冠狀動脈管腔有無超過50%的狹窄和輕度狹窄、有無血栓和血管壁鈣化等[6]。本文系統(tǒng)考慮到用戶的習(xí)慣,盡可能使冠脈造影標注血管系統(tǒng)變的容易操作,提高用戶的體驗性。不斷將U-Net++模型優(yōu)化具有十分重要現(xiàn)實意義。