TensorFlow 在医学图像的应用 — 皮肤病自查小程序“体素肤知汇”

审稿人 / 党康,韩金

2020 年是不平凡的一年,在这一年中,全世界的很多地方大批量的出现了新冠肺炎的感染患者,多地出现疫情蔓延的情况,导致人们不能正常的工作,学习和生活。特别是当我们身体不舒服的时候,即使人们不是新冠肺炎的症状,也尽可能的少去医院检查,减少交叉感染的情况。这样的情况就导致了很多人不能及时有效的进行诊断和治疗,甚至很多对医学没有背景常识的人更是对出现的症状产生错误的理解和慌张的情绪,错过了最佳的治疗时间。

皮肤是我们人类身体最大的器官,也是我们人体的第一道防线,很多疾病的一些症状,都会在我们的皮肤上有所展现。例如,一些传染类的皮肤病,在得不到医生及时的帮助时,会快速传染到其他部位,扩大皮损面积,甚至传染给家人朋友,严重危害我们的身体健康。

在这种情况下,为了快速帮助 C 端的患者了解病情,并对患者进行基本的医疗常识的科普,我们借助TensorFlow研发了基于人工智能深度学习的微信小程序—体素肤知汇,患者只需打开微信小程序,对皮损位置进行清晰的拍照,通过人工智能深度学习算法,仅需 1-2 秒钟左右的时间,我们就可以快速的在云端帮助患者进预测,将结果返回给患者,让在疫情期间得不到医生及时帮助的患者快速的了解病情,避免恐慌,防止延误病情错过最佳治疗时间。

在 2020 年疫情期间,我们的模型单日最大调用量超过 20 万次,在线上给近千万人提供帮助和医学建议,体素科技的皮肤全病种自查产品“体素肤知汇”在互联网医疗平台发挥了巨大作用。

模型架构

我们的模型框架已经发表论文在 MICCAI,“Learning Differential Diagnosis of Skin Conditions with Co-occurrence Supervision using Graph Convolutional Networks ”,我们通过 GCN-CNN 联合的方法对深度学习 GCN 网络进行扩展,并专门针对皮肤鉴别诊断问题进行定制化模型搭建。GCN-CNN 网络模型总体框架如图 1 所示。考虑到条件概率的对称性问题,当确定两个条件时,我们使用无向图取代了有向图结构。我们在 GCN 的网络层之间利用频谱图卷积。最后,我们从模型标签和医学专家的标注结果共同证明和评估了我们的网络的结构。

图 1

图 1

  • Learning Differential Diagnosis of Skin Conditions with Co-occurrence Supervision using Graph Convolutional Networks

如表 1 所示,我们的 GCN-CNN 深度学习网络模型在分类问题的各个方面的指标和准确率均胜过其他的竞争对手。

表 1

表 1

同时在表 2 中的多标签分类指标中,我们 GCN-CNN 深度学习网络模型在预测不同的诊断时,也同样更加精准和全面。

表 2

表 2

在我们的 GCN-CNN 网络模型的标签分支中,GCN-2 网络层之后的不同标签节点之前的邻近性可能更加依赖于精确的标签,所以我们将 GCN-0 网络层中的标签节点邻近度和 GCN-2 网络层中的标签节点邻近度之间的差异视为模型学习的标签依赖。如图 2 中结果所示,标签邻近度已减少为与差异组高度相关的孤立簇,例如,溃疡性皮损变化等。此观察结果解释了 GCN-CNN 深度网络模型是如何提高分类准确性的原因,同时也表达了深度学习系统的额外可解释性。

图 2

图 2

基于这样的网络模型基础,我们通过 TensorFlow 快速的搭建了我们的学习模型,在我们的训练数据集上进行了模型的训练,最后我们通过和皮肤科医学专家对一些疾病的标注结果进行了对比和评估,最终验证了我们的网络模型方法的可行性。

我们通过 GCN 网络模型介绍了标签共现方式监管的深度学习,对皮肤状况进行识别和诊断。即使在医学影像领域中常见的不完整标签的数据上进行训练时,我们的方法也大大提高了分类的准确性和完整性。通过对用户拍摄的皮肤问题图像进行测试,我们模型给出的前五名预测结果准确率高达 93.6%。这种深度学习系统有望给皮肤病学知识有限的医学专业人员提供临床决策支持,甚至可以作为直接面向C端消费者的自我诊断工具进行日常使用。

此外,在我们的 GCN-CNN 网络模型的标签分支中,通过邻近标签节点之间的具有可解释性的图形可视化的方式,可以帮助算法模型开发者方便的进行解释和调试。而且,我们的 GCN-CNN 网络模型方法是端到端可训练的,可以适应于任何分类主体问题。此外,GCN 网络模型分支还可以扩展到其他的问题的情况,例如,患者的信息统计和病史,或者在分类任务中利用多模态信息等。

模型部署

在模型部署阶段,我们通过 TensorFlow Serving 框架进行了模型部署,Serving 框架内部提供模型的调用过程,并对外提供 RPC 和 Restful 两种接口模式,极大的方便了我们在工程领域进行模型集成。在模型更新方面,Serving 框架也提供了很好的热部署模式,对同一个模型的多个版本迭代问题也做了非常规范的版本控制管理。

在很多业务场景中,接口的高并发调用是在工程领域经常遇到的问题之一,特别是在深度学习领域中,通过接口调用返回模型预测推理结果的过程更是工程领域主要研究的问题。在 TensorFlow Serving 框架中,提供了生产环境级的并发 Batch 的管理,通过对送往 GPU 的数据的批量并发,将数据一次行进行运算和返回,大大的节约了我们的算力。甚至通过修改 Tensor 等方式优化我们的模型调用过程,这些都帮助我们在工程领域解决高并发问题提供了更好的解决方案。

总结

随着深度学习技术的发展,在人工智能医疗领域,新的突破性模型一直不断涌出。在医学和计算机科学领域新兴的研究成果,能够成功的应用于医疗领域中,并获取不错的业务成果,这一切都离不开 TensorFlow 的功劳。在体素科技医学图像人工智能探索中,TensorFlow 提供了灵活细致的 API,极大地方便了算法模型在工程领域的实际落地,并在医学图像领域提供了强有力的帮助,让精准医疗触手可及。

欢迎大家体验我们的小程序或访问 https://skin-api.voxelcloud.net.cn 查看详情。

中文:TensorFlow 公众号