譯者 | 朱先忠
審校 | 重樓
圖像分割是機器學習中的一個熱門話題,如今已經得到廣泛應用。在視覺模型領域,可以根據一些標準進行訓練來實現分割圖像,這通常是按照熟悉類型的對象的輪廓來進行的。當模型不僅可以分割圖像,而且可以區分不同類型的對象時,這被稱為語義分割(semantic segmentation)。自動駕駛汽車應用領域就是使用語義分割來識別附近的物體:行人、停車標志、道路、其他汽車等。語義分割的另一個應用是在醫學(放射學)領域,可以訓練模型來識別超聲波圖像中的惡性腫瘤。當然,類似的應用場景遠遠不止這些。
本文假設您熟悉圖像分割的基本概念,以及模擬退火等優化算法。為了確保文章不至于太冗長,文章中沒有引用任何代碼;但是,請自行參閱我在本系列文章示例工程的GitHub存儲庫中的源碼,該存儲庫也在文章最后一節中提供了鏈接,以了解項目的所有代碼。我還在整個文本描述的相關位置放置了相應的代碼鏈接。此外,我還提供了有關的主要筆記,其中包含用于為本文生成圖像的代碼。
項目目標
先介紹一下背景:
2022年12月,我在威斯康星大學拉克羅斯分校完成了數據科學碩士研究的最后一個學期。在UWLAX的Jeff Baggett博士的監督下,我的畢業項目是建立語義分割模型,此模型可以檢測乳腺超聲圖像中的組織損傷。其中一些病變是惡性的,重要的是要借助良好的診斷工具來盡早發現這種疾病。在大型通用數據集(如ImageNet)上預先訓練的分割模型可以在醫學超聲成像數據上進行微調。通過將超聲掃描儀的圖像輸入到這樣的模型中,我們能夠從模型中得到預測,從而指示病變是否存在于掃描區域中,病變位于何處,病變的形狀是什么,以及可供選擇的關于疾病的性質(惡性或良性)提示等信息。
以下是一個圖像分割模型的示例,該模型對從乳腺超聲圖像數據集獲取的超聲圖像執行預測:
對超聲圖像的預測(圖像來源:乳腺超聲圖像數據集)
其中,左邊的矩形中內容是來自數據集的超聲圖像;它包含看起來可能是惡性的或可能不是惡性的病變(暗區)。中間矩形展示的是正確標注的標簽,也是數據集的一部分;人類專家已經繪制了感興趣區域(病變)周圍的輪廓;這些標簽用于訓練模型,并在訓練后測量其性能。右邊矩形中內容是我的模型的預測結果;在圖示的這種情況下,它接近于正確標注的標簽。在這種情況下,模型并不是用來區分惡性和良性病變的,它們都以黃色顯示。
在上述我的畢業項目的基礎上,本文中項目也是華盛頓大學洛杉磯分校CADBUSI項目的一部分,就像我的畢業項目一樣)將從以下幾個關鍵點展開討論:
- 醫學成像與其他分割應用程序有些不同,因為查看模型輸出的用戶(放射科醫生)在該領域具有重要的專業知識。用戶并不像大多數其他應用程序那樣完全被動。問題不在于該模型在識別病變方面是否優于人工操作員,而在于如何將模型的功能和用戶所知相結合,以獲得更好的整體結果。
- 用戶可能在各個方面都同意模型的預測結果,或者模型和用戶之間可能存在分歧。此外,用戶可能擁有模型所沒有的關于患者的知識。如果用戶能夠向模型提供提示或反饋,就模型而言,提供額外的輸入數據,以達到結合模型和用戶的優勢的更高質量的預測,這將是非常有用的。
- 此外,用戶應該能夠以簡單的方式向模型提供反饋,例如用鼠標點擊圖像以突出顯示重要區域。用戶生成的鼠標點擊的坐標成為模型的額外輸入,然后模型應該相應地調整其預測。
如果你從頭開始構建模型,你可以用任何你想要的方式設計輸入,包括各種類型的數據。但在這種情況下,您需要進行完整的預訓練周期(例如使用ImageNet),這需要大量的計算和時間資源。如果你使用現成的模型,在ImageNet上預先訓練,這會節省大量的時間和精力,但在模型的輸入中似乎沒有用戶反饋的空間——這些模型的設計目的是將圖像作為輸入,而不是其他形式的數據。
當然,除非你能在現成模型的輸入中識別出冗余。這意味著,除了通常的成像數據之外,輸入中還存在冗余通道,可以重新用于向模型提供用戶反饋。本系列文章將介紹這是如何實現的:
- 識別現有圖像分割模型中的輸入冗余
- 使用冗余輸入通道提供用戶反饋
- 訓練模型正確識別用戶反饋
- 盡可能使整個過程自動化
當模型出錯時
讓我們考慮一下這個案例:
假陰性(圖像來源:乳腺超聲圖像數據集)
注意到,圖像左側似乎有一個感興趣的區域(RoI)——一個小的、深色的橢圓形。這在標簽中顯示為黃色區域。但模型的預測是空集——預測幀中沒有黃色像素。模型似乎不相信這張照片中有RoI。我們,在這里扮演人類專家的角色,顯然是不同意此結果的。
或者在這種情況下:
假陽性(圖像來源:乳腺超聲圖像數據集)
人類專家(標簽的作者)認為圖像中只有一個真實的RoI。然而,該模型卻確定了兩個獨立的RoI。
在上面這樣的情況下,預測結果是非常邊緣性的,并且人類專家可能有理由不同意模型的預測結果。此時,允許用戶的反饋基于用戶擁有但模型沒有的信息或知識來指導模型的預測將是有用的。
理想情況下,用戶應該能夠通過一種非常簡單的方法提供反饋,例如點擊圖像中的各個區域——然后模型應該考慮點擊坐標提供的信息,以調整其預測結果。此時,單擊坐標將成為模型輸入的一部分。這可以通過多種不同的方式來實現。
Liu等人的PseudoClick論文(2022)描述了一種模型架構,其中點擊是通過單獨的輸入層提供給模型:模型有一個實際圖像的輸入,和一個不同的點擊輸入。當然,如果你從頭開始構建你的模型,你可以隨心所欲地設計它,也可以從PseudoClick架構中獲得某種建議。
但是,如果您使用現成的模型,則必須使用現有的輸入。這將在下一節中進行描述。
使用顏色通道提供反饋信息
如果你使用現成的視覺模型,它很可能是為處理彩色圖像而構建的——模型的輸入實際上是三個相同的層,每個顏色通道一個:紅色、綠色和藍色。如果輸入是黑白的,這是超聲圖像的情況,則相同的信息(純亮度)以相同的方式分布在所有顏色通道上。換句話說,對于相同的信息,有三個獨立的通道似乎是多余的。
如果單色圖像只使用一個顏色通道,那么模型的工作原理是否相同呢?假設我們將兩個顏色通道(R和G)歸零,并且只在B通道中保留圖像信息。
藍色通道(圖像來源:乳腺超聲圖像數據集)
用預訓練的圖像分割模型(例如SegFormer MiT-b3——可在HuggingFace存儲庫上獲得,在ImageNet上預訓練)測試這一想法。很明顯,用通常的圖像分割指標(IoU,Dice)測量的模型性能沒有改變。該模型的工作原理基本相同。當對單色圖像進行預測時,來自彩色通道的冗余既沒有幫助,也沒有害處。
這意味著,我們可以只在B通道中保留圖像數據,并使用R和G通道進行額外的輸入——用戶生成的點擊。不僅如此,我們還有兩個獨立的通道,R和G,它們可以為模型提供不同類型的輸入。
這正是我們所需要的:一種點擊應該是“激活”或“積極”,告訴模型“這是一個感興趣的區域,關注這里”,而另一種應該是“抑制”或“消極”,告訴模型“這里什么都沒發生,避開這個區域”。
問題是,在訓練數據中放置點擊以使模型對用戶輸入做出響應的最佳方式是什么?這將在下一節中進行描述。
真陽性、假陽性和假陰性
來自分割模型的預測是圖像中像素以某種方式標記的區域,例如通過非零值標記。當預測區域與該圖像的正確標注的標簽非常匹配時,我們認為該模型表現良好。與標簽匹配的預測像素被稱為真陽性(TP)。
在模型進行非零預測但標簽中的像素為零的情況下,這些像素為假陽性(FP)。如果標簽中的像素為非零,但模型的預測為零,則這些是假陰性(FN)。下面是一個例子:
真陽性、假陽性、假陰性(圖像來源:乳腺超聲圖像數據集)
其中,左邊的矩形中顯示的是標簽。中間矩形中給出的是模型的預測結果。在右邊的矩形中,我們用白色標記了真陽性(TP):預測像素與標簽像素匹配。假陽性(FP)是標簽中為零的非零預測像素,并標記為綠色。假陰性(FN)是標簽中存在非零像素的零值預測像素,并且被標記為紅色。
如果我們知道模型往往錯誤并做出錯誤預測的圖像區域(FP,FN),我們可以在原始數據集中添加點擊,標記FP和FN區域。由于我們已經將所有圖像信息移動到藍色通道,因此可以使用紅色和綠色通道進行這些點擊。
例如,我們可以在紅色通道中單擊來標記假陽性區域。我們希望,這些點擊將成為“抑制性”或“負面”點擊,從而使模型不再進行預測。假陰性區域可以用綠色通道中的點擊標記,這將變成“激活”或“陽性”點擊,并引導模型更多地關注這些區域。示例:
圖像來源:乳腺超聲圖像數據集
圖像來源:乳腺超聲圖像數據集
在上面顯示的圖像中,我們在假陽性區域(模型預測不存在的RoI)中放置了紅色通道點擊(負點擊),在假陰性區域(模型沒有預測任何內容,但有實際的RoI的區域)中放置綠色通道點擊(正點擊)。為了更好的度量目的,我們在真陽性區域再點擊幾次綠色通道,以“錨定”預測并確保TP區域保持穩定。
使用點擊的完整訓練程序如下文所述。
通過點擊訓練模型
下面給出了訓練模型對用戶輸入做出響應所涉及的主要步驟:
- 選定一個特定的現成圖像分割模型,例如使用ImageNet預訓練的SegFormer MiT-b3
- 處理所有單色圖像,使圖像數據僅存在于B通道中;R和G通道將變為空白
- 將圖像數據集拆分為5組;對每組中的模型進行微調;這將創建5個模型,每個模型都針對數據集中的不同組進行了微調;讓我們把這些稱為基線模型
- 使用5個基線模型中的每一個對其在訓練中沒有看到的圖像進行預測;這將為數據集中的所有圖像生成預測
- 對于每個預測,確定TP、FP、FN區域;如上所述,用R和G點擊覆蓋FP、FN和可選的TP區域;小區域每個點擊一次;大區域可多次點擊;目前,假設單擊坐標是手動生成的(稍后會詳細介紹)
- 將點擊嵌入到數據集中的R和G通道中,但保持B通道不變;每次點擊都是R或G通道中的3x3像素區域,我們將像素值設置為該通道的最大值(例如,uint8dtype為255)
- 使用相同的5個組,在數據集上訓練5個新模型,并將點擊添加到R和G通道;讓我們稱之為點擊訓練模型
換句話說,我們訓練基線模型來“預測”模型可能出錯的地方,我們根據需要將點擊量添加到“錯誤”區域,然后訓練新模型(點擊訓練模型),將點擊量增加到數據集中。我們希望經過點擊訓練的模型能夠對通過R和G通道提供的點擊做出反應。完整的代碼顯示在鏈接https://github.com/FlorinAndrei/segmentation_click_train/blob/main/train_models.ipynb處。
為了清晰起見,經過所有處理并且在添加點擊后,結果圖像將是下圖所示的樣子:
圖像來源:乳腺超聲圖像數據集
圖像來源:乳腺超聲圖像數據集
其中,左邊的矩形是我們試圖匹配的正確標注的標簽。中間矩形是來自基線模型的預測。右側矩形中顯示了用于訓練點擊訓練模型的處理圖像——所有圖像數據都已移動到B通道,并根據需要將點擊添加到R和G通道以修改預測。
您不需要實際修改數據集來添加R和G點擊。您可以簡單地注冊點擊坐標,并修改數據加載器,以便在訓練模型時動態應用點擊。如果出于任何原因需要重新生成單擊坐標,則這樣的修改就要靈活得多。
此外,您可以從圖像增強技術中得到提示,并在訓練中以一定的概率應用點擊。點擊并不總是被添加到輸入中,只是在某些情況下是隨機的。我使用了0.9的概率,結果很好。這個想法是為了不讓模型過度依賴點擊。另外,微調此參數可能需要進一步探索。
實驗結果
上述方法有效嗎?
確實有效。這是一個經過點擊訓練的模型,用于進行預測,然后實時響應用戶反饋:
我們要求模型進行預測,它覆蓋了圖像上半部分的兩個黑暗區域。我們不同意這個模型——我們認為左邊的區域不是感興趣的區域,所以我們在上面點擊了一個抑制性的(紅色)。我們還在右邊的區域點擊了一次激活性的(綠色)?,F在,模型的預測遵循了我們所掌握的額外信息。
應該注意的是,一次點擊,大小約為3x3像素,會影響模型在直徑數百像素的區域中的預測。此外,該模型還考慮了點擊的存在和圖像中可見的特征:在感興趣區域(RoI:region of interest)中放置點擊會使模型用預測掩碼填充整個區域,遵循圖像中可見輪廓。
在某些情況下,模型很容易遵循用戶反饋——這就是模型輸出中的預測存在高模糊性/低置信度的情況。在其他情況下,模型的預測將不會因負面點擊而被“逐出”RoI——這是在模型自身輸出的模糊度較低/可信度較高的情況下。
規模化問題
到目前為止,所描述的技術的主要問題都是圍繞著小規模數據進行。我們假設點擊坐標是手動生成的。換句話說,操作員需要仔細篩選所有圖像,將正確標注的標簽與預測進行比較,決定點擊位置和點擊次數,并記錄所有點擊坐標。
這顯然談不上什么規模化的問題。為一個包含數百張圖像的數據集生成一組點擊已經是乏味和耗時的,不過并非不可能。如果數據集包含數千張或更多的圖像,或者特別是當基線模型發生變化時,需要重新生成一組點擊,那么這項任務就變得不可能了。因此,這需要借助某種自動化來實現。
不過,這將是本系列第2部分的主題。其中,我們將展示如何自動創建點擊坐標,使訓練過程可以在完全無監督的情況下運行。第2部分將描述一種生成點擊的算法,該算法的生成方式與操作員做出的決策非常相似。
鏈接、引文、評論
本文中的這個項目是我在數據科學碩士研究的最后一個學期的畢業項目的延伸。
畢業項目和這項工作都是在威斯康星大學拉克羅斯分校的乳腺超聲圖像計算機輔助診斷(CADBUSI)項目中完成的,由Jeff Baggett博士監督。參考地址:https://datascienceuwl.github.io/CADBUSI/。
包含本文代碼的GitHub存儲庫:https://github.com/FlorinAndrei/segmentation_click_train。
本文中使用的所有超聲圖像都是乳腺超聲圖像數據集的一部分,可在CC BY 4.0許可證下獲得。引文鏈接有:
Al-Dhabyani, W., Gomaa, M., Khaled, H., & Fahmy, A. (2019)。《乳腺超聲圖像數據集》(Dataset of Breast Ultrasound Images)。ResearchGate。檢索日期:2023年5月1日,論文:https://www.sciencedirect.com/science/article/pii/S2352340919312181。
其他鏈接、引用和評論:
- Liu, Q., Zheng, M., Planche, B., Karanam, S., Chen, T., Niethammer, M., & Wu, Z. (2022)?!秱吸c擊:具有點擊模仿的交互式圖像分割》(PseudoClick: Interactive Image Segmentation with Click Imitation)。arXiv.org。檢索日期:2023年5月1日,論文:https://arxiv.org/abs/2207.05282。
- Xie, E., Wang, W., Yu, Z., Anandkumar, A., Alvarez, J. M., & Luo. P. (2021)?!禨egFormer:一種簡單高效的變壓器語義分割設計》(SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers)。arXiv.org。檢索日期:2023年5月1日,論文:https://arxiv.org/abs/2105.15203。
最后,本文中不屬于乳腺超聲圖像數據集的所有圖像都是由作者自己創建的。
譯者介紹
朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。
原文標題:Train Image Segmentation Models to Accept User Feedback via Voronoi Tiling, Part 1,作者:Florin Andrei