网站空间ftp连接失败有限责任公司破产法人承担的责任

web/2025/9/26 6:11:31/文章来源:
网站空间ftp连接失败,有限责任公司破产法人承担的责任,食品网站的功能定位,自己怎么样建网站视频基础知识#xff1a;方差#xff0c;协方差#xff0c;协方差矩阵 方差#xff1a;描述了一组随机变量的离散程度 方差 每个样本值 与 全部样本的平均值 相差的平方和 再求平均数#xff0c;记作#xff1a; 例如#xff1a;计算数字1-5的方差#xff0c;如下 去中心化…基础知识方差协方差协方差矩阵 方差描述了一组随机变量的离散程度 方差 每个样本值 与 全部样本的平均值 相差的平方和  再求平均数记作 例如计算数字1-5的方差如下 去中心化为了后续计算的方便会对样本进行去中心化处理方法是将全部样本按照平均值平移 例如1-5每个数字都向负方向移动3(平均值)个单位计算方差后结果依然是2 协方差协方差描述了不同特征之间的相关情况通过计算协方差可以判断不同特征之间的关联关系。协方差m个样本的特征a-均值ua 乘以特征b - 均值 ub的乘积累加到一起再除以m-1 例如1一组数据点(1,1)(2,2)(3,3)(4,4)(5,5)他们的协方差计算如下 例如2同理 例如3同理 为了更方便的计算协方差同样的也可以将数据去中心化处理 总之协方差表示了不同特征之间的相关情况想个特征值之间的协方差0则正相关0则负相关0则不相关 协方差矩阵计算了不同维度的协方差他是一个对对称矩阵由方差和协方差两部分组成其中对角线上的元素是各个随机变量的方差非对角线上的元素为两两随机变量之间的协方差。 在计算协方差矩阵时需要将m个样本的特征按照列向量的方式保存在矩阵中然后计算矩阵和矩阵转置的乘积再除以m得到协方差矩阵 例如m个样本每个样本有a和b两个特征将这些样本按照列向量的方式保存到矩阵x中计算m个样本的协方差矩阵他等于x乘以x的转置再除以m。 1.SVD求解ICP方法C代码展示总结起来分为3步 #includeiostream #includevector #includeeigen using namespace std; //函数用于估计两组三维点集之间的旋转矩阵 R 和平移向量 t //通过这段代码可以实现对两组三维点集之间的姿态关系进行估计和计算其中旋转矩阵R_用于描述旋转关系平移向量t_用于描述平移关系 void pose_estimation_3d3d(const vectorPoint3f pts1,const vectorPoint3f pts2,Mat R, Mat t) {// 计算两组三维点的质心Point3f p1, p2;int N pts1.size();for (int i0; iN; i){p1 pts1[i];p2 pts2[i];}p1 / N;p2 / N;// 对每个减去质心得到新的点集q1,q2vectorPoint3f q1(N), q2(N);for (int i0; iN; i){q1[i] pts1[i] - p1;q2[i] pts2[i] - p2;}// 计算协方差矩阵3x3 q1*q2^TEigen::Matrix3d W Eigen::Matrix3d::Zero();for (int i0; iN; i){W Eigen::Vector3d(q1[i].x, q1[i].y, q1[i].z) * Eigen::Vector3d(q2[i].x,q2[i].y, q2[i].z).transpose();}cout W W endl;// SVD on W 对矩阵 W 进行奇异值分解SVD得到 U 和 V 矩阵。Eigen::JacobiSVDEigen::Matrix3d svd(W, Eigen::ComputeFullU | Eigen::ComputeFullV);Eigen::Matrix3d U svd.matrixU();Eigen::Matrix3d V svd.matrixV();cout U U endl;cout V V endl;//根据计算出的 U 和 V 矩阵计算旋转矩阵 R 和平移向量 t。Eigen::Matrix3d R_ U * (V.transpose());Eigen::Vector3d t_ Eigen::Vector3d(p1.x, p1.y, p1.z) - R_ * Eigen::Vector3d(p2.x, p2.y, p2.z);//p1 p2分别为两组数据的中心点//将计算得到的旋转矩阵 R 和平移向量 t 转换为 OpenCV 的 Mat 类型。// convert to cv::MatR (Mat_double(3, 3) R_(0, 0), R_(0, 1), R_(0,2),R_(1, 0), R_(1, 1), R_(1,2),R_(2, 0), R_(2, 1), R_(2,2));t (Mat_double(3, 1) t_(0, 0), t_(1, 0), t_(2, 0)); } 经过上面的步骤其实就可以得到R和T了但是这时候就出现了一个问题——结果不准确。在算法实现中如果出现了求解值不准确的情况那么一般做法就是——多求几次也就是迭代可以参考如下 从B点云中一一找到A中点的对应距离最近点构成最近点集C把C点集存入Eigen矩阵中和A点云去中心化后求SVD分解得到R矩阵和T向量一个旋转一个平移开始迭代通过R×AT得到新的点云A1重新执行1到3步骤这次是从B中找A1的最近点求得到的点云An和它的最近点集Cn的平均距离dst当dst小于设定的阈值时跳出循环 如果发现还不准确那么有可能是它的迭代条件——也就是平均距离dst判断出错了出现这种原因一般就是点云中出现了离散点导致某两点的距离出现了异常带动了整个dst判断出错。解决方案如下很管用 遍历A点找寻最近点如果A中的某个点Ai和它的最近点距离大于某个阈值则剔除不参与接下来的计算。从B点云中一一找到A中点的对应距离最近点构成最近点集C把C点集存入Eigen矩阵中和A点云去中心化后求SVD分解得到R矩阵和T向量一个旋转一个平移开始迭代通过R×AT得到新的点云A1重新执行1到4每次执行都要剔除一下离散点。求得到的点云An和它的最近点集Cn的平均距离dst当dst小于设定的阈值时跳出循环 2.非线性优化求解ICP c代码展示 #include iostream #include opencv2/core/core.hpp #include opencv2/features2d/features2d.hpp #include opencv2/highgui/highgui.hpp #include opencv2/calib3d/calib3d.hpp using namespace cv;#include Eigen/Core #include Eigen/SVD #include Eigen/Dense#include chrono #include sophus/se3.hpp#include g2o/core/base_vertex.h #include g2o/core/base_unary_edge.h #include g2o/core/sparse_optimizer.h #include g2o/core/block_solver.h #include g2o/core/solver.h #include g2o/core/optimization_algorithm_gauss_newton.h #include g2o/solvers/dense/linear_solver_dense.h using namespace std; //定义VertexPose顶点 //顶点为6个优化变量每个类型为SE3d(表示三维空间中的刚体变换即旋转和平移) class VertexPose : public g2o::BaseVertex6, Sophus::SE3d {public:EIGEN_MAKE_ALIGNED_OPERATOR_NEW;// 设置初始化的更新值 virtual void setToOriginImpl() override { _estimate Sophus::SE3d();}// left multiplication on SE3virtual void oplusImpl(const double *update) {Eigen::Matrixdouble, 6, 1 update_eigen;//前三个元素表示平移在 x、y、z 轴上的分量后三个元素表示旋转的绕 x、y、z 轴的旋转量update_eigen update[0], update[1], update[2],update[3], update[4], update[5];_estimate Sophus::SE3d::exp(update_eigen) * _estimate;//exp 将update_eigen向量转换成SE3d 类型的刚体变换}virtual bool read(std::istream in) override {return true;}virtual bool write(std::ostream out) const override { return true;} }; //定义边 一元边连接一个顶点VertexPose 和一个包含三维向量的观测 class EdgeProjectXYZRGBDPoseOnly : public g2o::BaseUnaryEdge3, Eigen::Vector3d, bcv::VertexPose {public:EIGEN_MAKE_ALIGNED_OPERATOR_NEW;EdgeProjectXYZRGBDPoseOnly(const Eigen::Vector3d point) : _point(point) {}virtual void computeError() override {const VertexPose* p static_castconst VertexPose* (_vertices[0]);//真实观测值 _measurement 与 估计观测值 p-estimate() * _point之间的误差_error _measurement - p-estimate() * _point;//将顶点的估计值所代表的变换作用于点 _point得到的新的位置信息}//linearizeOplus 函数实现了对雅可比矩阵的线性化操作virtual void linearizeOplus() override {VertexPose *p static_castVertexPose* (_vertices[0]);//从图优化中获取与当前边相连的顶点Sophus::SE3d T p-estimate();//获取顶点的估计值优化变量用于计算位姿变换Eigen::Vector3d xyz_trans T * _point;//通过估计的值 计算当其点_point转换后的坐标//雅可比矩阵从 (0,0) 开始的 3×3 子矩阵前三行前三列设置为负的单位矩阵表示误差函数对位姿变量的平移部分的导数_jacobianOplusXi.block3, 3(0, 0) -Eigen::Matrix3d::Identity();//雅可比矩阵的前三行后三列部分利用 Sophus 库的 hat 操作将向量 xyz_trans 转换为反对称矩阵通常表示误差函数对位姿变量的旋转部分的导数_jacobianOplusXi.block3, 3(0, 3) Sophus::SO3d::hat(xyz_trans);}bool read(std::istream in) { return true; }bool write(std::ostream out) const { return true; }protected:Eigen::Vector3d _point; }; //定义求解器 void ICPSolver::NLOSolver(std::vectorcv::Point3f pts1,std::vectorcv::Point3f pts2,cv::Mat R, cv::Mat t) {typedef g2o::BlockSolverX BlockSolverType;//优化问题求解器typedef g2o::LinearSolverDenseBlockSolverType::PoseMatrixType LinearSolverType;//稠密线性方程求解类型// new一个 g2o优化器 采用高斯牛顿优化算法auto solver new g2o::OptimizationAlgorithmGaussNewton(g2o::make_uniqueBlockSolverType(g2o::make_uniqueLinearSolverType()));//构建优化问题的图模型g2o::SparseOptimizer optimizer; // graph modeloptimizer.setAlgorithm(solver); // set solveroptimizer.setVerbose(true); // print info//添加顶点bcv::VertexPose *p new VertexPose();p-setId(0);//顶点idp-setEstimate(Sophus::SE3d());//初始估计值optimizer.addVertex(p);//添加边for(size_t i 0; i pts1.size(); i) {bcv::EdgeProjectXYZRGBDPoseOnly *e new bcv::EdgeProjectXYZRGBDPoseOnly(Eigen::Vector3d(pts2[i].x, pts2[i].y, pts2[i].z));e-setVertex(0, p);//将上一步的顶点设置为边e的第一个顶点本次只有一个顶点e-setMeasurement(Eigen::Vector3d(pts1[i].x, pts1[i].y, pts1[i].z));//设置了边的测量值实际位置e-setInformation(Eigen::Matrix3d::Identity());//设置边的信息矩阵为单位矩阵表示边的置信度optimizer.addEdge(e);}auto t1 std::chrono::system_clock::now();optimizer.initializeOptimization();//初始化优化器optimizer.optimize(100);//迭代次数auto t2 std::chrono::system_clock::now();auto d std::chrono::duration_caststd::chrono::milliseconds(t2 - t1).count();std::cout duration: d ms std::endl;std::cout after optim:\n;std::cout T\n p-estimate().matrix() std::endl;Eigen::Matrix3d R_ p-estimate().rotationMatrix();//estimate()提取估计值,rotationMatrix()提取旋转矩阵Eigen::Vector3d t_ p-estimate().translation();//提取平移向量std::cout det(R_) R_.determinant() std::endl;std::cout R_R_^T R_ * R_.transpose() std::endl;std::cout R:\n R_ std::endl;std::cout t:\n t_ std::endl;R (cv::Mat_double(3, 3) R_(0, 0), R_(0, 1), R_(0, 2),R_(1, 0), R_(1, 1), R_(1, 2),R_(2, 0), R_(2, 1), R_(2, 2));t (cv::Mat_double(3, 1) t_(0, 0), t_(1, 0), t_(2, 0)); }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

