课程实录:自动驾驶道路场景解析图像分割开发实战
May的山楂木 发布于2021-04 浏览:7134 回复:2
1
收藏

主题:图像分割:自动驾驶道路场景解析图像分割开发实战

 

本次百度EasyDL打造的【零门槛AI开发实训营】聚焦多个产业级经典项目,场景覆盖自动驾驶、智慧农业、视频流车辆行人检测、垃圾分类等实用案例,从AI开发流程入手,讲解不同环节需要关注的技术重点,配合模型开发实战演示,为企业AI应用开发者提供零门槛上手AI项目开发的实用课程!

主持人:各位同学大家晚上好,现在直播课正式开始。EasyDL零门槛AI开发实训营系列课程会持续六次课程,今天是第一节:自动驾驶道路场景解析图像分割开发实战,是用EasyDL的图像分割模型。

课程亮点

零门槛:EasyDL零门槛AI开发平台,无需算法基础即可上手。

重实战:多个产业级AI项目开发实战,课后作业加强巩固,学习更高效。

讲技术:每个项目精讲一个技术点或应用场景,快速获取核心重点知识。

可落地:每节课配合不同部署方式讲解,贯穿企业模型开发应用全流程,配合自己实际需求选择不同的方式进行使用。

开始之前先介绍一下本次系列直播课的福利,每节课完成听课打卡与作业提交,大家可以获赠EasyDL平台的10小时V100高速通道训练时长,大家可以扫描图片上的二维码获取数据集。

现在正式进入本次第一讲:初探自动驾驶场景应用:场景解析模型开发实战。

我是来自百度AI平台研发部高级研发工程师木衫,后面由月半子为大家研发实际流程。

这是今天的课程大纲:

首先进入到数据处理方案的详解,我们之所以选择自动驾驶这个场景,是因为大家都了解AI与我们生活联系越来越紧密,并且不少应用在生活中落地,这次课程我们选择了自动驾驶这个火热研究方向,利用EasyDL平台演示让大家如何进行数据集选择,模型构建,实际部署的操作流程。

因为自动驾驶场景比较复杂,本次课程中我们从数据集中做了挑选,为大家演示开发流程。通过左侧这个数据集产出一个模型以后,我们就会像右侧一样,用实际应用场景图片进行预测,希望能得到右下方预测的效果。

飞桨企业版是为企业级AI开发者打造的,这是AI开发双平台模式,包括面向企业AI应用开发者的EasyDL零门槛平台,支持零代码自动化模型训练,还有面向企业AI算法开发者的BML全功能AI开发平台,提供了不同的建模方式。EasyDL零门槛平台提供了针对不同的方向都有提供比较好的模型,下面我对EasyDL零门槛平台做一个简单介绍。

EasyDL零门槛AI开发平台支持图片、文本、音视频、结构化数据的模型训练。首先,EasyDL平台提供了数据处理模块,包含多种数据服务;在模型训练模块,为提升模型训练效果,提供了百度独家的超大规模预训练模型,包括视觉和语义理解两大预训练模型,并且提供自动超参搜索、自动数据增强等功能;同时,EasyDL为训练好的模型提供评估报告和多种可视化归因分析工具,帮助大家评估模型的好坏;在模型部署方面,提供了公有云、私有化、设备端部署、软硬一体部署

以我们今天展示的实际应用场景为例,如果我们需要训练自动驾驶场景下的车辆分割模型,我们使用EasyDL平台怎么做呢?首先我们可以选择图像分割模型,其次把我们的图片在平台上传标注,然后选择模型进行训练,比如选择图像分割训练以后拿到mAP接近90%的效果,发布为设备端的SDK,然后在Linux系统中进行离线计算,针对不同的任务可能只需要最快15分钟就可以完成模型训练和部署的流程。

让我们回到对AI开发的讲解与介绍。AI开发是一个系统工程,包括模型选择、数据采集、数据处理、参数调优、模型训练、模型评估、模型部署、推理服务过程,每个过程都有一些技术点,本次的EasyDL零门槛AI开发实训营系列课程是针对模型开发中不同环节需要关注和掌握的技术重点难点进行讲解,本节课主要针对数据处理方面和大家来做分享。

首先是模型选择,把模型选择归为数据处理大家会觉得有一些困惑,为什么呢,因为我们在训练一个模型的时候,我们如何使用AI训练模型,首先第一个要决定的就是选取什么模型。以EasyDL平台为例,EasyDL在模型类型上提供了很多选择包括图像分类、物体检测、图像分割,也支持NLP方向的文本分类或文本匹配,或者是机器学习数据预测表格预测,那么什么模型可以有效解决问题呢?这首先需要理解场景,所以我们把这个模型选择放在数据处理的第一步。具体怎么选择模型呢,我们以视觉为例,首先需要了解不同的任务类型能够实际解决的问题,比如我们图像分类适用于对整图区域进行高清预测,比如下图所示,可以为图片打一个标签,可以分类出这是鞋的外观还是鞋底还是鞋垫,我们可以用分类的模型完成任务。物体检测主要适用于图像的矩形区域的标签预测,像质检场景,我们用检测模型就可以完成需求。图像分割主要是适用于图像中像素级的标签预测,比如可以对图像进行背景识别,把背景进行替换,现在短视频领域的背景替换,应用场景可以用分割完成这样的任务。

结合我们本次课程实际操作过程中的任务,自动驾驶场景中的车辆识别,首先我们要明确需要解决的问题是什么,第一我们希望能够识别出汽车、摩托或者行人,第二就是可能会有一些凹行物体或者隧道需要穿行的物体,我们希望判断出这个隧道的轮廓是怎么样的,如果使用物体检测模型,返回的是矩形框,这样就不有利于我们判断隧道的位置了,我们希望拿到隧道的MASK信息,这就与我们期望的输出有一定的差异。因此我们选择图像分割模型,返回就是像素点的信息,结合场景的具体需求进行模型类型判断,在这个自动驾驶场景下,我们使用图像分割模型完成训练任务。

当然了,我们也有一些特殊的情况,比如我们可能会遇到像第一张识别猫咪的情况,我们发现图像分类、物体检测、图像分割都能解决我们的问题,这时选择会比较困难,那需要结合我们任务的实际情况,比如我们对这个任务是不是有准确率的要求,是不是要达到准确率90%或者更高,一般来说模型的复杂度越低,准确率都会下降,复杂度越高准确率更好。第二就是时延的需求,就是模型最终落地是在什么设备呢,这个设备的算力能不能支持我们跑一个比较复杂的模型,或者说设备上面的内存或者预测时长是不是有要求。第三就是数据变化的速度和维护成本,我们这里列出来考虑数据变化以及维护会有一些新增数据,如果再去训练的话会有一些采集、标注、清洗的成本在里面,如果分类任务,对标志信息比较简单,一个图片有一个标签,检测是图片上的物体,标注一个矩形框,分割就需要用(MASK) ,这样的标注就比较复杂,结合我们的任务情况,如果任务本身不是特别复杂,我们建议优先选择低复杂度的模型

当然,也有一些场景下我们推荐选择高复杂模型,比如说像这张图需要识别出这只狗,虽然使用图像分类模型也能够识别出这是一只狗的图片,但识别准确率仅有76.4,我们观察后发现图片背景有很多类似的狗的图片,如果我们用这个模型预测一个只是背景上有狗,可能会把这个图片识别成有狗的标签,这与我们实际的应用场景有一定的区别,这样的情况下我们会建议大家用物理检测模型,之后就会看到它的准确率就得到大幅度提升到91.1%。这是第一种情况,就是背景比较复杂的场景建议使用高复杂模型。第二种场景,需要识别的物体或者关注的物体对于整张图片来说是主体出现不清晰或者较少的情况,比如图像分类我们会把整个图的特征进行识别,用物理检测会关注这个矩形框关注的局部物体特征,有助于我们模型学习,我们希望关注这个物体的主体特征,这也会使准确率从83%提升到96%。

刚刚讲了模型选择,接下来就是数据采集,本次课程我们选择的数据集是开源的数据集,大家可以直接使用,不需要考虑采集的问题。然而实际应用中采集这个环节可能会遇到一些难题。例如采集物理环境的影响:首先采集可能是在工厂、园区、生产线等,或一些特殊的场景会遇到光照、油污等物理环境影响;另外采集设备的选型也是难题,比如用怎样的摄像头进行采集,这个是采集过程中会遇到的难点。EasyDL内置了EasyData智能数据服务平台,不仅提供了免费的数据采集SDK,又跟AI市场硬件边缘设备采集设备进行了联动,设备里内置了采集的SDK,可以免除烦琐的设备选型、调试和开发的过程,同时又通过SDK完成了图片、数据和云平台,使我们数据采集效率从周提升到小时,使用这样的方案具有端云协同、软硬一体的特点。

