树莓派OpenCV测试

廉价感情. 提交于 2019-12-21 20:04:31

一、基本配置 

##确认是否打开了摄像头
vcgencmd get_camera
##给pip换源
 sudo mkdir ~/.pip
 cd .pip
 sudo vim pip.conf

[global]
timeout = 10
index-url =  http://mirrors.aliyun.com/pypi/simple/
extra-index-url= http://pypi.douban.com/simple/
[install]
trusted-host=
    mirrors.aliyun.com
    pypi.douban.com

二、安装

Python2直接装

sudo apt install libopencv-dev

sudo apt install python-opencv

##验证openCV
# pi @ raspberrypi in ~ [11:50:30]
$ python
Python 2.7.16 (default, Oct 10 2019, 22:02:15)
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.2.0'
>>>
>>> exit()

Python3编译安装

根目录扩充到整个内存卡(据说树莓派4b不用这步)

sudo raspi-config

7 Advanced Options

A1 Expand Filesystem

编译环境搭建

sudo pip3 install numpy
##只装了cmake
sudo apt install build-essential git cmake pkg-config

sudo apt install libjpeg8-dev
##下列软件包将被【卸载】:
  libjpeg-dev libjpeg62-turbo-dev libopencv-calib3d-dev libopencv-contrib-dev libopencv-dev libopencv-features2d-dev
  libopencv-highgui-dev libopencv-objdetect-dev libopencv-stitching-dev libopencv-videostab-dev libtiff-dev
##下列【新】软件包将被安装:
  libjpeg8 libjpeg8-dev

sudo apt install libtiff5-dev
下列软件包将被【卸载】:
  libjpeg8-dev
下列【新】软件包将被安装:
  libjpeg-dev libjpeg62-turbo-dev libtiff-dev libtiff5-dev

sudo apt install libjasper-dev

sudo apt install libpng12-dev
下列软件包将被【卸载】:
  libfreetype6-dev libpng-dev
下列【新】软件包将被安装:
  libpng12-0 libpng12-dev


sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

sudo apt install libgtk2.0-dev

下列软件包将被【卸载】:
  libpng12-dev
下列【新】软件包将被安装:
  autopoint debhelper dh-autoreconf dh-strip-nondeterminism dwz gettext gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-gtk-2.0 gir1.2-harfbuzz-0.0 gir1.2-pango-1.0
  icu-devtools intltool-debian libarchive-cpio-perl libarchive-zip-perl libatk1.0-dev libblkid-dev libcairo-script-interpreter2 libcairo2-dev libfile-stripnondeterminism-perl
  libfontconfig1-dev libfreetype6-dev libfribidi-dev libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-dev libglib2.0-dev libglib2.0-dev-bin libgraphite2-dev libgtk2.0-dev libharfbuzz-dev
  libharfbuzz-gobject0 libice-dev libicu-dev liblzo2-2 libmail-sendmail-perl libmount-dev libpango1.0-dev libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpixman-1-dev libpng-dev
  libpthread-stubs0-dev libselinux1-dev libsepol1-dev libsm-dev libsys-hostname-long-perl libx11-dev libxau-dev libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxcomposite-dev
  libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxml2-utils libxrandr-dev libxrender-dev pango1.0-tools po-debconf uuid-dev
  x11proto-composite-dev x11proto-core-dev x11proto-damage-dev x11proto-dev x11proto-fixes-dev x11proto-input-dev x11proto-randr-dev x11proto-xext-dev x11proto-xinerama-dev
  xorg-sgml-doctools xtrans-dev

sudo apt install libatlas-base-dev gfortran

 从国内源下载

##Github
git clone -b 4.1.0 --recursive https://github.com/opencv/opencv.git
git clone -b 4.1.0 --recursive https://github.com/opencv/opencv_contrib.git
##码云
git clone -b 4.1.0 --recursive https://gitee.com/mirrors/opencv.git
git clone -b 4.1.0 --recursive https://gitee.com/mirrors/opencv_contrib.git


