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