雷鋒網消息,近日,第四屆嶺南眼科論壇暨第二屆全國眼科人工智慧大會在廣州舉辦。大會以「Eye+AI」為主題,由廣東省醫師協會眼科分會、中國醫藥教育協會智能醫學專委全國智能眼科學組主辦,中山大學中山眼科中心、廣東省醫師協會眼科醫師分會青年委員會、廣東省眼科診斷與治療創新工程技術研究中心承辦。
本次大會設置了近80個主題演講,與人工智慧相關的主題有「AI技術與眼科實踐」、「Eye+AI」、「眼科AI技術應用」,涉及青光眼、白內障、角膜病、糖尿病視網膜病變等多個關注度較高的病種。
目前,南方科技大學的唐曉穎教授與中山大學中山眼科中心的袁進教授進行合作,共同開發面向眼科的AI診療系統,系統的數據主要來自中山大學中山眼科中心,研究項目關注的病變主要有三類:出血、滲出以及微動脈瘤。
病變檢測從本質上而言仍然屬於目標檢測領域,而目標檢測不能繞開的一個話題就是深度學習技術。
唐曉穎表示,對於醫學的任務而言,最重要的因素就是Big Data,而且是Big Good Data,數據的質量控制是非常重要的,醫生在其中發揮重要作用。而手工標註的方式又會耗費醫生大量時間,並且存在漏標和誤標的問題。因此,團隊的一個重要工作就是研究用自動化的方法對不精準的標註進行校正。
研究中最重要的一部分是如何模擬生成粗略標註數據。唐曉穎說到,由於IDRiD 數據集是像素級別的分割,所以對於任何一個病變,首先得到可以包含病變的最小長方形作為標註金標準,然後將標註金標準的長和寬隨機擴大10%-50%,並在始終包含病灶的基礎上做隨機的平移,由此生成模擬的粗略標註數據集。
最後,在一種相對「粗糙」的標註方法下,團隊生成了6164份訓練集以及1436份數據集,回歸網絡模型訓練後評估指標IoU達到0.8615。「將訓練好的標註回歸網絡運用於粗略標註數據集,我們可以去生成一個標註更加精準的數據集。」
以下為唐曉穎教授的演講內容,雷鋒網(公眾號:雷鋒網)做了不改變原意的編輯
唐曉穎:糖尿病視網膜病(Diabetic retinopathy ,DR)是全世界範圍內首要的致盲因素。檢測和診斷DR主要用到的檢查方式是數字彩色眼底攝像。在我國需要被篩查和檢查的眼底圖像是非常巨大的,一方面是因為我們的病人數量非常多,另一方面專業的醫生數量相對是比較少的。
回到我演講報告的主題,我們為什麼想要做一個眼底病變自動篩查工具?首先,因為DR的症狀表現為眼底的病變,包括微動脈瘤和出血;其次DR的嚴重程度可以根據這些病變的位置,還有病變的數量去做一個判別,像我們下圖裡展示的這樣。
然而對於一些微小的病變,像微動脈瘤,即使一名資深醫生來鑑別,可能都特別容易忽視。在這種情況下,如果我們利用一些自動檢測的算法,是否會達到一些比較好的效果?這是我們所研究方向的研究背景。
病變檢測從本質上而言仍然屬於目標檢測領域,談到目標檢測我們不能繞開的一個話題—深度學習技術(Deep Learning )。最近幾年隨著計算機視覺的發展,深度學習的研究如火如荼,在計算機視覺的很多應用方向得到了非常成功的推廣。
我們舉三個簡單的例子,一是行為識別,二是物體追蹤,三是和我們更加相關的生物信號的檢測,如虹膜識別。在這些目標檢測的任務中,深度學習其實都做到了非常好的應用。
在我個人看來,深度學習有三個主要的要素。第一個是大數據(Big Data),第二個是高性能的計算機配置,第三個是如何去設計更加高級的深度學習模型。
對於醫學的任務而言,我認為最重要的因素就是Big Data,而且是Big Good Data,像剛才楊院長所說,數據的質量控制是非常重要的。但是非常遺憾,在醫學任務裡面,特別是涉及到病變分割,要獲得高質量的數據其實是非常難,所以研究者們一直在強調醫學數據難以獲取,非常寶貴。
以眼底病變的檢測任務為例,如果我們想去做像素級別的分割,就是把眼底圖像中每一個有病變的像素都標註出來。
對於很多醫生來說,將眼底病變手工標註出來是非常耗時的。我們與中山眼科中心醫生團隊討論過,對於這樣的一張2D圖像,醫生如果想去做像素級的標註,手動的分割出來,可能需要花至少六個小時。
我們既需要這種高質量的數據,又需要數據量比較大,這個是很難同時去滿足的。
我們的研究項目關注的病變主要是有三類,第一個是出血,第二個是滲出,第三個是微動脈瘤。所以我們採用了一個折中的方案。
我們讓醫生用圖中這種圓圈儘量去把病變的區域框出來。相對於像素級標註來說,它要節約大概六倍的時間。在我們的項目中醫生以這種方式手動地將病變畫出來,比像素級別標註要輕鬆。
我們收集了590張眼底出血病變的數據集,600張滲出病變數據集,296張微動脈瘤數據集。這種標註方式相對比較粗糙,我們把它稱之為coarse annotation。
Coarse annotation會帶來一些問題。首先是這種畫圈方式不是非常精準,我們也去看了很多張圖像,發現實際病變比勾畫的bounding box 更小,所以它是比較粗糙的標註。比如說圖中的出血灶,還有下面這個圖裡的微動脈瘤,即使達不到像素級別的分割,標註框也需要改進。
第二個問題是我們發現醫生在標註的時候,即使是這樣比較粗略的一個標註方式,仍然會有漏標的情況存在,當然這也是在所有的手動標註工作裡面都不可避免的一個問題。比如下面圖裡面,我們會發現有一些出血和滲出灶被醫生漏標了。
第三個問題是有一些錯誤的標註,比如第一個圖裡面,醫生把這一塊用黃色框標註出來,認為它是出血,其實是攝像時候的偽影。第二個圖是醫生把出血誤判為微動脈瘤。
以上是三類在醫生手工標註工作中可能存在的問題,最好的辦法是讓不同的醫生去標註和檢查,最後達成一致。
但這樣仍然是非常耗時的,也違背了我們的初衷。有沒有可能用一種自動化的方法去把這些不精準的標註做校正呢?首先如果我們能夠讓數據集更準確,對後面的深度學習的結果肯定有很大提升;其次像素級分割的數據集是非常有限的,公共數據集的病人數量是非常少的;第三用同一來源的數據訓練模型一般結果會更好。
我們的研究主要分為以下三個部分。首先將非精確標註的數據集進行改進,接著進行圖像預處理,最後輸入目標檢測CNN模型進行訓練,我們採用了目標檢測領域一些經典的網絡模型。
首先第一步就是怎麼樣去改進我們的粗略標註數據集。我們人工生成一組模擬粗略標註的數據集,並採用CLAHE預處理技術去增強眼底圖片病灶的對比度。我們使用的是IDRiD 數據集來人工生成標註,這是一個像素級別標註的非常優質的數據集,主要包括出血等眼底病灶,但是只有81份數據。
下圖是眼底圖片採用CLAHE預處理前後對比,我們可以發現處理後病灶與正常區域的對比度明顯增加,這是一種比較基礎的做法,也有其他的方法可以達到這種效果,比如GAN技術。
接下來是我們研究中最重要的一部分,我們如何模擬生成粗略標註數據呢?由於IDRiD 數據集是像素級別的分割,所以對於任何一個病變,首先得到可以包含病變的最小長方形,作為標註金標準(ground-truth bounding box)。然後將ground-truth bounding box的長和寬隨機擴大10%-50%,並在始終包含病灶的基礎上做隨機的平移,由此生成模擬的粗略標註數據集。
上述生成的數據分別有一組ground-truth bounding box和coarse bounding box。我們以coarse bounding box作為模型輸入,ground-truth bounding box作為模型輸出,來訓練一個標註回歸網絡(Bounding box regression network )。
經過我們的這種處理,最後生成6164份訓練集,1436份數據集,回歸網絡模型訓練後評估指標IoU達到0.8615,是一個比較好的結果。右圖中可以發現模型預測的病變標註框和金標準是比較接近的。
我們將訓練好的標註回歸網絡運用於我們的粗略標註數據集,去生成一個標註更加精準的數據集。下圖可以看出經回歸網絡改進後病變標註框更加精確和標準了,達到了我們想要的效果。
我們將上述標註經過refining的數據集輸入目標檢測模型中,經CNN提取特徵圖片,接著分為兩個子網絡,其中一個是目標定位,找到病變的位置,另一個是做病變分類,判斷該病灶屬於哪種病變。
目標檢測模型我們採用經典的模型—RetinaNet ,在ResNet基礎上建立特徵金字塔網絡(FPN),之後分成目標定位和目標分類兩個子網絡。其中我們用到兩個技巧,一個是遷移學習,另一個是Label smoothing ,用來降低模型置信度。
這是我們最終的模型訓練結果,可以看出相對於基礎算法,疊用了CLAHE和Label smoothing 的方法,取得了更好的效果,mAP為54.13%。圖中示例可見模型對眼底病變的檢測效果比較理想,經過refined的訓練數據的模型結果明顯比原始數據好,此外,與醫生手工標註相比,我們的模型還可以檢測出一些漏標的病灶。
這些就是我今天要講的內容,非常感謝我們眼科醫生的合作團隊,中山眼科中心袁進教授團隊,以及我的課題組,主要包括中山大學和南方科技大學的學生們,謝謝大家!