
之前用樹莓派做人臉識(shí)別,臺(tái)式機(jī)用的64位ubuntu訓(xùn)練模型,樹莓派用的32位raspi系統(tǒng)使用。
以下提供給大家參考:
?以下內(nèi)容為快速安裝的方式,無需自己編譯喲!此方法很方便
一般化快速安裝環(huán)境
- 依賴安裝
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
- 翻墻下載此內(nèi)容:點(diǎn)我下載
- cd到下載的內(nèi)容位置進(jìn)行安裝:
sudo pip3 install opencv_contrib_python-3.4.3.18-cp37-cp37m-linux_armv7l.whl直接import就可以玩了
對(duì)于一般的小伙伴來說,以上安裝opencv方案已經(jīng)完美了
但對(duì)我來說,其結(jié)果是啪啪啪打臉,因?yàn)槲沂褂玫膕klearn訓(xùn)練的模型在跨系統(tǒng)下根本不能兼容。報(bào)錯(cuò)如下:(此錯(cuò)誤為python讀取模型文件的錯(cuò)誤,不是opencv的錯(cuò)喲!)
ValueError: Buffer dtype mismatch, expected 'ITYPE_t' but got 'long long'
我嘗試過將model文件轉(zhuǎn)換成可以序列的json,也總是失敗,一怒之下,直接把樹莓派刷成了專門適用于樹莓派4b8g的ubuntu server 64bit系統(tǒng)
(現(xiàn)在時(shí)間為2020-10-27,ubuntu mate還沒有4b版本的系統(tǒng),官方測(cè)試版raspi64bit垃圾)
然而此ubuntu server系統(tǒng)為aarch64,沒有這類opencv環(huán)境或者whl文件可以用,因此需要自己使用opencv源碼進(jìn)行編譯!
自己編譯opencv由此開始:
================下面開始真正的操作===========================
利用apt-get先把上面?中的依賴下一遍
- 下載你想要的opencv源碼和opencv-contrib源碼(兩個(gè)都得有!!),如果git clone速度慢,可以直接去github或者官網(wǎng)去下,
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
- 進(jìn)入opencv目錄進(jìn)行如下操作:
cd opencv
mkdir build
cd build
- 構(gòu)建項(xiàng)目,注意參數(shù)的地址一定要對(duì)應(yīng)你自己電腦(樹莓派)上的python位置和環(huán)境,小編為了便于觀看和理解,擅自給每條指令加了回車,所以使用的時(shí)候需要去掉回車,用空格切分:
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/
..
- 開始編譯,此過程超級(jí)漫長(zhǎng)!我的小樹莓派用了2個(gè)多小時(shí)吧!
make -j4
sudo make install
- 刷新動(dòng)態(tài)庫(kù)
sudo ldconfig
以上順利的話編譯完成了,進(jìn)入python3之后使用import cv2進(jìn)行測(cè)試,如果報(bào)某moudle找不到,根據(jù)信息進(jìn)行pip3 install進(jìn)行下載即可。