本文作者:李建,阿里巴巴达摩院技术专家。

01 视觉智能开放平台(VIAPI)业务场景介绍

阿里云视觉智能开放平台(简称 VIAPI),是基于之前很多技术实践经验积累的 AI 能力的沉淀平台。目前整个平台覆盖的行业非常广,比如城市大脑、数字营销、金融以及娱乐行业。面向的人群包含企业者、开发者和个人。整个平台类目有 14 种,包括人脸人体、目标检测、文字识别等。目前平台大约有200 个API。

第一项能力是智能家居场景中的人车宠物检测。目前在网上购买到的IPC 的智能摄像机,比如老人摔倒检测,宠物移动检测,或安防中的外来入侵检测等,都属于该范围。

第二项能力是图像分割(抠图)。比如证件照可以通过手机拍照再进行抠图来实现。除了抠图应用外,在视频分析课中也有较多应用。比如线上视频会议时,可以更换背景,换成海边或其他自己喜欢的背景,以上能力都是基于视频的分割实现。

第三项能力是超分辨。可以对低分辨率的老旧照片进行超分辨输出,也可以对低分辨率的影视剧进行超分辨,获得更清晰的画质。

第四项能力是OCR 。例如银行卡的卡号的识别,身份证的信息识别等均采用了OCR技术。在办公中,对于发票、通用人事的名片也可以应用OCR技术。

02 用户痛点解析

客户在使用VIAPI时希望将自己多媒体文件直接上传到VIAPI,处理完成后,直接将结果推送给客户。

但实际使用的技术方式如下:用户先需要下载十几个 SDK ,然后开发集成几十个、上百个API,并且在整个过程中还需要进行不断调试、修整代码,最终能跑通之后才会发布到线上。

除了使用VIAPI-SDK之外,还要接入OSS 。因为目前 CV的AI能力大部分基于视频或图像,所以对于文件的存储方面,我们官方支持的是OSS存储。

在上述过程中,主要的用户痛点有三个方面。

1.编码方面:开发者在集成VIAPI和OSS的 SDK的过程中,Endpoint产品间比较容易混淆,请求的过程中需要做安全通信的签名,因为各种概念比较多,所以比较容易出错,出错多了还容易打消热情。

  1. 重复工作:整个接入工作每一个客户都是做的相同的事情,所以无论从API维度或用户维度来说,这都是重复性工作,应当被简化掉。

  2. 门槛高。技术人员虽然会写代码,但面对非常多的概念,第一次使用的上手成本也比较高。对于非技术人员,比如运营人员,当他也想使用 AI 能力,但是不会写代码,就无法使用这些AI能力。

03 解决方案和架构

为了解决以上痛点,我们实现了一个简化版本的解决方案:

从用户角度考虑,是否有这么一种方式:用户上传之后,通过某种方式驱动主动从OSS获取信息再进行处理,处理完成后将结果推送给客户。将此前的VIAPI接入全部删去,OSS 的接入步骤也有选择性地摒弃,因此不需要直接使用SDK,也不需要开发写代码,只需要通过可视化方式完成整合,即可实现AI的使用。

精简后的过程如上图所示,用户先通过可视化方式订阅一个主题(主题即为各个 API,比如某个具体的AI 能力)。然后上传文件(图像/视频)到OSS,通过数据驱动的方式,实现文件变更的感知以及数据处理,最终将结果推送给客户。

具体的技术实践如上图所示。首先在控制台以可视化的操作方式进行订阅,然后上传图像到OSS,通过跨云账号的方式监听OSS文件变动,并通过SDK引擎根据订阅配置调用具体的AI能力,等算法产生结果后,将结果数据推送给租户。

以上过程存在两个基本难点:

