CN114902294B - 移动增强现实中的细粒度视觉识别 - Google Patents

移动增强现实中的细粒度视觉识别 Download PDF

Info

Publication number
CN114902294B
CN114902294B CN202080091681.0A CN202080091681A CN114902294B CN 114902294 B CN114902294 B CN 114902294B CN 202080091681 A CN202080091681 A CN 202080091681A CN 114902294 B CN114902294 B CN 114902294B
Authority
CN
China
Prior art keywords
interest
region
state
roi
image
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.)
Active
Application number
CN202080091681.0A
Other languages
English (en)
Other versions
CN114902294A (zh
Inventor
周兵
S·古文
陶舒
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN114902294A publication Critical patent/CN114902294A/zh
Application granted granted Critical
Publication of CN114902294B publication Critical patent/CN114902294B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • 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
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield 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
    • G06N3/045Combinations of networks
    • 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/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/3827Portable transceivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-dimensional objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)
  • Processing Or Creating Images (AREA)

Abstract

获得对对象的三维点云表示的访问,三维点云表示包括扫描数字相机的位姿和对应的视频帧。对三维点云表示进行下采样以获得感兴趣区域候选的集合。过滤感兴趣区域候选以至少部分基于相机的位姿来选择感兴趣区域候选中具有区分不同视觉状态的外观改变的那些感兴趣区域候选作为所选择的感兴趣区域。从视频帧中的对应视频帧生成针对所选择的感兴趣区域的感兴趣区域图像;以及基于感兴趣区域图像来训练深度学习识别模型。被训练的深度学习识别模型可以用于例如确定对象的视觉状态以用于修复指令。

Description

