1. 花朵目标检测
1.1. 场景背景
目标检测任务在计算机视觉和数字图像处理领域扮演着重要角色,在各行各业也已得到广泛应用,如航空航天、机器人、智能监控等重大行业。精准地从图片中识别出目标所在位置,并准确地将该目标分类,是目标检测任务的核心目的。随着深度学习的主流浪潮,目标检测算法在性能上也得到了较大的提升。本文通过智能钛机器学习平台,提供一种利用深度学习算法快速搭建目标检测模型的使用方法。用户无须编写代码,只要拖动相应的算法组件,便可以在十几分钟的时间内快速上手,解决目标检测场景下的问题。
1.2. 数据集介绍
本案例使用的数据集为从公开数据集中选取的Daisy(菊花)和Sunflower(向日葵)的部分图片,并对其进行手工标注得到的demo数据集。
1.3. 整体流程
工作流整体流程如下:
本场景共包含5个环节,分别是:
- 花朵数据准备(花朵数据的标注信息+花朵数据的图像信息)
- 将数据拆分成训练集、验证集
- 将原始 JPG 图片文件转换成高效的 TFRecord格式文件
- 选择合适的 CNN 网络处理分类任务
1.4. 详细流程
一. 上传数据
本步骤中需要上传两个数据源:花朵数据标注和花朵数据图像。
在智能钛机器学习平台控制台的左侧导航栏选择:【输入】>【数据源】>【COS数据集】,并拖入画布中
设置【COS数据集】参数:
将该组件重命名为:花朵数据标注
填写COS数据路径:(请直接复制输入)
${ai_dataset_lib}/public/YOLOv2/flowers/Annotations
- 请务必关闭“是否检查数据”按钮
在智能钛机器学习平台控制台的左侧导航栏选择:【输入】>【数据源】>【COS数据集】,并拖入画布中
设置该【COS数据集】参数:
将该组件重命名为:花朵数据图像
填写COS数据路径:(请直接复制输入)
${ai_dataset_lib}/public/YOLOv2/flowers/Images
- 请务必关闭“是否检查数据”按钮
二. 切分数据
在模型训练的时候通常会将所有的数据分成三部分, 分别是训练集 training set, 验证集 validation set 和测试集 test set。 训练集用来训练模型, 验证集用于调节超参数,测试集用来整体评估模型的性能。
本文的实验较简单,可只将数据切割成训练集和测试集,比例为 8 : 2( 80% 用于训练, 20% 用于测试)。
在智能钛机器学习平台控制台的左侧导航栏,选择【输入】>【数据转换】>【图像数据切分】,并拖入画布中
将【花朵数据标注】的输出桩连接到【图像数据切分】的输入桩
填写参数, 其余参数均可默认:
- 分类 or 检测任务:Detection
- 验证集比例:0.2
三. 数据格式转换
TFRecord 数据文件是一种将图像数据和标签统一存储的二进制文件,能更好的利用内存,在Tensorflow中快速的复制,移动,读取,存储等。在这一步中,我们将原始 JPG 文件格式转换成高效的TFRecord格式
在智能钛机器学习平台控制台的左侧导航栏,选择【输入】>【数据转换】>【图片格式转换(检测)】
将【图片格式转换(检测)】拖入画布
将 【图像数据切分】 的输出桩,连到 【图片格式转换(检测)】 最左边的输入桩上; 将【花朵数据标注】的输出桩连接到【图片格式转换(检测)】最右边的输入桩上;将【花朵数据图像】的输出桩连接到【图片格式转换(检测)】中间的输入桩上
填写参数, 其余参数均可默认:
- 类别映射文件(手动复制输入):
${ai_dataset_lib}/public/SSD/flowers_label_map.pbtxt
四. 选择RCNN网络
选择合适的 CNN 网络处理分类任务,如此处选择Faster RCNN网络模型
- 在智能钛机器学习平台控制台的左侧导航栏,选择【算法】>【深度学习算法】>【计算机视觉】>【Faster-rcnn】
- 将【Faster-rcnn】拖入画布
- 将【图片格式转换(检测)】左侧输出桩与【Faster-rcnn】左侧输入桩相连,同时将【图片格式转换(检测)】右侧输出桩与【Faster-rcnn】的右侧输入桩相连
填写参数:
配置文件:[点此下载] 将下载后的文件上传至此
标签类别映射(直接复制输入):${ai_dataset_lib}/public/SSD/flowers_label_map.pbtxt
初始模型(直接复制输入):
${ai_dataset_lib}/checkpoints/faster_rcnn/faster_rcnn_resnet50_coco/model.ckpt
类别个数:2
GPUs:1
其余使用默认值
五. 运行调度及训练进度查看
详情请参考 运行工作流。