采集之后就会进入到数据处理的流程,本节课会围绕如何挑选训练数据、如何提升数据质量、如何更好地完成数据标注、如何完成数据扩充、以及如何进一步提升数据利用率这五个方面和大家简单进行分享。

首先是数据划分,相信大家有一些疑惑,训练数据集越多是不是模型效果一定好?第二个,我们已标注数据量越多是不是模型效果一定好?

这两个问题我们都要打一定的问号。如下图所示,比如实际应用场景数据是希望在实际道路里识别出关注的汽车、行人、自行车或者隧道这样的特征,采集到的数据可能是实际车展场景里的图片,用这个数据能不能做训练呢?可以,但是因为应用场景和实际场景有较大的差异,用这个模型做实际应用过程中就会发现模型效果不尽人意,这就是模型的泛化性没有达到业务应用要求。这说明训练数据要用实际业务的数据进行训练,而额外的车展数据只能作为补充数据,因为有一些场景数据来源确实很难,训练数据比较稀缺,这时候我们可以用一些额外数据扩充数据集的类别特征,但是不建议作为主体的训练数据。

第二,标签不均衡的情况,比如上图的右图所示,汽车类别有5张图,自行车有30张图,可想而知模型会过多学习自行车的特征,而对汽车的特征学习比较少,样本少的数据预测效果就会相对比较差,这也就是说要保证不同类别间的平衡。数据集的划分,一般在训练任务里会划分成训练集,验证集,测试集训练集是直接用于训练模型的数据,需要尽量是实际场景数据,限制性场景下可采用或补充仿真数据进行训练。第二是验证集,验证模型的有效性,选择最优的模型测试集就是拿到一个模型真正落地以后会用测试集的数据验证模型实际的效果,也就是我们说的泛化的效果,测试集和测试集不可以掺杂训练数据

下面是我们列出的常见问题,比如训练集和验证集十分相似怎么办,这时候会有怎样的问题,这时候有哪些准备要点,训练集和验证集数据十分相似,会导致模型过于拟合,因为既当裁判又当运动员。验证集和测试集不是实际应用场景数据,这就导致实际场景无法判断,导致模型真正使用出现一些问题。针对前面第一个问题,相似的情况下,我们可以采用EasyDL平台数据清洗,或者上传一个独立的数据集、验证集和测试集避免这样的问题。第三个问题,三类数据集划分是否有一定的比例,一般平台默认是7:2:1,来提供最终的验证指标。

接下来是数据清洗,首先要判断数据是否需要清洗,需要对数据质量有一个衡量的指标。第二就是清洗操作繁多,我们如何选择。EasyDL平台依托EasyData平台,提供对数据多维度的判断报告,包括是否存在大小分布不均匀,一些客观比的分布不均匀,如果有这样的问题可以用EasyData的操作完成对数据集的清洗。比如说像这次实际场景里的自动驾驶数据集,它的采集可能是道路实际场景里,如果采集设备长时间不动,可能一段时间里采集的图片都是相似的或者是区别不大,这样就导致这部分数据过于多,导致其他数据过少,遇到这样的情况可以使用EasyData去重复的功能把相似图片进行去除。比如图片分辨率太高,可以把图片进行裁剪,放小,整个流程都是完全自动化的,通过这个流程可以使人力成本下降接近80%。

还有一个功能,在EasyData清洗里,支持我们调用一些过滤无人体,没有人脸的图片,一般适用于视频场景的监控,清洗的数据页面只包含人体或者人脸的图片,更加能够满足实际场景数据的需求,帮助大家过滤一些干扰的数据集,提升模型的效果。除此之外,针对自然语言处理NLP方向,我们的清洗方案也提供了去除表情、链接,繁体字换成简体字功能,大家如果有数据清洗的需求可以在EasyData平台进行体验使用。

下面就是数据标注。数据标注是大家在处理数据的过程中比较耗时的部分,标注过程中我们也整理出了一些问题和大家进行分享。第一个问题就是错标,像上面这个图,比如想识别长颈鹿,两个物体非常接近,用一个标注框进行标注,可能会导致里面有两个物体,这就出现了错标的情况,实际我们只需要对每只长颈鹿做单独的标注。下面一个问题就是漏标,像本次场景自动驾驶我们要识别汽车,对部分汽车做了标注,我们可以观察一下红框里的两辆车,也是我们希望检测的物体,但是漏标了,这样就当做非汽车学习了,显而易见这是不对的,所以我们要把每辆车进行标注。

下面简单介绍一下遮挡情况下如何进行标注,左边这个图列了四种情况,上一页图里展示的两只长颈鹿,有一个遮挡的问题,这时候我们要怎样完成标注呢,我们有一个原则,设定清晰明确的标注标准,标注尽可能细致,场景覆盖尽量全面。第一个出现了一个错标,下面确实标注了两个矩形框,第三张图是把第一只长颈鹿的左半部分,右半部分没有标注出来,右下角是把长颈鹿左边这部分标注完全包括了下面小长颈鹿的特征,这都会导致模型学习的时候有一些问题,这里我们是推荐第二种标注方式,红色的框是完全标注出了高的长颈鹿的特征,绿色是完全标注了小长颈鹿的完全特征,这种标注尽可能细致,场景的覆盖尽量做到全面。右边这张图是零售商超场景下面举的例子,大家可以观察一下,像第一张图,它是物体的侧面图,虽然是标注没有遮挡,标注部分有70%,但是对我们数据学习没有得到明显特征,既然这样的话我们可以不把它作为标注。第二种情况,它在前面虽然有一些遮挡,但是上部分露出的部分超过了70%,并且也具备了明显特征的标注,这时候我们就把露出的部分进行标注出来。总体下来,标注过程要不错不漏才能完成比较好

谈到标注大家都会觉得选择不同的模型,分类还好,分类就选择一个标签,像检测、分割就要标注这个矩形框,分割要对图完成MASK标注,标注种类就很复杂,标注工具是否足够应用呢?大家不用担心,我们EasyDL用EasyData平台为大家提供了多种标注模板,即使没有算法基础的同学也能够简单地进行上手。第二个问题,标注工作量大如何降低?我们提供了多人标注,可以把整个标注任务通过团队或者多角色的方式把任务进行划分,每个同学可能会关注他分配的任务,有管理员审核员对标注结果进行审核和统一管理,提升大家的标注效率。除此之外我们也提供了智能标注工具,在后面智能标注这块会给大家做详细介绍。

在标注过程中,像EasyDL平台在标注过程中提供了多种标注工具,像图像分割在后面实际演示过程中,月半子老师会为大家实际演示如何标注。标注工具支持了多边形、圆、直线、刷子、橡皮擦。标注时提供友好的标注体验,包括实时展示,全屏标注,灵活缩放,相信大家用我们的平台会获得很好的标注的体验。

 

除此之外,我们平台也支持已经标注的数据上传,比如我这个数据集已经完成了标注,就想把数据上传到平台,不想走标注,也是OK的,以我们这次场景为例,已标注数据的格式是图片名称+同名的json文件,文件里是对文件长度和宽度说明,每一个标注框外围polygoh外围轮廓点的结合。

刚刚讲标注的问题时候提到智能标注,智能标注是解决大量的数据标注困难的问题,目前平台支持物体检测,图像分割、文本分类3类任务场景智能标注,我们如何使用呢,简单介绍一下原理。首先我们需要标注少量的数据并启动智能标注,标注过程中会经过迭代训练,得到一个模型,用这个模型对未标注数据进行预测,预测的结果会有一套算法算出一个难例,我们把图片进行人工校验和确认,难例还可以进行第二次迭代,再用之前的模型进行迭代训练,训练之后再去挖掘这样的难例,经过两到三次迭代过程就会达到比较好的模型,这时候可以完成对未标注数据一键确认的过程。经过智能标注Hard sample主动学习挖掘算法,针对不同的任务进行针对性适配,达到同样模型效果指标的数据标注量减少70%。右边这个图是使用智能标注应用的实际场景,面包自助结算,停机坪飞机停靠检测,汽车部件识别,所以用智能标注可以解决标注的问题,大幅度提升标注的效率,减少标注的成本。

