如何用飞桨打造你的专属“皮肤医生”?

原创
2020/05/09 18:19
阅读数 1.5K

皮肤疾病种类繁多(约6000余类),发病率高(全球约11%人口患有各类皮肤疾病),已成为困扰全社会的重大公共卫生问题。据统计,我国注册的皮肤科专业医生仅2万余人,医患比例极其悬殊。随着人工智能技术的进步,各类计算机辅助诊断系统是解决上述医疗供需不平衡问题的一条有效途径。“人工智能+医疗”,或简称智慧医疗,已经成为当下人工智能领域最具发展潜力和应用前景的交叉学科之一。

据《小程序2019年中报告》,微信小程序的累计用户数达到8.4亿,日活达到3.5亿。其中,提供健康咨询以及健康内容服务的小程序也迎来了大批量的用户,包括提供皮肤疾病健康状况监测的小程序。在此类小程序中,用户可以拍照上传皮损处的图片,通过AI智能诊断疾病并获得该疾病的相关科普。但是,根据测试,市面上此类产品依旧存在病种覆盖面不广、近似皮肤疾病区分准确度不够高等问题。经分析导致这些问题的原因主要有两个方面:

1)皮肤疾病的图像分类属于细粒度分类,分类难度大(尤其是超多分类情况下),即使是同种皮肤疾病,在不同的患病时期以及不同的拍摄条件下都会得到不同的视觉呈现;

2)在皮肤病学上,皮肤病分类的依据并不是完全按照视觉特征来的,比如感染源、感染途径等都可以作为病种区分的依据,这些都从根本上决定了单纯从视觉上进行皮肤疾病分类的局限性。

本团队与中南大学湘雅医院皮肤科建立了长期的合作伙伴关系,拥有多位临床一线的皮肤科专家指导,已开展了多项皮肤疾病辅助诊断课题的研究,并在科研和应用落地方面都取得了一系列的成绩。从最大程度上还原皮肤疾病临床诊断的角度出发,通过百度飞桨开源深度学习平台的助力,推出了结合多维度医学数据输入的皮肤疾病全病种分类系统,即AI知肤宝。我们希望AI知肤宝能克服以上所叙述的本行业目前面临的瓶颈,为广大用户提供真实、可靠的皮肤健康监测服务。

下载安装命令

## CPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle

## GPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu

本项目应用的图像分类及目标检测模型架构,详见百度飞桨开源框架项目地址:

目标检测Faster R-CNN、SSD以及YOLO:

https://github.com/PaddlePaddle/PaddleDetection

图像分类:

https://github.com/PaddlePaddle/PaddleClas

接下来,我们将为大家解析AI知肤宝智能辅助诊断皮肤病的过程。

01 总体技术路线

 

AI知肤宝的目标是对皮肤疾病的全病种进行分类。按照学术上的分类,算上非常罕见的皮肤病,皮肤疾病一共有6000多种。但是从文献报道的发病率上看,常见的300种皮肤疾病就能涵盖99%以上的发病率了。

本项目的数据来自于合作医院——湘雅医院,目前拥有44,108张临床图像,涵盖541类皮肤疾病(数据集样图见图一),且每张临床图像都能找到病人的病史文件,因此我们完全有开展此项研究的数据基础。从临床实际诊断的角度出发,本项目构建了一个基于临床图像和病史数据的皮肤疾病分类系统,并以此开发微信小程序——AI知肤宝,依托用户量庞大的微信小程序为广大用户提供皮肤健康的在线测试服务。

图一 数据集样图

实现这个目标包含如下研究内容:

1)基于目标检测方法的皮肤疾病病变区域提取;

2)基于临床图像的皮肤疾病初级分类;

3)基于临床图像和病史数据的皮肤疾病次级分类;

4)小程序“AI知肤宝”的设计与实现。

总体技术路线如图二所示:

图二 AI知肤宝技术路线

 

02 基于目标检测方法的皮肤疾病病变区域提取

 

首先,我们完成了数据集的标注。经过标注之后,本数据集的44,108张原临床图像得到了150,100个病变区域,其中包含42,535个Normal标签,107,565个Lesion标签,与原图片文件一一对应。基于此数据集,我们按照训练集和测试集为3:1的比例进行实验。

从现有的飞桨目标检测模型中One Stage(SSD、YOLOv3)和Two Stage(Faster R-CNN)的方法中,选择对比了SSD、Faster R-CNN和Yolo V3这三个目标检测算法,保持backbone均采用ResNet50,均导入ImageNet上的预训练权重,均采用了水平翻转、垂直翻转和旋转90°等数据增强手段,均采用相同的最大训练次数等,均采用mAP作为评价指标,实验结果如表1所示。

表1 三种目标检测算法进行病变区域检测实验对比

 

03 基于临床图像的皮肤疾病初级分类

我们完成了皮肤疾病初级分类的数据整理,然后基于上个步骤标记后得到的541个类别,107,565张的病变区域图像,我们按照既定的23个大的类别进行归类整理。基于此数据集,我们按照4折交叉验证的方式进行实验,对比了VGG16、ResNet50和InceptionV4这三个卷积神经网络。为了公平比较,我们同样保持一些基本的训练参数和手段不变,采用Top-1和Top-5的准确率作为评价指标,实验结果如表2所示。

