当前位置: 首页 > 后端技术 > Java

EventBridge助力阿里云视觉智能开放平台AI智能存储实践

时间:2023-04-01 18:29:09 Java

本文作者:阿里巴巴达摩院技术专家李健01视觉智能开放平台(VIAPI)业务场景介绍阿里云视觉智能开放平台(简称VIAPI)是基于以往众多技术实践经验积累的AI能力平台。目前,整个平台涵盖城市大脑、数字营销、金融娱乐等行业。目标群体包括企业主、开发商和个人。整个平台共有14个类别,包括人脸与人体、物体检测、文字识别等,目前平台拥有约200个API。第一个能力是智能家居场景下的人、车、宠物检测。现在网购的IPC智能摄像头,比如老人跌倒检测,宠物移动检测,或者安防中的外星人入侵检测,都属于这个范畴。第二个能力是图像分割(匹配)。比如证件照可以通过手机拍照然后裁剪来实现。除了抠图应用,在视频分析课程中也有很多应用。例如,在线视频会议期间,您可以将背景更改为海边或您喜欢的其他背景。以上能力都是基于视频分割的。第三个能力是超分辨率。可以对低分辨率的老照片进行超分辨率输出,也可以对低分辨率的影视剧进行超分辨率输出,获得更清晰的画质。第四种能力是OCR。比如银行卡卡号的识别,身份证的信息识别,都采用了OCR技术。在办公室,OCR技术还可以应用于发票和一般人事名片。02用户痛点分析在使用VIAPI时,客户希望将自己的多媒体文件直接上传到VIAPI。处理完成后,将结果直接推送给客户。但实际使用的技术方法是这样的:用户首先需要下载十几个SDK,然后开发集成几十个甚至上百个API。在线发布。除了使用VIAPI-SDK,还需要接入OSS。因为目前CV的大部分AI能力都是基于视频或者图片的,所以我们官方支持OSS存储来进行文件存储。在以上过程中,用户主要存在三个痛点。1.编码:在集成VIAPI和OSSSDK的过程中,开发者很容易混淆Endpoint产品。在请求过程中,需要安全通信签名。因为概念比较多,所以比较容易出错,错误的地方也很多。也很容易打消热情。重复性工作:整个接入工作中每个client都做同样的事情,所以无论从API还是用户的角度来看,这都是重复性的工作,应该简化。门槛很高。技术人员虽然会写代码,但是面临的概念很多,第一次上手的成本比较高。对于非技术人员,比如运营人员,如果他也想使用AI能力,但是不会写代码,他就不能使用这些AI能力。03解决方案及架构针对以上痛点,我们实现了一个简化版的解决方案:从用户的角度来看,有没有这样一种方式:用户上传后,驱动主动从OSS中获取信息某种方式,然后处理它。处理完成后,将结果推送给客户端。之前的VIAPI接入全部删除,OSS接入步骤也选择性舍弃,无需直接使用SDK,无需开发编写代码。只需以可视化的方式完成整合,即可实现AI的使用。简化的流程如上图所示。用户首先通过可视化的方式订阅一个主题(一个主题就是每一个API,比如一个特定的AI能力)。然后将文件(图片/视频)上传到OSS,以数据驱动的方式实现文件变化感知和数据处理,最终将结果推送给客户。具体技术做法如上图所示。首先在控制台以可视化操作方式订阅,然后上传图片到OSS,通过跨云账号监控OSS文件变化,根据订阅配置使用SDK引擎调用特定的AI能力。数据被推送给租户。上述过程有两个基本难点:1.跨云账号的数据监控和访问:“用户的OSS”和“VIAPI”可以理解为两个云账号,两个云账号是隔离的,默认拒绝访问.因此,为了实现上述过程,需要通过某种授权机制实现可信访问。如何将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为该产品的开发提供了极大的支持。“包容”的理念。未来,我们将在品牌和号召方面进行更多的升级,提升技术效率,力争成为行业第一。