Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


Sidebar

products:sbc:vim3:npu:npu-app

Application Source Code

Introduction

This document mainly describes how to compile executable files from application source code.

Only support local compile on VIM3/3L Only support OpenCV4

Install OpenCV4

$ sudo apt update
$ sudo apt install libopencv-dev python3-opencv

Get Source Code

$ mkdir{workspace} && cd {workspace}
$ git clone https://github.com/khadas/aml_npu_app

Source Description

Directory structure description

$ cd {workspace}/aml_npu_app
$ ls
DDK_6.3.2  DDK_6.3.2.3  DDK_6.3.2.5  DDK_6.3.3.4  DDK_6.4.0.3  DDK_6.4.3  detect_library  LICENSE  NN_SLT
  • DDK_xxx - Different versions of library source code
  • detect_library - Application layer source code. detect_library/model_code link to the latest version of DDK
  • NN_SLT - Separate source code directory for DnCnn model (no longer maintained)
  • LICENSE - LICENSE file

Library Description

Enter the directory of the library source code, which is the directory of the DDK.

$ cd {workspace}/aml_npu_app/detect_library/model_code
$ ls
detect_mtcnn  detect_yoloface  detect_yolo_v2  detect_yolo_v3  detect_yolo_v3_tiny  detect_yolo_v4  facenet

Except for detect_mtcnn, each directory represents a different model, and each model will be compiled into a library.

  • detect_yoloface - yoloface model, used to detect faces
  • detect_yolo_v2 - yolov2 model, for object detection
  • detect_yolo_v3 - yolov3 model, for object detection
  • detect_yolo_v3_tiny - yolov3-tiny model, for object detection
  • detect_yolo_v4 - yolov4 model, used to detect faces

Take detect_yolo_v3 as an example to illustrate the structure of each directory.

$ cd {workspace}/aml_npu_app/detect_library/model_code/detect_yolo_v3
$ ls
build_vx.sh  include  Makefile  makefile.linux  vnn_yolov3.c  yolo_v3.c  yolov3_process.c

Main content description:

  • build_vx.sh - Compile script
  • include - The corresponding header files and all definitions will be placed in this directory
  • Makefile - Makefile file
  • makefile.linux - Make environment configuration file
  • vnn_yolov3.c - SDK The converted model processing file is mainly used to interface with the nb file
  • yolo_v3.c - Specify the called nb file, and define all the interfaces of the model call
  • yolov3_process.c - Mainly defines the pre-processing and post-processing of the model
Last modified: 2022/09/16 09:52 by frank