一、Why 定制化模型

  一般来说,各大云服务厂商只会提供一些最常见通用的AI服务,针对具体场景的AI应用则需要在云服务厂商提供的服务之上进行定制。例如,通常的图像识别只能做到分析照片的主题内容,而我的需求是给定指定场景的图片,能够分析出其中的各个物体,并指出他们是什么,以便我后期能够给出相似的图片内容实现猜你喜欢及拍照识图并进行相关物品的推荐等功能。因此,这里介绍一下百度AI平台的EasyDL定制化AI服务,主要会Focus在定制化图片识别这个方向。

  

  对于EasyDL定制化图像识别,百度主要提供了两个可定制的模型:

  (1)图像分类

  图像分类指识别一张图中是否是某类物体/状态/场景,可以识别图片中主体或者状态单一的场景,如下图所示:

  

  (2)物体检测  

  物体检测是指定制识别出图片里每个物体的位置、名称。可以识别图片中有多个主体、或者要识别位置及数量的场景,如下图所示:

  

  (3)应用案例

  家图网是使用EasyDL定制模型的一个典型案例,详情可以点击这里浏览

二、第一个物体检测模型

2.1 创建模型和数据集  

  这里我模仿家图网,也来训练一个家居场景下的模型,我的目标是多目标物体检测,因此创建一个模型。

  

  有了模型,还需要数据集,因此我创建了三个数据集(这里Demo只会用到两个,三个的话训练太花时间),分别用于上传需要训练的图片:

  

  PS:用于训练的图片需要和实际的场景图片一致,而且训练的样本数量越多精确性越高,我这里只上传了30多张。

2.2 迭代打标签

  接下来的工作就比较反锁了,我们需要迭代地给训练样本打标签,告诉机器,某个图片某个部位是什么,在下一步训练时让机器可以自纠正改进自己的算法。

  

  然后就是循环反复地为训练样本打标签,是一个体力活。

2.3 训练模型

  有了打好标签的数据集,就可以开始训练了:

  

  第一个版本训练之后的结果:精确率21.9%,不忍直视

  

  于是将未识别的图片及新增一些训练样本,再次打标签,再次训练之后的结果:提升了很多!为了节约时间,就不再训练了。当然,实际中需要增加尽可能多的训练样本,并多次训练以求得一个更好的识别模型。

  

2.4 校验模型

  下面就是见证奇迹的时刻(请不要选择训练样本进行校验,选择非训练样本进行校验):请原谅我的无知~哭~

  

  可以看到,我们的模型准确的识别到了沙发和吊灯。当然,还有很多没有完整的识别到两个物体,就需要将它作为训练样本加入数据集打标签,以便下个迭代里模型能够正确识别相关类似的图片内容。

  如果有一个较好的模型,我想我也可以实现类似于家图网的看图识物并推荐相似物体的热门产品了。当然,家图网可是数以万计的训练才得出的识别模型,我们在做的时候也是需要花费很多精力去调优的。Anyway,万里长征也算走出了第一步。

  

三、小结

  本文主要记录了一个使用百度AI平台的EasyDL进行定制化模型的过程,全篇无干货,只是单纯的实验而已,希望对你有用。

作者:周旭龙

出处:http://edisonchou.cnblogs.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

初探机器学习之使用百度EasyDL定制化模型的更多相关文章

  1. 基于百度EasyDL定制化图像识别平台的海洋鱼类识别方法

    [目的]鱼类识别对渔业资源的开发利用有着重要的意义.针对海底环境恶劣.拍摄环境亮度低.场景模糊的实际情况导致海底观测视频品质差,视频中的鱼类识别难的问题以及现有鱼类识别方法存在的鱼类标注数据集过少导致 ...

  2. 初探机器学习之使用百度AI服务实现图片识别与相似图片

    一.百度云AI服务 最近在调研一些云服务平台的AI(人工智能)服务,了解了一下阿里云.腾讯云和百度云.其中,百度云提供了图像识别及图像搜索,而且还细分地提供了相似图片这项服务,比较符合我的需求,且百度 ...

  3. 如何使用百度EasyDL进行情感分析

    使用百度EasyDL定制化训练和服务平台有一段时间了,越来越能体会到EasyDL的易用性.在此之前我也接触过不少的深度学习平台,如类脑平台.Google的GCP深度学习平台.AWS深度学习平台,但我觉 ...

  4. Gradle 实现 Android 多渠道定制化打包

    Gradle 实现 Android 多渠道定制化打包 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在项目中遇到需要实现 Apk 多渠道.定制化打包, Google .百度查找了一些资料, ...

  5. AI应用开发实战 - 定制化视觉服务的使用

    AI应用开发实战 - 定制化视觉服务的使用 本篇教程的目标是学会使用定制化视觉服务,并能在UWP应用中集成定制化视觉服务模型. 前一篇:AI应用开发实战 - 手写识别应用入门 建议和反馈,请发送到 h ...

  6. 自动化部署必备技能—定制化RPM包[转载]

    回顾下安装软件的三种方式: 1.编译安装软件,优点是可以定制化安装目录.按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长. 2.yum安装软件,优点是全自动化 ...

  7. 自动化部署必备技能—定制化RPM包

    回顾下安装软件的三种方式: 1.编译安装软件,优点是可以定制化安装目录.按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长. 2.yum安装软件,优点是全自动化 ...

  8. Python笔记 #11# 统计图定制化

    将数据可视化有许多选择: 图的类型 定制化方式 选择什么样的表现方式通常取决于: 数据 你想表达什么 1.Labels # Basic scatter plot, log scale plt.scat ...

  9. ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”

    DeveloperExceptionPageMiddleware中间件利用呈现出来的错误页面实现抛出异常和当前请求的详细信息以辅助开发人员更好地进行纠错诊断工作,而ExceptionHandlerMi ...

随机推荐

  1. centos7虚拟机设置静态ip

    cd /etc/sysconfig/network-scripts/ vi ifcfg-enp0s3 1.修改配置 BOOTPROTO=static2.新增配置(查询宿主机对应的信息) IPADDR= ...

  2. Java对象和Excel转换工具XXL-EXCEL

    <Java对象和Excel转换工具XXL-EXCEL> 一.简介 1.1 概述 XXL-EXCEL 是一个灵活的Java对象和Excel文档相互转换的工具. 一行代码完成Java对象和Ex ...

  3. self,和类实例化加不加括号的理解

    # class Dog(object): # def talk(self): # print('汪汪~~~') # print(self) # self就是对象,默认将对象传递到类方法,self不需要 ...

  4. TCP/IP Http 和Https socket之间的区别

    TCP/IP Http 和Https  socket之间的区别 TCP/IP是个协议组,它分为网络层,传输层和应用层, 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议.   ...

  5. spring 切入点表达式

    spring表达式有多种的指示符,如: 切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下: exe ...

  6. PAT1028:List Sorting

    1028. List Sorting (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Excel ca ...

  7. Struts标签库详解【1】

    struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri=& ...

  8. Tiny4412之串口(Uart)驱动编写

    一:tiny4412串口驱动编写 1.串口通信简介 串口通信指串口按位(bit)发送和接收字节,串口通信的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口 ...

  9. selenium提供的截图功能

    get_screenshot_as_file()提供一个截屏功能.在自动化执行过程中,执行失败后只能看到代码的运行错误,而不能直接看到ui上的错误,利用截屏保存下来很容易的进行问题的判断 先来执行一个 ...

  10. 实际项目开发需要注意的tips

    1.尽量少用== 或者 != ,除非能够保证这里不会出现强制类型转换,严格起见,最好用 === 与 !==