Linux系统上常用软件集锦
[TOC]
概述文章参考:https://mp.weixin.qq.com/s/2XY_b9MfnTIvxPzsGBLmoQ
Linux系统上常用软件集锦
[TOC]
概述文章参考:https://blog.csdn.net/weixin_44049693/article/details/106271643
概述最初用opencv处理图像时,大概查过cv2.waitKey这个函数,当时查的迷迷糊糊的,只知道加上cv2.waitKey之后cv2.imshow就可以显示图像了。今天做视频逐帧截取时再次碰见了它,我盯着它想了半天也不知道这个函数有什么用,于是打开浏览器,一逛就是大半天。现在把我的收获及想法总结一下。
cv2.imshow之后要跟cv2.waitkey我们先说说它的好兄弟cv2.imshow。我们都知道imshow的作用是在GUI里显示一幅图像,但是它有个特点我们没有太注意,就是它的持续时间。看看下面的测试你就明白了。
实际上,waitkey控制着imshow的持续时间,当imshow之后不跟waitkey时,相当于没有给imshow提供时间展示图像,所以只有一个空窗口一闪而过。添加了waitkey后,哪怕仅仅是cv2.waitkey(1),我们也能截取到一帧的图像。所以cv2.imshow后边是必须要跟cv2.waitkey的。 ...
Linux系统上常用软件集锦
[TOC]
概述
OpenCV2.4.13编译
[TOC]
概述源码下载:https://github.com/opencv/opencv/releases/tag/2.4.13.4
源码编译编译配置:
编译类型为release
123$ cd opencv-2.4.13$ mkdir build$ cd build
12345678910#编译配置cmake -DCMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=~/03.ProgramSpace/15.CLang/03.Source/OpenCV-2.4.13.4/opencv-2.4.13.4/build/install \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D BUILD_opencv_python2=OFF \ -D BUILD_opencv_python3=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D INSTALL_C_EXAMPLES=OFF \ -D OP ...
OpenCV2.4.13编译
[TOC]
概述源码下载:https://github.com/opencv/opencv/releases/tag/2.4.13.4
文章参考:https://www.cnblogs.com/shine-lee/p/9884551.html
https://www.cvmart.net/community/detail/192?order_by=vote_count&
https://zhuanlan.zhihu.com/p/355147243
Nvidia carotene库了解 carotene(https://github.com/opencv/opencv/tree/master/3rdparty/carotene)库的人应该不多,但了解 OpenCV 的人应该不少吧?carotene 能够作为 OpenCV 的第三方库(third party)存在,足以证明其代码质量。
carotene 的组织结构同样简单,且不依赖 OpenCV 的数据结构,想用想学习哪个函数直接提取出来即可。如下图,里面主要用 Neon 实现了色彩空间转换、均值滤波、Canny 边缘检测等常见的 ...
Linux系统上常用软件集锦
[TOC]
文章参考:https://blog.csdn.net/m0_37264397/article/details/124184227
param文件1234567891011121314151617181920212223242526272829303132333435367767517 // 版本信息33 34 // layer层(网络层) 以及blob数目Convolution conv1 1 1 data conv1 0=16 1=3 2=1 3=2 4=0 5=1 6=144BatchNorm conv1/bn1 1 1 conv1 conv1_conv1/bn1 0=16Scale conv1/bn2 1 1 conv1_conv1/bn1 conv1_conv1/bn2 0=16 1=1ReLU relu1 ...
Linux系统上常用软件集锦
[TOC]
概述量化背景
随着神经网络层数的不断加深,网络体积与计算量也在不断增大。对于实时性要求较高的模型计算,及移动端的ai需求,设备算力可能不足以支持运算需求。对模型的权重进行量化可以有效的加速运算,减少资源开销。
低比特量化技术
为什么CNN可以使用量化模型做推理
由于pooling层、激活函数层(如relu),早期的DropOut层的存在,CNN网络结构对于噪声是不敏感的。 因此在卷积神经网络模型的前向计算时,可以使用低精度的数值类型(float16/int8)来表示模型训练所使用的float32浮点数值。
量化的收益
以int8量化为例,量化后的模型体积将为量化前的1/4,减少了存储压力及访存压力
定点运算相较于浮点运算,模型运算速度提升明显
量化的问题与难点
核心是精度损失
低比特计算会带来精度的损失
量化对于模型权重分布的描述不能完全准确
相较于分类任务,回归任务精度损失将更大
深层网络会带来更大的精度损失
DepthWise对于量化不友好
同时也需考虑软硬件支持
不同硬件支持的低比特指令不一致
不同神经网络框架提供的量化方法不一致 ...
NCNN环境搭建
[TOC]
概述源码编译基于Ubuntu20文章参考:https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux
文章参考:https://blog.csdn.net/baiyu33/article/details/107179618
安装依赖
1sudo apt install build-essential git cmake libprotobuf-dev protobuf-compiler libvulkan-dev vulkan-utils
也需依赖opencv,这个源码编吧,可以看教程《【经验分享】ubuntu源码编译opencv》。
安装ncnn123456git clone https://github.com/Tencent/ncnn.gitcd ncnnmkdir build && cd buildcmake ..makemake install
基于MacOS
Linux系统上常用软件集锦
[TOC]
概述概述文章参考:https://github.com/BVLC/caffe
Caffe开发环境搭建安装步骤:http://caffe.berkeleyvision.org/installation.html
文章参考:https://blog.csdn.net/qq_45700350/article/details/117323896
文章参考:https://www.cxybb.com/article/qq_40755643/96346453
文章参考:https://blog.csdn.net/smallyang0613/article/details/118752632
更新软件环境在终端中执行如下命令,将系统内核和基础组件升级至最新版本,否则后续编译会因为组件版本问题遇到不可预料的错误。
123456789101112# 更新软件仓库缓存sudo apt-get update # 更新所有软件包至最新版本sudo apt-get upgrade -y # 更新的过程中可能会升级 Linux 内核,执行下述命令删除不再使用的旧内核sudo apt-get autor ...
Linux系统上常用软件集锦
[TOC]
概述概述环境搭建文章参考:https://www.paddlepaddle.org.cn/
1234567python -m pip install paddlepaddle==2.3.0 -i https://mirror.baidu.com/pypi/simpleconda install paddlepaddle==2.3.0 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/pip install opencv-python -i https://pypi.douban.com/simplepython -m pip install paddlepaddle==2.3.1 -i https://mirror.baidu.com/pypi/simple
PaddlePaddle环境搭建(基于python3.7)创建Anaconda的开发环境
123conda create -n paddle_py37 python=3.7conda activate paddle_py3 ...