技術文章

當前頁面: 首頁 >技術文章 >NXP iMX8基于eIQ框架測試Machine Learning

NXP iMX8基于eIQ框架測試Machine Learning

供稿:韜睿(上海)計算機科技有限公司 2021/3/11 14:14:36

0 人氣:2

  • 關鍵詞: iMX8 Tensorflow eIQ
  • 摘要:隨著嵌入式處理器性能的提升甚至一些嵌入式處理器已經開始集成針對人工智能和機器學習的硬件加速單元NPU,機器學習應用在嵌入式邊緣設備的應用也慢慢展現。為此,NXP也發布了eIQ for i.MX軟件工具包,用于在NXP的i.MX系列嵌入式處理器上面來支持目前比較常見的各種機器學習推理引擎

1). 簡介

隨著嵌入式處理器性能的提升甚至一些嵌入式處理器已經開始集成針對人工智能和機器學習的硬件加速單元NPU,機器學習應用在嵌入式邊緣設備的應用也慢慢展現。為此,NXP也發布了eIQ for i.MX軟件工具包,用于在NXPi.MX系列嵌入式處理器上面來支持目前比較常見的各種機器學習推理引擎,比如TensorFlow、Caffe等,具體的支持情況可以參考下圖,其中ArmNN、TensorFlowLite、ONNX可以支持GPU/NPU硬件加速,而OpenCVPyTorch目前只支持在CPU運行。

image001.png

 

NXP eIQ協議棧通過Neural Network Runtime (NNRT)模塊來對不同的前端Runtime進行硬件加速支持,具體的架構可以參考下圖,對于很多機器學習算法場景,通過硬件加速引擎可以很大提升算法推理性能。

image003.png

 

本文的演示的平臺來自于Toradex Apalis iMX8 ARM嵌入式平臺,這是一個基于NXP iMX8QM ARM處理器,支持Cortex-A72+A53Coretex-M4架構的計算機模塊平臺。

 

 

2). 準備

a). Apalis iMX8QM 4GB WB IT ARM核心版配合Ioxra 載板,連接調試串口UART1(載板X22)到開發主機方便調試。載板連接HDMI顯示器。

 

 

3). Apalis iMX8 Ycoto Linux 編譯部署以及配置

a). Apalis iMX8 Ycoto Linux 通過Ycoto/Openembedded 框架編譯,具體的配置方法請參考這里,參考如下修改后編譯Reference-Multimedia image鏡像

./ iMX8 Ycoto layer 中默認沒有包含NXP Machine LearningOpenCV 4.4.0版本支持,因此首先需要通過下面修改添加相關layer,詳細的NXP Ycoto指南請參考i.MX Yocto Project User's Guide Rev. L5.4.70_2.3.0

-------------------------------

### download related layers from NXP official repository

$ repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-zeus -m imx-5.4.70-2.3.0.xml

$ repo sync

$ DISTRO=fsl-imx-wayland MACHINE=imx8qmmek source imx-setup-release.sh -b build

 

### copy mechine learning layer meta-ml to Toradex ycoto environment

$ cp -r …/sources/meta-imx/meta-ml …/oe-core/layers/

 

### modify meta-ml layer …/layers/meta-ml/conf/layer.conf file to support ycoto dunfell

--- a/layers/meta-ml/conf/layer.conf        2021-03-03 15:50:59.718815084 +0800

+++ b/layers/meta-ml/conf/layer.conf     2021-03-03 16:55:46.791158625 +0800

@@ -8,4 +8,4 @@

 BBFILE_COLLECTIONS += "meta-ml"

 BBFILE_PATTERN_meta-ml := "^${LAYERDIR}/"

 BBFILE_PRIORITY_meta-ml = "8"

-LAYERSERIES_COMPAT_meta-ml = "warrior zeus"

+LAYERSERIES_COMPAT_meta-ml = "warrior zeus dunfell"

 

### copy opencv 4.4.0 related to Toradex ycoto environment

$ cp -r …/sources/meta-imx/meta-bsp/recipes-support/opencv/ …/oe-core/layers/meta-toradex-nxp/recipes-support/opencv/

 

### modify build/conf/bblayer.conf to add above extra layers

--- a/build/conf/bblayers.conf   

+++ b/build/conf/bblayers.conf   

@@ -24,6 +24,9 @@

   ${TOPDIR}/../layers/meta-openembedded/meta-python \

   ${TOPDIR}/../layers/meta-freescale-distro \

   ${TOPDIR}/../layers/meta-toradex-demos \

+  ${TOPDIR}/../layers/meta-ml \

   ${TOPDIR}/../layers/meta-qt5 \

   \

   \

-------------------------------

 

./ 修改 local.conf,增加mechine learning 相關支持

-------------------------------

### add python and opencv support ###

+IMAGE_INSTALL_append = " python3 python3-pip opencv python3-opencv python3-pillow"

 

### add eIQ support ###

+IMAGE_INSTALL_append = " arm-compute-library nn-imx tensorflow-lite armnn onnxruntime"

+PACKAGECONFIG_append_pn-opencv_mx8 = " dnn jasper qt5 test"

### remove opencl conflict ###

+PACKAGECONFIG_remove_pn-opencv_mx8 = "opencl"

+PACKAGECONFIG_remove_pn-arm-compute-library = "opencl"

 

### option, add onnxruntime and armnn dev support to SDK ###

+TOOLCHAIN_TARGET_TASK_append += " onnxruntime-dev armnn-dev "

 

ACCEPT_FSL_EULA = "1"

-------------------------------

 

./ 編譯imageSDK

-------------------------------

# compile Reference-Multimedia image

$ bitbake bitbake tdx-reference-multimedia-image

 

