【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄
編輯:OAK中國(guó)
首發(fā):oakchina.cn
喜歡的話,請(qǐng)多多👍???
內(nèi)容可能會(huì)不定期更新,官網(wǎng)內(nèi)容都是最新的,請(qǐng)查看首發(fā)地址鏈接。
▌前言
Hello,大家好,這里是OAK中國(guó),我是助手君。
去年我寫了一篇博客說(shuō)明OAK相機(jī)是如何實(shí)現(xiàn)硬件同步的(傳送門),不過(guò)隨著我們產(chǎn)品的增多,這篇博客顯然也要更新內(nèi)容了。加上最近問外觸發(fā)同步的朋友比較多,所以我覺得是時(shí)候更新內(nèi)容了!
▌前言
有兩種方式去同步來(lái)自不同傳感器的信息(幀、IMU數(shù)據(jù)包、ToF等):
- 硬件同步(多傳感器亞毫米級(jí)精度,硬件觸發(fā))
- 軟件同步(基于時(shí)間戳/序列號(hào))
本文重點(diǎn)介紹硬件同步,它允許在多個(gè)相機(jī)傳感器之間精確同步,并可能與其他硬件同步,如閃光燈LED、外部IMU或其他相機(jī)。
▌FSYNC信號(hào)
FSYNC/FSIN(幀同步)信號(hào)是一個(gè)脈沖,在開始捕獲每個(gè)幀時(shí)被驅(qū)動(dòng)為高電平。它的長(zhǎng)度與曝光時(shí)間不成正比,可以是輸入或輸出,在1.8V下工作。
在雙目立體相機(jī)(OAK-D*)上,我們希望雙目黑白相機(jī)是完全同步的,所以一個(gè)相機(jī)傳感器(如左相機(jī))的FSYNC設(shè)置為INPUT,而另一個(gè)相機(jī)傳感器(如右相機(jī))的FSYNC設(shè)置為OUTPUT。在這樣的配置中,右相機(jī)驅(qū)動(dòng)左相機(jī)。
?注意!目前,只有OV9282/OV9782可以輸出FSYNC信號(hào),而IMX378/477/577/等應(yīng)該也有這個(gè)能力,但還不支持(所以這些信號(hào)不能驅(qū)動(dòng)FSYNC信號(hào),只能被它驅(qū)動(dòng))。AR0234只支持輸入FSYNC信號(hào)。
從外部同步幀
如果我們想用外部信號(hào)驅(qū)動(dòng)相機(jī),我們需要將FSIN設(shè)置為相機(jī)傳感器的INPUT。
所有二代的OAK-PoE設(shè)備都有一個(gè)M8 I/O連接器,可以引出FSIN信號(hào)(也包括STROBE)。因此,你可以將一個(gè)信號(hào)發(fā)生器連接到M8連接器上,所有3個(gè)相機(jī)傳感器將根據(jù)信號(hào)發(fā)生器的觸發(fā)器捕獲一幀。
# Example: we have 3 cameras on ports A,B, and C cam_A.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT) cam_B.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT) cam_C.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT)你也可以在腳本節(jié)點(diǎn)內(nèi)通過(guò)GPIO控制FSIN,查看這里的示例。
▌STROBE信號(hào)
STROBE信號(hào)是圖像傳感器的輸出,在圖像傳感器的曝光期間是有效的(高電平)。它可以用來(lái)驅(qū)動(dòng)外部的LED照明,所以照明只在曝光時(shí)間內(nèi)激活,而不是持續(xù)開啟,這將減少功耗和發(fā)熱。
我們?cè)贠AK-D-Pro系列相機(jī)上使用STROBE信號(hào)(它有板載照明紅外LED和紅外激光點(diǎn)陣發(fā)射器)來(lái)驅(qū)動(dòng)激光/LED。
▌幀捕獲圖像
當(dāng)傳感器開始傳輸幀(MIPI讀數(shù))時(shí),幀時(shí)間戳?xí)贛IPI SoF(幀開始)事件中分配給幀。
對(duì)于全局快門傳感器,這是在整個(gè)幀的曝光完成后立即進(jìn)行的,所以我們可以說(shuō)分配的時(shí)間戳與曝光窗口的結(jié)束相一致(在幾微秒的范圍內(nèi))。下面是一個(gè)全局快門傳感器計(jì)時(shí)的示意圖,演示了時(shí)間戳何時(shí)被分配給幀。
對(duì)于卷簾快門,示例圖看起來(lái)有點(diǎn)不同。MIPI SoF在圖像的第一行完全曝光后繼續(xù)拍攝并傳輸,但后面的行仍在曝光或可能還沒有開始曝光(取決于曝光時(shí)間)。
下面是卷簾快門傳感器(IMX378)在1080p和30fps(33.3ms幀時(shí)間)的示意圖。MIPI讀出時(shí)間因傳感器/分辨率而異,但對(duì)于IMX378來(lái)說(shuō),1080P時(shí)為16.54ms,4K時(shí)為23.58ms,12MP時(shí)為33.04ms。
在OAK-FFC-4P上有四個(gè)攝像頭接口:A(RGB)、B(LEFT)、C(RIGHT)和D(cam_d)。A和D是4-lane MIPI,B和C是2-lane MIPI。每對(duì)(A&D,B&C)共享一條I2C總線,默認(rèn)情況下,B&C總線配置為左右相機(jī)硬件同步。
對(duì)于A&D端口,你需要啟用硬件同步:
cam_A.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.OUTPUT) cam_D.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT)▌FFC鏡頭模組
FFC系列可以接的鏡頭模組有一個(gè)22pin的連接器,但沒有給FSIN/STROBE信號(hào)焊線。如下圖所示,要將FFC鏡頭模組連接到我們的OAK-FFC基板上,你需要使用26-22pin轉(zhuǎn)換器連接器,該連接器只能通過(guò)測(cè)試焊盤露出FSIN/STROBE線。為了同步這些相機(jī),你可以將一根電線從測(cè)試焊盤焊接到相機(jī)模塊的FSIN插頭,或者將所有的FSIN插頭連接在一起(步驟)。
?注意!我們現(xiàn)在發(fā)的模組已經(jīng)焊了線。
▌連接FSIN/STROBE
如前所述,所有二代的OAK PoE設(shè)備都有一個(gè)帶FSYNC/STROBE信號(hào)的M8 I/O連接器。但是如果你不用這些,你可能需要在設(shè)備的PCB上焊接一條線。大多數(shù)PCB設(shè)計(jì)都是開源的(查看depthai-hardware倉(cāng)庫(kù)),所以你可以很容易地檢查FSIN/STROBE信號(hào)在PCB上的位置。
OAK-FFC-4P FSIN
如上圖所示,在OAK-FFC-4P上,你可以用MXIO6啟用連接FSIN_4LANE和FSIN_2LANE。下面的腳本將同步所有4臺(tái)連接到OAK-FFC-4P的相機(jī)。
補(bǔ)充信息可在這篇帖子里查看。
Series 2 USB OAKs
DM9098板上的FSIN(如OAK-D-S2、OAK-D-W、OAK-D-Pro、OAK-D-Pro-W)
USB OAK-1* FSIN
NG9093板上的FSIN測(cè)試點(diǎn)(如OAK-1、OAK-1-W、OAK-1-Lite、OAK-1-Lite-W、OAK-1-MAX)
OAK-D-Lite FSIN
請(qǐng)注意雙目和RGB沒有連接在一起。
▌相關(guān)示例
參考示例-軟同步
▌參考資料
https://docs.oakchina.cn/en/latest/
https://www.oakchina.cn/selection-guide/
OAK中國(guó)
| OpenCV AI Kit在中國(guó)區(qū)的官方代理商和技術(shù)服務(wù)商
| 追蹤AI技術(shù)和產(chǎn)品新動(dòng)態(tài)
戳「+關(guān)注」獲取最新資訊↗↗
總結(jié)
以上是生活随笔為你收集整理的【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用rdp后parsec报错14003
- 下一篇: 2021CCPC女生专场(山东理工大学