掌桥专利:专业的专利平台
掌桥专利
首页

图像中直线段匹配方法及装置、存储介质和电子设备

文献发布时间:2023-06-19 16:06:26



技术领域

本公开涉及图像处理技术领域,具体而言,涉及一种图像中直线段匹配方法、图像中直线段匹配装置、计算机可读存储介质和电子设备。

背景技术

图像作为信息传递的重要载体,可被应用的场景越来越广泛且用户对图像质量的要求也越来越高,在这种情况下,各大厂商和研究人员开发了各种类型且数量庞大的图像处理方案,以满足各类使用群体的需求。

鉴于图像中的直线特征能够包含更多场景和对象的结构信息,因此,在一些图像处理方案中,需要进行与直线特征相关的处理操作。其中,直线段的匹配作为重要的处理手段之一,能够辅助例如图像对齐、图像融合以及三维建模等任务。

目前,直线段匹配的方案普遍存在计算量大的问题。

发明内容

本公开提供一种图像中直线段匹配方法、图像中直线段匹配装置、计算机可读存储介质和电子设备,进而至少在一定程度上克服直线段匹配计算量大的问题。

根据本公开的第一方面,提供了一种图像中直线段匹配方法,包括:对第一图像中的直线段进行检测,得到第一直线段集合,并对第二图像中的直线段进行检测,得到第二直线段集合;确定第一直线段集合中目标直线段的关键点集合,对关键点集合中每个关键点进行光流跟踪;基于光流跟踪的结果,从第二图像中确定出与关键点集合对应的匹配点集合,计算匹配点集合中每个匹配点分别距第二直线段集合中各直线段的距离,确定每个匹配点对应的距离最小的直线段,以得到候选直线段集合;从候选直线段集合中确定出第二图像中与目标直线段匹配的直线段。

根据本公开的第二方面,提供了一种图像中直线段匹配装置,包括:直线检测模块,用于对第一图像中的直线段进行检测,得到第一直线段集合,并对第二图像中的直线段进行检测,得到第二直线段集合;光流跟踪模块,用于确定第一直线段集合中目标直线段的关键点集合,对关键点集合中每个关键点进行光流跟踪;候选集合确定模块,用于基于光流跟踪的结果,从第二图像中确定出与关键点集合对应的匹配点集合,计算匹配点集合中每个匹配点分别距第二直线段集合中各直线段的距离,确定每个匹配点对应的距离最小的直线段,以得到候选直线段集合;匹配直线段确定模块,用于从候选直线段集合中确定出第二图像中与目标直线段匹配的直线段。

根据本公开的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的图像中直线段匹配方法。

根据本公开的第四方面,提供了一种电子设备,包括处理器;存储器,用于存储一个或多个程序,当一个或多个程序被处理器执行时,使得所述处理器实现上述的图像中直线段匹配方法。

在本公开的一些实施例所提供的技术方案中,对第一图像中的直线段进行检测,得到第一直线段集合,并对第二图像中的直线段进行检测,得到第二直线段集合,确定第一直线段集合中目标直线段的关键点集合,对关键点集合中每个关键点进行光流跟踪,基于光流跟踪的结果,从第二图像中确定出与关键点集合对应的匹配点集合,计算匹配点集合中每个匹配点分别距第二直线段集合中各直线段的距离,确定每个匹配点对应的距离最小的直线段,以得到候选直线段集合,再从候选直线段集合中确定出第二图像中与目标直线段匹配的直线段。本公开直线段匹配的方案,在保证匹配精度的基础上,相比于需要大量提取图像特征的方案,采用的光流跟踪过程仅针对的是直线段上的关键点,计算量小,尤其适于例如智能手机的移动终端。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示出了本公开实施方式的图像中直线段匹配方案的实施阶段的示意图;

图2示出了本公开实施例的实现图像中直线段匹配方案的移动终端的示意图;

图3示意性示出了根据本公开示例性实施方式的图像中直线段匹配方法的流程图;

图4示出了对第一图像进行直线段检测后的结果进行过滤以确定第一直线段集合的过程的示意图;

