CN115170767A - 线框结构的生成方法、装置、电子设备及可读存储介质 - Google Patents

线框结构的生成方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN115170767A
CN115170767A CN202210799670.9A CN202210799670A CN115170767A CN 115170767 A CN115170767 A CN 115170767A CN 202210799670 A CN202210799670 A CN 202210799670A CN 115170767 A CN115170767 A CN 115170767A
Authority
CN
China
Prior art keywords
connection
dimensional
points
dimensional coordinates
point
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
CN202210799670.9A
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210799670.9A priority Critical patent/CN115170767A/zh
Publication of CN115170767A publication Critical patent/CN115170767A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/187Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/70Labelling scene content, e.g. deriving syntactic or semantic representations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Geometry (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computer Graphics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

本申请公开了一种线框结构的生成方法、装置、电子设备及可读存储介质,属于计算机技术领域。方法包括:获取多张图像,任两张图像中包括从不同拍摄视角拍摄的目标对象;基于多张图像确定三维线云数据;基于三维线云数据确定多个连接点的三维坐标;基于三维线云数据和多个连接点的三维坐标,确定各个连接点对的连接关系;基于各个连接点对的连接关系和多个连接点的三维坐标,生成目标对象的线框结构。相对于通过激光扫描目标对象或基于目标对象的三维模型确定三维点云数据来讲,图像的获取难度低且图像中目标对象的精度高,因此,本申请降低了三维线云数据的获取难度,且保证了三维线云数据的精度,从而提高了线框结构的生成效率和精度。

Description

线框结构的生成方法、装置、电子设备及可读存储介质
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种线框结构的生成方法、装置、电子设备及可读存储介质。
背景技术
在计算机技术领域中,线框结构是一种重要的模型结构。线框结构由组成物体的点、线等组成,可以直观地反应出物体的三维结构。由于线框结构具有数据量小的特点,能降低对电子设备硬件的要求,提高运算速度,因此,线框结构生成技术显得尤为重要。
相关技术中,可以获取三维点云数据,该三维点云数据是通过对目标对象进行激光扫描后得到的多个点的三维坐标,或者,该三维点云数据是基于目标对象的三维模型得到的多个点的三维坐标。其中,两个面相交的线段称为相交线段,多个点包括至少三个相交线段的交点,该交点也称为连接点。通过对三维点云数据进行分析处理,可以从三维点云数据中确定出多个连接点的三维坐标。之后,基于三维点云数据和多个连接点的三维坐标,确定每两个连接点的连接关系。基于每两个连接点的连接关系和多个连接点的三维坐标,生成目标对象的线框结构。
上述技术对激光的精度或者三维模型的精度要求较高,导致三维点云数据的获取难度较大,影响了线框结构的生成效率。
发明内容
本申请提供了一种线框结构的生成方法、装置、电子设备及可读存储介质,可用于解决相关技术中的问题,所述技术方案包括如下内容。
一方面,提供了一种线框结构的生成方法,所述方法包括:
获取多张图像,任两张图像中包括从不同拍摄视角拍摄的目标对象;
基于所述多张图像确定三维线云数据,所述三维线云数据包括多个线段的三维数据;
基于所述三维线云数据确定多个连接点的三维坐标,所述连接点是至少三个相交线段的交点,所述相交线段为所述多个线段中与两个面相交的线段;
基于所述三维线云数据和所述多个连接点的三维坐标,确定各个连接点对的连接关系,所述连接点对包括两个连接点;
基于所述各个连接点对的连接关系和所述多个连接点的三维坐标,生成所述目标对象的线框结构。
另一方面,提供了一种线框结构的生成装置,所述装置包括:
获取模块,用于获取多张图像,任两张图像中包括从不同拍摄视角拍摄的目标对象;
确定模块,用于基于所述多张图像确定三维线云数据,所述三维线云数据包括多个线段的三维数据;
所述确定模块,还用于基于所述三维线云数据确定多个连接点的三维坐标,所述连接点是至少三个相交线段的交点,所述相交线段为所述多个线段中与两个面相交的线段;
所述确定模块,还用于基于所述三维线云数据和所述多个连接点的三维坐标,确定各个连接点对的连接关系,所述连接点对包括两个连接点;
生成模块,用于基于所述各个连接点对的连接关系和所述多个连接点的三维坐标,生成所述目标对象的线框结构。
在一种可能的实现方式中,所述确定模块,用于对所述多张图像中的目标对象进行线段提取,得到各张图像中多个线段的二维数据;对所述各张图像中多个线段的二维数据进行匹配,得到多个线段集合,所述线段集合包括来自不同图像且相互匹配的线段的二维数据;基于多个线段集合确定所述多个线段的三维数据。
在一种可能的实现方式中,所述确定模块,用于对于任一个线段集合,从所述任一个线段集合中选择第一参考线段的二维数据和第二参考线段的二维数据;确定所述第一参考线段所在图像的内参和外参、所述第二参考线段所在图像的内参和外参,所述图像的内参用于描述将拍摄所述目标对象的相机的相机坐标系中的点变换到所述图像中的点时的变换方式,所述图像的外参用于描述将世界坐标系中的点变换到所述相机坐标系中的点时的变换方式;基于所述第一参考线段所在图像的内参和外参、所述第二参考线段所在图像的内参和外参,将所述第一参考线段的二维数据和所述第二参考线段的二维数据合并为一个线段的三维数据。
在一种可能的实现方式中,所述线段的三维数据包括所述线段的两端端点的三维坐标,所述确定模块,用于从所述多个线段的两端端点的三维坐标中采样出多个候选点的初始三维坐标;基于所述多个候选点的初始三维坐标,从所述多个线段的两端端点的三维坐标中采样出各个候选点对应的线段的两端端点的三维坐标;基于所述各个候选点对应的线段的两端端点的三维坐标,确定所述多个连接点的三维坐标。
在一种可能的实现方式中,所述多个候选点包括第一候选点;所述确定模块,用于基于第一端点的三维坐标和各个第二端点的三维坐标,确定所述第一端点和所述各个第二端点之间的距离,所述第一端点是所述多个线段的两端端点中的任一个端点,所述第二端点是所述多个线段的两端端点中除所述第一端点之外的端点;基于所述第一端点和所述各个第二端点之间的距离,确定满足第一距离条件的距离所对应的第二端点的数量;响应于所述满足第一距离条件的距离所对应的第二端点的数量满足数量条件,将所述第一端点的三维坐标作为所述第一候选点的初始三维坐标。
在一种可能的实现方式中,所述确定模块,还用于对于所述多个线段的两端端点中除所述第一候选点之外的任一个剩余端点,基于所述任一个剩余端点的三维坐标和所述第一候选点的初始三维坐标,确定所述任一个剩余端点和所述第一候选点之间的距离;基于各个剩余端点分别和所述第一候选点之间的距离,确定大于参考距离的距离所对应的剩余端点的三维坐标为第二候选点的初始三维坐标,将所述第二候选点作为所述多个候选点中的候选点。
在一种可能的实现方式中,所述确定模块,用于对于任一个候选点,基于所述任一个候选点的初始三维坐标和所述多个线段的两端端点的三维坐标,确定所述任一个候选点分别和所述多个线段之间的距离;基于所述任一个候选点分别和所述多个线段之间的距离,确定满足第二距离条件的线段的两端端点的三维坐标为所述任一个候选点对应的线段的两端端点的三维坐标。
在一种可能的实现方式中,所述确定模块,用于基于所述各个候选点对应的线段的两端端点的三维坐标,确定所述各个候选点为连接点的置信度和所述各个候选点的目标三维坐标;从所述各个候选点为连接点的置信度中确定大于置信度阈值的置信度;基于所述大于置信度阈值的置信度所对应的候选点的目标三维坐标,确定所述多个连接点的三维坐标。
在一种可能的实现方式中,所述确定模块,用于将第一坐标集合中最大置信度对应的候选点的目标三维坐标移动至第二坐标集合中,得到移动后的第一坐标集合和移动后的第二坐标集合,所述第一坐标集合包括所述大于置信度阈值的置信度所对应的候选点的目标三维坐标;基于所述移动后的第一坐标集合中各个候选点的目标三维坐标和所述最大置信度对应的候选点的目标三维坐标,确定所述移动后的第一坐标集合中各个候选点分别和所述最大置信度对应的候选点的距离;基于所述移动后的第一坐标集合中各个候选点分别和所述最大置信度对应的候选点的距离,从所述移动后的第一坐标集合中过滤掉满足第三距离条件的距离所对应的候选点的目标三维坐标,得到过滤后的第一坐标集合;响应于所述过滤后的第一坐标集合为空集合,将所述移动后的第二坐标集合中各个候选点的目标三维坐标分别确定为所述多个连接点的三维坐标。
在一种可能的实现方式中,所述确定模块,还用于响应于所述过滤后的第一坐标集合不为所述空集合,将所述过滤后的第一坐标集合作为下一次循环的第一坐标集合,将所述移动后的第二坐标集合作为下一次循环的第二坐标集合,从所述将第一坐标集合中最大置信度对应的候选点的目标三维坐标移动至第二坐标集合中开始执行下一次循环,直至所述过滤后的第一坐标集合为所述空集合,将所述移动后的第二坐标集合中各个候选点的目标三维坐标分别确定为所述多个连接点的三维坐标。
在一种可能的实现方式中,所述确定模块,用于基于所述多个连接点的三维坐标,从所述多个线段的三维数据中采样出各个连接点对应的线段的三维数据;基于所述各个连接点对应的线段的三维数据,确定各个连接点对的连接关系。
在一种可能的实现方式中,所述生成模块,用于基于所述各个连接点对的连接关系,从所述多个连接点的三维坐标中过滤掉满足过滤条件的目标连接点的三维坐标,得到多个剩余连接点的三维坐标;基于每两个剩余连接点的连接关系和所述多个剩余连接点的三维坐标,生成所述目标对象的线框结构。
在一种可能的实现方式中,所述各个连接点对的连接关系包括每两个连接点为同一个连接点的概率;所述生成模块,用于基于所述每两个连接点为同一个连接点的概率,选择满足第一概率条件的多个连接点对;对于所述满足第一概率条件的任一个连接点对,获取所述满足第一概率条件的任一个连接点对中各个连接点的置信度,所述连接点的置信度是所述连接点对应的候选点为连接点的置信度;基于所述满足第一概率条件的任一个连接点对中各个连接点的置信度,将最小置信度对应的连接点作为所述目标连接点,过滤掉所述目标连接点的三维坐标。
在一种可能的实现方式中,所述各个连接点对的连接关系包括每两个连接点直接连接的概率;所述生成模块,用于基于所述每两个连接点直接连接的概率,选择满足第二概率条件的多个连接点对;对于所述满足第二概率条件的多个连接点对中的任一个连接点,确定所述任一个连接点分别和各个其他连接点之间的距离,所述其他连接点是所述满足第二概率条件的多个连接点对中除所述任一个连接点之外的连接点;基于所述任一个连接点分别和各个其他连接点之间的距离,将满足第四距离条件的其他连接点作为所述目标连接点,过滤掉所述目标连接点的三维坐标。
在一种可能的实现方式中,所述生成模块,用于基于每两个剩余连接点的连接关系和所述多个剩余连接点的三维坐标,生成初始线框结构;对于所述初始线框结构的任一个边,确定所述任一个边和各个其他边之间的距离,所述其他边是所述初始线框结构中除所述任一个边之外的边;基于所述任一个边和各个其他边之间的距离,过滤掉满足第五距离条件的其他边,得到所述目标对象的线框结构。
另一方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述电子设备实现上述任一所述的线框结构的生成方法。
另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使电子设备实现上述任一所述的线框结构的生成方法。
另一方面,还提供了一种计算机程序或计算机程序产品,所述计算机程序或计算机程序产品中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使电子设备实现上述任一种线框结构的生成方法。
本申请提供的技术方案至少带来如下有益效果:
本申请提供的技术方案中,多张图像的任两张图像包括从不同拍摄视角拍摄的目标对象。相较于利用激光扫描目标对象时对激光的高精度要求或者目标对象的三维模型的获取难度和高精度要求来讲,图像的获取难度低且图像中目标对象的精度高,因此,通过多张图像确定三维线云数据时,不仅降低了三维线云数据的获取难度,还能保证三维线云数据的精度。之后,通过三维线云数据确定多个连接点的三维坐标,并基于三维线云数据和多个连接点的三维坐标,确定各个连接点对的连接关系,以进一步生成目标对象的线框结构,降低了线框结构的获取难度,提高了线框结构的生成效率和精度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种线框结构的生成方法的实施环境示意图;
图2是本申请实施例提供的一种线框结构的生成方法的流程图;
图3是本申请实施例提供的一种三维线云数据的示意图;
图4是本申请实施例提供的一种连接点的示意图;
图5是本申请实施例提供的一种线框结构的示意图;
图6是本申请实施例提供的一种线段处理网络的网络结构示意图;
图7是本申请实施例提供的一种线框结构的生成示意图;
图8是本申请实施例提供的一种对三维线云数据的处理示意图;
图9是本申请实施例提供的一种线框结构的生成装置的结构示意图;
图10是本申请实施例提供的一种终端设备的结构示意图;
图11是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种线框结构的生成方法的实施环境示意图,如图1所示,该实施环境包括终端设备101和服务器102。其中,本申请实施例中的线框结构的生成方法可以由终端设备101执行,也可以由服务器102执行,或者由终端设备101和服务器102共同执行。
终端设备101可以是智能手机、游戏主机、台式计算机、平板电脑、膝上型便携计算机、智能电视、智能车载设备、智能语音交互设备、智能家电等。服务器102可以为一台服务器,或者为多台服务器组成的服务器集群,或者为云计算平台和虚拟化中心中的任意一种,本申请实施例对此不加以限定。服务器102可以与终端设备101通过有线网络或无线网络进行通信连接。服务器102可以具有数据处理、数据存储以及数据收发等功能,在本申请实施例中不加以限定。终端设备101和服务器102的数量不受限制,可以是一个或多个。
下述各实施例提供的线框结构的生成方法可以基于云计算(Cloud Computing)实现。云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池平台,该云计算资源池平台简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务。在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
在计算机技术领域中,电子设备存在硬件限制,使得电子设备的计算资源往往是有限的,且电子设备的运算速度也存在上限。在此基础上,为了降低数据量,保证运算速度,对于三维结构复杂的目标对象,可以将其转化为简单的线框结构,利用组成目标对象的点和线来构造线框结构,以利用线框结构来形象化地描述目标对象的三维结构,因此,目标对象的线框结构的生成技术显得尤为重要。本申请实施例提供了一种线框结构的生成方法,旨在降低线框结构的获取难度,提高线框结构的生成效率和精度。
本申请实施例提供的线框结构的生成方法可应用于上述实施环境中。以图2所示的本申请实施例提供的一种线框结构的生成方法的流程图为例,该方法可由图1中的终端设备101或者服务器102执行,也可以由终端设备101和服务器102共同执行。为便于描述,将执行本申请实施例中的线框结构的生成方法的终端设备101或者服务器102称为电子设备,该方法可以由电子设备来执行。如图2所示,该方法包括如下步骤。
步骤201,获取多张图像,任两张图像中包括从不同拍摄视角拍摄的目标对象。
本申请实施例中,目标对象包括但不限于建筑物、机械器件、日常生活用品等。利用相机从不同的拍摄视角对目标对象进行拍摄得到多张图像,这多张图像可以统称为多视角图像。由于从不同拍摄视角对目标对象进行拍摄,因此,各图像中目标对象的视图也存在差异,一个典型的示例为:三张图像分别为目标对象的主视图、左视图和俯视图。主视图是从目标对象正面的拍摄视角对目标对象进行拍摄得到的,左视图是从目标对象左侧的拍摄视角对目标对象进行拍摄得到的,俯视图是从目标对象顶部的拍摄视角对目标对象进行拍摄得到的。
步骤202,基于多张图像确定三维线云数据,三维线云数据包括多个线段的三维数据。
由于从不同的拍摄视角对目标对象进行拍摄得到多张图像,因此,利用多张图像可以描述出三维形态的目标对象。基于此,本申请实施例可以从多张图像中提取出多个线段的三维数据,而多个线段的三维数据可以描述出三维形态的目标对象。多个线段的三维数据可作为三维线云数据,请参见图3,图3是本申请实施例提供的一种三维线云数据的示意图,且图3所示的三维线云数据描述了三维形态的建筑物。
在一种可能实现方式中,基于多张图像确定三维线云数据,包括:对多张图像中的目标对象进行线段提取,得到各张图像中多个线段的二维数据;对各张图像中多个线段的二维数据进行匹配,得到多个线段集合,线段集合包括来自不同图像且相互匹配的线段的二维数据;基于多个线段集合确定多个线段的三维数据。
对于任一张图像,至少可以采用如下所示的方式A1或者方式A2,对任一张图像中的目标对象进行线段提取,得到该图像中多个线段的二维数据。其中,图像中线段的二维数据是基于图像所在坐标系的数据。
方式A1,基于直线段检测算法(Line Segment Detector,LSD),对任一张图像中的目标对象进行线段提取,以从图像的目标对象中提取出多个线段的二维数据。首先,基于图像的目标对象中各个像素点的像素信息,计算图像的目标对象中所有像素点的梯度方向。计算每两个相邻像素点的梯度方向的变化值,若两个相邻像素点的梯度方向的变化值小于阈值,则这两个相邻像素点属于同一个连通域。通过这种方式,可以确定出图像的目标对象中的多个连通域。通过规则匹配的方式,过滤掉多个连通域中的部分连通域,和/或,将多个连通域中的部分连通域再次切分,得到处理后的各连通域,其中,一个连通域可以切分出至少两个连通域。处理后的每一个连通域可以确定出一条线段的二维数据。
方式A2,可以利用深度卷积神经网络,对任一张图像中的目标对象进行线段提取,以从图像的目标对象中提取出多个线段的二维数据。其中,深度卷积神经网络包括但不限于线段卷积神经网络(Line Convolutional Neural Network,L-CNN)和三点直线段检测算法(Tri-Points LSD,TP-LSD)中的任一项。
针对L-CNN,先对图像中的目标对象进行特征提取得到图像特征,基于该图像特征确定出图像的目标对象中所有的端点位置。基于任两个端点位置,从图像特征中采样得到这两个端点所构成线段的线特征,并基于该线特征确定这两个端点所构成线段为真实线段的概率。若概率大于第一概率阈值,则基于这两个端点位置确定出一条线段的二维数据。
针对TP-LSD,对图像的目标对象进行特征提取得到图像特征,对该图像特征进行语义分割,得到多条直线数据。基于多条直线数据和该图像特征确定出各直线数据的中点数据。基于多条直线数据、该图像特征和各直线数据的中点数据,确定出各直线数据的中点到两端点的位移向量。基于各直线数据的中点数据和各直线数据的中点到两端点的位移向量,确定出图像中各个线段的二维数据。
接着,至少可以采用如下所示的方式B1或者方式B2,对各张图像中多个线段的二维数据进行匹配,得到多个线段集合。
方式B1,标注出每张图像中的关键点,获取该关键点的世界坐标。将标注有关键点的各图像和关键点的世界坐标输入图像处理软件中,由图像处理软件输出各图像的内参和外参。其中,图像的内参用于描述将相机坐标系中的点变换到图像中的点时的变换方式,图像的外参用于描述将世界坐标系中的点变换到相机坐标系中的点时的变换方式。本申请实施例中的图像处理软件包括但不限于COLMAP(一种开源的三维重建软件)、RealityCapture(一种对图像进行三维重建的软件)等,其中,COLMAP是以结构与运动(StructureFrom Motion,SFM)框架为基础实现的软件。
本申请实施例中,相机坐标系是拍摄目标对象的相机的坐标系,各图像可以是利用同一个相机对目标对象进行拍摄得到的,因而能够使各图像对应同一个相机坐标系。
本申请实施例中,可以确定出两张图像各自的极线。针对一张图像上的一个线段,将该线段记为第一线段,针对另一张图像上的一个线段,将该线段记为第二线段。
基于这两张图像各自的极线、内参、外参以及第一线段的二维数据,可以将第一线段两端点映射成另一张图像上的两条直线。基于第二线段的二维数据,可以确定出第二线段所在直线。第二线段所在直线与映射得到的两条直线相交,将两交点之间的线段称为相交线段,计算第二线段与相交线段之间的重合度。若重合度大于重合度阈值,则第一线段与第二线段相匹配,可以将第一线段的二维数据和第二线段的二维数据放入同一个线段集合。若重合度不大于重合度阈值,则第一线段与第二线段不匹配,可以将第一线段的二维数据和第二线段的二维数据放入不同的线段集合。
方式B2,基于图像中任一个线段的二维数据,从图像中采集组成该线段的各个像素点的像素信息,基于组成该线段的各个像素点的像素信息确定该线段的线特征。基于一张图像上一个线段(记为第一线段)的线特征与另一张图像上一个线段(记为第二线段)的线特征进行相似度计算,得到这两个线段的相似度。若这两个线段的相似度大于相似度阈值,则这两个线段相匹配,可以将这两个线段的二维数据放入同一个线段集合。若这两个线段的相似度不大于相似度阈值,则这两个线段不匹配,可以将这两个线段的二维数据放入不同的线段集合。
通过方式B1或者方式B2,可以将各张图像中多个线段的二维数据进行匹配,将来自不同图像且相互匹配的线段的二维数据组成一个线段集合,可以得到多个线段集合。
之后,对于任一个线段集合,基于该线段集合中各个线段的二维数据确定出一个线段的三维数据。
可选地,基于多个线段集合确定多个线段的三维数据,包括:对于任一个线段集合,从任一个线段集合中选择第一参考线段的二维数据和第二参考线段的二维数据;确定第一参考线段所在图像的内参和外参、第二参考线段所在图像的内参和外参,图像的内参用于描述将拍摄目标对象的相机的相机坐标系中的点变换到图像中的点时的变换方式,图像的外参用于描述将世界坐标系中的点变换到相机坐标系中的点时的变换方式;基于第一参考线段所在图像的内参和外参、第二参考线段所在图像的内参和外参,将第一参考线段的二维数据和第二参考线段的二维数据合并为一个线段的三维数据。
本申请实施例中,可以从任一个线段集合中随机选择两个线段的二维数据,分别作为第一参考线段的二维数据和第二参考线段的二维数据。也可以从任一个线段集合中挑选最大重合度所对应的两个线段(即上文提及的第一线段和第二线段)或者最大相似度所对应的两个线段(即上文提及的第一线段和第二线段),分别作为第一参考线段的二维数据和第二参考线段的二维数据。
由于图像的内参用于描述将相机坐标系中的点变换到图像中的点时的变换方式,而图像中线段的二维数据是基于图像所在坐标系的数据,因此,基于第一参考线段所在图像的内参,可以将第一参考线段的二维数据转化为第一参考点对应的相机坐标系中的数据;基于第二参考线段所在图像的内参,可以将第二参考线段的二维数据转化为第二参考点对应的相机坐标系中的数据。
由于图像的外参用于描述将世界坐标系中的点变换到相机坐标系中的点时的变换方式,因此,基于第一参考线段所在图像的外参,可以将第一参考点对应的相机坐标系中的数据转化为第一参考点对应的世界坐标系中的数据;基于第二参考线段所在图像的外参,可以将第二参考点对应的相机坐标系中的数据转化为第二参考点对应的世界坐标系中的数据。
又由于第一参考线段和第二参考线段相互匹配,因此,第一参考线段和第二参考线段对应目标对象上的同一个线段。因此,基于第一参考点对应的世界坐标系中的数据和第二参考点对应的世界坐标系中的数据,可以得到一个线段的三维数据,从而实现线段三角化(本申请实施例的三角化指二维数据化为三维数据)。
需要说明的是,线段的三维数据是基于世界坐标系的数据。通过上述方式,可以分别确定出各个线段集合各自对应的线段的三维数据,从而得到三维线云数据。
三维线云数据中包括多个线段的三维数据,而线段的三维数据包括线段的两端端点的三维坐标。本申请实施例中,可以对三维线云数据进行归一化,以使归一化后的三维线云数据符合模型或者电子设备的计算要求。示例性地,先基于三维线云数据确定三维坐标平均值,将各个线段两端端点的三维坐标分别减去三维坐标平均值,以对三维线云数据进行去中心化,得到各个线段两端端点去中心化后的三维坐标。接着,基于三维线云数据确定各个线段两端端点的三维坐标的L2范数(L2 Norm),从这些L2范数中确定范数最大值,将各个线段两端端点去中心化后的三维坐标除以范数最大值,得到各个线段两端端点归一化后的三维坐标,即得到归一化后的三维线云数据。
可以理解的是,归一化后的三维线云数据可以作为三维线云数据,在该三维线云数据的基础上,实现步骤203-步骤205的相关内容。
步骤203,基于三维线云数据确定多个连接点的三维坐标,连接点是至少三个相交线段的交点,相交线段为多个线段中与两个面相交的线段。
面可以为平面,也可以为曲面。面与面的交线可以看做一个线段,该线段称为相交线段。相交线段可以是直线段,也可以为曲线段。本申请实施例中,将至少三个相交线段的交点称为连接点。
请参见图4,图4是本申请实施例提供的一种连接点的示意图。两个面相交的线段为相交线段,在图4中用粗线表征相交线段。至少三个相交线段的交点为连接点,在图4中示出的连接点是四个相交线段的交点。
由于三维线云数据可以描述三维形态的目标对象,因此,基于三维线云数据可以确定出目标对象中各个连接点的三维坐标。示例性地,可以是先从三维线云数据中采样出多个候选点的初始三维坐标,再基于各候选点的初始三维坐标,从三维线云数据中采样出各个候选点对应的线段的三维数据,之后,基于各个候选点对应的线段的三维数据确定多个连接点的三维坐标。
在一种可能实现方式中,线段的三维数据包括线段的两端端点的三维坐标,基于三维线云数据确定多个连接点的三维坐标,包括:从多个线段的两端端点的三维坐标中采样出多个候选点的初始三维坐标;基于多个候选点的初始三维坐标,从多个线段的两端端点的三维坐标中采样出各个候选点对应的线段的两端端点的三维坐标;基于各个候选点对应的线段的两端端点的三维坐标,确定多个连接点的三维坐标。
三维点云数据包括多个线段的三维数据,一个线段的三维数据包括该线段两端端点的三维坐标。由于一个线段可以视为两个端点,因此,将三维线云数据视为三维点云数据,可以通过局部密度的采样方式,从三维点云数据中采样出多个候选点的初始三维坐标。此时,候选点是三维点云数据中以该候选点为中心的设定范围内端点数量较多的端点,即候选点是三维点云数据中局部密度比较高的端点。本申请实施例中,将通过局部密度的采样方式采样出的候选点的初始三维坐标,称为第一候选点的初始三维坐标,第一候选点的初始三维坐标的确定方式如下所示。
可选地,多个候选点包括第一候选点;从多个线段的两端端点的三维坐标中采样出多个候选点的初始三维坐标,包括:基于第一端点的三维坐标和各个第二端点的三维坐标,确定第一端点和各个第二端点之间的距离,第一端点是多个线段的两端端点中的任一个端点,第二端点是多个线段的两端端点中除第一端点之外的端点;基于第一端点和各个第二端点之间的距离,确定满足第一距离条件的距离所对应的第二端点的数量;响应于满足第一距离条件的距离所对应的第二端点的数量满足数量条件,将第一端点的三维坐标作为第一候选点的初始三维坐标。
本申请以多个线段两端端点中的一个端点为例来阐述该端点是否为候选点。示例性地,将该端点记为第一端点,将多个线段两端端点中除第一端点之外的端点称为第二端点,对于任一个第二端点,利用第一端点的三维坐标和该第二端点的三维坐标计算出该第一端点和该第二端点之间的距离。
通过上述方式,可以确定出第一端点和各个第二端点之间的距离,接着,从这些距离中确定满足第一距离条件的距离。本申请实施例不对满足第一距离条件的距离做限定,示例性地,满足第一距离条件的距离是小于第一距离阈值的距离(即以第一端点的三维坐标为中心、以第一距离阈值为半径的范围区域),或者满足第一距离条件的距离包括小于第一距离阈值的距离和小于第二距离阈值的距离(即以第一端点的三维坐标为中心、以第二距离阈值为半径的范围区域),其中,第一距离阈值大于第二距离阈值。可选地,第一距离阈值记为R1,第二距离阈值记为R1/2。
针对小于R1的距离,统计小于R1的距离所对应的第二端点的数量,该数量记为M1。若M1满足数量条件,如M1大于第一数量阈值θ1,表明第一端点为局部密度比较高的端点,则将第一端点的三维坐标作为第一候选点的初始三维坐标。
针对小于R1/2的距离,统计小于R1/2的距离所对应的第二端点的数量,该数量记为M2。若M1、M2满足数量条件,如M1大于第一数量阈值θ1,且M1/M2大于第二数量阈值θ2,表明第一端点为局部密度比较高的端点,则将第一端点的三维坐标作为第一候选点的初始三维坐标。本申请实施例不对R1、θ1和θ2的数值做限定,示例性地,R1=6,θ1=12,θ2=0.7。
上述方式是将局部密度比较高的端点作为第一候选点的初始三维坐标,通过这种方式,可以采样出多个(记为N1个)第一候选点的初始三维坐标。本申请实施例中,还可以将这N1个第一候选点组成候选点集合,将多个线段两端端点中除候选点集合之外的剩余端点组成剩余端点集合,基于候选点集合,通过最远点采样的方式,从剩余端点集合中采样出N-N1个候选点,共得到N个候选点。本申请实施例中,将通过最远点采样的方式采样出的候选点的初始三维坐标记为第二候选点的初始三维坐标,第二候选点的初始三维坐标的确定方式如下所示。
可选地,将第一端点的三维坐标作为第一候选点的初始三维坐标之后,还包括:对于多个线段的两端端点中除第一候选点之外的任一个剩余端点,基于任一个剩余端点的三维坐标和第一候选点的初始三维坐标,确定任一个剩余端点和第一候选点之间的距离;基于各个剩余端点分别和第一候选点之间的距离,确定大于参考距离的距离所对应的剩余端点的三维坐标为第二候选点的初始三维坐标,将第二候选点作为多个候选点中的候选点。
本申请实施例中,将候选点集合记为A,A中包括多个第一候选点,将剩余端点集合记为B,B中的任一个剩余端点b为多个线段两端端点中除A中各第一候选点之外的端点。基于剩余端点b的三维坐标和A中各第一候选点的初始三维坐标,计算剩余端点b分别和A中各第一候选点之间的距离,从这些距离中选择最小距离,作为剩余端点b与A之间的距离。即确定d=min{dist(b,a1),…,dist(b,ai),…},其中,d表征剩余端点b与A之间的距离,min为最小值符号,dist为距离符号,a1,…,ai表征A中的各第一候选点。
通过这种方式,可以确定出各个剩余端点分别和A之间的距离,从这些距离中选择大于参考距离(如最大距离、对这些距离进行排序后的第一数量个距离)的距离,将大于参考距离的距离所对应的剩余端点的三维坐标确定为第二候选点的初始三维坐标,实现了从剩余端点集合中采样出与候选点集合距离最远的若干个剩余端点,这若干个剩余端点均为第二候选点,从而实现了最远点采样。
其中,上述最远点采样可以多次循环执行,每通过最远点采样的方式,从剩余端点集合中采样出若干个剩余端点之后,将这若干个剩余端点从剩余端点集合中移除。这若干个剩余端点均为第二候选点,将第二候选点作为第一候选点加入候选点集合中,然后再通过最远点采样的方式,从剩余端点集合中采样出若干个剩余端点,直至达到循环次数为止或者直至通过最远点采样的方式共采样得到N-N1个第二候选点为止。
本申请实施例中,先通过局部密度的采样方式,从三维点云数据中采样出多个第一候选点的初始三维坐标,再通过最远点采样的方式,从三维点云数据中采样出多个第二候选点的初始三维坐标,从而得到多个候选点的初始三维坐标。通过采样的方式减少了数据量,而通过二次采样的方式,又保证了候选点的数据量,平衡了计算速度和精度的要求。
接下来,对于每一个候选点,可以采用最近线段采样的方式,基于该候选点的初始三维坐标,从三维线云数据中采样出该候选点对应的至少一个线段的三维数据。线段的三维数据包括线段两端端点的三维坐标,最近线段采样的方式如下所示。
在一种可能的实现方式中,基于多个候选点的初始三维坐标,从多个线段的两端端点的三维坐标中采样出各个候选点对应的线段的两端端点的三维坐标,包括:对于任一个候选点,基于任一个候选点的初始三维坐标和多个线段的两端端点的三维坐标,确定任一个候选点分别和多个线段之间的距离;基于任一个候选点分别和多个线段之间的距离,确定满足第二距离条件的线段的两端端点的三维坐标为任一个候选点对应的线段的两端端点的三维坐标。
本申请实施例中,线段两端端点的三维坐标能够描述出线段,可以采用点到线段最小距离的方式,基于候选点的初始三维坐标和线段两端端点的三维坐标,确定候选点和线段之间的距离。线段两端端点的三维坐标也能够确定出线段所在直线的直线数据,可以采用点到直线距离的方式,基于候选点的初始三维坐标和线段两端端点的三维坐标,确定候选点和线段之间的距离。
在一种可能的实现方式中,在确定候选点和线段之间的距离时,可以先对线段两端端点的三维坐标进行去中心化处理。示例性地,将线段两端端点的三维坐标减去候选点的初始三维坐标,以更新线段两端端点的三维坐标。通过该去中心化处理,将线段两端端点的三维坐标更新成以候选点为原心的坐标系内的三维坐标。之后,基于更新后的线段两端端点的三维坐标,确定候选点和线段之间的距离。
示例性地,候选点和线段之间的距离可以表示为如下所示的公式(1),在公式(1)中,d表征候选点和线段之间的距离,A和B表征线段两端端点,P表征候选点。
Figure BDA0003733522150000161
在计算出任一个候选点分别和三维线云数据中多个线段之间的距离之后,从这些距离中确定满足第二距离条件的距离,将满足第二距离条件的距离所对应的线段的三维数据,确定为任一个候选点对应的线段的三维数据。
可选地,满足第二距离条件的距离可以是小于第三距离阈值的距离,可以将第三距离阈值记为r,可以从三维线云数据中采样出与任一个候选点之间的距离小于r的线段的三维数据,从而实现最近线段采样。示例性地,第三距离阈值可以是设定的数据,也可以是对任一个候选点分别和三维线云数据中多个线段之间的距离进行排序后的第二数量个距离。
本申请实施例中,候选点的数量为N个。对于每一个候选点,通过最近线段采样的方式,可以从三维线云数据中采样出该候选点对应的L条线段的三维数据,通过这种方式,共从三维线云数据中采样出N×L条线段的三维数据。其中,线段的三维数据包括线段两端端点的三维坐标。
通过上述方式,可以得到各个候选点对应的线段两端端点的三维坐标。对于任一个候选点,可以基于该候选点对应的线段两端端点的三维坐标,确定该候选点是否可以作为连接点。在一种可能的实现方式中,基于各个候选点对应的线段的两端端点的三维坐标,确定多个连接点的三维坐标,包括:基于各个候选点对应的线段的两端端点的三维坐标,确定各个候选点为连接点的置信度和各个候选点的目标三维坐标;从各个候选点为连接点的置信度中确定大于置信度阈值的置信度;基于大于置信度阈值的置信度所对应的候选点的目标三维坐标,确定多个连接点的三维坐标。
本申请实施例中,可以将线段两端端点的三维坐标和候选点与线段之间的距离确定为线段的线段特征,则线段的线段特征包括7个维度的特征(即两个三维坐标和一个距离)。通过这种方式,可以得到各个候选点对应线段的线段特征。由于N个候选点中的每一个候选点对应L条线段,每一条线段对应7个维度的特征,因此,N个候选点对应线段的线段特征可以表示为N×L×7。
需要说明的是,线段的线段特征除包括线段两端端点的三维坐标和候选点与线段之间的距离之外,还可以包括其他信息。例如,上文已提及,第一参考线段的二维数据和第二参考线段的二维数据合并为一个线段的三维数据(即线段两端端点的三维坐标)。因此,基于第一参考线段的二维数据,从第一参考线段所在图像中采样该第一参考线段上各个像素点的像素信息(属于线段对应的一个图像信息),和/或,基于第二参考线段的二维数据,从第二参考线段所在图像中采样该第二参考线段上各个像素点的像素信息(属于线段对应的另一个图像信息)。基于线段两端端点的三维坐标、候选点与线段之间的距离、第一参考线段上各个像素点的像素信息、第二参考线段上各个像素点的像素信息中的至少一项,构建线段的线段特征。
在一种可能的实现方式中,可以对各个候选点对应线段的线段特征进行融合处理,得到各个候选点的点特征,该过程可以基于线段处理网络来实现,线段处理网络的网络结构如图6所示,该线段处理网络包括多层感知机、第一注意力层、池化层和第二注意力层。
多层感知机用于对各个候选点对应线段的线段特征进行维度扩充,以将线段特征的维度增大,得到各个候选点对应线段的维度扩充后的线段特征,维度扩充后的线段特征的维度记为C,维度扩充的过程可以为至少一次。可选地,多层感知机包括多个全连接层,每一个全连接层用于对线段特征进行一次维度扩充。示例性的,线段特征包括7个维度的特征,多层感知机包括四个全连接层,这四个全连接层可以将7个维度的特征依次扩充成32个维度的特征、64个维度的特征、128个维度的特征和256个维度的特征,此时C=256。由于N个候选点中的每一个候选点对应L条线段,每一条线段对应的特征的维度由7扩大至256,因此,多层感知机的输入为N×L×7,输出为N×L×256。
可选地,将线段的维度扩充后的线段特征记为线段的第一线段特征。或者,多层感知机还可以包括批归一化(Batch Normalization,BN)层。批归一化层可以对各个候选点对应线段的维度扩充后的线段特征进行批归一化处理,得到各个候选点对应线段的批归一化处理后的线段特征,线段的批归一化处理后的线段特征也可以记为线段的第一线段特征。或者,多层感知机还可以包括非线性层,非线性层可以对各个候选点对应线段的批归一化处理后的线段特征进行非线性映射处理,得到各个候选点对应线段的非线性映射处理后的线段特征,线段的非线性映射处理后的线段特征也可以记为线段的第一线段特征。
第一注意力层可以是自注意力层(Self-Attention Layer,SA Layer)。第一注意力层可以基于各个候选点对应线段的第一线段特征,对同一候选点对应的不同线段的第一线段特征进行注意力处理,得到各个候选点对应线段的第二线段特征。示例性的,各个候选点对应线段的第一线段特征为N×L×256,其中,N为候选点的数量,L为一个候选点对应线段的数量,256表征一个线段的第一线段特征的维度。第一注意力层可以在第二个维度(即L的维度)上进行注意力处理,得到各个候选点对应线段的第二线段特征(N×L×256)。
池化层可以基于各个候选点对应线段的第二线段特征,对同一候选点对应的不同线段的第二线段特征进行平均池化处理,得到各个候选点对应线段的第三线段特征。示例性的,各个候选点对应线段的第二线段特征为N×L×256,N为候选点的数量,L为一个候选点对应线段的数量,256表征一个线段的第二线段特征的维度。池化层可以在第二个维度(即L的维度)上进行平均池化处理,得到各个候选点对应线段的第三线段特征(N×256)。
第二注意力层可以是自注意力层。第二注意力层可以基于各个候选点对应线段的第三线段特征,对不同候选点对应线段的第三线段特征进行注意力处理,得到各个候选点对应线段的第四线段特征。示例性的,各个候选点对应线段的第三线段特征为N×256,其中,N为候选点的数量,256表征一个候选点对应线段的第三线段特征的维度。第二注意力层可以在第一个维度(即N的维度)上进行注意力处理,得到各个候选点对应线段的第四线段特征(N×256,此时,N为候选点的数量,256表征一个候选点对应线段的第四线段特征的维度)。
本申请实施例中,可以将任一个候选点对应线段的第四段特征作为该候选点的点特征,从而得到各个候选点的点特征。对各个候选点的点特征进行分类处理,得到各个候选点为连接点的置信度和各个候选点的目标三维坐标。
可选地,将各个候选点的点特征输入连接点分类网络,由连接点分类网络确定并输出各个候选点为连接点的置信度。连接点分类网络由串联的M个网络块和输出层组成,任一个网络块包括依次串联的全连接层、BN层、非线性层和随机丢弃(Dropout)层,输出层包括全连接层。将各个候选点的点特征输入连接点分类网络,连接点分类网络对各个候选点的点特征进行多次降维处理,最终得到各个候选点为连接点的置信度。
示例性的,各个候选点的点特征包括512维的特征,则连接点分类网络可以将512维的特征依次降维成256维的特征、128维的特征、64维的特征、32维的特征和C维的特征。其中,连接点分类网络中C取值为2,表征连接点分类网络对于任一个候选点输出其对应的两个概率值,这两个概率值的和为1且分别表征该候选点为连接点的概率和该候选点不为连接点的概率。其中,该候选点为连接点的概率指的是本申请实施例中的“候选点为连接点的置信度”。
可选地,将各个候选点的点特征输入回归网络,由回归网络确定并输出各个候选点的目标三维坐标。回归网络和连接点分类网络的网络结构相类似,即回归网络也由串联的M个网络块和输出层组成,任一个网络块包括依次串联的全连接层、BN层、非线性层和Dropout层,输出层包括全连接层。将各个候选点的点特征输入回归网络,回归网络对各个候选点的点特征进行多次降维处理,最终得到各个候选点的目标三维坐标。
示例性的,各个候选点的点特征包括512维的特征,则回归网络可以将512维的特征依次降维成256维的特征、128维的特征、64维的特征、32维的特征和C维的特征。其中,回归网络中C取值为3,表征回归网络对于任一个候选点输出其对应的目标三维坐标。
接下来,从各个候选点为连接点的置信度中确定大于置信度阈值的置信度。本申请实施例不对置信度阈值做限定,示例性地,置信度阈值η0是根据人工经验设定的数值,如η0=0.8。
之后,基于大于置信度阈值的置信度所对应的候选点的目标三维坐标,确定多个连接点的三维坐标。本申请实施例中,将大于置信度阈值的置信度所对应的候选点标记为正样本,采用至少一次循环执行的方式,基于正样本的目标三维坐标确定多个连接点的三维坐标。
需要说明的是,若三维线云数据是归一化后的三维线云数据,并在该三维线云数据的基础上,得到了上述正样本,则可以对上述正样本的目标三维坐标进行反归一化,以将坐标恢复成原始尺寸。可选地,在对三维线云数据进行归一化的过程中,确定出了三维坐标平均值和范数最大值,此时,可以先将正样本的目标三维坐标乘以范数最大值,得到正样本乘以范数最大值后的目标三维坐标,再将正样本乘以范数最大值后的目标三维坐标加上三维坐标平均值,得到正样本反归一化后的目标三维坐标。将正样本反归一化后的目标三维坐标作为正样本的目标三维坐标,采用至少一次循环执行的方式,基于正样本的目标三维坐标确定多个连接点的三维坐标。
可选地,基于大于置信度阈值的置信度所对应的候选点的目标三维坐标,确定多个连接点的三维坐标,包括:第一步,将第一坐标集合中最大置信度对应的候选点的目标三维坐标移动至第二坐标集合中,得到移动后的第一坐标集合和移动后的第二坐标集合,第一坐标集合包括大于置信度阈值的置信度所对应的候选点的目标三维坐标;第二步,基于移动后的第一坐标集合中各个候选点的目标三维坐标和最大置信度对应的候选点的目标三维坐标,确定移动后的第一坐标集合中各个候选点分别和最大置信度对应的候选点的距离;第三步,基于移动后的第一坐标集合中各个候选点分别和最大置信度对应的候选点的距离,从移动后的第一坐标集合中过滤掉满足第三距离条件的距离所对应的候选点的目标三维坐标,得到过滤后的第一坐标集合;第四步,响应于过滤后的第一坐标集合为空集合,将第二坐标集合中各个候选点的目标三维坐标分别确定为多个连接点的三维坐标。
本申请实施例中,将由大于置信度阈值的置信度所对应的候选点的目标三维坐标组成的集合记为第一坐标集合B。由于第一坐标集合B中的目标三维坐标较为稠密,因此,需要对第一坐标集合B进行非极大值抑制,得到非极大值抑制结果,非极大值抑制结果记为第二坐标集合C。
在第一步中,从第一坐标集合B中选择最大置信度对应的候选点的目标三维坐标,本申请实施例中,可以将最大置信度对应的候选点记为候选点a,将a的目标三维坐标记为x。将x从第一坐标集合B移动至第二坐标集合C中,得到移动后的第一坐标集合B和移动后的第二坐标集合C。此时,移动后的第一坐标集合B中不包括x,而移动后的第二坐标集合C中包括x。
在第二步中,对于移动后的第一坐标集合B中的任一个候选点b,利用候选点b的目标三维坐标和候选点a的目标三维坐标,确定候选点b和候选点a的距离。通过这种方式,可以确定出移动后的第一坐标集合B中各个候选点分别和候选点a的距离。
在第三步中,对于移动后的第一坐标集合B中的任一个候选点b,当候选点b和候选点a的距离小于第四距离阈值r时,可以得出候选点b和候选点a的距离满足第三距离条件。此时,从移动后的第一坐标集合B中过滤掉候选点b的目标三维坐标,得到过滤后的第一坐标集合B。本申请实施例不对第四距离阈值r的取值做限定,示例性的,r=3。
在第四步中,当过滤后的第一坐标集合B为空集合时,将移动后的第二坐标集合C中各个候选点的目标三维坐标分别确定为多个连接点的三维坐标。
可选地,方法还包括:第五步,响应于过滤后的第一坐标集合不为空集合,将过滤后的第一坐标集合作为下一次循环的第一坐标集合,将移动后的第二坐标集合作为下一次循环的第二坐标集合,从将第一坐标集合中最大置信度对应的候选点的目标三维坐标移动至第二坐标集合中开始执行下一次循环,直至过滤后的第一坐标集合为空集合,将移动后的第二坐标集合中各个候选点的目标三维坐标分别确定为多个连接点的三维坐标。
在第五步中,当过滤后的第一坐标集合B不为空集合时,将过滤后的第一坐标集合B作为下一次循环的第一坐标集合B,将移动后的第二坐标集合C作为下一次循环的第二坐标集合C。接着,从第一步“将第一坐标集合中最大置信度对应的候选点的目标三维坐标移动至第二坐标集合中,得到移动后的第一坐标集合和移动后的第二坐标集合”开始执行循环,直至过滤后的第一坐标集合为空集合,也就是说,循环执行第一步、第二步和第三步,直至过滤后的第一坐标集合为空集合。此时,执行第四步“将移动后的第二坐标集合中各个候选点的目标三维坐标分别确定为多个连接点的三维坐标”。
步骤204,基于三维线云数据和多个连接点的三维坐标,确定各个连接点对的连接关系,连接点对包括两个连接点。
本申请实施例中,将每两个连接点看作一个连接点对。基于三维线云数据和任一个连接点对中各连接点的三维坐标,可以确定出这个连接点对中两个连接点之间的连接关系。
在一种可能实现方式中,基于三维线云数据和多个连接点的三维坐标,确定各个连接点对的连接关系,包括:基于多个连接点的三维坐标,从多个线段的三维数据中采样出各个连接点对应的线段的三维数据;基于各个连接点对应的线段的三维数据,确定各个连接点对的连接关系。
本申请实施例中,对于每一个连接点,可以采用最近线段采样的方式,基于该连接点的三维坐标,从三维线云数据中采样出该连接点对应的至少一个线段的三维数据,可以见上文有关“采用最近线段采样的方式,基于候选点的初始三维坐标,从三维线云数据中采样出该候选点对应的至少一个线段的三维数据”的描述,二者实现原理相类似,在此不再赘述。
本申请实施例中,假设连接点的数量为N个。对于每一个连接点,通过最近线段采样的方式,可以从三维线云数据中采样出该连接点对应的L条线段的三维数据,通过这种方式,共从三维线云数据中采样出N×L条线段的三维数据。其中,线段的三维数据包括线段两端端点的三维坐标,可以将线段两端端点的三维坐标和连接点与线段之间的距离确定为线段的线段特征,此时线段的线段特征包括7个维度的特征(即两个三维坐标和一个距离)。通过这种方式,可以得到N个连接点对应线段的线段特征,N×L×7。
本申请实施例中,可以将连接点进行两两组合,得到多个连接点对,N个连接点两两组合成
Figure BDA0003733522150000221
个连接点对。由于每一个连接点对包括两个连接点,而每一个连接点对应线段的线段特征为L×7,因此,每一个连接点对的初始特征可以表示为
Figure BDA0003733522150000222
对于任一个连接点对,可以利用其他连接点对的初始特征对该连接点对的初始特征进行更新,得到该连接点对的目标特征。该过程可以基于线段处理网络来实现,线段处理网络的网络结构如图6所示,该线段处理网络包括多层感知机、第一注意力层、池化层和第二注意力层。
多层感知机用于对各个连接点对的初始特征进行维度扩充,以将初始特征的维度增大,得到各个连接点对的维度扩充后的初始特征,维度扩充后的初始特征的维度记为C,维度扩充的过程可以为至少一次。可选地,多层感知机包括多个全连接层,每一个全连接层用于对初始特征进行一次维度扩充。示例性的,线段特征包括7个维度的特征,多层感知机包括四个全连接层,这四个全连接层可以将7个维度的特征依次扩充成32个维度的特征、64个维度的特征、128个维度的特征和256个维度的特征,此时C=256。因此,多层感知机的输入为各个连接点对的初始特征
Figure BDA0003733522150000231
输出为各个连接点对的维度扩充后的初始特征
Figure BDA0003733522150000232
可选地,将各个连接点对的维度扩充后的初始特征记为各个连接点对的第一特征。或者,多层感知机还可以包括批归一化(Batch Normalization,BN)层。批归一化层可以对各个连接点对的维度扩充后的初始特征进行批归一化处理,得到各个连接点对的批归一化处理后的初始特征,各个连接点对的批归一化处理后的初始特征也可以记为各个连接点对的第一特征。或者,多层感知机还可以包括非线性层,非线性层可以对各个连接点对的批归一化处理后的初始特征进行非线性映射处理,得到各个连接点对的非线性映射处理后的初始特征,各个连接点对的非线性映射处理后的初始特征也可以记为各个连接点对的第一特征。
第一注意力层可以是自注意力层。第一注意力层可以基于各个连接点对的第一特征,对同一连接点对所对应的不同线段的特征进行注意力处理,得到各个连接点对的第二特征。示例性的,各个连接点对的第一特征为
Figure BDA0003733522150000233
其中,N为连接点的数量,2L为一个连接点对所对应的线段的数量,256表征一个线段的特征的维度。第一注意力层可以在第二个维度(即2L的维度)上进行注意力处理,得到各个连接点对的第二特征
Figure BDA0003733522150000234
池化层可以基于各个连接点对的第二特征,对同一连接点对所对应的不同线段的特征进行平均池化处理,得到各个连接点对的第三特征。示例性的,各个连接点对的第二特征为
Figure BDA0003733522150000241
N为连接点的数量,2L为一个连接点对所对应的线段的数量,256表征一个线段的特征的维度。池化层可以在第二个维度(即2L的维度)上进行平均池化处理,得到各个连接点对的第三特征
Figure BDA0003733522150000242
第二注意力层可以是自注意力层。第二注意力层可以基于各个连接点对的第三特征,对不同连接点对所对应线段的特征进行注意力处理,得到各个连接点对的第四特征。示例性的,各个连接点对的第三特征为
Figure BDA0003733522150000243
其中,N为连接点的数量,256表征一个连接点对所对应线段的特征的维度。第二注意力层可以在第一个维度(即
Figure BDA0003733522150000244
的维度)上进行注意力处理,得到各个连接点对的第四特征
Figure BDA0003733522150000245
本申请实施例中,可以将任一个连接点对的第四特征作为该连接点对的目标特征,从而得到各个连接点对的目标特征。对各个连接点对的目标特征进行分类处理,得到各个连接点对的连接关系。
可选地,将各个连接点对的目标特征输入连接关系分类网络,由连接关系分类网络确定并输出各个连接点对的连接关系。连接关系分类网络由串联的M个网络块和输出层组成,任一个网络块包括依次串联的全连接层、BN层、非线性层和随机丢弃(Dropout)层,输出层包括全连接层。将各个连接点对的目标特征输入连接关系分类网络,连接关系分类网络对各个连接点对的目标特征进行多次降维处理,最终得到各个连接点对的连接关系。
示例性的,任一个连接点对的目标特征包括256维的特征,则连接关系分类网络可以将256维的特征依次降维成128维的特征、64维的特征、32维的特征和C维的特征。其中,连接关系分类网络中C取值可以为4,表征连接关系分类网络对于任一个连接点对输出其对应的四个概率值,这四个概率值的和为1。各个连接点对的目标特征
Figure BDA0003733522150000246
输入连接关系分类网络,由连接关系分类网络输出
Figure BDA0003733522150000247
表征
Figure BDA0003733522150000248
个连接点对各自对应的四个概率值。
在一种可能的实现方式中,这四个概率值分别对应连接点对在线框结构(也可以称为邻接矩阵)中的图距离。第一个概率值对应的图距离为0,第一个概率值表征连接点对中两个连接点为同一个连接点的概率。第二个概率值对应的图距离为1,第二个概率值表征连接点对中两个连接点直接相连的概率。第三个概率值对应的图距离为2,第三个概率值表征连接点对中两个连接点通过第三个连接点间接连接的概率。第四个概率值对应的图距离为大于2的正整数,第四个概率值表征连接点对中两个连接点通过至少两个连接点间接连接的概率。由上述内容可知,两个连接点对应的图距离与两个连接点直接/间接连接的所使用线段的数量相同。
可以理解的是,连接点对的连接关系可以少于或者多于上述四个概率值所对应的连接关系。可以基于几何约束来判断将连接点对的连接关系划分为几种概率值所对应的连接关系。而无论将连接点对的连接关系划分为几种概率值所对应的连接关系,均可以基于与“上述四个概率值所对应的连接关系”相类似的原理来实现,在此不再赘述。
示例性的,两个连接点之间的连接关系包括但不限于如下三种情况。
情况1:两个连接点为同一个连接点。
情况2:两个连接点直接连接。
情况3:两个连接点间接连接。例如,连接点A和连接点B直接连接,连接点B和连接点C直接连接。在连接点A不与连接点C直接连接的情况下,连接点A与连接点C是通过连接点B实现间接连接的,因此,连接点A与连接点C间接连接。可以理解的是,两个连接点之间可通过至少一个连接点间接连接。
步骤205,基于各个连接点对的连接关系和多个连接点的三维坐标,生成目标对象的线框结构。
本申请实施例中,可以基于多个连接点的三维坐标,在坐标系中确定出各个连接点的位置。在此基础上,基于任一个连接点对的连接关系,确定是否将该连接点对中两个连接点的位置进行连接,通过这种方式,可以将各个连接点中每两个连接点进行连接或者不连接,从而得到目标对象的线框结构。如图5所示,图5示出了(1)至(4)共四个目标对象的线框结构,在线框结构中,黑色的圆点表征连接点。其中,当两个连接点为同一个连接点时,可以将两个连接点合并为一个连接点。当两个连接点直接连接时,可以将两个连接点用线段直接连接。当两个连接点间接连接时,则不利用线段将这两个连接点连接。
在一种可能的实现方式中,基于各个连接点对的连接关系和多个连接点的三维坐标,生成目标对象的线框结构,包括:基于各个连接点对的连接关系,从多个连接点的三维坐标中过滤掉满足过滤条件的目标连接点的三维坐标,得到多个剩余连接点的三维坐标;基于每两个剩余连接点的连接关系和多个剩余连接点的三维坐标,生成目标对象的线框结构。
上文已提及,本申请实施例是基于大于置信度阈值的置信度所对应的候选点的目标三维坐标,确定多个连接点的三维坐标,也就是说,本申请实施例是从候选点中预测出连接点。由于预测出的连接点可能存在冗余现象,因此,需要基于各个连接点对的连接关系对连接点进行过滤,以过滤掉冗余的连接点。
示例性地,对于任一个连接点对,可以基于该连接点对的连接关系,确定该连接点对中是否存在满足过滤条件的目标连接点,并当存在时,将满足过滤条件的目标连接点的三维坐标过滤掉。其中,满足过滤条件的目标连接点可以包括但不限于如下实现方式C1至实现方式C2中的至少一项。
实现方式C1,各个连接点对的连接关系包括每两个连接点为同一个连接点的概率;基于各个连接点对的连接关系,从多个连接点的三维坐标中过滤掉满足过滤条件的目标连接点的三维坐标,包括:基于每两个连接点为同一个连接点的概率,选择满足第一概率条件的多个连接点对;对于满足第一概率条件的任一个连接点对,获取满足第一概率条件的任一个连接点对中各个连接点的置信度,连接点的置信度是连接点对应的候选点为连接点的置信度;基于满足第一概率条件的任一个连接点对中各个连接点的置信度,将最小置信度对应的连接点作为目标连接点,过滤掉目标连接点的三维坐标。
本申请实施例中,先从每两个连接点为同一个连接点的概率中选择满足第一概率条件的多个概率,从而确定出满足第一概率条件的各个概率所对应的连接点对,即确定出满足第一概率条件的多个连接点对。本申请实施例不对满足第一概率条件的概率做限定,示例性地,共有N个连接点,这N个连接点组成的连接点集合记为Vpred。对于连接点对p,q∈Vpred×Vpred,c1(p,q)表征连接点p和连接点q为同一个连接点的概率,若c1(p,q)大于第二概率阈值(如0.85),则c1(p,q)满足第一概率条件,此时,连接点p和连接点q为满足第一概率条件的连接点对。
接着,对于满足第一概率条件的任一个连接点对,获取该连接点对中各个连接点的置信度。其中,在步骤203的可能实现方式中已提及,可以基于各个候选点对应的线段的两端端点的三维坐标,确定各个候选点为连接点的置信度和各个候选点的目标三维坐标,并基于大于置信度阈值的置信度所对应的候选点的目标三维坐标,确定多个连接点的三维坐标,可以将第二坐标集合中各个候选点的目标三维坐标分别确定为多个连接点的三维坐标。因此,连接点是从候选点中筛选出来的,每一个连接点均存在其对应的候选点。本申请实施例中,可以确定连接点对应的候选点,将该候选点为连接点的置信度确定为连接点的置信度。
之后,对于满足第一概率条件的任一个连接点对,从该连接点对中各个连接点的置信度中确定最小置信度,将最小置信度对应的连接点确定为满足过滤条件的目标连接点,过滤掉目标连接点的三维坐标。示例性地,接上例,连接点p和连接点q为满足第一概率条件的连接点对。连接点p的置信度为c(p),连接点q的置信度为c(q),且c(p)>c(q),此时,可以过滤掉连接点q。按照这种方式,可以从Vpred中过滤掉部分连接点,此时得到的连接点集合记为V1
可选地,对于满足第一概率条件的多个连接点对,按照各连接点对为同一个连接点的概率,对各连接点对进行排序(如降序排序)。对于排序后的各连接点对,依次从各连接点对中过滤掉最小置信度对应的连接点。
实现方式C2,各个连接点对的连接关系包括每两个连接点直接连接的概率;基于各个连接点对的连接关系,从多个连接点的三维坐标中过滤掉满足过滤条件的目标连接点的三维坐标,包括:基于每两个连接点直接连接的概率,选择满足第二概率条件的多个连接点对;对于满足第二概率条件的多个连接点对中的任一个连接点,确定任一个连接点分别和各个其他连接点之间的距离,其他连接点是满足第二概率条件的多个连接点对中除任一个连接点之外的连接点;基于任一个连接点分别和各个其他连接点之间的距离,将满足第四距离条件的其他连接点作为目标连接点,过滤掉目标连接点的三维坐标。
本申请实施例中,先从每两个连接点直接连接的概率中选择满足第二概率条件的多个概率,从而确定出满足第二概率条件的各个概率所对应的连接点对,即确定出满足第二概率条件的多个连接点对。本申请实施例不对满足第二概率条件的概率做限定,示例性地,从连接点集合V1或者Vpred中挑选出满足第二概率条件的连接点对:{(p,q)|p,q∈V1×V1,c2(p,q)>η1},满足第二概率条件的连接点对p,q组成连接点集合V1。连接点对p,q满足第二概率条件即连接点p和连接点q直接连接的概率c2(p,q)大于第三概率阈值η1(超参数,其数值不做限定)。
接着,对于满足第二概率条件的多个连接点对中的任一个连接点,确定任一个连接点分别和各个其他连接点之间的距离。本申请实施例提供了两种距离的计算方式。第一种是根据任一个连接点v∈V1的三维坐标和其他连接点v′∈V1\{v}(即V1中除v之外的任一个连接点)的三维坐标,计算连接点v和其他连接点v′之间的欧氏距离。第二种是根据连接点v和各个其他连接点之间的连接关系,确定连接点v和其他连接点v′在邻接矩阵中的汉明距离。其中,下面说明两个连接点在邻接矩阵中的汉明距离的计算方式。
对于由满足第二概率条件的连接点对所组成的连接点集合V1,可以确定连接点集合V1中每两个连接点直接连接的概率。可以构建连接点矩阵,连接点矩阵中各行分别对应连接点集合V1中的各个连接点,且连接点矩阵中各列也分别对应连接点集合V1中的各个连接点。若两个连接点直接连接的概率大于第四概率阈值(第四概率阈值大于第三概率阈值),则在连接点矩阵中,将这两个连接点中一个连接点所在行和另一个连接点所在列的交叉位置处标记为第一数据(如1),若两个连接点直接连接的概率不大于第四概率阈值,则在连接点矩阵中,将这两个连接点中一个连接点所在行和另一个连接点所在列的交叉位置处标记为第二数据(如0)。通过这种方式,可以对连接点矩阵进行更新,得到更新后的连接点矩阵。以连接点集合V1中包括连接点A-D为例,通过上述方式,可以得到如下表1所示的更新后的连接点矩阵。
表1
连接点A 连接点B 连接点C 连接点D
连接点A 0 1 0 0
连接点B 1 0 1 0
连接点C 0 1 0 1
连接点D 0 0 1 0
从更新后的连接点矩阵中提取连接点v所在行的数据和其他连接点v′所在行的数据,对两个数据进行异或运算,得到连接点v和其他连接点v′在邻接矩阵中的汉明距离。
通过上述方式,可以得到连接点v分别和各个其他连接点之间的欧式距离和/或汉明距离。若连接点v和其他连接点v′之间的欧式距离小于第五距离阈值η2(超参数,其数值不做限定),则其他连接点v′为满足第四距离条件的其他连接点。或者,若连接点v和其他连接点v′在邻接矩阵中的汉明距离小于第六距离阈值(其数值不做限定,示例性地,第六距离阈值为2),则其他连接点v′为满足第四距离条件的其他连接点。或者,连接点v和其他连接点v′之间的欧式距离小于第五距离阈值η2,且在邻接矩阵中的汉明距离小于第六距离阈值,则其他连接点v′为满足第四距离条件的其他连接点。之后,将满足第四距离条件的其他连接点作为满足过滤条件的目标连接点,过滤掉目标连接点的三维坐标。这种方式也称为图结构剪枝的方式,按照这种方式,可以从V1中过滤掉部分连接点,此时得到的连接点集合记为V2
可选地,对于连接点集合V1中的各连接点,按照各连接点的置信度,对各连接点进行排序(如降序排序)。对于排序后的各连接点,依次按照图结构剪枝的方式,基于任一个连接点分别和各个其他连接点之间的距离,过滤掉满足第四距离条件的其他连接点。
本申请实施例中,按照实现方式C1或者实现方式C2,可以从多个连接点的三维坐标中过滤掉目标连接点的三维坐标。在过滤时,还可以将实现方式C1和实现方式C2进行结合,且实现方式C1和实现方式C2的先后顺序不做限定。例如,多个连接点组成初始连接点集合(对应于上文的Vpred),先采用实现方式C1,从初始连接点集合中各个连接点的三维坐标中过滤掉目标连接点的三维坐标,得到第一连接点集合(对应于上文的V1),再采用实现方式C2,从第一连接点集合中各个连接点的三维坐标中过滤掉目标连接点的三维坐标,得到剩余连接点集合(对应于上文的V2)。
本申请实施例中,过滤掉目标连接点的三维坐标之后,得到多个剩余连接点的三维坐标。可以基于每两个剩余连接点的连接关系和多个剩余连接点的三维坐标,生成目标对象的线框结构。
在一种可能的实现方式中,基于每两个剩余连接点的连接关系和多个剩余连接点的三维坐标,生成目标对象的线框结构,包括:基于每两个剩余连接点的连接关系和多个剩余连接点的三维坐标,生成初始线框结构;对于初始线框结构的任一个边,确定任一个边和各个其他边之间的距离,其他边是初始线框结构中除任一个边之外的边;基于任一个边和各个其他边之间的距离,过滤掉满足第五距离条件的其他边,得到目标对象的线框结构。
本申请实施例中,基于多个剩余连接点的三维坐标,定位出各个剩余连接点。在步骤204中已确定了各个连接点对的连接关系,因此,由于剩余连接点是从各连接点对中过滤掉目标连接点之后的连接点,因此,可以确定出每两个剩余连接点的连接关系。两个剩余连接点之间的连接关系包括两个剩余连接点直接连接的概率。
若两个剩余连接点直接连接的概率c2(p,q)大于第五概率阈值η1(此处的第五概率阈值等于第三概率阈值,在应用时,二者也可以不相等,例如,第五概率阈值大于第三概率阈值),则两个剩余连接点之间生成边。通过这种方式,可以将各个剩余连接点利用边来连接,得到初始线框结构。初始线框结构中所有的边可以表示为边集合E={(p,q)|p,q∈V2×V2,c2(p,q)>η1},其中,两个剩余连接点p,q均属于剩余连接点集合V2,且剩余连接点],q之间存在边。
对于初始线框结构的任一个边e∈E,利用边e两端两个剩余连接点的三维坐标和其他边e′∈E\{e}(即边集合E中除边e之外的边)两端两个剩余连接点的三维坐标,计算边e和其他边e′之间的距离Dist(e,e′)。在计算该距离时,先利用两个边各自的一个剩余连接点的三维坐标计算第一距离值,再利用两个边各自的另一个剩余连接点的三维坐标计算第二距离值,将第一距离值和第二距离值之和作为两个边之间的距离。
示例性地,边e两端为两个剩余连接点A和B,其他边e′两端为两个剩余连接点C和D,则基于剩余连接点A的三维坐标和剩余连接点C的三维坐标计算第一距离值,基于剩余连接点B的三维坐标和剩余连接点D的三维坐标计算第二距离值,将第一距离值和第二距离值之和,作为边e和其他边e′之间的距离Dist(e,e′)。
可选地,利用一个边的一个剩余连接点的三维坐标和另一个边的两个剩余连接点的三维坐标,依次计算出第三距离值和第四距离值。利用一个边的另一个剩余连接点的三维坐标和另一个边的两个剩余连接点的三维坐标,依次计算出第五距离值和第六距离值。从第三距离值和第六距离值的和值、第四距离值和第五距离值的和值中,确定最小和值作为这两个边之间的距离。
示例性地,边e两端为两个剩余连接点A和B,其他边e′两端为两个剩余连接点C和D,则利用剩余连接点A的三维坐标和剩余连接点C、D的三维坐标,依次计算剩余连接点A和剩余连接点C之间的第三距离值、剩余连接点A和剩余连接点D之间的第四距离值。利用剩余连接点B的三维坐标和剩余连接点C、D的三维坐标,依次计算剩余连接点B和剩余连接点C之间的第五距离值、剩余连接点B和剩余连接点D之间的第六距离值。计算第三距离值和第六距离值的和值、第四距离值和第五距离值的和值,从中确定最小和值作为边e和其他边e′之间的距离。
通过上述方式,可以得到边e分别和各个其他边之间的距离。若边e和其他边e′之间的距离小于第七距离阈值η3(超参数,其数值不做限定),则其他边e′为满足第五距离条件的其他边,过滤掉其他边e′。这种方式也称为线的非极大值抑制的方式,按照这种方式,可以从初始线框结构中过滤掉部分边,得到目标对象的线框结构,或者,在按照这种方式过滤掉部分边之后,再过滤掉孤立的边,得到目标对象的线框结构。
可选地,对初始线框结构中的各个边,按照各边两端两个剩余连接点直接连接的概率,对各个边进行排序(如降序排序)。对于排序后的各个边,按照线的非极大值抑制的方式,依次确定任一个边和各个其他边之间的距离,并基于这些距离过滤掉满足第五距离条件的其他边,得到目标对象的线框结构。
目标对象的线框结构是一个由多个连接点和多个边(边指的是两个连接点之间的边)组成的三维结构。由于连接点和边可以构成面,因此,目标对象的线框结构也可视为由多个面组成的三维结构。可以获取线框结构上各个面对应的纹理图,线框结构上任一个面对应的纹理图描述了目标对象上该面的纹理信息。对于线框结构上的任一个面,将该面对应的纹理图贴在该面上,得到纹理面,目标对象的三维模型上包括各个纹理面。也即通过获取纹理面,实现了基于目标对象的线框结构构建目标对象的三维模型。
得到的三维模型可应用在游戏、城市重建、动画等场景中。由于本申请实施例中线框结构的生成效率和精度较高,因此,可以实现快速生成较为逼真的三维模型(如游戏地图模型、建筑物模型、人物模型等),提高了三维模型的生成效率。
上述方法中多张图像的任两张图像包括从不同拍摄视角拍摄的目标对象。相较于利用激光扫描目标对象时对激光的高精度要求或者目标对象的三维模型的获取难度和高精度要求来讲,图像的获取难度低且图像中目标对象的精度高,因此,通过多张图像确定三维线云数据时,不仅降低了三维线云数据的获取难度,还能保证三维线云数据的精度。之后,通过三维线云数据确定多个连接点的三维坐标,并基于三维线云数据和多个连接点的三维坐标,确定各个连接点对的连接关系,以进一步生成目标对象的线框结构,降低了线框结构的获取难度,提高了线框结构的生成效率和精度。
上文从方法步骤的角度阐述了本申请实施例提供的线框结构的生成方法,下面来系统的描述该线框结构的生成方法。请参见图7,图7是本申请实施例提供的一种线框结构的生成示意图。
在本申请实施例中,先获取多视角图像,多视角图像指的是步骤201提及的多张图像,任两张图像中包括从不同拍摄视角拍摄的目标对象。接着,一方面对多视角图像进行图像位姿估计,通过图像位姿估计,可以确定出各图像的内参和外参,图像位姿估计的内容可以见方式B1的相关描述。另一方面对多视角图像进行图像线段提取,以从多视角图像中提取出各张图像中多个线段的二维数据,图像线段提取的内容可以见方式A1或者方式A2的相关描述。之后,基于各图像的内参和外参、各张图像中多个线段的二维数据进行三维线段生成,得到多个线段的三维数据,三维线段生成的内容可以见上文有关“对各张图像中多个线段的二维数据进行匹配,得到多个线段集合,基于各个线段集合分别确定多个线段的三维数据”的相关描述。本申请实施例中,通过对多个线段的三维数据进行归一化,得到三维线云数据,可以见上文提及的“对三维线云数据进行归一化”的相关描述。
在得到三维线云数据之后,一方面,三维线云数据输入连接点估计网络,得到连接点估计结果,另一方面,连接点估计结果和三维线云数据输入连接关系估计网络,得到连接关系估计结果。接着,对连接点估计结果和连接关系估计结果进行后处理,得到线框结构。详细内容可参见图8,图8是本申请实施例提供的一种对三维线云数据的处理示意图。
连接点估计网络对三维线云数据做如下处理:先对三维线云数据进行候选点采样,以从多个线段的两端端点的三维坐标中采样出多个候选点的初始三维坐标。基于多个候选点的初始三维坐标,对三维线云数据进行最近线段采样,以采样出各个候选点对应的线段的两端端点的三维坐标。接着,基于各个候选点对应的线段的两端端点的三维坐标确定各个候选点对应线段的线段特征,以利用线段处理网络对各个候选点对应线段的线段特征进行融合处理,得到各个候选点的点特征。一方面,将各个候选点的点特征输入连接点分类网络,由连接点分类网络确定并输出各个候选点为连接点的置信度,另一方面,将各个候选点的点特征输入回归网络,由回归网络确定并输出各个候选点的目标三维坐标。之后,基于各个候选点为连接点的置信度和各个候选点的目标三维坐标,确定多个连接点的三维坐标,即得到连接点估计结果。
连接关系估计网络对连接点估计结果和三维线云数据做如下处理:先基于多个连接点的三维坐标,对三维线云数据进行最近线段采样,以采样出各个连接点对应的线段的三维数据。接着,基于各个连接点对应的线段的三维数据,确定各个连接点对应线段的线段特征,将连接点进行两两组合,得到多个连接点对,每一个连接点对中两个连接点对应线段的线段特征看作该连接点对的初始特征。之后,利用线段处理网络对各连接点对的初始特征进行更新,得到各连接点对的目标特征。将各个连接点对的目标特征输入连接关系分类网络,由连接关系分类网络确定并输出各个连接点对的连接关系,得到连接关系估计结果。
本申请实施例中,连接点估计结果包括多个连接点的三维坐标,连接关系估计结果包括各个连接点对的连接关系。对连接点估计结果和连接关系估计结果进行后处理,得到线框结构的内容,可以见上文提及的“基于各个连接点对的连接关系和多个连接点的三维坐标,生成目标对象的线框结构”的相关描述,在此不再赘述。
通过上述方式,本申请实施例可以实现基于多视角图像重建得到三维线云数据,并基于三维线云数据预测得到三维的线框结构,实现了高效快速地获取能直接使用的、简洁的三维线框模型。
请参见下表2,表2是本申请实施例提供的一种连接点估计结果的效果。其中,正样本是从多个候选点中确定出的个别候选点,任一正样本为连接点的置信度大于置信度阈值0.5(即α=0.5),且每两个正样本之间的距离大于距离阈值10(即半径r=10)。多个候选点中除正样本之外的候选点标记为负样本,可以基于正样本的数量和负样本的数量计算出准确率、召回率和精确度。
此外,还可以计算出属于真阳性(预测为连接点且实际也为连接点)的连接点之间的欧几里得范数(也可称为L2距离),同时,计算出属于真阳性或假阴性(预测为非连接点但实际为连接点)的连接点之间的L2距离。在此基础上,统计出连接点的召回率。
表2
Figure BDA0003733522150000341
由表2可以看出,基于正样本的数量和负样本的数量计算出的准确率、召回率和精确度均较高,且真阳性对应的L2距离和真阳性+假阴性对应的L2距离均大于10,连接点召回率也较高。
请参见下表3,表3是本申请实施例提供的一种连接关系估计结果的效果。其中,连接关系估计结果中两个连接点直接连接的概率大于阈值0.3(即α=0.3)时,这两个连接点可以组成边,当两条边之间的距离大于阈值20(即r=20)时,这两条边可以作为线框结构上的两条边。在此基础上,统计连接关系估计结果的准确率、召回率和F分数(也可以称为F-score)。
表3
Figure BDA0003733522150000342
由表3可以看出,连接关系估计结果的准确率、召回率和F分数均较高,说明通过上述方式得到的线框结构具有较高的准确性。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的多张图像都是在充分授权的情况下获取的。
图9所示为本申请实施例提供的一种线框结构的生成装置的结构示意图,如图9所示,该装置包括如下内容。
获取模块901,用于获取多张图像,任两张图像中包括从不同拍摄视角拍摄的目标对象;
确定模块902,用于基于多张图像确定三维线云数据,三维线云数据包括多个线段的三维数据;
确定模块902,还用于基于三维线云数据确定多个连接点的三维坐标,连接点是至少三个相交线段的交点,相交线段为多个线段中与两个面相交的线段;
确定模块902,还用于基于三维线云数据和多个连接点的三维坐标,确定各个连接点对的连接关系,连接点对包括两个连接点;
生成模块903,用于基于各个连接点对的连接关系和多个连接点的三维坐标,生成目标对象的线框结构。
在一种可能的实现方式中,确定模块902,用于对多张图像中的目标对象进行线段提取,得到各张图像中多个线段的二维数据;对各张图像中多个线段的二维数据进行匹配,得到多个线段集合,线段集合包括来自不同图像且相互匹配的线段的二维数据;基于多个线段集合确定多个线段的三维数据。
在一种可能的实现方式中,确定模块902,用于对于任一个线段集合,从任一个线段集合中选择第一参考线段的二维数据和第二参考线段的二维数据;确定第一参考线段所在图像的内参和外参、第二参考线段所在图像的内参和外参,图像的内参用于描述将拍摄目标对象的相机的相机坐标系中的点变换到图像中的点时的变换方式,图像的外参用于描述将世界坐标系中的点变换到相机坐标系中的点时的变换方式;基于第一参考线段所在图像的内参和外参、第二参考线段所在图像的内参和外参,将第一参考线段的二维数据和第二参考线段的二维数据合并为一个线段的三维数据。
在一种可能的实现方式中,线段的三维数据包括线段的两端端点的三维坐标,确定模块902,用于从多个线段的两端端点的三维坐标中采样出多个候选点的初始三维坐标;基于多个候选点的初始三维坐标,从多个线段的两端端点的三维坐标中采样出各个候选点对应的线段的两端端点的三维坐标;基于各个候选点对应的线段的两端端点的三维坐标,确定多个连接点的三维坐标。
在一种可能的实现方式中,多个候选点包括第一候选点;确定模块902,用于基于第一端点的三维坐标和各个第二端点的三维坐标,确定第一端点和各个第二端点之间的距离,第一端点是多个线段的两端端点中的任一个端点,第二端点是多个线段的两端端点中除第一端点之外的端点;基于第一端点和各个第二端点之间的距离,确定满足第一距离条件的距离所对应的第二端点的数量;响应于满足第一距离条件的距离所对应的第二端点的数量满足数量条件,将第一端点的三维坐标作为第一候选点的初始三维坐标。
在一种可能的实现方式中,确定模块902,还用于对于多个线段的两端端点中除第一候选点之外的任一个剩余端点,基于任一个剩余端点的三维坐标和第一候选点的初始三维坐标,确定任一个剩余端点和第一候选点之间的距离;基于各个剩余端点分别和第一候选点之间的距离,确定大于参考距离的距离所对应的剩余端点的三维坐标为第二候选点的初始三维坐标,将第二候选点作为多个候选点中的候选点。
在一种可能的实现方式中,确定模块902,用于对于任一个候选点,基于任一个候选点的初始三维坐标和多个线段的两端端点的三维坐标,确定任一个候选点分别和多个线段之间的距离;基于任一个候选点分别和多个线段之间的距离,确定满足第二距离条件的线段的两端端点的三维坐标为任一个候选点对应的线段的两端端点的三维坐标。
在一种可能的实现方式中,确定模块902,用于基于各个候选点对应的线段的两端端点的三维坐标,确定各个候选点为连接点的置信度和各个候选点的目标三维坐标;从各个候选点为连接点的置信度中确定大于置信度阈值的置信度;基于大于置信度阈值的置信度所对应的候选点的目标三维坐标,确定多个连接点的三维坐标。
在一种可能的实现方式中,确定模块902,用于将第一坐标集合中最大置信度对应的候选点的目标三维坐标移动至第二坐标集合中,得到移动后的第一坐标集合和移动后的第二坐标集合,第一坐标集合包括大于置信度阈值的置信度所对应的候选点的目标三维坐标;基于移动后的第一坐标集合中各个候选点的目标三维坐标和最大置信度对应的候选点的目标三维坐标,确定移动后的第一坐标集合中各个候选点分别和最大置信度对应的候选点的距离;基于移动后的第一坐标集合中各个候选点分别和最大置信度对应的候选点的距离,从移动后的第一坐标集合中过滤掉满足第三距离条件的距离所对应的候选点的目标三维坐标,得到过滤后的第一坐标集合;响应于过滤后的第一坐标集合为空集合,将移动后的第二坐标集合中各个候选点的目标三维坐标分别确定为多个连接点的三维坐标。
在一种可能的实现方式中,确定模块902,还用于响应于过滤后的第一坐标集合不为空集合,将过滤后的第一坐标集合作为下一次循环的第一坐标集合,将移动后的第二坐标集合作为下一次循环的第二坐标集合,从将第一坐标集合中最大置信度对应的候选点的目标三维坐标移动至第二坐标集合中开始执行下一次循环,直至过滤后的第一坐标集合为空集合,将移动后的第二坐标集合中各个候选点的目标三维坐标分别确定为多个连接点的三维坐标。
在一种可能的实现方式中,确定模块902,用于基于多个连接点的三维坐标,从多个线段的三维数据中采样出各个连接点对应的线段的三维数据;基于各个连接点对应的线段的三维数据,确定各个连接点对的连接关系。
在一种可能的实现方式中,生成模块903,用于基于各个连接点对的连接关系,从多个连接点的三维坐标中过滤掉满足过滤条件的目标连接点的三维坐标,得到多个剩余连接点的三维坐标;基于每两个剩余连接点的连接关系和多个剩余连接点的三维坐标,生成目标对象的线框结构。
在一种可能的实现方式中,各个连接点对的连接关系包括每两个连接点为同一个连接点的概率;生成模块903,用于基于每两个连接点为同一个连接点的概率,选择满足第一概率条件的多个连接点对;对于满足第一概率条件的任一个连接点对,获取满足第一概率条件的任一个连接点对中各个连接点的置信度,连接点的置信度是连接点对应的候选点为连接点的置信度;基于满足第一概率条件的任一个连接点对中各个连接点的置信度,将最小置信度对应的连接点作为目标连接点,过滤掉目标连接点的三维坐标。
在一种可能的实现方式中,各个连接点对的连接关系包括每两个连接点直接连接的概率;生成模块903,用于基于每两个连接点直接连接的概率,选择满足第二概率条件的多个连接点对;对于满足第二概率条件的多个连接点对中的任一个连接点,确定任一个连接点分别和各个其他连接点之间的距离,其他连接点是满足第二概率条件的多个连接点对中除任一个连接点之外的连接点;基于任一个连接点分别和各个其他连接点之间的距离,将满足第四距离条件的其他连接点作为目标连接点,过滤掉目标连接点的三维坐标。
在一种可能的实现方式中,生成模块903,用于基于每两个剩余连接点的连接关系和多个剩余连接点的三维坐标,生成初始线框结构;对于初始线框结构的任一个边,确定任一个边和各个其他边之间的距离,其他边是初始线框结构中除任一个边之外的边;基于任一个边和各个其他边之间的距离,过滤掉满足第五距离条件的其他边,得到目标对象的线框结构。
上述装置中,多张图像的任两张图像包括从不同拍摄视角拍摄的目标对象。相较于利用激光扫描目标对象时对激光的高精度要求或者目标对象的三维模型的获取难度和高精度要求来讲,图像的获取难度低且图像中目标对象的精度高,因此,通过多张图像确定三维线云数据时,不仅降低了三维线云数据的获取难度,还能保证三维线云数据的精度。之后,通过三维线云数据确定多个连接点的三维坐标,并基于三维线云数据和多个连接点的三维坐标,确定各个连接点对的连接关系,以进一步生成目标对象的线框结构,降低了线框结构的获取难度,提高了线框结构的生成效率和精度。
应理解的是,上述图9提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其实现过程详见方法实施例,这里不再赘述。
图10示出了本申请一个示例性实施例提供的终端设备1000的结构框图。该终端设备1000包括有:处理器1001和存储器1002。
处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器1001所执行以实现本申请中方法实施例提供的线框结构的生成方法。
在一些实施例中,终端设备1000还可选包括有:外围设备接口1003和至少一个外围设备。处理器1001、存储器1002和外围设备接口1003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1003相连。具体地,外围设备包括:射频电路1004、显示屏1005、摄像头组件1006、音频电路1007和电源1008中的至少一种。
外围设备接口1003可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1001和存储器1002。在一些实施例中,处理器1001、存储器1002和外围设备接口1003被集成在同一芯片或电路板上;在一些其他实施例中,处理器1001、存储器1002和外围设备接口1003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1004用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1004通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1004将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1004包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1004可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1004还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1005用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1005是触摸显示屏时,显示屏1005还具有采集在显示屏1005的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1001进行处理。此时,显示屏1005还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1005可以为一个,设置在终端设备1000的前面板;在另一些实施例中,显示屏1005可以为至少两个,分别设置在终端设备1000的不同表面或呈折叠设计;在另一些实施例中,显示屏1005可以是柔性显示屏,设置在终端设备1000的弯曲表面上或折叠面上。甚至,显示屏1005还可以设置成非矩形的不规则图形,也即异形屏。显示屏1005可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1006用于采集图像或视频。可选地,摄像头组件1006包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1006还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1007可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1001进行处理,或者输入至射频电路1004以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端设备1000的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1001或射频电路1004的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1007还可以包括耳机插孔。
电源1008用于为终端设备1000中的各个组件进行供电。电源1008可以是交流电、直流电、一次性电池或可充电电池。当电源1008包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端设备1000还包括有一个或多个传感器1009。该一个或多个传感器1009包括但不限于:加速度传感器1011、陀螺仪传感器1012、压力传感器1013、光学传感器1014以及接近传感器1015。
加速度传感器1011可以检测以终端设备1000建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1011可以用于检测重力加速度在三个坐标轴上的分量。处理器1001可以根据加速度传感器1011采集的重力加速度信号,控制显示屏1005以横向视图或纵向视图进行用户界面的显示。加速度传感器1011还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1012可以检测终端设备1000的机体方向及转动角度,陀螺仪传感器1012可以与加速度传感器1011协同采集用户对终端设备1000的3D动作。处理器1001根据陀螺仪传感器1012采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1013可以设置在终端设备1000的侧边框和/或显示屏1005的下层。当压力传感器1013设置在终端设备1000的侧边框时,可以检测用户对终端设备1000的握持信号,由处理器1001根据压力传感器1013采集的握持信号进行左右手识别或快捷操作。当压力传感器1013设置在显示屏1005的下层时,由处理器1001根据用户对显示屏1005的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器1014用于采集环境光强度。在一个实施例中,处理器1001可以根据光学传感器1014采集的环境光强度,控制显示屏1005的显示亮度。具体地,当环境光强度较高时,调高显示屏1005的显示亮度;当环境光强度较低时,调低显示屏1005的显示亮度。在另一个实施例中,处理器1001还可以根据光学传感器1014采集的环境光强度,动态调整摄像头组件1006的拍摄参数。
接近传感器1015,也称距离传感器,通常设置在终端设备1000的前面板。接近传感器1015用于采集用户与终端设备1000的正面之间的距离。在一个实施例中,当接近传感器1015检测到用户与终端设备1000的正面之间的距离逐渐变小时,由处理器1001控制显示屏1005从亮屏状态切换为息屏状态;当接近传感器1015检测到用户与终端设备1000的正面之间的距离逐渐变大时,由处理器1001控制显示屏1005从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图10中示出的结构并不构成对终端设备1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图11为本申请实施例提供的服务器的结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器1101和一个或多个的存储器1102,其中,该一个或多个存储器1102中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器1101加载并执行以实现上述各个方法实施例提供的线框结构的生成方法,示例性的,处理器1101为CPU。当然,该服务器1100还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器1100还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以使电子设备实现上述任一种线框结构的生成方法。
可选地,上述计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-OnlyMemory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以使电子设备实现上述任一种线框结构的生成方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (19)

