在本指南中,我們將引導您完成在Raspberry Pi上設置OpenCV的過程。
成功將OpenCV安裝到Raspberry Pi上需要幾個不同的步驟,並且要有一定的耐心。
對於那些不知道什麼是OpenCV的人。它是一個包含不同編程功能的庫,旨在處理實時計算機視覺。
使用計算機視覺,您可以實時解釋圖像和視頻。使您可以相對輕鬆地執行諸如運動檢測和麵部識別之類的任務。
樹莓派是開始學習OpenCV的絕佳平臺,並且還可以用作價格適中的小型設備。
設備清單
- 樹莓派 1、2、3或4
- SD卡
- 樹莓派電源
- 以太網線或 WI-FI無線網卡(Pi 3和4內置WiFi)
- 樹莓派攝像頭
安裝OpenCV的軟件包
在本節中,我們將引導您完成安裝所有編譯和運行OpenCV軟件所需的軟件包的過程。
由於OpenCV在樹莓派上需要許多軟件包,因此我們將通過幾個步驟安裝它們。
1.在繼續之前,我們應該先更新任何先前存在的軟件包。
您可以通過運行以下兩個命令來更新當前安裝的軟件包。
<code>sudo apt updatesudo apt upgrade/<code>
2.現在,我們可以開始安裝OpenCV編譯所需的所有軟件包的過程。
首先,運行以下命令。此命令將安裝包含編譯OpenCV代碼所需工具的軟件包。
<code>sudo apt install cmake build-essential pkg-config git/<code>
3.接下來,我們安裝將為OpenCV添加對不同圖像和視頻格式支持的軟件包。
使用以下命令將這些庫安裝到樹莓派中。
<code>sudo apt install libjpeg-dev libtiff-dev libjasper-dev libpng-dev libwebp-dev libopenexr-devsudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libdc1394-22-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev/<code>
4.我們的下一步是使用以下命令安裝OpenCV界面所需的所有軟件包。
<code>sudo apt install libgtk-3-dev libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5/<code>
5. 這些下一個軟件包對於OpenCV在樹莓派上以適當的速度運行至關重要。
您可以通過運行以下命令來安裝這些軟件包。
<code>sudo apt install libatlas-base-dev liblapacke-dev gfortran/<code>
6.我們需要安裝的第二批軟件包與OpenCV用於管理數據的分層數據格式(HDF5)有關。
使用以下命令將HDF5軟件包安裝到Pi。
<code>sudo apt install libhdf5-dev libhdf5-103/<code>
7.最後,我們可以使用以下命令安裝最後幾個軟件包。
這最後幾個軟件包將使我們能夠在樹莓派上編譯支持Python的OpenCV。
<code>sudo apt install python3-dev python3-pip python3-numpy/<code>
在繼續下一節之前,請確保所有軟件包均已成功安裝。
準備用於編譯OpenCV的樹莓派
1.現在已經安裝了在樹莓派上編譯OpenCV所需的所有軟件包,我們需要做一些準備工作,然後才能開始編譯過程。
現在,我們需要暫時增加交換空間的大小,以幫助在樹莓派上編譯OpenCV的過程。
當設備的物理內存用完時,操作系統將使用交換空間。儘管交換內存比無力內存慢很多,但在某些情況下它仍然很有用。
通過運行以下命令開始修改交換文件配置。
<code>sudo nano /etc/dphys-swapfile/<code>
2.在此文件中時,我們需要查找並替換以下行。
找到
<code>CONF_SWAPSIZE=100/<code>
用以下這行來代替
<code>CONF_SWAPSIZE=2048/<code>
更改後,按CTRL+ X,Y然後按,保存文件Enter。
3.在更改交換文件配置後,我們需要使用以下命令重新啟動其服務。
<code>sudo systemctl restart dphys-swapfile/<code>
通過重新啟動服務,我們迫使它重新創建交換文件。
4.接下來,讓我們繼續並將所需的兩個OpenCV存儲庫克隆到Raspberry Pi中。
運行這兩個命令將從其git存儲庫中檢索OpenCV的最新可用版本。
<code>git clone https://github.com/opencv/opencv.gitgit clone https://github.com/opencv/opencv_contrib.git/<code>
由於這些存儲庫很大,因此可能需要一些時間才能克隆到您的Raspberry Pi。
在樹莓派上編譯OpenCV
1.首先,在克隆的“ opencv ”文件夾中創建一個名為“ build ”的目錄,然後將工作目錄更改為該目錄。
<code>mkdir ~/opencv/buildcd ~/opencv/build/<code>
在此文件夾中,我們將在樹莓派上編譯OpenCV。
2.現在我們位於新創建的build文件夾中,現在我們可以cmake用來準備OpenCV以便在樹莓派上進行編譯。
運行以下命令以生成所需的makefile。
<code>cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D ENABLE_NEON=ON \ -D ENABLE_VFPV3=ON \ -D BUILD_TESTS=OFF \ -D INSTALL_PYTHON_EXAMPLES=OFF \ -D OPENCV_ENABLE_NONFREE=ON \ -D CMAKE_SHARED_LINKER_FLAGS=-latomic \ -D BUILD_EXAMPLES=OFF ../<code>
3. make文件成功完成生成後,我們現在可以通過運行以下命令最終繼續編譯OpenCV。
我們使用參數-j$(nproc)來告訴編譯器為每個可用處理器運行編譯器。
這樣做將大大加快編譯過程,並使Raspberry Pi上的每個內核都可以編譯OpenCV。
<code>make -j$(nproc)/<code>
請注意,編譯過程可能會花費大量時間。在樹莓派4上,此過程耗時約1個小時。
4.編譯過程完成後,我們可以繼續安裝OpenCV。
對我們來說幸運的是,這是一個相當簡單的過程,需要您運行以下命令。
<code>sudo make install/<code>
此命令將自動將所有必需的文件複製到所需的位置。
5.現在,我們還需要重新生成操作系統庫鏈接緩存。
如果不運行以下命令,樹莓派將無法找到我們的OpenCV安裝。
<code>sudo ldconfig/<code>
編譯後清理
1.現在我們已經完成了OpenCV的編譯,我們不再需要這麼大的交換文件。
讓我們再次使用以下命令編輯交換文件配置。
<code>sudo nano /etc/dphys-swapfile/<code>
2.在此文件中,您需要查找並更改以下行。
找到
<code>CONF_SWAPSIZE=2048/<code>
用以下這行來代替
<code>CONF_SWAPSIZE=100/<code>
完成後,按CTRL+ X,Y然後按,保存文件Enter。
3.現在,我們的最終清理任務要求我們重新啟動交換文件服務。
重新啟動服務會將文件大小從2GB減小到100 MB。
<code>sudo systemctl restart dphys-swapfile/<code>
更多幹貨內容只需要你關注電子芯吧客微信公眾號