自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 收藏
  • 关注

原创 【三维重建】增量SFM系统

在学习完鲁鹏老师的三维重建基础后,打算用C++代码复现一下增量SFM系统(https://github.com/ldx-star/SFM)。本项目的最终目标就是通过相机拍摄的多视角视图获取三维点云。由于资金有效,博主使用的是相机是小米12。先来看一下最终效果:当然了,和开源系统比起来还是差很多的。

2024-06-11 09:59:10 930

原创 【三维重建】ePnP

PnP问题应用与一下场景:已知三维点和对应二维点以及相机相机内参数,可以获取相机外参。我们介绍其中的一种算法:ePnP算法流程1、ePnP算法首先在世界坐标系内寻找4个控制点,记作C1w,C2w,C3w,C4wC_1^w,C_2^w,C_3^w,C_4^wC1w​,C2w​,C3w​,C4w​,使得:对于世界坐标系内任意一点P1w,P_1^w,P1w​,存在对应的αi=[αi1,αi2,αi3,αi4]T\alpha_i=[\alpha_{i1},\alpha_{i2},\alpha_{i3},\

2024-05-27 11:15:55 555

原创 【三维重建】摄像机标定(张正友相机标定法)

求解摄像机的内、外参数。

2024-05-07 16:06:29 2770

原创 【三维重建】摄像机几何

齐次坐标转到欧式坐标的结果并不是一一对应的,比如(1,1,1)和(2,2,2)转到欧式坐标都是(1,1),它们之间相差一个系数。为了方便我们对针孔相机模型进行数学建模,我们往往对虚拟像平面进行研究,因为虚拟像平面的方向与我们实际物体的方向一致。在进行三维重建的时候往往需要用到多个相机,因此需要外参矩阵将所有点的坐标系进行统一。想知道如何从二维图像中如何恢复三维点,需要先知道三维点是如何映射成二维点的。由于制造工艺的原因,像平面可能不是一个矩形,所以需要引入。原理很简单,就是我们小学学的。

2024-05-06 18:46:32 692

原创 【三维重建】捆绑调整

捆绑调整的目的是通过重构的点计算重投影误差,利用最优化方法是重投影误差最小。这是一个典型的非线性最小二乘问题,利用高斯-牛顿法进行优化(高斯-牛顿法原理参考https://blog.youkuaiyun.com/holle_world_ldx/article/details/138225785)求雅可比矩阵一、相机投影过程1、世界坐标系到相机坐标系的变换[xcyczc]=RX+t=[r0r1r2r3r4r5r6r7r8][XYZ]+[t0t1t2]\begin{bmatrix} x_c\\ y_c\\

2024-05-04 15:06:48 674

原创 【最优化】牛顿法、高斯-牛顿法

在一维搜索中我们所要解决的问题是如何找函数f(x)的最小值。​gxfxkf′xkx−xk21​f′′xkx−xk2gx≈fx求fx最小值≈求gx最小值g′xf′xkf′′xkx−xk令g′x0xxk−f′′xkf′xk​只有在f′′x0时成立,f′x0只能保证该点为极值点,f′′x0保证该点为极小值点​。

2024-04-26 17:50:04 1930

原创 【最优化】共轭梯度法

n×nd0d1d2...dmijdiTAdj0共轭n×nd0d1d2...dm证明:​如果d0d1d2...dm线性相关则有α1​d0α2​d1α3​d2...αm​dm0两边同乘djTA得αj​djTdj0由于dj0所以αj​0因此d0d1d2...dm线性无关​n×n。

2024-04-24 09:41:06 427

原创 【三维重建】相移法+格雷码

本篇文章介绍一种稠密点云的获取方式——条纹结构光三维重建算法。在学习此算法前,我们需要对基于视觉的三维重建算法有一定了解。需要了解什么是相机模型、相机标定以及三角化的相关知识。当我们得到两个相机的内参、外参后,就能通过两个视图的匹配点计算出该点的三维坐标。但是一般的特征匹配算法(SIFT、SURF)只能提取特征点,并且只有正确匹配才能得到正确的三维坐标。因为两个视图上能够成功匹配的点比较少, 因此通过这种方式获得的点云是稀疏的。​。

2024-03-05 16:42:53 2634

原创 【最优化】梯度下降法、最速下降法

梯度是一个向量,梯度上的每个元素表示该函数在每个分量上的变化率。方向导数是多元函数在给定点沿着某一特定方向的变化率。方向导数等于梯度与方向向量的点乘。

2024-02-21 08:58:35 423

原创 【最优化】一维搜索

首先我们需要先明确一下我们的任务是什么?我们的任务是给定一个未知函数,如何找到它的最小值。

2024-02-20 19:03:42 413

原创 【三维重建】三角化

三角化要解决的问题是: 已知两个相机的内参K、K'、相机之间的旋转平移矩阵R、t以及匹配点p、p',如何求得P点的三维坐标?

2024-01-30 20:25:26 666

原创 【三维重建】运动恢复结构(SfM)

运动恢复结构是通过三维场景的多张图像,恢复出该场景的三维结构信息以及每张图片对应的摄像机参数。

2024-01-30 10:16:36 1686

原创 【三维重建】双目立体视觉

所有的极线都经过极点(e/e'),如果极点位于无穷远处,那所有的极线都平行。通过极几何可以求得极线,现在我们需要将左边的图变成右边的平行视图。平行视图中,可以利用视差就得深度,视差越小深度越深。如何得到平行视图呢?

2024-01-24 17:40:04 514

原创 【Linux】进程间通信

进程间通信

2024-01-17 17:24:45 3278

原创 【计算机视觉】角点检测(Harris、SIFT)

角点指的是窗口延任意方向移动,都有很大变化量的点。用数学公式表示为:E(u,v)反映的移动后窗口的差异,w(x,y)为每个像素的点权值,I(x+u,y+v)是移动的像素值,I(x,y)是移动前的像素值。将E(u,v)进行泰勒展开,直接建立E(u,v)和u,v的联系最终:M称为二阶矩矩阵(second moment matrix)若互补影响:假设只有在u方向上变化是E才会变,因此只有都不为0时(x,y)才是角点。

2023-12-28 19:13:44 2798

原创 【C++】explicit关键字

explicit关键字通常用于声明构造,是为了防止编译器进行隐式类型转换。当加上explicit关键字后,只能显示的调用构造函数。

2023-12-25 22:47:13 97

原创 【C++】const 关键字

指针a指向的地址不可以改变,但是地址中存的值也不可以改变。修饰* 指针a指向的地址不可以改变,但是地址中存的值可以改变。修饰int 指针a指向的地址可以改变,但是地址中存的值不能改变。cosnt关键字优先修饰左边,如果左边每东西,就作用于右边。修饰int a 不能改变。

2023-12-25 22:39:01 217

原创 【三维重建】对极几何

可以发现P在左右相机的投影点一定在各自的极线上,如果求出极线就能缩小求解对应点的范围。基础矩阵对一般的透视摄像机的两个视点的图像间的极几何关系进行代数描述。本质矩阵对规范化摄像机拍摄的两个视点图像间的极几何关系进行代数描述。如果采集到的对应点在同一平面,两个视点间的对应关系用单应性矩阵表示。极几何描述了同一场景或者物体的两个视点图像间的几何关系。E就是本质矩阵,描述了规范化摄像机下两个视点的关系。F就是基础矩阵,反映了一般相机下,两视点间的关系。规范化相机指的是相机的内参矩阵为一个单位矩阵。

2023-12-11 16:41:50 744

原创 【三维重建】多频外差相位展开(C++实现)

在结构光三维重建中,通过相移法求解出来的相位是包裹相位(在 [-π/2,π/2] 间成周期性 )我们想要用相位找到相机与投影仪间的对应像素,就需要进行相位展开,确保每一行的相位值是唯一的。多频外差的原理是将两种不同频率的相位函数叠加得到一个频率更低的相位函数,设。多频外差是相位展开的一种,接下来我们会介绍它的原理,以及代码。最后就可以求出绝对相位。

2023-12-07 14:03:17 552

原创 【Linux】信号

【Linux】信号

2022-11-20 10:33:57 444

原创 【Linux】基础IO

【Linux】基础IO

2022-11-04 09:57:23 193

原创 【Linux】进程控制

进程控制

2022-10-17 12:41:51 431

原创 【数据结构】红黑树

【数据结构】红黑树

2022-10-03 12:44:31 339

原创 【数据结构】AVL树

【数据结构】AVL树

2022-09-28 10:31:16 100

原创 【Linux】进程地址空间

【Linux】进程地址空间

2022-09-14 23:38:10 120

原创 【C++】多态

【C++】多态

2022-09-14 11:13:29 331

原创 【Linux】环境变量

【Linux】环境变量

2022-09-11 12:19:36 551

原创 【C++】继承

继承

2022-09-10 12:07:48 392

原创 【Linux】进程

【Linux】进程

2022-09-07 17:28:53 639

原创 【Linux】Linux小程序-进度条

Linux小程序-进度条

2022-08-28 11:28:59 253

原创 【Linux】make/Makefile

make/Makefile

2022-08-28 10:08:57 1712

原创 【Linux】gdb工具使用

gdb工具使用

2022-08-23 21:59:01 445

原创 【Linux】C语言翻译过程

C语言翻译过程

2022-08-23 19:22:35 1424

原创 【Linux】vim工具的使用

vim工具的使用

2022-08-23 14:15:35 245

原创 【Linux】权限管理

权限管理

2022-08-22 09:29:44 128

原创 【Linux】常用指令

【Linux】常用指令

2022-08-21 20:16:46 283

原创 【C++】反向迭代器

反向迭代器

2022-08-18 20:07:36 395

原创 【C++】stack&queue

stack&queue

2022-08-18 15:41:37 410

原创 【C++】list

list

2022-08-15 13:32:58 260

原创 【C++】vector

vector

2022-08-12 21:56:20 408

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除