重磅干貨,第一時(shí)間送達(dá) Raspberry Pi 3 上的 OpenCV 運(yùn)動(dòng)檢測(cè) 這篇文章將解釋如何實(shí)現(xiàn)基本的運(yùn)動(dòng)檢測(cè),這可以用于我們的基于觸發(fā)器的監(jiān)控系統(tǒng)。 OpenCV 是一個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)庫(kù),它的目標(biāo)是提供一個(gè)簡(jiǎn)單易用的計(jì)算機(jī)視覺(jué)基礎(chǔ)設(shè)施,幫助人們快速構(gòu)建復(fù)雜的應(yīng)用程序。它包含 500 多項(xiàng)功能,涵蓋許多視覺(jué)領(lǐng)域,包括工廠產(chǎn)品檢測(cè)、醫(yī)學(xué)成像、安全、用戶界面、相機(jī)校準(zhǔn)、立體視覺(jué)和機(jī)器人技術(shù)。 — 學(xué)習(xí) OpenCV,Gary Bradski 和 Adrian Kaehler,O'Reilly 我們指的是PiImageSearch安裝OpenCV的教程以及本文檔。在開(kāi)始安裝之前,只需更新系統(tǒng)—sudo apt update 1.安裝庫(kù)和依賴項(xiàng) $ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev $ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev $ sudo apt-get install libxvidcore-dev libx264-dev 2.安裝GTK(GUI后端) $ sudo apt-get install libgtk-3-dev $ sudo apt-get install libcanberra-gtk* 3. OpenCV的數(shù)值優(yōu)化 $ sudo apt-get install libatlas-base-dev gfortran 4. Python3 開(kāi)發(fā)頭文件 $ sudo apt-get install python3.7-dev After installing to check if the dev files are installed in correct directory check using this command $ python3.7-config --includes -I/usr/include/python3.7m -I/usr/include/python3.7m The first path is expected and second is current path. If they are not the same then you need to perform a copy command to change the current path $ sudo cp /current/path/to/dev/file/pyconfig.h /usr/include/python3.7m pyconfig.h is the dev file that you need to copy to correct directory 5.安裝pip $ sudo apt-get install python3-pip If this won't work then use the following commands $ wget https://bootstrap./get-pip.py $ sudo python3 get-pip.py $ sudo apt autoremove If pip is already installed then make sure it's the latest version $ pip --version If not then - $ pip install --upgrade pip 6.虛擬環(huán)境 $ sudo pip install virtualenv virtualenvwrapper $ sudo rm -rf ~/get-pip.py ~/.cache/pip Update .bashrc to finish installing the tools, use nano or similar text editor - # virtualenv and virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /usr/local/bin/virtualenvwrapper.sh save and exit And finally create the virtual environment- $ mkvirtualenv cv -p python3 Verify if cv environment is working or not - $ workon cv (cv) pi@raspberrypi:~$ (cv) indicates that we are inside a virtual environment 7.其他庫(kù) Install Numpy $ pip install numpy Install imutils $ pip install imutils 8.最后是 OpenCV 當(dāng)我們嘗試安裝 OpenCV 時(shí),安裝需要花費(fèi)大量時(shí)間,即使反復(fù)嘗試安裝,RasPi 仍然掛起。增加交換內(nèi)存讓我們?cè)跊](méi)有內(nèi)存耗盡的情況下編譯 OpenCV,Pi 不會(huì)掛起。即使在增加交換內(nèi)存后,在我們的 Pi 3 上安裝也需要大約 5 小時(shí)。 $ sudo nano /etc/dphys-swapfile Edit CONF_SWAPSIZE as CONF_SWAPSIZE=2048 保存并退出,使用這些命令檢查交換內(nèi)存 。 $ free -m $ swapon -s 增加交換內(nèi)存只占用SD卡的空間,所以增加交換內(nèi)存后只執(zhí)行OpenCV安裝。 現(xiàn)在安裝 OpenCV $ pip install opencv-python $ pip install opencv-contrib-python // Ref. 裝完成后,將交換內(nèi)存恢復(fù)為原始值。CONF_SWAPSIZE=100 驗(yàn)證 OpenCV 是否安裝成功 : 驗(yàn)證 OpenCV 安裝 我們使用 piimagesearch 的教程來(lái)實(shí)現(xiàn)基本的運(yùn)動(dòng)檢測(cè),它提供了開(kāi)源的代碼,并且可以下載。當(dāng)我在Pi上運(yùn)行此代碼時(shí),出現(xiàn)了此錯(cuò)誤。 運(yùn)行代碼時(shí)出錯(cuò) 當(dāng)我搜索imshow功能時(shí),我明白代碼需要X-server才能運(yùn)行。因?yàn)槲艺趯?duì)我的 Pi 執(zhí)行 ssh,所以代碼沒(méi)有運(yùn)行。運(yùn)行此命令使我可以在 ssh 期間訪問(wèn) X-server。 ssh -Y pi@<IP> 然后我再次運(yùn)行python代碼,我得到了這三個(gè)窗口—— 運(yùn)行 piimagesearch 的 Python 代碼 根據(jù)教程,代碼需要第一幀為空來(lái)檢測(cè)該區(qū)域是被占用還是未被占用。 3個(gè)窗口分別是:
這段代碼非?;A(chǔ),正如我們所看到的,即使框架中只有我,代碼也會(huì)感應(yīng)其他運(yùn)動(dòng),就像電風(fēng)扇的一片扇葉一樣,并且有多個(gè)塊,所以需要更多的邏輯來(lái)建立在它之上。 這個(gè)實(shí)現(xiàn)還幫助我們了解我們是否可以在像Raspberry Pi這樣的低規(guī)格系統(tǒng)中實(shí)現(xiàn) OpenCV。盡管從介紹的 GIF 中可以看出,響應(yīng)速度很慢,但這是運(yùn)動(dòng)檢測(cè)的基本演示,我將在以后的文章中介紹更多用例。 |
|
來(lái)自: 小白學(xué)視覺(jué) > 《待分類》