樹莓派安裝opencv3.4.1

前言

opencv是圖像處理的利器远荠,內(nèi)置了許多圖像處理方法的庫矮固,當(dāng)然也帶了人臉檢測等功能的庫及example,并且支持Intel深度學(xué)習(xí)推理引擎的計(jì)算加速譬淳。
通過查看opencv-3.4.1的更新日志档址,我們看到如果使用加速引擎,推理效率非常高(見https://github.com/opencv/opencv/wiki/ChangeLog#version341):

Model CPU, default backend CPU, Inference Engine backend, MKL-DNN plugin Model Optimizer + Inference Engine, MKL-DNN plugin (a standalone application)
AlexNet 14.44ms 12.09ms (x1.19) 12.05ms
GoogLeNet 15.26ms 8.92ms (x1.71) 8.75ms
ResNet-50 35.78ms 19.53ms (x1.83) 19.4ms
SqueezeNet v1.1 4.01ms 2.60ms (x1.54) 2.5ms
MobileNet-SSD from Caffe 21.62ms 8.89ms (x2.43)
DenseNet-121 61.71ms 28.21ms (x2.18)
OpenPose (COCO) @ 368x368 885.57ms 544.05ms (x1.62)
OpenPose (MPI) @ 368x368 879.13ms 533.96ms (x1.64)
OpenPose (MPI, 4 stages) @ 368x368 605.63ms 378.49ms (x1.60)
OpenFace 3.84ms 2.59ms (x1.48)

opencv安裝

opencv源碼下載

我們選擇最新的opencv-3.4.1邻梆,下載:https://github.com/opencv/opencv/archive/3.4.1.zip
安裝方法參考:
https://docs.opencv.org/3.4.1/d7/d9f/tutorial_linux_install.html

依賴項(xiàng)及安裝

  • 依賴項(xiàng)
Required Packages
GCC 4.4.x or later
CMake 2.8.7 or higher
Git
GTK+2.x or higher, including headers (libgtk2.0-dev)
pkg-config
Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
[optional] libtbb2 libtbb-dev
[optional] libdc1394 2.x
[optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
[optional] CUDA Toolkit 6.5 or higher
  • 安裝
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

如果過程中有遇到網(wǎng)絡(luò)問題導(dǎo)致安裝失敗的守伸,可以通過安裝命令后加 --fix-missing再次安裝,如sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev --fix-missing浦妄,若一直失敗尼摹,可以通過更改源的方式再次嘗試,如:

sudo -s
echo -e "deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi \n deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi" > /etc/apt/sources.list
echo -e "deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/ stretch main ui" > /etc/apt/sources.list.d/raspi.list
exit
sudo apt update && sudo apt -y upgrade

opencv編譯

  • 解壓源碼包
unzip opencv-3.4.1.zip
  • 創(chuàng)建build目錄及配置
cd opencv-3.4.1/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON ..
  • 編譯
make

編譯過程大概4小時(shí)剂娄。

  • 安裝
sudo make install
  • 單元測試驗(yàn)證
./bin/opencv_test_core

運(yùn)行各個(gè)核心組件的單元測試程序窘问,該測試是在google test框架下寫的,均顯示OK說明安裝成功宜咒,筆者這里遇到了一個(gè)Failure,原因是其中一個(gè)測試case需要有圖片輸入把鉴,因此和opencv的安裝無關(guān)故黑,規(guī)避該錯(cuò)誤需要拷貝任意.jpg和.png圖片各一張到build/bin/目錄下并重命名為lena.jpg和lena.png儿咱。
筆者遇到的錯(cuò)誤:

/home/yinan/install/opencv/opencv-3.4.1/modules/core/test/test_io.cpp:562: Failure
Expected: (lenas.size()) > (pngLenas.size()), actual: 0 vs 0
[  FAILED  ] Core_globbing.accuracy (479 ms)

...

[----------] Global test environment tear-down
[==========] 10532 tests from 210 test cases ran. (724467 ms total)
[  PASSED  ] 10531 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] Core_globbing.accuracy

 1 FAILED TEST
  YOU HAVE 10 DISABLED TESTS
  • 驗(yàn)證python中引用opencv
yinan@raspberrypi:~ $ python
Python 2.7.13 (default, Nov 24 2017, 17:33:09)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>

正常引用cv2無錯(cuò)誤說明一切OK!

  • 運(yùn)行opencv獲取攝像頭數(shù)據(jù)场晶,代碼:
#!/usr/bin/env python
import cv2

capture = cv2.VideoCapture(0)

while True:
    ret, frame = capture.read()
    print "frame.shape: {}".format(frame.shape)

    cv2.imshow("capture", frame)
    if cv2.waitKey(100) & 0xff == ord("q"):
        break

cv2.destroyAllWindows()
  • 錯(cuò)誤一
Traceback (most recent call last):
  File "video.py", line 13, in <module>
    print "frame.shape: {}".format(frame.shape)
AttributeError: 'NoneType' object has no attribute 'shape'

這是由于當(dāng)前用戶對/dev/video0沒有權(quán)限導(dǎo)致混埠,運(yùn)行命令
sudo chmod 666 /dev/video0

  • 錯(cuò)誤二
frame.shape: (480, 640, 3)
MobaXterm X11 proxy: Unsupported authorisation protocol

(capture:1404): Gtk-WARNING **: cannot open display: localhost:11.0

使用pi賬戶運(yùn)行命令xhost +后重新登錄當(dāng)前賬戶

運(yùn)行起來效果:


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诗轻,隨后出現(xiàn)的幾起案子钳宪,更是在濱河造成了極大的恐慌,老刑警劉巖扳炬,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吏颖,死亡現(xiàn)場離奇詭異,居然都是意外死亡恨樟,警方通過查閱死者的電腦和手機(jī)半醉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來劝术,“玉大人缩多,你說我怎么就攤上這事⊙” “怎么了衬吆?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绳泉。 經(jīng)常有香客問我逊抡,道長,這世上最難降的妖魔是什么圈纺? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任秦忿,我火速辦了婚禮,結(jié)果婚禮上蛾娶,老公的妹妹穿的比我還像新娘灯谣。我一直安慰自己,他們只是感情好蛔琅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布胎许。 她就那樣靜靜地躺著,像睡著了一般罗售。 火紅的嫁衣襯著肌膚如雪辜窑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天寨躁,我揣著相機(jī)與錄音穆碎,去河邊找鬼。 笑死职恳,一個(gè)胖子當(dāng)著我的面吹牛所禀,可吹牛的內(nèi)容都是我干的方面。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼色徘,長吁一口氣:“原來是場噩夢啊……” “哼恭金!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起褂策,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤横腿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后斤寂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耿焊,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年扬蕊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搀别。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡尾抑,死狀恐怖歇父,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情再愈,我是刑警寧澤榜苫,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站翎冲,受9級特大地震影響垂睬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抗悍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一驹饺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧缴渊,春花似錦赏壹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至指蚁,卻和暖如春菩佑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凝化。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工稍坯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人搓劫。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像吴藻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容