在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-08 22:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

轉載自:雙目測距系列(二)魚眼鏡頭雙目標定及測距
作者:ltshan139

前言

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

標定

標定Calibration包括單目標定和雙目標定,前者的輸出結果主要是內參(3x3矩陣,包括fx,fy以及cx和cy)和畸變系數(1x4矩陣 K1,K2,K3,K4);后者輸出的主要是是外參,即右攝像頭基于左攝像頭的姿態,包括R和T兩個矩陣。
標定一個主要工作就是對著標定板拍圖,標定板最好遍布整個圖像區域,一般20~30張就足夠了。 opencv目前可以對三種pattern的標定板:棋盤格,圓以及非對稱圓來找角點,其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 );

角點正確找到后,就可以開始單目標定,其對應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));

單目標定結束后,接下來就是雙目標定:

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));

這里需要注意的是,雙目標定可以基于前面單目標定出來的內參來直接算R和T,也可以將單目內參作為一個初始值來重新迭代計算出新的內參和R以及T。

對齊

攝像頭內參和外參都有了之后,就可以開始調用下面的API來分別獲得左、右攝像頭新的旋轉矩陣R和內參投影矩陣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,在后面測距的時候就可以調用remap()來對新的測試圖片進行校正。

匹配

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

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已經將匹配算法 封裝的很好了,唯一需要注意的就是參數值得調節會帶來不一樣得匹配效果。常見的需要調節的參數有:

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

測距

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



推薦閱讀



更多海思AI芯片方案學習筆記歡迎關注海思AI芯片方案學習

審核編輯:符乾江

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • AI
    AI
    +關注

    關注

    88

    文章

    34990

    瀏覽量

    278622
  • 深度學習
    +關注

    關注

    73

    文章

    5560

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    雙目視覺在智能駕駛領域的應用

    圍繞“雙目智駕應用”,我們將推出系列文章深入解析雙目視覺如何跨越技術鴻溝,在中國智駕的沃土上生根發芽,探索其賦能未來出行的無限可能。
    的頭像 發表于 07-09 16:21 ?106次閱讀

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

    、超聲波水下測距換能器的工作原理 超聲波在水中的傳播速度是相對穩定的,大約為1500米/秒。當換能器發射出超聲波信號后,信號會在水中傳播,遇到目標物體后反射回來。換能器接收到反射信號后,通過計算信號
    發表于 06-26 10:43

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

    UnitMiniToF-90°是一款迷你ToF測距單元,集成VL53L0X激光測距模塊,通過將激光發射模塊旋轉90°實現水平前向25°視場探測,可測量3至200cm范圍內目標,測量精度±
    的頭像 發表于 05-30 16:15 ?407次閱讀
    新品 | Unit Mini ToF-90°,迷你TOF<b class='flag-5'>測距</b>單元

    Nordic測距介紹

    藍牙是目前使用最為廣泛的有源物聯網連接技術。 藍牙測距有著廣泛的目標市場和應用: 家庭:物品查找、寵物追蹤 商業:資產跟蹤,庫存管理 汽車:無鑰匙進入,遠程遙控 目前的藍牙定位主要使用的技術
    發表于 05-28 16:49

    UWB 定位測距

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

    亮源激光發布5km激光測距模組,開創測距新技術紀元

    在激光測距技術日新月異的今天,亮源激光再次引領行業潮流,隆重推出全新研發的LSP-LRS-0510F鉺玻璃激光測距模組。該模組具備5公里的超長測距能力,同時實現了精度與穩定性的大幅提升,為瞄準
    的頭像 發表于 01-20 14:31 ?543次閱讀

    毫米波雷達如何提高測距精度

    毫米波雷達提高測距精度的方法可以從多個方面入手,以下是一些主要的方法: 一、改進信號處理技術 采用高級計算機算法 : 在目標檢測和跟蹤等方面,高級的計算機算法可以實現目標的精確定位、精準跟蹤,并且
    的頭像 發表于 12-03 17:33 ?2116次閱讀

    谷東科技發布兩款“AI+AR”眼鏡

    近日,谷東科技正式推出了兩款創新的“AI+AR”眼鏡產品,分別是全彩雙目波導分體式AI+AR眼鏡Star1和全新AI一體機眼鏡Star1S。 據悉,Star1S作為AR一體機,采用了先
    的頭像 發表于 12-02 10:19 ?1130次閱讀

    BLE藍牙5.1模塊在高爾夫測距儀上的應用

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

    UWB模塊的測距精度分析

    隨著物聯網(IoT)和工業4.0的發展,對精確測距和定位的需求日益增長。超寬帶(UWB)技術因其獨特的優勢,成為實現高精度測距的關鍵技術之一。 超寬帶技術概述 超寬帶技術是一種無線通信技術,其特點是
    的頭像 發表于 10-31 13:52 ?1178次閱讀

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

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

    激光測距傳感器怎么接線

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

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

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

    激光測距傳感器的缺點有哪些

    激光測距傳感器是一種利用激光技術進行距離測量的傳感器,具有測量速度快、精度高、抗干擾能力強等優點,在工業、科研、軍事等領域得到了廣泛應用。但是,激光測距傳感器也存在一些缺點,以下是對這些缺點的分析
    的頭像 發表于 08-29 16:01 ?1373次閱讀

    激光測距傳感器的工作原理是什么?

    激光測距傳感器是一種利用激光技術進行距離測量的高精度儀器。它具有測量速度快、精度高、抗干擾能力強等優點,廣泛應用于工業、科研、軍事等領域。 一、激光測距傳感器的工作原理 激光測距傳感器的基本原理
    的頭像 發表于 08-29 15:58 ?1717次閱讀
    主站蜘蛛池模板: 性生大片一级毛片免费观看 | 久久精品亚洲精品国产欧美 | 在线免费看黄的网站 | 成片免费的禁v影片 | 看片在线 | 午夜看片网 | 黑人影院 | 99精品国产在热久久 | 99热久久国产精品 | 一级精品视频 | 中文日产国产精品久久 | 天天射天天操天天色 | 国产一线在线观看 | 一级片在线免费 | 欧美专区一区二区三区 | 中日韩精品视频在线观看 | 亚洲国产欧美日韩一区二区三区 | 成人的天堂视频一区二区三区 | 成人亚洲网 | 乌克兰一级毛片 | 在线capcom超级碰碰 | 五月花亚洲 | 性色综合 | h黄视频 | 日日摸夜夜爽 | 男人日女人免费视频 | 明日花绮罗snis-862在线播放 | 一级特黄aaa大片免色 | 天天干天天拍天天射 | 成人网在线看 | 97影院3 | 毛片官网| 成人深夜视频 | 综合色影院| 免费的很黄很色的床小视频 | 俺去啦在线视频 | 全国最大色成免费网站 | 欧美ccc| 特级做a爰片毛片免费看 | 女人张开腿 让男人桶视频 女人张开腿等男人桶免费视频 | 国内色综合精品视频在线 |