CN111986314A - 三维重建中的图像分组方法及装置、电子设备和存储介质 - Google Patents

三维重建中的图像分组方法及装置、电子设备和存储介质 Download PDF

Info

Publication number
CN111986314A
CN111986314A CN202010852560.5A CN202010852560A CN111986314A CN 111986314 A CN111986314 A CN 111986314A CN 202010852560 A CN202010852560 A CN 202010852560A CN 111986314 A CN111986314 A CN 111986314A
Authority
CN
China
Prior art keywords
image
group
increment
modularity
grouped
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.)
Granted
Application number
CN202010852560.5A
Other languages
English (en)
Other versions
CN111986314B (zh
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.)
Zhejiang Shangtang Technology Development Co Ltd
Original Assignee
Zhejiang Shangtang Technology Development 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 Zhejiang Shangtang Technology Development Co Ltd filed Critical Zhejiang Shangtang Technology Development Co Ltd
Priority to CN202010852560.5A priority Critical patent/CN111986314B/zh
Publication of CN111986314A publication Critical patent/CN111986314A/zh
Priority to JP2023507417A priority patent/JP7541184B2/ja
Priority to PCT/CN2021/101049 priority patent/WO2022037232A1/zh
Priority to KR1020237006660A priority patent/KR20230043958A/ko
Application granted granted Critical
Publication of CN111986314B publication Critical patent/CN111986314B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/005Tree description, e.g. octree, quadtree

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)

Abstract

本申请提出三维重建中的图像分组方法及装置、电子设备和存储介质。其中,分组方法包括,将待分组图像集合中的各图像分别作为一个图像分组,计算上述待分组图像集合对应的模块度。分别计算假定将上述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合。确定上述增量集合中的最大增量,将与上述最大增量对应的两个图像分组进行合并得到合并图像分组,迭代执行本步骤,直至上述待分组图像集合仅包括唯一图像分组。当上述待分组图像集合仅包括唯一图像分组时,确定记录的每次迭代中,更新后的模块度中的最大模块度,并将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果。

Description

