吴忠躺衫网络科技有限公司

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

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

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

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

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-08 22:11 ? 次閱讀
轉(zhuǎn)載自:雙目測距系列(二)魚眼鏡頭雙目標(biāo)定及測距
作者:ltshan139

前言

這幾天把基于opencv C++ api將魚眼鏡頭的雙目標(biāo)定以及測距功能實(shí)現(xiàn)完畢,效果還可以,至少對齊得非常棒。 這里把其流程及其關(guān)鍵函數(shù)在這里總結(jié)一下。
對于雙目標(biāo)定而言,opencv一共支持兩種模型:普通針孔相機(jī)模型和魚眼相機(jī)模型fisheye。后者是opencv3.0后才開始支持的。從使用角度講,它倆主要差別就在于畸變系數(shù)不一樣。
雙目測距流程一共分為四大步:標(biāo)定,對齊,匹配以及測距。這點(diǎn)對于普通攝像頭模型和魚眼模型都適用。下面就基于魚眼攝像頭模型來講解各個(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è)主要工作就是對著標(biāo)定板拍圖,標(biāo)定板最好遍布整個(gè)圖像區(qū)域,一般20~30張就足夠了。 opencv目前可以對三種pattern的標(biāo)定板:棋盤格,圓以及非對稱圓來找角點(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)正確找到后,就可以開始單目標(biāo)定,其對應(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é)束后,接下來就是雙目標(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)定出來的內(nèi)參來直接算R和T,也可以將單目內(nèi)參作為一個(gè)初始值來重新迭代計(jì)算出新的內(nèi)參和R以及T。

對齊

攝像頭內(nèi)參和外參都有了之后,就可以開始調(diào)用下面的API來分別獲得左、右攝像頭新的旋轉(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);

緊接著是基于新的矩陣來生成左右攝像頭的映射表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,在后面測距的時(shí)候就可以調(diào)用remap()來對新的測試圖片進(jìn)行校正。

匹配

匹配是相對最耗時(shí)的步驟,即使前面左右圖像對齊后,只需要在行上來匹配。常用的匹配算法有SGBM,BM等等。相對來講,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é)會帶來不一樣得匹配效果。常見的需要調(diào)節(jié)的參數(shù)有:

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

測距

匹配完成就能得到視差圖disparity map。 有了視差圖,每個(gè)點(diǎn)的Z方向上深度值獲取就變得簡單了。通過下面公式:
Z = B * fx / d
B是兩個(gè)攝像頭之間的距離,其值等于外參平移矩陣X方向上的絕對值,即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)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    31513

    瀏覽量

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

    關(guān)注

    73

    文章

    5513

    瀏覽量

    121546
