人工智能技术(以下称 AI)是人类优秀的发现和创造之一,它代表着至少几十年的未来。在传统的编程中,工程师将自己的想法和业务变成代码,计算机会根据代码设定的逻辑运行。与之不同的是,AI 使计算机有了「属于自己的思想」,它就像生物一样,能够「看」、「听」、「说」、「动」、「理解」、「分辨」和「思考」。

AI 在图像识别和文本处理方面的效果尤为突出,且已经应用到人类的生活中,例如人脸识别、对话、车牌识别、城市智慧大脑项目中的目标检测和目标分类等。

接下来,我们将了解图像分类的需求、完成任务的前提条件和任务实践。

图像分类以及目标检测的需求

AI 的能力和应用都非常广泛,这里我们主要讨论的是图像分类。

图像分类,其实是对图像中主要目标的识别和归类。例如在很多张随机图片中分辨出哪一张中有直升飞机、哪一张中有狗。或者给定一张图片,让计算机分辨图像中主要目标的类别。

目标检测,指的是检测目标在图片中的位置。例如智慧交通项目中,路面监控摄像头拍摄画面中车辆的位置。目标检测涉及两种技术:分类和定位。也就是说先判定图片中是否存在指定的目标,然后还需要确定目标在图片中的位置。

 这样的技术将会应用在人脸识别打卡、视频监控警报、停车场、高速收费站和城市智慧交通等项目当中。

计算机识图的步骤

我们可以将计算机的看作是一个小朋友,它在拥有「分辨」的能力之前,必须经历「看」和「认识」这两个步骤,在看过很多图片后,它就会形成自己的「认知」,也就是获得了「分辨」能力。

简单来说,AI 工程师必须准备很多张不同的图片,并且将一大部分图片中的目标标注出来,然后让计算机提取每张图片中的特征,最后就会形成「认知」。

想一想,你还小的时候,是如何分辨鸭子和鹅的呢?

是不是根据它们的特征进行判断的?

学习和编程实现任务需要的条件

了解完需求和步骤之后,我们还需要准备一些条件:

  • 首先,你必须是一名 IT 工程师。
  • 然后你有一定的数学和统计学习基础。
  • 你还得了解计算机处理图像的方式。
  • 如果图片较多,你需要一台拥有较高算力 GPU 的计算机,否则计算机的「学习」速度会非常慢。

具备以上条件后,再通过短时间(几天或一周)的学习,我们就能够完成图像分类的任务。

讨论个额外的话题,人人都能够做 AI 工程师吗?

AI 的门槛是比较高的,首先得具备高等数学、统计学习和编程等基础,然后要有很强的学习能力。对于 IT 工程师来说:

  • 编程基础是没有问题的
  • 学习能力看个人,但花时间、下功夫肯定会有进步
  • 高等数学基础,得好好补
  • 统计学习基础,也得好好补
  • 经济上无压力

如果你想要成为一名 AI 工程师,那么「高学历」几乎是必备的。无论是一线互联网企业或者新崛起的 AI 独角兽,它们为 AI 工程师设立的学历门槛都是「硕士」。除非特别优秀的、才华横溢的大专或本科生,否则是不可能有机会进入这样的企业做 AI 工程师的。

AI 在硬件、软件、数据资料和人才方面都是很费钱的,普通的 IT 工程师也就是学习了解一下,远远达不到产品商用的要求。

普通的中小企业,极少有资质和经济能力吸引高学历且优秀的 AI 工程师,这就导致了资源的聚拢和倾斜。

想要将图像分类技术商用,在让计算机经历「看」、「认识」的步骤并拥有「分辨」能力后,还要将其转换为 Web 服务。

但我只想将人脸识别或者图像分类的功能集成到我的项目当中,就那么困难吗?

我只是一个很小的企业,想要在原来普通的视频监控系统中增加「家人识别」、「陌生人警报」、「火灾警报」和「生物闯入提醒」等功能,没有上述的条件和经济投入,就不能实现了吗?

我好苦恼!

有什么好办法吗?