图5示出了本公开实施例的由匹配点和第二直线段集合确定一条候选直线段的过程的示意图;

图6示出了本公开实施例的从候选直线段集合中确定与目标直线段匹配的直线段的过程的示意图;

图7示意性示出了根据本公开示例性实施方式的图像中直线段匹配装置的方框图;

图8示意性示出了根据本公开的示例性实施方式的电子设备的方框图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,下面所有的术语“第一”、“第二”仅是为了区分的目的,不应作为本公开内容的限制。

针对图像,与点特征相比,线特征包含更多场景和对象的结构信息。通过对图像中的直线段进行检测和匹配,可以对弱纹理区域以及人造场景中较多的直线区域提供更多的特征信息,进而辅助后续的图像对齐,图像融合以及三维建模等任务。现有的直线段匹配方法主要分为两大类,一类是在单条直线或直线组中进行匹配,一般利用其邻域结构信息或自身几何属性,如灰度、颜色、梯度等信息,或直线组中的直线交点、夹角等特征。另一类是点线结合的方法,这类方法首先利用点匹配方法找出两幅图像的匹配点,然后在某种图像变换下研究同一平面内点和直线的不变性来计算两幅图像中直线的相关性,若满足这种不变性则认为可以匹配。

然而,在单条直线或直线组中进行匹配的方法,往往利用的特征对图像变化与噪声较为敏感,而且单条直线缺乏有效的几何属性,常常需要与其它特征相结合来进行直线段的匹配,计算量较大。

而另外一类点线结合的方法,所采用的特征点由于本身的限制,可能影响直线段匹配的结果,如Harris算子不具有尺度不变性,另外,这类方法首先需要特征点检测,还需要找出同一平面的内点并与直线构造不变量,计算量较大。

鉴于此,本公开实施方式提供了一种新的图像中直线段匹配方案。

本公开实施方式的图像中直线段匹配方案可以由移动终端执行,也就是说,移动终端可以执行下述图像中直线段匹配方法的各个步骤,并且图像中直线段匹配装置配置在该移动终端中。本公开对移动终端的类型不做限制,包括但不限于智能手机、平板电脑、智能可穿戴设备等。

另外,本公开实施方式的图像中直线段匹配方案还可以由服务器执行,服务器可以从移动终端或其他服务器获取第一图像和第二图像,并执行下述图像中直线段匹配方法的各个步骤。在这种情况下,图像中直线段匹配装置配置在该服务器中。这里所说的服务器可以指单个服务器,也可以指服务器集群。

为了描述清楚,下面以移动终端执行本公开实施方式的图像中直线段匹配方案进行说明。

图1示出了本公开实施方式的图像中直线段匹配方案的实施阶段的示意图。参考图1,移动终端在确定出第一图像和第二图像后,可以将第一图像和第二图像作为输入,执行本公开实施方式的图像中直线段匹配处理过程。在完成直线段匹配之后,可以将匹配结果应用于例如图像对齐、图像融合、三维建模等后续处理过程。

图2示出了本公开实施例的实现图像中直线段匹配方案的移动终端的示意图。参考图2,移动终端2可以包括第一摄像头21、第二摄像头22和处理器23。

在本公开的一些实施场景中,移动终端2通过第一摄像头21进行拍摄,得到第一图像,通过第二摄像头12拍摄出第二图像。其中,第一图像与第二图像针对的拍摄场景相同,第一图像的拍摄时间与第二图像的拍摄时间相同或拍摄时间差小于一时间阈值,该时间阈值通常是一个非常小的值。

在本公开的另一些实施场景中,第一图像和第二图像可以是一个视频中相邻的视频帧图像,例如,第一图像是视频的第i帧,第二图像是视频的第i+1帧。又例如,第一图像是视频的第i+1帧,第二图像是视频帧的第i帧。

在获取到第一图像和第二图像之后,处理器23可以对第一图像中的直线段进行检测,得到第一直线段集合,并对第二图像中的直线段进行检测,得到第二直线段集合。其中,第一直线段集合包含直线段的数量可以是一个或多个,第二直线段集合包含直线段的数量也可以是一个或多个。