都匀网站谷德室内设计网

互联网摸鱼日报(2024-03-22) 36氪新闻 一加 Ace 3V 售价 1999 起,全面普及旗舰 AI 体验 黄仁勋对话Transformer七子:我们被困在原始模型里,还需要更强大的新架构 小龙虾们吓得一激灵,怎么三月份就开始吃我了? 谷歌…

网站建设 博客自己建个购物网站

\qquad 本文中的人类机器人编程(Human Robot Programming)意指“基于创伤的脑控(trauma-based mind control, T.B.M.C)”或“基于创伤的编程(trauma-based programming)”,文中用英文缩写“T.B.M.C”指代。T.B.M.C的操纵主体是施加编程的个人或机构,文中…

建网站推广乌海学校网站建设

STL详解 —— stack和queue的介绍及使用 stackstack的定义方式stack的使用 queuequeue的定义方式queue的使用 stack stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其只能从容器的一端进行元素的插入与提取操作。 stack的定义方式 首…

企业网站开发课程网站备案 做网站时就需要吗

队列-队列的顺序表示和实现和顺序栈相类似,在利用顺序分配存储结构实现队列时,除了用一维数组描述队列中数据元素的存储区域之外,尚需设立两个指针front和rear分别指示“队头”和“队尾”的位置。为了在C语言中描述方便,在此我们约…