ModelArts 简介和条件

ModelArts 是华为云推出的产品,它是面向开发者的一站式 AI 开发平台。

它为机器学习与深度学习提供海量数据预处理及半自动化标注、大规模分布式 Training、自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期 AI 工作流。

它为用户提供了以下可选模式:

  • 零编码经验、零 AI 经验的自动学习模式
  • 有 AI 研发经验的全流程开发模式

同时,它将 AI 开发的整个过程都集成了进来。例如数据标注、模型训练、参数优化、服务部署、开放接口等,这就是「全周期 AI 工作流」。

还有,平台上的操作都是可视化的。

这些条件对于想要将 AI 技术应用于产品,但无奈条件不佳的个人开发者和企业提供了机会,这很重要!可以说 ModelArts 缩短了 AI 商用的时间,降低了对应的经济成本、时间成本和人力成本。

更贴心的是,华为云 ModelArts 为用户准备了很多的教程。即使用户没有经验,但只要按照教程指引进行操作,也能够实现自己的 AI 需求。

想想就美滋滋,太棒了!

赶紧体验一下!

图像分类服务实践

这次我们以零 AI 基础和零编码经验的自动学习模式演示如何搭建一个图像分类的 AI 服务。

前期准备和相关设置

首先打开华为云官网,将鼠标移动导航栏的「EI 企业智能」菜单上,并在弹出的选项中选择「AI 开发平台 ModelArts」。

进入到 ModelArts 主页后,可以浏览一下关于 ModelArts 的介绍。

点击 Banner 处的「进入控制台」按钮,页面会跳转到 ModelArts 控制台。控制台大体分为几个区域:

区域 2 自动学习模式中有图像分类,将鼠标移动到图标上,并点击弹出的「开始体验」按钮。如果是华为云的新用户,网页会提示我们输入访问密钥和私有访问密钥。

没有密钥的开发者可以点击页面给出的链接并按照指引获取密钥,得到两种密钥后将其填入框中,点击「确定」按钮即可。

此时正式进入项目创建流程中,点击「图像分类」中的「创建项目」按钮(华为云为用户准备了对应的教程,很贴心)。

在创建项目的页面中,我们需要填两三项配置。要注意的是,项目是按需计费的,这次我们只是体验,也没有训练和存储太多数据,所以费用很低,大家不用担心。

项目名称可以根据需求设定一个容易记的,案例中我将其设定为 ImageCLF-Test-Pro。在训练数据的存储选择处,点击输入框中的文件夹图标,在弹出的选项卡中新建 obs 桶

最后输入描述,并点击页面右下角的「创建项目」按钮即可。

上传图片和标注

项目创建好之后,我们需要准备用于训练的多张图片,图片尽量清晰、种类超过 2 类、每种分类的图片数量不少于 5 张。

当然,数据越多、形态越丰富、标注越准确,那么训练结果就会越好,AI 服务的体验就会越好。

这里我准备了一些直升机、坦克和狗的图片,共 45 张。

依次将 3 类图片标注后,左侧图片标注的「未标注」选项卡中的图就会清空,而「已标注」选项卡中可以看到标注好的图片。

训练设置

右侧的标签栏会显示每种分类和对应的图片数量,下方的训练设置可以让我们设置训练时长的上限,高级设置中还有推理时间。

这个我们不必理解它的作用,可以按照默认值进行,也可以稍微调整,例如将训练时长的上限改为 0.2。

开始训练

设置好后点击「开始训练」按钮就会进入训练状态,耐心等待一段时间(图片越少训练时间越短)。

服务的自动化部署

我们的目的是搭建一个图像分类的 AI 服务,所以在训练结束后点击左侧的「部署」按钮,此时会进入自动化部署的流程。

稍微等待些许时间(本次约 10 分钟)后,页面提示部署完成,同时页面将会分为 3 栏。

左侧 1 区为部署状态和控制。中间 2 区可以在线测试图片分类,右侧 3 区会显示在线测试的结果(包括准确率),右侧 4 区提供了 API 接口,方便我们将其集成到 Web 应用当中。

