基于机器学习的捡球机器人设计与实现(探索)第2篇——7步完成opencv的安装(20190112)

2019-01-12 by 崔斐然


2019-04-08补充:

因为此篇文章是将opencv配置在虚拟环境中,若要开机自启动进入虚拟环境请进行如下配置:开机脚本 

#!/bin/bash

source /home/pi/.profile
workon cv

内容参考自: Adrian Rosebrock的博客:https://www.pyimagesearch.com/2016/05/16/running-a-python-opencv-script-on-reboot/

 基于机器学习的捡球机器人设计与实现(探索)第2篇——7步完成opencv的安装(20190112)_第1张图片



2019-02-27补充:

      鉴于OpenCV安装过程可能花费大量时间,建议使用ssh操作的同学安装screen管理会话,避免因网络波动造成ssh掉线任务失败。参考我的另一篇博文: [树莓派安装screen保证SSH断开 任务不中断]

2019-02-28补充:4.4、创建虚拟环境 之前应该先使环境变量生效:source ~/.profile

 


上一篇做好了树莓派系统的安装和基本配置,现在开始安装opencv,疯狂找教程:

现在正在看这个教程:https://www.pyimagesearch.com/opencv-tutorials-resources-guides/ 

从中可以找到:

Raspbian Stretch:在Raspberry Pi上安装OpenCV 3 + Python

https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi/

其中,需要注意的是:(踩坑)

1、安装numpy时候应该装在cv环境里(虚拟环境作为独立空间隔离包)

2、似乎每次进虚拟环境前都要先指定source ~/.profile?不清楚,求指点(更新:下面增加了开机启动的办法)

3、make时候还是稳一点吧~ 4作业可能导致系统崩溃。详见:https://bbs.csdn.net/topics/380072770

先祭出安装成功的截图吧

基于机器学习的捡球机器人设计与实现(探索)第2篇——7步完成opencv的安装(20190112)_第2张图片

基于机器学习的捡球机器人设计与实现(探索)第2篇——7步完成opencv的安装(20190112)_第3张图片

文字版过程参考:https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi/(超级详细。只是有几点需要说明~见如下视频或我的笔记)

视频版教程参考:https://www.youtube.com/watch?v=j6RD3X94rEA(需要外网)

 


正式步骤

 

第一步:准备工作

参考上一篇《基于机器学习的捡球机器人设计与实现(探索)第1篇》

第二步:安装依赖

1、更新系统:

sudo apt-get update && sudo apt-get upgrade

2、安装依赖:(一条一条执行)预计6-7分钟

 

# 安装开发人员工具:
sudo apt-get install -y build-essential cmake pkg-config
# 接下来, 让我们安装一些图像和视频 ito 库。
sudo apt-get install -y libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install -y libxvidcore-dev libx264-dev
#从这里, 让我们为我们的 GUI 后端安装 GTK:
sudo apt-get install -y libgtk2.0-dev libgtk-3-dev
#接下来安装两个包含 OpenCV 数学优化的软件包:
sudo apt-get install -y libatlas-base-dev gfortran
#最后, 让我们安装 Python 3 开发标头:
sudo apt-get install -y python2.7-dev python3-dev

第三步:下载OpenCV源码(逐条复制)

cd ~
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip
unzip opencv.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip
unzip opencv_contrib.zip

第四步:选择安装Python2.7或者python3.x(这里以Python3为例吧)

1、安装Python包管理器:

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo python3 get-pip.py

2、安装虚拟环境(Python虚拟环境的好处自己百度)

sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/.cache/pip

3、当安装完虚拟环境后更新配置文件

在~/.profile的底部添加如下代码

办法1:命令:sudo nano ~/.profile

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

command+c上面的内容,然后sudo nano ~/.profile 光标移动最底部,command+v ,然后按住Ctrl+x 退出,保存?y 。搞定

办法2:也可以使用cat EOF追加的办法添加代码

cat >> ~/.profile << EOF
# virtualenv and virtualenvwrapper
export WORKON_HOME=\$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
EOF

