Tic商业评论

关注微信公众号【站长自定义模块】,定时推送前沿、专业、深度的商业资讯。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

  • QQ空间
  • 回复
  • 收藏

在Ubuntu 18.04 上安装 OpenCV 4.4.0 和 Caffe

lijingle 环境搭建 2022-1-25 21:17 3519人围观

介绍
本文介绍在 Ubuntu 18.04 for Python 3 上安装 OpenCV 4.4.0 和 Caffe。
随着对 Python 2 的支持结束,许多软件包还没有针对 Python 3 进行更新。 而像 Caffe 这样的框架高度依赖这些包。 例如,必要的 scikit 图像库现在不再可用于 Python 2 Caffe 构建。
另一个问题是 OpenCV。 在 2013 年开发 Caffe 时,OpenCV 的 2.4.13 版本被到处使用。 现在我们有了 OpenCV 4.4.0。 有很多不同之处。 不仅是使用的 C++ 编译器版本,还有 Linux 安装文件夹。 现在为 Python3 安装 Caffe 和 OpenCV 4.4.0。

OpenCV 依赖项
OpenCV 大量使用第三方软件库。 这些必须在 Ubuntu 上安装,然后才能设置 OpenCV。 当它们已经安装时,不会造成任何损坏。 这样,你始终可以确定你拥有最新版本。
$ sudo apt-get upgrade
# install the dependencies
$ sudo apt-get install build-essential cmake git unzip pkg-config
$ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install libgtk2.0-dev libcanberra-gtk*
$ sudo apt-get install python3-dev python3-numpy python3-pip
$ sudo apt-get install libxvidcore-dev libx264-dev libgtk-3-dev
$ sudo apt-get install libtbb2 libtbb-dev libdc1394-22-dev
$ sudo apt-get install libv4l-dev v4l-utils
$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
$ sudo apt-get install libavresample-dev libvorbis-dev libxine2-dev
$ sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev
$ sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
$ sudo apt-get install libopenblas-dev libatlas-base-dev libblas-dev
$ sudo apt-get install liblapack-dev libeigen3-dev gfortran
$ sudo apt-get install libhdf5-dev protobuf-compiler
$ sudo apt-get install libprotobuf-dev libgoogle-glog-dev libgflags-dev
# a symlink to videodev.h
$ cd /usr/include/linux
$ sudo ln -s -f ../libv4l1-videodev.h videodev.h
$ cd ~

下载 OpenCV。
当所有第三方软件都安装好后,就可以下载 OpenCV 本身了。 需要两个包; 基本版本和附加贡献。 在 https://opencv.org/releases/ 下载最新版本之前检查。 如有必要,请根据最新版本更改 zip 文件的名称。 下载后,你可以解压缩文件。
# a fresh start in the morning
$ sudo apt-get update
$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.4.0.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.4.0.zip

$ unzip opencv.zip
$ unzip opencv_contrib.zip

下一步是一些管理。 首先,使用更方便的名称重命名你的目录,例如 opencv 和 opencv_contrib。 这使以后的编译更容易。 接下来,创建一个所有构建文件所在的目录。
$ mv opencv-4.4.0 opencv
$ mv opencv_contrib-4.4.0 opencv_contrib

$ cd opencv
$ mkdir build
$ cd build

CUDA
CUDA 工具包显着提高了深度学习软件的性能。 如果你有 NVIDIA 显卡,那么你过去可能已经安装了 CUDA。 如果没有,NVIDIA 有一个很好的网站可以指导你完成安装过程。 你需要确定显卡的架构编号。 使用此命令获取有关你的卡的所有信息。
$ nvidia-smi
根据给定的信息,很容易在此页面 https://developer.nvidia.com/cuda-gpus 上找到你的 GPU 卡的架构版本。 请记住,Caffe 建议使用大于或等于 3.0 的 CUDA 功能。 低于该数字,必须重写软件以减少线程数和批量大小。 我们在构建 OpenCV 时使用找到的架构编号,然后使用 Caffe 构建。


构建Makefile
在这里,你将告诉 CMake 什么、在哪里以及如何在你的 Ubuntu 系统上制作 OpenCV。 涉及许多标志。 我们通过排除任何(Python)示例或测试来节省内存。
请注意,-D 标志之前只有空白空格,而不是制表符。 最后两个点不是错字,它告诉 CMake CMakeLists.txt 文件的位置; 上一个目录。 设置 OPENCV_GENERATE_PKGCONFIG 标志,因为我们将在安装 Caffe 时使用配置。

提供了两组不同的 cmake 选项,一组支持 CUDA,另一组不支持。 如果启用 CUDA,请检查之前找到的架构编号。 我们有 CUDA_ARCH_BIN=7.0,但如果它与你的不同,请修改该数字。 如果你像我们一样启用了 WITH_CUDNN=ON,还请检查 cuDNN 目录的路径。 必要时进行更改。
有 CUDA
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D BUILD_TIFF=ON \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_TBB=ON \
-D BUILD_TBB=ON \
-D WITH_EIGEN=ON \
-D WITH_V4L=ON \
-D WITH_LIBV4L=ON \
-D WITH_VTK=OFF \
-D WITH_QT=OFF \
-D WITH_OPENGL=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D BUILD_TESTS=OFF \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D CUDA_ARCH_BIN=7.0 \
-D WITH_CUBLAS=ON \
-D WITH_CUDNN=ON \
-D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so.7.6.5 \
-D CUDNN_INCLUDE_DIR=/usr/local/cuda/include \
-D BUILD_EXAMPLES=OFF ..