在线预测,训练结果测试

我们来测试一下,准备几张没有经过标注的图片,图片中可以包含狗、直升机和坦克。点击中间 2 区的「上传」按钮并选择一张图片,然后点击「预测」按钮。

1 秒中不到,右侧 3 区就会返回本次预测的结果:

{"predicted_label": "狗","scores": [["狗","0.840"],["直升机","0.084"],["坦克","0.076"]]
}

这次我们上传的是包含狗的图片,返回的预测结果中显示本次预测的标签是「狗」,并且列出了可信度较高的几个类别和对应的可信度(1 为 100% 肯定),其中最高的是 「0.840-狗」。

这次上传直升机的图片试试。

返回的预测结果如下:

{"predicted_label": "直升机","scores": [["直升机","0.810"],["狗","0.114"],["坦克","0.075"]]
}

再试试坦克

返回的预测结果如下:

{"predicted_label": "坦克","scores": [["坦克","0.818"],["狗","0.092"],["直升机","0.090"]]
}

从几次测试的结果可以看出,预测的结果非常准确,而且给出的可信度也比较高。这次准备的图片并不是很多,形态也不是很丰富,但预测效果却非常好,不得不说华为云 ModelArts 开发团队为此做了很多的优化,甚至比我自己(深度学习入门水平)编写代码用卷积神经网络训练和预测的结果要好。

如果想要将其集成到 Web 应用中,只需要根据页面给出的「接口调用指南」的指引进行操作即可。

释放资源

如果不是真正商用,仅仅作为学习和练习,那么在操作完成后记得点击左侧 1 区的「停止」按钮。然后在华为云导航栏中的搜索框输入「OBS」,点击搜索结果后跳转到 OBS 主页,接着再 OBS 主页点击「管理控制台」,进入到 OBS 控制台中,删除之前创建的桶即可。这样就不会导致资源占用,也不会产生费用了。

小结

体验了一下 ModelArts,我感觉非常奈斯!

每处都有提示或教程指引,操作过程流畅,没有出现卡顿、报错等问题。

批量数据标注太好用了!批量导入、批量标注,自动计数,舒服!

训练速度很快,应该是用了云 GPU,这样就算我的电脑没有显卡也能够快速完成训练。

以前还在考虑,学习 AI 是否需要准备更强的硬件设备,现在好了,在 ModelArts 上操作,就不用考虑这些条件了。

本次我们体验的是自动学习,也就是简洁易用的傻瓜式操作。对于专业的 AI 工程师来说,可以选择全流程开发模式。批量数据标注、本地代码编写、本地调试、云端训练、云端部署等一气呵成。

棒!

有兴趣的开发者可以前往华为云 ModelArts 体验。

备注:文中配图均出自互联网,通过搜索引擎而来。

作者:华为云享专家 韦世东