1.一种线框结构的生成方法,其特征在于,所述方法包括:
获取多张图像,任两张图像中包括从不同拍摄视角拍摄的目标对象;
基于所述多张图像确定三维线云数据,所述三维线云数据包括多个线段的三维数据;
基于所述三维线云数据确定多个连接点的三维坐标,所述连接点是至少三个相交线段的交点,所述相交线段为所述多个线段中与两个面相交的线段;
基于所述三维线云数据和所述多个连接点的三维坐标,确定各个连接点对的连接关系,所述连接点对包括两个连接点;
基于所述各个连接点对的连接关系和所述多个连接点的三维坐标,生成所述目标对象的线框结构。
2.根据权利要求1所述的方法,其特征在于,所述基于所述多张图像确定三维线云数据,包括:
对所述多张图像中的目标对象进行线段提取,得到各张图像中多个线段的二维数据;
对所述各张图像中多个线段的二维数据进行匹配,得到多个线段集合,所述线段集合包括来自不同图像且相互匹配的线段的二维数据;
基于所述多个线段集合确定所述多个线段的三维数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述多个线段集合确定所述多个线段的三维数据,包括:
对于任一个线段集合,从所述任一个线段集合中选择第一参考线段的二维数据和第二参考线段的二维数据;
确定所述第一参考线段所在图像的内参和外参、所述第二参考线段所在图像的内参和外参,所述图像的内参用于描述将拍摄所述目标对象的相机的相机坐标系中的点变换到所述图像中的点时的变换方式,所述图像的外参用于描述将世界坐标系中的点变换到所述相机坐标系中的点时的变换方式;
基于所述第一参考线段所在图像的内参和外参、所述第二参考线段所在图像的内参和外参,将所述第一参考线段的二维数据和所述第二参考线段的二维数据合并为一个线段的三维数据。
4.根据权利要求1所述的方法,其特征在于,所述线段的三维数据包括所述线段的两端端点的三维坐标,所述基于所述三维线云数据确定多个连接点的三维坐标,包括:
从所述多个线段的两端端点的三维坐标中采样出多个候选点的初始三维坐标,基于所述多个候选点的初始三维坐标,从所述多个线段的两端端点的三维坐标中采样出各个候选点对应的线段的两端端点的三维坐标;
基于所述各个候选点对应的线段的两端端点的三维坐标,确定所述多个连接点的三维坐标。
5.根据权利要求4所述的方法,其特征在于,所述多个候选点包括第一候选点;所述从所述多个线段的两端端点的三维坐标中采样出多个候选点的初始三维坐标,包括:
基于第一端点的三维坐标和各个第二端点的三维坐标,确定所述第一端点和所述各个第二端点之间的距离,所述第一端点是所述多个线段的两端端点中的任一个端点,所述第二端点是所述多个线段的两端端点中除所述第一端点之外的端点;
基于所述第一端点和所述各个第二端点之间的距离,确定满足第一距离条件的距离所对应的第二端点的数量;
响应于所述满足第一距离条件的距离所对应的第二端点的数量满足数量条件,将所述第一端点的三维坐标作为所述第一候选点的初始三维坐标。
6.根据权利要求5所述的方法,其特征在于,所述将所述第一端点的三维坐标作为所述第一候选点的初始三维坐标之后,还包括:
对于所述多个线段的两端端点中除所述第一候选点之外的任一个剩余端点,基于所述任一个剩余端点的三维坐标和所述第一候选点的初始三维坐标,确定所述任一个剩余端点和所述第一候选点之间的距离;
基于各个剩余端点分别和所述第一候选点之间的距离,确定大于参考距离的距离所对应的剩余端点的三维坐标为第二候选点的初始三维坐标,将所述第二候选点作为所述多个候选点中的候选点。
7.根据权利要求4所述的方法,其特征在于,所述基于所述多个候选点的初始三维坐标,从所述多个线段的两端端点的三维坐标中采样出各个候选点对应的线段的两端端点的三维坐标,包括:
对于任一个候选点,基于所述任一个候选点的初始三维坐标和所述多个线段的两端端点的三维坐标,确定所述任一个候选点分别和所述多个线段之间的距离;
基于所述任一个候选点分别和所述多个线段之间的距离,确定满足第二距离条件的线段的两端端点的三维坐标为所述任一个候选点对应的线段的两端端点的三维坐标。
8.根据权利要求4所述的方法,其特征在于,所述基于所述各个候选点对应的线段的两端端点的三维坐标,确定所述多个连接点的三维坐标,包括:
基于所述各个候选点对应的线段的两端端点的三维坐标,确定所述各个候选点为连接点的置信度和所述各个候选点的目标三维坐标;
从所述各个候选点为连接点的置信度中确定大于置信度阈值的置信度;
基于所述大于置信度阈值的置信度所对应的候选点的目标三维坐标,确定所述多个连接点的三维坐标。
9.根据权利要求8所述的方法,其特征在于,所述基于所述大于置信度阈值的置信度所对应的候选点的目标三维坐标,确定所述多个连接点的三维坐标,包括:
将第一坐标集合中最大置信度对应的候选点的目标三维坐标移动至第二坐标集合中,得到移动后的第一坐标集合和移动后的第二坐标集合,所述第一坐标集合包括所述大于置信度阈值的置信度所对应的候选点的目标三维坐标;
基于所述移动后的第一坐标集合中各个候选点的目标三维坐标和所述最大置信度对应的候选点的目标三维坐标,确定所述移动后的第一坐标集合中各个候选点分别和所述最大置信度对应的候选点的距离;
基于所述移动后的第一坐标集合中各个候选点分别和所述最大置信度对应的候选点的距离,从所述移动后的第一坐标集合中过滤掉满足第三距离条件的距离所对应的候选点的目标三维坐标,得到过滤后的第一坐标集合;
响应于所述过滤后的第一坐标集合为空集合,将所述移动后的第二坐标集合中各个候选点的目标三维坐标分别确定为所述多个连接点的三维坐标。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
响应于所述过滤后的第一坐标集合不为所述空集合,将所述过滤后的第一坐标集合作为下一次循环的第一坐标集合,将所述移动后的第二坐标集合作为下一次循环的第二坐标集合,从所述将第一坐标集合中最大置信度对应的候选点的目标三维坐标移动至第二坐标集合中开始执行下一次循环,直至所述过滤后的第一坐标集合为所述空集合,将所述移动后的第二坐标集合中各个候选点的目标三维坐标分别确定为所述多个连接点的三维坐标。
11.根据权利要求1所述的方法,其特征在于,所述基于所述三维线云数据和所述多个连接点的三维坐标,确定各个连接点对的连接关系,包括:
基于所述多个连接点的三维坐标,从所述多个线段的三维数据中采样出各个连接点对应的线段的三维数据;
基于所述各个连接点对应的线段的三维数据,确定各个连接点对的连接关系。
12.根据权利要求1所述的方法,其特征在于,所述基于所述各个连接点对的连接关系和所述多个连接点的三维坐标,生成所述目标对象的线框结构,包括:
基于所述各个连接点对的连接关系,从所述多个连接点的三维坐标中过滤掉满足过滤条件的目标连接点的三维坐标,得到多个剩余连接点的三维坐标;
基于每两个剩余连接点的连接关系和所述多个剩余连接点的三维坐标,生成所述目标对象的线框结构。
13.根据权利要求12所述的方法,其特征在于,所述各个连接点对的连接关系包括每两个连接点为同一个连接点的概率;所述基于所述各个连接点对的连接关系,从所述多个连接点的三维坐标中过滤掉满足过滤条件的目标连接点的三维坐标,包括:
基于所述每两个连接点为同一个连接点的概率,选择满足第一概率条件的多个连接点对;
对于所述满足第一概率条件的任一个连接点对,获取所述满足第一概率条件的任一个连接点对中各个连接点的置信度,所述连接点的置信度是所述连接点对应的候选点为连接点的置信度;
基于所述满足第一概率条件的任一个连接点对中各个连接点的置信度,将最小置信度对应的连接点作为所述目标连接点,过滤掉所述目标连接点的三维坐标。
14.根据权利要求12所述的方法,其特征在于,所述各个连接点对的连接关系包括每两个连接点直接连接的概率;所述基于所述各个连接点对的连接关系,从所述多个连接点的三维坐标中过滤掉满足过滤条件的目标连接点的三维坐标,包括:
基于所述每两个连接点直接连接的概率,选择满足第二概率条件的多个连接点对;
对于所述满足第二概率条件的多个连接点对中的任一个连接点,确定所述任一个连接点分别和各个其他连接点之间的距离,所述其他连接点是所述满足第二概率条件的多个连接点对中除所述任一个连接点之外的连接点;
基于所述任一个连接点分别和各个其他连接点之间的距离,将满足第四距离条件的其他连接点作为所述目标连接点,过滤掉所述目标连接点的三维坐标。
15.根据权利要求12所述的方法,其特征在于,所述基于每两个剩余连接点的连接关系和所述多个剩余连接点的三维坐标,生成所述目标对象的线框结构,包括:
基于每两个剩余连接点的连接关系和所述多个剩余连接点的三维坐标,生成初始线框结构;
对于所述初始线框结构的任一个边,确定所述任一个边和各个其他边之间的距离,所述其他边是所述初始线框结构中除所述任一个边之外的边;
基于所述任一个边和各个其他边之间的距离,过滤掉满足第五距离条件的其他边,得到所述目标对象的线框结构。
16.一种线框结构的生成装置,其特征在于,所述装置包括:
获取模块,用于获取多张图像,任两张图像中包括从不同拍摄视角拍摄的目标对象;
确定模块,用于基于所述多张图像确定三维线云数据,所述三维线云数据包括多个线段的三维数据;
所述确定模块,还用于基于所述三维线云数据确定多个连接点的三维坐标,所述连接点是至少三个相交线段的交点,所述相交线段为所述多个线段中与两个面相交的线段;
所述确定模块,还用于基于所述三维线云数据和所述多个连接点的三维坐标,确定各个连接点对的连接关系,所述连接点对包括两个连接点;
生成模块,用于基于所述各个连接点对的连接关系和所述多个连接点的三维坐标,生成所述目标对象的线框结构。
17.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述电子设备实现如权利要求1至15任一所述的线框结构的生成方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使电子设备实现如权利要求1至15任一所述的线框结构的生成方法。
19.一种计算机程序产品,其特征在于,所述计算机程序产品中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使电子设备实现如权利要求1至15任一所述的线框结构的生成方法。
CN202210799670.9A 2022-07-06 2022-07-06 线框结构的生成方法、装置、电子设备及可读存储介质 Pending CN115170767A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210799670.9A CN115170767A (zh) 2022-07-06 2022-07-06 线框结构的生成方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210799670.9A CN115170767A (zh) 2022-07-06 2022-07-06 线框结构的生成方法、装置、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN115170767A true CN115170767A (zh) 2022-10-11

