$ 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
主要内容说明:
build_vx.sh - 编译脚本
include - 相应的头文件以及所有的定义都会放置在这个目录下
Makefile - Makefile文件
makefile.linux - Make时的环境配置文件
vnn_yolov3.c - SDK转换出来的模型处理文件,主要使用到其中与nb文件对接的接口
yolo_v3.c - 指定调用的nb文件,同时定义了模型的调用的所有接口
yolov3_process.c - 主要定义了模型的前处理和后处理
应用层说明
进入应用层源码目录
1 2 3
$ cd {workspace}/aml_npu_app/detect_library $ ls model_code sample_demo_fb sample_demo_x11 source_code yolo_demo_gst_uvc_fb yolo_demo_mipi_fb yolo_demo_x11
$ cd {workspace}/aml_npu_app/detect_library/sample_demo_x11 $ ls 1080p.bmp build_vx.sh detect.h emb.db main.cpp makefile.linux nn_detect_common.h nn_detect.h nn_detect_utils.h ReadMe.txt result
这里对主要的文件做说明
build_vx.sh - 编译脚本
makefile.linux - 编译脚本在编译时需要指定的makefile.linux文件
main.cpp - 环境下的应用demo的主要源码.
xxx.h - 应用层需要使用到的定义相关的头文件
编译仓库源码
编译库
编译库,只要进入到相应的库的目录编译即可。这里以yolov3为例
1 2 3 4 5 6 7 8 9 10 11 12 13
$ cd {workspace}/aml_npu_app/detect_library/model_code/detect_yolo_v3 $ ./build_vx.sh COMPILE /home/khadas/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/detect_yolo_v3/yolov3_process.c COMPILE /home/khadas/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/detect_yolo_v3/vnn_yolov3.c vnn_yolov3.c: In function ‘vnn_CreateYolov3’: vnn_yolov3.c:145:29: warning: unused variable ‘data’ [-Wunused-variable] 145 | uint8_t * data; | ^~~~ At top level: vnn_yolov3.c:94:17: warning: ‘load_data’ defined but not used [-Wunused-function] 94 | static uint8_t* load_data | ^~~~~~~~~ COMPILE /home/khadas/aml_npu_app/DDK_6.3.3.4/detect_library/model_code/detect_yolo_v3/yolo_v3.c
在输出目录bin_r下就能看到生成的库
1 2 3
$ cd {workspace}/aml_npu_app/detect_library/model_code/detect_yolo_v3/bin_r $ ls libnn_yolo_v3.so vnn_yolov3.o yolo_v3.o yolov3_process.o
编译应用
编译应用时,要先编译libnn_detect.so。这是编译其他应用的依赖库之一.
编译libnn_detect.so
进入source_code目录,编译libnn_detect.so
1 2 3 4 5 6
$ cd {workspace}/aml_npu_app/detect_library/source_code $ ./build_vx.sh COMPILE /home/khadas/aml_npu_app/detect_library/source_code/detect.c COMPILE /home/khadas/aml_npu_app/detect_library/source_code/detect_log.c tee: /linux_build_sample.log: Permission denied make: Nothing to be done for 'all'.
在bin_r目录下,就会生成libnn_detect.so
1 2 3
$ cd {workspace}/aml_npu_app/detect_library/source_code/bin_r $ ls detect_log.o detect.o libnn_detect.so