D題任務(wù)要求
設(shè)計(jì)并制作一個(gè)圖中所示的基于互聯(lián)網(wǎng)的攝像測(cè)量系統(tǒng)。圖中邊長(zhǎng)為1米的正方形區(qū)域三個(gè)頂點(diǎn)分別為A、B和O。系統(tǒng)有兩個(gè)獨(dú)立的攝像節(jié)點(diǎn)分別放置在A和B,兩個(gè)攝像節(jié)點(diǎn)拍攝盡量沿AO、BO方向正交,并通過(guò)一個(gè)百兆/千兆以太網(wǎng)交換機(jī)與連接在該交換機(jī)的一個(gè)終端節(jié)點(diǎn)實(shí)現(xiàn)網(wǎng)絡(luò)互聯(lián)。交換機(jī)必須為互聯(lián)網(wǎng)通用交換機(jī),使用的網(wǎng)口可以任意指定。
在O點(diǎn)上方懸掛一個(gè)用柔性透明細(xì)線吊起的激光筆,透明細(xì)線長(zhǎng)度為 l,激光筆常亮向下指示,靜止下垂時(shí)的指示光點(diǎn)與O點(diǎn)重合。
拉動(dòng)激光筆偏離靜止點(diǎn)的距離小于10cm,松開后激光筆自由擺動(dòng)。應(yīng)保證激光筆指示光點(diǎn)的軌跡經(jīng)O點(diǎn)往復(fù)直線運(yùn)動(dòng),軌跡與OA邊的夾角為 θ。
利用該系統(tǒng)實(shí)現(xiàn)對(duì)長(zhǎng)度 l 和角度 θ 的測(cè)量。
基本要求分析
設(shè)計(jì)并制作兩個(gè)獨(dú)立的攝像節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)由一個(gè)攝像頭和相應(yīng)的電路組成,兩個(gè)攝像節(jié)點(diǎn)均可以拍攝到激光筆的運(yùn)動(dòng)視頻并顯示。
設(shè)計(jì)并制作終端節(jié)點(diǎn)。在終端顯示器上可以分別和同時(shí)顯示兩個(gè)攝像節(jié)點(diǎn)拍攝的實(shí)時(shí)視頻。在視頻中可以識(shí)別出激光筆,并在視頻中用紅色方框?qū)崟r(shí)框住激光筆輪廓。
測(cè)量系統(tǒng)在終端節(jié)點(diǎn)設(shè)置一鍵啟動(dòng)。從激光筆擺動(dòng)開始計(jì)時(shí),測(cè)量系統(tǒng)通過(guò)對(duì)激光筆周期擺動(dòng)視頻信號(hào)的處理,自動(dòng)測(cè)量長(zhǎng)度 l。(50cm ≤ l ≤ 150cm,θ角度自定) 測(cè)量完成時(shí),終端聲光提示并顯示長(zhǎng)度 l。要求測(cè)量誤差絕對(duì)值小于 2cm,測(cè)量時(shí)間小于 30 秒。
題目發(fā)揮部分
一鍵啟動(dòng)后,測(cè)量系統(tǒng)通過(guò)兩個(gè)獨(dú)立攝像節(jié)點(diǎn)的網(wǎng)絡(luò)協(xié)同工作。當(dāng) θ = 0° 和 θ = 90° 時(shí),能自動(dòng)測(cè)量長(zhǎng)度 l( 50cm ≤ l ≤ 150cm )。要求測(cè)量誤差絕對(duì)值小于 2cm,測(cè)量時(shí)間小于 30 秒。
一鍵啟動(dòng)后,可以測(cè)量 θ ( 0° ≤ θ ≤ 90° ) 。要求測(cè)量誤差絕對(duì)值小于 5°,測(cè)量時(shí)間小于 30 秒。
其他。
硬件方案選擇
攝像節(jié)點(diǎn)由一個(gè)攝像頭和相應(yīng)的電路組成,需要拍攝到激光筆的運(yùn)動(dòng)視頻并顯示??梢允褂孟旅鎯煞N方案:
樹莓派調(diào)用OpenCV庫(kù)從USB攝像頭獲取實(shí)時(shí)圖像并顯示在HDMI顯示器上,然后調(diào)用OpenCV庫(kù)中的圖像處理算法識(shí)別激光筆,然后在原圖像上用紅框框住激光筆輪廓,再將激光筆的位置信息和圖像通過(guò)網(wǎng)絡(luò)傳輸?shù)浇K端節(jié)點(diǎn)。
方案二:D8M攝像頭 + DE10-Nano開發(fā)板
D8M攝像頭可通過(guò)GPIO接口連接到DE10-Nano開發(fā)板上,使用Terasic Camera IP從D8M獲取實(shí)時(shí)視頻流數(shù)據(jù)并顯示在HDMI顯示器上,再對(duì)視頻流數(shù)據(jù)進(jìn)行處理識(shí)別激光筆,然后在原圖像上用紅框框住激光筆輪廓,再將激光筆的位置信息和圖像通過(guò)網(wǎng)絡(luò)傳輸?shù)浇K端節(jié)點(diǎn)。
方案比較:
方案一采用USB攝像頭可以直接使用OpenCV庫(kù)進(jìn)行操作,代碼簡(jiǎn)單,但是只能用CPU進(jìn)行處理,處理效率不夠高。
方案二采用GPIO接口的D8M攝像頭,直接與DE10-Nano開發(fā)板連接,可通過(guò)FPGA進(jìn)行算法加速,CPU只需要讀取FPGA端處理好的結(jié)果圖像再進(jìn)行簡(jiǎn)單的計(jì)算,可提高處理效率。
綜上所述,為了提高處理效率、縮短測(cè)量時(shí)間,選擇方案二作為攝像節(jié)點(diǎn)方案。其系統(tǒng)框圖如下:
檢測(cè)方案選擇
運(yùn)動(dòng)目標(biāo)的檢測(cè)一般有三種方法:背景差分法、幀間差分法和光流法。
背景差分法
背景差分法是采用圖像序列中的當(dāng)前幀和背景參考模型比較來(lái)檢測(cè)運(yùn)動(dòng)物體的一種方法,其性能依賴于所使用的背景建模技術(shù),背景圖像的建模和模擬的準(zhǔn)確程度,直接影響到檢測(cè)的效果。
幀間差分法
幀間差分法通過(guò)對(duì)視頻或圖像序列中相鄰兩幀做差分運(yùn)算來(lái)獲得運(yùn)動(dòng)目標(biāo)的輪廓,可很好地適用于存在多個(gè)運(yùn)動(dòng)目標(biāo)和攝像機(jī)移動(dòng)的情況。
當(dāng)場(chǎng)景中出現(xiàn)物體運(yùn)動(dòng)時(shí),幀與幀之間會(huì)出現(xiàn)較為明顯的差別,兩幀相減,得到兩幀圖像亮度差的絕對(duì)值,判斷它是否大于閾值來(lái)分析視頻或圖像序列的運(yùn)動(dòng)特性,確定圖像序列中有無(wú)物體運(yùn)動(dòng)。
光流法
光流是關(guān)于視域中的物體運(yùn)動(dòng)檢測(cè)中的概念,用來(lái)描述相對(duì)于觀察者的運(yùn)動(dòng)所造成的觀測(cè)目標(biāo)、表面或邊緣的運(yùn)動(dòng)。光流法的主要任務(wù)就是計(jì)算光流場(chǎng),即在適當(dāng)?shù)钠交约s束條件下,根據(jù)圖像序列的時(shí)空梯度估算
運(yùn)動(dòng)場(chǎng),通過(guò)分析運(yùn)動(dòng)場(chǎng)的變化對(duì)運(yùn)動(dòng)目標(biāo)和場(chǎng)景進(jìn)行檢測(cè)與分割。
方案比較:
背景差分法檢測(cè)運(yùn)動(dòng)目標(biāo)速度快,檢測(cè)準(zhǔn)確,但對(duì)于背景的建模和模擬卻比較困難,而要提升準(zhǔn)確度就會(huì)導(dǎo)致算法的計(jì)算量增大,實(shí)時(shí)性不夠好;
幀間差分法對(duì)包含運(yùn)動(dòng)目標(biāo)的場(chǎng)景有著比較強(qiáng)的魯棒性,且運(yùn)算速度快,實(shí)時(shí)性好,但該方法一般不能完全檢測(cè)出運(yùn)動(dòng)物體的所有像素點(diǎn),常常在檢測(cè)到的運(yùn)動(dòng)物體內(nèi)部出現(xiàn)“空洞”現(xiàn)象,因此僅適用于簡(jiǎn)單的運(yùn)動(dòng)物體檢測(cè)的情況;
光流法不需要預(yù)先知道場(chǎng)景的任何信息,就能夠檢測(cè)到運(yùn)動(dòng)對(duì)象,可處理背景運(yùn)動(dòng)的情況,但噪聲、多光源、陰影和遮擋等因素會(huì)對(duì)光流場(chǎng)分布的計(jì)算結(jié)果造成嚴(yán)重影響,而且光流法計(jì)算復(fù)雜,也很難實(shí)現(xiàn)實(shí)時(shí)處理。
綜上所述,為了能夠?qū)崟r(shí)識(shí)別到激光筆,且激光筆內(nèi)部少量像素點(diǎn)的缺失不會(huì)影響檢測(cè)結(jié)果,選擇幀間差分法作為運(yùn)動(dòng)目標(biāo)檢測(cè)算法。
長(zhǎng)度L的理論計(jì)算
單擺的定義:
將無(wú)重細(xì)桿或不可伸長(zhǎng)的細(xì)柔繩一端懸于重力場(chǎng)內(nèi)一定點(diǎn),另一端固定一個(gè)重小球,就構(gòu)成單擺。
小角近似簡(jiǎn)諧運(yùn)動(dòng)(一般認(rèn)為10°以下可以這樣近似),單擺能夠往復(fù)擺動(dòng),在非常小的振幅/角度下,單擺做簡(jiǎn)諧運(yùn)動(dòng),簡(jiǎn)諧運(yùn)動(dòng)方程式如下所示:
其中,A、 φ 為任意常數(shù),由初值條件給定;而T等于:
其中 l 為無(wú)重細(xì)桿或細(xì)柔繩的長(zhǎng)度, g 為當(dāng)?shù)氐闹亓铀俣取?/p>
如果已知簡(jiǎn)諧運(yùn)動(dòng)的周期 T,那么就可以計(jì)算得到無(wú)重細(xì)桿或細(xì)柔繩的長(zhǎng)度 l:
那怎樣得到簡(jiǎn)諧運(yùn)動(dòng)的周期T呢?這里采用擬合cos函數(shù)。
擬合cos函數(shù)
獲取數(shù)據(jù)集
采用擬合cos函數(shù)的第一步,就是要獲取數(shù)據(jù)集。
以攝像節(jié)點(diǎn)A為例進(jìn)行介紹,這是攝像節(jié)點(diǎn)A拍攝到的畫面,將左上角作為坐標(biāo)原點(diǎn),通過(guò)目標(biāo)檢測(cè)算法識(shí)別激光筆的位置,然后采集在t時(shí)刻對(duì)應(yīng)的激光筆輪廓左上角頂點(diǎn)的坐標(biāo)值x,y以及長(zhǎng)和寬,再計(jì)算得到中心點(diǎn)的橫坐標(biāo)xt,將中心點(diǎn)的坐標(biāo)作為激光筆的坐標(biāo)。
這樣就得到了擬合cos函數(shù)所需的一組數(shù)據(jù),通過(guò)測(cè)量不同時(shí)刻對(duì)應(yīng)的激光筆的位移xt就可以得到一組數(shù)據(jù)集。
最小二乘法
最小二乘法是解決曲線擬合問(wèn)題最常用的方法,通過(guò)最小化誤差的平方和來(lái)尋找數(shù)據(jù)的最佳函數(shù)匹配。
余弦曲線表示為:
其中包含4個(gè)參數(shù),分別是振幅(A)、周期(T)、初相(φ)和偏距(k)。
設(shè)(x, y)是一對(duì)觀測(cè)量,且 x和y滿足理論函數(shù):y=f(x, ω),其中ω為待定參數(shù)。
為了尋找函數(shù)f(x,ω)中參數(shù)ω的最優(yōu)估計(jì)值,對(duì)于給定m組觀測(cè)數(shù)據(jù)(x_i,y_i)(i=1, 2,?,m),求解目標(biāo)函數(shù)
L取最小值時(shí)對(duì)應(yīng)的參數(shù)ω為最優(yōu)估計(jì)值。
07
角度θ 的理論計(jì)算
接下來(lái)進(jìn)行角度θ的理論計(jì)算,這是測(cè)量系統(tǒng)的俯視圖:
圖中紅色實(shí)線CD是激光筆的運(yùn)動(dòng)軌跡,其與OA邊的夾角為θ,過(guò)點(diǎn)C畫OA的平行線,過(guò)點(diǎn)D畫OB的平行線,交于點(diǎn)E,CE的長(zhǎng)度為Xb,DE的長(zhǎng)度為Xa。這樣就可以得到攝像節(jié)點(diǎn)A處拍攝到的激光筆運(yùn)動(dòng)軌跡的橫向分量DE的運(yùn)動(dòng)方程式和分量CE的運(yùn)動(dòng)方程式為:
又由于每次拉動(dòng)激光筆后,角度θ是一個(gè)固定值,sinθ和cosθ為常量,所以橫向分量和豎直分量也都是簡(jiǎn)諧運(yùn)動(dòng),而DE的長(zhǎng)度為Xa,振幅為Xa/2,所以Xa和Xb可以表示為:
我們將這兩個(gè)式子相比,可以得到tanθ=Xa/Xb,則由反三角函數(shù)的正切公式可以計(jì)算得到:
附錄
1. D題源碼:https://gitee.com/terasic/socfpga-demo/tree/master
2. D題原始文件:
審核編輯:黃飛
-
cpu
+關(guān)注
關(guān)注
68文章
11082瀏覽量
217174 -
usb
+關(guān)注
關(guān)注
60文章
8191瀏覽量
273157 -
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
55文章
11251瀏覽量
106504 -
攝像系統(tǒng)
+關(guān)注
關(guān)注
0文章
19瀏覽量
12159 -
樹莓派
+關(guān)注
關(guān)注
121文章
2014瀏覽量
107510
原文標(biāo)題:2021年全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽D題——基于互聯(lián)網(wǎng)的攝像測(cè)量系統(tǒng)(一)
文章出處:【微信號(hào):友晶FPGA,微信公眾號(hào):友晶FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論