黄骅市网站建设价格wifi客户管理系统管理

一:介绍 在Django中使用MySQL时,通常情况下,Django的数据库层会为你管理数据库连接。Django的数据库接口是线程安全的,这意味着它会自动为每个线程创建和管理数据库连接。在大多数情况下,你不需要手动创建线程池来管理…

电子商务网站登录温州最牛叉的seo

设想你正在阅读手机上的文章,突然间显示屏变暗了一点。显然,你设置的30秒或1分钟超时息屏对于常规使用来说还可以,但对于阅读纯文本片段,还远远不够。因此,这时你会轻触屏幕,可能会上下滑动,以防…

酒店品牌设计网站建设八戒设计网

2017年3月26日晚间,农业银行发布了2017年的年报。数据显示,2017年农业银行实现营业收入5428.98亿元,同比增长6.42%,净利润1929.62亿元,同比增长4.9%,截至2017年末,农业银行总资产21.05万亿元&am…

北京网站建设外包公司哪家好长春净月潭建设投资集团网站

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

手机网站前青岛网站建设工作室织梦模板

一、数据库的简介 RDBMS简介: Relational Database Management System,通过表来表示关系类型。当前主要使用两种类型的数据库:关系型数据库和非关系型数据库。所谓的关系型数据库RDBMS是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来…

