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

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

目前,錄制過(guò)程是順序的:設(shè)置攝像頭進(jìn)行捕獲,發(fā)送快照命令,最后將圖像緩沖區(qū)讀取到應(yīng)用程序。對(duì)攝像機(jī) 1 完成此過(guò)程,然后對(duì)攝像機(jī) 2 重復(fù)此過(guò)程。
圖像數(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);
}
請(qǐng)注意,我們的目標(biāo)不是實(shí)時(shí) 3D 計(jì)算和顯示,而是更多用于 3D 掃描的對(duì)象建模。
UART通信
Netduino 3 最多支持 4 個(gè) UART 通道。我們使用 UART COM1 和 UART COM2 連接相機(jī)。

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

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

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

未來(lái)的工作
在項(xiàng)目的第二部分,我們將
- 改進(jìn)命令同步
- 內(nèi)部計(jì)算深度圖
- 允許選擇不同的分辨率
- 實(shí)施簡(jiǎn)單的預(yù)覽模式以正確對(duì)齊相機(jī)。
?
- 立體視覺系統(tǒng)的設(shè)計(jì)方案
- 邊緣AI套件上的立體視覺深度感知
- 面向雙目立體視覺的迭代式局部顏色校正方法 5次下載
- 雙目立體計(jì)算機(jī)視覺的立體匹配研究綜述 3次下載
- 如何使用FPGA實(shí)現(xiàn)微型實(shí)時(shí)多目立體視覺機(jī)的設(shè)計(jì) 21次下載
- 如何使用FPGA實(shí)現(xiàn)三目立體視覺外極線校正的方法 12次下載
- 使用雙目立體視覺實(shí)現(xiàn)CCD測(cè)距系統(tǒng)設(shè)計(jì)的資料說(shuō)明 6次下載
- 基于雙目立體視覺的橋梁裂縫測(cè)量 0次下載
- 三維立體視覺技術(shù)的應(yīng)用及其三維恢復(fù)方法介紹 5次下載
- 微型實(shí)時(shí)多目立體視覺機(jī)設(shè)計(jì)與實(shí)現(xiàn) 2次下載
- 立體視覺技術(shù)分析
- 雙目立體視覺在光電子器件自動(dòng)對(duì)接系統(tǒng)中的應(yīng)用 63次下載
- 雙目立體視覺傳感器精度分析與參數(shù)設(shè)計(jì) 75次下載
- 基于HALCON的雙目立體視覺系統(tǒng)實(shí)現(xiàn) 130次下載
- 基于預(yù)測(cè)的立體視覺_力反饋研究
- 三維視覺測(cè)量技術(shù):被動(dòng)視覺測(cè)量和主動(dòng)視覺測(cè)量 898次閱讀
- 雙目立體視覺是什么樣的技術(shù)? 1173次閱讀
- 計(jì)算機(jī)視覺中的立體視覺和深度感知Python示例實(shí)現(xiàn) 681次閱讀
- middlebury數(shù)據(jù)集是什么 2263次閱讀
- 如何通過(guò)立體視覺構(gòu)建小巧輕便的深度感知系統(tǒng) 723次閱讀
- 采用視覺與超聲測(cè)量相結(jié)合實(shí)現(xiàn)機(jī)器人抓取功能設(shè)計(jì) 3720次閱讀
- 基于仿人機(jī)器人BHR-1的視覺跟蹤和運(yùn)動(dòng)控制系統(tǒng)的設(shè)計(jì) 2932次閱讀
- 計(jì)算機(jī)視覺教學(xué)的內(nèi)容有哪些? 3686次閱讀
- 什么是“Blockdrop”?立體視覺應(yīng)用的神經(jīng)形態(tài)技術(shù) 5000次閱讀
- 雙目立體視覺攝像頭模塊開發(fā)設(shè)計(jì) 3095次閱讀
- 雙目立體視覺三維測(cè)量原理 2.4w次閱讀
- 雙目視覺技術(shù)的原理、結(jié)構(gòu)、特點(diǎn)、發(fā)展現(xiàn)狀和發(fā)展方向分析 5.1w次閱讀
- 3D雙目立體視覺在機(jī)器人視覺的應(yīng)用 1.5w次閱讀
- 圖像處理基本算法-立體視覺 5547次閱讀
- 立體成像技術(shù)詳解與4D影院的普及 4810次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論