使用基于三维对象模型的识别的图像修改与增强的制作方法

文档序号:15740020发布日期:2018-10-23 22:08阅读:148来源:国知局
使用基于三维对象模型的识别的图像修改与增强的制作方法

集成到移动设备中的相机继续改进质量。随着这种改进,增强摄影的能力正成为这些产品的消费者的越来越普遍的要求。本文使用的术语“增强摄影”是指使用附加数据和/或用户输入修改或改进图像或视频的过程。然而,因为图像修改可能需要增加的用户输入和技能水平,所以照片可能包含几乎无限数量的对象的事实对提供增强摄影能力提出了挑战。使用传统系统,用户手动编辑或操作图像经常是困难的,并且典型地需要技术技能或专业经验、以及可能昂贵的专业工具。

附图说明

伴随以下的具体实施方式部分并且参考附图,所要求保护的主题的实施例的特征和优点将变得显而易见,其中相同的附图标记表示相同的部分。

图1是按照本文所公开的某些实施例的用于图像操作的系统的应用的顶级框图。

图2是按照本文所公开的某些实施例配置的用于图像操作的系统的更详细的框图。

图3是按照本文所公开的某些实施例配置的图像渲染电路的框图。

图4是按照本文所公开的某些实施例配置的图像修改电路的框图。

图5(a)至5(e)图示了按照本文所公开的某些实施例的对象替换。

图6是图示按照本文所公开的某些实施例的用于图像操作的方法的流程图。

图7是按照示例实施例的以图形方式图示图6中描绘的方法的框图。

图8是示意性地图示按照本文所公开的某些实施例配置的用于操作图像的系统平台的框图。

尽管将参考说明性实施例来进行以下的具体实施方式部分,但是,众多替换、修改、以及变化对本领域技术人员将显而易见。

具体实施方式

总体上,本公开内容提供了用于增强摄影的技术,其可以简化和改进系统用户的图像或视频操作的过程。图像可以由集成在移动平台(诸如,平板电脑或智能手机)中的相机捕获。相机可以被配置为提供3D图像或视频。操作可以包括增强或修改成像场景内检测到的对象。场景内的这些对象的检测和识别及其位置提供了关于对象的附加信息,并允许对象的相对精确的分割,从而使得能够进行更复杂的操作。例如,可以旋转或在成形所选对象,可以改变照度和其他视觉效果,并且可以用其他对象来替换对象。另外,公开了用于生成分类器以从成像场景中检测和识别那些对象的技术。例如,对象的3D模型可以用作基础,从中渲染对象的期望数量的图像变型并用于训练分类器。渲染的图像可以包括变化的背景、对象姿态的调整、以及不同照度和其他视觉效果的应用,以提供对象的相对大量的图像以用于分类器生成/训练。本文描述的用于图像修改和增强的技术相对于需要专业工具和训练的传统的图像处理技术提供了总体上的改进的结果。如根据本公开内容将进一步理解的,本文所提供的技术能够以硬件或软件或其组合来实现,并且可以适用于期望图像操作的任意数量的应用。

图1是本文所公开的某些实施例的用于图像操作的系统的应用的顶级框图100。该系统被示出为包括3D相机104和图像操作系统106。3D相机104被配置为捕获包括某一数量的对象的场景102的图像帧或视频。例如,场景能够是房间,并且对象能够是家具物品,或者场景能够是商店中的过道,并且对象能够是货架上待售的物品。如下面将更详细描述的,图像操作系统106可以被配置为基于用户输入并且进一步基于可能潜在地出现在场景102中的对象的3D模型来修改或增强由相机104提供的图像。在某些实施例中,对象的3D模型可以作为计算机辅助设计(CAD)文件提供,例如来自对象的制造商。在某些实施例中,它们可以从来自多个视角的对象的3D扫描生成,并且可以从3D相机104或其他源获得扫描。

图2是按照本文所公开的某些实施例配置的用于图像操作的系统106的更详细框图。图像操作系统106被示为包括图像渲染电路202、分类器生成/训练电路204、对象识别电路206以及图像修改电路208,其操作将在下面更详细地解释。

图像渲染电路202可以被配置为基于对象的3D模型来渲染对象的期望数量的图像变型。如下面结合图3更详细地描述的,每个经渲染的图像可以包括背景场景、对象的姿态、和/或照度和视觉效果的变化。

分类器生成/训练电路204可以被配置为基于由图像渲染电路202提供的任意期望数量的渲染图像变型来生成对象识别分类器。根据本公开内容,可以使用任意已知的技术来对图像变型训练对象识别分类器。在某些实施例中,分类器生成/训练电路204可以是机器学习系统,该机器学习系统被配置为实现卷积神经网络(CNN)、随机森林分类器或支持向量机(SVM)。在某些实施例中,图像渲染电路202和/或分类器生成/训练电路204(机器学习系统)可以托管在本地系统上或基于云的系统上。例如,用户可以将3D CAD模型上传到基于云的系统,在基于云的系统中执行渲染和/或分类器训练。