# compile SDK

bitbake tdx-reference-multimedia-image -c populate_sdk

-------------------------------

 

b). Ycoto Linux image部署

參考這里通過Toradex Easy installer將上面編譯好的image更新部署到模塊,目前最新穩定版本為Ycoto Linux V5.1,最新測試版本為Ycoto Linux V5.2

 

 

4). TensorFlow Lite 測試

a). NXP iMX8 eIQ TensorFlow Lite 支持特性和協議??驁D如下

./ TensorFlow Lite v2.3.1

./ Multithreaded computation with acceleration using Arm Neon SIMD instructions on Cortex-A cores

./ Parallel computation using GPU/NPU hardware acceleration (on shader or convolution units)

./ C++ and Python API (supported Python version 3)

./ Per-tensor and Per-channel quantized models support

image005.png

 

b). 示例應用測試

./ Image預裝的TensorFlow Lite測試示例應用位置

/usr/bin/tensorflow-lite-2.3.1/examples

 

./ 基于mobilenet model測試 label_image”示例應用

-------------------------------

$ cd /usr/bin/tensorflow-lite-2.3.1/examples/

 

### Run on CPU

$ ./label_image -m mobilenet_v1_1.0_224_quant.tflite -i grace_hopper.bmp -l labels.txt

Loaded model mobilenet_v1_1.0_224_quant.tflite

resolved reporter

invoked

average time: 44.999 ms

0.780392: 653 military uniform

0.105882: 907 Windsor tie

0.0156863: 458 bow tie

0.0117647: 466 bulletproof vest

0.00784314: 835 suit

 

### Run with GPU acceleration

$ ./label_image -m mobilenet_v1_1.0_224_quant.tflite -i grace_hopper.bmp -l labels.txt -a 1

Loaded model mobilenet_v1_1.0_224_quant.tflite

resolved reporter

INFO: Created TensorFlow Lite delegate for NNAPI.

Applied NNAPI delegate.

invoked

average time: 13.103 ms

0.784314: 653 military uniform

0.105882: 907 Windsor tie

0.0156863: 458 bow tie

0.0117647: 466 bulletproof vest

0.00784314: 668 mortarboard

 

### TensorFlow Lite Python API predefined example script run, no option to choose CPU or GPU, run with GPU acceleration by default if libneuralnetworks.so or

libneuralnetworks.so.1 is found in the /usr/lib directory, otherwise run on CPU

$ python3 label_image.py

INFO: Created TensorFlow Lite delegate for NNAPI.

Applied NNAPI delegate.

Warm-up time: 5052.5 ms

 

Inference time: 12.7 ms

 

0.674510: military uniform

0.129412: Windsor tie

0.039216: bow tie

0.027451: mortarboard

0.019608: bulletproof vest

-------------------------------

 

c). 更多示例和benchmark測試,C++ API應用開發以及當前eIQ對于TensorFlow Lite不同模型的限制等更多信息可以參考NXP i.MX Machine Learning User's Guide Rev. L5.4.70_2.3.0 Chapter 3 TensorFlow Lite,從上面簡單測試可以看出NPU加速下mobilenet 模型要比CPU運行性能更好。

 

 

5). Arm Compute Library 測試

a). ACL(ARM-Compute Library)是專為ARM CPU & GPU優化設計的計算機視覺和機器學習庫,基于NEON & OpenCL支持的 SIMD 技術,但在iMX8平臺目前只支持CPU NEON加速,另外因為其為ARM NN架構的計算引擎,因此一般來說建議直接使用ARM NN。NXP iMX8 eIQ ACL支持特性如下

./ Arm Compute Library 20.02.01

./ Multithreaded computation with acceleration using Arm Neon SIMD instructions on Cortex-A cores

./ C++ API only

./ Low-level control over computation

 

b). 示例應用測試

./ Image預裝的ACL測試示例應用位置

/usr/share/arm-compute-library/build/examples

 

./ MobileNet v2 DNN model,隨機輸入量測試

-------------------------------

$ cd /usr/share/arm-compute-library/build/examples

 

$ ./graph_mobilenet_v2

Threads : 1

Target : NEON

Data type : F32

Data layout : NHWC

Tuner enabled? : false

Cache enabled? : false

Tuner mode : Normal

Tuner file :

Fast math enabled? : false

 

Test passed

-------------------------------

 

c). 更多示例測試和參數說明可以參考NXP i.MX Machine Learning User's Guide Rev. L5.4.70_2.3.0 Chapter 4 Arm Compute Library。

 

 

6). Arm NN 測試

a). Arm NN是適用于CPU,GPUNPU的開源推理引擎,該軟件橋接了現有神經網絡框架(例如 TensorFlow 、TensorFlow Lite、Caffe ONNX)與在嵌入式 Linux 平臺上運行的底層處理硬件(例如 CPU、GPU NPU)。這樣,開發人員能夠繼續使用他們首選的框架和工具,經 Arm NN 無縫轉換結果后可在底層平臺上運行,NXP iMX8 eIQ ARM NN支持特性和協議??驁D如下

./ Arm NN 20.02.01

./ Multithreaded computation with acceleration using Arm Neon SIMD instructions on Cortex-A cores provided by the ACL

Neon backend

./ Parallel computation using GPU/NPU hardware acceleration (on shader or convolution units) provided by the VSI

NPU backend

./ C++ and Python API (supported Python version 3)

./ Supports multiple input formats (TensorFlow, TensorFlow Lite, Caffe, ONNX)

./ Off-line tools for serialization, deserialization, and quantization (must be built from source)

image007.png

 

b). Apalis iMX8 $Home 目錄下創建如下測試使用目錄以供后續測試使用

-------------------------------

