李 睿,張世杰,黃奧云,陳 虎
(1.四川大學(xué) 計算機學(xué)院,四川 成都 610065;2.四川大學(xué) 視覺合成圖形圖像技術(shù)國防重點學(xué)科實驗室,四川 成都 610065;3.四川川大智勝軟件股份有限公司,四川 成都 610045)
機器學(xué)習(xí)[1]是人工智能[2]的一個分支,它通過計算機的一些算法從已有數(shù)據(jù)中學(xué)習(xí)特征參數(shù),然后對具有類似特征的新樣本做出識別或?qū)ξ磥淼淖兓龀鲱A(yù)測。機器學(xué)習(xí)的發(fā)展從20世紀(jì)80年代末期開始大致經(jīng)歷了兩次推進:淺層學(xué)習(xí)(shallow learning)和深度學(xué)習(xí)(deep learning)[3]。淺層學(xué)習(xí)主要指支持向量機(support vector machine,SVM)[4-5]、Boosting[6]、最大熵方法[7](logistic regression,LR[8])等經(jīng)典的機器學(xué)習(xí)方法。而相較于只有極少隱層節(jié)點的淺層學(xué)習(xí)方法,具有更多隱層的深度學(xué)習(xí)方法還包含了更海量的訓(xùn)練數(shù)據(jù),降低過擬合可能性的同時也可以學(xué)習(xí)到更有用的特征,從而提升了分類或預(yù)測的準(zhǔn)確性。常用深度學(xué)習(xí)這個術(shù)語來指訓(xùn)練神經(jīng)網(wǎng)絡(luò)[9](一種由大量節(jié)點函數(shù)相互聯(lián)結(jié)構(gòu)成的運算模型)的過程,通過輸入數(shù)據(jù)在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練下不斷優(yōu)化改變權(quán)重參數(shù)得出適用的模型,并利用神經(jīng)網(wǎng)絡(luò)模型實現(xiàn)各種功能應(yīng)用。無人駕駛汽車的出現(xiàn)、人臉識別身份驗證以及其他方面的諸多圖像識別都來源于這項技術(shù)的應(yīng)用,所以深度學(xué)習(xí)幾乎成為人工智能的代名詞。
在骨齡評價的過程中,青少年骨骼生長伴隨著手部腕關(guān)節(jié)一系列的變化,因此醫(yī)學(xué)上根據(jù)這些變化制定了標(biāo)準(zhǔn)的骨齡評分系統(tǒng),需要通過拍攝個體的X線片,并根據(jù)其特征評價手腕骨的成熟度即骨齡,其中最常用的方法是G-P圖譜法[10]和TW2[11]評分法及中華05法[12]。骨齡評價是用來判斷青少年兒童生長發(fā)育情況、輔助運動員選拔,以及司法鑒定中確定年齡的重要方法,還對一些兒科內(nèi)分泌疾病的診斷有很大幫助,具有重要的臨床意義。然而,傳統(tǒng)方法主要利用左手腕骨,掌骨,指骨骨化中心大小,形態(tài)結(jié)構(gòu)相互關(guān)系來確定發(fā)育程度。其中涉及到人工觀察骨骺等發(fā)育情況并對應(yīng)圖譜的評分以及等級劃分,最后綜合評分來確定X線片所屬骨齡范圍,方法步驟比較繁瑣,耗時較長。而采用深度學(xué)習(xí)自動提取相關(guān)部位的特征[13]進行骨齡的識別及判斷,十分快捷方便。所以這里提出一種簡單的深度學(xué)習(xí)方法來訓(xùn)練醫(yī)師評價的骨齡數(shù)據(jù),使得通過深度學(xué)習(xí)得到的模型可以讓計算機通過識別X線片來自動評價骨齡,并獲得與醫(yī)師骨齡評價間誤差范圍在±1歲以內(nèi)的評估結(jié)果。
在RSNA(北美放射學(xué)會)舉辦的一次X線片骨齡預(yù)測大賽中,最好的深度學(xué)習(xí)模型使得計算機得出的骨齡與人工評價的骨齡誤差在6個月左右。但是他們使用的是來自美國斯坦福兒童醫(yī)院和科羅拉多兒童醫(yī)院的公開數(shù)據(jù)集。為了得到適用于西南地區(qū)青少年兒童的骨齡評價模型,文中采集了來自四川大學(xué)華西第二醫(yī)院的數(shù)據(jù),并構(gòu)建了一個簡單的骨齡評價方法驗證深度學(xué)習(xí)在西南地區(qū)青少年兒童(1-18歲)骨齡評價的可行性和可靠性。
該研究采集了四川大學(xué)華西第二醫(yī)院2017年底至2018年期間拍攝的漢族青少年兒童左手腕X線片,并由醫(yī)師評估了骨齡(為了與其他類似研究具有可比性,該院醫(yī)師評價骨齡采用了較為傳統(tǒng)的TW2法),其中包含骨齡為1-18歲以及成年骨齡的X片。且該數(shù)據(jù)納入的均為身體健康無影響骨骼生長的內(nèi)分泌疾病病史人群,排除了圖像顯示骨骼存在畸形改變的數(shù)據(jù),該研究符合有關(guān)的醫(yī)學(xué)倫理及法律條款規(guī)定。數(shù)據(jù)中的X片被制作成了帶標(biāo)簽的數(shù)據(jù)集,其中男性1 242例,女性1 163例,男性按照年齡分為1到18歲共18個類別,女性分為1-16歲以及18歲17個類別(其中17歲數(shù)據(jù)極少,暫時未做分類),除了三歲及以下年齡段數(shù)據(jù),每一類數(shù)據(jù)量在80例左右。樣本分布情況如表1所示。
表1 不同性別、年齡數(shù)據(jù)分布
上述數(shù)據(jù)中,90%為訓(xùn)練數(shù)據(jù)(其中訓(xùn)練集與驗證集比例為8∶1),余下10%為測試集(不參與訓(xùn)練)。且以上數(shù)據(jù)均為排除了位于每個年齡段邊界之后的數(shù)據(jù)(例如15.1歲或者11.9歲),只取X.2-X.8的年齡段數(shù)據(jù)來訓(xùn)練,以達到更好的分類效果。
1.2.1 預(yù)處理
在使用深度學(xué)習(xí)方法的過程中,數(shù)據(jù)預(yù)處理是所有后續(xù)步驟的重要基石。而該方案的第一步則是對目標(biāo)檢測的部分數(shù)據(jù)進行標(biāo)注并訓(xùn)練,目標(biāo)檢測的準(zhǔn)確性關(guān)乎后續(xù)caffe[14](深度學(xué)習(xí)框架)分類訓(xùn)練所需數(shù)據(jù)的完整性,在目標(biāo)檢測網(wǎng)絡(luò)訓(xùn)練開始之前需要耗費一定的時間去標(biāo)注數(shù)據(jù)。
(1)目標(biāo)檢測。
由于該數(shù)據(jù)集采集質(zhì)量較高,可以在不進行圖像質(zhì)量優(yōu)化的情況下直接檢測,文中的深度學(xué)習(xí)方法中只需要檢出骨齡評價所需的關(guān)鍵部位,并排除不同姿態(tài)帶來的影響及誤差即可。由人工評價骨齡的先驗知識可知,在骨齡評估中腕部和指關(guān)節(jié)起了決定性的作用,所以可以利用YOLOv3[15](基于深度學(xué)習(xí)的目標(biāo)檢測框架)來自動定位手掌、關(guān)節(jié)以及腕部。其中數(shù)據(jù)標(biāo)定如圖1所示。
圖1 數(shù)據(jù)標(biāo)注
每張手骨X線片被標(biāo)注了16個框體,分為hand、wrist、top、mid、bottom、tt、tb七個類,在標(biāo)定并訓(xùn)練目標(biāo)檢測網(wǎng)絡(luò)模型之后,利用YOLOv3接口與訓(xùn)練的模型自動定位到X片上手掌各個部位,并利用OpenCV[16]單獨截出需要的部位再通過仿射變換[17]做相應(yīng)的姿態(tài)調(diào)整(對空出的圖片區(qū)域填充灰度值為0的像素)。
(2)手掌姿態(tài)矯正。
利用YOLOv3定位的中指指關(guān)節(jié)和腕骨中心坐標(biāo)確定傾斜角度,然后對圖片做仿射變換旋轉(zhuǎn)矯正姿態(tài)(見圖2)。旋轉(zhuǎn)的角度公式為:
(1)
其中,θ為旋轉(zhuǎn)的角度;x1和y1為中指指關(guān)節(jié)的中心橫縱坐標(biāo);x2和y2為腕骨中心橫縱坐標(biāo)。手掌姿態(tài)矯正后有利于后續(xù)YOLOv3框架對手掌各部位的二次定位。
圖2 手掌姿態(tài)旋轉(zhuǎn)
(3)圖片組合。
由TW2評分法可知,小指、中指、大拇指以及腕骨在骨齡評價中占有較大比重,故該訓(xùn)練采用了組合第一、三、五掌指關(guān)節(jié)以及腕骨圖片的方式來進行訓(xùn)練(分別對以上部位進行姿態(tài)矯正后再組合,以減小誤差)。在此之前嘗試過多種關(guān)節(jié)組合方案,選擇了效果最好的一種,而且加入更多的部位組合起來可以提高準(zhǔn)確率,但是由于YOLOv3并不是100%檢測到所有部位,所以這里只選取了四個可檢測到的部位來組合成一張圖片訓(xùn)練。同樣利用OpenCV庫新建一個空的圖像容器Mat對象,將讀取的四個部位截圖拷貝到容器Mat對應(yīng)的四個感興趣區(qū)域即完成組合,如圖3所示。
圖3 圖片組合
(4)數(shù)據(jù)擴展。
由于某些年齡段數(shù)據(jù)較少,不便于深度學(xué)習(xí)分類網(wǎng)絡(luò)的訓(xùn)練,所以需要利用圖像增強算法[18]改變原圖的亮度及對比度擴展出更多的訓(xùn)練數(shù)據(jù)。圖像增強算法通過OpenCV訪問圖像像素改變其對比度亮度生成新的擴展圖像,具體調(diào)整公式為:
g(i,j)=a*f(i,j)+b
(2)
其中,i和j表示i行j列,f(i,j)為源圖像像素,g(i,j)為輸出圖像像素,a為控制對比度參數(shù),b為控制亮度的參數(shù)。
擴展效果如圖4所示。
圖4 圖像擴展
1.2.2 深度學(xué)習(xí)網(wǎng)絡(luò)及框架
(1)網(wǎng)絡(luò)及框架:目標(biāo)檢測的框架為YOLOv3(YOLO的最新版本),此框架為純C語言編寫,在效率和可移植性上都相對較高。此外該框架內(nèi)置了作者自訓(xùn)練的類似于殘差網(wǎng)絡(luò)的darknet-53訓(xùn)練網(wǎng)絡(luò),該方案中只需按照官方的訓(xùn)練方法進行訓(xùn)練無需調(diào)整額外的參數(shù)。訓(xùn)練時隨機標(biāo)注了數(shù)據(jù)集中760例X線片,由于該網(wǎng)絡(luò)為端到端的訓(xùn)練網(wǎng)絡(luò),直接以X線片原始尺寸作為輸入數(shù)據(jù)即可,按照5∶1的比例劃分訓(xùn)練集和驗證集迭代9 000次訓(xùn)練。骨齡評價的框架為caffe,此框架可移植性較高。改進了AlexNet[19](2012年ImageNet競賽冠軍獲得者Hinton和他的學(xué)生設(shè)計)作為骨齡評價訓(xùn)練的網(wǎng)絡(luò),訓(xùn)練過程中微調(diào)了網(wǎng)絡(luò)中的參數(shù),修改了其中的Relu激活函數(shù)(在人工神經(jīng)網(wǎng)絡(luò)的神經(jīng)元上運行的函數(shù),負責(zé)將神經(jīng)元的輸入映射到輸出端)為PReLU(PReLU是針對ReLU的一個改進型,在負數(shù)區(qū)域內(nèi),PReLU有一個很小的斜率),驗證集準(zhǔn)確率提高了兩個百分點。此外,上述深度學(xué)習(xí)的框架都包含已封裝的C++接口,十分便于集成到自動化的桌面應(yīng)用中。改進后的骨齡評價訓(xùn)練網(wǎng)絡(luò)的結(jié)構(gòu)如圖5所示。
圖5 骨齡評價訓(xùn)練網(wǎng)絡(luò)結(jié)構(gòu)
如圖5所示,該網(wǎng)絡(luò)有五個帶有Prelu激活函數(shù)的卷積層(Conv1-Conv5),卷積層可利用卷積核根據(jù)步長在輸入圖像的像素點上滑動,同時與該像素點以及相鄰的像素點做內(nèi)積,通過這樣的卷積操作即可提取圖像的特征圖,三個最大池化層(Pool1-Pool3)(池化層通過下采樣降低特征圖維度,減少訓(xùn)練過擬合的可能性),以及三個帶有Prelu的全連接層(FC1-FC3)(全連接層即可綜合出卷積和池化層的可分類信息)。其中輸入圖片為訓(xùn)練集中500×500像素尺寸的灰度圖,輸出為18個分類(代表0-18歲中的每一個年齡段)。輸入數(shù)據(jù)集歸一化到500×500像素尺寸的灰度圖,隨機裁剪尺寸為480×480像素輸入神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,選擇了男性迭代10 000次訓(xùn)練的權(quán)重模型及女性迭代30 000次訓(xùn)練的權(quán)重模型,分別在測試集上達到了不錯的準(zhǔn)確率。
(2)骨齡評價網(wǎng)絡(luò)超參數(shù)(在機器學(xué)習(xí)的上下文中,超參數(shù)是在開始學(xué)習(xí)過程之前設(shè)置值的參數(shù))設(shè)置:骨齡評價訓(xùn)練網(wǎng)絡(luò)初始學(xué)習(xí)率設(shè)置為0.001,在訓(xùn)練的過程中,由于輸入圖片數(shù)據(jù)尺寸較大,設(shè)置較大的初始學(xué)習(xí)率會使訓(xùn)練過程發(fā)生梯度爆炸[20]而無法繼續(xù),所以訓(xùn)練時將初始學(xué)習(xí)率(base_lr=0.01)減小了一個數(shù)量級。使迭代4 000次下降一次學(xué)習(xí)率(gamma值為0.9),梯度更新權(quán)重為0.9,權(quán)重參數(shù)以0.000 5的衰退值下降。
1.2.3 評估方法
將預(yù)測結(jié)果按照年齡段分類,每一歲為一類,按性別分別統(tǒng)計測試集所有數(shù)據(jù)誤差在±1歲以內(nèi)的準(zhǔn)確率,并計算平均絕對誤差(MAE)。公式如下:
(3)
平均絕對誤差即為每一例數(shù)據(jù)由深度學(xué)習(xí)模型評估出的骨齡與人工評價的骨齡的誤差取絕對值并累加求和最后除以數(shù)據(jù)的總數(shù)量求得的值,可以作為評價模型偏差的一個標(biāo)準(zhǔn)。
目標(biāo)檢測:選擇了迭代9 000次訓(xùn)練的一個模型,IOU(區(qū)域覆蓋率,即在原始圖像上預(yù)測出的目標(biāo)框體與人工在原始圖像上標(biāo)注的目標(biāo)框體重復(fù)區(qū)域面積占兩個框體合并面積的比例)平均為80%。公式如下:
(4)
其中,area(c)表示預(yù)測出的候選框(candidate bound)面積;area(g)表示原標(biāo)記框(ground truth bound)面積。
目標(biāo)框體漏檢率(未預(yù)測出原始圖像上實際應(yīng)該自動標(biāo)注的框體占框體總數(shù)的比率)為3%,使用YOLOv3的C++接口截圖定位手腕骨X線片各個關(guān)鍵部位結(jié)果如圖6所示(由于部分標(biāo)簽重疊,故分開展示)。
圖6 YOLOv3自動檢測結(jié)果
骨齡評價:男性數(shù)據(jù)迭代訓(xùn)練了10 000次,修改caffe源碼封裝的C++測試接口以進行批量測試,測試集上±1歲的準(zhǔn)確率為81.06%,女性數(shù)據(jù)迭代訓(xùn)練了30 000次,用同樣的方法在女性數(shù)據(jù)測試集上測得準(zhǔn)確率為85.08%。具體如表2所示。
表2 不同性別訓(xùn)練結(jié)果分布
由于該實驗數(shù)據(jù)集僅僅為國外公開數(shù)據(jù)集數(shù)量的六分之一,所以平均絕對誤差還沒達到最低,但1歲以內(nèi)的誤差準(zhǔn)確性幾乎能夠達到目前人工水平且高于胡婷鴻[21]等人所做的類似研究。在國內(nèi),針對西南地區(qū)1-18歲青少年兒童的手腕骨X線片骨齡數(shù)據(jù)集尚不完整,也少有針對其做深度學(xué)習(xí)評價骨齡的研究,實驗結(jié)果證明僅僅利用矯正了姿態(tài)的第一、三、五掌指關(guān)節(jié)以及腕骨就可以達到±1歲誤差內(nèi)80%以上的準(zhǔn)確率。
與其他方法相比,該研究具有以下優(yōu)勢:(1)用計算機代替了人工閱片,且該研究中的兩種深度學(xué)習(xí)框架都具有較好的可移植性,應(yīng)用性極強;(2)利用了YOLOv3作為圖片預(yù)處理的框架進行目標(biāo)檢測、姿態(tài)調(diào)整操作,效果提升明顯;(3)利用了覆蓋西南地區(qū)1-18歲青少年兒童的數(shù)據(jù),數(shù)據(jù)覆蓋年齡段較為完整,且對研究西南片區(qū)的青少年兒童骨齡發(fā)育有一定幫助[22];(4)僅僅使用了兩千多例數(shù)據(jù)以及改進的AlexNet網(wǎng)絡(luò),部署較為簡單,效果較好。
針對該實驗可以預(yù)見人工智能對放射學(xué)及醫(yī)學(xué)的一些傳統(tǒng)方法將起到良好的改進與促進作用[23],并輔助放射科醫(yī)師更好更快的工作;除了該方案中使用的矯正了姿態(tài)的第一、三、五掌指關(guān)節(jié)以及腕骨區(qū)域圖片,加入更多評價骨齡時關(guān)注的區(qū)域到訓(xùn)練數(shù)據(jù)中也可以更全面地促進計算機學(xué)習(xí)評價骨齡所需特征并進一步提高準(zhǔn)確度??紤]到全部區(qū)域的加入會增加圖像姿態(tài)不同帶來的誤差暫時沒有比較,減小這種差異需要在組合全部部位之前進行圖像姿態(tài)的矯正歸一化。對于該文章中使用的深度學(xué)習(xí)模型,如果繼續(xù)增加數(shù)據(jù)集以及改進深度學(xué)習(xí)網(wǎng)絡(luò)為更多層更深的網(wǎng)絡(luò)并使用更好的設(shè)備進行訓(xùn)練模型,會得到MAE更低、準(zhǔn)確率更高的深度學(xué)習(xí)模型。
由于人工的評價骨齡在耗時上高于全自動的軟件評價,而且使用深度學(xué)習(xí)的方法可以在數(shù)據(jù)繼續(xù)擴充的情況下不斷優(yōu)化訓(xùn)練模型并提升準(zhǔn)確度,可以說促進模型優(yōu)化的很大一部分因素在于數(shù)據(jù)量的多少;此外一般的計算機支持就可以達到遠遠高于人工評價的速度甚至更高的準(zhǔn)確度,所以目前看來基于深度學(xué)習(xí)的骨齡評價很有應(yīng)用價值和發(fā)展前景。另一方面,放射科醫(yī)師對未來醫(yī)學(xué)人工智能的發(fā)展仍然起到了指導(dǎo)性的作用,在人工智能、深度學(xué)習(xí)、計算機視覺技術(shù)不斷發(fā)展的時代,計算機技術(shù)將會成為輔助廣大醫(yī)師工作的強大力量。