有时候我们会使用树莓派和摄像头去做图像识别,在树莓派和LINUX系统中最常用opencv去做图像识别,这次来介绍下树莓派安装opencv和用树莓派做图像识别。
一、树莓派的系统
安装就不介绍了。直接开机打开树莓派的命令窗口,安装openCV的依赖包,步骤有点多。
1.1 更新系统
$ sudo apt-get update
$ sudo apt-get upgrade
1.2 安装编译openCV源码的工具
$ sudo apt-get install build-essential cmake pkg-config
1.3 安装一些常见格式的图像处理和视频处理的包,方便我们能从硬盘上读取不同格式的图像和视频
$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev
1.4 openCV用于图像展示的功能需要依模块
$ sudo apt-get install libgtk2.0-dev
$ sudo apt-get install libatlas-base-dev gfortran
接下来还需要安装python dev
sudo apt-get install python2.7-dev python3-dev
二、下载 并解压OpenCV 的资源库
$ cd ~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
$ unzip opencv.zip
$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3...
$ unzip opencv_contrib.zip
三、接下来准备python的开发环境
3.1 安装python包管理器:
$ wget https://bootstrap.pypa.io/get-pip.py $ sudo python get-pip.py
3.2 安装python虚拟环境
$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/.cache/pip
之后在~/.profile文件最后添加几行
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
3.3 接下来就是生成一个python虚拟环境用于opencv的开发环境
$ mkvirtualenv cv -p python3
打开一个命令窗口,执行下列命令,确认我们的cv环境已经生成好了
$ source ~/.profile
$ workon cv
如果命令窗口前面的文字变成了(cv)则表明我们已成功创建了名为cv的python虚拟环境
3.4 在cv虚拟环境下安装numpy
(cv) -> ~ $ pip install numpy
接下来的操作都要保持在cv环境中。
四、编译和安装openCV
4.1 一定要在cv环境里,接下来用cmake进行编译opencv
$ cd ~/opencv-3.1.0/
$ mkdir build
$ cd build
$ cmake -D ENABLE_PRECOMPILED_HEADERS=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \
-D BUILD_EXAMPLES=ON ..
4.2 开始编译opencv
$ make -j4
编译过程大概会用好几个小时,请耐心等候,-j 是使用多少线程进行编译,在树莓派上使用的单线程编译,虽然速度会慢很多,但是不会死机,用-j4会有死机的可能。如果-j后不加数字,则默认不限制线程编译。
编译过程如下
4.3 安装opencv
$ sudo make install
$ sudo ldconfig
4.4 python虚拟环境中链接到opencv模块
我们需要将cv2.cpython-34m.so重命名为cv2.so
$ cd /usr/local/lib/python3.4/site-packages/
$ sudo mv cv2.cpython-34m.so cv2.so
然后将python虚拟环境中的cv2.so链接到上面刚被改名为cv2.so的文件上
$ cd ~/.virtualenvs/cv/lib/python3.4/site-packages/
$ ln -s /usr/local/lib/python3.4/site-packages/cv2.so cv2.so
五、测试OpenCV3是否安装成功
$ source ~/.profile
$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'3.1.0'
>>>
六、完成OpenCV的开发环境后,就可以跑几个简单的图像识别的DEMO
其DEMO放在/usr/local/share/OpenCV/sample/python目录下
我们将/usr/local/share/OpenCV/sample/文件拷贝到Downloads/sample/文件夹下
跑几个DEMO
边缘检测算法:(cv) python edge.py
模式识别算法:(cv) python find_obj.py
运动方向检测:(cv) python lk_track.py
大功告成,opencv是树莓派进行图像处理和识别的常用工具,如果配合树莓派CSI的摄像头获取相片并识别处理将会更加有趣,可以做成人脸识别或者人脸追踪。
- END -
往期推荐
● 在玩乐中学编程——DFRobot Maqueen麦昆机器人小车评测
● 基于51单片机的电子式温度调节器设计-整套毕设资料
● 物联网全新硬件解决方案——5款好用的MCU推荐
欢迎加入微信群加入与非社群,找到同道,一起切磋技艺、化解难题。
当然还有不定期的红包雨等着你哦!
与非网大大(小编)微信
注意:
添加小编微信后,回复对应关键词+公司+岗位,方可被拉入社群,否则一律禁止入群,每人只可申请一个技术群。
关键词:嵌入式、模拟、人工智能、RF、传感器、汽车电子、物联网、IC设计、EDA、PCB、开源硬件、树莓派。