$ mkdir ArmnnTests

$ cd ArmnnTests

$ mkdir data

$ mkdir models

-------------------------------

 

c). Caffe示例應用測試

./ Image包含如下ARM NN Caffe模型測試示例,本文隨機選擇CaffeAlexNet-Armnn進行測試

/usr/bin/CaffeAlexNet-Armnn

/usr/bin/CaffeCifar10AcrossChannels-Armnn

/usr/bin/CaffeInception_BN-Armnn

/usr/bin/CaffeMnist-Armnn

/usr/bin/CaffeResNet-Armnn

/usr/bin/CaffeVGG-Armnn

/usr/bin/CaffeYolo-Armnn

 

./ 部署模型和輸入數據文件到模塊

-------------------------------

### 這里下載,bvlc_alexnet_1.caffemodel 模型文件,部署到 Apalis iMX8 ~/ArmnnTests/models;shark.jpg 輸入文件,部署到Apalis iMX8 ~/ArmnnTests/data

$ cd ArmnnTests

 

### Run with C++ backend, CPU without NEON

$ CaffeAlexNet-Armnn --data-dir=data --model-dir=models --compute=CpuRef

Info: ArmNN v20200200

 

Info: = Prediction values for test #0

Info: Top(1) prediction is 2 with value: 0.706227

Info: Top(2) prediction is 0 with value: 1.26575e-05

Info: Total time for 1 test cases: 15.842 seconds

Info: Average time per test case: 15841.653 ms

Info: Overall accuracy: 1.000

 

### Run with ACL NEON backend, CPU with NEON

$ CaffeAlexNet-Armnn --data-dir=data --model-dir=models --compute=CpuAcc

Info: ArmNN v20200200

 

Info: = Prediction values for test #0

Info: Top(1) prediction is 2 with value: 0.706226

Info: Top(2) prediction is 0 with value: 1.26573e-05

Info: Total time for 1 test cases: 0.237 seconds

Info: Average time per test case: 236.571 ms

Info: Overall accuracy: 1.000

 

### Run with GPU/NPU backend

$ CaffeAlexNet-Armnn --data-dir=data --model-dir=models --compute=VsiNpu

Info: ArmNN v20200200

 

, size = 618348Warn-Start NN executionInfo: = Prediction values for test #0

Info: Top(1) prediction is 2 with value: 0.706227

Info: Top(2) prediction is 0 with value: 1.26573e-05

Info: Total time for 1 test cases: 0.304 seconds

Info: Average time per test case: 304.270 ms

Info: Overall accuracy: 1.000

-------------------------------

 

d). TensorFlow示例應用測試

./ Image包含如下ARM NN TensorFlow模型測試示例,本文隨機選擇TfInceptionV3-Armnn進行測試

/usr/bin/TfCifar10-Armnn

/usr/bin/TfInceptionV3-Armnn

/usr/bin/TfMnist-Armnn

/usr/bin/TfMobileNet-Armnn

/usr/bin/TfResNext-Armnn

 

./ 部署模型和輸入數據文件到模塊

-------------------------------

### 這里下載,inception_v3_2016_08_28_frozen.pb 模型文件,部署到 Apalis iMX8 ~/ArmnnTests/models;shark.jpg, Dog.jpg, Cat.jpg 輸入文件,部署到Apalis iMX8 ~/ArmnnTests/data

$ cd ArmnnTests

 

### Run with C++ backend, CPU without NEON

$ TfInceptionV3-Armnn --data-dir=data --model-dir=models --compute=CpuRef

Info: ArmNN v20200200

 

Info: = Prediction values for test #0

Info: Top(1) prediction is 208 with value: 0.454895

Info: Top(2) prediction is 160 with value: 0.00278846

Info: Top(3) prediction is 131 with value: 0.000483914

Info: Top(4) prediction is 56 with value: 0.000304587

Info: Top(5) prediction is 27 with value: 0.000220489

Info: = Prediction values for test #1

Info: Top(1) prediction is 283 with value: 0.481285

Info: Top(2) prediction is 282 with value: 0.268979

Info: Top(3) prediction is 151 with value: 0.000375892

Info: Top(4) prediction is 24 with value: 0.00036751

Info: Top(5) prediction is 13 with value: 0.000330214

Info: = Prediction values for test #2

Info: Top(1) prediction is 3 with value: 0.986568

Info: Top(2) prediction is 0 with value: 1.51615e-05

Info: Total time for 3 test cases: 1477.627 seconds

Info: Average time per test case: 492542.205 ms

Info: Overall accuracy: 1.000

 

### Run with ACL NEON backend, CPU with NEON

$ TfInceptionV3-Armnn --data-dir=data --model-dir=models --compute=CpuAcc

Info: ArmNN v20200200

 

Info: = Prediction values for test #0

Info: Top(1) prediction is 208 with value: 0.454888

Info: Top(2) prediction is 160 with value: 0.00278851

Info: Top(3) prediction is 131 with value: 0.00048392

Info: Top(4) prediction is 56 with value: 0.000304589

Info: Top(5) prediction is 27 with value: 0.000220489

Info: = Prediction values for test #1

Info: Top(1) prediction is 283 with value: 0.481286

Info: Top(2) prediction is 282 with value: 0.268977

Info: Top(3) prediction is 151 with value: 0.000375891

Info: Top(4) prediction is 24 with value: 0.000367506

Info: Top(5) prediction is 13 with value: 0.000330212

Info: = Prediction values for test #2

Info: Top(1) prediction is 3 with value: 0.98657

Info: Top(2) prediction is 0 with value: 1.51611e-05

Info: Total time for 3 test cases: 4.541 seconds

Info: Average time per test case: 1513.509 ms

