基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合

协方差交叉融合(CI)算法原理及其协方差椭圆仿真(matlab) 协方差交叉融合(CI)原理及其matlab仿真前言一、协方差交叉(CI)融合算法1.CI融合2.多传感器CI融合分类二、实例仿真两传感器CI融合 前言 本文将简单叙述协方差交叉融合(CI)融合原理和多传感器CI融合的分类。以及通过matlab仿真直观展示CI融合的几何意义。 提示:以下是本篇文章正文内容,下面案例可供参考 一、协方差交叉(CI)融合算法 1.CI融合 在多传感器融合时往往需要知道各个传感器估计误差是不相关的或需要计算它们的互协方差。实际生活中互协方差很难获得,因此提出了协方差交叉融合(CI 阅读详情
AI摘要

该博客介绍基于协方差交叉(CI)的多传感器融合算法的Matlab仿真。对比单传感器和SCC融合,涉及速度、位置估计误差RMSE指标及等概率密度椭圆。阐述CI、SCC算法原理,指出单传感器估计受自身性能限制,CI融合鲁棒性强,SCC融合依赖特征提取和聚类算法。

目录

1.程序功能描述

2.测试软件版本以及运行结果展示

3.核心程序

4.本算法原理

5.完整程序


1.程序功能描述

       基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合。对比速度估计误差RMSE指标,位置估计误差RMSE指标,等概率密度椭圆。

2.测试软件版本以及运行结果展示

MATLAB2022A版本运行

3.核心程序

....................................................................
STEPS=1;
 
figure;
plot(xy1(1:STEPS:end,1),xy1(1:STEPS:end,2),'-g',...
    'LineWidth',2);
hold on
plot(xy2(1:STEPS:end,1),xy2(1:STEPS:end,2),'-m',...
    'LineWidth',2);
hold on
plot(xy3(1:STEPS:end,1),xy3(1:STEPS:end,2),'-b',...
    'LineWidth',2);
hold on
plot(xy4(1:STEPS:end,1),xy4(1:STEPS:end,2),'-r',...
    'LineWidth',2);
hold on
legend('传感器1','传感器2','SCC','CI');


STEPS=2;
figure
k=1:nums;
% 绘制位置估计误差的均方根误差图
plot(k(1:STEPS:end),Perr1(1:STEPS:end),'-bs',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.0,0.0]);
hold on
plot(k(1:STEPS:end),Perr2(1:STEPS:end),'-mo',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.5,0.9,0.0]);
hold on
plot(k(1:STEPS:end),Perr_scc(1:STEPS:end),'-b^',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.2,0.9,0.5]);
hold on
plot(k(1:STEPS:end),Perr_ci(1:STEPS:end),'-r>',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.9,0.0]);

hold on

legend('传感器1','传感器2','SCC','CI');
ylabel({'位置 RMSE'} );
title('位置 RMSE');

 
figure
k=1:nums;
% 绘制速度估计误差的均方根误差图
plot(k(1:STEPS:end),Verr1(1:STEPS:end),'-bs',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.0,0.0]);
hold on
plot(k(1:STEPS:end),Verr2(1:STEPS:end),'-mo',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.5,0.9,0.0]);
hold on
plot(k(1:STEPS:end),Verr_scc(1:STEPS:end),'-b^',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.2,0.9,0.5]);
hold on
plot(k(1:STEPS:end),Verr_ci(1:STEPS:end),'-r>',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.9,0.0]);

hold on
legend('传感器1','传感器2','SCC','CI');
ylabel({'速度 RMSE'} )
title('速度 RMSE');
91

4.本算法原理

       在多源信息处理领域,为获取更精确可靠的估计结果,常需融合多个传感器数据。协方差交叉(CI)算法作为一种重要的融合方法,在无需精确知晓传感器间相关性信息时,就能有效融合多传感器估计值,具备良好的鲁棒性。

CI算法基于这样的理念,即融合后的估计协方差应小于等于各传感器估计协方差的加权和。

在多传感器数据融合中,每个传感器的观测数据可看作位于某个子空间内。SCC 算法旨在找到不同传感器数据子空间之间的一致性关系。

单传感器:由于信息来源单一,其估计的准确性和可靠性受传感器自身性能限制。在面对复杂环境或存在噪声干扰时,估计误差较大。例如,在多径效应严重的环境中,基于单一雷达传感器的目标定位误差会显著增大。

CI 融合:CI 算法能够有效融合多个传感器信息,在一定程度上减小估计误差。由于其对传感器间相关性要求不高,在实际应用中具有较强的鲁棒性。但当传感器数量过多或传感器数据存在较大冲突时,融合效果可能会受到影响。