接下来,处理器23可以确定第一直线段集合中目标直线段的关键点集合,并对关键点集合中每个关键点进行光流跟踪。其中,目标直线段可以是第一直线段集合中任意一条直线段。

随后,处理器23可以基于光流跟踪的结果,从第二图像中确定出与关键点集合对应的匹配点集合,计算匹配点集合中每个匹配点分别距第二直线段集合中各直线段的距离,并确定每个匹配点对应的距离最小的直线段,以得到候选直线段集合。

然后,处理器23可以从候选直线段集合中确定出第二图像中与目标直线段匹配的直线段。

应当理解的是,对于第一直线段集合中的每一条直线段,处理器23均执行上述针对目标直线段的处理过程,由此,完成第一图像与第二图像之间的直线段匹配过程。

下面仍以移动终端执行方法的各个步骤为例,对本公开实施方式的图像中直线段匹配方法进行说明。

图3示意性示出了本公开的示例性实施方式的图像中直线段匹配方法的流程图。参考图3,该图像中直线段匹配方法可以包括以下步骤:

S32.对第一图像中的直线段进行检测,得到第一直线段集合,并对第二图像中的直线段进行检测,得到第二直线段集合。

针对第一图像和第二图像的来源,在本公开一些实施例中,第一图像和第二图像可以是视频中相邻的视频帧图像,本公开对视频的具体内容、格式、来源均不做限制。

在本公开另一些实施例中,第一图像可以是由移动终端配置的第一摄像头拍摄得到,第二图像可以是由移动终端配置的第二摄像头拍摄得到。例如,第一摄像头和第二摄像头可以均是移动终端的后置摄像头,或均是移动终端的前置摄像头。

在获取到第一图像后,移动终端可以对第一图像中的直线段进行检测。具体的,可以采用Hough_line直线检测算法、LSD直线检测算法、FLD直线检测算法、LSM直线检测算法、EDLines直线检测算法中的任意一种,来对第一图像中的直线段进行检测。

根据本公开的一些实施例,移动终端可以直接将利用直线检测算法检测出的直线段,作为第一直线段集合中的直线段。

根据本公开的另一些实施例,为了进一步减低算法的计算量并降低后续出现误匹配的情况,移动终端还可以对检测出的直线段进行过滤,并将过滤后的直线段集合确定为第一直线段集合。

首先,移动终端可以对第一图像中的直线段进行检测,根据直线段检测的结果,得到第一中间直线段集合。

接下来,移动终端可以对第一中间直线段集合中的直线段进行过滤,以得到第一直线段集合。

在本公开的一个实施例中,移动终端可以确定第一中间直线段集合中每个直线段的长度,并将每个直线段的长度与长度阈值进行比较。本公开对长度阈值的具体取值不做限制。

移动终端可以从第一中间直线段集合中过滤掉长度小于长度阈值的直线段,以得到第一直线段集合。

在本公开的另一个实施例中,首先,移动终端可以计算第一中间直线段集合中每个直线段的响应强度,其中,该响应强度可以由直线段上多个点在水平方向和竖直方向上的梯度值计算出,这多个点可以包括直线段的起点、终点以及采样点。水平方向和竖直方向上的梯度值可以利用例如sobel算子计算得到,再将二者平方后相加,以得到该点的梯度值,本公开对具体过程不做限制。

具体的,可以计算直线段上多个点的梯度值的平均值,作为该直线段的响应强度。

接下来,移动终端可以将每个直线段的响应强度与响应强度阈值进行比较。本公开对响应强度阈值的具体取值不做限制。

然后,移动终端可以从第一中间直线段集合中过滤掉响应强度小于响应强度阈值的直线段,以得到第一直线段集合。

在本公开的再一个实施例中,首先,移动终端可以确定第一中间直线段集合中平行的直线段。具体的,可以确定第一中间直线段集合中两个直线段的长度、起点坐标和终点坐标,并根据两个直线段的长度、起点坐标和终点坐标,确定两个直线段是否为平行的直线段。

例如,直线段1的起点坐标为(x11,y11),终点坐标为(x12,y12),长度为l1

其中,c为直线平行的阈值。

