田净雯 张雄 胡珺 朱福
摘 要 本文简述在大数据背景下,数据结构化在医疗领域中的重要性。同时,以糖尿病视网膜病变筛查为例,讨论了图像识别对读片医生的意义以及图像识别预处理工作和简单神经网络的学习过程。
关键词 數据结构化 图像识别 糖尿病视网膜病变
中图分类号: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(以医学影像识别为主的人工智能产品),它们不仅能够帮助医生识别眼底病变、协助医生快速筛查慢性病,还可识别皮肤、脑部、肺部、心血管和乳腺等部位的病灶。人工智能的热潮方兴未艾。相信在不久的将来,图像识别等人工智能技术必将更为广泛地应用于医疗领域,为医生助力,为患者谋福。