chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

雙目測(cè)距系列(二):魚(yú)眼鏡頭雙目標(biāo)定及測(cè)距

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-08 22:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

轉(zhuǎn)載自:雙目測(cè)距系列(二)魚(yú)眼鏡頭雙目標(biāo)定及測(cè)距
作者:ltshan139

前言

這幾天把基于opencv C++ api將魚(yú)眼鏡頭的雙目標(biāo)定以及測(cè)距功能實(shí)現(xiàn)完畢,效果還可以,至少對(duì)齊得非常棒。 這里把其流程及其關(guān)鍵函數(shù)在這里總結(jié)一下。
對(duì)于雙目標(biāo)定而言,opencv一共支持兩種模型:普通針孔相機(jī)模型和魚(yú)眼相機(jī)模型fisheye。后者是opencv3.0后才開(kāi)始支持的。從使用角度講,它倆主要差別就在于畸變系數(shù)不一樣。
雙目測(cè)距流程一共分為四大步:標(biāo)定,對(duì)齊,匹配以及測(cè)距。這點(diǎn)對(duì)于普通攝像頭模型和魚(yú)眼模型都適用。下面就基于魚(yú)眼攝像頭模型來(lái)講解各個(gè)步驟具體內(nèi)容。

標(biāo)定

標(biāo)定Calibration包括單目標(biāo)定和雙目標(biāo)定,前者的輸出結(jié)果主要是內(nèi)參(3x3矩陣,包括fx,fy以及cx和cy)和畸變系數(shù)(1x4矩陣 K1,K2,K3,K4);后者輸出的主要是是外參,即右攝像頭基于左攝像頭的姿態(tài),包括R和T兩個(gè)矩陣。
標(biāo)定一個(gè)主要工作就是對(duì)著標(biāo)定板拍圖,標(biāo)定板最好遍布整個(gè)圖像區(qū)域,一般20~30張就足夠了。 opencv目前可以對(duì)三種pattern的標(biāo)定板:棋盤(pán)格,圓以及非對(duì)稱圓來(lái)找角點(diǎn),其API如下所示:

    case Settings::CHESSBOARD:
        found = findChessboardCorners( view, s.boardSize, pointBuf, chessBoardFlags);
        break;
    case Settings::CIRCLES_GRID:
        found = findCirclesGrid( view, s.boardSize, pointBuf );
        break;
    case Settings::ASYMMETRIC_CIRCLES_GRID:
        found = findCirclesGrid( view, s.boardSize, pointBuf, CALIB_CB_ASYMMETRIC_GRID );

角點(diǎn)正確找到后,就可以開(kāi)始單目標(biāo)定,其對(duì)應(yīng)API為:

CV_EXPORTS_W double calibrate(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, const Size& image_size,
    InputOutputArray K, InputOutputArray D, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, int flags = 0,
        TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 100, DBL_EPSILON));

單目標(biāo)定結(jié)束后,接下來(lái)就是雙目標(biāo)定:

CV_EXPORTS_W double stereoCalibrate(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints1, InputArrayOfArrays imagePoints2,
                              InputOutputArray K1, InputOutputArray D1, InputOutputArray K2, InputOutputArray D2, Size imageSize,
                              OutputArray R, OutputArray T, int flags = fisheye::CALIB_FIX_INTRINSIC,
                              TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 100, DBL_EPSILON));

這里需要注意的是,雙目標(biāo)定可以基于前面單目標(biāo)定出來(lái)的內(nèi)參來(lái)直接算R和T,也可以將單目?jī)?nèi)參作為一個(gè)初始值來(lái)重新迭代計(jì)算出新的內(nèi)參和R以及T。

對(duì)齊

攝像頭內(nèi)參和外參都有了之后,就可以開(kāi)始調(diào)用下面的API來(lái)分別獲得左、右攝像頭新的旋轉(zhuǎn)矩陣R和內(nèi)參投影矩陣P。

CV_EXPORTS_W void stereoRectify(InputArray K1, InputArray D1, InputArray K2, InputArray D2, const Size &imageSize, InputArray R, InputArray tvec,
    OutputArray R1, OutputArray R2, OutputArray P1, OutputArray P2, OutputArray Q, int flags, const Size &newImageSize = Size(),
    double balance = 0.0, double fov_scale = 1.0);

