【华为云-上云之路】手把手教你利用ModelArts进行肺结节检测

举报
看那个码农 发表于 2020/05/30 17:00:52 2020/05/30
【摘要】 手把手教你利用ModelArts进行肺结节检测
华为云 华为公司倾力打造的云战略品牌,2011年成立,致力于为全球客户提供领先的公有云服务,包含弹性云服务器、云数据库、云安全等云计算服务,软件开发服务,面向企业的大数据和人工智能服务,以及场景化的解决方案。
华为云 用在线的方式将华为30多年在ICT基础设施领域的技术积累和产品解决方案开放给客户,致力于提供稳定可靠、安全可信、可持续创新的云服务,做智能世界的“黑土地”,推进实现“用得起、用得好、用得放心”的普惠AI。华为云作为底座,为华为全栈全场景AI战略提供强大的算力平台和更易用的开发平台。
ModelArts 华为云产品中面向开发者的一站式AI开发平台,为机器学习与深度学习提供海量数据预处理及半自动化标注、大规模分布式Training、自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期AI工作流。
近年来,在体检中发现肺部结节的人数越来越多,经科学研究得知肺结节发生癌变的几率约为40%。在我国,大约有75%的肺癌患者在首次去医院就诊时就已经属于肺癌晚期。由此可见,早期发现和诊断出肺癌对于肺癌患者而言是一件极其紧急的事。而肺结节的检测结果对于病人的后续诊断的影响也是举足轻重的。
为了帮助专家便捷地诊断肺结节, 人工智能通过海量的医学数据、医学影像和病历的学习和研究,可以生成准确的预测模型,可以为疾病提供早期预警。

本实验将介绍如何利用华为云一站式AI开发平台ModelArts使用预置算法Faster_RCNN_ResNet_v1_50基于肺结节病灶数据训练一个肺结节检测模型。并一键将训练得到的模型部署成在线服务,用户使用该在线服务对输入的医疗图片进行预测以达到自动识别上传医疗图片是否含有肺结节的目的。


1

1.1密钥准备

首先需要进入华为云官方网站

https://www.huaweicloud.cn/


点击页面的“控制台”切换至控制台界面,在账号名称的下拉菜单中点击“我的凭证”,进入创建管理访问密钥(AK/SK)的界面。位置如下图所示:



什么是访问密钥?
访问密钥即AK/SK(Access Key ID/Secret Access Key),是您通过开发工具(API、CLI、SDK)访问华为云时的身份凭证,不能登录控制台。系统通过AK识别访问用户的身份,通过SK进行签名验证,通过加密签名验证可以确保请求的机密性、完整性和请求者身份的正确性。

选择 访问密钥”,点击“新增访问密钥

妥善保存系统自动下载的“credentials.csv”文件中的AK(Access Key Id)SK(Secret Access Key)以备后续步骤使用。


进入方式,“控制台”->“服务列表”->“存储”->“对象存储服务”,页面右上角点击“创建桶”按钮进入创建页面。

什么是OBS?
对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,包括:创建、修改、删除桶,上传、下载、删除对象等。
1.3 OBS桶设置
OBS桶设置参数如下:
区域:华北-北京四
桶名称:自定义(注意:此名称会在后续步骤使用)
根据自己的命名习惯,我将此处的桶名称取为
nodule -detect
存储类别:标准存储
桶策略:私有
归档数据直读:关闭
多AZ:关闭

点击"立即创建",完成创建

1.4创建文件夹

点击刚刚创建的桶,进入详情页
左侧栏选择“对象”,点击“新建文件夹”,在弹出的新建窗口中:

文件夹名称:自定义 此名称会在后续步骤中使用)
根据自己的命名,我将此处的文件夹名称取为 nodule-data
点击“确定”完成添加

1 .5 服务授权
由于创建自动学习项目需要使用数据管理功能,在开始使用前,需为数据管理模块获取访问OBS权限。

在ModelArts管理控制台,进入“数据管理->数据集”页面,单击“服务授权