Info: Overall accuracy: 1.000

 

### Run with GPU/NPU backend

$ TfInceptionV3-Armnn --data-dir=data --model-dir=models --compute=VsiNpu

Info: ArmNN v20200200

 

, size = 1072812Warn-Start NN executionInfo: = Prediction values for test #0

Info: Top(1) prediction is 208 with value: 0.454892

Info: Top(2) prediction is 160 with value: 0.00278848

Info: Top(3) prediction is 131 with value: 0.000483917

Info: Top(4) prediction is 56 with value: 0.000304589

Info: Top(5) prediction is 27 with value: 0.00022049

Warn-Start NN executionInfo: = Prediction values for test #1

Info: Top(1) prediction is 283 with value: 0.481285

Info: Top(2) prediction is 282 with value: 0.268977

Info: Top(3) prediction is 151 with value: 0.000375891

Info: Top(4) prediction is 24 with value: 0.000367508

Info: Top(5) prediction is 13 with value: 0.000330214

Warn-Start NN executionInfo: = Prediction values for test #2

Info: Top(1) prediction is 3 with value: 0.986568

Info: Top(2) prediction is 0 with value: 1.51615e-05

Info: Total time for 3 test cases: 5.617 seconds

Info: Average time per test case: 1872.355 ms

Info: Overall accuracy: 1.000

-------------------------------

 

e). ONNX示例應用測試

./ Image包含如下ARM NN ONNX模型測試示例,本文隨機選擇OnnxMobileNet-Armnn進行測試

/usr/bin/OnnxMnist-Armnn

/usr/bin/OnnxMobileNet-Armnn

 

./ 部署模型和輸入數據文件到模塊

-------------------------------

### 這里下載,mobilenetv2-1.0.onnx 模型文件,部署到 Apalis iMX8 ~/ArmnnTests/models;shark.jpg, Dog.jpg, Cat.jpg 輸入文件,部署到Apalis iMX8 ~/ArmnnTests/data

$ cd ArmnnTests

 

### Run with C++ backend, CPU without NEON

$ OnnxMobileNet-Armnn --data-dir=data --model-dir=models --compute=CpuRef

Info: ArmNN v20200200

 

Info: = Prediction values for test #0

Info: Top(1) prediction is 208 with value: 17.1507

Info: Top(2) prediction is 207 with value: 15.3666

Info: Top(3) prediction is 159 with value: 11.0918

Info: Top(4) prediction is 151 with value: 5.26187

Info: Top(5) prediction is 112 with value: 4.09802

Info: = Prediction values for test #1

Info: Top(1) prediction is 281 with value: 13.6938

Info: Top(2) prediction is 43 with value: 6.8851

Info: Top(3) prediction is 39 with value: 6.33825

Info: Top(4) prediction is 24 with value: 5.8566

Info: Top(5) prediction is 8 with value: 3.78032

Info: = Prediction values for test #2

Info: Top(1) prediction is 2 with value: 22.6968

Info: Top(2) prediction is 0 with value: 5.99574

Info: Total time for 3 test cases: 163.569 seconds

Info: Average time per test case: 54523.023 ms

Info: Overall accuracy: 1.000

 

### Run with ACL NEON backend, CPU with NEON

$ OnnxMobileNet-Armnn --data-dir=data --model-dir=models --compute=CpuAcc

Info: ArmNN v20200200

 

Info: = Prediction values for test #0

Info: Top(1) prediction is 208 with value: 17.1507

Info: Top(2) prediction is 207 with value: 15.3666

Info: Top(3) prediction is 159 with value: 11.0918

Info: Top(4) prediction is 151 with value: 5.26187

Info: Top(5) prediction is 112 with value: 4.09802

Info: = Prediction values for test #1

Info: Top(1) prediction is 281 with value: 13.6938

Info: Top(2) prediction is 43 with value: 6.88511

Info: Top(3) prediction is 39 with value: 6.33825

Info: Top(4) prediction is 24 with value: 5.8566

Info: Top(5) prediction is 8 with value: 3.78032

Info: = Prediction values for test #2

Info: Top(1) prediction is 2 with value: 22.6968

Info: Top(2) prediction is 0 with value: 5.99574

Info: Total time for 3 test cases: 1.222 seconds

Info: Average time per test case: 407.494 ms

Info: Overall accuracy: 1.000

 

### Run with GPU/NPU backend

$ OnnxMobileNet-Armnn --data-dir=data --model-dir=models --compute=VsiNpu

Info: ArmNN v20200200

 

, size = 602112Warn-Start NN executionInfo: = Prediction values for test #0

Info: Top(1) prediction is 208 with value: 8.0422

Info: Top(2) prediction is 207 with value: 7.98566

Info: Top(3) prediction is 159 with value: 6.76481

Info: Top(4) prediction is 151 with value: 4.16534

Info: Top(5) prediction is 60 with value: 2.40269

Warn-Start NN executionInfo: = Prediction values for test #1

Info: Top(1) prediction is 287 with value: 5.98563

Info: Top(2) prediction is 24 with value: 5.49244

Info: Top(3) prediction is 8 with value: 2.24259

Info: Top(4) prediction is 7 with value: 1.36127

Info: Top(5) prediction is 5 with value: -1.69145

Error: Prediction for test case 1 (287) is incorrect (should be 281)

Warn-Start NN executionInfo: = Prediction values for test #2

Info: Top(1) prediction is 2 with value: 11.099

Info: Top(2) prediction is 0 with value: 3.42508

Info: Total time for 3 test cases: 0.258 seconds

Info: Average time per test case: 86.134 ms

Error: One or more test cases failed

-------------------------------

 

