README.md
1# 一、配置cmake编译环境:
2 1、下载cmake
3 https://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
113给ld-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