Ubuntu16.04安装NCNN和Opencv

news2024/11/25 15:54:32

一、安装NCNN

        官网:NCNN官方文档

        On Debian, Ubuntu or Raspberry Pi OS, you can install all required dependencies using:

首先安装NCNN的依赖项,根据官网安装以下依赖项。

sudo apt install build-essential git cmake libprotobuf-dev protobuf-compiler libvulkan-dev vulkan-utils libopencv-dev

        然后开始安装NCNN,从github下载ncnn包:

git clone --depth=1 https://github.com/Tencent/ncnn.git

         cd到下载好的ncnn包的位置,如(cd /home/user-linux/ncnn),创建build文件夹并进入该文件夹。

cd ncnn
mkdir build
cd build

         如果不编译vulkan,设置DNCNN_VULKAN=OFF,一般来说不用,如果要编译vulkan还需要下载libvulkan-dev vulkan-utils(虽然官网直接全包含了),如果你的硬件设备支持GPU可以考虑下载vulka,不然就设置DNCNN_VULKAN=OFF就行。

cmake -DNCNN_VULKAN=OFF ..

        开始编译和install。 

make -j8
make install

        ncnn 的文件都安装在 build 下的 install 里面了,如果需要复制到 /usr/local执行以下指令,一般手动安装的都会做这么一个操作,方便后面的调用。(容易找到位置)

sudo mkdir /usr/local/lib/ncnn
sudo cp -r install/include/ncnn /usr/local/include/ncnn
sudo cp -r install/lib/libncnn.a /usr/local/lib/ncnn/libncnn.a

         至此,ncnn的安装已经完成。测试NCNN是否可用:

cd ../examples
../build/examples/squeezenet ../images/256-ncnn.png

# 得到输出
532 = 0.165951
920 = 0.094098
716 = 0.062193
cd ../benchmark
../build/benchmark/benchncnn 10 $(nproc) 0 0

# 输出
loop_count = 10
num_threads = 8
powersave = 0
gpu_device = 0
cooling_down = 1
          squeezenet  min =    2.89  max =    3.19  avg =    2.98
     squeezenet_int8  min =    5.37  max =    8.72  avg =    5.93
           mobilenet  min =    3.75  max =    4.26  avg =    3.91
      mobilenet_int8  min =    5.91  max =    6.08  avg =    5.98
        mobilenet_v2  min =    3.51  max =    4.31  avg =    3.83
        mobilenet_v3  min =    3.09  max =    3.70  avg =    3.22
          shufflenet  min =    3.03  max =    3.26  avg =    3.10
       shufflenet_v2  min =    2.51  max =    2.81  avg =    2.59
             mnasnet  min =    3.42  max =    3.90  avg =    3.66
     proxylessnasnet  min =    3.73  max =    4.26  avg =    3.88
     efficientnet_b0  min =    5.86  max =   10.86  avg =    6.76
   efficientnetv2_b0  min =    6.66  max =    7.58  avg =    7.00
        regnety_400m  min =    7.83  max =   12.75  avg =    8.52
           blazeface  min =    0.89  max =    0.96  avg =    0.91
           googlenet  min =   10.47  max =   11.00  avg =   10.85
      googlenet_int8  min =   19.94  max =   20.60  avg =   20.11
            resnet18  min =    8.22  max =   28.34  avg =   10.50
       resnet18_int8  min =   18.58  max =   53.93  avg =   22.29
             alexnet  min =    8.48  max =   41.33  avg =   14.13
               vgg16  min =   46.46  max =   54.78  avg =   49.38
          vgg16_int8  min =   48.13  max =   61.21  avg =   50.25
            resnet50  min =   19.17  max =   20.06  avg =   19.43
...

二、从source安装自己的Opencv

        在安装NCNN的时候安装依赖项是会安装Opencv,但是版本比较低,可用通过以下命令查看当前opencv版本。

