前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Google AutoML图像分类模型 | 使用指南

Google AutoML图像分类模型 | 使用指南

作者头像
AI科技大本营
发布2020-03-04 17:55:10
2.7K0
发布2020-03-04 17:55:10
举报

来源 | Seve

编译 | 火火酱,责编| Carol

出品 | AI科技大本营(ID:rgznai100)

在本教程中,我将向大家展示如何在Google AutoML中创建单个标签分类模型。我们将使用来自generate.photos的AI生成的面孔数据集。通过算法训练来判断一张脸是男性还是女性。之后,我们会将模型部署到云中,并创建该算法的Web浏览器版本。

generate.photos:

https://generated.photos/

获取标签

下面,就让我们开始吧!首先,让我们看一下要分类的数据。总共约有2,000张人脸照片。

数据下载链接:

https://wao.ai/blog/single-label-image-classification-google-automl

很难相信这些面孔是假的对吧!那么,现在让我们获取ground truth标签来对算法进行训练吧。首先创建图片分类作业,我们可以借助wao.ai来迅速完成此操作,你可以通过下方视频链接了解该过程。

wao.ai:https://wao.ai/

视频链接:https://www.youtube.com/watch?v=adjwhyqdXOM

工作完成后,我们会获得一个包含ground-truth标签的CSV文件。

CSV文件下载链接:

https://wao.ai/blog/single-label-image-classification-google-automl

建立项目

现在可以开始使用Google AutoML了。接下来,我们将在Google AutoML上创建一个数据集,并开始训练我们的模型。

如果你还没有账户,请先在Google Cloud Platform上创建一个帐户。然后,我们需要创建一个新项目。

创建项目后,我们可以使用顶部的侧边栏或搜索栏导航到Google AutoML。你可能需要启用一些API并设置好结算功能,GCP会引导你完成该过程。

接下来,点击“图像分类(Image Classification)”。

然后我们将会进入“数据集(Dataset)”界面。在该界面中,单击“创建新数据集(Create New Dataset)”,并填写数据集的一些详细信息以进行训练。

格式化输入数据

现在我们将自己的数据放入Google Cloud Platform。所有数据都必须位于GCP存储桶中。因为我们的数据集太大,所以浏览器界面无法正常工作。

但是,GCP命令行工具应该可以正常运行。你也可以安装Google Cloud SDK(其中包括命令行工具)。

Google Cloud SDK下载链接:

https://cloud.google.com/sdk/

现在,我们只需要执行gsutil cp -r path / to / faces gs:// YOUR_BUCKET / faces即可将文件移到存储桶中。确保将YOUR_BUCKET更改为为你创建的存储库的名称(在下面的截图中,我的存储库名称为woven-icon-263815-vcm)。

接下来,我们要将ground-truth标签CSV从wao.ai转换为AutoML期望的CSV输出。

(wao.ai:https://wao.ai/

我们的原始CSV如下图所示:

为了方便使用Google AutoML,我们需要将其转换为:

我在ipython终端中使用Pandas DataFrame进行了此操作(如下图所示):

Pandas:https://pandas.pydata.org/

完成创建数据集

现在,我们有了Google AutoML所需格式的CSV,就可以完成创建自己数据集的准备工作了。

将我们创建的新CSV上传到你的存储库中,然后在“导入数据集(Import Dataset)”界面中选择该库。

导入数据后,你可以从浏览器中查看所有的图像和标签。

创建模型

在本节中,我们将创建一个运行在GCP上的云模型,该模型具有易于使用的API以及可以导出到Tensorflow并在本地或本地托管的移动设备和浏览器上运行的Edge模型。

1. 训练云模型

导航到“训练(TRAIN)”选项卡,然后单击“开始训练(START TRAINING)”。我使用了所有的默认选项。

几个小时后,模型完成,并概述了模型的性能和所用的预算(我分配的全部是16小时)

2. 训练“边缘”模型(可以在任何地方运行的模型)

创建边缘模型的方法基本相同,只需单击“边缘(Edge)”而不是“云(Cloud)”即可。当创建边缘模型时,你可以优化其速度或精度。因为我想将边缘模型与云模型进行比较,所以我决定对精度进行优化。

结果

在“评估(EVALUATE)”选项卡中,我们能够看到模型的执行效果。云模型的准确率为94.5%。边缘模型的准确率为95.5%。让我惊讶的是,云模型的表现竟然稍差一些,特别是考虑到它的培训成本要更高之后!

总的来说,我对两个模型的性能都很满意。由混淆矩阵可知,云模型在预测男性时出错较多,而边缘模型的失误率则更均匀。

云模型性能

在下面的屏幕截图中,你可以看到云模型的混乱矩阵,以及AutoML报告的一些统计信息。它在预测女性方面略优于男性。

边缘模型性能

在以下截图中,你可以看到边缘模型的混淆矩阵以及AutoML报告的一些统计数据。边缘模型在预测男性方面略胜一筹!

边缘案例

Google AutoML为你提供了模型在哪些方面表现良好以及哪些地方出错的细目。和我的keras模型一样,儿童和不寻常的面部角度都是个问题。以下屏幕截图中显示了误报的案例。

部署模型

既然我们已经获得了满意的模型,那么我们就该应用一下了!我们的云模型可以部署在GCP上,Edge模型可供下载并同Tensorflow一起运行。让我们一起来探索云模型和边缘模型的部署吧。

云部署

导航到“测试&使用(TEST&USE)”选项卡,然后单击“部署模型(DEPLOY MODEL)”按钮。为了进行测试,我决定只部署到一个节点。部署该模型大约花费一个小时。

云模型公开了一个易于使用的API,你可以在其中上传一个简单的JSON对象并接收到一组带有返回概率的预测。对我来说,这是简单且完美的集成API。

我们还可以直接在浏览器中使用API并检查结果。我从训练集中上传了一些面部照片,看起来效果还不错!总的来说,如果你有能力在后台运行云实例,那么我认为这是一个非常易于使用的API。

边缘部署

对于边缘部署,我们有多种下载模型的方法。每种方法都非常强大:

  • TF Lite:允许你在移动设备上运行模型

(TF Lite:https://www.tensorflow.org/lite

  • TensorFlow.js:允许你在网络浏览器中运行模型

(TensorFlow.js:https://www.tensorflow.org/js

  • Core ML:允许你在Apple设备上运行模型

(Core ML:https://developer.apple.com/documentation/coreml

  • Container:允许你在Docker容器中运行模型(对于Web服务器而言是完美的)

(Container:https://www.docker.com/resources/what-container

我下载了Tensorflow.js 模型,并构建了一个使用Edge模型和网络摄像头的demo示范。注意:此模型不会将你的图像上传到服务器,所有内容都在本地运行!

(demo示范链接:https://wao.ai/blog/can-ai-guess-our-sex

结语

总而言之,Google AutoML在该任务上易于使用,且非常有效。我期待着尝试其他云提供商,看看他们比较起来表现如何!

原文:

https://hackernoon.com/image-classification-model-with-google-automl-a-how-to-guide-wa7n3b6n

(*本文由 AI 科技大本营编译,转载请联系)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档