对象识别电路206可以被配置为基于所生成的对象识别分类器来从包含对象的场景的图像中识别对象。因为分类器是从各种图像渲染生成的,因而对象识别电路206可以被配置为识别对象,即使其在潜在地不同的视觉条件下和针对不同背景的不同姿态中出现在新图像(场景102)中。

如下面结合图4将更详细地描述的,图像修改电路208可以被配置为创建掩膜以从场景的图像中分割识别的对象,并且基于用户请求或其他输入来修改场景的图像的被掩膜掩盖的分割片段。

图3是按照本文所公开的某些实施例配置的图像渲染电路202的更详细的框图。将图像渲染电路202示为包括模型校正电路302、图像合成电路304、背景场景生成器电路306、图像姿态调整电路308、照度和视觉效果调整电路310以及渲染参数变化电路312,其操作将在下面更详细地解释。当然,如所图示的电路的顺序表示一个可能的示例,并且其他变化是可能的,例如能够在背景场景生成之前执行姿态调整。

图像渲染电路202基于对象的3D模型来生成对象的图像变型。这样的3D模型通常通过数学表示或通过3D坐标空间中的点集合来限定或描述对象的3D表面,3D坐标空间中的点可以通过诸如为多边形的几何形状连接。在某些实施例中,模型可以由对象的制造商提供。该模型可以由CAD工具生成,例如,作为设计对象的过程的一部分。可选地,可以通过配置成扫描对象的物理样本的3D扫描工具来创建模型。在又一替代方案中,模型可由设计者使用3D造型工具或根据本公开内容的任意其他已知的技术来创建。

作为可选的初始化操作,模型校正电路302可以被配置为将对象的3D模型缩放到标准化尺寸并且将模型平移至3D坐标系的原点。这可能是期望的,以补偿不同的3D模型生成技术可以产生相对于给定的坐标系而言的任意大小、方向和/或位置的模型的事实。因而,校正可以确保所有的模型具有相似的尺寸并且共享共同的坐标系,因此可以促进下面描述的后续处理模块和电路的实现和性能。

图像合成电路304可以被配置为使用根据本公开内容的已知的技术,基于对象的3D模型来合成对象的3D图像(例如,彩色图像和深度图像)。随后可以基于由该电路生成的对象的经合成的3D图像来渲染相对大量的3D图像变型。变型的数量可以在几百、几千或更多的范围内。可以应用由下面描述的组件执行的操作的任意组合来创建每个渲染变型。

背景场景生成器电路306可以被配置为针对每个经渲染的图像变型来生成背景场景。每个经渲染的变型可以包括潜在的唯一背景场景,但是如果需要也可以重复使用背景场景。在某些实施例中,背景场景生成器可以从背景场景的数据库中随机选择背景场景。在某些实施例中,背景场景可以是位于对象后面的2D平面图像。在某些实施例中,背景场景可以是更复杂的3D构造模型。例如,可以存在位于房屋内的桌子,其中桌子是感兴趣的对象,并且房屋的地面和墙壁用作背景场景。

图像姿态调整电路308可以被配置为针对每个经渲染的图像变型来调整对象的姿态(例如,方向和/或平移)。另外,例如在非刚性对象的情况下,图像姿态调整电路可以进一步调整对象的区域的姿态,其中区域与对象的组件或子组件相关联,该组件或子组件可以彼此自由移动。可以生成渲染,包括对象的不同组件或子组件的姿态的所有可能(或实际)排列和组合。

照度和视觉效果调整电路310可以被配置为针对每个经渲染的图像变型来调整对象和/或所生成的背景的照度。可以调整或改变照度,例如从更亮到更暗,或者反之亦然,并且在某些实施例中,也可以改变对象的对比度。作为进一步的示例,图像的某些部分可以被遮蔽而其他部分被突出显示,或者可以使对象的某些部分看起来有光泽而其他部分阴暗。作为又一个示例,可以改变照明的颜色。

照度和视觉效果调整电路310可以被进一步配置为基于模拟的相机参数的应用来针对每个经渲染的图像变型来调整对象和/或背景的视觉效果。模拟的相机参数可以包括例如镜头焦距和镜头光圈。改变镜头焦距能够改变视野,例如从广角效果到远摄效果。改变镜头光圈能够改变图像的景深(即,图像和背景聚焦的深度范围)。

