原创 聯合概率 邊緣概率 條件概率

聯合概率 聯合概率指的是包含多個條件且所有條件同時成立的概率 P(X=a,Y=b)或P(a,b)或P(ab) 邊緣概率 僅與單個隨機變量有關的概率稱爲邊緣概率,也可以理解爲是將某一項寫開 P(X=a)或P(Y=b) 聯合概率和邊緣概率的關係

原创 ORBSLAM3閱讀筆記1 System

目錄System構造函數TrackMonocular TrackRGBD TrackStereo保存位姿的一些函數 主要參考:https://blog.csdn.net/qq_41861406/article/details/1246577

原创 SLAM中的內外點

內外點之分最簡單的說法就是是否符合當前位姿的判斷:如果根據當前位姿,之前幀二維特徵點所恢復出的地圖點重投影到當前幀與實際的二維特徵點匹配不上了,那麼認爲這個是質量差的點是outlier,拋棄掉,如果能匹配上,那就是inlier,保留。 還

原创 最大後驗估計MAP

目錄貝葉斯定理最大似然估計MLE最大後驗估計MAP參考 貝葉斯定理 P(A)表示A發生的概率 P(B)表示B發生的概率 P(A|B)表示A在B條件下發生的概率 P(B|A)表示B在A條件下發生的概率 \[P(A|B)=\frac{P(B

原创 Sim3和Se3

SE(3) SE(3)是歐式變換。 例如 \[T=\begin{bmatrix} R & t \\ 0 & 1 \\ \end{bmatrix} \]歐式變換不改變物體的形狀和長度,可以理解爲就是把一個物體移到另一個位置 Sim(3) S

原创 SLAM代碼之單目建圖

思路 第一幀爲參考幀 對後面每一幀 找到極限方向 進行極線搜索 找出NCC最高的 高斯深度濾波 計算不確定度 高斯融合 dense_mapping.cpp #include<iostream> #include<vec

原创 BA實現之Ceres和G2O

Ceres實現代碼如下: #include <iostream> #include <ceres/ceres.h> #include "common.h" #include "SnavelyReprojectionError.h" usi

原创 位姿圖優化代碼

g2o原生位姿圖 #include<iostream> #include<fstream> #include<string> #include <g2o/types/slam3d/types_slam3d.h> #include<g2o/

原创 SLAM非線性優化

經過前面的學習,我們的問題變爲如何在有噪聲的數據中進行準確的狀態估計。 狀態估計問題 經典SLAM模型,由一個運動方程和一個觀測方程構成: \[\begin{cases} x_k=f(x_{k-1},u_k)+w_k\\ z_{k,j}=h

原创 SLAM之光流法代碼

單層光流 void OpticalFlowSingleLevel( const Mat &img1, const Mat &img2, const vector<KeyPoint> &kp1, vector<

原创 SLAM代碼之pose_estimation_3d3d

ICP中的使用SVD和使用BA的代碼如下: #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/features2d/features2d.hpp>

原创 匹配特徵點以及篩選

代碼 #include<iostream> #include<opencv2/core/core.hpp> #include<opencv2/features2d/features2d.hpp> #include<opencv2/highg

原创 g2o函數

g2o簡介 g2o(General Graphical Optimization),是一個在SLAM領域廣爲使用的優化庫。基於圖優化理論。 圖優化理論 把優化問題表現成圖的一種方式。一個圖由若干個頂點和連接着這些頂點的邊組成。 用頂點表示優

原创 SLAM代碼問題彙總

對‘cv::String::deallocate()’未定義的引用 檢查CMakeLists.txt路徑拼寫 錯誤:target_link_libraries(gaussNewton ${OpenCV_INCLUDE_LIBS}) 正確:t

原创 SLAM之相機模型

相機模型 描述了一束光線通過針孔之後,在針孔背面投影成像的關係。 相機透鏡的存在會使得光線投影到成像平面的過程中產生畸變。 因此,我們用針孔和畸變兩個模型來描述整個投影過程。這兩個模型能夠把外部的三維點投影到相機內部成像平面,構成相機的內參