Paddle Lite新增ARM端图像预处理库

Paddle Lite 是飞桨的端侧推理引擎,具有高性能、多硬件、轻量级的特点,它支持飞桨/TensorFlow/Caffe/ONNX等模型在ARM CPU, Mali GPU, Adreno GPU, Huawei NPU 等多种硬件上的推理部署,性能达到业内领先。

目前Paddle Lite保持快速的迭代优化升级,距离正式版2.0.0发布仅一个月,Paddle Lite又一次发布了2.1.0版本。

Paddle Lite的Github链接:

https://github.com/PaddlePaddle/Paddle-Lite

01 Paddle Lite v2.1.0的重点功能

1.新增ARM端图像预处理库,用于图像预处理,它可以

  • 支持多种颜色空间转换,如NV12_To_RGB、GRAR_To_RGB等

  • 支持多种图像预处理操作,如图像旋转、翻转等

  • 支持图像数据到Tensor的转换,如RGB_To_NCHW(Tensor)等

  • 相关功能性能优于OpenCV。对1920x 1080的BGR图像,做如下操作:

o   Resize:1920x 1080 --540x960

o   Rotate:1920x 1080 旋转90度

o   Flip:沿xy轴对角线翻转

OpenCV在ARM v7 4线程下的性能对比数据如下图所示:

2.新增按模型集合裁剪预测库的功能。开发者可以通过该功能只保留给定多个模型线上预测所需要的op和kernel,从而压缩预测库体积。

3.优化报错信息,在Android中支持原生系统报错。

02 Paddle Lite v2.1.0更多新特性一览

1.基础功能升级

a.新增op

  • x86 tanh, gelu

  • x86 stack

b.op升级,与飞桨 v1.6对齐

  • reshape支持输入用std::vector<Tensor<int32>>描述shape信息

  • slice支持starts、ends用Tensor、TensorList描述

  • lookup_table 去除最后一维必须为1的限制,保留原op,新增op为lookup_table_v2

  • resize_bilinear和resize_nearest,增加用TensorList和Tensor描述resize的shape信息

c.新增模型

  • x86增加MobileNetV1, MobileNetV2支持


d.API对齐

Python、Java、C++三种 API核心接口对齐:

  • MobileConfig模式下,Python , Java,C++接口完整对齐,适用于移动端的轻量级部署场景 

  • CxxConfig 模式下,Python,C++接口完整对齐,适用于非轻量级部署场景

e.升级量化模型支持

  • 支持飞桨训练后量化方法产出的量化模型,比如MobileNetV1、 MobileNetV2、ReseNt50

  • 支持飞桨量化训练方法产出权重量化方式为channel_wise_abs_max的量化模型

f.预测库整理

重新整理核心库包含的(basic) op&kernel,使基础预测库(build_extra=OFF)支持CV类9个经典模型(包括飞桨原生模型和对应的 X2Paddle第三方转化模型)和3个量化模型,且tiny_publish下预测动态库体积不变。支持模型如下:

  • 9个经典模型及其飞桨转化模型:MobileNetV1、MobileNetV2、MnasNet、ResNet50、YOLOv3、SSD_MobileNetV1、 U-Net、SqueezeNet_v1.1、ShuffleNet_v2

  • 3个int8量化模型:MobileNetV1、MobileNetV2、ResNet50

2.性能优化

主流模型的性能优化持续迭代。以MobileNetV1为例,性能保持领先,如下图所示:

改进ARM CPU conv3x3实现方式,ResNet、SqueezeNet等模型性能提升。ResNet50性能如下图所示:

3.编译

  • X86与CUDA编译时第三方库下载加速 (X86编译相关的第三方库Eigen、MKLML、xxHash改为从百度云地址下载,加速编译过程)

  • NPU的编译支持华为官方最新版HiAI DDK 310

 4.文档

  • 新增Pass介绍与注册方法文档:

    https://paddlepaddle.github.io/Paddle-Lite/v2.1.0/add_new_pass/

  • 补齐了 Cxx API文档:

    https://paddlepaddle.github.io/Paddle-Lite/v2.1.0/cxx_api_doc/

  • 新增CV图像预处理库API接口介绍文档:

    https://paddlepaddle.github.io/Paddle-Lite/v2.1.0/cv/

  • 新增部署训练后量化模型的使用示例文档:

    https://paddlepaddle.github.io/Paddle-Lite/v2.1.0/model_quantization/#%E8%AE%AD%E7%BB%83%E5%90%8E%E9%87%8F%E5%8C%96

5.Bug修复

修补了一些上个版本中存在的Bug。 

如果您想了解更多关于Paddle Lite的相关内容,请参阅以下文档:

  • Paddle Lite的Github链接:

    https://github.com/PaddlePaddle/Paddle-Lite

  • Paddle Lite的文档链接:

    https://paddlepaddle.github.io/Paddle-Lite/

  • Paddle Lite Demo的链接:

    https://github.com/PaddlePaddle/Paddle-Lite-Demo

  • 飞桨的Github链接:

    https://github.com/paddlepaddle

如果使用过程中遇到任何问题,大家可通过Paddle Lite官方QQ群与开发人员进行技术交流及问题反馈,群号:696965088。

PaddlePaddle
PaddlePaddle

PaddlePaddle是百度独立研发的深度学习平台,易用,高效,灵活可伸缩,可支持海量图像识别分类、机器翻译和自动驾驶等多个领域业务需求,现已全面开源。

工程模型优化百度PaddlePaddle
相关数据
华为机构

华为创立于1987年,是全球领先的ICT(信息与通信)基础设施和智能终端提供商,致力于把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界。目前华为有19.4万员工,业务遍及170多个国家和地区,服务30多亿人口。

https://www.huawei.com/cn/
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

SSD技术

一种计算机视觉模型。论文发表于 2015 年(Wei Liu et al.)

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

YOLO技术

YOLO 模型最早是由 Joseph Redmon 等人在 2015 年发布的,并在随后的两篇论文中进行了修订。

OpenCV技术

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。

推理引擎技术

推理机是实施问题求解的核心执行机构,常见于专家系统。它是对知识进行解释的程序,根据知识的语义,对按一定策略找到的知识进行解释执行,并把结果记录到动态库的适当空间中去。

百度机构

百度是全球最大的中文搜索引擎,是一家互联网综合信息服务公司,更是全球领先的人工智能平台型公司。2000年1月1日创立于中关村,公司创始人李彦宏拥有“超链分析”技术专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

https://www.baidu.com/
推荐文章
暂无评论
暂无评论~