用于选择图像中的对象的技术的制作方法

文档序号:13913231阅读:125来源:国知局



背景技术:

在图像编辑应用中,选择图像中的待编辑的部分是一种基本操作。例如,如果用户想要编辑图中的特定对象,则用户需要在该对象周围绘制选择。复杂的对象可以要求大量时间以恰当地绘制选择,并且当存在待选择的多个类似对象时,该时间成倍增加。需要一种标识用户已经选择的对象并且提供自动选择图像内的其他类似对象的能力的方式。



技术实现要素:

本发明的各方面涉及自动选择在一个或多个图像内的、用于修改的类似对象的计算设备。为此目的,计算设备经由输入设备接收指定对被显示在计算设备的用户接口上的图像中的第一对象的第一选择的输入。计算设备生成描述由第一对象的边缘形成的形状的第一特征描述符集合。

标识图像中的其他边缘,并且生成描述由其他边缘形成的形状的第二特征描述符集合。在一些实现中,其他边缘来自图像中的、排除第一对象的剩余部分。计算设备通过标识具有第二特征描述符集合中的、描述在由第一特征描述符集合所描述的形状的相似性阈值内的形状的特征描述符的每组其他边缘,来确定图像中的、在形状上与第一对象类似的一个或多个边缘对象。基于由用户指定的功能,通过计算设备修改图像中的、第一对象和图像的每个类似边缘对象的像素。

附图说明

可以参考以下附图更好地理解本公开的许多方面。附图中的部件不必按比例,而是将重点放在清楚地图示本公开的原理上。此外,在附图中,相同的附图标记贯穿多个视图指代对应的部分。

图1至图2是根据本公开的各种实施例的由计算设备渲染的示例用户接口的示图。

图3是根据本公开的各种实施例的联网环境的示图。

图4是根据本公开的各种实施例的由计算设备渲染的另一示例用户接口的示图。

图5至图7是根据本公开的各种实施例的可以由计算设备创建的中间图像的示例性示图。

图8是根据本公开的各种实施例的由计算设备渲染的另一示例用户接口的示图。

图9是根据本公开的各种实施例的图示被实现作为在计算设备中被执行的方法的部分的功能的一个示例的流程图。

图10是根据本公开的各种实施例的提供在图3的联网环境中所采用的计算环境的一个示例图示的示意性框图。

具体实施方式

本文中所公开的是用于执行以下动作的系统和方法的各种实施例:自动地选择和处理图像内的、与由用户先前选择的对象类似的对象,使用描述由先前选择的对象中所检测的边缘所形成的形状和由图像的剩余部分中所检测的边缘所形成的形状的特征描述符。将针对先前选择的对象所生成的特征描述符与针对图像的剩余部分所生成的特征描述符相比较,以标识图像中的、具有与先前选择的对象类似的边缘的其他对象。可以然后根据用户指定的功能或函数(例如,改变颜色、图案、亮度、对比度等、或者删除或修改所有选择的对象的功能),修改用户选择的对象和自动选择的对象的像素。

图1和图2的图示提供用于在此所公开的技术的示例使用案例,而剩余附图提供本技术的更详细的描述。如在图1的图示中所示,执行图像编辑应用的移动设备100使用触敏显示器101呈现包括各种对象105a-g的图像102。使用触敏显示器101和/或其他可能的输入设备,用户可以在一个或多个对象105a-g的周围绘制选择(诸如在对象105a周围做出的选择107a)。

一旦做出选择107a,用户就可以通过轻叩用户接口中的按钮109或通过其他可能的输入,来引导移动设备100自动选择图像102和/或其他图像(未示出)内的、与先前选择的对象105a在形状上类似的其他对象。随后,移动设备100评估图像102中的各个其他对象105b-g的形状,以确定是否与所选择的对象105a在形状上类似。基于由对象105的边缘所形成的形状而执行评估,由此对象可以在不考虑其缩放(即,大小)、定向、颜色或纹理的情况下被确定“类似于”另一对象。

因此,由于由所选择的对象105a的边缘所形成的形状在该示例中是三角形,因而移动设备100标识具有三角形形状边缘的其他对象,诸如对象105b——尽管其是不同的大小和定向——以及对象105c——尽管其是不同的颜色、大小和定向。然后,如在图2中所示,移动设备100做出对类似对象中的每个对象的周边的选择(诸如针对对象105b的选择107b和针对对象105c的选择107c)。跟随类似对象105b-c的自动选择,移动设备100的用户接口可以向用户提供取消选择和/或调整所做出的选择107中的一个或多个选择的控制装置(未示出)。

