Paddle Lite新增ARM端圖像預處理庫

 

Paddle Lite 是飛槳的端側推理引擎,具備高性能、多硬件、輕量級的特色,它支持飛槳/TensorFlow/Caffe/ONNX等模型在ARM CPU, Mali GPU, Adreno GPU, Huawei NPU 等多種硬件上的推理部署,性能達到業內領先。git

 

目前Paddle Lite保持快速的迭代優化升級,距離正式版2.0.0發佈僅一個月,Paddle Lite又一次發佈了2.1.0版本。github

 

Paddle Lite的Github連接:api

https://github.com/PaddlePaddle/Paddle-Lite性能優化

 

01性能

Paddle Lite v2.1.0的重點功能

 

1.新增ARM端圖像預處理庫,用於圖像預處理,它能夠優化

 

  • 支持多種顏色空間轉換,如NV12_To_RGB、GRAR_To_RGB等ui

  • 支持多種圖像預處理操做,如圖像旋轉、翻轉等spa

  • 支持圖像數據到Tensor的轉換,如RGB_To_NCHW(Tensor)等.net

  • 相關功能性能優於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.升級量化模型支持

  • 支持飛槳訓練後量化方法產出的量化模型,好比MobileNetV一、 MobileNetV二、ReseNt50

  • 支持飛槳量化訓練方法產出權重量化方式爲channel_wise_abs_max的量化模型

 

f.預測庫整理

 

從新整理核心庫包含的(basic) op&kernel,使基礎預測庫(build_extra=OFF)支持CV類9個經典模型(包括飛槳原生模型和對應的 X2Paddle第三方轉化模型)和3個量化模型,且tiny_publish下預測動態庫體積不變。支持模型以下:

 

  • 9個經典模型及其飛槳轉化模型:MobileNetV一、MobileNetV二、MnasNet、ResNet50、YOLOv三、SSD_MobileNetV一、 U-Net、SqueezeNet_v1.一、ShuffleNet_v2

     

  • 3個int8量化模型:MobileNetV一、MobileNetV二、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 官網,瞭解更多相關內容

相關文章
相關標籤/搜索