CN117475004A - 角点排序方法、设备、存储介质及程序产品 - Google Patents

角点排序方法、设备、存储介质及程序产品 Download PDF

Info

Publication number
CN117475004A
CN117475004A CN202210864902.4A CN202210864902A CN117475004A CN 117475004 A CN117475004 A CN 117475004A CN 202210864902 A CN202210864902 A CN 202210864902A CN 117475004 A CN117475004 A CN 117475004A
Authority
CN
China
Prior art keywords
point
adjacent
corner
points
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210864902.4A
Other languages
English (en)
Inventor
乔振东
左磊
王贵东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zitiao Network Technology Co Ltd
Original Assignee
Beijing Zitiao Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Zitiao Network Technology Co Ltd filed Critical Beijing Zitiao Network Technology Co Ltd
Priority to CN202210864902.4A priority Critical patent/CN117475004A/zh
Publication of CN117475004A publication Critical patent/CN117475004A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20164Salient point detection; Corner detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)

Abstract

本公开实施例提供一种角点排序方法、设备、存储介质及程序产品,该方法包括:针对多个待排序角点中的每个待排序角点,根据所述待排序角点的坐标和待邻接点序列中的当前待邻接点的坐标,确定所述待排序角点与所述当前待邻接点之间的实际距离,根据多个所述实际距离和所述当前待邻接点的距离预测值,从多个所述待排序角点中筛选所述当前待邻接点的目标邻接点,根据筛选结果和所述当前待邻接点的排序索引,确定角点排序结果。本实施例的方法,能够在检测算法无法完整的将所有角点全部检出的情况下,实现检测出的有效角点的排序。

Description

