什么是二维角度估计

什么是二维角度估计,第1张

二维角度估计是指对于给定的二维图像中的一些特征点,基于图像恢复这些点在三维世界坐标系中的位置,并进一步计算这些点之间的角度大小的方法。主要应用于计算机视觉、机器人学、遥感、地理信息系统等领域。

在二维图像中,某些特征点之间可能存在某些固定关系,如垂直、水平、平行等。通过二维角度估计技术,可以计算出这些特征点在三维空间中的坐标,并据此计算出它们之间的角度。在机器人学中,这种方法可以用来定位机器人的朝向和运动方向;在计算机视觉中,这种方法可以用来识别和跟踪对称物体、拟合曲线等。

二维角度估计通常使用数学方法,如三角形变换、视角几何等进行计算。同时,为了提高估计的精度,还需要考虑图像噪声、摄像机参数等因素。

角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域中。也称为特征点检测。 角点通常被定义为两条边的交点,更严格的说,角点的局部邻域应该具有两个不同区域的不同方向的边界。而实际应用中,大多数所谓的角点检测方法检测的是拥有特定特征的图像点,而不仅仅是“角点”。这些特征点在图像中有具体的坐标,并具有某些数学特征,如局部最大或最小灰度、某些梯度特征等。

这些角点通常在图像中是稳定存在的。角点的微小偏移就能反映出图像帧的相对运动。

Harris角点检测算法就是对角点响应函数R进行阈值处理:R > threshold,即提取R的局部极大值。

特点:具有角度不变性

SIFT克服了Harris的不足,缩放也没影响,具有尺度不变性。

特点:角度不变性,尺度不变性

SURF是SIFT的加速版,它善于处理具有模糊和旋转的图像,但是不善于处理视角变化和光照变化。在SIFT中使用DoG对LoG进行近似,而在SURF中使用盒子滤波器对LoG进行近似,这样就可以使用积分图像了(计算图像中某个窗口内所有像素和时,计算量的大小与窗口大小无关)。总之,SURF最大的特点在于采用了Haar特征以及积分图像的概念,大大加快了程序的运行效率。

特点:角度不变性,尺度不变性

更多

ORB(Oriented FASTand Rotated BRIEF)算法是目前最快速稳定的特征点检测和提取算法,许多图像拼接和目标追踪技术利用ORB特征进行实现。

ORB采用FAST(features from accelerated segment test)算法来检测特征点,采用BRIEF算法来计算一个特征点的描述子。

特点:角度不变性,尺度不变性,计算速度快(ORB是sift的100倍,是surf的10倍)

1、OpenCV版本

首先,通过图像处理算法,找出物体在上的坐标

然后,将坐标转换为实际坐标

没有通用算法,就算你切一个人脑子放在那里负责图像识别,它也识别不出它从来没听说过的东西

原理上最简单的方法是模板比对,就是在一个较大图像里找一个较小图像的位置角度,复杂一点的就是找出你要找的东西的一类特征,例如几个亮点构成特定角度,就在图像内找出所有亮点判断哪几个亮点构成该特定角度等等

halcon和opencv不用写算法代码,这些图像处理算法库都是把基本的算法给你写好了,用它们基本上就是把这些基本的算法组合搭配

surf借鉴了sift中简化近似的思想,将DOH中的高斯二阶微分模板进行了近似简化,使得模板对图像的滤波只需要进行几个简单的加减法运算,并且,这种运算与滤波模板的尺寸有关。实验证明surf算法较sift算法在运算速度上要快3倍左右。

1 积分图像

surf算法中要用到积分图像的概念。借助积分图像,图像与高斯二阶微分模板的滤波转化为对积分图像的加减运算。积分图像(Integral Image)的概念是由viola和Jones提出来的,而将类似积分图像用于盒子滤波是由Simard等人提出。

积分图像中任意一点(i,j)的值为ii(i,j)为原图像左上角到任意点(i,j)相应的对角线区域灰度值的总和即:

公式中,I(x`,y`)表示原图像中点(i`,j`)的灰度值,ii(x,y)可以由下面两公式迭代计算得到:

公式中,S(x,y)表示一列的积分,且S(i,-1)=0,ii(-1,j)=0求积分图像,只需对原图像的所有像素素进行一遍扫描。下面的代码为c++语言的实现