1.跨云账号的数据监听和访问:“用户的OSS”、“VIAPI”可以理解为两个云账号,而两个云账号之间是隔离的,默认拒绝访问。因此想要实现上述过程,需要通过某种授权机制实现可信的访问。

  1. AI的结果如何发送给客户:客户期望的数据形式以及数据的接收目的地不确定,有的客户希望发送到钉钉,有的客户希望发送到HTTP,有的客户希望发送到RocketMQ。此外,客户对字段方面的要求也不尽相同,可能只需要一个字段,也可能需要多个字段。因此如何针对这类个性化需求灵活地进行数据清洗和回调是一个难点。

EventBridge很好地解决了这些技术难点,从文件变动感知、事件通知、跨账号授权访问,到结果回调。此外,EventBridge还提供了安全的通信方式,以及事件溯源,从上传OSS到VIAPI的处理,再到结果的回调,数据具体发送到何处,都可以通过EventBridge进行追踪溯源。

上图展示了一个示例:用户OSS文件上传定义了一个事件,该事件通过可视化的方式进行配置。这样,建立在跨账号授权的基础上,用户在上传到OSS时就可以同步通知到VIAPI。

上图展示了当钉钉作为数据接收方式时,直接将图片发送到钉钉的效果。

对于线上的业务,后端可能更希望将最终处理结果发送到RocketMQ,从而提升开发效率。上图展示的为直接发送到RocketMQ的配置。

综上,整个架构实现如下:首先,用户在控制台配置订阅,然后上传到OSS,EventBridge会感知该过程,并将信息推送给用户,同时过程中获得了跨账号授权。SDK引擎会进行算法调用,最终结果回调EventBridge,EventBridge再通过多渠道将结果返回给用户。由于不同的客户之间账号授权信息要加密以及数据访问等都需要较高的安全机制来进行保障,因此我们做了一个SDK引擎来实现租户间的数据、授权的隔离,以及支持BYOK加解密。

通过以上实践,我们沉淀出了AI智能存储产品,能够大幅提高工作效率,并且在数据安全方面做了较好的隔离。对于非技术人员,也实现了零代码的支持,最终结果可以发送到钉钉、邮箱等。

我们借助EventBridge实现了VIAPI产品的AI智能存储产品,EventBridge对本次产品研发提供了非常大的支持,AI的使用也为客户带来更好的体验,深入实现了“拿来即用”以及AI 的“普惠”理念。

未来,我们会在品牌方和调用方面进行更多升级,提高技术效率,争取成为行业第一。

EventBridge助力阿里云视觉智能开放平台AI智能存储实践的更多相关文章

  1. 揭秘阿里云WAF背后神秘的AI智能防御体系

    背景 应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入.跨站等攻击仍然占据着较前的位置.WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在,也正是这些针对W ...

  2. 阿里云视觉智能开放平台的人脸1:N搜索的开源替代-Java版(文末赋开源地址)

    ​ 一.人脸检测相关概念 人脸检测(Face Detection)是检测出图像中人脸所在位置的一项技术,是人脸智能分析应用的核心组成部分,也是最基础的部分.人脸检测方法现在多种多样,常用的技术或工具大 ...

  3. AI加持的阿里云飞天大数据平台技术揭秘

    摘要:2019云栖大会大数据&AI专场,阿里云智能计算平台事业部研究员关涛.资深专家徐晟来为我们分享<AI加持的阿里云飞天大数据平台技术揭秘>.本文主要讲了三大部分,一是原创技术优 ...

  4. 微软与阿里云合作推出“开放应用模型(OAM)”

    英文原文:Announcing the Open Application Model (OAM) 原文标题:微软与阿里云合作推出“开放应用模型(OAM)” 用于 Kubernetes 及更多平台的应用 ...

  5. phpadmin 装了6666端口只能在IE打开,在阿里云改了 开放端口85好了

    phpadmin 装了6666端口只能在IE打开,在阿里云改了 开放端口85好了 非常用端口谷歌浏览器识别不了phpadmin

  6. 【阿里云配置端口开放】使用 iptables

    要知道: 1.目前(16年-12-10)阿里云主机只要有服务开启,所有端口是默认开启的.这样很不好,安全做法是,需要开启外网端口时,由开发人员去配置. 2.想要开放端口,就需要使用iptables命令 ...

  7. 阿里云之OSS 开放存储服务开发笔记

    在使用云服务以后,你不用考虑他是否能承受压力,而是费用.不要考虑是否被攻击,而是他的API实现.本人开发阿里云服务也走了些崎岖之路,写下以备忘之. 阿里云的开放存储服务可以提供文件的存储服务,开放了上 ...

  8. 阿里云服务器 端口开放问题 浏览器钟输入ip 访问服务器

    在这里先用一堆粗口强烈吐槽阿里云服务器控制台,屎一样的界面,简直非人类的操作.想找一个功能简直无从下手. 场景: 今天刚在阿里云买了个服务器,打算愉快的用五分钟将数据库,apache,安装完毕,然后去 ...

  9. PouchContainer 容器技术演进助力阿里云原生升级

    点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 作者 | 杨育兵(沈陵) 阿里巴巴高级技术专家 我们从 2016 年开始在集团推广全面的镜像化容器化,今年是集团全面镜像化容器 ...

  10. 阿里云上万个 Kubernetes 集群大规模管理实践

    点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 | 汤志敏,阿里 ...

