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