渲染参数变化电路312可以被配置为生成参数以控制或选择每次迭代或变化的期望效果。参数可以控制例如对象和/或图像背景的姿态调整和照度以及视觉效果。参数的选择可以由系统的操作者或用户确定,或者可以基于对象的性质预先确定。还可以基于要生成的分类器的类型或分类器的期望性能特性来确定参数的选择。

图4是按照本文所公开的某些实施例配置的图像修改电路208的更详细的框图。图像修改电路208可以被配置为基于用户请求或其他输入来分割来自场景的图像的识别的对象以进行修改。图像修改电路208被示为包括对象分割电路402、对象调整电路404以及对象替换电路406,其操作将在下面更详细地解释。

对象分割电路402可以被配置为分割来自场景的图像的识别的对象以进行修改。在某些实施例中,可以生成掩膜(例如,位掩膜)以限定与要分割的对象相关联的图像场景的区域。可以根据图像像素或对象的任何其他合适的度量或对象的边界来限定该区域。例如,掩膜可以包括识别的对象的像素。

对象调整电路404可以被配置为调整或以其他方式修改被分割的对象。这样的调整可以包括改变被掩膜掩盖的分割片段的照度,旋转被分割的对象或者使被分割的对象再成形。可以由系统的用户指定期望的调整。这些变化的应用可以仅限于被掩膜掩盖的像素。

对象替换电路406可以被配置为使得能够用不同的对象来替换被分割的对象,所述不同的对象可以由用户指定。例如,用户可以从可用对象的目录中选择替换对象。因而,替换过程可以按照以下继续:用替换对象的像素来替代被掩膜掩盖的区域中的被分割的对象的像素。

图5(a)至5(e)进一步图示了按照本文所公开的某些实施例的对象替换。场景502的视频由具有3D相机的平板电脑或智能手机的用户记录并且如图5(a)所示。接下来,在图5(b)中,从一个或多个视频帧识别对象,在该情况下是椅子506中的一个,并将对象从场景504分割。识别可以基于从椅子506的模型或从先前扫描的椅子图像生成的分类器。在图5(c)中,用户选择替换对象510,在该情况下是新的椅子,例如来自家具508的目录。替换椅子510的图像可以被调整大小、旋转、重新照亮和/或以其他方式变换以在图5(d)中呈现为椅子512。转换将取决于原始椅子506的位置和方向,并且可以被配置为与被掩膜掩盖的区域相匹配。在图5(e)中,新变换的椅子516被渲染成与原始椅子506具有相同的大小、位置和方向,并被插入到现在呈现为场景514的原始场景中,从而影响针对新椅子的原始椅子的换出。

由于形状的不同,待替换对象的分割掩膜可能与替换对象的分割掩膜不同。这样,由于背景中的“洞”(例如,未被替换对象覆盖的像素),在插入新对象之后可能需要修改背景图像。在某些实施例中,根据本公开内容,可以采用已知的背景填充技术来涂覆或填充这些洞。

作为另一示例应用,可以以相对自动的方式更新零售商店中的产品的图像,以便以更有效的方式评估顾客对商店重新设计的反应。在该示例中,将使用3D相机扫描商店中的当前物品以创建能够用于训练分类器以识别那些物品的模型。然后,拍摄所有商店货架上以及当前的物品库存的照片或视频。当前物品由分类器识别、分割,并替换为新物品。具有新物品的修改后的场景可以呈现给顾客以供查看和反馈,或者它们可以用于生成新装备的商店的虚拟现实游览。

方法

图6是图示按照本公开内容的实施例的用于基于对场景的图像中的对象的识别来进行图像修改和增强的示例方法600的流程图。如能够看出的,示例方法600包括多个阶段和子过程,其顺序可以根据实施例不同而变化。然而,当在总体中考虑时,这些阶段和子过程形成按照本文所公开的某些实施例的用于临时相干视差计算的过程。例如,如上所述,能够使用图2中所图示的系统架构来实现这些实施例。然而,如根据本公开内容将显而易见的,在其他实施例中能够使用其他的系统架构。为此,图6中所示的各种功能与图2中所图示的特定组件的相关性并不意味着暗示任何结构和/或使用限制。相反,其他实施例可以包括,例如,不同的集成度,其中多个功能由一个系统有效地执行。例如,在可选的实施例中,单个模块能够用于执行方法600的所有功能。因而,取决于实现的粒度,其他实施例可以具有更少或更多的模块和/或子模块。鉴于本公开内容,大量变化和可选配置将是显而易见的。

如图6中所图示的,在一个实施例中,用于图像修改和增强的方法600开始于,在操作610处,通过基于对象的3D模型来渲染对象的相对大量的图像变型。在某些实施例中,每个图像变型可以包括变化的背景场景、对象的经调整的姿态、基于模拟的相机参数的经调整的照度和经调整的视觉效果中的一个或多个。

