在樹莓派上安裝OpenCV

在本指南中,我們將引導您完成在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>

更多幹貨內容只需要你關注電子芯吧客微信公眾號


分享到:


相關文章: