项目简介
本项目是基于OpenCV和Sophus库的计算机视觉项目,专注于处理两个不同视角下的图像数据,达成相机姿态估计。借助手写BA(Bundle Adjustment)实现3D - 2D的PnP匹配,可从RGB - D相机数据里提取特征点并完成匹配,从而计算相机的姿态信息。
项目的主要特性和功能
- 相机姿态估计:运用PnP(Perspective - n - Point)方法,对3D世界坐标系中的点与2D图像坐标系中的点进行匹配,进而估计相机的姿态(旋转和平移参数)。
- 非线性优化:采用高斯牛顿(GN)方法或Levenberg - Marquardt(LM)算法开展非线性最小二乘优化,以减小重投影误差。
- 特征点匹配:利用ORB算法检测图像中的关键点,通过BruteForce - Hamming匹配器进行特征点匹配,筛选出有效匹配点。
- 深度信息处理:依据深度图像计算匹配点的三维坐标,供后续姿态估计使用。
安装使用步骤
环境准备
- 安装OpenCV库,用于图像处理和特征点检测。
- 安装Sophus库,用于处理李代数和相机姿态估计。
- 安装CMake,用于项目的构建和编译。
复制项目
bash
cd TianXiaoRui_Sparse_BA_-ercise
构建项目
bash
mkdir build
cd build
cmake ..
make
运行项目
bash
./solvePnP
输入数据
- 保证项目目录下的
data
文件夹中包含相邻两帧的彩色图和深度图。 - 相机内参(fx, fy, cx, cy)需在代码中进行配置。
输出结果
程序将输出匹配点的数量、二维和三维坐标,以及估计的相机姿态信息。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】