当对选择107满意时,用户可以将输入提供到移动设备100,以用于选择图像编辑应用的功能以修改所选择的对象105a-c的像素。例如,用户可以选择应用改变对象105a-c的颜色、图案等的过滤器,或者用户可以选择从图像102移除对象105a-c。在下文中,图像102和对其做出的任何修改由移动设备100存储为经修改的图像文件。在来自类似对象的自动选择的其他改进中,图像编辑应用的单个实例允许用户从手动地选择可以存在于一个或多个图像中的每个类似对象的冗长并且容易出错的过程中节省大量的时间。这不仅为用户提供经改进的可用性和方便性,而且可以减少计算资源(诸如存储器空间、处理器使用和/或网络带宽)的消耗。在以下讨论中,提供了跟随有相同内容的操作的讨论的系统和其部件的总体描述。

如在此所使用的,短语“对均匀缩放不变”指代独立于对象的大小的特性。例如,描述图像中的、具有对均匀缩放不变的特征描述符的对象的形状意味着以独立于对象的大小的方式被描述对象的形状。因此,如果该对象的大小均匀地增加或减小,则针对对象的特征描述符将是相同的。

如在此所使用的,短语“对定向不变”指代独立于对象的定向或旋转的特性。例如,描述图像中的、具有对定向不变的特征描述符的对象的形状意味着以独立于对象在图像中被旋转的方式的方式被描述对象的形状。因此,如果对象在图像中被旋转(例如,180度),则对象的特征描述符将是相同的。

参考图3,示出了根据各种实施例的联网环境300。联网环境300包括计算环境303和客户端设备306,它们经由网络309彼此数据通信。网络309包括例如因特网、内联网、外联网、广域网(wan)、局域网(lan)、有线网络、无线网络或其他适合的网络等、或者两个或两个以上这样的网络的任何组合。例如,这样的网络可以包括卫星网络、电缆网络、以太网和其他类型的网络。虽然在联网环境300的上下文中示出了在此所描述的功能,但是其他实现也是可能的,诸如实现单个计算设备(例如,台式计算机或移动设备)中的功能,作为在计算设备中和/或除了图3中所示的那些之外的计算设备的布置中执行的另一服务的插入式或辅助特征。

计算环境303可以包括例如服务器计算机或提供计算能力的任何其他系统。备选地,计算环境303可以采用可以例如被布置在一个或多个服务器组或计算机组或其他布置中的多个计算设备。这样的计算设备可以位于单个安装中或可以被分布在许多不同的地理位置中间。例如,计算环境303可以包括多个计算设备,其一起可以包括托管计算资源、网格计算资源和/或任何其他分布式计算布置。在一些情况下,计算环境303可以与弹性计算资源相对应,其中处理、网络、存储或其他计算相关资源的分配能力可以随时间变化。

根据各种实施例,可以在计算环境303中执行各种应用和/或其他功能。此外,各种数据被存储在对计算环境303可访问的数据存储库312中。数据存储库312可以表示多个数据存储库312,如可以理解的。被存储在数据存储库312中的数据例如与下面所描述的各种应用和/或功能实体的操作相关联。

在计算环境303上执行的部件例如包括图像处理引擎321,以及在此未详细讨论的其他应用、服务、过程、系统、引擎或功能。如在此详细讨论的,图像处理引擎321被执行以促进图像编辑,包括检测和处理一个或多个图像中的、与由用户所选择的图像中的对象类似的对象。

被存储在数据存储库312中的数据包括例如用户账户330、图像数据336和潜在其他数据。图像数据336包括可以以不同可能的格式(诸如联合图像专家组(jpeg)、可携式网络图形(png)、图形交换格式(gif)和/或如可以理解的其他可能的图像格式)针对各种图像被存储的数据和元数据。元数据可以包括图像的大小、所做出的对象和/或选择的像素坐标、分辨率、地理位置(“定位”)、捕获图像所使用的照相机设置和/或其他可能的信息。图像数据336还可以包括与用于创建、访问、修改和/或删除图像的用户账户330有关的各种属性和许可。另外,图像数据336可以包括存储图像的一个或多个版本(诸如在修改之前所存储的一个版本以及在修改之后所存储的图像的第二版本)。在一些实现中,被存储在数据存储库312中的图像可以被存储为文件。