接下来,移动终端可以计算平行的直线段之间的距离。对于两条平行的直线段,可以分别计算直线1的起点和终点到直线2的距离d1,以及直线2的起点和终点到直线1的距离d2。

然后,将平行的直线段之间的距离与距离阈值进行比较,则从第一中间直线段集合中过滤掉平行的直线段中长度较小的直线段,以得到第一直线段集合。例如,如果d1或d2小于距离阈值d,则确定直线1与直线2中较短的直线,并过滤掉该较短的直线。

通过距离较近平行直线段的过滤,一方面,可以降低后续处理过程的计算量;另一方面,由于距离较近的平行直线段在后续匹配过程中容易出现误匹配,因此,通过过滤的方式,也可以降低误匹配的情况。

应当理解的是,上述三种直线段过滤的策略可以单独实施,也可以将这些策略进行任意组合,并对策略实施的先后顺序不做限制。例如,先进行基于直线段长度的过滤,再进行基于响应强度的过滤,然后进行基于距离较近平行线的过滤。又例如,可以仅进行基于直线段长度的过滤以及距离较近平行线的过滤,等等。

图4示出了对第一图像进行直线段检测后的结果进行过滤以确定第一直线段集合的过程的示意图。

参考图4,首先,第一图像可以经历直线段检测过程,以确定出第一中间直线段集合;接下来,第一中间直线段集合可以经历过滤过程,以得到第一直线段集合。其中,过滤的方式包括上述基于直线段长度的过滤、基于响应强度的过滤、基于距离较近平行线的过滤中的一种或多种的组合。

应当注意的是,根据上述处理过程确定出的第一直线段集合可以包括一条或多条直线段。也就是说,在一些实施例中,第一直线段集合中仅包括一条直线段;在另一些实施例中,第一直线段集合可以是由两条以上直线段构成的集合。

上面说明了对第一图像进行处理得到第一直线段集合的过程,基于类似的处理过程,可以对第二图像进行处理,以得到第二直线段集合。

根据本公开的一些实施例,对于第二图像,移动终端可以直接将利用直线检测算法检测出的直线段,作为第一直线段集合中的直线段。

根据本公开的另一些实施例,首先,移动终端可以对第二图像中的直线段进行检测,根据直线段检测的结果,得到第二中间直线段集合。接下来,移动终端可以采用上述直线段过滤方式的一种或多种的组合,对第二中间直线段集合中的直线段进行过滤,以得到第二直线段集合。具体过程不再赘述。

另外,确定出的第二直线段集合可以包括一条或多条直线段。也就是说,在一些实施例中,第二直线段集合中仅包括一条直线段;在另一些实施例中,第二直线段集合可以是由两条以上直线段构成的集合。

S34.确定第一直线段集合中目标直线段的关键点集合,对关键点集合中每个关键点进行光流跟踪。

在确定出第一直线段集合之后,移动终端可以对第一直线段集合中每一条直线段分别进行处理。本公开实施例中的目标直线段可以是第一直线段集合中的任意一条直线段。

移动终端可以对目标直线段进行离散化处理,确定出关键点(keypoints),由确定出的关键点构建目标直线段的关键点集合。其中,关键点可以包括目标直线段的起点、终点和采样点,例如,通过随机采样或均匀采样的方式,从目标直线段中确定10个采样点。另外,可以理解的是,关键点的信息均由这些关键点的坐标体现。

在确定出目标直线段的关键点集合之后,移动终端可以对关键点集合中每个关键点进行光流跟踪。例如,可以采用KLT(Kanade-Lucas)光流跟踪算法实现关键点的光流跟踪。

具体的,可以将第一图像、第二图像以及关键点集合中各关键点的坐标作为光流跟踪算法的输入,经过算法中函数的处理,可以得到第二图像中是否存在与关键点对应的匹配点的结果,以及如果确定出匹配点,则匹配误差是多少的结果。这些结果均包含于光流跟踪的结果中。

S36.基于光流跟踪的结果,从第二图像中确定出与关键点集合对应的匹配点集合,计算匹配点集合中每个匹配点分别距第二直线段集合中各直线段的距离,确定每个匹配点对应的距离最小的直线段,以得到候选直线段集合。