緊接著是基于新的矩陣來(lái)生成左右攝像頭的映射表left_mapx, left_mapy, right_mapx以及right_mapy。

CV_EXPORTS_W void initUndistortRectifyMap(InputArray K, InputArray D, InputArray R, InputArray P,
    const cv::Size& size, int m1type, OutputArray map1, OutputArray map2);

有了映射表mapx和mapy,在后面測(cè)距的時(shí)候就可以調(diào)用remap()來(lái)對(duì)新的測(cè)試圖片進(jìn)行校正。

匹配

匹配是相對(duì)最耗時(shí)的步驟,即使前面左右圖像對(duì)齊后,只需要在行上來(lái)匹配。常用的匹配算法有SGBM,BM等等。相對(duì)來(lái)講,SGBM兼顧了速度和準(zhǔn)確度,因而用的比較多。

Ptr sgbm = StereoSGBM::create(0, 16, 3);
sgbm->setPreFilterCap(63);
sgbm->setBlockSize(pParas->sgbmWindowSize);
int channel_cnt = left_rectify_img.channels();
sgbm->setP1(8 * channel_cnt * pParas->sgbmWindowSize * pParas->sgbmWindowSize);
sgbm->setP2(32 * channel_cnt * pParas->sgbmWindowSize * pParas->sgbmWindowSize);
sgbm->setMinDisparity(0);
sgbm->setNumDisparities(pParas->NumDisparities);
sgbm->setUniquenessRatio(pParas->UniquenessRatio);
sgbm->setSpeckleWindowSize(101);
sgbm->setSpeckleRange(10);
sgbm->setDisp12MaxDiff(-1);
sgbm->setMode(StereoSGBM::MODE_SGBM);

opencv已經(jīng)將匹配算法 封裝的很好了,唯一需要注意的就是參數(shù)值得調(diào)節(jié)會(huì)帶來(lái)不一樣得匹配效果。常見(jiàn)的需要調(diào)節(jié)的參數(shù)有:

    paras.sgbmWindowSize = 7;
    paras.NumDisparities = 16 * 20;
    paras.UniquenessRatio = 12;

測(cè)距

匹配完成就能得到視差圖disparity map。 有了視差圖,每個(gè)點(diǎn)的Z方向上深度值獲取就變得簡(jiǎn)單了。通過(guò)下面公式:
Z = B * fx / d
B是兩個(gè)攝像頭之間的距離,其值等于外參平移矩陣X方向上的絕對(duì)值,即abs(T.at(0,0))。
fx則為左攝像頭內(nèi)參矩陣的第一個(gè)值m_fisheye_intrinsicsL.val[0]
d則為每個(gè)像素在左右攝像頭像素坐標(biāo)系上X方向的差,由前面匹配步驟所得。



推薦閱讀



