自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

john_xia的博客

随意写写

  • 博客(25)
  • 资源 (5)
  • 收藏
  • 关注

原创 带权二部图匹配(KM算法)讲解及Matlab实现

在现实生活中经常会遇见匹配问题需要解决,我们手中有两种资源如何让他们之间的组合最优。举个例子,你是联谊会的执行人,联谊上有一群男生和一群女生,每个人都对自己心目中的对象有明确要求,如身高籍贯等,你已知了每个人的个人信息和他们提出的要求,怎么才能凑出更多对符合对方期望的配对。或者,你是租车行的老板,你手上有N台车,各自配置不同,有豪华跑车,有越野型的,有商务SUV等等,每一种类型可能不止一辆。今天来了M位顾客,每位顾客的要求也明确,有的就要租越野车,有的要租SUV。你现在面临的问题就是怎么把顾客和车进行配

2021-05-25 14:07:53 5343 16

原创 实时读取和保存串口数据问题解决记录(附Windows和Linux下的代码)

简单记录一下实时读取和保存串口数据问题中踩过的坑

2023-02-24 11:48:50 1769 1

原创 使用matlab建立Kd-tree及最近邻查询

之前写过一篇使用matlab建立Kd-tree并进行k-NN查询。之前写完之后没怎么测试就直接丢上来了,这些天有人后台私信问相关的问题后才发现搜索算法的实现好像有一些问题,而且整体代码比较杂乱,想着重新实现一遍,因此有了这篇。

2022-04-21 14:25:18 3135 2

原创 使用matlab对二部图进行匹配(匈牙利算法)

使用matlab应用匈牙利算法对二部图进行匹配。算法的代码主体来自知乎用户洪九(李戈)的专栏文章策略算法工程师之路-图优化算法(一)(二分图&最小费用最大流)具体算法思想文章里和其它地方都有,不在这里赘述。主要通过例子来说明算法具体运行过程中所作的操作对匈牙利算法进行说明。首先对于如下图的一个二部图左侧有6个点,右侧有7个点,点之间的边都画出来了。第一步:对x1x_1x1​进行匹配,找到它的第一个可匹配项y1y_1y1​,发现此时y1y_1y1​还未被匹配,因此将x1x_1x1​和y1y

2021-05-19 13:59:51 3343 9

原创 使用matlab生成迷宫

使用matlab生成迷宫,利用深度优先搜索凿穿墙壁遍历迷宫中的可通行点并保证路线不重合。clcclear% 生成迷宫矩阵puzz并初始化% puzz中的元素:0代表墙,2代表没经过的空地,1代表走过的空地puzz = 2 * ones(101, 101);index1 = 1: 2: size(puzz, 1);index2 = 1: 2: size(puzz, 2);puzz(index1, :) = 0;puzz(:, index2) = 0;puzz(1, :) = 0;puzz

2020-11-11 13:47:00 2545 1

原创 使用matlab应用动态规划算法走迷宫

