資料介紹
描述
立體視覺一直是提取 3D 信息的最復雜和資源密集的過程之一。Netduino 3 以太網板配備 Cortex-M4 168 Mhz 微處理器,能夠對少量圖像數(shù)據(jù)進行密集執(zhí)行。
該板還帶有 4 個可供使用的 UART 端口,非常適合串行通信相機。
我們能夠支持 OV528 協(xié)議與兩個串行相機進行通信并獲取兩張靜止物體的連續(xù)照片。在不久的將來,我們將應用其中一種立體視覺算法從獲取的圖像中提取 3D 信息。
該系統(tǒng)分為兩部分:項目的第一部分將管理硬件并按需獲取立體圖像,然后項目的第二部分將在內部計算所捕捉對象的 3D 坐標。
成分

電腦立體視覺系統(tǒng)
立體視覺系統(tǒng)由一對已知水平位移和對稱對齊的數(shù)碼相機組成。這些數(shù)碼相機同時獲取圖像并計算 3D 空間信息。
我們將兩個攝像頭連接到木尺上,以測試攝像頭之間的不同水平位移以及它如何影響 3D 計算測量值。目前我們所做的唯一檢查是將相機與它們的焦軸(鏡頭中心)分開 3 英寸。
該系統(tǒng)由兩個能夠捕捉高達 640x480 圖像的串行相機組成。我們選擇選擇 320x240 的分辨率,以便更輕松地處理數(shù)據(jù)。尺寸越小,所需的處理資源就越少。

目前,錄制過程是順序的:設置攝像頭進行捕獲,發(fā)送快照命令,最后將圖像緩沖區(qū)讀取到應用程序。對攝像機 1 完成此過程,然后對攝像機 2 重復此過程。
圖像數(shù)據(jù)保存在 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 通過定義一個事件回調函數(shù)來支持 UART 設備,當系統(tǒng)通過一個活動端口接收到信息時將觸發(fā)該回調函數(shù)。
//Set event callback function
Camera2.DataReceived += SerialDataReceived;
Camera1.DataReceived += SerialDataReceived;
事件函數(shù)定義如下。兩個攝像頭調用相同的事件函數(shù)并在內部檢查以查看哪個實例進行了調用。
接收到的數(shù)據(jù)存儲在本地內存數(shù)組中,然后移動到全局變量中,以便我們可以訪問它。接收到的數(shù)據(jù)量也被保存到一個全局變量中。
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;
}
}
}
發(fā)送命令并等待響應后的事件同步仍然是我們尚未克服的挑戰(zhàn)。我們將研究信號量或臨界區(qū)。復雜性是由于董事會實現(xiàn)了一個循環(huán)調度程序,該調度程序在等待變量更改狀態(tài)時添加了無限循環(huán)。這可能會使進程死鎖并將事件進程設置為饑餓模式。我們將在了解如何同步事件后立即報告項目的第二部分。
與此同時,我們通過蠻力解決同步問題。換句話說,如果我們沒有收到我們期望的確認流,那么我們會再次發(fā)送命令,直到收到正確的響應。您可以在下面的代碼中看到它。
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;
}
}
}
請注意,我們使用的是無限循環(huán)。發(fā)送初始化命令,檢查是否收到了確認響應,如果不是預期的響應,則再次重復該過程。
相機在處理完命令后會清除命令緩沖區(qū),因此相機在處理完前一個命令后就準備好接受新命令。
這種方法最終會奏效,但它可能會更快。
相機協(xié)議OV528
下表顯示了可用于使用 OV528協(xié)議對串行攝像頭進行編程的命令。該協(xié)議基于以六字節(jié)字節(jié)指定的命令。根據(jù)發(fā)送的命令,發(fā)送回相同大小或雙倍的確認。
命令通過 UART 端口發(fā)送并同步以接收確認。

我們的配置將相機設置為獲取 320x240 8 位顏色的分辨率。該協(xié)議非常簡單明了。
實驗
我們使用了距攝像機中心視野 3 英寸的單個水平位移。使用兩個靜止物體來獲取立體圖像,系統(tǒng)設置如下圖所示。

從系統(tǒng)獲取的立體圖像并未完全對齊,但這是一個很好的起點,可以測試我們將在項目下一階段實施的可能立體視覺算法的穩(wěn)健性。

未來的工作
在項目的第二部分,我們將
- 改進命令同步
- 內部計算深度圖
- 允許選擇不同的分辨率
- 實施簡單的預覽模式以正確對齊相機。
?
- 立體視覺系統(tǒng)的設計方案
- 邊緣AI套件上的立體視覺深度感知
- 面向雙目立體視覺的迭代式局部顏色校正方法 5次下載
- 雙目立體計算機視覺的立體匹配研究綜述 3次下載
- 如何使用FPGA實現(xiàn)微型實時多目立體視覺機的設計 21次下載
- 如何使用FPGA實現(xiàn)三目立體視覺外極線校正的方法 12次下載
- 使用雙目立體視覺實現(xiàn)CCD測距系統(tǒng)設計的資料說明 6次下載
- 基于雙目立體視覺的橋梁裂縫測量 0次下載
- 三維立體視覺技術的應用及其三維恢復方法介紹 5次下載
- 微型實時多目立體視覺機設計與實現(xiàn) 2次下載
- 立體視覺技術分析
- 雙目立體視覺在光電子器件自動對接系統(tǒng)中的應用 63次下載
- 雙目立體視覺傳感器精度分析與參數(shù)設計 75次下載
- 基于HALCON的雙目立體視覺系統(tǒng)實現(xiàn) 130次下載
- 基于預測的立體視覺_力反饋研究
- 三維視覺測量技術:被動視覺測量和主動視覺測量 898次閱讀
- 雙目立體視覺是什么樣的技術? 1173次閱讀
- 計算機視覺中的立體視覺和深度感知Python示例實現(xiàn) 681次閱讀
- middlebury數(shù)據(jù)集是什么 2263次閱讀
- 如何通過立體視覺構建小巧輕便的深度感知系統(tǒng) 723次閱讀
- 采用視覺與超聲測量相結合實現(xiàn)機器人抓取功能設計 3720次閱讀
- 基于仿人機器人BHR-1的視覺跟蹤和運動控制系統(tǒng)的設計 2932次閱讀
- 計算機視覺教學的內容有哪些? 3686次閱讀
- 什么是“Blockdrop”?立體視覺應用的神經形態(tài)技術 5000次閱讀
- 雙目立體視覺攝像頭模塊開發(fā)設計 3095次閱讀
- 雙目立體視覺三維測量原理 2.4w次閱讀
- 雙目視覺技術的原理、結構、特點、發(fā)展現(xiàn)狀和發(fā)展方向分析 5.1w次閱讀
- 3D雙目立體視覺在機器人視覺的應用 1.5w次閱讀
- 圖像處理基本算法-立體視覺 5547次閱讀
- 立體成像技術詳解與4D影院的普及 4810次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費
- 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
- 1.12 MB | 1次下載 | 免費
- 4網絡安全從業(yè)者入門指南
- 2.91 MB | 1次下載 | 免費
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費
- 6海川SM5701規(guī)格書
- 1.48 MB | 次下載 | 免費
- 7H20PR5電磁爐IGBT功率管規(guī)格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護等級說明
- 0.08 MB | 次下載 | 免費
本月
- 1貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設計指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論