接下来,在操作620处,基于经渲染的图像来生成对象识别分类器。在某些实施例中,对象识别分类器可以由机器学习系统生成或训练,例如基于卷积神经网络(CNN)、随机森林分类器或支持向量机(SVM)。

在操作630处,将生成的对象识别分类器用于从包括对象的场景的图像中识别对象。场景的图像可以由3D相机捕获。在操作640处,创建掩膜以从场景的图像中分割所识别的对象。掩膜或位掩膜可以被配置为分割对应于所识别的对象的图像场景的像素的区域或分组,使得在操作650处可以操作(例如,修改或增强)场景图像的经掩膜的分割片段。在某些实施例中,操作可以包括用另一个对象来替换对象。在某些实施例中,操作可以包括调整被掩膜掩盖的分割片段的照度,旋转被分割的对象,和/或对被分割的对象进行再成形。

当然,在某些实施例中,如之前结合系统所描述的,可以执行附加操作。这些附加操作可以包括例如允许系统的用户从可用对象的目录中选择替换对象。进一步的附加操作可以包括例如通过采用计算机辅助设计(CAD)工具或3D扫描工具来生成对象的3D模型。

图7是按照示例实施例的以图形方式图示图6中描绘的方法的框图。如上面的操作610中所述的,示出了将示例对象702的3D模型提供给图像渲染电路202。在某些实施例中,如上所述,可以例如通过模块202、通过改变背景、照明、建模的对象方向、和/或模拟的相机参数(诸如景深和视场角度)来渲染变化的3D场景。示出了对象的多个经渲染的图像704。尽管为简单起见示出了6个示例,但是实际上可以生成更多数量的渲染,可能在数千到数百万个渲染的数量级上。如上面的操作620中所述的,这些经渲染的图像704可以存储在数据库中和/或直接提供给分类器生成电路(机器学习系统)204。分类器生成电路(机器学习系统)204可以被配置为生成用于建模对象702的识别分类器706,例如基于使用经渲染的图像704或其子集的训练。然后可以采用所生成的分类器706来识别各种真实世界图像或场景中的对象702的实例。

示例系统

如本文所述的,图8图示了示例系统800,其可以被配置为基于对场景的图像中的对象的识别来提供图像修改和增强。在某些实施例中,系统800包括平台810,平台810可以托管或以其他方式并入到个人计算机、工作站、膝上型计算机、超级本、平板电脑、触摸板、便携式计算机、手持计算机、掌上电脑、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话和PDA、智能设备(例如,智能手机或智能平板电脑)、移动互联网设备(MID)等。在某些实施例中可以使用不同设备的任何组合。

在某些实施例中,平台810可以包括处理器820、存储器830、图像操作系统106、3D相机104、网络接口840、输入/输出(I/O)系统850、显示元件860、以及存贮系统870的任何组合。如能够进一步看到的,还提供总线和/或互连892以允许上面列出的各种组件和/或未示出的其他组件之间的通信。平台810能够通过网络接口840耦合到网络894,以允许与其他计算设备、平台或资源进行通信。根据本公开内容,未在图8的框图中反映的其他组件和功能将是显而易见的,并且应当理解,其他实施例不限于任何特定的硬件配置。

处理器820能够是任意合适的处理器,并且可以包括一个或多个协处理器或控制器,诸如音频处理器或图形处理单元,以辅助与系统800相关的控制和处理操作。在某些实施例中,处理器820可以实现为任意数量的处理器核心。处理器(或处理器核心)可以是任意类型的处理器或处理器组合,诸如,微处理器、嵌入式处理器、数字信号处理器(DSP)、图形处理器(GPU)、网络处理器、场可编程门阵列或配置为执行代码的其他设备。处理器可以是多线程核心,因为它们可以包括每个核心不止一个硬件线程上下文(或“逻辑处理器”)。处理器820可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器。在某些实施例中,处理器820可以被配置为x86指令集兼容处理器。

存储器830能够使用任意合适类型的数字存储器来实现,包括例如闪存和/或随机访问存储器(RAM)。在某些实施例中,存储器830可以包括本领域技术人员已知的各种存储器层级和/或存储器高速缓存层。存储器830可以实现为易失性存储设备,诸如但不限于RAM、动态RAM(DRAM)、或静态RAM(SRAM)设备。存储系统870可以实现为非易失性存储设备,诸如但不限于硬盘驱动器(HDD)、固态驱动器(SSD)、通用串行总线(USB)驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪存、备用电池的同步DRAM(SDRAM)、和/或网络可访问存储设备中的一个或多个。在某些实施例中,存储器870可以包括当包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强保护的技术。