使环境变量生效:

source ~/.profile

4、创建虚拟环境:

mkvirtualenv cv -p python3

 5、进入虚拟环境:

此时终端应该显示的是不对的检查上述步骤

6、在虚拟环境cv中安装Numpy :    (历时10多分钟)

pip install numpy

第5步:编译安装OpenCV(指定双进程下历时2个小时)

确保处于cv虚拟环境中,不是的话参考第4.5步骤


直接编译会报错,原因在于官网所给链接失效,导致tiny_dnn无法正常下载

2019-05-06更新:手动下载dnn:

链接:https://pan.baidu.com/s/1BGnzJrq0WX7vMo1CCyc_rA  密码:3odo

放置于\Opencv3.3\sources\.cache\tiny_dnn目录下(需要显示隐藏文件)

 


1、使用cmake设置build

(直接复制下面的代码会带上我的版权,建议先复制到word里,删掉版权再粘贴)

cd ~/opencv-3.3.0/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \
    -D BUILD_EXAMPLES=ON ..

2、检查设置结果的路径是否正确

选择Python2.7的如下:一定要核对无误,不然剩下的白做。

选择Python3的显示如下:一定要核对无误,不然剩下的白做。(已踩坑)

如果不对的话核查上述步骤,删掉build重新设置:

cd opencv3.3.0

 rm -rf build

3、在编译之前配置交换空间大小(这一步应该不用退出虚拟环境。。)

sudo nano /etc/dphys-swapfile

进去后把CONF_SWAPSIZE=100改为CONF_SWAPSIZE=1024 (可能会烧毁内存卡,不过无所谓啦)

4、然后如下命令重启一下交换空间

sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

5、最重要一步,编译:(请务必确保处于cv虚拟环境中)且在~/opencv-3.3.0/build目录下

make -j2

教程里用的4进程编译,结果是速度很快但容易崩溃重启,还会大量发热,不如用双进程稳定些。

等待两个半小时。去玩会儿吧~

等待完成后别报错啥的,开始安装OpenCV

此时还是在opencv/build目录下吧?不是的话进来。(记得这一步退出cv虚拟环境)

然后

cd ~/opencv-3.3.0/build
sudo make install
sudo ldconfig

步骤6:完成最后的软链接

无论在不在虚拟环境都可以。

1、检查Python3.5的site-package目录有没有安装上OpenCV

ls -l /usr/local/lib/python3.5/site-packages/

total显示目录大小别为太小就是可以了(我应改是装了2次,正常大概3000-4000之间吧)

2、创建软连接

cd /usr/local/lib/python3.5/site-packages/
sudo mv cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so
cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so

第7步:测试一下吧~

进入虚拟环境,进入Python,导入OpenCV,测试没有报错就是可以啦

source ~/.profile 
workon cv
python
import cv2
cv2.__version__

基于机器学习的捡球机器人设计与实现(探索)第2篇——7步完成opencv的安装(20190112)_第4张图片

显示3.3.0就是OK了?

第8步:善后工作

1、恢复交换空间大小:参考本文第5.3步,改回后重启交换空间即可。

 

2、为了每次重启时候都要加载环境配置文件,为了省心,可以在 ~/.bashrc 末尾添加

第一句export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 指定了虚拟环境使用Python3,如果上面几步用的Python2 这边无需设置。因为Debian和Ubuntu 默认Python2.

cat >> ~/.bashrc << EOF
# 自动加载环境变量
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
EOF

开机时会自动加载。

 

3、备份内存卡:我还没找到合适的办法,未来详见第3篇。

在这里:https://blog.csdn.net/qq_33273956/article/details/87863553

 

4、卸载OpenCV方法:

基于机器学习的捡球机器人设计与实现(探索)第2篇——7步完成opencv的安装(20190112)_第5张图片

rm -rf opencv-3.3.0 opencv_contrib-3.3.0

 

你可能感兴趣的:(机器学习捡球机器人,树莓派)