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

一文讀懂PnP問題及opencv solvePnP、solvePnPRansac函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了一文讀懂PnP問題及opencv solvePnP、solvePnPRansac函數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

solvePnP——Perspective-n-Point

  • 參考資料:一文了解PnP算法 PnP問題

一、位姿求解方法

  1. 對(duì)極約束:2D-2D,通過二維圖像點(diǎn)的對(duì)應(yīng)關(guān)系,恢復(fù)兩幀之間相機(jī)的運(yùn)動(dòng)。
  2. PnP:3D-2D,求解3D到2D點(diǎn)對(duì)運(yùn)動(dòng)的方法。已知3D空間點(diǎn)及其在相機(jī)投影位置時(shí),求解相機(jī)運(yùn)動(dòng)。
  3. ICP:3D-3D,配對(duì)好的3D點(diǎn),已知世界坐標(biāo)系下的3D點(diǎn)和相機(jī)坐標(biāo)系下的3D點(diǎn)。
    solvepnp,opencv,計(jì)算機(jī)視覺,人工智能

二、PnP概念

如果場(chǎng)景的三維結(jié)構(gòu)已知,利用多個(gè)控制點(diǎn)在三維場(chǎng)景中的坐標(biāo)及其在圖像中的透視投影坐標(biāo)即可求解出相機(jī)坐標(biāo)系與世界坐標(biāo)系之間的絕對(duì)位姿關(guān)系,包括絕對(duì)平移向量t以及旋轉(zhuǎn)矩陣R,該類求解方法統(tǒng)稱為N點(diǎn)透視位姿求解 (Perspective-n-Point,PnP問題)。這里的控制點(diǎn)是指準(zhǔn)確知道三維空間坐標(biāo)位置,同時(shí)也知道對(duì)應(yīng)圖像平面坐標(biāo)的點(diǎn)。
solvepnp,opencv,計(jì)算機(jī)視覺,人工智能

已知條件

  • n個(gè)世界坐標(biāo)系3D參考點(diǎn)(3D reference points)坐標(biāo);
  • 與3D點(diǎn)對(duì)應(yīng)的、投影在圖像上相機(jī)圖像坐標(biāo)系的2D參考點(diǎn)(2D referece points)坐標(biāo);并不是相機(jī)坐標(biāo)系相機(jī)像素坐標(biāo)系,注意區(qū)分、
  • 相機(jī)的內(nèi)參K;

求解:

  • 世界坐標(biāo)系與攝像機(jī)坐標(biāo)系之間的位姿變換 :{ R ∣ t }

三、PnP的使用場(chǎng)景

  1. 求解相機(jī)的位姿,一般應(yīng)用于AR,人臉跟蹤等;通常輸入的是物體在世界坐標(biāo)系下的3D點(diǎn)以及這些3D點(diǎn)在圖像上投影的2D點(diǎn),因此求得的是相機(jī)(相機(jī)坐標(biāo)系)相對(duì)于真實(shí)物體(世界坐標(biāo)系)的位姿。
  2. 求取前一幀到當(dāng)前幀的相機(jī)位姿變換,一般用于slam中;通常輸入的是上一幀中的3D點(diǎn)(在上一幀的相機(jī)坐標(biāo)系下表示的點(diǎn))和這些3D點(diǎn)在當(dāng)前幀中投影得到的2D點(diǎn),所以它求得得是當(dāng)前幀相對(duì)于上一幀得位姿變換
    solvepnp,opencv,計(jì)算機(jī)視覺,人工智能

四、OpenCV函數(shù)solvePnP、solvePnPRansac

官網(wǎng)鏈接:OpenCV: Camera Calibration and 3D Reconstruction
solvepnp,opencv,計(jì)算機(jī)視覺,人工智能

  • objectPoints:特征點(diǎn)的世界坐標(biāo),坐標(biāo)值需為float型,不能為double型,可以為mat類型,也可以直接輸入vector
  • imagePoints:特征點(diǎn)在圖像中的像素坐標(biāo),可以輸入mat類型,也可以直接輸入vector,注意輸入點(diǎn)的順序要與前面的特征點(diǎn)的世界坐標(biāo)一一對(duì)應(yīng)
  • cameraMatrix:相機(jī)內(nèi)參矩陣
  • distCoeffs:相機(jī)的畸變參數(shù) Mat_(5, 1)
  • rvec:輸出的旋轉(zhuǎn)向量:
  • tvec:輸出的平移向量
  • useExtrinsicGuess: 用于SOLVEPNP迭代的參數(shù)。如果為true(1),函數(shù)使用提供的rvec和tvec值分別作為旋轉(zhuǎn)和平移向量的初始近似,并進(jìn)一步優(yōu)化它們。默認(rèn)值為False。
  • flags:PnP的計(jì)算方法包括:DLT,P3P,EPnE,UPnP,每種求解方式存在其限制。