处理器820可以被配置为执行操作系统(OS)880,其可以包括任意合适的操作系统,诸如Google Android(谷歌公司,山景城,美国加州)、Microsoft Windows(微软公司,雷德蒙德,美国华盛顿州)、Linux、或Apple OS X(苹果公司,库比蒂诺,美国加州)和/或各种实时操作系统。如根据本公开内容将理解的,本文所提供的技术能够在不考虑结合系统800提供的特定操作系统的情况下实现,因此也可以使用任意合适的现有或随后开发的平台来实现。

网络接口模块840能够是任意适当的网络芯片或芯片集,其允许计算机系统800和/或网络894的其他组件之间的有线和/或无线连接,从而使系统800能够与其他本地和/或远程计算系统、服务器、和/或资源通信。有线通信可以遵循现有(或还待开发)的标准,诸如以太网。无线通信可以遵循现有(或还待开发)的标准,诸如包括LTE(长期演进)的蜂窝通信、无线保真(Wi-Fi)、蓝牙、和/或近场通信(NFC)。示例性无线网络包括但不限于无线局域网、无线个域网、无线城域网、蜂窝网络、以及卫星网络。

I/O系统850可以被配置为在计算机系统800的各种I/O设备和其他组件之间进行接口。I/O设备可以包括但不限于显示元件860、3D相机104、以及其他未示出的设备,诸如键盘、鼠标、扬声器、麦克风等。

I/O系统850可以包括图形子系统,该图形子系统被配置为执行显示元件860的图像处理。例如,图形子系统可以是图形处理单元或视觉处理单元(VPU)。模拟或数字接口可以用于通信地耦合图形子系统和显示元件860。例如,接口可以是高清晰度多媒体接口(HDMI)、显示端口(DisplayPort)、无线HDMI、和/或使用无线高清兼容技术的任意其他合适的接口中的任意者。在某些实施例中,图形子系统能够集成到处理器820或平台810的任何芯片集中。在某些实施例中,显示元件860可以包括任意电视类型的监视器或显示器,包括液晶显示器(LCD)和发光二极管显示器(LED)。显示元件860可以包括例如计算机显示屏、触摸屏显示器、视频监视器、类似电视的设备、和/或电视。显示元件860可以是数字和/或模拟的。在OS 880(或一个或多个软件应用程序)的控制下,平台810可以在显示元件860上显示经处理的图像。图像可以由图像操作系统106、3D相机104或其他源来提供。相机104可以被配置为提供彩色(RGB)图像和深度图像。

将理解到,在某些实施例中,系统800的各种组件可以组合或集成在片上系统(SoC)架构中。在某些实施例中,组件可以是硬件组件、固件组件、软件组件、或硬件、固件或软件的任意合适组合。

图像操作系统106被配置为基于对场景的图像中的对象的识别来提供图像修改和增强。图像操作系统106可以包括图2中所图示和上文所述的组件中的任意或所有组件。图像操作系统106能够与耦合到或以其他方式形成系统800的一部分的各种合适的软件和/或硬件一起实现或以其他方式使用。图像操作系统106能够附加地或替代地与用户I/O设备一起实现或以其他方式结合用户I/O设备使用,该用户I/O设备能够向用户提供信息并从用户接收信息和命令。这些I/O设备可以包括显示元件860、诸如为键盘的文本输入设备、以及诸如为鼠标的基于指针的输入设备。可以在其他实施例中使用的其他输入/输出设备包括触摸屏、触摸板、扬声器、和/或麦克风。在其他实施例中能够使用其他输入/输出设备。

在某些实施例中,如图8的示例实施例中所示的,图像操作系统106可以安装在系统800的本地。可选地,系统800能够在客户端-服务器布置(或基于本地和云的布置)中实现,其中使用诸如为JavaScript的小程序或其他可下载模块来将与图像操作系统106相关联的至少某一功能提供给系统800。这样的远程可访问模块或子模块能够响应于来自客户端计算系统的请求而实时提供,以访问具有客户端计算系统的用户感兴趣的资源的给定服务器。在这样的实施例中,服务器能够是网络894本地的或通过一个或多个其他网络和/或通信信道远程耦合到网络894。在某些情况下,对给定网络或计算系统上的资源的访问可能需要诸如为用户名、密码的凭证和/或遵守任何其他合适的安全机制。

在各种实施例中,系统800可以实现为无线系统、有线系统、或两者的组合。当实现为无线系统时,系统800可以包括适合于在无线共享媒介上进行通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等。无线共享媒介的示例可以包括无线频谱的部分,诸如射频频谱等。当实现为有线系统时,系统800可以包括适合于在有线通信媒介上进行通信的组件和接口,诸如输入/输出适配器、用于将输入/输出适配器与相应的有线通信媒介连接的物理连接器、网络接口卡(NIC)、光盘控制器、视频控制器、音频控制器等。有线通信媒介的示例可以包括电线、电缆金属引线、印刷电路板(PCB)、背板、交换光纤、半导体材料、双绞线、同轴电缆、光纤等。

