CN114758334A - 一种对象注册方法及装置 - Google Patents

一种对象注册方法及装置 Download PDF

Info

Publication number
CN114758334A
CN114758334A CN202011607387.9A CN202011607387A CN114758334A CN 114758334 A CN114758334 A CN 114758334A CN 202011607387 A CN202011607387 A CN 202011607387A CN 114758334 A CN114758334 A CN 114758334A
Authority
CN
China
Prior art keywords
image
pose
network
input
composite
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
CN202011607387.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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011607387.9A priority Critical patent/CN114758334A/zh
Priority to PCT/CN2021/140241 priority patent/WO2022143314A1/zh
Publication of CN114758334A publication Critical patent/CN114758334A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • 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
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • 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
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Graphics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)

Abstract

本申请公开一种对象注册方法及装置,涉及计算机视觉领域,解决了如何提高终端设备的位姿的准确度的问题。该方案包括:获取包括第一对象的多个第一输入图像,该多个第一输入图像包括第一对象的真实图像和/或第一对象的多个第一合成图像;多个第一合成图像是由第一对象的三维模型在多个第一位姿下可微渲染得到的;多个第一位姿不同;分别提取多个第一输入图像的特征信息,特征信息用于指示第一对象在其所处的第一输入图像中的特征;将每个第一输入图像中提取的特征信息,与第一对象的标识相对应,进行第一对象的注册。

Description