f). 除了上述推理引擎前端,TensorFlow Lite也是支持的,更多示例測試和參數說明以及ARMNN C++ API/Python API開發流程可以參考NXP i.MX Machine Learning User's Guide Rev. L5.4.70_2.3.0 Chapter 5 Arm NN。

 

 

7). ONNX 測試

a). ONNX也是一款開源的機器學習推理引擎,NXP iMX8 eIQ ONNX支持特性和協議??驁D如下

./ ONNX Runtime 1.1.2

./ Multithreaded computation with acceleration using Arm Neon SIMD instructions on Cortex-A cores provided by the ACL and Arm NN execution providers

./ Parallel computation using GPU/NPU hardware acceleration (on shader or convolution units) provided by the VSI NPU execution provider

./ C++ and Python API (supported Python version 3)

image009.png

 

b). 示例應用測試

./ ONNX Runtime 提供了一個onnx_test_runner BSP以及預裝于/usr/bin)用于運行ONNX model zoo提供的測試模型,下面幾個模型是在iMX8 eIQ測試過的模型

MobileNet v2, ResNet50 v2, ResNet50 v1, SSD Mobilenet v1, Yolo v3

 

./ MobileNet v2 模型測試

-------------------------------

### 從這里下載模型文件壓縮包,然后在Apalis iMX8設備上$Home 目錄解壓出文件夾 mobilenetv2-7

$ cd /home/root/

### Run with ARMNN backend with CPU NEON

$ onnx_test_runner -j 1 -c 1 -r 1 -e armnn ./mobilenetv2-7/

…[E:onnxruntime:Default, runner.cc:217 operator()] Test mobilenetv2-7 finished in 0.907 seconds, t

result:

        Models: 1

        Total test cases: 3

                Succeeded: 3

                Not implemented: 0

                Failed: 0

        Stats by Operator type:

                Not implemented(0):

                Failed:

Failed Test Cases:

 

### Run with ACL backend with CPU NEON

$ onnx_test_runner -j 1 -c 1 -r 1 -e acl ./mobilenetv2-7/

…[E:onnxruntime:Default, runner.cc:217 operator()] Test mobilenetv2-7 finished in 0.606 seconds, t

result:

        Models: 1

        Total test cases: 3

                Succeeded: 3

                Not implemented: 0

                Failed: 0

        Stats by Operator type:

                Not implemented(0):

                Failed:

Failed Test Cases:

 

### Run with GPU/NPU backend

$ onnx_test_runner -j 1 -c 1 -r 1 -e vsi_npu ./mobilenetv2-7/

…[E:onnxruntime:Default, runner.cc:217 operator()] Test mobilenetv2-7 finished in 0.446 seconds, t

result:

        Models: 1

        Total test cases: 3

                Succeeded: 3

                Not implemented: 0

                Failed: 0

        Stats by Operator type:

                Not implemented(0):

                Failed:

Failed Test Cases:

-------------------------------

 

c). 更多示例測試和參數說明以及C++ API可以參考NXP i.MX Machine Learning User's Guide Rev. L5.4.70_2.3.0 Chapter 6 ONNX Runtime。

 

 

8). OpenCV 測試

a). OpenCV是大家熟知的一款開源的傳統機器視覺庫,它包含一個ML模塊可以提供傳統的機器學習算法,可以支持神經網絡推理(DNN模型)和傳統機器學習算法(ML模型),NXP iMX8 eIQ OpenCV支持特性如下

./ OpenCV 4.4.0

./ C++ and Python API (supported Python version 3)

./ Only CPU computation is supported

./ Input image or live camera (webcam) is supported

 

b). 示例應用測試

./ BSP 預裝 OpenCV測試模型數據如下

DNN示例應用 - /usr/share/OpenCV/samples/bin

輸入數據、模型配置文件 - /usr/share/opencv4/testdata/dnn

 

./ Image classification DNN示例應用測試

-------------------------------

### 這里下載,模型文件squeezenet_v1.1.caffemodel和配置文件model.yml復制到 /usr/share/OpenCV/samples/bin

### 復制數據文件到執行目錄

$ cp /usr/share/opencv4/testdata/dnn/dog416.png /usr/share/OpenCV/samples/bin/

$ cp /usr/share/opencv4/testdata/dnn/squeezenet_v1.1.prototxt /usr/share/OpenCV/samples/bin/

$ cp /usr/share/OpenCV/samples/data/dnn/classification_classes_ILSVRC2012.txt /usr/share/OpenCV/samples/bin/

 

$ cd /usr/share/OpenCV/samples/bin/

### Run with default image

$ ./example_dnn_classification --input=dog416.png --zoo=models.yml squeezenet

image011.png

 

### Run with actual camera(/dev/video2) input

./example_dnn_classification --device=2 --zoo=models.yml squeezenet

image013.png

-------------------------------

 

c). 更多示例測試和說明可以參考NXP i.MX Machine Learning User's Guide Rev. L5.4.70_2.3.0 Chapter 8 OpenCV machine learning demos。

 

 

9). 總結

本文基于NXP eIQ 機器學習工具庫在iMX8嵌入式平臺簡單演示了多種機器學習推理引擎示例應用,并簡單對比了CPU NEONGPU進行模型推理的性能表現,實際進行相關應用開發的時候還會遇到很多學習模型到實際推理模型轉換的問題,本文就不做涉及。

 

參考文獻

i.MX Machine Learning User's Guide Rev. L5.4.70_2.3.0

i.MX Yocto Project User's Guide Rev. L5.4.70_2.3.0

https://developer.toradex.cn/knowledge-base/board-support-package/openembedded-core


