热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PaddleLite新增ARM端图像预处理库

PaddleLite是飞桨的端侧推理引擎,具有高性能、多硬件、轻量级的特点,它支持飞桨TensorFlowCaffeONNX等模型在ARMCPU,Mal

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>描述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。


推荐阅读
  • 本文提供了PyTorch框架中常用的预训练模型的下载链接及详细使用指南,涵盖ResNet、Inception、DenseNet、AlexNet、VGGNet等六大分类模型。每种模型的预训练参数均经过精心调优,适用于多种计算机视觉任务。文章不仅介绍了模型的下载方式,还详细说明了如何在实际项目中高效地加载和使用这些模型,为开发者提供全面的技术支持。 ... [详细]
  • 如何使用 net.sf.extjwnl.data.Word 类及其代码示例详解 ... [详细]
  • 通过整合JavaFX与Swing,我们成功地将现有的Swing应用程序组件进行了现代化改造。此次升级不仅提升了用户界面的美观性和交互性,还确保了与原有Swing应用程序的无缝集成,为开发高质量的Java桌面应用提供了坚实的基础。 ... [详细]
  • Git基础操作指南:掌握必备技能
    掌握 Git 基础操作是每个开发者必备的技能。本文详细介绍了 Git 的基本命令和使用方法,包括初始化仓库、配置用户信息、添加文件、提交更改以及查看版本历史等关键步骤。通过这些操作,读者可以快速上手并高效管理代码版本。例如,使用 `git config --global user.name` 和 `git config --global user.email` 来设置全局用户名和邮箱,确保每次提交时都能正确标识提交者信息。 ... [详细]
  • 本文介绍了Android动画的基本概念及其主要类型。Android动画主要包括三种形式:视图动画(也称为补间动画或Tween动画),主要通过改变视图的属性来实现动态效果;帧动画,通过顺序播放一系列预定义的图像来模拟动画效果;以及属性动画,通过对对象的属性进行平滑过渡来创建更加复杂的动画效果。每种类型的动画都有其独特的应用场景和实现方式,开发者可以根据具体需求选择合适的动画类型。 ... [详细]
  • jQuery Flot 数据可视化插件:高效绘制图表的专业工具
    jQuery Flot 是一款高效的数据可视化插件,专为绘制各种图表而设计。该工具支持丰富的图表类型和自定义选项,适用于多种应用场景。用户可以通过其官方网站获取示例代码和下载资源,以便快速上手和使用。 ... [详细]
  • 深入解析经典卷积神经网络及其实现代码
    深入解析经典卷积神经网络及其实现代码 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • 本文将详细介绍在Android应用中添加自定义返回按钮的方法,帮助开发者更好地理解和实现这一功能。通过具体的代码示例和步骤说明,本文旨在为初学者提供清晰的指导,确保他们在开发过程中能够顺利集成返回按钮,提升用户体验。 ... [详细]
  • 本项目在Java Maven框架下,利用POI库实现了Excel数据的高效导入与导出功能。通过优化数据处理流程,提升了数据操作的性能和稳定性。项目已发布至GitHub,当前最新版本为0.0.5。该项目不仅适用于小型应用,也可扩展用于大型企业级系统,提供了灵活的数据管理解决方案。GitHub地址:https://github.com/83945105/holygrail,Maven坐标:`com.github.83945105:holygrail:0.0.5`。 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • 在Windows命令行中,通过Conda工具可以高效地管理和操作虚拟环境。具体步骤包括:1. 列出现有虚拟环境:`conda env list`;2. 创建新虚拟环境:`conda create --name 环境名`;3. 删除虚拟环境:`conda env remove --name 环境名`。这些命令不仅简化了环境管理流程,还提高了开发效率。此外,Conda还支持环境文件导出和导入,方便在不同机器间迁移配置。 ... [详细]
  • 【高效构建全面的iOS直播应用】(美颜功能深度解析)
    本文深入探讨了如何高效构建全面的iOS直播应用,特别聚焦于美颜功能的技术实现。通过详细解析美颜算法和优化策略,帮助开发者快速掌握关键技术和实现方法,提升用户体验。适合对直播应用开发感兴趣的开发者阅读。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
author-avatar
haohao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有