三维重建中的图像分组方法及装置、电子设备和存储介质
技术领域
本申请涉及计算机视觉技术,具体涉及三维重建中的图像分组方法及装置、电子设备和存储介质。
背景技术
在计算机视觉技术领域,运动恢复结构(Structure from motion,SfM)是一种常用的三维重建的技术。该技术可以通过分析场景对应的图像序列确定各帧场景图像对应的相机位姿。在确定上述相机位姿后,该技术可以基于连续的若干帧场景图像对应的相机位姿确定相机的运动轨迹,并基于上述运动轨迹对上述场景进行三维重建。
在实际情形中,一方面,由于上述SfM的算法很复杂,因此在对规模较大的场景进行三维重建时,将需要消耗很长的时间,导致三维重建效率不高。另一方面,由于对较大规模的场景进行三维重建需要消耗巨大的计算资源,因此在极端情形下可能无法实现三维重建。
为了解决上述问题,在相关技术中在对较大规模的场景进行三维重建时,通常先将上述较大规模的场景所对应的图像序列划分为若干组图像序列,然后再通过SfM算法对每组图像序列进行三维重建。等到对各组图像序列分别进行三维重建得到各分组对应的重建模型后,再将各分组对应的重建模型进行融合,从而得到与上述较大规模的场景对应的最终重建模型。
由于在上述对较大规模的场景进行三维重建的过程中,各分组的重建模型效果可能影响最终重建模型的鲁棒性,因此,在对上述较大规模的场景所对应的图像序列进行分组时,需要保证各分组内的各图像间的连接关系相对较强,与其他分组内的图像的连接关系相对较弱。
发明内容
本申请公开一种三维重建中的图像分组方法,上述方法包括:
将待分组图像集合中的各图像分别作为一个图像分组,计算上述待分组图像集合对应的模块度;
分别计算假定将上述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合;
确定上述增量集合中的最大增量,将与上述最大增量对应的两个图像分组进行合并得到合并图像分组,更新上述待分组图像集合对应的模块度,以及上述增量集合,迭代执行本步骤,直至上述待分组图像集合仅包括唯一图像分组;
当上述待分组图像集合仅包括唯一图像分组时,确定记录的每次迭代中,更新后的模块度中的最大模块度,并将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果。
在示出的一实施例中,上述将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果,包括:
确定上述最大模块度是否达到预设阈值;
若上述最大模块度达到上述预设阈值,则将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果;
若上述最大的模块度未达到上述预设阈值,则将上述待分组图像集合中包括的每一张图像,分别作为独立的图像分组。
在示出的一实施例中,将上述待分组图像集合包括的多个图像分组进行两两组合,包括:
将上述多个图像分组中,具有连接关系的图像分组进行两两组合,并记录具有连接关系的图像分组的分组标识之间的对应关系;
其中,具有连接关系的两个图像分组,是指上述两个图像分组中的其中一个图像分组中的图像与另一个图像分组中的图像之间的相似度达到预设相似度阈值。
在示出的一实施例中,上述增量集合包括假定组合的两个图像分组的分组标识,与假定将上述两个图像分组进行合并后,计算得到的上述增量之间的对应关系;
更新上述增量集合,包括:
查找记录的具有连接关系的图像分组的分组标识之间的对应关系,确定与上述最大增量对应的两个图像分组中的任一图像分组具有连接关系的其它图像分组;
确定假定将上述其它图像分组,分别与上述两个图像进行合并得到的上述增量,并将确定的上述增量进行相加得到的结果,作为假定将合并图像分组与上述其它图像分组进行合并后上述模块度的增量;
将上述合并图像分组、上述其它图像分组各自的分组标识,与假定将二者进行合并得到的上述模块的增量之间的对应关系,记录至上述增量集合。
在示出的一实施例中,上述方法还包括:
在每一次迭代过程中,在对上述增量集合进行更新之后,记录上述合并图像分组的分组标识与上述其它图像分组的分组标识的对应关系。
在示出的一实施例中,上述方法还包括:
在每一次迭代过程中,记录合并得到的合并图像分组,以及上述合并图像分组的分组标识与被合并的上述两个图像分组的分组标识之间的对应关系。
在示出的一实施例中,上述合并图像分组与产生上述合并图像分组的迭代中所更新的模块度相对应;上述图像分组的分组标识与指示上述图像分组包括的各图像所对应的图像标识相对应;
上述确定记录的每次迭代中,更新后的模块度中的最大模块度,并将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果,包括:
从最后一次迭代记录的合并图像分组开始,按照迭代发生的顺序,逆序针对每次迭代中记录的合并图像分组执行以下步骤:
确定用于确认图像组合方式的标识集合中,是否包括上述合并图像分组的分组标识,并在上述标识集合中不包括上述合并图像分组的分组标识时,将上述合并图像分组的分组标识写入上述标识集合中;
确定与上述合并图像分组相对应的更新后的模块度,是否为记录的每次迭代中更新后的模块度中的最大模块度;
若与上述合并图像分组相对应的更新后的模块度,为记录的各次迭代更新的模块度中的最大模块度,则将上述标识集合中包括的各分组标识所对应的图像标识所指示的图像作为一个图像组合,并将得到的各图像组合确定为针对上述待分组图像集合的图像分组结果。
在示出的一实施例中,上述方法还包括:
若与上述合并图像分组相对应的更新后的模块度,并非记录的各次迭代更新的模块度中的最大模块度,则将上述标识集合记录的上述合并图像分组的分组标识,替换为上述合并图像分组对应的合并前的两个图像分组的分组标识。
在示出的一实施例中,上述确定与上述记录的合并图像分组相对应的更新后的模块度,是否为每次迭代中更新后的模块度中的最大模块度,包括:
确定本次迭代中更新后的模块度,是否达到本次迭代对应的上一次迭代中更新后的模块度;
若是,则将本次迭代中更新的上述模块度确定为上述最大模块度。
在示出的一实施例中,上述分别计算假定将上述多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合,包括:
针对假定组合计算得到的各上述增量,执行以下步骤:
假定组合分别针对假定组合的两个图像分组,确定与其对应的二叉树,并将上述增量,以及上述假定组合的两个图像的分组标识写入上述确定的二叉树;
其中,上述二叉树的根节点记录了上述二叉树中记录的所有增量中的最大增量,以及上述最大增量对应的分组标识。
在示出的一实施例中,上述确定上述增量集合中包括的最大增量,包括:
将各图像分组对应的上述二叉树的根节点指针推入用于确定最大增量的大顶堆中;
确定上述大顶堆的根节点记录的指针;
将上述记录的指针所指示的节点记录的增量确定为上述增量集合中包括的最大增量。
在示出的一实施例中,上述方法还包括:
确定得到的各图像分组中,包括的图像数量小于第一预设数量阈值的图像分组,将确定出的图像分组确定为待融合图像分组;其中,上述第一预设阈值指示各分组中的最小图像数量;
将上述各图像分组中除上述待融合图像分组以外的剩余分组,确定为剩余分组;
计算上述待融合分组中每两个图像分组间的连接权重值,组成连接权重值集合;其中,上述连接权重值指示两个图像分组之间相匹配的图像数量;
根据上述连接权重值集合,对上述待融合图像分组进行融合。
在示出的一实施例中,上述根据上述连接权重值集合,对上述待融合图像分组进行融合,包括:
迭代执行以下步骤,直至上述连接权重值集合中不包括任意连接权重值:
确定上述连接权重值集合中的最大连接权重值;
确定上述最大连接权重值对应的两个图像分组中,数量较大的一个图像分组中的图像数量,是否达到第二预设数量阈值;其中,上述第二预设数量阈值指示各图像分组中的最大图像数量;
若达到,则终止本次迭代;
若未达到,则对上述两个图像分组进行合并得到合并图像分组,并更新上述连接权重值集合;
当上述连接权重值集合中不包括任意连接权重值时,将上述待融合分组中包括的图像分组以及上述剩余分组中的图像分组,作为针对上述待分组图像集合的最终图像分组。
在示出的一实施例中,上述计算上述待融合分组中每两个图像分组间的连接权重值,组成连接权重值集合,包括:
为上述待融合分组中的各图像分组创建与上述各图像分组一一对应的二叉树;
计算上述待融合分组中每两个图像分组间的连接权重值,并将上述连接权重值,以及上述两个图像分组的分组标识记录在上述二叉树的节点中;其中,上述二叉树的根节点记录了各图像分组对应的各连接权重值中的最大连接权重值,以及上述最大连接权重值对应的分组标识。
在示出的一实施例中,上述确定上述连接权重值集合中的最大连接权重值,包括:
将上述各图像分组对应的二叉树的根节点指针推送至用于推出上述最大连接权重值的大顶堆中;
读取上述大顶堆的根节点记录的指针,并将上述记录的指针指示的二叉树节点记录的连接权重值,确定为上述最大连接权重值。
在示出的一实施例中,在确定上述连接权重值集合中的最大连接权重值之后,上述方法还包括:
确定上述最大连接权重值对应的两个图像分组中的任一组图像对应的二叉树是否为空;
若否,则继续执行后续步骤;
若是,则终止当前迭代。
在示出的一实施例中,上述更新上述连接权重值集合,包括:
删除被合并的上述两个图像分组各自对应的二叉树;
计算上述合并图像分组与上述待融合分组中其他分组间的连接权重值;
将计算出的上述连接权重值,以及上述合并图像分组与上述其他分组的分组标识写入与上述其他分组对应的二叉树;
在与上述其他分组对应的二叉树中,删除记录上述其他分组,与被合并的上述两个图像分组之间的连接权重值的节点。
本申请还提出一种三维重建中的图像分组方法,上述方法包括:
将待分组图像集合中的各图像分别作为一个图像分组时,计算上述待分组图像集合对应的模块度;
分别计算上述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合;
确定上述增量集合中包括的最大增量,并进一步确定上述最大增量是否达到0,若是,则将记录的与上述最大增量对应的两个图像分组进行合并得到合并图像分组,并更新上述增量集合;迭代执行本步骤,直至上述待分组图像集合仅包括唯一图像分组:
在每次迭代中,若上述最大增量未达到0,则终止以上迭代步骤,并将本次迭代的上一次迭代合并后的图像组合方式作为针对上述待分组图像集合的最终图像分组结果;
当上述待分组图像集合仅包括唯一图像分组时,则将上述待分组图像集合包括的各图像划分为一个图像分组。
本申请还提出一种三维重建中的图像分组装置,上述装置包括:
第一计算模块,将待分组图像集合中的各图像分别作为一个图像分组,计算上述待分组图像集合对应的模块度;
第一生成模块,分别计算假定将上述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合;
第一合并模块,确定上述增量集合中的最大增量,将与上述最大增量对应的两个图像分组进行合并得到合并图像分组,更新上述待分组图像集合对应的模块度,以及上述增量集合,迭代执行本步骤,直至上述待分组图像集合仅包括唯一图像分组;
第一分组确定模块,当上述待分组图像集合仅包括唯一图像分组时,确定记录的每次迭代中,更新后的模块度中的最大模块度,并将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果。
在示出的一实施例中,上述第一分组确定模块,包括:
确定上述最大模块度是否达到预设阈值;
若上述最大模块度达到上述预设阈值,则将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果;
若上述最大的模块度未达到上述预设阈值,则将上述待分组图像集合中包括的每一张图像,分别作为独立的图像分组。
在示出的一实施例中,上述第一生成模块,包括:
将上述多个图像分组中,具有连接关系的图像分组进行两两组合,并记录具有连接关系的图像分组的分组标识之间的对应关系;
其中,具有连接关系的两个图像分组,是指上述两个图像分组中的其中一个图像分组中的图像与另一个图像分组中的图像之间的相似度达到预设相似度阈值。
在示出的一实施例中,上述增量集合包括假定组合的两个图像分组的分组标识,与假定将上述两个图像分组进行合并后,计算得到的上述增量之间的对应关系;
上述第一合并模块,包括:
查找记录的具有连接关系的图像分组的分组标识之间的对应关系,确定与上述最大增量对应的两个图像分组中的任一图像分组具有连接关系的其它图像分组;
确定假定将上述其它图像分组,分别与上述两个图像进行合并得到的上述增量,并将确定的上述增量进行相加得到的结果,作为假定将合并图像分组与上述其它图像分组进行合并后上述模块度的增量;
将上述合并图像分组、上述其它图像分组各自的分组标识,与假定将二者进行合并得到的上述模块的增量之间的对应关系,记录至上述增量集合。
在示出的一实施例中,上述装置还包括:
第一记录模块,在每一次迭代过程中,在对上述增量集合进行更新之后,记录上述合并图像分组的分组标识与上述其它图像分组的分组标识的对应关系。
在示出的一实施例中,上述装置还包括:
第二记录模块。在每一次迭代过程中,记录合并得到的合并图像分组,以及上述合并图像分组的分组标识与被合并的上述两个图像分组的分组标识之间的对应关系。
在示出的一实施例中,上述合并图像分组与产生上述合并图像分组的迭代中所更新的模块度相对应;上述图像分组的分组标识与指示上述图像分组包括的各图像所对应的图像标识相对应;
上述第一分组确定模块,包括:
从最后一次迭代记录的合并图像分组开始,按照迭代发生的顺序,逆序针对每次迭代中记录的合并图像分组执行以下步骤:
确定用于确认图像组合方式的标识集合中,是否包括上述合并图像分组的分组标识,并在上述标识集合中不包括上述合并图像分组的分组标识时,将上述合并图像分组的分组标识写入上述标识集合中;
确定与上述合并图像分组相对应的更新后的模块度,是否为记录的每次迭代中更新后的模块度中的最大模块度;
若与上述合并图像分组相对应的更新后的模块度,为记录的各次迭代更新的模块度中的最大模块度,则将上述标识集合中包括的各分组标识所对应的图像标识所指示的图像作为一个图像组合,并将得到的各图像组合确定为针对上述待分组图像集合的图像分组结果。
在示出的一实施例中,上述装置还包括:
替换模块,若与上述合并图像分组相对应的更新后的模块度,并非记录的各次迭代更新的模块度中的最大模块度,则将上述标识集合记录的上述合并图像分组的分组标识,替换为上述合并图像分组对应的合并前的两个图像分组的分组标识。
在示出的一实施例中,上述确定与上述记录的合并图像分组相对应的更新后的模块度,是否为每次迭代中更新后的模块度中的最大模块度,包括:
确定本次迭代中更新后的模块度,是否达到本次迭代对应的上一次迭代中更新后的模块度;
若是,则将本次迭代中更新的上述模块度确定为上述最大模块度。
在示出的一实施例中,上述第一生成模块,包括:
针对假定组合计算得到的各上述增量,执行以下步骤:
假定组合分别针对假定组合的两个图像分组,确定与其对应的二叉树,并将上述增量,以及上述假定组合的两个图像的分组标识写入上述确定的二叉树;
其中,上述二叉树的根节点记录了上述二叉树中记录的所有增量中的最大增量,以及上述最大增量对应的分组标识。
在示出的一实施例中,上述确定上述增量集合中包括的最大增量,包括:
将各图像分组对应的上述二叉树的根节点指针推入用于确定最大增量的大顶堆中;
确定上述大顶堆的根节点记录的指针;
将上述记录的指针所指示的节点记录的增量确定为上述增量集合中包括的最大增量。
在示出的一实施例中,上述装置还包括:
待融合图像分组确定模块,确定得到的各图像分组中,包括的图像数量小于第一预设数量阈值的图像分组,将确定出的图像分组确定为待融合图像分组;其中,上述第一预设阈值指示各分组中的最小图像数量;
剩余分组确定模块,将上述各图像分组中除上述待融合图像分组以外的剩余分组,确定为剩余分组;
连接权重值计算模块,计算上述待融合分组中每两个图像分组间的连接权重值,组成连接权重值集合;其中,上述连接权重值指示两个图像分组之间相匹配的图像数量;
分组融合模块,根据上述连接权重值集合,对上述待融合图像分组进行融合。
在示出的一实施例中,上述分组融合模块,包括:
迭代执行以下步骤,直至上述连接权重值集合中不包括任意连接权重值:
确定上述连接权重值集合中的最大连接权重值;
确定上述最大连接权重值对应的两个图像分组中,数量较大的一个图像分组中的图像数量,是否达到第二预设数量阈值;其中,上述第二预设数量阈值指示各图像分组中的最大图像数量;
若达到,则终止本次迭代;
若未达到,则对上述两个图像分组进行合并得到合并图像分组,并更新上述连接权重值集合;
当上述连接权重值集合中不包括任意连接权重值时,将上述待融合分组中包括的图像分组以及上述剩余分组中的图像分组,作为针对上述待分组图像集合的最终图像分组。
在示出的一实施例中,上述连接权重值计算模块,包括:
为上述待融合分组中的各图像分组创建与上述各图像分组一一对应的二叉树;
计算上述待融合分组中每两个图像分组间的连接权重值,并将上述连接权重值,以及上述两个图像分组的分组标识记录在上述二叉树的节点中;其中,上述二叉树的根节点记录了各图像分组对应的各连接权重值中的最大连接权重值,以及上述最大连接权重值对应的分组标识。
在示出的一实施例中,上述确定上述连接权重值集合中的最大连接权重值,包括:
将上述各图像分组对应的二叉树的根节点指针推送至用于推出上述最大连接权重值的大顶堆中;
读取上述大顶堆的根节点记录的指针,并将上述记录的指针指示的二叉树节点记录的连接权重值,确定为上述最大连接权重值。
在示出的一实施例中,上述装置还包括:
数据确定模块,确定上述最大连接权重值对应的两个图像分组中的任一组图像对应的二叉树是否为空;
若否,则继续执行后续步骤;
若是,则终止当前迭代。
在示出的一实施例中,上述更新上述连接权重值集合,包括:
删除被合并的上述两个图像分组各自对应的二叉树;
计算上述合并图像分组与上述待融合分组中其他分组间的连接权重值;
将计算出的上述连接权重值,以及上述合并图像分组与上述其他分组的分组标识写入与上述其他分组对应的二叉树;
在与上述其他分组对应的二叉树中,删除记录上述其他分组,与被合并的上述两个图像分组之间的连接权重值的节点。
本申请提出一种三维重建中的图像分组装置,上述装置包括:
第二计算模块,将待分组图像集合中的各图像分别作为一个图像分组时,计算上述待分组图像集合对应的模块度;
第二生成模块,分别计算上述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合;
第二合并模块,确定上述增量集合中包括的最大增量,并进一步确定上述最大增量是否达到0,若是,则将记录的与上述最大增量对应的两个图像分组进行合并得到合并图像分组,并更新上述增量集合;迭代执行本步骤,直至上述待分组图像集合仅包括唯一图像分组:
第二分组确定模块,在每次迭代中,若上述最大增量未达到0,则终止以上迭代步骤,并将本次迭代的上一次迭代合并后的图像组合方式作为针对上述待分组图像集合的最终图像分组结果;
当上述待分组图像集合仅包括唯一图像分组时,则将上述待分组图像集合包括的各图像划分为一个图像分组。
本申请提出一种电子设备,上述设备包括:
处理器;
用于存储上述处理器可执行指令的存储器;
其中,上述处理器被配置为调用上述存储器中存储的可执行指令,实现上述任一实施例示出的三维重建中的图像分组方法。
本申请提出一种计算机可读存储介质,上述存储介质存储有计算机程序,上述计算机程序用于执行实现上述任一实施例示出的三维重建中的图像分组方法。
在上述方案中,一方面,该方法通过在每次迭代步骤中将最大模块度的增量对应的两个图像分组进行合并,从而保证每次合并后,图像的组合方式是本次合并能够达到的最佳组合方式。
另一方面,当合并到只剩一个图像分组时,该方法可以通过追溯记录的各次迭代中更新后的模块度,确定出上述模块度中的最大模块度,并将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果,从而保证可以将图像分组进行合并的过程中,出现的最佳图像组合方式确定为针对上述待分组图像集合的图像分组结果。通过分组的划分,实现各分组内部的图像之间的连接关系相对较强,且各分组内部的图像与其他分组的图像之间连接关系相对较弱。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请一个或多个实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请一个或多个情形中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请示出的一种网络社区划分示意图;
图2为本申请示出的一种三维重建中的图像分组方法的方法流程图;
图3为本申请示出的一种图像分组场景示意图;
图4为本申请示出的一种增量集合的示意图;
图5为本申请示出的平衡二叉树的示意图;
图6为本申请示出的一种图像分组合并示意图;
图7为本申请示出的一种更新增量集合方法的方法流程图;
图8为本申请示出的图像分组合并示意图;
图9为本申请示出的一种三维重建中的图像分组方法的方法流程图;
图10为本申请示出的一种三维重建中的图像分组装置的结构图;
图11为本申请示出的一种三维重建中的图像分组装置的结构图;
图12为本申请示出的一种电子设备的硬件结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请一个或多个情形中的技术方案,下面将结合本申请一个或多个情形中的附图,对本申请一个或多个情形中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请旨在提出一种三维重建中的图像分组方法,使得通过该方法确定的各分组内的图像之间的连接关系相对较强,与其它分组最内的图像的连接关系相对较弱。
具体地,该方法先将每个图像分别独立成组,并确定此时上述待分组图像集合对应的模块度。然后,遵循在每一次合并之后,上述模块度的增量最大的合并原则,对上述图像集合中包括的图像分组进行合并,并在每次合并之后,记录上述待分组图像集合对应的模块度。
当上述待分组图像仅包括一个图像分组时,找出每次合并过程中记录的模块度中的最大模块度,并将上述最大模块度对应的图像的组合方式确定为针对上述待分组图像集合的图像分组结果。
由上述方案可知,一方面,该方法通过在每次迭代步骤中将最大模块度的增量对应的两个图像分组进行合并,从而保证每次合并后,图像的组合方式是本次合并能够达到的最佳组合方式。
另一方面,当合并到只剩一个图像分组时,该方法可以通过追溯记录的各次迭代中更新后的模块度,确定出上述模块度中的最大模块度,并将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果,从而保证可以将图像分组进行合并的过程中,出现的最佳图像组合方式确定为针对上述待分组图像集合的图像分组结果。通过分组的划分,实现各分组内部的图像之间的连接关系相对较强,且各分组内部的图像与其他分组的图像之间连接关系相对较弱。
在对本申请记载的实施例进行描述前,申请人先对上述模块度、上述模块度的增量,以及模块度和模块度的增量的计算公式进行详细介绍。
上述模块度也称模块化度量值,是一种衡量网络社区划分标准的方法。其中,模块度越高,说明针对上述网络的划分结果越合理。即,模块度越高,说明当前网络中的每一社区内部的节点之间连接关系相对较强,与其他社区内部的节点之间的连接关系相对较弱。
上述模块度的计算公式为:
Figure BDA0002645216720000081
在此,需要说明的是,由于本申请仅涉及如何使用模块度进行图像分组,因此,在此不对上述公式1的推导过程进行详述(该公式1推导的过程可以参照Newman在Findingand evaluating community structure in networks一文中的相关记载内容)。
以下结合附图对上述公式1包括的各元素所表示的含义进行阐述。
请参见图1,图1为本申请示出的一种网络社区划分示意图。
如图1所示,节点1-7构成一个网络。其中,节点1、2、3、4相邻之间互相连接(也就是节点1、2、3、4相邻之间连接边);节点5、6、7相邻之间互相连接(也就是节点5、6、7相邻之间连接边);节点4与节点5相连接(也就是节点4、5之间连接边)。
在上述公式1中,上述Q代表上述网络当前的社区划分情形下对应的模块度。
其中,上述n表示上述网络被分为了n个社区。例如,请参见图1。若将图1中示出的网络包括的节点1、2、3、4作为一个社区、节点5、6、7作为一个社区,则上述网络被分为了两个社区。此时上述n为2。若将节点1-7各自独立作为一个社区,则上述网络被分为了七个社区。此时上述n为7。
上述i表示上述n个社区中的社区i。
上述eii表示上述社区i内部包括的各条边对应的附加权重因子的和,与上述网络中包括的所有边对应的附加权重因子的和的比值。
其中,上述边可以表示两个节点之间是否存在连接关系。例如,若上述节点v和节点w分别表示两张图像,在确定上述节点v和w之间是否具有连接关系时,可以计算v和w之间的相似度。若上述节点v和w之间的相似度达到预设相似度阈值,则可以认为上述节点v和w存在连接关系,也可以认为v和w之间存在两条边。此时,上述v和w是该上述两条边的两个终点。
上述附加权重因子可以量化表示上述两个节点之间的连接关系。例如,当上述节点v和w之间存在边时,可以将v和w之间的图像特征点的匹配数量映射为上述v和w之间边的附加权重因子。若上述附加权重因子越大,则说明上述节点v和上述节点w之间的连接关系越强。
本领域技术人员容易理解的是,为了更加精准的计算模块度,在实际应用中,在进行模块度计算时,需要考虑与边对应的附加权重因子。不过为了方便说明实施例,在本申请中将上述附加权重因子的值设为了1。在上述情形下,在进行模块度计算时,可以通过计算上述社区i内部包括的边的数量,与上述网络中包括的边的数量的比值,来计算上述eii
此时,
Figure BDA0002645216720000091
其中,上述Iii指示社区i内部包括的边的数量;上述m指示上述网络包括的边的数量。
例如,请继续参见图1。假设上述网络被分为社区1和社区2两个社区(其中,社区1由节点1、2、3、4组成;社区2由节点5、6、7组成)。此时,上述社区1包括的边的数量为6。上述社区2包括的边的数量为3。上述网络包括的边的数量为10。当i为1时,根据上述公式2可以得出上述eii为0.6。当i为2时,上述eii则为0.3。
继续介绍上述公式1。
上述公式1中的ai,指示社区i内包括的各节点的入度之和,与上述网络中包括的边的数量的两倍的比值。
此时,
Figure BDA0002645216720000092
其中,上述ki表示上述社区i包括的各节点的入度和;上述m指示上述网络包括的边的数量。
上述节点的入度指示上述节点作为边的终点的数量。例如,请继续参见图1。由于图1中的节点4连接有4条边,因此节点4作为边的终点的数量为4,此时则可以确定节点4的入度为4。而节点5连接有3条边,因此节点5的入度为3。
请继续参见图1,假设上述网络被分为社区1和社区2两个社区(其中,社区1由节点1、2、3、4组成;社区2由节点5、6、7组成)。此时,社区1包括的各节点的入度之和为13。社区2包括的各节点的入度之和为7。上述网络包括的边的数量的两倍为20。当i为1时,上述ai则为0.65。当i为2时,上述ai则为0.35。
接下来继续介绍模块度的增量ΔQ。
模块度的增量,具体是指将网络包括的两个社区合并为一个社区后,上述网络对应的模块度与合并前上述网络对应的模块度的差值。
在此,本领域技术人员可以理解的是,当上述增量为正数时,上述增量越大,说明合并后上述网络对应的模块度增大的值越大,即此次合并越有价值。当上述增量为负数时,上述增量越大,说明合并后,上述网络对应的模块度减少的值越小,即此次合并的负面影响越小。所以在不确定当前合并后,上述网络的模块度是增大还是减小的条件下,对网络包括的社区进行合并时,可以将上述网络中所有可能的两个社区的组合方式中,可以使上述增量最大的合并组合进行合并,由此保证在进行合并后,上述网络的模块度增大的最大,或者减小的最少。
例如,请继续参见图1,假设上述网络中的节点1至上述节点7各自被划分为一个社区。此时,上述网络对应的模块度可以记为Q1
在上述情形下,假设将上述网络中的任意两个社区合并为一个社区。此时,上述网络对应的模块度可以记为Q2。上述模块度的增量则为ΔQ=Q2-Q1
以下介绍模块度的增量ΔQ公式的推导过程。
假设上述网络当前包括n个社区,且上述网络包括社区i和社区j,此时根据公式1可知,当前网络对应的模块度:
Figure BDA0002645216720000101
假设将上述网络包括的社区i和社区j进行合并,得到社区p。
此时,根据公式2,
Figure BDA0002645216720000102
其中,Iii、Ijj分别表示社区i,与社区j包括的边的数量;上述Iij表示社区i包括的各节点,与社区j包括的各节点之间连接的边的数量;上述m指示上述网络包括的边的数量。
根据公式3,
Figure BDA0002645216720000103
其中,上述ki、kj分别表示上述社区i,社区j包括的各节点的入度和;上述m指示上述网络包括的边的数量。
根据公式1,当前网络对应的模块度:
Figure BDA0002645216720000104
此时,将社区i与社区j进行合并后,上述网络对应的模块度的增量为:
Figure BDA0002645216720000105
假设用eij指示社区i包括的各节点,与社区j包括的各节点之间连接的边的数量,与上述待分组图像包括各图像之间连接的边的数量的两倍比值,
Figure BDA0002645216720000106
那么,ΔQij=2eij-2aiaj=2(eij-aiaj) (4)。
由此,即可推到出若将社区i与社区j进行合并,上述网络对应的模块的增量ΔQij=2eij-2aiaj=2(eij-aiaj);其中,eij指示社区i包括的各节点,与社区j包括的各节点之间连接的边的数量,与上述待分组图像包括各图像之间连接的边的数量的两倍比值;ai、aj分别指示社区i、社区j内包括的各节点的入度之和,与上述网络中包括的边的数量的两倍的比值。
在上述情形下,若需要计算假定将社区i与社区j合并得到的社区p,与其他社区q进行合并,上述网络对应的模块度的增量时,
根据上述公式4,可以计算出上述模块度的增量:
Figure BDA0002645216720000107
由上述公式推导可知ΔQpq=2(eiq-aiaq)+2(ejq-ajaq)=ΔQiq+ΔQjq (5)。
至此,关于模块度,模块度的增量,以及其相关计算公式已介绍完毕。以下开始对本申请公开的实施例进行介绍。
实施例一:
请参见图2,图2为本申请示出的一种三维重建中的图像分组方法的方法流程图。
如图2所示,所示方法可以包括:
S202,将待分组图像集合中的各图像分别作为一个图像分组,计算上述待分组图像集合对应的模块度;
S204,分别计算假定将上述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合;
S206,确定上述增量集合中的最大增量,将与上述最大增量对应的两个图像分组进行合并得到合并图像分组,更新上述待分组图像集合对应的模块度,以及上述增量集合,迭代执行本步骤,直至上述待分组图像集合仅包括唯一图像分组;
S208,当上述待分组图像集合仅包括唯一图像分组时,确定记录的每次迭代中,更新后的模块度中的最大模块度,并将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果。
需要说明的是,上述图像分组方法可以搭载在任意可执行上述方法的软硬件环境中。例如,上述软硬件环境可以是个人PC、PAD、服务器等电子设备,或者上述软硬件环境可以是虚拟系统等等。在此不作限定。以下以上述方法的执行主体为电子设备(以下简称设备)为例进行说明。
上述待分组图像集合,具体可以是在三维重建场景中,需要被分组的图像序列。可以理解的是,在计算模块度时,上述待分组图像集合可以被看作是一个网络。
可以理解的是,在实际应用中,上述设备在维护上述待分组图像集合与其包括的图像之间的包含关系时,通常可以通过维护一个与上述待分组图像集合对应的待分组图像标识集合,然后将与图像对应的的图像标识写入上述待分组图像标识集合,从而维护上述待分组图像集合与其包括的图像之间的包含关系。其中,上述图像标识可以是与上述图像对应的数据节点的节点标识。
上述图像分组,可以是由上述待分组图像集合中的若干图像组成。可以理解的是,在计算模块度时,上述图像分组可以被看作是与上述网络对应的社区。上述图像可以看作是上述网络中的节点。
可以理解的是,在实际应用中,上述设备在维护上述待分组图像集合与其包括的图像分组之间的包含关系时,通常可以通过维护一个与上述待分组图像集合对应的图像分组标识集合,然后将其包括的图像分组的分组标识写入上述图像分组标识集合,从而维护上述待分组图像集合与其包括的图像分组之间的包含关系。其中,上述分组标识可以是与上述图像分组对应的数据节点的节点标识。
此时,一方面,若需要确定上述待分组图像集合包括的图像分组时,可以先读取上述图像分组标识集合中包括的各分组标识,然后上述各分组标识对应的图像分组输出为上述待分组图像集合包括的图像分组。
另一方面,若将上述待分组图像集合包括的任意两个图像分组进行合并操作时,则可以在上述图像分组标识集合中删除被合并的两个图像分组的分组标识,并将上述合并操作生成的合并图像分组的分组标识写入上述图像分组标识集合,从而完成上述合并操作。
上述设备在维护上述图像分组与其包括的图像之间的包含关系时,通常可以维护上述图像分组的标识,与图像分组包括的图像所对应的图像标识之间的对应关系。例如,上述设备可以为上述图像分组创建一个数据节点,并将上述图像分组的分组标识作为上述数据节点的节点标识(节点索引)。然后,上述设备可以将该图像分组包括的图像所对应的图像标识写入上述数据节点,从而维护上述图像分组与其包括的图像之间的包含关系。
上述图像组合方式,具体是指在每次迭代中,当完成一次合并步骤后,上述待分组图像集合包括的各图像的组合方式。
在实际应用中,通常可以定义与各图像分组对应的分组标识,以及与图像对应的图像标识。然后,通过记录各分组标识与各图像所对应的图像标识之间的对应关系来记录上述图像组合方式。
例如,假设上述待分组图像集合包括10张图像,分别对应图像标识0-9。在完成一次合并后,假设上述待分组图像集合包括的图像分组的标识为a、b、c、d,并且上述分组标识a与上述图像标识0-3对应,上述分组标识b与上述图像标识4-5对应,上述分组标识c与上述图像标识6对应,上述分组标识d与上述图像标识7-9对应。
在上述情形下,假设需要确定当前待分组图像集合包括的各图像组合方式时,可以确定当前待分组图像集合包括的分组标识。在确定当前包括的分组标识后,通过查询上述分组标识与上述图像标识的对应关系,即可确定当前上述待分组图像集合包括的图像组合方式为,图像0-3为一个图像分组,图像4-5为一个图像分组,图像6为一个图像分组,图像7-9为一个图像分组。
在对待分组图像集合进行图像分组时,上述设备可以先执行S202,将待分组图像集合中的各图像分别作为一个图像分组,计算上述待分组图像集合对应的模块度。
在实际应用中,上述设备可以先遍历上述待分组图像集合中各张图像,并将各张图像与唯一的图像标识一一对应。然后,上述设备可以为每一图像标识唯一对应一个分组标识。此时,上述设备可以通过记录上述每一分组标识与上述图像标识的对应关系,来记录上述图像分组与上述图像的对应关系。
可以理解的是,由于此步骤中是将上述待分组图像集合中包括各图像假设各自独立成组,因此,上述各图像所对应的图像标识可以作为与上述各图像对应的图像分组的分组标识。
例如,假设上述待分组图像集合中包括10张图像。在实现S202时,上述设备可以先将图像标识0-9依次与上述10张图像一一对应。然后,上述设备可以创建与上述图像的数量相同数量的数据节点(其中,上述数据节点可以以数组形式进行记录),并将上述数据节点与上述10张图像一一对应。之后,上述设备可以将上述各图像所对应的图像标识作为与各图像对应的数据节点的节点标识(节点索引),并将上述各图像所对应的图像标识写入上述各图像对应的数据节点中。
可以理解的是,此时,上述各数据节点实际上既与上述10张图像一一对应,也与10个图像分组一一对应,并且,此时上述10个图像分组的分组标识为0-9。
请参见图3,图3为本申请示出的一种图像分组场景示意图。
如图3所示,其示出的图像分组场景为,针对上述待分组集合包括的10张图像进行分组。其中,图3示出的各数据节点中的节点标识(节点索引)为与上述各数据节点对应的图像分组的分组标识。上述各数据节点记录了与上述各数据节点对应的图像分组所包括的图像所对应的图像标识。
在此需要说明的是,图3示出的数据节点结构仅为示意性的,在实际应用中可以包括多种数据节点结构,在此不作限定。
当将待分组图像集合中的各图像分别假定为一个图像分组后,上述设备可以根据上述公式1计算当前图像组合方式下,上述网络对应的模块度Q0
在实际应用中,在计算上述模块度Q0前,上述设备可以先确定当前图像组合方式下,各图像分组之间的连接关系。
在此,需要说明的是,由于当前每一图像分组仅包括一张图像,因此确定各图像分组之间的连接关系,相当于确定上述待分组图像集合包括的各图像之间的连接关系。
在确定上述待分组图像包括的各图像之间的连接关系时,可以将上述待分组图像包括的每一张图像依次作为目标图像,并计算上述目标图像与上述待分组图像包括的其它图像之间的相似度。
当得到上述目标图像与任一其它图像之间的相似度后,可以进一步确定上述目标图像与该其它图像之间的相似度是否大于预设相似度阈值(其中,上述预设相似度阈值可以根据经验进行设定);若大于,则可以认为上述目标图像与该其它图像之间具有连接关系,也可以认为上述目标图像与该其它图像之间连接边。此时,上述目标图像与该其它图像为上述边的两个终点。
当确定任意两张图像之间存在边时,则可以将上述两张图像各自对应的图像分组的分组标识的对应关系记录至上述设备维护的邻接表中。例如,在上述图3对应的图像分组场景中,数据节点0-9与待分组图像集合包括的每一图像分组0-9一一对应。此时,若确定图像0与图像1之间存在边,则可以将分组标识0与分组标识1之间的对应关系记录至上述邻接表中。
在此需要说明的是,由于在上述维护邻接表的方法中,针对具有连接关系的两个图像分组的分组标识的对应关系可能被记录两次,因此,在此可以进行去重操作,从而保证上述邻接表中针对具有连接关系的两个图像分组的分组标识的对应关系仅被记录一次。
本领域技术人员可以理解的是,当上述待分组集合包括的各张图像之间的连接关系确认完毕后,上述邻接表将记录当前所有具有连接关系的图像分组的分组标识之间的对应关系。
此时,若需要确定任意两个图像分组之间是否具有连接关系,则可以通过查询上述邻接表中,是否记录有上述两个图像分组的分组标识的对应关系。若有,则可以认为上述两个图像分组具有连接关系。
若需要计算某一个图像分组的入度时,则可以通过统计上述邻接表记录的对应关系中,包括上述图像分组的分组标识的对应关系的数量。
例如,当计算图像分组0的入度k0时,可以先设置一个计数器(初始为0)。然后,遍历上述邻接表记录的分组标识对应关系是否包括分组标识0。每当查询到包含上述分组标识0的对应关系,则可以将上述计数器的计数加1。当查询完毕上述邻接表后,可以读取上述计数器上的计数,并将上述计数作为图像分组0的入度k0
当上述待分组图像包括的各图像之间的连接关系确认完毕后,上述设备可以计算每一图像分组对应的入度ki,其中,上述ki指示图像分组i的入度。
当各图像分组的入度计算完毕后,可以根据公式
Figure BDA0002645216720000131
可以计算出上述待分组图像集合中包括的边的数量。
然后,根据上述公式3,可以计算出每一图像分组对应的ai,其中,i为大于0,小于等于上述待分组图像集合包括的图像数量的自然数。
由于当前每一图像分组仅包括一张图像,因此,此时,eii为0。
当eii与ai计算完毕后,则可以根据公式1,计算上述当前图像组合方式下,上述网络对应的模块度Q0
当计算出上述Q0后,上述设备可以记录上述Q0。在实际应用中,上述Q0可以任意形式被记录。例如,上述Q0可以记录在图3示出的数据节点中,或者可以专门维护一个数组记录上述Q0
当S202执行完毕后,上述设备可以继续执行S204,分别计算假定将上述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合。
在实际应用中,上述设备可以将上述待分组图像集合中的各图像分组进行两两组合,并针对得到的每一组合,计算假定将上述组合对应的图像分组进行合并后,上述模块度的增量,并基于计算得到的上述增量生成增量集合。
在实施例一中,在计算上述模块度的增量时,上述设备可以先将上述待分组图像集合包括的任意两个图像分组进行组合,得到所有可能的组合结果。在得到上述组合结果后,针对每一组合结果,先确定上述组合结果对应的两个图像分组是否具有连接关系(例如,通过查询上述邻接表中是否记录上述两个图像分组的分组标识的对应关系,来确定两个图像分组是否具有连接关系)。
此时,若上述组合结果对应的两个图像分组具有连接关系,有则可以确定具有连接关系的上述两个图像分组之间的边的数量Iij为1。反之,则可以确定不具有连接关系的上述两个图像分组之间的边的数量Iij为0。
在确定上述两个图像分组之间的边的数量Iij后,上述设备可以根据上述公式4,来计算假定将上述组合对应的图像分组进行合并后,上述模块度的增量ΔQij;其中,上述i,j为大于等于0,小于等于9的整数。
等到上述增量ΔQij计算完毕后,上述设备可以基于计算得到的上述增量生成增量集合,并记录假定组合的两个图像分组的分组标识,与将上述两个图像分组进行合并后,计算得到的上述增量的对应关系。
在实际应用中,上述设备可以维护一个增量与分组标识对应关系表,并将所有可能的上述组合,与假定将所有可能的上述组合对应的图像分组进行合并后,计算出的上述增量ΔQij的对应关系记录至上述增量与分组标识对应关系表。
至此,上述图像分组方法的准备工作已经完成。
接下来进入迭代步骤,具体地,上述设备可以执行S206,确定上述增量集合中包括的最大增量,并将记录的与上述最大增量对应的两个图像分组进行合并,在合并后对上述模块度进行更新,以及,在合并后对上述增量集合进行更新;迭代执行该步骤,直至上述待分组图像集合仅包括唯一图像分组。
在实施例一中,在确定上述增量集合中包括的最大增量时,上述设备可以通过查询上述增量集合,得到所有的增量。然后,上述设备可以将所有增量进行两两比较,从而确定出上述增量集合中的最大增量。
在确定出最大增量后,上述设备可以通过查询上述增量与分组标识对应关系,确定上述最大增量对应的两个图像分组。在确定上述两个图像分组后,上述设备可以将上述两个图像分组进行合并。
在实际应用中,在将上述两个图像分组进行合并时,上述设备可以将两个图像分组得到合并图像分组。然后,上述设备可以在与上述待分组图像集合对应的图像分组标识集合中,删除被合并的两个图像分组的分组标识,并将上述合并操作生成的合并图像分组的分组标识写入上述图像分组标识集合。可以理解的是,此时,上述图像分组标识集合中将包括上述合并图像分组的分组标识,以及其他未被合并的图像分组的分组标识。
例如,假设上述待分组图像集合包括分组标识为0-9的10个图像分组,并且上述最大增量对应的上述两个图像分组的分组标识为0和1。上述两个图像分组合并后得到的合并图像分组的分组标识为a。此时,将上述两个图像分组进行合并后,当前上述待分组图像包括的图像分组包括分组a,以及分组2-9。
在完成上述合并后,由于上述待分组集合包括的图像分组发生了变化,因此,需要对上述待分组集合的上述模块度进行更新。
在对上述待分组集合的上述模块度进行更新时,上述设备可以通过将上述设备记录的Q0,加上此次合并对应的最大增量,得到更新后的上述模块度。
当对当前模块度的更新完成后,上述设备可以将上述各图像分组所指示的图像组合形式与上述模块度关联记录起来。
当上述合并完成后,由于产生新的合并图像分组,因此,需要对增量集合进行更新。
在实际应用中,在对上述增量集合进行更新时,可以先计算假设将上述合并图像分组,与上述待分组图像集合包括的各其它图像分组进行合并,上述模块度的增量。
在计算出上述增量后,上述设备可以将上述增量记录至上述增量集合,并删除与被合并的上述两个图像分组中的任一图像分组的分组标识对应的上述增量。
在对上述增量进行更新后,上述设备还可以将上述合并图像分组和上述其它图像分组的分组标识,与假设将上述合并图像分组和上述其它图像分组进行合并后计算出的上述增量的对应关系,记录至上述设备维护的增量与分组标识对应关系表。
当完成对模块度,和增量集合的更新后,可以重复迭代上述S206步骤,直至上述待分组图像集合仅包括唯一的图像分组。
当上述待分组图像集合仅包括唯一图像分组时,上述设备可以确定记录的每次迭代中,更新后的模块度中的最大模块度,并将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果。
在此步骤中,在确定上述最大模块度后,上述设备可以先确定与上述最大模块度对应的该次迭代,然后,上述设备可以读取该次迭代中进行合并操作后,上述图像分组标识集合中包括的各分组标识,并将上述各分组对应的图像分组对应的图像组合方式,确定为针对上述待分组图像集合的图像分组结果。
由上述技术方案可知,一方面,该方法通过在每次迭代步骤中将最大模块度的增量对应的两个图像分组进行合并,从而保证每次合并后,图像的组合方式是本次合并能够达到的最佳组合方式。
另一方面,当合并到只剩一个图像分组时,该方法可以通过追溯记录的各次迭代中更新后的模块度,确定出上述模块度中的最大模块度,并将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果,从而保证可以将图像分组进行合并的过程中,出现的最佳图像组合方式确定为针对上述待分组图像集合的图像分组结果。通过分组的划分,实现各分组内部的图像之间的连接关系相对较强,且各分组内部的图像与其他分组的图像之间连接关系相对较弱。
实施例二:
为了提升图像分组的稳定性,在实施例二中,可以在上述与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果的步骤中,确定上述最大模块度是否达到预设阈值,并在上述最大模块度达到上述预设阈值时,将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果。在此需要说明的是,上述达到预设阈值可以是指大于或大于等于预设阈值,在此可以根据实际情形进行设定。
上述预设阈值,具体可以是开发人员根据经验设定的,与分组结果的稳定性评价标准相关的阈值。该阈值越高,说明对分组结果的稳定性要求越高。
因此,在确定上述最大模块度是否达到预设阈值时,若上述模块度达到上述预设阈值时,则可以说明当前的图像组合方式达到了预先设定的稳定性标准,此时可以将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果。
若上述模块度未达到上述预设阈值时,则可以说明本次分组过程中,与最大模块度对应的图像组合方式未达到了预先设定的稳定性标准,此时可以将上述待分组图像集合中包括的每一张图像,分别作为独立的图像分组。
实施例三:
在本实施例中为了进一步缩减图像分组方法的运算量,从而提高图像分组效率,对上述S204-S208的步骤进行了优化。
具体地,当上述设备执行S204,将上述待分组图像集合中的多个图像分组进行两两组合时,可以仅将具有连接关系的图像分组进行两两组合。
然后,针对得到的每一组合,计算假定将上述组合对应的图像分组进行合并后,上述增量ΔQij(计算上述ΔQij的步骤与上述情形中相类似,在此不做详述)。需要说明的是,在上述情形下,可以将不具有连接关系两个图像分组进行合并后,上述模块度的增量设置为0。
不难发现,通过上述步骤可以不必计算假定将不具有连接关系的两个图像分组进行合并后,上述模块度的增量,从而减少了计算上述增量的运算量,提升了图像分组效率。
等到上述增量计算完毕后,可以基于计算得到的上述增量生成增量集合,并记录假定组合的两个图像分组的分组标识,与将上述两个图像分组进行合并后,计算得到的上述模块度的增量的对应关系。
在本实施例中,上述增量集合可以是以矩阵形式存储。在实际应用中,上述设备在生成上述增量集合时,可以维护一个n*n的矩阵。
其中,上述n*n的矩阵中的每一个元素,可以指示假定将上述元素所属行和所属列分别对应的图像分组进行合并,计算得到的上述增量。上述n为上述待分组图像集合包括的图像数量。需要说明的是,由于具有连接关系的图像对数量通常较少,因此,为了计算方便,上述矩阵可以是稀疏矩阵。
例如,在如图3所示图像分组场景中,可以通过10*10的稀疏矩阵T来记录上述增量集合。请参见图4,图4为本申请示出的一种增量集合的示意图。如图4所示,上述稀疏矩阵T包括的元素Tij,指示假定将上述元素所属行和上述列分别对应的图像分组i与图像分组j进行合并,计算得到的上述增量ΔQij;其中,上述i、j为大于等于0,小于等于9的整数。
在本实施例中,在通过维护n*n的矩阵记录上述增量时,上述设备可以先为各图像分组创建对应的二叉树(例如,平衡二叉树)。然后,每当计算出上述增量后,确定计算上述增量时,假定组合的两个图像分组。接下来,上述设备先针对上述假定组合的两个图像分组中的一个图像分组,确定与其对应的二叉树,并将上述增量,以及上述两个图像分组的分组标识记录至上述二叉树的节点中;在针对上述假定组合的两个图像分组中的另外一个图像分组,确定与其对应的二叉树,并将上述增量,以及上述两个图像分组的分组标识记录至上述二叉树的节点中。
当针对所有上述增量记录完毕后,与各图像分组对应的二叉树的根节点将记录各二叉树中记录的上述增量中的最大增量,以及上述最大增量对应的分组标识。
例如,假设当前计算出一个增量ΔQij,上述设备可以确定当前假定组合的是图像分组i和图像分组j。然后,上述设备可以分别确定图像分组i和图像分组j对应的二叉树。在确定上述二叉树后,上述设备可以确定上述增量ΔQij是否大于上述二叉树的根节点记录的增量;若大于,则可以将上述并将上述增量ΔQij,以及分组标识i和分组标识j写入上述二叉树的根节点中。
在此需要说明的是,当维护上述二叉树除根节点外的其他节点时,可以按照任何方式进行维护,在此不作限定。当然,为了查询节点方便,在维护上述二叉树除根节点外的其他节点时,可以按照增量对应的两个分组标识中,除分组标识i之外的另一个分组标识的大小顺序进行维护。
请参见图5,图5为本申请示出的平衡二叉树的示意图。如图5所示,上述平衡二叉树与上述图像分组i对应。上述平衡二叉树的根节点,记录了与分组标识i对应的上述增量中,最大的增量ΔQij,以及计算上述增量ΔQij时,假定组合的两个图像分组的分组标识i和j。
需要说明的是,图5示出的平衡二叉树,以及上述平衡二叉树的节点的结构仅为示意的。在实际应用中,上述平衡二叉树,上述节点的结构可以根据实际情形进行设定,在此不作限定。
当针对每一上述组合,计算假定将上述组合对应的图像分组进行合并,上述增量后,并将计算得到的各增量写入相应的二叉树后,上述增量集合生成完毕。
不难理解,本实施例中通过上述方式生成增量集合至少具有以下效果:
一方面,通过为各图像分组分别创建对应的二叉树,实际上针对同一个增量,在上述增量对应的两个图像分组各自的二叉树上分别进行了记录。此时,若各图像分组中的两个图像分组合并为一个合并图像分组后,在记录上述合并图像分组对应的上述增量时,无需再为上述合并图像分组维护一个新的二叉树,而是可以将上述增量记录在与上述合并图像分组对应的另外一个图像分组的二叉树中,由此可以减少在记录合并图像分组对应的上述增量时的运算量,进一步提升图像分组效率。
另一方面,由于上述二叉树的根节点记录的是各图像分组对应上述增量的最大值,因此,在后续迭代步骤中确定增量集合的最大增量时,仅需将各图像分组对应的二叉树的根节点记录的增量进行比较,从而提升确定上述最大增量的效率,从而进一步提升图像分组效率。
至此,上述图像分组方法的准备工作已经完成。
接下来进入迭代步骤,具体地,上述设备可以执行S206,确定上述增量集合中的最大增量,将与上述最大增量对应的两个图像分组进行合并得到合并图像分组,更新上述待分组图像集合对应的模块度,以及上述增量集合,迭代执行本步骤,直至上述待分组图像集合仅包括唯一图像分组。
在本实施例中,当确定上述增量集合中包括的最大增量时,可以使用大顶堆(大顶堆中的每个父节点对应的值都大于或等于其左右子节点对应的值)来推出上述最大增量。
例如,在确定上述增量集合中包括的最大增量时,上述设备可以将各二叉树的根节点对应的指针推至维护的大顶堆中。然后,上述设备可以读取上述大顶堆的根节点所记录的指针,并在读取到上述指针后,确定上述指针指示的节点所记录的增量为上述最大增量。
不难理解,由于大顶堆的特性为每个父节点对应的值都大于或等于其左右子节点对应的值,因此,大顶堆的根节点记录的是上述大顶堆中维护的最大值。可见,通过读取上述大顶堆的根节点所记录的指针,并在读取到上述指针后,确定上述指针指示的节点所记录的增量,可以确定出上述增量集合中的最大增量。
当确定出上述增量集合中包括的最大增量后,上述设备可以先确定与上述最大增量对应的两个图像分组。
在本实施例中,上述设备可以通过查询上述指针指示的节点记录的分组标识,来确定上述两个图像分组。
例如,假设上述指针指示的节点上述图5示出的二叉树的根节点。请继续参照图5,此时,可以确定与上述最大增量对应的两个图像分组为分组i和分组j。
在确定与上述最大增量对应的两个图像分组后,上述设备可以将上述两个图像进行合并,并在合并之后,记录合并之后得到的合并图像分组,以及上述合并图像分组的分组标识与被合并的上述两个图像分组的分组标识之间的对应关系。
在实际应用中,在将上述待分组图像集合中与上述最大增量对应的两个图像分组进行合并之后,可以为合并之后产生的合并图像分组分配一个数据节点;其中,上述数据节点的节点标识(节点索引)可以是上述合并图像分组的分组标识。
此时,在记录上述合并图像分组的分组标识,与指示上述两个图像分组的分组标识的对应关系时,上述设备可以将上述对应关系记录至与上述图像合并分组对应的数据节点中。
例如,在如图3所示的图像分组场景中,假设确定的与最大增量对应的两个图像分组为0和1。此时,上述设备将对上述图像分组0和上述图像分组1进行合并,得到合并图像分组。在得到上述合并图像分组时,上述设备可以为上述合并图像分组创建对应的数据节点,并将上述数据节点的节点标识(节点索引)作为上述合并图像分组的分组标识。然后,上述设备可以将分组标识0,与分组标识1记录至上述数据节点中。
请参见图6,图6为本申请示出的一种图像分组合并示意图。
如图6所示,图像分组0,与图像分组1合并为合并图像分组a。其中,数据节点a对应于合并图像分组a。上述数据节点a的节点标识(节点索引)为上述合并图像分组的分组标识a,上述数据节点a记录了分组标识0、1。可以理解的是,本实施例记载的方案可以通过数据节点记录合并图像分组的分组标识,以及被合并的两个图像分组的分组标识,从而记录了合并图像分组,与被合并的两个图像分组之间的对应关系。
在本申请中,上述设备还可以针对被合并的两个图像分组中的每一个图像分组,确定与其对应的数据节点,并从确定的各数据节点中读取记录的图像标识信息。在获取各数据节点中记录的图像标识信息后,上述设备可以将上述图像标识信息写入与上述合并图像分组对应的数据节点中,从而记录生成的合并图像分组与其包括的各图像之间的对应关系。
请继续参见图6,图6中示出的与合并图像分组a对应的数据节点a中记录了图像标识0、1。此时,通过读取节点a记录的图像标识,即可确定图像分组a包括图像0,与图像1。
当上述合并完成后,上述设备可以更新上述待分组图像集合对应的模块度。
在本实施例中,上述设备可以先获取Q0,然后将本次迭代对应的最大增量相加,得到上述待分组图像集合对应的模块度。在得到上述模块度后,可以将上述模块度记录在与本次迭代产生的合并图像分组对应的数据节点中。请继续参见图6,图6中示出的与上述合并图像分组对应的数据节点a记录了本次迭代更新的模块度Q1
当上述合并完成后,上述设备需要更新上述增量集合。
请参见图7,图7为本申请示出的一种更新增量集合方法的方法流程图。
如图7所示,上述更新增量集合方法包括,S702,查找记录的具有连接关系的图像分组的分组标识之间的对应关系,确定与上述最大增量对应的两个图像分组中的任一图像分组具有连接关系的其它图像分组;
S704,确定假定将上述其它图像分组,分别与上述两个图像进行合并得到的上述增量,并将确定的上述增量进行相加得到的结果,作为假定将合并图像分组与上述其它图像分组进行合并后上述模块度的增量。
S706,将上述合并图像分组、上述其它图像分组各自的分组标识,与假定将二者进行合并得到的上述模块的增量之间的对应关系,记录至上述增量集合。
在本实施例中,上述设备在执行上述S702时,可以在上述设备维护的邻接表中,查询包括上述两个图像分组中任一图像分组的分组标识的对应关系,并从查询到的上述对应关系中确定上述其它图像分组。
每当上述设备确定到一个上述其它图像分组时,可以执行上述S704。在本实施例中,在执行上述S704时,上述设备可以根据上述公式5来计算,假定将合并图像分组,与上述其它图像分组进行合并后,上述模块度的增量;其中,上述合并图像分组为,将上述两个图像分组进行合并得到的合并图像分组。
例如,假设图像分组0,与图像分组1合并为合并图像分组a。基于上述邻接表查询到图像分组i,与上述图像分组0具有连接关系。此时,需要计算假定将上述合并图像分组a与上述图像分组i进行合并,上述模块度的增量。
根据上述公式5可知,ΔQai=ΔQ0i+ΔQ1i
其中,在一种方式中,ΔQ0i与ΔQ1i可以分别通过查询与上述图像分组0,以及上述图像分组1对应的二叉树获取(具体查询过程在此不作详述)。本领域技术人员可以理解的是,由于本实施例中将不具有连接关系的图像分组进行合并,得到的上述增量设置为0,因此,当上述其它图像分组i与图像分组1不具有连接关系时,上述ΔQ1i记录的并非实际模块度的增量,而是0。此时,为了获得准确的ΔQai,可以根据上述公式3计算上述ΔQ1i
在另一种方式中,ΔQ0i与ΔQ1i均可以通过上述公式4进行计算。其中,具体的计算过程可参照前述内容,在此不作详述。
在计算出假定将合并图像分组,与其它图像分组进行合并,上述模块的增量后,上述设备可以继续执行S706。
在本实施例中,在执行上述S706时,可以先确定与上述其它图像分组对应的二叉树,并在确定的上述二叉树中记录上述增量。
假设图像分组0,与图像分组1合并为合并图像分组a。基于上述邻接表可以查询到图像分组i,与上述图像分组0具有连接关系。假设将上述合并图像分组a,与上述图像分组i进行合并,上述模块度的增量为ΔQai
此时,上述设备可以先确定与上述图像分组i对应的二叉树。在确定了二叉树后,可以将上述ΔQai插入上述二叉树中。当上述ΔQai插入上述二叉树后,上述二叉树可以重新确定自身记录的增量中的最大增量,并将上述最大增量所在节点移至上述二叉树的根节点中。
当计算出的增量被记录完毕后,上述设备还可以删除上述两个图像分组中的任一图像分组的分组标识对应的上述增量。
在本实施例中,上述设备可以在上述两个图像分组各自对应的二叉树中删除根节点中记录的数据。
在更新各图像分组对应的二叉树后,上述设备还可以在把当前各图像分组对应的根节点指针推入上述大顶堆中,以完成下次迭代。
至此,则完成了针对上述增量集合的更新。
在本实施例中,在每次迭代中,还可以在上述邻接表中记录本次迭代生成的合并图像分组,上述其它图像分组之间的连接关系,并在上述邻接表中,删除包括被合并的两个图像分组中任一图像分组的连接关系。
至此,一次迭代已经完成。上述设备可以持续执行上述迭代步骤S206,直至上述待分组图像集合仅包括唯一图像分组。
可以理解的是,在每次迭代中,都有两个图像分组进行合并得到一个合并图像分组,因此假设上述待分组图像集合最初包括N(N为大于0的自然数)个图像分组,由N个图像分组合并为一个图像分组需要经过N-1次合并迭代。
在上述情形下,可以在上述迭代步骤开始前设置一个数值为1的计数器,而每进行一次迭代,将上述计数器的数值加1。此时,上述设备可以在进行每次迭代步骤前,通过确定上述计数器的数值是否达到N-1来确定是否终止执行上述迭代步骤S206。
当上述待分组图像集合仅包括唯一图像分组时,上述设备可以执行S208。
在本实施例中,上述设备可以从最后一次迭代记录的合并图像分组开始,按照迭代发生的顺序,逆序针对每次迭代中记录的合并图像分组执行以下步骤S2082:
确定用于确认图像组合方式的标识集合中,是否包括上述合并图像分组的分组标识,并在上述标识集合中不包括上述合并图像分组的分组标识时,将本次迭代中记录的合并图像分组的分组标识写入上述标识集合中;
确定与上述记录的合并图像分组相对应的更新后的模块度,是否为记录的每次迭代中更新后的模块度中的最大模块度;
若与上述合并图像分组相对应的更新后的模块度,为记录的各次迭代更新的模块度中的最大模块度,则将上述标识集合中包括的各分组标识所对应的图像标识所指示的图像作为一个图像组合,并将得到的各图像组合确定为针对上述待分组图像集合的图像分组结果。
若与上述合并图像分组相对应的更新后的模块度,并非记录的各次迭代更新的模块度中的最大模块度,则将上述标识集合记录的上述合并图像分组的分组标识,替换为上述合并图像分组对应的合并前的两个图像分组的分组标识。
请参见图8,图8为本申请示出的图像分组合并示意图。
图8中示出的节点为,与图像分组对应的数据节点;其中,节点0-9为,与待分组集合包括的各张图像一一对应的图像分组所对应的数据节点;节点a-i为每次迭代中产生的合并图像分组所对应的数据节点。上述图8中展示出了两个图像分组,与将上述两个图像分组进行合并生成的合并图像分组的对应关系。
可以理解的是,各数据节点在创建时通常携带当前时间戳,因此,通过确定各数据节点携带的时间戳信息即可确定各数据节点的创建顺序。假设在上述图8中,各数据节点的索引指示了各数据节点的创建顺序。比如,节点a的创建时间早于节点b;节点g的创建时间早于节点i。
当上述设备在针对最后一个记录的合并图像分组执行上述S2082时,由于用于确认图像组合方式的标识集合初始为空,因此可以先将节点i记录的与节点i对应的图像分组的分组标识写入上述标识集合中。此时,上述标识集合包括分组标识i。
然后,上述设备可以确定上述节点i记录的模块度,是否为记录的每次迭代中更新后的模块度中的最大模块度。
以下介绍如何确定上述节点i记录的模块度是否为上述最大模块度。
本领域技术人员可以理解的是,在实际情形中,模块度最大时,待分组图像集合包括的图像的组合形式有三种,分别是,一、所有图像组合为一组;二、每一图像各自为一组;三、若干图像组合为一组。
针对第一种情形,实际上每一次合并后当前图像组合形式都趋于稳定,因此对应的模块度逐渐增大,此时,模块度的变化趋势为随着每一次迭代,单调变大。
针对第二种情形,实际上每一次合并后当前图像组合形式都趋于不稳定,因此对应的模块度逐渐减小,此时,模块度的变化趋势为随着每一次迭代,单调变小。
针对第三种情形,实际上由最初的图像组合方式开始至出现模块度最大的图像组合方式结束,每一次合并后当前图像组合形式都趋于稳定。当出现模块度最大模块度的图像组合方式之后,每一合并后当前图像组合形式都趋于不稳定,此时,模块度的变化趋势为随着每一次迭代,先单调变大,当达到峰值时,再单调变小。
本领域技术人员可以理解的是针对上述三种情形,从最后一次迭代开始,按照迭代发生的顺序,逆序针对每次迭代,确定本次迭代中更新后的模块度,是否达到本次迭代对应的上一次迭代中更新后的模块度。在上述情形下,一旦发现确定本次迭代中更新后的模块度,达到本次迭代对应的上一次迭代中更新后的模块度,则可以说明本次迭代中更新的上述模块度为最大模块度。此时,若针对上述每次迭代执行完上述确定步骤后,并未发现满足上述判断条件的模块度,则说明模块度最大值为上述每次迭代发生之前的图像组合方式对应的模块度。
因此,上述设备在确定上述节点i记录的模块度,是否为记录的每次迭代中更新后的模块度中的最大模块度时,可以将上述节点i中记录的模块度Q9,与上述节点h中记录的模块度Q8进行比较。若上述Q9达到上述Q8,则确定上述节点i为上述最大模块度。
上述设备在确定上述节点i记录的模块度,是否为记录的每次迭代中更新后的模块度中的最大模块度时,若上述节点i记录的模块度,是记录的每次迭代中更新后的模块度中的最大模块度。此时,上述设备可以将上述标识集合中包括的各分组标识所对应的图像标识所指示的图像作为一个图像组合,并将得到的各图像组合确定为针对上述待分组图像集合的图像分组结果。
若上述节点i记录的模块度,不是记录的每次迭代中更新后的模块度中的最大模块度,则将上述标识集合记录的上述记录的合并图像分组的分组标识,替换为与上述记录的合并图像分组的分组标识相对应的指示上述两个图像分组的分组标识。
请继续参见图8,假设图8中的节点f记录的模块度为最大模块度。在上述情形下,在针对节点i执行上述S2082时,上述设备可以确定上述节点i记录的模块度并非上述最大模块度。此时,上述设备可以将上述标识集合中的分组标识i,替换为并成图像分组i的两个图像分组的分组标识g、h。此时,上述标识集合包括分组标识g、h。
在针对节点i执行完上述步骤后,可以继续针对节点h执行上述步骤S2082。由于节点h记录的模块度并非上述最大模块度,因此,上述设备可以将上述标识集合中的分组标识h,替换为并成图像分组h的两个图像分组的分组标识e、f。此时,上述标识集合包括分组标识g、e、f。
在针对节点h执行完上述步骤后,可以继续针对节点g执行上述步骤S2082。由于节点g记录的模块度并非上述最大模块度,因此,上述设备可以将上述标识集合中的分组标识g,替换为并成图像分组g的两个图像分组的分组标识c、4。此时,上述标识集合包括分组标识c、4、e、f。
在针对节点g执行完上述步骤后,可以继续针对节点f执行上述步骤S2082。由于节点f记录的模块度为上述最大模块度,因此,上述设备可以确定针对上述待分组图像集合的图像分组结果为图像0-3为一组;图像4独立为一组;图像5-6为一组;图像7-9为一组。
通过本实施例记载的方案可知,本实施例记载的方案可以在对待分组图像进行合理分组的基础上,达到以下效果:
第一,通过为各图像分组分别创建对应的二叉树,实际上针对同一个增量,在上述增量对应的两个图像分组各自的二叉树上分别进行了记录。此时,若各图像分组中的两个图像分组合并为一个合并图像分组后,在记录上述合并图像分组对应的上述增量时,无需再为上述合并图像分组维护一个新的二叉树,而是可以将上述增量记录在与上述合并图像分组对应的另外一个图像分组的二叉树中,由此可以减少在记录合并图像分组对应的上述增量时的运算量,进一步提升图像分组效率。
第二,由于上述二叉树的根节点记录的是各图像分组对应上述增量的最大值,因此,在后续迭代步骤中确定增量集合的最大增量时,仅需将各图像分组对应的二叉树的根节点记录的增量进行比较,从而提升确定上述最大增量的效率,从而进一步提升图像分组效率。
第三,通过将上述二叉树的根节点指针推入大顶堆,并由上述大顶堆推出最大增量,可以提升在增量集合中确定最大增量的效率,从而进一步提升图像分组效率。
实施例四:
在本申请中,在对待分组图像集合中的图像进行分组之后,有可能会出现包括的图像数量较少的图像分组。此时,若对包括图像数量较少的图像分组进行三维重建,将可能出现由于图像分组内部包括的图像数量少而导致重建结果差,或者无法三维重建的问题。
为了解决上述技术问题,在相关技术中将会选取若干包括的图像数量少于最低阈值的图像分组进行融合,得到融合后的图像分组,从而使得到的图像分组包括的图像数量变多。
但是,不难发现,在相关技术中,由于在对图像分组进行融合时并没有考虑到被融合的各图像分组之间的连接关系,因此,通过该方法融合得到的图像分组组内各图像之间的连接关系并不会太强,从而导致针对融合得到的图像分组进行三维重建的重建结果鲁棒性不好。
本实施例提出的技术方案可以在对图像数量少的图像分组进行融合时,先将连接关系最强的两个图像分组进行融合,从而既针对图像数量少的图像分组进行了融合,同时也保证了融合后得到的图像分组内的各图像之间的连接关系相对较强,从而保证针对融合得到的图像分组进行三维重建的重建结果鲁棒性较好。
在介绍实施例四的详细步骤前,先介绍一种用于评价图像分组之间连接关系强弱的指标——连接权重值。
上述连接权重值,具体是一种量化两个图像分组之间连接关系的指标。
在计算两个图像分组之间的连接权重值时,可以先计算其中一个图像分组包括的各图像,与另外一个图像分组包括的各图像之间的相似度。然后,确定计算出的各相似度是否达到预设相似度阈值,并将达到预设相似度阈值的相似度对应的两张图像确定为相匹配的图像;统计两个图像分组之间相匹配的图像数量,并将上述图像数量作为上述两个图像分组之间的连接权重值。
由此可见,上述连接权重值可以量化两个图像分组之间连接关系。
接下来介绍本实施例的详细步骤。
首先,上述设备可以先确定得到的各图像分组中,包括的图像数量小于第一预设数量阈值的图像分组,将确定出的图像分组确定为待融合图像分组;其中,上述第一预设阈值指示各分组中的最小图像数量。然后,再将上述各图像分组中除上述待融合图像分组以外的剩余分组,确定为剩余分组。
上述第一预设阈值,具体是指各分组中的最小图像数量。其中,上述最小图像数量可以是预先设定的一个图像分组中允许包括的最小图像数量。
在此步骤中,上述设备可以先为上述待融合图像分组分配一个待融合图像分组标识集合。然后,上述设备可以逐一确定各图像分组包括的图像数量,并将包括的图像数量小于上述第一预设数量阈值的图像分组的分组标识加入上述融合图像分组标识集合,从而完成确定待融合图像分组的步骤。
确定剩余分组的步骤可以参照确定待融合图像分组的步骤,在此不作详述。
在确定出待融合图像分组后,上述设备可以计算上述待融合分组中每两个图像分组间的连接权重值,组成连接权重值集合;其中,上述连接权重值指示两个图像分组间相匹配的图像数量。
在此步骤中,上述设备可以为上述待融合分组中的各图像分组创建与上述各图像分组一一对应的二叉树(例如,平衡二叉树)。然后,上述设备可以计算上述待融合分组中每两个图像分组间的连接权重值,并将上述连接权重值,以及上述两个图像分组的分组标识记录在上述二叉树的节点中;其中,上述二叉树的根节点记录了各图像分组对应的各连接权重值中的最大连接权重值,以及上述最大连接权重值对应的分组标识。
此时,上述连接权重值集合生成完毕。
然后,上述设备可以根据上述连接权重值集合,对上述待融合图像分组进行融合。
在一些实施例中,在根据上述连接权重值集合,对上述待融合图像分组进行融合时,上述设备可以迭代执行以下步骤,直至上述连接权重值集合中不包括任意连接权重值:
确定上述连接权重值集合中的最大连接权重值。
在此步骤中,在确定上述最大连接权重值时,可以将各图像分组对应的二叉树的根节点指针推至用于推出上述最大连接权重值的大顶堆中。然后,读取上述大顶堆的根节点记录的指针,并将上述记录的指针指示的二叉树节点记录的连接权重值,确定为上述最大连接权重值。
在确定了上述最大连接权重值后,上述设备可以通过上述二叉树节点记录的分组标识,确定上述最大连接权重值对应的两个图像分组。
在确定上述最大连接权重值对应的两个图像分组后,上述设备可以确定其中包括的图像数量较大的一个图像分组中的图像数量,是否达到第二预设数量阈值;其中,上述第二预设数量阈值指示各图像分组中的最大图像数量;
若达到,则终止本次迭代;
若未达到,则对上述两个图像分组进行合并得到合并图像分组,并更新上述连接权重值集合。
上述第二预设数量阈值,具体指示各图像分组中的最大图像数量。其中,上述最大图像数量为各图像分组允许包括的最大图像数量。
在此步骤中,在对上述两个图像分组进行合并得到合并图像分组时,上述设备可以为合并图像分组创建一个数据节点,并将上述被合并的两个图像分组各自对应的数据节点中记录的图像标识写入该数据节点。然后,上述设备可以在上述待融合图像分组标识集合中删除上述被合并的两个图像分组的图像标识,并添加上述合并图像分组的分组标识。
在完成上述合并后,上述设备可以更新上述连接权重值集合。
在本步骤中,上述设备可以先删除被合并的上述两个图像分组各自对应的二叉树中记录的数据。
然后,上述设备可以计算上述合并图像分组与上述待融合分组中其他分组间的连接权重值,并将计算出的上述连接权重值,以及上述合并图像分组与上述其他分组的分组标识写入与上述其他分组对应的二叉树中。此时,上述设备还可以在与上述其他分组对应的二叉树中,删除记录上述其他分组与被合并的上述两个图像分组之间的连接权重值的节点。
可以理解的是,为了提升图像融合效率,在计算上述合并图像分组与上述待融合分组中其他分组间的连接权重值时,可以仅计算与上述合并图像分组有连接关系的其它图像分组,与上述合并图像分组之间的连接权重值。
至此,上述设备完成了针对上述连接权重值集合的更新。
接下来,上述设备可以迭代执行上述步骤,直至上述连接权重值集合中不包括任意连接权重值。
在本实施例中,若上述最大连接权重值对应的两个图像分组中,包括的图像数量较大的一个图像分组中的图像数量,达到第二预设数量阈值时,上述设备除了执行中止本次迭代的操作外,还可以删除上述数量较大的图像分组对应的二叉树,以及在数量较少的图像分组对应的二叉树中,删除记录上述两个图像分之间的连接权重值的节点。
在此需要说明的是,由于在对两个图像分组进行融合或者若某一个图像分组包括的图像数量大于上述第二预设阈值时,将会删除其对应的二叉树,因此,若最大连接权重值对应的图像分组的二叉树为空,则说明该图像分组已无法被融合。
可见,为了加快图像分组融合效率,在每次迭代确定最大连接权重值后,上述设备还可以先确定上述最大连接权重值对应的两个图像分组中的任一组图像对应的二叉树是否为空。若是,则可以终止本次迭代,并在不为空的二叉树中,删除记录上述两个图像分组之间的连接权重值的节点,从而减少无效迭代,提升图像分组融合效率。
当上述连接权重值集合中不包括任意连接权重值时,上述设备可以将上述待融合分组中包括的图像分组,以及上述剩余分组中的图像分组,作为针对上述待分组图像集合的最终图像分组。
具体地,上述设备可以读取上述待融合图像分组标识集合中包括的各分组标识,并针对上述各分组标识,将与每一分组标识对应的图像标识所指示的图像划分为一个图像分组。然后,上述设备可以将划分得到的各图像分组,与剩余分组中的图像分组输出为针对上述待分组图像集合的最终图像分组。
在本实施例中,由于每次迭代中可以将最大连接权重值对应的两个图像分组进行融合,因此,在对图像数量少的图像分组进行融合时,可以先将连接关系最强的两个图像分组进行融合,从而既针对图像数量少的图像分组进行了融合,同时也保证了融合后得到的图像分组内的各图像之间的连接关系相对较强,从而保证针对融合得到的图像分组进行三维重建的重建结果鲁棒性较好。
实施例五:
与前述实施例发明构思相近的,本申请还提出一种三维重建中的图像分组方法。请参见图9,图9为本申请示出的一种三维重建中的图像分组方法的方法流程图。如图9所示,上述方法包括:
S902,将待分组图像集合中的各图像分别作为一个图像分组时,计算上述待分组图像集合对应的模块度。
S904,分别计算上述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合。
S906,确定上述增量集合中包括的最大增量,并进一步确定上述最大增量是否达到0,若是,则将记录的与上述最大增量对应的两个图像分组进行合并得到合并图像分组,并更新上述增量集合;迭代执行本步骤,直至上述待分组图像集合仅包括唯一图像分组。
S908,在每次迭代中,若上述最大增量未达到0,则终止以上迭代步骤,并将本次迭代的上一次迭代合并后的图像组合方式作为针对上述待分组图像集合的最终图像分组结果。
S910,当上述待分组图像集合仅包括唯一图像分组时,则将上述待分组图像集合包括的各图像划分为一个图像分组。
基于在上述实施例三中对每次迭代过程中合并操作后,当前图像组合形式对应的模块度变化趋势进行的分析,当模块度达到最大值时,之后进行迭代将会导致模块度单调下降。
因此,在每次进行合并操作前,可以通过判断此次合并是否会导致模块度降低,若不会,则执行合并操作,否则,则终止合并,并将上次迭代后,图像组合方式作为针对上述待分组图像集合的最终图像分组结果。
具体地,可以判断当前迭代中最大模块度增量是否达到0,若达到0,则说明此次合并之后,上述模块度至少不会降低;但是,一旦发现当前迭代中最大模块度增量为负值,则说明此次合并之后,上述模块度会降低,并且之后每次执行完合并操作后,模块度会一直降低。
由上述技术方案可知,一方面,该方法通过在每次迭代步骤中将最大模块度的增量对应的两个图像分组进行合并,从而保证每次合并后,图像的组合方式是本次合并能够达到的最佳组合方式。
另一方面,在每次进行合并操作前,可以通过判断此次合并是否会导致模块度降低,若不会,则执行合并操作;否则,则终止合并,并将上次迭代后,图像组合方式作为针对上述待分组图像集合的最终图像分组结果,从而保证将迭代过程中模块度最大时,对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果,以使划分出的各分组内部的图像之间的连接关系相对较强,各分组内部的图像与其他分组之间连接关系相对较弱。
本申请还提出一种三维重建中的图像分组装置,请参见图10,图10为本申请示出的一种三维重建中的图像分组装置的结构图。如图10所示,该装置100包括:
第一计算模块101,将待分组图像集合中的各图像分别作为一个图像分组,计算上述待分组图像集合对应的模块度;
第一生成模块102,分别计算假定将上述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合;
第一合并模块103,确定上述增量集合中的最大增量,将与上述最大增量对应的两个图像分组进行合并得到合并图像分组,更新上述待分组图像集合对应的模块度,以及上述增量集合,迭代执行本步骤,直至上述待分组图像集合仅包括唯一图像分组;
第一分组确定模块104,当上述待分组图像集合仅包括唯一图像分组时,确定记录的每次迭代中,更新后的模块度中的最大模块度,并将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果。
在示出的一实施例中,上述第一分组确定模块104,包括:
确定上述最大模块度是否达到预设阈值;
若上述最大模块度达到上述预设阈值,则将与上述最大模块度对应的图像组合方式确定为针对上述待分组图像集合的图像分组结果;
若上述最大的模块度未达到上述预设阈值,则将上述待分组图像集合中包括的每一张图像,分别作为独立的图像分组。
在示出的一实施例中,上述第一生成模块102,包括:
将上述多个图像分组中,具有连接关系的图像分组进行两两组合,并记录具有连接关系的图像分组的分组标识之间的对应关系;
其中,具有连接关系的两个图像分组,是指上述两个图像分组中的其中一个图像分组中的图像与另一个图像分组中的图像之间的相似度达到预设相似度阈值。
在示出的一实施例中,上述增量集合包括假定组合的两个图像分组的分组标识,与假定将上述两个图像分组进行合并后,计算得到的上述增量之间的对应关系;
上述第一合并模块103,包括:
查找记录的具有连接关系的图像分组的分组标识之间的对应关系,确定与上述最大增量对应的两个图像分组中的任一图像分组具有连接关系的其它图像分组;
确定假定将上述其它图像分组,分别与上述两个图像进行合并得到的上述增量,并将确定的上述增量进行相加得到的结果,作为假定将合并图像分组与上述其它图像分组进行合并后上述模块度的增量;
将上述合并图像分组、上述其它图像分组各自的分组标识,与假定将二者进行合并得到的上述模块的增量之间的对应关系,记录至上述增量集合。
在示出的一实施例中,上述装置100还包括:
第一记录模块,在每一次迭代过程中,在对上述增量集合进行更新之后,记录上述合并图像分组的分组标识与上述其它图像分组的分组标识的对应关系。
在示出的一实施例中,上述装置100还包括:
第二记录模块。在每一次迭代过程中,记录合并得到的合并图像分组,以及上述合并图像分组的分组标识与被合并的上述两个图像分组的分组标识之间的对应关系。
在示出的一实施例中,上述合并图像分组与产生上述合并图像分组的迭代中所更新的模块度相对应;上述图像分组的分组标识与指示上述图像分组包括的各图像所对应的图像标识相对应;
上述第一分组确定模块104,包括:
从最后一次迭代记录的合并图像分组开始,按照迭代发生的顺序,逆序针对每次迭代中记录的合并图像分组执行以下步骤:
确定用于确认图像组合方式的标识集合中,是否包括上述合并图像分组的分组标识,并在上述标识集合中不包括上述合并图像分组的分组标识时,将上述合并图像分组的分组标识写入上述标识集合中;
确定与上述合并图像分组相对应的更新后的模块度,是否为记录的每次迭代中更新后的模块度中的最大模块度;
若与上述合并图像分组相对应的更新后的模块度,为记录的各次迭代更新的模块度中的最大模块度,则将上述标识集合中包括的各分组标识所对应的图像标识所指示的图像作为一个图像组合,并将得到的各图像组合确定为针对上述待分组图像集合的图像分组结果。
在示出的一实施例中,上述装置100还包括:
替换模块,若与上述合并图像分组相对应的更新后的模块度,并非记录的各次迭代更新的模块度中的最大模块度,则将上述标识集合记录的上述合并图像分组的分组标识,替换为上述合并图像分组对应的合并前的两个图像分组的分组标识。
在示出的一实施例中,上述确定与上述记录的合并图像分组相对应的更新后的模块度,是否为每次迭代中更新后的模块度中的最大模块度,包括:
确定本次迭代中更新后的模块度,是否达到本次迭代对应的上一次迭代中更新后的模块度;
若是,则将本次迭代中更新的上述模块度确定为上述最大模块度。
在示出的一实施例中,上述第一生成模块102,包括:
针对假定组合计算得到的各上述增量,执行以下步骤:
假定组合分别针对假定组合的两个图像分组,确定与其对应的二叉树,并将上述增量,以及上述假定组合的两个图像的分组标识写入上述确定的二叉树;
其中,上述二叉树的根节点记录了上述二叉树中记录的所有增量中的最大增量,以及上述最大增量对应的分组标识。
在示出的一实施例中,上述确定上述增量集合中包括的最大增量,包括:
将各图像分组对应的上述二叉树的根节点指针推入用于确定最大增量的大顶堆中;
确定上述大顶堆的根节点记录的指针;
将上述记录的指针所指示的节点记录的增量确定为上述增量集合中包括的最大增量。
在示出的一实施例中,上述装置100还包括:
待融合图像分组确定模块,确定得到的各图像分组中,包括的图像数量小于第一预设数量阈值的图像分组,将确定出的图像分组确定为待融合图像分组;其中,上述第一预设阈值指示各分组中的最小图像数量;
剩余分组确定模块,将上述各图像分组中除上述待融合图像分组以外的剩余分组,确定为剩余分组;
连接权重值计算模块,计算上述待融合分组中每两个图像分组间的连接权重值,组成连接权重值集合;其中,上述连接权重值指示两个图像分组之间相匹配的图像数量;
分组融合模块,根据上述连接权重值集合,对上述待融合图像分组进行融合。
在示出的一实施例中,上述分组融合模块,包括:
迭代执行以下步骤,直至上述连接权重值集合中不包括任意连接权重值:
确定上述连接权重值集合中的最大连接权重值;
确定上述最大连接权重值对应的两个图像分组中,数量较大的一个图像分组中的图像数量,是否达到第二预设数量阈值;其中,上述第二预设数量阈值指示各图像分组中的最大图像数量;
若达到,则终止本次迭代;
若未达到,则对上述两个图像分组进行合并得到合并图像分组,并更新上述连接权重值集合;
当上述连接权重值集合中不包括任意连接权重值时,将上述待融合分组中包括的图像分组以及上述剩余分组中的图像分组,作为针对上述待分组图像集合的最终图像分组。
在示出的一实施例中,上述连接权重值计算模块,包括:
为上述待融合分组中的各图像分组创建与上述各图像分组一一对应的二叉树;
计算上述待融合分组中每两个图像分组间的连接权重值,并将上述连接权重值,以及上述两个图像分组的分组标识记录在上述二叉树的节点中;其中,上述二叉树的根节点记录了各图像分组对应的各连接权重值中的最大连接权重值,以及上述最大连接权重值对应的分组标识。
在示出的一实施例中,上述确定上述连接权重值集合中的最大连接权重值,包括:
将上述各图像分组对应的二叉树的根节点指针推送至用于推出上述最大连接权重值的大顶堆中;
读取上述大顶堆的根节点记录的指针,并将上述记录的指针指示的二叉树节点记录的连接权重值,确定为上述最大连接权重值。
在示出的一实施例中,上述装置100还包括:
数据确定模块,确定上述最大连接权重值对应的两个图像分组中的任一组图像对应的二叉树是否为空;
若否,则继续执行后续步骤;
若是,则终止当前迭代。
在示出的一实施例中,上述更新上述连接权重值集合,包括:
删除被合并的上述两个图像分组各自对应的二叉树;
计算上述合并图像分组与上述待融合分组中其他分组间的连接权重值;
将计算出的上述连接权重值,以及上述合并图像分组与上述其他分组的分组标识写入与上述其他分组对应的二叉树;
在与上述其他分组对应的二叉树中,删除记录上述其他分组,与被合并的上述两个图像分组之间的连接权重值的节点。
本申请还提出一种三维重建中的图像分组装置,请参见图11,图11为本申请示出的一种三维重建中的图像分组装置的结构图。如图11所示,该装置110包括:
第二计算模块111,将待分组图像集合中的各图像分别作为一个图像分组时,计算上述待分组图像集合对应的模块度;
第二生成模块112,分别计算上述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合;
第二合并模块113,确定上述增量集合中包括的最大增量,并进一步确定上述最大增量是否达到0,若是,则将记录的与上述最大增量对应的两个图像分组进行合并得到合并图像分组,并更新上述增量集合;迭代执行本步骤,直至上述待分组图像集合仅包括唯一图像分组:
第二分组确定模块114,在每次迭代中,若上述最大增量未达到0,则终止以上迭代步骤,并将本次迭代的上一次迭代合并后的图像组合方式作为针对上述待分组图像集合的最终图像分组结果;
当上述待分组图像集合仅包括唯一图像分组时,则将上述待分组图像集合包括的各图像划分为一个图像分组。
本申请示出的装置的实施例可以应用于电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性记录器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图12所示,为本申请示出的一种电子设备的硬件结构图,除了图12所示的处理器、内存、网络接口、以及非易失性记录器之外,情形中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图12所示的一种电子设备,上述设备包括:处理器;
用于记录处理器可执行指令的记录器;
其中,上述处理器通过运行上述可执行指令以实现上述任一实施例示出的三维重建中的图像分组方法。
本申请提出一种计算机可读记录介质,上述记录介质记录有计算机程序,上述计算机程序用于执行实现上述任一实施例示出的三维重建中的图像分组方法。
本领域技术人员应明白,本申请一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本申请一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用记录介质(包括但不限于磁盘记录器、CD-ROM、光学记录器等)上实施的计算机程序产品的形式。
本申请中记载的“和/或”表示至少具有两者中的其中一个,例如,“A和/或B”包括三种方案:A、B、以及“A和B”。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的行为或步骤可以按照不同于情形中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本申请中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本申请中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机记录介质可以是机器可读记录设备、机器可读记录基板、随机或串行存取记录器设备、或它们中的一个或多个的组合。
本申请中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。上述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读记录器和/或随机存取记录器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于记录指令和数据的一个或多个记录器设备。通常,计算机还将包括用于记录数据的一个或多个大容量记录设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量记录设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式记录设备,仅举几例。
适合于记录计算机程序指令和数据的计算机可读介质包括所有形式的非易失性记录器、媒介和记录器设备,例如包括半导体记录器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和记录器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本申请包含许多具体实施细节,但是这些不应被解释为限制任何公开的范围或所要求保护的范围,而是主要用于描述特定公开的具体实施例的特征。本申请内在多个情形中描述的某些特征也可以在单个情形中被组合实施。另一方面,在单个情形中描述的各种特征也可以在多个情形中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述情形中的各种系统模块和组件的分离不应被理解为在所有情形中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上上述仅为本申请一个或多个实施例的较佳实施例而已,并不用以限制本申请一个或多个实施例,凡在本申请一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请一个或多个实施例保护的范围之内。

