如何编译ncnn

最近在学习神经网络在边缘端的部署,所以在自己的电脑虚拟机中进行编译ncnn框架。
首先编译ncnn需要准备g++、cmake、protobuf,opencv
安装g++

sudo apt-get install gcc-4.8 g++-4.8
在命令行当中输入如下指令,等待安装即可。  

随后安装cmake

1.首先安装cmake所需的依赖

sudo apt install build-essential libssl-dev

cmake官网下载cmake
可以选择图中红框的版本2.随后将下载好的文件上传到虚拟机中,然后移动到指定的文件夹,使用如下命令进行加压

tar -zxvf cmake-3.22.1.tar.gz

3.随后进入到cmake文件夹中,使用如下命令进行构建

cd  cmake-3.22.1
./configure --prefix=/usr/local

4.编译安装

make
sudo make install

5.将命令脚本软链到 /usr/bin/,供全局使用

sudo ln -s /usr/local/bin/* /usr/bin/

6.查看一下cmake 版本,如下图所示,安装成功
在这里插入图片描述

opencv安装

1.首先,到opencv的官网进行下载,这里我们选择4.5.5版本,点击source下载即可
在这里插入图片描述
将下载好的压缩文件上传到虚拟机中进行解压
2.安装所需依赖

apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev  

在执行第二条命令时,可能会出现无法定位软件包 libjasper-dev的错误,可以通过如下方式解决:
在这里插入图片描述

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update # 更新软件包

随后再执行第二条命令。
3.解压下载下来的zip包

unzip opencv-4.5.5.zip

4.进入到opencv文件夹中

cd opencv-4.5.5/

5.创建一个文件夹用于编译

mkdir my_build_dir
cd my_build_dir

6.cmake一下

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

7.sudo make 等待编译
在这里插入图片描述

8.sudo make install 安装

9.sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到

sudo gedit /etc/ld.so.conf.d/opencv.conf 

执行此命令后打开的可能是一个空白的文件,只需要在文件末尾添加

/usr/local/lib  

在这里插入图片描述

10.执行如下命令使得刚才的配置路径生效

sudo ldconfig  

11.配置bash

sudo gedit /etc/bash.bashrc  

在末尾添加并保存文件

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

12.执行命令使得上述配置生效

source /etc/bash.bashrc  

13.进行一下更新

sudo updatedb  

到这里位置,所有有关于opencv的安装和配置都已经完成,我们可以使用一个样例程序来测试一下。
14.cd到opencv-4.5.5/samples/cpp/example_cmake目录下,按顺序执行如下命令

cmake .
make
./opencv_example

运行结果
在这里插入图片描述

正常情况下,可以看到打开了电脑的摄像头,桌面上显示窗口。但是我在执行的过程中报错了,解决方式如下:
1.使用“win+R”快捷键,打开win10电脑的运行端口,然后输入:services.msc,打开服务设置
在这里插入图片描述
2.在服务页面找到“VMUSBArbService”服务,并将其启动。
在这里插入图片描述
3.打开VMware,编辑虚拟机设置,在usb控制器中使用use3.0。
在这里插入图片描述
4.如下图所示,选择连接
在这里插入图片描述

Protobuf的编译安装

在安装好opencv之后,接下来就是安装Protobuf,和opencv安装的过程很像,首先我们到protobuf的github上进行下载官网
在这里插入图片描述
下载完成之后将其上传到虚拟机中进行解压。在解压完成之后,cd到protobuf的文件夹当中。然后安装光网的提示进行编译安装。
在这里插入图片描述
依次执行上述命令。即可。

 ./configure
 make -j$(nproc) # $(nproc) ensures it uses all cores for compilation
 make check
 sudo make install
 sudo ldconfig # refresh shared library cache.

编译安装ncnn

1.首先进入ncnn的代码仓库ncnn进行下载。
在这里插入图片描述
2.将下载得到ncnn-master.zip上传到虚拟机中进行解压

 unzip ncnn-master.zip 

3.解压完成之后,首先cd到ncnn文件夹中,依次执行如下命令即可

cd ncnn-master
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DNCNN_VULKAN=ON -DNCNN_SYSTEM_GLSLANG=ON -DNCNN_BUILD_EXAMPLES=ON ..
make -j$(nproc)

其中DNCNN_VULKAN是针对gpu的,如果想要ncnn能调用gpu做推理,那么选项需要打开。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值