1、前言(本教程適用于香橙派/樹莓派 電腦端ubuntu)
老早就想寫博客了把之前的項(xiàng)目都記錄下來(lái),但是一直礙于每次做完項(xiàng)目都挺累的,于是就偷懶沒(méi)寫,不過(guò)每次做完都有總結(jié),現(xiàn)在已經(jīng)大三了,覺(jué)得應(yīng)該把自己之前學(xué)習(xí)過(guò)程中遇到的經(jīng)驗(yàn)或者坑寫出來(lái),后面會(huì)陸陸續(xù)續(xù)的發(fā)出來(lái),今天先來(lái)講一下有關(guān)這份博客的前提背景吧,去年國(guó)賽的時(shí)候我負(fù)責(zé)STM32部分但是隊(duì)友的視覺(jué)缺掉了鏈子,以及前期備賽的不充分,隊(duì)友之間的磨合不夠等等,最終稍有遺憾省二。今年省賽改了賽制,以國(guó)賽形式進(jìn)行,于是再次拉起了一個(gè)隊(duì)伍,這一次希望能做好萬(wàn)全準(zhǔn)備進(jìn)行比賽,因?yàn)楹艽笠徊糠秩瞬粫?huì)視覺(jué),包括我之前也只接觸了有K210的部分,所以也是0基礎(chǔ),大家如果也是類似STM32轉(zhuǎn)視覺(jué)的話,我花了半個(gè)月天天熬夜踩的坑,重裝了十幾次系統(tǒng),希望能夠幫到看這篇博客的朋友們。手頭上用的是香橙派,但是發(fā)現(xiàn)生態(tài)還是有所欠缺,并且香橙派還是借的室友的,本來(lái)打算后期去買一個(gè)二手樹莓派來(lái)方便比賽的,有天看到有一個(gè)開發(fā)板體驗(yàn)官的計(jì)劃,于是參與了一下,很有幸被選中,我將珍惜這個(gè)來(lái)之不易的機(jī)會(huì)。感謝貿(mào)澤電子的支持。
2、香橙派/樹莓派區(qū)別(電腦端linux跳過(guò)這步)
其實(shí)本質(zhì)一樣都是跑在arm端修改后的ubuntu,香橙派大部分情景下使用樹莓派的教程都是可行的,不過(guò)有一部分需要參考使用手冊(cè),如果是樹莓派用戶就比較輕松些,另外就是香橙派遇到問(wèn)題盡量多查看使用手冊(cè),以及多使用AI或者上百度谷歌搜索問(wèn)題,祝你們配置過(guò)程一切順利。香橙派的默認(rèn)密碼是orangepi,如果是樹莓派可能是raspberry
3、安裝系統(tǒng)(電腦端linux跳過(guò)這步)
請(qǐng)自行備一張8G以上的SD卡,32G就差不多,自行去到對(duì)應(yīng)pi的官網(wǎng)上下載img鏡像,下載后使用Win32DiskImager工具,插入讀卡器選擇盤點(diǎn)擊寫入即可。工具鏈接放在下面,純綠色放心使用,點(diǎn)擊寫入后一直點(diǎn)確定就行了,記得選好磁盤設(shè)備。Win32 Disk Imager download | SourceForge.net
4、配置opencv環(huán)境
看到網(wǎng)上很多都說(shuō)要先換國(guó)內(nèi)源這樣下載opencv會(huì)快些,經(jīng)過(guò)我這段時(shí)間重裝不下10次系統(tǒng)的經(jīng)驗(yàn),直接用原本的源也挺快的,整個(gè)部署所有過(guò)程大概半小時(shí)就可以完成,所以感覺(jué)快不了多少,而且如果用電腦的linux話大概率還要改回來(lái),比較煩人,這里就不過(guò)多贅述了。
1.首先安裝自動(dòng)安裝依賴軟件aptitude,請(qǐng)一定要安裝這個(gè),因?yàn)楹芏嘬浖夹枰螺d依賴,這個(gè)可以自動(dòng)匹配依賴文件并且下載能減少安裝時(shí)出現(xiàn)的很多問(wèn)題。而且依賴關(guān)系一旦缺少的多了,系統(tǒng)容易掛壁,另外就是,在配置環(huán)境的時(shí)候系統(tǒng)某個(gè)文件出錯(cuò)導(dǎo)致系統(tǒng)進(jìn)不去很正常,系統(tǒng)崩潰也很正常,多崩潰幾次就好了,系統(tǒng)會(huì),人不會(huì),這也是磨練心態(tài)的一種方法吧
sudo apt-get install aptitude
2.安裝python3
sudo apt-get install python3-pip?
?3.運(yùn)行python3查看是否成功安裝
在終端上直接輸入python3
?python3
?出現(xiàn)以下界面就代表安裝成功了
4.接下來(lái)直接安裝opencv?
sudo apt-get install python3-opencv?
接下來(lái)耐心等待安裝?
安裝好后同樣的進(jìn)入python3?
python3
import cv2?
cv2.__version__?
此時(shí)如下圖所示出現(xiàn)版本號(hào)即代表安裝成功?
?
?5.鑒于我們使用的是淘寶上60塊的usb免驅(qū)攝像頭,發(fā)現(xiàn)如果以linux原生驅(qū)動(dòng)的話,出來(lái)的畫面很大,而且很卡還有果凍效應(yīng),雖然攝像頭支持720p像素,但是考慮到太大了,還是需要更改為640x480的尺寸來(lái)跑比較合適。這里我們使用V4L2驅(qū)動(dòng),跟著下面命令進(jìn)行V4L2驅(qū)動(dòng)工具安裝
sudo apt install v4l-utils//安裝v4l2工具包
?插入usb攝像頭 此時(shí)使用lsusb命令來(lái)查看攝像頭是否掛載
lsusb
?這里可以看到ID 是USB Camera的攝像頭已經(jīng)設(shè)別到了
然后使用以下命令進(jìn)行查看配置?
sudo v4l2-ctl -d /dev/video0 --set-parm=30//設(shè)置幀率?
sudo v4l2-ctl --set-fmt-video=width=640,height=480,pixelformat=MJPG//設(shè)置為寬640高為480 輸出視頻流為MJPG
?如果出現(xiàn)以上則代表攝像頭能夠正常驅(qū)動(dòng)了,而且是以30幀的形式,如果只顯示定死的5幀和10幀那你就需要先使用測(cè)試程序跑一遍攝像頭再進(jìn)行以上設(shè)置,大概率完美驅(qū)動(dòng),驅(qū)動(dòng)程序我放下面了,一定注意如果是攝像頭直插電腦則使用0號(hào)設(shè)備 如果是樹莓派或者香橙派請(qǐng)默認(rèn)使用1,cap = cv2.VideoCapture(0, cv2.CAP_V4L2)在這里進(jìn)行修改,這個(gè)我也不理解,香橙派會(huì)認(rèn)定插入的這個(gè)設(shè)備是第二個(gè)設(shè)備,可能是已經(jīng)有設(shè)備先占用了,所以大家不妨0,1,2都試試。
初次使用的朋友不知道怎么在ubuntu上跑py腳本,下面簡(jiǎn)單介紹
首先你先vim xxxx.py //這個(gè)xxxx由你自己設(shè)置,最好英文
?vim test3.py
按下回車,然后進(jìn)入到這個(gè)界面
然后全選復(fù)制以下代碼 按下方向鍵上面的那個(gè)ins鍵用于進(jìn)入編輯模式,然后再ctrl+shift+v粘貼
?import cv2
cap = cv2.VideoCapture(0, cv2.CAP_V4L2)//如果是攝像頭直插電腦則使用0號(hào)設(shè)備 如果是樹莓派或者香橙派請(qǐng)默認(rèn)使用1
while True:
? ? ret, frame = cap.read()
? ? if ret:
? ? ? ? cv2.imshow("frame", frame)
? ? if cv2.waitKey(1)==27:
? ? ? ? break
cap.release()
cv2.destroyAllWindows()
然后多按幾次ESC鍵退出編輯模式 再按shift+: 在終端窗口左下角會(huì)顯示:你再輸入wq! 然后回車 意思是強(qiáng)制 寫入 退出 這樣你就把上面這串代碼添加進(jìn)了test3.py這個(gè)文件里。
?
輸入ls命令查看當(dāng)前文件夾文件,你就能看到test3.py文件了
?接下來(lái)運(yùn)行python3 test3.py
python3 test3.py
?如果一切正常,這時(shí)候會(huì)出現(xiàn)視頻流畫面,如有錯(cuò)誤請(qǐng)繼續(xù)看下去
那么恭喜你,到了這一步已經(jīng)完成oepncv的安裝以及驅(qū)動(dòng)攝像頭了,剩下就是代碼自己敲了,開啟新世界的大門。
但如果你出現(xiàn)了下圖這種情況,也不要慌張,這就是上面所提到的?設(shè)備沒(méi)選對(duì),你去把test3.py的cv2.VideoCapture(0, cv2.CAP_V4L2)改成cv2.VideoCapture(1, cv2.CAP_V4L2)大概率就好了。
?5.ssh配置
?這是一個(gè)很重要的東西,因?yàn)闂l件有限,又或者不想每次都插屏幕,拔線又麻煩,于是ssh可以直接從你的寫代碼的電腦上直接命令行操控你的派,可以在不要顯示器的情況下完成很多功能,尤其是只有一套鍵鼠的小伙伴,大大降低了你的插拔頻率,不至于浪費(fèi)時(shí)間,如果有多套鍵鼠,以及多個(gè)屏幕的小伙伴,那你可以直接把它當(dāng)電腦使用,另外就是還要用一個(gè)sftp的功能去把你在電腦上寫的代碼直接通過(guò)局域網(wǎng)去推給你的派,這樣子就省去了上面那樣新建文件還要復(fù)制粘貼的繁瑣操作。
首先開啟你的派的ssh,這個(gè)由各家派的官方給的東西來(lái)確定,你需要自己去查查手上的派的ssh如何打開,這里沒(méi)辦法統(tǒng)一,所以暫不敘述。不過(guò)這個(gè)ssh打開后,設(shè)置成開機(jī)時(shí)自動(dòng)啟動(dòng),就可以做到無(wú)顯示屏進(jìn)行控制了,這里我以香橙派的ssh鏈接做示例,windows使用putty工具進(jìn)行ssh鏈接,linux直接使用ssh命令即可。
1,首先你需要知道你的派所連的局域網(wǎng)的ip地址
請(qǐng)?jiān)谂缮陷斎雐fconfig命令用于查看當(dāng)前ip地址
ifconfig
?這樣192.168.31.202就是我的派在局域網(wǎng)的ip 獲得了局域網(wǎng)ip我們就可以通過(guò)用戶名加ip找到我們的派
如果是在linux系統(tǒng)上進(jìn)行操作 確保派已開機(jī) 在電腦的終端上寫入ssh 用戶名@IP地址 即可 例如
ssh orangepi@192.168.31.202
接下來(lái)就會(huì)顯示讓你輸入密碼,這個(gè)密碼是不可見(jiàn)的,所以你只管輸入就行,并不是你沒(méi)法輸入密碼
密碼正確輸入回車后就會(huì)進(jìn)入到你的派的終端了?
接下來(lái)你就可以做到在電腦寫命令,派上執(zhí)行了。
6.VNC配置?
我們常常礙于有時(shí)候想要看看代碼執(zhí)行在arm端上的效果,但是又沒(méi)法通過(guò)ssh的文本形式看到,于是,VNC出現(xiàn)了,它能夠直接從我們的電腦上直接看到派當(dāng)前運(yùn)行的桌面,這樣子你就做到了一個(gè)顯示器看兩個(gè)設(shè)備的畫面了,并且還可以實(shí)時(shí)控制,以下是我在電腦端的截圖
?我們?cè)撊绾闻渲媚兀亢芎?jiǎn)單,首先你想要一個(gè)VNC的軟件,電腦端裝上它的viewer端,arm端裝上它的服務(wù)端,那么他們都開啟后就可以從電腦上監(jiān)視arm當(dāng)前的運(yùn)行情況了,這里我推薦電腦端安裝realvnc 這個(gè)是下載地址Download the combined RealVNC Connect installer - RealVNC?
?如果你是windows就裝windows客戶端,如果是linux就裝linux客戶端,界面都是一樣的
arm端的就是直接通過(guò)命令行來(lái)安裝,礙于篇幅原因,我提供一個(gè)我一直參考安裝的CSDN的一篇文章,按照他的命令行去安裝即可Ubuntu系統(tǒng)安裝X11VNC實(shí)現(xiàn)遠(yuǎn)程可視化桌面操作教程_ubuntu22安裝x11vnc-CSDN博客
當(dāng)你在arm端上安裝好了x11vnc,并且配置好后,只需要在arm端終端使用 x11vnc即可
x11vnc
?設(shè)置好密碼后,接下來(lái)就會(huì)出現(xiàn)以下界面,有端口號(hào)就代表開啟成功了。
?
還請(qǐng)注意這個(gè)PORT端口,首次連接時(shí),你不僅需要IP地址也需要端口號(hào)才能來(lái)連接
然后你確保arm端x11vnc開啟后再打開電腦realvnc客戶端,然后按下圖配置好后回車即可
?出現(xiàn)框點(diǎn)擊確認(rèn)即可,第一次需要輸入密碼,這個(gè)就是你在arm端上的設(shè)置密碼,輸入正確后,就會(huì)出現(xiàn)以下畫面,就代表你已經(jīng)完成了VNC的配置,并且可以遠(yuǎn)程操作你的派,而且不需要多一套顯示器鍵鼠,只需要在一臺(tái)電腦上即可,粘貼板也是共享的,你就可以在你電腦上寫opencv代碼然后通過(guò)sftp來(lái)把寫好的代碼發(fā)送給派去跑,這樣子視覺(jué)部分就配完了
7、踩坑
第一個(gè)坑,aptitude依賴文件的下載,如果沒(méi)有這個(gè)軟甲,那很多依賴關(guān)系都要自己配置,另外就是看網(wǎng)上下載opencv還要換到國(guó)內(nèi)源,之前一不小心換了,下好之后換不回去了,導(dǎo)致后面下其他東西都很麻煩,于是跳過(guò)了這一步,另外就是,在配置攝像頭時(shí),一開始不知道要用v4
l2驅(qū)動(dòng),導(dǎo)致我以為買的攝像頭太垃圾甚至想去換一個(gè)了,而且網(wǎng)上有關(guān)的內(nèi)容資料很少,也是各種查找才知道這個(gè)方法,然后就是有關(guān)代碼的編寫,我建議安裝一個(gè)vscode 然后 把python 和通義靈碼插件安裝上,它可以根據(jù)你的注釋生成你需要的代碼,而且效率很高,你只需要有一個(gè)處理圖像的思路就可以很快的把代碼寫出來(lái),所以在我看來(lái),處理圖像最關(guān)鍵就是思路,代碼反而不是什么大問(wèn)題,后面的時(shí)候我會(huì)更一些我學(xué)習(xí)的思路,期間我踩的最大的坑就是配置完VNC后,派一直卡在進(jìn)入界面而且一直要求輸入密碼,然后又重復(fù)卡在進(jìn)入頁(yè)面輸密碼,我翻了很多的有關(guān)資料都沒(méi)找到,在貼吧偶然看見(jiàn)一個(gè)老哥的貼下面用這種方法就完成了,我也貼出來(lái)給有需要的朋友吧,
在派上終端輸入
rm /home/用戶名/.Xauthority
?刪除了這個(gè)文件后,這個(gè)大坑終于被解決了,我在這上面裝了不下十次系統(tǒng)才發(fā)現(xiàn)了的問(wèn)題,也算是一個(gè)教訓(xùn)吧,而且玩這些派最不怕的系統(tǒng)掛壁,大不了就重裝,寫這篇博客的目的也是為了防止后期我的派又掛壁了,要一個(gè)一個(gè)命令去輸,反正多去系統(tǒng)掛壁幾次自然就熟練了。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-844673.html
?8、結(jié)尾
這篇教程只是這一半個(gè)月學(xué)習(xí)opencv階段的總結(jié),后面也會(huì)繼續(xù)寫一些有關(guān)opencv的處理思路,等我偶爾敲代碼累了就慢慢的把以前的項(xiàng)目拿出來(lái)也發(fā)出來(lái)供參考一下,另外就是備賽情況也會(huì)偶爾拿出來(lái)進(jìn)行階段性展示,與各位共勉。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-844673.html
到了這里,關(guān)于香橙派/樹莓派 電腦linux 電賽備賽指南-opencv全過(guò)程最簡(jiǎn)安裝,ssh,vnc,USB攝像頭驅(qū)動(dòng)和配置環(huán)境避坑,手把手教學(xué)。opencv視覺(jué)入門(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!