收藏 人收藏

    評論

    相關(guān)推薦

    亮源激光發(fā)布5km激光測距模組,開創(chuàng)測距新技術(shù)紀(jì)元

    在激光測距技術(shù)日新月異的今天,亮源激光再次引領(lǐng)行業(yè)潮流,隆重推出全新研發(fā)的LSP-LRS-0510F鉺玻璃激光測距模組。該模組具備5公里的超長測距能力,同時(shí)實(shí)現(xiàn)了精度與穩(wěn)定性的大幅提升,為瞄準(zhǔn)
    的頭像 發(fā)表于 01-20 14:31 ?156次閱讀

    毫米波雷達(dá)如何提高測距精度

    毫米波雷達(dá)提高測距精度的方法可以從多個(gè)方面入手,以下是一些主要的方法: 一、改進(jìn)信號處理技術(shù) 采用高級計(jì)算機(jī)算法 : 在目標(biāo)檢測和跟蹤等方面,高級的計(jì)算機(jī)算法可以實(shí)現(xiàn)目標(biāo)的精確定位、精準(zhǔn)跟蹤,并且
    的頭像 發(fā)表于 12-03 17:33 ?739次閱讀

    BLE藍(lán)牙5.1模塊在高爾夫測距儀上的應(yīng)用

    ,更以無線互聯(lián)的便捷性,讓每一位高爾夫愛好者都能享受到前所未有的揮桿樂趣與競技優(yōu)勢。1、功能需求:高爾夫測距儀的常用功能是快速測量球場上目標(biāo)(如旗桿、沙坑、障礙物)的
    的頭像 發(fā)表于 11-07 16:38 ?259次閱讀
    BLE藍(lán)牙5.1模塊在高爾夫<b class='flag-5'>測距</b>儀上的應(yīng)用

    UWB模塊的測距精度分析

    隨著物聯(lián)網(wǎng)(IoT)和工業(yè)4.0的發(fā)展,對精確測距和定位的需求日益增長。超寬帶(UWB)技術(shù)因其獨(dú)特的優(yōu)勢,成為實(shí)現(xiàn)高精度測距的關(guān)鍵技術(shù)之一。 超寬帶技術(shù)概述 超寬帶技術(shù)是一種無線通信技術(shù),其特點(diǎn)是
    的頭像 發(fā)表于 10-31 13:52 ?511次閱讀

    京朗仕特新一代的測量神奇——防爆激光測距儀YHJ-350J(A)

    快速測量出被測量目標(biāo)的準(zhǔn)確距離,成為目前比較流行測距方式,由于操作簡單測距精準(zhǔn)快速等特點(diǎn)受到了很多朋友的青睞,特別是防爆激光測距儀YHJ-350J(A) 這一款,是能夠?qū)?/div>
    的頭像 發(fā)表于 10-08 14:26 ?269次閱讀
    京朗仕特新一代的測量神奇——防爆激光<b class='flag-5'>測距</b>儀YHJ-350J(A)

    激光測距傳感器怎么接線

    物體反射后,被接收器接收。通過測量激光發(fā)射和接收的時(shí)間差,可以計(jì)算出傳感器與目標(biāo)物體之間的距離。激光測距傳感器的測量精度高、響應(yīng)速度快、抗干擾能力強(qiáng),是一種非常實(shí)用的測量工具。 、激光測距
    的頭像 發(fā)表于 08-29 16:13 ?997次閱讀

    激光測距傳感器輸出什么信號

    基于激光束的時(shí)間飛行原理(TOF, Time of Flight)。通過發(fā)射激光脈沖并接收其反射回來的信號,傳感器能夠計(jì)算激光脈沖的飛行時(shí)間,進(jìn)而確定目標(biāo)物體與傳感器之間的距離。這種測距方式具有高度的精確性和分辨率,廣泛應(yīng)用于工業(yè)自動化、機(jī)
    的頭像 發(fā)表于 08-29 16:08 ?727次閱讀

    測距模組

    我想找尋做測距模組開發(fā)的方案商,合適:2898201328
    發(fā)表于 07-04 11:24

    UWB測距典型應(yīng)用:人車測距防撞

    UWB測距相較UWB定位結(jié)構(gòu)更為簡單:測距基站、測距標(biāo)簽、聲光報(bào)警器(非必選)就構(gòu)成了一組測距單元,無需調(diào)試校準(zhǔn),只需預(yù)先在后臺設(shè)置好距離閾值就能夠便捷部署應(yīng)用。典型應(yīng)用:人車
    的頭像 發(fā)表于 06-28 10:36 ?506次閱讀
    UWB<b class='flag-5'>測距</b>典型應(yīng)用:人車<b class='flag-5'>測距</b>防撞

    XL5300 dTOF測距模塊簡單介紹,加鏡頭后可達(dá)7.6米測距距離,±4%測距精度

    的ToF 采集與處理技術(shù),XL5300模塊可實(shí)現(xiàn)最大 4 米的精確距離測量,加上配套光學(xué)鏡頭后可實(shí)現(xiàn)最大7.6M測量距離,測距精度可以達(dá)到±4%,最大90 Hz快速測距頻率 。 XL5300 dTOF
    的頭像 發(fā)表于 06-19 17:18 ?581次閱讀

    激光測距儀真的好用嗎?

    回來的時(shí)間,精確計(jì)算出目標(biāo)物體的距離。 一、精準(zhǔn)測量 鼎躍激光測距儀(DY-DZE-CJY)利用激光的特性,可以精準(zhǔn)的測量出動態(tài)或靜態(tài)目標(biāo)物體的距離。測量距離可達(dá)600米,測速范圍覆蓋0-300公里/小時(shí)。與傳統(tǒng)的測量工具相比,
    的頭像 發(fā)表于 06-13 18:23 ?1289次閱讀
    激光<b class='flag-5'>測距</b>儀真的好用嗎?

    知語科技激光測距:非接觸式測量的新革命

    知語科技的激光測距技術(shù),相較于傳統(tǒng)的接觸式測距,激光測距無需與被測物體表面接觸,從而避免了因接觸而產(chǎn)生的形變和磨損。這種非接觸式的測量方式,不僅降低了額外的損失,還大大提高了測量的精度和穩(wěn)定性。此外
    的頭像 發(fā)表于 06-11 16:41 ?399次閱讀

    奧比中光正式發(fā)布全新Gemini 330系列雙目3D相機(jī)

    4月29日,奧比中光正式發(fā)布全新Gemini 330系列雙目3D相機(jī),首發(fā)產(chǎn)品包括Gemini 335、Gemini 335L兩款通用型高性能雙目3D相機(jī)。
    的頭像 發(fā)表于 04-30 10:41 ?748次閱讀
    奧比中光正式發(fā)布全新Gemini 330<b class='flag-5'>系列</b><b class='flag-5'>雙目</b>3D相機(jī)

    工業(yè)相機(jī)單目和雙目的區(qū)別

    工業(yè)相機(jī)標(biāo)定的方法根據(jù)工業(yè)相機(jī)的數(shù)目可分為單目標(biāo)定、雙目標(biāo)定Q以及多目標(biāo)定。
    的頭像 發(fā)表于 03-26 16:26 ?2116次閱讀
    工業(yè)相機(jī)單目和<b class='flag-5'>雙目</b>的區(qū)別

    激光測距傳感器的原理和應(yīng)用實(shí)例

    激光測距傳感器原理和應(yīng)用實(shí)例 激光測距傳感器是一種通過激光技術(shù)進(jìn)行距離測量的傳感器。它利用激光器產(chǎn)生的激光束,經(jīng)過目標(biāo)物體后,通過接收器接收反射回來的激光束,通過計(jì)算激光的回程時(shí)間來確定目標(biāo)
    的頭像 發(fā)表于 03-05 16:29 ?1814次閱讀
    大发888大发888官网| 大发888分析| 百家乐推荐怎么看| 百家乐官网赌场论坛在线| 真钱棋牌导航| 大发888玩法| 百家乐荷官培训| 真人版百家乐官网试玩| 百家乐官网技巧心得| 尊龙娱乐网| 大哥大百家乐的玩法技巧和规则| 澳门百家乐皇冠网| 百家乐官网技巧介绍| 澳门百家乐官网下注最低| 环球娱乐城| 大发888体育官网| 3U百家乐的玩法技巧和规则| 百家乐官网是片人的吗| 皇冠备用投注网| 信誉棋牌评测网| 威尼斯人娱乐老牌网站| 百家乐国际娱乐场| 哪个百家乐官网网站信誉好| 百家乐官网娱乐分析软| 油尖旺区| 银河国际娱乐场| 大发888开户博彩吧| 博彩百家乐字谜总汇二丹东| 太阳城百家乐杀祖玛| 罗盘24方位| 大丰收百家乐官网的玩法技巧和规则 | 赌博百家乐官网判断决策| 泰来百家乐官网导航| 银川市| 新世纪娱乐成| 博彩e族论坛| 516棋牌游戏中心 官方版| 大发888线上娱乐城| 免费百家乐追号工具| 鼎龙百家乐的玩法技巧和规则| 百家乐赌场怎么玩|