Claims (23)

1.一种三维重建中的图像分组方法,其特征在于,所述方法包括:
将待分组图像集合中的各图像分别作为一个图像分组,计算所述待分组图像集合对应的模块度;
分别计算假定将所述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合;
确定所述增量集合中的最大增量,将与所述最大增量对应的两个图像分组进行合并得到合并图像分组,更新所述待分组图像集合对应的模块度,以及所述增量集合,迭代执行本步骤,直至所述待分组图像集合仅包括唯一图像分组;
当所述待分组图像集合仅包括唯一图像分组时,确定记录的每次迭代中,更新后的模块度中的最大模块度,并将与所述最大模块度对应的图像组合方式确定为针对所述待分组图像集合的图像分组结果。
2.根据权利要求1所述的方法,其特征在于,所述将与所述最大模块度对应的图像组合方式确定为针对所述待分组图像集合的图像分组结果,包括:
确定所述最大模块度是否达到预设阈值;
若所述最大模块度达到所述预设阈值,则将与所述最大模块度对应的图像组合方式确定为针对所述待分组图像集合的图像分组结果;
若所述最大的模块度未达到所述预设阈值,则将所述待分组图像集合中包括的每一张图像,分别作为独立的图像分组。
3.根据权利要求1所述的方法,其特征在于,将所述待分组图像集合包括的多个图像分组进行两两组合,包括:
将所述多个图像分组中,具有连接关系的图像分组进行两两组合,并记录具有连接关系的图像分组的分组标识之间的对应关系;
其中,具有连接关系的两个图像分组,是指所述两个图像分组中的其中一个图像分组中的图像与另一个图像分组中的图像之间的相似度达到预设相似度阈值。
4.根据权利要求3所述的方法,其特征在于,所述增量集合包括假定组合的两个图像分组的分组标识,与假定将所述两个图像分组进行合并后,计算得到的所述增量之间的对应关系;
更新所述增量集合,包括:
查找记录的具有连接关系的图像分组的分组标识之间的对应关系,确定与所述最大增量对应的两个图像分组中的任一图像分组具有连接关系的其它图像分组;
确定假定将所述其它图像分组,分别与所述两个图像进行合并得到的所述增量,并将确定的所述增量进行相加得到的结果,作为假定将合并图像分组与所述其它图像分组进行合并后所述模块度的增量;
将所述合并图像分组、所述其它图像分组各自的分组标识,与假定将二者进行合并得到的所述模块的增量之间的对应关系,记录至所述增量集合。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在每一次迭代过程中,在对所述增量集合进行更新之后,记录所述合并图像分组的分组标识与所述其它图像分组的分组标识的对应关系。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在每一次迭代过程中,记录合并得到的合并图像分组,以及所述合并图像分组的分组标识与被合并的所述两个图像分组的分组标识之间的对应关系。
7.根据权利要求6所述的方法,其特征在于,所述合并图像分组与产生所述合并图像分组的迭代中所更新的模块度相对应;所述图像分组的分组标识与指示所述图像分组包括的各图像所对应的图像标识相对应;
所述确定记录的每次迭代中,更新后的模块度中的最大模块度,并将与所述最大模块度对应的图像组合方式确定为针对所述待分组图像集合的图像分组结果,包括:
从最后一次迭代记录的合并图像分组开始,按照迭代发生的顺序,逆序针对每次迭代中记录的合并图像分组执行以下步骤:
确定用于确认图像组合方式的标识集合中,是否包括所述合并图像分组的分组标识,并在所述标识集合中不包括所述合并图像分组的分组标识时,将所述合并图像分组的分组标识写入所述标识集合中;
确定与所述合并图像分组相对应的更新后的模块度,是否为记录的每次迭代中更新后的模块度中的最大模块度;
若与所述合并图像分组相对应的更新后的模块度,为记录的各次迭代更新的模块度中的最大模块度,则将所述标识集合中包括的各分组标识所对应的图像标识所指示的图像作为一个图像组合,并将得到的各图像组合确定为针对所述待分组图像集合的图像分组结果。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若与所述合并图像分组相对应的更新后的模块度,并非记录的各次迭代更新的模块度中的最大模块度,则将所述标识集合记录的所述合并图像分组的分组标识,替换为所述合并图像分组对应的合并前的两个图像分组的分组标识。
9.根据权利要求8所述的方法,其特征在于,所述确定与所述记录的合并图像分组相对应的更新后的模块度,是否为每次迭代中更新后的模块度中的最大模块度,包括:
确定本次迭代中更新后的模块度,是否达到本次迭代对应的上一次迭代中更新后的模块度;
若是,则将本次迭代中更新的所述模块度确定为所述最大模块度。
10.根据权利要求3所述的方法,其特征在于,所述分别计算假定将所述多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合,包括:
针对假定组合计算得到的各所述增量,执行以下步骤:
假定组合分别针对假定组合的两个图像分组,确定与其对应的二叉树,并将所述增量,以及所述假定组合的两个图像的分组标识写入所述确定的二叉树;
其中,所述二叉树的根节点记录了所述二叉树中记录的所有增量中的最大增量,以及所述最大增量对应的分组标识。
11.根据权利要求10所述的方法,其特征在于,所述确定所述增量集合中包括的最大增量,包括:
将各图像分组对应的所述二叉树的根节点指针推入用于确定最大增量的大顶堆中;
确定所述大顶堆的根节点记录的指针;
将所述记录的指针所指示的节点记录的增量确定为所述增量集合中包括的最大增量。
12.根据权利要求1-11任一所述的方法,其特征在于,所述方法还包括:
确定得到的各图像分组中,包括的图像数量小于第一预设数量阈值的图像分组,将确定出的图像分组确定为待融合图像分组;其中,所述第一预设阈值指示各分组中的最小图像数量;
将所述各图像分组中除所述待融合图像分组以外的剩余分组,确定为剩余分组;
计算所述待融合分组中每两个图像分组间的连接权重值,组成连接权重值集合;其中,所述连接权重值指示两个图像分组之间相匹配的图像数量;
根据所述连接权重值集合,对所述待融合图像分组进行融合。
13.根据权利要求12所述的方法,其特征在于,所述根据所述连接权重值集合,对所述待融合图像分组进行融合,包括:
迭代执行以下步骤,直至所述连接权重值集合中不包括任意连接权重值:
确定所述连接权重值集合中的最大连接权重值;
确定所述最大连接权重值对应的两个图像分组中,数量较大的一个图像分组中的图像数量,是否达到第二预设数量阈值;其中,所述第二预设数量阈值指示各图像分组中的最大图像数量;
若达到,则终止本次迭代;
若未达到,则对所述两个图像分组进行合并得到合并图像分组,并更新所述连接权重值集合;
当所述连接权重值集合中不包括任意连接权重值时,将所述待融合分组中包括的图像分组以及所述剩余分组中的图像分组,作为针对所述待分组图像集合的最终图像分组。
14.根据权利要求12所述的方法,其特征在于,所述计算所述待融合分组中每两个图像分组间的连接权重值,组成连接权重值集合,包括:
为所述待融合分组中的各图像分组创建与所述各图像分组一一对应的二叉树;
计算所述待融合分组中每两个图像分组间的连接权重值,并将所述连接权重值,以及所述两个图像分组的分组标识记录在所述二叉树的节点中;其中,所述二叉树的根节点记录了各图像分组对应的各连接权重值中的最大连接权重值,以及所述最大连接权重值对应的分组标识。
15.根据权利要求14所述的方法,其特征在于,所述确定所述连接权重值集合中的最大连接权重值,包括:
将所述各图像分组对应的二叉树的根节点指针推送至用于推出所述最大连接权重值的大顶堆中;
读取所述大顶堆的根节点记录的指针,并将所述记录的指针指示的二叉树节点记录的连接权重值,确定为所述最大连接权重值。
16.根据权利要求14所述的方法,其特征在于,在确定所述连接权重值集合中的最大连接权重值之后,所述方法还包括:
确定所述最大连接权重值对应的两个图像分组中的任一组图像对应的二叉树是否为空;
若否,则继续执行后续步骤;
若是,则终止当前迭代。
17.根据权利要求14所述的方法,其特征在于,所述更新所述连接权重值集合,包括:
删除被合并的所述两个图像分组各自对应的二叉树;
计算所述合并图像分组与所述待融合分组中其他分组间的连接权重值;
将计算出的所述连接权重值,以及所述合并图像分组与所述其他分组的分组标识写入与所述其他分组对应的二叉树;
在与所述其他分组对应的二叉树中,删除记录所述其他分组,与被合并的所述两个图像分组之间的连接权重值的节点。
18.一种三维重建中的图像分组方法,其特征在于,所述方法包括:
将待分组图像集合中的各图像分别作为一个图像分组时,计算所述待分组图像集合对应的模块度;
分别计算所述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合;
确定所述增量集合中包括的最大增量,并进一步确定所述最大增量是否达到0,若是,则将记录的与所述最大增量对应的两个图像分组进行合并得到合并图像分组,并更新所述增量集合;迭代执行本步骤,直至所述待分组图像集合仅包括唯一图像分组:
在每次迭代中,若所述最大增量未达到0,则终止以上迭代步骤,并将本次迭代的上一次迭代合并后的图像组合方式作为针对所述待分组图像集合的最终图像分组结果;
当所述待分组图像集合仅包括唯一图像分组时,则将所述待分组图像集合包括的各图像划分为一个图像分组。
19.一种三维重建中的图像分组装置,其特征在于,所述装置包括:
第一计算模块,将待分组图像集合中的各图像分别作为一个图像分组,计算所述待分组图像集合对应的模块度;
第一生成模块,分别计算假定将所述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合;
第一合并模块,确定所述增量集合中的最大增量,将与所述最大增量对应的两个图像分组进行合并得到合并图像分组,更新所述待分组图像集合对应的模块度,以及所述增量集合,迭代执行本步骤,直至所述待分组图像集合仅包括唯一图像分组;
第一分组确定模块,当所述待分组图像集合仅包括唯一图像分组时,确定记录的每次迭代中,更新后的模块度中的最大模块度,并将与所述最大模块度对应的图像组合方式确定为针对所述待分组图像集合的图像分组结果。
20.根据权利要求19所述的装置,其特征在于,所述装置还包括:
待融合图像分组确定模块,确定得到的各图像分组中,包括的图像数量小于第一预设数量阈值的图像分组,将确定出的图像分组确定为待融合图像分组;其中,所述第一预设阈值指示各分组中的最小图像数量;
剩余分组确定模块,将所述各图像分组中除所述待融合图像分组以外的剩余分组,确定为剩余分组;
连接权重值计算模块,计算所述待融合分组中每两个图像分组间的连接权重值,组成连接权重值集合;其中,所述连接权重值指示两个图像分组之间相匹配的图像数量;
分组融合模块,根据所述连接权重值集合,对所述待融合图像分组进行融合。
21.一种三维重建中的图像分组装置,其特征在于,所述装置包括:
第二计算模块,将待分组图像集合中的各图像分别作为一个图像分组时,计算所述待分组图像集合对应的模块度;
第二生成模块,分别计算所述待分组图像集合包括的多个图像分组进行两两组合时每个组合对应的模块度的增量,得到增量集合;
第二合并模块,确定所述增量集合中包括的最大增量,并进一步确定所述最大增量是否达到0,若是,则将记录的与所述最大增量对应的两个图像分组进行合并得到合并图像分组,并更新所述增量集合;迭代执行本步骤,直至所述待分组图像集合仅包括唯一图像分组:
第二分组确定模块,在每次迭代中,若所述最大增量未达到0,则终止以上迭代步骤,并将本次迭代的上一次迭代合并后的图像组合方式作为针对所述待分组图像集合的最终图像分组结果;
当所述待分组图像集合仅包括唯一图像分组时,则将所述待分组图像集合包括的各图像划分为一个图像分组。
22.一种电子设备,其特征在于,所述设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器中存储的可执行指令,实现权利要求1至17中任一项所述的三维重建中的图像分组方法或实现权利要求18所述的三维重建中的图像分组方法。
23.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行所述权利要求1-17任一项所述的三维重建中的图像分组方法或用于执行所述权利要求18所述的三维重建中的图像分组方法。
CN202010852560.5A 2020-08-21 2020-08-21 三维重建中的图像分组方法及装置、电子设备和存储介质 Active CN111986314B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010852560.5A CN111986314B (zh) 2020-08-21 2020-08-21 三维重建中的图像分组方法及装置、电子设备和存储介质
JP2023507417A JP7541184B2 (ja) 2020-08-21 2021-06-18 3次元再構成における画像グループ化方法及びその装置、電子機器、並びにコンピュータ可読記憶媒体
PCT/CN2021/101049 WO2022037232A1 (zh) 2020-08-21 2021-06-18 三维重建中的图像分组方法及装置、电子设备和计算机可读存储介质
KR1020237006660A KR20230043958A (ko) 2020-08-21 2021-06-18 3 차원 재구성 중 이미지 그루핑 방법 및 장치, 전자 기기 및 컴퓨터 판독 가능한 저장매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010852560.5A CN111986314B (zh) 2020-08-21 2020-08-21 三维重建中的图像分组方法及装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN111986314A true CN111986314A (zh) 2020-11-24
CN111986314B CN111986314B (zh) 2022-08-16