pkg-config --modversion opencv

        这里想自己从source装一个Opencv 3.x版本以上的Opencv。首先前往Opencv官网下载对应版本的Releases - OpenCV,如我下载的是3.4.3的版本。下载后解压。

         进入opencv-3.4.3文件夹,建立build文件夹,进入build文件夹。

cd /home/maser-linux/Downloads/opencv-3.4.3
mkdir build
cd build

        进行cmake,编译和install。大概5-10分钟。

sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j8
sudo make install

        安装完opencv需要配置环境。用nano打开/etc/ld.so.conf,在文件中加上一行 /usr/loacal/lib,其中/user/loacal是opencv安装路径也就是makefile中指定的安装路径。即上面CMAKE_INSTALL_PREFIX=/usr/local。

         运行下面语句刷新库链接配置。

sudo ldconfig

        然后修改bash.bashrc文件并更新。

sudo gedit /etc/bash.bashrc 

# 输入
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH


source /etc/bash.bashrc

         在命令行中输入如下命令:说明Opencv3.4.3安装完成。

pkg-config opencv --modversion

        顺便一提,如果是安装的opencv4,查看版本应该是:

pkg-config --modversion opencv4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/429549.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dc-4靶机渗透

1.信息搜集,扫描存活主机,扫描端口,服务,发现开放80,22端口,cms没有看到 nmap 192.168.85.0/24 nmap -p1-66535 192.168.85.175 nmap -sv 192.168.85.1752.访问网站,发现登录框,根据提示&#…

360安全卫士 - 设置技巧 / 关闭广告

360安全卫士 - 设置技巧 / 关闭广告前言同步设置基本设置弹窗设置开机小助手安全防护中心漏洞修复木马查杀功能大全管理360文件夹游戏管家健康助手前言 360安全卫士是一款免费的PC安全软件,拥有垃圾清理、病毒查杀、启动项管理等功能。虽然有一些广告,但…

【Python】python技能树之包含元祖的列表升降序