表2 三种卷积神经网络进行皮肤疾病初级分类实验对比

 

04 基于临床图像和病史数据的皮肤疾病次级分类

 

前面已经讲到了,由于整理这些多维度数据需要大量的时间和人力,因此,我们截止目前只完成了皮肤肿瘤和大疱性皮肤疾病的次级分类任务。

1)皮肤肿瘤

我们选取了皮肤肿瘤类底下的基底细胞癌、色素痣、黑素瘤、鳞状细胞癌和脂溢性角化这5类皮肤疾病进行鉴别。询问的病史问题包括患者年龄、性别、皮损发生部位、病变区域的形态特点等。整理出数据集中这5类皮肤疾病的病史+图像数据共1011例,然后按照4折交叉验证的方式进行实验,对比了纯图片以及病史+图片的多模态模型,采用敏感度、特异度、准确率以及AUC作为评价指标,结果如表3所示。

2)大疱性皮肤疾病

我们选取了大疱性皮肤疾病底下的天疱疮、类天疱疮这2类皮肤疾病进行鉴别。询问的问题包括患者年龄、性别、皮损发生部位、水疱特点以及是否有瘙痒和疼痛的感觉等。我们整理出数据集中的天疱疮和类天疱疮的图像数据和对应的病史数据共364例,我们按照4折交叉验证的方式进行实验,对比了纯图片以及病史+图片的多模态模型,采用敏感度、特异度、准确率以及AUC作为评价指标,结果如表4所示。

05 小程序“AI知肤宝”的设计与实现

 

初步完成了小程序“AI知肤宝”的V1.0.0版本,将上述的3个最优算法集成到本系统,本系统的操作流程简述如下:

1)病变区域检测:用户拍照上传自己的临床图像,系统利用当前检测效果最优的模型进行病变区域检测,并将检测结果呈现给用户。如图三所示的 3 种情况:

①:对于没有检测到任何结果的,系统给出的提示为“这好像不是皮肤”,提供返回首页功能;

②:对于只检测到了正常皮肤的,系统给出的提示为“正常皮肤”,同样是提供返回首页功能。

③:对于检测得到病变区域的,系统将选取置信度最高的病变区域进行显示,并对该病变区域继续进行后续识别。

图三 “AI 知肤宝”中进行病变区域检测结果示例

2)皮肤疾病初级分类:对于步骤 1 检测到的病变区域图像,系统利用当前分类效果最优的模型进行皮肤疾病初级分类。如图四所示,如果分类结果不是皮肤肿瘤类或者大疱性皮肤疾病类,则结束当前流程,否则才继续到步骤 3。

图四 “AI 知肤宝”中进行皮肤疾病初级分类结果示例

3)皮肤疾病次级分类:对于步骤 2 中检测结果为皮肤肿瘤和大疱性皮肤疾病,系统将会进入到对应的次级分类页面。如图五中的①和②分别代表皮肤肿瘤和大疱性疾病的多维度模型识别过程,先通过设计好的病史问题进行临床特征采集,再结合前面检测得到的病变区域图像,即可调用多模态分类模型进行次级分类,并将结果显示在分类结果页面。

图五 “AI 知肤宝”中进行皮肤疾病次级分类结果示例

“AI 知肤宝”操作简单,没有使用门槛,具有相当好的普及性。通过百度飞桨开源深度学习平台的助力,设计的系统诊断耗时较短,且还能保持较高的准确率,可以极大地方便用户自检,解决看病难的问题,提高现有科室诊断工作的效率,对未来的智能医疗发展有着非常重要的意义。

另外,通过对目前市面上的相关同类型产品的调研,基于同类产品目前还存在的皮肤疾病覆盖面不广,准确度不够等问题,提出了“先检测,后分类,先粗分,再细分”的技术思路,结合临床图像和病史问诊的形式构建了一个多维度的皮肤疾病全病种的分类系统,从实际测试效果来看解决了以上问题。

最后,我们拥有很好的医生和医院团队合作基础。本团队与中南大学湘雅医院有密切合作,我们合作完成的多项医学 AI 产品已经在湘雅医院进行临床试验。

我们所构想的本项目的商业模式可以兼容 To B 和 To C,现将我们的落地转化可行性介绍如下:

1)供广大患者进行看病前的自检(To C):患者在就医前可以使用本产品进行自检,初步了解自己所患疾病,指导患者就医的选择(选择自己所患皮肤疾病种类诊断水平更高的医院和医生);

2)供普通群众进行皮肤健康的监测(To C):这里是指没有患病的普通的群众日常生活中也可以使用本产品进行皮肤健康的定期监测与管理,用于了解自己皮肤健康状况,实现皮肤疾病的早诊早治,防患未然;

3)辅助基础地区的医院和医生诊断(To B):辅助基层地区的皮肤科医生进行各类型皮肤疾病的诊断,提升基层地区医生的诊断水平,缓解医生的诊断压力。

AI知肤宝小程序还在持续优化中,尚未上线。

下载安装命令

## CPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle

## GPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu

>> 访问 PaddlePaddle 官网,了解更多相关内容

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
1 评论
0 收藏
0
分享
返回顶部
顶部