Family

ID=73442862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010852560.5A Active CN111986314B (zh) 2020-08-21 2020-08-21 三维重建中的图像分组方法及装置、电子设备和存储介质

Country Status (4)

Country Link
JP (1) JP7541184B2 (zh)
KR (1) KR20230043958A (zh)
CN (1) CN111986314B (zh)
WO (1) WO2022037232A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113326880A (zh) * 2021-05-31 2021-08-31 南京信息工程大学 基于社团划分的无监督图像分类方法
WO2022037232A1 (zh) * 2020-08-21 2022-02-24 浙江商汤科技开发有限公司 三维重建中的图像分组方法及装置、电子设备和计算机可读存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116310227B (zh) * 2023-05-18 2023-09-12 海纳云物联科技有限公司 三维稠密重建方法、装置、电子设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198524A (zh) * 2013-04-27 2013-07-10 清华大学 一种大规模室外场景三维重建方法
US20150220627A1 (en) * 2014-02-04 2015-08-06 International Business Machines Corporation System and method for finding collective interest-based social communities
KR101710606B1 (ko) * 2015-10-23 2017-03-08 아주대학교산학협력단 복잡계 네트워크에서의 집합 관계 분석 시각화 장치 및 그 방법
CN108287864A (zh) * 2017-12-06 2018-07-17 深圳市腾讯计算机系统有限公司 一种兴趣群组划分方法、装置、介质及计算设备
CN109408722A (zh) * 2018-11-06 2019-03-01 腾讯科技(深圳)有限公司 社区划分方法、装置、计算设备及存储介质
CN111091145A (zh) * 2019-12-04 2020-05-01 成都理工大学 一种基于边分类的社区检测算法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020095498A (ja) 2018-12-13 2020-06-18 アズビル株式会社 画像分類装置および方法
CN110751680A (zh) * 2019-10-17 2020-02-04 中国科学院云南天文台 一种具有快速对齐算法的图像处理方法
CN111986314B (zh) * 2020-08-21 2022-08-16 浙江商汤科技开发有限公司 三维重建中的图像分组方法及装置、电子设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198524A (zh) * 2013-04-27 2013-07-10 清华大学 一种大规模室外场景三维重建方法
US20150220627A1 (en) * 2014-02-04 2015-08-06 International Business Machines Corporation System and method for finding collective interest-based social communities
KR101710606B1 (ko) * 2015-10-23 2017-03-08 아주대학교산학협력단 복잡계 네트워크에서의 집합 관계 분석 시각화 장치 및 그 방법
CN108287864A (zh) * 2017-12-06 2018-07-17 深圳市腾讯计算机系统有限公司 一种兴趣群组划分方法、装置、介质及计算设备
CN109408722A (zh) * 2018-11-06 2019-03-01 腾讯科技(深圳)有限公司 社区划分方法、装置、计算设备及存储介质
CN111091145A (zh) * 2019-12-04 2020-05-01 成都理工大学 一种基于边分类的社区检测算法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
M. E. J. NEWMAN: "Finding community structure in networks using the eigenvectors of matrices", 《PHYSICAL REVIEW E》 *
潘利强 等: "复杂网络中社区发现算法的对比研究", 《福建电脑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022037232A1 (zh) * 2020-08-21 2022-02-24 浙江商汤科技开发有限公司 三维重建中的图像分组方法及装置、电子设备和计算机可读存储介质
CN113326880A (zh) * 2021-05-31 2021-08-31 南京信息工程大学 基于社团划分的无监督图像分类方法