最后是数据扩充,其实我们之前调研发现,66%公司在数据集中都会出现偏差或者错误,之前我们提到数据清洗,可以对数据进行去重去模糊增强,我们如何扩充呢,比如我们用数据合成的方法,像单品图更新非常快,在实际场景里没有看到这个SKU,新的SKU就出来了,针对这种情况我们用合成和增强的方法,解决大家模拟SKU在实际场景的图片,使大家的数据需求量下降90%,类似的方案也会上线在EasyData平台,供不同的任务使用,扩充这样的数据集,减少每个任务需要的数据量。

最后,比如我们数据标注、清洗、扩充好了,我们拿到一个模型,在实际使用过程中怎样提升数据的利用率,EasyDL支持数据回流功能,我们对于公有云,在线推理的API实时服务,我们会预测结果进行存储,数据整合,数据校验筛选,数据标注上传,进行自动化流程,减轻人工的操作,模型优化过程中,主要用于迭代模型的优化,减轻人工操作接近75%,数据处理量上升80%

接下来就会进入实战的阶段过程,有请月半子老师为大家演示如何使用EasyDL平台打造场景解析的模型。

 

月半子:大家好,很高兴在直播间和大家相遇,我后面介绍的主题是带大家实操演练一下如何使用EasyDL平台,以及EasyDL平台到底怎么Easy DeepLearning的。

首先简单介绍一下,包括这几个方面,和我们平常使用创建AI模型一样,比如我们先训练一个模型,使用一个模型,一般都是这样,为什么训练,先要有模型,还要有数据对不对。接下来我就带这个问题和大家一起使用这个平台。平台的入口在哪里呢,因为这次训练时间有点久,不可能带着大家一起标注数据,所以我就录了一个屏。首先进入图像分割,从操作台进去,也可以从大分类进去。这是我自己账号登录的界面,但是还没有创建模型,左边有一些介绍,大家对这个整体有一个了解,包含了模型中心、DATA中心和部署中心,我们还有一个主题是采用纯离线的部署方式,就是可以部署到自己的服务器,很方便。

我们先创建一个模型,因为是Apollo数据,我们取一个名字,如果是个人比较简单,公司复杂一点,我填一下。行业比较多,大家根据自己实际情况进行挑选,我选智能交通,功能描述可以写的详细一点。就这么简单几步就可以进行模型创建,点击下一步,看看接下来会发生什么,它告诉我们,你没有模型,需要先上传模型才能训练。那我们先创建一个模型数据集,创建数据集以后才能进行训练,点击创建,数据集是Apollo数据集,图像分割。数据集创建好以后,我介绍一下这个数据集,因为可能有些东西没有做过自动驾驶这方面,我们采用的是Apollo数据集,界面比较简单,介绍一下数据集的来源,这是百度提供的像素级别标签的数据集,这个数据集贡献出来也很不容易,让我标这个数据肯定会崩溃的,这里还有一些Class Definitions,你需要到首页关注一下,不然放在图品上发现是一堆的数字,大家很难理解。

然后到下载的界面,我建议大家找一个大一点的数据集,因为图片分辨率很高,数据集很大,有一万七千张图片,考虑到时间和效果的问题,我们没有全部下载下来,这样对我们训练成本很高,我们暂时只下载一部分数据集,大家如果想用这个数据集可以选一个服务器大一点的,网络好一点的。后面我有一部分给大家展示一下下载文件的目录,数据集概览情况就是这样,如果大家有兴趣可以自己下载进行训练,不过这里的数据已经标注过了。

然后可以把我们的数据导入到这里,导入到EasyDL平台,有两个导入方向,一个有标注,一个无标注,我们可以支持有标注的,标签有两种格式,一种是coco模式,我们就采用这个,如果不了解可以下载一个标注事例,大家看一下,如果还不懂可以在网上了解一下。我们选择这个格式以后点击上传压缩包,这里有一些上传的要求大家需要关注一下,不然平台可能会认为你这个图片并没有标注,大家还是要关注一下,包括图片尺寸。我准备了一个ZIP,这个比较小,建议大家分批上传,Apollo数据一碗七千张,一起打包上传对网络又是一个考验。上传好以后我们可以点击确认返回,可以看到就变成正在导入状态了,比如说数据需要自己读到内存,自己标注信息,包括后面支持预览,我们需要等待一会,这时候大家也可以熟悉一下这个界面。因为上传数据就70张,上传成功以后显示了标注百分之百,我们看一下这个数据。我们看看到底长什么样,这个数据集很大,平台加载也是耗了一点时间,这个图片有三千多的像素,非常大,这个数据集真的是已经标注到非常极致的状态了,我们肉眼很难发现的图片都标注好了,如果你还不满意还可以点击继续标注,看一下类别,coco的数据集是有影射的,这里可以看到一个数据集,这个数据集质量挺高的,所以训练对模型也是比较大的考验。