个体用户账户330可以包括用户账户数据341、交互历史344和其他可能的数据。用户账户数据341可以包括用户标识符、用户组标识符、凭证、许可、相关联的客户端设备306等。交互历史344包括由用户所修改的各种图像的日志、图像中的所选择和/或所标识的对象的标识符和/或元数据、自动地选择的对象是否被取消选择或是否由用户调整选择和可能地其他信息。

客户端306表示可以被耦合到网络309的各种可能的客户端设备。客户端306可以包括例如基于处理器的系统(诸如计算机系统)。可以通过以下各项的形式实现这样的计算机系统:平板计算机、智能电话、台式计算机、膝上型计算机、蜂窝电话、机顶盒或具有类似能力的其他设备。客户端306可以包括对显示器361的连接。显示器361可以包括例如一个或多个设备,诸如液晶显示器(lcd)、基于气体等离子的平板显示器、有机发光二极管(oled)显示器、电泳墨水(电子墨水)显示器、lcd投影仪或其他类型的显示设备等。在一些实现中,显示器361是触敏的。

客户端306可以被配置为执行各种应用(诸如客户端应用306和/或其他应用)。客户端应用363可以被执行在客户端306中例,如以访问由计算环境303和/或其他服务器提供的网络内容,从而在显示器361上渲染用户接口365(诸如图形用户界面(gui))。为此目的,客户端应用363可以包括例如浏览器、专用应用等,并且用户接口365可以包括网页、应用屏幕等。客户端306可以被配置为执行除了客户端应用363之外的应用,诸如例如电子邮件应用、社交网络应用、字处理器、电子数据表和/或其他应用。

然后,提供联网环境300的各种部件的操作的总体描述。首先,操作客户端306的用户采用客户端应用363与图像处理引擎321建立通信会话。可以使用各种协议(诸如例如超文本传输协议(http)、简单对象访问协议(soap)、表述性状态转移(rest)、用户数据报协议(udp)、传输控制协议(tcp)和/或用于通过网络309传递数据的其他协议)执行通信会话。在一些实现中,用户使用一个或多个用户凭证被认证到图像处理引擎321。

此后,用户从用户接口365选择待编辑的图像(诸如通过选择图像内的、待修改的对象)。如在图4的示例中所图示的,图像401可以被呈现在客户端设备306或其他计算设备的触敏显示器361上。图像401中的所显示的内容中的各种对象中是表示指甲的对象405a-g。使用触敏显示器361,用户可以在对象405a-g中的一个或多个对象的周围绘制选择(诸如在对象405a周围做出的选择407a)。应当注意,虽然在图4的图示中利用触敏显示器361做出选择407a,但是其他输入设备(诸如鼠标、触控板、键盘等)可以被用于代替或者补充触敏显示器做出选择。

一旦做出选择407a,用户就可以通过轻叩显示器361中的按钮409或通过提供其他可能的输入,来引导客户端设备306自动地选择图像401中的、与先前选择的对象405a在形状上类似的对象。在一些实现中,用户可以经由用户接口365指定:由计算环境303和/或客户端设备306可访问的附加图像还应当被检查作为过程的一部分以标识和选择与所选择的对象405a类似的对象。随后,图像处理引擎321开始评估对象405a的形状作为用于与图像401中的其他对象比较的基础。为了检查形状,涵盖对象405a的选择407a通过使用bézier曲线方程组合选择407a中的多个点而被降低到其分量边缘(还被称为“边缘图”)。在一些实现中,相反使用canny边缘检测器或类似边缘检测算法从选择407a产生边缘图。在图5中,边缘检测算法的示例性输出被示出为呈现对象405a的边缘的对象边缘图501。