使用matlab应用动态规划算法走迷宫,并回溯出最短路径。clcclearclose% 读取迷宫图像Picture = imread('test.png');Data = rgb2gray(Picture);puzzle = Data;% 设置起点start_p = [16,21];queue = start_p;range = 0;result = nan(size(puzzle));result(Data < 100) = -1;direction = nan(size

2020-11-09 16:25:50 2289 5

原创 使用matlab将UKF应用于六维匀加速直线运动目标跟踪系统

将UKF应用于六维匀加速直线运动目标跟踪系统% UKF在六维匀加速直线运动目标跟踪系统中的应用% ukf_for_track_6_div_system%% 初始化参数设定% 状态位数n = 6;% 采样时间t = 0.5;% 过程噪声协方差矩阵Q = [1 0 0 0 0 0; 0 1 0 0 0 0; 0 0 0.01 0 0 0; 0 0 0 0.01 0 0; 0 0 0 0 0.0001 0; 0 0 0 0 0 0.0001];% 测量噪

2020-10-10 17:14:00 1185 6

原创 使用matlab将无迹卡尔曼应用于目标跟踪

将无迹卡尔曼应用于目标跟踪% 无迹卡尔曼在目标跟踪中的应用% UKF_Dist_CVclcclear%% 初始化参数% 雷达扫描周期T = 1;% 总的采样次数N = 60/T;% 目标的真实位置、速度X = zeros(4,N);% 目标的初始位置、速度X(:,1) = [-100, 2, 200, 20];% 传感器对位置的观测Z = zeros(1,N);% 如果增大这个参数,目标轨迹就是曲线了delta_w = 1e-3;% 过程噪声均值Q = delta_w

2020-10-10 17:11:34 1552

原创 使用matlab将粒子滤波应用于非高斯模型目标跟踪系统

将粒子滤波应用于非高斯模型目标跟踪系统% 粒子滤波应用于非高斯模型目标跟踪系统clcclearclose all%% 初始化相关参数% 采样点数M = 100;% 采样间隔T = 1;% 粒子数N = 100;% 蒙特卡洛仿真次数number = 10;% 目标运动初始状态x0 = 50000;y0 = 50000;vx = 300;vy = -100;% 过程噪声标准差delta_w = 0.1;% 闪烁噪声下观测距离标准差delta_r = 50;% 热噪

2020-10-10 17:08:10 703

原创 使用matlab将粒子滤波应用于高斯模型目标跟踪系统

将粒子滤波应用于高斯模型目标跟踪系统% 粒子滤波应用于高斯模型目标跟踪系统clcclearclose allrandn('seed', 4);rand('seed', 7);% 采样周期T = 1;% 采样点数M = 30;% 过程噪声调整参数,设置得越大,目标运行得机动性越大,轨迹越随意delta_w = 1e-4;% 过程噪声均方差Q = delta_w * diag([0.5, 1, 0.5, 1]);% 观测距离均方差R = 0.25;F = [1 T 0 0;

2020-10-10 17:03:14 700

原创 使用matlab对输入数据进行卡尔曼滤波

使用matlab对输入数据进行卡尔曼滤波。简单说明一下程序中的数据。假设一辆汽车从初始点(0,10)开始行驶,初始速度沿y轴正方向10m/s。然后在观测途中向右先加速再减速变换车道。整个过程其实有x轴坐标,y轴坐标,x轴速度,y轴速度以及x轴的加速度这5个物理量。但在卡尔曼滤波时我只用了x轴坐标,y轴坐标,x轴速度,y轴速度这4个量,相当于将x轴的人为施加的加速度当作了噪声处理。人为施加的加速度当然不符合高斯分布,有违卡尔曼滤波的假设,这里只是为现实应用直接处理的。有兴趣的可以把x轴的加速度这个量也纳入

2020-08-05 15:42:51 4846 1

原创 使用matlab进行DBscan聚类

使用matlab对输入数据进行DBscan聚类。算法的思想来自基于密度方法的聚类clear;close all;clc;k = 3;Eps = 2;%% 生成模拟数据n = 200;a = linspace(0,8*pi,n/2);u = [5*cos(a)+5 10*cos(a)+5]'+1*rand(n,1);v = [5*sin(a)+5 10*sin(a)+5]'+1*rand(n,1);mu1 = [20 20];S1 = [10 0;0 10];data1 = mvn

2020-07-29 13:39:25 12492 3

原创 使用matlab进行K-means聚类

使用matlab对输入数据进行K-means聚类。算法的思想来自基于密度方法的聚类clear;close all;clc;k = 4;step_Tolerance = 0.001;%% 生成数据mu1 = [20 20];S1 = [10 0;0 10];data1 = mvnrnd(mu1,S1,100);mu2 = [80 80];S2 = [20 0;0 30];data2 = mvnrnd(mu2,S2,200);mu3 = [20 80];S3 = [20 0;0 1

2020-07-29 13:36:37 1949 1

原创 使用matlab建立Kd-tree并进行k-NN查询

使用matlab对输入数据建立Kd-tree并通过Kd-tree进行k-NN查询。k-NN查询的主要算法思路来自【量化课堂】kd 树算法之详细篇clear;close all;clc;% 生成数据data = [2 3; 5 4; 9 6; 4 7; 8 1; 7 2];% 给数据标号for i = 1: size(data,1) data(i,3) = i;end% 建立Kd树Kd_tree = Kd_tree_create(data)

2020-07-24 15:57:29 5514 7

原创 使用matlab进行RANSAC直线检测

在一堆随机点中隐藏一条直线,通过RANSAC方法检测出来。clearclose allclc%% 生成30个随机点,然后添加11个点的直线,打乱点的顺序Points = rand(30,2);line = 0:0.1:1;y = 0.5 * line + 0.1 + (rand(1,11)-0.5)/50;Points = [Points; cat(1, line, y)'];scatter(Points(:,1), Points(:,2), 10, 'k', 'filled');h

2020-07-22 17:30:23 1328

原创 使用matlab实现点云匹配(ICP算法)

代码主体和数据文件satellite.txt来自JusticeZQ的博客加入了自己的修改,参数设置在代码的最前面,可以选择kd-tree或者暴力计算最近邻点。% 程序说明:输入data_source和data_target两个点云,找寻将data_source映射到data_targe的旋转和平移参数clear;close all;clc;%% 参数配置kd = 1;inlier_ratio = 0.9;Tolerance = 0.001;step_Tolerance = 0.0001;

2020-07-22 17:22:28 10009 32

原创 【paper reading】Interpret Neural Networks by Identifying Critical Data Routing Paths

现在深度学习依靠大数据加上现在比较充足的计算能力,神经网络十分火热,也在很多方面有很好的应用。现在cvpr之类的顶级会议很多论文都是基于神经网络的研究。但现在有一个问题,就是神经网络究竟是怎么工作的,它运行的机理到底是什么样的,大家其实不是特别清楚。对于深度学习模型的可解释性,也就是我们想要知道它内部的工作机理是什么样的,为什么会发生错误,什么情况下会发生错误,这方面的研究也是很受关注。包括美国的一些相关科研机构都把可解释性的机器学习作为深度学习下一代的比较有代表性的模型。

2019-05-27 14:20:21 742

原创 【paper reading】Uncalibrated Photometric Stereo under Natural Illumination

经典的photometric stereo方法对于实验设置主要有两个假设:1.已标定方向和亮度的平行光;2.朗伯表面的物体反射。近些年来,很多研究都致力于放宽这两方面的假设使ps方法能够更加适用于实际应用。其中对于光照的假设,几年前很多研究使用未标定或者半标定(只标定光源位置,不标定光源亮度)的点光源,现在的模型则更多的使用二阶球谐函数近似的自然光照模型从而应对更加接近现实世界的场景。同样,本文的方法主要是为了对第一种假设进行放宽,提出了一种对朗伯物体在未标定自然光下的表面恢复方法。

2019-05-07 10:08:17 1249

原创 【paper reading】Self-calibrating Deep Photometric Stereo Networks

这篇论文中,作者提出了一种基于深度学习的uncalibrated photometric stereo方法。在photometric stereo领域中的一些传统方法由于场景复杂度的限制,通常会对物体表面的反射属性或者光源的分布进行各种假设。但是本方法致力于放宽这一限制,在未知的照明方向下对任意反射属性的物体进行表面恢复,同时标定出照明的方向和亮度。

2019-04-10 19:49:06 1226

原创 【paper reading】Multiview Shape and Reflectance from Natural Illumination

这篇文章是CVPR' 14上的,虽然有点老,但是它的做法很有借鉴性,对于基于光度信息进行重建方法怎么融合多个视角下的信息生成更加精确的法向量很有意思。通过RGB图像的光度反射信息恢复物体的表面一直是一个不断在研究的方向。本论文的方法中并不致力于提出精细的反射模型,而是将问题通过基于概率的几何估计方法进行解决。

2019-03-26 14:58:26 340

原创 【paper reading】Learning Shape Priors for Single-View 3D Completion and Reconstruction

今天这篇是ECCV' 18上的一篇文章。可以看成是对GAN的一个成功应用,整个工作可能没有太多让人眼前一亮的地方,但是有些实验会比较有意思。这个工作的目的就是从单张图像(可以是深度图也可以是RGB图像)中重建出完整的物体的三维形状。这个问题很明显是一个不可能完成的问题,因为仅从单个视角观察物体,由于遮挡的原因,是绝不可能得到物体完整的真实形状,肯定会存在歧义。

2019-03-20 20:28:04 1364 1

原创 【paper reading】Detailed Surface Geometry and Albedo Recovery from RGB-D Video Under Natural Illumina

这篇论文是百度的杨睿刚老师之前在ICCV' 17上的工作。论文中使用二代kinect,把相机固定在一个位置上,然后物体在自然环境照明下在画面内运动,最后拍摄物体运动的RGB-D图像序列。通过RGB-D图像序列来恢复精细的物体三维形状。整个方法对于物体的运动以及照明情况没有什么先验的要求,但是它要求物体是漫反射的。

2019-03-12 21:36:45 399

原创 【paper reading】InverseRenderNet: Learning single image inverse rendering

这篇论文和之前paper reading中的SfSNet那篇有相似之处,可以对比观看。和SfSNet一样,InverseRenderNet也是输入一张真实世界中拍摄的RGB图像,在朗伯假设下,从图像中分解出形状,反照率,然后计算出光照。

2019-03-10 17:22:02 2191 1

原创 【paper reading】SfSNet: Learning Shape, Reflectance and Illuminance of Faces in the Wild

这篇文章是CVPR' 18上的一篇工作。SfS(Shape from Shading)是通过分析单张图像中的明暗信息来判断物体表面的法线方向,从而恢复表面形状的方法。这个工作的目的就是输入一张在真实世界中拍摄的环境不受限的128*128大小的RGB人脸图像,在朗伯假设下,将图像分解为形状,反射和光照三方面的信息。

2019-03-07 09:40:12 3017

原创 【paper reading】MVSNet: Depth Inference for Unstructured Multi-view Stereo

MVSNet,顾名思义,就是非结构化多视图的三维重建网络,它的输入这里要注意的是不仅仅是多个视角下拍摄的图像,还包含相机的信息,然后输出是每个视图下的深度信息,最终可以将这些深度信息融合得到最终的三维点云。

2019-03-04 14:51:41 4790 13

使用matlab进行DBscan聚类

使用matlab对输入的二维数据进行k-means聚类。可以直接输入数据坐标或者黑白图像,包含一张数据输入图像例子。

2020-07-29

使用matlab进行K-means聚类

使用matlab对输入的二维数据进行k-means聚类。因为算法本身的思想,每次聚类的结果可能不同。

2020-07-29

通过matlab建立Kd-tree并进行k-NN查询

使用matlab对输入数据建立Kd-tree并通过Kd-tree进行k-NN查询。k-NN查询的主要算法思路来自知乎【量化课堂】kd 树算法之详细篇

2020-07-24

使用matlab实现ICP点云匹配

使用matlab实现点云匹配(ICP算法)。参数设置在代码的最前面,可以选择kd-tree或者暴力计算最近邻点。

2020-07-22

使用matlab进行RANSAC直线检测

使用matlab进行RANSAC直线检测。在一堆随机点中隐藏一条直线,通过RANSAC方法检测出来。RANSAC方法不保证每次都能找到最优的直线。尝试的次数越多,成功的概率越大。

2020-07-22

空空如也

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

TA关注的人

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