Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


products:sbc:vim3:npu:npu-sdk

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
products:sbc:vim3:npu:npu-sdk [2023/09/11 02:18]
sravan
products:sbc:vim3:npu:npu-sdk [2024/04/18 04:34] (current)
nick [Build Docker Environment]
Line 1: Line 1:
-====== NPU SDK Usage ======+~~tag>VIM3 VIM3L Amlogic NPU SDK tensorflow pytorch~~
  
-===== Introduction =====+====== VIM3 NPU SDK Usage ======
  
-This document is an introduction to the structure of the NPU SDK.+Basic information and examples about how to use Amlogic NPU SDK for VIM3.
  
 +===== Build Docker Environment =====
  
-===== Get SDK =====+We provided a docker image which contains the required environment to convert the model.
  
-You can clone the SDK from our Github or Gitlab.+Follow Docker official docs to install Docker: [[https://docs.docker.com/engine/install/ubuntu/|Install Docker Engine on Ubuntu]]. 
 + 
 +Follow the command below to get Docker image: 
 + 
 +```shell 
 +docker pull numbqq/npu-vim3 
 +``` 
 + 
 +===== Get NPU SDK ===== 
 + 
 +Get source: [[gh>khadas/aml_npu_sdk]]
  
 ```shell ```shell
-mkdir workspace && cd workspace +mkdir workspace && cd workspace 
-git clone --recursive https://github.com/khadas/aml_npu_sdk.git+git clone --recursive https://github.com/khadas/aml_npu_sdk
 ``` ```
  
 ===== SDK Structure ===== ===== SDK Structure =====
  
-Enter the SDK directory,+Enter inside SDK directory ''aml_npu_sdk''
  
 ```shell ```shell
-$ cd {workspace}/aml_npu_sdk+$ cd aml_npu_sdk
 $ ls $ ls
-acuity-toolkit  android_sdk  Dockerfile  docs  LICENSE  linux_sdk  README.md+acuity-toolkit  android_sdk  convert-in-docker.sh  Dockerfile  docs  LICENSE  linux_sdk  README.md
 ``` ```
  
-The SDK contains the ''SDK''''conversion/compilation tools'', and ''docs''.+The SDK contains the Android SDK, conversion and compilation tools, and manuals.
  
 ``` ```
-acuity-toolkit    #Conversion tool , used to convert AI models +acuity-toolkit    # Conversion tool, used to convert AI models 
-android_sdk       #Android SDK +android_sdk       # Android SDK 
-docs              #Conversion related documents collection+docs              # Conversion-related documents collection
 ``` ```
  
-<WRAP tip +<WRAP info 
-Since all linux codes have been supports local compiled, host compilation is no longer supported. Therefore, the contents of ''linux_sdk'' have been completely removed.+Since all linux code can now be locally compiled on the device, host compilation is no longer supported. Therefore, the contents of ''linux_sdk'' have been completely removed.
 </WRAP> </WRAP>
- 
-===== Docs ===== 
- 
-Enter the Docs directory, ''DDK_Application_Guide_0.7.pdf'' describes each document. The document records a series of processes from conversion to integration, as well as some common problems. 
  
 ===== Conversion Tool ===== ===== Conversion Tool =====
  
-''acuity-toolkit'' is the conversion tool directory,+''acuity-toolkit'' directory contains the conversion tool,
  
 ```shell ```shell
-cd {workspace}/aml_npu_sdk/acuity-toolkit +ls acuity-toolkit
-$ ls+
 bin  demo  python  ReadMe.txt  requirements.txt bin  demo  python  ReadMe.txt  requirements.txt
 ``` ```
  
-The main directory of interest is ''demo'',+''demo'' directory is where we can do model conversion,
  
 ``` ```
-1. bin                   #Conversion is a collection of various tools used, most of which are not open source. +bin                   # Conversion is a collection of various tools used, most of which are not open source. 
-2. demo                  #Conversion script directory, convert AI model location +demo                  # Conversion script directory, convert AI model location 
-3. demo_hybird           #Mixed Input Conversion Tool +demo_hybird           # Mixed Input Conversion Tool 
-4. mulity_input_demo     #mulity input demo +mulity_input_demo     # mulity input demo 
-5. python                #Used to convert the model and data corresponding to the python API +python                # Used to convert the model and data corresponding to the Python API 
-6. ReadMe.txt            #ReadMe.txt file explains how to convert and use +ReadMe.txt            # ReadMe.txt file explains how to convert and use 
-7. requirements.txt      #Conversion tool dependent environment+requirements.txt      # Conversion tool dependent environment
 ``` ```
  
-==== Dependencies Installation ====+===== Convert Model =====
  
-The environment package dependencies required by the conversion tool can be installed directly on the PC or installed through the virtual environment ''virtualenv''.+Convert the demo model in docker:
  
 ```shell ```shell
-$ cd {workspace}/aml_npu_sdk/acuity-toolkit +./convert-in-docker.sh
-$ cat requirements.txt +
-tensorflow==2.0.0 +
-astor==0.8.0 +
-numpy==1.18.0 +
-scipy==1.1.0 +
-Pillow==5.3.0 +
-protobuf==3.11.2 +
-networkx>=1.11 +
-image==1.5.5 +
-lmdb==0.93 +
-onnx==1.6.0 +
-h5py==2.10.0 +
-flatbuffers==1.10 +
-matplotlib==2.1.0 +
-dill==0.2.8.2 +
-ruamel.yaml==0.15.81 +
-ply==3.11 +
-torch==1.2.0+
 ``` ```
  
-Here, ''tensorflow==2.0.0'' can be replaced by ''tensorflow==2.0.0a0''.+The script ''convert-in-docker.sh'' will enter docker container and then execute the conversion scripts below: 
 +  * acuity-toolkit/demo/0_import_model.sh 
 +  * acuity-toolkit/demo/1_quantize_model.sh 
 +  * acuity-toolkit/demo/2_export_case_code.sh
  
-==== Conversion Script ==== 
  
-The conversion script is in the `demo` directory,+==== Conversion Scripts ====
  
-```shell +The conversion scripts are in the ''acuity-toolkit/demo'' directory,
-$ cd {workspace}/aml_npu_sdk/acuity-toolkit/demo +
-$ ls +
-0_import_model.sh  1_quantize_model.sh  2_export_case_code.sh  data  extractoutput.py  inference.sh  model +
-``` +
- +
-Use scripts to convert AI models.+
  
 ```shell ```shell
-cd {workspace}/aml_npu_sdk/acuity-toolkit/demo +ls acuity-toolkit/demo/*.sh -1 
-$ bash 0_import_model.sh && bash 1_quantize_model.sh && bash 2_export_case_code.sh +acuity-toolkit/demo/0_import_model.sh 
 +acuity-toolkit/demo/1_quantize_model.sh 
 +acuity-toolkit/demo/2_export_case_code.sh 
 +acuity-toolkit/demo/inference.sh
 ``` ```
  
-  * ''0_import_model.sh'' - Import model script. Now, it supports loading Tensorflow, Caffe, Tensorflow Lite, Onnx, Keras, Pytorch and Darknet model+  * ''0_import_model.sh'' - Import model script. Now, it supports loading Tensorflow, Caffe, Tensorflow Lite, Onnx, Keras, Pytorchand Darknet models
-  * ''1_quantize_model.sh'' - Quantize model script. Now, it can quantize model in int8, int16 and uint8.+  * ''1_quantize_model.sh'' - Quantize model script. Now, it can quantize model in ''int8''''int16'' and ''uint8''.
   * ''2_export_case_code.sh'' - Export model script. If you use ''VIM3'', please set ''optimize'' to ''VIPNANOQI_PID0X88''. If use ''VIM3L'', please set ''optimize'' to ''VIPNANOQI_PID0X99''.   * ''2_export_case_code.sh'' - Export model script. If you use ''VIM3'', please set ''optimize'' to ''VIPNANOQI_PID0X88''. If use ''VIM3L'', please set ''optimize'' to ''VIPNANOQI_PID0X99''.
 +
 +<WRAP tip >
 +If you want to convert your own model, just modify converion scripts ''0_import_model.sh'', ''1_quantize_model.sh'', ''2_export_case_code.sh'' and  then execute ''./convert-in-docker.sh'' to convert your model.
 +</WRAP>
 +
  
 After the conversion is completed, you can see the converted code in the ''xxxx_nbg_unify'' directory. Converted model is ''xxxx.nb''. Here is the built-in model as an example. After the conversion is completed, you can see the converted code in the ''xxxx_nbg_unify'' directory. Converted model is ''xxxx.nb''. Here is the built-in model as an example.
  
 ```shell ```shell
-cd {workspace}/aml_npu_sdk/acuity-toolkit/demo/mobilenet_tf_nbg_unify +ls acuity-toolkit/demo/mobilenet_tf_nbg_unify 
-$ ls +BUILD 
-BUILD   makefile.linux   mobilenettf.vcxproj  vnn_global.h       vnn_mobilenettf.h   vnn_post_process.h  vnn_pre_process.h +makefile.linux 
-main.c  mobilenet_tf.nb  nbg_meta.json        vnn_mobilenettf.c  vnn_post_process.c  vnn_pre_process.c+mobilenettf.vcxproj 
 +main.c 
 +mobilenet_tf.nb 
 +nbg_meta.json 
 +vnn_global.h 
 +vnn_mobilenettf.h 
 +vnn_post_process.h 
 +vnn_pre_process.h 
 +vnn_mobilenettf.c 
 +vnn_post_process.c 
 +vnn_pre_process.c
 ``` ```
  
 <WRAP important > <WRAP important >
-If your model's input is not a three-channel image, please convert input data to npy format.+If your model's input is not a three-channel image, please convert input data to ''npy'' format.
 </WRAP> </WRAP>
  
-===== See Also ===== +==== Conversion Parameters ====
- +
-For the setting of conversion parameters, please refer to ''Model_Transcoding and Running User Guide Eng.pdf'' in ''Docs''.+
  
 +For the conversion parameters and settings, please refer to:
 +  * [[gh>khadas/aml_npu_sdk/tree/master/docs/en]]
 +  * [[gh>khadas/aml_npu_sdk/blob/master/docs/en/Model Transcoding and Running User Guide (1.0).pdf|Model Transcoding and Running User Guide]]
  
Last modified: 2023/09/11 02:18 by sravan