一般切断我们都是用没有标注的数据,没关系,并不是说这个只能导入有标签的数据,我们还可以多次导入,我们选择导入方式选择无标注的状态,图片也可以,图片压缩包也可以,我们上传图片吧,它有一些限制,这个还好,告诉我会去重,这里说只能上传100张。好,还有一些基本的限制,这里我们就不看了,这里给大家看一下我下载的数据集,这个有标签,这是实际拍的图片,有两个摄像头,摄像机5、摄像机6。101个,点击上传,告诉我有一个已经超了,那就不上传了。图片有点像,是不是,这个图片估计视频帧格式抽出来的,所以比较连续,我拉的时候也比较连续,图片上传时候有一些连续,没关系,这并不影响我们训练,因为我们训练关注的是样本总量和样本的均衡程度。100个图片上传好,点击确认,导入一会,这个导入比较快,因为没有标签,不需要和你的标签进行核验,可以看出来导入成功。

我今天说的这些操作,其实我们都有完成的使用文档可以看到的,比如月半子老师你说一遍我记不住怎么办,我们可以到详细说明书可以看到,时间原因我不能把每个细节都展示一下,大家有兴趣可以扩展一下,今天就是抛砖引玉,先给大家介绍一部分信息。

导入完数据以后就需要标注,没办法,我上传的是无标注数据,这是躲不了的,我给大家演示一下,但是我标的比较慢,不会让大家看我把全部图片标完的。这里已经分了有无标签的数据,我们就开始标一个,我选择的是多边形,大家也可以用刷子、圆都可以,我手有点慢,大家忍耐一下。选择这个之后,点击标签,右边一个数字,这就可以快速标签了,图片里的数据能标的尽量都标上,刚才木衫老师说了。

接下来我介绍一下木衫老师说的自动标注,我们随便提交一个,它会以任务的方式展示,处于正在运行的过程中,我们看一下进度,这跟木衫老师说的一样,有一个难例确认的过程,它这个模型确实不知道自己做的对不对,所以需要有一个难例确认的过程,我们可以了解一下智能标注,给大家进行详细介绍一下。自定义模型就是你训练一个模型,用它再标注新的数据,恭喜你就走向了正循环,然后我们等一等,看看进度怎么样。难例确认已经走到这边了,我们继续看一下状态,无标注信息90%了,已经替我标注了10张,我们看一下这个图片里的数据,可以看到中间这个小车标的还可以,我放大给大家看看,旁边共享单车标的不是特别好,这个车还可以,共享单车这部分跟背景比较像了,没有识别出来,这时候我们就自己手动划一下,不好意思,我这个框有点大,标的不太好,反正我这个数据集也是下载有标签的。大家标注好以后点击一下右边这个东西,就可以对它进行标注。所以总的来说,这个标注平台还是替大家做了一部分工作。

接下来我把所有我标注的数据都上传上来了,为了给大家演示训练嘛。这里点服务器,默认,缩放一下比例,1600×1400还是挺大的图片。选一下我加入训练的数据集,一个是汽车,一个是摩托车,本期目的还是入门,所以我就先开始训练了,训练过程比较久。我刚把自己手机号填上去了,它会告诉我什么时候模型训练好,我就不用死守在这里了。这里可以看到训练完成了,看一下训练效果,mAP是这么多,大家注意这里,展现出错误识别的图片是什么样的,有两误识别和漏识别,这应该是标签的问题,它这边应该是正确的。摩托车,200多张数据集只有一张图片没有识别,准确率接近了100%,这个是漏识别,这个图片确实有点难度的。