小学学校网站模板免费下载保定电子商务网站建设

文章目录 Git - 在PyCharm/Idea中集成使用Git1.新建GitHub仓库2.将仓库与项目绑定3.在PyCharm中使用Git4.新建Gitee仓库5.将仓库与项目绑定6.在IDEA中使用Git Git - 在PyCharm/Idea中集成使用Git 本文详细讲解了如何在 PyCharm 或 Idea 中配置 Gitee 或 GitHub 仓库&#xff0…

江西建设工程招标投标网站邯郸又出现一例

这里写目录标题 场景效果图功能实现1:html代码功能实现2:css样式功能实现3:js代码补充内容page-break-inside 属性page-break-after属性page-break-before 属性 场景 最近在写后台管理系统时,遇到一个需求,就是要实现…

网站布局英文晋江市住房建设局网站

vh:相对于视窗的高度,那么vw:则是相对于视窗的高度。 “视区”所指为浏览器内部的可视区域大小,即window.innerWidth/window.innerHeight大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。 详细vh的用法,大家可以参考http…

上海 网站建设 外包深圳商城网站设计

从参赛类别的区分到大唐杯名称由原来的“第九届‘大唐杯’全国大学生移动通信5G技术大赛”变更为“第九届‘大唐杯’全国大学生新一代信息通信技术大赛”一系列的变化。 接下来重点讲解本科A组的情况分析: 需要注意的是,和去年的比赛不同,今年并不是两人互相讨论,而是和省…

茂名公司网站开发工商注册地址查询系统

点击上方蓝字关注我&#xff0c;了解更多咨询1、在函数名前面多了一个*号&#xff0c;而这个函数就是一个指针函数。2、其返回值是一个int类型的指针&#xff0c;是一个地址。实例#include<stdio.h>int* fun1(int* x) //传入指针 {int* tmp x; //指针tmp指向xret…

自己做网站要买服务器互联网电商板块火箭发射

一、死锁的定义 死锁是两个或两个以上的进程中的每一个都在等待其中另一个进程释放资源而被封锁&#xff0c;它们都无法向前推进&#xff0c;这种现象称为死锁。 二、产生死锁的主要原因 &#xff08;1&#xff09; 因为系统资源不足。 &#xff08;2&#xff09; 进程运行推进…

深圳高端网站制作多少钱wordpress建站事例

VS在调试状态下 直接把要调试的变量拉到监视窗口中 查看变量值的变化转载于:https://www.cnblogs.com/xjt360/p/3989469.html

海外网站建设教程wordpress欢迎页

2016年6月发布的Visual Studio Code 1.3版更新已发布&#xff0c;该版本提供了用户呼声最高的一个功能请求。 很长一段时间来&#xff0c;开发者一直呼吁为Microsoft的跨平台代码编辑器提供标签页功能。在UserVoice网站上有关这个功能的请求已获得超过9,000个投票。 标签页默认…

网站的维护及建设显示屏东莞网站建设

从 Zookeeper 数据理解 Kafka 集群工作机制 这一部分主要是理解 Kafka 的服务端重要原理。但是 Kafka 为了保证高吞吐&#xff0c;高性能&#xff0c;高可扩展的三高架构&#xff0c;很多具体设计都是相当复杂的。如果直接跳进去学习研究&#xff0c;很快就会晕头转向。所以&am…

服务器与网站的关系四库一平台个人信息查询

Cookie是一种在Web浏览器中存储数据的小型文本文件。它通常用于以下应用场景&#xff1a; 用户身份认证&#xff1a;当用户登录网站时&#xff0c;网站可以在用户浏览器中设置一个cookie来标识用户&#xff0c;并在用户访问其他页面时用来验证用户身份。 个性化设置&#xff1…

ks免费刷粉网站推广马上刷在自己的电脑做网站空间

最近声学所东海站邹博士发来了他们最新的浅地层剖面仪—MPAS-100相控参量阵浅地层剖面仪的资料&#xff0c;市场型号GeoInsight&#xff0c;委托Ocean Physics Technology公司销售&#xff0c;地大李师兄的公司负责技术支持。 MPAS-100相控参量阵浅地层剖面仪就是俗称的三维浅…