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