JoannaJuanCV
研究方向:图像处理、立体视觉、3D重建;人脸识别等,专注于计算机视觉在无人机和机器人领域的研究和应用。
展开
-
VS2017+OpenCV4.5.5 鱼眼图像畸变矫正
VS2017+OpenCV4.5.5 鱼眼图像畸变矫正原创 2023-03-09 10:17:51 · 290 阅读 · 0 评论 -
机体右手笛卡尔坐标系下roll、pitch 和 yaw 旋转
机体右手笛卡尔坐标系下roll、pitch 和 yaw 旋转原创 2023-03-07 19:51:15 · 1735 阅读 · 0 评论 -
3D感知技术(7)RGB-D融合
RGBD融合原创 2022-09-17 09:42:30 · 1941 阅读 · 0 评论 -
3D感知技术(6)vs2017+opencv3.4.7 双目立体视觉测距
双目立体测距原创 2022-09-14 08:53:58 · 269 阅读 · 0 评论 -
3D感知技术(5)vs2017+opencv3.4.7 单目标定、双目标定、畸变矫正和对齐
vs2017+opencv3.4.7 单目标定、双目标定、畸变矫正和对齐原创 2022-09-04 17:14:21 · 882 阅读 · 0 评论 -
3D感知技术(4)双目立体视觉测距
双目立体视觉测距原创 2022-08-31 09:15:39 · 915 阅读 · 0 评论 -
3D感知技术(3)相机成像模型及相机标定
相机成像模型及标定原创 2022-08-30 23:57:11 · 1041 阅读 · 1 评论 -
3D感知技术(2)3D数据获取技术概述
3D数据获取技术概述原创 2022-08-29 22:32:46 · 408 阅读 · 0 评论 -
ceres 编译报错 error: ‘integer_sequence’ is not a member of ‘std
在编译一些用到ceres的项目的时候会报错 error: ‘integer_sequence’ is not a member of ‘std’,这是因为较新版本中的ceres对c++版本有要求在报错的项目的CMakeList里的set(CMAKE_CXX_FLAGS “-std=c++11”)改成set(CMAKE_CXX_STANDARD 14)......原创 2022-07-05 15:49:16 · 1759 阅读 · 0 评论 -
相机内参、畸变、外参说明
相机参数是三种不同的参数:相机内参:我们通常所说的相机内参是4个,分别为:fx、fy、u0、v0;fx = F/dx;fy = F/dy;F就是焦距的长度,物理单位;dx和dy表示:x方向和y方向的一个像素分别占多少长度单位,即一个像素代表的实际物理值的大小,其是实现图像物理坐标系与像素坐标系转换的关键。u0,v0表示图像的中心像素坐标和图像原点像素坐标之间相差的横向和纵向像素数。理论值应该是图像宽度、高度的一半,但实际是有偏差的,一般越好的摄像头则其越接近于分辨率的一半;相原创 2022-05-12 11:19:15 · 12304 阅读 · 0 评论 -
左右手坐标系、旋转方向、内旋外旋、左乘右乘
左手坐标系:对应关系:right - x指向 up - y指向 front - z指向右手坐标系:对应关系:right - x指向 up - y指向 front - z指向旋转方向:从轴的正方向看向原点:左手坐标系下 :顺序时针方向即是旋转正向;右手坐标系下:逆时针方向即是旋转正向;如下,右手坐标系下内旋和外旋:内旋:每次旋转是绕固定轴(一个固定参考系,比如世界坐标系)旋转;外旋:每次旋转是绕自身旋转之后的轴旋转。下图说..原创 2022-05-09 20:56:42 · 2172 阅读 · 0 评论 -
Ubuntu 安装PCL
一,下载PCL$ git clone https://github.com/PointCloudLibrary/pcl.git pcl-trunk $ ln -s pcl-trunk pcl 二,安装库$ sudo apt-get install cmake $ sudo apt-get install g++ $ sudo apt-get install lib...原创 2019-01-06 18:31:15 · 629 阅读 · 0 评论 -
Ubuntu14.04+opencv3.4.6:半稠密直接法估计相机运动
把先前的稀疏特征点改成带有明显梯度的像素,代码实现如下所示,于是在图优化中会增加许多的边。这些边都会参与估计相机位姿的优化问题,利用大量的像素而不单单是稀疏的特征点。由于我们并没有使用所有的像素,所以这种方式又称为半稠密方法(Semi-dense)。// select the pixels with high gradiants for ( int x=10; x&...原创 2019-07-16 14:47:57 · 570 阅读 · 0 评论 -
Ubuntu 14.04 安装g2o
从 github 下载:https://github. com/RainerKuemmerle/g2o安装依赖项sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.2安装 g2ocd g2omkdir buildcd buildcm...原创 2019-07-15 13:42:48 · 329 阅读 · 0 评论 -
Ceres Solver学习:求导方式
参考:https://www.jianshu.com/p/39d8e0f31bbf转载 2022-04-08 16:03:36 · 569 阅读 · 0 评论 -
两两帧的视觉里程计
1. TUM数据集https://vision.in.tum.de/data/datasets/rgbd-dataset/download选择fr1/rpy下载:在解压后,你将看到以下这些文件: rgb.txt 和 depth.txt 记录了各文件的采集时间和对应的文件名。 rgb/ 和 depth/目录存放着采集到的 png 格式图像文件。彩色图像为八位三通道,深度图为 ...原创 2019-07-16 20:15:13 · 830 阅读 · 1 评论 -
Ubuntu Panglolin 安装
学习视觉Slam十四讲到第三章的可视化演示的时候需要Panglolin的使用,因此在Githup上下载了安装包:https://github.com/stevenlovegrove/Pangolin具体安装步骤可参考解压后的Pangolin文件夹中的README.txt文档内容。如果想安装最新的版本,可以到上面的网址上下载,但是安装过程要参考对应的README.txt文档。不同版本可能会有些变...原创 2019-07-12 08:53:42 · 250 阅读 · 0 评论 -
VMware Workstation 和 Ubuntu 14.04下载
VMware Workstation百度网盘:https://pan.baidu.com/s/1DBuNG#list/path=%2FUbuntu 14.04.5 LTS (Trusty Tahr):http://releases.ubuntu.com/trusty/安装参考:https://blog.csdn.net/KKK_Dreamer/article/details/78...原创 2019-01-07 09:11:54 · 520 阅读 · 0 评论 -
SLAM学习:李群李代数
1.李群李群是具有连续(光滑)性质的群;它既是群也是流行;直观上看,一个刚体能够连续的在空间中运动,故SO(3)和SE(3)都是李群。(注:SO(3)是特殊正交群 SE(3)是特殊欧式群,由于旋转矩阵R是3乘3的维度,但自由度的约束只有3个自由度,所以旋转矩阵R在9维空间中是一个连续的3维曲面或流形)三维旋转矩阵构成了 特殊正交群 SO(3),而变换矩阵构成了特殊欧氏群 SE(3):...原创 2019-07-12 10:03:26 · 544 阅读 · 0 评论 -
Ceres Solver学习:定义边界/约束
使用setParameterLowerBound和setParameterUpperBound,定义具体使用方法:problem.SetParameterLowerBound(&x, index, lower_bound);problem.SetParameterUpperBound(&x, index, upper_bound);原创 2022-04-08 14:08:18 · 2260 阅读 · 1 评论 -
Ubuntu opencv基本图像操作
安装包:从 http: //opencv.org/downloads.html 中下载,选择 OpenCV for Linux 版本即可;在编译之前,先来安装 OpenCV 的依赖项: sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev...原创 2019-07-12 10:38:31 · 616 阅读 · 3 评论 -
Ubuntu14.04+opencv3.4.6:Lucas-Kanade 光流
Lucas-Kanade 光流光流是一种描述像素随着时间,在图像之间运动的方法,如图所示。随着时间的经过,同一个像素会在图像中运动,而我们希望追踪它的运动过程。计算部分像素运动的称为稀疏光流,计算所有像素的称为稠密光流。稀疏光流以 Lucas-Kanade 光流为表,并可以在 SLAM 中用于跟踪特征点位置。光流法的前提假设:(1)相邻帧之间的亮度恒定;(2)相邻视频帧的取...原创 2019-07-16 14:10:06 · 241 阅读 · 0 评论 -
Ubuntu14.04+opencv3.4.6:对极约束求解相机运动
以上图为例,我们希望求取两帧图像 I1, I2 之间的运动,设第一帧到第二帧的运动为 R, t。两个相机中心分别为 O1, O2。现在,考虑 I1 中有一个特征点 p1,它在 I2 中对应着特征点 p2。我们晓得这俩是通过特征匹配得到的。如果匹配正确,说明它们确实是同一个 空间点在两个成像平面上的投影。连线O1p1 和连线 O2p2 在三维空间中会相交于点 P;候点 O1, O2,...原创 2019-07-15 14:42:37 · 398 阅读 · 0 评论 -
Ubuntu14.04+opencv3.4.6:3D-3D位姿估计
假设我们有一组配对好的 3D 点(比如我 们对两个 RGB-D 图像进行了匹配): P = {p1, . . . , pn}, P ′ = {p′1 , . . . , p′n}, 现在,想要找一个欧氏变换 R, t,使得: ∀i, pi = Rp′i + t. 这个问题可以用迭代最近点(Iterative Closest Point, ICP)求解;3D-3D 位姿估计问题中,并...原创 2019-07-15 17:57:54 · 519 阅读 · 1 评论 -
Ubuntu14.04+opencv3.4.6:ORB特征提取与匹配
提取 ORB 特征分为两个步骤: 1. FAST 角点提取:找出图像中的” 角点”。相较于原版的 FAST, ORB 中计算了特征点的主方向,为后续的 BRIEF 描述子增加了旋转不变特性。 2. BRIEF 描述子:对前一步提取出特征点的周围图像区域进行描述。#include <iostream>#include <opencv2/core/core.hpp&g...原创 2019-07-15 14:16:15 · 686 阅读 · 0 评论 -
地图视觉里程计-VisualOdometry注释说明
在两两帧间比较时,我们只计算参考帧与当前帧之间的特征匹配和运动关系,在计算之后把当前帧设为新的参考帧。而在使用地图的 VO 中,每个帧为地图贡献一些信息,比方说添加新的特征点或更新旧特征点的位置估计。地图中的特征点位置往往是使用世界坐标的。因此,当前帧到来时,我们求它和地图之间的特征匹配与运动关系,即直接计算了 Tcw。 这样做的好处是,我们能够维护一个不断更新的地图。只要地图是正确的,即使中...原创 2019-07-17 13:33:04 · 813 阅读 · 0 评论 -
SLAM学习:三维空间刚体变换(2)
1. 旋转向量矩阵表示方式有以下几个缺点: (1)SO(3) 的旋转矩阵有九个量,但一次旋转只有三个自由度。因此这种表达方式是冗 余的。同理,变换矩阵用十六个量表达了六自由度的变换。(2)旋转矩阵自身带有约束:它必须是个正交矩阵,且行列式为 1。变换矩阵也是如此。当 我们想要估计或优化一个旋转矩阵/变换矩阵时,这些约束会使得求解变得更困难。对于坐标系的旋转, 任意旋转都可以用一个旋...原创 2019-07-11 17:21:43 · 1203 阅读 · 0 评论 -
四元数的旋转公式推导
转载 2019-07-11 19:27:43 · 484 阅读 · 0 评论 -
CMake:CMakeLists文件说明
在一个 cmake 工程中,我们会用 cmake 命令生成一个 makefile 文件,然后,用 make命令,根据这个 makefile 文件的内容,即CMakeLists.txt 编译整个工程。其中,带有 main 函数的文件才会生成可执行程序;而另一些代码,我们只想把它们打包成一个东西,供其他程序调用。这个东西叫做库。在 Linux 中,库文件分成静态库和共享库两种‹。静态库以.a 作为...原创 2019-07-04 20:02:40 · 404 阅读 · 0 评论 -
视觉里程计-直接法
直接法的引入 SLAM 主要分为视觉前端和优化后端。前端也称为 视觉里程计(VO)。它根据相邻图像的信息,估计出粗略的相机运动,给后端提供较好的初始值。 VO 的实现方法,按是否需要提取特征,分为特征点法的前端以及不提特征的直接法前端。尽管特征点法在视觉里程计中占据主流地位,研究者们认识它至少有以下几个缺点:关键点的提取与描述子的计算非常耗时。实践当中,SIFT目前在CPU上是无法实...原创 2019-07-15 19:49:44 · 3452 阅读 · 1 评论 -
Ubuntu14.04+opencv3.4.6:稀疏直接法估计相机运动
使用 g2o求解直接法把直接法抽象成一个图优化问题。显然,直接法是由以下顶点和边组成的:1. 优化变量为一个相机位姿,因此需要一个位姿顶点。由于我们在推导中使用了李代数,故程序中使用李代数表达的 SE(3) 位姿顶点。2. 误差项为单个像素的光度误差。由于整个优化过程中 I1(p1) 保持不变,我们可以把它当成一个固定的预设值,然后调整相机位姿,使 I2(p2) 接近这个值。于是,这种...原创 2019-07-16 14:32:06 · 1104 阅读 · 0 评论 -
Pangolin在cmake时报“Could NOT find GLEW”错误
CMake Error at CMakeModules/FindGLEW.cmake:51 (MESSAGE):Could not find GLEW安装以下库,可解决该问题:sudo apt-get install libx11-dev libxmu-dev libglu1-mesa-dev libgl2ps-dev libxi-dev g++ libzip-dev libpng1...原创 2019-07-11 18:21:48 · 6920 阅读 · 6 评论 -
Ceres 曲线拟合
Ceres 求解的最小二乘问题最一般的形式如下(带边界的核函数最小二乘):可以看到,目标函数由许多平方项,经过一个核函数 ρ(·) 之后,求和组成。在最简 单的情况下,取 ρ 为恒等函数,则目标函数即为许多项的平方和。在这个问题中,优化变量为 x1, . . . , xn,fi 称为代价函数(Cost function),在 SLAM 中亦可理解为误差项。lj和 uj 为第 j 个优化变量...原创 2019-07-15 11:48:22 · 1188 阅读 · 1 评论 -
Ceres solver 学习-求解器类型
Ceres solver 里面定义了8种线性求解器(ceres/include/ceres/types.h),分别是:**DENSE_QR:**用于小规模最小二乘问题的求解,基于Eigen;List item DENSE_NORMAL_CHOLESKY&SPARSE_NORMAL_CHOLESKY: cholesky分解,用于具有稀疏性的大规模非线性最小二乘问题求解;前者基于Eigen,后者基于SuiteSparse or CXSparse;DENSE_SCHUR&SPARSE_SCH原创 2022-04-06 10:13:10 · 1183 阅读 · 0 评论 -
本征矩阵和基础矩阵
原文:http://blog.csdn.net/xiaoyinload/article/details/49000855本征矩阵E:它包含了物理空间中两个摄像机相关的旋转(R)和平移信息(T)。T和R描述了...转载 2019-07-15 14:38:06 · 3761 阅读 · 1 评论 -
SLAM学习:Eigen几何模块测试
数据结构: • 旋转矩阵(3 × 3):Eigen::Matrix3d。 • 旋转向量(3 × 1):Eigen::AngleAxisd。 • 欧拉角(3 × 1):Eigen::Vector3d。 • 四元数(4 × 1):Eigen::Quaterniond。 • 欧氏变换矩阵(4 × 4):Eigen::Isometry3d。 • 仿射变换(4 × 4):Eigen:...原创 2019-07-11 17:37:34 · 370 阅读 · 1 评论 -
执行报错Pangolin X11: Unable to retrieve framebuffer options
terminate called after throwing an instance of 'std::runtime_error' what(): Pangolin X11: Unable to retrieve framebuffer optionsAborted (core dumped)解决办法:https://github.com/stevenlovegrove/Pan...原创 2019-07-12 08:53:25 · 980 阅读 · 0 评论 -
ubuntu Ceres安装
下载 Ceres:https://github.com/ceres-solver/ceres-solver安装依赖项sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev安装 Cerescd cere...原创 2019-07-13 18:13:03 · 867 阅读 · 0 评论 -
SLAM学习:拼接点云
根据 RGB-D 图像和相机内参,我们可以计算任何一个像素在相机坐标系下的位置。同时,根据相机位姿,又能计算这些像素在世界坐标系下的位置。如果把所有像素的空间坐标都求出来,相当于构建一张类似于地图的东西。本程序提供了五张 RGB-D 图像,并 且知道了每个图像的内参和外参:准备了五对图像,位于 slambook/ch5/joinMap 中。在 color/下有 1.png 到 5.png ...原创 2019-07-13 18:13:15 · 1652 阅读 · 0 评论 -
ubuntu安装OPENCV的VIZ模块
缺少viz模块报错:fatal error: opencv2/viz/viz.hpp: No such file or directory#include <opencv2/viz/viz.hpp>1、找到自己当时解压后的opencv3.4.6源码,如果编译过会有个build文件夹:cd build2、安装依赖sudo apt-get isntal...原创 2019-07-16 17:26:32 · 1349 阅读 · 0 评论