BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记

最近一阵子显卡价格还是太高,单租个服务器挂模型也挺贵的,看BML托管推理服务器价格还行,先记录一下目标检测任务的全流程使用步骤,留着备用。

BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记

开发流程

  1. 新建一个项目,用于关联数据集和模型
  2. 导入昆虫数据集
  3. 在项目中新建一个训练任务,并使用刚刚导入的昆虫数据集
  4. 人工调参/自动超参,对模型进行训练
  5. 测试模型结果,预测几组图像数据
  6. 模型发布后在自己业务中调用公有云API

Step 1 新建一个项目

首先打开BML管理页面,在这个界面中可以看到当前支持的深度学习任务类型,也可在左侧目录选择不同深度学习方向。
BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记

因为要做的是目标检测,所以只需要在左侧目录中找到“计算机视觉模型”,点击“物体检测”,写个名称加段描述就能新建一个项目了。
BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记

Step2 导入数据集

导入数据集这步比我想象中要简单的多,在创建完项目后就能很快找到创建数据集的按钮。这里我选择的是“物体检测”和“矩形框标注”,也可根据自身数据集情况灵活选择。
BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记
BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记本次使用的是林大那边的昆虫数据集,由于这组数据集中标签文件是xml拓展名,所以推测数据大概率是VOC的格式,故此处尝试选择“xml(特指VOC)”标注格式。
当然,如果要自己制作数据集的话,还是更建议用开源的LabelMe或者支持自动标注的EasyData来做,格式也推荐保存json形式,这样更加通用。
BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记等了几分钟就导入成功啦~
BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记

Step3 检查导入的数据

对数据集质量不放心的话,还是检查一下数据集质量更稳妥一些。好在BML里面可以在线可视化数据集标注,这点个人感觉还是挺舒服的,省得本地写代码了(懒)
BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记

Step4 在训练任务中添加数据

一般数据集是需要划分为“训练集”、“(交叉)验证集”、“测试集”三部分,其中训练集可以衡量模型的拟合能力,交叉验证集和测试集则为模型的泛化能力,划分后模型是否过拟合也就非常清楚了。
虽然验证集和测试集均能反映模型的泛化能力,但由于训练中会对验证集进行评估,最终将保存验证集上表现最优性能的模型。测试集则是在“最佳性能模型”之上再进行一轮评估,最终的评估效果可以降低验证集的偶然性,得到更加客观的模型分数。
当然,如果数据量不是很大的情况下也可不划分测试集,对验证集进行采样同样可以降低一定的偶然性。

在这里,我们可以添加训练数据集,也可自行划分验证集和测试集,数据量10k以下的话可以考虑训练集:验证集:测试集=6:2:2的比例进行划分,超过10k则可以考虑8:1:1或者更高的训练集比例。
BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记

Step5 选择训练参数

预训练模型这块不说BML,飞桨PaddlePaddle的预训练模型就已经强的离谱了,Cifar100+预训练模型+ResNet18就轻轻松松让测试集上95%准确率了(不加预训练模型是50%左右)。
网络部分比较推荐Yolo系列的,从兼容性上考虑,其端侧硬件兼容性会更好,而且单阶段目标检测速度也不差。
BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记

Step6 开始训练

因为数据量不是很大,这里挑选P4显卡半小时就能训练好了,实测25分钟即可完成训练任务。
BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记

Step7 上传图片进行测试

待训练完成后,回到BML的控制台界面,点击左侧目录的模型管理即可看到刚刚训练好的模型。
BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记这里我们可以点击“校验模型”,上传一张待推理的图像,看看模型结果是否准确。
BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记可以看到整体上效果还是不错的,昆虫都可以被正确识别,接下来再康康总体的情况如何。

BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记mAP达到70%+,整体上来看还是非常不错的,在目标检测任务中mAP超40%基本上就差不多能拿到不错的结果框了。虽然这个指标看起来还不错,但仍有很大的调优空间,过一阵子试一下自动调参和自动数据增强再体验体验。

上一篇:比特币价格调整持续,以太坊被回调,狗狗FIL或迎最佳入场时机?


下一篇:FIL挖矿有风险吗?