好,模型训练完了,训练过程比较简单,我们就可以点击申请发布了。因为是本地部署,选择版本一个,点击发布,无端SDK部署,我们选择一个SDK,点击下一步,这里又点一些信息,这里给大家快进了。提交以后我们会进行初步审核,觉得你这个模型可以很快会进行发布,只需要等一会就可以发布了。这是我前天发布的,因为我怕直播的时候来不及,然后点击下载,下载就变成黑的,我刚把模型包下载下来了,一会给大家看是什么东西。这时候可以申请序列号,我们有一个代码里有一个填写序列号的部分,只要第一次激活后面就可以离线使用了。这里进入申请序列号界面,每个人可以新增几个测试序列号,比如一个序列号是一个月吧,它问我有几台设备,我就一台服务器,写一,点击确认。序列号立刻生成出来,这是我自己的个人账号。

这时候我下载好了,就到本地看一下下载的是什么东西,不好意思,这个图片推流会把视频截成1080的,目录架构没有变化的,这里有四个子文件夹,上传过程我没有给大家演示,这里应该是进入服务器了,视频流推出来了,上传了这个包和几个文件。看一下服务器的基本配置,X86Linux系统就可以,PIP版本,看一下pythna版本,看一下已有的包,大家不用担心,这些包都是刚才文件依赖的,正常情况下使用PRP,直接安装这个包,因为我这里装了,很快就有了。看一下是不是真的有了,这里已经有SDK了,在本地服务器已经部署好了。建议大家有一个可视化界面,这是我上传的文件夹,一会看图片效果比较直观一点。看一下DEMO文件,这是模型的目录,这个地方需要填写序列号,大家只想像我一样测试一样,这里是代码里唯一需要更改的地方,其他地方都不用更改。填一下序列号,还记得怎么生成的吧,这里填写一下,然后回到目录里试运行一下,填写一下模型目录地址,再选一个图片,我选一个4开头的吧,图片选好就开始运行,看得出来已经正常运行了,缩放是1400×1600,不需要大家写代码也可以搞定,这里可以进行resize,它要保证一定的比例。因为我是用CPU跑的,大家要稍等一会。这边抓到了几个目标结果,所以把结果的执行度都打印出来了,这个运行时间有点久,第一次有认证的过程,后面会快一点,我的服务器确实也不太好嘛。目录文件里多了一个文件,我们去切换到可视化界面里,看一下生成的文件长什么样。

效果出来了,还算勉强吧,因为我在数据集里进行了过滤,刚才木衫老师说了,主体不超过70%不建议当成一个目标训练,这样可能会对模型产生负面效果,超过70%的部分都已经是正确识别出来了,这个目前算是勉强及格。还是有很多优化空间,大家可以使用平台或者自己训练一下试一试,看看能不能做到比我做的好。回头看一下代码,因为我有一个机器,也没有显示了多个机器的部分。到这里SDK部署就告一段落了,回过头来想一想,整个过程我给大家演示了几个功能,比如创建模型,它告诉我们需要先有数据集,我们又上传了数据集,我演示了两种,有标签和无标签的,有标签最好,没有标签就辛苦一点,手动或者请小伙伴一起多人标注,可以多标一个,用套娃工具智能标注,标注完以后我训练了一下,我训练的时候就要考虑好,比如说是想部署在云端服务器还是部署在本地,这时候训练配置有一些差距,因为我们EasyDL,本着替开发者减轻负担的目的,这部分就没有给大家展示出来。训练好以后,我给大家演示一下怎么下载我们的包,之后进行申请序列号,之后进行下载,上传服务器,在服务器里直接把相关包安装好了,然后就把图片上传到服务器,给大家测试好以后给大家演示一遍,整个流程大概就这样子。

如果大家对我现在的演示和之前木衫讲的有什么问题,大家可以集中提出来,我们现在进入QA环节。

 

Q:清洗功能是训练什么?这个请木衫老师进行专业解答。

A:非常感谢月半子老师从数据到部署,带大家体验如何使用EasyDL平台构建我们这次实际使用案例的任务。刚有同学问数据清洗是怎么做的,这是我们在EasyData平台上面为大家提供的功能,它是通过大家使用过程中设置相似度,刚在休息的时候我也观察到有同学说到月半子老师上传的数据有很多相似的图片,有小伙伴说清洗以后是不是一张图就没有了,这个跟相似度阈值有关系的,阈值调的越高,比如保留相似度不超过百分之多少的图片就会多,这个是跟阈值相关的。

 

Q:数据从哪下载?

