- 博客(43)
- 资源 (5)
- 收藏
- 关注
原创 OpenMVS中PatchMatch算法中单应矩阵H的分析
论文:《Accurate Multiple View 3D Reconstruction Using Patch-Based Stereo for Large-Scale Scenes》该论文是OpenMVS中PatchMatch算法原理的出处,因此仔细阅读了一遍,在此记录一下遇到难点。这篇博客讲的主要是该论文中的单应矩阵。论文是怎么表述单应矩阵的?(参数比较多,具体的含义请到论文看哈)稍微解释一下参数:用Xi和ni描述一个平面:Xi是世界坐标系中的一个点。ni 是平面的法向量。Ri、
2021-06-23 10:37:17
645
2
原创 持续更新:OpenMVS中的各种问题:c++语法;代码对应的具体意义
前言:这个文档记录的内容是OpenMVS代码里面碰到的问题,大致可以分成两类:一类是变态的c++语法,另一类是OpenMVS里面一些代码对应的具体意义。文档将会以问答的形式进行记录。———————————————————————————————————————————————————————c++语法问题:1.“ASSERT(imagesMap[idx] != NO_ID)”似乎是一个判断语句,背后具体是怎么封装起来的?解:2.点进NO_ID的宏定义是“DECLARE_NO_INDEX(uint
2021-05-14 11:04:02
611
2
原创 #记录一下:看完能大概理解SIFT思路的博文
#记录一下,一篇比较通俗,看完能大概理解SIFT思路的博文https://blog.csdn.net/qq_39451645/article/details/112129039
2021-05-09 20:21:13
182
原创 ubuntu16.04下安装understand
1.下载understand的安装包安装包从CSDN中获取(0积分):就是我上传的资源解压到目录下,进入bin/linux64的文件下,执行./understand,密钥: 09E58CD1FB792.制作启动器现在实际上已经可以运行understand了,但是每次都只能命令号来打开understand。这样也太麻烦了,我们得给他弄个启动器,让他像平常的软件一样,可以直接鼠标打开。打开命令行:cd /usr/share/applicationsgedit创建一个understa
2021-04-27 15:37:28
1557
9
原创 论文中看到的光线投影法(ray casting)是什么?
首先,这东西是干嘛用的?光线投影法,算法具体是怎么实现的?参考博客:基本思想:https://blog.csdn.net/baidu_17313961/article/details/53519213细节一点的:https://blog.csdn.net/timzc/article/details/6020260细节一点的:https://www.pianshen.com/article/3615661414/...
2021-04-03 10:06:52
2979
原创 三维建模中基于体素的TSDF模型是什么
什么是体素?答:图像里面的最小单位是像素,体素就是三维立体图里面的最小单位。可以理解成二维中的像素的升级版,更直观的理解是“我的世界”里面的一个个小立方块。下面就不用体素这个词了,直接用小立方块更直观地表达。基于体素的TSDF——翻译为人话就是:怎么结合体素来描述一个三维地图首先,我们的整个三维地图都用小立方体来表示,好像很简单呀:如果这个小立方体如果有物体存在,就记为1,没有物体覆盖就记为-1,so seay。——小了,格局小了,能广泛使用的算法哪能怎么简单呢?TSDF基本思想TSDF模型
2021-03-31 20:47:37
2945
6
原创 #记录一下:关于三维建图的一些文章讲解 + Delaunay三角剖分的含义
三维建图的一般过程:Images Poses——>Depth——>Ponit cloud——>Mesh——>Refined Mesh——>Texture MeshRGB图像,位姿——>稠密建图——>点云地图——>网格地图——>优化后的网格地图——>对网格地图进行纹理贴图每一步都是一个坑…哭了如何从点云到三维地图:https://zhuanlan.zhihu.com/p/54469298...
2021-03-28 16:58:25
783
原创 #记录一下:论文中看到IoU是什么
其实就是一种算法,用于检测特定数据集中相应物体准确度。或者可以将其理解成一种评价机制,跟RMSE类似的评价机制。而这个所谓“特定数据集”,就是有ground truth的数据集IoU = 两个区域重叠部分➗除以两个区域合并起来总的区域参考博文:https://blog.csdn.net/u012704941/article/details/82464558...
2021-03-16 10:36:22
295
原创 条件随机场CRF
最近看论文看到某个叫CRF的东西,于是去看了看。条件随机场 CRF:Conditional Random Field这也是一个机器学习中分类决策的算法。引入问题:给你一个句子,请判断句子里面的单词分别是什么词性(词性标注问题)参考博文中举了一个更通俗的例子来说明这类问题:假设现在有你一个朋友小明一天下来的许多生活照,给这些照片分类,说明此时他正在做什么。1.当识别出小明在黑暗环境中闭着眼睛,那么很有可能他在睡觉。2.当识别出小明在一些食物前张大嘴,那么他很有可能是在吃饭。这样的做法似乎是可
2021-03-02 10:11:44
156
原创 吴恩达卷积神经网络笔记随笔
b站吴恩达卷积神经网络学习笔记随笔:P1-P9视频地址:https://www.bilibili.com/video/BV1F4411y7o7?from=search&seid=16850777765372298719卷积神经网络与普通的神经网络为什么需要卷积神经网络呢?因为普通的神经网络哪里没那么好吗?想想如何对神经网络输入一个RGB三通道的图像:将图像m* n* 3展开,展开成一个一维的列向量(那么这个向量有m* n* 3行,1列),里面全是图像RGB通道的的对应值。将这个向量输入到
2021-01-22 21:50:07
184
原创 b站李宏毅机器学习笔记随笔
b站李宏毅机器学习笔记随笔:P1-P4视频地址:https://www.bilibili.com/video/BV1JE411g7XF?p=4机器学习:从数据中筛选出一些有用的信息。我们的世界存在的数据,是人类无法全部获得的,可以认为是无穷的,小小的人类只能从部分的数据中,分析上帝到底在想什么。事物具有普遍性与特殊性,能被我们采集到的数据也是如此:数据中蕴含的普遍性让能够窥探上帝在想什么,也就是说能一定程度上预测没有被我们采集到的数据是什么样的。同时,我们又很容易被采集回来的数据的特殊性带偏。过拟
2021-01-20 16:22:36
163
原创 #记录一下:贝叶斯公式做分类的理解
#记录一下:使用贝叶斯做分类的解释:有个东西有很多个特征,同时它也能分成很多个类别:输入多个特征——>[贝叶斯公式]——>输出对应的类别https://blog.csdn.net/weixin_33893473/article/details/90436411...
2021-01-16 21:41:36
173
原创 一篇讲深度学习神经网络很通俗的入门文章
#记录一下:一篇讲深度学习神经网络很通俗的入门文章:https://blog.csdn.net/qq_45070713/article/details/90260124
2020-12-10 23:16:51
122
原创 一个关于人工智能深度学习神经网络的宝藏网站
#记录一下一个关于人工智能深度学习神经网络的宝藏网站,通俗简明,都是大白话:https://www.captainbed.net/
2020-12-10 22:37:42
291
原创 C++中利用FFT实现多项式相乘;scanf函数无法通过编译的修改方法
快速傅里叶变换FFT实现的c++代码:#include <iostream>using namespace std;#include <complex>#include <cmath>double PI = acos(-1);complex<double> a[400010], b[400010], c[400010];void fft(complex<double>* a, int n, int op){ if (n == 1)
2020-11-18 15:34:46
226
原创 c++ 向子函数传递数组
向子函数传递一个数组时,数组是不会被拷贝的,一般来说都是传地址给子函数而已。怎么规范地向子函数传递数组呢,一般来说,我们会给定数组地址,然后告诉子函数数组的长度之类的。利用函数模板,可以实现不需告诉子函数数组长度,也能安全地使用数组,使用的是非类型模板参数,编译器根据你给定的非类型模板参数,自行推断出对应的数组长度,这个方法更具有普适性。下面是向子函数传递数组的几个基本用法:#include <iostream>using namespace std;int test1(const
2020-10-31 10:59:27
2558
原创 opencv扩充图像边缘函数:cv::copyMakeBorder中的参数borderType显示无定义
copyMakeBorder(Mat src, Mat dst, int top, int bottom, int left, int right, int borderType, Scalar value)borderType是要告诉函数,我要扩充边缘是什么样子的,填充什么东西进去,例如最常用的填充常值,或者在边缘处镜像等操作。我在Linux中跑的时候,显示我要用的BORDER_CONSTANT(填充常值)没有定义,十分纳闷,于是打算百度BORDER_CONSTANT对应的int值。下面是各个typ
2020-10-26 19:36:11
573
原创 #记录一下:关于卡尔曼滤波器的通俗解释
#记录一下卡尔曼滤波器的通俗解释:https://www.zhihu.com/question/22422121/answer/22877882
2020-10-22 17:15:53
111
原创 #记录一下:slam十四讲,图优化的解析
#记录一下:图优化的解析https://www.cnblogs.com/gaoxiang12/p/5244828.html
2020-10-21 20:56:27
279
原创 概率(probability)---似然(likelihood)的前世今生
概率–似然,这两个词在中文中貌似看不出啥关系。但是在英文里:probability和likelihood,在做阅读理解的时候,你可以认为他们是相同的单词,从而进行同义词替换。但在数学的世界里,以这两个词为核心诞生的两个概念:概率函数和似然函数,却有着天差地别。假如现在有个黑箱,里面放着白球和黑球,他们的比例是惟一的,但却只有上帝知道,但是上帝嘛肯定不告诉你。那么对我们人类来说,怎么才能知道黑箱里的黑白球比例呢?(或曰:每次从箱子里区一个球,是白球或者黑球的概率)不知道上帝想什么,去估计上帝想什么,这就
2020-10-19 21:05:20
2811
原创 slam十四讲中关于unordered_map的使用
#记录一下:unordered_map本质上是一个类似于vector的容器,但是不同在于他使用哈希算法来帮助储存检索容器中的数据,比普通的顺序排列读取效率更高。也因为使用了哈希算法,unordered_map比vector多了一个东东——<key, value>键值对。为什么要键值对呢?具体要看看哈希算法的原理。哈希算法可以看看这个,关于哈希算法的一系列解析文章:http://www.nowamagic.net/academy/detail/3008010(这个网站有不少有意思的文章)
2020-10-13 19:33:31
158
原创 #记录一下:图像旋转的公式推导
#记录一下:图像旋转的公式推导https://blog.csdn.net/liyuan02/article/details/6750828
2020-10-05 16:40:41
285
原创 slam十四讲ch8中遇到的c++小问题:fin>>time_rgb>>rgb_file>>time_depth>>depth_file;
有不懂的代码:ifstream fin( associate_file ); if ( !fin ) { cerr<<"I cann't find associate.txt!"<<endl; return 1; }string rgb_file, depth_file, time_rgb, time_depth; list< cv::Point2f > keypoints; // 因为要删除
2020-09-25 15:20:25
422
原创 #记录一下:slam十四讲g2o的高端分析
#记录一下计算机视觉life的文章,关于g2o的详细分析。参考博文:https://mp.weixin.qq.com/s/j9h9lT14jCu-VvEPHQhtBw
2020-09-24 11:04:33
139
原创 #记录一下:slam十四讲,第四章李群李代数的高端理解(非常通俗的解析)
#记录一下:一篇要吹爆的博文,李群李代数参考博文:https://blog.csdn.net/wb790238030/article/details/88219634
2020-09-22 22:05:03
254
原创 常见的二范数是什么意思?有什么用?
#记录一下:参考博文写的很清楚了:在优化一个变换矩阵T时,常常用到这样的公式:意思是:现在总共有N个三维点p和相机观测值z,那么我们的目标就是寻找一个最佳的位姿T,使得整体误差最小化。这时候我们的误差函数(等式右边)是一个矩阵呀,这怎么优化,起码也有一个目标值才能优化吧??这就是范数登场的时候了,他就是用来描述等式右边的“误差矩阵”,到底ok不ok。“误差矩阵”的二范数越小表示越逼近实际值。这就是二范数的作用。/分割线/参考博文很详细,方便起见,给点博文的一部分内容:这里的矩阵就是表征
2020-09-22 21:11:18
53451
原创 slam十四讲遇到的问题:模板与类/结构体的组合使用
#记录一下template <int _PoseDim, int _LandmarkDim> struct BlockSolverTraits { static const int PoseDim = _PoseDim; static const int LandmarkDim = _LandmarkDim; typedef Eigen::Matrix<double, PoseDim, PoseDim, Eigen::ColMajor> PoseMa
2020-09-19 15:56:59
241
原创 slam十四讲中遇到的c++问题:typedef typename Traits::PoseMatrixType PoseMatrixType;
问题:这是什么意思typedef typename Traits::PoseMatrixType PoseMatrixType;解释:使用typedef将旧类型Traits::PoseMatrixType简化定义为一个新的类型PoseMatrixType。typename的作用是告诉编译器 Traits::PoseMatrixType 是一个类型,不是一个变量或者函数。这是因为编译器在最开始并不能判断 Traits::PoseMatrixType 是 Traits 命名空间中的函数、变量还是类型,
2020-09-19 11:03:54
271
原创 slam十四讲中遇到的小问题,关于keypoints类和matches类:keypoints_1[m.queryIdx]
代码如下:vector<KeyPoint> keypoints_1, keypoints_2;vector<DMatch> matches;find_feature_matches ( img_1, img_2, keypoints_1, keypoints_2, matches );cout<<"一共找到了"<<matches.size() <<"组匹配点"<<endl;for ( DMatch m:matches ){
2020-09-17 20:57:10
1397
原创 slam十四讲ch7中,DMatch类中的queryIdx和trainIdx
由于是在ch7中的pose_estimation_3d2d遇到的问题,因此我直接在pose_estimation_3d2d文件中添加测试代码,测试代码可以放在最后应该也可以,就是图个方便… /*************test*************/ cout << "test_start:" << endl ; Mat my_img1=img_1.clone(); Mat my_img2=img_2.clone(); int img1_
2020-09-17 20:42:59
5447
1
原创 slam十四讲ch7中的pose_estimation_3d2d报错:error while loading shared libraries: libg2o_core.so: cannot open
pose_estimation_3d2d中显示错误的代码段为初始化g2o中的片段: // 初始化g2o typedef g2o::BlockSolver< g2o::BlockSolverTraits<6,3> > Block; // pose 维度为 6, landmark 维度为 3 Block::LinearSolverType* linearSolver = new g2o::LinearSolverCSparse<Block::PoseMat
2020-09-17 16:13:16
946
1
原创 slam十四讲,第五讲中相机坐标系,像素平面坐标系,世界坐标系,归一化坐标系总结
#笔记,方便日后忘记回看,仅记录重点内容,具体推导回看十四讲先上图:如图,现实世界中有一个P点和一个相机(光心),描述这个P点的空间坐标首先得有一个坐标系,那么以光心为原点O建一个坐标系,叫相机坐标系。那么就可以在相机坐标系下,设P坐标(x,y,z)和P的投影点P’(x’,y’,z’)。值得一提的是,P’(x’,y’,z’)坐落在物理成像平面和像素平面。物理成像平面,像素平面是二维的,他们的坐标系并不一样:物理成像平面在o’x’y’平面上;像素平面的原点在那个黑灰色图的左上角(图片的左上角),
2020-09-01 11:47:36
8229
6
原创 Mat_<double> ( 3,3 )是什么意思
#记录一下问题:Mat_< double > ( 3,3 )是什么?来源是slam十四讲里面遇到的这样一段代码,不明觉厉…Mat t_x = ( Mat_<double> ( 3,3 ) << 0, -t.at<double> ( 2,0 ), t.at<double> ( 1,0 ), t.at<double> (
2020-08-31 14:49:11
4482
1
原创 slam十四讲,ch7的一些解答
#记录一下:遇到的问题:编译pose_estimation_2d2d.cpp时, 报错:CV_FM_8POINT was not declared in this scope解决方法:将CV_去掉再编译就可以通过。参考博文:https://blog.csdn.net/qq_38629044/article/details/96907844#3_2d2dcpp_CV_FM_8POINT__was_not_declared_in_this_scope_18...
2020-08-30 14:04:30
853
原创 CMakeList寻找opencv库的方法
我自己安装opencv的时候,修改了默认的opencv安装路径,跑slam十四讲例程的时候,出现了以下错误:具体说啥,就是找不到opencv4(我装的opencv4.0.0),尝试opencv3.3.1但是不接受,但是我也没有安装3.3.1啊…我猜测可能是因为我修改opencv的默认安装路径,导致这个问题,于是百度CMakeList.txt该如何修找opencv4的库。slam十四讲里面,CMakeList寻找opencv库的语句:find_package( OpenCV 4 REQUIRED )百
2020-08-16 12:46:05
2646
原创 ubuntu16.04安装ROS的速度很慢
#记录一下安装ROS,先得设置源source,设置密钥key,更新Ubuntu的软件库,然后进行ROS的安装。但是在安装ROS安装的这一步会非常慢,原因是第一步中,从那个源上获得资源的速度很慢。因此只要找到一个下载速度快的源就能解决这个问题。换成清华大学的ROS源,即可解决:sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release
2020-08-14 17:32:10
1127
原创 SLAM十四讲,第七章程序ch7报错, error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
问题如下:因为slam十四讲中使用opencv3.1,本人使用的是opencv4.4,因此在编译时,报错找不到 CV_LOAD_IMAGE_COLOR 这个定义,解决方法如下:1.在百度上搜这个问题的解决方法时,百度经验提示,在使用了CV_LOAD_IMAGE_COLOR这个定义的c文件下,添加如下头文件:#include <opencv2/imgcodecs/imgcodecs_c.h> 2.添加之后仍然报错,打开imgcodecs_c.h 文件后发现,里面有如下代码:#error
2020-08-06 20:05:56
15305
20
原创 在结构体里定义一个函数后,在函数后面添加冒号等一系列操作
#记录一下提出问题:SLAM十四讲里面看到,在结构体里定义一个函数后,在函数后面添加冒号,以及一系列操作…不明觉厉struct CURVE_FITTING_COST{ CURVE_FITTING_COST ( double x, double y ) : _x ( x ), _y ( y ) {} // 残差的计算 template <typename T> //template:可以做到不同类型的变量,若执行同样的操作,只写一个函数就ok了。在实际中,将
2020-08-02 18:55:42
774
5
原创 Opencv关于成员函数data,step,at的使用
1.待解决的问题:如何读取图像中某个像素点的BGR值2.现在希望获得图片color中,位于第v行第u列的像素点的BGR值,先放代码://方法一://程序上方读取了一张图片colorcolor.data[ v*color.step + u*color.channels() ]; //Bcolor.data[ v*color.step + u*color.channels() +1 ]; //Gcolor.data[ v*color.step + u*color.channels() +2
2020-08-01 19:55:57
1768
dre_slam安装过程中用到的yolo3配置文件
2020-08-17
opencv_boostdesc_bgm.zip
2020-07-30
A time delay controller for systems with unknown dynamics.pdf
2020-04-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人