cd /home/pi/.../opencv
mkdir build
cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE \ #代表编译类型为发行版本
-D CMAKE_INSTALL_PREFIX=/usr/local \ #安装路径
-D INSTALL_C_EXAMPLES=ON \#C demo
-D INSTALL_PYTHON_EXAMPLES=ON \#Python demo
-D OPENCV_EXTRA_MODULES_PATH=/home/pi/Public/github/opencv_contrib/modules \
\#OpenCVContrib路径
-D BUILD_EXAMPLES=ON \#编译demo
-D WITH_LIBV4L=ON \开启Video for Linux
-D PYTHON3_EXECUTABLE=/usr/bin/python3.7 \#Python3.7路径
-D PYTHON_INCLUDE_DIR=/usr/include/python3.7 \#Python3.7 include文件夹
-D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \#Python3.7库
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \
..
 #Python3 Numpy安装路径

安装参考

https://blog.csdn.net/qq_43762614/article/details/102760414 

问题一:#include "boostdesc_bgm.i" (缺include文件,下同)

把网盘里下来的.i文件(两个压缩包里的都要)都拷到opencv_contrib/modules/xfeatures2d/src/ 路径下
树莓派安装opencv时丢失的文件:
链接:https://pan.baidu.com/s/1xi6_5NuTFiP4SD649FgIJw
提取码:mbsj
原文链接:https://blog.csdn.net/weixin_43308627/article/details/97814927


问题二:/opencv_contrib/modules/xfeatures2d/test/test_rotatioariance.impl.hpp ……没有那个文件或目录……

(反正就是这个目录下include文件缺了所以从opencv那边把所有的都复制过去就没问题了)

把/opencv/modules/features2d/test里的文件都复制到/opencv_contrib/modules/xfeatures2d/test

重复的文件跳过

这两个问题解决我这边编译就没问题了参考文档也是如此。

测试安装完成方法同上

三、安装TensorFlow

从github上下载安装包

https://github.com/lhelontra/tensorflow-on-arm/releases

根据需求选自己要安装的版本

###此处加了timeout延时设置防止下载速度太慢中断,cp27即python2.7,armv7l根据自己版本
sudo pip --default-timeout=100 install tensorflow-2.0.0-cp27-none-linux_armv7l.whl
sudo pip3 --default-timeout=100 install tensorflow-2.0.0-cp37-none-linux_armv7l.whl
###输出测试
$ python
Python 2.7.16 (default, Oct 10 2019, 22:02:15)
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'2.0.0'

$ python3
Python 3.7.3 (default, Apr  3 2019, 05:39:12)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'2.0.0'

四、安装Caffe

从github上clone

五、安装pyTorch(Caffe2)

参照https://blog.csdn.net/Q59331064/article/details/103498600

Pillow包

https://gitee.com/mirrors/Pillow/releases

https://github.com/python-pillow/Pillow/releases

PyTorchArm包(我的包不是在这里下载的,这里可以下载低版本的)

https://github.com/nmilosev/pytorch-arm-builds

https://github.com/pytorch/pytorch

##如果没安装Pillow依赖,可以在github上拉过来mirrors-Pillow-6.2.1.tar.gz
sudo pip3 install mirrors-Pillow-6.2.1.tar.gz

##拖入编译好的安装文件后直接安装
sudo pip3 --default-timeout=100 install torchvision-0.4.1a0+a263704-cp37-cp37m-linux_armv7l.whl

Processing ./torchvision-0.4.1a0+a263704-cp37-cp37m-linux_armv7l.whl
Requirement already satisfied: torch in /usr/local/lib/python3.7/dist-packages (from torchvision==0.4.1a0+a263704) (1.3.0a0+de394b6)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from torchvision==0.4.1a0+a263704) (1.12.0)
Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from torchvision==0.4.1a0+a263704) (1.17.4)
Requirement already satisfied: pillow>=4.1.1 in /usr/local/lib/python3.7/dist-packages (from torchvision==0.4.1a0+a263704) (6.2.1)
Installing collected packages: torchvision
Successfully installed torchvision-0.4.1a0+a263704

python3
Python 3.7.3 (default, Apr  3 2019, 05:39:12)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.randn(1,2,3)
tensor([[[-0.3260, -1.6215,  1.0395],
         [ 0.3154, -0.0677, -0.6034]]])
>>> torch.__version__
'1.3.0a0+de394b6'

六、安装Torch

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!