精华内容
下载资源
问答
  • 贝叶斯网络是一种性能优秀的不确定推理方法。本文考虑整合专家知识,在数据驱动的大思路下进行贝叶斯...通过分析贝叶斯估计的实现过程来给出完整数据样本下的参数学习方法,同时引入碎权更新法来应对数据缺失的挑战。

    前序

    贝叶斯网络是一种性能优秀的不确定推理方法。其模型结构解释性好,推理过程本质与人的思维模式相似。

    要采用贝叶斯网络进行推理分析,首先考虑网络模型的搭建。与神经网络的黑盒模式相反,贝叶斯网络模型要真实的反应研究对象,于是需要知道其网络结构和参数。现在已经有越来越多的研究关注于如何通过数据进行贝叶斯网络结构和参数的学习,但实际中我们往往面临数据集的局限,这是专家知识对建模来说依然十分重要。

    本文考虑整合专家知识,在数据驱动的大思路下进行贝叶斯网络的参数学习。通过分析贝叶斯估计的实现过程来给出完整数据样本下的参数学习方法,同时考虑碎权更新法来解决数据缺失的挑战。

    (注:本文主要是笔者在项目背景下进行基础学习的总结笔记。错误难免,还望得到广大网友们的热心指导。)

    贝叶斯网建模思路

    现在的一种主流思路是将网络学习的内容加入贝叶斯网推理模型之中,以期实现模型动态优化,提升实时精度。

    当数据量可能会面临限制时,可考虑先依赖专家知识进行初始化建模,然后利用在线流数据分析的方式增量的迭代优化模型。根据难以程度,可采取下图所示三步走计划:

    这里写图片描述

    下面重点对参数学习更新部分进行叙述。

    贝叶斯网参数学习

    贝叶斯网的学习是指通过数据分析,获取贝叶斯网的过程,它包括参数学习与结构学习两个部分。参数学习是指已知网络结构,确定网络参数的问题。而我们这里对参数学习的角色定位是:在已知初始化模型的基础上(包括初始化结构和初始化参数),基于实时获取的新数据,通过参数学习来优化更新模型。所以这里的参数学习用于参数的实时更新。为整合先验知识,采用“贝叶斯估计”来实现参数学习的基本方法,同时采用碎权更新法来实现数据样本不完整场景下的实时近似估计。

    1.基础知识

    一个贝叶斯网包含有根节点、叶节点、中间节点三类节点。下图为一个贝叶斯网示例:

    这里写图片描述

    上图中:X1,X2 为根节点,X2,X3,X4 即为中间节点,X5,X6 为叶节点。各节点间关系由有向边标识,如 X2 为 X1 的子节点,X5 的父节点有 X2 和 X3 。每个节点对应变量,记为:X = { X1, X2, …, Xn },其中 n 为变量个数,如图3-2中 n = 6。

    由 X 的所有或部分变量状态构成的向量称为数据样本,多个样本构成数据集(简称数据)。如下图表示了下图3-2的一个数据集样例:

    这里写图片描述

    我们记一个贝叶斯网为:N = { Y, ϑ },其中 Y 表示贝叶斯网模型(DAG), ϑ 表示贝叶斯网模型参数(CPT)。那么,考虑节点 Xi(i ~ 1 ,…, n),其父节点 π(Xi) 的取值组合为 j(j ~ 1 ,…, qi),节点状态取值为 k(k ~ 1 ,…, ri)。那么网络的参数 ϑ 记如下式:

    这里写图片描述

    所以一个贝叶斯网共有 这里写图片描述 个参数,由于某个节点状态概率和恒为1,故需要我们学习的独立参数数目是 这里写图片描述

    2.贝叶斯估计整合先验知识

    对于一个贝叶斯网 N = { Y, ϑ } ,在完整数据 D = ( D1, D2, …, Dm ) 下采用贝叶斯估计对其进行参数估计的流程可分为下面几步:

    这里写图片描述

    2.1.专家知识转化为先验概率分布

    为方便先验参数 p(ϑ) 的确定,一般假设 p(ϑ) 具有全局独立性,p(ϑi) 具有局部独立性,p(ϑij) 是狄利克雷分布 D [ aij1, aij2, …, aijri ] 。据此,先验分布 p(ϑ) 规范为乘积狄利克雷分布,如下式:

    这里写图片描述

    于是,只需依靠专家知识给出狄利克雷分布的超参数 {aijk} 即可。

    2.2.基于数据得到后验概率分布

    设数据 D = ( D1, D2, … , Dm ) 满足独立同分布性质,则参数 ϑ 在数据 D 下的似然函数可写为:

    这里写图片描述

    上式中,mijk 是表示数据包含当前状态 (i,j,k) 的特征量,其定义如下:

    这里写图片描述

    于是由贝叶斯公式计算出后验概率如下:

    这里写图片描述

    所以,后验概率也是乘积狄利克雷分布。

    2.3.计算下一个样本的概率分布(条件概率)

    某个节点的条件概率表包含了父节点状态组合下该节点处于各状态的概率,实际上就是样本取值的概率分布。考虑下一个样本 Dm+1 = ( X1, X2, …, Xn ) ,根据网络后验概率计算得到其概率分布如下式:

    这里写图片描述

    根据全局独立性和马尔可夫性等性质,上式可化简为:

    这里写图片描述

    上式所代表的概率分布可以映射到一个与当前网络结构相同的贝叶斯网 N = { Y, ϑ’ },其参数 ϑ’ = { θ’ijk } 是静态的,其分布 p(θij.) 满足狄利克雷分布,超参数为 [ mijk + aijk ] ,ϑ’ 计算式如下:

    这里写图片描述

    于是得出 Dm+1 的概率分布最终计算式如下:

    这里写图片描述

    3.数据残缺下的贝叶斯估计

    在数据出现缺失值的情况下,为了尽可能地实现数据的最大化利用,采用碎权更新法,其核心思想是:将缺值的样本按照可能取值进行修补,对每个修补样本按照其可能性赋给权重,这样的样本称之为碎权样本,然后基于碎权样本进行贝叶斯估计。该方法的核心是碎权样本权重计算。

    设基于之前的专家知识及数据得到的关于贝叶斯网的后验概率分布为 p(ϑ│D) ,对应狄利克雷分布的超参数为 [aijk^m] 。现在有缺值数据样本 Dm+1 ,{Xi^l} 是其中缺值变量的集合,则 Xi^l 取某值 k 的概率是 P( Xi^l = k │ Dm+1; ϑ ),以此为权重,可得到新的碎权数据样本如下:

    这里写图片描述

    于是,基于新的碎权样本进行参数更新,根据之前讨论,可直接加权更新狄利克雷分布超参数:

    这里写图片描述

    于是此时贝叶斯网的参数是:

    这里写图片描述

    代回式(3.9)即可算出新的条件概率表。

    4.完整算法

    综上,给出数据不完整条件下的贝叶斯估计参数学习算法如下:

    算法1:基于碎权更新的贝叶斯估计算法
    
    输入: 贝叶斯网的结构 Y ,实时数据 D ;
    输出: 贝叶斯网参数估计 ϑ ; 
    流程:
    1.  expert knowledge to initial hyper-parameters aijk in Dirichlet distribution of prior p(ϑ) ;
    2.  while (D) :
            for  Dm  in  D :
                for  i,  j,  k :
                    if  Dm  is  incomplete  for  Xi:     
                            get θijk^' using (3.12);
                    else    get θijk^' using (3.8) ;
                update ϑ using (3.1) ;
                update P ( Dm+1 │ ϑ ) using (3.9)  ;
    3.  output ϑ as well as P ( D_more  │ ϑ ) ;
    

    思考与展望

    上面给出一套贝叶斯网络的基本参数学习方法,包括先验知识的整合缺值样本问题的解决。进一步研究可着眼于以下一些问题:

    • 网络复杂时先验参数(狄利克雷分布超参数)数目太多,专家给定工作量大,有没有什么方法可以减小专家给定时的工作量?(引入AND-OR将概率逻辑化?)

    • 迭代学习过程要对每个变量(即网络节点)进行更新计算,计算量随系统规模扩大而急剧扩大。有没有什么方法优化计算减小计算量?(比如团树传播算法(CTP)的融入以实现共享计算?)

    还望大家多多提出相关问题和建议。

    展开全文
  • 小明假期结束回校,可以坐火车,可以坐汽车,可以坐飞机,还可以走着,小明从哪条路学校更好呢?  2. 简单的数学,一元二次方程求根。  3. 高深的数学,七桥问题,怎么才能通过所有的桥各自一次走回七点所在...

    参数寻优

    参数寻优背景

      参数寻优问题随处可见,举几个例子。
      1. 小明假期结束回校,可以坐火车,可以坐汽车,可以坐飞机,还可以走着,小明从哪条路去学校更好呢?
      2. 简单的数学,一元二次方程求根。
      3. 高深的数学,七桥问题,怎么才能通过所有的桥各自一次走回七点所在的岸边。
      4. 机器学习中,求代价函数在约束条件下的最优解问题。
      其上四个问题,均是参数寻优问题。问题1中,小明可以通过试探法将所有的方式计算一下时间成本,经济成本,舒适程度,来选择一个性价比最合适的返校方式。问题2中,可以通过一元二次方程的求根公式直接求出解来。问题3中,七桥问题则是典型的图论问题,通过抽象为图,推理得出该题无解。问题4中,机器学习则是数值分析中方程的迭代解法

    本文目标

      本文主要讲清楚梯度下降法、牛顿下降法是如何想到并引入参数寻优中的,以及他们为什么有效。

    参数寻优的迭代法的基本原理

      

    20150816204216941
      
    图1 一维的二阶代价函数展示
      
    20150816204322298
      
    图2 二维的二阶代价函数展示
      
      通过代价函数的形状,我们很自然地想到,如果我们从任意一个参数点出发,是否可以找到刚好是让代价下降的方向,沿着这个方向,一定能找到当前的极值点。
      于是,迭代法参数寻优的基本原理有了:沿着(代价)函数下降的方向寻找参数,能够找到极值点。

    梯度下降法的引入

      在我们已经学过的数学知识中,导数和方向导数是能找到函数变化方向的。导数表示了曲线的斜率(倾斜度),方向导数表示了曲面沿着任意方向的斜率(倾斜度)。一维时,导数就足够了。但多维时,就需要借助方向导数了,而我们更希望能找到变化率最大的方向因此,多维下借用方向导数变化最大的情况:梯度,梯度的方向是函数某点增长最快的方向,梯度的大小是该点的最大变化率。
      三维下,推导方向导数与梯度的关系
      方向导数
      

    fl=fxcos(α)+fycos(β)+fzcos(γ)

      方向l=(cos(α),cos(β),cos(γ))
      梯度Grad=(fx,fx,fx)
      fl=Gradl
      fl=|Grad|1cos(Grad,l)
      当两者方向相同时,cos(Grad,l)=1fl取得最大值|Grad|。因此,梯度表示了函数增长最快的方向,和最大的增长率。

    牛顿下降法的引入

    牛顿法求解f(x)=0

      在讲牛顿下降法之前,先讲一下f(x)=0的求解f(x)x0处进行一阶泰勒展开:  

    20150816205052343
      
    图 3,牛顿法求解f(x)=0

      f(x)=f(x0)+f(x0)1!(xx0)
      则得到f(x0)+f(x0)(xx0)=0
      解得x=x0f(x0)f(x0)=x1
      从图中可以看出,x1x0更靠近真实解。如果接下来在x1处一阶泰勒展开,会得到更靠近真实解的x2,以此类推:
      xn+1=xnf(xn)f(xn)
      牛顿法具有天然的迭代性,可以不断逼近真实解。

    牛顿下降法

      那么牛顿下降法是如何引入的呢?求解最优解minx[Cost(x)]等价于 找到x满足f(x)=0。对于f(x)=0的求解,就可以用上面的牛顿法来不断逼近真实解了。
      对f(x)x0处一阶泰勒展开。
      f(x)=f(x0)+(xx0)f′′(x0)
      令f(x)=0
      得x=x0f(x0)f′′(x0)=x1
      xn+1=xnf(xn)f′′(xn)

    牛顿下降法的几何意义

      一阶导数决定的函数当前是否增减,二阶则决定这当时是否凹凸。牛顿下降法用二次曲面去拟合当前所处位置的局部曲面,下降方向上的选择不仅考虑了坡度是否足够大,而且考虑了走了这一步之后,坡度是否会变得更大。所以,牛顿下降法比梯度下降法看得更远,能更快地走到局部的最底部。

    牛顿下降法的局限性

      (1)收敛性对初始点的选取依赖性很大;
      (2)每次迭代都要计算Hessian矩阵(二阶导数),计算量大;
      (3)要求二阶可微分,计算Dk时,方程组有时非正定或者病态,无法求解Dk或者Dk不是下降方向。

    阻尼牛顿法的引入

      对牛顿法局限性的不同改进,导致阻尼牛顿法和拟牛顿法的出现。
      针对牛顿法,有时得到的牛顿方向不是下降的情况,提出了阻尼牛顿法。上升的情况,比如f(x)<0,f′′(x)<0
      解决方法是:在新的迭代之前,找到下降方向,且是下降最大的方向。
      (1)先确定最优解的所在区间[a, b]。
      (2)一维搜索。在解区间[a, b]内搜索使得目标函数下降最大的点。
      其中(1)可以用进退法,找到三个点,使得f(ah),f(a),f(a+h)满足大小大的规律即可。
      一维搜索方法主要分为试探法和插值法,试探法有黄金分割法、fibonacci法、平分法、格点法等;插值法有牛顿法、抛物线法等。判断解两边值的大小关系或者求导为0。
      剩下的部分就是跟牛顿下降法一样了。(具体实现看前面的博客)

    拟牛顿法的引入

      针对牛顿下降法hessian矩阵计算量大,需要正定矩阵的局限性,提出了拟牛顿法,拟牛顿法的核心是对Hessian矩阵的逆的估计。
      根据不同的估计方法,分为DFP和BFGS。
      

    DFP

      
    图 4 DFP

      
    BFGS

      
    图 5 BFGS

      这里不对拟牛顿法展开了,看得更清楚了再说吧。

    总结

      参数寻优的核心:迭代方向和步幅控制。

    展开全文
  • Burg求解AR(p)模型参数及MATLAB实现

    万次阅读 2018-05-03 22:25:50
    在随机信号分析中,可以用AR...当时间序列较短时,的估计误差很大,这将对AR参数的计算引入较大的误差,导致谱估计性能下降,甚至出现谱线分裂与谱峰偏移现象。如果利用观测到的数据直接计算AR模型的参数,则能克...

        在随机信号分析中,可以用AR模型进行功率谱估计。在求解Yule-Walker方程中的AR系数可用Levinson递推算法简化计算,但它需要知道自相关序列。自相关序列实际上只能从随机序列x(n)的有限个观测数据估计得到。当时间序列较短时,的估计误差很大,这将对AR参数的计算引入较大的误差,导致谱估计性能下降,甚至出现谱线分裂与谱峰偏移等现象。如果利用观测到的数据直接计算AR模型的参数,则能克服上述方法的缺点,得到性能较好的谱估计结果。这种方法是由Burg提出的,称为Burg法,也叫做最大熵谱算法。

        Burg递推算法的优点是不需要估计自相关函数,它直接从已知序列x(n)求得反射系数,然后利用Levinson递推算法由反射系数来求得AR参数。

        Burg法估计AR(p)模型参数的具体计算步骤可归纳如下:

        (1)确定初始条件:

            (1-1)

            (1-2)

        (2),根据公式(1-3)计算(反射系数);

            (1-3)

        (3)根据式(1-4)计算

            (1-4)

        (4)根据式(1-5)和(1-6)计算;

            (1-5)

            (1-6)

        (5)根据,计算

        (6),重复(2)(3)(4)直至所需要的阶数为止。

        用MATLAB实现Burg算法如下所示:

    function [fi,sita]=burg(data,p,q)
    %data:原始数据
    %p,q:arma模型的阶数,这里简化为q=1
    
    e=zeros(p+1,length(data));
    b=zeros(p+1,length(data));
    sita=zeros(1,p+1);
    
    N=length(data);
    %1.确定初始条件
    fi=zeros(p,p);
    e(1,:)=data;
    b(1,:)=data;
    sita(1,1)=mean(data.^2);
    
    for k=1:p
        %2.计算Kp 式5-119
        if(k==1)
            kp=-2*(sum(e(k,k+1:N).*(b(k,(k:N-1)))))/sum(e(k,k+1:N).^2+b(k,k:N-1).^2);
        else
            kp=-2*(sum(e(k,k:N).*(b(k,k-1:N-1))))/sum(e(k,k:N).^2+b(k,k-1:N-1).^2);
        end
        %3.计算aki
        for i=1:k-1 %式5-103
            fi(k,i)=fi(k-1,i)+kp*fi(k-1,k-i);
        end
        fi(k,k)=kp;
        %4.计算ek和bk
        for i=1:N
            if(i==1)
                e(k+1,i)=e(k,i);
                b(k+1,i)=kp*e(k,i);
            else
                e(k+1,i)=e(k,i)+kp*b(k,i-1);
                b(k+1,i)=b(k,i-1)+kp*e(k,i);
            end
        end
        %5.计算sita
        sita(k+1)=(1-kp.^2)*sita(k);
        %6.K=K+1
    end

    展开全文
  • 相机内外参数以及畸变参数

    万次阅读 多人点赞 2018-03-06 22:30:07
    平时我们都说要做视觉识别、测量云云,然后我们就会拍照,再对数字图像做各种处理,颜色处理、灰度化、滤波、边缘检测、霍夫变换,最后得到了希望得到的特征,是这样的对吧? 不过请注意!到了这一步,其实我们...

    关于大佬们的一些见解

    下面是引用知乎的一段文字:
      我们从单目视觉说起。平时我们都说要做视觉识别、测量云云,然后我们就会去拍照,再对数字图像做各种处理,颜色处理、灰度化、滤波、边缘检测、霍夫变换,最后得到了希望得到的特征,是这样的对吧? 不过请注意!到了这一步,其实我们仅仅是得到了一坨坨感兴趣的像素而已!究竟要怎样才能把这些像素转化到现实世界的对象中呢?也就是说,究竟要怎样对这些仅存在于图像中的东西进行测量,才能得到具有实际意义和尺度的数据呢?这个时候我们就懵逼了…… 没错, 摄像机标定的存在意义就是解决这个蛋疼的问题!!!

    我们继续看看,通过摄像机标定我们可以知道些什么:1.外参数矩阵。告诉你现实世界点(世界坐标)是怎样经过旋转和平移,然后落到另一个现实世界点(摄像机坐标)上。2.内参数矩阵。告诉你上述那个点在1的基础上,是如何继续经过摄像机的镜头、并通过针孔成像和电子转化而成为像素点的。3.畸变矩阵。告诉你为什么上面那个像素点并没有落在理论计算该落在的位置上,还tm产生了一定的偏移和变形!!!
      好了,到这里是不是明白了一点?上述3点的每一个转换,都有已经有成熟的数学描述,通过计算,我们完全可以精确地重现现实世界的任意一个点到其数字图像上对应像素点的投影过程。
      对于双目视觉系统,通过立体标定还能进一步得到下面的参数: 4.结构参数。告诉你右摄像机是怎样相对于左摄像机经过旋转和平移达到现在的位置。

    作者:陈明猷
    链接:https://www.zhihu.com/question/29448299/answer/102658379
    来源:知乎

    详细公式:

    https://www.cnblogs.com/wangguchangqing/p/8335131.html

    内参

    为什么叫内参呢,这个是因为这些参数是只有相机来决定的,不会因为外界环境而改变。
    相机的内参是:1/dx、1/dy、r、u0、v0、f
    opencv中的内参是4个,分别为fx、fy、u0、v0。其实opencv中的fx也就是F*Sx,其中F是焦距上面的f,Sx是像素/每毫米也就是上面的1/dx。
    dx和dy表示x方向和y方向的一个像素分别占多少个单位,是反映现实中的图像物理坐标关系与像素坐标系转换的关键(我理解的是可以反映像元密度)。
    u0,v0代表图像的中心像素坐标和图像原点像素坐标之间相差的横向和纵向像素数。

    外参

    相机的外参是6个,三个轴的旋转参数分别是(w、δ、θ),把每个轴的33旋转矩阵进行组合(矩阵之间相乘),得到集合三个轴旋转信息的R,其大小还是33;T的三个轴的平移参数(Tx、Ty、Tz)。R、T组合成3*4的矩阵,其是转换到标定纸坐标的关键。

    畸变参数

    畸变参数是:k1,k2,k3径向畸变,p1,p2是切向畸变系数。径向畸变发生在相机坐标系转像物理坐标系的过程中。
    切向畸变:产生的原因是透镜不完全平行于图像。

    相机标定

    在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数。
      求解参数的过程就称之为摄像机标定。
    标定的意思:在图像测量或者机器视觉应用中,摄像机参数的标定都是非常关键的环节,标定结果的精度及算法的稳定性直接影响摄像机工作产生结果的准确性。
       这里写图片描述
    什么是线性和非线性呢,考虑到畸变的就是非线性的。

    线性标定方法

    线性标定方法数学公式:
      这种标定是没有考虑到相机畸变的非线性问题,意思是这种标定是在不考虑相机畸变的情况下使用。
      这里写图片描述

    线性标定方法

    2.非线性标定方法:

    当镜头畸变明显时必须引入畸变模型,将线性标定模型转化为非线性标定模型,

    通过非线性优化的方法求解相机参数。

    张正友标定法

    此处“张正友标定”又称“张氏标定”,是指张正友教授于1998年提出的单平面棋盘格的摄像机标定方法。张氏标定法已经作为工具箱或封装好的函数被广泛应用。张氏标定的原文为“A Flexible New Technique forCamera Calibration”。(https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr98-71.pdf)此文中所提到的方法,为相机标定提供了很大便利,并且具有很高的精度。从此标定可以不需要特殊的标定物,只需要一张打印出来的棋盘格。So great! 这样的方法让人肃然起敬。
    (参考:http://blog.csdn.net/pinbodexiaozhu/article/details/43373247)

    标定平面到图像平面的单应性

    因为张氏标定是一种基于平面棋盘格的标定,所以想要搞懂张氏标定,首先应该从两个平面的单应性(homography)映射开始着手。
      单应性(homography):在计算机视觉中被定义为一个平面到另一个平面的投影映射。首先看一下,图像平面与标定物棋盘格平面的单应性。
      首先放一个关于摄像机模型的公式:
         这里写图片描述
      其中m的齐次坐标表示图像平面的像素坐标(u,v,1),M的齐次坐标表示世界坐标系的坐标点(X,Y,Z,1)。R表示旋转矩阵、t表示平移矩阵、S表示尺度因子。
      A表示摄像机的内参数,具体表达式如下:
        这里写图片描述
      α=f/dx,β=f/dy,因为像素不是规规矩矩的正方形,γ代表像素点在x,y方向上尺度的偏差。
      这里还有一个“梗儿”,就是S。它只是为了方便运算,对于齐次坐标,尺度因子不会改变坐标值的。

    因为标定物是平面,所以我们可以把世界坐标系构造在Z=0的平面上。然后进行单应性计算。令Z=0可以将上式转换为如下形式:
        这里写图片描述
      既然,此变化属于单应性变化。那么我们可以给A[r1 r2 t]一个名字:单应性矩阵。并记H= A[r1 r2 t]。
      那么现在就有:
        这里写图片描述
      H是一个三3*3的矩阵,并且有一个元素是作为齐次坐标。因此,H有8个未知量待解。
    (x,y)作为标定物的坐标,可以由设计者人为控制,是已知量。(u,v)是像素坐标,我们可以直接通过摄像机获得。对于一组对应的(x,y)-à(u,v)我们可以获得两组方程。
      现在有8个未知量需要求解,所以我们至少需要八个方程。所以需要四个对应点。四点即可算出,图像平面到世界平面的单应性矩阵H。
      这也是张氏标定采用四个角点的棋盘格作为标定物的一个原因。
      在这里,我们可以将单应性矩阵写成三个列向量的形式,即:
      这里写图片描述

    标定平面到图像平面的单应性

    从上面可知,应用4个点我们可以获得单应性矩阵H。但是,H是内参阵和外参阵的合体。我们想要最终分别获得内参和外参。所以需要想个办法,先把内参求出来。然后外参也就随之解出了。我们可以仔细的“观摩”一下下面的式子。(下面这个式子总感觉是一个自己造出来的一个式子,不是由于透视原理直接得出的)
    这里写图片描述
      1、r1,r2正交 得:r1r2=0。这个很容易理解,因为r1,r2分别是绕x,y轴旋转的。应用高中立体几何中的两垂直平面上(两个旋转向量分别位于y-z和x-z平面)直线的垂直关系即可轻松推出。
      2、旋转向量的模为1,即|r1|=|r2|=1。这个也很容易理解,因为旋转不改变尺度嘛。如果不信可以回到上一篇博客,找到个方向的旋转矩阵化行列式算一下。
       通过上面的式子可以将r1,r2代换为h1,h2与A的组合进行表达。即 r1=h1A-1,r2=h2A-1.根据两约束条件,可以得到下面两个式子:
    这里写图片描述

    大家从上面两个式子是不是看出一点端倪了。式子中,h1,h2是通过单应性求解出来的那么未知量就仅仅剩下,内参矩阵A了。内参阵A包含5个参数:α,β,u0,v0,γ。那么如果我们想完全解出这五个未知量,则需要3个单应性矩阵。3个单应性矩阵在2个约束下可以产生6个方程。这样可以解出全部的五个内参了。大家想一下,我们怎样才能获得三个不同的单应性矩阵呢?答案就是,用三幅标定物平面的照片。我们可以通过改变摄像机与标定板间的相对位置来获得三张不同的照片。(当然也可以用两张照片,但这样的话就要舍弃掉一个内参了γ=0)
      到这里,大家应该就明白我们在张氏标定法时为什么要不断变换标定板的方位了吧。当然这只是一个原因。第二个原因,玉米会在讲极大似然时讲到。

    下面在对我们得到的方程做一些数学上的变化,这些变化都是简单的运算变化了,相信大家动动笔,一算就可以算出。这些变化都是为了运算方便的,所以也没什么物理意义。
      首先令:
      这里写图片描述
    这里写图片描述
      接下来在做一步纯数学化简:
      这里写图片描述
    这里写图片描述
      利用约束条件可以得到下面,方程组:
      这里写图片描述
       这个方程组的本质和前面那两个用h和A组成的约束条件方程组是一样的。在此重复一遍解释:如果我们想完全解出这五个未知量,则需要3个单应性矩阵。3个单应性矩阵在2个约束下可以产生6个方程。这样可以解出全部的五个内参了。大家想一下,我们怎样才能获得三个不同的单应性矩阵呢?答案就是,用三幅标定物平面的照片。我们可以通过改变摄像机与标定板间的相对位置来获得三张不同的照片。(当然也可以用两张照片,但这样的话就要舍弃掉一个内参了γ=0)
       通过至少含一个棋盘格的三幅图像,应用上述公式我们就可以估算出B了。得到B后,我们通过cholesky分解 ,就可以轻松地得到摄像机的内参阵A。

    基于内参阵估算外参阵

    通过上面的运算,我们已经获得了摄像机的内参阵。那么对于外参阵,我们很容易通过下面的公式解得:
    这里写图片描述
    对上面公式进行化简,可以得到:
    这里写图片描述

    展开全文
  • 1、 相机参数是三种不同的参数。  相机的内参数是六个分别为:1/dx、1/dy、r、u0、v0、f。 opencv1里的说内参数是4个其为fx、fy、u0、v0。实际其fx=F*Sx,其中的F就是焦距上面的f,Sx是像素/没毫米即上面的dx,其...
  • 梯度下降 梯度下降是最早最简单,也是最为常用的最优化方法。梯度下降实现简单,当目标函数是凸函数时,梯度下降的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降的速度也未必是最快的。梯度...
  • python算法引入

    千次阅读 2019-06-29 20:26:04
    引入 第一次尝试: 算法 算法的概述 算法的五大特性: 第二次尝试: 算法的效率衡量 时间复杂度和大O记 时间复杂度的几条基本计算规则 python内置类型性能分析 timeit模块 这里主要是介绍算法的介绍以及一些判断...
  • PID参数整定——Z-N方法

    万次阅读 多人点赞 2017-03-08 11:36:28
    PID参数整定的Z-N,在经验的基础上更快对参数进行整定
  • 第一个问题:为什么引入非线性激励函数? 如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出都是上层输入的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与...
  • 常见的几种最优化方法(梯度下降,牛顿,拟牛顿,共轭梯度法等) 我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在一定成本下,如何使利润最大化”...
  • PID控制器及其参数整定

    千次阅读 2019-05-22 22:54:57
    本文主要详细分析PIDPIDPID控制器各个环节的作用以及参数整定的一般方法。 PIDPIDPID控制器各环节的作用: PPP:误差的比例项(现在),比例项的引入,时域上来讲可以增加了系统的开环增益和自然频率,使控制系统的...
  • 通过“vue项目引入第三方js插件,单个js文件引入成功,使用该插件方法时报错(问题已解决)”成功移到UNI-APP上 方法一: 引用网址:https://www.cnblogs.com/web1/p/8819471.html 1、index.vue <template&...
  • 关于ADRC算法以及参数整定(调参)的一些心得体会

    万次阅读 多人点赞 2019-03-11 17:05:44
    韩教授继承了经典PID控制器的精华,对被控对象的数学模型几乎没有任何要求,又在其基础上引入了基于现代控制理论的状态观测器技术,将抗干扰技术融入到了传统PID控制当中,最终设计出了适合在工程...
  •   更多资讯见xiaok海洋测绘网 1、自由移站法的核心是大旋转角坐标转换的平差算法 2、大旋转角坐标转换方法有三种:七参数法,...5、简便算法其实是13参数法,七参数法的一个变种,参考了罗德里格的思想,易于
  • 为什么引入ReLU激活函数

    万次阅读 多人点赞 2018-08-21 10:32:13
    1.为何引入非线性的激活函数? 如果不用激活函数,在这种情况下每一层输出都是上层输入的线性函数。容易验证,无论神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机...
  • Vue框架引入JS库的正确姿势

    万次阅读 2017-04-26 09:39:17
    在Vue.js应用中,可能需要引入Lodash,Moment,Axios,Async非常好用的JavaScript库。当项目变得复杂庞大,通常会将代码进行模块化拆分。可能还需要跑在不同的环境下,比如浏览器,服务端。 如何在各个模块和...
  • 模型并行( **model parallelism** ):分布式系统中的不同机器(GPU/CPU)负责网络模型的不同部分 —— 例如,神经网络模型的不同网络层被分配到不同的机器,或者同一层内部的不同参数被分配到不同机器;...
  • 拉格朗日乘子1 无约束问题2 等式约束问题3 不等式约束问题KTT条件4 拉格朗日乘子问题罚函数1 定义2 外罚函数3 内罚函数广义乘子1 等式约束广义乘子2 不等式约束广义乘子3 一般约束广义乘子本文...
  • - 无约束最优化问题:梯度下降、牛顿、拟牛顿; - 有约束最优化问题:拉格朗日乘数。 一、梯度下降 1、算法简介   梯度下降是最早最简单,也是最为常用的最优化方法。梯度下降实现简单,当...
  • 前面几章已经介绍了神经网络的结构、数据初始化、激活函数、损失函数问题,现在我们该讨论如何让神经网络模型进行学习了。1 梯度检验权重的更新梯度是否正确决定着函数是否想着正确的方向迭代,在UFLDL中我们提到...
  • 文章目录单回路控制系统整定参数整定要求常用整定方法理论计算方法理论计算整定法工程整定方法经验法(试凑法)临界比例带法(边界稳定法)衰减曲线法响应曲线法(动态特性参数法) 单回路控制系统整定 参数整定要求 通过...
  • vue中Element-ui引入

    万次阅读 2018-02-09 14:25:20
    element-ui官网:http://element-cn.eleme.io/#/zh-CN/component/installation安装element-ui:方式一npm:进入...-- 引入样式 --&gt;&lt;link rel="stylesheet" href="https://unpkg.com/el...
  • PID参数整定快速入门(调节器参数整定方法)

    万次阅读 多人点赞 2018-01-03 14:43:30
    PID参数整定方法很多,常见的工程整定方法有临界比例度、衰减曲线和经验。云南昌晖仪表制造有限公司以图文形式介绍以临界比例度和衰减曲线整定调节器PID参数方法。 临界比例度 一个调节系统,在阶跃...
  • 一、深度学习中常用的调节参数 本节为笔者上课笔记(CDA深度学习实战课程第一期) 1、学习率步长的选择:你走的距离长短,越短当然不会错过,但是耗时间。步长的选择比较麻烦。步长越小,越容易得到局部最优化(到...
  • 神经网络参数更新

    千次阅读 2017-08-25 14:48:18
    一、参数更新 1.随机梯度下降及各种更新方法 【普通更新】:沿着负梯度方向改变参数 x+= -learning_rate * dx 其中学习率是一个超参数,它是一个固定的常量。 【动量更新】(Momentum) 这...
  • jsp:include标签参数传递及捕获

    万次阅读 2016-12-18 21:29:39
    方式1、指令标签引入法   然而这种方法我并不能找到传递参数的方法。 方式2、使用jsp:include标签引入,并设置参数  pageTitle"/> 通过方式2可以传递参数到被引用的页面,以求动态的变更被引用页面的...
  • 我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在一定成本下,如何使利润最大化”。最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素...
  • 熵这个概念在机器学习中被用到的地方很多,例如决策树、最大熵模型...最大熵模型(MaxEnt)与多元逻辑回归、Softmax本质上是统一的,而且在最大熵学习算法的推导中还会综合地用到广义拉格朗日乘数法等多种数学技巧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 132,190
精华内容 52,876
关键字:

引入参数法取等