可以使用硬件元件、软件元件、或两者的组合来实现各种实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、ASIC、可编程逻辑设备、数字信号处理器、FPGA、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片集等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口、指令集、计算代码、计算机代码、代码段、计算机代码段、单词、值、符号、或其任何组合。确定是否使用硬件单元和/或软件单元来实现实施例可以根据任意数量的因素而变化,诸如期望的计算速率、功率水平、热容差、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度、以及其他设计或性能限制。

可以使用表达“耦合”和“连接”以及它们的派生词来描述某些实施例。这些术语不意图为彼此的同义词。例如,可以使用术语“连接”和/或“耦合”来描述某些实施例,以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦合”还可以表示两个或更多个元件彼此不直接接触,但仍然彼此协作或交互。

本文公开的各种实施例能够以各种形式的硬件、软件、固件、和/或专用处理器来实现。例如,在一个实施例中,至少一个非暂时性计算机可读存储介质具有在其上编码的指令,当由一个或多个处理器执行时,所述指令使得实现本文所公开的图像操作的一种或多种方法。能够使用合适的编程语言对指令进行编码,诸如C、C++、面向对象的C、JavaScript、Visual Basic.NET、初学者的通用符号指令代码(BASIC)、或者可选地,使用自定义或专有指令集。指令能够以有形地体现在存储设备上、并且能够由具有任何合适架构的计算机执行的一个或多个计算机软件应用程序和/或小应用程序的形式提供。在一个实施例中,系统能够托管在给定网站上并且例如使用JavaScript或其他合适的基于浏览器的技术来实现。作为例子,在某些实施例中,图像操作系统106可以通过利用由可经由网络894访问的远程计算机系统提供的处理资源来操作。在其他实施例中,本文所公开的功能能够并入到其他软件应用中,诸如,图像管理应用。本文所公开的计算机软件应用可以包括任意数量的不同的模块、子模块、或具有不同功能的其他组件,并且能够向其他组件提供信息或从其他组件接收信息。例如,这些模块能够用于与输入和/或输出设备通信,诸如显示屏、触敏表面、打印机、和/或任意其他合适的设备。根据本公开内容,未在图示中反映的其他组件和功能将是显而易见的,并且将理解到,其他实施例不限于任何特定的硬件或软件配置。因而,在其他实施例中,与图8的示例实施例中包括的子组件相比,系统800可以包括附加的、更少的、或替代的子组件。

上述非暂时性计算机可读介质可以是用于存储数字信息的任意合适的介质,诸如,硬盘驱动器、服务器、闪存、和/或随机访问存储器(RAM)、或存储器组合。在可选的实施例中,本文所公开的组件和/或模块能够用硬件实现,包括诸如为现场可编程门阵列(FPGA)的门级逻辑,或者可选地,诸如为专用集成电路(ASIC)的专用半导体。其他实施例可以用具有多个用于接收和输出数据的输入/输出端口的微控制器、以及用于执行本文所公开的各种功能的多个嵌入式例程来实现。将显而易见的是,能够使用硬件、软件、以及固件的任意合适的组合,并且其他实施例不限于任何特定的系统架构。

某些实施例可以例如使用机器可读介质或制造品来实现,该机器可读介质或制造品可以存储指令或一组指令,如果由机器执行,则该指令或一组指令可以使得机器执行按照实施例的方法和/或操作。这样的机器可以包括例如任意合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、过程、或类似物,并且可以使用硬件和/或软件的任意合适的组合来实现。机器可读介质或制造品可以包括例如任意合适类型的存储单元、存储设备、存储制造品、存储介质、存贮设备、存贮制造品、存贮介质、和/或存贮单元,诸如存储器、可移除或不可移除介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、光盘只读存储器(CD-ROM)、光盘可记录(CD-R)存储器、光盘可重写(CR-RW)存储器、光盘、磁介质、磁光介质、可移除存储卡或磁盘、各种类型的数字通用盘(DVD)、磁带、盒式磁带、或类似物。指令可以包括任意合适类型的使用任意合适的高级、低级、面向对象的、可视化、编译的、和/或解释的编程语言来实现的代码,诸如源代码、经编译的代码、解释代码、可执行代码、静态代码、动态代码、加密代码、以及类似物。

除非另有特别说明,否则可以理解到,诸如为“处理”、“计算”、“运算”、“确定”、或类似物的术语指代计算机或计算系统、或类似的电子计算设备的动作和/或过程,其将表示为计算机系统的寄存器和/或存储单元内的物理量(例如,电子)的数据操作和/或变换为类似地表示为计算机系统的寄存器、存储单元内的物理量或其他这样的信息存储、传输、或显示。实施例不限于此上下文。

