国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

計(jì)算機(jī)視覺(jué):OAK多相機(jī)硬件同步拍攝

這篇具有很好參考價(jià)值的文章主要介紹了計(jì)算機(jī)視覺(jué):OAK多相機(jī)硬件同步拍攝。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

傳感器同步

目前主要有兩種方法來(lái)同步不同傳感器的信息(幀、IMU數(shù)據(jù)包、ToF等):

  • 硬件同步(基于硬件信號(hào)觸發(fā),同步精度較高,需要硬件支持)
  • 軟件同步(基于時(shí)間戳或序列號(hào)同步,同步精度較低,無(wú)需硬件支持)

此博客重點(diǎn)介紹硬件同步,它允許在多個(gè)相機(jī)傳感器之間精確同步,并可能與其他硬件同步,如閃光燈LED、外部IMU或其他相機(jī)。

硬件同步信號(hào)

FSYNC信號(hào)

FSYNC/FSIN(幀同步)信號(hào)是一個(gè)脈沖,在開(kāi)始捕獲每個(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。將一個(gè)信號(hào)發(fā)生器連接到所有的FSIN引腳上,這樣相機(jī)將根據(jù)信號(hào)發(fā)生器的觸發(fā)信號(hào)捕獲每一幀圖像。

STROBE信號(hào)

STROBE信號(hào)是圖像傳感器的輸出,在圖像傳感器的曝光期間是有效的(高電平)。它可以用來(lái)驅(qū)動(dòng)外部的LED照明,所以照明只在曝光時(shí)間內(nèi)激活,而不是持續(xù)開(kāi)啟,這將減少功耗和發(fā)熱。

在OAK-D-Pro系列相機(jī)上使用STROBE信號(hào)(它有板載照明紅外LED和紅外激光點(diǎn)陣發(fā)射器)來(lái)驅(qū)動(dòng)激光/LED。

硬件接線

硬件設(shè)備

我們使用的硬件設(shè)備如下:
OV9782廣角相機(jī) × 4
OAK-FFC-4P攝像頭模組 × 1

OV9782廣角相機(jī)產(chǎn)品特點(diǎn):

  • CMOS感光
  • 全局快門(mén)
  • 最大幀率:120 FPS
  • 最大分辨率: 1MP(1280×800)
  • DFOV:89.5°
  • HFOV:80°
  • VFOV:55°
  • 對(duì)焦范圍:固定焦點(diǎn):19.6 cm – ∞

OAK-FFC-4P攝像頭模組屬于分體式OAK,可以通過(guò)軟排線接入4個(gè)獨(dú)立的MIPI相機(jī)模塊,其產(chǎn)品特點(diǎn)有:

  • 4T算力;
  • 4K H.265推流;
  • 厘米級(jí)測(cè)量精度;
  • 支持的平臺(tái)和語(yǔ)言:Windows10、Ubuntu、樹(shù)莓派、linux、macOS、Jetson、Python、C++、ROS、Android(需depthai≥2.16.0)。

接線步驟

1、首先,使用跳線將每根電纜上的 FSIN 測(cè)試點(diǎn)連接到相應(yīng)相機(jī)板上的 FSIN 引腳(也可以直接將相機(jī)板上的所有FSIN引腳直接相連):
硬件同步,計(jì)算機(jī)視覺(jué),計(jì)算機(jī)視覺(jué),人工智能,硬件同步,相機(jī)
2、然后,將4個(gè)OV9782廣角相機(jī)通過(guò)排線連接到OAK-FFC-4P攝像頭模組:
硬件同步,計(jì)算機(jī)視覺(jué),計(jì)算機(jī)視覺(jué),人工智能,硬件同步,相機(jī)
3、最后,給攝像頭模組供電,并通過(guò)USB接入電腦PC中。

軟件驅(qū)動(dòng)

編寫(xiě)測(cè)試代碼和打印設(shè)備時(shí)間戳,camera_driver.py文件如下:

import depthai as dai
import time
import cv2
import collections

set_fps = 30

class FPS:
    def __init__(self, window_size=30):
        self.dq = collections.deque(maxlen=window_size)
        self.fps = 0

    def update(self, timestamp=None):
        if timestamp == None: timestamp = time.monotonic()
        count = len(self.dq)
        if count > 0: self.fps = count / (timestamp - self.dq[0])
        self.dq.append(timestamp)

    def get(self):
        return self.fps

cam_list = ['rgb', 'left', 'right', 'camd']
cam_socket_opts = {
    'rgb'  : dai.CameraBoardSocket.RGB,   # Or CAM_A
    'left' : dai.CameraBoardSocket.LEFT,  # Or CAM_B
    'right': dai.CameraBoardSocket.RIGHT, # Or CAM_C
    'camd' : dai.CameraBoardSocket.CAM_D,
}

pipeline = dai.Pipeline()
cam = {}
xout = {}
for c in cam_list:
    cam[c] = pipeline.create(dai.node.MonoCamera)
    cam[c].setResolution(dai.MonoCameraProperties.SensorResolution.THE_800_P)
    if c == 'rgb':
        cam[c].initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.OUTPUT)
    else:
        cam[c].initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT)
    cam[c].setBoardSocket(cam_socket_opts[c])
    xout[c] = pipeline.create(dai.node.XLinkOut)
    xout[c].setStreamName(c)
    cam[c].out.link(xout[c].input)


config = dai.Device.Config()
config.board.gpio[6] = dai.BoardConfig.GPIO(dai.BoardConfig.GPIO.OUTPUT,
                                            dai.BoardConfig.GPIO.Level.HIGH)

with dai.Device(config) as device:
    device.startPipeline(pipeline)
    q = {}
    fps_host = {}  # FPS computed based on the time we receive frames in app
    fps_capt = {}  # FPS computed based on capture timestamps from device
    for c in cam_list:
        q[c] = device.getOutputQueue(name=c, maxSize=1, blocking=False)
        cv2.namedWindow(c, cv2.WINDOW_NORMAL)
        cv2.resizeWindow(c, (640, 480))
        fps_host[c] = FPS()
        fps_capt[c] = FPS()

    while True:
        frame_list = []
        for c in cam_list:
            pkt = q[c].tryGet()
            if pkt is not None:
                fps_host[c].update()
                fps_capt[c].update(pkt.getTimestamp().total_seconds())
                print(c+":",pkt.getTimestampDevice())
                frame = pkt.getCvFrame()
                cv2.imshow(c, frame)
        print("-------------------------------")
        # print("\rFPS:",
        #       *["{:6.2f}|{:6.2f}".format(fps_host[c].get(), fps_capt[c].get()) for c in cam_list],
        #       end='', flush=True)

        key = cv2.waitKey(1)
        if key == ord('q'):
            break

運(yùn)行

python camera_driver.py

參考文獻(xiàn)

1、通過(guò)硬件觸發(fā)信號(hào)實(shí)現(xiàn)OAK多相機(jī)之間的同步拍攝
2、官方文檔:硬件同步
3、官方文檔:oak-ffc-4p
4、原理圖
5、oak_deptahi_external_trigger_fsync.py文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-698993.html

#!/usr/bin/env python3
import depthai as dai
import cv2
import time

pipeline = dai.Pipeline()

camRgb = pipeline.create(dai.node.ColorCamera)
camRgb.setColorOrder(dai.ColorCameraProperties.ColorOrder.RGB)
camRgb.setIspScale(2,3)
camRgb.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT)
camRgb.initialControl.setExternalTrigger(4,3)

xoutRgb = pipeline.create(dai.node.XLinkOut)
xoutRgb.setStreamName("color")
camRgb.isp.link(xoutRgb.input)

monoLeft = pipeline.create(dai.node.MonoCamera)
monoLeft.setResolution(dai.MonoCameraProperties.SensorResolution.THE_720_P)
monoLeft.setBoardSocket(dai.CameraBoardSocket.LEFT)
monoLeft.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT)
monoLeft.initialControl.setExternalTrigger(4,3)

xoutLeft = pipeline.create(dai.node.XLinkOut)
xoutLeft.setStreamName("left")
monoLeft.out.link(xoutLeft.input)

monoRight = pipeline.createMonoCamera()
monoRight.setResolution(dai.MonoCameraProperties.SensorResolution.THE_720_P)
monoRight.setBoardSocket(dai.CameraBoardSocket.RIGHT)
monoRight.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT)
monoRight.initialControl.setExternalTrigger(4,3)

xoutRight = pipeline.create(dai.node.XLinkOut)
xoutRight.setStreamName("right")
monoRight.out.link(xoutRight.input)

