前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Machine Box创始人教你快速建立一个ML图像分类器

Machine Box创始人教你快速建立一个ML图像分类器

作者头像
AiTechYun
发布2018-03-27 15:49:48
8040
发布2018-03-27 15:49:48
举报
文章被收录于专栏:ATYUN订阅号ATYUN订阅号

AiTechYun

编辑:Yining

Machine Box的创始人Mat Ryer在medium上分享了一篇博文,意在教你在硬盘上快速的建立一个机器学习图像分类器。在这篇博文中,他用到了一个图像分类工具imageclass。

imgclass工具可以让你把一个文件夹装满图片,然后教一个分类器学会如何自动对未来的图像进行分类。它通过创建一个模型并将80%的示例图像发布到Classificationbox中,然后Classificationbox会学习不同类别的图像是什么样子,以及它们的共同特征是什么。剩下的(20%)图像被用来测试模型。然后,开发人员可以使用Classificationbox API来预测它以前从未见过的图像。

  • Classificationbox地址:https://machinebox.io/docs/classificationbox?utm_source=matblog&utm_medium=imgclass&utm_campaign=imgclass&utm_term=imgclass&utm_content=imgclass

这个项目是开源的并在Go语言中编写,本文将解释如何使用它。

  • 地址:https://github.com/machinebox/toys/tree/master/imgclass

安装

安装imgclass工具:

代码语言:javascript
复制
go get github.com/machinebox/toys/imgclass

如果你没有安装Go,这有一个安装地址:https://golang.org/doc/install

验证它是否安装正确:

代码语言:javascript
复制
$ which imgclass
/path/to/somewhere/bin/imgclass

准备教学数据

创建一个文件夹,并在此文件夹中为每个类创建一个子文件夹。

两个文件夹Gophers和Humans

在每个文件夹中,添加尽可能多的图片示例。通常,你提供的图片越多,你的模型就越好。

如果你想要在不需要收集大量图像数据的情况下使用它,那么你可以使用一个经典的猫与狗例子的样本数据集。本文的其余部分将使用此数据集。

  • 猫与狗例子的样本数据集下载地址:http://machinebox.io/samples/images/classification/catsvsdogs.zip

Spin up Classificationbox

Spin-up大意为“磁盘交错启动”,指的是一个硬盘驱动器或光盘驱动器加速了它的磁盘盘片或将光盘从一个停止的状态嵌入到运算的速度的过程。假设你已经安装了Docker,你可以用下面这个单行代码来Spin-up Classificationbox :

  • Docker安装:https://machinebox.io/docs/setup/docker?utm_source=matblog&utm_medium=imgclass&utm_campaign=imgclass&utm_term=imgclass&utm_content=imgclass#installing-docker
代码语言:javascript
复制
docker run -p 8080:8080 -e "MB_KEY=$MB_KEY" machinebox/classificationbox
  • 如果你需要一个MB_KEY,你可以以下网站中免费获得:

https://machinebox.io/account?utm_source=matblog&utm_medium=imgclass&utm_campaign=imgclass&utm_term=imgclass&utm_content=imgclass

运行之后,到http://localhost:8080,然后你能够看到API文档:

当你在本地运行Classificationbox时,你可以直接从container中访问文档

教学和验证

找到你的类文件夹所在的文件夹,并执行imgclass工具:

你将看到的图片和数量概述并要求确认创建模型

分类器可以更好地使用数量平衡的例子,因此,如果你能做到的话,可以在每个类中都使用相同数量的例子。

一旦创建了模型,就会提示你是否要教一个选择的(80%)图像。点击y和按下回车就会开始这个过程:

imgclass工具会将每个图像放入Classificationbox以便让它学习

教学(Teaching)本质上涉及打开每个图像,将其转换为一个base64字符串,并按要求将其提交到/classificationbox/teach API终端,就像这样:

代码语言:javascript
复制
POST /classificationbox/teach
{
 "inputs": [
 {
 "type": "image_base64",
 "key": "image",
 "value": "...base64 data..."
 ]
}

一旦教学完成,验证过程就会开始。

验证(validate)本质上是保留剩余的图像(20%),并要求Classificationbox来预测它们属于哪个类。如果它做对了,我们就把它当作正确的,否则就错了。

结果显示在终端:

没有任何机器学习模型是100%准确的,但是你可以通过一组好的教学数据来获得一些令人印象深刻的结果——在这种情况下,98%准确!

Machine Box将现有技术的机器学习能力运用到Docker容器中,因此开发者可以很容易地将自然语言处理、面部识别、对象识别等应用到你自己的应用中。它比任何云服务都要便宜,而且你的数据不会离开你的基础设施。

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

本文分享自 ATYUN订阅号 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 准备教学数据
  • Spin up Classificationbox
  • 教学和验证
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档