enum { SOLVEPNP_ITERATIVE = 0,
       SOLVEPNP_EPNP      = 1, //!< EPnP: Efficient Perspective-n-Point Camera Pose Estimation @cite lepetit2009epnp
       SOLVEPNP_P3P       = 2, //!< Complete Solution Classification for the Perspective-Three-Point Problem 
       SOLVEPNP_DLS       = 3, //!< A Direct Least-Squares (DLS) Method for PnP  @cite hesch2011direct
       SOLVEPNP_UPNP      = 4, //!< Exhaustive Linearization for Robust Camera Pose and Focal Length Estimation 
       SOLVEPNP_AP3P      = 5, //!< An Efficient Algebraic Solution to the Perspective-Three-Point Problem 
       SOLVEPNP_MAX_COUNT      //!< Used for count
};//flag參數(shù)PnP計(jì)算方法

solvepnp,opencv,計(jì)算機(jī)視覺,人工智能
solvePnP的一個(gè)缺點(diǎn)是對(duì)異常值不夠魯棒,當(dāng)我們用相機(jī)定位真實(shí)世界的點(diǎn),可能存在錯(cuò)匹配,對(duì)誤匹配進(jìn)行RANSAC過濾,RANSAC為(Random Sample Consensus, 隨機(jī)抽樣一致性)。

五. PnP問題求解原理

目前解法主要有:直接線性變換(DLT),P3P,EPnE,UPnP,非線性優(yōu)化方法BA。文章來源地址http://www.zghlxwxcb.cn/news/detail-574196.html

  • 直接線性變換法DLT:PnP問題之DLT解法 - 知乎
  • P3P:P3P推導(dǎo) 利用余弦定理
  • EPnP:深入EPnP算法
  • 非線性優(yōu)化方法:Bundle Adjustment最小化重投影誤差求解PnP–BA
    前面三種方法均可直接調(diào)用OpenCV函數(shù)接口,而非線性優(yōu)化的方法實(shí)現(xiàn)形式多樣,可以利用Ceres、G2o等開源優(yōu)化庫(kù)或者手寫高斯牛頓法實(shí)現(xiàn)。