随机推荐

  1. EPIC限免提示

    通过云函数每周定时推送限免内容到手机 import datetime import requests requests.packages.urllib3.disable_warnings() # da ...

  2. Ubuntu系统apt添加第三方PPA源

    一.前言 1.1目的 在使用Ubuntu时往往apt源会自带很多常用软件,但是大部分都是比较老的版本,本文主要是为了实现以下两个目的: 通过添加第三方的PPA源解决软件版本过低或者没有安装包的情况: ...

  3. KingbaseES V8R6C5单实例sys_backup.sh备份案例

    ​ 案例说明: KingbaseES V8R6C5版本中使用了securecmdd工具,用于主机节点间的通讯,默认端口8890.备份工具sys_backup.sh默认使用了securecmdd工具,对 ...

  4. [Golang] GO 语言工作环境的基本概念

    1. GOPATH 和 GOROOT(环境变量) 1. GOROOT go 编译器.标准库等安装的地方,所有我们写的代码其实都是文本文件而已,需要编译器等工具将其加工成可执行文件或者库文件才能使用,每 ...

  5. 利用curl命令访问Kubernetes API server

    kubectl 通过访问 Kubernetes API 来执行命令.我们也可以通过对应的TLS key, 使用curl 或是 golang client做同样的事. API 请求必须使用 JSON 格 ...

  6. Java泛型的总结

    泛型可以用于接口.类.方法上.还有泛型通配符这个概念 泛型的好处:可以在编译时检查 1.用于方法中,指定该方法中的形参的类型. 语法:修饰符 <代表泛型的变量> 返回值类型 方法名(参数) ...

  7. Jmix 中 REST API 的两种实现

    你知道吗,在 Jmix 中,REST API 有两种实现方式! 很多应用是采取前后端分离的方式进行开发.这种模式下,对前端的选择相对灵活,可以根据团队的擅长技能选择流行的 Angular/React/ ...

  8. 源码学习之MyBatis的底层查询原理

    导读 本文通过MyBatis一个低版本的bug(3.4.5之前的版本)入手,分析MyBatis的一次完整的查询流程,从配置文件的解析到一个查询的完整执行过程详细解读MyBatis的一次查询流程,通过本 ...

  9. InnoDB关于事务、锁、MVCC专题

    目录 并发所带来的的问题 脏写 脏读 不可重复读 幻读 事务 事务的特性 事务的四种隔离级别 锁 为什么要加锁 InnoDB的七种锁 不同事务RR和RC下加锁的规则 MVCC mvcc进一步提高并发 ...

  10. 洛谷P1962 斐波那契数列 (矩阵快速幂)

    学了矩阵,练一下手... 1 #include<bits/stdc++.h> 2 typedef long long ll; 3 const ll mod=1e9+7; 4 using n ...