角点排序方法、设备、存储介质及程序产品
技术领域
本公开实施例涉及相机标定技术领域,尤其涉及一种角点排序方法、设备、存储介质及程序产品。
背景技术
相机镜头的畸变校正以及相机的内外参标定依赖于角点在拍摄图像的图像坐标系下的图像坐标与在世界坐标系下的世界坐标的对应关系。在确定上述对应关系时角点检测的空间范围完整性是至关重要的。
然而对于畸变较大的情况,尤其同时伴随着亮度的衰减,难以保证角点检测的完整性,由于角点的缺失,相关的角点检测算法难以完成角点排序,因此如何在角点无法完整检出的情况下,实现对角点的排序是目前亟待解决的技术问题。
发明内容
本公开实施例提供一种角点排序方法、设备、存储介质及程序产品,以在检测算法无法完整的将所有角点全部检出的情况下,实现检测出的有效角点的排序,进而可以将排序好的角点与世界坐标进行对应,实现相机的内外参标定以及相机镜头的畸变校正。
第一方面,本公开实施例提供一种角点排序方法,包括:
针对多个待排序角点中的每个待排序角点,根据所述待排序角点的坐标和待邻接点序列中的当前待邻接点的坐标,确定所述待排序角点与所述当前待邻接点之间的实际距离;
根据多个所述实际距离和所述当前待邻接点的距离预测值,从多个所述待排序角点中筛选所述当前待邻接点的目标邻接点;所述距离预测值是基于所述当前待邻接点与已排序角点中对应邻接点之间的实际距离确定的;所述已排序角点为排序索引已知的角点;所述当前待邻接点是所述已排序角点中对应邻接点的目标邻接点;
根据筛选结果和所述当前待邻接点的排序索引,确定角点排序结果;所述当前待邻接点的排序索引是基于已排序角点中对应邻接点的排序索引确定的。
第二方面,本公开实施例提供一种角点排序设备,包括:
处理模块,用于针对多个待排序角点中的每个待排序角点,根据所述待排序角点的坐标和待邻接点序列中的当前待邻接点的坐标,确定所述待排序角点与所述当前待邻接点之间的实际距离;
筛选模块,用于根据多个所述实际距离和所述当前待邻接点的距离预测值,从多个所述待排序角点中筛选所述当前待邻接点的目标邻接点,并将所述当前待邻接点从所述待邻接点序列中删除;所述距离预测值是基于所述当前待邻接点与已排序角点中对应邻接点之间的实际距离确定的;所述已排序角点为排序索引已知的角点;所述当前待邻接点是所述已排序角点中对应邻接点的目标邻接点;
确定模块,用于根据筛选结果和所述当前待邻接点的排序索引,确定角点排序结果;所述当前待邻接点的排序索引是基于已排序角点中对应邻接点的排序索引确定的。
第三方面,本公开实施例提供一种电子设备,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的角点排序方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的角点排序方法。
第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计所述的角点排序方法。
本实施例提供的角点排序方法、设备、存储介质及程序产品,该方法包括针对多个待排序角点中的每个待排序角点,根据所述待排序角点的坐标和待邻接点序列中的当前待邻接点的坐标,确定所述待排序角点与所述当前待邻接点之间的实际距离,根据多个所述实际距离和所述当前待邻接点的距离预测值,从多个所述待排序角点中筛选所述当前待邻接点的目标邻接点,并将所述当前待邻接点从所述待邻接点序列中删除,所述距离预测值是基于所述当前待邻接点与已排序角点中对应邻接点之间的实际距离确定的,所述已排序角点为排序索引已知的角点,所述当前待邻接点是所述已排序角点中对应邻接点的目标邻接点,根据筛选结果和所述当前待邻接点的排序索引,确定角点排序结果,所述当前待邻接点的排序索引是基于已排序角点中对应邻接点的排序索引确定的。本公开实施例提供的角点排序方法,通过对检测获得的多个待排序角点中的各角点,基于距离预测值和实际距离的接近程度,从当前待邻接点逐渐向周围探索查找邻接点,确定查找到的各邻接点的排序索引,完成对多个待排序角点的排序,能够在检测算法无法完整的将所有角点全部检出的情况下,实现检测出的有效角点的排序,进而可以将排序好的角点与世界坐标进行对应,实现相机的内外参标定以及相机镜头的畸变校正。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的角点排序方法的应用场景示意图;
图2为本公开实施例提供的角点排序方法流程示意图一;
图3a为本公开实施例提供的对待检测图像进行角点检测获得的完整角点的示意图;
图3b为本公开实施例提供的对待检测图像进行角点检测获得的不完整角点的示意图;
图4为本公开实施例提供的角点排序方法流程示意图二;
图5为本公开实施例提供的对待检测图像进行角点检测获得的不完整角点的示意图;
图6为本公开实施例提供的角点排序方法流程示意图三;
图7为本公开实施例提供的角点排序设备的结构框图;
图8为本公开实施例提供的角点排序设备的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
相机镜头的畸变校正以及相机的内外参标定依赖于角点在拍摄图像的图像坐标系下的图像坐标与在世界坐标系下的世界坐标的对应关系。在确定上述对应关系时角点检测的空间范围完整性是至关重要的。然而对于畸变较大的情况,尤其同时伴随着亮度的衰减,难以保证角点检测的完整性,由于角点的缺失,现有角点检测算法难以完成角点的检测和排序,例如,基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库OpenCV的角点检测方法严重依赖棋盘格的完整性,在实际使用中存在很大的局限性。
为解决上述技术问题,本申请发明人研究发现可以从已知排序的角点出发,基于该角点与已知排序的相邻角点间的实际距离确定该角点与未排序的相邻角点的距离预测值,并基于该距离预测值逐渐向周围未排序的角点探索,从未排序的各角点中找到该角点的邻接点并排序,以此类推,可以完成检测出的各角点的排序,即便角点检测不完整,也不会受到影响。基于此,本公开实施例提供一种角点排序方法,能够在检测算法无法完整的将所有角点全部检出的情况下,实现检测出的有效角点的排序,进而可以将排序好的角点与世界坐标进行对应,实现相机的内外参标定以及相机镜头的畸变校正。
参考图1,图1为本公开实施例提供的角点排序方法的应用场景示意图。如图1所示,相机102与终端103连接,相机102用于对标定板101进行拍摄,获得待检测图像,并将待检测图像发送给终端103;终端103用于对待检测图像进行角点检测,获得待排序角点;基于当前待邻接点的距离预测值,从待排序角点中确定当前待邻接点的邻接点,进而基于邻接点的确定结果以及当前待邻接点的排序索引,获得待排序角点的排序结果。
在具体实现过程中,相机102对标定板101(例如,棋盘格)进行拍摄,获得待检测图像,并将待检测图像发送给终端103。终端103对待检测图像进行角点检测,获得多个待排序角点,进而可以首先从多个待排序角点中选定初始角点,将初始角点作为当前待邻接点,并确定当前待邻接点的距离预测值,基于当前待邻接点的距离预测值,从剩余待排序角点中确定当前待邻接点的邻接点,确定邻接点的距离预测值,并基于当前待邻接点的排序索引确定邻接点的排序索引,将邻接点加入待邻接点序列,从待邻接点序列中确定当前待邻接点,再基于上述方式,继续查找当前待邻接点的邻接点,确定邻接点的距离预测值,并基于当前待邻接点的排序索引确定邻接点的排序索引,将邻接点加入待邻接点序列,以此类推,完成对多个待排序角点的排序,获得角点排序结果。本公开实施例提供的角点排序方法,通过对检测获得的多个待排序角点中的各角点,基于距离预测值和实际距离的接近程度,从当前待邻接点逐渐向周围探索查找邻接点,确定查找到的各邻接点的排序索引,完成对多个待排序角点的排序,能够在检测算法无法完整的将所有角点全部检出的情况下,实现检测出的有效角点的排序,进而可以将排序好的角点与世界坐标进行对应,实现相机的内外参标定以及相机镜头的畸变校正。
需要说明的是,图1所示的场景示意图仅仅是一个示例,本公开实施例描述的角点排序方法以及场景是为了更加清楚地说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统的演变和新业务场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。
下面以具体地实施例对本公开的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
参考图2,图2为本公开实施例提供的角点排序方法流程示意图一。本实施例的方法可以应用在终端设备或服务器中,该角点排序方法包括:
201、针对多个待排序角点中的每个待排序角点,根据待排序角点的坐标和待邻接点序列中的当前待邻接点的坐标,确定待排序角点与当前待邻接点之间的实际距离。
本实施例中,待排序角点可以是原始输入的检测获得的待检测图像中的各角点,待排序角点的坐标,即图像坐标,是已知的。当前待邻接点可以是基于本实施例提供的角点排序方法正在处理(为其查找邻接点,邻接点是指在x方向或y方向上相邻的点即棋盘格的单元格的边的两端点,而棋盘格的单元格的对角线的两个端点不是邻接点)的目标点,该目标点的邻接点尚未全部检出,若全部检出,则该目标点由待邻接点变为完成点。该目标点是已排序角点中对应邻接点的邻接点,因此,已排序角点中对应邻接点的排序索引已知的情况下,当前待邻接点的排序索引是可以确定的。邻接点是目标点周围角点(上下左右相邻角点)中,实际距离与距离预测值最接近(例如实际距离与对应距离预测值的距离差小于预设阈值)的点。
具体的,在进行相机标定时,可以对标定物例如棋盘格,进行图像拍摄,获得待检测图像,对待检测图像进行检测后可以获得多个待排序角点。在具体处理过程中,首先可以计算获得当前待邻接点与当前剩余的各待排序角点的实际距离。
示例性的,图3a为本公开实施例提供的对待检测图像进行角点检测获得的完整角点的示意图,图3b为本公开实施例提供的对待检测图像进行角点检测获得的不完整角点的示意图。如图3a所示,在无畸变和亮度影响下,可以获得棋盘格的完整的36个角点。如图3b所示,在畸变和亮度衰减的影响下,对待检测图像进行角点检测获得的角点分布在边缘处存在弯曲现象,且角点16、角点17和角点23的位置(虚线圆圈示意),未识别出角点。
在本公开的一个实施例中,算法开始时可以首选选定初始角点,从初始角点开始执行本实施例的算法,具体的,在步骤201之前还可以包括获取初始角点的排序索引和初始距离;初始角点是多个待排序角点中的角点;初始距离是根据初始角点与初始角点的至少一个邻接点之间的实际距离确定的;根据初始角点的初始距离,从多个待排序角点中筛选初始角点的目标邻接点,并根据初始角点的排序索引确定初始角点的目标邻接点的排序索引;将初始角点的目标邻接点加入待邻接点序列,并从初始角点的目标邻接点中确定待邻接点序列的当前待邻接点。可选地,根据初始角点的初始距离,从多个待排序角点中筛选初始角点的目标邻接点,可以包括:针对多个待排序角点中的每个待排序角点,根据待排序角点的坐标和初始角点的坐标,确定待排序角点与初始角点之间的实际距离;根据多个实际距离和初始角点的初始距离,从多个待排序角点中筛选初始角点的目标邻接点。可选地,可以基于初始角点的一个邻接点与初始角点之间的实际距离,确定初始距离,还可以根据初始角点的多个邻接点分别与初始角点之间的实际距离,确定初始距离,具体的,可以基于多个邻接点分别对应的实际距离的平均值,确定初始角点的初始距离。
在本公开的一个实施例中,初始角点的选定可以是基于算法自动选定,还可以是人工进行选定,本实施例对此不做限定。
示例性的,初始角点可以选择棋盘格的中心点附近的角点,如图3b所示,可以选定棋盘格中心点附近的角点21作为初始角点。以角点1的位置为原点的话,角点1的排序索引为(0,0),那么角点21位于第3列第4行,x方向为3,y方向为4,即其排序索引为(3,4)。角点21的距离预测值,可以通过实际测量获得,例如可以对角点21与角点22之间的距离进行实际测量,将测量值作为角点21的距离预测值。对于非初始角点,则可以基于已排序角点中对应邻接点与当前待邻接点即该非初始角点之间的实际距离来确定。
以角点21为当前待邻接点,剩余待排序角点均尚未被排序为例,在执行步骤201时,可以分别计算获得角点21与角点1-36中除角点21、角点16、角点17和角点23除外的剩余角点的实际距离。
202、根据多个实际距离和当前待邻接点的距离预测值,从多个待排序角点中筛选当前待邻接点的目标邻接点;距离预测值是基于当前待邻接点与已排序角点中对应邻接点之间的实际距离确定的;已排序角点是排序索引已知的角点;当前待邻接点是已排序角点中对应邻接点的目标邻接点。
具体的,在获得多个待排序角点对应的实际距离后,可以进一步基于当前待邻接点的距离预设值,从剩余的多个待排序角点中筛选获得与当前待邻接点之间的距离差满足预设条件的目标邻接点。在完成目标邻接点的筛选后,即完成了对当前待邻接点的全部邻接点的检出,因此当前待邻接点可以标记为完成点,进而可以从待邻接点序列中从新选择角点作为下一个待邻接点。其中,完成点和待排序序列中的各角点均为排序索引已知的已排序角点。
示例性的,可以设定预设阈值作为预设条件,在当前待邻接点与待排序角点之间的实际距离和当前待排序角点的距离预测值之间的差值小于或等于该预设阈值时,判定满足预设条件,即该待排序角点为当前待邻接点的目标邻接点。
如图3b所示,继续以角点21为当前待邻接点,剩余待排序角点均尚未被排序为例,在执行步骤202时,针对每个待排序角点,以角点20为例,可以将角点20对应的实际距离与角点21对应的距离预测值进行比较,当两者的差值大于或等于预设阈值时,则可以判定角点20为角点21的邻接点,同理,可得角点15、角点22和角点27也均为角点21的邻接点。由于角点14与角点21之间的实际距离大于距离预测值,那么可以判定角点14与角点21非邻接点。
203、根据筛选结果和当前待邻接点的排序索引,确定角点排序结果;当前待邻接点的排序索引是基于已排序角点中对应邻接点的排序索引确定的。
具体的,在基于当前待邻接点的距离预测值,获得当前待邻接点的目标邻接点的筛选结果后,可以基于该筛选结果,继续向四周扩散进一步查找与已排序的角点邻接的邻接点,以此类推,确定各待排序角点的排序索引,完成对各待排序角点的排序。
示例性的,在一些实施例中,可以首先构建一个矩阵,矩阵的维度与棋盘格的角点最大数量有关,例如,棋盘格为6*6个角点,那么可以构建一个矩阵为6*6,在确定各角点的排序索引后,可以基于排序索引放置在矩阵中对应的位置,例如第2列第3行,排序索引为(2,3)则可以将该角点的坐标值放置在矩阵的第2列第3行的位置。当所有角点的排序索引均确定后,即可以将矩阵填满,当然如果角点有缺失,那么矩阵的相应位置可以置为特定数值。通过构建矩阵,也便于对角点向周围扩散的程度进行限制,即当矩阵填满后,无须再继续向周围进行探索与查找。避免了混入棋盘格外的无效角点。
从上述描述可知,本实施例通过对检测获得的多个待排序角点中的各角点,基于距离预测值和实际距离的接近程度,从当前待邻接点逐渐向周围探索查找邻接点,确定查找到的各邻接点的排序索引,完成对多个待排序角点的排序,能够在检测算法无法完整的将所有角点全部检出的情况下,实现检测出的有效角点的排序,进而可以将排序好的角点与世界坐标进行对应,实现相机的内外参标定以及相机镜头的畸变校正。
参考图4,图4为本公开实施例提供的角点排序方法流程示意图二。本实施例中详细描述根据筛选结果和当前待邻接点的排序索引确定角点排序结果的过程,该角点排序方法包括:
401、针对多个待排序角点中的每个待排序角点,根据待排序角点的坐标和待邻接点序列中的当前待邻接点的坐标,确定待排序角点与当前待邻接点之间的实际距离。
402、根据多个实际距离和当前待邻接点的距离预测值,从多个待排序角点中筛选当前待邻接点的目标邻接点;距离预测值是基于当前待邻接点与已排序角点中对应邻接点之间的实际距离确定的;已排序角点为排序索引已知的角点;当前待邻接点是已排序角点中对应邻接点的目标邻接点。
本实施例中步骤401至步骤402与上述实施例的步骤201至步骤202相类似,此处不再赘述。
403、根据筛选结果和当前待邻接点的排序索引,确定新的待邻接点序列。
具体的,在获得筛选结果后,可以判断筛选结果是否指示多个待排序角点中是否存在当前待邻接点的目标邻接点。可以基于存在和不存在两种情况,对当前的待邻接点序列进行处理,得到新的待邻接点序列。
在一种可实现方式中,根据筛选结果,更新待邻接点序列,可以包括:若多个待排序角点中不存在当前待邻接点的目标邻接点,则将待邻接点序列确定为新的待邻接点序列。
具体的,可能由于当前待邻接点的邻接点已完全被检出,或者当前待邻接点的邻接点由于畸变或亮度问题,未在角点检测时被检出,于是出现多个待排序角点中不存在当前待邻接点的目标邻接点的情况,在此情况下,可以保留待邻接点序列,不对当前的待邻接点序列进行处理,直接将其确定为新的待邻接序列。
在另一种可实现方式中,根据筛选结果和当前待邻接点的排序索引,确定新的待邻接点序列,可以包括:若多个待排序角点中存在当前待邻接点的目标邻接点,则确定目标邻接点的距离预测值,并根据当前待邻接点的排序索引确定目标邻接点的排序索引,并将目标邻接点加入待邻接点序列,获得新的待邻接点序列。
具体的,当待排序角点中存在当前待邻接点的目标邻接点时,则可以将目标邻接点加入待邻接点序列中,以便后续将目标邻接点确定为当前待邻接点,继续基于当前待邻接点的距离预测值向周围探索查找对应的目标邻接点,直至查找到棋盘格的边缘(待邻接点序列为空或待排序角点为空)。
在本公开的一个实施例中,根据当前待邻接点的排序索引,确定目标邻接点的排序索引,可以包括:根据当前待邻接点的坐标和目标邻接点的坐标,确定当前待邻接点和目标邻接点之间的位置关系;根据位置关系和当前待邻接点的索引,确定目标邻接点的排序索引。
具体的,当前待邻接点和目标邻接点之间的位置关系,可以根据两个角点之间的坐标差来确定,示例性的,若两个角点的x坐标相近,y坐标差距较大,则可以确定当前待邻接点和目标邻接点是上下关系,至于哪个角点在上,可以进一步基于y坐标的大小获得。如图5所示,角点9和角点15为上下关系,角点15的索引排序为(3,3),那么位于其上的角点9的y向索引可以减1,即为(3,2)。
在本公开的一个实施例中,由于在x方向和y方向上的畸变情况不同,因此为了计算准确,距离预测值可以包括x方向的距离预测值和y方向上的距离预测值。确定目标邻接点的距离预测值,可以包括:根据当前待邻接点和目标邻接点之间的实际距离,确定目标邻接点在第一方向上的距离预测值。
其中,第一方向可以为当前待邻接点和目标邻接点所在直线的方向。示例性的,如图5所示,在确定了角点21的邻接点为角点22后,可以基于角点21和角点22之间的实际距离,确定角点22在x方向上的距离预测值。此时,第一方向可以为x方向。再如,在确定了角点14的邻接点为角点8之后,可以基于角点14和角点8之间的实际距离,确定角点8在y方向上的距离预测值。此时,第一方向可以为y方向。
可选地,确定目标邻接点的距离预测值,还可以包括:根据目标邻接点的排序索引,确定目标邻接点在第二方向上是否存在已有邻接点;第一方向和第二方向存在夹角;若目标邻接点在第二方向上存在已有邻接点,则根据已有邻接点的坐标和目标邻接点的坐标,确定目标邻接点在第二方向上的距离预测值。若目标邻接点在第二方向上不存在已有邻接点,则根据当前待邻接点在第二方向上的距离预测值,确定目标邻接点在第二方向上的距离预测值。
具体的,在确定了目标邻接点在第一方向上的距离预测值后,可以基于目标邻接点在第二方向上的邻接点对应的与目标邻接点的实际距离,确定第二方向上的距离预测值。若不存在,可以参考目标邻接点在第一方向上的相邻点在第二方向上与相邻角点之间的实际距离,确定目标邻接点在第二方向上的距离预测值。
示例性的,如图5所示,在基于角点14和角点8之间的实际距离,确定角点8在y方向上的距离预测值后,可以在已排序的角点中查找是否存在角点8在x方向的邻接点,具体的,可以基于排序索引值进行查找,角点8的排序索引值为(2,2)在x方向的邻接点可以在已排序角点(完成点和待邻接点)是否存在排序索引为(1,2)或(3,2)的角点。若存在,例如角点9已排序,则可以基于角点9和角点8之间的实际距离,确定角点8在x方向上的距离预测值。若不存在,则可以参考角点14在x方向上的距离预测值,即可以将角点14与在x方向上相邻的角点15之间的实际距离确定为角点8在x方向上的距离预测值。
本实施例考虑到不同方向上的畸变不同,以及可能存在角点缺失,或者暂时未对某一方向上的邻接点进行排序的情况,采用了平行借用相邻角点在相同方向上的距离预测值的方式。避免了因为不同方向畸变不同,导致计算准确性降低的问题。
404、对新的待邻接点序列进行处理,获得角点排序结果。
具体的,可以对新的待邻接点序列中是否存在剩余角点,以及对多个待排序角点中是否存在剩余角点进行判断。若多个待排序角点中存在剩余角点,且新的待邻接点序列中存在剩余角点,则从新的待邻接点序列中选定当前待邻接点,并返回执行步骤401至步骤403;
若多个待排序角点中不存在剩余角点或新的待邻接点序列中不存在剩余角点,则根据从待邻接点序列中删除的多个待邻接点的排序索引,确定角点排序结果。
从上述描述可知,通过对检测获得的多个待排序角点中的各角点,基于距离预测值和实际距离的接近程度,从当前待邻接点逐渐向周围探索查找邻接点,确定查找到的各邻接点的排序索引,完成对多个待排序角点的排序,能够在检测算法无法完整的将所有角点全部检出的情况下,实现检测出的有效角点的排序,进而可以将排序好的角点与世界坐标进行对应,实现相机的内外参标定以及相机镜头的畸变校正。
参考图6,图6为本公开实施例提供的角点排序方法流程示意图三。本实施例中详细描述了从初始角点确定到循环检测的整个过程,该角点排序方法包括:
601、获取初始角点的排序索引和初始距离;初始角点是多个待排序角点中的角点;初始距离是根据初始角点与初始角点的至少一个邻接点之间的实际距离确定的。
602、根据初始角点的初始距离,从多个待排序角点中筛选初始角点的目标邻接点,并根据初始角点的排序索引确定初始角点的目标邻接点的排序索引。
603、将初始角点的目标邻接点加入待邻接点序列,并从初始角点的目标邻接点中确定待邻接点序列的当前待邻接点。
604、针对多个待排序角点中的每个待排序角点,根据待排序角点的坐标和待邻接点序列中的当前待邻接点的坐标,确定待排序角点与当前待邻接点之间的实际距离。
605、根据多个实际距离和当前待邻接点的距离预测值,从多个待排序角点中筛选当前待邻接点的目标邻接点。距离预测值是基于当前待邻接点与已排序角点中对应邻接点之间的实际距离确定的;已排序角点为排序索引已知的角点;当前待邻接点是已排序角点中对应邻接点的目标邻接点。
606、判断多个待排序角点中是否存在当前待邻接点的目标邻接点,若存在,则执行步骤607,若不存在则执行步骤608。
607、确定目标邻接点的距离预测值,并根据当前待邻接点的排序索引确定目标邻接点的排序索引,并将目标邻接点加入待邻接点序列,获得新的待邻接点序列。
608、将待邻接点序列确定为新的待邻接点序列。
609、判断新的待邻接点序列中是否存在剩余角点,多个待排序角点中是否存在剩余角点,若多个待排序角点中存在剩余角点,且新的待邻接点序列中存在剩余角点,则执行步骤609,若多个待排序角点中不存在剩余角点或新的待邻接点序列中不存在剩余角点,则执行步骤610。
610、从新的待邻接点序列中选定当前待邻接点,返回执行步骤603。
611、根据从待邻接点序列中删除的多个待邻接点的排序索引,确定角点排序结果。
从上述描述可知,本公开实施例提供的角点排序方法,通过对检测获得的多个待排序角点中的各角点,基于距离预测值和实际距离的接近程度,从当前待邻接点逐渐向周围探索查找邻接点,确定查找到的各邻接点的排序索引,完成对多个待排序角点的排序,能够在检测算法无法完整的将所有角点全部检出的情况下,实现检测出的有效角点的排序,进而可以将排序好的角点与世界坐标进行对应,实现相机的内外参标定以及相机镜头的畸变校正。
对应于上文实施例的角点排序方法,图7为本公开实施例提供的角点排序设备的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。参照图7,设备70包括:处理模块701、筛选模块702和确定模块703。
其中,处理模块701,用于针对多个待排序角点中的每个待排序角点,根据待排序角点的坐标和待邻接点序列中的当前待邻接点的坐标,确定待排序角点与当前待邻接点之间的实际距离;
筛选模块702,用于根据多个实际距离和当前待邻接点的距离预测值,从多个待排序角点中筛选当前待邻接点的目标邻接点;距离预测值是基于当前待邻接点与已排序角点中对应邻接点之间的实际距离确定的;已排序角点为排序索引已知的角点;当前待邻接点是已排序角点中对应邻接点的目标邻接点;
确定模块703,用于根据筛选结果和当前待邻接点的排序索引,确定角点排序结果;当前待邻接点的排序索引是基于已排序角点中对应邻接点的排序索引确定的。
在本公开的一个实施例中,设备70还包括,初始化模块,用于获取初始角点的排序索引和距离预测值;初始角点是多个待排序角点中的角点;距离预测值为初始角点与多个待排序角点中对应邻接点的距离预测值;将初始角点加入待邻接点序列,并将初始角点确定为当前待邻接点。
在本公开的一个实施例中,确定模块703,具体用于根据筛选结果和当前待邻接点的排序索引,确定新的待邻接点序列;对新的待邻接点序列进行处理,获得角点排序结果。
在本公开的一个实施例中,确定模块703,具体用于若多个待排序角点中存在当前待邻接点的目标邻接点,则确定目标邻接点的距离预测值,并根据当前待邻接点的排序索引确定目标邻接点的排序索引,并将目标邻接点加入待邻接点序列,获得新的待邻接点序列。
在本公开的一个实施例中,确定模块703,具体用于根据当前待邻接点的坐标和目标邻接点的坐标,确定当前待邻接点和目标邻接点之间的位置关系;根据位置关系和当前待邻接点的索引,确定目标邻接点的排序索引。
在本公开的一个实施例中,确定模块703,具体用于根据当前待邻接点和目标邻接点之间的实际距离,确定目标邻接点在第一方向上的距离预测值。
在本公开的一个实施例中,确定模块703,具体用于根据目标邻接点的排序索引,确定目标邻接点在第二方向上是否存在已有邻接点;第一方向和第二方向存在夹角;若目标邻接点在第二方向上存在已有邻接点,则根据已有邻接点的坐标和目标邻接点的坐标,确定目标邻接点在第二方向上的距离预测值。
在本公开的一个实施例中,确定模块703,具体用于若目标邻接点在第二方向上不存在已有邻接点,则根据当前待邻接点在第二方向上的距离预测值,确定目标邻接点在第二方向上的距离预测值。
在本公开的一个实施例中,确定模块703,具体用于若多个待排序角点中不存在当前待邻接点的目标邻接点,则将待邻接点序列确定为新的待邻接点序列。
在本公开的一个实施例中,确定模块703,具体用于若多个待排序角点中存在剩余角点,且新的待邻接点序列中存在剩余角点,则重复执行从新的待邻接点序列中选定当前待邻接点,针对每个待排序角点,根据待排序角点的坐标和当前待邻接点的坐标,确定待排序角点与当前待邻接点之间的实际距离,根据多个实际距离和当前待邻接点的距离预测值,确定多个待排序角点中是否存在当前待邻接点的目标邻接点,将当前待邻接点从新的待邻接点序列中删除,根据筛选结果和当前待邻接点的排序索引,确定新的待邻接点序列的步骤,直至多个待排序角点中不存在剩余角点或新的待邻接点序列中不存在剩余角点,则根据从待邻接点序列中删除的多个待邻接点的排序索引,确定角点排序结果。
本实施例提供的设备,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
为了实现上述实施例,本公开实施例还提供了一种电子设备。
参考图8,其示出了适于用来实现本公开实施例的电子设备800的结构示意图,该电子设备800可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(Portable MediaPlayer,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800可以包括处理装置(例如中央处理器、图形处理器等)801,其可以根据存储在只读存储器(Read Only Memory,简称ROM)802中的程序或者从存储装置808加载到随机访问存储器(Random Access Memory,简称RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有电子设备800操作所需的各种程序和数据。处理装置801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
通常,以下装置可以连接至I/O接口805:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置806;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置807;包括例如磁带、硬盘等的存储装置808;以及通信装置809。通信装置809可以允许电子设备800与其他设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置809从网络上被下载和安装,或者从存储装置808被安装,或者从ROM802被安装。在该计算机程序被处理装置801执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
第一方面,根据本公开的一个或多个实施例,提供了一种角点排序方法,包括:针对多个待排序角点中的每个待排序角点,根据待排序角点的坐标和待邻接点序列中的当前待邻接点的坐标,确定待排序角点与当前待邻接点之间的实际距离;根据多个实际距离和当前待邻接点的距离预测值,从多个待排序角点中筛选当前待邻接点的目标邻接点;距离预测值是基于当前待邻接点与已排序角点中对应邻接点之间的实际距离确定的;已排序角点为排序索引已知的角点;当前待邻接点是已排序角点中对应邻接点的目标邻接点;根据筛选结果和当前待邻接点的排序索引,确定角点排序结果;当前待邻接点的排序索引是基于已排序角点中对应邻接点的排序索引确定的。
根据本公开的一个或多个实施例,方法还包括:获取初始角点的排序索引和距离预测值;初始角点是多个待排序角点中的角点;距离预测值为初始角点与多个待排序角点中对应邻接点的距离预测值;将初始角点加入待邻接点序列,并将初始角点确定为当前待邻接点。
根据本公开的一个或多个实施例,根据筛选结果和当前待邻接点的排序索引,确定角点排序结果,包括:根据筛选结果和当前待邻接点的排序索引,确定新的待邻接点序列;对新的待邻接点序列进行处理,获得角点排序结果。
根据本公开的一个或多个实施例,根据筛选结果和当前待邻接点的排序索引,确定新的待邻接点序列,包括:若多个待排序角点中存在当前待邻接点的目标邻接点,则确定目标邻接点的距离预测值,并根据当前待邻接点的排序索引确定目标邻接点的排序索引,并将目标邻接点加入待邻接点序列,获得新的待邻接点序列。
根据本公开的一个或多个实施例,根据当前待邻接点的排序索引,确定目标邻接点的排序索引,包括:根据当前待邻接点的坐标和目标邻接点的坐标,确定当前待邻接点和目标邻接点之间的位置关系;根据位置关系和当前待邻接点的索引,确定目标邻接点的排序索引。
根据本公开的一个或多个实施例,确定目标邻接点的距离预测值,包括:根据当前待邻接点和目标邻接点之间的实际距离,确定目标邻接点在第一方向上的距离预测值。
根据本公开的一个或多个实施例,确定目标邻接点的距离预测值,还包括:根据目标邻接点的排序索引,确定目标邻接点在第二方向上是否存在已有邻接点;第一方向和第二方向存在夹角;若目标邻接点在第二方向上存在已有邻接点,则根据已有邻接点的坐标和目标邻接点的坐标,确定目标邻接点在第二方向上的距离预测值。
根据本公开的一个或多个实施例,确定目标邻接点的距离预测值,还包括:若目标邻接点在第二方向上不存在已有邻接点,则根据当前待邻接点在第二方向上的距离预测值,确定目标邻接点在第二方向上的距离预测值。
根据本公开的一个或多个实施例,根据筛选结果,更新待邻接点序列,包括:若多个待排序角点中不存在当前待邻接点的目标邻接点,则将待邻接点序列确定为新的待邻接点序列。
根据本公开的一个或多个实施例,对新的待邻接点序列进行处理,获得角点排序结果,包括:若多个待排序角点中存在剩余角点,且新的待邻接点序列中存在剩余角点,则重复执行从新的待邻接点序列中选定当前待邻接点,针对每个待排序角点,根据待排序角点的坐标和当前待邻接点的坐标,确定待排序角点与当前待邻接点之间的实际距离,根据多个实际距离和当前待邻接点的距离预测值,确定多个待排序角点中是否存在当前待邻接点的目标邻接点,将当前待邻接点从新的待邻接点序列中删除,根据筛选结果和当前待邻接点的排序索引,确定新的待邻接点序列的步骤,直至多个待排序角点中不存在剩余角点或新的待邻接点序列中不存在剩余角点,则根据从待邻接点序列中删除的多个待邻接点的排序索引,确定角点排序结果。
第二方面,根据本公开的一个或多个实施例,提供了一种角点排序设备,包括:处理模块,用于针对多个待排序角点中的每个待排序角点,根据待排序角点的坐标和待邻接点序列中的当前待邻接点的坐标,确定待排序角点与当前待邻接点之间的实际距离;筛选模块,用于根据多个实际距离和当前待邻接点的距离预测值,从多个待排序角点中筛选当前待邻接点的目标邻接点;距离预测值是基于当前待邻接点与已排序角点中对应邻接点之间的实际距离确定的;已排序角点为排序索引已知的角点;当前待邻接点是已排序角点中对应邻接点的目标邻接点;确定模块,用于根据筛选结果和当前待邻接点的排序索引,确定角点排序结果;当前待邻接点的排序索引是基于已排序角点中对应邻接点的排序索引确定的。
根据本公开的一个或多个实施例,设备70还包括,初始化模块,用于获取初始角点的排序索引和距离预测值;初始角点是多个待排序角点中的角点;距离预测值为初始角点与多个待排序角点中对应邻接点的距离预测值;将初始角点加入待邻接点序列,并将初始角点确定为当前待邻接点。
根据本公开的一个或多个实施例,确定模块,具体用于根据筛选结果和当前待邻接点的排序索引,确定新的待邻接点序列;对新的待邻接点序列进行处理,获得角点排序结果。
根据本公开的一个或多个实施例,确定模块,具体用于若多个待排序角点中存在当前待邻接点的目标邻接点,则确定目标邻接点的距离预测值,并根据当前待邻接点的排序索引确定目标邻接点的排序索引,并将目标邻接点加入待邻接点序列,获得新的待邻接点序列。
根据本公开的一个或多个实施例,确定模块,具体用于根据当前待邻接点的坐标和目标邻接点的坐标,确定当前待邻接点和目标邻接点之间的位置关系;根据位置关系和当前待邻接点的索引,确定目标邻接点的排序索引。
根据本公开的一个或多个实施例,确定模块,具体用于根据当前待邻接点和目标邻接点之间的实际距离,确定目标邻接点在第一方向上的距离预测值。
根据本公开的一个或多个实施例,确定模块,具体用于根据目标邻接点的排序索引,确定目标邻接点在第二方向上是否存在已有邻接点;第一方向和第二方向存在夹角;若目标邻接点在第二方向上存在已有邻接点,则根据已有邻接点的坐标和目标邻接点的坐标,确定目标邻接点在第二方向上的距离预测值。
根据本公开的一个或多个实施例,确定模块,具体用于若目标邻接点在第二方向上不存在已有邻接点,则根据当前待邻接点在第二方向上的距离预测值,确定目标邻接点在第二方向上的距离预测值。
根据本公开的一个或多个实施例,确定模块,具体用于若多个待排序角点中不存在当前待邻接点的目标邻接点,则将待邻接点序列确定为新的待邻接点序列。
根据本公开的一个或多个实施例,确定模块,具体用于若多个待排序角点中存在剩余角点,且新的待邻接点序列中存在剩余角点,则重复执行从新的待邻接点序列中选定当前待邻接点,针对每个待排序角点,根据待排序角点的坐标和当前待邻接点的坐标,确定待排序角点与当前待邻接点之间的实际距离,根据多个实际距离和当前待邻接点的距离预测值,确定多个待排序角点中是否存在当前待邻接点的目标邻接点,将当前待邻接点从新的待邻接点序列中删除,根据筛选结果和当前待邻接点的排序索引,确定新的待邻接点序列的步骤,直至多个待排序角点中不存在剩余角点或新的待邻接点序列中不存在剩余角点,则根据从待邻接点序列中删除的多个待邻接点的排序索引,确定角点排序结果。
第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器和存储器;
存储器存储计算机执行指令;
至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上第一方面以及第一方面各种可能的设计的角点排序方法。
第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计的角点排序方法。
第五方面,根据本公开的一个或多个实施例,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计的角点排序方法
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (14)

1.一种角点排序方法,其特征在于,包括:
针对多个待排序角点中的每个待排序角点,根据所述待排序角点的坐标和待邻接点序列中的当前待邻接点的坐标,确定所述待排序角点与所述当前待邻接点之间的实际距离;
根据多个所述实际距离和所述当前待邻接点的距离预测值,从多个所述待排序角点中筛选所述当前待邻接点的目标邻接点;所述距离预测值是基于所述当前待邻接点与已排序角点中对应邻接点之间的实际距离确定的;所述已排序角点为排序索引已知的角点;所述当前待邻接点是所述已排序角点中对应邻接点的目标邻接点;
根据筛选结果和所述当前待邻接点的排序索引,确定角点排序结果;所述当前待邻接点的排序索引是基于已排序角点中对应邻接点的排序索引确定的。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取初始角点的排序索引和初始距离;所述初始角点是多个待排序角点中的角点;所述初始距离是根据所述初始角点与所述初始角点的至少一个邻接点之间的实际距离确定的;
根据所述初始角点的初始距离,从多个待排序角点中筛选所述初始角点的目标邻接点,并根据所述初始角点的排序索引确定所述初始角点的目标邻接点的排序索引;
将所述初始角点的目标邻接点加入待邻接点序列,并从所述初始角点的目标邻接点中确定所述待邻接点序列的当前待邻接点。
3.根据权利要求1所述的方法,其特征在于,所述根据筛选结果和所述当前待邻接点的排序索引,确定角点排序结果,包括:
根据筛选结果和所述当前待邻接点的排序索引,确定新的待邻接点序列;
对所述新的待邻接点序列进行处理,获得角点排序结果。
4.根据权利要求3所述的方法,其特征在于,所述根据筛选结果和所述当前待邻接点的排序索引,确定新的待邻接点序列,包括:
若多个所述待排序角点中存在所述当前待邻接点的目标邻接点,则确定所述目标邻接点的距离预测值,并根据所述当前待邻接点的排序索引确定所述目标邻接点的排序索引,并将所述目标邻接点加入所述待邻接点序列,获得新的待邻接点序列。
5.根据权利要求4所述的方法,其特征在于,所述根据所述当前待邻接点的排序索引,确定所述目标邻接点的排序索引,包括:
根据所述当前待邻接点的坐标和所述目标邻接点的坐标,确定所述当前待邻接点和所述目标邻接点之间的位置关系;
根据所述位置关系和所述当前待邻接点的索引,确定所述目标邻接点的排序索引。
6.根据权利要求4所述的方法,其特征在于,所述确定所述目标邻接点的距离预测值,包括:
根据所述当前待邻接点和所述目标邻接点之间的实际距离,确定所述目标邻接点在第一方向上的距离预测值。
7.根据权利要求6所述的方法,其特征在于,所述确定所述目标邻接点的距离预测值,还包括:
根据所述目标邻接点的排序索引,确定所述目标邻接点在第二方向上是否存在已有邻接点;所述第一方向和所述第二方向存在夹角;
若所述目标邻接点在第二方向上存在已有邻接点,则根据所述已有邻接点的坐标和所述目标邻接点的坐标,确定所述目标邻接点在第二方向上的距离预测值。
8.根据权利要求7所述的方法,其特征在于,所述确定所述目标邻接点的距离预测值,还包括:
若所述目标邻接点在第二方向上不存在已有邻接点,则根据所述当前待邻接点在第二方向上的距离预测值,确定所述目标邻接点在第二方向上的距离预测值。
9.根据权利要求4-8任一项所述的方法,其特征在于,所述根据筛选结果,更新所述待邻接点序列,包括:
若多个所述待排序角点中不存在所述当前待邻接点的目标邻接点,则将所述待邻接点序列确定为新的待邻接点序列。
10.根据权利要求4-8任一项所述的方法,其特征在于,所述对所述新的待邻接点序列进行处理,获得角点排序结果,包括:
若多个所述待排序角点中存在剩余角点,且所述新的待邻接点序列中存在剩余角点,则重复执行从所述新的待邻接点序列中选定当前待邻接点,针对每个待排序角点,根据所述待排序角点的坐标和所述当前待邻接点的坐标,确定所述待排序角点与所述当前待邻接点之间的实际距离,根据多个所述实际距离和所述当前待邻接点的距离预测值,确定多个所述待排序角点中是否存在所述当前待邻接点的目标邻接点,将所述当前待邻接点从所述新的待邻接点序列中删除,根据筛选结果和所述当前待邻接点的排序索引,确定新的待邻接点序列的步骤,直至多个所述待排序角点中不存在剩余角点或所述新的待邻接点序列中不存在剩余角点,则根据从待邻接点序列中删除的多个待邻接点的排序索引,确定角点排序结果。
11.一种角点排序设备,其特征在于,包括:
处理模块,用于针对多个待排序角点中的每个待排序角点,根据所述待排序角点的坐标和待邻接点序列中的当前待邻接点的坐标,确定所述待排序角点与所述当前待邻接点之间的实际距离;
筛选模块,用于根据多个所述实际距离和所述当前待邻接点的距离预测值,从多个所述待排序角点中筛选所述当前待邻接点的目标邻接点,并将所述当前待邻接点从所述待邻接点序列中删除;所述距离预测值是基于所述当前待邻接点与已排序角点中对应邻接点之间的实际距离确定的;所述已排序角点为排序索引已知的角点;所述当前待邻接点是所述已排序角点中对应邻接点的目标邻接点;
确定模块,用于根据筛选结果和所述当前待邻接点的排序索引,确定角点排序结果;所述当前待邻接点的排序索引是基于已排序角点中对应邻接点的排序索引确定的。
12.一种电子设备,其特征在于,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如权利要求1至10任一项所述的角点排序方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至10任一项所述的角点排序方法。
14.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述的角点排序的方法。
CN202210864902.4A 2022-07-21 2022-07-21 角点排序方法、设备、存储介质及程序产品 Pending CN117475004A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210864902.4A CN117475004A (zh) 2022-07-21 2022-07-21 角点排序方法、设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210864902.4A CN117475004A (zh) 2022-07-21 2022-07-21 角点排序方法、设备、存储介质及程序产品

Publications (1)

Publication Number Publication Date
CN117475004A true CN117475004A (zh) 2024-01-30

Family

ID=89626171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210864902.4A Pending CN117475004A (zh) 2022-07-21 2022-07-21 角点排序方法、设备、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN117475004A (zh)

Similar Documents

Publication Publication Date Title
CN110910445B (zh) 一种物件尺寸检测方法、装置、检测设备及存储介质
US20240112299A1 (en) Video cropping method and apparatus, storage medium and electronic device
CN108052869B (zh) 车道线识别方法、装置及计算机可读存储介质
CN111783777B (zh) 图像处理方法、装置、电子设备和计算机可读介质
CN111368668A (zh) 三维手部识别方法、装置、电子设备及存储介质
CN114092642B (zh) 一种三维户型模型生成方法、装置及设备
CN114742934A (zh) 图像渲染方法、装置、可读介质及电子设备
CN111626990B (zh) 目标检测框处理方法、装置及电子设备
CN117252837A (zh) 一种晶圆测试的数据处理方法、装置、介质和电子设备
CN110487264B (zh) 修正地图的方法、装置、电子设备、及存储介质
CN117475004A (zh) 角点排序方法、设备、存储介质及程序产品
CN110348374B (zh) 车辆检测方法、装置、电子设备及存储介质
CN112529952B (zh) 物体体积测量方法、装置及电子设备
CN117710612A (zh) 增强现实锚点管理方法、设备、存储介质及程序产品
CN112712459B (zh) 抠图方法及装置
WO2022156389A1 (zh) 图形显示方法、装置、设备及介质
CN113808050B (zh) 3d点云的去噪方法、装置、设备及存储介质
CN116881521B (zh) 数据获取方法、设备及存储介质
CN113542800B (zh) 视频画面定标方法、装置、终端设备
CN116894933B (zh) 一种三维模型比较方法、装置、设备和存储介质
CN112884787B (zh) 图像剪裁方法、装置、可读介质及电子设备
CN110781888B (zh) 回归视频画面中屏幕的方法、装置、可读介质及电子设备
CN110263852B (zh) 数据处理方法、装置及电子设备
CN117753008A (zh) 虚拟对象交互方法、装置、介质及电子设备
CN114839200A (zh) 异物检测方法、电子设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination