超超最近參加了學校里一位特別厲害的老師講的課(兩天,我就從一個小白然后了解了樹莓派以及Arduino這些我之前都沒有了解過的東西,由於結課的需要,我們需要自己設計一個創意以及完成作品)所以才有了這篇文章,來幫助大家解決下載opencv時遇到的坑(網上的流程好多都是有問題的)
首先,opencv是程序員鍾愛的開源計算機視覺庫,有強大的開源社區和一些內置函數,所以opencv跟樹莓派結合起來之后就可以干好多事,比如讀取來自樹莓派攝像頭的picamera視頻以及進行人臉識別等等,超超現在就在做這個事。
那么怎么安裝opencv呢?別着急,超超帶你一起看
一、首先配置好樹莓派的Raspbian操作系統
我使用的是樹莓派官網新推出的2018-11-13-raspbian,官網下載鏈接https://www.raspberrypi.org/downloads/raspbian/(現在好像有2019最新版了)但是不影響使用
咱們選擇安裝的是第一個:有桌面和推薦軟件的
Raspbian Stretch with desktop and recommended software
我們可以直接下載也可以利用種子的形式進行下載,最后下載后應該會出現4.98GB大小的東西,我們需要把它解壓成img格式(開始是zip)你會發現還是個壓縮包的形式,不要着急,就是這樣,然后我們將准備好的16GB以上的SD卡(用到讀卡器)進行格式化,接着我們就開始燒錄鏡像了,這要用到2-Win32DiskImager,所以我們可以到官網進行下載https://sourceforge.net/projects/win32diskimager/files/latest/download
接着咱們就運行這個2-Win32DiskImager,會彈出一個小方框,咱們點擊后面的一個類似文件夾的東西,然后瀏覽,將咱們的那個剛下載的img格式文件選擇,最后點擊下方的write,直到彈出write successfully就表明你燒錄鏡像成功了,接下來先不要着急拔卡,咱們要在SD卡的boot文件中打開后自己創建一個文檔叫ssh(千萬不要加.txt等格式),不用管它的提醒,我們繼續創建,這樣可以避免后面的一次插卡操作。
二、切換apt-get下載源和pip下載源
國外下載速度特別慢,所以我們需要切換到國內的清華源
sudo nano /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
sudo nano /etc/apt/sources.list.d/raspi.list
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
sudo apt-get update
sudo apt-get -y upgrade
在第一行開頭加#,將內容給注釋掉,然后將下面的兩行給拷貝上,后面的一串就是出現的代碼,我們可以按ctrl+o按回車保存再ctrl+x退出到Nano編輯,接着執行下面的兩行代碼,會自動進行更新
接着給pip換源
sudo mkdir ~/.pip ls .pip sudo nano pip.conf
在打開的文件中輸入
[global] timeout = 10 index-url = http://mirrors.aliyun.com/pypi/simple/ extra-index-url= http://pypi.douban.com/simple/ [install] trusted-host= mirrors.aliyun.com pypi.douban.com
接着保存並退出到Nano界面
在樹莓派的命令行中輸入
sudo raspi-config
用上下鍵和左右鍵進行切換光標
在彈出的界面中選擇1.change User Password修改密碼
然后4.Localisation Options
選擇I1 Change Locale進行選擇語言,打開后選擇中國,選擇時區的時候就默認是shanghai
接着5.Interfacing Options
選擇p1 Camera打開攝像頭
按下back后回到初始界面咱們再選擇7.Advanced Options選擇A1 Expand Filesytem將根目錄擴展到這個SD卡,充分利用SD卡的存儲空間
結束后咱們就Finish
安裝中文字體 sudo apt-get install fonts-wqy-zenhei
安裝中文輸入法fcitx及Google拼音輸入法(大約需要五分鍾) sudo apt-get -y install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin 安裝完畢,重啟即可。ctrl+空格切換為中文輸入法。哦,還要注意,那個咱們選擇的是美式英語
三、
咱們要用到官方的picamera,按圖中樣子進行安裝(提起來不掉下就可以了)
sudo nano /etc/modules執行此命令
再出現的藍色字幕后加上
bcm2835-v4l2
先按鍵盤上的ctrl
+o
,再按回車保存,再按ctrl
+x
退出nano編輯器回到命令行界面。
輸入
vcgencmd get_camera
raspistill -o image.jpg如果樹莓派的文件夾中有image照片的話,證明攝像頭安裝成功
三、
在樹莓派安裝運行在Python3上的OpenCV
1、安裝numpy
打開命令行界面,輸入以下命令,安裝Python科學計算庫numpy
sudo pip3 install numpy
2、在樹莓派設置中把根目錄擴大到整個SD卡
命令行界面輸入命令,進入樹莓派配置界面。用上下鍵和左右鍵切換光標位置
sudo raspi-config
第七行:Advanced Options
選擇Expand Filesystem,將根目錄擴展到這個SD卡,充分利用SD卡的存儲空間。如果不進行這一步,后續命令會出現卡死。退出設置界面,重啟樹莓派。(這里有提示框,問你是否重啟)
沒找到的話就sudo reboot
3、安裝OpenCV所需的庫
挨個運行下面八條命令。共需要七分鍾(注意倒數第三條命令中要安裝四個-dev軟件包)。
4、下載OpenCV
opencv-3.4.0.zip
,把第二個壓縮包重新命名為opencv_contrib-3.4.0.zip
解壓這兩個壓縮包
cd /home/pi/Downloads unzip opencv-3.4.0.zip unzip opencv_contrib-3.4.0.zip
5、設置編譯參數
設置編譯參數
cd /home/pi/Downloads/opencv-3.4.0 mkdir build cd build
6、編譯
最后一步,也是最重要的一步:編譯
保證樹莓派有至少5G的存儲空間,建議本命令用樹莓派桌面上的命令行工具運行,而不要使用遠程ssh連接。因為執行命令時間太長,中途如果ssh斷線的話無法得知是否已經安裝完畢。
cd /home/pi/Downloads/opencv-3.4.0/build make
靜待五個小時的編譯。注意,在此期間,樹莓派要供電充足,不要運行其它任務,以免因為內存不夠什么的報錯。
make
命令執行完成之后,執行下面的命令,執行命令需要一分鍾:
sudo make install
7、在Python3上測試OpenCV
安裝好之后,在命令行中輸入python3
,回車
import cv2
回車
cv2.__version__
opencv就是這么安裝的,接下來的人臉識別,超超只進行了第一步,
第1步:材料清單
主件:
樹莓派3
500 萬像素 1080p 傳感器 OV5647 迷你攝像頭模塊
第2步:打開樹莓派自帶的python編譯環境,打開后點擊“file”之后再new file
import numpy as np | |
import cv2 | |
cap = cv2.VideoCapture(0) | |
while(True): | |
ret, frame = cap.read() | |
frame = cv2.flip(frame, -1) | |
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) | |
cv2.imshow('frame', frame) | |
cv2.imshow('gray', gray) | |
if cv2.waitKey(1) & 0xFF == ord('q'): | |
break | |
cap.release() | |
cv2.destroyAllWindows() |
將這代碼在電腦上給設成txt后通過電腦上的win+R選擇mstsc進行遠端控制,將文件通過winscp傳到樹莓派上就可以啦,然后設置一個項目名稱就着ctrl+F5執行,你會發現有兩個界面正在將你的動態信息傳給樹莓派
好了,有些內容參考一些前輩的,希望能給大家帶來幫助,謝謝,不喜勿噴!