本文作为Jerry最近正在做的一个项目的工作思路的梳理。

我们假设这样一个服务场景,技师上门维修某设备,发现设备上某零件损坏了,假设这位技师由于种种原因,没能根据自己的经验识别出这个零件的型号。此时技师掏出自己的手机,给零件拍摄一张图片,这张图片通过手机上安装的SAP某智能解决方案,传送到SAP Leonardo平台,通过那里的人工智能服务,自动识别出这张图片上面零件的准确型号,返回给技师。

SAP Leonardo上的人工智能服务,在接收到技师上传的图片后,通过某种算法将该图片的特征向量提取出来,然后再通过平台上基于大量数据集训练好的模型,识别出准确型号。因此,图片特征向量的提取,成为了这个智能解决方案的首要步骤。

什么是图片的特征向量?特征向量的提取,从数学上说,就是通过某种算法,把输入图片的二进制流,转换成一个向量(一维矩阵)的过程。

以下面这张图里的梯形和圆形为例,我们把图形均匀地分成9个区域,在图形中心观察每个区域内图形单元的梯度方向,就可以实现降维,把二维图像以一个一维矩阵来表示。

当然实际的图形轮廓识别和降维处理采用的算法比这个例子复杂得多,Jerry也不懂。幸运的是,对SAP partners来说,不需要了解这里面的数学知识和技术知识,简单地把SAP Leonardo上的人工智能服务当成一个黑盒子,通过Restful API的方式,把要提取特征向量的图片“喂”给人工智能服务,就能得到特征向量输出。

通过这个url进入SAP Leonardo图片特征向量提取服务的测试控制台和帮助文档:

https://api.sap.com/api/img_feature_extraction_api/resource

使用非常简单,直接在测试控制台里从本地选择一张图片,点击执行按钮:

得到了输出的特征向量:

有了特征向量后,我们再回到文章开头提到的场景。

假设我们想根据技师上传的图片分辨出图片里的零件型号,一种做法当然是采取Jerry之前一篇文章 如何对SAP Leonardo上的机器学习模型进行重新训练 介绍的方法,提前准备大量该型号零件的图片,然后使用这些图片对Product Image Classification模型进行重新训练。训练结束之后,该API即可识别出对于给定一张图片,代表的究竟是不是之前训练过的某型号的零件。这是第一种实现思路。

既然我们如今已经拿到了待识别图片的特征向量,那么可以尝试第二种思路,即利用Leonardo上的另一个和图片处理相关的人工智能服务:图片相似度评分https://api.sap.com/api/similarity_scoring_api/overview

这个Restful API的输入需要两个压缩包。第一个压缩包存放的是一个存放了事先提取好的技师上传的待匹配文件的特征向量,第二个压缩包里存放的是型号为A,B,C...等零件图片的特征向量。

如上图所示,为简单起见,第二个压缩包我只存放了两个文件,分别存放的是型号A和型号B的特征向量。

调用API,传入这两个压缩包:

得到的结果表明,技师上传的图片和型号A的相似系数几乎接近1,那么显然,该图片代表型号A。

当然,除了直接上传包含了图片特征向量的压缩文件之外,将这些文件包含的特征向量内容以JSON字符串的方式作为输入调用API也是可行的,JSON字符串的格式在SAP官网里有详细说明,这里不再赘述。

希望本文介绍的这些API对于大家实际工作中如何利用SAP Leonardo上的机器学习服务有所启发,感谢阅读。

更多阅读

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