SCC 融合:SCC 融合通过挖掘传感器数据子空间的一致性,在处理具有相似特征的数据时表现较好。然而,其性能高度依赖于特征提取和聚类算法的准确性。如果特征提取不准确或聚类参数设置不当,可能导致错误的融合结果。

5.完整程序

VVV

多传感器数据融合四-轨迹及融合 4.1 简述 加权协方差融合发、信息矩阵融合法、伪测量融合法和基于模糊集理论的模糊航迹融合算法等应用较广泛。 4.2 轨迹管理 4.2.1 逻辑法 1.轨迹头-每条轨迹的第一个点:新检测到的点,未匹配上的孤立的点,噪声点迹。需要建立一个较大的环形关联门 2.轨迹起始:关联上的两个点迹可以外推出第三个点迹,则形成一条轨迹。 3.轨迹的确认: 连续3个周期扫描到。 当距离较远时,允许第3个周期没有扫描到,推测3个周期。 距离 点迹1 点迹2 点迹3 点迹4 点迹5 点迹6 近 轨迹头+ + 阅读详情

相关推荐

【定位问题】基于matlab GUI RSSI无线定位【含Matlab源码 1054期】

RSSI无线定位 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1498

基于协方差交叉融合算法的V2X协同感知(多目标跟踪)

提出了一个基于CI的概率轨迹融合方法应用于V2X CP,可在不需要知道任何互相关未知的情况下,对本地感知信息和从其他ITS-S收到的感知目标信息进行融合;支持Ego CV中不同类型的感知信息的融合,包括其本地感知数据、传感器原始数据和通过V2X通信从其他合作ITS-S收到的目标轨迹。

weixin_43635795的博客 1969

(九)信息融合方式简介

信息融合实质就是估计融合,即如何利用多个传感器的测量值所包含的信息,实现最优的状态估计。本文中的应用场景主要针对于多传感器目标跟踪中的航迹融合,融合结构可以分为集中式、分布式以及混合式。此处重点介绍集中式和分布式的融合方法,并且解释了跟踪过程中多传感器局部状态估计误差相关的原因。同时针对分布式融合的带反馈和不带反馈的两种结构进行了仿真,实验结果证明两种结构形式下均能实现信息的有效融合,提升目标跟踪精度。(各个仿真代码可以在资源中寻找)

h320130的博客 2992

交叉协方差

协方差交叉(Covariance Intersection, CI)最早由J. Julier 和 K. Uhlmann在“A non-divergent estimation algorithm in the presence of unknown correlations”一文中提出来的。它解决的是包含误差的数据融合问题。比如两个传感器测量同一个目标,得到了两个不同的测量值A和B,那么目标的最佳估计值C可以通过A和B加权得到。如何计算权值使得C的估计误差最小? 如果A和B是不相关的,那么可以用卡尔曼..

qq_41040196的博客 4288

基于逆协方差交叉的非线性滤波融合算法

针对多传感器非线性系统数据融合问题,提出一种基于逆协方差交叉的多传感器扩展卡尔曼滤波算法。首先,利用扩展卡尔曼滤波算法将非线性系统线性化,获得局部稳态扩展卡尔曼滤波器,并描述其扩展信息形式;其次,为了解决互协方差对非线性系统下滤波融合结果的影响,并引入协方差交叉算法和逆协方差交叉算法;最后通过分析两种算法误差协方差阵的大小范围,给出了逆协方差融合算法的精度分析。对纯方位目标跟踪系统进行仿真实验,验证了算法的可行性。

协方差交叉融合鲁棒Kalman滤波器

<p>对于带未知互协方差的两传感器系统, 提出一种协方差交叉(CI) 融合鲁棒稳态Kalman 滤波器, 它关于未知<br> 互协方差具有鲁棒性. 严格证明了该滤波器的实际精度高于每个局部滤波器的精度, 但低于带已知互协方差的最优<br> 融合Kalman 滤波器的精度. 基于协方差椭圆给出了精度关系的几何解释. 进一步将上述结果推广到一般多传感器情<br> 形. 一个跟踪系统的Monte-Carlo 仿真例子表明, 其实际精度接近于带已知互协方差的最优融合器的精度.</p>

【信息融合与状态估计】基于Kalman滤波和现代时间序列分析方法,利用集中式融合估计、分布式融合估计(按矩阵加权、按对角阵加权、按标量加权)、 协方差交叉融合等方法实现对状态的融合估计(Matlab)

主要是针对多传感器多时滞(包括状态之后和观测滞后)系统,基于。

weixin_67304359的博客 1146

基于协方差矩阵的多特征融合跟踪算法

