基础功能单元库
ModelBox框架包含一套基础功能单元库,提供一些常用的功能单元,用户可以直接使用这些功能单元,快速完成自身业务开发。根据功能单元的类型分为:数据接入、数据输出、数据处理和AI推理功能单元。
数据接入
用户进行推理的原始数据类型主要分为视频、图片、文字、声音等多媒体数据,这些数据可能存放在不同的数据源,如本地文件、摄像头的RTSP 流、云上数据存储服务等,ModelBox需要支持能够直接从常用的数据源获取多媒体数据地址递交给后面的功能单元处理。
ModelBox数据源输入功能单元支持表1常用的输入类型。
表 1 数据接入类型
同时数据接入功能单元支持用户自定义扩展能力,开发者可以增量开发第三方的数据输入类型。
数据输出
除了数据接入功能单元外,ModelBox框架还支持数据输出功能单元,支持将用户的分析结果输出到第三方服务,进行存储或者下一步分析。输出结果类型包含多媒体文件、消息等,常用输出方式如表2所示。
表 2 数据输出类型
同时数据输出功能单元支持用户自定义扩展能力,开发者可以增量开发第三方的数据输出类型。
数据处理
ModelBox提供常用的多媒体数据处理功能:
- 视频:视频解封装、视频解码、视频编码
- 音频:音频解封装、音频解码、音频编码
- 图片:图片缩放、图片裁剪、图片格式转换、图片填充、图片归一化、图片取均值
视频处理和图片处理支持CPU、GPU、Ascend芯片等硬件加速。
AI推理
ModelBox提供常用AI推理功能单元给开发者使用,具体如表3所示。
表 3 AI推理
其中,TensorRT推理功能单元支持自定义插件,用来解决其他框架模型转TensorRT模型后模型推理算子不支持的场景。
除了上述推理框架外,ModelBox推理基础功能单元还提供推理功能单元基类,支持开发者快速开发自己的推理功能单元。