花朵图像分类

最近更新时间:2020-07-31 15:35:05

案例背景

图像分类是计算机视觉中重要的基本问题,也是目标检测、行为跟踪、图像分割等其他任务的基础。图像分类的应用涵盖交通、安防、医疗、政府、互联网等多种领域,其应用场景包括交通场景识别、人脸检测、智能视频分析、医学图像识别等。

近年来,卷积神经网络(Convolution Neural Network,CNN)在图像识别领域取得了惊人的成绩。CNN 将图像像素的信息作为输入,通过卷积进行特征的提取和抽象,并直接输出图像识别结果,该方法极大程度地保留了图像原始信息,使得端到端的学习方法取得了很好的效果。Inception 是一类特殊而强大的 CNN,它可以在利用密集矩阵的高计算性能的同时,保持网络结果的稀疏性,以提高模型的泛化能力。

本文通过智能钛机器学习平台,利用 Inception 算法搭建花朵图像分类模型。用户无须编写代码,只要拖动相应的组件搭建模型架构,便可以在二十分钟以内快速上手,解决图像分类场景下的实际问题。

数据集介绍

本案例使用的 公开数据集 共包含五类花朵数据:Daisy(菊花)、Dandelion(蒲公英)、Rose(玫瑰)、Sunflower(向日葵)和 Tulip(郁金香),共218MB大小。
数据集抽样展示如下:(各类别下花朵照片示例)。

整体流程

工作流整体流程如下:

本场景共包含4个环节,分别是:

  1. 数据准备:上传训练集和测试集的花朵图像数据。
  2. 数据预处理:利用【分类检测图像转换】将数据拆分成训练集、验证集 ,并将原始 JPG 图片文件转换成高效的 TFRecord 格式文件。
  3. 使用【Inception 图片分类算法】处理分类任务。
  4. 使用【深度学习分类任务评估】评估模型效果。
说明:

  • 工作流搭建过程中若连线有误可通过右键单击删除连线
  • 您可以按需自行配置资源参数,不同资源实例类型对应的价格不同。选择资源时,您可以参看资源参数右上角的计费说明

详细流程

一. 数据准备
本步骤中需要上传两个数据源:花朵图像的训练集和预测集。

  1. 智能钛控制台 的左侧导航栏,选择【输入】>【数据源】>【 COS 数据集】,并拖入画布中,右键单击该组件【 重命名】为:训练集。
  2. 填写训练集 COS 路径地址:${ai_dataset_lib}/demo/cv/flower_photos_trainval

同样的操作上传测试集,测试集路径:${ai_dataset_lib}/demo/cv/flower_photos_predict

注意:

请关闭【是否检查 COS 数据路径存在】

二. 分类检测图像转换
TFRecord 数据文件是一种将图像数据和标签统一存储的二进制文件,能更好的利用内存,在 Tensorflow 中快速的复制、移动、读取、存储等。

智能钛机器学习平台的【分类检测图像转换】组件同时适用于目标检测和图像分类,用户只需在参数配置区选择任务类型和切分比例,就可以实现对图像数据的切分和类型转换。在本次实验中,我们使用该组件将原始 JPG 文件格式转换成高效的 TFRecord 格式,同时将实验数据切割成训练集和验证集,验证集比例为0.2。具体操作如下:

  1. 在智能钛机器学习平台控制台的左侧导航栏,选择【输入】>【数据转换】>【分类检测图像转换】,并拖入画布
  2. 将 【训练集】 的输出桩,连到 【分类检测图像转换】 左边的输入桩上,数据 IO 路径已根据连线自动生成。
  3. 单击【分类检测图像转换】,在右侧弹框中设置相关算法参数
    • 任务类型:图像分类
    • 是否进行切分:是
    • 验证集比例:0.2
    • 资源类型:您可按需选择
    • 其余参数可默认

三. 分类网络
选择合适的 CNN 网络处理分类任务,这里以 Inception 网络为例。 Inception 网络的详情可以参考 相关论文

  1. 在控制台的左侧导航栏,选择【算法】>【深度学习算法】>【计算机视觉】>【Inception 图片分类算法】,并拖入画布中
  2. 将【分类检测图像转换】的三个输出桩,分别连接到【 Inception 】 的三个输入桩上,前两个桩分别代表训练集和验证集文件,最右侧的桩代表“label_map文件所在目录”。
  3. 配置算法参数:
    • 模型名称:inception_v3
    • batch_size: 32
    • 学习率:0.01
    • 训练步数:3000
    • 优化器:rmsprop
    • 预训练模型路径:${ai_dataset_lib}/checkpoints/inception/inception_v3.ckpt
    • 是否仅训练全连接层:否
    • momentum:0.9
    • rmsprop_decay:0.9
    • 资源类型:您可按需选择
    • 其余参数可默认
  4. 左侧小烧杯代表完成训练的模型,将【测试集】的输出桩连接到小烧杯处。单击小烧杯,【模型更新方式】可选手动更新,将【模型运行方式】设置为自动运行,其余参数可默认。

四. 模型评估
在控制台的左侧导航栏,选择【输出】>【模型评估】>【深度学习分类任务评估】并拖入画布。将小烧杯模型的输出桩连接至【深度学习分类任务评估】,单击该组件设置算法参数:

  • 标签列的序号:2
  • 预测列序号:1
  • 资源类型:您可按需选择
  • 其余参数可默认

五. 运行调度及评估效果查看
单击画布上方运行可运行工作流,更多详情请参考 运行工作流
运行成功后,右键单击【深度学习分类任务评估】>【查看数据】,即可查看模型效果。

至此,我们利用智能钛机器学习平台完成了从数据预处理、模型构建、模型训练到模型评估的全部流程。

目录