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