由具备授权的账号同意授权后,即可正常使用:

1.6下载安装并登录OBS Browser+

由于OBS Browser快下线了,所以本次实验关于对象存储服务操作中我们用到的新工具OBS Browser的升级版OBS Browser+

OBS Browser+是一款用于访问和管理对象存储服务(Object Storage Service,OBS)的图形化工具,支持完善的桶管理和对象管理操作。OBS Browser+的图形化界面可以非常方便地让用户在本地对OBS进行管理,例如:创建桶、上传下载文件、浏览文件等。

该工具在华为云主页“开发者->资源工具->开发工具”处

双击点进去后是下面的页面

在开发工具的业务工具处,根据自己电脑配置下载OBS Browser+:

此为下载完成打开后的OBS Browser+工具界面:

填入步骤1.1下载得到的Access Key IdSecret Access Key密钥

即可登录刚刚在华为云云端创建的OBS桶:

此时可以借助OBS Browser+从云端创建的OBS桶中上传和下载文件:

2

2.1准备数据

关于医疗图像肺结节病灶数据的话,这里本文是利用官方肺结节检测数据集

LUng Nodule Analysis 2016(LUNA16)

进行处理后得到的,已经自己人为标注好了300张病灶数据,可以直接导入华为云ModelArts AI开发平台进行使用。

关于整个肺结节检测数据集的话,数据集文件的大小不大,有35M,共300张已标注好肺结节病灶的文件。

关注本微信公众号,后台回复“肺结节”即可一键获取标注好了的300张肺结节检测数据集:

如果你对数据的数量不太满意,可以官网下载肺结节检测数据集LUng Nodule Analysis 2016(LUNA16),根据自己的实验数量需求进行数据标注。

下载链接如下:

http://academictorrents.com/collection/luna-lung-nodule-analysis-16---isbi-2016-challenge

2 .2 数据解压

在本地电脑平台,解压下载的

“data”压缩包。

例如,解压至本地“data”文件夹下

2 .3 数据上传

点击打开刚刚下载安装好的OBS Browser+工具进行对象存储服务:

进入步骤1创建好的OBS桶nodule-data文件夹中:


点击上传”,选择刚才下载的本地美食分类数据集中的文件夹,点击“确定”即可完成上传。


利用OBS Browser+工具将数据上传至华为云云端的速度很快,在华为云云端很快就可以看见刚刚上传的本地电脑的肺结节数据集:

3

3.创建数据集

进入ModelArts管理控制台主页,单击左侧导航栏“数据管理”,再点击数据集

添加步骤1保存的访问密钥文件中的密钥:

在“数据集”栏中单击“创建数据集


在“创建数据集”页面中,填写“数据集名称
dataset-nodule
选择“数据集输入位置”
肺结节数据集OBS路径为
“/nodule-detect/nodule-data/train/”
“数据集输出位置”选择一个空目录如
“/nodule-detect/nodule-data/output/”
标注场景选择物体检测,其它不用填

点击创建即可创建数据集:


4

4.数据标注

点击进刚刚创建好的数据集dataset-nodule:


此页面可以可视化的看见数据集中图片数量,标注和未标注的图片数量,以及标签统计。


此外在此处右上方还可选择创建团队标注任务,可以多人实时进行线上标注,大大提高了标注工作效率。


数据标注,针对图像分类项目,即在已有数据集图像中,标注出不同类别物体,并为其打上标签。标注好的数据用于模型训练。

此处的话,由于上传数据集之前已经对肺结节病灶数据进行了标注,此处对于数据标注的操作可以略过。

如果大家想学习如何使用华为云ModelArts进行数据标注,可查看下面过去的两篇推文文章,具体步骤已经在文章中写出:


【玩转华为云】手把手教你利用ModelArts实现数据集的图像标注


【玩转华为云】手把手教你用Modelarts实现猫狗数据集的智能标注

5

