ubuntu环境 安装ncnn

前言

1.ubuntu环境 安装opencv4
2.安装g++,cmake,protobuf
3.安装并测试ncnn
4.cmake编译ncnn项目
5.qt编译器内编译ncnn项目

正文

因为ncnn库依赖 opencv 和 protobuf 因此你需要先配置好依赖环境再编译ncnn。
如果你访问git很慢 可以直接下载我这边使用的 opencv/ncnn/protobuf 源码进行编译

一、ubuntu环境 安装opencv4

方法1:如果你不需要指定opencv的版本 ,可以通过指令sudo apt install libopencv-dev
去下载opencv(讲道理可以,我没试过)
方法2:安装opencv4的教程参考链接:ubuntu环境 安装opencv4

二、安装g++,cmake,protobuf

sudo apt-get install build-essential
sudo apt-get install cmake 
sudo apt-get install autoconf automake libtool curl make g++ unzip
以下是安装protobuf的教程
git clone https://github.com/google/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh$ ./configure
make
make check
sudo make install
sudo ldconfig           # refresh shared library cache.

查看protobuf版本自动检测
protoc --version

在开发板中 make check 遇到以下问题可以选择忽略
在这里插入图片描述

三、安装并测试ncnn

官方安装教程
腾讯开源 ncnn 码云官网
3.1 下载依赖环境

sudo apt install build-essential git cmake libprotobuf-dev protobuf-compiler 
sudo apt install libvulkan-dev vulkan-utils (如果不编译vulkan可以不下)
sudo apt install libopencv-dev (如果上面已经下载了opencv指定版本这里不需要下载)

3.2 下载安装vulkan sdk (如果你的硬件设备支持GPU可以考虑下载vulkan)
要使用 Vulkan 后端,请安装 Vulkan 头文件、vulkan 驱动程序加载器、GLSL 到 SPIR-V 编译器和 vulkaninfo 工具。最好来自您的分发存储库。或者,从https://vulkan.lunarg.com/sdk/home下载并安装完整的 Vulkan SDK(大小约为 200MB;它包含所有头文件、文档和预构建的加载程序,以及一些额外的工具和所有内容的源代码)方法如下

wget https://sdk.lunarg.com/sdk/download/1.2.189.0/linux/vulkansdk-linux-x86_64-1.2.189.0.tar.gz?Human=true -O vulkansdk-linux-x86_64-1.2.189.0.tar.gz
tar -xf vulkansdk-linux-x86_64-1.2.189.0.tar.gz
export VULKAN_SDK=$(pwd)/1.2.189.0/x86_64

要在稍后构建 ncnn 后使用 Vulkan,还需要为 GPU 安装 Vulkan 驱动程序。

sudo apt install mesa-vulkan-drivers

3.2下载ncnn代码

git clone https://github.com/Tencent/ncnn.git
github上下载太慢,可换码云下载 ⬇
git clone https://gitee.com/Tencent/ncnn.git

cd ncnn
git submodule update --init

3.3 编译安装ncnn
如果你的电脑支持GPU你可以将VULKAN库编译进去 即-DNCNN_VULKAN=ON

mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DNCNN_VULKAN=OFF -DNCNN_BUILD_EXAMPLES=ON ..
make -j4
sudo make install
sudo ldconfig

如果你是为开发板交叉编译ncnn 你可以需要修改cmake
如cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-linux-gnu.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DNCNN_VULKAN=OFF -DNCNN_BUILD_EXAMPLES=ON ..
详细内容请参考:https://blog.csdn.net/u010986080/article/details/86071049

测试是否移植成功
在这里插入图片描述
在这里插入图片描述

ncnn 的文件都安装在 build 下的 install 里面了
如果需要复制到 /usr/local执行以下指令

sudo cp -r install/bin/* /usr/local/bin/
sudo cp -r install/include/* /usr/local/include/
sudo cp -r install/lib/* /usr/local/lib/

在这里插入图片描述

四、cmake编译ncnn项目

CMakeLists.txt
指定opencv路径
指定ncnn的安装路径

cmake_minimum_required(VERSION 2.8)

project(demo)
set(OpenCV_DIR "/home/book/opencv/linux/world/opencv-4.5.4/install/lib/cmake/opencv4")
find_package(OpenCV REQUIRED)

set(ncnn_DIR "/home/book/ncnn/ncnn/build/install/lib/cmake/ncnn")
find_package(ncnn REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS} src/dectector.h)

add_executable(demo src/main.cpp src/detector.cpp)
target_link_libraries(demo ${OpenCV_LIBS} ncnn)

五、qt编译器内编译ncnn项目

.pro文件

# 解决报错:undefined reference to symbol 'omp_get_num_threads@@OMP_1.0'
QMAKE_CXXFLAGS += -fopenmp
LIBS += -fopenmp

#添加opencv环境
unix:!macx: LIBS += -L$$PWD/../../../../opencv/linux/world/opencv-4.5.4/install/lib/ -lopencv_world
INCLUDEPATH += $$PWD/../../../../opencv/linux/world/opencv-4.5.4/install/include/opencv4
DEPENDPATH += $$PWD/../../../../opencv/linux/world/opencv-4.5.4/install/include/opencv4

#添加ncnn环境
unix:!macx: LIBS += -L$$PWD/../../../ncnn/build/install/lib/ -lncnn
INCLUDEPATH += $$PWD/../../../ncnn/build/install/include/ncnn
DEPENDPATH += $$PWD/../../../ncnn/build/install/include/ncnn
unix:!macx: PRE_TARGETDEPS += $$PWD/../../../ncnn/build/install/lib/libncnn.a

程序效果

在这里插入图片描述

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jbyyy、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值