本文的任何实施例中使用的术语“电路(circuit)”或“电路系统(circuitry)”可以包括例如,单独的或按任何组合的,硬连线电路、可编程电路(诸如,包括一个或多个单独指令处理核心的计算机处理器)、状态机电路、和/或存储由可编程电路执行的指令的固件。该电路可以包括处理器和/或控制器,该处理器和/或控制器被配置为执行一个或多个指令以执行本文所描述的一个或多个操作。指令可以体现为例如应用程序、软件、固件等,其被配置为使得电路执行任意上述操作。软件可以体现为记录在计算机可读存储设备上的软件包、代码、指令、指令集和/或数据。软件可以体现或实现为包括任意数量的过程,并且过程又可以以分层方式体现或实现为包括任意数量的线程等。固件可以体现为在存储设备中硬编码(例如,非易失性)的代码、指令或指令集和/或数据。电路可以共同地或单独地实现为形成更大系统的一部分的电路,例如,集成电路(IC)、专用集成电路(ASIC)、片上系统(SoC)、台式电脑、膝上型计算机、平板电脑、服务器、智能手机等。其他实施例可以实现为由可编程控制设备执行的软件。如本文所述的,可以使用硬件元件、软件元件、或其任意组合来实现各种实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。

本文已经给出了许多具体细节以提供对实施例的透彻理解。然而,本领域技术人员将理解到,可以在没有这些具体细节的情况下实践这些实施例。在其他例子中,没有详细描述众所周知的操作、组件和电路,以免模糊实施例。能够理解到,本文所公开的具体结构和功能细节可以是代表性的,并且不一定限制实施例的范围。另外,尽管用特定于结构特征和/或方法动作的语言描述了主题,但将理解到,所附权利要求书中定义的主题不一定限于本文所描述的具体特征或动作。而是,本文所描述的具体特征和动作被公开为实现权利要求的示例形式。

进一步的示例实施例

以下示例涉及进一步的实施例,从中,大量排列和配置将显而易见。

示例1是用于图像操作的方法。

该方法包括:基于对象的三维(3D)模型来渲染对象的多个图像变型;基于经渲染的图像变型来生成对象识别分类器;从包含该对象的场景的图像中识别该对象,使用所生成的对象识别分类器来进行识别;创建掩膜,以从场景的图像中分割出所识别的对象;以及修改场景的图像的被掩膜掩盖的分割片段。

示例2包括示例1的主题,其中,对于每个变型,渲染进一步包括以下中的至少一个:生成背景场景;调整对象的方向和平移;调整对象和背景场景的照度;以及,基于模拟的相机参数的应用来调整对象和背景场景的视觉效果。

示例3包括示例1或2的主题,其中修改进一步包括用第二对象替换被分割的对象。

示例4包括示例1-3中任一项的主题,其中第二对象由用户从对象目录中选择。

示例5包括示例1-4中任一项的主题,其中修改进一步包括以下中的至少一个:调整被掩膜掩盖的分割片段的照度,旋转被分割的对象,以及,使被分割的对象再成形。

示例6包括示例1-5中任一项的主题,其中,对象识别分类器由基于卷积神经网络(CNN)、随机森林分类器或支持向量机(SVM)的处理器执行的机器学习系统生成。

示例7包括示例1-6中任一项的主题,其中场景的图像是3D图像。

示例8包括示例1-7中任一项的主题,进一步包括通过采用计算机辅助设计(CAD)工具或3D扫描工具来生成对象的3D模型。

示例9是用于图像操作的系统。该系统包括:图像渲染电路,用于基于对象的三维(3D)模型来渲染对象的多个图像变型;分类器生成电路,用于基于经渲染的图像变型来生成对象识别分类器;对象识别电路,基于所生成的对象识别分类器,从包含对象的场景的图像中识别对象;以及,图像修改电路,用于创建掩膜,以从场景的图像中分割所识别的对象,并修改场景的图像的被掩膜掩盖的分割片段。

示例10包括示例9的主题,其中图像渲染电路进一步包括以下中的至少一个:背景场景生成器电路,用于针对个经渲染的图像变型生成背景场景;图像姿态调整电路,用于针对每个经渲染的图像变型调整对象的方向和平移;以及,照度和视觉效果调整电路,用于调整每个经渲染的图像变型的对象和背景场景的照度,并进一步基于模拟的相机参数的应用来调整每个经渲染的图像变型的对象和背景场景的视觉效果。

示例11包括示例9或10的主题,其中图像修改电路进一步用于用第二对象替换被分割的对象。