Also Published As

Publication number Publication date
WO2022037232A1 (zh) 2022-02-24
JP2023536621A (ja) 2023-08-28
CN111986314B (zh) 2022-08-16
JP7541184B2 (ja) 2024-08-27
KR20230043958A (ko) 2023-03-31

Similar Documents

Publication Publication Date Title
CN111986314B (zh) 三维重建中的图像分组方法及装置、电子设备和存储介质
CN108920720B (zh) 基于深度哈希和gpu加速的大规模图像检索方法
CN105654548B (zh) 一种基于大规模无序图像的多起点增量式三维重建方法
Diks et al. Tree exploration with little memory
CN105653689B (zh) 一种用户传播影响力的确定方法和装置
CN103838820A (zh) 基于近邻传播的进化多目标优化社区检测方法
CN110097581B (zh) 基于点云配准icp算法构建k-d树的方法
Liu et al. Exploring gradient flow based saliency for dnn model compression
KR20210061119A (ko) 큰 규모 분산 행렬 곱 처리 방법 및 그 장치
Duvignau et al. Piecewise linear approximation in data streaming: Algorithmic implementations and experimental analysis
CN111190896B (zh) 数据处理方法、装置、存储介质和计算机设备
CN104463864A (zh) 多级并行关键帧云提取方法及系统
CN109993338A (zh) 一种链路预测方法及装置
CN112183567B (zh) Birch算法的优化方法、装置、设备及存储介质
CN110879952B (zh) 一种视频帧序列的处理方法及装置
CN111277902B (zh) 一种视频匹配方法和装置及设备
WO2021235458A1 (ja) マップ情報更新方法、ランドマーク生成方法、及び特徴点分布調整方法
CN113495494B (zh) 机器人的仿真运行方法、装置和系统
CN111008301B (zh) 一种以图搜视频的方法
CN112667402B (zh) 一种分布式计算SimRank单源节点相似度的方法和装置
CN109992701B (zh) 一种链表实现方法、装置、设备及可读存储介质
CN112214534B (zh) 对有缺失的数据进行近似查询的方法、系统及存储介质
WO2022121029A1 (zh) 一种面向超算用户体验质量的多路径路由方法和装置
Di Placido An Hyper Dimensional Classifier for Dynamic Vision Sensors
CN116931885A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40040788

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant