資料介紹
描述
立體視覺一直是提取 3D 信息的最復雜和資源密集的過程之一。Netduino 3 以太網板配備 Cortex-M4 168 Mhz 微處理器,能夠對少量圖像數據進行密集執行。
該板還帶有 4 個可供使用的 UART 端口,非常適合串行通信相機。
我們能夠支持 OV528 協議與兩個串行相機進行通信并獲取兩張靜止物體的連續照片。在不久的將來,我們將應用其中一種立體視覺算法從獲取的圖像中提取 3D 信息。
該系統分為兩部分:項目的第一部分將管理硬件并按需獲取立體圖像,然后項目的第二部分將在內部計算所捕捉對象的 3D 坐標。
成分
電腦立體視覺系統
立體視覺系統由一對已知水平位移和對稱對齊的數碼相機組成。這些數碼相機同時獲取圖像并計算 3D 空間信息。
我們將兩個攝像頭連接到木尺上,以測試攝像頭之間的不同水平位移以及它如何影響 3D 計算測量值。目前我們所做的唯一檢查是將相機與它們的焦軸(鏡頭中心)分開 3 英寸。
該系統由兩個能夠捕捉高達 640x480 圖像的串行相機組成。我們選擇選擇 320x240 的分辨率,以便更輕松地處理數據。尺寸越小,所需的處理資源就越少。
目前,錄制過程是順序的:設置攝像頭進行捕獲,發送快照命令,最后將圖像緩沖區讀取到應用程序。對攝像機 1 完成此過程,然后對攝像機 2 重復此過程。
圖像數據保存在 Netduino 3 的 SD 卡中。
if (_button.Read())
{
//Record image from camera 1
Set4Capture(Camera1);
Snap(Camera1);
GetImage(Camera1);
//Record image from camera 2
Set4Capture(Camera2);
Snap(Camera2);
GetImage(Camera2);
}
請注意,我們的目標不是實時 3D 計算和顯示,而是更多用于 3D 掃描的對象建模。
UART通信
Netduino 3 最多支持 4 個 UART 通道。我們使用 UART COM1 和 UART COM2 連接相機。
.NET MicroFramework 通過定義一個事件回調函數來支持 UART 設備,當系統通過一個活動端口接收到信息時將觸發該回調函數。
//Set event callback function
Camera2.DataReceived += SerialDataReceived;
Camera1.DataReceived += SerialDataReceived;
事件函數定義如下。兩個攝像頭調用相同的事件函數并在內部檢查以查看哪個實例進行了調用。
接收到的數據存儲在本地內存數組中,然后移動到全局變量中,以便我們可以訪問它。接收到的數據量也被保存到一個全局變量中。
static void SerialDataReceived(object sender, SerialDataReceivedEventArgs e)
{
if ((e.EventType == SerialData.Chars) && (sender == Camera1))
{
const int BUFFER_SIZE = 1024;
byte[] buffer = new byte[BUFFER_SIZE];
int amount = ((SerialPort)sender).Read(buffer, 0, BUFFER_SIZE);
if (amount > 0)
{
for (int index = 0; index < amount; index++)
{
messageFromCam1[index] = buffer[index];
}
dataRead1 = true;
dataSize1 = amount;
}
}
else if ((e.EventType == SerialData.Chars) && (sender == Camera2))
{
const int BUFFER_SIZE = 1024;
byte[] buffer = new byte[BUFFER_SIZE];
int amount = ((SerialPort)sender).Read(buffer, 0, BUFFER_SIZE);
if (amount > 0)
{
for (int index = 0; index < amount; index++)
{
messageFromCam1[index] = buffer[index];
}
dataRead1 = true;
dataSize1 = amount;
}
}
}
發送命令并等待響應后的事件同步仍然是我們尚未克服的挑戰。我們將研究信號量或臨界區。復雜性是由于董事會實現了一個循環調度程序,該調度程序在等待變量更改狀態時添加了無限循環。這可能會使進程死鎖并將事件進程設置為饑餓模式。我們將在了解如何同步事件后立即報告項目的第二部分。
與此同時,我們通過蠻力解決同步問題。換句話說,如果我們沒有收到我們期望的確認流,那么我們會再次發送命令,直到收到正確的響應。您可以在下面的代碼中看到它。
while (true)
{
clearBuffer(camDevice);
sendCmd(camDevice, cmd, 6);
cmdRet = readReply(camDevice, resp, ref dS2R);
if (!cmdRet && dS2R < 6) continue;
if (resp[0] == 0xaa && resp[1] == (0x0e | cameraAddr) && resp[2] == 0x0d && resp[4] == 0 && resp[5] == 0)
{
if (dS2R == 12)
{
if (resp[6] == 0xaa && resp[7] == (0x0d | cameraAddr) && resp[8] == 0 && resp[9] == 0 && resp[10] == 0 && resp[11] == 0)
break;
}
}
}
請注意,我們使用的是無限循環。發送初始化命令,檢查是否收到了確認響應,如果不是預期的響應,則再次重復該過程。
相機在處理完命令后會清除命令緩沖區,因此相機在處理完前一個命令后就準備好接受新命令。
這種方法最終會奏效,但它可能會更快。
相機協議OV528
下表顯示了可用于使用 OV528協議對串行攝像頭進行編程的命令。該協議基于以六字節字節指定的命令。根據發送的命令,發送回相同大小或雙倍的確認。
命令通過 UART 端口發送并同步以接收確認。
我們的配置將相機設置為獲取 320x240 8 位顏色的分辨率。該協議非常簡單明了。
實驗
我們使用了距攝像機中心視野 3 英寸的單個水平位移。使用兩個靜止物體來獲取立體圖像,系統設置如下圖所示。
從系統獲取的立體圖像并未完全對齊,但這是一個很好的起點,可以測試我們將在項目下一階段實施的可能立體視覺算法的穩健性。
未來的工作
在項目的第二部分,我們將
- 改進命令同步
- 內部計算深度圖
- 允許選擇不同的分辨率
- 實施簡單的預覽模式以正確對齊相機。
?
- 立體視覺系統的設計方案
- 邊緣AI套件上的立體視覺深度感知
- 面向雙目立體視覺的迭代式局部顏色校正方法 5次下載
- 雙目立體計算機視覺的立體匹配研究綜述 3次下載
- 如何使用FPGA實現微型實時多目立體視覺機的設計 21次下載
- 如何使用FPGA實現三目立體視覺外極線校正的方法 12次下載
- 使用雙目立體視覺實現CCD測距系統設計的資料說明 6次下載
- 基于雙目立體視覺的橋梁裂縫測量 0次下載
- 三維立體視覺技術的應用及其三維恢復方法介紹 5次下載
- 微型實時多目立體視覺機設計與實現 2次下載
- 立體視覺技術分析
- 雙目立體視覺在光電子器件自動對接系統中的應用 63次下載
- 雙目立體視覺傳感器精度分析與參數設計 75次下載
- 基于HALCON的雙目立體視覺系統實現 130次下載
- 基于預測的立體視覺_力反饋研究
- 三維視覺測量技術:被動視覺測量和主動視覺測量 584次閱讀
- 雙目立體視覺是什么樣的技術? 852次閱讀
- 計算機視覺中的立體視覺和深度感知Python示例實現 488次閱讀
- middlebury數據集是什么 2029次閱讀
- 如何通過立體視覺構建小巧輕便的深度感知系統 611次閱讀
- 采用視覺與超聲測量相結合實現機器人抓取功能設計 3533次閱讀
- 基于仿人機器人BHR-1的視覺跟蹤和運動控制系統的設計 2726次閱讀
- 計算機視覺教學的內容有哪些? 3556次閱讀
- 什么是“Blockdrop”?立體視覺應用的神經形態技術 4865次閱讀
- 雙目立體視覺攝像頭模塊開發設計 2989次閱讀
- 雙目立體視覺三維測量原理 2.3w次閱讀
- 雙目視覺技術的原理、結構、特點、發展現狀和發展方向分析 5w次閱讀
- 3D雙目立體視覺在機器人視覺的應用 1.5w次閱讀
- 圖像處理基本算法-立體視覺 5427次閱讀
- 立體成像技術詳解與4D影院的普及 4631次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多