无 cuda
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D BUILD_TIFF=ON \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_TBB=ON \
-D BUILD_TBB=ON \
-D WITH_EIGEN=ON \
-D WITH_V4L=ON \
-D WITH_LIBV4L=ON \
-D WITH_VTK=OFF \
-D WITH_QT=OFF \
-D WITH_OPENGL=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D BUILD_TESTS=OFF \
-D BUILD_EXAMPLES=OFF ..

如果一切顺利,CMake 会附带一个类似于以下屏幕截图。



编译 OpenCV
现在一切都准备好了。 这需要一些时间。 你可以通过同时使用机器中的多线程来加快速度。
$ make -j$(nproc)
希望你的构建成功。 现在完成,使用以下命令将所有生成的包安装到系统中。
$ sudo make install
$ sudo ldconfig
$ sudo apt-get update
现在检查你在 Python 3 中的安装了成功了。



caffe依赖
有了 OpenCV,是时候开始安装 Caffe 了。 就像 OpenCV 一样,Caffe 依赖于其他库。 其中一些库是在安装 OpenCV 期间下载的,有些是新的。 为了完整起见,下面列出了所有必需的库。
$ sudo apt-get install cmake git unzip 
$ sudo apt-get install libprotobuf-dev libleveldb-dev liblmdb-dev
$ sudo apt-get install libsnappy-dev libhdf5-serial-dev protobuf-compiler
$ sudo apt-get install --no-install-recommends libboost-all-dev
$ sudo apt-get install libatlas-base-dev libopenblas-dev
$ sudo apt-get install the python3-dev python3-skimage
$ sudo pip3 install pydot
$ sudo apt-get install graphviz

下载caffe
当所有需要的库都安装好后,就可以下载 Caffe 了。
链接:https://pan.baidu.com/s/1bJgbIWfCdB9ZOGyuXItuWA 提取码:mcel

cuDNN
cudnn版本8已经丢弃了caffe所依赖的一些接口,编译的过程中会出现"CUDNN_CONVOLUTION_FWD_SPECIFY_WORKSPACE_LIMIT was not declared in this scope". 其中两个接口cudnnGetConvolutionForwardAlgorithm, cudnnGetConvolutionBackwardDataAlgorithm被其他的接口替代,并且cudnnGetConvolutionBackwardFilterAlgorithm接口没有找到合适的替代。
这里安装cudnn你有三个选择:
1.将版本降到7.6,这个是不建议的,会导致其他依赖出现问题
2.使用没有cudnn进行编译caffe,保留cuda进行编译caffe,这样也是可以使用的
3.使用上面修改过的caffe,这里我们将cudnnGetConvolutionBackwardFilterAlgorithm算法设置为一个常量, CUDNN_CONVOLUTION_BWD_FILTER_ALGO_0 这个可能不是最优的选择,但是是可以使用的,当然这个修改只适用于cudnn8,对于其他的版本是不适用的。

编译caffe
这里我们配置caffe Makefile的环境,具体配置可以参考我的另外的博客。这里是使用配置好的文件。
$ cd ~/caffe
# If you use CUDA, copy the cp36_x86_64-linux-gnu_CUDA_example
$ cp Makefile.config.cp36_x86_64-linux-gnu_CUDA_example Makefile.config
# Or without CUDA, copy the cp36_x86_64-linux-gnu_example
$ cp Makefile.config.cp36_x86_64-linux-gnu_example Makefile.config
# After you select one of the above configurations, the build can start
$ make clean
$ make all -j$(nproc)
$ make test -j$(nproc)
$ make runtest -j$(nproc)
编译成功后可以看到如下的信息:




错误。
最常见的错误是当您尝试在 Ubuntu 20.04 或 20.10 机器上安装此 18.04 版本的 Caffe 时。 你会看到以下屏幕。

如果是这种情况,请使用 Ubuntu 20.04 指南。 否则,请查阅我们的 Caffe 配置页面。


Python 构建
你可以运行一些其他软件。 首先,有pycaffe。 如果你想在 Python 3 中运行 Caffe,你将需要这个接口。否则,Caffe 将只能从命令行或 C++ 程序中运行。 有关更多信息,请参阅原始 Caffe 文档。
你还可以在 MATLAB 中运行 Caffe。 这次你需要制作matcaffe。 但是,在成功构建 matcaffe 之前,需要设置 Makefile.config 中的某些行。 同样,原始文档在这里是您的朋友。 在 pytest 之后, 你的屏幕如下所示。
# Assuming you're still in ~/caffe
$ make pycaffe
$ make pytest


最后就是添加环境变量了,可以在 ~/.bashrc 或者 ~/.profile中添加环境变量,编辑器可以用vim或者nano以及gedit都可以
$ cd ~
$ sudo nano ~/.bashrc
# at the end of the file add the next line
export PYTHONPATH="${PYTHONPATH}:$HOME/caffe/python"
# save and close with
Ctrl+X, Y, Enter



如果你在 Ubuntu 18.04 上构建 Caffe 时遇到任何问题,请参考配置页面




路过

雷人

握手

鲜花

鸡蛋
我有话说......

TA还没有介绍自己。

电话咨询: 135xxxxxxx
关注微信