当前位置: 首页 > news >正文

男女做羞羞的事视频网站制作网站主题

男女做羞羞的事视频网站,制作网站主题,品牌网站策划方案,个人优秀网站欣赏下面我将基于 Sophus 的 SE3 类,实现完整的 PnP(Perspective-n-Point)和 ICP(Iterative Closest Point)优化代码,使用 g2o 自定义顶点和边。代码包含关键数学推导、雅可比计算及完整的优化流程。 一、实现思路 自定义顶点:继承 g2o::BaseVertex,用 Sophus::SE3d 表示位…

下面我将基于 Sophus 的 SE3 类,实现完整的 PnP(Perspective-n-Point)和 ICP(Iterative Closest Point)优化代码,使用 g2o 自定义顶点和边。代码包含关键数学推导、雅可比计算及完整的优化流程。


一、实现思路

  1. 自定义顶点:继承 g2o::BaseVertex,用 Sophus::SE3d 表示位姿。
  2. 自定义边
    • PnP边:继承 g2o::BaseUnaryEdge,计算 3D 点投影到 2D 像素的误差。
    • ICP边:继承 g2o::BaseBinaryEdge,计算两点云匹配点对的欧氏距离误差。
  3. 雅可比矩阵:基于李代数扰动模型推导(见后续推导过程)。
  4. 优化流程:构建图 → 添加顶点/边 → 配置优化器 → 执行优化。

二、代码实现

1. 自定义顶点(SE3 位姿)
#include <g2o/core/base_vertex.h>
#include <g2o/core/base_unary_edge.h>
#include <g2o/core/base_binary_edge.h>
#include <g2o/core/block_solver.h>
#include <g2o/core/optimization_algorithm_levenberg.h>
#include <g2o/solvers/dense/linear_solver_dense.h>
#include <Sophus/se3.hpp>// 自定义顶点:SE3 位姿
class VertexSE3Sophus : public g2o::BaseVertex<6, Sophus::SE3d> {
public:EIGEN_MAKE_ALIGNED_OPERATOR_NEWVertexSE3Sophus() {}virtual void setToOriginImpl() override { _estimate = Sophus::SE3d(); }virtual void oplusImpl(const double* update) override {// 李代数更新:前6维为 [平移, 旋转](注意顺序)Eigen::Map<const Eigen::Matrix<double, 6, 1>> delta(update);_estimate = Sophus::SE3d::exp(delta) * _estimate;}virtual bool read(std::istream&) override { return false; }virtual bool write(std::ostream&) const override { return false; }
};
2. PnP 边(3D→2D 投影误差)
// PnP 边:计算 3D 点投影到 2D 的误差
class EdgePnPSophus : public g2o::BaseUnaryEdge<2, Eigen::Vector2d, VertexSE3Sophus> {
public:EIGEN_MAKE_ALIGNED_OPERATOR_NEWEdgePnPSophus(const Eigen::Vector3d& point_3d, const Eigen::Matrix3d& K) : _point3d(point_3d), _K(K) {}virtual void computeError() override {const VertexSE3Sophus* v = static_cast<VertexSE3Sophus*>(_vertices[0]);Sophus::SE3d pose = v->estimate();// 将 3D 点变换到相机坐标系Eigen::Vector3d pc = pose * _point3d;// 投影到像素坐标Eigen::Vector3d proj = _K * pc;proj /= proj.z(); // 归一化_error = _measurement - proj.head<2>();}// 雅可比计算:使用链式法则 + 李代数扰动virtual void linearizeOplus() override {const VertexSE3Sophus* v = static_cast<VertexSE3Sophus*>(_vertices[0]);Sophus::SE3d pose = v->estimate();Eigen::Vector3d pc = pose * _point3d;Eigen::Vector3d proj = _K * pc;double inv_z = 1.0 / proj.z();double inv_z2 = inv_z * inv_z;// 投影雅可比 (2x3)Eigen::Matrix<double, 2, 3> J_proj;J_proj << inv_z, 0, -proj.x() * inv_z2,0, inv_z, -proj.y() * inv_z2;J_proj = _K.block<2, 3>(0, 0) * J_proj; // 内参影响// 点变换雅可比 (3x6):∂(T*p)/∂δ = [I, - (R*p)^∧]Eigen::Matrix<double, 3, 6> J_point;J_point.leftCols
http://www.dtcms.com/a/518564.html

相关文章:

  • 国际化网站dede网站seo
  • 网站建设与运营的公司怎么在网站备案号码上加一个工信部链接地址
  • 景区网站建设的好处域名什么意思
  • 如何给网站添加外链seo关键字排名优化
  • c2c代表性企业网站专网建设是什么
  • 优客工场 网站开发菏泽到濮阳
  • 网站备案经验网站开发需要哪些硬件
  • 网站解析设置加盟产品网站建设方案
  • 国外做美食的网站有哪些哪里有微信网站建设
  • 网站建设首先要选择题网站流量提升方法
  • 网站优化网络上海环球金融中心简介
  • 网站做系统下载软件外包网站
  • 平邑县门户网站wordpress主题一点就升级
  • 开发一个企业网站要多少钱建设银行海外招聘网站
  • 做网站用哪个软件写比较好cms网站开发模式
  • 做透水砖的网站网站建站域名解析最后做
  • 网站建设 铭阳传媒响应式网站什么用
  • 教育培训机构网站建立一个网站怎样赚钱
  • dw做的网站怎样做成手机版的信阳网站建设策划方案
  • 二手车网站模板商品网站模板
  • 建立网站目录的意义自己做淘宝返利网站
  • 网站灰色建设工程管理软件
  • 门户网站优点白之家低成本做网站
  • 青海公司网站建设网站基本模板
  • html5手机网站 源码国内做的好的电商网站有哪些
  • 企业官网建站系统电子商务网站建设开发文档
  • 简约型网站开发wordpress微博图床插件
  • 私人网站怎么注册北京网站建设推荐q479185700上快
  • 上海专业网站设计女生做网站运营
  • 学做网站教程工信部备案查询网址