5.一键模型上线
返回数据集列表,选择刚才创建的dataset-nodule数据集右侧的“一键模型上线

点击一键模型上线下方的“任务创建

此时就可以进行物体检测模型的配置:
名称:自定义(这里我定义的是nodule-300-auto
预置算法:选择Faster_RCNN_ResNet_v1_50
我的运行参数如下:
split_spec:train:0.9,eval:0.1
max_epoches:50
其余的运行参数保持默认。
这些运行参数会控制模型的训练过程,有经验的用户可以调节这些运行参数。

经验不足的用户可以直接默认配置:

训练输出位置:选择OBS路径

/nodule-detect/nodule-data/output/

作业日志路径:选择OBS路径

/nodule-detect/nodule-data/log/

(output,log文件夹都是需要自己新建的文件夹)

资源池:公共资源池

类型:GPU

规格:[限时免费] GPU:1 * nvidia-v100-pcie-32gb 32GiB CPU:8 核 64GiB

计算节点:1

部署:公共资源池

计算节点规格:CPU:2 核 8 GiB。如果开通了GPU部署权限,可以尝试GPU部署。

计算节点个数:1。如果是多个计算节点,就是多实例部署,可以提高API的并发数。

填写好参数后,点击“下一步”按钮,确认参数无误:

然后点“提交”按钮

一键模型上线任务包含了三个子任务:

1.首先会在训练作业中创建一个训练作业,会训练得到一个模型

2.然后将训练所得模型导入到模型管理中

3.最后将模型在在线服务中部署为一个在线API服务

我所用的套餐一共使用了11分钟就将300张图片的肺结节病灶数据集训练成功了。


在“训练管理”处可以点击查看刚刚完成的训练作业:



点击作业名称可进入作业,查看作业详情:


日志”页面展示了训练过程日志,可以看到模型在训练过程中打印的日志,比如模型精度训练速度等,同时也可以下载日志文件到本地查看:

6

6.在线服务测试

在“部署上线”的“在线服务”处,点击运行中的在线服务右侧的“预测

在线服务的本质是RESTful API,可以通过HTTP请求访问,在本实验中,我们直接在网页***问在线服务。

进入到测试界面,单击“上传图片,进行检测:

箭头指的地方可看见检测结果,可以说利用ModelArts平台训练出来的肺结节检测模型检测效果是很棒的。(直接看太小的话,可以点开图片放大看)

ModelArts模型测试1
原肺结节检测手动标记病灶图1
ModelArts模型测试2
原肺结节检测手动标记病灶图2
ModelArts模型测试3

原肺结节检测手动标记病灶图3
ModelArts模型 测试 4
原肺结节检测 手动 标记病灶 图4
ModelArts模型 测试 5
原肺结节检测 手动 标记病灶 图5

从最后实验的结果对比图来看,可以说利用ModelArts平台训练出来的肺结节检测模型检测效果是很棒的,虽然存在一定的肺结节病灶假阳性标记,但是这在小样本数据集的人工智能医疗检测中是会出现的情况。毕竟对于人工智能医疗检测模型来说,只用了300张标注图片就能达到这样的效果,真的让人感到惊喜。

下一步的实验规划是进行数据增广,以及网络参数和网络结构的调整。在ModelArts的Notebook开发环境中进行实验,将实验检测的准确度提高,让其真正的成为一个肺结节病灶检测利器。

至此实验全部完成。

最后大家使用的云端资源记得全部删除如对象存储服务创建的OBS桶,文件夹;ModelArts创建的数据集,部署的模型等都需要删除或停用,并停用访问密钥,以免造成不必要的花费。

如果看了这么多,您也想体验一下华为云AI的魅力,可点击下方活动链接,参加已于5月18日开始的

《2020|华为云AI实战营》

与华为云技术专家和全国华为云AI爱好者们一起领略华为云AI魅力,让你轻松Get AI技能,获取丰厚的奖品,一起升级打怪,变成最好的自己。

风里雨里,华为与我,在等你!




【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。