为提高视觉目标跟踪算法的稳健性, 提出一种基于协方差矩阵的多特征融合跟踪算法。在量子遗传算法框架下, 采用区域协方差描述子对颜色、边缘和纹理特征进行融合, 并采用一种快速协方差交叉算法进行模型更新。该算法综合利用了区域协方差描述子维数较低, 量子遗传算法收敛速度快且全局寻优能力强和快速协方差交叉算法快速计算的特点, 能极大地提高了融合、匹配与更新过程的运算效率, 实现了快速有效的多特征融合跟踪。实验结果表明, 该算法能够有效应对遮挡、旋转、形变和运动模糊等多种复杂变化的干扰, 实现对目标的快速稳健跟踪。

【信息融合】基于matlab协方差交叉(CI)多传感器融合(对比单传感器和SCC融合)【含Matlab源码 MRJ011期】

协方差交叉(CI)多传感器融合(对比单传感器和SCC融合) 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1237

Python量化交易入门:天勤量化TqSdk保姆级教程(含避坑指南)

本文提供Python量化交易入门指南,重点介绍天勤量化TqSdk的使用方法,包括环境配置、核心API实战、策略开发技巧及实盘部署。教程涵盖中国期货市场,帮助个人投资者快速掌握量化交易技术,避开常见陷阱。

weixin_29065791的博客 831

离线反激转换器反馈环路设计:从理论到实践的Type II补偿器详解

在开关电源设计中,反馈环路稳定性是决定电源性能与可靠性的核心。其本质是通过补偿网络对功率级的小信号特性进行校正,以构建一个具有足够相位裕度和增益裕度的闭环系统。反激转换器作为一种广泛应用的隔离拓扑,其功率级在连续导通模式(CCM)和非连续导通模式(DCM)下呈现不同的零极点特性,这直接决定了补偿器的选型。Type II补偿器因其传递函数中固有的积分环节、低频零点与高频极点,恰好能与反激功率级的1P2Z(一个极点、两个零点)特性形成互补,有效塑造理想的回路增益曲线,实现快速稳定的动态响应。本文聚焦于采用TL4

weixin_30162121的博客 501

【状态估计】带观测滞后多传感器系统的改进协方差交叉融合Kalman滤波器(Matlab代码实现)

文献来源:摘要:为了处理带观测滞后多传感器系统的融合估计问题,引入了局部次优递推Kalman滤波器,利用改进的协方差交叉融合算法,提出了改进协方差交叉融合Kalman滤波算法。它可以避免由互协方差计算引起的较大计算负担,并可以处理互协方差未知系统的融合问题。与传统协方差交叉融合Kalman滤波器相比有更高的鲁棒精度,改进的协方差交叉融合器的精度高于每个局部传感器,并且更接近于按矩阵加权的Kalman滤波器精度,因而具有良好的性能。仿真例子验证了其有效性、一致性,并对精度关系做出了几何解释。

weixin_46039719的博客 710

Windows 24H2升级后eNSP AR_40报错40?VirtualBox虚拟化修复指南

虚拟化技术通过Hypervisor在操作系统与硬件间建立抽象层,使虚拟机能够共享物理资源。其核心原理依赖CPU的VT-x/AMD-V指令集,而Windows 24H2对内核隔离与驱动签名的强化会直接占用或拦截这些虚拟化资源。在工程实践中,VirtualBox作为Type-2型Hypervisor,常因内存完整性开启或版本过旧导致虚拟网卡创建失败,进而引发设备启动中断。典型场景包括网络仿真实验、多系统测试环境搭建等。当eNSP的AR_40路由器依赖VirtualBox引擎时,24H2的安全策略变更便会触发错误

weixin_34375251的博客 216

信息融合-未知相关性数据(协方差交集CI)

协方差交集(CI)是一种融合来自不同来源的估计数据的方法,其最大的特点和优势在于它不需要知道不同数据源之间的相关性。在数据融合领域,一个经典的问题是如何合并两个或多个传感器对同一个目标的估计。例如,两个雷达都在跟踪同一架飞机。理想情况:如果我们精确知道这两个雷达的测量误差是如何相互关联的(即它们的互协方差),我们可以使用一个最优的公式(如卡尔曼滤波的更新步骤)来得到一个在统计上最优的融合结果。现实困境:在绝大多数实际应用中,这种相关性是未知的、或者极难精确计算的。

m0_59097968的博客 1773

大数据之VIP(Virtual IP,虚拟IP)负载均衡

VIP(Virtual IP,虚拟IP)负载均衡是一种在计算机网络中常用的技术,用于将网络请求流量均匀地分散到多个服务器上,以提高系统的可扩展性、可靠性和性能。

赵玉的专栏 4124

Altium Concord Pro 的应用范围,安装,和使用范围

Altium Concord Pro 的应用范围,安装,和使用范围。保证满足两者软件的最低安装要求。 Altium Concord Pro 是配合Digapcb,和MCAD,Altium 和相应机械设计软件的基础和交换桥梁