移动增强现实中的细粒度视觉识别
技术领域
本发明涉及电气、电子和计算机领域,并且更具体地,涉及增强现实(AR)***等。
背景技术
增强现实(AR)通过在真实世界中所看到的之上覆盖媒体和图形来增强对周围环境的感知。在过去的十年中,已经取得了重大的进步,并且对AR的兴趣也在增加。尽管有这种进步,但是大多数AR用户体验仍然是原始的,并且缺乏智能和自动化,这使得用户交互相当不直观。尽管AR能够通过计算机视觉技术来跟踪物理空间中的虚拟对象和注释,但是实际上识别其所看到的语义并不固有地智能。例如,在技术支持领域中,AR可以识别点云形式的膝上型计算机以使得能够在膝上型计算机的顶部上跟踪注释,但是在用户没有将该特定点云标记为膝上型计算机的情况下,AR实际上不知道它正在看着膝上型计算机。AR也不能理解膝上型计算机的盖子是打开的还是关闭的,或者膝上型计算机的散热器是被移除的,等等。当前技术要求在用户可以将相关AR内容投影到用户的视图之前,由用户驱动的所有交互识别用户正在看什么(例如,通过预先标记对象、指定对象的状态等),从而显著地限制交互。因此,在本领域中需要解决上述问题。
发明内容
方法包括:获得对对象的三维点云表示的访问,三维点云表示包括扫描数字相机的位姿和对应的视频帧;对三维点云表示进行下采样以获得感兴趣区域候选的集合;过滤感兴趣区域候选以至少部分基于相机的位姿选择感兴趣区域候选中具有区分不同视觉状态的外观改变的那些感兴趣区域候选作为所选择的感兴趣区域;从视频帧中的对应视频帧生成所选择的感兴趣区域的感兴趣区域图像;以及基于感兴趣区域图像来训练深度学习识别模型。
从另一方面来看,本发明提供了非暂时性计算机可读介质,其包括计算机可执行指令,计算机可执行指令在由计算机执行时使计算机执行方法,方法包括:获得对对象的三维点云表示的访问,三维点云表示包括扫描数字相机的位姿和对应的视频帧;对三维点云表示进行下采样以获得感兴趣区域候选的集合;过滤感兴趣区域候选以至少部分基于相机的位姿选择感兴趣区域候选中具有区分不同视觉状态的外观改变的那些感兴趣区域候选作为所选择的感兴趣区域;从视频帧中的对应视频帧生成所选择的感兴趣区域的感兴趣区域图像;以及基于感兴趣区域图像来训练深度学习识别模型。
从另一方面来看,本发明提供了装置,包括:存储器;以及至少一个处理器,其耦合到存储器,并且可操作以:获得对对象的三维点云表示的访问,三维点云表示包括扫描数字相机的位姿和对应的视频帧;对三维点云表示进行下采样以获得感兴趣区域候选的集合;过滤感兴趣区域候选以至少部分基于相机的位姿选择感兴趣区域候选中具有区分不同视觉状态的外观改变的那些感兴趣区域候选作为所选择的感兴趣区域;从视频帧中的对应视频帧生成所选择的感兴趣区域的感兴趣区域图像;以及基于感兴趣区域图像来训练深度学习识别模型。
从另一方面来看,本发明提供了用于增强现实的计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质可由处理电路读取并且存储由处理电路执行以执行用于执行本发明的步骤的方法的指令。
从另一方面来看,本发明提供了计算机程序,其存储在计算机可读介质上并且可加载到数字计算机的内部存储器中,其包括软件代码部分,当程序在计算机上运行时,用于执行本发明的步骤。
本发明的原理提供了用于移动增强现实中的细粒度(fine-grained)视觉识别的技术。在一个方面,示例性方法包括以下步骤:获得对对象的三维点云表示的访问,该三维点云表示包括扫描数字相机的位姿和对应的视频帧;对三维点云表示进行下采样以获得感兴趣区域候选的集合;过滤感兴趣区域候选以至少部分基于相机的位姿选择感兴趣区域候选中具有区分不同视觉状态的外观改变的那些感兴趣区域候选作为所选择的感兴趣区域;从视频帧中的对应视频帧生成针对所选择的感兴趣区域的感兴趣区域图像;基于感兴趣区域图像训练深度学习识别模型。
如本文所使用的,“促进”动作包括执行动作、使动作更容易、帮助执行动作、或使得动作被执行。因此,作为示例而非限制,在一个处理器上执行的指令可以通过发送适当的数据或命令以促使或帮助要执行的动作来促进由在远程处理器上执行的指令所执行的动作。为了避免疑惑,在行动者通过执行动作之外的动作来促进动作的情况下,该动作仍然由某个实体或实体的组合来执行。
本发明的一个或多个实施例或其元件可以以计算机程序产品的形式实现,该计算机程序产品包括具有用于执行所示方法步骤的计算机可用程序代码的计算机可读存储介质。此外,本发明的一个或多个实施例或其元件可以以***(或装置)的形式实现,该***(或装置)包括存储器和至少一个处理器,该处理器耦合到存储器并且操作用于执行示例性方法步骤。此外,在另一方面,本发明的一个或多个实施例或其元件可以以用于执行本文描述的一个或多个方法步骤的装置的形式来实现;装置可以包括(i)硬件模块,(ii)存储在计算机可读存储介质(或多个该介质)中并在硬件处理器上实现的软件模块,或(iii)(i)和(ii)的组合;(i)-(iii)中的任何一个实现这里阐述的特定技术。
本发明的技术可以提供实质上有益的技术效果。例如,一个或多个实施例提供以下中的一个或多个:对诸如被修复的机器的物品的状态的细粒度视觉识别,对于诸如被用户的手或工具的遮挡是鲁棒的,对于相机移动是鲁棒的,并且自动忽略模糊的图像。
通过结合附图阅读的本发明的说明性实施例的以下详细描述,本发明的这些和其它特征和优点将变得显而易见。
附图说明
现在将参照优选实施例仅通过示例的方式描述本发明,如以下附图所示:
图1示出了根据本发明实施例的云计算环境;
图2示出了根据本发明实施例的抽象模型层;
图3A、3B、3C和3D示出了可以使用本发明的实施例来检测的计算机的示例性视觉状态;
图4是根据本发明实施例的组合数据流/框图;
图5是根据本发明实施例的可替换组合的数据流/框图;
图6示出了根据本发明的实施例的用于感兴趣区域(ROI)生成的示例性过程;
图7示出了根据本发明的实施例的用于感兴趣区域(ROI)选择的示例性过程;
图8是根据本发明实施例的具有运行时间细节的组合的数据流/框图;
图9是根据本发明的实施例的示例性模型设计;
图10是示出根据本发明的实施例的选择用于重新定位的正确对象模型的位姿无关粗粒度识别的流程图;
图11示出了可以由本发明的实施例有效地处理的ROI遮挡的示例;
图12示出了根据本发明的实施例的ROI优化如何评估设备的移动速度、视角和距离以选择最佳采集的ROI图像;
图13示出了根据本发明的一个方面的状态识别结果的混淆矩阵;
图14示出了根据本发明的一个方面的具有不同数量的训练图像的数据增强(DA)的识别准确度比较;
图15示出了根据本发明的一个方面的具有不同ROI尺寸的识别准确度;
图16示出了根据本发明的一个方面的不同试验次数的错误率和时延;
图17示出了根据本发明的一个方面的具有ROI采集或使用原始图像帧的不同模型的准确度;
图18示出了根据本发明的一个方面的当对象变得更复杂时需要更多ROI的不同模型的准确度的比较;
图19示出了根据本发明的一个方面的随着ROI数量增加的不同模型的参数的总数;
图20示出了利用本发明的(多个)示例性实施例实现的关于五个对象的轻量(LW)卷积神经网络(CNN)和离散CNN-LSTM(DCL;LSTM=长短期记忆)模型的示例性准确性;
图21是示出了利用本发明的(多个)示例性实施例实现的不同模式下的资源消耗的表格;以及
图22示出了可用于实现本发明的一个或多个方面和/或元素的计算机***,其也表示根据本发明的实施例的云计算节点。
具体实施方式
预先理解,尽管本公开包括关于云计算的详细描述,但是本文中记载的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问的服务递送模型,该可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被池化以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云***通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户端设备访问。消费者不管理或控制包括网络、服务器、操作***、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作***或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,该软件可以包括操作***和应用。消费者不管理或控制底层云基础设施,但具有对操作***、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使能数据和应用可移植性(例如,用于云之间的负载平衡的云突发)的标准化或私有技术绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图1,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机***54N。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算装置上的资源。应当理解,图1中所示的计算装置54A-N的类型仅旨在说明,并且计算节点10和云计算环境50可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参考图2,示出了由云计算环境50(图1)提供的一组功能抽象层。可预先理解,图2中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作***74;以及虚拟客户机75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开帐单或***。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和***管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA预期未来需求。
工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育传送93;数据分析处理94;事务处理95;以及用于移动增强现实96中的细粒度视觉识别的基于云的服务,应当理解,可以采用云、非云/本地以及组合的方法。例如,一些实施例驻留在用户的智能电话、膝上型计算机或其他移动设备54A、54C上,并且可选地与云中的元素交互。
一个或多个实施例有利地提供了用于增强现实驱动的视觉识别的***和方法。尽管增强现实(AR)的最新进展,但是大多数AR用户体验仍然是原始的,并且缺乏智能和自动化,这使得用户交互相当不直观。尽管AR能够通过计算机视觉技术来跟踪物理空间中的虚拟对象和注释,但是实际上识别其所看到的语义并不固有地是智能的。例如,在技术支持领域中,AR可以识别点云形式的膝上型计算机以使能在膝上型计算机的顶部上的跟踪注释,但是在用户没有将该特定点云标记为膝上型计算机的情况下,AR实际上不知道它正在看着膝上型计算机。AR也不能理解膝上型计算机的盖子是打开的还是关闭的,或者膝上型计算机的散热器是被移除的,等等。在用户可以使相关AR内容投影到用户的视野之前,语义细粒度识别的缺乏要求用户通过识别用户正在看什么(例如,通过预先标记对象、指定对象的状态等)来驱动所有交互,并且由此显著限制交互。为了解决这个差距并提供丰富的AR用户体验,一个或多个实施例提供了更多细粒度的视觉识别方法,其不仅识别对象,还识别对象的部分或对象的(一个或多个)状态改变。该方法使得AR应用能够通过检测对象的一部分的状态改变来自动地在合适上下文中渲染相关AR指令。
识别细粒度类别(例如,汽车型号、鸟类别)是非常具有挑战性的问题,因为它需要定位和识别边缘视觉差异的能力。大多数现有工作依赖于利用边界框来表示相关特征的人类注释数据集,但这是非常难以规模化的。使用具有类别标签的卷积神经网络(CNN)的弱监督的部分模型对用于数据标记的边界框没有依赖性,因此极大地增加了它们的适用性。这种方法包括两个步骤:通过从正/负图像块训练并随后提取用于识别的细粒度特征来进行部分定位。然而,这些方法不能直接应用于动态相机移动给所采集的图像带来噪声的情况。类似地,区域建议网络(RPN)在复杂的场景中不能很好地工作,诸如用于硬件修复的状态识别,因为许多部分(例如,RAM棒、螺钉)可能看起来相同,但是它们的组合可表示硬件的不同状态。这种基于RPN的模型缺乏聚焦特定感兴趣部分的能力。现有方法共享同一假设,即在输入图像中充分地采集可区分的部分,这在实践中可能不总是这样。
现有技术通常或者假定输入图像是从围绕对象的十二个固定视角(方位角以30°为步长)拍摄的,或者使用以分组或成对形式的随机图像。与假定用户知道如何以及在哪里拍摄输入图像的现有***不同,一个或多个实施例基于表示目标对象的3D点云和相机位姿引导用户从最具信息性的感兴趣区域(ROI)采集图像。
主动识别通常涉及学习对象的生成模型,然后基于熵减(entropy reduction)来选择图。最近,提出了“ShapeNets”框架,以将对象建模为体素(voxel)网格,并且基于卷积深度置信网络来学习生成模型,以允许从不可见的视点进行图合成。还提出了用于主动视觉分类的端到端策略学习,以及用于针对未知任务探究不可见环境的框架。然而,该模型通常不能保证对象感知的完整性,使得所有相关部分被采集。
一个或多个实施例有利地提供了利用针对AR的数据(例如实时产生的3D特征点和相机位姿)来补充相机采集的图像以用于细粒度视觉识别的解决方案。首先,使用一组训练视频并学习ROI,ROI具有区分不同状态的外观变化。主动跟踪6-DOF相机位姿以确保相机保持在与ROI的合适距离和视角,并最小化视觉识别模型的输入图像的遮挡或其他噪声。为了提高识别的鲁棒性,一个或多个实施例提供了离散多流卷积神经网络(CNN),其结合双向长期记忆(LSTM),即离散-CNN-LSTM(DCL)模型,以不仅提取空间数据,还提取时间数据来预测状态变化。
一个或多个实施例解决了移动AR设置中细粒度视觉识别的独特问题,并且组合图像、3D特征点和相机位姿数据以主动预测对象状态改变。一个或多个实施例从自AR会话收集的合并的3D特征点生成ROI候选,并且使用深CNN特征表示来自动提取可区分的ROI,该深CNN特征表示被跟踪和裁剪用于细粒度识别。一个或多个实施例采用本发明的离散CNN-LSTM(DCL)模型,其中将ROI图像分布在离散的多流CNN分支上并且利用双向LSTM层来聚集信息。具有共享权重的多流CNN解决了细粒度(并且因此更大的模型大小)所需的高图像分辨率与随着ROI的数量增加而缩小的分辨率之间的矛盾问题。LSTM层在时域中聚集视觉信息以进一步增强预测稳定性。在非限制性示例性实验实施例中,使用AR开发平台(用于iOS的Apple(苹果)的ARKit增强现实开发平台)和端对端机器学***台)来构建iOS应用,以使用硬件维护应用场景来证明有效性并提供全面评估。
增强现实(AR)当前用于各种目的,包括技术支持。AR***是用虚拟材料覆盖真实世界的计算机化视觉***。增强的自助涉及将逐步三维(3D)动画指令叠加到要在其上工作的硬件的图像上;其比以前的***更直观且更吸引人。由于缺乏细粒度的视觉识别,先前的***通常需要人工分析以及对可用指令集的手动选择以进行查看。一个或多个实施例有利地识别对象的状态和修复,并自动提供正确的指令集。如本文所定义的,对象的“视觉状态”是指在给定时间点的对象的视觉配置,诸如正在维修的机器;例如安装/未安装电池,锁住或锁住存在的物体的特性,而不是仅仅物体本身的不存在/存在。在电池示例中,“视觉状态”是与电池相对的主板的状态,。在一个或多个实施例中,这通过迄今为止不可用的细粒度视觉识别来实现。请参照图3A。期望确定风扇303和/或电池305是否已经被移除。由于与相机的距离,难以确定电池是否已被移除,因此,如图3C所示,适于“放大”。在图3B中,可以看到另一个潜在的问题;即,电池305被电线307遮挡。在图3D中,可以看到另一个潜在的问题;即,电池305被用户的手309遮挡。还注意CPU 311。
一个或多个实施例有利地提供了识别被修复的机器的视觉状态的视觉识别***,其可提供例如以下三个功能:
自动呈现对应的AR指令。
验证所有先决条件都满足,以移到下一步骤。
回答问题“我在哪里?”(在中断的修复过程之后识别机器的状态)。
一个或多个实施例提供了对对象的非常细粒度的感知。有利地,可以从适当的视角观看对象,使得关键部件对于相机是可以看到的。一个或多个实施例使得能够放大到图像的局部区域;例如,以检测是否安装了小螺钉或丢失了小螺钉(或其它细粒度细节)。对象可能暂时被用户的手或工具遮挡(图3D),这给图像带来“噪声”。
另外,与将良好拍摄的图像作为输入的传统视觉识别场景不同,AR场景中的输入图像是从动态移动相机采集的。一个或多个实施例解决了由于快速相机移动引起的模糊的图像或部分采集的图像而导致的可靠且稳定的识别结果的挑战。
迄今为止,当前的视觉识别算法还不能在这种有问题的情况下提供良好的结果。一个或多个实施例有利地提供了能够进行细粒度识别的框架。参考图4,一个或多个实施例包括离线阶段403和在线阶段405。对于离线阶段,由于AR,可以用相机扫描对象以检测对象的三维(3D)特征点,并且跟踪对象的位姿、取向和相机的位置。在一个或多个实施例中,在407,在离线阶段,首先扫描对象,使得可以构造对象的3D模型。同时,在409处采集对象的视频帧/图像。所采集的数据被用于ROI(感兴趣区域)提取411。例如,电池和CPU风扇是感兴趣区域。一个或多个实施例采用算法来自动提取该ROI(离线ROI采集)413。
在ROI被采集(离线413、在线414)后,一个或多个实施例确定ROI图像(离线415、在线416),这可涉及例如确定如何裁剪缩略图图像的计算以及缩略图的连接。例如,连接多个感兴趣图像(在非限制性示例中,在541和803-1、803-2、…、803-M处,以3乘3布置的9个图像)(诸如电池、CPU、芯片等);在在线阶段405期间,连接的图像可以用于视觉识别417。在一个或多个实施例中,在离线阶段403期间,在419处基于连接的图像415来训练深度学习模型。该模型被用于实时在线视觉识别417。
在一个或多个实施例中,视觉识别是两步过程:(i)ROI提取411和(ii)ROI连接和视觉识别。因此,一个或多个实施例不将整个图像馈送到用于视觉识别的模型中。
图4因此示出了***设计的相关步骤,其可以被分为离线403和在线405阶段。在离线阶段403中,在407,首先扫描对象(例如,利用移动设备)以构建对象模型,该对象模型是对象的3D点云表示,其可用于重新定位404。在409,在扫描期间,收集相机位姿以及检测到的点云和视频帧。在411,ROI提取从对象模型下采样3D点云表示以生成一组ROI候选,在413进一步对该组ROI候选进行过滤(例如,由于(i)由于过快的相机运动引起的模糊和/或(ii)感兴趣区域的遮挡),使得仅选择具有外观改变的那些ROI。基于所选择的ROI,裁剪所保存的帧以生成ROI图像415,其用于识别模型训练419。
在在线阶段405中,首先使用对象模型检测对象,并且在404处相对于对象重新定位移动设备,使得所提取的ROI保持在相对于对象的同一位置上。基于对象上的这些ROI,在414放大每个ROI并裁剪局部高分辨率图像,进一步处理该图像以获得图像416用于视觉识别417(在线)(图像415用于模型训练419(离线))。基于所识别的对象的“状态”,自动呈现对应的AR指令。
图5示出了本文别处讨论的可替换图。
图6示出了用于ROI生成的示例性过程。首先,在503,利用AR开发平台扫描感兴趣对象(这里是膝上型计算机)502;一个非限制性示例是Apple的用于iOS移动设备的ARKit增强现实开发平台;另一个是Google(谷歌)的ARCore软件开发工具包(本领域技术人员熟悉ARKit平台、ARCore工具包等)。如在505处所见,这导致特征点的累积的点云;本质上是对象的粗略表示。然后,在507,检测异常值,其在图509中以红色描绘。在511,移除离群值以获得图513,对象502的点云表示。在515,执行体素网格下采样以获得图517,其中每个点是3D空间的小体素的质心。本质上,下采样到一定的大小。然后,在519,估计体素的法线以获得图521。在523,处理图521以获得候选感兴趣区域525-1、525-2、525-3、525-4、525-5、525-6和525-7。仅示出七个以避免混乱;然而,通常,生成感兴趣区域以覆盖对象502的整个表面。对于每个点通常存在具有突出法线的ROI;仅示出七个ROI以避免混乱。在529,将候选ROI投影到2D图像上以获得图531。
一个或多个实施例利用AR中的相机位姿跟踪来保持相机聚焦在感兴趣区域(ROI)上,使得可以过滤掉有噪声的背景信息;结果是对任意设备移动是鲁棒的。
现在参考图7,识别在不同对象状态之间最可区分的这些ROI。集中在这些(可区分的)ROI上并排除噪声更大的ROI(即,包括背景的这些ROI)。感兴趣区域由3D坐标表示,其被投影到2D图像上。在533,执行ROI提取以获得具有两个ROI的图535。然后,在537,执行图像裁剪和缩放以获得裁剪和缩放的图像539(小的感兴趣区域);通常针对每个感兴趣状态的每个ROI获得图像。如图7右下角541处所见,连接被裁剪的图像。如543所示,训练模型545以分类这些图像。在训练过程期间,对于每个状态变化,通常可以确定哪些ROI具有最显著的影响。例如,如果希望检测电池是否已经被移除,则引导用户聚焦在电池ROI上以解决关于实际状态的任何混淆。在该上下文中,在一个或多个实施例中,ROI是指具有显著影响的所有ROI。此外,还已知哪些ROI具有从一个状态到另一个状态的视觉变化。例如,一个或多个实例具有四个状态:电池、电池关闭、CPU开启、CPU关闭,以及两个ROI(电池和CPU)。如果***关于电池开/关不明确,则应当扫描该ROI而不是CPU。每个ROI与特定状态改变相关联;在一个或多个实施例中,即当不确定性发生时如何引导用户移动相机。每个状态的概率指示期望检测哪个状态。例如,如果状态/概率是状态0:0.05,状态1:0.45,状态2:0.5,这意味着***被状态1和2混淆。应当扫描对应的ROI。
现在参考图8,在一个或多个实施例中,在运行时,将视频帧703作为输入;3D特征点705;以及相机位姿数据707(相机取向和位置)作为输入,并且如在709,基于ROI执行3D到2D投影,并且获得每个ROI的图像并将它们连接在一起以便识别。还参考708,一个或多个实施例仅在体素被占用时采集ROI图像。如在711处所见,针对每一ROI获得被缩放的局部图像和查看位姿,其可被连接以获得识别模型545。该技术有利地允许以高准确度获得非常细粒度的图像。这是由于使用高分辨率图像和裁剪以仅考虑具有变化的ROI。一个或多个实施例对于相机移动是鲁棒的,并且自动忽略被遮挡和/或模糊(例如,由于太快的相机平移和/或旋转)的图像。
因此,一个或多个实施例利用相机位姿跟踪和3D特征点(其是AR的“副产品”)。有利地,一个或多个实施例能够在采集非常详细的子区域时以高准确度检测非常细粒度的改变。在扫描期间放大和裁剪这些区域。一个或多个实施例由于仅在感兴趣的体素被占用时采集2D图像所以对于来自用户的手、工具等的遮挡是鲁棒的。一个或多个实施例对于相机移动是鲁棒的,并且自动忽略模糊图像。
图9示出了模型设计的各方面。提供多个分支803-1、803-2、…、803-K用于特征提取。这些是通过将ROI分成多个分支而获得的;例如,803-1包括ROI 0到8;803-2包括ROI 9到17;803-K包括ROI 9*(K-1)到N-1(N=ROI的总数,编号为0到N-1,并且K=分支的数量)。在一些情况下,例如,可能存在少于8个ROI,并且可能仅采用单个分支803-1。因为到CNN的输入是固定的,所以将太多ROI放入单个图像中将非期望地压缩分辨率。因此,ROI通常被分布到多个分支中;由于更新一个ROI图像只需要运行一个特征提取分支,所以这有利地节省了计算开销。因此,在805处大致示出特征提取过程,并且它利用(一个或多个)卷积神经网络807。在809,通过连接所有提取的特征810来执行空间信息聚集,如在811所见。在813,执行时间信息聚集:对于每个时间步长t-n…、t-1、t,空间信息被池化。在一个或多个实施例中,使用长期短期记忆(LSTM)层815,最终导致完全连接层817,用于分类819。在一个或多个实施例中,ROI到多个分支中的分布(使得每个ROI具有足够的分辨率)是有利的。
一个或多个实施例提供了在AR中融合2D视频帧和3D点云以用于细粒度视觉识别的方法,其对于随机相机移动和遮挡是鲁棒的。一个或多个实施例从自AR会话收集的累积的稀疏3D特征点生成ROI候选,并且使用梯度加权类激活映射(Grad-CAM)提取最可区分的ROI。一个或多个实例利用精确的相机位姿跟踪来进行ROI跟踪和裁剪,使得识别模型可以聚焦于ROI而不管相机如何移动(一些实施例基于相机位置自动地执行ROI裁剪)。这与区域提议网络相比是更有效和鲁棒的。一个或多个实施例采用具有双向LSTM的多流CNN,其具有注意机制神经网络,该神经网络将一系列ROI和相机位姿作为输入,并且提取空间和时间信息以用于鲁棒的视觉识别。
一个或多个实施例能够在采集非常详细的子区域时以高准确度检测非常细粒度的变化。在扫描期间放大和裁剪这些区域。一个或多个实施例对于来自用户的手或其他工具的遮挡是鲁棒的,因为仅当感兴趣的体素被占用时才采集2D图像。一个或多个实例对于相机移动是鲁棒的,并且自动忽略模糊图像。
一个或多个实施例通过从数据学习来自动识别ROI,并且不仅将图像和位姿作为输入,还将3D特征点作为输入。在一个或多个实施例中,同时采集多个ROI,并且使用相机位姿和投影来自动跟踪和裁剪来自图像的ROI。一个或多个实施例采用具有分布式ROI连接的图像的多流CNN-LSTM作为基础深度学习模型。
一个或多个实施例提供了用于生成增强现实驱动的修复引导的方法,方法包括:使用移动设备扫描感兴趣的对象;从扫描中提取相机位姿和帧信息;提取示出定义对象的视觉上变化的方面的感兴趣区域的帧;将示出感兴趣区域的帧裁剪为仅包括相关部分;以及自动检测目标感兴趣区域的遮挡以仅当存在实际变化时激活深度学习模型。进一步的步骤包括将裁剪的帧馈送到深度学习模型以检测对象状态的视觉变化;使用所检测的对象状态来确定通过AR渲染什么指令;以及基于实时预测结果将用户引导到相关ROI。
在一些情况下,通过训练基于CNN的深度学习模型来自动执行提取示出感兴趣区域的帧,其包括:感兴趣区域候选生成;以及选择最相关的感兴趣区域。在一些这样的情况下,将示出感兴趣区域的帧裁剪为仅包括相关部分以增加视觉识别准确度包括:从图像帧裁剪感兴趣区域并连接感兴趣区域;以及各个感兴趣区域图像的数据增强并连接它们。在一些这样的情况下,将裁剪的帧馈送到深度学习模型以检测对象状态的视觉变化;多流CNN-LSTM模型将分布式连接的图像作为用于推断的输入。
因此,本领域技术人员将理解,AR中的视觉识别可以对实现AR辅助修复的真正价值起到重要作用。一个或多个实施例提供了用于增强现实中的细粒度主动视觉识别的方法,其能够识别复杂3D对象的非常细粒度的细节,诸如从机器移除的螺钉。一个非限制性示例性实现采用基于iOS的移动应用,并且可以用于硬件维护。
在一个或多个实施例中,利用AR跟踪进行视觉识别是相当恰当的。一个或多个实例提供了具有位姿聚类和基于惯性传感器的最佳帧选择的帧过滤算法。实施例可以用在许多不同的应用中;例如AR辅助的修复工作(车辆、电子设备、自组装家具等);教育(手工艺制作等);娱乐;游戏等。
一个或多个实施例不限于分类对象类别,还能够分类细粒度状态。一个或多个实施例能够处理3D对象而不仅仅是2D图像。一个或多个实施例成功地利用通常在诸如电话、平板电脑等的移动设备上的相机来工作。一个或多个实施例利用来自AR的相机位姿来识别视频帧中的3D对象。
增强现实日益被探索作为用于双向远程协作应用的新介质,以经由视觉指令更有效和高效地引导参与者。用户在增强现实应用中努力实现更自然的交互和自动化。一个或多个实施例提供了新的视觉识别技术以增强用户体验。尽管在增强现实中通常使用简单的对象识别来实现这个目标,但是大多数协作任务对于这种识别算法来说太复杂而不能满足需要。一个或多个实施例提供了用于移动增强现实的主动且细粒度的视觉识别方法,其利用2D视频帧、3D特征点和相机位姿数据来检测对象的各种状态。一个非限制性的示例性应用是用于硬件支持的移动应用,其自动检测对象的状态,其中针对该对象寻求支持以在正确的上下文中呈现正确的信息集。一个或多个实施例有利地克服了现有技术的限制,现有技术由于缺少语义的、细粒度的识别而要求所有交互由用户驱动。
一个或多个实施例提供丰富的AR用户体验,更细粒度的视觉识别,即不仅识别对象还识别对象的部分或对象的状态改变,可用于包括技术支持的各种应用场景。一个或多个实施例有利地克服了在提供这种细粒度视觉识别能力时的各种挑战。例如,返回参考图3A-3D的示例,技术人员在替换该计算机的CPU 311。为了在正确的上下文中渲染相关AR指令,视觉识别机制应当能够检测该计算机的一部分(例如主板)的状态改变。只有当电池305和风扇303都从主板移除时,才渲染用于移除CPU的AR指令。与传统的视觉识别方法相比,实现这种状态识别需要解决AR应用中的以下挑战:
i)相机距离:取决于需要被识别的目标对象或对象部分,机器学习模型通常要求相机处于距对象的变化的距离处。例如,在图3A中,为了识别相机视场(FoV)中的整个机器,相机需要远离机器,而为了识别电池,相机需要更靠近机器。这需要动态地调整相机距离以实现细粒度的视觉识别。
ii)视角:相关目标对象部分应是可见的以便被识别。这意味着相机应当以特定角度采集对象。图3B示出了从电池被电线遮挡的特定角度查看机器,而在图3C中电池是清楚可见的。除非保持适当的视角,否则视觉识别自然导致较差的准确性。
iii)噪声输入:如图3D所示,AR驱动的硬件支持中的常见挑战是对象可能被用户的手或工具暂时遮挡。还常见的是,输入图像由移动相机采集;因此,输入图像有时可能是模糊的。所有这些因素使得用于视觉识别模型的输入图像是有噪声的。一个或多个实施例有利地在处理该噪声输入方面是鲁棒的,同时提供可靠和稳定的识别结果。除了这些挑战之外,一个或多个实施例被设计成在移动设备的资源和功率约束内工作。
一个或多个实施例使得机器能够模仿人类感知和推理的过程:为了检测状态改变,实施例使得相机能够聚焦于以不同状态改变外观的离散的局部区域;提示用户调整到适当的视角以从这些局部区域收集图像,并且仅当收集到足够的视觉数据时对状态变化进行预测。
一个或多个实施例利用AR特定数据(诸如实时生成的3D特征点和(多个)相机位姿)来补充由相机采集的图像以用于细粒度视觉识别。一个或多个实施例首先使用一组训练视频并学***移以及俯仰、偏转和滚动)相机位姿,以确保相机保持在与ROI的正确距离和视角处,并且最小化视觉识别模型的输入图像的遮挡或其他噪声。为了提高识别的鲁棒性,一个或多个实施例提供了离散的多流卷积神经网络(CNN),结合双向长短期记忆(LSTM),即离散CNN-LSTM(DCL)模型,从而不仅提取空间数据,还提取时间数据来预测状态变化。一个或多个实施例:
解决了移动AR设置中的细粒度视觉识别的独特问题,并且组合图像、3D特征点和相机位姿数据来主动地预测对象状态改变。
从自AR会话收集的合并的3D特征点中生成ROI候选,并且使用深度CNN特征表示自动提取可区分的ROI,这些ROI被跟踪和裁剪以用于细粒度识别。
提供离散CNN-LSTM(DCL)模型,其中ROI图像分布在离散多流CNN分支上并且用双向LSTM层聚集信息。具有共享权重的多流CNN解决了细粒度因而较大模型大小所需的高图像分辨率与随着ROI数量增加而缩小的分辨率之间的矛盾问题。LSTM层在时域中聚集视觉信息以进一步增强预测稳定性。
提供了使用诸如ARKit的工具包的移动(例如iOS)应用和诸如TensorFlow的大规模机器学习***,例如在硬件维护应用场景中是有用的。
缩写AFVR在此用于表示主动细粒度视觉识别。值得考虑与一个或多个实施例相关的基本AR概念。
对象模型。对象模型是点云,或者表示物理对象的3D特征点的集合。它是从与所查看的对象的不同角度拍摄的图像构建的。在AR会话期间,对象模型由移动设备用来重新定位其自身,即,理解其相对于物理对象的相对位置和取向。在一个或多个实施例中设备重新定位是相当相关的,因为它确定AR内容相对于对象被投影到何处。一个或多个实施例不仅使用对象模型用于重新定位,而且还确定ROI。
相机位姿。相机位姿是指移动设备在3D空间中的位置和取向。AR软件开发包(SDK),诸如ARKit和ARCore,利用视觉惯性测距法来使用与场景的计算机视觉分析组合的运动感测来跟踪相机位姿。相机位姿被表示为4x4矩阵M,其描述了设备坐标的旋转、比例和转换。
特征点。特征点表示在图像上检测到的显著特征。从不同视角收集的特征点形成用于AR跟踪的对象模型或点云。每一帧的特征点被表示为P={p0,p1,...,pN},其中pi={xi,yi,zi}是点i在3D空间中的位置,并且N是点的总数。
在一个或多个实施例中,AFVR的初始步骤是识别感兴趣区域(ROI),这些感兴趣区域(ROI)表示对象状态变化。然后,利用AR中跟踪的相机位姿来保持相机聚焦在ROI上,使得采集足够的视频帧用于状态识别。最后,过滤掉帧内的噪声,以提高识别的鲁棒性。图5示出了示例性***的设计,其包括离线和在线组件。
在离线阶段403中,首先经由众包(crowdsourcing)599从AR远程会话收获数据,或者(如在597处)让专用用户利用移动设备扫描对象,以构建对象在不同状态下的相关对象模型(如在595处)-3D点云表示。还收集相机位姿、对应的特征点和视频帧。接下来,ROI提取步骤593基于在不同状态下收集的视频帧生成ROI的集合。这些ROI将确定应当从视频帧生成什么图像以识别对象状态。
在在线阶段405中,AFVR首先在591使用对象模型检测对象并相对于对象重新定位移动设备。在离线阶段中识别的ROI 589也被映射到对象,如本文别处所述。接下来,在585,裁剪这些ROI的图像以仅保留ROI 587的相关区域,并且进一步处理它们以训练模型用于状态识别。在实时识别583期间,移动应用指示用户(在581处)将相机定位在与对象成正确距离和视角处,并且应用被训练的视觉识别模型来预测当前状态。基于所预测的状态,自动选择可应用的对象模型用于AR跟踪,并且相应地渲染对应的AR指令。
还参考图10,其示出了位姿无关的粗粒度识别如何选择正确的对象模型用于重新定位,这使得能够进行细粒度识别。对多个视频帧(例如1001-1、1001-2、1001-3;可以使用任何适当数量的帧)执行粗粒度识别1003。在判决框1005中,确定是否存在状态改变。如果不存在(否分支),则进行到细粒度识别1011,在1013向用户呈现AR指令,并且在1015用户操纵设备,同时采集附加帧。另一方面,如果存在状态改变(判定块1005的是分支),则在1007加载新的对象模型,在1009重新定位设备,然后继续细粒度识别1011。
对象模型构建:为了构建对象模型,使用ARKit(或类似)扫描器功能扫描物理对象,并提取特征点以创建3D点云。在从不同视角扫描的过程中,累积从视频帧中提取的特征点。注意,在由点云中的特征点的密度确定的AR跟踪的准确度和计算开销之间进行折衷。在一个或多个实施例中,利用相对稀疏的AR跟踪和更密集的点云进行ROI识别,如本文别处所述。
在一个或多个实施例中,针对不同状态的物理对象构建单独的稀疏点云和密集点云。例如,这可以在用户事先知道对象的不同状态并且在每个状态中执行单独的扫描的情况下实现。如果用户在会话期间明确地口头或手动地标记状态改变,则表示不同状态的点云还可以隐含地从AR驱动的远程辅助会话获得。本发明的点云生成算法以每个隐含状态对应的图像为输入,并生成相关的点云。
实际上,由于例如深度估计的不准确性,所生成的点云可能具有许多噪声特征点。一个或多个实施例还通过从每个特征点的邻居中去除“非平滑”离群值来对特征点进行过滤。具体地,对于每个点pi,计算其到所有其k个最近相邻点qj(j=1,2,...,k)的平均距离为:
并且标准偏差为
其中dist(pi,qj)是点pi和qj之间的欧几里得距离。假设到邻居的距离的分布是高斯分布:其中,具有距离d>μ+α·σ的所有点均被视为离群值,因此被移除。这里,α是控制点云表面的“平滑度”的参数。在一个或多个实施例中,组k=50且α=1.0。如图6所示,首先检测s,在509用红色标记,然后导出干净的点云513。
在该步骤之后,获得鲁棒地表示处于不同状态的对象的点云。对于每个状态,生成具有更多特征点的密集点云用于ROI识别,而创建下采样的稀疏点云用于高效跟踪。在不同状态下生成的点云可以容易地在同一3D坐标系中对准,因为它们使用相同的用于重新定位的稀疏点云。ARKit重新定位具有对外观或形状变化的一定的容许度;因此,只要对象改变是部分的或微小的,重新定位就工作良好。
ROI识别:ROI是3D空间中的一个区段,在该区段中对象由于状态改变而物理外观改变。为了在视觉上识别ROI中的变化,将ROI投影到从对象的特定视角拍摄的2D图像中的区域。识别ROI的最简单方式是依赖于人类知识:专家用户可以在给定图像上绘制ROI的边界。这在实践中是冗长的,并且由于不同的人的解释而可能容易导致ROI或状态定义的不一致。因此,一个或多个实施例提供了自动识别ROI的方法,给定了用不同状态标记的一组图像和点云,如本文别处所讨论的。
体素化(voxelization):在一个或多个实施例中,将3D空间分成固定大小的体素。ROI包括一个或多个体素,其可以包括一些(或没有)特征点。为了识别ROI,将体素投影到2D图像上的一致方式是适当的。出于此目的,将体素的锚点定义为该体素中包括的所有特征点的质心。当投影体素时,该锚点首先被投影到2D图像。以该锚为中心,从图像中裁剪出宽度为w的正方形区域,以表示对应的体素。这确保了所投影的图像包括足够的对象表面的视觉细节。图517示出了样本对象的所有体素的锚点。
为了确保针对体素收集了足够的视觉细节,确保对象出现在相机的视场中。这是通过估计锚点相对于对象表面的法线来实现的。通过计算在锚点处正切于对象表面的平面的法线来估计锚点处的法线矢量。这可以通过使用诸如点云库(pcl)的库的最小二乘平面拟合来实现。图521中示出了所估计的法线向量的示例。
ROI图像选择:给定对象的相机采集的图像,裁剪出可以用作对象状态识别的输入的ROI候选图像。ROI候选图像是在体素锚周围以{x,y,z}裁剪的具有宽度w的正方形段。将体素锚和ROI候选的所有顶点投影到相机采集的图像,并选择覆盖所投影的ROI的最小限界矩形作为裁剪区域。给定相机位姿(表示为变换矩阵Mcamera)和3D空间Pworld中的点的坐标,将该点投影到相机坐标中,其中:
Rcamera=Rworld·Mcamera (1)
其中Pcamera是相机坐标中的被投影的点。使用透视投影,通过将点的x和y坐标简单地除以z坐标,将相机坐标中的点投影到图像平面:
然后,将图像空间中的2D点转换到栅格空间,其被表示为像素坐标:
其中,W、H是在栅格空间中的画布的宽度和高度,并且P′norm·X、P′norm·y是栅格空间中的归一化坐标,将该归一化坐标进一步乘以图像帧的分辨率,从而获得像素坐标。仅当四个投影的顶点可见时,一个ROI在FoV内。从原始全分辨率图像帧中裁剪每个可见ROI的图像,并将每个可见ROI的图像调整大小到固定分辨率。多个ROI可以被同时裁剪,只要它们在FoV内并且在单个帧中对于相机是可见的。在应用裁剪步骤之后,在525-1到525-7示出了ROI候选图像的几个样本。
接着,从这些ROI候选中选择最能区分对象状态的ROI候选。一个或多个实施例使用梯度加权类激活映射(Grad-CAM)来执行ROI图像选择。对于对象的每个状态,所收集的图像可以是从不同的视角获得的。裁剪每个图像,以获得ROI候选图像。根据对应体素的位置,将裁剪后的图像分类并连接成单个的图像,并将这些单个的图像调整大小为固定分辨率(例如224×224),作为输入数据到Grad-CAM,如三个图像541的最左边所示。对于每个状态,这些候选图像的子集反映对象的外观变化。
卷积神经网络(CNN)中的更深表示采集更高级视觉特征。输入图像中的状态特定信息(即,来自具有外观变化的体素)通常在具有高级语义和空间信息的最后几个卷积层中被采集。Grad-CAM使用流入CNN的最后卷积层的梯度信息来理解每个候选图像的重要性(在其他实施例中可以使用诸如SIFT和ORB的其他方法;然而,在实验中,我们发现这些技术在识别ROI方面不是那么有效,因为它们搜索相似性,而不是识别微小的视觉差异)。ROI选择的目标是获得用于任何类别c的具有宽度u和高度v的类
其中Z是归一化因子,并且权重采集了特征图A对于目标类别c的重要性。Grad-CAM热图是特征图的加权组合,其之后是修正线性单元(ReLU):
这导致与卷积特征图具有相同大小的粗略热图(在ResNet50的最后卷积层的情况下为7×7)。然后,将热图归一化到0-1,并将热图的大小调整为输入图像的大小,通过将其覆盖在输入图像上来可视化热图,如541所示。
在一个或多个实施例中,ImageNet上预先训练的ResNet50被用作骨架模型,并被微调以对来自所有状态的连接的图像进行分类,然后生成Grad-CAM图。Grad-CAM图直接指示每个候选图像用于区分特定状态的重要性。图像541的最左边示出了针对计算机主板收集的ROI候选图像的子集的连接的图像。在该示例中,对象具有三种状态:默认、移除电池、移除CPU。指示电池被移除的裁剪图像位于图像连接的右上角,而指示CPU被移除的裁剪图像位于连接的中心。图像541的中间图示出了覆盖在图像上的Grad-CAM热图,其正确地指示了上述两个裁剪图像是用于区分这三个状态的最佳ROI图像。
一个或多个实施例为从Grad-CAM中选择的每个状态建立所有前3个ROI候选的超集,并移除重复。这组新的ROI用于最终视觉识别模型训练和推断(在线阶段期间)。
视觉识别模型:利用连接的ROI图像作为输入,现在开发CNN模型以预测对象的类别或状态。对于简单的场景,其中对象仅具有少量ROI(例如,少于6×6个连接的ROI图像),具有最大池化和批归一化的轻量浅CNN是足够的。随着应用场景变得更加复杂,更多的ROI适于覆盖所有状态。在这种情况下,将所有ROI图像简单地连接成单个输入潜在地引起问题:随着ROI的数量增加,每个ROI的分辨率降低,因为连接的图像分辨率是固定的,这导致视觉细节的丢失。如果保持每个ROI的分辨率,则连接的图像分辨率将迅速增长为不适合作为简单CNN模型的输入。
为了处理这个挑战,一个或多个实施例提供离散CNN-LSTM模型,其包括离散的多分支视觉特征提取的层,随后是用于最终分类的空间和时间信息聚集的层。图9示出了DCL模型的架构。多分支CNN从连接的ROI图像中提取空间特征,其由池化层聚集。LSTM层进一步聚集时间信息以用于稳定预测。特征提取805包括多个特征提取分支,每个分支将连接的ROI图像(包括最多九个ROI)作为输入。一个或多个实施例使用关于ImageNet的预先训练的ResNet50作为用于特征提取的基本模型,但是移除模型的最后的完全连接的层,因此获得每个输入图像的2048维特征向量,其然后被馈送到池化层。在一个或多个实施例中,仅在每当存在针对所连接的输入图像的ROI图像更新时才运行ResNet50推断。重复使用针对其它未改变的分支提取的图像特征。以此方式,最小化关于特征提取的计算开销,由此当在移动设备上实施模型时显著减少计算开销及功率消耗。
一个或多个实施例将池化层之后的所有提取的图像特征连接到单个特征向量中,其呈现用于状态识别的所有相关视觉信息。代替将该特征向量馈送到全连接的深度神经网络中,一个或多个实施例使用LSTM来对状态之间的时间关系进行建模:特征向量的时间序列被馈送到LSTM层,LSTM层预测对象状态分布。如本文别处所述,利用状态之间的时间关系显著提高了模型的预测准确性。
主动视觉识别:可以使用先验收集的标记数据来离线训练视觉识别模型。当构建移动应用以检测对象的状态时,实施被训练的视觉识别模型,且还考虑两个以上设计方面:重新定位和ROI采集。
重新定位:重新定位确保了相对于固定的对象坐标跨越AR会话而一致地跟踪相机位姿。这对于采集正确的ROI以及在相对于对象的正确位置呈现AR注释都是相关的。一个或多个实施例使用在对象模型创建期间获得的稀疏点云用于重新定位,从而利用ARKit的对象跟踪能力。在给定的AR应用中,存在两种潜在的状态改变场景:1)状态变化涉及微小的外观变化,因此相同的稀疏点云可以用于跟踪;2)状态改变涉及主要的外观改变,使得需要加载新的点云并且AR会话重新定位。一个或多个实施例最小化重新定位以减少在AR会话期间发生的跟踪不准确性。为此,例如,调整ResNet50模型,其使用从对象获取的实时图像来确定状态改变的重要性,并且仅当需要时才触发重新定位。
ROI采集:一个相关方面涉及采集ROI作为从相机视图裁剪的图像分段。为了以鲁棒的在线方式采集ROI图像,一个或多个实施例还解决了以下问题:遮挡检测、ROI图像更新和设备移动反馈。
遮挡检测。ROI对于相机仅可从某些视角可见,或者其可被场景中的其它对象遮挡。图11示出了这样的示例。相机位姿1101产生ROI的有效采集,而对于图1103中的相机,从相机的视点,ROI被遮挡。
一种朴素方法是检查在每一帧上是否检测到ROI的足够的3D特征点,以便确定ROI是否被遮挡。然而,由于计算开销,通常不是针对每一帧实时地生成特征点。在这一点上值得注意的是,本领域技术人员将熟悉在ARKit中生成特征点的方式:当移动设备到处移动时,以高频率更新设备运动以采集微小位移。然后对特征点进行三角测量以推断它们的3D位置,其也用于通过ARKit校准相机位姿误差。因此,在检测到的特征点与当前帧之间存在延迟。当设备从“可见位姿”移动到“不可见位姿”(例如,从位姿1101移动到1103)时,1101中检测到的特征也在1103中存在很短的时间。为了考虑该延迟,检查过去的连续五帧以及在对应时间段中检测到的特征点,以确定ROI是否被遮挡。
为了确定特定ROI的遮挡,应当满足以下三个条件:i)在相机FoV内:投影的ROI应当在当前视频帧内,以便其准备好被更新。ii)没有检测到足够的特征点:必须检测足够的特征点以进行ROI采集。如果在三秒的短时间段内没有检测到足够的特征点(例如,>10),则其指示正在发生遮挡。一个或多个实施例使用在短时段内所累积的特征点来避免假阳性,因为即使在ROI未被遮挡时特征点也可能是过于稀疏的。iii)充分的设备移动:
因为特征点依赖于三角测量,三角测量需要设备移动,所以如果移动设备保持静止,则帧的特征点将保持不变,或者不生成特征点。在没有足够的特征点的情况下,通常不可能辨别ROI是否被遮挡。
ROI图像更新。当在线预测对象状态时(即,当使用AR应用时),视觉识别采用来自所有ROI的输入图像,除了那些在视觉上没有改变的ROI。同时,当相机在对象周围移动时,并非所有ROI都是相机可见的,这是因为一些ROI在相机的FoV外部或者因为ROI被遮挡。遮挡有两种类型:持久遮挡,其意味着ROI在对象状态中持久处于被其他对象组件遮挡(例如,风扇覆盖CPU);以及暂时遮挡,其是由不适当的视角引起的或由诸如用户的手的其他物体暂时遮挡的。对于特定ROI,如果设备被用户主动移动同时ROI在FOV内时,该ROI被连续地检测为长时间被遮挡(一个或多个实施例设置经验5s,但是其它实施例可以不同),则将遮挡分类为持久的。在这种情况下,该ROI的图像出于一致性而被重置为零(图3A中的“风扇被开启”的状态可以在采集CPU之前或之后发生,这取决于机器是被装配还是被拆卸)。类似地,当移除组件时,重置相关联的ROI。这是在该ROI在FOV内的情况下被检测到的,但在该ROI没有被遮挡的时段内不被检测到。
如果检测到短暂遮挡或者不可见的ROI在FoV之外,则假定在视觉上没有变化。因此,在模型预测期间,图9中的对应特征提取分支将不被激活,而是将重新使用先前提取的向量,从而最小化移动设备上的不必要计算以防止设备发热。通常,用户通过相机(此处AR注释被显示)来查看对象变化是自然的;因此,这种变化被被动地采集。在很少情况下,用户可能已经拆卸了硬件的一部分(这改变其视觉状态),但是如果其被遮挡或者在FoV之外,则这将不认为是状态改变,并且因此将不向用户提供下一组指令。因此,示例性应用鼓励用户移动相机以便查看被改变的对象部分,使得ROI能够被高效地更新,从而实现响应的且准确的识别结果。
当用户将相机保持在对象上方时,所采集的视频帧可能具有变化的质量(例如,由于快速运动而引起的模糊图像、由于视角而引起的不清晰图像、或相机与对象之间的大距离)。为了确保鲁棒的识别,一个或多个实施例进一步过滤掉ROI图像以提取最佳质量的图像集合作为视觉识别模型的输入。如图12所示,对于每个ROI,跟踪设备移动和旋转速度相机法线和ROI法线之间的角度α、以及从相机到ROI的距离d。给定相机位姿{xp,yp,zp,nxp,nyp,nzp},其中{xp,yp,zp}是相机位置,并且/> 是相机法线,并且{xr,yr,zr,nxr,nyr,nzr,wr},从相机到ROI的距离可以如下计算:
并且相机的法线与ROI之间的角度是当帧在pt处并且位姿在比pt-ΔT更早的ΔT处(在一个或多个实施例中ΔT被设置为0.1s)时,利用该相机位姿来估计相机的移动/旋转速度。绝对组合的移动/旋转速度可以被计算为/>归一化移动速度和旋转速度以在计算之前平衡它们对组合速度的贡献。一个或多个实施例为每个ROI维持5个输入图像的队列,并且如果通过弹出第一ROI并推入新ROI而采集了合格的ROI,则每300ms更新它们。在一个或多个实施例中,五个图像是适当值,因为它仅需要1.5s的小时间窗口,并且它最小化了当ROI离开FOV时所采集的图像的影响。仅当/>α<60°和d<1m时,一个或多个实例将ROI图像馈送到队列,其中δv是阈值,其使得当设备在该阈值内移动时图像不会模糊(这些是我们从大量实验获得的经验数;δv可以例如针对不同的照明条件而不同)。为了选择最优ROI,根据我们的实验,选择具有最小的α的ROI,因为其对于合格ROI影响最大。在没有该队列和选择的情况下,ROI的最后更新通常发生在其将要退出FoV时,这不是最优的。
设备移动反馈。为了确保高质量的ROI采集,设备相机可被适当地定位。可以通过AR应用提供反馈以引导用户定位相机,使得相机处于正确的位置并且用户不会将相机移动得太快或太远离ROI。例如,仅当没有充分地采集ROI图像时,才示出反馈指令。具体地,如果ROI在一段时间(例如,10s)内未被更新,这意味着不是从适当的角度或距离查看该ROI,则将显示适当的指令以要求用户移动设备。另一方面,如果识别结果是模糊的,则指示用户将设备移向收集更多的ROI图像,其与来自ROI识别的这种模糊状态相关联,直到对象状态被消除模糊。
实验实施:AFVR的非限制性实验实施包括两部分:在一个或多个服务器上运行的离线模型训练程序,以及利用所提取的ROI和所训练的模型来执行细粒度视觉识别的在线移动AR应用。
离线模型训练
训练数据生成。在训练数据收集期间的ROI裁剪产生了用于在每个对象状态下的每个ROI的多个图像,其被连接作为用于模型训练的训练图像。为了最小化训练数据收集工作,仅需要几分钟的对象扫描。然后在两个步骤中进一步增强所收集的数据:
(i)数据增强。首先利用现有方法(例如随机旋转、移位和剪切)来增强ROI图像。ROI图像的随机旋转使得当从随机角度观看对象时能够实现鲁棒得多的识别性能。还移动和剪切ROI图像,因为所采集的ROI图像可能不在中心,并且由于设备位姿估计误差导致的ROI跟踪中的偏移而可能以各种不同的方式偏离中心。利用该增强,填充每个对象状态下的每个ROI的图像。
(ii)图像连接。为了生成可用于模型训练的图像,可连接每个ROI的个体图像。由于这些ROI图像采集对应ROI的信息,并且这些ROI图像可能在不同时间被采集,因此它们彼此是半独立的。为了增强所连接的图像,随机地绘制来自每个ROI图像集合中的图像,并将图像连接为新的训练样本。这显著增加了训练数据量,并且还采集ROI图像的各种组合。
一个或多个实施例使用相同的技术来生成用于ROI提取和最终细粒度视觉识别模型训练的训练数据。
模型训练。为了收集训练数据,扫描每个状态下的对象大约2分钟。注意,为新对象建立模型是一次性的工作。为了评估的目的,该训练程序在具有GTX 1080GPU的PC上离线运行。在一个或多个实施例中,具有TensorFlow后端的Keras API用于CNN构造和训练。在训练后,将视觉识别模型转换为CoreML格式,以在iOS平台上运行。
在线移动应用
我们开发了用于实时测试和评估的基于iOS的实验移动应用。ARKit被用作ARSDK,用于重新定位、相机位姿跟踪和AR体验渲染。CoreML框架用于执行设备上机器学习推断。安排实时识别的任务并经由多次试验来稳定结果:
识别调度。调度定时器以每300ms检查ROI是否被更新,并且执行其输入图像被更新的CNN特征提取分支。如果触发了任何CNN特征更新,则每秒执行一次空间和时间信息聚集和分类层。通过仅当ROI改变时更新每个分支,减少了不必要的计算。
预测稳定化。为了进一步稳定状态预测结果,尤其是在从一个状态到另一个状态的转变期间,利用滚动平均预测方法。缓冲最近N个预测结果的队列,并且仅在一个预测状态在N次中的N-1次中出现时输出最终结果。
评价:从多个方面评价AFVR算法:识别准确性和影响因素、与现有方法的比较、以及资源开销。
识别准确度和影响因素:为了验证整个***设计,我们首先评估具有ROI采集机制的朴素轻量CNN模型(LW模型)的性能,然后与基于DCL和VGG的模型进行比较。LW模型是两层CNN,随后是池化和完全连接的层以用于分类。
状态识别准确度:考虑更换台式机器上的CPU的任务,这涉及六个步骤(例如,移除螺钉/风扇、拔掉电线、释放CPU闩锁等)。在每个状态下扫描机器2分钟作为训练数据,再扫描1分钟进行测试。每300ms采样视频帧;因此,1min/s的数据收集采集200个图像帧。提取ROI并训练LW模型用于评价。图13示出了结果的混淆矩阵。对于除了被误识别为相邻状态的状态三之外的大多数状态,识别准确度接近或高于95%。该状态更容易与相邻状态混淆,因为视觉差异非常小:风扇收集器隐藏在机器深处,并且仅从非常有限数量的视角可见。注意,这些结果基于个体识别结果。我们已经发现误差结果通常彼此不相邻;因此,我们可以进一步提高多次试验的准确性和稳定性,这将在后面进行评价。然而,总体结果表明AFVR对于实际应用是足够鲁棒的。
影响模型准确性的因素:
数据增强。我们评估了数据增强(DA)如何能够通过填充训练图像来改善性能,尤其是在训练数据有限时。图14示出了在从300到1500的不同训练样本量下的识别准确度。可以看出,数据增强显著提高了准确性,尤其是当训练样本非常有限(例如<900)时。随着样本大小的增长,在有DA和没有DA的情况下,准确度性能都变得稳定,而在有DA的情况下准确度性能仍然略高,这表明DA的模型一般化改进。
ROI尺寸。ROI尺寸(正方形的长度/宽度)与实现最佳识别性能有关。较小的ROI尺寸使得能够更集中地感知对象部分,并且因此实现更细粒度的识别,但是也导致较小的覆盖区域,其可能遗漏由于由设备移动引起的偏移而可区分的部分。在这种情况下,它产生更大的误差。较大的ROI尺寸使得能够实现较大的覆盖,从而不太可能遗漏可区分的部分,但是同时,它还采集更多的背景“噪声”并且缩小用于状态识别的关键区域的分辨率。我们评估了不同ROI尺寸对识别准确度的影响。图15示出了ROI尺寸从1-9cm的结果准确度。我们收集ROI尺寸为1、3、5、7、9cm的数据。实验显示5cm是最佳尺寸,因为它实现最高的准确度。取决于对象的实际尺寸,最佳ROI尺寸可能是不同的。
识别稳定。具有稳定和准确的识别结果是恰当的,因为任何不正确的识别触发AR应用中不相关的动画或指令。这不仅破坏性的,而且使用户困惑,从而导致差的用户体验。我们评价了当每个周期进行多个识别试验时的错误率(即,不准确的状态识别)和延时。识别试验例如每300ms发生一次;因此,来自多个试验的一个判断足够快,从而不会对用户造成明显的延迟。一个循环中N次试验中的至少N-1次试验必须指示相同结果以声明状态结果。图16示出了更多的试验以更大的等待时延为代价迅速降低了错误率。这是因为更多的试验给出了更稳定的结果,从而减少了错误结果。通过五次试验,错误率小于0.5%。我们为每个识别循环选择了五次试验以平衡稳定性和时延。注意,在实际使用情况下,对象状态不频繁改变,并且1-2s的时延是可忽略的。
与现有方法比较
准确度比较。我们比较了LW、DCL模型和代表性对象识别模型VGG16的性能。由于ROI采集是AFVR的相关组件,因此我们还将所有模型的性能与ROI采集和原始图像帧进行比较。我们用来自ImageNet的预先训练的权重微调VGG16,并且在训练时冻结除了最后两个完全连接的层之外的所有层。结果如图17所示。通过ROI采集,所有三种模型都实现了高准确度(>97%),并且DCL模型具有99.87%的最高准确度。基于VGG的模型也具有97.74%的准确度,这证明了由VGG16提取的特征的有效性。ROI采集的结果显著高于使用原始图像帧作为输入的那些结果,其仅实现50%的准确度。这主要是因为遮挡和缺少细粒度。如果变化的部分被遮挡,则对于某些状态,图像可能看起来相同,从而在训练和测试数据中引起大量噪声。在三个使用原始图像帧的模型中,基于VGG的模型具有最高的准确度,甚至优于DCL模型。这可能是因为DCL模型采用多个“噪声”帧作为输入,这更难以收敛。
ROI数量的影响。随着ROI数量的增加,如果每个ROI的分辨率不改变,则所连接的图像分辨率增加。如果连接的图像分辨率是固定的,则每个ROI图像分辨率缩小。具有过大分辨率的图像可能需要被重新整形以适合诸如VGG的模型。我们收集关于更复杂对象的新数据,并且我们手动添加更多ROI。图18显示8、16和32个ROI的结果。随着ROI数量的增长,VGG模型准确度由于调整大小而下降到小于75%。LW具有比VGG更好的性能,以增加模型大小(增加参数)为代价。DCL模型具有最好的性能,并且仅显示出准确度的微小降低。
模型大小比较。模型的大小对于该模型被高效地执行是有关的,尤其是在资源受限的移动设备上。图19示出了随着ROI数量的增加,三个模型的参数的数量。当图像被调整大小到224×224的固定分辨率时,基于VGG的模型具有恒定数量14.85M。DCL模型利用VGG进行特征提取,因此具有比VGG更多的参数。参数每增加另外9个ROI增加大约1.6M(假设每个分支的输入图像包括9个ROI)。在ROI小于25时LW模型具有最少的参数;此后,LW模型比DCL模型显著地增长得更快。因此,DCL更适合于复杂的对象。
更多对象的结果:为了说明概括,我们对五个对象进行了更多的实验,包括更复杂的机器,例如服务器。图20示出LW和DCL模型的准确度的框图;两者均在95%以上。DCL模型具有更高的中值准确度,高于98%。
资源开销:资源消耗对于良好的用户体验和可用性是有关的。我们测量了iPhone8的CPU和存储器使用率中的AFVR资源开销。我们比较了当移动应用在不同模式下运行时的这些度量:仅AR、具有LW模型推断的AR和具有DCL模型推断的AR。图21的表中示出了典型测量的结果,以用于比较。视觉识别仅略微将CPU提高了约1-1.5%,并且消耗30+MB的存储器。对于所有的开销,AFVR可以容易地达到60fps,对于连续使用不会引起过热。
模型训练开销。模型训练开销包括两个方面:数据收集开销和计算开销。对于数据收集,专用用户可以在每个状态下扫描对象(每个花费大约1-2分钟),或者可以利用来自远程辅助会话的众包数据。在其当前状态下,众包数据是有噪声的,并且需要人工预处理。对于计算开销,在移动设备上收集的所有数据是AR的“副产品”,因此导致最小的额外开销。由于给定对象的数据量相对较小,在后端中模型训练也是轻量级的。
更复杂的模型。示例性DCL模型利用来自ImageNet的具有预先训练的权重的VGG16作为基础模型,这产生合理的结果。基于领域特定数据集训练基本模型可以进一步提高准确度和效率。另外,可以使用诸如时空卷积网络的更复杂的神经网络来改善性能。
因此,一个或多个实施例提供了主动的细粒度视觉识别算法,其组合了AR中的3D特征点和2D视频帧,以识别3D对象的变化的视觉状态,即使当该变化相当细微时也是如此。一个或多个实施例对于随机相机移动是鲁棒的,并且通过经由基于iOS的移动应用实现来提供可靠和稳定的视觉识别结果,该基于iOS的移动应用集中于AR辅助的硬件维护。
一个或多个实施例特别关注AR中的细粒度视觉状态识别。一个或多个实施例不需要预扫描和预先标记每个硬件组件并然后使用一些标准像素级计算机视觉匹配算法来检测硬件组件。由于不能与母板隔离,预扫描或预标记硬件的各个部分可能不总是可能的。一个或多个实施例提供细粒度视觉状态检测(与组件识别相反),其跟踪场景中的甚至最小的改变(诸如移除小螺钉、抬起微小的杆等)。这种级别的识别对于基于3D点云的对象或部分识别是不可能的,并且采用了本文所公开的新颖的深度学习技术。这包括利用AR中的图像、3D特征点和相机位姿。
一个或多个实施例提供了用于视觉识别的算法。一个或多个实施例识别并理解当前AR场景(即,对象状态,诸如盖子打开相对于盖子关闭、杆向上相对于杆向下、螺钉旋入相对于旋出等),并自动呈现可应用的指令集,因为不是每个指令都匹配每个机器状态(例如,除非打开机器的顶盖,否则不能移除风扇)。为了解决状态识别问题,一个或多个实施例提供了利用AR中的图像、3D特征点和相机位姿的一系列深度学习模型和技术。
一个或多个实施例分析ATM的视觉外观以呈现针对该ATM状态的目标指令,包括用于细粒度视觉状态检测的一系列特定深度学习技术,诸如自动ROI识别、ROI裁剪、使用3D特征点的遮挡检测等。
一个或多个实施例提供了细粒度的对象状态识别,其需要分析当前场景并预测对象状态。例如,传统的部分识别允许在一个人看着主板时检测场景中的CPU盖,而一个或多个实施例检测CPU盖是打开还是关闭,其杆是抬起还是放下,基本上是在主场景中常规部分检测算法不能区分的非常细微的差异。与检测对象的一部分相比,检测对象的视觉状态(以及视觉状态的微小变化)是非常不同的任务。此外,一个或多个实施例提供了一系列技术,诸如自动ROI识别、ROI裁剪、使用3D特征点的遮挡检测等。
先前的工作需要手动地识别感兴趣区域(这使得难以概括),并且不支持遮挡检测(这使得即使在目标区域被遮挡时也无理由运行深度学习模型以进行推断是低效的,潜在地导致移动设备上的设备发热)。先前的工作仅将图像和(多个)相机位姿作为输入,并且逐个地采集ROI,将ROI馈送到多流CNN中以进行识别。一个或多个实施例通过深度学习模型(无需人工工作)自动学习ROI,利用输入图像的时间序列来确保更高的准确度,并且支持利用实时检测的3D特征点的遮挡检测。最后,一个或多个实施例同时采集多个ROI,并使用称为多流CNN-LSTM模型的改进的深度学习模型来进行识别。
此外,一个或多个实施例允许检测对象的视觉状态(诸如,盖打开相对于盖关闭、打开相对于DIMM关闭、CPU杆向上相对于CPU杆向下等)。一个或多个实施例呈现了用于对象状态识别的一系列图像ROI采集算法和神经网络,其涉及对象的所有详细视觉外观,这比对象部分检测更复杂。
一个或多个实施例在具有常规相机(不需要特殊装置,可以在没有深度检测相机的情况下执行)的移动设备上工作,并且提供细粒度的对象状态检测。在技术支持领域的上下文中,现有技术算法将使得能够识别AR***正在看的是膝上型计算机,而一个或多个实施例帮助检测膝上型计算机的状态(例如,CPU杆向下),以使得AR***能够呈现正确的指令(例如,抬起CPU盖)。知道对象是膝上型计算机(即,高级对象识别)不足以呈现正确级别的修复指令,并且一个或多个实施例有利地提供了更细级别的检测粒度。
此外,一个或多个实施例提供了用于AR中的细粒度对象状态识别的方法,其充分利用了AR输出,例如相机位姿信息和3D对象模型。另外,一个或多个实施例解决遮挡问题以增加利用从AR检测到的3D特征点的深度学习模型的效率和准确度。关于主动视图选择策略,一个或多个实施例可以识别哪些ROI需要被扫描并且引导用户在AR场景中移动相机。
与现有技术的一般对象分类不同,一个或多个实施例提供细粒度的视觉识别,其中可区分的区域仅从特定视角可见。一个或多个实施例不需要拍摄固定数量的图像,而是通过相机位姿跟踪和3D到2D的投影自动地采集相关ROI。一个或多个实施例利用LSTM层来聚集时间信息。
给出到目前为止的讨论,将理解,一般而言,根据本发明的一方面的示例性方法包括获得对对象502的三维点云表示505的访问,该三维点云表示包括扫描数字相机(例如,在电话569中)的位姿和对应的视频帧;例如,可以通过利用耦合到处理器的数字相机扫描对象并且收集位姿、对应的视频帧和对应的特征点来执行该步骤。在一个或多个实施例中,位姿/点/帧有利地是AR的副产品。值得注意的是,到目前为止,视觉识别通常仅依赖于图像;相反,一个或多个实施例将模型的结果嵌入到增强现实中,从而提供了一种媒介,通过该媒介在AR环境中生成位姿、特征点、帧等。一个或多个实施例创建了利用这些AR副产品的新模型。参考在线阶段405中的ROI采集589,可以利用相机位姿,因为ROI定义3D空间中的3D位置。期望围绕ROI裁剪图像。执行3D位置到2D图像的投影。采用相机位姿来执行投影/裁剪。点云用于遮挡检测,如图11中所见。
进一步的步骤包括,在515,对三维点云表示进行下采样以获得感兴趣区域候选525-1至525-7的集合;过滤该感兴趣区域候选以至少部分基于相机的位姿来选择感兴趣区域候选中具有区分不同视觉状态的外观改变的那些感兴趣区域候选,作为所选择的感兴趣区域535;从视频帧中的对应视频帧生成针对所选择的感兴趣区域的感兴趣区域图像415;以及在步骤419,基于感兴趣区域图像训练深度学习识别模型。
一些实例还包括,如在405处,使用被训练的深度学习识别模型,利用耦合到处理器的数字相机来确定对象的视觉状态。
一些实施例还包括,如在1013,基于所确定的状态向用户提供与对象有关的增强现实指令。例如,AR***中可以包括数据库,该数据库具有用于叠加在与对象的视觉状态相关地存储的对象的视图上的指令。该数据库可以在设备569中的本地存储器中和/或可被存储在如参考图1和2所述的云中。当状态被确定,针对对应的指令查询数据库,并将其在对象的视图上叠加地显示在设备560的屏幕上。显示器24通常表示这样的屏幕。
一些实例还包括,如在404,在确定对象的状态之前,相对于对象重新定位数字相机。
在一些情况下,如511所示,对三维点云表示进行下采样以获得感兴趣区域候选集合包括去除离群值。
在一些情况下,如在537处,过滤感兴趣区域候选以选择具有外观改变的那些感兴趣区域候选包括图像裁剪和缩放。
在一些实例中,如在709处,确定对象的状态包括:采集具有被占用的感兴趣体素的那些感兴趣区域的图像;以及向识别模型545提供具有被占用的体素的每个感兴趣区域的对应的缩放的局部图像和查看位姿711。
在一些实施例中,模型包括多流卷积神经网络长短期记忆模型;并且确定对象的状态包括:将感兴趣区域分成多个分支803-1…803-K;如在805处,使用多流卷积神经网络长短期记忆模型的卷积神经网络从对应的缩放的局部图像提取特征;如在809,通过连接所提取的特征来聚集空间信息;并且,如在813,通过池化多个时间步的空间信息来聚集时间信息,并且将池化的信息提供给长期短期记忆层815,以获得用于分类的完全连接层817,从而确定对象的状态。
一个或多个实施例还包括避免采集感兴趣区域中的不具有被占用的感兴趣体素的那些的图像,以降低对遮挡和相机不稳定性中的至少一个的敏感度,如708、709处所示。
在一个或多个实施例中,对象502包括要被修复的信息技术资产,数字相机和处理器是移动设备569的一部分54A,并且增强现实指令的提供包括示出信息技术资产的修复过程。进一步的步骤可以包括根据指令修复资产。
本发明的一个或多个实施例或其元件可以以包括存储器和至少一个处理器的装置的形式来实现,该至少一个处理器耦合到存储器并且操作用于执行示例性方法步骤。图22描绘了可用于实现本发明的一个或多个方面和/或元素的计算机***,其也表示根据本发明的实施例的云计算节点。现在参考图22,云计算节点10仅是合适的云计算节点的一个示例,并且不旨在对本文描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,云计算节点10能够被实现和/或执行上文阐述的任何功能。
在云计算节点10中,存在计算机***/服务器12,其可与许多其他通用或专用计算***环境或配置一起操作。适合与计算机***/服务器12一起使用的公知的计算***、环境和/或配置的示例包括但不限于个人计算机***、服务器计算机***、瘦客户端、厚客户端、手持式或膝上型装置、多处理器***、基于微处理器的***、机顶盒、可编程消费电子产品、网络PC、小型计算机***、大型计算机***、以及包括任何上述***或装置的分布式云计算环境等。
计算机***/服务器12可以在计算机***可执行指令的一般上下文中描述,诸如由计算机***执行的程序模块。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机***/服务器12可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机***存储介质中。
如图22所示,云计算节点10中的计算机***/服务器12以通用计算设备的形式示出。计算机***/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、***存储器28以及将包括***存储器28的各种***组件耦合到处理器16的总线18。
总线18表示若干类型的总线结构中的任何组件结构中的一个或多个,包括存储器总线或存储器控制器、***总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。通过示例而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和***部件互连(PCI)总线。
计算机***/服务器12通常包括各种计算机***可读介质。该介质可以是计算机***/服务器12可访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓冲存储器32。计算机***/服务器12还可以包括其他可移动/不可移动、易失性/非易失性计算机***存储介质。仅作为示例,存储***34可被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取以及向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如CD-ROM、DVD-ROM或其它光学介质等可移动、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线18。如下面将进一步描绘和描述的,存储器28可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,该程序模块被配置为执行本发明的实施例的功能。
具有一组(至少一个)程序模块42的程序/实用程序40,以及操作***、一个或多个应用程序、其它程序模块和程序数据,可作为示例而非限制存储在存储器28中。操作***、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序模块42通常执行本文描述的本发明实施例的功能和/或方法。
计算机***/服务器12还可以与一个或多个外部设备14通信,诸如键盘、指示设备、显示器24等;一个或多个设备,其使得用户能够与计算机***/服务器12交互;和/或任何使计算机***/服务器12能够与一个或多个其它计算设备通信的设备(例如网卡、调制解调器等)。该通信可以经由输入/输出(I/O)接口22发生,另外,计算机***/服务器12可以经由网络适配器20与一个或多个网络通信,网络诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网)。如图所示,网络适配器20通过总线18与计算机***/服务器12的其它组件通信。应当理解,尽管未示出,其它硬件和/或软件组件可以与计算机***/服务器12结合使用。示例包括但不限于:微码、设备驱动器、冗余处理单元和外部磁盘驱动器阵列、RAID***、磁带驱动器和数据档案存储***等。
因此,一个或多个实施例可以利用在通用计算机或工作站上运行的软件。参考图22,该实现可以采用例如处理器16、存储器28、以及到显示器24和外部设备14(诸如键盘、指向设备等)的输入/输出接口22。这里使用的术语“处理器”旨在包括任何处理设备,例如包括CPU(中央处理单元)和/或其他形式的处理电路的处理设备。此外,术语“处理器”可以指多于一个独立处理器。术语“存储器”旨在包括与处理器或CPU相关联的存储器,例如RAM(随机存取存储器)30、ROM(只读存储器)、固定存储器设备(例如硬盘驱动器34)、可移动存储器设备(例如磁盘)、闪存等。此外,这里使用的短语“输入/输出接口”旨在预期到例如用于将数据输入到处理单元的一个或多个机构(例如鼠标)的接口,以及用于提供与处理单元相关联的结果的一个或多个机构(例如打印机)。处理器16、存储器28和输入/输出接口22可以例如经由总线18(作为数据处理单元12的一部分)互连。适当的互连(例如经由总线18)也可以提供给网络接口20,例如网卡,其可以被提供以与计算机网络接口连接,以及提供给介质接口,例如磁盘或CD-ROM驱动器,其可以被提供以与适当的介质接口连接。
因此,包括用于执行如这里所述的本发明的方法的指令或代码的计算机软件可以存储在一个或多个相关的存储器设备(例如,ROM、固定或可移动存储器)中,并且当准备使用时,该计算机软件被部分或全部加载(例如,加载到RAM中)并由CPU实现。这种软件可以包括但不限于固件、驻留软件、微代码等。
适于存储和/或执行程序代码的数据处理***将包括至少一个处理器16,其通过***总线18直接或间接耦合到存储器元件28。存储器元件可以包括在程序代码的实际实现期间使用的本地存储器、大容量存储器、以及提供至少一些程序代码的临时存储以便减少在实现期间必须从大容量存储器取得代码的次数的高速缓冲存储器32。
输入/输出或I/O设备(包括但不限于键盘、显示器、指示设备等)可以直接或通过中间I/O控制器耦合到***。
网络适配器20也可以耦合到***,以使数据处理***能够通过中间的专用或公共网络耦合到其它数据处理***或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡只是当前可用的几种网络适配器类型。
如本文(包括权利要求书)所使用的,“服务器”包括运行服务器程序的物理数据处理***(例如,图22所示的***12)。可以理解,该物理服务器可以包括或不包括显示器和键盘。
一个或多个实施例可以至少部分地在云或虚拟机环境的上下文中实现,尽管这是示例性的而非限制性的。返回参考图1-2和所附文本。考虑例如位于层90中的用于移动增强现实中的细粒度视觉识别的基于云的服务96。
应当注意,这里描述的任何方法可以包括提供包括在计算机可读存储介质上实现的不同软件模块的***的附加步骤;模块可以包括例如在框图中描绘和/或本文描述的适当元件中的任何或全部;作为示例而非限制,描述了模块/框和/或子模块/子框中的任何一个、一些或全部。然后,可以使用如上所述的在一个或多个硬件处理器(例如16)上执行的***的不同软件模块和/或子模块来执行方法步骤。此外,计算机程序产品可以包括具有代码的计算机可读存储介质,该代码适于被实现以执行这里描述的一个或多个方法步骤,包括向***提供不同软件模块。
在一些情况下可以采用的用户界面的一个示例是由服务器等向用户的计算设备的浏览器分发的超文本标记语言(HTML)代码。HTML由用户计算设备上的浏览器解析以创建图形用户界面(GUI)。
示例性***和制造品细节
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),该计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行装置使用的指令的有形装置。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码设备,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理装置,或者经由网络(例如因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理装置中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他装置上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的***、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的部分、模块或段,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的***来实现。
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。

Claims (25)

1.一种用于移动增强现实中的细粒度视觉识别的方法,包括:
获得对对象的三维点云表示的访问,所述三维点云表示包括扫描数字相机的位姿和对应的视频帧;
对所述三维点云表示进行下采样以获得感兴趣区域候选的集合;
过滤所述感兴趣区域候选以至少部分基于所述相机的所述位姿选择所述感兴趣区域候选中具有区分不同视觉状态的外观改变的那些感兴趣区域候选,作为所选择的感兴趣区域;
从所述视频帧中的对应视频帧生成所选择的感兴趣区域的感兴趣区域图像;以及
基于所述感兴趣区域图像来训练深度学习识别模型。
2.根据权利要求1所述的方法,还包括使用所训练的深度学习识别模型利用耦合到处理器的所述数字相机来确定所述对象的视觉状态。
3.根据权利要求2所述的方法,还包括基于所确定的状态向用户提供与所述对象相关的增强现实指令。
4.根据权利要求3所述的方法,还包括在确定所述对象的所述状态之前,相对于所述对象重新定位所述数字相机。
5.根据权利要求4所述的方法,其中,对所述三维点云表示进行所述下采样以获得所述感兴趣区域候选的集合包括去除离群值。
6.根据权利要求5所述的方法,其中,过滤所述感兴趣区域候选以选择所述感兴趣区域候选中具有所述外观改变的那些感兴趣区域候选包括图像裁剪和缩放。
7.根据权利要求4所述的方法,其中,所述对象的所述状态的所述确定包括:
采集所述感兴趣区域中具有被占用的感兴趣体素的那些感兴趣区域的图像;
向所述识别模型提供具有所述被占用的体素的所述感兴趣区域中的每一个的对应的缩放的局部图像和查看位姿。
8.根据权利要求7所述的方法,其中,
所述模型包括多流卷积神经网络长短期记忆模型;以及
所述对象的所述状态的所述确定包括:
将所述感兴趣区域分成多个分支;
使用所述多流卷积神经网络长短期记忆模型的卷积神经网络从所述对应的缩放的局部图像提取特征;
通过连接所提取的特征来聚集空间信息;
通过池化多个时间步的所述空间信息来聚集时间信息,并且将所池化的信息提供给长短期记忆层来获得用于分类的完全连接的层,以确定所述对象的所述状态。
9.根据权利要求7所述的方法,还包括抑制采集所述感兴趣区域中的不具有被占用的感兴趣体素的那些感兴趣区域的图像,以降低对遮挡和相机不稳定性中的至少一个的敏感度。
10.根据权利要求3所述的方法,其中,所述对象包括要被修复的信息技术资产,所述数字相机和所述处理器是移动设备的一部分,并且所述增强现实指令的所述提供包括示出所述信息技术资产的修复过程。
11.一种用于移动增强现实中的细粒度视觉识别的计算机可读介质,包括计算机可执行指令,所述计算机可执行指令在由计算机执行时使所述计算机执行一种方法,所述方法包括:
获得对对象的三维点云表示的访问,所述三维点云表示包括扫描数字相机的位姿和对应的视频帧;
对所述三维点云表示进行下采样以获得感兴趣区域候选的集合;
过滤所述感兴趣区域候选以至少部分基于所述相机的所述位姿选择所述感兴趣区域候选中具有区分不同视觉状态的外观改变的那些感兴趣区域候选,作为所选择的感兴趣区域;
从所述视频帧中的对应视频帧生成所选择的感兴趣区域的感兴趣区域图像;以及
基于所述感兴趣区域图像来训练深度学习识别模型。
12.根据权利要求11所述的计算机可读介质,其中,所述方法还包括使用所训练的深度学习识别模型利用所述数字相机来确定所述对象的视觉状态,所述数字相机耦合到处理器。
13.根据权利要求12所述的计算机可读介质,其中,所述方法还包括基于所确定的状态向用户提供与所述对象相关的增强现实指令。
14.根据权利要求13所述的计算机可读介质,其中,所述方法还包括在确定所述对象的所述状态之前,相对于所述对象重新定位所述数字相机。
15.根据权利要求14所述的计算机可读介质,其中,
对所述三维点云表示进行所述下采样以获得所述感兴趣区域候选的集合包括去除离群值;以及
过滤所述感兴趣区域候选以选择所述感兴趣区域候选中具有所述外观变化的那些感兴趣区域候选包括图像裁剪和缩放。
16.根据权利要求14所述的计算机可读介质,其中,所述对象的所述状态的所述确定包括:
采集所述感兴趣区域中具有被占用的感兴趣体素的那些感兴趣区域的图像;
向所述识别模型提供具有所述被占用的体素的所述感兴趣区域中的每一个的对应的缩放的局部图像和查看位姿;
所述模型包括多流卷积神经网络长短期记忆模型;以及
所述对象的所述状态的所述确定还包括:
将所述感兴趣区域分成多个分支;
使用所述多流卷积神经网络长短期记忆模型的卷积神经网络从所述对应的缩放的局部图像提取特征;
通过连接所提取的特征来聚集空间信息;以及
通过池化多个时间步的所述空间信息来聚集时间信息,并且将所池化的信息提供给长短期记忆层来获得用于分类的完全连接的层,以确定所述对象的所述状态。
17.根据权利要求16所述的计算机可读介质,其中,所述方法还包括抑制采集所述感兴趣区域中不具有被占用的感兴趣体素的那些感兴趣区域的图像,以降低对遮挡和相机不稳定性中的至少一个的敏感度。
18.根据权利要求13所述的计算机可读介质,其中,所述对象包括要被修复的信息技术资产,并且所述增强现实指令的所述提供包括示出所述信息技术资产的修复过程。
19.一种用于移动增强现实中的细粒度视觉识别的装置,包括:
存储器;以及
至少一个处理器,其耦合到所述存储器,并操作以:
获得对对象的三维点云表示的访问,所述三维点云表示包括扫描数字相机的位姿和对应的视频帧;
对所述三维点云表示进行下采样以获得感兴趣区域候选的集合;
过滤所述感兴趣区域候选以至少部分基于所述相机的所述位姿选择所述感兴趣区域候选中具有区分不同视觉状态的外观改变的那些感兴趣区域候选,作为所选择的感兴趣区域;
从所述视频帧中的对应视频帧生成所选择的感兴趣区域的感兴趣区域图像;以及
基于所述感兴趣区域图像来训练深度学习识别模型。
20.根据权利要求19所述的装置,其中,所述至少一个处理器还操作用于使用所训练的深度学习识别模型利用所述数字相机来确定所述对象的视觉状态,所述数字相机耦合到所述处理器。
21.根据权利要求20所述的装置,其中,所述至少一个处理器还操作用于基于所确定的状态向用户提供与所述对象相关的增强现实指令。
22.根据权利要求21所述的装置,其中,所述至少一个处理器还操作用于在确定所述对象的所述状态之前,相对于所述对象重新定位所述数字相机。
23.根据权利要求22所述的装置,其中,
对所述三维点云表示进行所述下采样以获得所述感兴趣区域候选的集合包括去除离群值;
过滤所述感兴趣区域候选以选择所述感兴趣区域候选中具有所述外观变化的那些感兴趣区域候选包括图像裁剪和缩放;以及
所述对象的所述状态的所述确定包括:
采集所述感兴趣区域中具有被占用的感兴趣体素的那些感兴趣区域的图像;
向所述识别模型提供具有所述被占用的体素的所述感兴趣区域中的每一个的对应的缩放的局部图像和查看位姿。
24.根据权利要求23的装置,其中,
所述模型包括多流卷积神经网络长短期记忆模型;以及
所述对象的所述状态的所述确定包括:
将所述感兴趣区域分成多个分支;
使用所述多流卷积神经网络长短期记忆模型的卷积神经网络从所述对应的缩放的局部图像提取特征;
通过连接所提取的特征来聚集空间信息;以及
通过池化多个时间步的所述空间信息来聚集时间信息,并且将所池化的信息提供给长短期记忆层来获得用于分类的完全连接的层,以确定所述对象的所述状态;以及
所述至少一个处理器还操作用于抑制采集所述感兴趣区域中不具有被占用的感兴趣体素的那些感兴趣区域的图像,以降低对遮挡和相机不稳定性中的至少一个的敏感度。
25.根据权利要求21所述的装置,其中,所述对象包括要被修复的信息技术资产,所述数字相机和所述处理器是移动设备的一部分,并且所述增强现实指令的所述提供包括示出所述信息技术资产的修复过程。
CN202080091681.0A 2020-01-02 2020-12-23 移动增强现实中的细粒度视觉识别 Active CN114902294B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/732,424 US11023730B1 (en) 2020-01-02 2020-01-02 Fine-grained visual recognition in mobile augmented reality
US16/732,424 2020-01-02
PCT/IB2020/062376 WO2021137111A1 (en) 2020-01-02 2020-12-23 Fine-grained visual recognition in mobile augmented reality

Publications (2)

Publication Number Publication Date
CN114902294A CN114902294A (zh) 2022-08-12
CN114902294B true CN114902294B (zh) 2023-10-20

Family

ID=76094613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080091681.0A Active CN114902294B (zh) 2020-01-02 2020-12-23 移动增强现实中的细粒度视觉识别

Country Status (8)

Country Link
US (1) US11023730B1 (zh)
JP (1) JP2023508590A (zh)
KR (1) KR20220092589A (zh)
CN (1) CN114902294B (zh)
AU (1) AU2020418608B2 (zh)
DE (1) DE112020005360T5 (zh)
GB (1) GB2607749A (zh)
WO (1) WO2021137111A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11308345B2 (en) * 2019-05-31 2022-04-19 Apple Inc. Saliency of an object for image processing operations
US11341650B2 (en) * 2020-03-19 2022-05-24 At&T Intellectual Property I, L.P. Method for accelerating three-dimensional object segmentation with point cloud simplifications
JP7440332B2 (ja) * 2020-04-21 2024-02-28 株式会社日立製作所 事象解析システムおよび事象解析方法
CN113587975A (zh) * 2020-04-30 2021-11-02 伊姆西Ip控股有限责任公司 用于管理应用环境的方法、设备和计算机程序产品
EP3968274A1 (en) * 2020-09-14 2022-03-16 Tata Consultancy Services Limited Method and system for asset inspection using unmanned aerial vehicles
US11756317B2 (en) * 2020-09-24 2023-09-12 Argo AI, LLC Methods and systems for labeling lidar point cloud data
US11792438B2 (en) * 2020-10-02 2023-10-17 Lemon Inc. Using neural network filtering in video coding
US11593597B2 (en) * 2020-11-16 2023-02-28 GM Global Technology Operations LLC Object detection in vehicles using cross-modality sensors
US11640700B2 (en) * 2021-02-26 2023-05-02 Huawei Technologies Co., Ltd. Methods and systems for rendering virtual objects in user-defined spatial boundary in extended reality environment
US11568141B2 (en) * 2021-04-02 2023-01-31 Liveperson, Inc. Domain adaptation of AI NLP encoders with knowledge distillation
US11688112B2 (en) * 2021-05-07 2023-06-27 Nxp B.V. Method for generating detailed visualization of machine learning model behavior
US11868444B2 (en) * 2021-07-20 2024-01-09 International Business Machines Corporation Creating synthetic visual inspection data sets using augmented reality
CN115439688B (zh) * 2022-09-01 2023-06-16 哈尔滨工业大学 一种基于周围区域感知与关联的弱监督物体检测方法
CN115546879B (zh) * 2022-11-29 2023-02-17 城云科技(中国)有限公司 用于表情识别的细粒度识别模型及方法
CN115953418B (zh) * 2023-02-01 2023-11-07 公安部第一研究所 安检ct三维图像中笔记本区域剥离方法、存储介质及设备
KR102585261B1 (ko) * 2023-04-26 2023-10-06 주식회사 케이유전자 3차원 보정객체의 단일 영상을 활용하여 적응형 영상 증강 방법 기반의 최적화된 다중 카메라 보정 시스템
CN116468870B (zh) * 2023-06-20 2024-01-23 佛山科学技术学院 一种城市道路三维可视化建模方法及***
CN116608866B (zh) * 2023-07-20 2023-09-26 华南理工大学 基于多尺度细粒度特征融合的图片导航方法、装置及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102737236A (zh) * 2012-07-06 2012-10-17 北京大学 一种基于多模态传感器数据自动获取车辆训练样本方法
CN107679250A (zh) * 2017-11-01 2018-02-09 浙江工业大学 一种基于深度自编码卷积神经网络的多任务分层图像检索方法
CN110321943A (zh) * 2019-06-25 2019-10-11 中国科学院自动化研究所 基于半监督深度学习的ct图像分类方法、***、装置
CN110378945A (zh) * 2019-07-11 2019-10-25 Oppo广东移动通信有限公司 深度图处理方法、装置和电子设备
CN110490917A (zh) * 2019-08-12 2019-11-22 北京影谱科技股份有限公司 三维重建方法及装置

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711293B1 (en) 1999-03-08 2004-03-23 The University Of British Columbia Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image
EP2048599B1 (en) 2007-10-11 2009-12-16 MVTec Software GmbH System and method for 3D object recognition
JP4956375B2 (ja) * 2007-10-30 2012-06-20 キヤノン株式会社 画像処理装置、画像処理方法
KR100920931B1 (ko) 2007-11-16 2009-10-12 전자부품연구원 Tof 카메라를 이용한 로봇의 물체 자세 인식 방법
DE102009049849B4 (de) 2009-10-19 2020-09-24 Apple Inc. Verfahren zur Bestimmung der Pose einer Kamera, Verfahren zur Erkennung eines Objekts einer realen Umgebung und Verfahren zur Erstellung eines Datenmodells
JP5624394B2 (ja) * 2010-07-16 2014-11-12 キヤノン株式会社 位置姿勢計測装置、その計測処理方法及びプログラム
JP6004809B2 (ja) * 2012-03-13 2016-10-12 キヤノン株式会社 位置姿勢推定装置、情報処理装置、情報処理方法
JP5788461B2 (ja) * 2013-11-05 2015-09-30 ファナック株式会社 バラ積みされた物品をロボットで取出す装置及び方法
US9846996B1 (en) 2014-02-03 2017-12-19 Wells Fargo Bank, N.A. Systems and methods for automated teller machine repair
US9547935B2 (en) * 2014-02-24 2017-01-17 Vricon Systems Ab Method and a system for building a three-dimensional model from satellite images
US20150325047A1 (en) 2014-05-06 2015-11-12 Honeywell International Inc. Apparatus and method for providing augmented reality for maintenance applications
JP2015228050A (ja) * 2014-05-30 2015-12-17 ソニー株式会社 情報処理装置および情報処理方法
US11181637B2 (en) * 2014-09-02 2021-11-23 FLIR Belgium BVBA Three dimensional target selection systems and methods
US9554030B2 (en) * 2014-09-29 2017-01-24 Yahoo! Inc. Mobile device image acquisition using objects of interest recognition
US9460517B2 (en) * 2014-10-22 2016-10-04 Pointivo, Inc Photogrammetric methods and devices related thereto
JP6405891B2 (ja) * 2014-10-29 2018-10-17 富士通株式会社 位置・姿勢推定装置、位置・姿勢推定方法、及び、プログラム
KR102290392B1 (ko) * 2014-12-02 2021-08-17 삼성전자주식회사 얼굴 등록 방법 및 장치, 얼굴 인식 방법 및 장치
US10249058B2 (en) * 2014-12-24 2019-04-02 Panasonic Intellectual Property Management Co., Ltd. Three-dimensional information restoration device, three-dimensional information restoration system, and three-dimensional information restoration method
US9953110B2 (en) 2015-02-06 2018-04-24 Clearedge3D, Inc. Apparatus and method for interactively extracting shapes from a point cloud
US10109074B2 (en) * 2015-03-24 2018-10-23 Sharper Shape Oy Method and system for inertial measurement having image processing unit for determining at least one parameter associated with at least one feature in consecutive images
US9875427B2 (en) 2015-07-28 2018-01-23 GM Global Technology Operations LLC Method for object localization and pose estimation for an object of interest
US9830706B2 (en) * 2015-09-17 2017-11-28 Skycatch, Inc. Generating georeference information for aerial images
US10242455B2 (en) * 2015-12-18 2019-03-26 Iris Automation, Inc. Systems and methods for generating a 3D world model using velocity data of a vehicle
JP2017134467A (ja) * 2016-01-25 2017-08-03 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
EP3403050A4 (en) 2016-02-15 2019-08-21 Pictometry International Corp. AUTOMATED SYSTEM AND METHOD OF CHARACTERIZATION EXTRACTION
CN107301651A (zh) * 2016-04-13 2017-10-27 索尼公司 对象跟踪装置和方法
JP6701930B2 (ja) * 2016-04-28 2020-05-27 富士通株式会社 オーサリング装置、オーサリング方法およびオーサリングプログラム
JP6220486B1 (ja) * 2016-05-27 2017-10-25 楽天株式会社 3次元モデル生成システム、3次元モデル生成方法、及びプログラム
JP6615723B2 (ja) * 2016-09-07 2019-12-04 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および対象物認識方法
US11302021B2 (en) * 2016-10-24 2022-04-12 Sony Corporation Information processing apparatus and information processing method
CN109891351B (zh) * 2016-11-15 2022-05-06 深圳市大疆创新科技有限公司 基于图像的对象检测和对应的移动调整操纵的方法和***
US10747300B2 (en) 2017-08-17 2020-08-18 International Business Machines Corporation Dynamic content generation for augmented reality assisted technology support
JP7192772B2 (ja) * 2017-08-22 2022-12-20 ソニーグループ株式会社 画像処理装置および画像処理方法
JP2019062340A (ja) * 2017-09-26 2019-04-18 キヤノン株式会社 像振れ補正装置および制御方法
US11127202B2 (en) * 2017-12-18 2021-09-21 Parthiv Krishna Search and rescue unmanned aerial system
US10592726B2 (en) 2018-02-08 2020-03-17 Ford Motor Company Manufacturing part identification using computer vision and machine learning
WO2019161558A1 (en) * 2018-02-26 2019-08-29 Intel Corporation Method and system of point cloud registration for image processing
WO2019194561A1 (ko) * 2018-04-03 2019-10-10 한국과학기술원 이동형 단말기에서의 증강 현실을 제공하기 위한 위치 인식 방법 및 시스템
JP6973258B2 (ja) * 2018-04-13 2021-11-24 オムロン株式会社 画像解析装置、方法およびプログラム
CN110264509B (zh) * 2018-04-27 2022-10-14 腾讯科技(深圳)有限公司 确定图像捕捉设备的位姿的方法、装置及其存储介质
US11198340B2 (en) 2018-05-01 2021-12-14 Continental Automotive Systems, Inc. Coupler and tow-bar detection for automated trailer hitching via cloud points
JP6988704B2 (ja) * 2018-06-06 2022-01-05 トヨタ自動車株式会社 センサ制御装置、物体探索システム、物体探索方法及びプログラム
CN111640175A (zh) * 2018-06-21 2020-09-08 华为技术有限公司 一种物体建模运动方法、装置与设备
US11003939B2 (en) * 2018-07-06 2021-05-11 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
WO2020069525A1 (en) * 2018-09-28 2020-04-02 Jido, Inc. Method for detecting objects and localizing a mobile computing device within an augmented reality experience
GB2583793B (en) * 2018-10-08 2021-11-03 Ulc Robotics Inc System and method for data acquisition
CN115086606A (zh) * 2018-12-05 2022-09-20 深圳阿科伯特机器人有限公司 移动目标的监控方法、装置、***、存储介质及机器人
KR20200075623A (ko) * 2018-12-18 2020-06-26 (주)제노레이 2차원 의료 영상 및 3차원 의료 영상의 정합을 이용한 치과 치료 계획 장치 및 방법
CN109949375B (zh) 2019-02-02 2021-05-14 浙江工业大学 一种基于深度图感兴趣区域的移动机器人目标跟踪方法
US10915779B2 (en) * 2019-04-26 2021-02-09 Unikie Oy Method for extracting uniform features from point cloud and system therefor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102737236A (zh) * 2012-07-06 2012-10-17 北京大学 一种基于多模态传感器数据自动获取车辆训练样本方法
CN107679250A (zh) * 2017-11-01 2018-02-09 浙江工业大学 一种基于深度自编码卷积神经网络的多任务分层图像检索方法
CN110321943A (zh) * 2019-06-25 2019-10-11 中国科学院自动化研究所 基于半监督深度学习的ct图像分类方法、***、装置
CN110378945A (zh) * 2019-07-11 2019-10-25 Oppo广东移动通信有限公司 深度图处理方法、装置和电子设备
CN110490917A (zh) * 2019-08-12 2019-11-22 北京影谱科技股份有限公司 三维重建方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
丁松涛 ; 曲仕茹 ; .基于深度学习的交通目标感兴趣区域检测.中国公路学报.2018,第31卷(第09期),全文. *

Also Published As

Publication number Publication date
JP2023508590A (ja) 2023-03-02
GB202211236D0 (en) 2022-09-14
KR20220092589A (ko) 2022-07-01
AU2020418608A1 (en) 2022-06-09
DE112020005360T5 (de) 2022-09-15
CN114902294A (zh) 2022-08-12
WO2021137111A1 (en) 2021-07-08
AU2020418608B2 (en) 2023-03-02
US11023730B1 (en) 2021-06-01
GB2607749A (en) 2022-12-14

Similar Documents

Publication Publication Date Title
CN114902294B (zh) 移动增强现实中的细粒度视觉识别
US10319412B2 (en) Robust tracking of objects in videos
CN108256479B (zh) 人脸跟踪方法和装置
US11842514B1 (en) Determining a pose of an object from rgb-d images
CN111488791A (zh) 将指尖运动模式实时地设备上分类为手势
CN108292362A (zh) 用于光标控制的手势识别
CN112861575A (zh) 一种行人结构化方法、装置、设备和存储介质
US11372518B2 (en) Systems and methods for augmented or mixed reality writing
Zhou et al. Fine-grained visual recognition in mobile augmented reality for technical support
US20180276471A1 (en) Information processing device calculating statistical information
JP2022020588A (ja) アクティブインタラクションの方法、装置、電子デバイス及び可読記憶媒体
Liu et al. A cloud infrastructure for target detection and tracking using audio and video fusion
Kalash et al. Relative saliency and ranking: Models, metrics, data and benchmarks
Merino‐Gracia et al. Real‐time text tracking in natural scenes
Turk et al. Computer vision for mobile augmented reality
CN114489341B (zh) 手势的确定方法和装置、电子设备和存储介质
US11961249B2 (en) Generating stereo-based dense depth images
CN114612976A (zh) 关键点检测方法及装置、计算机可读介质和电子设备
CN114461078A (zh) 一种基于人工智能的人机交互方法
Bhuyan et al. Hand motion tracking and trajectory matching for dynamic hand gesture recognition
Cheng et al. Weighted multiple instance-based deep correlation filter for video tracking processing
US20240221335A1 (en) Machine learning for pose estimation of robotic systems
US20230281843A1 (en) Generating depth images for image data
Sofer et al. Interactive Learning for Point‐Cloud Motion Segmentation
Zanyk-McLean et al. 3D Object Positioning Using Differentiable Multimodal Learning

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
GR01 Patent grant
GR01 Patent grant