由对象边缘图501的各种边缘形成的形状然后使用特征描述算法描述,其中描述被存储为特征描述符集合(“对象特征描述符”),其针对每个特征包括描述特征的向量以及图401中的特征的位置。应当注意,虽然边缘图501的尺寸可以跟随选择407a的形状,但是在不考虑选择自身的形状的情况下,对象特征描述符描述由存在于选择407a内的边缘所形成的形状。各种特征描述算法是可用的并且可以被使用(诸如比例不变量特征变换(sift)、定向fast和旋转brief(orb)或其他可能的算法)。这些和其他边缘检测和特征描述算法是可用的(例如,在由opencv.org维护并且在http://opencv.org/处可用的开源计算机视觉(opencv)库中)。

除了确定表示对象边缘图501中的对象405a的对象特征描述符之外,图像处理引擎321还确定在图像401中自动检测的所有边缘的特征描述符。虽然以下描述指代处理图像401的整体,但是在一些实现中,未针对整个图像401中的所有边缘,而是仅在图像401中的、选择407a中的对象405a外部的一部分中确定特征描述符。为了该目的,使用canny边缘检测器或类似边缘检测算法针对图像401制造边缘图。在各种实现中,还使用自适应滞后作用定位和阈值化以便减少图像401中的噪声,从而降低创建错误边缘的可能性。边缘检测算法的示例性输出在图6中被示出为呈现图像401的边缘的图像边缘图601。

然后使用特征描述算法来描述由图像边缘图601的各种边缘形成的形状,其中描述被存储为特征描述符集合(“图像特征描述符”),其针对每个特征包括描述特征的向量以及图401中的特征的位置。各种特征描述算法是可用的并且可以被使用(诸如sift、orb或其他可能的算法)。

随后,图像处理引擎321通过首先将用于对象边缘图501的特征描述符与用于图像边缘图601的特征描述符相比较,来搜索其形状在图像401内的对象405a的形状的“相似性阈值”内的其他对象的存在。使用分类算法(诸如k-最近邻(k-nn)算法)执行特征描述符比较,由此来自对象特征描述符集合中的每个特征描述符与图像特征描述符中的每个图像特征描述符相比较。特别地,k-nn尝试找到来自图像特征描述符的某个特征描述符,其具有与来自对象特征描述符的特征描述符相同的向量并且尽可能接近于对象405a中的特征的位置(即,像素坐标)。对于k-nn算法而言,虽然实验结果示出2或更大的k-nn分类器值产生期望的结果,但是可以使用各种k-nn分类器值(即,考虑邻居数目)。一旦完成k-nn的迭代,找到图像特征描述符的、与对象特征描述符匹配的那些(如果有的话)图像特征描述符,以及图像401中的这些匹配特征之间的距离。

除了搜索存在于图像特征描述符内的对象特征描述符的以上步骤之外,图像处理引擎321还搜索具有与对象特征描述符相同的向量的图像特征描述符(还被称为“双向分类”)。如上文所讨论的,k-nn算法可以用于执行搜索,由此来自图像特征描述符的每个特征描述符与对象特征描述符相比较。一旦k-nn的迭代完成,就找到匹配图像特征描述符的任何对象特征描述符,以及图像401中的这些匹配特征之间的距离。在下文中,图像处理引擎321标识被标识为在k-nn算法的这两个迭代中匹配的那些特征描述符对。例如,将包括分别针对图像401和对象405a的特征描述符ii和oi对,只要它们被标识为在k-nn算法的这两次迭代中匹配。

图像处理引擎321然后执行比例测试以进一步验证所标识的匹配图像特征描述符与图像401中的类似形状的对象相对应。例如,图像特征描述符i1、i2和i3可能已经相应地被标识为与对象特征描述符o1、o2和o3匹配。比例测试然后验证(i1,i2)、(i2,i3)、(i3,i1)的位置对(即,像素坐标)之间的距离的比例在(o1,o2)、(o2,o3)、(o3,o1)的对应的位置对之间的距离的比例的相似性阈值内。也即,如果所选择的对象的特征的集合真实地与图像中的另一对象的特征的集合相对应,那么相应的对象上的那些特征之间的距离的比例也应当是类似的。因此,比例测试还通过验证来自图像边缘图601的匹配特征与来自对象边缘图501的对象405a的对应的特征被类似地布置,来改进所标识的特征描述符匹配的准确性。由比例测试成功验证的特征描述符因此合并以形成特征描述符组,其描述图像边缘图601中的、在形状上与对象405a类似的其他对象的形状和像素坐标。图像边缘图601内的这些对象可以在此被称为“边缘对象”。

为了将图像边缘图601中所标识的类似地形状的“边缘对象”转换为图像401中的对应的图像405b-g的所选择的部分,图像处理引擎321首先将图像401的表示划分为超像素区域(诸如图7的超像素图像701中所示的)。在每个超像素区域内,每个像素的颜色(有时被称为“像素强度”)相同或至少在超像素区域中相对于彼此像素的差别阈值内。可以通过从图像401选择随机地分布的“种子”像素来创建超像素图像701。从种子像素,可以选择相邻像素。如果相邻像素是相同的颜色(或在差别阈值内),则其被添加到种子像素的超像素区域,而如果颜色是不同的(或超过差别阈值),则相邻像素开始分离的超像素区域。

随后,图像处理引擎321标识包括先前标识的边缘对象的像素坐标的超像素区域的分组,诸如由边缘对象之一的像素坐标定义的示例性区域707。每组超像素区域的周界定义用于对图像401中的对应的对象405a-g的选择407-g的坐标,如在图8中所示。在一些实现中,图像处理引擎321通过首先确定超像素图像701(图7)的超像素区域的边缘的特征描述符集合(“超像素特征描述符”)来解决一组超像素区域的周界的形状与对象405a图像的形状之间的不一致性。在这些实现中,调整被包括在超像素区域的每个分组中的超像素区域,直到超像素特征描述符和对象特征描述符确认由超像素区域的分组的周界形成的形状与对象405a的形状相对应。在其他实现中,用户接口365允许用户提供输入以取消选择和/或调整选择407a-g。

此后,图像处理引擎321根据指定的功能来修改所选择的对象405a-g(图4)的像素。例如,函数可以调整对象405a-g的颜色或纹理、从图像401“切割”对象405a-g、和/或执行如可以理解的其他可能的功能。

接下来参考图9,示出了根据各种实施例的提供图像处理引擎321的一部分的操作的一个示例的流程图。应理解到,图9的流程图仅提供可以被用于实现如在此所描述的图像处理图像321的一部分的操作的许多不同类型的功能布置的示例。作为备选方案,根据一个或多个实施例,图9的流程图可以被视为描绘计算环境303(图3)中实现的方法900的元素的示例。响应于用户通过使用图像处理引擎321将图像打开并且显示在计算设备上,可以实现方法900的该部分。

从块903开始,图像处理引擎321接收指定对被显示在图像中的第一对象的选择的输入。例如,用户可以使用计算设备的鼠标、触敏显示器或某个其他输入设备绘制或以其他方式定义对被显示在显示设备上的图像中的第一对象周围的选择。然后,在块906中,图像处理引擎321确定其他类似对象是否应当被标识。用户可以引导计算设备通过向用户接口提供输入或通过提供其他可能的输入来自动地选择图像中的、在形状上与先前选择的对象类似的其他对象。在一些实现中,用户可以经由用户接口指定:由计算设备可访问的附加图像还应当被检查作为过程的一部分以标识和选择与所选择的对象类似的对象。如果用户选择不自动标识其他类似对象,则图像处理引擎321的执行返回块903。

备选地,如果用户选择自动地标识其他类似对象,则在块909中,图像处理引擎321开始过程以生成描述由第一对象的边缘所形成的形状的第一特征描述符集合(“对象特征描述符”)。在一些实现中,过程包括通过使用canny边缘检测器、通过使用bézier曲线方程组合选择中的多个点或通过使用另一边缘检测算法,来减少由用户对其部件边缘或“边缘图”做出的选择(包括对象)。然后使用特征描述算法来描述第一对象的边缘图(“对象边缘图”)的各种边缘,其中描述被存储为特征描述符集合,其针对每个特征包括描述特征的向量以及图像中的特征的位置。各种特征描述算法是可用的并且可以被使用(诸如sift、orb或其他可能的算法)。

接下来,在块912中,图像处理引擎321开始生成描述由图像中所检测的其他边缘所形成的形状的第二特征描述符集合(“图像特征描述符”)的过程。虽然以下描述指代处理图像的整体,但是在一些实现中,未针对整个图像中的所有边缘,而是仅在图像中的、选择中的第一对象外部的一部分中确定特征描述符。为了该目的,使用canny边缘检测器或类似边缘检测算法针对图像生成边缘图。在各种实现中,还使用自适应滞后作用局部化和阈值化以便减少图像中的噪声,从而降低创建错误边缘的可能性。然后使用特征描述算法来描述由图像的边缘图(“图像边缘图”)各种边缘所形成的形状,其中描述被存储为图像特征描述符,其针对每个特征包括描述特征的向量以及图像中的特征的位置。

然后,在块915中,图像处理引擎321确定图像边缘图中的、在由对象特征描述符所描述的对象的形状的相似性阈值内的一个或多个边缘对象。为了该目的,在一些实现中,图像处理引擎321首先将对象特征描述符和图像特征描述符相比较。使用分类算法(诸如k-nn算法)执行特征描述符比较,由此来自对象特征描述符集合的每个特征描述符与图像特征描述符中图像特征描述符相比较。特别地,k-nn尝试找到来自图像特征描述符的特定特征描述符,其具有与来自对象特征描述符的特征描述符相同的向量并且尽可能接近于第一对象中的特征的位置(即,像素坐标)。一旦k-nn的迭代完成,就找到图像特征描述符中的、与对象特征描述符匹配的那些(如果有的话)图像特征描述符,以及图像中的这些匹配特征之间的距离。

除了搜索存在于图像特征描述符内的对象特征描述符的以上步骤之外,图像处理引擎321还搜索存在于对象特征描述符内的图像特征描述符(还被称为“双向分类”)。如上文所讨论的,k-nn算法可以被用于执行搜索,由此来自图像特征描述符的每个特征描述符与对象特征描述符相比较。一旦k-nn的迭代完成,就找到与图像特征描述符匹配的对象特征描述符,以及图像中的这些匹配特征之间的距离。在下文中,图像处理引擎321标识被标识为在k-nn算法的这两次迭代中匹配的那些特征描述符对。

图像处理引擎321然后执行比例测试以进一步验证所标识的匹配图像特征描述符与图像中的类似地形状的对象相对应。例如,图像特征描述符i1、i2和i3可能已经分别被标识为与对象特征描述符o1、o2和o3匹配。比例测试然后验证(i1,i2)、(i2,i3)、(i3,i1)的位置对(即,像素坐标)之间的距离的比例在(o1,o2)、(o2,o3)、(o3,o1)的对应的位置对之间的距离的比例的相似性阈值内。也即,如果第一对象的特征的集合真实地与来自另一对象的其他特征的集合相对应,那么相应的对象上的那些特征之间的距离的比例也应当是类似的。因此,比例测试还通过验证来自图像边缘图的匹配特征与来自对象边缘图的第一对象的对应的特征被类似地布置,来改进所标识的特征描述符匹配的准确性。由比例测试成功地验证的特征描述符因此合并以形成描述图像边缘图中的、在形状上与第一对象类似的其他对象的形状和像素坐标的一组特征描述符。图像边缘图601内的这些对象可以在此被称为“边缘对象”。

接下来,在块924中,图像处理引擎321根据指定的功能来修改图像中的、第一对象和每个类似边缘对象的像素。例如,函数可以调整对象的颜色或纹理、从图像“切割”对象、和/或执行如可以理解的其他可能的功能。在一些实现中,图像处理引擎321通过标识针对每个边缘对象的超像素区域的分组来在修改像素之前改善图像内所标识的对象的准确性,其中分组包括相应的边缘对象的像素。为了将图像边缘图中所标识的类似地形状的“边缘对象”转换为图像中的对应的对象的所选择的部分,图像处理引擎321首先将图像的表示划分为超像素区域(被称为超像素图像)。在每个超像素区域内,每个像素的颜色(有时被称为“像素强度”)相同或至少在超像素区域中相对于彼此像素的差别阈值内。可以通过从图像选择随机地分布的“种子”像素来创建超像素图像。从种子像素,可以选择相邻像素。如果相邻像素是相同的颜色(或在差别阈值内),则其被添加到种子像素的超像素区域,而如果颜色是不同的(或超过差别阈值),则相邻像素开始分离的超像素区域。随后,图像处理引擎321标识包括先前标识的边缘对象的像素坐标的超像素区域的分组。通过对应的一组超像素区域的周界来定义图像中的对象的坐标。坐标可以由图像处理引擎321被用于更准确地标识在步骤924中待修改的像素、和/或可以被用于定义在步骤924的修改之前可以由用户调整的针对每个边缘对象的选择。

在各种实现中,图像处理引擎321可以通过首先确定超像素图像的超像素区域的边缘的特征描述符集合(“超像素特征描述符”),来解决一组超像素区域的周界的形状与第一对象的形状之间的不一致性。调整被包括在超像素区域的每个分组中的超像素区域,直到超像素特征描述符和对象特征描述符确认由超像素区域的分组的周界形成的形状与第一对象的形状相对应。在下文中,图像处理引擎321的该部分结束,如所示出的。

参考图10,示出了根据本公开的实施例的计算环境303的示意性框图。计算环境303包括一个或多个计算设备1000。每个计算设备1000包括至少一个处理器电路,例如,其具有处理器1002、存储器1004、i/o接口1008和网络接口1010,它们全部被耦合到本地接口1012。为此目的,每个计算设备1000可以包括例如至少一个服务器计算机或类似设备。i/o设备1008可以与(本地附接和远程二者的)各种设备进行对接用于接收和发射数据(诸如显示器(包括触敏显示器)、照相机、麦克风、键盘、鼠标等)。本地接口1012可以包括例如数据总线与伴随的地址/控制总线或其他总线接口,如可以理解的。

存储器1004中所存储的是由处理器1002可执行的数据和多个部件。特别地,被存储在存储器1004中并且由处理器1002可执行的是图像处理引擎321和潜在地其他应用。还被存储在存储器1004中的可以是数据存储库和其他数据。另外,操作系统可以被存储在存储器1004中并且由处理器1002可执行。

应理解到,可以存在被存储在存储器1004中并且由处理器1002可执行的其他应用,如可以理解的。在以软件的形式实现在此所讨论的任何部件的情况下,可以采用若干编程语言中的任一编程语言,诸如例如c、c++、c#、objectivec、perl、php、visualruby、或其他编程语言。

多个软件部件被存储在存储器1004中并且由处理器1002可执行。在这方面中,术语“可执行的”意味着以可以最终由处理器1002运行的形式的程序文件。可执行程序的示例可以是例如编译程序,其可以被转译为以能够被加载到存储器1004的随机存取部分中并且由处理器1002运行的格式的机器代码、能够以适当的格式表达的源代码(诸如能够被加载到存储器1004的随机存取部分中并且由处理器1002执行的目标代码)、或可以由另一可执行程序解译以生成存储器1004的随机存取部分中的指令以由处理器1002执行的源代码等。可执行程序可以被存储在存储器1004的任何部分或部件中,包括例如随机存取存储器(ram)、只读存储器(rom)、硬盘驱动器、固态驱动器、usb闪速驱动器、存储器卡、光盘(诸如压缩光盘(cd)或数字通用光盘(dvd))、磁带或其他存储器部件。

存储器1004在此被定义为包括易失性存储器和非易失性存储器二者以及数据存储部件。易失性部件是在功率消失时不保持数据值的那些易失性部件。非易失性部件是在功率消失时保持数据的那些非易失性部件。因此,存储器1004可以包括例如随机存取存储器(ram)、只读存储器(rom)、硬盘驱动器、固态驱动器、usb闪速驱动器、经由存储器卡阅读器访问的存储器卡、经由相关联的软盘驱动器访问的软盘、经由光盘驱动器访问的光盘、经由适当的磁带驱动器访问的磁带、和/或其他存储器部件、或这些存储器部件中的任何两个或两个以上部件的组合。另外,ram可以包括例如静态随机存取存储器(sram)、动态随机存取存储器(dram)或磁性随机存取存储器(mram)以及其他这样的设备。rom可以包括例如可编程只读存储器(prom)、可擦可编程只读存储器(eprom)、电可擦可编程只读存储器(eprom)或其他类似存储器设备。

此外,处理器1002可以表示多个处理器1002和/或多个处理器核心,并且存储器1004可以表示分别在并行处理电路中操作的多个存储器1004。在这样的情况下,本地接口1012可以是促进多个处理器1002中的任何两个处理器之间、任何处理器1002与存储器1004中的任一个存储器之间、或存储器1004中的任何两个存储器之间等的通信的适当的网络。本地接口1012可以包括被设计为协调该通信(包括例如执行负载平衡)的附加系统。处理器1002可以电气类型的或某种其他可用的构造。

虽然可以以由通用硬件执行的软件或代码实现在此所描述的图像处理引擎321和其他各种系统,如上文所讨论的,但是作为备选方案,同样还可以以专用硬件或软件/通用硬件和专用硬件的组合来进行实现。如果以专用硬件实现,则每个专用硬件可以被实现为采用若干技术中的任一种或组合的电路或状态机。这些技术可以包括但不限于具有用于在施加一个或多个数据信号时实现各种逻辑功能的逻辑门的分离逻辑电路、具有适当的逻辑门的专用集成电路(asic)、现场可编程门阵列(fpga)或其他部件等。这样的技术通常由本领域的技术人员众所周知并且因此在此未详细描述。

图9的流程图示出了方法900的各个部分的实现的功能和操作。如果通过软件实现,则每个块可以表示包括实现指定的(一个或多个)逻辑功能的程序指令的代码的模块、段或部分。可以以源代码的形式实现程序指令,其包括以包括由适合的执行系统(诸如计算机系统或其他系统中的处理器1002)可识别的数字指令的编程语言或机器代码编写的人类可读语句。可以从源代码等转换机器代码。如果通过硬件实现,则每个块可以表示实现指定的(一个或多个)逻辑功能的电路或若干相互连接的电路。

虽然图9的流程图示出了执行的特定顺序,但是应理解到,执行的顺序可以与所描绘的顺序不同。例如,两个或两个以上块的执行的顺序可以相对于所示的顺序被扰乱。此外,可以同时或部分同时执行图9中连续所示的两个或两个以上块。另外,在一些实施例中,可以略过或省略图9中所示块中的两个或两个以上。另外,出于增强的实用性、计数、性能测量或提供故障诊断辅助等的目的,任何数目的计数器、状态变量、报警信号或消息可以被添加到在此所描述的逻辑流。应理解到,所有这样的变型在本公开的范围内。

此外,可以以用于通过或结合指令执行系统(诸如例如计算机系统或其他系统中的处理器1002)使用的任何非暂态计算机可读介质来实现包括软件或代码的在此所描述的任何逻辑或应用(包括图像处理引擎321)。在这个意义上,逻辑可以包括语句,其例如包括可以从计算机可读介质被获取并且由指令执行系统执行的指令和声明。在本公开的上下文中,“计算机可读介质”可以是可以包含、存储或维持用于通过或结合指令执行系统使用的在此所描述的逻辑或应用的任何介质。

计算机可读介质可以包括许多物理介质(诸如例如磁性、光学或半导体介质)中的任一种物理介质。适合的计算机可读介质的更多特定示例将包括但不限于磁带、磁性硬盘驱动器、存储器卡、固态驱动器、usb闪速驱动器或光盘。此外,计算机可读介质可以是随机存取存储器(ram),包括例如静态随机存取存储器(sram)和动态随机存取存储器(dram)或磁性随机存取存储器(mram)。另外,计算机可读介质可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或其他类型的存储器设备。

此外,可以以各种方式实现和构造在此所描述的任何逻辑或应用(包括图像处理引擎321)。例如,所描述的一个或多个应用可以被实现为单个应用的模块或部件。而且,可以以共享或分离的计算设备或其组合执行在此所描述的一个或多个应用。例如,可以在相同计算设备1000中或在相同计算环境303中的多个计算设备中执行在此所描述的多个应用。此外,应理解到,术语(诸如“应用”、“服务”、“系统”、“引擎”、“模块”等)可以是可交换的并且不旨在是限制性的。

除非特别另外说明,否则析取语言(诸如短语“x、y或z中的至少一个”)与如通常被用于呈现项、术语等的上下文一起理解,可以是x、y或z或者其任何组合(例如,x、y和/或z)。因此,这样的析取语言通常不旨在并且不应当隐含某些实施例要求x中的至少一个、y中的至少一个或z中的至少一个各自存在。

应当强调,本公开的上文所描述的实施例仅是出于理解本公开的原理所阐述的实现的可能的示例。在基本上不脱离本公开的精神和原理的情况下,可以对上文所描述的(一个或多个)实施例做出许多变型和修改。所有这样的修改和变型旨在在此被包括在本公开的范围内并且由所附权利要求保护。

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