计算机视觉是应用性极强的学科,医学图像处理是其中重要的方向。
几天前,最新一期的生物光学顶级期刊《Biomedical Optics Express (生物医学光学快报)》上刊登了一篇论文《Open-source, machine and deep learning- based automated algorithm for gestational age estimation through smartphone lens imaging》,使用计算机视觉技术进行新生儿胎龄估计,展现了AI技术助力普惠医疗的潜力,其中所使用的技术和流程也很值得借鉴。
关键是,代码已开源!(原始地址国内下不了,但52CV君已将其搬到国内,请看文末。)
作者分别来自杜克大学、西安电子科技大学和美国三角研究所:
一、问题提出
早产儿护理是非常重要的医疗问题,早产相关的并发症是5岁以下儿童死亡的第二大因素,仅2015年全球范围内就造成100多万儿童死亡。
所以早产儿出生后准确估计其发育胎龄并据此提供必要的医疗护理是十分必要的。
52CV君是两个孩子的父亲,多少知道一点,一般情况下胎儿发育38周以上出生就不算早产,发育32周后出生的经现代医疗技术的帮助成活率会相对较高。但也认识一位朋友自称出生时严重早产(20几周),但依然在智商被严重影响的情况下读了东南大学的/摊手。
现有的新生儿胎龄估计中最权威的标准是通过产前的超声检查,但这在很多欠发达国家和地区是比较昂贵的并未完全普及,而另一种方式是使用孕妇末次月经计算,但其并不准确。
有研究表明,新生儿眼睛中前晶状体囊血管(anterior lens capsule vasculature (ALCV) )的消失与胎龄相关,该文的研究正是希望使用手机拍摄的ALCV图像加计算机视觉技术进行新生儿的胎龄估计。
二、技术分解
作者希望通过提取ALCV图像CNN特征进行SVM分类解决该问题(因为样本难以收集,不能大规模finetune网络,所以使用SVM分类器),其中涉及到提取高质量的图像帧和精确定位ALCV位置的问题,其技术流程如下:
拍摄新生儿眼睛的视频,然后粗略估计前晶状体(anterior lens)位置,并提取图像质量较高的帧,再精细定位前晶状体位置,再次选择定位准确的图像提取CNN特征,使用SVM分类器实现胎龄估计。
2.1 数据采集
该文使用的视频数据采集设备如下图中(a),在手机摄像头上加上镜头,采集的图像如(b)(c)(d)(e)。
2.2 粗略估计ALCV区域
因为ALCV区域往往呈圆形,所以作者通过高斯滤波去噪、局部归一化、Canny边缘检测,再进行凸包、圆形检测粗略提取ALCV的位置。
下图中(a)(c)(e)是含有ALCV的图像的处理过程和结果。(b)(d)(f)为不含ALCV的图像,通过这一步筛选出含有ALCV的图像。
2.3 去除低质量图像
作者使用 anisotropy-based metric of Gabarda, et al. 和 the natural scene statistic model of Mittal 两种方法评价图像质量,去除低质量的图像帧。
下图中的(c)(d)(e)即为系统要自动去除的图像示例。
2.4 精细分割前晶状体
作者通过训练DeepLabv3+算法精细分割前晶状体,手动标注ALCV区域时虽然作者们只收集到了124个新生儿的数据,但分割结果还是不错的。
下图中,(c)为粗略分割结果,(d)为精细分割结果。
下面是更多的精细分割结果示例(含胎龄):
虽然用于分割训练的样本不多,但测试集上精度还是不错的。如下图:
2.5 特征提取和分类
当精细分割出ALCV区域后,作者使用在ImageNet2015上训练的ResNet-152网络提取CNN特征,使用LibSVM对图像进行分类。如下图:
三、实验结果
作者在收集的124个新生儿数据上进行了实验,为便于比较,使用比较费时的手动选视频中的帧和手动标示定位ALCV位置的方法,并设计不同的分类器/回归器进行了对照实验。
下图展示了该文提出的全自动方法和手动方法中最好的基于回归的方法的结果,大部分情况下自动方法取得了更好的精度。
四、如何进一步提升
作者认为目前的分类精度还不够好,如果可以收集更多早产新生儿数据,finetune网络,提取更加适合的特征将会得到更好的结果。
总结
这篇文章提出的方法,为小数据量的医疗图像处理识别提供了一套完整的流程。值得做相关研究和开发的朋友参考!