示例12包括示例9-11中任一项的主题,其中第二对象由用户从对象目录中选择。

示例13包括示例9-12中任一项的主题,其中图像修改电路进一步用于执行以下中的至少一个:调整被掩膜掩盖的分割片段的照度,旋转被分割的对象,以及使被分割的对象再成形。

示例14包括示例9-13中任一项的主题,其中分类器生成电路进一步包括基于卷积神经网络(CNN)、随机森林分类器或支持向量机(SVM)的机器学习系统。

示例15包括示例9-14中任一项的主题,其中场景的图像是3D图像。

示例16包括示例9-15中任一项的主题,其中,通过计算机辅助设计(CAD)工具或3D扫描工具生成对象的3D模型。

示例17是至少一个具有在其上编码的指令的非暂时性计算机可读存储介质,当由一个或多个处理器执行时,所述指令产生用于图像操作的以下操作。该操作包括:基于对象的三维(3D)模型来渲染对象的多个图像变型;基于经渲染的图像变型来生成对象识别分类器;从包含该对象的场景的图像中识别该对象,使用所生成的对象识别分类器进行识别;创建掩膜,以从场景的图像中分割出所识别的对象;以及,修改场景的图像的被掩膜掩盖的分割片段。

示例18包括示例17的主题,其中,对于每个变型,渲染进一步包括以下中的至少一个:生成背景场景;调整对象的方向和平移;调整对象和背景场景的照度;以及,基于模拟的相机参数的应用来调整对象和背景场景的视觉效果。

示例19包括示例17或18的主题,其中修改进一步包括用第二对象替换被分割的对象。

示例20包括示例17-19中任一项的主题,其中第二对象由用户从对象目录中选择。

示例21包括示例17-20中任一项的主题,其中修改进一步包括以下中的至少一个:调整被掩膜掩盖的分割片段的照度,旋转被分割的对象,以及使被分割的对象再成形。

示例22包括示例17-21中任一项的主题,其中,对象识别分类器由基于卷积神经网络(CNN)、随机森林分类器或支持向量机(SVM)的处理器执行的机器学习系统来生成。

示例23包括示例17-22中任一项的主题,其中场景的图像是3D图像。

示例24包括示例17-23中任一项的主题,进一步包括通过采用计算机辅助设计(CAD)工具或3D扫描工具来生成对象的3D模型。

示例25是用于图像操作的系统。该系统包括:模块,用于基于对象的三维(3D)模型来渲染对象的多个图像变型;模块,用于基于经渲染的图像变型来生成对象识别分类器;模块,用于从包含该对象的场景的图像中识别该对象,使用所生成的对象识别分类器来进行识别;模块,用于创建掩膜,以从场景的图像中分割出所识别的对象;以及,模块,用于修改场景的图像的被掩膜掩盖的分割片段。

示例26包括示例25的主题,其中,对于每个变型,渲染进一步包括以下中的至少一个:模块,用于生成背景场景;模块,用于调整对象的方向和平移;模块,用于调整对象和背景场景的照度;以及,模块,用于基于模拟的相机参数的应用来调整对象和背景场景的视觉效果。

示例27包括示例25或26的主题,其中修改进一步包括:模块,用于用第二对象替换被分割的对象。

示例28包括示例25-27中任一项的主题,其中第二对象由用户从对象目录中选择。

示例29包括示例25-28中任一项的主题,其中修改进一步包括以下中的至少一个:模块,用于调整被掩膜掩盖的分割片段的照度;模块,用于旋转被分割的对象;以及,模块,用于使被分割的对象再成形。

示例30包括示例25-29中任一项的主题,其中,对象识别分类器由基于卷积神经网络(CNN)、随机森林分类器或支持向量机(SVM)的处理器执行的机器学习系统来生成。

示例31包括示例25-30中任一项的主题,其中场景的图像是3D图像。

示例32包括示例25-31中任一项的主题,进一步包括:模块,用于通过采用计算机辅助设计(CAD)工具或3D扫描工具来生成对象的3D模型。

本文采用的术语和表达用作描述的术语而非限制,并且在使用这样的术语和表达时,无意排除所示和所描述的特征的任何等同物(或其部分),并且认识到在权利要求的范围内可能有各种修改。因此,权利要求旨在覆盖所有这样的等价物。本文已经描述了各种特征、方面、以及实施例。如本领域技术人员将理解的,特征、方面、以及实施例易于彼此组合以及变化和修改。因此,应该认为本公开内容包括这样的组合、变化、以及修改。意图是本公开内容的范围不受具体实施方式部分的限制,而是由所附权利要求限制。要求本申请优先权的未来提交的申请可以以不同的方式要求保护所公开的主题,并且通常可以包括本文不同地公开或以其他方式演示的一个或多个要素的任意集合。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1