ubuntu环境 安装ncnn

ubuntu环境 安装ncnn,第1张

前言

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 的文件都安装在 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
程序效果

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1353500.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-14
下一篇 2022-06-14

发表评论

登录后才能评论

评论列表(0条)

保存