
之前用树莓派做人脸识别,台式机用的64位ubuntu训练模型,树莓派用的32位raspi系统使用。
以下提供给大家参考:
️以下内容为快速安装的方式,无需自己编译哟!此方法很方便
一般化快速安装环境
- 依赖安装
sudo apt-get update sudo apt-get upgrade sudo apt-get install libhdf5-dev libhdf5-serial-dev sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5 sudo apt-get install libatlas-base-dev sudo apt-get install libjasper-dev
- 翻墙下载此内容:点我下载
- cd到下载的内容位置进行安装:
sudo pip3 install opencv_contrib_python-3.4.3.18-cp37-cp37m-linux_armv7l.whl
直接import就可以玩了
对于一般的小伙伴来说,以上安装opencv方案已经完美了
但对我来说,其结果是啪啪啪打脸,因为我使用的sklearn训练的模型在跨系统下根本不能兼容。报错如下:(此错误为python读取模型文件的错误,不是opencv的错哟!)
ValueError: Buffer dtype mismatch, expected 'ITYPE_t' but got 'long long'
我尝试过将model文件转换成可以序列的json,也总是失败,一怒之下,直接把树莓派刷成了专门适用于树莓派4b8g的ubuntu server 64bit系统
(现在时间为2020-10-27,ubuntu mate还没有4b版本的系统,官方测试版raspi64bit垃圾)
然而此ubuntu server系统为aarch64,没有这类opencv环境或者whl文件可以用,因此需要自己使用opencv源码进行编译!
自己编译opencv由此开始:
================下面开始真正的操作===========================
利用apt-get先把上面️中的依赖下一遍
- 下载你想要的opencv源码和opencv-contrib源码(两个都得有!!),如果git clone速度慢,可以直接去github或者官网去下,
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
- 进入opencv目录进行如下操作:
cd opencv
mkdir build
cd build
- 构建项目,注意参数的地址一定要对应你自己电脑(树莓派)上的python位置和环境,小编为了便于观看和理解,擅自给每条指令加了回车,所以使用的时候需要去掉回车,用空格切分:
cmake -D CMAKE_BUILD_TYPE=Release
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES=../../opencv_contrib/modules
PYTHON3_EXECUTABLE = /usr/bin/python3
PYTHON_INCLUDE_DIR = /usr/include/python3.5
PYTHON_INCLUDE_DIR2 = /usr/include/arm-linux-gnueabihf/python3.5m
PYTHON_LIBRARY = /usr/lib/arm-linux-gnueabihf/libpython3.5m.so
PYTHON3_NUMPY_INCLUDE_DIRS = /home/pi/.local/lib/python3.5/site-packages/numpy/core/include/
..
- 开始编译,此过程超级漫长!我的小树莓派用了2个多小时吧!
make -j4
sudo make install
- 刷新动态库
sudo ldconfig
以上顺利的话编译完成了,进入python3之后使用import cv2进行测试,如果报某moudle找不到,根据信息进行pip3 install进行下载即可。
网友评论