
算法学习
文章平均质量分 88
苏源流
从事计算机视觉和SLAM领域,2012年10月“全国大学生数学建模竞赛”二等奖(数学应用能),2011年攻读 自动化 专业,2015年攻读“模式识别与智能系统” 专业。现在主要工作内容无人驾驶方面的视觉定位与导航,能够提供整体的地下车库自动泊车定位解决方案,该方案也适用于工业园区泊车,物流机器人,园区巡视机器人,餐饮配送、服务机器人等。本人熟悉linux下ROS环境,掌握opencv中2/3的功能,掌握视觉SLAM中ORB_SLAM2,激光lidar的loam。熟悉摄像机,激光雷达,惯导IMU等传感器的使用与开发。主导和参与多个定位项目,欢迎交流。致力于推进技术的应用,技术改变生活。不做无脑人
展开
-
【算法应用】匈牙利算法c++代码(最优匹配)
直接上代码广度搜索(DFS)特点:优点,实现简洁,理解容易。适用:稠密图,由于边多,DFS找增广路很快。复杂度O(n3)程序运行结果: #include <iostream> #include <string.h> using namespace std; #define MAXN 10 //MAXN表示X集合和Y集合顶点个数的最大值 int nx,ny; ...原创 2020-05-12 13:40:19 · 2378 阅读 · 0 评论 -
[学习SLAM]使用 Ceres 拟合曲线(ch6)
// 构建最小二乘问题 ceres::Problem problem; for ( int i=0; i<N; i++ ) { problem.AddResidualBlock ( // 向问题中添加误差项 // 使用自动求导,模板参数:误差类型,输出维度,输入维度,维数要与前面struct中一致 ...原创 2021-02-02 19:46:27 · 527 阅读 · 0 评论 -
[学习SLAM]VINS中IMU预积分的误差推到公式与代码雅克比(协防差/信息矩阵)构建
//todo /** *IMU预积分中采用中值积分地推jacobian和covariance **/ void midPointIntegration(double _dt, const Eigen::Vector3d &_acc_0, const Eigen::Vector3d &_gyr_0, const Eigen::Vector3...原创 2021-01-29 15:06:16 · 1402 阅读 · 1 评论 -
[学习SLAM]最小二乘、梯度下降法、牛顿与高斯-牛顿与LM关系总结
目录一、最小二乘法引出1、线性最小二乘与非线性最小二乘的关系2、梯度下降法二、非线性最小二乘(高斯牛顿、LM)三、线性最小二乘SLAM的优化方法是基础知识,尤其最小二乘法是所有优化的基础。接下来将对以下知识进行总结。最小二乘法 非线性:最速下降法、牛顿法、高斯牛顿法(GN)、列文伯格-马夸尔特(LM)联系 线性:QR分解、乔姆斯基分解法求解(Cholesky)、奇异值分解(SVD)一、最小二乘法引出最小二乘问题通常可以表述为,通过搜集到的一些数据(获取得到的样本)...转载 2020-12-21 11:16:29 · 1590 阅读 · 0 评论 -
[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)
协方差矩阵/协方差矩阵的意义基本的统计学概念,即均值、标准差、方差和协方差协方差的定义对于一般的分布,直接代入E(X)之类的就可以计算出来了,但真给你一个具体数值的分布,要计算协方差矩阵,根据这个公式来计算,还真不容易反应过来。网上值得参考的资料也不多,这里用一个例子说明协方差矩阵是怎么计算出来的吧。记住,X、Y是一个列向量,它表示了每种情况下每个样本可能出现的数。比如给定则X表示x轴可能出现的数,Y表示y轴可能出现的。用中文来描述,就是:协方差(i,j)=(第i列的所有元素-第i.原创 2020-11-12 18:10:58 · 4479 阅读 · 2 评论 -
[学习SLAM]欧拉角,旋转矩阵,旋转向量和四元数[opencv(C++,python),matlab,eigen]转换
[学习opencv]基于OpenCV的四元数、旋转矩阵和欧拉角互相转换【学习SLAM】’Matlab ——旋转矩阵,旋转向量,四元数,欧拉角之间的转换[学习SLAM]Eigen库使用教程之旋转矩阵,旋转向量和四元数的初始化和相互转换的实现 (ch3)...原创 2020-08-17 15:26:10 · 1002 阅读 · 0 评论 -
[深度学习]MonoDepth2实践笔记_单目深度估计(3)
预测testdepth --> encode,decode # PREDICTION input_image = input_image.to(device) features = encoder(input_image) outputs = depth_decoder(features) disp = outputs[("disp", 0)] dis原创 2020-08-17 15:16:23 · 1601 阅读 · 0 评论 -
[学习SLAM]DSO论文(深入剖析DSO的数学原理及实现)
DSO(Direct Sparse Odometry),是慕尼黑工业大学(Technical University of Munich, TUM)计算机视觉实验室的雅各布.恩格尔(Jakob Engel)博士,于2016年发布的一个视觉里程计方法(期刊论文见[1],实验室主页见[2])。在SLAM领域,DSO属于稀疏直接法,据论文称能达到传统特征点法的五倍速度(需要降低图像分辨率...转载 2020-03-11 17:56:18 · 5609 阅读 · 0 评论 -
[学习SLAM]SLAM 中evo的代码详解(三)
目录associate.py 时间戳匹配evaluate_ate.pySVD分解evaluate_rpe.pytransform44(l):四元数q转旋转矩阵Rominus(a,b)计算a和b之间的相对3d变换。scale(a,scalar):计算尺度compute_distance/compute_anglecontrib(TUM时间乘某数,并KITTI时间...原创 2020-12-09 18:03:56 · 1334 阅读 · 1 评论 -
[学习slam]用ORB SLAM2跑自己的数据集 使用图片序列或摄像头或视频 实践篇
用ORB SLAM2跑自己的图片序列数据集不跑代码,何谈理解,撸起袖子我们今天一起看看如何用ORB SLAM2跑通自己的数据集。往往我们的数据集是从现实生活的场景中来采集得到的,如果只是为了跑起来玩一下,很多博客都有介绍,大家可以搜一下就有很多参考资料,但是都是简单的玩一下。我们今天主要用的是:带时间戳信息的数据集,往往我们不是跑起来玩一下的,我们需要与现有的groundtruth作比较,我们...转载 2019-06-04 11:25:34 · 6738 阅读 · 10 评论 -
[学习OpenCV] Moment矩,轮廓特征,轮廓匹配,形状匹配 -2
Moment矩,Hu不变矩,轮廓匹配/形状匹配 -1 Moment矩,轮廓特征,轮廓匹配,形状匹配 -2目录Moment矩,Hu不变矩,轮廓匹配/形状匹配 -1 轮廓的基本概念与函数介绍轮廓的基本概念轮廓提取的基本原理:边缘检测和轮廓提取的区别:OpenCV轮廓提取相关函数介绍1.轮廓提取2. 多边形逼近3. 几何距计算提取与绘制轮廓API说明...转载 2018-12-18 10:34:41 · 18185 阅读 · 5 评论 -
【计算机视觉】matlab编程实现根据PNP求解位姿(有问题版)
clc;clear all;n=4;f=1000;pw3=zeros(n,3);%物体坐标3维pc2=zeros(n,2);%成像坐标2维pw3=[-1000,-100,0;1000,-100,0;-1000,100,0;-1000,100,0];pc2=[-67.8995,-56.3607;83.138,43.324;73.6759,61.1555;-75.8558,-39.52原创 2018-01-19 22:29:28 · 5534 阅读 · 2 评论 -
Caffe的draw_net的使用:draw_net.py绘制caffe net结构
1、安装pydot$ sudo apt-get install python-pydot2、安装graphviz$ sudo apt-get install graphviz3、生成python draw_net.py ../examples/cifar10/cifar10_quick_train_test.prototxt cifa10.png/home/u...转载 2018-08-11 18:33:47 · 647 阅读 · 0 评论 -
程序设计的基本方法
IPO模式输入、处理(算法,是程序的灵魂)、输出问题的计算部分程序编写步骤分析问题确定问题设计算法编写实现调试测试升级维护 编程技巧之流程图我们写的程序都是有逻辑顺序的,即是有流程的,流程图的作用则是对这种逻辑顺序的一种描述,是对解决问题的方法、思路或者算法的图形化的展示。 流程图采用的符号 Axure里的流程图形状组件面板 ...转载 2018-09-21 10:15:23 · 28115 阅读 · 0 评论 -
Caffe上用SSD训练和测试自己的数据
我的根目录$caffe_root为/home/gpu/ljy/caffe 一、运行SSD示例代码 1.到https://github.com/weiliu89/caffe.git下载caffe-ssd代码,是一个caffe文件夹 2.参考已经配好的caffe目录下的makefile.config修改¥caffe_root下的makefile.config. 3...转载 2018-09-27 14:18:08 · 2661 阅读 · 0 评论 -
[学习opencv]Surface Matching之PPF Point Pair Feature 点对特征
https://docs.opencv.org/3.3.1/d9/d25/group__surface__matching.html表面匹配简介具有3D结构感觉能力的相机和类似设备正变得越来越普遍。 因此,使用深度和强度信息来匹配3D对象(或部件)对于计算机视觉至关重要。 应用范围从工业控制到指导视障人士的日常行为。 范围图像中的识别和姿势估计的任务旨在通过将所查询的3D自由形式对象与所获...翻译 2018-10-15 12:20:58 · 11853 阅读 · 0 评论 -
矩阵的奇异值与特征值,SVD分解与特征值分解区别与联系(正定、超定、欠定矩阵)
正定、超定、欠定矩阵正定定义方程个数等于未知量个数的方程组。广义定义设M是n阶方阵,如果对任何非零向量z,都有 z′Mz>0,其中z’ 表示z的转置,就称M正定矩阵。[1]例如:B为n阶矩阵,E为单位矩阵,a为正实数。aE+B在a充分大时,aE+B为正定矩阵。(B必须为对称阵)。狭义定义一个n阶的实对称矩阵M是正定的当且仅当对于所有的非零实系数向量z,都有z′Mz&...原创 2019-12-03 19:35:49 · 6001 阅读 · 0 评论 -
Jacobian矩阵和Hessian矩阵
Jacobian矩阵和Hessian矩阵1. Jacobian在向量分析中, 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式. 还有, 在代数几何中, 代数曲线的雅可比量表示雅可比簇:伴随该曲线的一个代数群, 曲线可以嵌入其中. 它们全部都以数学家卡尔·雅可比(Carl Jacob, 1804年10月4日-1851年2月18日)命名;英文雅可比量”Jacobian...转载 2018-11-02 15:16:25 · 613 阅读 · 0 评论