买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:南京理工大学
摘要:本发明公开了一种klt角点检测装置及方法。该装置包括图像数据采集模块、角点提取模块、角点显示模块、角点数据传输模块,所述角点提取模块包括FPGA、视频接口、网络接口、存储设备和控制按键;CCD相机接入视频接口,视频接口分别接入FPGA和存储设备,存储设备与FPGA相互连接,控制按键接入FPGA,FPGA的输出端一方面接入VGA电视,另一方面通过网络接口与接收设备相连。图像数据采集模块对图像进行采集并经缓存后输入角点提取模块,角点提取模块对图像进行处理提取出角点信息,角点信息输入角点显示模块通过VGA电视显示,也可通过网络接口输入角点数据传输模块的接收设备。本发明可用于目标检测、目标跟踪、图像匹配等领域,并且传输速率快、实时性高。
主权项:一种klt角点检测方法,其特征在于,包括以下步骤:步骤1,将CCD相机采集到的原始图像数据进行AD转换后,在行场信号的作用下将原始图像数据输入存储设备进行缓存,FPGA通过控制按键读取带有行场信号的图像数据A;步骤2,将带有行场信号的图像数据A通过高斯滤波模块进行滤波,并将高斯滤波后的图像数据重新恢复成带有行场信号的图像数据B;步骤3,将高斯滤波后的带有行场信号的图像数据B进行梯度计算,分别得出水平方向和垂直方向的导数,并且将水平方向和垂直方向的导数恢复成带有行场信号的图像数据C;步骤4,将带有行场信号的图像数据C输入特征值模块处理得到特征值,将特征值与给定阈值进行比较,通过局部最大值抑制模块过滤掉聚集角点,输出带有行场信号的角点数据和高斯滤波数据原图,具体为:4.1将带有行场信号的图像数据C输入特征值模块,建立两个维数相同的模板窗口,第一模板窗口读取图像数据C水平方向梯度Ix,第二模板窗口读取图像数据C垂直方向梯度Iy,当两个模板窗口均填满时,处理得到Ixx、Iyy、Ixy,公式如下:Ixx=∑Ix*IxIyy=∑Iy*IyIxy=∑Ix*Iy4.2根据Ixx、Iyy、Ixy处理得到特征值λ,公式为:=Ixx+IyyIxx2-2IxxIyy+Iyy2+4Ixy22]]4.3将上式所得两个特征值中较大的一个输入局部最大值抑制模块,用第三模板窗口读取特征值,将特征值与给定阈值λth进行比较,第三模板窗口中心寄存器的值为待比较的特征值λcenter,模板除中心以外的寄存器的值为被比较的特征值λi;4.4通过局部最大值抑制模块过滤掉聚集角点:如果λcenter>λi且λcenter>λth,那么该点是所需要的角点;如果λcenter>λi且λcenter<λth,那么该点不是所需要的角点;如果λcenter<λi,则直接舍去,不与λth比较,并且该点不是所需要的角点;4.5将高斯原图的数据和角点图像分别存入缓冲存储器,读取缓冲存储器中的高斯原图的数据和角点图像数据,恢复出行场信号以及配对的图像数据,输出带有行场信号的角点数据和高斯滤波数据原图;步骤5,将带有行场信号的角点数据和高斯滤波数据原图输出到角点显示模块,根据VGA接口的显示时序,显示角点图和原始图像;步骤6,将带有行场信号的角点数据和高斯滤波数据原图通过网络接口输出到角点数据传输模块的接收设备,供后续模块使用。
全文数据:一种k11角点检测装置及方法技术领域[0001]本发明属于图像处理的技术领域,特别是一种kit角点检测装置及方法。背景技术[0002]在图像处理领域,目标检测是一种基于目标几何和统计特征的图像分割,它将目标的分割和识别合二为一,其准确性和实时性是整个系统的一项重要能力。尤其是在复杂场景中,需要对多个目标进行实时处理时,目标自动提取和识别就显得特别重要。[0003]角点检测方法被广泛应用,因为角点是图像的一种很重要的局部特征,并且角点具有旋转不变性及不随光照条件而变化的特征,它不仅同时保留图像的重要特征,还有效地降低了信息包含的数据量,提高信息含量。其中kit角点检测法不同于别的角点检测方法,计算的是给定矩形窗内的特征值,由于其计算特征值的方法中涉及乘方、开方等多种运算,因此在传统处理平台上运算比较复杂,运算时间较久,不能满足实时性。经过分析kit角点检测法适用于FPGA实现:[0004]文献1唐永鹤,胡谋法,张路,卢焕章.Harris算法硬件加速设计.电路与系统学报,2012,17⑴:47-53.中所描述的主要是利用Harris角点硬件化的方法来实现角点检测,并且有一些硬件上的加速设计,但是Harris角点算法本身复杂度较高,所消耗的FPGA资源多,检测的角点精度不是特别高;[0005]文南犬2ShiJ,TomasiC.Goodfeaturestotrack[C]·Computervisionandpatternrecognition,1994.Proceedingsof1994IEEEComputerSocietyConference,1994:593-600.是kit角点检测算法的最初版本,它是由软件的形式串行实现的,后来kit角点检测这个算法被应用于目标检测、目标识别跟踪等领域时,算法运行平台是传统的处理器,没有高速的运行性能,导致算法运行效率不高;算法的执行过程是串行执行,算法本身的运算时间长,实时性不好。发明内容[0006]本发明的目的在于提供一种数据传输快、实时性高的kit角点检测装置及方法,能够实时检测出图像中的角点,并且根据不同阈值调整角点的个数。[0007]实现本发明目的的技术解决方案为:[0008]—种kit角点检测装置,包括图像数据采集模块、角点提取模块、角点显示模块和角点数据传输模块,其中图像数据采集模块包括CCD相机,角点提取模块包括FPGA、视频接口、网络接口、存储设备和控制按键,角点显不t旲块包括VGA电视,角点数据传输_旲块包括接收设备;CCD相机接入视频接口,视频接口分别接入FPGA和存储设备,存储设备与FPGA相互连接,控制按键接入FPGA,FPGA的输出端一方面接入VGA电视,另一方面通过网络接口与接收设备相连;[0009]图像数据采集模块对图像进行采集并经缓存后输入角点提取模块,角点提取模块对图像进行处理提取出角点信息,一方面将角点信息输入角点显示模块通过VGA电视显示,另一方面将角点信息通过网络接口输入角点数据传输模块的接收设备。[0010]—种klt角点检测方法,包括以下步骤:[0011]步骤1,将CCD相机采集到的原始图像数据进行AD转换后,在行场信号的作用下将原始图像数据输入存储设备进行缓存,FPGA通过控制按键读取带有行场信号的图像数据A;[0012]步骤2,将带有行场信号的图像数据A通过高斯滤波模块进行滤波,并将高斯滤波后的图像数据重新恢复成带有行场信号的图像数据B;[0013]步骤3,将高斯滤波后的带有行场信号的图像数据B进行梯度计算,分别得出水平方向和垂直方向的导数,并且将水平方向和垂直方向的导数恢复成带有行场信号的图像数据C;[0014]步骤4,将带有行场信号的图像数据C输入特征值模块处理得到特征值,将特征值与给定阈值进行比较,通过局部最大值抑制模块过滤掉聚集角点,输出带有行场信号的角点数据和高斯滤波数据原图;[0015]步骤5,将带有行场信号的角点数据和高斯滤波数据原图输出到角点显示模块,根据VGA接口的显不时序,显不角点图和原始图像;[0016]步骤6,将带有行场信号的角点数据和高斯滤波数据原图通过网络接口输出到角点数据传输模块的接收设备,供后续模块使用。[0017]本发明与现有技术相比,其显著优点为:(1在保证kit角点检测准确性的条件下明显的提高了实时性;(2将kit角点检测装置可当成“芯片”一样使用,用于多种领域,如目标识别、目标搜索跟踪、图像配准、图像融合等;[0018]⑶该kit角点检测方法基于FPGA平台实现,数据处理和传输速率快,效率高。附图说明[0019]图1是本发明kit角点检测装置的结构示意图。[0020]图2是本发明kit角点检测方法的流程示意图。[0021]图3是本发明kit角点检测方法中高斯卷积流程图。[0022]图4是本发明kit角点检测方法中局部最大值抑制示意图。具体实施方式[0023]下面结合附图及具体实施例对本发明作进一步详细说明。[0024]结合图1,本发明kit角点检测装置,包括图像数据采集模块、角点提取模块、角点显示模块和角点数据传输模块,其中图像数据采集模块包括CCD相机,角点提取模块包括FPGA、视频接口、网络接口、存储设备和控制按键,角点显示模块包括VGA电视,角点数据传输模块包括接收设备;CCD相机接入视频接口,视频接口分别接入FPGA和存储设备,存储设备与FPGA相互连接,控制按键接入FPGA,FPGA的输出端一方面接入VGA电视,另一方面通过网络接口与接收设备相连;所述角点提取模块中的FPGA包括顺次连接的高斯滤波模块、梯度模块、特征值模块和局部最大值抑制模块。图像数据采集模块对图像进行采集并经缓存后输入角点提取模块,角点提取模块对图像进行处理提取出角点信息,一方面将角点信息输入角点显示模块通过VGA电视显示,另一方面将角点信息通过网络接口输入角点数据传输模块的接收设备。[0025]本发明kit角点检测装置的工作流程为:首先通过视频接口连接好CXD相机与FPGA处理板,通过VGA接口连接好VGA电视与FPGA处理板,通过网络接口将FPGA和接收设备连接,然后将CCD相机上电,FPGA处理板上电;将CCD相机采集到的视频图像数据通过视频接口存入存储设备,通过FPGA与存储设备的接口将图像数据采集模块的数据交给角点提取模块,在角点提取模块中首先完成原图的高斯滤波,进而对高斯滤波后的图像求水平和垂直方向梯度,根据梯度值确定特征值,最后对特征值进行局部最大值抑制得到角点图,同时将原图缓存后与角点图同步输出,接着将角点图和原图可以输入给角点显示模块,通过VGA显示观察,将角点图和原图输入给角点数据传输模块,通过千兆网络将数据传出。[0026]结合图2,本发明kit角点检测方法,包括以下步骤:[0027]步骤1,将CCD相机采集到的原始图像数据进行AD转换后,在行场信号的作用下将原始图像数据输入存储设备进行缓存,FPGA通过控制按键读取带有行场信号的图像数据A;[0028]步骤2,将带有行场信号的图像数据A通过高斯滤波模块进行滤波,如图3所示,并将高斯滤波后的图像数据重新恢复成带有行场信号的图像数据B;[0029]步骤3,将高斯滤波后的带有行场信号的图像数据B进行梯度计算,分别得出水平方向和垂直方向的导数,并且将水平方向和垂直方向的导数恢复成带有行场信号的图像数据C;[0030]步骤4,将带有行场信号的图像数据C输入特征值模块处理得到特征值,将特征值与给定阈值进行比较,通过局部最大值抑制模块过滤掉聚集角点,输出带有行场信号的角点数据和高斯滤波数据原图;具体为:[0031]4.1将带有行场信号的图像数据C输入特征值模块,建立两个维数相同的模板窗口,第一模板窗口读取图像数据C水平方向梯度Ix,第二模板窗口读取图像数据C垂直方向梯度Iy,当两个模板窗口均填满时,处理得到Ixx、Iyy、Ixy,公式如下:[0032]Ixx=ΣΙχ*Ιχ[0033]Iyy=ΣIy*Iy[0034]Ixy=ΣIx*Iy[0035]4.2根据Ixx、Iyy、1灯处理得到特征值λ,公式为:[0037]4.3将上式所得两个特征值中较大的一个输入局部最大值抑制模块,用第三模板窗口读取特征值,将特征值与给定阈值Ath进行比较,第三模板窗口中心寄存器的值为待比较的特征值A_ter,模板除中心以外的寄存器的值为被比较的特征值λ1;[0038]4.4通过局部最大值抑制模块过滤掉聚集角点:[0039]如果Xcenter〉λί且Acenter〉Ath,那么该点是所需要的角点;[0040]如果Xcenter〉λί且AcenterCAth,那么该点不是所需要的角点;[0041]如果AcenterCAi,则直接舍去,不与Ath比较,并且该点不是所需要的角点;[0042]4.5将高斯原图的数据和角点图像分别存入缓冲存储器,读取缓冲存储器中的高斯原图的数据和角点图像数据,恢复出行场信号以及配对的图像数据,输出带有行场信号的角点数据和高斯滤波数据原图。[0043]步骤5,将带有行场信号的角点数据和高斯滤波数据原图输出到角点显示模块,根据VGA接口的显不时序,显不角点图和原始图像;[0044]步骤6,将带有行场信号的角点数据和高斯滤波数据原图通过网络接口输出到角点数据传输模块的接收设备,供后续模块使用。[0045]实施例1[0046]本实施例kit角点检测装置中FPGA处理板的FPGA主芯片是CycloneIVE系列芯片,该芯片有较多的逻辑单元、嵌入式存储器、4个通用PLL,满足程序中对时钟的各种要求,主要存储芯片为SDRAM,高速接口为RJ45网络接口。[0047]本实施例kit角点检测方法的具体步骤如下:[0048]步骤1,首先通过数据采集模块采集CCD相机所拍摄的PAL制图像视频,将图像视频经AD芯片模数转换后,在行场信号的作用下将采集到的视频图像存入SDRAM中,每帧图像的大小为640*480,通过SDRAM控制器可以读取SDRAM中所存的图像数据。图像的像素点时钟频率为27MHz,将图像数据按照场频和行频读取出来。[0049]步骤2,对数据采集模块所读取的原始图像进行高斯滤波去噪处理。将像素时钟作为滤波处理的主控制时钟,如图3所示,高斯滤波由3X3的带有系数的矩阵模板组成。[0050]在FPGA中,用FIFO和寄存器构成这个模板,模板系数为G,首先建立一个3X3的窗口,由寄存器111、112、胃13、胃21、胃22、胃23、抑1、胃32、胃33构成3\3的窗口,由卩正01和卩正02分别缓存一行数据,那么一个时钟三个数据分别打入寄存器Wn、W21、W31,这三个数据在下一个时钟打入下一列寄存器,三个时钟就可以将3X3的窗口寄存器填满,一旦填满窗口,即把窗口寄存器的数据对应位置与高斯模板的系数G对应位置相乘,并且最后将9个乘积相加,得到结果为窗口中间像素高斯滤波后的值,然后接下来在时钟作用下,每一个时钟即可输出一个高斯滤波的值。针对640*480图像,按每行640个像素处理,然后处理480行,每对640个像素做高斯滤波处理,就将结果缓存到FIFO中,产生新的行场信号输出,作为下一级的输入,模板系数G为:[0052]步骤3,根据步骤2得到的高斯滤波去噪后的图像信号,确定图像的水平方向和垂直方向的梯度。为得到水平方向的梯度采用模板[10-1],垂直方向的梯度采用模板[10-1]T。由于需要将水平和垂直方向的梯度同时处理,如果对图像分别用两个模板确定梯度,则需要额外添加使数据同步的模块,考虑到资源的利用率问题,将水平垂直模板合并成一个3X3模板,并且可以保证水平方向与垂直方向梯度的同步,以及确保了当前输出的梯度值针对的是同一个像素。同步骤2中高斯滤波的方法类似,也是由寄存器Wn、112、113、121、122、123、131、132、133构建3\3的窗口,将高斯滤波图像的数据按行打入?正0中,与步骤2不同的是模板的系数,此时可简化为水平和垂直的两个寄存器相减,从而得到水平方向梯度Ix,垂直方向梯度Iy,将这两个新的图像数据缓存到FIFO中,并且产生与原图行场信号一致的新的梯度图像输出,同时作为输入供下一步使用。[0053]步骤4,将带有行场信号的图像数据输入特征值模块处理得到特征值,将特征值与给定阈值进行比较,通过局部最大值抑制模块过滤掉聚集角点,输出带有行场信号的角点数据和高斯滤波数据原图;具体为:[0054]1将带有行场信号的图像数据C输入特征值模块,建立两个维数相同的模板窗口,设置窗口模板大小为3X3,与高斯滤波模板的类似,产生两个3X3窗口按行场扫描信号对水平梯度图像数据Ix和垂直梯度图像数据Iy操作,处理得到IXX、Iyy、IXy;[0055]2根据Ixx、Iyy、1灯处理得到特征值λ;[0056]3将上式所得两个特征值中较大的一个输入局部最大值抑制模块,用第三模板窗口读取特征值,将特征值与给定阈值Ath进行比较,第三模板窗口中心寄存器的值为待比较的特征值Xcenter,模板除中心以外的寄存器的值为被比较的特征值Ai;[0057]4通过局部最大值抑制模块过滤掉聚集角点:如果AcenterAi且AcenterAth,那么该点是所需要的角点;如果Xc;ente:rXi且Ac;enterAth,那么该点不是所需要的角点;如果^centerM,则直接舍去,不与Ath比较,并且该点不是所需要的角点;[0058]局部最大值抑制模块采用的是7X7的窗口模板,用6个FIFO和输入寄存器组成7X7窗口的输入缓存,再用49个寄存器组成特征值操作窗口,首先通过7拍处理时钟,特征值数据将窗口填满,填满之后,如图4所示,从第8拍开始,每读取一次,比较一次模板中间寄存器reg的值与周围寄存器的值的大小,如果中间寄存器的值不是最大的,那么直接将该点舍去,将输出值赋值为0x00;如果中间寄存器的值是最大的,进而与给定阈值比较,如果比给定阈值大,那么此时中间寄存器中的值为所需要的角点,赋值为OxFF;将这个窗口依次扫描特征值图像矩阵,扫描完整个图像后,也就是对整幅图像完成了特征值比较,这样就会产生只有角点的图像黑底白点)。[0059]步骤5,将高斯原图的数据和角点图像分别存入缓冲存储器,读取缓冲存储器中的高斯原图的数据和角点图像数据,恢复出行场信号以及配对的图像数据,输出带有行场信号的角点数据和高斯滤波数据原图。将角点数据和原图通过VGA显示输出,因为处理图像时都是按照VGA的时序产生的行场信号处理的,因此,此时的图像已经满足了VGA显示所需要的频率,计算出行场信号的频率,还包括行有效信号,同步信号等,将数据与行有效信号匹配好,通过缓存后按VGA的时序显示即可,通过监视器可以观察到角点图像,角点为白色的点,背景全黑,从角点图像上可以知道角点的位置,再与原图比较,可以知道角点的实际在原图上的位置信息。[0060]步骤6,将角点数据和高斯原图再通过千兆网络模块传输,将数据打包成1280每包,然后按照发送时序将数据输入到网口端,通过UDP网络核心模块,将数据发送出来,供其他设备使用。本实施例中FPGA所使用的资源如表1所示:[0061]表1[0063]本实施例采用640*480的可见光视频图像,按照本发明klt角点检测方法实现了视频的角点检测,并且通过VGA监视器显示准确的角点图像,具有很好的实时性。
权利要求:1.一种kit角点检测方法,其特征在于,包括以下步骤:步骤1,将CCD相机采集到的原始图像数据进行AD转换后,在行场信号的作用下将原始图像数据输入存储设备进行缓存,FPGA通过控制按键读取带有行场信号的图像数据A;步骤2,将带有行场信号的图像数据A通过高斯滤波模块进行滤波,并将高斯滤波后的图像数据重新恢复成带有行场信号的图像数据B;步骤3,将高斯滤波后的带有行场信号的图像数据B进行梯度计算,分别得出水平方向和垂直方向的导数,并且将水平方向和垂直方向的导数恢复成带有行场信号的图像数据C;步骤4,将带有行场信号的图像数据C输入特征值模块处理得到特征值,将特征值与给定阈值进行比较,通过局部最大值抑制模块过滤掉聚集角点,输出带有行场信号的角点数据和高斯滤波数据原图,具体为:4.1将带有行场信号的图像数据C输入特征值模块,建立两个维数相同的模板窗口,第一模板窗口读取图像数据C水平方向梯度Ix,第二模板窗口读取图像数据C垂直方向梯度Iy,当两个模板窗口均填满时,处理得到IXX、Iyy、Ixy,公式如下:Ixx=ΣIx*IxIyy=ΣIy*IyIxy=ΣIx*Iy4.2根据Ixx、Iyy、Ixy处理得到特征值λ,公式为:义=人·λ.+±_2vii:r+Zly-+4λι;24.3将上式所得两个特征值中较大的一个输入局部最大值抑制模块,用第三模板窗口读取特征值,将特征值与给定阈值Ath进行比较,第三模板窗口中心寄存器的值为待比较的特征值Xcenter,模板除中心以外的寄存器的值为被比较的特征值Ai;4.4通过局部最大值抑制模块过滤掉聚集角点:如果kenterM且AcenterAth,那么该点是所需要的角点;如果kenter〉M且AcenterAth,那么该点不是所需要的角点;如果AcenterAi,则直接舍去,不与Ath比较,并且该点不是所需要的角点;4.5将高斯原图的数据和角点图像分别存入缓冲存储器,读取缓冲存储器中的高斯原图的数据和角点图像数据,恢复出行场信号以及配对的图像数据,输出带有行场信号的角点数据和高斯滤波数据原图;步骤5,将带有行场信号的角点数据和高斯滤波数据原图输出到角点显示模块,根据VGA接口的显不时序,显不角点图和原始图像;步骤6,将带有行场信号的角点数据和高斯滤波数据原图通过网络接口输出到角点数据传输模块的接收设备,供后续模块使用。
百度查询: 南京理工大学 一种klt角点检测装置及方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。