一种对象注册方法及装置
技术领域
本申请实施例涉及计算机视觉领域,尤其涉及一种对象注册方法及装置。
背景技术
计算机视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断,和军事等领域中各种智能/自主系统中不可分割的一部分,它是一门关于如何运用照相机/摄像机和计算机来获取我们所需的,被拍摄对象的数据与信息的学问。形象地说,就是给计算机安装上眼睛(照相机/摄像机)和大脑(算法)用来代替人眼对目标进行识别、跟踪和测量等,从而使计算机能够感知环境。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。总的来说,计算机视觉就是用各种成象系统代替视觉器官获取输入信息,再由计算机来代替大脑对这些输入信息完成处理和解释。计算机视觉的最终研究目标就是使计算机能像人那样通过视觉观察和理解世界,具有自主适应环境的能力。
对象(人或物)的位姿检测与跟踪是计算机视觉领域的关键技术,能够赋予机器感知真实环境中物体的三维空间位置及语义的能力,在机器人、自动驾驶、增强现实等领域有着广泛的用途。
在实际应用中,通常是先构建多对象位姿估计网络,用于从输入的图像中识别可识别的对象的位姿;然后利用机器学习的方法,采用用户提供的多个待识别对象的三维(3dimensions,3D)网络模型,训练该多对象位姿估计网络,将待识别对象注册到多对象位姿估计网络中,实现该多对象位姿估计网络对已经注册对象可识别。在线上应用时,图片输入多对象位姿估计网络,由多对象位姿估计网络识别图片中的对象的位姿。
当需在多对象位姿估计网络中新增待识别对象注册时,由用户提供新增的待识别对象的三维模型,采用新增的三维模型和原有的三维模型一起对多对象位姿估计网络重新训练,导致训练时间的线性增长,并影响多对象位姿估计网络对已经训练好的可识别的对象的识别效果,导致检测准确率、成功率下降。
发明内容
本申请提供的对象注册方法及装置,解决了如何提高终端设备的位姿的准确度的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种对象注册方法,该方法可以包括:获取包括第一对象的多个第一输入图像,该多个第一输入图像包括第一对象的真实图像和/或第一对象的多个第一合成图像;多个第一合成图像是由第一对象的三维模型在多个第一位姿下可微渲染得到的;多个第一位姿不同;分别提取多个第一输入图像的特征信息,特征信息用于指示第一对象在其所处的第一输入图像中的特征;将每个第一输入图像中提取的特征信息,与第一对象的标识相对应,进行第一对象的注册。
通过本申请提供的对象注册方法,提取图像中对象的特征信息进行对象注册,注册时间短,且不影响其他已注册对象的识别性能,即使新增很多对象注册,也不会过大的增加注册时间,也保证了已注册对象的检测性能。
在一种可能的实现方式中,上述特征信息可以包括局部特征点的描述子,以及全局特征的描述子。
在另一种可能的实现方式中,分别提取多个第一输入图像的特征信息,具体可以实现为:将多个第一输入图像分别输入第一网络进行位姿识别,得到每个第一输入图像中第一对象的位姿;按照获取的第一对象的位姿,将第一对象的三维模型分别投影至每个第一输入图像,得到每个第一输入图像中的投影区域;分别在每个第一输入图像中的投影区域,提取特征信息。其中,第一网络用于识别图像中第一对象的位姿。通过图像中第一对象的位姿,确定图像中第一对象的区域,在该区域中提取特征信息,提高了特征信息提取的效率以及准确度。
在另一种可能的实现方式中,分别提取多个第一输入图像的特征信息,具体可以实现为:将多个第一输入图像分别输入第一网络进行黑白图像提取,获取每个第一输入图像中第一对象的黑白图像;分别在每个第一输入图像中第一对象的黑白图像内,提取特征信息。其中,第一网络用于提取图像中第一对象的黑白图像。将图像中第一对象的黑白图像,确定为图像中第一对象的区域,在该区域中提取特征信息,提高了特征信息提取的效率以及准确度。
在另一种可能的实现方式中,本申请提供的对象注册方法还可以包括优化可微渲染器的过程,该过程可以包括:将第一对象的N个真实图像分别输入第一网络,得到第一网络输出的每个真实图像中第一对象的第二位姿;N大于或等于1;第一网络用于识别图像中第一对象的位姿;根据第一对象的三维模型,采用可微渲染器在每个第二位姿下,可微渲染得到N个第二合成图像;获取一个第二位姿的真实图像与该一个第二位姿渲染得到的第二合成图像相对应;分别截取每个真实图像中,与真实对象对应的第二合成图像中第一对象相同位置的区域,作为每个真实图像的前景图像;根据N个真实图像的前景图像与其对应的第二合成图像的第一差异信息,构建第一损失函数;其中,第一差异信息用于指示前景图像与其对应的第二合成图像的差异;根据第一损失函数更新可微渲染器,使得可微渲染器的输出的合成图像逼近对象的真实图像。通过对可微渲染器进行优化,提高了可微渲染器的渲染真实性,降低可微渲染得到的合成图像与真实图像之间的差异。
在另一种可能的实现方式中,第一差异信息可以包括下述信息中一项或多项:特征图差、像素颜色差、提取的特征描述子之差。
在另一种可能的实现方式中,第一损失函数可以为N个真实图像的前景图像与其对应的第二合成图像的多个第一差异信息的计算值之和。
在另一种可能的实现方式中,本申请提供的对象注册方法还可以包括训练对象位姿检测网络的方法,具体可以包括:获取包括第一对象的多个第二输入图像,该多个第二输入图像包括第一对象的真实图像和/或第一对象的多个第三合成图像;多个第三合成图像是由第一对象的三维模型在多个第三位姿下渲染得到的;多个第三位姿不同;将多个第二输入图像分别输入第二网络进行位姿识别,得到第二网络输出的每个第二输入图像中第一对象的第四位姿;第二网络用于识别图像中第一对象的位姿;根据第一对象的三维模型,可微渲染获取第一对象在每个第四位姿下的第四合成图像;获取一个第四位姿的第二输入图像与一个第四位姿渲染得到的第四合成图像相对应;根据每个第四合成图像与其对应的第二输入图像的第二差异信息,构建第二损失函数;第二差异信息用于指示第四合成图像与其对应的第二输入图像的差异;根据第二损失函数更新第二网络,得到第一网络;第一网络识别的图像中第一对象的位姿与图像中第一对象的真实位姿的差异,小于第二网络识别的图像中第一对象的位姿与图像中第一对象的真实位姿差异。通过训练对象位姿检测网络,提高了位姿识别网络识别的准确度,降低位姿识别网络的输出与图像中对象的真实位姿之间的差异。
在另一种可能的实现方式中,第二损失函数Loss2可以满足如下表达式:
Figure BDA0002870530660000031
X大于或等于1,λi为权值,Li用于表示第四合成图像与其对应的第二输入图像的第二差异信息的计算值。该实现方式提供一种具体的第二损失函数的表达,使得对象位姿检测网络进行训练,提高了位姿检测网络识别的准确度。
在另一种可能的实现方式中,第二差异信息可以包括下述内容中一项或多项:第四合成图像中第一对象的黑白图像与其对应的第二输入图像的中第一对象的黑白图像的交并比(intersection of union,IOU)之差、获取第四合成图像的第四位姿与第四合成图像经过第一网络得到的位姿之差、第四合成图像与其对应的第二输入图像中与第四合成图像中的第一对象相同位置的区域图像的相似度。该实现方式提供了第二差异信息的可能实现,丰富了第二差异信息的内容。
第二方面,提供一种显示方法,该方法可以包括:获取第一图像;若第一图像中包括一个或多个可识别对象,输出第一信息,该第一信息用于提示检测到第一图像中包括可识别对象;通过第一图像包括的每个可识别对象对应的位姿检测网络,获取第一图像中每个可识别对象的位姿;按照每个可识别对象的位姿,显示每个可识别对象对应的虚拟内容;若第一图像中未包括任一可识别对象,输出第二信息,第二信息用于提示未检测到可识别对象,调整视角以获取第二图像,第二图像与所述第一图像不同。
通过本申请提供的显示方法,将图像中是否包括可识别对象向用户输出提示,使得用户可以直观获取图像中是否包括可识别对象,提高了用户体验。
一种可能的实现方式中,本申请提供的显示方法还可以包括:提取第一图像中的特征信息,该特征信息用于指示所述第一图像中可识别的特征;判断特征库中是否存在与提取的特征信息的匹配距离满足预设条件的特征信息;其中,特征库中存储了不同对象的一个或多个特征信息;若特征库中存在与特征信息的匹配距离满足预设条件的特征信息,确定第一图像中包括一个或多个可识别对象;若特征库中不存在与特征信息的匹配距离满足预设条件的特征信息,确定第一图像未包括任一可识别对象。通过图像的特征信息与特征库对比,可以简单快速的判断图像中是否包括可识别对象。
一种可能的实现方式中,预设条件可以包括小于或等于预设阈值。
另一种可能的实现方式中,本申请提供的显示方法还可以包括:获取第一图像中的一个或多个第一局部特征点,第一局部特征点的描述子与特征库中的局部特征点的描述子的匹配距离小于或等于第一阈值;特征库中存储了不同对象的局部特征点的描述子;根据第一局部特征点,确定第一图像中一个或多个感兴趣区域(region of interest,ROI);一个ROI中包括一个对象;提取每个ROI中的全局特征;若每个ROI中的全局特征中存在一个或多个第一全局特征,确定第一图像中包括第一全局特征对应的可识别对象;其中,第一全局特征的描述子与特征库中的全局特征的描述子的匹配距离小于或等于第二阈值;特征库中还存储了不同对象的全局特征的描述子;若每个ROI中的全局特征中不存在第一全局特征,确定第一图像未包括任一可识别对象。先通过图像的局部特征点与特征库对比,确定ROI区域,再在ROI区域中提取全局特征与特征库对比,可以提高判断图像中是否包括可识别对象的效率,也提高了判断图像中是否包括可识别对象准确度。
另一种可能的实现方式中,本申请提供的显示方法还可以包括与前述第一方面提供的对象注册方法结合使用,本申请提供的显示方法还可以包括:获取包括第一对象的多个第一输入图像,多个第一输入图像包括第一对象的真实图像和/或第一对象的多个第一合成图像;多个第一合成图像是由第一对象的三维模型在多个第一位姿下可微渲染得到的;多个第一位姿不同;分别提取多个第一输入图像的特征信息,特征信息用于指示第一对象在其所处的第一输入图像中的特征;将每个第一输入图像中提取的特征信息,与第一对象的标识相对应存储于所述特征库,进行第一对象的注册。通过提取图像中对象的特征信息进行对象注册,注册时间短,且不影响其他已注册对象的识别性能,即使新增很多对象注册,也不会过大的增加注册时间,也保证了已注册对象的检测性能。
另一种可能的实现方式中,上述特征信息可以包括局部特征点的描述子,以及全局特征的描述子。
需要说明的是,对象注册方法的具体实现可以参照前述第一方面,此处不再赘述。
另一种可能的实现方式中,本申请提供的显示方法还可以包括优化可微渲染器的过程,该过程可以包括:将第一对象的N个真实图像分别输入第一网络,得到第一网络输出的每个真实图像中第一对象的第二位姿;N大于或等于1;第一网络用于识别图像中第一对象的位姿;根据第一对象的三维模型,采用可微渲染器在每个第二位姿下,可微渲染得到N个第二合成图像;获取一个第二位姿的真实图像与该一个第二位姿渲染得到的第二合成图像相对应;分别截取每个真实图像中,与真实对象对应的第二合成图像中第一对象相同位置的区域,作为每个真实图像的前景图像;根据N个真实图像的前景图像与其对应的第二合成图像的第一差异信息,构建第一损失函数;其中,第一差异信息用于指示前景图像与其对应的第二合成图像的差异;根据第一损失函数更新可微渲染器,使得可微渲染器的输出的合成图像逼近对象的真实图像。通过对可微渲染器进行优化,提高了可微渲染器的渲染真实性,降低可微渲染得到的合成图像与真实图像之间的差异。
在另一种可能的实现方式中,第一差异信息可以包括下述信息中一项或多项:特征图差、像素颜色差、提取的特征描述子之差。
在另一种可能的实现方式中,第一损失函数可以为N个真实图像的前景图像与其对应的第二合成图像的多个第一差异信息的计算值之和。
在另一种可能的实现方式中,本申请提供的对象注册方法还可以包括训练对象位姿检测网络的方法,具体可以包括:获取包括第一对象的多个第二输入图像,该多个第二输入图像包括第一对象的真实图像和/或第一对象的多个第三合成图像;多个第三合成图像是由第一对象的三维模型在多个第三位姿下渲染得到的;多个第三位姿不同;将多个第二输入图像分别输入第二网络进行位姿识别,得到第二网络输出的每个第二输入图像中第一对象的第四位姿;第二网络用于识别图像中第一对象的位姿;根据第一对象的三维模型,可微渲染获取第一对象在每个第四位姿下的第四合成图像;获取一个第四位姿的第二输入图像与一个第四位姿渲染得到的第四合成图像相对应;根据每个第四合成图像与其对应的第二输入图像的第二差异信息,构建第二损失函数;第二差异信息用于指示第四合成图像与其对应的第二输入图像的差异;根据第二损失函数更新第二网络,得到第一网络;第一网络识别的图像中第一对象的位姿与图像中第一对象的真实位姿的差异,小于第二网络识别的图像中第一对象的位姿与图像中第一对象的真实位姿差异。通过对位姿检测网络进行训练,提高了位姿检测网络识别的准确度,降低位姿检测网络的输出与图像中对象的真实位姿之间的差异。
在另一种可能的实现方式中,第二损失函数Loss2可以满足如下表达式:
Figure BDA0002870530660000051
X大于或等于1,λi为权值,Li用于表示第四合成图像与其对应的第二输入图像的第二差异信息的计算值。该实现方式提供一种具体的第二损失函数的表达,对位姿检测网络进行优化,提高了位姿检测网络识别的准确度。
在另一种可能的实现方式中,第二差异信息可以包括下述内容中一项或多项:第四合成图像中第一对象的黑白图像与其对应的第二输入图像的中第一对象的黑白图像的IOU之差、获取第四合成图像的第四位姿与第四合成图像经过第一网络得到的位姿之差、第四合成图像与其对应的第二输入图像中与第四合成图像中的第一对象相同位置的区域图像的相似度。该实现方式提供了第二差异信息的可能实现,丰富了第二差异信息的内容。
第三方面,本申请提供一种训练对象位姿检测网络的方法,该方法具体可以包括:获取包括第一对象的多个第二输入图像,该多个第二输入图像包括第一对象的真实图像和/或第一对象的多个第三合成图像;多个第三合成图像是由第一对象的三维模型在多个第三位姿下渲染得到的;多个第三位姿不同;将多个第二输入图像分别输入第二网络进行位姿识别,得到第二网络输出的每个第二输入图像中第一对象的第四位姿;第二网络用于识别图像中第一对象的位姿;根据第一对象的三维模型,可微渲染获取第一对象在每个第四位姿下的第四合成图像;获取一个第四位姿的第二输入图像与一个第四位姿渲染得到的第四合成图像相对应;根据每个第四合成图像与其对应的第二输入图像的第二差异信息,构建第二损失函数;第二差异信息用于指示第四合成图像与其对应的第二输入图像的差异;根据第二损失函数更新第二网络,得到第一网络;第一网络识别的图像中第一对象的位姿与图像中第一对象的真实位姿的差异,小于第二网络识别的图像中第一对象的位姿与图像中第一对象的真实位姿差异。
通过对位姿检测网络进行训练,提高了位姿检测网络识别的准确度,降低位姿检测网络的输出与图像中对象的真实位姿之间的差异。
需要说明的是,第三方面的具体实现,可以参照前述第一方面中描述的训练对象位姿检测网络的具体实现,可以达到相同的有益效果,此处不再赘述。
第四方面,提供一种对象注册装置,该装置包括:第一获取单元、提取单元以及注册单元。其中:
第一获取单元,用于获取包括第一对象的多个第一输入图像,该多个第一输入图像包括第一对象的真实图像和/或第一对象的多个第一合成图像;多个第一合成图像是由第一对象的三维模型在多个第一位姿下可微渲染得到的;多个第一位姿不同。
提取单元,用于分别提取多个第一输入图像的特征信息,特征信息用于指示第一对象在其所处的第一输入图像中的特征。
注册单元,用于将提取单元在每个第一输入图像中提取的特征信息,与第一对象的标识相对应,进行第一对象的注册。
通过本申请提供的对象注册装置,提取图像中对象的特征信息进行对象注册,注册时间短,且不影响其他已注册对象的识别性能,即使新增很多对象注册,也不会过大的增加注册时间,也保证了已注册对象的检测性能。
在一种可能的实现方式中,特征信息包括局部特征点的描述子,以及全局特征的描述子。
在另一种可能的实现方式中,提取单元具体可以用于:将多个第一输入图像分别输入第一网络进行位姿识别,得到每个第一输入图像中第一对象的位姿;按照获取的第一对象的位姿,将第一对象的三维模型分别投影至每个第一输入图像,得到每个第一输入图像中的投影区域;分别在每个第一输入图像中的投影区域,提取特征信息。其中,第一网络用于识别图像中第一对象的位姿。通过图像中第一对象的位姿,确定图像中第一对象的区域,在该区域中提取特征信息,提高了特征信息提取的效率以及准确度。
在另一种可能的实现方式中,提取单元具体可以用于:将多个第一输入图像分别输入第一网络进行黑白图像提取,获取每个第一输入图像中第一对象的黑白图像;分别在每个第一输入图像中第一对象的黑白图像内,提取特征信息。其中,第一网络用于提取图像中第一对象的黑白图像。将图像中第一对象的黑白图像,确定为图像中第一对象的区域,在该区域中提取特征信息,提高了特征信息提取的效率以及准确度。
在另一种可能的实现方式中,该装置还可以包括:处理单元、可微渲染器、截图单元、构建单元以及更新单元。其中:
处理单元,用于将第一对象的N个真实图像分别输入第一网络,得到第一网络输出的每个真实图像中所述第一对象的第二位姿。N大于或等于1。第一网络用于识别图像中第一对象的位姿。
可微渲染器,用于根据第一对象的三维模型,在每个第二位姿下,可微渲染得到N个第二合成图像;获取一个第二位姿的真实图像与一个第二位姿渲染得到的第二合成图像相对应。
截取单元,用于分别截取每个真实图像中,与真实对象对应的第二合成图像中第一对象相同位置的区域,作为每个真实图像的前景图像。
构建单元,用于根据N个真实图像的前景图像与其对应的第二合成图像的第一差异信息,构建第一损失函数。其中,第一差异信息用于指示前景图像与其对应的第二合成图像的差异。
更新单元,用于根据第一损失函数更新可微渲染器,使得可微渲染器的输出的合成图像逼近对象的真实图像。
通过对可微渲染器进行优化,提高了可微渲染器的渲染真实性,降低可微渲染得到的合成图像与真实图像之间的差异。
在另一种可能的实现方式中,第一差异信息可以包括下述信息中一项或多项:特征图差、像素颜色差、提取的特征描述子之差。
在另一种可能的实现方式中,第一损失函数可以为N个真实图像的前景图像与其对应的第二合成图像的多个第一差异信息的计算值之和。
在另一种可能的实现方式中,该装置还可以包括:第二获取单元、处理单元、可微渲染器、构建单元以及更新单元。其中:
第二获取单元,用于获取包括第一对象的多个第二输入图像,多个第二输入图像包括第一对象的真实图像和/或第一对象的多个第三合成图像;多个第三合成图像是由第一对象的三维模型在多个第三位姿下渲染得到的。多个第三位姿不同。
处理单元,用于将多个第二输入图像分别输入第二网络进行位姿识别,得到第二网络输出的每个第二输入图像中第一对象的第四位姿;第二网络用于识别图像中第一对象的位姿。
可微渲染器,用于根据第一对象的三维模型,可微渲染获取第一对象在每个第四位姿下的第四合成图像。获取一个第四位姿的第二输入图像与一个第四位姿渲染得到的第四合成图像相对应。
构建单元,用于根据每个第四合成图像与其对应的第二输入图像的第二差异信息,构建第二损失函数。第二差异信息用于指示第四合成图像与其对应的第二输入图像的差异。
更新单元,用于根据第二损失函数更新第二网络,得到第一网络。第一网络识别的图像中第一对象的位姿与图像中第一对象的真实位姿的差异,小于第二网络识别的图像中第一对象的位姿与图像中第一对象的真实位姿差异。
通过对位姿检测网络进行训练,提高了位姿检测网络识别的准确度,降低位姿检测网络的输出与图像中对象的真实位姿之间的差异。
在另一种可能的实现方式中,第二损失函数Loss2可以满足如下表达式:
Figure BDA0002870530660000071
X大于或等于1,λi为权值,Li用于表示第四合成图像与其对应的第二输入图像的第二差异信息的计算值。该实现方式提供一种具体的第二损失函数的表达,对位姿检测网络进行优化,提高了位姿检测网络识别的准确度。
在另一种可能的实现方式中,第二差异信息可以包括下述内容中一项或多项:第四合成图像中第一对象的黑白图像与其对应的第二输入图像的中第一对象的黑白图像的IOU之差、获取第四合成图像的第四位姿与第四合成图像经过第一网络得到的位姿之差、第四合成图像与其对应的第二输入图像中与第四合成图像中的第一对象相同位置的区域图像的相似度。该实现方式提供了第二差异信息的可能实现,丰富了第二差异信息的内容。
需要说明的是,第四方面提供的对象注册装置,用于实现上述第一方面提供的对象注册方法,其具体实现可以参照前述第一方面的具体实现,此处不再赘述。
第五方面,提供一种显示装置,该装置包括第一获取单元、输出单元以及处理单元;其中:
第一获取单元,用于获取第一图像。
输出单元,用于若第一图像中包括一个或多个可识别对象,输出第一信息,第一信息用于提示检测到第一图像中包括可识别对象。若第一图像中未包括任一可识别对象,输出第二信息,第二信息用于提示未检测到可识别对象,调整视角以使得第一获取单元获取第二图像,第二图像与所述第一图像不同。
处理单元,用于若第一图像中包括一个或多个可识别对象,通过第一图像包括的每个可识别对象对应的位姿检测网络,获取第一图像中每个可识别对象的位姿;按照每个可识别对象的位姿,显示每个可识别对象对应的虚拟内容。
通过本申请提供的显示装置,将图像中是否包括可识别对象向用户输出提示,使得用户可以直观获取图像中是否包括可识别对象,提高了用户体验。
一种可能的实现方式中,该装置还可以包括:提取单元、判断单元以及第一确定单元。其中:
提取单元,用于提取第一图像中的特征信息,特征信息用于指示第一图像中可识别的特征。
判断单元,用于判断特征库中是否存在与特征信息的匹配距离满足预设条件的特征信息。其中,特征库中存储了不同对象的一个或多个特征信息。
第一确定单元,用于若特征库中存在与特征信息的匹配距离满足预设条件的特征信息,确定第一图像中包括一个或多个可识别对象;若特征库中不存在与特征信息的匹配距离满足预设条件的特征信息,确定第一图像未包括任一可识别对象。
通过图像的特征信息与特征库对比,可以简单快速的判断图像中是否包括可识别对象。
另一种可能的实现方式中,预设条件可以包括小于或等于预设阈值。
另一种可能的实现方式中,该装置还可以包括:第二获取单元、第二确定单元以及第一确定单元。其中:
第二获取单元,用于获取第一图像中的一个或多个第一局部特征点,第一局部特征点的描述子与特征库中的局部特征点的描述子的匹配距离小于或等于第一阈值;特征库中存储了不同对象的局部特征点的描述子。
第二确定单元,用于根据第一局部特征点,确定第一图像中一个或多个ROI;一个ROI中包括一个对象。
相应的,提取单元还可以用于,提取每个ROI中的全局特征。
第一确定单元,用于若每个ROI中的全局特征中存在一个或多个第一全局特征,确定第一图像中包括第一全局特征对应的可识别对象;若每个ROI中的全局特征中不存在第一全局特征,确定第一图像未包括任一可识别对象。其中,第一全局特征的描述子与特征库中的全局特征的描述子的匹配距离小于或等于第二阈值。特征库中还存储了不同对象的全局特征的描述子。
先通过图像的局部特征点与特征库对比,确定ROI区域,再在ROI区域中提取全局特征与特征库对比,可以提高判断图像中是否包括可识别对象的效率,也提高了判断图像中是否包括可识别对象准确度。
另一种可能的实现方式中,该装置还可以包括:第三获取单元、提取单元以及注册单元。其中:
第三获取单元,用于获取包括第一对象的多个第一输入图像,多个第一输入图像包括第一对象的真实图像和/或第一对象的多个第一合成图像;多个第一合成图像是由第一对象的三维模型在多个第一位姿下可微渲染得到的;多个第一位姿不同。
提取单元,分别提取多个第一输入图像的特征信息,特征信息用于指示第一对象在其所处的第一输入图像中的特征。
注册单元,用于将每个第一输入图像中提取的特征信息,与第一对象的标识相对应存储于所述特征库,进行第一对象的注册。
通过提取图像中对象的特征信息进行对象注册,注册时间短,且不影响其他已注册对象的识别性能,即使新增很多对象注册,也不会过大的增加注册时间,也保证了已注册对象的检测性能。
另一种可能的实现方式中,上述特征信息可以包括局部特征点的描述子,以及全局特征的描述子。
另一种可能的实现方式中,该装置还可以包括:第四获取单元、处理单元、可微渲染器、构建单元以及更新单元。其中:
第四获取单元,用于获取包括第一对象的多个第二输入图像,该多个第二输入图像包括第一对象的真实图像和/或第一对象的多个第三合成图像;多个第三合成图像是由第一对象的三维模型在多个第三位姿下渲染得到的;多个第三位姿不同。
处理单元,用于将多个第二输入图像分别输入第二网络进行位姿识别,得到第二网络输出的每个第二输入图像中第一对象的第四位姿;第二网络用于识别图像中第一对象的位姿。
可微渲染器,用于根据第一对象的三维模型,可微渲染获取第一对象在每个第四位姿下的第四合成图像;获取一个第四位姿的第二输入图像与一个第四位姿渲染得到的第四合成图像相对应。
构建单元,用于根据每个第四合成图像与其对应的第二输入图像的第二差异信息,构建第二损失函数;第二差异信息用于指示第四合成图像与其对应的第二输入图像的差异。
更新单元,用于根据第二损失函数更新第二网络,得到第一网络;第一网络识别的图像中第一对象的位姿与图像中第一对象的真实位姿的差异,小于第二网络识别的图像中第一对象的位姿与图像中第一对象的真实位姿差异。
在另一种可能的实现方式中,第二损失函数Loss2可以满足如下表达式:
Figure BDA0002870530660000091
X大于或等于1,λi为权值,Li用于表示第四合成图像与其对应的第二输入图像的第二差异信息的计算值。该实现方式提供一种具体的第二损失函数的表达,对位姿检测网络进行训练,提高了位姿检测网络识别的准确度。
在另一种可能的实现方式中,第二差异信息可以包括下述内容中一项或多项:第四合成图像中第一对象的黑白图像与其对应的第二输入图像的中第一对象的黑白图像的IOU之差、获取第四合成图像的第四位姿与第四合成图像经过第一网络得到的位姿之差、第四合成图像与其对应的第二输入图像中与第四合成图像中的第一对象相同位置的区域图像的相似度。该实现方式提供了第二差异信息的可能实现,丰富了第二差异信息的内容。
需要说明的是,第五方面提供的显示装置,用于实现上述第二方面提供的显示方法,其具体实现可以参照前述第二方面的具体实现,此处不再赘述。
第六方面,提供一种训练对象位姿检测网络的装置,该装置可以包括:获取单元、处理单元、可微渲染器、构建单元以及更新单元。其中:
获取单元,用于获取包括第一对象的多个第二输入图像,该多个第二输入图像包括第一对象的真实图像和/或第一对象的多个第三合成图像;多个第三合成图像是由第一对象的三维模型在多个第三位姿下渲染得到的;多个第三位姿不同。
处理单元,用于将多个第二输入图像分别输入第二网络进行位姿识别,得到第二网络输出的每个第二输入图像中第一对象的第四位姿;第二网络用于识别图像中第一对象的位姿。
可微渲染器,用于根据第一对象的三维模型,可微渲染获取第一对象在每个第四位姿下的第四合成图像;获取一个第四位姿的第二输入图像与一个第四位姿渲染得到的第四合成图像相对应。
构建单元,用于根据每个第四合成图像与其对应的第二输入图像的第二差异信息,构建第二损失函数;第二差异信息用于指示第四合成图像与其对应的第二输入图像的差异。
更新单元,用于根据第二损失函数更新第二网络,得到第一网络;第一网络识别的图像中第一对象的位姿与图像中第一对象的真实位姿的差异,小于第二网络识别的图像中第一对象的位姿与图像中第一对象的真实位姿差异。
通过对位姿检测网络进行训练,提高了位姿检测网络识别的准确度,降低位姿检测网络的输出与图像中对象的真实位姿之间的差异。
需要说明的是,第六方面提供的优化位姿识别网络的装置,用于实现上述第三方面提供的优化位姿识别网络的方法,其具体实现可以参照前述第三方面的具体实现,此处不再赘述。
第七方面,本申请提供了一种电子设备,该电子设备可以实现上述第一方面或第二方面或第三方面描述的方法示例中的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。该电子设备可以以芯片的产品形态存在。
在一种可能的实现方式中,该电子设备可以包括处理器和传输接口。其中,传输接口用于接收和发送数据。处理器被配置为调用存储在存储器中的程序指令,以使得该电子设备执行上述第一方面或第二方面或第三方面描述的方法示例中的功能。
第八方面,提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述任一方面或任意一种可能的实现方式所述的对象注册方法,或显示方法,或训练对象位姿检测网络的方法。
第九方面,提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一方面或任意一种可能的实现方式所述的对象注册方法,或显示方法,或训练对象位姿检测网络的方法。
第十方面,提供一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述方法中的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
上述第四方面至第十方面提供的方案,用于实现上述第一方面或第二方面或第三方面提供的方法,因此可以与第一方面或第二方面或第三方面达到相同的有益效果,此处不再进行赘述。
需要说明的是,上述各个方面中的任意一个方面的各种可能的实现方式,在方案不矛盾的前提下,均可以进行组合。
附图说明
图1为本申请实施例提供的一种终端设备的结构示意图;
图2为本申请实施例提供的一种终端设备的软件结构示意图;
图3为本申请实施例提供的一种讲解信息与真实物体的虚实融合效果示意图;
图4为本申请实施例提供的一种位姿检测流程示意图;
图5a为本申请实施例提供的一种增量式学习的方法流程示意图;
图5b为本申请实施例提供的一种系统架构示意图;
图6为本申请实施例提供的一种卷积神经网络的结构示意图;
图7a为本申请实施例提供的一种芯片硬件结构的示意图;
图7b为本申请实施例提供的方案的系统总体框架示意图;
图8为本申请实施例一提供的一种对象注册方法的流程示意图;
图9为本申请实施例提供的球面示意图;
图10为本申请实施例一提供的另一种对象注册方法的流程示意图;
图11为本申请实施例提供的一种图像区域示意图;
图12为本申请实施例二提供的一种优化方法的流程示意图;
图13为本申请实施例二提供的另一种优化方法的流程示意图;
图14为本申请实施例提供的再一种对象注册方法的流程示意图;
图15为本申请实施例三提供的一种训练对象位姿检测网络的方法的流程示意图;
图16为本申请实施例三提供的另一种训练对象位姿检测网络的方法的流程示意图;
图17为本申请实施例四提供的一种显示方法的流程示意图;
图18为本申请实施例四提供的一种判断第一图像中是否包含可识别对象的流程示意图;
图19为本申请实施例提供的一种手机界面示意图;
图20a为本申请实施例提供的另一种手机界面示意图;
图20b为本申请实施例提供的再一种手机界面示意图;
图21为本申请实施例提供的一种对象注册装置的结构示意图;
图22为本申请实施例提供的一种优化装置的结构示意图;
图23为本申请实施例提供的一种训练对象位姿检测网络的装置的结构示意图;
图24为本申请实施例提供的一种显示装置的结构示意图;
图25为本申请实施例提供的装置的结构示意图。
具体实施方式
在本申请实施例中,为了便于清楚描述本申请实施例的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。该“第一”、第二”描述的技术特征间无先后顺序或者大小顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
在本申请实施例中,至少一个还可以描述为一个或多个,多个可以是两个、三个、四个或者更多个,本申请不做限制。
此外,本申请实施例描述的网络架构以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在描述本申请的实施例之前,此处先对本申请涉及的名词统一进行解释说明,后续不再一一进行说明。
图像,也可称为图片,是指具有视觉效果的画面。本申请所称图像,可以为静态图像,也可以为视频流中的视频帧,或者其他,不予限定。
对象,可以存在的人或者事物。例如,事物可以为建筑物、商品、植物、动物等等,此处不再一一列举。
位姿,是指相机坐标系下物体的姿态。位姿可以包括6DoF位姿,即物体相对于相机的平移姿态和旋转姿态。
位姿检测,是指检测识别图像中物体的位姿。
对象的真实图像,是指包含该对象的静态的具有视觉效果的画面以及背景区域画图的图像。对象的真实图像可以为红绿蓝(red、green、blue,RGB)格式或者RGBD(red、green、blue,depth)格式。
渲染,是通过渲染器,将对象的3D模型,转变为2D图像的过程。通常,场景和实体用三维形式表示,可以更接近于现实世界,便于操纵和变换,而图形的显示设备大多是二维的光栅化显示器和点阵化打印机。光栅显示器可以看作是一个像素矩阵,在光栅显示器上显示的任何一个图形,实际上都是一些具有一种或多种颜色和灰度像素的集合。将三维实体场景通过光栅和点阵化的表示就是图像渲染--即光栅化。
常规渲染,是指光栅化不可微分的一种渲染方式。
可微渲染,是指光栅化可微分的一种渲染方式。由于渲染过程可微分,则可以根据渲染得到的图像与真实图像的差异构建损失函数,更新可微渲染的参数,提高可微渲染结果的真实性。
对象的合成图像,是指在某一期望位姿下对该对象的三维模型渲染得到的仅包含该对象的图像。对象在某一位姿下的合成图像,等效于该对象在该位姿下拍照得到的图像。
合成图像对应的图像,是指渲染该合成图像的位姿,是由该对应的图像输入神经网络获取的。应理解,合成图像与渲染该合成图像的位姿的源图像相互对应,后文不再一一赘述。其中,合成图像对应的图像可以为对象的真实图像,也可以为对象的其他合成图像。
对象的黑白图像,是指仅包含该对象不包含背景的黑白像素图像。具体的,对象的黑白图像可以通过二值化图表示,包含对象的区域像素值为1,其他区域像素值为0。
局部特征点,是图像特征的局部表达,它反映了图像上具有的局部特性。局部特征点即图像上与其他像素具有明显区分度的点,包括但不限于角点、关键点等。在图像处理中,局部特征点主要指尺度不变性的点或块。尺度不变性,是同一个物体或场景,从不同的角度采集多幅图片,相同的地方能够被识别出来是相同的。局部特征点可以包括SIFT特征点、SURF特征点、DAISY特征点等。通常,可以采用FAST、DOG等方法提取图像的局部特征点。局部特征点的描述子是表征该特征点局部图像信息的高维向量。
全局特征是指是指能表示整幅图像上的特征,全局特征是相对于图像局部特征而言的,用于描述图像或目标的颜色和形状等整体特征。例如,全局特征可以包括颜色特征、纹理特征、形状特征等。通常,可以采用词袋树的方法提取图像的全局特征。全局特征的描述子是表征整副图像或者较大区域的图像信息的高维向量。
计算值,可以指多个数据的数学计算值,该数学计算可以为取平均、或者取最大、或者取最小,或者其他。
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
近年来,终端设备的功能越来越丰富,给用户带来了更好的使用体验。例如,终端设备可以实现虚拟现实(virtual reality,VR)功能,使用户处于虚拟世界中,体验虚拟世界。又如,终端设备可以实现增强现实(augmented reality,AR)功能,将虚拟物体与现实场景结合,并实现用户与虚拟物体互动。
其中,终端设备可以是智能手机、平板电脑、可穿戴设备、AR/VR设备等。本申请对终端设备的具体形态不予限定。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
在本申请中,终端设备的结构可以如图1所示。如图1所示,终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本实施例示意的结构并不构成对终端设备100的具体限定。在另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,在本申请中,处理器110可以确定第一图像满足异常条件的情况下,控制开启其他摄像头。
其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现终端设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端设备,例如AR设备等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oled,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。
终端设备100的显示屏194上可以显示一系列图形用户界面(graphical userinterface,GUI),这些GUI都是该终端设备100的主屏幕。一般来说,终端设备100的显示屏194的尺寸是固定的,只能在该终端设备100的显示屏194中显示有限的控件。控件是一种GUI元素,它是一种软件组件,包含在应用程序中,控制着该应用程序处理的所有数据以及关于这些数据的交互操作,用户可以通过直接操作(direct manipulation)来与控件交互,从而对应用程序的有关信息进行读取或者编辑。一般而言,控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
终端设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端设备100可以支持一种或多种视频编解码器。这样,终端设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端设备100的各种功能应用以及数据处理。例如,在本实施例中,处理器110可以通过执行存储在内部存储器121中的指令,获取终端设备100的位姿。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flashstorage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备100的各种功能应用以及数据处理。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。终端设备100可以设置至少一个麦克风170C。在另一些实施例中,终端设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。终端设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,终端设备100根据压力传感器180A检测所述触摸操作强度。终端设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定终端设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定终端设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测终端设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,终端设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。终端设备100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当终端设备100是翻盖机时,终端设备100可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测终端设备100在各个方向上(一般为三轴)加速度的大小。当终端设备100静止时可检测出重力的大小及方向。还可以用于识别终端设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。终端设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端设备100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端设备100通过发光二极管向外发射红外光。终端设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端设备100附近有物体。当检测到不充分的反射光时,终端设备100可以确定终端设备100附近没有物体。终端设备100可以利用接近光传感器180G检测用户手持终端设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。终端设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测终端设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。终端设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,终端设备100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,终端设备100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端设备100对电池142加热,以避免低温导致终端设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,终端设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端设备100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
另外,在上述部件之上,运行有操作系统。例如苹果公司所开发的iOS操作系统,谷歌公司所开发的Android开源操作系统,微软公司所开发的Windows操作系统等。在该操作系统上可以安装运行应用程序。
终端设备100的操作系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。
图2是本申请实施例的终端设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。例如,在拍照时,相机应用可以访问应用程序框架层提供的相机接口管理服务。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。例如,在本申请实施例中,在拍照时,应用程序框架层可以为应用程序层提供拍照功能相关的API,并为应用程序层提供相机接口管理服务,以实现拍照功能。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:动态图像专家组(moving picture experts group,MPEG)4,H.264,MP3,高级音频编码(advanced audio coding,AAC),自适应多速率(adaptive multi rate,AMR),联合摄影制图专家组(joint photo graphic expertsgroup,JPEG),可移植网络图形格式(portable network graphic format,PNG)等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
二维(2dimensions,2D)图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
需要说明的是,本申请实施例虽然以
Figure BDA0002870530660000191
系统为例进行说明,但是其基本原理同样适用于基于
Figure BDA0002870530660000192
Figure BDA0002870530660000193
等操作系统的终端设备。
下面将结合附图,对本申请中的技术方案进行描述。
本申请实施例提供的三维对象注册方法能够应用在AR、VR以及需要显示对象的虚拟内容的场景。具体而言,本申请实施例的三维对象注册方法能够应用在AR场景中,下面结合图1和AR场景,示例性说明终端设备100软件以及硬件的工作流程。
触摸传感器180K接收到触摸操作,上报给处理器110,使得处理器响应于上述触摸操作,启动该AR应用,并在显示屏194上显示该AR应用的用户界面。例如,触摸传感器180K当接收到对AR图标的触摸操作后,向处理器110上报对AR图标的触摸操作,使得处理器110响应于上述触摸操作,启动AR图标对应的AR应用,并在显示屏194上显示AR的用户界面。此外,本申请实施例中还可以通过其它方式使得终端启动AR,并在显示屏194上显示AR的用户界面。例如,终端当黑屏、显示锁屏界面或者解锁后显示某一用户界面时,可以响应于用户的语音指令或者快捷操作等,启动AR,并在显示屏194上显示AR的用户界面。
终端设备100中用于对对象的位姿检测和跟踪的APP中,配置了用于检测对象的位姿的网络。当用户在终端设备100中启动用于对对象的位姿检测和跟踪的APP时,终端设备100通过摄像头193捕获视野中的图像,由检测对象的位姿的网络识别该图像中包括的可识别对象,并获取可识别对象的位姿,再根据获取的位姿,通过显示屏194在捕获图像上叠加显示可识别对象对应的虚拟内容。
示例性的,在商场购物、博物馆、展览馆参观等过程中,终端设备100在捕获场景图像后,识别图像中可识别对象,将可识别对象的讲解信息按照可识别对象的位姿,根据位姿将对应的讲解内容在三维空间中精确的叠加在三维物体的不同位置呈现给用户。如图3示意了讲解信息与真实物体的虚实融合效果,可以直观生动形象的将图像中真实物体的信息呈现给用户。
在当前的显示对象的虚拟内容的场景中,通常是在线下会根据对象的三维模型,对终端设备100中配置的用于检测对象的位姿的网络进行训练,使得该网络支持多个对象的位姿识别,即完成了将待识别的对象注册于该网络中。3D对象位姿检测在实际应用过程中,需要高效快速的对可识别的对象进行添加和删除。当前,通常基于机器学习的方法对可识别的对象进行添加,对于每一个新增的对象,都需要对所有可识别的物体重新进行训练,会导致训练时间的线性增长以及影响已经训练好的物体识别效果。
图4意了一种现有的位姿检测流程,如图4所示,包含对象的图片输入多对象位姿估计网络,多对象位姿估计网络输出该图片中包含的可识别对象的位姿及类别,并对输出的位姿进行位姿优化。该流程中用到的多对象位姿估计网络为离线训练所生成,当用户需要添加新的可识别对象时,需要和原有网络所支持的所有可识别对象一起重新进行训练,得到一个新的多对象位姿估计网络,从而实现对新增可识别对象的位姿检测的支持。这样一来,新增对象重新进行训练会导致训练时间急剧增加,新增对象会影响已经训练好的物体位姿检测效果,导致检测准确率、成功率下降。
为了解决新增对象重新训练所有可识别物体带来的训练时间增加的问题,业界提出了增量式学习的方法,该方法的过程可以如图5a所示,用户提交期望识别的对象的三维模型,根据提交的三维模型训练一个多对象位姿估计网络M0;当新增可识别的对象时,用户新提交期望识别的对象的三维模型,基于训练好的网络M0,采用已经训练好的对象的少量数据进行增量训练,得到新的网络M1;当再新增可识别的对象时,用户继续提交期望识别的对象的三维模型,基于训练好的网络M1,采用已经训练好的对象的少量数据进行增量训练,得到新的网络M2,以此类推。该方案当有新的待识别的对象增加到训练集时,仅采用已经训练好的物体的少量数据,在现有模型的基础上进行增量式学习,可以极大的减少重新训练的时间。但由于增量式学习面临灾难性遗忘问题,即新模型的训练仅参考已识别对象的少量数据,随着新增对象数量的增加,已经训练好的对象性能就会急剧下降。
基于此,本申请提供了一种三维对象注册方法,具体包括:配置单对象位姿检测网络,采用三维对象的真实图像与多个位姿下可微渲染得到的合成图像的差异构建损失函数,来训练单对象位姿检测网络,以得到用于提取该三维对象的位姿检测网络,再利用训练后的位姿检测网络提取该三维对象的真实图像以及多个位姿下可微渲染合成图像中该三维对象的特征,记录特征与该三维对象的标识,完成该三维对象的注册。由于本申请提供的三维对象注册方法,采用单对象位姿检测网络,即使新增可识别对象,训练时间短,也不会影响其他可识别对象的识别效果;另外,采用三维对象的真实图像与多个位姿下可微渲染合成图像的差异构建损失函数,提高了单对象位姿检测网络的精度。
下面从模型训练侧和模型应用侧对本申请提供的方法进行描述:
本申请实施例提供的获取对象位姿的方法,涉及计算机视觉的处理,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对训练数据(如本申请中的对象的图像)进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的单对象位姿检测网络;并且,本申请实施例提供的对象注册方法可以运用上述训练好的单对象位姿检测网络,将输入数据(如本申请中的包括待识别对象的图像)输入到所述训练好的该待识别对象对应的单对象位姿检测网络中,得到输出数据(如本申请中的图像中可识别对象的位姿)。需要说明的是,本申请实施例提供的单对象位姿检测网络的训练方法和对象注册方法是基于同一个构思产生的发明,也可以理解为一个系统中的两个部分,或一个整体流程的两个阶段:如模型训练阶段和模型应用阶段。
由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。
(1)神经网络(neural network,NN)
神经网络是机器学习模型,是一种模拟人脑的神经网络以能够实现类人工智能的机器学习技术。可以根据实际需求配置神经网络的输入及输出,并通过样本数据对神经网络训练,以使得其输出与样本数据对应的真实输出的误差最小。神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
Figure BDA0002870530660000211
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:
Figure BDA0002870530660000212
其中,
Figure BDA0002870530660000213
是输入向量,
Figure BDA0002870530660000214
是输出向量,b是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量
Figure BDA0002870530660000215
经过如此简单的操作得到输出向量
Figure BDA0002870530660000216
由于DNN层数多,则系数W和偏移向量b的数量也就很多了。这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为
Figure BDA0002870530660000217
上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第L-1层的第k个神经元到第L层的第j个神经元的系数定义为
Figure BDA0002870530660000218
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(4)循环神经网络(recurrent neural networks,RNN)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。同样使用误差反向传播算法,不过有一点区别:即,如果将RNN进行网络展开,那么其中的参数,如W,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习算法称为基于时间的反向传播算法Back propagation Through Time(BPTT)。
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖当前的输入信息和历史的记忆信息。
(6)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
(7)像素值
图像的像素值可以是一个红绿蓝(RGB)颜色值,像素值可以是表示颜色的长整数。例如,像素值为256*Red+100*Green+76Blue,其中,Blue代表蓝色分量,Green代表绿色分量,Red代表红色分量。各个颜色分量中,数值越小,亮度越低,数值越大,亮度越高。对于灰度图像来说,像素值可以是灰度值。
下面介绍本申请实施例提供的系统架构。
参见附图5b,本发明实施例提供了一种系统架构500。如所述系统架构500所示,数据采集设备560用于采集训练数据,本申请实施例中训练数据包括:待识别对象的真实图像和/或合成图像;并将训练数据存入数据库530,训练设备520基于数据库530中维护的训练数据训练得到目标模型/规则501。下面将以实施例二和实施例三更详细地描述训练设备520如何基于训练数据得到目标模型/规则501,该目标模型/规则501可以为本申请实施例中描述的单对象位姿检测网络(提取图像中对象位姿的第一网络),即将图像输入该目标模型/规则501,即可得到图像中包括的可识别对象的位姿;或者,该目标模型/规则501可以为本申请实施例中描述的可微渲染器,即将对象的三维模型及预设位姿输入该目标模型/规则501,即可得到对象在预设位姿下的合成图像。本申请实施例中的目标模型/规则501具体可以为单对象位姿检测网络或可微渲染器,在本申请提供的实施例中,该单对象位姿检测网络是通过训练单对象基础位姿检测网络得到的。需要说明的是,在实际的应用中,所述数据库530中维护的训练数据不一定都来自于数据采集设备560的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备520也不一定完全基于数据库530维护的训练数据进行目标模型/规则501的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备520训练得到的目标模型/规则501可以应用于不同的系统或设备中,如应用于图5b所示的执行设备510,所述执行设备510可以是终端,如手机终端,平板电脑,笔记本电脑,AR/VR,车载终端等,还可以是服务器或者云端等。在附图5b中,执行设备510配置有I/O接口512,用于与外部设备进行数据交互,用户可以通过客户设备540向I/O接口512输入数据,所述输入数据在本申请实施例中可以包括:待识别对象的三维模型、待识别对象的真实图像、待识别对象的三维模型在不同位姿下渲染的合成图像。
在执行设备510的计算模块511执行计算等相关的处理过程中,执行设备510可以调用数据存储系统550中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
最后,I/O接口512将处理结果,如得到的图像中的可识别对象的虚拟内容以及位姿返回给客户设备140,从而提供给用户按照该位姿显示的虚拟内容,实现虚实结合的体验。
值得说明的是,训练设备520可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则501,该相应的目标模型/规则501即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在图5b中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口512提供的界面进行操作。另一种情况下,客户设备540可以自动地向I/O接口512发送输入数据,如果要求客户设备540自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备540查看执行设备510输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备540也可以作为数据采集端,采集如图5b所示输入I/O接口512的输入数据及输出I/O接口512的输出结果作为新的样本数据,并存入数据库530。当然,也可以不经过客户设备540进行采集,而是由I/O接口512直接将如图所示输入I/O接口512的输入数据及输出I/O接口512的输出结果,作为新的样本数据存入数据库530。
值得注意的是,图5b仅是本发明实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图5b中,数据存储系统550相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统550置于执行设备510中。
本申请实施例提供的方法和装置还可以用于扩充训练数据库,如图5b所示执行设备510的I/O接口512可以将经执行设备处理过的图像(如待识别物体在不同位姿下渲染的合成图像)和用户输入的待识别物体的真实图像,一起作为训练数据对发送给数据库530,以使得数据库530维护的训练数据更加丰富,从而为训练设备520的训练工作提供更丰富的训练数据。
如图5b所示,根据训练设备520训练得到目标模型/规则501,该目标模型/规则501在本申请实施例中可以是单对象位姿识别网络(本申请实施例中描述的第一网络、第二网络)。在本申请实施例提供的单对象位姿识别网络都可以是卷积神经网络、循环神经网络,或者其他。
如前文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
如图6所示,卷积神经网络(CNN)600可以包括输入层610,卷积层/池化层620(其中池化层为可选的),以及神经网络层630。
卷积层/池化层620:
卷积层:
如图6所示卷积层/池化层620可以包括如示例621-626层,举例来说:在一种实现中,621层为卷积层,622层为池化层,623层为卷积层,624层为池化层,625为卷积层,626为池化层;在另一种实现方式中,621、622为卷积层,623为池化层,624、625为卷积层,626为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
下面将以卷积层621为例,介绍一层卷积层的内部工作原理。
卷积层621可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络600进行正确的预测。
当卷积神经网络600有多个卷积层的时候,初始的卷积层(例如621)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络600深度的加深,越往后的卷积层(例如626)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图6中620所示例的621-626各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层630:
在经过卷积层/池化层620的处理后,卷积神经网络600还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层620只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络600需要利用神经网络层630来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层630中可以包括多层隐含层(如图6所示的631、632至63n)以及输出层640,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等……
在神经网络层630中的多层隐含层之后,也就是整个卷积神经网络600的最后层为输出层640,该输出层640具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络600的前向传播(如图6由610至640方向的传播为前向传播)完成,反向传播(如图6由640至610方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络600的损失,及卷积神经网络600通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图6所示的卷积神经网络600仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。
下面介绍本申请实施例提供的一种芯片硬件结构。
图7a为本发明实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器(NPU)70。该芯片可以被设置在如图5b所示的执行设备510中,用以完成计算模块511的计算工作。该芯片也可以被设置在如图5b所示的训练设备520中,用以完成训练设备520的训练工作并输出目标模型/规则501。如图6所示的卷积神经网络中各层的算法均可在如图7a所示的芯片中得以实现。
如图7a所示,NPU 70作为协处理器挂载到主中央处理器(central processingunit,CPU)(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路70,控制器704控制运算电路703提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路703内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路703是二维脉动阵列。运算电路703还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路703是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路703从权重存储器702中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路703从输入存储器701中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器708(accumulator)中。
向量计算单元707可以对运算电路703的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元707可以用于神经网络中非卷积/非全连接层(fully connected layers,FC)层的网络计算,如池化(Pooling),批归一化(Batch Normalization),局部响应归一化(Local Response Normalization)等。
在一些实现种,向量计算单元能707将经处理的输出的向量存储到统一缓存器706。例如,向量计算单元707可以将非线性函数应用到运算电路703的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元707生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路703的激活输入,例如用于在神经网络中的后续层中的使用。
例如,如图6所示的卷积神经网络中各层的算法均可以由703或707执行。图5b中计算模块511、训练设备520的算法均可以由703或707执行。
统一存储器706用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)705将外部存储器中的输入数据搬运到输入存储器701和/或统一存储器706、将外部存储器中的权重数据存入权重存储器702,以及将统一存储器706中的数据存入外部存储器。
总线接口单元(bus interface unit,BIU)710,用于通过总线实现主CPU、DMAC和取指存储器709之间进行交互。
与控制器704连接的取指存储器(instruction fetch buffer)709,用于存储控制器704使用的指令。
控制器704,用于调用指存储器709中缓存的指令,实现控制该运算加速器的工作过程。
示例性的,这里的数据可以为是说明数据,可以是图6所示的卷积神经网络中各层的输入或输出数据,或者,可以是图5b中计算模块511、训练设备520的输入或输出数据。
一般地,统一存储器706,输入存储器701,权重存储器702以及取指存储器709均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。
可选的,图5b和图6中的程序算法是由主CPU和NPU共同配合完成的。
示例性的,图7b示意了本申请提供的方案的系统总体框架。如图7b所示,该框架包括离线注册和在线检测两个部分。
其中,离线注册部分,由用户输入对象的三维模型以及真实图片,然后按照三维模型及真实图片对基础单对象位姿检测网络进行训练,得到对象的单对象位姿检测网络,对象的单对象位姿检测网络用于检测图像中包含的该对象的位姿,且检测准确度优于基础单对象位姿检测网络。进一步的,可以按照三维模型及真实图片,利用已经得到的对象的单对象位姿检测网络,提取对象的特征进行增量式对象注册,将对象的特征与对象的类别(可以通过标识表示)进行注册,得到多对象类别分类器。多对象类别分类器可以用于识别图像中包括的可识别对象的类别。离线注册部分的具体操作,可以参照下述本申请实施例中提供的对象注册方法(例如图8示意的对象注册方法)的具体实现,此处不再赘述。
在线检测部分,获取到输入图像后,利用离线注册部分得到的多对象类别分类器进行多特征融合分类,得到输入图像中包括的可识别对象的分类结果(类别),利用离线注册部分得到的对象的单对象位姿检测网络,得到输入图像中包括的可识别对象的位姿;按照输入图像中可识别对象的位姿,将可识别对象的类别对应的虚拟内容呈现。在线检测部分的具体操作,可以参照下述本申请实施例中提供的显示方法(例如图17示意的显示方法)的具体实现,此处不再赘述。
申请实施例一提供一种对象注册方法,用于注册第一对象,第一对象为任一个待识别对象。每一个对象的注册过程均相同,本申请实施例一以注册第一对象为例进行描述,其他不再一一赘述。
本申请实施例一提供的对象注册方法,可以由如图5b所示的执行设备510执行,该对象注册方法中的真实图像可以是如图5b所示的客户设备540给出的输入数据,所述执行设备510中的计算模块511可以用于执行所述S801至S803。
可选的,本申请实施例一提供的对象注册方法可以由CPU处理,也可以由CPU和GPU共同处理,也可以不用GPU,而使用其他适合用于神经网络计算的处理器,本申请不做限制。
如图8所示,本申请实施例一提供的对象注册方法可以包括:
S801、获取包括第一对象的多个第一输入图像。
其中,该多个第一输入图像包括第一对象的真实图像和/或第一对象的多个第一合成图像。
一种可能的实现方式中,第一输入图像可以包括第一对象的多个真实图像。
由于用户输入的对象的真实图像数量有限,利用第一对象的真实图像执行S802提取特征信息时,存在无法完全表征待识别对象在不同光照、不同角度和距离下的视觉特征的不足,因此可以在真实图像的基础上,加入合成图像以进一步增加特征提取的有效性。因此,第一输入图像可以包括第一对象的真实图像以及第一合成图像。第一合成图像由可微渲染得到,可以降低第一合成图像与真实图像之间的差异。
另一种可能的实现方式中,第一输入图像可以包括第一对象的多个第一合成图像。该多个第一合成图像可以是由第一对象的三维模型在多个第一位姿下可微渲染得到的。该多个第一位姿不同。
其中,多个第一位姿不同,是指多个第一位姿对应了相机的不同拍摄角度。
示例性的,该多个第一位姿可以在球面取。多个第一位姿可以为图9所示的球面上均匀采样得到的多个位姿,本申请实施例对于球面上采样位姿的密度不予限定,可以根据实际需求选取。当然,第一位姿也可以为用户输入的多个不同位姿,不予限定。
具体的,在S801中第一输入图像包括第一合成图像的情况下,可以根据用户输入的,带纹理信息的第一对象的三维模型,用可微渲染器(也可以称为可微渲染引擎或可微渲染网络),合成相机在多个第一位姿下所得到的该3D模型的2D图像(第一合成图像)。
示例性的,在S801中第一输入图像包括第一合成图像的情况下,如图10所示的对象注册方法的具体过程,S801具体可以包括S801a和S801b。
S801a、将第一对象的三维模型进行可微渲染,得到多个第一合成图像。
S801b、根据第一合成图像,得到第一输入图像。
其中,S801b中得到的第一输入图像可以包括第一对象的真实图像和多个第一合成图像,或者,S801b中得到的第一输入图像可以仅包括多个第一合成图像。
需要说明的是,对于可微渲染的过程,已经在前述内容中进行了详细说明,此处不再赘述。
S802、分别提取多个第一输入图像的特征信息,该特征信息用于指示第一对象在其所处的第一输入图像中的特征。
其中,该特征信息可以包括局部特征点的描述子,以及全局特征的描述子。
描述子用于描述特征,是刻画特征的一个数据结构,一个描述子的维数可以是多维的。描述子可以有多种类型,例如SIFT、SURF、MSER等,本申请实施例对于描述子的类型不予限定。描述子可以为多维向量的形式。
例如,局部特征点的描述子可以是表征该特征点局部图像信息的高维向量;全局特征的描述子可以是表征整副图像或者较大区域的图像信息的高维向量。
需要说明的是,对于局部特征点以及全局特征的定义以及提取方法,已经在前述内容中进行了说明此处不再赘述。
进一步可选的,特征信息中还可以包括局部特征点的位置。
一种可能的实现方式中,S802中可以在每个第一输入图像内的所有区域提取特征信息。
另一种可能的实现方式中,S802中可以在每个第一输入图像中确定第一对象的区域,然后在第一对象的区域中提取特征信息。
其中,第一对象的区域可以为第一输入图像中仅包括第一对象的区域,或者,第一对象的区域可以为第一输入图像中包括第一对象的区域,该区域包含于第一输入图像内。
示例性的,可以将每个第一输入图像,分部输入第一网络,根据第一网络的输出确定每个第一输入图像中第一对象的区域。第一网络用于识别图像中第一对象的位姿,或者第一网络用于提取图像中第一对象的黑白图像。
可选的,在第一输入图像中确定第一对象的区域,然后在第一对象的区域提取特征信息,可以包括但不限于下述两种可能的实现方式:
第一种实现方式、第一网络用于识别图像中所述第一对象的位姿,S802中可以将多个第一输入图像分别输入第一网络进行位姿识别,得到每个第一输入图像中第一对象的位姿;按照获取的第一对象的位姿,将第一对象的三维模型分别投影至每个第一输入图像,得到每个第一输入图像中的投影区域(作为第一对象的区域);分别在每个第一输入图像中的投影区域,提取特征信息。
第二种实现方式、第一网络用于提取图像中所述第一对象的黑白图像,S802中可以将多个第一输入图像分别输入第一网络进行位姿识别,得到每个第一输入图像中第一对象的黑白图像(作为第一对象的区域);分别在每个所述第一输入图像中所述第一对象的黑白图像内,提取所述特征信息。
示例性的,可以在S802中获取的每个第一输入图像中第一对象的区域内,提取视觉显著的特征点的像素位置以及对应的描述子,作为局部特征点的特征信息,每个描述子为多维向量;在S802中获取的每个第二输入图像中第一对象的区域内,提取所有的视觉特征点的特征信息,输出一个多维向量,作为全局特征的特征信息。
需要说明的是,对于提取特征的算法,本申请实施例不予限定,可以根据实际需求选取。
示例性的,如图11所示的图像区域,根据第一输入图像输入第一网络得到的结果,可以确定第一对象在该第一输入图像中的所在区域为图11中虚线包围框所示的区域。可以在图11所示的虚线包围框所示的区域中,提取视觉显著的特征点的特征信息,以及在图11所示的虚线包围框所示的区域中提取所有的视觉特征点的特征信息。
S803、将每个第一输入图像中提取的特征信息,与第一对象的标识相对应,进行第一对象的注册。
具体的,在S803中,将第一对象的特征信息与第一对象的标识对应记录,完成第一对象的注册,可以将多个对象的注册内容,称为多对象类别分类器。该多对象类别分类器中记录了不同对象的特征与标识的对应关系,在实际应用中,通过提取图像中对象的特征信息,与多对象类别分类器中记录的特征进行对比,以确定图像中对象的标识,完成图像中对象的识别。
其中,第一对象的标识可以用于指示第一对象的类别。本申请实施例对于该标识的形式不予限定。
具体的,在S803中可以将S802中提取的每个第一输入图像中第一对象的特征信息,与第一对象的标识,按照一定的结构存储,完成第一对象的注册。
将结构存储的多个对象的特征信息与标识称为多对象类别分类器,以便高效的查找。
通过本申请提供的对象注册方法,提取图像中对象的特征进行对象注册,注册时间短,且不影响其他已注册对象的识别性能,即使新增很多对象注册,也不会过大的增加注册时间,也保证了已注册对象的检测性能。
需要说明的是,上述对象注册的方法,可以在线下得到第一网络以及完成对象的注册,在线上应用时,可以通过第一网络获取可识别对象的位姿,以及根据可识别对象的特征确定对象注册的标识,然后按照可识别对象的位姿,显示可识别对象的标识对应的虚拟内容,进而完成虚实结果的呈现效果。
本申请的实施例二提供一种优化方法,该优化方法可以与图8示意的对象注册方法、以及本申请实施例三提供的训练对象位姿检测网络的方法结合使用,也可以独立使用,对其使用场景本申请实施例不予限定。本申请实施例二提供的优化方法如图12所示,包括:
S1201、将第一对象的N个真实图像分别输入第一网络,得到第一网络输出的每个真实图像中第一对象的第二位姿。
其中,N大于或等于1。第一网络用于识别图像中第一对象的位姿。
S1202、根据第一对象的三维模型,采用可微渲染器在每个第二位姿下,可微渲染得到N个第二合成图像。
其中,S1202中采用可微渲染器,在S1201中得到的每个第二位姿下,可微渲染得到N个第二合成图像。
具体的,获取一个第二位姿的真实图像与一个第二位姿渲染得到的第二合成图像相对应。
S1203、分别截取每个真实图像中,与真实对象对应的第二合成图像中第一对象相同位置的区域,作为每个真实图像的前景图像。
具体的,S1203中截取S1201中输入第一网络的每个真实图像的前景图像。
应理解,相同位置的区域图像,可以指以第二合成图像中第一对象的某一点为基准,相同坐标的区域图像。换言之,相同位置的区域图像,可以指以第二合成图像中第一对象的某一点为基准,将第二合成图像的黑白图像投影至真实图像中的投影区域图像。
一种可能的实现方式中,可以将第二合成图像中的第一对象的黑白图像,投影到与该第二合成图像对应的真实图像中,投影区域作为该真实图像的前景图像。
另一种可能的实现方式中,可以先获取第二合成图像中的第一对象的黑白图像,黑白图像为二值化图,将第二合成图像中的第一对象的黑白图像,与该第二合成图像对应的真实图像相乘,将相乘后得到的保留区域作为该真实图像的前景图像。
S1204、根据N个真实图像的前景图像与其对应的第二合成图像的第一差异信息,构建第一损失函数。
其中,第一差异信息用于指示前景图像与其对应的第二合成图像的差异。
可选的,第一差异信息可以包括:特征图差、像素颜色差、提取的特征描述子之差中的一项或多项。
其中,两幅图像的特征图差,可以为感知loss,即用深度学习网络编码后的特征图之间的差。具体的,深度学习网络可用预训练好的计算机视觉组(visual geometry group,VGG)16网络,对于给定的图像,经VGG16网络编码后的特征图为C*H*W的张量,C为特征图的通道数,H和W为特征图的长和宽。特征图之间的差即为两个张量的距离,具体的,可为张量之差的L1范数、L2范数或者其他范数。
像素颜色差可以为:像素颜色的数值计算差值,具体的可为两幅图像的像素之差的L2范数。
提取的特征描述子之差:是指表示描述子的向量之间的距离。例如,该距离可以包括但不限于:欧式距离、汉明距离等。具体的,描述子可为N维浮点数向量,距离为两个N维向量的欧式距离,及两个N维向量之差的L2范数;或者描述子可为M维的二进制向量,则距离为两个向量之差的L1范数。
以上所指的L2范数是指向量各元素的平方和然后开方,L1范数是指向量中各个元素绝对值之和。
需要说明的是,若N大于1,S1204中构建第一损失函数时的第一差异信息,可以为多个前景图像与其对应的第二合成图像的差异信息的计算值。
其中,前景图像对应的第二合成图像,是指该前景图像所属的真实图像,经过第一网络得到的第二位姿,可微渲染得到了该第二合成图像。
示例性的,对于用户输入的第一对象的真实图像I(一个或多个),用第一网络检测真实图像中第一对象的6DOF位姿。然后,可微渲染器根据用户输入的初始三维模型以及对应的纹理和光照信息,基于检测到的真实图像中第一对象的6DOF位姿,可微渲染得到第二合成图像R(与真实图像I的数量相同)。根据每个第二合成图像R,得到第一对象在每个R中的mask(与真实图像I的数量相同),基于mask截取真实图片I中第一对象的前景图像F(一个mask用于截取其对应的真实图像的前景图像),构建F和R的第一损失函数Loss1如下:Loss1=Lp+Li+Lf
其中,Lp为每个前景图像与其对应的第二合成图像的特征图之间的差的计算值,Li为每个前景图像与其对应的第二合成图像的像素颜色差的计算值,Lf为每个前景图像与其对应的第二合成图像的特征描述子的差的计算值。
需要说明的是,一个图像提取的特征描述子可以为一个或多个,当一个图像提取的特征描述子为多个时,两个图像的特征描述子的差可以为相同位置的特征描述子的差的计算值。
S1205、根据第一损失函数更新可微渲染器,使得可微渲染器的输出的合成图像逼近对象的真实图像。
示例性的,在S1205中可以根据S1204中构建的第一损失函数,更新可微渲染器中的纹理、光照或其他参数,从而实现可微渲染器输出的合成图像与真实图像之家的差异最小化。
具体的,S1205可以按照预设规则调整更新可微渲染器中的纹理、光照或其他参数,之后再重复进行图12示意的优化过程,直至可微渲染器输出的合成图像与真实图像之家的差异最小。
其中,预设规则可以为预先配置第一损失函数满足不同条件时,对应调整不同的参数以及调整值,在S1204中确定第一损失函数后,根据满足的条件,按照对应的调整参数和调整值进行调整。
示例性的,图12示意的优化过程也可以如图13所示,对象的真实图像输入第一网络,第一网络输出的第二位姿输入可微渲染器,可微渲染器根据该对象的三维模型,可微渲染输出第二合成图像及第二合成图像中对象的黑白图像,根据第二合成图像与真实图像构建第一损失函数,采用第一损失函数更新可微渲染器。
通过本申请提供的优化方法,可以对可微渲染器(也可以称为可微渲染引擎或可微渲染网络)进行优化,提高可微渲染器的渲染真实性,降低可微渲染得到的合成图像与真实图像之间的差异。
本申请实施例二提供的优化方法具体可以由如图5b所示的训练设备520执行,该优化方法中的第二合成图像可以是如图5b所示的数据库530中维护的训练数据。可选的,实施例二提供的优化方法中的S1201至S1203中的部分或全部可以在训练设备520中执行,也可以在训练设备520之前由其他功能模块预先执行,即先对从所述数据库530中接收或者获取到的训练数据进行预处理,如S1201至S1203所述的过程,得到前景图像及第二合成图像,作为所述训练设备520的输入,并由所述训练设备520执行S1204至S1205。
可选的,本申请实施例二提供的优化方法可以由CPU处理,也可以由CPU和GPU共同处理,也可以不用GPU,而使用其他适合用于神经网络计算的处理器,本申请不做限制。
示例性的,本申请提供的对象注册方法在获取合成图像之前,可以采用图12示意的优化方法对可微渲染器进行优化,降低可微渲染得到的合成图像与真实图像之间的差异。图14示意了另一种对象注册方法,该方法可以包括:
S1401、优化可微渲染器。
其中,S1401的具体操作可以参照图12示意的过程,此处不再赘述。
S1402、将第一对象的三维模型输入优化后的可微渲染器进行可微渲染,得到第一合成图像。
S1403、根据第一合成图像,得到第一输入图像。
其中,S1403的具体实现可以参照S801b,此处不再赘述。
S1404、分别提取每个第一输入图像的特征信息。
其中,S1404的具体实现参照前述S802,此处不再赘述。
S1405、将每个第一输入图像中提取的特征信息注册。
其中,S1405的具体实现参照前述S803,此处不再赘述。
本申请实施例三提供一种训练对象位姿检测网络的方法,该方法可以对训练得到前述第一网络,提高第一网络输出的第一对象的位姿的准确性异。示例性的,该训练对象位姿检测网络的方法可以与图8示意的对象注册方法、以及本申请实施例二提供的优化方法结合使用,也可以独立使用,对其使用场景本申请实施例不予限定。
具体的,本申请实施例三提供一种训练对象位姿检测网络的方法,通过第一对象的真实图像以及合成图像,进一步优化对象位姿检测网络对真实图像中对象位姿的预测能力(泛化性)。
本申请实施例三提供的训练对象位姿检测网络的方法如图15所示,包括:
S1501、获取包括第一对象的多个第二输入图像。
其中,该多个第二输入图像包括第一对象的真实图像和/或第一对象的多个第三合成图像。
一种可能的实现方式中,第二输入图像可以包括第一对象的多个真实图像。
另一种可能的实现方式中,第二输入图像可以包括第一对象的多个真实图像,及第一对象的多个第三合成图像。该多个第三合成图像是由第一对象的三维模型在多个第三位姿下渲染得到的。多个第三位姿不同。
示例性的,该多个第三位姿可以在球面取。多个第三位姿可以为图9所示的球面上均匀采样得到的多个位姿,本申请实施例对于球面上采样位姿的密度不予限定,可以根据实际需求选取。
另一种可能的实现方式中,第二输入图像可以包括第一对象的多个第三合成图像。
具体的,在该S1501中,可以根据用户输入第一对象的带纹理信息的三维模型,通过常规渲染、或者可微渲染,或者其他渲染方式,在多个第三位姿上,合成第一对象在不同角度的2D图像,记录为第三合成图像。
S1502、将多个第二输入图像分别输入第二网络进行位姿识别,得到第二网络输出的每个第二输入图像中所述第一对象的第四位姿。
其中,第二网络可以用于识别图像中第一对象的位姿。
一种可能的实现方式中,第二网络可以为基础单对象位姿检测网络。基础单对象位姿检测网络为通用的仅识别图像中的单个对象的神经网络,是配置的初始模型。
具体的,基础单对象位姿检测网络的输入为图像,输出为该图像中的该网络可识别的单个对象的位姿。进一步可选的,基础单对象位姿检测网络的输出还可以包括该网络可识别的单个对象的黑白图像(mask)。
其中,一个对象的mask是指图像中仅包含该对象的区域的黑白形式。
另一种可能的实现方式中,第二网络可以为按照第一对象的图像,对基础单对象位姿检测网络进行训练后的神经网络。
示例性的,由于第三合成图像是在已知的第三位姿下渲染生成的,因此每幅第三合成图像中第一对象相对于相机的位姿就是已知的,可以将每幅第三合成图像输入基础单对象位姿检测网络,得到预测的每幅第三合成图像中第一对象的位姿;然后根据预测的位姿,与每幅第三合成图像中第一对象的实际位姿,计算基础单对象位姿检测网络迭代过程中的损失,构建损失函数,进而根据该损失函数,训练基础单对象位姿检测网络直至收敛,作为第二网络。需要说明的是,本申请对于神经网络的训练过程不予赘述。
再一种可能的实现方式中,第二网络可以为当前使用的第一网络。
S1503、根据第一对象的三维模型,可微渲染获取第一对象在每个第四位姿下的第四合成图像。
其中,获取一个第四位姿的第二输入图像与所述一个第四位姿渲染得到的第四合成图像相对应。
S1504、根据每个所述第四合成图像与其对应的第二输入图像的第二差异信息,构建第二损失函数。
其中,第二差异信息用于指示第四合成图像与其对应的第二输入图像的差异。
示例性的,第二差异信息包括下述内容中一项或多项:第四合成图像中第一对象的黑白图像与其对应的第二输入图像的中第一对象的黑白图像的交并比(intersectionover union,IOU)之差、获取第四合成图像的第四位姿与第四合成图像经过第一网络得到的位姿之差、第四合成图像与其对应的第二输入图像中与第四合成图像中的第一对象相同位置的区域图像的相似度。
其中,两个黑白图像的IOU之差:是指两个mask的交集的面积与并集的面积之比。
两个位姿之差:是指两个位姿的数学表达计算差值。具体的,差值为平移和旋转之差的和。给定两个位姿分别为R1,T1和R2,T2,则平移的差为T1和T2两个向量的欧氏距离;旋转的差则为
Figure BDA0002870530660000341
其中Tr表示矩阵的迹,arccos为反余弦函数,R1 T为R1的转置。
两个图像的相似度,可以为两幅图像的像素颜色差或者特征图差。
其中,第二输入图像中第一对象的区域图像,可以根据与其对应的第四合成图像中第一对象的黑白图像,裁剪第二输入图像得到。例如,第四合成图像中第一对象的黑白图像可以为二值化图,将该二值化图与对应的第二输入图像相乘,则可以裁剪得到第二输入图像中第一对象的区域图像。
可选的,当第二输入图像中的数量为M(M大于或等于2)个,则第四合成图像也有M个,第四合成图像与其对应的第二输入图像的第二差异信息也就有M个,Li可以为第四合成图像与其对应的第二输入图像的第二差异信息的计算值。
具体的,S1504中计算第二网络在不同第二输入图像上的位姿之间的差异,构建为第二损失函数,从而能够通过优化这些差异来提升第二网络在真实图像上的泛化性。
一种可能的实现方式中,第二损失函数Loss2满足如下表达式:
Figure BDA0002870530660000342
其中,X大于或等于1;λi为权值,Li为用于表示第四合成图像与其对应的第二输入图像的第二差异信息的计算值。X小于或等于第二差异信息的种类数。
一种可能的实现方式中,第一损失函数Loss2可以为Loss2=λ1L12L23L3
其中,L1为S1502输出的第二输入图像中第一对象的黑白图像,与S1503中得到的第四合成图像中第一对象的黑白图像的IoU之差的计算值;L2为S1502输出的第二输入图像中第一对象的位姿与使用第二网络检测第四合成图像得到的第一对象的位姿之间的差的计算值;L3为第四合成图像与其对应的第二输入图像中与该第四合成图像中的第一对象相同区域的部分的视觉感知相似度的计算值。
应理解,构建第二损失函数时的预设权值λi可以根据实际需求配置,本申请实施例对此不予限定。
S1505、根据第二损失函数更新第二网络,得到第一网络。
其中,第一网络识别的图像中第一对象的位姿与图像中所述第一对象的真实位姿的差异,小于所述第二网络识别的图像中第一对象的位姿与图像中所述第一对象的真实位姿差异。
需要说明的是,S1505中根据第二损失函数更新第二网络,得到第一网络的过程,可以参照神经网络的训练过程,本申请实施例对此不予赘述。
示例性的,图15示意的训练对象位姿检测网络的方法的过程也可以如图16所示,对象无标注的真实图像以及第三合成图像构成的第二输入图像,输入第二网络,输出第四位姿。第四位姿以及对象的三维模型,输入可微渲染器,输出第四合成图像及对应的mask。根据第四合成图像及对应的mask、第二输入图像经过第二网络的结果,构建第二损失函数,采用第二损失函数对第二网络进行训练,得到第一网络。
通过本申请提供的训练对象位姿检测网络的方法,采用单对象位姿检测网络,即使新增可识别对象,训练时间短,也不会影响其他可识别对象的识别效果;另外,采用对象的真实图像与多个位姿下可微渲染合成图像的差异构建损失函数,提高了单对象位姿检测网络的精度。
本申请实施例三提供的训练对象位姿检测网络的方法具体可以由如图5b所示的训练设备520执行,该优化方法中的第二合成图像可以是如图5b所示的数据库530中维护的训练数据。可选的,实施例三提供的训练对象位姿检测网络的方法中的S1501至S1503中的部分或全部可以在训练设备520中执行,也可以在训练设备520之前由其他功能模块预先执行,即先对从所述数据库530中接收或者获取到的训练数据进行预处理,如S1501至S1503所述的过程,得到第二输入图像及第四合成图像,作为所述训练设备520的输入,并由所述训练设备520执行S1504至S1505。
可选的,本申请实施例二提供的优化方法可以由CPU处理,也可以由CPU和GPU共同处理,也可以不用GPU,而使用其他适合用于神经网络计算的处理器,本申请不做限制。
本申请实施例四还提供一种显示方法,应用于终端设备。该显示方法可以与前述对象注册方法、优化方法、训练对象位姿检测网络的方法结合使用,也可以单独使用,本申请实施例对此不予具体限定。
如图17所示,本申请实施例提供的显示方法,可以包括:
S1701、终端设备获取第一图像。
其中,第一图像是指终端设备获取的任一图像。
一种可能的实现方式中,终端设备可以通过摄像装置拍摄获取取景框中的图像,作为第一图像。
示例性的,终端设备可以为手机,用户可以在该手机中启动APP,并在APP界面输入获取图像的指令,手机启动摄像头拍摄获取第一图像。
示例性的,终端设备可以为智能眼镜,用户在佩戴该智能眼镜后,通过取景框捕获视野中的图像,作为第一图像。
另一种可能的实现方式中,终端设备可以加载本地存储的图像,作为第一图像。
当然,本申请实施例中对于S1701中终端获取第一图像的方式不予限定。
S1702、终端设备确定第一图像中是否包括可识别对象。
具体的,终端根据线下配置的识别物体的网络,判断第一图像中是否包含可识别对象。
可选的,该识别物体的网络可以为当前的位姿检测网络,也可以为前述实施例中描述的第一网络或第二网络。
一种可能的实现方式中,S1702中终端设备可以根据当前用于识别对象的位姿以及标识的网络,判断第一图像中是否包含可识别对象。
示例性的,终端设备可以将第一图像输入用于识别对象的位姿以及标识的网络,若该网络输出了一个或多个对象的位姿以及标识,则确定第一图像中包括可识别对象,否则,第一图像中不包括可识别对象。
另一种可能的实现方式中,S1702中终端设备可以根据本申请前述实施例中描述的第一网络,以及注册对象得到的多对象类别分类器,判断第一图像中是否包含可识别对象。
示例性的,终端设备可以提取第一图像的特征,与本申请前述实施例中描述的多对象类别分类器中的特征进行匹配,若存在匹配的特征,则确定第一图像中包括可识别对象,否则,第一图像中不包括可识别对象。
示例性的,S1702中可以提取第一图像中的特征信息,该特征信息用于指示所述第一图像中可识别的特征;然后判断特征库中是否存在与提取的特征信息的匹配距离满足预设条件的特征信息;若特征库中存在与特征信息的匹配距离满足预设条件的特征信息,确定第一图像中包括一个或多个可识别对象;若特征库中不存在与特征信息的匹配距离满足预设条件的特征信息,确定第一图像未包括任一可识别对象。其中,特征库中存储了不同对象的一个或多个特征信息。
一种可能的实现方式中,预设条件可以包括小于或等于预设阈值。可以根据实际需求配置预设阈值的取值,本申请实施例对此不予限定。
可选的,若S1702中终端设备确定第一图像中包括一个或多个可识别对象,则执行S1703和S1704。若S1702中终端设备确定第一图像中未包括任一可识别对象,则执行S1705。
S1703、输出第一信息,第一信息用于提示检测到第一图像中包括可识别对象。
可选的,第一信息可以为文字信息或者语音信息,或者其他形式,本申请实施例对此不予限定。
示例性的,第一信息的内容可以为“已检测到可识别对象,请保持当前角度”,该第一信息的内容可以通过文字形式叠加显示于第一图像上,或者,该第一信息的内容可以通过终端设备的扬声器播放。
S1704、通过第一图像包括的每个可识别对象对应的第一网络,获取第一图像中每个可识别对象的位姿;按照每个可识别对象的位姿,显示每个可识别对象对应的虚拟内容。
其中,对象对应的虚拟内容可以根据实际需求配置,本申请实施例不予限定。例如可以为展览物品的介绍信息,或者,也可以为产品的属性信息,或者其他。
S1705、输出第二信息,第二信息用于提示未检测到可识别对象,调整视角以获取第二图像。
其中,第二图像与第一图像不同。
可选的,第二信息可以为文字信息或者语音信息,或者其他形式,本申请实施例对此不予限定。
示例性的,第二信息的内容可以为“未检测到可识别对象,请调整设备角度”,该第二信息的内容可以通过文字形式叠加显示于第一图像上,或者,该第二信息的内容可以通过终端设备的扬声器播放。
通过本申请提供的显示方法,将图像中是否包括可识别对象向用户输出提示,使得用户可以直观获取图像中是否包括可识别对象,提高了用户体验。
示例性的,S1702中终端设备根据本申请前述实施例中描述的第一网络,以及注册对象得到的多对象类别分类器,判断第一图像中是否包含可识别对象的过程,可以如图18所示,该过程可以包括:
S1801、终端设备提取第一图像中的局部特征点。
需要说明的是,本申请实施例对于S1801中提取局部特征点的具体方案不予限定,但是S1801中终端设备提取局部特征点的方法,需与S803中保持一致,以保证方案准确性。
S1802、终端设备获取第一图像中的一个或多个第一局部特征点。
其中,第一局部特征点的描述子与特征库中的局部特征点的描述子的匹配距离小于或等于第一阈值。第一阈值的取值可以根据实际需求配置,本申请实施例对此不予限定。
其中,描述子之间的匹配距离,是指表示描述子的向量之间的距离。例如,欧式距离、汉明距离等。
具体的,特征库中存储了不同对象的局部特征点的描述子。例如,该特征库可以为前述实施例中描述的多对象类别分类器。
S1803、终端设备根据第一局部特征点,确定第一图像中一个或多个ROI。
其中,一个ROI中包括一个对象。
具体的,终端设备可以结合图像的颜色信息、深度信息,将第一局部特征点分类为不同的对象,将集中分布的同一个对象的第一局部特征点的区域,确定为一个ROI,得到一个或多个ROI。
S1804、终端设备提取每个ROI中的全局特征。
需要说明的是,本申请实施例对于S1804中提取全局特征的具体方案不予限定,但是S1804中终端设备提取全局特征的方法,需与S803中保持一致,以保证方案准确性。
S1805、终端设备根据每个ROI中的全局特征,确定第一图像中是否包含可识别对象。
示例性的,若每个ROI中的全局特征中存在一个或多个第一全局特征,确定第一图像中包括第一全局特征对应的可识别对象。其中,第一全局特征的描述子与特征库中的全局特征的描述子的匹配距离小于或等于第二阈值。特征库中还存储了不同对象的全局特征的描述子。若每个ROI中的全局特征中不存在第一全局特征,确定第一图像未包括任一可识别对象。
其中,第二阈值的取值可以根据实际需求配置,本申请实施例对此不予限定。
下面通过具体的示例,对本申请提供的显示方法进行说明。
假设某一商家提供了一款APP,用于用户购物时,通过手机取景捕获图像,识别图像中包含的商品,并显示商品对应的产品介绍。在线下对各个商品的三维对象按照本申请实施例提供的方案进行了注册。当某一用户在该商家购物时,使用手机中的该APP捕获到的场景图1如图19示意的手机界面所示,该APP通过图18示意的方法,提取场景图1中的特征,识别出场景图1中包含可识别对象(智能音箱),并输出“已检测到可识别对象,请保持当前角度”如图20a所示的手机界面。接下来,该APP调用智能音箱对应的第二网络获取该场景图1中该智能音箱的6DOF位姿,然后按照该6DOF位姿显示智能音箱对应的虚拟内容“大家好,我是小艺,能听歌,讲故事,讲笑话,还能懂得无数百科知识的华为智能音箱”,该虚实结合显示内容如图20b所示的手机界面。
上述主要从设备的工作原理的角度对本发明实施例提供的方案进行了介绍。可以理解的是,电子设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对执行本申请方法的装置等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图21示意了本申请实施例提供的一种对象注册装置210,用于实现上述实施例一中的功能。如图21所示,对象注册装置210可以包括:第一获取单元2101、提取单元2102以及注册单元2103。第一获取单元2101用于执行图8中的过程S801,或者图10中的S801a和S801b,或者图14中的S1402、S1403;提取单元2102用于执行图8或图10中的过程S802,或者图14中的S1404;注册单元2103用于执行图8或图10中的过程S803,或者图14中的S1405。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用对应各个功能划分各个功能模块的情况下,图22示意了本申请实施例提供的一种优化装置,用于实现上述实施例二中的功能。如图22所示,优化装置220可以包括:处理单元2201、可微渲染器2202、截图单元2203、构建单元2204以及更新单元2205。处理单元2201用于执行图12中的过程S1201;可微渲染器2202用于执行图12中的过程S1202;截图单元2203用于执行图12中的过程S1203;构建单元2204用于执行图12中的过程S1204;更新单元2205用于执行图12中的过程S1205。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用对应各个功能划分各个功能模块的情况下,图23示意了本申请实施例提供的一种训练对象位姿检测网络的装置230,用于实现上述实施例三中的功能。如图23所示,训练对象位姿检测网络的装置230可以包括:第二获取单元2301、处理单元2302、可微渲染器2303、构建单元2304以及更新单元2305。第二获取单元2301用于执行图15中的过程S1501;处理单元2302用于执行图15中的过程S1502;可微渲染器2303用于执行图15中的过程S1503;构建单元2304用于执行图15中的过程S1504;更新单元2305用于执行图15中的过程S1505。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用对应各个功能划分各个功能模块的情况下,图24示意了本申请实施例提供的一种显示装置240,用于实现上述实施例四中的功能。如图24所示,显示装置240可以包括:第一获取单元2401、输出单元1402以及处理单元1403。第一获取单元2401用于执行图17中的过程S1701;输出单元1402用于执行图17中的过程S1703或S1705;处理单元1403用于执行图17中的过程S1704。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
图25提供了一种装置250的硬件结构示意图。该装置250可以是本申请实施例提供的对象注册装置,用于执行本申请实施例一提供的对象注册方法。或者,该装置250可以是本申请实施例提供的优化装置,用于执行本申请实施例二提供的优化方法。或者,该装置250可以是本申请实施例提供的训练对象位姿检测网络的装置,用于执行本申请实施例三提供的训练对象位姿检测网络的方法。或者,该装置250可以是本申请实施例提供的显示装置,用于执行本申请实施例四提供的显示方法。
如图25所示,装置250(该装置250具体可以是一种计算机设备)可以包括存储器2501、处理器2502、通信接口2503以及总线2504。其中,存储器2501、处理器2502、通信接口2503通过总线2504实现彼此之间的通信连接。
存储器2501可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器2501可以存储程序,当存储器2501中存储的程序被处理器2502执行时,处理器2502和通信接口2503用于执行本申请实施例一至实施例四提供的方法的各个步骤。
处理器2502可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的对象注册装置、优化装置、训练对象位姿检测网络的装置、显示装置中的单元所需执行的功能,或者执行本申请方法实施例一至实施例四中任一实施例提供的方法。
处理器2502还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的训练对象位姿检测网络的方法的各个步骤可以通过处理器2502中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2502还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2501,处理器2502读取存储器2501中的信息,结合其硬件完成本申请实施例的对象注册装置、优化装置、训练对象位姿检测网络的装置、显示装置中包括的单元所需执行的功能,或者执行本申请方法实施例一至实施例四中任一实施例提供的。
通信接口2503使用例如但不限于收发器一类的收发装置,来实现装置250与其他设备或通信网络之间的通信。例如,可以通过通信接口2503获取训练数据(如本申请方法实施例所述的真实图像和合成图像)。
总线2504可包括在装置250各个部件(例如,存储器2501、处理器2502、通信接口2503)之间传送信息的通路。
应理解,对象注册装置210中的第一获取单元2101、提取单元2102以及注册单元2103相当于装置250中的处理器2502。优化装置220中的处理单元2201、可微渲染器2202、截图单元2203、构建单元2204以及更新单元2205相当于装置250中的处理器2502。训练对象位姿检测网络的装置230第二获取单元2301、处理单元2302、可微渲染器2303、构建单元2304以及更新单元2305相当于装置250中的处理器2502。显示装置240中的第一获取单元2401、处理单元1403相当于装置250中的处理器2502,输出单元1402相当于装置250中的通信接口2503。
应注意,尽管图25所示的装置250仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置250还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置250还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置250也可仅仅包括实现本申请实施例所必须的器件,而不必包括图25中所示的全部器件。
可以理解,所述装置250相当于图5b中的所述训练设备520或执行设备510。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。

Claims (37)

1.一种对象注册方法,其特征在于,所述方法包括:
获取包括第一对象的多个第一输入图像,所述多个第一输入图像包括所述第一对象的真实图像和/或所述第一对象的多个第一合成图像;所述多个第一合成图像是由所述第一对象的三维模型在多个第一位姿下可微渲染得到的;所述多个第一位姿不同;
分别提取多个所述第一输入图像的特征信息,所述特征信息用于指示所述第一对象在其所处的第一输入图像中的特征;
将每个所述第一输入图像中提取的所述特征信息,与所述第一对象的标识相对应,进行所述第一对象的注册。
2.根据权利要求1所述的方法,其特征在于,所述特征信息包括局部特征点的描述子,以及全局特征的描述子。
3.根据权利要求1或2所述的方法,其特征在于,分别提取多个所述第一输入图像的特征信息,包括:
将多个所述第一输入图像分别输入第一网络进行位姿识别,得到每个所述第一输入图像中所述第一对象的位姿;其中,所述第一网络用于识别图像中所述第一对象的位姿;
按照获取的所述第一对象的位姿,将所述第一对象的三维模型分别投影至每个所述第一输入图像,得到每个所述第一输入图像中的投影区域;
分别在每个所述第一输入图像中的投影区域,提取所述特征信息。
4.根据权利要求1或2所述的方法,其特征在于,分别提取多个所述第一输入图像的特征信息,包括:
将多个所述第一输入图像分别输入第一网络进行黑白图像提取,获取每个所述第一输入图像中所述第一对象的黑白图像;其中,所述第一网络用于提取图像中所述第一对象的黑白图像;
分别在每个所述第一输入图像中所述第一对象的黑白图像内,提取所述特征信息。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
将所述第一对象的N个真实图像分别输入第一网络,得到所述第一网络输出的每个真实图像中所述第一对象的第二位姿;所述N大于或等于1;所述第一网络用于识别图像中所述第一对象的位姿;
根据所述第一对象的三维模型,采用可微渲染器在每个所述第二位姿下,可微渲染得到N个第二合成图像;获取一个第二位姿的真实图像与所述一个第二位姿渲染得到的第二合成图像相对应;
分别截取每个所述真实图像中,与真实对象对应的第二合成图像中所述第一对象相同位置的区域,作为每个所述真实图像的前景图像;
根据N个所述真实图像的前景图像与其对应的所述第二合成图像的第一差异信息,构建第一损失函数;其中,所述第一差异信息用于指示前景图像与其对应的第二合成图像的差异;
根据所述第一损失函数更新所述可微渲染器,使得所述可微渲染器的输出的合成图像逼近对象的真实图像。
6.根据权利要求5所述的方法,其特征在于,所述第一差异信息包括下述信息中一项或多项:特征图差、像素颜色差、提取的特征描述子之差。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
获取包括第一对象的多个第二输入图像,所述多个第二输入图像包括所述第一对象的真实图像和/或所述第一对象的多个第三合成图像;所述多个第三合成图像是由所述第一对象的三维模型在多个第三位姿下渲染得到的;所述多个第三位姿不同;
将所述多个第二输入图像分别输入第二网络进行位姿识别,得到所述第二网络输出的每个所述第二输入图像中所述第一对象的第四位姿;所述第二网络用于识别图像中所述第一对象的位姿;
根据第一对象的三维模型,可微渲染获取所述第一对象在每个所述第四位姿下的第四合成图像;获取一个第四位姿的第二输入图像与所述一个第四位姿渲染得到的第四合成图像相对应;
根据每个所述第四合成图像与其对应的第二输入图像的第二差异信息,构建第二损失函数;所述第二差异信息用于指示所述第四合成图像与其对应的所述第二输入图像的差异;
根据所述第二损失函数更新所述第二网络,得到第一网络;所述第一网络识别的图像中第一对象的位姿与图像中所述第一对象的真实位姿的差异,小于所述第二网络识别的图像中第一对象的位姿与图像中所述第一对象的真实位姿差异。
8.根据权利要求7所述的方法,其特征在于,
所述第二损失函数Loss2满足如下表达式:
Figure FDA0002870530650000021
所述X大于或等于1,所述λi为权值,所述Li用于表示所述第四合成图像与其对应的所述第二输入图像的第二差异信息的计算值。
9.根据权利要求7或8所述的方法,其特征在于,所述第二差异信息包括下述内容中一项或多项:所述第四合成图像中所述第一对象的黑白图像与其对应的第二输入图像的中所述第一对象的黑白图像的交并比IOU之差、获取所述第四合成图像的第四位姿与所述第四合成图像经过所述第一网络得到的位姿之差、所述第四合成图像与其对应的第二输入图像中与所述第四合成图像中的所述第一对象相同位置的区域图像的相似度。
10.一种显示方法,其特征在于,所述方法包括:
获取第一图像;
若所述第一图像中包括一个或多个可识别对象,输出第一信息,所述第一信息用于提示检测到所述第一图像中包括可识别对象;通过所述第一图像包括的每个可识别对象对应的位姿检测网络,获取所述第一图像中每个可识别对象的位姿;按照每个所述可识别对象的位姿,显示每个所述可识别对象对应的虚拟内容;
若所述第一图像中未包括任一可识别对象,输出第二信息,所述第二信息用于提示未检测到可识别对象,调整视角以获取第二图像,所述第二图像与所述第一图像不同。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
提取所述第一图像中的特征信息,所述特征信息用于指示所述第一图像中可识别的特征;
判断特征库中是否存在与所述特征信息的匹配距离满足预设条件的特征信息;其中,所述特征库中存储了不同对象的一个或多个特征信息;
若所述特征库中存在与所述特征信息的匹配距离满足预设条件的特征信息,确定所述第一图像中包括一个或多个可识别对象;
若所述特征库中不存在与所述特征信息的匹配距离满足预设条件的特征信息,确定所述第一图像未包括任一可识别对象。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
获取所述第一图像中的一个或多个第一局部特征点,所述第一局部特征点的描述子与特征库中的局部特征点的描述子的匹配距离小于或等于第一阈值;所述特征库中存储了不同对象的局部特征点的描述子;
根据所述第一局部特征点,确定所述第一图像中一个或多个感兴趣区域ROI;一个ROI中包括一个对象;
提取每个所述ROI中的全局特征;
若每个所述ROI中的全局特征中存在一个或多个第一全局特征,确定所述第一图像中包括所述第一全局特征对应的可识别对象;其中,所述第一全局特征的描述子与所述特征库中的全局特征的描述子的匹配距离小于或等于第二阈值;所述特征库中还存储了不同对象的全局特征的描述子;
若每个所述ROI中的全局特征中不存在所述第一全局特征,确定所述第一图像未包括任一可识别对象。
13.根据权利要求10-12任一项所述的方法,其特征在于,所述方法还包括:
获取包括第一对象的多个第一输入图像,所述多个第一输入图像包括所述第一对象的真实图像和/或所述第一对象的多个第一合成图像;所述多个第一合成图像是由所述第一对象的三维模型在多个第一位姿下可微渲染得到的;所述多个第一位姿不同;
分别提取多个所述第一输入图像的特征信息,所述特征信息用于指示所述第一对象在其所处的第一输入图像中的特征;
将每个所述第一输入图像中提取的所述特征信息,与所述第一对象的标识相对应存储于特征库,进行所述第一对象的注册。
14.根据权利要求11或13所述的方法,其特征在于,所述特征信息包括局部特征点的描述子,以及全局特征的描述子。
15.根据权利要求10-14任一项所述的方法,其特征在于,所述方法还包括:
获取包括第一对象的多个第二输入图像,所述多个第二输入图像包括所述第一对象的真实图像和/或所述第一对象的多个第三合成图像;所述多个第三合成图像是由所述第一对象的三维模型在多个第三位姿下渲染得到的;所述多个第三位姿不同;
将所述多个第二输入图像分别输入第二网络进行位姿识别,得到所述第二网络输出的每个所述第二输入图像中所述第一对象的第四位姿;所述第二网络用于识别图像中所述第一对象的位姿;
根据第一对象的三维模型,可微渲染获取所述第一对象在每个所述第四位姿下的第四合成图像;获取一个第四位姿的第二输入图像与所述一个第四位姿渲染得到的第四合成图像相对应;
根据每个所述第四合成图像与其对应的第二输入图像的第二差异信息,构建第二损失函数;所述第二差异信息用于指示所述第四合成图像与其对应的所述第二输入图像的差异;
根据所述第二损失函数更新所述第二网络,得到第一网络;所述第一网络识别的图像中第一对象的位姿与图像中所述第一对象的真实位姿的差异,小于所述第二网络识别的图像中第一对象的位姿与图像中所述第一对象的真实位姿差异。
16.根据权利要求15所述的方法,其特征在于,
所述第二损失函数Loss2满足如下表达式:
Figure FDA0002870530650000041
所述X大于或等于1,所述λi为权值,所述Li用于表示所述第四合成图像与其对应的所述第二输入图像的第二差异信息的计算值。
17.根据权利要求15或16所述的方法,其特征在于,所述第二差异信息包括下述内容中一项或多项:所述第四合成图像中所述第一对象的黑白图像与其对应的第二输入图像的中所述第一对象的黑白图像的交并比IOU之差、获取所述第四合成图像的第四位姿与所述第四合成图像经过所述第一网络得到的位姿之差、所述第四合成图像与其对应的第二输入图像中与所述第四合成图像中的所述第一对象相同位置的区域图像的相似度。
18.一种对象注册装置,其特征在于,所述装置包括:
第一获取单元,用于获取包括第一对象的多个第一输入图像,所述多个第一输入图像包括所述第一对象的真实图像和/或所述第一对象的多个第一合成图像;所述多个第一合成图像是由所述第一对象的三维模型在多个第一位姿下可微渲染得到的;所述多个第一位姿不同;
提取单元,用于分别提取多个所述第一输入图像的特征信息,所述特征信息用于指示所述第一对象在其所处的第一输入图像中的特征;
注册单元,用于将所述提取单元在每个所述第一输入图像中提取的所述特征信息,与所述第一对象的标识相对应,进行所述第一对象的注册。
19.根据权利要求18所述的装置,其特征在于,所述特征信息包括局部特征点的描述子,以及全局特征的描述子。
20.根据权利要求18或19所述的装置,其特征在于,所述提取单元具体用于:
将多个所述第一输入图像分别输入第一网络进行位姿识别,得到每个所述第一输入图像中所述第一对象的位姿;其中,所述第一网络用于识别图像中所述第一对象的位姿;
按照获取的所述第一对象的位姿,将所述第一对象的三维模型分别投影至每个所述第一输入图像,得到每个所述第一输入图像中的投影区域;
分别在每个所述第一输入图像中的投影区域,提取所述特征信息。
21.根据权利要求18或19所述的装置,其特征在于,所述提取单元具体用于:
将多个所述第一输入图像分别输入第一网络进行黑白图像提取,获取每个所述第一输入图像中所述第一对象的黑白图像;其中,所述第一网络用于提取图像中所述第一对象的黑白图像;
分别在每个所述第一输入图像中所述第一对象的黑白图像内,提取所述特征信息。
22.根据权利要求18-21任一项所述的装置,其特征在于,所述装置还包括:
处理单元,用于将所述第一对象的N个真实图像分别输入第一网络,得到所述第一网络输出的每个真实图像中所述第一对象的第二位姿;所述N大于或等于1;所述第一网络用于识别图像中所述第一对象的位姿;
可微渲染器,用于根据所述第一对象的三维模型,在每个所述第二位姿下,可微渲染得到N个第二合成图像;获取一个第二位姿的真实图像与所述一个第二位姿渲染得到的第二合成图像相对应;
截取单元,用于分别截取每个所述真实图像中,与真实对象对应的第二合成图像中所述第一对象相同位置的区域,作为每个所述真实图像的前景图像;
构建单元,用于根据N个所述真实图像的前景图像与其对应的所述第二合成图像的第一差异信息,构建第一损失函数;其中,所述第一差异信息用于指示前景图像与其对应的第二合成图像的差异;
更新单元,用于根据所述第一损失函数更新所述可微渲染器,使得所述可微渲染器的输出的合成图像逼近对象的真实图像。
23.根据权利要求22所述的装置,其特征在于,所述第一差异信息包括下述信息中一项或多项:特征图差、像素颜色差、提取的特征描述子之差。
24.根据权利要求18-23任一项所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于获取包括第一对象的多个第二输入图像,所述多个第二输入图像包括所述第一对象的真实图像和/或所述第一对象的多个第三合成图像;所述多个第三合成图像是由所述第一对象的三维模型在多个第三位姿下渲染得到的;所述多个第三位姿不同;
处理单元,用于将所述多个第二输入图像分别输入第二网络进行位姿识别,得到所述第二网络输出的每个所述第二输入图像中所述第一对象的第四位姿;所述第二网络用于识别图像中所述第一对象的位姿;
可微渲染器,用于根据第一对象的三维模型,可微渲染获取所述第一对象在每个所述第四位姿下的第四合成图像;获取一个第四位姿的第二输入图像与所述一个第四位姿渲染得到的第四合成图像相对应;
构建单元,用于根据每个所述第四合成图像与其对应的第二输入图像的第二差异信息,构建第二损失函数;所述第二差异信息用于指示所述第四合成图像与其对应的所述第二输入图像的差异;
更新单元,用于根据所述第二损失函数更新所述第二网络,得到第一网络;所述第一网络识别的图像中第一对象的位姿与图像中所述第一对象的真实位姿的差异,小于所述第二网络识别的图像中第一对象的位姿与图像中所述第一对象的真实位姿差异。
25.根据权利要求24所述的装置,其特征在于,
所述第二损失函数Loss2满足如下表达式:
Figure FDA0002870530650000051
所述X大于或等于1,所述λi为权值,所述Li用于表示所述第四合成图像与其对应的所述第二输入图像的第二差异信息的计算值。
26.根据权利要求24或25所述的装置,其特征在于,所述第二差异信息包括下述内容中一项或多项:所述第四合成图像中所述第一对象的黑白图像与其对应的第二输入图像的中所述第一对象的黑白图像的交并比IOU之差、获取所述第四合成图像的第四位姿与所述第四合成图像经过所述第一网络得到的位姿之差、所述第四合成图像与其对应的第二输入图像中与所述第四合成图像中的所述第一对象相同位置的区域图像的相似度。
27.一种显示装置,其特征在于,所述装置包括第一获取单元、输出单元以及处理单元;其中:
所述第一获取单元,用于获取第一图像;
所述输出单元,用于若所述第一图像中包括一个或多个可识别对象,输出第一信息,所述第一信息用于提示检测到所述第一图像中包括可识别对象;若所述第一图像中未包括任一可识别对象,输出第二信息,所述第二信息用于提示未检测到可识别对象,调整视角以使得所述第一获取单元获取第二图像,所述第二图像与所述第一图像不同;
所述处理单元,用于若所述第一图像中包括一个或多个可识别对象,通过所述第一图像包括的每个可识别对象对应的位姿检测网络,获取所述第一图像中每个可识别对象的位姿;按照每个所述可识别对象的位姿,显示每个所述可识别对象对应的虚拟内容。
28.根据权利要求27所述的装置,其特征在于,所述装置还包括:
提取单元,用于提取所述第一图像中的特征信息,所述特征信息用于指示所述第一图像中可识别的特征;
判断单元,用于判断特征库中是否存在与所述特征信息的匹配距离满足预设条件的特征信息;其中,所述特征库中存储了不同对象的一个或多个特征信息;
第一确定单元,用于若所述特征库中存在与所述特征信息的匹配距离满足预设条件的特征信息,确定所述第一图像中包括一个或多个可识别对象;若所述特征库中不存在与所述特征信息的匹配距离满足预设条件的特征信息,确定所述第一图像未包括任一可识别对象。
29.根据权利要求27所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于获取所述第一图像中的一个或多个第一局部特征点,所述第一局部特征点的描述子与特征库中的局部特征点的描述子的匹配距离小于或等于第一阈值;所述特征库中存储了不同对象的局部特征点的描述子;
第二确定单元,用于根据所述第一局部特征点,确定所述第一图像中一个或多个感兴趣区域ROI;一个ROI中包括一个对象;
提取单元,用于提取每个所述ROI中的全局特征;
第一确定单元,用于若每个所述ROI中的全局特征中存在一个或多个第一全局特征,确定所述第一图像中包括所述第一全局特征对应的可识别对象;若每个所述ROI中的全局特征中不存在所述第一全局特征,确定所述第一图像未包括任一可识别对象;其中,所述第一全局特征的描述子与所述特征库中的全局特征的描述子的匹配距离小于或等于第二阈值;所述特征库中还存储了不同对象的全局特征的描述子。
30.根据权利要求27-29任一项所述的装置,其特征在于,所述装置还包括:
第三获取单元,用于获取包括第一对象的多个第一输入图像,所述多个第一输入图像包括所述第一对象的真实图像和/或所述第一对象的多个第一合成图像;所述多个第一合成图像是由所述第一对象的三维模型在多个第一位姿下可微渲染得到的;所述多个第一位姿不同;
提取单元,用于分别提取多个所述第一输入图像的特征信息,所述特征信息用于指示所述第一对象在其所处的第一输入图像中的特征;
注册单元,用于将每个所述第一输入图像中提取的所述特征信息,与所述第一对象的标识相对应存储于特征库,进行所述第一对象的注册。
31.根据权利要求28或30所述的装置,其特征在于,所述特征信息包括局部特征点的描述子,以及全局特征的描述子。
32.根据权利要求27-31任一项所述的装置,其特征在于,所述装置还包括:
第四获取单元,用于获取包括第一对象的多个第二输入图像,所述多个第二输入图像包括所述第一对象的真实图像和/或所述第一对象的多个第三合成图像;所述多个第三合成图像是由所述第一对象的三维模型在多个第三位姿下渲染得到的;所述多个第三位姿不同;
处理单元,用于将所述多个第二输入图像分别输入第二网络进行位姿识别,得到所述第二网络输出的每个所述第二输入图像中所述第一对象的第四位姿;所述第二网络用于识别图像中所述第一对象的位姿;
可微渲染器,用于根据第一对象的三维模型,可微渲染获取所述第一对象在每个所述第四位姿下的第四合成图像;获取一个第四位姿的第二输入图像与所述一个第四位姿渲染得到的第四合成图像相对应;
构建单元,用于根据每个所述第四合成图像与其对应的第二输入图像的第二差异信息,构建第二损失函数;所述第二差异信息用于指示所述第四合成图像与其对应的所述第二输入图像的差异;
更新单元,用于根据所述第二损失函数更新所述第二网络,得到第一网络;所述第一网络识别的图像中第一对象的位姿与图像中所述第一对象的真实位姿的差异,小于所述第二网络识别的图像中第一对象的位姿与图像中所述第一对象的真实位姿差异。
33.根据权利要求32所述的装置,其特征在于,
所述第二损失函数Loss2满足如下表达式:
Figure FDA0002870530650000071
所述X大于或等于1,所述λi为权值,所述Li用于表示所述第四合成图像与其对应的所述第二输入图像的第二差异信息的计算值。
34.根据权利要求32或33所述的装置,其特征在于,所述第二差异信息包括下述内容中一项或多项:所述第四合成图像中所述第一对象的黑白图像与其对应的第二输入图像的中所述第一对象的黑白图像的交并比IOU之差、获取所述第四合成图像的第四位姿与所述第四合成图像经过所述第一网络得到的位姿之差、所述第四合成图像与其对应的第二输入图像中与所述第四合成图像中的所述第一对象相同位置的区域图像的相似度。
35.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;
所述存储器与所述处理器连接;所述存储器用于存储计算机指令,当所述处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1-9中任一项所述的对象注册方法,或者,使得所述电子设备执行如权利要求10-17中任一项所述的显示方法。
36.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行权利要求1-9中任一项所述的对象注册方法,或者,使得计算机执行权利要求10-17中任一项所述的显示方法。
37.一种计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行权利要求1-9中任一项所述的对象注册方法,或者,使得计算机执行权利要求10-17中任一项所述的显示方法。
CN202011607387.9A 2020-12-29 2020-12-29 一种对象注册方法及装置 Pending CN114758334A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011607387.9A CN114758334A (zh) 2020-12-29 2020-12-29 一种对象注册方法及装置
PCT/CN2021/140241 WO2022143314A1 (zh) 2020-12-29 2021-12-21 一种对象注册方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011607387.9A CN114758334A (zh) 2020-12-29 2020-12-29 一种对象注册方法及装置

Publications (1)

Publication Number Publication Date
CN114758334A true CN114758334A (zh) 2022-07-15

Family

ID=82260190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011607387.9A Pending CN114758334A (zh) 2020-12-29 2020-12-29 一种对象注册方法及装置

Country Status (2)

Country Link
CN (1) CN114758334A (zh)
WO (1) WO2022143314A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116168312A (zh) * 2023-02-23 2023-05-26 兰州交通大学 复杂场景下端到端的ar辅助装配三维注册方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6840842B2 (ja) * 2017-05-24 2021-03-10 古野電気株式会社 映像生成装置
US10403031B2 (en) * 2017-11-15 2019-09-03 Google Llc Learning to reconstruct 3D shapes by rendering many 3D views
US10977827B2 (en) * 2018-03-27 2021-04-13 J. William Mauchly Multiview estimation of 6D pose
EP3579196A1 (en) * 2018-06-05 2019-12-11 Cristian Sminchisescu Human clothing transfer method, system and device
CN111832360A (zh) * 2019-04-19 2020-10-27 北京三星通信技术研究有限公司 提示信息的处理方法、装置、电子设备以及可读存储介质
CN111510701A (zh) * 2020-04-22 2020-08-07 Oppo广东移动通信有限公司 虚拟内容的显示方法、装置、电子设备及计算机可读介质
CN111783986A (zh) * 2020-07-02 2020-10-16 清华大学 网络训练方法及装置、姿态预测方法及装置
CN111950477B (zh) * 2020-08-17 2024-02-02 南京大学 一种基于视频监督的单图像三维人脸重建方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116168312A (zh) * 2023-02-23 2023-05-26 兰州交通大学 复杂场景下端到端的ar辅助装配三维注册方法及系统
CN116168312B (zh) * 2023-02-23 2023-09-08 兰州交通大学 复杂场景下端到端的ar辅助装配三维注册方法及系统

Also Published As

Publication number Publication date
WO2022143314A1 (zh) 2022-07-07

Similar Documents

Publication Publication Date Title
Betancourt et al. The evolution of first person vision methods: A survey
CN110647865A (zh) 人脸姿态的识别方法、装置、设备及存储介质
CN111738122B (zh) 图像处理的方法及相关装置
CN111476306A (zh) 基于人工智能的物体检测方法、装置、设备及存储介质
CN111243668B (zh) 分子结合位点检测方法、装置、电子设备及存储介质
US20220309836A1 (en) Ai-based face recognition method and apparatus, device, and medium
WO2020082382A1 (en) Method and system of neural network object recognition for image processing
CN112036331A (zh) 活体检测模型的训练方法、装置、设备及存储介质
CN111930964B (zh) 内容处理方法、装置、设备及存储介质
WO2021047587A1 (zh) 手势识别方法、电子设备、计算机可读存储介质和芯片
WO2024021742A1 (zh) 一种注视点估计方法及相关设备
CN113505256B (zh) 特征提取网络训练方法、图像处理方法及装置
CN111782879A (zh) 模型训练方法及装置
WO2022179604A1 (zh) 一种分割图置信度确定方法及装置
CN113705302A (zh) 图像生成模型的训练方法、装置、计算机设备及存储介质
CN111753498A (zh) 文本处理方法、装置、设备及存储介质
US11138812B1 (en) Image processing for updating a model of an environment
Zheng et al. Lightweight fall detection algorithm based on AlphaPose optimization model and ST-GCN
WO2022143314A1 (zh) 一种对象注册方法及装置
CN112037305B (zh) 对图像中的树状组织进行重建的方法、设备及存储介质
CN113642359B (zh) 人脸图像生成方法、装置、电子设备及存储介质
CN111798367A (zh) 图像处理方法、装置、存储介质及电子设备
CN112527104A (zh) 确定参数确定方法、装置、设备及存储介质
CN112528760B (zh) 图像处理方法、装置、计算机设备及介质
CN114970576A (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