田凈雯 張雄 胡珺 朱福
摘 要 本文簡述在大數據背景下,數據結構化在醫療領域中的重要性。同時,以糖尿病視網膜病變篩查為例,討論了圖像識別對讀片醫生的意義以及圖像識別預處理工作和簡單神經網絡的學習過程。
關鍵詞 數據結構化 圖像識別 糖尿病視網膜病變
中圖分類號:R319 文獻標志碼:C 文章編號:1006-1533(2019)03-0012-02
Application of image recognition in the medical field
TIAN Jingwen*, ZHANG Xiong, HU Jun, ZHU Fu
(the Central Hospital of Xuhui District, Shanghai 200031, China)
ABSTRACT This article mainly introduced the importance of data structuring for medical field under background of big data, and meanwhile discussed the significance of image recognition for ophthalmologist, the image preprocessing and the learning process of simple neural network by taking diabetic retinopathy as an example.
KEy WORDS data structuring; image recognition; diabetic retinopathy
數據結構化和圖像識別已應用于社會的各個領域。本文以糖尿病視網膜病變篩查為例,說明圖像識別在醫療領域中的應用。
1 大數據時代數據結構化的重要性
2012年,“大數據”這一名詞進入人們的視野。麥肯錫告訴我們:數據,已經滲透到當今每一個領域及其業務職能部門,成為重要的生產要素。也許在2012年之前,非信息技術領域對數據質量的敏感度和重視程度均很低,因為對它們來說,成堆的數據是否結構化只是這些數據看起來順眼或不順眼,而非有用或沒有用。但隨著大數據時代的到來,幾乎每個領域都感受到了數據結構化的重要性。非結構化的數據將在若干年后變為垃圾信息。所謂數據結構化是指,數據具有固定的長度、格式以及其代表的含義。例如,我們規定每一種疾病的代碼,就可以在進行相關統計時做到精準分類,避免因醫生多寫或少寫一字而出現的只能將含義相近的疾病數據歸為一類的情況,提高分類結果的精準性。
電子病歷作為數據結構化的一種方式,為數據挖掘提供了大量的有效數據。當算法工程師獲得海量的這類結構化數據時,通過分析和訓練這些數據,即可得到精準度較高的算法模型,進而輔助醫生開展診療工作。例如,上海徐匯云醫院平臺上的“人工智能醫生”,后者通過問答形式與患者在線上交流,獲得患者目前的基本癥狀以及既往病史,據此對患者作出初步診斷,并為其推薦需要做的檢查和需要服用的藥物。當患者接入線下醫生時,醫生便可跳過前期問診階段,節減診療時間。
2 圖像識別在醫療領域中的重要性
電子病歷作為一種文本信息,已為人工智能在醫療領域中的應用作出了巨大貢獻。圖像識別是人工智能在醫療領域中的另一個重要的應用方向。圖像存儲需要的空間較文本存儲大得多,因此充分利用圖像數據可平衡圖像存儲空間的成本,同時減輕讀片醫生的負擔。人工智能算法能夠輔助讀片醫生快速識別大部分的顯而易見的病灶,讀片醫生可由此而將工作重點放到人工智能無法識別的疑難雜癥的診斷上,提高工作效率。
有關資料顯示,中國的糖尿病患者數達1.14億人,他們每人每年都需要接受眼底檢查,以便早期發現糖尿病視網膜病變,避免發現太晚而造成患者視力喪失。但中國僅有3.5萬名眼科醫生,要對1.14億糖尿病患者進行眼底篩查,工作量非常大。因此,人工智能圖像識別技術很早就應用于糖尿病視網膜眼底圖像的病變識別。當讀片醫生有了糖尿病視網膜病變自動分期系統的輔助后,其工作效率大大提高,同時使更多的患者得到了及時治療。
3 圖像識別在糖尿病視網膜病變篩查中的應用
糖尿病視網膜病變可分為5種:①視網膜中無明顯視網膜病變。②輕度糖尿病視網膜病變。視網膜眼底圖像中出現微血管。③中度糖尿病視網膜病變。視網膜中的一些血管被阻塞,視網膜眼底圖像中出現少量出血點或硬性滲出。④嚴重糖尿病視網膜病變。視網膜中有更多的血管被阻塞,并出現大量出血點和白色棉絮斑。⑤增殖型糖尿病視網膜病變。視網膜中有新生血管形成,并可能出現大量出血點和滲出等多種病變。
糖尿病視網膜病變自動分期系統可識別并判定視網膜眼底圖像屬糖尿病視網膜病變的哪一種(無明顯病變、輕度、中度、嚴重和增殖型)。該系統人工智能算法的核心在于分類,而最終判定此人工智能算法是否適用的關鍵指標是分類結果的準確率。
醫生在采集糖尿病患者的視網膜眼底圖像時,由于采集儀器質量、光照強度、圖像大小等因素,會造成用來訓練算法的圖像數據本身出現巨大差異,用這樣的數據集訓練出來的算法,最后分類結果的準確率很低。因此,在生成算法之前,必須先對視網膜眼底圖像進行預處理。
在圖像預處理中,我們首先需要將所獲得的、且能夠使用的所有圖像重新生成為分辨率和大小都合適的圖像。分辨率不能太高,因為需要處理的圖像數量巨大,如果所有圖像都是高分辨率的,不但會導致內存溢出,還會增加算法中的卷積層數,從而降低算法的訓練速度并增大計算量。但如果圖像分辨率太低,又會失去太多的圖像信息,導致最后的算法不可靠或不能用。因此,在圖像識別算法中一般建議使用512×512像素的圖像。此外,還需要對圖像進行裁減,使所有圖像大小一致,同時保證目標(病變)區域包含在裁減后的圖像中。裁減完成后,再對一些曝光過度的圖像進行矯正,增加其對比度,以使圖像中的微血管瘤、出血點、硬性滲出和棉絮斑等更加明顯。當病變區域大部分位于識別區域并具有很高的可見度時,這樣的圖像數據集才更有利于算法的生成(卷積神經網絡的學習和訓練)。
一個可靠的神經網絡的生成需要訓練集和測試集。如果數據集(以所有的圖像數據作為一個集合)有1萬幅圖像,則需要其中80%的圖像作為訓練集,余下20%的圖像作為測試集。訓練集用來訓練神經網絡。神經網絡開始時的結構很簡單,但隨著其不斷學習一幅又一幅的圖像,最終會演變成為一個巨大的網絡,就像人體的大腦結構一樣。我們小時候第一次看見貓時并不知道此種生物是貓,但當我們見過很多只貓后,則再次見到相似的生物時,我們會根據它的特征來分辨出它是貓,這就是我們的學習過程。訓練集的作用即是提供每一類圖像的特征,以供學習。以對糖尿病患者視網膜眼底圖像的識別為例,當我們已知分類結果會是無明顯病變、輕度、中度、嚴重、增殖型中的一種(所有的訓練數據都有標簽,標明它屬哪一種)時,我們就可以通過學習(監督式學習)來了解每一種分類結果的特征,如嚴重糖尿病視網膜病變的眼底圖像中會有大量出血點和白色棉絮斑。當算法學會這種特征后,我們用測試集去測試,算法就會將有大量出血點和白色棉絮斑的眼底圖像歸為嚴重糖尿病視網膜病變這一分類中。
初步了解了神經網絡的學習過程后,一個在圖像預處理過程中必須要解決的問題隨之出現,即分類數據不均衡的問題。當1萬幅圖像中有80%的圖像都屬于無明顯病變這一分類時,就會造成神經網絡對這一分類的過度學習和對其他數量占比偏小的分類特征的學習不足,導致最后生成的算法對無明顯病變分類的識別度過高,而對其他分類則幾乎沒有識別能力。為解決分類數據不均衡的問題,常用的方法是將數量占比偏小的分類的圖像通過旋轉、獲取鏡像、增加亮度或對比度等方法生成新的圖像,以平衡每一分類的數據量。這樣,就可使1萬幅圖像中有20%的圖像屬無明顯病變分類,20%的圖像屬輕度分類,20%的圖像屬中度分類……,達到分類數據的均衡。
訓練結束后,需要再用測試集(占數據集的20%,且不與訓練集重合)來測試神經網絡分類結果的準確率。測試集的圖像特征,神經網絡沒有學習過。神經網絡用已經學習過的圖像特征來比對測試圖像的特征,分析測試圖像的特征是否與特定分類如無明顯病變分類的特征相似,若相似度達到設定的閾值,則將本幅測試圖像歸類為無明顯病變分類。我們可以用對測試集分類結果的準確率來評價神經網絡是否可靠。我們在圖像預處理過程后期還可以增加訓練集和測試集的大小(增加圖像數量),調整神經網絡的參數,以優化算法。
大多數人工智能專家認為,人工智能在醫療領域中的應用,最重要的部分不是文本挖掘,不是語音識別,而是圖像識別。因為讀片醫生與患者的數量相差巨大,醫療領域的讀片醫生遠遠不足,亟需圖像識別來彌補讀片醫生過少的缺口,讓讀片醫生的工作重點轉移到疑難雜癥的診療中。現如今,不少互聯網公司巨頭都已將人工智能的研究重點放在圖像識別方面,如騰訊覓影(騰訊公司開發的人工智能醫學影像分析系統)、Airdoc(以醫學影像識別為主的人工智能產品),它們不僅能夠幫助醫生識別眼底病變、協助醫生快速篩查慢性病,還可識別皮膚、腦部、肺部、心血管和乳腺等部位的病灶。人工智能的熱潮方興未艾。相信在不久的將來,圖像識別等人工智能技術必將更為廣泛地應用于醫療領域,為醫生助力,為患者謀福。