基于光流跟踪的结果,如果从第二图像中确定出与关键点集合中目标关键点对应的目标匹配点,则获取匹配误差。其中,目标关键点为关键点集合中任意一个关键点。

移动终端可以将该匹配误差与误差阈值进行比较,本公开对误差阈值的具体取值不做限制。

如果匹配误差小于该误差阈值,则移动终端可以将目标匹配点添加至匹配点集合。也就是说,第二图像中确定出的目标匹配点为本公开匹配点集合中的匹配点。

如果匹配误差大于等于该误差阈值,则目标匹配点不属于匹配点集合,后续处理过程不对其进行处理。另外,可以直接将目标匹配点剔除。

另外,如果基于光流跟踪的结果,如果未从第二图像中确定出与目标关键点对应的匹配点,则不进行处理。

在确定出匹配点集合之后,移动终端针对匹配点集合中的每一个匹配点,均计算距第二直线段集合中各直线段的距离,确定距离最小的直线段,通常,一个匹配点仅对应有一个距离最小的直线段。然后,利用距离最小的直线段,构建出候选直线段集合。

参考图5,对于第二图像中的一个匹配点p,可以计算匹配点p距第二直线段集合中各直线段的距离。以三条直线段L1、L2和L3为例,匹配点p距直线段L1的距离为d1,匹配点p距直线段L2的距离为d2,匹配点p距直线段L3的距离为d3。相比于d1和d3,d2最小,因此,直线段L2为匹配点对应的距离最小的直线段,相对于匹配点p,直线段L2为需要添加至候选直线段集合的候选直线段。

S38.从候选直线段集合中确定出第二图像中与目标直线段匹配的直线段。

在确定出候选直线段集合之后,移动终端可以对候选直线段集合中的候选直线段进行筛选,以确定出第二图像中与目标直线段匹配的直线段。

具体的,移动终端可以从候选直线段集合中确定对应的匹配点的数量大于数量阈值以及/或者长度与目标直线段长度一致的一个或多个直线段,作为第二图像中与目标直线段匹配的直线段。

根据本公开的一些实施例,针对候选直线段集合中的任意一条候选直线段,统计其对应匹配点的数量,也就是说,统计该候选直线段是由多少个匹配点确定出的距离最小的直线段、

如果其对应匹配点的数量小于等于数量阈值,则可以将该候选直线段从候选直线段集合中剔除。如果大于该数量阈值,则可以将该候选直线段确定为与目标直线段匹配的直线段。

根据本公开的另一些实施例,移动终端可以确定候选直线段集合中的每一条候选直线段的长度,并与目标直线段的长度进行比较。

如果候选直线段的长度与目标直线段的长度不一致,也就是说,如果候选直线段的长度与目标直线段的长度之差大于等于一阈值,则可以将该候选直线段从候选直线段集合中剔除。如果候选直线段的长度与目标直线段的长度一致,也就是说,如果候选直线段的长度与目标直线段的长度之差小于该阈值,则可以将该候选直线段确定为与目标直线段匹配的直线段。

根据本公开的又一些实施例,移动终端可以结合上述基于匹配点数量的筛选策略和基于直线段长度的筛选策略,从候选直线段集合中确定与目标直线段匹配的直线段。本公开对这两种筛选策略执行的前后顺序不做限制,也就是说,针对候选直线段集合,可以先执行上述基于匹配点数量的筛选策略,再执行上述基于直线段长度的筛选策略;还可以先执行上述基于直线段长度的筛选策略,再执行上述基于匹配点数量的筛选策略。

图6示出了本公开实施例的从候选直线段集合中确定与目标直线段匹配的直线段的过程的示意图。参考图6,候选直线段集合可以经由筛选策略的处理过程,确定出第二图像中与目标直线段匹配的直线段。其中,筛选策略可以包括上述基于匹配点数量的筛选策略和/或基于直线段长度的筛选策略。

下面对本公开一个实施例的图像中直线段匹配方法的整个过程进行说明。