A:在PPT上面的右上角,大家扫描这个二维码就可以把数据拿下来。我再重复说一下,因为群里有一些新的小伙伴刚进来,本次课程大家可以扫描右上角数据集,可以拿到和月半子老师使用同样的数据集,用我们EasyDL平台训练,然后扫描右下方二维码进行提交,然后可得获得赠送100小时的V100训练时长。

Q:可以做医学细胞标记吗?

A:这个实际是可以的,我们也有类似的客户解决这样的问题,但是我可能不太了解这个小伙伴实际的场景是什么,像细胞的检测,比如红细胞白细胞检测,用视觉解决这个问题应该不是一个很难的问题,也是很多同学都做过类似的问题,都是可以实现的。

 

Q:训练的准确度一般是多少?

A:这个是衡量模型效果的一个指标,这跟每个模型的效果,比我们专业来讲,比如分割有NLP,很难讲一个指标达到多少就能够应用,这个会跟实际的场景相关,我们做这个指标是在评估报告里用数据集做泛化性衡量的指标,具体的效果需要在落地之后进行使用。

 

Q:标注只能自己手动标吗?

A:这个不是,第一个方面,EasyDL平台是支持大家上传已标注数据。第二,我们支持多人标注,就是刚才第一部分讲,任务划分为多个团队标注。第三,就是智能标注,它先训练一个模型,用这个模型预测未标注数据。

 

Q:确认标注数据需要一张张确认吗?

A:不需要的,难例是用一定的比值固定的比较,不是每一张图都去确认,大家只要看一下有没有明显的错误进行修正,就不需要每张图一一确认,我们也支持一键确认的按钮供大家选择。

 

Q:离线环境能用SDK吗?

A:可以,我们为什么支持SDK,考虑到很多用户没有公网的环境,我们第一次注册时候需要联网,后面就不需要联网了,就可以直接使用。

 

Q:多人标注是谁标注?

A:我们把标注任务由管理员划分,划分为公司的朋友,把一个作业划分成若干小作业,我们设立审核员,管理员管理整个标注任务就可以了。

 

Q:标注是按照简单的大致标注还是按照物体?

A:可能两个场景,第一个物理检测,标注的矩形框里的遮挡问题,我刚才简单介绍了一下,尽量把遮挡的部分明显特征标注出来,分割是像素级的标注,需要我们把物体的外围轮廓标注出来,我们平台就会闭环把轮廓区域标注出来,完成这样的标注效果,标注的时候希望大家尽量标注准确,物体实际情况是什么样的就标注成什么样,不重不漏,达到比较好的标注效果。

 

Q:能分割车以外的人吗?

A:可以的。刚刚月半子老师演示了识别了汽车或者是自行车,只要把人作为标签加进去,然后再去训练,它也是可以进行训练学习的。

 

Q:可以在平台上进行自己的分割任务吗?

A:完全可以,大家只要把自己的数据集上传上来用我们的平台,就可以得到自己学习自己特征的分割的模型,都是可以的。访问EasyDL:https://ai.baidu.com/easydl/

 

Q:作业里的模型精度太低有问题吗?

A:建议越高越好,后面的课程会讲模型优化类似的功能,然后让效果不断提升,也是体验的一个过程。

 

Q:人有胖瘦,要区分不同的类别?

A:对于自动驾驶的场景我理解是不太需要,如果你的场景里就是需要区分身材特点明显的话,可能就是另外一个任务了。

 

Q:字符识别可以吗?

A:字符识别一般使用业内用的OCR,这个EasyDL也已经支持定制OCR模型了。

 

Q:可以识别红绿灯吗?

A:如果你只是想检测灯是红灯还是绿灯,用图像分类或物体检测都可以做。

 

【今晚课程预告】

EasyDL零门槛AI开发实训营,今晚8点继续开讲!

零门槛无需AI开发经验,研发带你上手产业级经典项目!

 

【从小麦检测计数模型突破农业AI应用】

1. 小麦检测模型开发必备知识:物体检测任务综述

2. 工程师技巧分享:如何提升小麦检测模型精度

3. 实操演练:教你从训练到部署打造高精度小麦检测与计数模型

 

立即报名:https://iwenjuan.baidu.com/?code=n1rb4u

收藏
点赞
1
个赞
共2条回复 最后由186******52回复于2022-07
#3陈工126回复于2021-05

提交作业

0
#2陈工126回复于2021-05

看完一遍

0
TOP
切换版块