郝鵬飛,李瑤,柴蕊,裴曉娟,于哲,李慶雨,陳曦,張克
1.山東省醫(yī)療器械和藥品包裝檢驗(yàn)研究院 醫(yī)用電器質(zhì)量評(píng)價(jià)中心,山東 濟(jì)南 250101;2.道普信息技術(shù)有限公司,山東 濟(jì)南 250101
隨著圖形處理器等硬件技術(shù)的發(fā)展及各類人工智能算法的突破,人工智能產(chǎn)品成為最熱門的賽道之一。人工智能算法作為功能引擎,為各個(gè)行業(yè)提供生產(chǎn)動(dòng)力輸出。在醫(yī)學(xué)+人工智能領(lǐng)域,現(xiàn)有案例證明,利用人工智能可對(duì)常見高發(fā)慢性疾病進(jìn)行風(fēng)險(xiǎn)評(píng)估,大大減輕醫(yī)生工作負(fù)擔(dān),提升就醫(yī)效率[1-3]。
醫(yī)學(xué)領(lǐng)域大批量人工智能產(chǎn)品面世,給醫(yī)療器械檢測(cè)機(jī)構(gòu)帶來了前所未有的壓力。其中,產(chǎn)品優(yōu)劣程度對(duì)病情、病變檢測(cè)等診斷結(jié)果起著決定性的導(dǎo)向作用,因此,如何測(cè)試人工智能算法成為醫(yī)療行業(yè)中亟待解決的主要問題。眾所周知,人工智能算法分訓(xùn)練集和測(cè)試集,測(cè)試集為算法指標(biāo)評(píng)估重要的輸入[4]?,F(xiàn)今,對(duì)檢測(cè)機(jī)構(gòu)來說,由于承檢量大,產(chǎn)品種類多,很難建立全域測(cè)試數(shù)據(jù)集,因此只能依賴送檢機(jī)構(gòu)針對(duì)人工智能產(chǎn)品提供的測(cè)試數(shù)據(jù)集,但醫(yī)療器械檢測(cè)機(jī)構(gòu)很難判斷此數(shù)據(jù)集是測(cè)試集還是訓(xùn)練集,因此無法保證算法模型質(zhì)量。
基于以上考慮,結(jié)合國(guó)內(nèi)外數(shù)據(jù)處理加工算法,本文提出一種包含循環(huán)生成對(duì)抗網(wǎng)絡(luò)(Cycle-Consistent Generative Adversarial Networks,CycleGAN)、輔助分類生成對(duì)抗網(wǎng)絡(luò)(Auxiliary Classification Generative Adversarial Network,ACGAN)進(jìn)行數(shù)據(jù)增廣的方法集合。由于肺部影像診斷是臨床影像學(xué)中的一個(gè)重要分支,肺部影像學(xué)的自動(dòng)化分析也是人工智能醫(yī)療設(shè)備的熱點(diǎn)研究方向之一,且肺部影像中的結(jié)構(gòu)和形態(tài)比較規(guī)律,更容易進(jìn)行算法研究、評(píng)估和比較,因此本文選擇肺部圖像作為研究對(duì)象。本文旨在對(duì)送檢數(shù)據(jù)集進(jìn)行變換或生成特定領(lǐng)域數(shù)據(jù),以保障模型對(duì)數(shù)據(jù)的不可見性,提高模型評(píng)估的置信度。
傳統(tǒng)數(shù)據(jù)添加擾動(dòng)方法可分為圖像旋轉(zhuǎn)與翻轉(zhuǎn)、圖像加噪、圖像疊加濾波[5]。該類方法為基于一張?jiān)紙D像進(jìn)行規(guī)律性變換,且不同方法變換的方式不同,在整個(gè)變化過程中不會(huì)過多地影響圖像的整體結(jié)構(gòu)和圖像質(zhì)量。傳統(tǒng)數(shù)據(jù)添加擾動(dòng)方法如圖1所示,圖像均采用肺炎圖像里的一小塊區(qū)域,每種方法從左到右設(shè)置閾值為由低到高。
圖1 傳統(tǒng)數(shù)據(jù)添加擾動(dòng)方法
圖像旋轉(zhuǎn)與翻轉(zhuǎn)是圖像像素進(jìn)行空間幾何變換的結(jié)果,是最初等的變換,也是數(shù)據(jù)增廣的常用方法。圖像旋轉(zhuǎn)是讓圖像以某一點(diǎn)為中心旋轉(zhuǎn)指定的角度。為了保障圖像的完整度,基于醫(yī)學(xué)領(lǐng)域圖像旋轉(zhuǎn)以中心點(diǎn)作為基點(diǎn),以90°作為旋轉(zhuǎn)角度最小變換量。經(jīng)過旋轉(zhuǎn)或翻轉(zhuǎn)的圖像,其圖像內(nèi)容不會(huì)發(fā)生變化,但是原坐標(biāo)系需要通過角度等復(fù)雜計(jì)算,才可得到目標(biāo)坐標(biāo)空間。
圖像中的噪聲不是來自原始場(chǎng)景內(nèi)容的偽影。一般來說,噪聲是隨機(jī)過程中產(chǎn)生的測(cè)量值的統(tǒng)計(jì)變化[6]。在成像中,噪音以涵蓋畫面的粒子結(jié)構(gòu)為偽影出現(xiàn)在畫面中。噪聲在圖像中可有不同的形式和外觀,也可根據(jù)需求設(shè)置噪聲大小,具體效果如圖1a~c所示。為了增加圖像噪聲作為檢測(cè)模型的輸入,本文對(duì)人工智能模型進(jìn)行多層次噪聲檢測(cè),以更好地測(cè)試模型的魯棒性。
圖像可以看作由多塊子圖像組成,各塊內(nèi)像素相似且過渡緩慢,塊與塊相鄰部分稱作邊緣?,F(xiàn)今圖像濾波常用于圖像塊內(nèi)平滑降噪、去細(xì)節(jié)并最大程度保留圖像邊緣[7]。圖像濾波因具備去除噪音、去除圖像細(xì)節(jié)、保持圖像邊緣的能力而被廣泛使用。具體效果如圖1d~f所示。醫(yī)學(xué)領(lǐng)域中的影像也常用濾波技術(shù)進(jìn)行去噪處理[8-9],本文提到的濾波區(qū)別于常用用途,旨在對(duì)醫(yī)學(xué)影像進(jìn)行濾波變換,在不改變圖像整體結(jié)構(gòu)和元素的前提下對(duì)圖像進(jìn)行加工。
傳統(tǒng)數(shù)據(jù)添加擾動(dòng)方法是在不改變圖像整體結(jié)構(gòu)的前提下,對(duì)醫(yī)學(xué)圖像數(shù)據(jù)進(jìn)行加工,處理后的數(shù)據(jù)為模型的測(cè)試集。通過傳統(tǒng)數(shù)據(jù)添加擾動(dòng),使用不同方法、不同閾值對(duì)數(shù)據(jù)進(jìn)行變換,將得到的測(cè)試集分別應(yīng)用于模型測(cè)試,可以更精準(zhǔn)地評(píng)估模型的魯棒性。
傳統(tǒng)數(shù)據(jù)添加擾動(dòng)方法都是基于某種規(guī)律對(duì)圖像進(jìn)行變換,隨著人工智能技術(shù)的不斷發(fā)展,CycleGAN 應(yīng)運(yùn)而生。CycleGAN 突破了原始生成模型的枷鎖,以一種新的模態(tài)展現(xiàn)在人們面前,取得了令人滿意的效果。
CycleGAN 是生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)的一種類型,由2 個(gè)生成器和2 個(gè)判別器組成,可學(xué)習(xí)兩個(gè)域之間的映射且無須進(jìn)行數(shù)據(jù)配對(duì)。生成器學(xué)習(xí)將圖像從一個(gè)域映射到另一個(gè)域,判別器學(xué)習(xí)區(qū)分真實(shí)和假的圖像。CycleGAN 的關(guān)鍵方法是循環(huán)一致性損失,確保生成的圖像可映射回原始域。CycleGAN 已應(yīng)用于各種領(lǐng)域,包括圖像風(fēng)格轉(zhuǎn)移、圖像到圖像的翻譯和醫(yī)學(xué)影像領(lǐng)域。在醫(yī)學(xué)影像中,CycleGAN 已用于圖像配準(zhǔn)、圖像合成和圖像分割。例如,Zhu 等[10]使用CycleGAN 將磁共振成像圖像合成電子CT 圖像進(jìn)行放射治療規(guī)劃,生成的CT 圖像在圖像質(zhì)量和準(zhǔn)確性方面與真實(shí)CT 圖像相當(dāng)。
本文使用CycleGAN[11]作為生成擾動(dòng)圖像方法的原因有:① CycleGAN 的通用性更強(qiáng),不依賴于具體的任務(wù);② 生成器輸入的不是隨機(jī)噪聲,而是圖像,由于本文的目的是在原始圖像基礎(chǔ)上添加擾動(dòng),因此CycleGAN 生成器輸入原始圖像較傳統(tǒng)GAN 生成器輸入隨機(jī)噪聲,可更好地保留原圖特征;③ CycleGAN 的訓(xùn)練集只需準(zhǔn)備原始圖像和帶有擾動(dòng)的圖像即可,數(shù)據(jù)之間無須進(jìn)行對(duì)應(yīng)關(guān)系的映射[12]。
CycleGAN 需要2 個(gè)集合的數(shù)據(jù)即原始數(shù)據(jù)(A)和目標(biāo)數(shù)據(jù)(B),訓(xùn)練集與測(cè)試集比例設(shè)置為5 ∶1。構(gòu)造數(shù)據(jù)集的具體過程為:以肺炎圖像為例,首先挑選出1800 張肺炎圖像作為基礎(chǔ)數(shù)據(jù)(本文肺炎圖像均來源于Kaggle 網(wǎng)站[13]),再隨機(jī)選出1500 張和300 張圖像作為訓(xùn)練集和測(cè)試集中的集合A,然后使用傳統(tǒng)添加擾動(dòng)的6 種噪聲和濾波變換方法對(duì)1800 張圖像進(jìn)行變換,每種方法設(shè)置3 個(gè)閾值,具體數(shù)值如表1所示。
表1 圖像變換對(duì)應(yīng)表(張)
表1 中以行列進(jìn)行排列組合,可分成18 個(gè)類即18 個(gè)100 張集合。以隨機(jī)的策略在17 個(gè)類別中選取17 張,在最后一個(gè)類別中選取11 張,湊夠測(cè)試集B 集合的300 張圖像。剩下的1500 張圖像作為訓(xùn)練集的B集合使用。該方法一方面可避免數(shù)據(jù)出現(xiàn)偏態(tài)分布,導(dǎo)致模型訓(xùn)練效果不佳,另一方面可使模型對(duì)該18 個(gè)類別數(shù)據(jù)進(jìn)行學(xué)習(xí),融合多種變換方式,從而在原圖像基礎(chǔ)上生成不規(guī)則的擾動(dòng)信息,并對(duì)其進(jìn)行圖像加工。
CycleGAN 包含2 個(gè)生成器和2 個(gè)判別器,見圖2,如果從一個(gè)圖像轉(zhuǎn)換到另一個(gè)圖像后再返回,可得到最初始的圖像。以肺炎圖像為例(圖2),a為原始肺炎圖像,經(jīng)過生成器G 生成添加擾動(dòng)肺炎圖像,再經(jīng)過生成器F 生成圖像。與其他對(duì)抗網(wǎng)絡(luò)不同,CycleGAN增加了循環(huán)一致性損失的目的是使得向a靠攏,反之亦然。
圖2 CycleGAN計(jì)算原理圖
指標(biāo)最優(yōu)模型的推理結(jié)果如圖3所示。作為肺炎圖像數(shù)據(jù),圖像中整體的結(jié)構(gòu)和元素沒有發(fā)生太大變化,圖像中均有不同程度噪聲和濾波的擾動(dòng)信息,實(shí)現(xiàn)了基于原始圖像添加不規(guī)則擾動(dòng)的目的。
圖3 推理效果展示
對(duì)醫(yī)學(xué)領(lǐng)域而言,領(lǐng)域性強(qiáng)、標(biāo)注成本高導(dǎo)致醫(yī)學(xué)數(shù)據(jù)稀缺且數(shù)據(jù)集體系不規(guī)范[14]。對(duì)于醫(yī)療器械檢測(cè)機(jī)構(gòu),特別是檢測(cè)人工智能相關(guān)產(chǎn)品的機(jī)構(gòu),數(shù)據(jù)作為最基礎(chǔ)的檢測(cè)元素必不可少,確保該類數(shù)據(jù)不是產(chǎn)品模型訓(xùn)練集中的數(shù)據(jù)同樣重要,且數(shù)據(jù)量越大越好。
現(xiàn)今人工智能技術(shù)飛速發(fā)展,GAN 作為神經(jīng)網(wǎng)絡(luò)發(fā)展的產(chǎn)物,成為近幾年深度學(xué)習(xí)中較為活躍的領(lǐng)域。GAN 主要利用博弈的方法優(yōu)化生成器,在完成訓(xùn)練后復(fù)用生成器生成數(shù)據(jù)[15]。本文經(jīng)過多種GAN 嘗試擬完成生成醫(yī)學(xué)特點(diǎn)領(lǐng)域數(shù)據(jù)的目標(biāo),解決數(shù)據(jù)不足等問題。
雖然醫(yī)學(xué)領(lǐng)域每天都會(huì)產(chǎn)生大量數(shù)據(jù),但數(shù)據(jù)標(biāo)注和脫敏復(fù)雜等仍是導(dǎo)致醫(yī)學(xué)領(lǐng)域應(yīng)用于人工智能模型開發(fā)數(shù)據(jù)不足的根本原因。作為科研人員或人工智能軟件開發(fā)者,可使用公開數(shù)據(jù)集進(jìn)行模型訓(xùn)練和評(píng)估,但作為醫(yī)療器械檢測(cè)機(jī)構(gòu),使用公開數(shù)據(jù)集只能作為一種檢測(cè)手段,說服力較低。因此,本文致力于探究一種在醫(yī)學(xué)特定領(lǐng)域可以生成標(biāo)簽數(shù)據(jù)的GAN。
2014年條件生成對(duì)抗網(wǎng)絡(luò)(Conditional Generative Adversarial Networks,cGAN)進(jìn)入了大眾的視野[16],隨后眾多知名算法橫空出世,例如:信息最大化GAN[17]、深度卷積GAN、半監(jiān)督GAN(Semi-Supervised Generative Adversarial Networks,sGAN)等。本文應(yīng)用ACGAN算法生成肺炎領(lǐng)域帶標(biāo)簽數(shù)據(jù),在介紹ACGAN之前,首先要了解cGAN和sGAN。
cGAN[18]與其他GAN 的不同之處在于其使用“條件”輸入指導(dǎo)圖像的生成,生成器網(wǎng)絡(luò)可因此接收到額外的信息,例如標(biāo)簽或特定圖像,有助于其生成更具體、更逼真的圖像。例如,如果條件輸入是一個(gè)標(biāo)簽,表明生成的圖像應(yīng)該是一只貓,生成器網(wǎng)絡(luò)將嘗試生成一張看起來盡可能逼真的貓圖像。
sGAN[19]利用判別器或分類器一端重建標(biāo)簽信息,從而提升GAN 的生成效果。研究發(fā)現(xiàn),當(dāng)模型處理額外信息時(shí),反而會(huì)讓模型本來的生成任務(wù)完成得更好。優(yōu)化后的分類器可有效提升圖像的綜合質(zhì)量。
ACGAN[20]將以上2 種思想結(jié)合建立輔助分類GAN,使用“輔助分類器”指導(dǎo)圖像的生成。輔助分類器是一個(gè)單獨(dú)的神經(jīng)網(wǎng)絡(luò),經(jīng)過訓(xùn)練可預(yù)測(cè)生成圖像的類別。附加信息有助于生成器網(wǎng)絡(luò)生成更逼真的圖像,使圖像更符合預(yù)期的類別。ACGAN 由1 個(gè)生成器和1 個(gè)判別器組成,類似于CycleGAN。ACGAN 還包括1 個(gè)分類網(wǎng)絡(luò)以學(xué)習(xí)預(yù)測(cè)生成圖像的屬性。生成器被訓(xùn)練生成與所需屬性匹配的圖像,而判別器被訓(xùn)練區(qū)分真實(shí)和假的圖像并預(yù)測(cè)其屬性。目前。ACGAN 已應(yīng)用于各種領(lǐng)域,包括圖像合成、圖像到圖像的翻譯和醫(yī)學(xué)影像領(lǐng)域等。在醫(yī)學(xué)影像中,ACGAN 已用于圖像分類、圖像分割和疾病診斷。
ACGAN 由1 個(gè)生成器和1 個(gè)判別器組成,生成器由若干個(gè)反卷積層和先行層組成,而判別器包含了若干卷積層和線性層。判別器通過Sigmod 函數(shù)判斷圖像真假,通過softmax 函數(shù)判斷圖像類別。
ACGAN 結(jié)構(gòu)圖如圖4所示,類別信息與隨機(jī)噪聲進(jìn)行橫向拼接作為生成器的輸入并進(jìn)入網(wǎng)絡(luò)進(jìn)行計(jì)算,類別信息以獨(dú)熱編碼的方法表示。以肺炎數(shù)據(jù)集為例,分3 個(gè)類別,分別為正常、細(xì)菌感染、病毒感染,在網(wǎng)絡(luò)中以向量[1,0,0]、[0,1,0]、[0,0,1]表示。生成器生成圖像分別和真實(shí)圖像及類別信息進(jìn)行對(duì)比后輸入到判別器中,ACGAN 在原有GAN 損失的基礎(chǔ)上,增加了類別信息損失計(jì)算。生成器一旦訓(xùn)練完畢,在推理時(shí)只需將類別信息編碼輸入到生成器中,即可生成帶標(biāo)簽的數(shù)據(jù)。
圖4 ACGAN結(jié)構(gòu)圖
本文使用5856 張肺炎圖像作為ACGAN 的訓(xùn)練集,3 個(gè)類別的數(shù)量分別為:正常1583 張、病毒2780 張、細(xì)菌1493 張。經(jīng)過多次調(diào)參實(shí)驗(yàn),最終獲得了效果較好的生成器,生成器的生成效果如圖5所示。雖然距離真實(shí)圖像還有差距,主要原因是數(shù)據(jù)量不足、網(wǎng)絡(luò)結(jié)構(gòu)不適配等,但相信隨著科技的發(fā)展,未來會(huì)有更多算法來支撐醫(yī)學(xué)領(lǐng)域數(shù)據(jù)的生成工作。
圖5 ACGAN生成器生成效果展示
將CycleGAN 和ACGAN 組合用于人工智能醫(yī)療設(shè)備中的數(shù)據(jù)增廣,基本方法是使用CycleGAN 從現(xiàn)有醫(yī)學(xué)影像中生成新的醫(yī)學(xué)影像,再使用ACGAN 生成具有特定屬性的醫(yī)學(xué)影像。
實(shí)現(xiàn)步驟為:① 數(shù)據(jù)預(yù)處理:通過調(diào)整大小并歸一化像素值來預(yù)處理醫(yī)學(xué)影像;② CycleGAN 訓(xùn)練:在預(yù)處理的醫(yī)學(xué)影像上訓(xùn)練CycleGAN 模型,生成器學(xué)習(xí)將圖像從一個(gè)域映射到另一個(gè)域,判別器學(xué)習(xí)區(qū)分真實(shí)和假的圖像;③ CycleGAN 測(cè)試:使用訓(xùn)練好的CycleGAN 模型從預(yù)處理的醫(yī)學(xué)影像中生成新的醫(yī)學(xué)影像,再將生成的圖像保存以供進(jìn)一步處理;④ ACGAN訓(xùn)練:在生成的醫(yī)學(xué)影像上訓(xùn)練ACGAN 模型,生成器學(xué)習(xí)生成具有特定屬性的醫(yī)學(xué)影像,判別器學(xué)習(xí)區(qū)分真實(shí)和假的圖像并預(yù)測(cè)其屬性;⑤ ACGAN 測(cè)試:使用訓(xùn)練好的ACGAN 模型生成具有特定屬性的醫(yī)學(xué)影像,生成的圖像可用于訓(xùn)練機(jī)器學(xué)習(xí)模型,例如圖像分類和疾病診斷。
本文開展了基于醫(yī)療器械人工智能圖像領(lǐng)域數(shù)據(jù)增廣的方法研究,提出了CycleGAN 和ACGAN 結(jié)合用于數(shù)據(jù)增廣的方法。CycleGAN 和ACGAN 作為GAN 的變形,不僅適用于肺部圖像的增廣和添加擾動(dòng),還可用來處理各種類型的圖像數(shù)據(jù),但需要針對(duì)具體的應(yīng)用場(chǎng)景和數(shù)據(jù)集進(jìn)行調(diào)參和優(yōu)化以達(dá)到最佳效果。本文提出的方法解決了現(xiàn)有明確診斷結(jié)論的醫(yī)學(xué)圖像數(shù)據(jù)不足的問題,對(duì)送檢數(shù)據(jù)集進(jìn)行變換或生成特定領(lǐng)域數(shù)據(jù),保障了模型對(duì)數(shù)據(jù)的不可見性,大大提高了模型評(píng)估的置信度。
本研究還存在一些不足之處:① 對(duì)于送檢機(jī)構(gòu)自行提供的數(shù)據(jù)集,在篩選原始數(shù)據(jù)質(zhì)量時(shí)可能存在偏倚現(xiàn)象;② 醫(yī)學(xué)影像具體的操作任務(wù)及數(shù)據(jù)集的質(zhì)量是影響數(shù)據(jù)增廣質(zhì)量的關(guān)鍵因素,不當(dāng)?shù)臄?shù)據(jù)增廣也可能造成負(fù)面影響;③ 基于GAN 的增廣方式往往需要大量的數(shù)據(jù),而基礎(chǔ)訓(xùn)練數(shù)據(jù)難以獲得;④ 本研究只提出了3 種數(shù)據(jù)增廣方式,對(duì)數(shù)據(jù)增廣后的實(shí)際應(yīng)用和效果對(duì)比的研究還不夠深入,導(dǎo)致數(shù)據(jù)增廣后的數(shù)據(jù)尚不具備權(quán)威性,不能作為檢驗(yàn)的依據(jù),僅可用來提高模型的泛化能力,增加數(shù)據(jù)集的多樣性及減少數(shù)據(jù)集采集成本。
綜上所述,本文提出了一種測(cè)試方法以解決醫(yī)療器械檢測(cè)機(jī)構(gòu)測(cè)試集不足的問題。下一步有必要針對(duì)生成對(duì)抗算法展開深入研究,對(duì)醫(yī)學(xué)不同領(lǐng)域數(shù)據(jù)集進(jìn)行透徹分析,力求生成更實(shí)用的醫(yī)學(xué)領(lǐng)域數(shù)據(jù),以幫助人工智能醫(yī)療器械檢測(cè)機(jī)構(gòu)對(duì)產(chǎn)品進(jìn)行可信檢測(cè)。