首先,移动终端可以借助于LSD直线检测算法对第一图像refImage和第二图像curImage分别进行直线段检测,统计出各直线段的起点、终点、直线方程系数、直线段长度、响应强度,并分别保存到直线向量refLines和curLines中。

接下来,移动终端可以对第一图像refImage和第二图像curImage中的直线段进行过滤。过滤的方式在步骤S32中已说明,不再赘述。应当理解的是,过滤的过程即是从直线向量剔除直线段信息的过程。

然后,移动终端可以对第一图像refImage中的每条直线段进行离散化处理,将直线段的起点、终点、采样点(如每10个像素采样一个点)的坐标保存到keypoints向量中,其中,起点、终点和采样点均为keypoints。

接下来,移动终端可以利用KLT算法对第一图像中所有keypoints在第二图像curImage中进行光流跟踪,将第二图像curImage中得到的对应匹配点的坐标保存在kps_cur向量中。另外,可以得到每个点的跟踪状态向量status(能匹配到则为true,否则为false),以及每个点的匹配误差errors。

随后,针对kps_cur向量中保存的每个点,计算该点到第二图像curImage中每条直线段的距离,并确定最短距离的直线,保存到kp2line_cur向量中,由此实现了第一图像refImage中直线上的点到第二图像curImage中直线的映射。可以理解的是,此过程仅针对的是跟踪状态为true并且匹配误差小于阈值的点。

移动终端遍历第一图像refImage中每条直线段,对每条直线段上每个keypoints所映射的第二图像curImage中的直线,均可以作为第一图像refImage中该直线段的候选直线段。

可以进一步对候选直线段进行筛选,一方面,统计第一图像refImage上分别有多少个点被跟踪到该候选直线段上,如果这种映射点的数量小于阈值(例如10),则该候选直线段被过滤掉;如果大于阈值,则将该候选直线段确定为第二图像curImage中匹配出的直线段。另一方面,移动终端可以判断候选直线段的长度与第一图像refImage中针对的直线段的长度是否一致,如果一致,则将该候选直线段确定为第二图像curImage中匹配出的直线段;如果不一致,则该候选直线段被过滤掉。

由于两张图像的直线检测,同一直线可能被检测为多条直线段,如果仅是一对一的匹配方式,会出现遗漏较多匹配的情况。采用本公开实施方式的图像中直线段匹配方法,第一图像refImage中的一条直线段可能匹配到第二图像curImage中多条直线段,另外,第一图像refImage中的多条条直线段可能匹配到第二图像curImage中一条直线段。

应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

进一步的,本示例实施方式中还提供了一种图像中直线段匹配装置。

图7示意性示出了本公开的示例性实施方式的图像中直线段匹配的方框图。参考图7,根据本公开的示例性实施方式的图像中直线段匹配7可以包括直线检测模块71、光流跟踪模块73、候选集合确定模块75和匹配直线段确定模块77。

具体的,直线检测模块71可以用于对第一图像中的直线段进行检测,得到第一直线段集合,并对第二图像中的直线段进行检测,得到第二直线段集合;光流跟踪模块73可以用于确定第一直线段集合中目标直线段的关键点集合,对关键点集合中每个关键点进行光流跟踪;候选集合确定模块75可以用于基于光流跟踪的结果,从第二图像中确定出与关键点集合对应的匹配点集合,计算匹配点集合中每个匹配点分别距第二直线段集合中各直线段的距离,确定每个匹配点对应的距离最小的直线段,以得到候选直线段集合;匹配直线段确定模块77可以用于从候选直线段集合中确定出第二图像中与目标直线段匹配的直线段。

根据本公开的示例性实施例,匹配直线段确定模块77可以被配置为执行:从候选直线段集合中确定对应的匹配点的数量大于数量阈值以及/或者长度与目标直线段长度一致的一个或多个直线段,作为第二图像中与目标直线段匹配的直线段。

根据本公开的示例性实施例,候选集合确定模块75确定匹配点集合的过程可以被配置为执行:基于光流跟踪的结果,如果从第二图像中确定出与关键点集合中目标关键点对应的目标匹配点,则获取匹配误差;将匹配误差与误差阈值进行比较;如果匹配误差小于误差阈值,则将目标匹配点添加至匹配点集合。