# Connect to device with pipeline
with dai.Device(pipeline) as device:
    arr = ['left', 'right', 'color']
    queues = {}
    frames = {}

    for name in arr:
        queues[name] = device.getOutputQueue(name)

    print("Starting...")

    while True:
        for name in arr:
            if queues[name].has():
                frames[name]=queues[name].get().getCvFrame()

        for name, frame in frames.items():
            cv2.imshow(name, frame)

        key = cv2.waitKey(1)
        if key == ord('q'):
            break

到了這里,關(guān)于計(jì)算機(jī)視覺(jué):OAK多相機(jī)硬件同步拍攝的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【計(jì)算機(jī)視覺(jué)】相機(jī)

    【計(jì)算機(jī)視覺(jué)】相機(jī)

    我的《計(jì)算機(jī)視覺(jué)》系列參考UC Berkeley的CS180課程,PPT可以在課程主頁(yè)看到。 成像原理 想要拍一張相片,直接拿膠片對(duì)著景物肯定是不行的,因?yàn)槲矬w的每一點(diǎn)發(fā)出的光線都會(huì)到達(dá)膠片上的每一點(diǎn),從而導(dǎo)致膠片上的影像非常模糊,甚至什么都看不出來(lái)。因此,我們想建立景

    2024年02月08日
    瀏覽(25)
  • 計(jì)算機(jī)視覺(jué)的相機(jī)選型

    計(jì)算機(jī)視覺(jué)的相機(jī)選型

    #你一般什么時(shí)候會(huì)用到GPT?# 目前市面上的工業(yè)相機(jī)大多是基于CCD(ChargeCoupled Device)或CMOS(Complementary Metal Oxide Semiconductor)芯片的相機(jī)。一般CCD制造工藝更加復(fù)雜,也會(huì)更貴一點(diǎn)! 1、CCD工業(yè)相機(jī)主要應(yīng)用在運(yùn)動(dòng)物體的圖像提取,不過(guò)因?yàn)镃MOS相機(jī)的成本低,所以應(yīng)用也比較廣

    2024年02月08日
    瀏覽(22)
  • 計(jì)算機(jī)視覺(jué)基礎(chǔ)(7)——相機(jī)基礎(chǔ)

    計(jì)算機(jī)視覺(jué)基礎(chǔ)(7)——相機(jī)基礎(chǔ)

    從這一節(jié)開(kāi)始,我們來(lái)學(xué)習(xí) 幾何視覺(jué) 。中層視覺(jué)包括 相機(jī)模型、單目幾何視覺(jué)、對(duì)極幾何視覺(jué)和多目立體視覺(jué)等 。在學(xué)習(xí)幾何視覺(jué)最開(kāi)始,我們先來(lái)學(xué)習(xí)一下 相機(jī)模型 ,了解相機(jī)的基本原理,了解相機(jī)如何記錄影像。 相機(jī)用于生成 二維的圖像 ,圖像最小的單元被稱為

    2024年02月04日
    瀏覽(27)
  • 計(jì)算機(jī)視覺(jué):OpenCV相機(jī)標(biāo)定

    計(jì)算機(jī)視覺(jué):OpenCV相機(jī)標(biāo)定

    針孔照相機(jī)模型是一種經(jīng)典的相機(jī)模型,它將相機(jī)視為一個(gè)針孔,將場(chǎng)景中的點(diǎn)投影到成像平面上。在這個(gè)模型中,相機(jī)的 內(nèi)參和外參 描述了相機(jī)的幾何形狀和相機(jī)的姿態(tài)。 相機(jī)的 內(nèi)參矩陣 描述了相機(jī)的內(nèi)部幾何形狀,包括相機(jī)的焦距、像素尺寸和像素坐標(biāo)原點(diǎn)。相機(jī)的

    2024年01月19日
    瀏覽(24)
  • 計(jì)算機(jī)視覺(jué)(相機(jī)標(biāo)定;內(nèi)參;外參;畸變系數(shù))

    計(jì)算機(jī)視覺(jué)(相機(jī)標(biāo)定;內(nèi)參;外參;畸變系數(shù))

    目錄 一、預(yù)備知識(shí) 1、坐標(biāo)系變換過(guò)程(相機(jī)成像過(guò)程) (1)相機(jī)坐標(biāo)系轉(zhuǎn)換為圖像坐標(biāo)系(透視投影變換遵循的是針孔成像原理) (2)齊次坐標(biāo)的引入原因:(為什么引入齊次坐標(biāo)???) 2、內(nèi)參與外參矩陣的構(gòu)成 3、畸變參數(shù) 二、相機(jī)標(biāo)定 1、張正友標(biāo)定法(光學(xué)標(biāo)

    2024年02月07日
    瀏覽(23)
  • 【Matlab】相機(jī)標(biāo)定(計(jì)算機(jī)視覺(jué)工具箱)

    【Matlab】相機(jī)標(biāo)定(計(jì)算機(jī)視覺(jué)工具箱)

    圖像處理和計(jì)算機(jī)視覺(jué)是Matlab的一個(gè)主要應(yīng)用領(lǐng)域,這部分包括4個(gè)工具箱——圖像處理、計(jì)算機(jī)視覺(jué)、雷達(dá)、醫(yī)學(xué)圖像。由于視覺(jué)的東西容易呈現(xiàn),所以先從計(jì)算機(jī)視覺(jué)工具箱學(xué)起。 官方文檔對(duì)計(jì)算機(jī)視覺(jué)工具箱的介紹如下:設(shè)計(jì)和測(cè)試計(jì)算機(jī)視覺(jué)、3D 視覺(jué)和視頻處理系統(tǒng)

    2024年02月05日
    瀏覽(28)
  • 【計(jì)算機(jī)視覺(jué)】相機(jī)基本知識(shí)(還在更新)

    【計(jì)算機(jī)視覺(jué)】相機(jī)基本知識(shí)(還在更新)

    面陣相機(jī)則主要采用的 連續(xù)的、面狀掃描光線 來(lái)實(shí)現(xiàn)產(chǎn)品的檢測(cè); 線陣相機(jī)即利用 單束掃描光 來(lái)進(jìn)行物體掃描的工作的。 (1)面陣CCD工業(yè)相機(jī): 優(yōu)點(diǎn) :應(yīng)用面較廣,如面積、形狀、尺寸、位置,甚至溫度等的測(cè)量。面陣CCD的優(yōu)點(diǎn)是可以獲取測(cè)量圖像直觀,二維圖像信息

    2024年02月12日
    瀏覽(27)
  • 【計(jì)算機(jī)視覺(jué)】OpenCV實(shí)現(xiàn)單目相機(jī)標(biāo)定

    文章目錄 單目相機(jī)標(biāo)定(基于Python OpenCV) 1.上期填坑 2.單目相機(jī)標(biāo)定 2.1 數(shù)據(jù)采集 2.2 角點(diǎn)提取 2.3 參數(shù)求解 2.4 參數(shù)評(píng)估(重投影誤差) 2.5 相機(jī)位姿(棋盤(pán)位姿)可視化 2.6 同Matlab標(biāo)定結(jié)果比較 在開(kāi)始本篇博客之前,先填一下上一篇博客【計(jì)算機(jī)視覺(jué)】基于ORB角點(diǎn)+RANSAC算法實(shí)現(xiàn)圖像

    2023年04月18日
    瀏覽(24)
  • 計(jì)算機(jī)視覺(jué)中的三維重建:基于激光雷達(dá)與相機(jī)的方法

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 近年來(lái),隨著激光雷達(dá)、相機(jī)等傳感器的廣泛應(yīng)用,三維重建技術(shù)逐漸成為熱門(mén)研究方向。三維重建技術(shù)可以從多種角度幫助我們理解世界,并進(jìn)行精準(zhǔn)定位、建筑物三維模型化、環(huán)境規(guī)劃、自然現(xiàn)象研究以及各種各樣的應(yīng)用。 但由于三維重

    2024年03月22日
    瀏覽(31)
  • 計(jì)算機(jī)視覺(jué)算法中的 相機(jī)姿態(tài)估計(jì)(Camera Pose Estimation)

    目錄 ?編輯引言 相機(jī)姿態(tài)估計(jì)的基本概念 相機(jī)姿態(tài)估計(jì)的方法 特征點(diǎn)匹配 直接法 基于深度學(xué)習(xí)的方法 相機(jī)姿態(tài)估計(jì)的應(yīng)用 增強(qiáng)現(xiàn)實(shí)(AR) 機(jī)器人導(dǎo)航 三維重建 結(jié)論 相機(jī)姿態(tài)估計(jì)是計(jì)算機(jī)視覺(jué)領(lǐng)域的重要任務(wù)之一。它涉及到確定相機(jī)在三維空間中的位置和朝向,常用于

    2024年02月05日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包