到了這里,關(guān)于一文讀懂PnP問題及opencv solvePnP、solvePnPRansac函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • opencv-python庫(kù)的安裝【一文讀懂】

    opencv-python庫(kù)的安裝【一文讀懂】

    ?? 版權(quán): 本文由【墨理學(xué)AI】原創(chuàng)首發(fā)、各位讀者大大、敬請(qǐng)查閱、感謝三連 ?? 聲明: 作為全網(wǎng) AI 領(lǐng)域 干貨最多的博主之一,?? 不負(fù)光陰不負(fù)卿 ?? opencv-python 庫(kù)的安裝 顧名思義,Python 代碼運(yùn)行需要依賴使用的 openCV 庫(kù) pip install opencv-python -i https://pypi.doubanio.com/simple

    2024年02月08日
    瀏覽(27)
  • 一文讀懂動(dòng)態(tài)規(guī)劃問題

    一文讀懂動(dòng)態(tài)規(guī)劃問題

    動(dòng)態(tài)規(guī)劃,英文: Dynamic Programming, 簡(jiǎn)稱DP,如果某一個(gè)問題由很多重疊子問題,使用動(dòng)態(tài)規(guī)劃是最有效的。 所謂動(dòng)態(tài)規(guī)劃就是,在解決一個(gè)問題的過程中,將其分解為很多個(gè)小的部分,環(huán)環(huán)相扣。最典型的一個(gè)例子,我們?nèi)腴T編程時(shí)都學(xué)習(xí)過的斐波那契數(shù),每個(gè)數(shù)都是由前面

    2024年04月25日
    瀏覽(15)
  • 一文讀懂kafka消息丟失問題和解決方案

    一文讀懂kafka消息丟失問題和解決方案

    今天分享一下kafka的消息丟失問題,kafka的消息丟失是一個(gè)很值得關(guān)注的問題,根據(jù)消息的重要性,消息丟失的嚴(yán)重性也會(huì)進(jìn)行放大,如何從最大程度上保證消息不丟失,要從生產(chǎn)者,消費(fèi)者,broker幾個(gè)端來說。 kafka生產(chǎn)者生產(chǎn)好消息后,會(huì)將消息發(fā)送到broker節(jié)點(diǎn),broker對(duì)數(shù)據(jù)

    2024年02月08日
    瀏覽(17)
  • 【AIGC】猴子拍照版權(quán)是誰的:一文讀懂AIGC和版權(quán)問題

    【AIGC】猴子拍照版權(quán)是誰的:一文讀懂AIGC和版權(quán)問題

    目錄 一、沒有明確的定義 1.AI畫作算作品嗎? 2.AI 繪畫的版權(quán)歸誰? 二、關(guān)注平臺(tái)的版權(quán)聲明 三、猴子拍照 1、是否應(yīng)當(dāng)給予AI作品版權(quán)? 2、AI創(chuàng)作的版權(quán)賦予誰? 寫文章,做圖片,AI無所不能,雖然有時(shí)也冒點(diǎn)傻氣,但是確實(shí)越來越像人類了。 而且畫的圖,除了有幾分無

    2024年02月05日
    瀏覽(26)
  • 一文讀懂異步和同步——async/await在運(yùn)行時(shí)和普通代碼的執(zhí)行順序的問題

    一文讀懂異步和同步——async/await在運(yùn)行時(shí)和普通代碼的執(zhí)行順序的問題

    一、執(zhí)行順序問題 JavaScript中的await語句是異步編程中用于等待Promise對(duì)象執(zhí)行結(jié)果的,它通常與async函數(shù)一起使用。在使用await時(shí),程序的執(zhí)行將暫停,直到該后面的Promise對(duì)象完成執(zhí)行并返回結(jié)果。 函數(shù)代碼執(zhí)行順序通常情況下按照代碼所在文件從上至下

    2024年02月03日
    瀏覽(20)
  • cv::solvePnP使用方法及注意點(diǎn)詳解(OpenCV/C++)

    1、參數(shù)說明: objectPoints :一個(gè) vectorcv::Point3f,包含了在世界坐標(biāo)系中的三維點(diǎn)的坐標(biāo),至少需要4個(gè)點(diǎn)。 imagePoints :一個(gè) vectorcv::Point2f,包含了對(duì)應(yīng)的圖像上的二維點(diǎn)的坐標(biāo),與 objectPoints 中的點(diǎn)一一對(duì)應(yīng)。 cameraMatrix :相機(jī)的內(nèi)參數(shù)矩陣,類型為 cv::Mat,一般為 3x3 的浮點(diǎn)數(shù)

    2024年02月05日
    瀏覽(20)
  • opencv 單目相機(jī)pnp測(cè)距(Cpp)

    opencv 單目相機(jī)pnp測(cè)距(Cpp)

    單目相機(jī)pnp測(cè)距是通過單目相機(jī)拍攝的一張2d圖片,來測(cè)量圖片中某物與相機(jī)的距離。 需要知道被測(cè)物的實(shí)際尺寸 測(cè)距前 需要先 相機(jī)標(biāo)定 ,需要使用哪個(gè)相機(jī)進(jìn)行測(cè)距就標(biāo)定哪個(gè)。一旦換成了其他相機(jī), 就要重新標(biāo)定最終相機(jī)。 為什么要相機(jī)標(biāo)定? 相機(jī)標(biāo)定是為了得到從

    2024年02月04日
    瀏覽(21)
  • 【opencv3】詳述PnP測(cè)距完整流程(附C++代碼)

    【opencv3】詳述PnP測(cè)距完整流程(附C++代碼)

    我們只要獲得 特征點(diǎn)的世界坐標(biāo)(三維坐標(biāo))、2D坐標(biāo)(像素坐標(biāo))、相機(jī)內(nèi)參矩陣、相機(jī)畸變參數(shù)矩陣 以上四個(gè)參數(shù)即可以解得相機(jī)與標(biāo)志物之間的外參( 旋轉(zhuǎn)矩陣R、平移矩陣T ),并以此求得相機(jī)的世界坐標(biāo)(以標(biāo)志物為世界坐標(biāo)平面,且原點(diǎn)為標(biāo)志物已知某一點(diǎn))。

    2024年02月11日
    瀏覽(18)
  • 一文讀懂ChatGPT

    ChatGPT(全名:Chat Generative Pre-trained Transformer),美國(guó)OpenAI 研發(fā)的聊天機(jī)器人程序,于2022年11月30日發(fā)布。ChatGPT是人工智能技術(shù)驅(qū)動(dòng)的自然語言處理工具,它能夠通過理解和學(xué)習(xí)人類的語言來進(jìn)行對(duì)話,還能根據(jù)聊天的上下文進(jìn)行互動(dòng),真正像人類一樣來聊天交流,甚至能完

    2024年02月06日
    瀏覽(34)
  • 一文讀懂Docker原理

    一文讀懂Docker原理

    說起Docker,基本上就是指容器。許多同學(xué)熟悉Docker的操作,卻搞不懂到底什么是容器。本文就來講講Docker容器到底是個(gè)啥。 容器被稱為輕量級(jí)的虛擬化技術(shù),實(shí)際上是不準(zhǔn)確的。確切地說,容器是一種對(duì)進(jìn)程進(jìn)行隔離的運(yùn)行環(huán)境。 由于生產(chǎn)環(huán)境的容器幾乎都是運(yùn)行在Linux上的

    2024年01月17日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包