根据本公开的示例性实施例,直线检测模块71可以被配置为执行:对第一图像中的直线段进行检测,根据直线段检测的结果,得到第一中间直线段集合;对第一中间直线段集合中的直线段进行过滤,以得到第一直线段集合。

根据本公开的示例性实施例,直线检测模块71对直线段进行过滤的过程可以被配置为执行:确定第一中间直线段集合中各直线段的长度;从第一中间直线段集合中过滤掉长度小于长度阈值的直线段,以得到第一直线段集合。

根据本公开的示例性实施例,直线检测模块71对直线段进行过滤的过程还可以被配置为执行:确定第一中间直线段集合中各直线段的响应强度;其中,响应强度根据直线段上多个点在水平方向和竖直方向上的梯度值计算出;从第一中间直线段集合中过滤掉响应强度小于响应强度阈值的直线段,以得到第一直线段集合。

根据本公开的示例性实施例,直线检测模块71对直线段进行过滤的过程还可以被配置为执行:确定第一中间直线段集合中平行的直线段;计算平行的直线段之间的距离;如果平行的直线段之间的距离小于距离阈值,则从第一中间直线段集合中过滤掉平行的直线段中长度较小的直线段,以得到第一直线段集合。

根据本公开的示例性实施例,直线检测模块71确定平行直线段的过程可以被配置为执行:确定第一中间直线段集合中两个直线段的长度、起点坐标和终点坐标;根据两个直线段的长度、起点坐标和终点坐标,确定两个直线段是否为平行的直线段。

根据本公开的示例性实施例,第一图像和第二图像为视频中相邻的视频帧图像。

根据本公开的示例性实施例,图像中直线段匹配方法应用于移动终端,移动终端包括第一摄像头和第二摄像头,第一图像由第一摄像头拍摄得到,第二图像由第二摄像头拍摄得到。

由于本公开实施方式的图像中直线段匹配装置的各个功能模块与上述方法实施方式中相同,因此在此不再赘述。

图8示出了适于用来实现本公开示例性实施方式的电子设备的示意图。本公开示例性实施方式的移动终端可以被配置为如图8的形式。需要说明的是,图8示出的电子设备仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

本公开的电子设备至少包括处理器和存储器,存储器用于存储一个或多个程序,当一个或多个程序被处理器执行时,使得处理器可以实现本公开示例性实施方式的图像中直线段匹配方法。

具体的,如图8所示,电子设备80可以包括:处理器810、内部存储器821、外部存储器接口822、通用串行总线(Universal Serial Bus,USB)接口830、充电管理模块840、电源管理模块841、电池842、天线1、天线2、移动通信模块850、无线通信模块860、音频模块870、传感器模块880、显示屏890、摄像模组891、指示器892、马达893、按键894以及用户标识模块(Subscriber Identification Module,SIM)卡接口895等。其中传感器模块880可以包括深度传感器、压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器及骨传导传感器等。

可以理解的是,本公开实施例示意的结构并不构成对电子设备80的具体限定。在本公开另一些实施例中,电子设备80可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。

处理器810可以包括一个或多个处理单元,例如:处理器810可以包括应用处理器(Application Processor,AP)、调制解调处理器、图形处理器(Graphics ProcessingUnit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP)、基带处理器和/或神经网络处理器(Neural-network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。另外,处理器810中还可以设置存储器,用于存储指令和数据。

电子设备80可以通过ISP、摄像模组891、视频编解码器、GPU、显示屏890及应用处理器等实现拍摄功能。在一些实施例中,电子设备80可以包括1个或N个摄像模组891,N为大于1的正整数,若电子设备80包括N个摄像头,N个摄像头中有一个是主摄像头。

内部存储器821可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器821可以包括存储程序区和存储数据区。外部存储器接口822可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备80的存储能力。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如本公开实施例中所述的方法。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。

此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

相关技术
  • 图像中直线段匹配方法及装置、存储介质和电子设备
  • 图像特征点匹配方法、匹配装置、电子设备及存储介质
技术分类

06120114702810