一、导语
近日,阿里云发布了智能媒体管理(Intelligent Media Management)服务, 通过分布式计算处理能力关联授权的云存储,提供便捷的海量多媒体数据一键分析,并通过该分析过程构建价值元数据,更好支撑内容检索。
二、背景介绍
随着智能手机的普及、无人机的流行,业界产生了海量的图片、视频等多媒体数据;同时,网络也在飞速发展,特别是4G的推广,让这些数据的保存、分享发生了巨大的变化,从而也带来了媒体数据各行业的新趋势。我们亲身体验到通信方式从短信变成语音,浏览内容从文字变成图片、从JPG静态图片变成GIF动态图片、再到短视频;从去年开始,直播也火热起来,成为一种流行的时尚。这些迅速的变化趋势,反应了一个共同的特点,就是“交互的信息量越丰富、越实时,用户越容易被吸引,越会产生新的价值”。
如图中所示行业,都在利用最新的人工智能(Artificial Intelligence, AI)技术产生新的价值,同时也引入新的需求:
- 手机相册。它早已不是简单的图片备份,iOS通过AI构建人脸相册、场景标签、编辑应用,变成吸引客户的亮点,成为新的基线。
- 视频监控。它不再只是记录取证工具,而是利用AI发展为智慧城市,变成了智慧的眼睛,要管理整个城市的交通信息。
- 直播应用。个人分享已不仅仅是博客、微博的文本形式,更是转变为快速直观的视频模式,这背后需要更高、更快的直播内容理解、审核需求。
2.1 数据处理场景需求
对于图片分享社区应用场景,最基本的功能是提供备份、分享,但这并不能带来更多的价值。只有提供更多的图片处理能力,比如主体剪裁、人脸识别、滤镜功能、风格渲染、视频合成等数据处理功能,如下图所示。这些亮点将为使用者带来“生活不止眼前的苟且,还有依然在你身边的美好”回忆,从而让应用更具吸引力。
2.2 内容检索场景需求
如今的综艺节目非常火爆,例如跑男、极限挑战等,每期拍摄的素材量千倍于实际播出量;要在这海量素材中快速扫描、找到爆点,需要相当大的工作量,例如当前的人肉检索低效率方式需要处理几周的时间。如果能够基于AI分析语音、人物、场景得到结构化信息,并索引管理起来,支撑更好的检索,它将会大大的提高素材的处理效率。
同样,在线教育等领域,对于老师、演讲者的材料、语音、视频内容,如果能够提供快速的解析索引能力,那么它将给学习者提供便捷的专场内容描述、快速定位关键术语、演讲笔记同步提取等亮点。
三、客户痛点分析
要满足上述场景需求,当前应用架构设计时,需要选型不同数据处理功能的厂家(包括AI厂家)进行集成、或者自研开发,对于内容检索,还需要分析场景细节需求,引入数据库设计和开发。这都需要很好的技术能力,以及开发团队的支撑,并解决如下的痛点。
3.1 多厂家管理痛点
图片应用将数据保存到云存储后,要选择不同厂家的AI分析能力,支撑业务和监管的需求。应用通常会在云服务器(Elastic Compute Service,ECS)上部署AI厂家的软件包,或者直接调用AI厂家提供的服务,但需要解决如下问题:
- 接口不统一。因为存在多厂家的选型,需要考虑不同厂家接口的兼容性。
- 资源浪费。同一张图片会被多次读取,甚至是传输到外部网络,浪费网络带宽,提高使用成本。
- 无存量数据的低成本批量处理方案。采用厂商的同步处理价格高昂,需要提供存量数据的低成本批量处理方案,接受异步接口返回检测结果(比如针对存量的OSS桶里面的所有图片,进行批量鉴黄)。
3.2 复杂元数据管理痛点
智能网盘通过自己的用户鉴权服务允许客户登录,然后采用基础数据管理把图片、视频上传到云存储OSS中。为了提供人脸分组、标签分组等搜索功能,需要提供各类元数据管理,定义基于场景的表格式、处理数据库的异常,它将带来如下的开发难度:
- 元数据表设计难度大。针对不同的元数据,需要分类设计各类表结构存储,有相当的技术门槛。
- 多维度元数据管理有挑战。需要组合多种元数据,进行多维度查询处理,存在设计挑战。
- 维护元数据的的一致性难题。解决这些元数据在异常场景下的异常处理,是系统级难题。
四、设计目标
通过上述的场景和痛点分析,智能媒体管理(IMM)服务提取了6个关键点作为设计目标:
- 海量数据,支撑云存储上的海量数据处理。
- 端云拉通,能够让端和云进行有效的协作。
- 场景结合,基于场景构建元数据管理便于快速接入。
- 一键处理,简化配置和使用、提高系统易用性。
- 智能分析,引入业界领先的处理能力,特别是AI能力。
- 标准统一,访问接口统一为阿里云的标准。
4.1 功能描述
对于云存储上的海量数据,通过授权访问的安全设计,让数据处理分析服务能够有权限访问数据,在此之上构建数据智能处理框架,该框架针对离线处理优化设计,同时支持实时处理能力。基于该处理框架,引入了业界领先的数据处理能力,包括各种AI能力。利用离线处理能力关联授权的云存储,可以提供便捷的存量数据一键分析,通过该分析过程构建价值元数据,支撑更好的内容检索。通过这样的设计,从而提供如下功能:
- 普惠AI算法,提供丰富功能。人脸分组、图片打标、版权、鉴黄等能力。
- 价值元数据,为客户带来新的增长点。整合价值元数据,提供智能分析搜索。
- OFFICE文档处理,简化客户使用。提供典型的OFFICE文件格式转换,便于移动设备浏览办公文档。
- 场景化、一键式处理,提高易用性。基于场景模版,结合实时、离线处理引擎,一键生成网盘关键元数据。
五、架构介绍
如图是IMM服务的架构依赖上下文,服务本身的架构分为2层:处理引擎、元数据索引。
5.1 架构依赖上下文
- 对下依赖阿里云的对象存储、文件存储等服务,通过安全的机制访问里面存储的非结构化数据(例如图片、视频),提取价值信息。
- 对上依赖场景理解,进行封装,支撑视频网盘、手机相册、社交图库、家庭监控等图片、视频应用场景,为它们产生新的价值。
5.2 处理引擎层
基于阿里云存储,就近构建计算框架,该框架支持批量异步处理、准实时同步处理,在一键关联云存储(例如,指定Bucket的目录前缀、指定Bucket的某个对象)后,实现快速的自动数据处理,通过整合业界领先的数据处理算法,处理引擎提供如下功能。
- OFFICE文档格式转换。支持将OFFICE文档转换为JPG图片格式,从而更好的支持网盘的文档预览功能。
- 大图处理。支持将超大的图片进行切割、缩放处理,友好的支撑相册、图库场景的精细看图功能。
- 标签检测。通过人工智能技术,识别图片、视频中的物品标签,从而实现机器的制动打标,更好的支撑推荐应用。
- 人脸检测。通过人工智能技术,识别图片、视频中的人脸,检测出人脸框,判断人脸姿势、年龄、性别等属性。
5.3 元数据索引层
基于处理引擎提供的功能,通过对场景的深入理解和梳理,IMM封装了场景的元数据设计,对外提供场景的元数据访问接口,简化场景应用的设计难度、无须关注元数据索引数据库的运维工作,目前支持如下的元数据索引。
- 人脸分组索引。构建元数据集合,然后调用人脸分组的接口分析图片,把得到的元数据加入到该元数据集合中,从而可以得到该集合中相似的人脸。通过该索引,可以快速的支撑网盘的人脸相册、家庭监控的陌生人检测、甚至新零售的顾客管理等场景。
- 标签分组索引。构建元数据集合,然后调用标签分组的索引接口分析图片,把得到的元数据加入到该元数据集合中,从而可以根据标签搜索图片。通过该索引,可以快速的支撑网盘的场景相册、家庭监控的宠物跟踪、甚至暴力、恐怖、色情图片等标签的搜索。
5.4 调度框架
IMM的所有数据处理请求都在调度框架下执行,例如上述架构中提到的处理引擎层、元数据索引层请求,它由2部分组成:
- 运行实例(Instance)。运行实例是运行指定数据处理功能的节点,例如运行图片打标功能的节点。它可以是虚拟机、或者Docker,能够采用预留类型、或者Spot竞价类型的实例,支持部署在阿里云的VPC(Virtual Private Cloud)环境,保证数据处理功能的安全性、隔离性。
- 调度控制器(Schedule Controller)。调度控制器负责把IMM接收到的请求分发到指定功能的实例上,它支持接收同步、异步的请求,提供准实时、离线的调度。针对负载的变化,实现了实例资源池的弹性伸缩、故障处理、自动升级等能力。
当调度框架收到同步的请求时,例如DetectTag进行图片打标分析时。调度框架将会把请求分发到请求队列的Pipeline,然后根据后端实例的节点状态、负载情况快速转发请求,从而达到准实时调度的能力。为了保证请求的低时延,以及请求的成功率,通常选择预留的实例。
当调度框架收到异步的请求时,例如CreateTagJob指定OSS的桶、前缀进行批量的图片打标分析时。调度框架将会把请求放到调度器,调度器遍历OSS桶、前缀的对象,然后生成单个对象的数据处理请求并分发到多个请求队列中,再根据后端实例的节点状态、负载情况快速向多个实例转发请求,从而达到离线调度的能力。为了保证离线调度的成本,通常选择Spot类型的竞价实例。
通过上述调度控制和数据处理分离的架构,调度框架提供如下亮点:
- 准实时、离线调度。针对离线处理性价比竞争力的优化设计下,也能提供准实时能力,实现数据处理的闭环。
- 同步、异步请求。支撑一键式的异步处理需求同时,还提供了同步请求的灵活性。
- 数据处理能力的安全性。利用VPC部署数据处理的实例,保证了资源的隔离、安全的屏蔽。
六、如何使用
IMM提供控制台操作和API接口,通过控制台快速的创建IMM的项目,然后体验IMM的数据处理功能。
6.1 控制台使用
登录阿里云控制台,执行如下操作:
- 第一步,开通智能媒体管理服务。开通后,即可使用IMM提供的功能。
- 第二步,创建项目。使用IMM必须要创建项目,它是IMM资源管理、计费的基本单元。
创建了项目,就可以体验IMM支持的功能:
- 格式预览。支持OFFICE文档转换,并用图片方式预览。
- 人脸检测。检测照片中的人脸,识别年龄、性别,眼部状态信息。
- 图片打标。检测图片包含的标签信息,以及置信度值。
详细的控制台使用介绍,请参考 IMM 快速开始。
6.2 API使用
6.2.1 IMM的API调用方法
调用IMM的API需要遵守阿里云的API规范,请参考 IMM API 调用,请您注意调用时的参数,特别是签名。
如下是IMM典型功能的API调用示例。
6.2.2 文件格式转换CreateFormatConvertJob
POST https://imm.cn-shanghai.aliyuncs.com?Action=CreateFormatConvertJob
&Project=test
&SrcUri="oss://bucket1/test.pptx"
&TgtType=jpg
&TgtUri="oss://bucket1/imm-format-convert-tgt/session123/"
&ExternalID=aaa
该功能接口的详细信息,请参考 CreateFormatConvertJob 。
6.2.3 图片打标DetectTag
POST https://imm.cn-shanghai.aliyuncs.com?Action=DetectTag
&Project=test
&SrcUri=["oss://bucket1/1.jpg"]
该功能接口的详细信息,请参考 DetectTag。
6.2.4 人脸检测DetectFace
POST https://imm.cn-shanghai.aliyuncs.com?Action=DetectFace
&Project=test
&SrcUri=["oss://bucket1/A.jpg"]
该功能接口的详细信息,请参考 DetectFace。
七、立即体验
现在产品已经在阿里云官网正式开始公测,点击这里 立即体验。
八、后续规划
下一阶段,IMM将和OSS集成拉通:
- 在OSS控制台集成IMM功能。实现OFFICE文档的预览,媒体对象的AI功能。
- 在OSS提供存量数据的IMM处理对接。可以通过OSS的控制台,选择某个桶或者其目录,调用IMM的批量异步任务,例如批量鉴黄,从而享受高性价比、便捷的数据处理。
- 在OSS的API中拉通。调用oss的x-oss-process处理引擎时,调用到IMM的API进行处理。
通过这样端的端的集成,从而让您在云上的管理更加易用。