hanzhaos的博客 1120

【信息融合】协方差交叉(CI)多传感器融合(对比单传感器和SCC融合)【含Matlab源码 MRJ011期】

协方差交叉(CI)多传感器融合(对比单传感器和SCC融合) 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版)或下载付费资源,可赠送奶茶价版付费专栏指定代码1份; 839

ArcMap 10.7/10.8启动加载界面后闪退?可能是这个隐藏的Normal.mxt模板文件在搞鬼

本文深入分析了ArcMap 10.7/10.8启动加载界面后闪退的问题,指出Normal.mxt模板文件损坏是常见原因。提供了从定位、删除模板文件到系统级修复的完整解决方案,帮助GIS工程师快速恢复工作流程。

weixin_28523493的博客 330

多级式多传感器信息融合中的状态估计(Matlab代码实现)

信息融合作为一门新兴交叉学科,其研究目的是如何通过综合多信息源的信息获得比依靠任何单个信息源更加准确和更加确定的估计与推理。目标跟踪是信息融合的底层关键技术,是实现高层次融合的前提,并在国防、民用多个领域有广泛的应用,也是本文的研究主题。本文主要针对多传感器多时滞(包括状态之后和观测滞后)系统,基于Kalman滤波和现代时间序列分析方法,利用集中式融合估计、分布式融合估计(按矩阵加权、按对角阵加权、按标量加权)、协方差交叉融合等方法实现对状态的融合估计。

m0_73907476的博客 1959

【GlobalMapper精品教程】038:模拟水位上升(洪水淹没分析)案例教程

基于数字高程模型 ( DEM )格网模型,实现给定水深情况下洪水淹没区的计算模型,讨论洪水淹没演进过程可视化实现的关键技术,以三维可视化方式,动态而形象地模拟在指定洪水水位下的洪水淹没演进过程。

智慧空间实验室 2884

YOLOv11低照度增强主干网络PE-YOLO:原理与完整实现教程

编码器部分# 解码器部分self.dec_conv2 = nn.Conv2d(512, 128, 3, padding=1) # 跳跃连接self.dec_conv3 = nn.Conv2d(256, 64, 3, padding=1) # 跳跃连接self.dec_conv4 = nn.Conv2d(128, 32, 3, padding=1) # 跳跃连接# 编码路径# 解码路径(带跳跃连接)

FJN110的博客 725

【信息融合】基于卡尔曼滤波结合矩阵加权、加权平均、标量加权实现多传感器滤波跟踪和信息融合附Matlab代码

本文介绍了一种基于卡尔曼滤波结合矩阵加权、加权平均、标量加权实现多传感器滤波跟踪和信息融合的方法。该方法首先对各个传感器进行独立的卡尔曼滤波处理,然后根据不同传感器的权重进行加权融合,最后得到最终的滤波结果。该方法能够有效地提高多传感器系统的跟踪精度和鲁棒性。

qq_59747472的博客 1304

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

CI 框架 融合 laravel框架的 orm

首先在项目根目录下写好composer.json文件 { “require”: { “illuminate/database”: “>=5.5”, } } 打开黑窗口,composer update 安装完成后,修改database.php数据库配置文件 use Illuminate\Database\Capsule\Manager as Capsule; $capsule = ...

月月的博客 857

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

传统CI融合

最近在折腾一种叫ICI(改进协方差交叉融合)的算法,核心思路挺有意思:把每个传感器的时滞状态建模成不同子系统的状态,通过矩阵分解把时滞系统转化成无时滞形式。跑这段代码会发现ICI输出的协方差迹更小,说明估计的不确定性更低。秘密藏在权重计算里——传统CI的固定权重分配在面对时滞系统时容易过度补偿,而ICI根据各传感器协方差的特性动态调整,相当于给更靠谱的传感器发了个VIP通行证。对三传感器的时滞系统,利用改进后的协方差交叉融合(ICI)方法实现对状态的估计,相较于原来的CI融合算法,可以提高精度。

2508_94198527的博客 237

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【图像融合】基于PCA主成分实现高分辨率全色图图像融合(含评价指标)附matlab代码

本文在非多尺度分解的框架下,针对像素级的图像融合,提出了一种基于.PCA分解的图像融合算法.该算法利用主成分分解可以保留原数据中的主要信息这一特点,由源图像获取数据的协方差矩阵,协方差矩阵的特征值和特征向量,据此确定图像融合算法中的加权系数和最终融合图像.试验表明.应用该算法融合后的图像取得了满意的效果.

qq_59747472的博客 284
上一篇: 基于禁忌搜索算法的TSP问题最优路径搜索matlab仿真
下一篇: 基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
软件算法开发
博客等级 码龄3年 2138粉丝 246原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件算法开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值