本文作为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. Spring中好玩的注解和接口

    测试中: 一.unit中集中基本注解,是必须掌握的. @BeforeClass – 表示在类中的任意public static void方法执行之前执行 @AfterClass – 表示在类中的任意p ...

  2. Python3入门(十三)——常用内置模块之集合模块collections

    1.namedtuple 主要用来定义一种数据类型:它具有Tuple的不变性,而且又能通过属性来访问 例如定义坐标: from collections import namedtuple Point ...

  3. Spring cloud微服务安全实战-3-12session固定攻击防护

    getSession这个方法里面的逻辑,会根据传过来的cookie里面带的JSessionID在你的服务器上去找一个session,如果能找到,就用这个已经存在的session,这个getSessio ...

  4. 为何windows自带的文件搜索这么慢,而Everything的这么快

    为何windows自带的文件搜索这么慢,而Everything的这么快 摘自:http://blog.sina.com.cn/s/blog_9f0cf4ed0102wvkq.html (2016-07 ...

  5. 【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 ...

  6. pytorch 中Dataloader中的collate_fn参数

    一般的,默认的collate_fn函数是要求一个batch中的图片都具有相同size(因为要做stack操作),当一个batch中的图片大小都不同时,可以使用自定义的collate_fn函数,则一个b ...

  7. Python - Django - 命名空间模式

    新建一个项目 app02 在 app02/ 下创建 urls.py: from django.conf.urls import url from app02 import views urlpatte ...

  8. antd 用 customize-cra 方式引入 sass

    antd 用 customize-cra 方式引入 sass 只需要安装:node-sass 即可

  9. 【计算机视觉】OpenCV篇(9) - 轮廓(寻找/绘制轮廓)

    什么是轮廓? 轮廓是一系列相连的点组成的曲线,代表了物体的基本外形. 轮廓与边缘好像挺像的? 是的,确实挺像,那么区别是什么呢?简而言之,轮廓是连续的,而边缘并不全都连续(见下图示例).其实边缘主要是 ...

  10. docker安装fastdfs碰到storage的IP地址映射宿主地址问题

    一.概述 最近公司准备全面实施docker部署,解决每次项目实施安装部署环境工作量大问题,mysql5.7.oracle12c很顺利,在安装fastdfs时碰到storage的IP地址映射问题.服务器 ...