实战!轻松搭建图像分类 AI 服务相关推荐

  1. Serverless 实战 —— 轻松搭建基于 SpringBoot + Vue 的 Web 商城应用

    Serverless 实战 -- 轻松搭建基于 SpringBoot + Vue 的 Web 商城应用 背景介绍 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute ...

  2. 浪潮联手宽邦科技助推金融行业智慧化转型,践行“T计划”共建AI服务生态丨Xtecher 观察

    浪潮联合宽邦科技,推出面向金融行业的一体化AI解决方案,降低了传统金融企业使用AI的门槛,解决了多项传统金融行业业务痛点,将大力助推金融行业实现智慧化转型.这正是浪潮"T计划"的践 ...

  3. python ai应用开发_AI应用开发实战 - 从零开始搭建macOS开发环境

    AI应用开发实战 - 从零开始搭建macOS开发环境 联系我们 OpenmindChina@microsoft.com 零.前提条件 一台能联网的电脑,使用macOS操作系统 请确保鼠标.键盘.显示器 ...

  4. 阿里云Kubernetes实战2–搭建基础服务

    前言: 在系列的第一篇文章中,我已经介绍过如何在阿里云基于kubeasz搭建K8S集群,通过在K8S上部署gitlab并暴露至集群外来演示服务部署与发现的流程.文章写于4月,忙碌了小半年后,我才有时间 ...

  5. Firefly支持AI引擎Tengine,性能提升,轻松搭建AI计算框架

    Tengine 是OPEN AI LAB 为嵌入式设备开发的一个轻量级.高性能并且模块化的引擎.基于ARM平台高效的计算库实现,针对特定硬件平台的性能优化,吸取已有AI计算框架的优点,设计全新的计算图 ...

  6. 使用Gogs轻松搭建可能比GitLab更好用的Git服务平台

    前言 GitHub 已经成为首选的代码托管平台,因为它又很多很棒的功能,操作简单,几乎所有的开发者都喜欢它.但是搭建 GitLab 过程并没有想象中的简单,利用 Bitnami 当然也是一种偷懒的好选 ...

  7. 使用Gogs轻松搭建可能比GitLab更好用的Git服务平台 1

    前言 GitHub已经成为首选的代码托管平台,因为它又很多很棒的功能,操作简单,几乎所有的开发者都喜欢它.但是搭建GitLab过程并没有想象中的简单,利用Bitnami当然也是一种偷懒的好选择.Gog ...

  8. AI实战:搭建带注意力机制的 seq2seq 模型来做数值预测

    AI实战:搭建带注意力机制的 seq2seq 模型来做数值预测 seq2seq 框架图 环境依赖 Linux python3.6 tensorflow.keras 源码搭建模型及说明 依赖库 impo ...

  9. AI轻松入门,AI零基础入门,AI初级教学,

    2020的下半年已经开启了,大家还记得美剧<疑犯追踪>(Person of Interest)中贯穿全剧的机器宝宝么?从开始的训练学习,进化到可以自我更新.自我维护.自我修复,乃至最终进化 ...

最新文章

  1. P2801 教主的魔法(分块入门)
  2. Linux下的数据备份工具rsync
  3. python进行数据分析,学习笔记 第8章(1)
  4. amh 4.2 升级php_Centos系统 + AMH4.2面板 PHP升级7.3.5
  5. PAT B1007 素数对猜想 (20 分)
  6. Kafka端到端审计
  7. 15-07-10 结构体-输入学生成绩进行排序
  8. OpenStack —— DevStack配置安装
  9. linux的mysql如何删除用户_linux mysql增加用户,删除用户,以及用户权限
  10. python中typeerror是什么意思_TypeError:在Python中
  11. Teamcenter 开发中的一些问题
  12. 录入商品信息的c语言,超市商品信息系统设计报告及程序C语言.doc
  13. 乐视android系统耗电量大,乐视手机突然充电慢耗电快,怎么解决?
  14. Hadoop学习笔记(4)hadoop集群模式安装
  15. Linux系统裁减之,制作一个极度精简的Linux-5-重新编译login去除对pam模块的依赖...
  16. 信息集成项目管理工程师 学习资料_如何备考系统集成项目管理工程师?
  17. Java WebService视频教程
  18. VMWare mac os x 优化神器 beamoff
  19. 接口压力测试神器Jmeter
  20. html5视频自动轮播,HTML5教程 可自动轮播的旋转木马插件

热门文章

  1. 从像素坐标到相机坐标_多视图几何基础——深入理解相机内外参数
  2. arduino openmv 显示图像_6 个芯片打造复古经典计算机:215 色显示,能编程能玩小游戏...
  3. gels imagej 图片处理_如何用ImageJ进行粒度分析
  4. 平板android优化网络,Android版Firefox更新 针对平板设备优化
  5. java8怎么按照两个字段的乘积排序_django-orm F对象的使用 按照两个字段的和,乘积排序实例...
  6. 077 Combinations 组合
  7. 【机器学习】ICA 原理以及相关概率论,信息论知识简介
  8. Java的简单了解。
  9. ASP.NET 1.1与ASP.NET 2.0 应用运行并存
  10. leetcode 1221 python