pOutImage[0][0] = pInImage[0][0];

for(int x = 1, x < nWidth; i++)

{

  pOutImage[x][0] = pInImage[x-1][0] + pInImage[x][0];

}

for(int y=1; y< nHeight ;y++)

{

  int nSum = 0;

  for(int x=0; x < nWidth;x++)

  {

    nSum = pInImage[x][y];

    pOutImage[x][y]= pInImage[x][y-1]+nSum;

  }

}

如图表示,在求取窗口w内的像元灰度和时,不管窗口W的大小如何,均可利用积分图像的4个对应点(i1,j1)(i2,j2)(i3,j3)(i4,j4)的值计算的到。也就是说,求取窗口W内的像元灰度和与窗口的尺寸是无关的。窗口W内的像元的灰度和为

Sum(W)= ii(i4,j4) -ii(i2,j2) - ii(i3,j3) + ii(i1,j1)

下面看以截图,相信都可以看懂

关于矩形区域内像素点的求和应该是一种简单重复性运算,采用这种思路总体上提高了效率。为什么这么说呢?假设一幅共有n个像素点,则计算n个位置的积分图总共的加法运算有n-1次(注意:可不是次哦,要充分利用递推思想),将这些结果保存在一个跟原图对应的矩阵M中。当需要计算图像中某个矩形区域内的所有像素之和是直接像查表一样,调出A,B,C,D四点的积分图值,简单的加减法(注意只需要三次哦)即可得到结果。反之,如果采用naive的方式直接在原图像中的某个矩形区域内求和,你想想,总共可能的矩形组合有多少? !!且对于一幅图像n那是相当大啊,所以2^n

 那可是天文数字,而且这里面绝大部分的矩形有重叠,重叠意味着什么?在算求和的时候有重复性的工作,其实我们是可以有效的利用已经计算过的信息的。这就是积分图法的内在思想:它实际上是先计算n个互不重叠(专业点说是不相交)的矩形区域内的像素点求和,充分利用这些值(已有值)计算未知值,有点类似递推的味道这就完全避免了重复求和运算。

 这样就可以进行2种运算:

    (1)任意矩形区域内像素积分。由图像的积分图可方便快速地计算图像中任意矩形内所有像素灰度积分。如下图23所示,点1的积分图像ii1的值为(其中Sum为求和) :

    ii1=Sum(A)

    

    同理,点2、点3、点4的积分图像分别为:

    ii2=Sum(A)+Sum(B);      ii3=Sum(A)+Sum(C);    ii4=Sum(A)+Sum(B)+Sum(C)+Sum(D);

    矩形区域D内的所有像素灰度积分可由矩形端点的积分图像值得到:

                   Sum(D)=ii1+ii4-(ii2+ii3)            (1)

(2) 特征值计算

    矩形特征的特征值是两个不同的矩形区域像素和之差,由(1)式可以计算任意矩形特征的特征值,下面以图21中特征原型A为例说明特征值的计算。

    

    如图24 所示,该特征原型的特征值定义为:

 

    Sum(A)-Sum(B)

 

    根据(1)式则有:Sum(A)=ii4+ii1-(ii2+ii3);    Sum(B)=ii6+ii3-(ii4+ii5);

 

   所以此类特征原型的特征值为:

 

                (ii4-ii3)-(ii2-ii1)+(ii4-ii3)-(ii6-ii5)

 

   另示:运用积分图可以快速计算给定的矩形之所有象素值之和Sum(r)。假设r=(x,y,w,h),那么此矩形内部所有元素之和等价于下面积分图中下面这个式子:

 

                 Sum(r) = ii(x+w,y+h)+ii(x-1,y-1)-ii(x+w,y-1)-ii(x-1,y+h)

 

   由此可见,矩形特征特征值计算只与此特征端点的积分图有关,而与图像坐标值无关。对于同一类型的矩形特征,不管特征的尺度和位置如何,特征值的计算所耗费的时间都是常量,而且都只是简单的加减运算。其它类型的特征值计算方法类似。

以上就是关于什么是二维角度估计全部的内容,包括:什么是二维角度估计、图像角点特征之Harris、SIFT、SURF、ORB、如何获取图像中物体坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9749603.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存