[深度学习]如何用EasyDL专业版实现货架层数识别模型优化


EasyDL是基于飞桨框架PaddlePaddle推出的面向企业打造的一站式AI开发平台 , 构建了一套视觉算法框架 , 从数据、模型两方面着手效果优化 , 提供给开发者更多灵活可选的效果优化机制 。 图1是效果优化机制的总体概览 。
【[深度学习]如何用EasyDL专业版实现货架层数识别模型优化】
[深度学习]如何用EasyDL专业版实现货架层数识别模型优化
本文插图
图1. EasyDL专业版效果优化机制
我们以货架挡板检测场景为例 , 说明如何用EasyDL专业版实现模型精度的逐步优化 。
货架挡板检测可以应用于货架层数识别等零售领域 。 这个场景的特点是货架种类多 , 从图2货架挡板检测标注图可以看出 , 标注的高宽比比较极端 , 演示模型的货架挡板检测训练数据集有70张 。
[深度学习]如何用EasyDL专业版实现货架层数识别模型优化
本文插图
图2. 货架挡板检测标注图
首先介绍模型方面的优化机制 。
1)模型级灵活可选 。
EasyDL专业版支持飞桨Master模式 , 内置百度海量数据训练的预训练模型 , 可在少量训练数据上达到更优的训练效果 。 目前上线了Faster R-CNN, YOLO v3, SSD三种检测模型 , 我们对比三种模型在coco2017权威目标检测数据集上的性能 , 从表1可以看出Faster R-CNN和YOLOv3在模型精度上比较有优势 , 但SSD在模型推理速度上非常有优势 。 用户可以根据不同的应用场景去选择不同的模型 。 近期专业版会陆续上线更多性能更加优秀的开源模型和百度自研大规模预训练模型 。
表1. coco2017模型性能对比[1]
我们分别在三个检测模型上训练下货架数据 , 可以看出使用Faster R-CNN训练的效果会比其他两个模型好一些 。 从精度提升角度 , 我们选用Faster R-CNN 。
[深度学习]如何用EasyDL专业版实现货架层数识别模型优化
本文插图
表2. 货架挡板检测模型型优化效果[1]
2)代码级灵活调参
EasyDL专业版提供给用户灵活的代码级调参能力 , 方便有一定深度学习基础的用户对模型进行更细致灵活地定制 。
以Faster R-CNN模型为例 , 用户不仅可以对预设定的系统参数(如模型的训练迭代数(epochs)、模型输入尺寸(input size)、学习率衰减策略(lr decay))等进行调节 , 也可以针对模型的配置代码及参数进行自由定制 。
限于篇幅 , 我们简单对其中的一些参数进行介绍 。
模型输入尺寸(input size): 模型的输入尺寸指的是训练数据实际输入到模型中的尺寸, 一般来说大的输入尺寸有助于模型对小目标的学习 , 但大的输入尺寸会降低模型的推理速度 , 因此该参数的调节要根据实际去选择 。
学习率衰减策略((lr decay): 学习率是模型训练中非常重要的超参数 , 训练初期配置较大学习率 , 训练后期逐步降低学习率可以帮助模型收敛到更优解 。 用户可通过配置lr_decay=True来使用学习率衰减策略 。
Anchor配置参数(aspect_ratios): 基于anchor原理的物体检测模型对于先验的anchor高宽比的选择有一定要求 , 基于数据集特性去调整anchor参数可以让模型更好地学习到定位物体的能力 。
针对货架挡板高宽比较极端的特性 , 我们对代码模板的anchor参数进行调整 。 调整策略可以选用对标注数据聚类等方法 , 我们通过自研的高宽比自适应能力对宽高比进行优化 , 发现特定的aspect_ratios修改如下图3可以很好的适应货架挡板数据集 , 再次训练模型 , 如图4 , Faster R-CNN模型效果从0.812提升到0.87 。 后续高宽比自适应的能力会以可选组件的方式开放给用户 。
[深度学习]如何用EasyDL专业版实现货架层数识别模型优化