文章目录前言一、实际操作二、使用步骤总结前言 大家都知道,在Python里面可以使用.sort方法或者sorted函数对各种数据进行排序,例如: 一、实际操作 a [2, 3, 1, 9, 3, 7, 4] a.sort() b [2, 3, 1, 9, 3, 7, 4] c sorted(b, reverseTrue…

Linux中的网络

文章目录一 、查看网络配置1.2 route命令—查看路由条目1.3 1.3hostname命令—查看主机名称1.4netstat命令—查看网络连接情况二 、测试网络连接2.1 ping 命令2.2 traceroute命令—跟踪数据包的路由途径2.3 mtr—动态跟踪网络2.4 nslookup命令—测试域名解析三 、使用网络配置命…

迎难而上,阿里高频考点2023Java岗面试突击手册

上周我接到一位粉丝的私信说目前互联网形势实在对他太不友好,感觉自己每个技术栈都会一点,但不是完全精通。基本二面三面的时候就挂了,已经完全不知道该朝哪个方向努力了,希望可以给他一些建议和方法指导。那么,本次就…

[golang gin框架] 20.Gin 商城项目-商品模块功能

一.商品模块数据表ER图关系分析商品模块数据表相关功能关系见:[golang gin框架] 16.Gin 商城项目-商品模块数据表ER图关系分析二.商品相关界面展示商品列表该商品列表有如下功能1.增加商品按钮:跳转到增加商品页面2.搜索功能:输入商品名称,点击搜索3.修改商品字段(上架,精品,新…

软件测试入门第一步:编写测试报告

什么是测试报告? 1、说明:是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。 ps. 【测试过程和测试结果的分析报告,以及上线…

大爽pygame入门教程 第一节 基础知识 练习提示与答案

作者自我介绍:大爽歌, b站小UP主 ,编程1对1辅导老师 1 逐行展示 思路提示 点击触发 之前的多行展示,是通过循环实现的。 这一回要点击触发一行的展示,不能直接使用循环了。 这里我们往更深层次去思考一下: 之前循环…

【CSS】margin 外边距负值使用案例 ( 正常外边距 | 使用外边距负值实现边框重叠 | 重叠边框突出显示 )

文章目录一、正常外边距案例二、使用外边距负值实现边框重叠三、重叠边框突出显示案例1、使用相对定位2、使用 z-index 设置定位盒子层级一、正常外边距案例 margine 正常情况下使用 , 设置 float 浮动 , 使得相邻的盒子模型紧贴在一起 ; 如果设置边框 , 则相邻的边框会重叠在…

A Comprehensive Capability Analysis of GPT-3 and GPT-3.5 Series Models论文学习

一、概述 Motivation:GPT系列的模型,像GPT-3,CodeX,InstructGPT,ChatGPT,尽管很多人关注他们能力的不同,但是很少关注GPT系列模型随着时间变化其能力的变化情况。 Methods: 在9个NL…

【LeetCode】轮转数组

👻内容专栏:《LeetCode刷题专栏》 🐨本文概括:189.轮转数组 🐼本文作者:花 碟 🐸发布时间:2023.4.12 目录 思想1 暴力求解 代码实现: 思想2 三次倒置 代码实现&#…

Linux使用宝塔面板搭建网站,并内网穿透实现公网访问

文章目录前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4.固定http地址5. 配置二级子域名6.创建一个测试页面前言 宝塔面板作为简单好用的服务器运维管理面板,它支持Linux/Windows系统,我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等&…

Java阶段二Day02

Java阶段二Day02 文章目录Java阶段二Day02SpringMVC的部分主流程HTTP请求Request1:请求行2:消息头3:消息正文HTTP响应Response1:状态行2:响应头3:响应正文通过版本迭代仿写SpringBootV1BirdBootApplication…

云安全—etcd未授权漏洞cert证书遗失

0x00 前言 今儿来看看etcd未授权漏洞以及cert证书遗失问题 0x01 etcd简述 1.etcd是什么 etcd是采用go语言编写的一个分布式的key-value存储。 2.etcd作用 etcd主要用于解决集群管中的OS升级的分布式并发控制以及配置文件的存储与分发等问题。在kubernetes集群中&#xff…

《白帽子讲Web安全》世界观安全

1.Web安全简史1.1中国黑客简史对于现代计算机系统来说,在用户态的最高权限是root,也是黑客们最渴望能够获取的系统最高权限。不想拿到“root”的黑客,不是好黑客。在现实世界中,真正造成破坏的,往往并非那些挖掘并研究…

css右外边距失效问题解释以及解决办法

浏览器默认从左往右渲染元素&#xff0c;在没有超出父容器的宽度的前提下 如果子容器的宽度能够被容纳 设置margin-right是没有用的 解释 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title></title…

Linux环境搭建SVN服务器并实现公网访问 - cpolar端口映射

文章目录前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6.2 …

C/C++中文参考手册离线最新版

最近又用回C/C刷题&#xff0c;回想上一年还在用Java&#xff0c;C/C才是世界上最好的语言&#xff08;纯属调侃&#xff09;。哼哼&#xff0c;不许反驳。 想分享我正在使用的C/C中文参考手册离线最新版给大家&#xff0c;需要的朋友们可以自行下载&#xff08;free的哦&#…

Pytorch对预训练好的VGG16模型进行微调

目录 1.数据集准备、预训练模型准备 2.对VGG16模型进行微调 3.对数据集进行预处理 4.对模型进行训练并可视化训练过程 5.该测试案例的完整代码 对于一个复杂的卷积神经网络来说&#xff0c;通常网络的层数非常大&#xff0c;网络的深度非常深、网络的参数非常多&#xff0c…

中文翻译英语转换器-怎么把wps表格里的英文翻译成中文

对于那些需要频繁地进行中英互译的用户来说&#xff0c;字数限制是一个常见的问题。很多翻译软件经常会限制每次翻译的字数&#xff0c;导致用户翻译工作的效率和质量无法得到保证。如果您正在遭受这些限制&#xff0c;中英互译字数无限的软件将让您的翻译工作变得更加便捷和高…