更多海思AI芯片方案學(xué)習(xí)筆記歡迎關(guān)注海思AI芯片方案學(xué)習(xí)

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    91

    文章

    39126

    瀏覽量

    299768
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5594

    瀏覽量

    124156
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    tof測(cè)距傳感器的主要應(yīng)用場(chǎng)景

    ToF(Time-of-Flight,飛行時(shí)間)測(cè)距傳感器的核心原理是通過(guò)發(fā)射調(diào)制后的近紅外光,檢測(cè)光信號(hào)經(jīng)目標(biāo)反射后的往返時(shí)間差,計(jì)算傳感器與目標(biāo)的距離,并可輸出深度圖像。其具備測(cè)距
    的頭像 發(fā)表于 01-21 14:09 ?410次閱讀
    tof<b class='flag-5'>測(cè)距</b>傳感器的主要應(yīng)用場(chǎng)景

    新品 | Chain ToF Unit ChainBus,激光測(cè)距節(jié)點(diǎn) Chain系列通信協(xié)議轉(zhuǎn)換單元

    ChainToFChainToF是M5StackChain系列中的一款激光測(cè)距傳感器節(jié)點(diǎn)。設(shè)備內(nèi)置VL53L0C激光測(cè)距模塊,支持3~200cm測(cè)距范圍,測(cè)量精度±3%,適用于短距離的
    的頭像 發(fā)表于 01-09 17:52 ?126次閱讀
    新品 | Chain ToF Unit ChainBus,激光<b class='flag-5'>測(cè)距</b>節(jié)點(diǎn) Chain<b class='flag-5'>系列</b>通信協(xié)議轉(zhuǎn)換單元

    無(wú)人機(jī)激光測(cè)距傳感器使用指南

    無(wú)人機(jī)激光測(cè)距傳感器(核心基于 ToF 或脈沖激光測(cè)距原理)是無(wú)人機(jī)實(shí)現(xiàn)定高飛行、避障導(dǎo)航、精準(zhǔn)測(cè)繪、目標(biāo)定位的關(guān)鍵部件,其使用需圍繞 “選型適配→安裝調(diào)試→功能配置→數(shù)據(jù)處理→場(chǎng)景優(yōu)化” 五大核心
    的頭像 發(fā)表于 01-09 13:41 ?680次閱讀
    無(wú)人機(jī)激光<b class='flag-5'>測(cè)距</b>傳感器使用指南

    雙目視覺(jué)是如何實(shí)現(xiàn)深度估計(jì)的?

    [首發(fā)于智駕最前沿微信公眾號(hào)]自動(dòng)駕駛的純視覺(jué)方案中,單目攝像頭因無(wú)法直接感知深度,在環(huán)境理解上存在根本局限,雙目視覺(jué)技術(shù)在此需求下應(yīng)運(yùn)而生。它通過(guò)模擬人眼,利用雙攝像頭的視差來(lái)推算距離,將維圖像
    的頭像 發(fā)表于 12-31 09:45 ?390次閱讀
    <b class='flag-5'>雙目</b>視覺(jué)是如何實(shí)現(xiàn)深度估計(jì)的?

    自動(dòng)駕駛既然有雙目攝像頭了,為什么還要三目攝像頭?

    [首發(fā)于智駕最前沿微信公眾號(hào)]在自動(dòng)駕駛領(lǐng)域,純視覺(jué)方案一直受到不少人的認(rèn)可。雙目攝像頭由于模擬了人眼的工作方式,能夠通過(guò)視差計(jì)算還原三維信息,在距離判斷和空間感知上具有天然優(yōu)勢(shì),因此被廣泛應(yīng)用于純
    的頭像 發(fā)表于 12-09 08:59 ?833次閱讀
    自動(dòng)駕駛既然有<b class='flag-5'>雙目</b>攝像頭了,為什么還要三目攝像頭?

    有沒(méi)有推薦的激光測(cè)距傳感器

    有推介的國(guó)內(nèi)稍微頭部一點(diǎn)的激光測(cè)距傳感器品牌推介嘛,需要點(diǎn)對(duì)面測(cè)距
    發(fā)表于 11-13 11:54

    車(chē)載雙目攝像頭如何“看見(jiàn)”世界?

    [首發(fā)于智駕最前沿微信公眾號(hào)]想要讓車(chē)輛知道前方有什么、距離多遠(yuǎn)、是否可以靠近,首先要做的是讓其“看”清楚環(huán)境。在眾多車(chē)載感知硬件中,與人類(lèi)看到世界最類(lèi)似的一個(gè)感知硬件便是車(chē)載雙目攝像頭了。 圖片
    的頭像 發(fā)表于 11-13 09:17 ?1235次閱讀
    車(chē)載<b class='flag-5'>雙目</b>攝像頭如何“看見(jiàn)”世界?

    IMU+多相機(jī)高速聯(lián)合自動(dòng)標(biāo)定方案

    目、雙目魚(yú)眼、長(zhǎng)焦、TOF任意混搭,模組更換后自動(dòng)識(shí)別。 標(biāo)定結(jié)果可一鍵推送至MES/ERP,JSON/YAML/TXT格式全開(kāi)放,后續(xù)OTA升級(jí)直接調(diào)用。 無(wú)需獨(dú)立氣源或冷卻水;年維護(hù)費(fèi)僅為進(jìn)口設(shè)備的1/10。
    發(fā)表于 10-23 14:04

    K230如何在CANMV IDE中實(shí)現(xiàn)鏡頭參數(shù)標(biāo)定?

    期待結(jié)果和實(shí)際結(jié)果 在單目攝像頭測(cè)距中需要實(shí)現(xiàn)鏡頭的畸變參數(shù)標(biāo)定和去畸變,在正常python中使用的是opencv庫(kù),但在CANMV IDE中沒(méi)有這個(gè)庫(kù),我應(yīng)該如何使用現(xiàn)有API進(jìn)行攝像頭去畸變
    發(fā)表于 08-14 08:22

    光子精密雙目3D線激光輪廓測(cè)量?jī)x,擺脫視覺(jué)盲區(qū),1臺(tái)更比2臺(tái)強(qiáng)!

    光子精密雙目3D線激光輪廓測(cè)量?jī)x(GL-8160D),在GL-8000系列的基礎(chǔ)上創(chuàng)新升級(jí)。GL-8160D采用全新雙目單線設(shè)計(jì),突破傳統(tǒng)3D視覺(jué)檢測(cè)限制,而且不受外部拼接標(biāo)定誤差影響
    的頭像 發(fā)表于 07-16 17:21 ?1274次閱讀
    光子精密<b class='flag-5'>雙目</b>3D線激光輪廓測(cè)量?jī)x,擺脫視覺(jué)盲區(qū),1臺(tái)更比2臺(tái)強(qiáng)!

    雙目視覺(jué)在智能駕駛領(lǐng)域的應(yīng)用

    圍繞“雙目智駕應(yīng)用”,我們將推出系列文章深入解析雙目視覺(jué)如何跨越技術(shù)鴻溝,在中國(guó)智駕的沃土上生根發(fā)芽,探索其賦能未來(lái)出行的無(wú)限可能。
    的頭像 發(fā)表于 07-09 16:21 ?1195次閱讀

    超聲波水下測(cè)距換能器:探索水下世界的“千里眼”

    。 、超聲波水下測(cè)距換能器的工作原理 超聲波在水中的傳播速度是相對(duì)穩(wěn)定的,大約為1500米/秒。當(dāng)換能器發(fā)射出超聲波信號(hào)后,信號(hào)會(huì)在水中傳播,遇到目標(biāo)物體后反射回來(lái)。換能器接收到反射信號(hào)后,通過(guò)計(jì)算信號(hào)
    發(fā)表于 06-26 10:43

    新品 | Unit Mini ToF-90°,迷你TOF測(cè)距單元

    UnitMiniToF-90°是一款迷你ToF測(cè)距單元,集成VL53L0X激光測(cè)距模塊,通過(guò)將激光發(fā)射模塊旋轉(zhuǎn)90°實(shí)現(xiàn)水平前向25°視場(chǎng)探測(cè),可測(cè)量3至200cm范圍內(nèi)目標(biāo),測(cè)量精度±
    的頭像 發(fā)表于 05-30 16:15 ?918次閱讀
    新品 | Unit Mini ToF-90°,迷你TOF<b class='flag-5'>測(cè)距</b>單元

    Nordic測(cè)距介紹

    藍(lán)牙是目前使用最為廣泛的有源物聯(lián)網(wǎng)連接技術(shù)。 藍(lán)牙測(cè)距有著廣泛的目標(biāo)市場(chǎng)和應(yīng)用: 家庭:物品查找、寵物追蹤 商業(yè):資產(chǎn)跟蹤,庫(kù)存管理 汽車(chē):無(wú)鑰匙進(jìn)入,遠(yuǎn)程遙控 目前的藍(lán)牙定位主要使用的技術(shù)
    發(fā)表于 05-28 16:49

    UWB 定位測(cè)距

    開(kāi)發(fā)板概述 核心芯片 :基于Decawave的DW3000芯片,主控為nrf52832,集成板載天線和電源管理模塊。 定位性能 :支持單向測(cè)距(SWR)、雙向測(cè)距(TWR)、TDOA定位方案
    發(fā)表于 05-12 09:36