精华内容
下载资源
问答
  • 亚像素级的多尺度Harris角点检测算法的制作方法
    2021-04-25 00:40:32

    e37506abce550fef647509cedef0ba04.gif

    本发明属于一种图像检测方法,具体为一种针对传统Harris角点的亚像素级别的检测方法。

    技术背景

    在机器视觉研究中,角点检测是一个重要环节。在摄像机标定,立体匹配,三维重建等计算机视觉处理任务中起重要作用。角点作为图像的一个重要的直观局部特征,能够有效保证图像的重要信息,同时减少了信息的数据量,运算量。角点检测效果直接影响后期图像处理工作的进行,所以好的检测算法很重要。

    目前角点检测算法大致分为两类:一类是通过以链码的形式提取图像的边缘,从而进行角点的寻找,另一类基于图像的灰度信息的进行角点检测。第一类算法需要对图像的边缘进行操作,对边缘线完整性的要求较高,且计算量大,目前算法有K-R(Kitchen-Rosenfeld)算法;第二类算法是直接针对灰度图像进行操作,计算图像灰度分布的曲率,以最大曲率的点作为角点,但是算法精度较差,容易受噪声的影响,此类算法较多,主要有Harris,Moravec,Susan算子,其中Harris算法是最为广泛运用的算法。

    一般来说,图像中的角点的尺度信息都是未知且具有尺度上的偏差,然而在检测角点时,利用较小的尺度寻找角点时定位精度精确,但会检测到较多的伪角点。利用大尺度检测检点时,可以有效的检测真实的角点,但是角点的定位不准确。结合大尺度下角点检测的去伪和小尺度的定位精确性,可以实现角点检测的精度和准确性。

    Harris算法通过微分运算和自相关矩阵来检测角点。记像素点(x,y)的灰度值为f(x,y),像素点(x,y)移动(u,v)后灰度强度变化可表示为:

    矩阵M的计算公式为:

    由于矩阵M的特征值与自相关函数的极值曲率成比例,当矩阵M的两个特征值都很大时,该点的自相关函数在两个正交方向上的极值曲率都比较大,即认为该点为角点。为了避免计算M矩阵的特征值,于是Harris角点检测器被定义为:

    R=det(M)-k×trace(M)2 (3)

    k值的选择一般为0.04。检测时,针对像素点为中心的窗口区域进行计算,要求中心点像素的R值为该窗口的极大值,并且需求该点的R值大于设定的阈值,即可认定该中心点为角点。

    传统Harris算法虽然在角点检测效果良好,但是存在缺点:(1)角点检测依赖高斯平滑,平滑窗口过大容易造成角点的丢失,窗口过小会提取出伪角点;(2)在单一尺度角点检测时,过分依赖阈值T的设定,当角点探测器R大于T时,然而阈值T是人为设定,T的选值过大会造成角点的丢失,T的选值过小则会导致提取伪角点,只有经过多次试验尝试才能获得比较理想的角点;(3)提取角点为像素级,精度不准确。

    技术实现要素:

    为了解决传统Harris的问题,本发明结合Harris角点检测算子和多尺度焦点检测方法。使Harris焦点检测算法具有尺度上的变化,两次非极大值抑制,使本发明无需考虑阈值,并且加以亚像素级别的焦点检测,使角点检测的更加精确有效。

    本发明提取亚像素级角点的步骤如下:

    步骤一、对图片进行预筛选,具体过程如下:

    步骤1-1、选择3*3区域为备选角点筛选模块,计算中心点像素灰度值与周边一点的像素灰度值之差的绝对值Δt;

    步骤1-2、选择相似度阈值t,t的选值为像素灰度最大值的10%~15%;

    步骤1-3、比较Δt值和t值,如果Δt值小于t值,则判定中心点与周边点相似;

    步骤1-4、中心点与周边店的相似度m(中心点与相似的周边点的个数),m为2~6时,认为中心点为备选角点;

    步骤二:选择尺度空间核进行尺度变换,具体细分为:

    步骤2-1、选择高斯核为尺度变换核,本发明选择尺度变换核模型为

    步骤2-2、将Harris算子结合尺度空间,通过式得到Harris尺度表达式;

    步骤2-3、计算带尺度变化的自相关矩阵M,计算得到M矩阵为:

    其中,Lu(x,σD)和Lv(x,σD)分别表示L(x,σ)在x和y方向上的导数,σ1=σn是计算特征点时所选择的尺度参数,σD=sσn是微分尺度。

    步骤三:选择合适的角点响应函数,本发明选择R=det(M)/(trace(M)+ε)为角点响应函数,避免了传统Harris角点响应函数中人为选择k值带着来的误差;

    步骤四:进行二次非极大值抑制寻找角点,本发明针对步骤一得到的备选角点进行非极大值抑制,选择一个10*10模板区域,计算出模板区域内的极大值,该极大值点为模板区域的中心点,而此极大值就是候补备选角点,再在此基础上进行第二次非极大值抑制,经过两次非极大值抑制,可以得到较大局部响应极大值点,并且本文认为该极大值点为候选角点。同时避免了角点响应函数计算时阈值的选择。

    步骤五:对角点进行Laplace检测,确定角点;

    针对在步骤四位置空间上的候选角点,对其进行尺度空间上的搜索。本发明采用Laplace算子验证角点是否在尺度维上获得Laplace算子的局部极大值。如果是,则确定为特征点,并将获得极大值的点所在的尺度作为特征尺度。通过对不同的尺度空间的Laplace响应值进行比较,获得特征点,计算过程如下:

    F(x,σn)>F(x,σm),m∈{n-1,n+1} (5)

    其中:

    步骤六:进行高斯曲面拟合,得到角点的亚像素级坐标。

    步骤6-1、选择高斯曲面函数,由于高斯函数具有可分离性,所以高斯曲面函数为:

    步骤6-2、由于高斯曲面函数是非线性的,直接对上式进行线性拟合很困难,所以本发明针对高斯曲面函数进行双边取对数得到:

    通过双边取对数,函数具有线性,所以上式同样可以用函数形式表示:

    ln z=a+bx+cy+d(x2+y2)

    步骤6-3、其中x,y为像素点的坐标值,根据最小二乘法,只要求:

    Q=min∑(a+bx+cy+d(x2+y2)-ln z)2

    步骤6-4、由于极值条件,可知分别对其进行求偏导得到:

    步骤6-5、利用上式可以表示为AX=B,其中X=(a,B,c,d)T,线性求得:X=A-1B计算得到a,b,c,d,最终得到u0,u1,(u0,u1)即为极值点的位置,也是角点亚像素级所在的位置。

    综上所述本发明的算法具有很好的实用性,稳定性,精确性。实现Harris角点提取的多尺度亚像素级的交点提取。

    1、通过在Harris角点提取算法的基础上添加尺度变化的理论,解决了Harris角点提取过程中单尺度的缺点。

    2、采取两次非极大值抑制算法,有效地解决了Harris角点提取过程中人为设定阈值这一环节。

    3、使用高斯曲面拟合技术,实现了角点的亚像素提取,提高了角点提取的精确性。

    附图说明

    图1是本发明的流程图。

    图2是多尺度Harris角点的提取流程图。

    图3是算法实验结果图。

    具体实施方法

    下面是结合附图对本发明进一步说明。

    本发明提取亚像素级角点的步骤如下:

    步骤一、对图片进行预筛选,具体过程如下:

    步骤1-1、选择3*3区域为备选角点筛选模块,计算中心点像素灰度值与周边一点的像素灰度值之差的绝对值Δt;

    步骤1-2、选择相似度阈值t,t的选值为像素灰度最大值的10%~15%;

    步骤1-3、比较Δt值和t值,如果Δt值小于t值,则判定中心点与周边点相似;

    步骤1-4、中心点与周边店的相似度m(中心点与相似的周边点的个数),m为2~6时,认为中心点为备选角点;

    步骤二:选择尺度空间核进行尺度变换,具体细分为:

    步骤2-1、选择高斯核为尺度变换核,本发明选择尺度变换核模型为

    步骤2-2、将Harris算子结合尺度空间,通过式得到Harris尺度表达式;

    步骤2-3、计算带尺度变化的自相关矩阵M,计算得到M矩阵为:

    其中,Lu(x,σD)=I(x)*Gu(x,σD)

    Lv(x,σD)=I(x)*Gv(x,σD)

    Lu(x,σD)和Lv(x,σD)分别表示L(x,σ)在u和V方向上的导数。

    σ1=σn是计算特征点时所选择的尺度参数,σD=sσn是微分尺度。

    步骤三:选择合适的角点响应函数,本发明选择R=det(M)/(trace(M)+ε)为角点响应函数,避免了传统Harris角点响应函数中人为选择k值带着来的误差。

    其中,det(M)=AB-C2;trace(M)=A+B;

    步骤四:进行二次非极大值抑制寻找角点,避免了角点响应函数计算时阈值的选择。

    步骤4-1、选择非极大值抑制的模板大小,本发明选择大小为10*10的模板;

    步骤4-2、针对步骤一得到的备选角点进行第一次非极大值抑制,计算出模板区域内的极大值,该极大值点为模板区域的中心点,而此极大值就是候补备选角点;

    步骤4-3、进行第二次非极大值抑制,得到较大局部响应极大值点,对备选角点的筛选,得到候选角点。

    步骤五:对候选角点进行Laplace检测,确定角点;

    针对在步骤四位置空间上的候选角点,对其进行尺度空间上的搜索。本发明采用Laplace算子验证角点是否在尺度维上获得Laplace算子的局部极大值。如果是,则确定为特征点,并将获得极大值的点所在的尺度作为特征尺度。通过对不同的尺度空间的Laplace响应值进行比较,获得特征点,计算过程如下:

    F(x,σn)>F(x,σm),m∈{n-1,n+1} (7)

    其中:

    步骤六:进行高斯曲面拟合,得到角点的亚像素级坐标。

    步骤6-1、选择高斯曲面函数,由于高斯函数具有可分离性,所以高斯曲面函数为:

    步骤6-2、由于高斯曲面函数是非线性的,直接对上式进行线性拟合很困难,所以本发明针对高斯曲面函数进行双边取对数得到:

    通过双边取对数,函数具有线性,所以上式同样可以用函数形式表示:

    ln z=a+bx+cy+d(x2+y2)

    步骤6-3、其中x,y为像素点的坐标值,根据最小二乘法,只要求:

    Q=min∑(a+bx+cy+d(x2+y2)-ln z)2

    步骤6-4、由于极值条件,可知分别对其进行求偏导得到:

    步骤6-5、利用上式可以表示为AX=B,其中X=(a,b,c,d)T,线性求解:X=A-1B。计算得到a,b,c,d,最终得到u0,u1,(u0,u1)即为极值点的位置,也是角点亚像素级所在的位置。

    更多相关内容
  • 基于曲率尺度空间角点检测图技术,优化设计图像匹配算法,基于曲率尺度空间角点检测算法进行图像特征的提取,归一化处理特征,有助于提高图像匹配精度。利用该算法最终实现图像匹配需求,验证了算法的有效性...
  • 针对交通标志出现互连现象导致检测率下降的问题,提出了一种基于曲率尺度空间(CSS)角点检测的交通标志分离算法。使用基于红绿蓝(RGB)归一化的彩色分割算法和区域特征判决准则自动识别多标志互连候选区域,并对提取的...
  • 基于自适应阈值和动态支撑区域的曲率尺度空间角点检测
  • 曲率尺度空间与链码方向统计的角点检测方法
  • 针对现有机器视觉技术在薄壁件振动模态测试上的不足, 提出基于曲率尺度空间(CSS)角点检测与匹配的薄壁件振动模态测试方法。该方法通过人工设置的虚拟角点代替传统的物理标记, 利用改进的CSS角点检测方法定位振动图像...
  • 基于曲率尺度空间的轮廓角点检测C++编程实现, 同时包含matlab源码与论文。实现基于QT 5.12.4 (MSVC2017 64bit 编译套件) , 已编译运行,效果与MATLAB实现基本一致。
  • .pdf论文,供大家学习参考,尤其是学习图像处理的同学。
  • 利用曲率尺度空间(CSS)算法检测角点,matlab实现,含GUI界面
  • 使用自适应阈值和支持动态区域的曲率尺度空间角点检测
  • 算法来源于: XC He 和 NHC Yung,“具有自适应阈值和动态支持区域的曲率尺度空间角检测器”,第 17 届模式识别国际会议论文集,2:791-794,2004 年 8 月。 上述改进算法已发表于: XC He 和 NHC Yung,“基于...
  • 参考文献:Curvature Scale Space Corner Detector...1.曲率尺度空间(CSS)的角点检测子 这一小节主要讲原始的和改进的CSS。 定义曲率: 其中, g(u,σ ) 是高斯函数对σ的偏导数;一个是一阶偏导数,二个

    参考文献:Curvature Scale Space Corner Detector with Adaptive Threshold and Dynamic Region of Support (PDF下载)

    1.曲率尺度空间(CSS)的角点检测子
    这一小节主要讲原始的和改进的CSS。
    定义曲率:

    其中,



    g(u,σ ) 是高斯函数对σ的偏导数;一个点是一阶偏导数,二个点是二阶偏导数。然后是小x和小y与其卷积。
    检测步骤如下:
    (1)对一幅灰度图使用Canny算子获得二值的边缘图;
    (2)从边缘图提取边缘轮廓,填充轮廓中的裂缝,并找到T节点;
    (3)对边缘轮廓计算高尺度σ high的曲率;
    (4)考虑一个局部极大值作为初始角点,其绝对曲率大于阈值t并且两倍于其中一个邻近的局部极小值;
    (5)从最高尺度到最低尺度追踪角点来提高定位;
    (6)比较T节点和其他角点,删除两个很近的角点中的一个;
    在这个算法中,在检测过程中使用单尺度,在定位中使用多尺度;σ描述的是尺度,然而σ太小会检测错误的角点,σ太大也未能检测出正确的角点,对于复杂的图像来说σ是相当难以明确的!还有个问题是那个全局阈值t又该怎么确定?
    然而事实上,对于轮廓长度这个影响尺度系数的因素也并非必然,再说轮廓长度也不是曲率的一个主要因素啊,因此实际上需要对同一幅图像使用不同的尺度。下面将介绍其改进的方法!

    2.改进的CSS角点检测方法
    该方法区别于上述方法的(3)和(4)步:
    (3)在每一个轮廓和一个确定的低尺度计算曲率以记住所有正确的角点;
    (4)所有曲率的局部极大值作为角点的候选对象,这里包括哪些错误的角点;
    关于区分错误的角点和去除边界噪声及细节,使用如下3和4的方法:

    3.自适应局部阈值
    在候选的角点中,尽管一些检测数字化的点事局部最大绝对值,然而这些最大值与支撑的邻域区域的可计算差异很小。这就是所谓的圆角。它可以通过局部自适应曲率阈值方法去除!这将关系到邻域区域的曲率。这个自适应阈值表述如下:

    其中K一拨是邻域曲率均值,u是曲线上候选角点的位置,L1 和 L2是ROS的大小,C是作用系数。
    支持区域(ROS)定义:从一个邻域局部曲率极小值到下一个从候选点到两端严格减少的曲率。
    C=1,没有“角点”被去除;
    C=2,曲率函数的波形是三角的;
    1<C<2,便是圆角,通过对大量图片实验,一般取均值1.5。

    4.角点的角度
    通常情况下一个定义明确的角点是一个比较尖锐的角!(锐角)
    也就是说如果我们知道曲线上的点的夹角,便能很好的区分正确的角点还是错误的。然而这个需要我们在ROS中获得一个好的尺度。下面让我们分析下图:

    图上的五个点都是曲率局部最大的点即角点的候选点,
    如果采用小的ROS:则这五个点都是角点;
    如果是大的ROS:2,3,4将可能被视为错误的角点;
    事实上我们并不知道ROS的大小,因此需要做下面的工作:
    使用动态ROS!惊讶吧,ROS的大小我们让候选角点(主要是两个邻近的候选角点)自己去决定吧!也算一种自学习或自适应!当然这里不能用这个词。
    在上图中,如果3的ROS跨越了2和4,判断其为正确的角点,是个锐角。
    另一个方面,如果在自适应局部阈值之后仅仅1,3,5被记为候选角点,则3的ROS跨过了1和5,就可以把3看做一个错误的角点(1,5大概成一条直线)
    经过上面的分析,我们可以得出:
    如果160°<=角C<=200°,候选角点C是个错误角点,否则是一个正确的角点。
    其中,


    经过多次迭代,由边界噪声和不重要的细节产生的孤立的候选角点被去除,主要的角点被保留。

    5.总结
    学习本文是出于我在研究基于平均曲率流(MCVF)的图像滤波,在后面我讲写一篇关于其实验和代码分析的文章!随后将进行基于平均曲率流相关问题的分析研究。

    展开全文
  • 今天路过校园的草地,有管理人员在轰轰的开着机器割草,那草香扑鼻,不枉我是属兔子的,那么接下来兔发牛功:(分析步骤太细,...function [cout,marked_img]=corner(varargin) %主函数,在灰度图中找角点 输入: I

    今天路过校园的草地,有管理人员在轰轰的开着机器割草,那草香扑鼻,不枉我是属兔子的,那么接下来兔发牛功:(分析步骤太细,篇幅将太大,后面部分简略,见源代码:http://download.csdn.net/detail/lishizelibin/3802639
    function [cout,marked_img]=corner(varargin)   %主函数,在灰度图中找角点
    输入:

    I - 输入图,可以是灰度图,彩色图或二值图
    C - 主轴到辅轴的最小比率,使用提供的检测子能够检测顶点为角点,默认值为1.5
    T_angle - 正确的角点的最大圆角,默认值162
    Sig - 计算曲率时高斯滤波器的标准差,默认值为3
    H, L - Canny算子的最大和最小阈值,默认值0.35和0
    Endpoint - 控制曲线结束点是否为角点的标志,1为Yes,0为No,默认值为1
    Gap-size - 填充轮廓的缝隙宽度不大于此值的缝隙,默认值是1 pixels
    输出:
    cout - 输入图像的角点坐标集合
    maked_image - 带有角点标记的图像
    示例:
    I = imread('alumgrns.tif'); 
    cout = corner(I,[],[],[],0.2);
    [cout, marked_image] = corner;
    cout = corner([],1.6,155);

    步骤:
    (1)对灰度图应用Canny算子,并获得二值边缘图

    if size(I,3)==3
        I=rgb2gray(I); %将彩色图转换为灰度图.
    end
    BW=EDGE(I,'canny',[L,H]); %canny边缘检测
    (2)从二值边缘图获得边缘轮廓,并填充缝隙
    [curve,curve_start,curve_end,curve_mode,curve_num]=extract_curve(BW,Gap_size); %extract_curve函数后面介绍
    (3)在低尺度对每一个轮廓计算曲率,保存所有正确的角点
    (4)所有曲率局部最大被视为候选角点,根据边界噪声和细节特征去除圆角和错误的角点
    (5)如果线型曲线的终点不接近于上面曲线的角点,则增加为角点

    cout=get_corner(curve,curve_start,curve_end,curve_mode,curve_num,BW,sig,Endpoint,C,T_angle); %get_corner后面介绍
    后续工作:

    img=I;
    for i=1:size(cout,1)
        img=mark(img,cout(i,1),cout(i,2),5);
    end
    marked_img=img;
    figure(2)
    imshow(marked_img);
    title('Detected corners')
    imwrite(marked_img,'corner.jpg');

    function [curve,curve_start,curve_end,curve_mode,cur_num]=extract_curve(BW,Gap_size)
    %首先对图像上方和左方各加Gap_size行或列得到BW1图像,并找到边缘像素坐标[r,c]
    %while size(r,1)>0如果找到的坐标维数大于0

    将BW1的第一个点置为0
    在BW1上从第一个边缘点向左一个Gap_size到向右一个Gap_size,向上一个Gap_size到向下一个Gap_size,找到边缘像素坐标,存入[I, J]
    %while size(I,1)>0
    计算上面找到点距离dist=(I-Gap_size-1).^2+(J-Gap_size-1).^2;
    迭代点:point=point+[I(index),J(index)]-Gap_size-1;
    同样将BW1的第一个点置为0
    在BW1上从第一个边缘点向左一个Gap_size到向右一个Gap_size,向上一个Gap_size到向下一个Gap_size,找到边缘像素坐标,存入[I, J]
    % end while size(I,1)>0
    %同样的方法在另一个方向上做

    %获得曲线点
    if size(cur,1)>(size(BW,1)+size(BW,2))/25
            cur_num=cur_num+1;
            curve{cur_num}=cur-Gap_size;
    end
    [r,c]=find(BW1==1);
    %end while size(r,1)>0
    %根据检测到的点,画出轮廓

    function cout=get_corner(curve,curve_start,curve_end,curve_mode,curve_num,BW,sig,Endpoint,C,T_angle)
    这个函数注释比较清楚,高斯卷积计算曲率,找曲率局部最大作为焦点候选,具体参考理论一文的公式
    %与自适应局部阈值比较去除圆角
    %根据边界噪声和琐碎细节来检查角点角度去除错误的角点(角点角度函数curve_tangent见后面)
    根据步骤(5)增加终点为角点

    function ang=curve_tangent(cur,center)
    如果不是直线,则用椭圆来计算角度

    另外两个辅助函数:
    function img1=mark(img,x,y,w) %标记图像角点
    function [I,C,T_angle,sig,H,L,Endpoint,Gap_size] = parse_inputs(varargin)%分析输入

    示例:
    原图

    轮廓图:

    角点标记图:

    展开全文
  • 使用CSS(曲率尺度空间)提取图像角点 问题模型 LOAM中使用简单的曲率求取公式提取出角点和平面点,虽然提取特征时速度较快,但是提取到的点中含有很大一部分属于噪声类的(如:树叶、草地等),从LOAM的基于线...

    改进LOAM的方法:使用CSS(曲率尺度空间)提取点云的角点

    参考资料

    [1] Gonzalez C , Adams M . An improved feature extractor for the Lidar Odometry and Mapping (LOAM) algorithm[C]// 2019 International Conference on Control, Automation and Information Sciences (ICCAIS). 2019.

    开源代码地址:
    css_loam_velodyne

    问题模型

    LOAM中使用简单的曲率求取公式提取出角点和平面点,虽然提取特征点时速度较快,但是提取到的角点中含有很大一部分属于噪声类的点(如:树叶、草地等),从LOAM的基于线特征和基于面特征的ICP方法来看,这些点是降低匹配精度的因素,而且这些点很大程度上增加了计算负担,因此需要一种方法能够提取到空间角度的同时,过滤掉这些无益于匹配的噪声点。

    基于曲率尺度空间(Curvature Scale Space – CSS)的特征提取算法可以解决该问题。

    自适应断点检测

    最简化的断点检测公式:
    ∣ ∣ p n − p n − 1 ∣ ∣ > D m a x ||p_n-p_{n-1}||>D_{max} pnpn1>Dmax
    ∣ ∣ p n − p n − 1 ∣ ∣ ||p_n-p_{n-1}|| pnpn1是平面中两个点的欧氏距离,而 D m a x D_{max} Dmax是一个自适应变换的阈值量。
    在这里插入图片描述
    在这里插入图片描述

    我们定义一条通过扫描点 p n − 1 p_{n-1} pn1的虚拟线,它代表能够代表可以可靠地检测到环境线的极端情况。该虚拟线与线束 r n − 1 r_{n-1} rn1构成夹角 λ \lambda λ,它决定了最坏情况下的点 p n p_n pn的位置,在该约束下,有约束公式:
    r n − 1 ⋅ s i n ( λ ) = r n h ⋅ s i n ( λ − Δ ϕ ) r_{n-1}\cdot sin(\lambda)=r_n^h \cdot sin(\lambda - \Delta \phi) rn1sin(λ)=rnhsin(λΔϕ)

    ∣ ∣ p n h − p n − 1 ∣ ∣ = r n − 1 ⋅ s i n Δ ϕ s i n ( λ − Δ ϕ ) ||p_n^h-p_{n-1}||=r_{n-1} \cdot \frac{sin{\Delta \phi}}{sin(\lambda - \Delta \phi)} pnhpn1=rn1sin(λΔϕ)sinΔϕ

    D m a x = ∣ ∣ p n h − p n − 1 ∣ ∣ + 3 σ r D_{max}=||p_n^h-p_{n-1}||+3\sigma_r Dmax=pnhpn1+3σr

    计算尺度空间

    参数化曲线方程

    1. 计算曲线中每两两相邻点间的欧氏距离 d d d
    2. 每次计算 d d d后,对 d d d进行积分得到点 p n p_n pn位置占曲线长度的比例 t , t ∈ [ 0 , 1 ] t,t \in [0,1] t,t[0,1]
    3. 积分到曲线最后一个点,得到曲线总长度 D D D
    4. 得到曲线关于长度比例 s s s的参数方程: C = { x ( t ) , y ( t ) } C=\{x(t),y(t)\} C={x(t),y(t)}

    曲率计算

    曲率:
    κ = d ψ d s = 1 ρ \kappa = \frac{d\psi}{ds}=\frac{1}{\rho} κ=dsdψ=ρ1
    其中的 ρ \rho ρ就是曲线在该点位置对应的曲率半径。

    曲率 κ \kappa κ可以由 x ( t ) x(t) x(t) y ( t ) y(t) y(t)的导数计算:
    y ′ = d y d x     y ′ ′ = d 2 y d x 2 y'=\frac{dy}{dx}\ \ \ y''=\frac{d^2y}{dx^2} y=dxdy   y=dx2d2y
    再得到曲率:
    κ = y ′ ′ ( 1 + ( y ′ ) 2 ) 3 / 2 \kappa = \frac{y''}{(1+(y')^2)^{3/2}} κ=(1+(y)2)3/2y
    将导数自变量转为 t t t
    x ˙ = d x d t     x ¨ = d 2 x d t 2 y ˙ = d y d t     y ¨ = d 2 y d t 2 \dot{x}=\frac{dx}{dt}\ \ \ \ddot{x}=\frac{d^2x}{dt^2} \\ \dot{y}=\frac{dy}{dt}\ \ \ \ddot{y}=\frac{d^2y}{dt^2} x˙=dtdx   x¨=dt2d2xy˙=dtdy   y¨=dt2d2y
    然后有:
    y ′ = y ˙ x ˙ y ′ ′ = x ˙ y ¨ − y ˙ x ¨ x ˙ 3 y'=\frac{\dot y}{\dot x} \\ y''=\frac{\dot{x}\ddot{y}-\dot{y}\ddot{x}}{\dot{x}^3} y=x˙y˙y=x˙3x˙y¨y˙x¨
    为了计算不同尺度下的曲线,需要将曲线方程与宽度为 σ \sigma σ的一维高斯内核 g ( t , σ ) g(t,\sigma) g(t,σ)进行卷积:
    g ( t , σ ) = 1 σ 2 π e − t 2 / 2 σ 2 g(t,\sigma)=\frac{1}{\sigma \sqrt{2 \pi}}e^{-t^2/2\sigma^2} g(t,σ)=σ2π 1et2/2σ2
    x ( t ) x(t) x(t)与高斯内核卷积定义为 X ( t , σ ) X(t,\sigma) X(t,σ)
    X ( t , σ ) = x ( t ) ⊛ g ( t , σ ) = ∫ − ∞ ∞ x ( u ) 1 σ 2 π e − ( t − u ) 2 / 2 σ 2 d u X(t,\sigma)=x(t)\circledast g(t,\sigma)\\ =\int_{-\infty}^{\infty}x(u)\frac{1}{\sigma\sqrt{2\pi}}e^{-(t-u)^2/2\sigma^2}du X(t,σ)=x(t)g(t,σ)=x(u)σ2π 1e(tu)2/2σ2du
    Y ( t , σ ) Y(t,\sigma) Y(t,σ)定义类似。

    X ( t , σ ) X(t,\sigma) X(t,σ)关于 t t t的导数计算:
    X ˙ ( t , σ ) = ∂ X ( t , σ ) ∂ t = ∂ [ x ( t ) ⊛ g ( t , σ ) ] ∂ t = x ( t ) ⊛ ( ∂ g ( t , σ ) ∂ t ) \dot X(t,\sigma)=\frac{\partial X(t,\sigma)}{\partial t}= \frac{\partial [x(t)\circledast g(t,\sigma)]}{\partial t} \\ =x(t) \circledast (\frac{\partial g(t,\sigma)}{\partial t}) X˙(t,σ)=tX(t,σ)=t[x(t)g(t,σ)]=x(t)(tg(t,σ))
    如此类推:
    X ¨ ( t , σ ) = ∂ 2 X ∂ t 2 = x ( t ) ⊛ ( ∂ 2 g ( t , σ ) ∂ t 2 ) \ddot X(t,\sigma)=\frac{\partial^2X}{\partial t^2}=x(t) \circledast (\frac{\partial^2 g(t,\sigma)}{\partial t^2}) X¨(t,σ)=t22X=x(t)(t22g(t,σ))
    Y ˙ ( t , σ ) \dot Y(t,\sigma) Y˙(t,σ) Y ¨ ( t , σ ) \ddot Y(t,\sigma) Y¨(t,σ)的定义亦然。

    那么,各尺度下的曲率计算公式:
    κ ( t , σ ) = X ˙ ( t , σ ) Y ¨ ( t , σ ) − Y ˙ ( t , σ ) X ¨ ( t , σ ) ( X ˙ ( t , σ ) + Y ˙ ( t , σ ) ) 3 / 2 \kappa(t,\sigma)=\frac{\dot X(t,\sigma)\ddot Y(t,\sigma) - \dot Y(t,\sigma)\ddot X(t,\sigma)}{(\dot X(t,\sigma)+\dot Y(t,\sigma))^{3/2}} κ(t,σ)=(X˙(t,σ)+Y˙(t,σ))3/2X˙(t,σ)Y¨(t,σ)Y˙(t,σ)X¨(t,σ)

    寻找曲率极值

    在不同尺度下寻找曲率极值点,其入选的条件:
    ∣ κ i − 1 ∣ < ∣ κ i ∣ > ∣ κ i + 1 ∣     a n d     ∣ κ i − 2 ∣ < ∣ κ i ∣ > ∣ κ i + 2 ∣ |\kappa_{i-1}|<|\kappa_i|>|\kappa_{i+1}|\ \ \ and\ \ \ |\kappa_{i-2}|<|\kappa_i|>|\kappa_{i+2}| κi1<κi>κi+1   and   κi2<κi>κi+2
    意思是每连续5个连续点进行曲率值比较,选取局部极值点。

    选取边缘特征点

    1. 从高尺度到低尺度寻找最终关键点
    2. 在至少13个尺度下都能找到相同的曲率极值点,则该曲率极值点入选最终关键点
    3. 最终关键点在不同尺度下被找到的次数作为点的可信度
    4. 每个簇中选取可信度最高的两个点作为sharp point
    5. 其余的最终关键点作为less sharp point
    展开全文
  • 1. 使用 Canny 边缘检测器找到边缘图像。... 找到绝对曲率积的局部最大值作为候选角点,并通过与曲率阈值${T_h}$ 比较去除弱角点。 7. 计算上一步得到的每个候选角的角度,并与角度阈值${\delta}$ 进行比较以去除假
  • 该算法利用曲率尺度空间(CSS)角点检测法提取特征,通过比较各特征圆形邻域Zernike矩的欧式距离得到匹配对,然后利用正确的映射模型计算出变换参数,最后采用加权平均法得到图像的拼接结果。实验表明,该算法...
  • 考虑了该技术在形状描述和角点检测中的应用,并具体地给出了一种检测角点的多尺度曲率积算法.L曲率尺度空间图表明它的零点和极值关于尺度参数是稳定的,具有较强的鲁棒性.新的角点检测算法能够增强形状特征...
  • LabVIEW角点检测(基础篇—10)

    万次阅读 2021-07-18 17:49:25
    角点是图像中一种特殊的特征,基于角点进行图像检测和匹配,能在较难找到图像特征的情况下,创建图像拼接或图像匹配应用。
  • [2] 改进的曲率尺度空间角点检测器和用于转换图像识别的稳健角点匹配方法,IEEE TIP 2008。 [3] 基于弦到点距离累积技术的鲁棒图像角点检测,IEEE TMM 2008。 [4] 基于弦到点距离累加技术的快速角检测器,IEEE ...
  • Harris角点检测算法是一个极简单的角点检测算法。该算法的主要思想是,如果像素周围显示存在多于一个方向的边,我们认为该为兴趣,该便称为角点角点检测算法基本原理 人眼对角点的识别通常是在一个局部的小...
  • 本次实验通过参考教材《Python计算机视觉编程》和网上大量资料学习局部图像描述子,Harris角点检测器,SIFT特征,匹配地理标记图像相关内容。 一、Harris角点检测算法 1.1 角点是什么 角点具有的特征: <1>...
  • 图像特征之Harris角点检测

    千次阅读 2017-12-16 14:55:10
    原文站点:https://senitco.github.io/2017/06/18/image-feature-harris/  角点检测(Corner Detection)也称为特征点检测,是图像处理和计算机视觉中用来获取图像局部特征的一类方法,广泛应用于运动检测、图像...
  • 尺度Harris角点的学习

    千次阅读 2017-04-18 10:12:42
    Harris角点检测原理分析 我进入原文 ============================【Harris角点】======================= 1. 不同类型的角点 在现实世界中,角点对应于物体的拐角,道路的十
  • 012 角点检测 Fast

    2020-08-13 16:29:33
    角点检测是很多图像处理(追踪,实时定位,图像匹配识别)的第一步,现在也有很多算法,但计算量都较大,不适合实时视频处理,Fast算法速度快,且角点检测质量也很高,同一3D场景,不同视角下检测角点相同。...
  • 摄像头标定 角点检测

    2012-07-12 21:04:01
    摄像头标定 亚像素 角点检测 棋盘格 有一定的参考价值
  • 为了检测多尺度框架中的角点,Rattarangsi和Chin研究了平面曲线尺度空间行为。 不幸的是,他们的研究是基于一个错误的假设,即平面曲线在演化过程中没有收缩。 在本文中,此错误已得到纠正。 首先,证明了平面...
  • 角点检测算法

    千次阅读 2020-04-13 21:12:37
    SIFT算法的实质是在不同的尺度空间上查找关键(特征),并计算出关键的方向。SIFT所查找到的关键是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的,如角点、边缘、暗区的亮点及亮区的暗等。.....
  • 为了有效的在尺度空间检测到稳定的关键,提出了高斯差分尺度空间(DOG scale-space)。利用不同尺度的高斯差分核 与图像卷积生成。 下图所示不同 σ下图像尺度空间: 关于尺度...
  • 角点检测

    千次阅读 2017-03-15 23:26:05
    一、 角点认识角点是目标轮廓上曲率曲率是描述曲线弯曲程度或者偏离直线的程度)的局部极大值,是物体轮廓的决定性特征。角点没有明确的数学模型,但人们普遍认为角点是二维图像亮度变化剧烈的或图像边沿曲线...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,993
精华内容 797
关键字:

曲率尺度空间角点检测