• Home
Name Date Size #Lines LOC

..--

BUILD.gnD12-May-20245.3 KiB207199

CMakeLists.txtD12-May-20241.4 KiB3831

README.mdD12-May-20243.9 KiB141110

main.cppD12-May-202410.3 KiB339281

nn_demo.hD12-May-20242.3 KiB7047

postprocess_util.cppD12-May-202421 KiB696591

README.md

1# 一、配置cmake编译环境:
2​	1、下载cmake
3https://cmake.org/download/
4​		注:版本要高于3.5.1
5​	2、 安装cmake
6
7```
8tar -xvf cmake-3.*.*.tar
9cd cmake-3.*.*
10./bootstrap
11make
12make install
13```
14
15
16​	3、 验证是否安装成功
17
18```
19cmake --version
20```
21
22
23​		显示cmake 版本即为成功
24
25# 二、配置编译工具链
26​	1、 下载工具链
27​		64位:wget https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz
28​		32位:wget https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
29​	2、 aarch64-linux-gnu安装过程
30​		a、解压,并放置在自己需要的文件夹内
31​			tar -xvJf ***.tar.xz
32​		b、编辑bash.bashrc文件
33​			sudo vi ~/.bashrc
34​		c、添加变量
35​			export PATH=path_to/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin:$PATH
36​		d、更新环境变量
37​			source ~/.bashrc
38​		e、检查环境是否加入成功
39​			echo $PATH
40​			下方出现刚添加的PATH即为成功
41​		f、运行aarch64-linux-gnu-gcc -v,查看gcc安装版本
42
43# 三、准备头文件、库、模型、模型输入文件
44
45资源获取路径:
46
47https://gitee.com/umspark/aml_npu_sdk
48
49移动相关文件如下所示:
50
51工作目录结构
52
53```
54├── linux_nn_sdk_V1.9
55│   ├── include
56│   │   ├── nn_sdk.h
57│   │   └── nn_util.h
58│   └── lib
59│       ├── lib32
60│       └── lib64
61└── yolo
62    ├── CMakeLists.txt
63    ├── include
64    │   ├── jconfig.h
65    │   ├── jmorecfg.h
66    │   └── jpeglib.h
67    ├── main.cpp
68    ├── nn_demo.h
69    ├── opencv
70    │   ├── include
71    │   ├── lib32
72    │   └── lib64
73    └── postprocess_util.cpp
74```
75
76# 四、可执行文件编译
77​	1、修改CMakeLists.txt
78​		A、修改GCC_PATH:
79​			修改line 6 :SET(GCC_PATH /xxx/xxx)
80​			设置gcc-linaro路径:设置为第二步配置工具链中,解压后工具链放置目录。
81​			例如,电脑上放置的路径是:/homeF/junwen.dai/a311d/linux_nnsdk_v1.9.4/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu
82​			即设置:SET(GCC_PATH /homeF/junwen.dai/a311d/linux_nnsdk_v1.9.4)
83
84		B、编译arm32或者arm64可执行文件:
85			line4/line5为设置编译32位或者64位可执行文件。
86			SET(ARM_32 arm_32)
87			SET(ARM_64 arm_64)
88
89			需要编译哪个,就注释掉另外一个即可,如当前需要编译32位的,即修改成:
90			SET(ARM_32 arm_32)
91			#SET(ARM_64 arm_64)
92		D、line29及30修改可执行文件名称
93		注:用户自建工程可将CMakeLists.txt文件拷贝到工程main函数同级目录下。
94
95	2、编译
96		在nnsdk路径下执行命令:
97		A、cmake .    //当前路径生成makefile
98		B、make      //编译
99		生成的可执行文件在当前目录下
100
101# 五、可执行文件运行
102
103​	1、将lib和模型和模型输入图片放到/data目录下
104
105可临时使用环境变量
106
107```
108export LD_LIBRARY_PATH=./lib
109```
110
111ld-linux-aarch64.so.1放到/lib/ld-linux-aarch64.so.1
112
113ld-linux-aarch64.so.1和sdk19_64权限
114
115​	2.加载ko
116
117```
118insmod galcore.ko
119```
120
121​	3、执行命令:
122
123```
124#执行程序 模型 图片
125./sdk19_64 ./yolov5s.nb ./bus.jpg
126```
127
128打印:
129
130```
131# ./sdk19_64 ./yolov5s.nb ./bus.jpg
132the input type should be 640*640*3
133used time: 0.040822 s; fps: 24.496595
134object_num:4
135class:bus,prob:0.623733,[left = 88,right = 556,top = 126,bot = 464]
136class:person,prob:0.872407,[left = 208,right = 287,top = 246,bot = 505]
137class:person,prob:0.852847,[left = 109,right = 229,top = 231,bot = 538]
138class:person,prob:0.864583,[left = 480,right = 560,top = 238,bot = 525]
139```
140
141