SAP Leonardo图片处理相关的机器学习服务在SAP智能服务场景中的应用的更多相关文章

  1. 机器学习 | 详解GBDT在分类场景中的应用原理与公式推导

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第31篇文章,我们一起继续来聊聊GBDT模型. 在上一篇文章当中,我们学习了GBDT这个模型在回归问题当中的原理.GBD ...

  2. 使用SAP Leonardo上的机器学习服务提取图片的特征向量

    要想提取图片的特征向量,首先得知道特征向量是什么. 我们假设这样一个服务场景,技师上门维修某设备,发现上面某零件损坏了,假设这位技师由于种种原因,没能根据自己的经验识别出这个零件的型号.此时技师掏出自 ...

  3. 使用Java程序消费SAP Leonardo的机器学习API

    以sap leonardo作为关键字在微信上搜索,能搜到不少文章.但是我浏览了一下,好像没有发现有从具体编程角度上来介绍的.所以我就贡献一篇. 需求 开发一个Java程序,用户可以指定一张图片,该Ja ...

  4. 读懂SAP Leonardo物联网平台

    读懂SAP Leonardo物联网平台 https://blog.csdn.net/weixin_42137700/article/details/81903290 本文比较系统.全面地介绍了SAP ...

  5. 如何对SAP Leonardo上的机器学习模型进行重新训练

    Jerry之前的两篇文章介绍了如何通过Restful API的方式,消费SAP Leonardo上预先训练好的机器学习模型: 如何在Web应用里消费SAP Leonardo的机器学习API 部署在SA ...

  6. 部署在SAP Cloud Platform CloudFoundry环境的应用如何消费SAP Leonardo机器学习API

    Jerry的前一篇文章 如何在Web应用里消费SAP Leonardo的机器学习API 里介绍的例子是Neo测试环境的Web应用消费sandbox版本的机器学习API,url如下: https://s ...

  7. 如何在Web应用里消费SAP Leonardo的机器学习API

    去年5月的时候,Jerry曾经写了一篇文章:使用Java程序消费SAP Leonardo的机器学习API,而最近另外做的一个项目,需要在Web应用里做同样的事情. 因为有了前一篇文章的铺垫,避免了很多 ...

  8. [入门到吐槽系列] 微信小程序 敏感违规图片检测 mediaCheckAsync,客服接口 消息推送 的各种坑分享!

    前言: 最近需要做个用户上传图片,服务端校验图片问题的需求.需要使用小程序消息推送,异步接受腾讯的图片验证回调.实在太多坑了. 相信10分钟看完本文的朋友,可以非常顺利避坑. 前期准备: 首先需要一个 ...

  9. 渐进式jpeg(progressive jpeg)图片及其相关 --图片的两种加载方式

    渐进式jpeg(progressive jpeg)图片及其相关   一.基本JPEG(baseline jpeg)和渐进JPEG 网络上那些色色的照片都是.jpg格式的("色色"指 ...

随机推荐

  1. osg Node getParentalNodePaths()报错

    node->getBound().center() * osg::computeLocalToWorld(node->getParentalNodePaths()[0]) osg::Vec ...

  2. netty5心跳与阻塞性业务消息分发实例

    继续之前的例子(netty5心跳与业务消息分发实例),我们在NettyClientHandler把业务消息改为阻塞性的: package com.wlf.netty.nettyclient.handl ...

  3. 【PHP】php7.2报错The each() function is deprecated. This message will be suppressed on furthe

    php7.2以上 废除了 each()方法,项目中用到的地方会出现以下报错 The each() function is deprecated. This message will be suppre ...

  4. python web开发Django连接mysql

    需要MYSQL-python,一般情况下直接pip install window系统会报错,所以要去 https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml  ...

  5. Spring MVC 数据模型与视图

      从控制器获取数据后,会装载数据到数据模型和视图中,然后将视图名称转发到视图解析器中,通过解析器解析后得到最终视图,最后将数据模型渲染到视图中,展示最终的结果给用户. 用ModelAndView来定 ...

  6. GNU C之__attribute__

    __attribute__可以设置函数属性(Function Attribute).变量属性(Variable Attribute)和类型属性(Type Attribute) __attribute_ ...

  7. Win10下载安装PostgreSQL 11.1

    下载地址:https://get.enterprisedb.com/postgresql/postgresql-11.1-1-windows-x64.exe Installation Director ...

  8. docker 下mysql 和postgresql 数据库的搭建以及数据文件的迁移和备份

    service docker start - docker 启动 service docker stop - docker 关闭 1.docker 镜像创建—使用的默认镜像有数据卷 docker pu ...

  9. Python3之调试

    程序能一次写完并正常运行的概率很小,基本不超过1%.总会有各种各样的bug需要修正.有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误 ...

  10. AI - H2O - 安装与运行

    安装的要求 H2O的安装对操作系统.编程语言和浏览器有具体的要求. 详情请查看官方信息 下载H2O Downloading & Installing H2O Download 示例 - 在Ce ...