HI终于等到你,如果你正在尝试使用百度EasyDL训练模型,可能正遇到这样的问题:
想要自动检测零件外观上是否有裂痕、缺口;
想要自动检查工人是否正确佩戴安全帽、穿工作服、是否在禁区抽烟;
想要自动统计血液化验中的红细胞、白细胞分别有多少;
想要自动识别危险的大型机车、船只、识别出水的水泄口等等;
请选择模型进行训练,开始之前请先花5分钟,认真阅读下面的十问十答,这将对提高模型准确率有无比重要的帮助!
一问,我的需求适合选择物体检测模型训练吗?
如果要训练一个模型,希望它能够帮你识别一张图片中,比如有几个物体A,有几个物体B,或者图片中是否有多种物体多种行为,请选择物体检测进行训练。还有一种情况,如果你要识别的物体在图片中很小,也很适合选用物体检测模型,
例如:小明要训练一个模型能够识别工厂内是否有违规行为,没有佩戴安全帽、禁区抽烟等。
如果小明的检查不需要区分违规种类,只需要及时发现违规行为,则选择物体检测,把不同种类违规图片设置在一个标签来训练即可。
如果小明的检查需要区分违规种类,即需要识别哪些是未佩戴安全帽违规(A类别),哪些是禁区抽烟违规(B类别),则选择物体检测模型,分别将两种违规图片设置成两个标签来训练。
二问,我需要准备哪些数据?
使用EasyDL训练AI模型需要准备两份数据:训练数据和测试数据(非训练数据哦),两份数据需要是在相同环境下采集的。
例如:小明要训练一个地板虫眼识别模型,检测出地板中是否有腐朽、虫眼、裂缝三种瑕疵·。则小明需要准备每种瑕疵覆盖至少张地板图片用于模型训练(每个地板图片可以覆盖一种或多种瑕疵),以及一批非包含在训练集的测试数据。
三问,我的数据要从哪里获取?
不论是训练数据还是校验数据,都一定要尽量使用真实场景下的图片。在真实场景或尽量还原、模拟真实场景环境,采集图片作为训练和校验数据。
例如:小明要训练一个红细胞计数模型,辅助本院医生进行化验结果诊断。医院化验时,临床使用的显微镜下看到的化验图片来训练和校验。不可以用网络下载的猫猫狗狗图片来训练,也不可以用网络下载的各种环境下的红细胞图片来训练模型。训练数据与真实场景数据越一致,效果越好呢。
四问,我要准备多少数据?
真实应用场景视角下,每种待检测目标准备至少张训练图片,可以根据真实业务场景中可能遇到被检测目标可能出现的情况,准备包含不同角度、不同侧面、不同光线检测目标,并覆盖应用场景下所有拍摄位置。
例如:小明要训练一个吊车识别模型,在施工现场摄像头采集的图片中自动识别,辅助检查人员24小时巡查,及时规避高压线旁有吊车的生产风险。则小明需要用施工现场每个摄像头采集的图片来训练,训练图片需要至少张包含吊车的图片,图片中需要分别包含吊车的正面、侧面、背面、斜侧面、太阳光下、月光下、日光灯下、夕阳下、黄色车身、黑色车身等等状态。如果追求更好的效果,建议最好每种状态准备张训练图片。
注意:
l如果现场新增摄像头,或要更换摆放位置,都需要将新位置的同样内容图片补充进来,重新训练。
l如果不需要在夜间识别,则可以不训练月光下的图片。
l如果实际使用画面中可能单独存在其他干扰车辆,请务必对干扰车辆,作为负样本单独训练识别模型,图片数量至少张。如果干扰车辆和吊车始终出现在同一画面,则无需单独训练干扰车辆。负样本是相对识别物体来说的非识别物体,比如在该场景下,吊车算作待识别物体,而人、房子则属于非识别物体负样本范畴。
五问,我的图片要多清晰才能训练?
图片以肉眼能看清为标准,一般摄像头采集图片均可满足训练,图片文件在4兆以内。如遇特殊情况,待检测物体在画面中的面积占比过小(肉眼无法看清),或过大(超过4兆),需要图片处理放大到肉眼可见,或图片切割特殊处理后再训练。
例如:小明要训练一个汽车喷油器阀座的外观缺口瑕疵检测模型,辅助人工分拣。由于喷油器尺寸以毫米为单位,在图片中瑕疵就更加微小,且瑕疵在图片中的面积过小,可能影响识别效果,则需要小明将图片进行放大后进行训练和识别。
又或者小明要训练无人机采集的病虫害识别模型,辅助人工及时发现农作物病害。由于无人机采集的图片文件很大,则需要小明将图片压缩或裁切后,再进行训练和识别。
六问,我要怎么标注图片?
训练物体检测模型需要对训练图片进行标注,将待检测物体目标框选出来用于训练。目前EasyDL支持在线多人标注,或API上传已标注图片用于训练(数据集管理中点击“数据上传API”)。
例如:小明要训练一个SUV汽车识别模型,用于风光论坛加精帖审核。则小明需要上传所有包含SUV汽车的风光图片,并且标注框选出SUV汽车用于学习,但SUV车型非常多,小明可以将EasyDL的数据集进行拆分,每个数据集都可以共享给1个小伙伴同时标注,训练时只需要选择多个数据集即可。或者将历史用其他标注工具,已经标注好SUV的风光图片直接API上传到平台即可。注意,一定要把图片里面出现的每个待检测目标都标出来哦。
七问,我的模型要训练多久?
EasyDL物体检测模型选择不同算法,训练时间稍有不同。一般情况下,数据量越多,训练时间也越长。高精度算法训练时间2小时以上,普通算法训练时间更短、服务性能更佳,但精度没有那么高。目前页面上会显示训练进度,当数据量很大的情况下,甚至可能出现训练1-2天的情况,请耐心等待训练完成。
例如:小明训练识别页面上图标(icon)的模型,辅助视觉障碍人群了解页面信息。由于页面图标种类非常多,选择高精度算法对上千种图标的百万张图片进行训练,训练时间需要超过2个小时。
八问,怎么知道我的模型效果好不好?
训练完模型后,首先可以在模型校验功能启动服务,通过模型校验实际上传图片来进行校验。同时请认真阅读模型评估报告来查看结果。报告中会详细解读模型效果、优化建议、模型精准率、召回率、F1-score建议阈值、识别错误的badcase图片文件等。
注意:如果训练数据非常少的情况下,如只有几十张图片,那么模型评估效果的结果仅可作为参考,以实际测试为准。
例如:小明训练一个鸟类识别模型,可以帮助网友实时识别鸟的品种,获得相应的百科知识。则训练后,小明会得到一份鸟类识别模型评估报告,报告中重要的指标需要看:
评估结果:鸟类识别模型V3整体效果欠佳,建议针对识别错误的图片示例继续优化模型效果。
精准度:通俗的理解为该模型能识别鸟的准确率。
F1-score建议阈值:模型效果最优状态的调节参数。
识别错误的badcase图片:不一定是指标注错误哦,需要把所有badcase整体来看,找到错误的规律,再有针对性的优化。
九问,我的模型效果不好怎么办?
按照推荐阈值来看,模型效果还是不理想?推荐几个办法来优化模型:
方法一:按照报告中的建议阈值,实际调用模型确认效果是否理想。建议阈值0.5,则调用时置信度调整到50%。注意,不要只看模型评估报告的数值,一定要使用接口或者模型校验功能进行大批量图片充分测试,才能准确判断模型效果是否满意。
方法二:整理识别错误的badcase图片,按照2-6问的内容筛查原因,总结出错图片的规律,按照上面的建议对应调整。
常见的识别错误的图片规律包括:
a.实际检测的光线环境与训练集图片环境发生了较大的变化,如白天的图片训,晚上的图片测;
b.实际被检测的目标角度与训练集图片环境不符合,如仰视视角、俯视视角的测试图片出现的角度在训练集中未覆盖。
c.实际被检测的目标清晰度与训练集图片不符合,如训练集图片很清晰,实际测试的图片很模糊。
方法三:如果没有找到明显的识别出错规律,先检查是否在数据标注犯了常见错误:一张图片里面没有标出所有的被检测目标,比如一个检测鸡蛋的模型,只标注了部分
方法四:如果没有找到准确的出错规律,请在物体检测操作界面,数据中心中开启。则系统自动筛选置信度低的图片,供您人工二次判断是否识别错误,并将错误图片一键导入到训练集,自动重新标注后持续进行模型优化。
方法五:如果以上方法都不能解决效果不好的问题,请打包识别错误图片,按照文末方式联系我们。
例如:小明训练的鸟类识别模型精准度47%,希望优化模型效果,则首先根据评估报告中的提示,处理badcase图片,或在数据集管理中,点击“云服务调用数据”,勾选即可实现数据闭环持续优化。效果显著!
十问,我的模型如何在生产环境下使用?
不论在轻量级的APP中使用、还是常见的PC电脑软件中使用,或是在硬件终端本地运行,都可以轻松实现模型部署。EasyDL的模型支持云端API调用和无网络的离线SDK调用。离线SDK支持iOS、安卓、Windows、Linux操作系统,支持demo测试。离线SDK模型需要在模型训练时勾选即可。
例如:小明训练云状识别模型,识别天空中云彩的形状,与云量、湿度等指标一起辅助进行气候观测。但瞬息万变的云状和局域网的限制,使小明不能在云端调用模型结果。则小明将模型离线SDK文件包集成到Linux系统的硬件摄像头中,实现在本地采集后实时识别。(百度大脑还提供自研的适配性极高的智能硬件套件EdgeBoard,欢迎咨询)