CV竞赛项目研究:脊柱疾病诊断(天池,GPU赛道,2020年9月)
目錄
0 總的感受
當(dāng)前階段,競賽還是2個關(guān)鍵:
get點(diǎn):
1 簡介
1.1 需求
1.2 數(shù)據(jù)集
1.2.1 MRI數(shù)據(jù)
第6名:“我是一個搬磚工”,南加州、上交大,2人。
1. 賽題背景分析及理解
2. 核心思路
- 目標(biāo)檢測
- 目標(biāo)分類
3. 比賽總結(jié)
第5名(初賽第1名):小團(tuán)子隊,華南理工大學(xué),1人
問題建模
數(shù)據(jù)處理
模型方法(兩個模型都沒改造)
目標(biāo)檢測:
目標(biāo)分類:
模型融合
第4名:(視頻)浙大睿醫(yī)隊,浙大,4人
數(shù)據(jù)分析
整體方案
實(shí)驗(yàn)結(jié)果
總結(jié)
第3名:shiontao團(tuán)隊,深圳大學(xué),1人(有指導(dǎo)教授)
1.問題分析
2.數(shù)據(jù)處理
3.核心思路
3.1方案介紹
3.2實(shí)驗(yàn)結(jié)果
3.3算法效率
3.4方案總結(jié)與展望
4.比賽經(jīng)驗(yàn)總結(jié)和感想
第2名:triple-Z團(tuán)隊,北大,3人
1 賽題分析
1.1 賽題回顧
2 模型方法
2.1 模型整體框架
2.2 neck模塊細(xì)節(jié)
2.3 關(guān)鍵點(diǎn)粗定位
2.4 關(guān)鍵點(diǎn)細(xì)回歸
2.5 關(guān)鍵點(diǎn)分類
2.6 損失函數(shù)
2.7 推理過程
2.8 其他一些小技巧
2.9 模型融合
3 實(shí)驗(yàn)結(jié)果
3.1 復(fù)賽成績及模型性能測試
3.2 定位模型與主流模型的性能對比
4 總結(jié)及展望
4.1 可行性討論
4.2 總結(jié)
4.3 展望
5 核心代碼
6 比賽經(jīng)驗(yàn)總結(jié)及感想
7 參考資料
第1名:deep thinker團(tuán)隊,東北、華南理工、北京妙醫(yī)佳,3人
賽題理解
賽題難點(diǎn)
核心思路
算法模型
實(shí)驗(yàn)數(shù)據(jù)
總結(jié):
0 總的感受
當(dāng)前階段,競賽還是2個關(guān)鍵:
- 不管是什么比賽,對于數(shù)據(jù)的理解是最重要的(預(yù)處理)
- 2020年目標(biāo)檢測競賽主流baseline基本是:Faster RCNN /?cascade R-CNN(X-101) + FPN +? DCN(當(dāng)然YOLO5也頂尖)
get點(diǎn):
- 訓(xùn)練時,驗(yàn)證集Loss可以作為訓(xùn)練集Loss一部分。
- 數(shù)據(jù)集少時,想到有交叉驗(yàn)證方法(使得模型更穩(wěn)定)。
- 深度學(xué)習(xí)什么叫玩的出神入化?自己設(shè)計輸入數(shù)據(jù)結(jié)構(gòu)、自己設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)、自己設(shè)計輸出數(shù)據(jù)結(jié)構(gòu)、自己設(shè)計損失函數(shù)。(見第2名方案)
1 簡介
官網(wǎng):https://tianchi.aliyun.com/competition/entrance/531796/information
總決賽視頻:https://tianchi.aliyun.com/course/video?spm=5176.12282027.0.0.7436379cBPqjCb&liveId=41212
1.1 需求
通過給定的少量數(shù)據(jù)集,利用算法來定位椎體和椎間盤的位置,并做7分類。
1.2 數(shù)據(jù)集
初賽階段將提供150份可下載的標(biāo)注訓(xùn)練數(shù)據(jù),以及50份可供下載的測試數(shù)據(jù)。復(fù)賽階段將提供250份標(biāo)注的訓(xùn)練數(shù)據(jù),和100份測試數(shù)據(jù),復(fù)賽階段的數(shù)據(jù)不可下載,模型的訓(xùn)練的評測將在阿里云EMR平臺內(nèi)進(jìn)行,數(shù)據(jù)不可離開平臺。
1.2.1 MRI數(shù)據(jù)
MRI數(shù)據(jù)比賽中將提供脊柱的核磁影像包括T1和T2 矢狀面影像,以及T2 軸狀位影像(FSE/TSE)
椎體和椎間盤的代表點(diǎn)會在T2矢狀位的中間幀中標(biāo)注出來,標(biāo)注將從胸12(T12)腰1(L1)間的椎間盤開始到腰5(L5)骶1(S1)間的椎間盤結(jié)束,其中椎體的段位和椎間盤的段位將分別給出,如L1,L2,等。椎體將分成2類:正常和退行性病變,椎間盤分成5類:正常,膨出,突出,脫出,椎體內(nèi)疝出。標(biāo)注樣例如圖2. 病變編碼對應(yīng)表如下所示:
| 椎體 | ||
|---|---|---|
| 編碼 | 中文 | 英文 |
| V1 | 正常 | Normal |
| v2 | 退行性改變 | Degeneration |
| 椎間盤 | ||
| 編碼 | 中文 | 英文 |
| V1 | 正常 | Normal |
| V2 | 膨出 | Bulge |
| V3 | 突出 | Protruded |
| V4 | 脫出 | Extruded |
| V5 | 椎體內(nèi)疝出 | Schmor |
位置標(biāo)注可視化后示意圖如下:
第6名:“我是一個搬磚工”,南加州、上交大,2人。
1. 賽題背景分析及理解
本次挑戰(zhàn)的目標(biāo)是通過人工智能算法自動分析核磁共振影像來檢測和分類脊柱的退行性改變,包括正常椎體、退變椎體、正常椎間盤、椎間盤突出、膨出等特征。比賽的數(shù)據(jù)量有限,線下的訓(xùn)練集150例,驗(yàn)證集51例,測試集50,所以不足以訓(xùn)練fast-rcnn為基礎(chǔ)的檢測網(wǎng)絡(luò)。
2. 核心思路
此次脊柱疾病智能診斷可以分為兩個部分:目標(biāo)檢測和目標(biāo)分類,對應(yīng)的可以分兩步來解決:
- 第一步,定位椎體和椎間盤的位置,即檢測任務(wù);
- 第二步,根據(jù)位置預(yù)測其對應(yīng)的分類,即分類任務(wù)。?
拆分成兩步的好處是,可以分別針對每一步進(jìn)行優(yōu)化。并且檢測相對簡單,可以在保證檢測準(zhǔn)確率的基礎(chǔ)上,更有針對性地努力提升分類的準(zhǔn)確率。實(shí)驗(yàn)結(jié)果也證明此策略的有效性,我們提出的方法檢測率可以達(dá)到0.97。所以比賽的難度主要集中在第二步分類任務(wù)上。
- 目標(biāo)檢測
由于樣本量有限,很難直接訓(xùn)練網(wǎng)絡(luò)回歸目標(biāo)坐標(biāo)點(diǎn),而且容易過擬合。我們采用的解決方法是基于分割來做檢測,如圖1所示。根據(jù)椎體和椎間盤的坐標(biāo)點(diǎn)生成右圖所示的分割mask。用生成的分割mask來訓(xùn)練分割網(wǎng)絡(luò)。此方法的好處有:
- 1)由于mask不是完全準(zhǔn)確,因此避免了過擬合;
- 2)生成的mask可以當(dāng)做attention map作用于第二步的分類任務(wù)。
目標(biāo)檢測流程圖:
為了提升檢測的準(zhǔn)確度,我們提出了三點(diǎn)創(chuàng)新:
- 1)將x,y坐標(biāo)位置編碼作為網(wǎng)絡(luò)輸入,提供目標(biāo)區(qū)域的先驗(yàn);
- 2)融合分割網(wǎng)絡(luò)和回歸網(wǎng)絡(luò),回歸網(wǎng)絡(luò)用于限制椎體和椎間盤相對位置;
- 3)采用cascade策略,提出雙回歸網(wǎng)絡(luò)進(jìn)一步提升目標(biāo)檢測結(jié)果。最后利用形態(tài)學(xué)方法提取區(qū)域中心點(diǎn)作為目標(biāo)位置。
- 目標(biāo)分類
在第一步目標(biāo)檢測的基礎(chǔ)上,根據(jù)目標(biāo)坐標(biāo)提取圖像塊,然后對圖像塊進(jìn)行分類。我們采取雙網(wǎng)絡(luò)來實(shí)現(xiàn)多標(biāo)簽的分類。編碼1和編碼2分別如表1和表2所示。(ym:V5可能是V1~V4中的一種情況,所以單獨(dú)用編碼2來分類以此提升精度)
? ? ? ? ? ??
目標(biāo)分類的流程圖如圖3所示。針對目標(biāo)分類,我們提出了三點(diǎn)創(chuàng)新:
- 1)利用分割mask作為attention map和圖像塊一起輸入分類網(wǎng)絡(luò);
- 2)利用矢狀位和軸狀位圖像共同預(yù)測;
- 3)采用多尺度的方法為椎體和椎間盤分別提取有效特征。
3. 比賽總結(jié)
- 方法總結(jié)
- 數(shù)據(jù)樣本量有限,難以直接回歸目標(biāo)坐標(biāo),采用基于分割的模型來預(yù)測坐標(biāo);
- 利用分割模型+雙回歸模型約束,可以提升預(yù)測坐標(biāo)的準(zhǔn)確性;
- 第一步中的分割結(jié)果作為attention map,輸入到分類網(wǎng)絡(luò)的輸入;
- 采用矢狀位和冠狀位同時作為分類網(wǎng)絡(luò)的輸入;
- 根據(jù)前景目標(biāo)的不同,采用不同的尺度提取圖像塊;
- 只采用了單一的模型,沒有進(jìn)行模型堆砌(多模型融合策略)
- 細(xì)節(jié)總結(jié)
- 數(shù)據(jù)增強(qiáng)很重要,防止過擬合;
- 實(shí)驗(yàn)參數(shù)選擇需謹(jǐn)慎,如裁剪圖像塊的大小, 訓(xùn)練迭代次數(shù)(過多容易過擬合,過少則無法達(dá)到最優(yōu));
- 融合醫(yī)生診斷時的經(jīng)驗(yàn),針對性地設(shè)置ROI的提取。
第5名(初賽第1名):小團(tuán)子隊,華南理工大學(xué),1人
問題建模
分為兩部分建模,一部分是椎體和椎間盤的定位問題,即對5個椎體L1、L2、L3、L4、L5和6個椎間盤T12-L1、L1-L2、L2-L3、L3-L4、L4-L5、L5-S1,共11個位置的定位。另一部分是椎體、椎間盤相應(yīng)的分類問題。其中,椎間盤的v5類–許莫氏結(jié)節(jié)是指椎體的軟骨板破裂,髓核可經(jīng)裂隙突入椎體內(nèi),造成椎體內(nèi)出現(xiàn)半圓形缺損陰影。在T2矢狀面影像上是位于每個椎體的上下表面,而椎間盤的v1-v4類位于椎體與椎體間的側(cè)面,兩者圖像上的感興趣區(qū)域不同,因此分別對v1-v4類和是否v5類進(jìn)行圖像分類。
數(shù)據(jù)處理
模型方法(兩個模型都沒改造)
目標(biāo)檢測:
采用 HigherHRNet作為椎體、椎間盤關(guān)鍵點(diǎn)提取的模型框架。
目標(biāo)分類:
采用 se-resnext50 作為病變圖片分類訓(xùn)練的模型框架。
模型融合
由于數(shù)據(jù)集存在數(shù)據(jù)量少,有些病變較難區(qū)分,如v2和v3,導(dǎo)致標(biāo)簽存在一些不準(zhǔn)確的情況;而且各類別數(shù)據(jù)不平衡,如v4、v5數(shù)據(jù)較少,這也給訓(xùn)練增加了一定的難度,模型很可能被不準(zhǔn)確的標(biāo)簽誤導(dǎo)。因此,增加第一賽季的v4、v5數(shù)據(jù)進(jìn)行訓(xùn)練,對所有標(biāo)簽做平滑化處理,賦予每個病變種類一定的概率,并且使用3折交叉驗(yàn)證進(jìn)行訓(xùn)練,損失函數(shù)使用focal loss,降低模型訓(xùn)練的難度。
第4名:(視頻)浙大睿醫(yī)隊,浙大,4人
數(shù)據(jù)分析
- 初賽訓(xùn)練集共201份MRI,每份MRI有11個關(guān)鍵點(diǎn),任務(wù)為關(guān)鍵點(diǎn)檢測+分類。
- 存在類別不平衡:椎間盤有5個類別,比例大概在20: 10: 8: 1.4: 1左右;椎體有2個類別,比例在4:1。
整體方案
分為兩個stage來處理整個流程,stage1為關(guān)鍵點(diǎn)檢測,獲得關(guān)鍵點(diǎn)坐標(biāo);stage2為分類模型,對疾病診斷。
stage1:
- 使用Mask RCNN作為關(guān)鍵點(diǎn)檢測的模型,處理GT關(guān)鍵點(diǎn)為11個通道的mask。
- 使用DCN和多尺度訓(xùn)練
- 初賽驗(yàn)證集上關(guān)鍵點(diǎn)識別準(zhǔn)確率0.949,平均L1距離為3.051mm
stage2:
stage1中獲得的關(guān)鍵點(diǎn)后,對以其中心crop,根據(jù)這是椎間盤還是椎體,以及是否有軸狀位圖片,分類下面三個模型
MODEL_V和MODEL_S均使用EfficientNet-b5作為baseline
ADNet為同時接收軸狀位矢狀位圖片輸入的椎間盤分類模型,以兩個Res34-FPN為基礎(chǔ)搭建而成,見下圖
針對樣本不平衡的問題,使用了BBN-Style Mixup,啟發(fā)于曠視的CVPR2020。相比較于原文的BBN,使用BBN-Style Mixup就不需要同時訓(xùn)練兩個網(wǎng)絡(luò)分支,而能夠快速迭代,更加適用于比賽場景。下圖的兩支輸入中,上面一支是從uniform sampler中采樣,下面一支是從reversed sampler中采樣,兩個sampler中采樣出的batch進(jìn)行mixup后交給網(wǎng)絡(luò)的訓(xùn)練。這樣網(wǎng)絡(luò)能夠在一定程度上見到足夠多的類別不平衡類,并且mixup本身也可以起到增強(qiáng)網(wǎng)絡(luò)泛化性的效果。
rotate plane:根據(jù)目標(biāo)關(guān)鍵點(diǎn)的上下關(guān)鍵點(diǎn)的坐標(biāo)獲得角度來旋轉(zhuǎn)圖片,使得disc/vertebra被crop出來之后呈水平狀態(tài)。
point jitter:因?yàn)閟tage1的預(yù)測關(guān)鍵點(diǎn)其實(shí)還是和GT有平均大約3mm的距離,所以對于stage2的訓(xùn)練,增加了point的擾動來增加模型的泛化能力。
另外,使用了一些數(shù)據(jù)增強(qiáng)來增加樣本的多樣性。以上rotate plane、point jitter、數(shù)據(jù)增強(qiáng)統(tǒng)稱為數(shù)據(jù)預(yù)處理。
為了增加網(wǎng)絡(luò)對不同尺度語義特征的學(xué)習(xí)能力,使用了FPN。
后處理
- 對于診斷椎間盤的兩個模型,如果有軸狀位的圖片就使用ADNet的結(jié)果,沒有就使用MODEL_S的結(jié)果。
- 椎間盤預(yù)測結(jié)果+椎體預(yù)測結(jié)果 -> 最終分類結(jié)果。
實(shí)驗(yàn)結(jié)果
首先是三個分類模型加上各自實(shí)驗(yàn)的結(jié)果。因?yàn)闃颖旧俚念悇e,訓(xùn)練不穩(wěn)定,其F1值波動很大,所以將驗(yàn)證集的CE Loss值放上去一同作為參考。
| 純矢狀位椎間盤分類模型 | Macro F1 |
|---|---|
| EfficientNet-B5 | 0.3886 |
| EfficientNet-B5 + BBN_mixup | 0.4416 |
| EfficientNet-B5 + BBN_mixup + 數(shù)據(jù)預(yù)處理 | 0.5337 |
| EfficientNet-B5 + BBN_mixup + 數(shù)據(jù)預(yù)處理 + FPN | 0.5502 |
| 椎體分類模型 | Macro F1 |
|---|---|
| EfficientNet-B5 | 0.6208 |
| EfficientNet-B5 + BBN_mixup | 0.6434 |
| EfficientNet-B5 + BBN_mixup + 數(shù)據(jù)預(yù)處理 | 0.6530 |
| EfficientNet-B5 + BBN_mixup + 數(shù)據(jù)預(yù)處理 + FPN | 0.6690 |
| 軸狀位矢狀位雙分支輸入模型 | Macro F1 |
|---|---|
| Baseline | 0.4596 |
| Baseline + BBN_mixup | 0.4748 |
| Baseline + BBN_mixup + 數(shù)據(jù)預(yù)處理 | 0.5547 |
上面的都是在本地的初賽驗(yàn)證集上面的結(jié)果,下面的結(jié)果是復(fù)賽A榜的一些嘗試,因?yàn)闀r間安排上的一些原因,我們隊伍并沒有提交多次成績,這不得不說是一個遺憾。
| 復(fù)賽A榜成績 | Macro F1 |
|---|---|
| 三個最優(yōu)模型融合 | 0.6542 |
| 三個最優(yōu)模型融合 + 五折 | 0.6640 |
最后,我們還做了對于只有矢狀位輸入的椎間盤分類模型和雙分支模型的對比(數(shù)據(jù)集保持一致),見下表:
| 椎間盤 | Macro F1 |
|---|---|
| 矢狀位 | 0.4974 |
| 軸狀位 + 矢狀位 | 0.5547 |
總結(jié)
- 不管是什么比賽,對于數(shù)據(jù)的理解是最重要的。
- 面對類別不平衡,BBN-Style Mixup是一個不錯的選擇。
- 做合適的數(shù)據(jù)預(yù)處理來減輕模型的學(xué)習(xí)難度,增加模型的泛化能力。
- 使用了ADNet來同時處理軸狀位和矢狀位的圖片。
- 最后感謝阿里天池提供給我們這樣一個參賽的機(jī)會!能讓我們和各位大佬交流想法,學(xué)到了很多!
第3名:shiontao團(tuán)隊,深圳大學(xué),1人(有指導(dǎo)教授)
1.問題分析
此次比賽的任務(wù)是對脊柱的十一個關(guān)鍵點(diǎn)進(jìn)行定位和分類。
圖1 比賽任務(wù)示意圖
2.數(shù)據(jù)處理
圖2 抑制高亮示意圖
根據(jù)比賽給的標(biāo)簽以及醫(yī)生的建議,團(tuán)隊在比賽中采用的T2的圖像。為了抑制圖像中的高亮區(qū)域,團(tuán)隊采用了對亮度最高的1%的像素進(jìn)行了截斷處理(如圖2)。比賽提供了T2圖像中間幀的標(biāo)注,而MRI掃描時三維的。經(jīng)過分析,中間幀相鄰圖像的關(guān)鍵點(diǎn)的位置和特性是非常相似的。由此,團(tuán)隊在比賽中選取中間幀相鄰的圖像,通過通道疊加的方式來進(jìn)行增廣(如圖3)。
圖3 數(shù)據(jù)增廣示意圖
3.核心思路
3.1方案介紹
關(guān)鍵點(diǎn)定位以及分類兩種任務(wù)是醫(yī)療影像處理中比較常見的,常見的方法是先定位后分類這樣的二階方法。但是普通的基于Heatmap的關(guān)鍵點(diǎn)定位網(wǎng)絡(luò)的預(yù)測在此任務(wù)上是會產(chǎn)生歧義的(如圖4,對于最下方的錐體,網(wǎng)絡(luò)輸出了兩個位置),二來分類模型不能充分地利用相關(guān)信息(如圖5,所示的兩種方法都不很好的利用到整體和局部的信息)。
圖4 關(guān)鍵點(diǎn)定位方法示意圖(右1為最下方錐體的標(biāo)簽,右2為網(wǎng)絡(luò)輸出)
圖5 錐體和椎間盤分類的兩種方法
因此,團(tuán)隊在比賽中提出了端到端的網(wǎng)絡(luò)。具體來說,采用了檢測網(wǎng)絡(luò)來進(jìn)行關(guān)鍵點(diǎn)的定位和分類。相比與普通的檢測網(wǎng)絡(luò),提出的方法最大的不同在于,網(wǎng)絡(luò)帶有兩類分類分支,一個用于預(yù)測位置,一個用于類別的分類。與此對應(yīng),醫(yī)生在臨床中是根據(jù)關(guān)鍵點(diǎn)所在區(qū)域輔以上下關(guān)鍵點(diǎn)的信息來進(jìn)行診斷的。
圖6 網(wǎng)絡(luò)結(jié)構(gòu)
最終,團(tuán)隊采用了Yolo作為我的基礎(chǔ)模型,并在yolo的Neck中加入了FPN以及PAN的結(jié)構(gòu)來提高網(wǎng)絡(luò)檢測小目標(biāo)的能力,網(wǎng)絡(luò)的示意圖如圖6所示。此外,團(tuán)隊在yolo的基礎(chǔ)上修改了分類分支以適應(yīng)當(dāng)前任務(wù)。
圖7 D-IOU Loss
在模型優(yōu)化上,首先在邊框定位上我采用了DIOUloss+L1loss來使得預(yù)測框與標(biāo)簽中心更加接近(圖7)。表1展示了數(shù)據(jù)中各類別的占比,為了應(yīng)對這種類別極度不平衡的情況在類別分類上團(tuán)隊采用了加權(quán)交叉熵,具體的參數(shù)如表2所示。
表1 各類別統(tǒng)計圖
表2 損失權(quán)重
在數(shù)據(jù)融合上,當(dāng)前常用的目標(biāo)檢測融合方法為加權(quán)邊框融合(Weighted Boxes Fusion, WBF),其原理在于對多個結(jié)果的邊框和置信度進(jìn)行加權(quán)平均。在這里,團(tuán)隊遵循該方法的思路,提出了對檢測結(jié)果的中心位置進(jìn)行加權(quán)的數(shù)據(jù)融合方法——加權(quán)中心框融合(Weighted Centers Fusion, WCF)。兩種方法的公式如圖8。
圖8 模型融合方法
3.2實(shí)驗(yàn)結(jié)果
在定位精度上,采用了檢測網(wǎng)絡(luò)后的模型定位精度提升了2.7各百分點(diǎn),在是使用了改進(jìn)的Diouloss后定位精度有進(jìn)一步的提高。詳細(xì)結(jié)果見表3。
表3 定位實(shí)驗(yàn)結(jié)果
在分類上,這里采用的檢測的F1-Score來進(jìn)行評判。各方法的結(jié)果見表4和表5,加權(quán)交叉熵和數(shù)據(jù)增廣帶來的提升最為明顯。
表4 分類實(shí)驗(yàn)結(jié)果
表5 分類實(shí)驗(yàn)結(jié)果折線圖
3.3算法效率
我們在線上訓(xùn)練了4個模型耗時不到6個小時,其中yolov5-s模型訓(xùn)練耗時在1小時以內(nèi)。在推理上,在單個1080Ti上輸入圖像尺寸為768*768的情況下我們的模型可以達(dá)到53FPS,在CPUi7 6700上,模型推理耗時不到0.3秒。
表6 效率分析
3.4方案總結(jié)與展望
本方案的具有以下優(yōu)勢:
- 一.采用端到端檢測網(wǎng)絡(luò),充分利用了圖像全局與局部的信息。
- 二.使用定位框損失DIOU-Loss,提高邊框定位精度。
- 三.通過加權(quán)分類損失應(yīng)對類別極度不平衡的情況。
- 四.高亮抑制方法使得圖像更易識別,偽3D數(shù)據(jù)增廣有效地增加了樣本多樣性。
- 五.根據(jù)任務(wù)提出了基于中心加權(quán)檢測模型融合方法。
- 六.極快的訓(xùn)練和推理速度,極大地方便方案的落地。
此次比賽具有非常大的臨床和科研意義,盡管錐體的分類準(zhǔn)確率還有很大的提升空間,但是在病變有無的分類上,我們的模型已經(jīng)能達(dá)到0.85以上的F1-Score。這意味著模型可以在一定程度上去幫助醫(yī)生進(jìn)行診斷。此外,利用此次比賽數(shù)據(jù)開發(fā)輔助診斷的工具,來減少醫(yī)生的工作量也是一件非常有意義的事。
4.比賽經(jīng)驗(yàn)總結(jié)和感想
這次比賽是對我之前的學(xué)習(xí)的一次測驗(yàn),在這個比賽中我學(xué)習(xí)到了更多醫(yī)學(xué)影響相關(guān)的知識和經(jīng)驗(yàn),其中最重要的是鍛煉了分析問題和數(shù)據(jù)的能力。非常感謝舉辦方提供了如此寶貴的數(shù)據(jù),相信通過大家的努力,一定能夠做出優(yōu)秀的AI去輔助醫(yī)生進(jìn)行診斷。
第2名:triple-Z團(tuán)隊,北大,3人
1 賽題分析
1.1 賽題回顧
本次比賽的任務(wù)是采用模型對核磁共振的脊柱圖像進(jìn)行智能檢測。首先需要對5個椎體和6個椎間盤進(jìn)行定位,這部分實(shí)際上就是11個關(guān)鍵點(diǎn)的檢測任務(wù);之后需要對每一個關(guān)鍵點(diǎn)對應(yīng)的椎體/椎間盤進(jìn)行疾病分類。因此,整個比賽的任務(wù)可以分解為關(guān)鍵點(diǎn)檢測和關(guān)鍵點(diǎn)分類兩類大問題。
1.2 賽題分析
在開始建模之前,我們需要對數(shù)據(jù)有清晰的認(rèn)識。通過對初賽訓(xùn)練集的分析,我們認(rèn)為本次比賽存在如下三點(diǎn)挑戰(zhàn):
-
相比自然圖像的大數(shù)據(jù)集,數(shù)據(jù)量比較少(畢竟醫(yī)學(xué)影像獲取和標(biāo)注成本都比較高)
-
類別間的樣本不均衡(如下圖左圖)
-
標(biāo)注噪聲(如下圖右圖)
針對上述三個挑戰(zhàn),我們的解決方案如下:
-
設(shè)計了一個簡潔高效的定位+分類的單階段檢測模型
-
調(diào)整損失函數(shù)以適應(yīng)類別不均衡
-
數(shù)據(jù)增強(qiáng)、關(guān)鍵點(diǎn)標(biāo)注抖動、基于先驗(yàn)統(tǒng)計的二分類閾值調(diào)整
2 模型方法
2.1 模型整體框架
我們首先將關(guān)鍵點(diǎn)定位分解為:粗定位和精回歸兩個子任務(wù),并且在關(guān)鍵點(diǎn)檢測的時候同時預(yù)測對應(yīng)位置的關(guān)鍵點(diǎn)類別。模型整體框架如下圖,主要由三部分組成:
-
backbone:采用resnet18[1]的前4個特征層(16倍下采樣)提取圖像的特征(注:這里去掉最后一個特征層不僅減少參數(shù)量且更容易訓(xùn)練,效果更好)
-
neck:通過幾個特征融合塊融合多尺度特征并且擴(kuò)大模型的感受野
-
output:最后通過四個1X1卷積分別輸出:關(guān)鍵點(diǎn)粗定位、關(guān)鍵點(diǎn)y軸上的細(xì)回歸、關(guān)鍵點(diǎn)x軸上的細(xì)回歸、關(guān)鍵點(diǎn)分類
我們這種設(shè)計方案,相比于主流的heatmap-based關(guān)鍵點(diǎn)檢測方法,不需要上采樣層,不需要resnet最后一個特征提取層,使得學(xué)習(xí)任務(wù)更加簡單,因此參數(shù)量和計算量都會更少(實(shí)驗(yàn)部分會有詳細(xì)的對比分析)。
2.2 neck模塊細(xì)節(jié)
neck部分的DetNet block[2]、ASPP Block[3]和SPP Block[4]都是用來融合多尺度特征且擴(kuò)大模型感受野的,具體設(shè)計如下,DetNet block與原論文保持一致,ASPP/SPP Block都做了適應(yīng)性的修改。
2.3 關(guān)鍵點(diǎn)粗定位
對于5個椎體+6個椎間盤共11個關(guān)鍵點(diǎn)進(jìn)行檢測,可以通過輸出11個通道的張量分別代表11個關(guān)鍵點(diǎn)的預(yù)測。對于第k個關(guān)鍵點(diǎn)的粗定位,我們用一個網(wǎng)格圖來表示,該圖分辨率為原圖下采樣?之后的分辨率,粗定位圖上的每一個網(wǎng)格的值為其中心點(diǎn)與關(guān)鍵點(diǎn)的關(guān)系度量,如下圖:
2.4 關(guān)鍵點(diǎn)細(xì)回歸
有了關(guān)鍵點(diǎn)的粗定位圖,我們可以找到離目標(biāo)關(guān)鍵點(diǎn)最近的網(wǎng)格中心點(diǎn),但每一個網(wǎng)格對應(yīng)原圖是一個?的區(qū)域,顯然直接取中心點(diǎn)離目標(biāo)關(guān)鍵點(diǎn)有一定的誤差,因此我們需要額外的兩個與粗定位分辨率一樣的定位細(xì)回歸圖(x軸和y軸兩個方向),其每一個網(wǎng)格的值為其中心點(diǎn)到關(guān)鍵點(diǎn)在x/y軸上面的偏移,如下圖。這里直接用偏移量的話由于范圍太大了模型不太好學(xué),因此我們把偏移量除以?,使得關(guān)鍵點(diǎn)附近的網(wǎng)格的值都分布在1附近。
2.5 關(guān)鍵點(diǎn)分類
模型在進(jìn)行粗定位和細(xì)回歸的時候?qū)嶋H上已經(jīng)學(xué)到了椎體/椎間盤的特征和位置信息,因此我們直接通過一個并行分支對相應(yīng)網(wǎng)格位置進(jìn)行分類預(yù)測。如下圖,對于一個網(wǎng)格,如果其為椎體,那么需要一個5維度的向量表示對5個椎體的二分類;如果是椎間盤,那么需要一個4*6維度的向量表示對6個椎間盤的四分類,此外椎體內(nèi)疝出(v5)可以與其他四類共存,因此我們額外采用6維度的向量進(jìn)行表示。綜上,一個網(wǎng)格應(yīng)該對應(yīng)35維度的向量。
2.6 損失函數(shù)
損失函數(shù)是一個多任務(wù)學(xué)習(xí)損失函數(shù),由三部分構(gòu)成:
-
對于關(guān)鍵點(diǎn)粗定位圖的損失函數(shù),直接采用MSELoss進(jìn)行學(xué)習(xí);
-
對于關(guān)鍵點(diǎn)細(xì)回歸圖的損失函數(shù),首先過濾出粗定位圖中激活值高的網(wǎng)格,而后只對細(xì)回歸圖上的這部分網(wǎng)格計算損失函數(shù),如下圖左邊圖中紅框框所示。實(shí)際上這種做法能夠使得模型更加關(guān)注目標(biāo)區(qū)域,減少對無關(guān)區(qū)域的關(guān)注;
-
對于關(guān)鍵點(diǎn)分類圖的損失函數(shù),同樣過濾出需要關(guān)注的網(wǎng)格,而后對于每一個網(wǎng)格,若該關(guān)鍵點(diǎn)是椎體,則計算前5維度向量的損失;若是椎間盤,則計算后4*6+6維度的損失。為了適應(yīng)類別不平衡的問題,對于BCELoss和CrossEntropyLoss都采用了類別樣本數(shù)倒數(shù)作為相應(yīng)類別的權(quán)重。
總的損失函數(shù)是上面各部分的加權(quán)求和,權(quán)重我們根據(jù)經(jīng)驗(yàn)值直接設(shè)置的。
2.7 推理過程
推理的時候取關(guān)鍵點(diǎn)粗定位圖值最高的網(wǎng)格(關(guān)系最密切的網(wǎng)格),再在細(xì)回歸圖和分類圖取相同位置的網(wǎng)格,即可以解析出關(guān)鍵點(diǎn)坐標(biāo)和關(guān)鍵點(diǎn)類別,如下圖:
2.8 其他一些小技巧
我們統(tǒng)計了初賽訓(xùn)練集上不同位置椎體的類別分布,如下圖,我們發(fā)現(xiàn)不同位置其v1/v2的比例有所不同,靠近胸椎的椎體病變概率相對低一些,而在靠近尾椎的椎體更容易產(chǎn)生病變,這個發(fā)現(xiàn)和我們的直覺是一致的。因此我們模型會根據(jù)這個先驗(yàn)統(tǒng)計結(jié)果進(jìn)行二分類的閾值調(diào)整,調(diào)整后的閾值如下圖。同樣地,對于椎體內(nèi)疝出,我們也做了同樣的策略。
此外,為了使得模型魯棒性更強(qiáng),減少標(biāo)注噪聲的影像,我們還采用了多種數(shù)據(jù)增強(qiáng),如下圖。其中對于關(guān)鍵點(diǎn)隨機(jī)抖動,具體做法是對于標(biāo)簽關(guān)鍵點(diǎn),我們會加上一個隨機(jī)的小偏移量,以模擬醫(yī)生標(biāo)注可能抖動的問題。
2.9 模型融合
醫(yī)學(xué)影像處理在數(shù)據(jù)不多的情況下,一般采用多折交叉驗(yàn)證使得模型驗(yàn)證更加穩(wěn)定,因此我們采用了5折交叉驗(yàn)證訓(xùn)練了5個模型,而后將他們在測試集上的結(jié)果進(jìn)行平均,得到最終成績。
3 實(shí)驗(yàn)結(jié)果
3.1 復(fù)賽成績及模型性能測試
3.2 定位模型與主流模型的性能對比
由于復(fù)賽數(shù)據(jù)不可見,且每天一次提交,機(jī)會寶貴,因此我們額外在關(guān)鍵點(diǎn)檢測的公開數(shù)據(jù)集[6]上進(jìn)行我們模型與主流模型[5]的對比實(shí)驗(yàn),如下圖。證明了我們模型的有效性和高效性,且更容易收斂(小模型就可以達(dá)到不錯的效果)。
4 總結(jié)及展望
4.1 可行性討論
希望我們的模型能夠?qū)嶋H運(yùn)用到現(xiàn)實(shí)生活中,因此在設(shè)計模型的時候就考慮了模型的高效性,并且我們實(shí)驗(yàn)表明該模型能夠達(dá)到實(shí)時性的要求。我們設(shè)想以后患者的影像圖片可以和我們模型的預(yù)測結(jié)果一并傳輸?shù)结t(yī)生的電腦上,醫(yī)生可以根據(jù)模型的預(yù)測進(jìn)行一些修正和調(diào)整,但就可以節(jié)省了大量的手動查詢和定位等時間。相當(dāng)于把“是什么”的問題轉(zhuǎn)化成了“是不是”,感覺一定程度可以提高醫(yī)生的工作效率。
4.2 總結(jié)
我們本次比賽主要做了如下幾個工作:
-
設(shè)計了一個簡潔高效的定位+分類模型
-
設(shè)計了合適的損失函數(shù)有效地訓(xùn)練模型
-
充足實(shí)驗(yàn)證明模型的有效性和高效性
-
結(jié)合實(shí)際考慮模型的落地方式
4.3 展望
我們認(rèn)為我們的工作還有如下幾點(diǎn)提升空間:
-
橫斷面的數(shù)據(jù)沒有利用到,而醫(yī)生診斷的時候往往是依據(jù)矢狀位+橫斷面,應(yīng)該進(jìn)一步模擬專家診斷的過程
-
我們團(tuán)隊沒有相應(yīng)的專業(yè)知識,應(yīng)該加入更多的一些臨床專家先驗(yàn)知識提高模型性能
-
我們模型實(shí)際上是一個多任務(wù)預(yù)測模型,因此模型結(jié)構(gòu)存在優(yōu)化的空間
-
多任務(wù)的學(xué)習(xí)也是一個熱門研究方向,不同任務(wù)間的權(quán)重分配我們是采用經(jīng)驗(yàn)值設(shè)置的,可以通過一些前沿工作進(jìn)一步優(yōu)化
5 核心代碼
核心代碼主要是4個輸出張量的構(gòu)建,如下
6 比賽經(jīng)驗(yàn)總結(jié)及感想
在參加比賽的時候,不要急著搭建和訓(xùn)練模型,需要先對比賽數(shù)據(jù)進(jìn)行分析和總結(jié)。比賽的數(shù)據(jù)一般更貼近實(shí)際運(yùn)用,和平時科研所用的公開數(shù)據(jù)集還是有所區(qū)別,因此在分析數(shù)據(jù)的過程中可以總結(jié)數(shù)據(jù)的難點(diǎn)和挑戰(zhàn),對應(yīng)的再選用或者自己設(shè)計合適的模型。
本次比賽賽題新穎、充滿挑戰(zhàn),并且一有問題主辦方都能夠及時解決,同時讓我們學(xué)習(xí)到了很多知識、提高了實(shí)踐能力!
7 參考資料
[1] Deep Residual Learning for Image Recognition
[2] Detnet: A backbone network for object detection
[3] Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs
[4] Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
[5] Simple Baselines for Human Pose Estimation and Tracking
[6] 2d human pose estimation: New benchmark and state of the art analysis
第1名:deep thinker團(tuán)隊,東北、華南理工、北京妙醫(yī)佳,3人
賽題理解
本次比賽在圖像上提供了矢狀位、軸狀位等多種脊柱影像,而在標(biāo)注上,則提供了T2矢狀位中間幀的關(guān)鍵點(diǎn)坐標(biāo)。從以點(diǎn)為形式的標(biāo)注上看,此次賽題更類似于關(guān)鍵點(diǎn)檢測。然而賽題任務(wù)除了定位以外,還要求對目標(biāo)進(jìn)行精準(zhǔn)的分類,因此我們認(rèn)為關(guān)鍵點(diǎn)檢測可能并不是那么適合。最終我們采用的是更加契合賽題任務(wù)、效果更加優(yōu)異的目標(biāo)檢測方案
賽題難點(diǎn)
本次賽題,我們認(rèn)為共有以下4個難點(diǎn):
- 如何合理利用矢狀位和軸狀位的影像,進(jìn)一步又如何充分利用這些影像中的多幀信息,不造成數(shù)據(jù)上的浪費(fèi)。
- 由于我們采用了目標(biāo)檢測的方案,如何將關(guān)鍵點(diǎn)坐標(biāo)轉(zhuǎn)換為矩形框的形式。
- 本次賽題要求在給出關(guān)鍵點(diǎn)坐標(biāo)的同時,還必須要明確哪一個點(diǎn)對應(yīng)哪個目標(biāo)。而我們檢測結(jié)果往往存在重復(fù)檢測或者檢測出胸椎等問題,因此我們需要篩選掉多余的預(yù)測框,并將剩余結(jié)果匹配到對應(yīng)的位置
- 椎體和椎間盤中不同類別的目標(biāo)特征差異較小,如何進(jìn)一步提高網(wǎng)絡(luò)的分類精度
核心思路
思路一:利用關(guān)鍵點(diǎn)生成邊界框形式的標(biāo)注,將賽題任務(wù)巧妙地轉(zhuǎn)化為目標(biāo)檢測任務(wù)。
思路二:采用矢狀位多幀影像進(jìn)行三層拼接,充分利用相鄰幀信息
思路三:通過對特征更為明顯的腰椎整體和骶骨第一塊椎體進(jìn)行檢測,從而實(shí)現(xiàn)對檢測框的篩選以及位置匹配。
思路四:增加額外針對軸狀位與矢狀位拼接圖像的分類網(wǎng)絡(luò),從而提升目標(biāo)分類精度。
算法模型
檢測網(wǎng)絡(luò):Cascade R-CNN(X-101)+ FPN + DCN
分類網(wǎng)絡(luò):ResNeSt269
實(shí)驗(yàn)數(shù)據(jù)
我們的比賽方案幫助我們?nèi)〉昧司€上第一的優(yōu)異成績,同時我們也是眾多參賽選手中唯一一支分?jǐn)?shù)突破70大關(guān)的隊伍。這足以有力地證明我們的方案的有效性。此外我們也對我們方案做了消融性實(shí)驗(yàn),以下是實(shí)驗(yàn)結(jié)果:
總結(jié):
總結(jié)
以上是生活随笔為你收集整理的CV竞赛项目研究:脊柱疾病诊断(天池,GPU赛道,2020年9月)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读后感与机翻《从视频中推断力量和学习人类
- 下一篇: (2017年11月)天池医疗AI大赛肺部