審核編輯(王靜)
更多內容請訪問 韜睿(上海)計算機科技有限公司(http://c.gongkong.com/?cid=16879)

手機掃描二維碼分享本頁

工控網APP下載安裝

 

我來評價

評價:
一般
日本免费人成视频播放,成年无码AV看片,www红色一片app破解版,一品道一本到免费视频 加勒比东京热高清在线 国产一级毛卡片免费不卡
色婷婷综合缴情综 伊伊人成亚洲综合人网 99热国产这里只有精品无卡顿 结过一次了韩剧剧情 三级片 1日本A级黄毛片免费 亚洲AV有码在线天堂 偷窥 国产在线视频 欧美老熟妇欲乱高清视频 啦啦啦视频在线播放 日本熟妇熟色在线观看中文 欧美丰满妇大ASS 免费全部高H视频在线观看 日本少妇高清无码高清频道 日本一道在线播放高清 男女晚上啦啦啦视频在线播放 一本到高清视频免费 欧美高清欧美av片 亚洲va在线va天堂xx xx 亚洲va在线va天堂xx xx 国产毛片免费视频观看2019 成·人免费午夜无码区 学生精品国自产拍中文字幕 成年女人免费视频播放性视频 日本乱理伦片在线观看真人 人禽杂交aV片 .www红色一片福利 国产成 人 综合 亚洲不卡 无码免费视频一区二区三区 国产午夜精华无码网站 波多野结衣高清视频免费观看 欧洲熟妇性色黄在线观看免费 日本v电影在线观看 成·人免费午夜无码区 在线不卡日本V二区三区18 男女晚上啦啦啦视频在线播放 视频在线在线免费视频观看日韩精品 日本高清视2018色视频 免费网站看v片在线 免费人成视网站在线不卡 亚洲全国最大的人成网站 久久vs国产综合色 亚洲欧美日本国产在线观18 欧美dvd毛片无码av 日本高清免费毛片大全 不卡的av日本影片在线观看 a免费观看泷泽萝拉在线 免费视频在线观看 亚洲成熟妇女视频免费 国产成 人 综合 亚洲不卡 俺去啦最新视频在线播放 国语自产拍在线观看学生 2020最新无码国产在线视频 欧美亚洲偷图色综合 色香欲天天天影视综合网 А中文天堂最新版在线网 www红色一片app破解版 成 人影片 免费网站 秋霞电影手机在线观看 在线高清免费不卡中文字幕 2018免费v片在线观看 女厕全集在线偷拍高清 欧美成人AV无码免费播放 老司机在线观看67194 8050午夜二级不卡 俺去啦最新视频在线播放 在线点播亚洲日韩国产欧美 尤物久久99国产综合精品 波多野结衣高清视频免费观看 性社区在线视频播 国产亚洲欧美在线观看一区 男人的天堂免费视频一色屋 秋霞韩国理伦电影在线观看 两个人的视频全免费视频在线观看 日本AV天堂 免费播放观看菠萝蜜在线视频 粉嫩馒头一线天在线视频 日本高清视2018色视频 亚洲欧美日韩高清一区 日本少妇her高清无码视频 偷偷要色偷偷中文无码 免费播放观看菠萝蜜在线视频 日本一区二区三区免费 永久免费的AV在线电影网无码 伊人久久综合久久爱 欧美视频毛片在线播放** 亚洲 欧美 自拍 偷偷玩 老司机在线观看67194 欧美日本DVD一幕无码 日本一道在线播放高清 秋霞电影院 2020人妻中文字幕在线乱码 日本天堂免费观看 小草青青免费视频 制服 丝袜 欧美 国产 中文 欧美人与动人物在线视频 国产亚洲视频中文字幕视频 国产在热线精品视频99 无码手机线免费观看 日本无码中文字幕不卡网站 国产亚洲欧美在线观看一区 99国国内清清草原免费视频 尤物久久99国产综合精品 色香欲天天天影视综合网 欧美 亚洲 日韩 国产 综合 国产在热线精品视频99 欧美制服另类国产 一本到中文无码AV在线观看 国产一级毛卡片免费不卡 女厕全集在线偷拍高清 国产熟妇乱子伦视频 亚洲欧洲日产国码 日韩国产亚洲高清在线久草 成本人动画片在线观看 香蕉伊蕉伊中文在线视频 亚洲精品综合欧美一区二区三区 在线看片免费人成视频播放 做暖免费观看日本视频大全 香蕉视频无限次观看 亚洲 欧美 中文 日韩 黄 成年无码AV看片 伊人伊成久久人综合网996 亚洲日韩在线***在线 欧美古装av毛片免费视频大全 久久大香香蕉国产免费网 无码免费视频一区二区三区 最新欧美av毛片手机版下载 狼人香蕉香蕉在线28 黄色片 精品无码AV人妻受辱 最新欧美av毛片手机版下载 老司机在线观看67194 国产一级毛卡片免费不卡 自拍 另类 综合 欧美小说 高清无码成本人视频 欧美古装av毛片免费视频大全 四虎影视永久免费观看 男人的天堂免费视频一色屋 痴汉电车喷潮在线播放 国产在线AⅤ精品 男朋友在车里添比视频视频大全 亚洲欧美专区图片专区 欧美dvd毛片无码av 一品道门在线日本 亚洲欧美国产日韩AV 国产在线精品亚洲二区动漫 国产亚洲日韩AV在线观看 亚洲日韩高清无码欧美 欧美欧美av毛片a片另类av 成年女人毛片免费观看 亚洲欧美国产日韩AV 久久频这里精品99香蕉 黄色片 国产在线AⅤ精品 亚洲欧美日韩高清无码资源 综合自拍亚洲综合自拍图区 成 人 A V天堂 成年女人毛片免费观看 在线观看亚洲欧美视频免费 最新国自产拍成人电影在线播放 亚洲 欧美 国产 在线 日韩 男朋友在车里添比视频视频大全 被爽到叫呻呤视频 日本最新免费一区二区 亚洲 欧美 国产 在线 日韩 一对一中文字幕完整版 5566av资源网影音先锋 日韩无码在钱中文字幕在钱视频 亚洲成亚洲成线在人视频 日本特黄特色大片免费视频 日本视频高清免费观看 无码亚洲欧美在线观 香蕉视频无限次观看 亚洲视频中文字幕在线不卡 亚洲中文日韩日本在线视频 日本少妇高清无码高清频道 偷窥 国产在线视频 国产亚洲日韩AV在线观看 欧美精品亚洲精品日韩专区一乛方 暖暖视频在线观看免费 粉嫩馒头一线天在线视频 最新菠萝蜜在线视频观看 久草视频免费 中文字字幕乱码视频 精品熟女少妇AV免费久久 草草影院永久发布地址 免费全部高H视频在线观看 欧美视频毛片在线播放新闻 免费人成在线观看视频 制服丝袜中文字幕久久 狼人香蕉香蕉在线28 国产毛片免费视频观看2019 亚洲福利 www红色一片app破解版 亚洲中文日韩日本在线视频 欧美av毛片种子 附近的人妇女 最新亚洲人成无码网站试看 2020最新无码国产在线视频 久久香蕉国产线看观看精品 人与禽交XXX网站视频 亚洲AV极品无码2020国产 亚洲中文欧美日韩在线不卡 日本亚洲欧洲无免费码在线 亚洲制服丝袜自拍中文字幕 秋霞电影手机在线观看 香蕉伊蕉伊中文在线视频 亚洲 欧美 国产 视频二区 免费网站看v片在线 欧美高清狂热视频 在线观看免费视频 国啪产自制福利2020 欧美肥老太交性视频 国产日韩精品视频 久草视频免费 天天色综合视频 秋霞网站 一本之道高清视频免费 日本一道不卡二区免费 附近的人妇女 又色又爽又黄的视频网站 东京热在线观看 久久精品国产亚洲久久 久久人人超97人妻免费 暖暖视频在线观看免费 日本少妇her高清无码视频 在线点播亚洲日韩国产欧美 在线中文字幕亚洲日韩曰本 香港 亚洲经典三级 日本不卡顿二区免费 泷泽萝拉第二部免费观看 国产一区精品视频一区二区 国产在线精品亚洲二区动漫 国产高清亚洲精品视频 中文字字幕乱码视频 国内自拍视频 免费全部高H视频在线观看 日本一道在线播放高清 俄罗斯美女牲交视频 久久精品国产免费播 日本无码AV不卡一区二区三区 日本欧美一区二区免费视频 国产少妇高潮在线观看 色香欲天天天影视综合网 日本成本人三级观看 久爱成疾在线视频播放 天天狠天天透天天爱综合 一本之道高清在线观看不卡 国产一区精品视频一区二区 欧美免费av毛片 亚洲欧美国产日韩AV 无码手机线免费观看 伊人大香线蕉综合 做暖免费观看日本视频大全 日本高清免费毛片大全 不卡的av日本影片在线观看 女人国产香樵久久精品 日本视频高清免费观看 中文字幕亚洲制服在线看 成年女人毛片免费观看 我爱777在线观看 制服 丝袜 欧美 国产 中文 俄罗斯美女牲交视频 秋霞电影网 中文字幕 久久网 无码免费视频一区二区三区 天天看大片特色视频 亚洲视频中文字幕在线不卡 中文字幕天堂中文 成年无码AV看片 日韩无码在钱中文字幕在钱视频 在线观看免费视频网站A站 欧美日韩免费高清视视频 А中文天堂最新版在线网 欧美人与动人物牲交 久爱成疾在线视频播放 四虎影视永久免费观看 亚洲 欧美 国产 在线 日韩 久久精品国产亚洲久久 成 人 A V天堂 亚洲 欧美 中文 日韩 亚洲制服丝袜自拍中文字幕 99国国内清清草原免费视频 韩国三级在线观影2018 精品熟女少妇AV免费久久 日韩 欧美~中文字幕在线 小草影院福利视频在线看 奇米影视播放器 高清无码中文字幕视频 伊人影院蕉久影院 被爽到叫呻呤视频 日本特黄特色大片免费视频 51社区视频在线视频观看 日本在线观看免费AV片 亚洲欧美专区图片专区 日本大片在线看黄A∨免费 亚洲国产日韩在线人成蜜芽 91精品全国免费观看 **欧美亚洲日韩高清无码视频 中文乱码字幕在线视频 日本图片 国产亚洲欧美在线观看一区 欧美一中文字暮无码亚洲 在线爱免费高清完整版 伊人大香线蕉综合 欧美视频毛片人妖在线播放 久久久综合色久一本 中文字幕大香视频蕉无码 欧美日韩一本无线码专区 日本制服AV免费一区 中文国产成人久久精品 东京热加勒比 黄色片 永久免费的AV在线电影网无码 一本到中文无码AV在线观看 日本少妇her高清无码视频 综合自拍亚洲综合自拍图区 女人本色完整版在线观看 尤物久久99国产综合精品 无码手机线免费观看 欧美视频毛片在线 国产第一页草草影院 一本大道道香蕉a 日本在线观看免费AV片 国产精品人妻在线观看 www红色一片app破解版 伊人久久综合久久爱 综合自拍亚洲综合自拍图区 暖暖视频免费观看日本大全 亚洲中文欧美日韩在线不卡 欧美日本DVD一幕无码 国产毛片免费视频观看2019 国产毛片免费视频观看2019 日韩在线 女人本色完整版在线观看 男人的天堂免费视频一色屋 男朋友在车里添比视频视频大全 成 人影片 免费网站 插曲的痛的视频免费 国产精品无码一区二区三区 久久久综合色久一本 五月偷拍区图片区综合图区 亚洲日韩视频高清在线观看 99热国产这里只有精品无卡顿 欧美熟女|欧美熟妇|欧美丝袜丰满熟女图片 亚洲中文字幕在线播放手机 亚洲日韩高清无码欧美 视频在线在线免费视频观看日韩精品 在线观看 有码 制服 中文 草草影院永久发布地址 伊人久久综合久久爱 视频一区亚洲中文字幕 黄色片 秋霞2019理论2018年成片 伊人影院蕉久影院 暖暖视频免费观看日本大片 欧美精品亚洲精品日韩专区一乛方 久久人人超97人妻免费 手机免费AV片在线看 日韩AV 大l香蕉亿人在线 亚洲 另类 自拍 校园 小说区 亚洲中文字幕在线播放手机 痴汉电车喷潮在线播放 中文字幕大香视频蕉无码 在线二区 中文 无码 欧美av毛片基地 欧美视频毛片在线播放最新章节 啦啦啦视频在线播放 暖暖视频免费观看日本大片 А∨天堂在线中文免费不卡 性社区在线视频播 中文字幕乱码免费视频 日本无吗无卡V二区 四虎影视永久免费观看 成 人 黄 色 网 站 视频 精品无码AV人妻受辱 高清无码A视频在线观看 亚洲中文字幕一区二区三区 久久久综合色久一本 久久香蕉国产线看观看精品 日本在线观看免费AV片 А中文天堂最新版在线网 亚洲人成电影在线手机网站 草草影院永久发布地址 亚洲 欧美 中文 日韩 韩国三级片大全 日本天堂免费观看 亚洲人成电影在线手机网站 久久香蕉国产线看观看精品 欧美日韩一本无线码专区 欧美av毛片种子 偷偷要色偷偷中文无码 成年女人看片免费视频播放人 日本一道在线播放高清 5566av资源网影音先锋 小草在线观看视频免费播放 日韩无码在钱中文字幕在钱视频 亚洲日本va在线视频观看 女厕全集在线偷拍高清 亚洲成亚洲成线在人视频 不卡的av日本影片在线观看 啪嗒啪嗒的视频大全下载 五月丁香亚洲综合色 秋霞在线观看片无码免费 欧美视频毛片在线播放性欧美 亚洲人成电影在线手机网站 啦啦啦视频在线播放高清视频免费 国模熊春雨大胆啪啪图 在线JYZZJYZZ免费视频 伊伊人成亚洲综合人网 制服 丝袜 欧美 国产 中文 亚洲日韩欧美国产高清无码 男人天堂在线 亚洲 欧美 中文 日韩 黄 **a片毛片超清免费观看 制服 丝袜 欧美 国产 中文 中文国产成人久久精品 XXX日本视频在线观看 日本亚洲欧洲无免费码在线 亚洲欧美日韩高清一区 亚洲 另类 技巧 小说 亚洲中文日韩欧美免费高清无码 泷泽萝拉资源 日本少妇**高清无码免费视频 日本少妇高清无码影音先锋 一对一中文字幕完整版 亚洲欧美日本国产在线观18 一本到在线视频免费不卡观看 俄罗斯美女牲交视频 秋霞在线观看片无码免费 小草影院视频观看高清视频 好男人手机在线观看 女人本色完整版在线观看 一本久久A久久精品综合 2019香蕉在线观看直播 草莓视频在线观看免费完整 俺去啦最新视频在线播放 亚洲 另类 技巧 小说 国产片AV国语在线观看手机版 飘零电影网 国产亚洲中文日韩欧美综合网 暖视频日本在线观看免费 啪嗒啪嗒的视频大全下载 成年女人毛片免费观看 大l香蕉亿人在线 国产日韩精品视频 亚洲 欧美 国产 视频二区 国产在线AⅤ精品 天天看大片特色视频 男人的天堂免费视频一色屋 国产片AV国语在线观看手机版 结过一次了韩剧剧情 欧美影院 美女来了完整版在线观看 飘零电影网 日本一道不卡二区免费 欧美视频毛片在线播放性欧美 欧美视频毛片在线播放性欧美 东京热加勒比 四虎影视永久免费观看 日本少妇高清无码高清频道 a人片高清视频在线观看 日本极度色诱惑图 天天看大片特色视频 日本一区二区三区免费 日本视频高清免费观看 老司机在线观看67194 小草福利短视频在线直播 欧美dvd毛片无码av 国啪产自制福利2020 AV网站在线观看 成年无码AV看片 插曲的痛的视频免费 欧美肥老太交性视频 在线观看亚洲欧美视频免费 欧美dvd毛片无码av 欧美肥老太交性视频 制服 中文 人妻 字 亚洲视频中文字幕在线不卡 国产欧美另类久久久精品图片 制服丝袜中文字幕久久 亚洲日韩高清无码欧美 国产片AV国语在线观看手机版 日本无吗无卡V二区 日本一道在线播放高清 亚洲日韩视频高清在线观看 中文字幕无线在线视频观看 性欧美另类黑人巨大HD 亚洲日韩视频高清在线观看 草莓视频在线观看免费完整 91精品全国免费观看 欧美高清欧美av片 日本免费一区 日韩在线旡码免费视频 两个人的视频全免费观看在线观看 俄罗斯美女牲交视频 一对一中文字幕完整版 免费全部高H视频在线观看 超高清欧美熟女图片
<蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>