发明内容
有鉴于此,本发明提出了一种基于响应图和聚类的鲁棒灭点检测方法及装置,旨在解决现有技术无法提高鲁棒灭点检测的准确率的技术问题。
本发明的技术方案是这样实现的:
一方面,本发明提供了一种基于响应图和聚类的鲁棒灭点检测方法,所述基于响应图和聚类的鲁棒灭点检测方法包括以下步骤:
S1,获取原始图像,对该原始图像进行预处理,获取预处理之后的图像作为预处理图像;
S2,通过LSD线段检测算法对预处理图像进行检测,获取有效线段的信息,根据该信息过滤有效线段得到粗选线段,并对该粗选线段进行初次聚类,获取聚类后的粗选线段作为备选线段;
S3,计算该备选线段中每一类的置信值,根据该置信值和本类别总的响应值获取用于计算灭点的两类线段;
S4,使用原始图像创建响应图,将用于计算灭点的两类线段处理后绘制在响应图上,并根据绘制完成的响应图获取灭点。
在以上技术方案的基础上,优选的,步骤S1中,获取原始图像,对该原始图像进行预处理,获取预处理之后的图像作为预处理图像,还包括以下步骤,获取原始图像,构建双边滤波算法,通过该双边滤波算法对原始图像进行处理,将处理后的原始图像作为预处理图像。
在以上技术方案的基础上,优选的,步骤S2中,通过LSD线段检测算法对预处理图像进行检测,获取有效线段的信息,根据该信息过滤有效线段得到粗选线段,并对该粗选线段进行初次聚类,获取聚类后的粗选线段作为备选线段,还包括以下步骤,构建LSD线段检测算法,通过该LSD线段检测算法对预处理图像进行检测,检测出预处理图像中的有效线段,获取该有效线段的信息,所述有效线段的信息包括:线段的起点与终点、线段的宽度、线段的角度以及线段的位置,根据该有效线段的信息计算该有效线段强度,根据该有效线段信息以及有效线段强度获取粗选线段,并对该粗选线段进行初次聚类,获取聚类后的粗选线段作为备选线段。
在以上技术方案的基础上,优选的,根据该有效线段的信息计算该有效线段强度,根据该有效线段信息以及有效线段强度获取备选线段,并对该备选线段进行初次聚类,还包括以下步骤,设定过滤线段数值范围,根据该滤线段数值范围通过有效线段的信息以及有效线段强度对该有效线段进行过滤,将保留的有效线段作为粗选线段,并对该粗选线段进行初次聚类,获取聚类后的粗选线段作为备选线段。
在以上技术方案的基础上,优选的,步骤S3中,计算该备选线段中每一类的置信值,根据该置信值和本类别总的响应值获取用于计算灭点的两类线段,还包括以下步骤,设定置信值阈值范围,计算备选线段中每一类的置信值,计算每一类的置信值与其他类置信值的差值,将置信值的差值与置信值阈值范围进行比较,若该置信值的差值不满足置信值阈值范围,从置信值中选取置信值最大的两个类别,将这两个类别作为用于灭点的两类线段;若该置信值的差值满足置信值阈值范围,则获取备选线段中本类别总的响应值,选取本类别总的响应值最大的类别作为用于灭点的两类线段。
在以上技术方案的基础上,优选的,步骤S4中,使用原始图像创建响应图,将用于计算灭点的两类线段处理后绘制在响应图上,并根据绘制完成的响应图获取灭点,还包括以下步骤,使用原始图像创建一个像素值全为0且与原始图像大小相同的图像作为响应图,将用于灭点的2类线段扁平化为一个线段序列后,依次从该线段序列中选择两条线段,并计算这两条线段对应直线的交点,将该交点绘制在响应图上,并计算该交点对应的两条线段强度值的和作为强度值,根据强度值筛选出数值最大的强度值对应的交点作为当前检测灭点,获取多次灭点,从多次灭点中选择出现次数最多的灭点作为最终灭点。
在以上技术方案的基础上,优选的,根据强度值筛选出数值最大的强度值对应的交点作为当前检测灭点,获取多次灭点,从多次灭点中选择出现次数最多的灭点作为最终灭点之后,还包括以下步骤,获取多个响应图中的最大交点的强度值以及响应值,将多个响应图中的最大交点进行聚类,并设定阈值范围,获取多个类别中阈值范围内强度值以及响应值最大的最大交点作为当前检测的灭点。
更进一步优选的,所述基于响应图和聚类的鲁棒灭点检测装置包括:
获取模块,用于获取原始图像,对该原始图像进行预处理,获取预处理之后的图像作为预处理图像;
聚类模块,用于通过LSD线段检测算法对预处理图像进行检测,获取有效线段的信息,根据该信息过滤有效线段得到粗选线段,并对该粗选线段进行初次聚类,获取聚类后的粗选线段作为备选线段;
计算模块,用于计算该备选线段中每一类的置信值,根据该置信值和本类别总的响应值获取用于计算灭点的两类线段;
创建模块,用于使用原始图像创建响应图,将用于计算灭点的两类线段处理后绘制在响应图上,并根据绘制完成的响应图获取灭点。
第二方面,所述基于响应图和聚类的鲁棒灭点检测方法还包括一种设备,所述设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的基于响应图和聚类的鲁棒灭点检测方法程序,所述基于响应图和聚类的鲁棒灭点检测方法程序配置为实现如上文所述的基于响应图和聚类的鲁棒灭点检测方法的步骤。
第三方面,所述基于响应图和聚类的鲁棒灭点检测方法还包括一种介质,所述介质为计算机介质,所述计算机介质上存储有基于响应图和聚类的鲁棒灭点检测方法程序,所述基于响应图和聚类的鲁棒灭点检测方法程序被处理器执行时实现如上文所述的基于响应图和聚类的鲁棒灭点检测方法的步骤。
本发明的一种基于响应图和聚类的鲁棒灭点检测方法相对于现有技术具有以下有益效果:
(1)通过使用多次聚类手段提升算法的鲁棒性和准确性,并定义了线段的强度和置信度函数,剔除了大量干扰,减小了计算量。
(2)通过构建了图像灭点检测算法的基本流程。包含预处理,线段检测,预筛选,二次聚类,以及构造像应图,提取灭点等流程,通过这些流程可以得到精确、鲁棒性高的灭点。
(3)通过提出了基于检测线段属性(截距、强度、置信度)的筛选过程和依据何种属性聚类和选择的方法,提高了检测方法的代表性,减少了检测方法的计算量。
(4)通过基于响应图获取灭点的方法,充分利用了应用场景中,灭点处于图像内部的特性,将搜索空间由无限空间缩小到有限大小,并最终得到精确、鲁棒的灭点,可应用于相关领域,具有较大的社会和经济价值。
具体实施方式
下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
如图1所示,该设备可以包括:处理器1001,例如中央处理器(Central ProcessingUnit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对设备的限定,在实际应用中设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于响应图和聚类的鲁棒灭点检测方法程序。
在图1所示的设备中,网络接口1004主要用于建立设备与存储基于响应图和聚类的鲁棒灭点检测方法系统中所需的所有数据的服务器的通信连接;用户接口1003主要用于与用户进行数据交互;本发明基于响应图和聚类的鲁棒灭点检测方法设备中的处理器1001、存储器1005可以设置在基于响应图和聚类的鲁棒灭点检测方法设备中,所述基于响应图和聚类的鲁棒灭点检测方法设备通过处理器1001调用存储器1005中存储的基于响应图和聚类的鲁棒灭点检测方法程序,并执行本发明实施提供的基于响应图和聚类的鲁棒灭点检测方法。
结合图2,图2为本发明基于响应图和聚类的鲁棒灭点检测方法第一实施例的流程示意图。
本实施例中,所述基于响应图和聚类的鲁棒灭点检测方法包括以下步骤:
S10:获取原始图像,对该原始图像进行预处理,获取预处理之后的图像作为预处理图像。
应当理解的是,本实施例中,首先会获取原始图像,然后会对原始图像进行预处理,将预处理之后的原始图像作为预处理图像。
应当理解的是,本实施中的预处理过程即是通过建立双边滤波算法,对图像进行快速双边滤波,降噪并极大地保留图像包含的边缘信息,利于提高下面的线段提取算法效果,其中,双边滤波是一种经典方法,用于降低图像噪声,并保留图像中的边缘细节,有助于提高LSD的性能。
S20:通过LSD线段检测算法对预处理图像进行检测,获取有效线段的信息,根据该信息过滤有效线段得到粗选线段,并对该粗选线段进行初次聚类,获取聚类后的粗选线段作为备选线段。
应当理解的是,之后系统会使用LSD线段检测算法(通过LSD算法,会输出检测到的线段信息,包括线段的起点与终点,线段的宽度),检测出有效线段,计算线段强度(线段两端点的欧拉距离与宽度的比值乘以一个常数),并根据线段的角度、位置和强度进行过滤,得到有效的备选线段,其中,欧拉距离指两点间的直线距离,常数由系统自行进行设定。
应当理解的是,这个步骤中,系统首先定义了一个强度的概念,即线段长度与宽度的比值,一个直观的想法是,线段越长应该越可信,线段越宽也应越可信,这其实就是两者的一个平衡。就是要保证长度与宽度的比值大才可信,至于过滤,系统会设定一个范围,然后根据线段的角度、位置和强度进行过滤,如果不在这个范围内的线段,全部去掉,因为对于单灭点,其构成线段的角度是有一个大致范围的,这也是为了减少计算量,让更有效的线段进入下面的处理。
应当理解的是,之后为了减少后续的计算量并获取更可信的候补线段,线段的直线与图像底边缘的截距的值表明了线段所处的位置,可以根据该信息,初次聚类线段,即对该有效备选线段进行初次聚类,获取聚类后的有效备选线段。
S30:计算该备选线段中每一类的置信值,根据该置信值和本类别总的响应值获取用于计算灭点的两类线段。
应当理解的是,系统之后会设定置信值阈值范围,计算备选线段中每一类的置信值,计算每一类的置信值与其他类置信值的差值,将置信值的差值与置信值阈值范围进行比较,若该置信值的差值不满足置信值阈值范围,从置信值中选取置信值最大的两个类别,将这两个类别作为用于灭点的两类线段;若该置信值的差值满足置信值阈值范围,则获取备选线段中本类别总的响应值,选取本类别总的响应值最大的类别作为用于灭点的两类线段
应当理解的是,具体操作为:系统在获取聚类后的有效备选线段之后,会初次聚类的有效备选线段过滤,计算每一类的置信值(每一类包含的线段数量与类别总强度的线性组合),选择置信度最大的两个类别,如果遇到这两个类别的置信度相差在阈值范围内的情况就统计总强度,使用总强度更大的那个类别,最终获得了用于计算灭点的两类线段,其中阈值范围由系统或者管理人员进行设定。
应当理解的是,所谓聚类,就是根据相应的信息,把总体分割成好几组,本实施例中定义了线段组的置信值的概念,是组内线段的数量与组内总强度值的乘积,之所以选择两个类别,因为灭点本来就是点,两条线段足可以确定一个点,上述实施例也说明了,这里的组是根据位置划分的,因此这里的2组正好代表了上述的两条。
S40:使用原始图像创建响应图,将用于计算灭点的两类线段处理后绘制在响应图上,并根据绘制完成的响应图获取灭点。
应当理解的是,最后系统会使用原始图像创建一个像素值全为0的与原图大小相同的图像称为响应图,并将这两类线段扁平化为一个线段序列,依次从这个线段序列中选择两条线段,计算其对应直线的交点,将其绘制在响应图上,响应图上该点的值就是得到该点所有线段的强度值。
应当理解的是,本实施例中依次是不重复取的意思,并没有固定规则,假设本实施例中剩下a,b两组线段序列,a中有a_1,a_2;b中有b_1,b_2,那么就会有:(a_1,b_1),(a_1,b_2),(a_2,b_1),(a_2,b_2)这样的组合,这就是依次的意思。至于交点,即2条直线确定一个交点。根据线段的起点与终点,2条线段当然可以扩展成两条直线。
应当理解的是,然后系统会获取响应图的最大值的点作为当前检测灭点,在多帧采集的图像序列中,获取n次灭点,选择出现次数最多的灭点作为最终的灭点。
应当理解的是,上述实施例中解释了响应图上的点是如何得到的(即通过2个线段求的交点),那么这个点的值就是这两条线段强度值的和,假设a,b线段得到了c点,a、b的强度和是m,如果线段d,e的交点也是c点,d、e的强度和是n,那么此时c点的响应值就是m+n,所以这是一个累加的过程,至于为什么用一个序列,选出现最多的为最后输出的灭点,也是为了增加稳定性,最多的肯定大概率也是准确的。
应当理解的是,最后为了增强鲁棒性,也可取前k个响应图中的最大点,进行进一步的聚类(kmeans或者mean shift),汇聚成m类,获取m类中设定阈值范围r内拥有最大综合响应值s的点作为当前检测得到的灭点。如图3,中间没有数值的点是聚类中心,圆框的半径为r,由于一个圆框中的响应和值大于另一个圆框,因此最终数值大的圆框的聚类中心作为当前帧的灭点,其中,阈值范围r在本实施例中为圆框的半径。
应当理解的是,上述实施例中是简单使用响应值是最大的点作为灭点,实际上,由于图像中信息的干扰,真实的灭点应该由那些交点共同决定,这里用先聚类,再选择中心的方式,可以得到更准确和稳定的灭点。
需要说明的是,以上仅为举例说明,并不对本申请的技术方案构成任何限定。
通过上述描述不难发现,本实施例通过获取原始图像,对该原始图像进行预处理,获取预处理之后的图像作为预处理图像;通过LSD线段检测算法对预处理图像进行检测,获取有效线段的信息,根据该信息过滤有效线段得到粗选线段,并对该粗选线段进行初次聚类,获取聚类后的粗选线段作为备选线段;计算该备选线段中每一类的置信值,根据该置信值和本类别总的响应值获取用于计算灭点的两类线段;使用原始图像创建响应图,将用于计算灭点的两类线段处理后绘制在响应图上,并根据绘制完成的响应图获取灭点。本实施例通过多次聚类手段提升算法的鲁棒性和准确性,并定义了线段的强度和置信度函数,剔除了大量干扰,减小了计算量,提高了检测效率和速度,鲁棒性高。
此外,本发明实施例还提出一种基于响应图和聚类的鲁棒灭点检测装置。如图4所示,该基于响应图和聚类的鲁棒灭点检测装置包括:获取模块10、聚类模块20、计算模块30以及创建模块40。
获取模块10,用于获取原始图像,对该原始图像进行预处理,获取预处理之后的图像作为预处理图像;
聚类模块20,用于通过LSD线段检测算法对预处理图像进行检测,获取有效线段的信息,根据该信息过滤有效线段得到粗选线段,并对该粗选线段进行初次聚类,获取聚类后的粗选线段作为备选线段;
计算模块30,用于计算该备选线段中每一类的置信值,根据该置信值和本类别总的响应值获取用于计算灭点的两类线段;
创建模块40,用于使用原始图像创建响应图,将用于计算灭点的两类线段处理后绘制在响应图上,并根据绘制完成的响应图获取灭点。
此外,需要说明的是,以上所描述的装置实施例仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的基于响应图和聚类的鲁棒灭点检测方法,此处不再赘述。
此外,本发明实施例还提出一种介质,所述介质为计算机介质,所述计算机介质上存储有基于响应图和聚类的鲁棒灭点检测方法程序,所述基于响应图和聚类的鲁棒灭点检测方法程序被处理器执行时实现如下操作:
S1,获取原始图像,对该原始图像进行预处理,获取预处理之后的图像作为预处理图像;
S2,通过LSD线段检测算法对预处理图像进行检测,获取有效线段的信息,根据该信息过滤有效线段得到粗选线段,并对该粗选线段进行初次聚类,获取聚类后的粗选线段作为备选线段;
S3,计算该备选线段中每一类的置信值,根据该置信值和本类别总的响应值获取用于计算灭点的两类线段;
S4,使用原始图像创建响应图,将用于计算灭点的两类线段处理后绘制在响应图上,并根据绘制完成的响应图获取灭点。
进一步地,所述基于响应图和聚类的鲁棒灭点检测方法程序被处理器执行时还实现如下操作:
获取原始图像,构建双边滤波算法,通过该双边滤波算法对原始图像进行处理,将处理后的原始图像作为预处理图像。
进一步地,所述基于响应图和聚类的鲁棒灭点检测方法程序被处理器执行时还实现如下操作:
构建LSD线段检测算法,通过该LSD线段检测算法对预处理图像进行检测,检测出预处理图像中的有效线段,获取该有效线段的信息,所述有效线段的信息包括:线段的起点与终点、线段的宽度、线段的角度以及线段的位置,根据该有效线段的信息计算该有效线段强度,根据该有效线段信息以及有效线段强度获取粗选线段,并对该粗选线段进行初次聚类,获取聚类后的粗选线段作为备选线段。
进一步地,所述基于响应图和聚类的鲁棒灭点检测方法程序被处理器执行时还实现如下操作:
设定过滤线段数值范围,根据该滤线段数值范围通过有效线段的信息以及有效线段强度对该有效线段进行过滤,将保留的有效线段作为粗选线段,并对该粗选线段进行初次聚类,获取聚类后的粗选线段作为备选线段。
进一步地,所述基于响应图和聚类的鲁棒灭点检测方法程序被处理器执行时还实现如下操作:
设定置信值阈值范围,计算备选线段中每一类的置信值,计算每一类的置信值与其他类置信值的差值,将置信值的差值与置信值阈值范围进行比较,若该置信值的差值不满足置信值阈值范围,从置信值中选取置信值最大的两个类别,将这两个类别作为用于灭点的两类线段;若该置信值的差值满足置信值阈值范围,则获取备选线段中本类别总的响应值,选取本类别总的响应值最大的类别作为用于灭点的两类线段。
进一步地,所述基于响应图和聚类的鲁棒灭点检测方法程序被处理器执行时还实现如下操作:
使用原始图像创建一个像素值全为0且与原始图像大小相同的图像作为响应图,将用于灭点的2类线段扁平化为一个线段序列后,依次从该线段序列中选择两条线段,并计算这两条线段对应直线的交点,将该交点绘制在响应图上,并计算该交点对应的两条线段强度值的和作为强度值,根据强度值筛选出数值最大的强度值对应的交点作为当前检测灭点,获取多次灭点,从多次灭点中选择出现次数最多的灭点作为最终灭点。
进一步地,所述基于响应图和聚类的鲁棒灭点检测方法程序被处理器执行时还实现如下操作:
获取多个响应图中的最大交点的强度值以及响应值,将多个响应图中的最大交点进行聚类,并设定阈值范围,获取多个类别中阈值范围内强度值以及响应值最大的最大交点作为当前检测的灭点。
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。