Family

ID=83493443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210799670.9A Pending CN115170767A (zh) 2022-07-06 2022-07-06 线框结构的生成方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN115170767A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116704125A (zh) * 2023-06-02 2023-09-05 深圳市宗匠科技有限公司 一种基于三维点云的映射方法、装置、芯片及模组设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116704125A (zh) * 2023-06-02 2023-09-05 深圳市宗匠科技有限公司 一种基于三维点云的映射方法、装置、芯片及模组设备
CN116704125B (zh) * 2023-06-02 2024-05-17 深圳市宗匠科技有限公司 一种基于三维点云的映射方法、装置、芯片及模组设备

Similar Documents

Publication Publication Date Title
CN109299315B (zh) 多媒体资源分类方法、装置、计算机设备及存储介质
CN111091132B (zh) 基于人工智能的图像识别方法、装置、计算机设备及介质
CN108681729B (zh) 文本图像矫正方法、装置、存储介质及设备
CN110807361B (zh) 人体识别方法、装置、计算机设备及存储介质
CN109189950B (zh) 多媒体资源分类方法、装置、计算机设备及存储介质
CN110400304B (zh) 基于深度学习的物体检测方法、装置、设备及存储介质
CN111243668B (zh) 分子结合位点检测方法、装置、电子设备及存储介质
CN110059652B (zh) 人脸图像处理方法、装置及存储介质
CN110059685A (zh) 文字区域检测方法、装置及存储介质
CN110942046B (zh) 图像检索方法、装置、设备及存储介质
CN114332530A (zh) 图像分类方法、装置、计算机设备及存储介质
CN111597922A (zh) 细胞图像的识别方法、系统、装置、设备及介质
CN114511864B (zh) 文本信息提取方法、目标模型的获取方法、装置及设备
CN114677350A (zh) 连接点提取方法、装置、计算机设备及存储介质
CN115170767A (zh) 线框结构的生成方法、装置、电子设备及可读存储介质
CN115170896A (zh) 图像处理方法、装置、电子设备及可读存储介质
CN112818979B (zh) 文本识别方法、装置、设备及存储介质
CN112053360B (zh) 图像分割方法、装置、计算机设备及存储介质
CN114283299A (zh) 图像聚类方法、装置、计算机设备及存储介质
CN113570510A (zh) 图像处理方法、装置、设备及存储介质
CN110135329B (zh) 从视频中提取姿势的方法、装置、设备及存储介质
CN115168643B (zh) 音频处理方法、装置、设备及计算机可读存储介质
US11908096B2 (en) Stereoscopic image acquisition method, electronic device and storage medium
CN113343709B (zh) 意图识别模型的训练方法、意图识别方法、装置及设备
CN113378705B (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