背景去除的方法以及移动设备与流程

文档序号:32870747发布日期:2023-01-07 03:42阅读:27来源:国知局
背景去除的方法以及移动设备与流程
背景去除的方法以及移动设备
1.本技术是申请日为2016年12月19日,申请号为201680077247.0,发明名称为“背景去除”的发明专利申请的分案申请。
2.相关申请的交叉引用
3.本技术要求于2015年12月30日提交的、标题为“background removal(背景去除)”的美国实用专利申请第14/985,108号的优先权和权益,该美国实用专利申请以其全部内容并入本文。
技术领域
4.本文描述的一些实施例总体涉及背景去除。


背景技术:

5.除非本文另外指出,否则本文所述的材料不是本技术权利要求的现有技术,并且不应认为包含在背景技术部分中的内容就是现有技术。
6.通常可以在图像上执行背景去除以去除或以其他方式隐藏图像中与背景相关联的一部分。图像的剩余部分或其他未隐藏的部分可以与前景对象相关联。在一些情况下,可以对在市场上待售的产品的图像执行背景去除。
7.本文要求保护的主题不限于解决任何缺点或仅在诸如上述那些环境中操作的实施例。相反,提供此背景仅用于说明可实施本文所述的一些实施例的一个技术领域。


技术实现要素:

8.提供本发明内容是为了以简化的形式介绍将在以下详细说明中进一步描述的一些概念。本发明内容并非旨在确定所要求保护的主题的关键特征或必要特征,也不旨在用作确定所要求保护的主题的范围的辅助手段。
9.本文描述的一些示例实施例总体上涉及背景去除。
10.在示例实施例中,显示所拍摄场景的一部分的方法可以包括在移动设备处以视觉方式拍摄场景。可以在移动设备处识别与所拍摄场景的前景对象相关联的在所拍摄场景中的区域。移动设备可以实时显示包括所拍摄图像的前景部分的所显示场景,该前景部分与被识别为与所拍摄场景的前景对象相关联的区域相关联。所显示场景可以进一步包括与所拍摄图像的背景部分不同的背景,所拍摄图像的背景部分不与被识别为与所拍摄场景的前景对象相关联的区域相关联。所显示场景可以显示单独的背景去除过程的预期结果。
11.本发明的其他特征和优点将在下面的描述中阐述,并且部分地将通过该描述而变得明晰,或者可以通过本发明的实施而了解。本发明的特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现和获得。从以下描述和所附权利要求书,本发明的这些和其他特征将变得更加完全明晰,或者可以通过如下所述的本发明的实施而了解。
附图说明
12.为了进一步阐明本发明的上述和其他优点以及特征,将参照在附图中示出的本发明的具体实施例来对本发明进行更具体的描述。应意识到的是,这些附图仅描绘了本发明的典型实施例,因此不应认为是对其范围的限制。将通过使用附图以更多的特定性和细节来描述和解释本发明,在附图中:
13.图1是背景去除系统的图示;
14.图2是背景去除的示例方法的流程图;
15.图3示出简化示例的所拍摄场景;
16.图4示出cielab颜色空间中的简化示例直方图;
17.图5图示简化的示例像素映射图;
18.图6示出简化的示例边缘映射图;
19.图7图示简化的示例前景边缘映射图;
20.图8示出简化的示例前景区域映射图;
21.图9示出简化的示例显示;以及
22.图10是完全根据本公开中描述的至少一个实施例布置的另一示例性背景去除方法的流程图。
具体实施方式
23.在一些情况下,在线市场可以采用背景去除系统来从卖家希望通过在线市场销售的对象的图像中去除背景图像数据。背景去除系统可以包括服务器,该服务器从卖家接收原始图像并且经由在服务器处的各种背景去除技术来执行背景去除以产生经处理的图像。经处理的图像然后可以由卖家批准或拒绝和/或与在线市场上的刊登项结合使用。
24.在某些情况下,卖家可以拍摄待售对象的照片,其中待售对象处于图片的前景中。在某些情况下,卖家可以使用移动设备(诸如手机或平板电脑)拍摄照片。然后卖家可以将对象的原始图像发送到服务器,以对原始图像执行背景去除处理。原始图像可以包括对象的前景图像和背景图像。在一些配置中,背景去除服务器可以尝试识别与原始图像中的对象的前景图像相关联的图像数据,并且从原始图像中去除其他图像数据以生成经处理的图像,该经处理的图像包括背景去除服务器识别为与前景对象相关联的图像数据。
25.在某些情况下,经处理的图像以某种方式对于卖家、在线市场和/或潜在的买家而言可能是不期望的。例如,背景去除服务器可能错误地将背景图像的部分识别为与对象的前景图像相关联,和/或可能错误地将对象的前景图像的部分识别为与背景相关联。结果,经处理的图像可能包括背景的部分和/或可能省略待售物品(例如,对象的前景图像)的部分。不成功的背景去除可能是原始图像的多种问题的结果,诸如背景包括与前景对象中所包括的颜色类似的颜色、横跨前景对象和/或背景的阴影、总体照明条件、可能被识别为与前景对象相关联的背景特征等。
26.为了减少在线市场上的刊登项中使用的不期望图像的数量,背景去除服务器可以将经处理的图像或经处理的图像的一些表示发送回卖家以供批准,然后将经处理的图像与卖家的刊登项相关联。卖家可以审查经处理的图像,并且如果经处理的图像可接受,则可以批准该图像以用于在线市场。如果经处理的图像不可接受,则卖家可以在改变的条件下拍
摄对象的另一张照片,以尝试纠正由背景去除服务器遇到的问题并产生可接受的图像。
27.然而,在很多情况下,卖家可能在拍摄照片和接收经处理的图像以进行审查之间经历延迟。该延迟可能受多种因素的影响,包括从卖家的移动设备传送图像数据到背景去除服务器所花费的时间长度、在背景去除服务器处产生经处理的图像所花费的时间长度、将经处理的图像从背景去除服务器传送到卖家的移动设备所花费的时间长度等。由卖家经历的延迟可能会使卖家受挫,特别是在卖家多次尝试拍摄原始图像以产生合适的经处理图像的情况下。
28.受挫的卖家可能没有充分利用背景去除服务器。例如,受挫的卖家可能会选择批准具有明显错误的经处理的图像并而不是花时间拍摄另一张照片。备选地,受挫的卖家可能完全避免使用背景去除服务器,而是选择使用留有背景的原始图像和/或类似对象的图像来代替提供待售的实际对象的图像。
29.如果未充分利用背景去除服务器,则在线市场和/或卖家可能无法充分体验通过使用背景去除服务器可能获得的优势。
30.此外,处理资源、带宽资源和其他资源可能被用于不成功的背景去除尝试。因此,例如,由背景去除服务器进行的不成功的背景去除尝试可能不必要地占用处理资源或带宽资源,这可能导致网络吞吐量和/或背景去除服务器的有用输出的损失。
31.一些实施例可以鼓励背景去除的利用和/或背景去除资源的有效利用。一些实施例可以利用用户的现有技能和例程,例如,定位移动设备以拍摄照片,并使用来自照相机预览的即时反馈来进行拍摄构图,以用于背景去除过程。例如,在启用背景去除功能的情况下,用户可以选择性地定位他们的移动设备并且检查相机预览以进行拍摄构图而有助于令人满意的背景去除。背景去除可由移动设备基本上实时地执行。例如,拍摄图像和显示具有在相机上执行的背景去除处理的图像预览之间的滞后时间可能小于100毫秒(ms)。备选地,滞后可能是100毫秒或更长。因此,一些实施例可以将背景去除整合到图片合成处理中。
32.相对于在服务器或其他非移动计算机上执行的背景去除过程,在移动设备上执行背景去除可能导致牺牲。换言之,相对于可以在高性能服务器上实现的最先进的背景去除算法,一些实施例可以利用可在移动设备上以相对较小滞后执行的仅仅可接受的背景去除过程。无论背景去除过程中的牺牲如何,相对于后处理背景去除,将背景去除整合到图片合成活动中可以在较短时间内产生更好的结果。
33.图1是背景去除系统100的图示。系统100可以减少由其他背景去除系统经历的问题。例如,系统100可以允许卖家或其他用户在将任何图像发送到背景去除器114之前识别背景去除器114可以成功处理的图像。结果,卖家可以产生适合用于在线市场117的刊登项116中的合适的经处理的图像120,而不会经历与将多个原始图像发送到背景去除器114和审查多个潜在经处理的图像相关联的延迟。有利的是,系统100对于卖家使用而言不那么令人受挫,并且可导致背景去除的相对更广泛的采用而潜在地有益于卖家和/或在线市场117。
34.系统100可以包括移动设备102。系统100可以用于在图像被发送到背景去除器114之前经由移动设备102向卖家或其他用户提供视觉反馈,以表明背景去除器114从特定场景101的原始图像中成功去除背景图像数据的可能性。
35.在一些实施例中,系统100可以由使用在线市场117来销售商品的卖家使用。系统
100可以允许卖家在通过刊登项116于在线市场117上提供所出售对象的过程中节省时间和/或节省数据传输资源。备选地或另外地,系统100可以改善在刊登项116中所使用的图像的质量,这可以增加卖家对在线市场117的满意度、买家对在线市场117的满意度、对在线市场117的公众感知度等。
36.移动设备102包括显示器103和一个或多个相机,诸如前置相机105和/或后置相机。移动设备102的相机可以用于拍摄包括前景对象104和背景106的场景101。在一些照明条件下,场景可以包括前景对象104的阴影。如本文所使用的那样,对场景101进行拍摄包括移动设备102经由移动设备102的相机生成场景101的图像数据的任何方式。例如,移动设备102可以通过在相机被激活的情况下将相机指向场景101来拍摄场景101。备选地或附加地,移动设备102可以通过将所拍摄场景转换为图像数据并将图像数据存储在移动设备102的存储器中来拍摄场景101。
37.移动设备102可以包括中央处理单元(cpu)121、图形处理单元(gpu)122以及耦联到cpu 121和gpu 122的非暂时性存储介质123。存储介质123可以包括存储在其上的指令,所述指令当由cpu 121和/或gpu 122执行时可以使得移动设备102执行本文所述的操作、方法和/或过程。
38.在一些实施例中,显示器103可以用作实时地将场景101显示为估计图像112的取景器,例如以类似于所谓的增强现实的方式进行显示。备选地或另外地,移动设备102可以拍摄场景101的初步图像并且可以基于初步图像生成估计图像112。备选地或附加地,移动设备102可以基于卖家已经拍摄的图像数据来生成估计图像112,以潜在地将其作为原始图像发送到背景去除器114。
39.估计图像112可近似地反映在各种条件下背景去除器114已成功地将背景106从场景101去除并将场景101中的前景对象104留下或反映其可能性。例如,移动设备102可以执行背景去除算法的子集,背景去除器114使用背景去除算法来从原始图像中去除背景以创建经处理的图像120。因此,估计图像112可以提供关于场景101的条件是否有助于由场景去除器114进行背景去除的反馈。例如,如果背景去除器114将不能去除背景106的一部分和/或将去除前景对象104的一部分,则估计图像112可能包含相同的错误。
40.在一些情况下,系统100可以允许用户在将移动设备102的相机指向场景101的同时将移动设备102移动到不同的位置和/或取向,以改变场景101的照明条件等以找到令人满意的有利于由背景去除器114进行去除背景的一组条件。
41.在一些实施例中,由移动设备102执行的背景去除算法在计算上可以比背景去除器114的背景去除算法要求低。结果,由移动设备102执行的背景去除算法可以适当地由移动设备102上可用的处理预算来执行。例如,由移动设备102执行的背景去除算法可以包括由背景去除器114执行的背景去除算法的近似。备选地或另外地,由移动设备102执行的背景去除算法102与背景去除器114的背景去除算法相比可以包括更少的计算周期。在一些实施例中,可降低估计图像112的图像质量以有助于利用移动设备102可用的处理资源以合适的速率去除背景。但是,发送到背景去除器114的原始图像的质量可以不降低。在一些实施例中,由移动设备102执行的背景去除算法相对于背景去除器114的背景去除算法而言可以是次优的。
42.在一些实施例中,背景去除器114可以将图册阴影(catalog shadow)118插入到经
处理的图像120中。图册阴影118可以改善刊登项116、前景对象104和/或经处理的图像120的外观以适于潜在买家。可选地,移动设备102可以在估计图像112中包括估计的阴影110。类似于本文所述的背景去除,估计的阴影110可以反映背景去除器114在添加图册阴影118中可能具有的成功的近似情况。
43.在一些实施例中,移动设备102可以按改善成功背景去除的可能性的方式来提供用于准备场景101的提示。例如,移动设备102可以提供替代的背景颜色和/或背景类型、替代的照明条件、替代的相机角度等或其任何组合。在一些情况下,提示可以特定于前景对象104的外观、颜色和/或形状。
44.图2是背景去除的示例方法200的流程图。在一些实施例中,方法200可以由移动设备执行,诸如由图1所示的移动设备102执行。
45.方法200可以在框202处开始于以视觉方式拍摄场景。场景可以包括前景,诸如用户打算通过在线市场销售的一个或多个对象。另外,场景可以包括背景,诸如一个或多个前景对象所处的环境。通过示例的方式,场景、前景对象和背景可以分别与图1的场景101、前景对象104和背景106相对应。以视觉方式拍摄场景可以包括在相机已激活时将相机指向场景。例如,拍摄场景可以包括以与准备拍摄照片的方式类似的方式将激活的相机指向场景。备选地或另外地,以视觉方式拍摄场景可以包括在移动设备处存储表示场景的图像数据。
46.图3示出简化示例的所拍摄场景300,其可以大致对应于图2的方法200的框202的所拍摄场景。所拍摄场景300可以包括由一行或多行像素组成的边界区域302。所拍摄场景300的用户通常可尝试拍摄前景对象104远离所拍摄场景300的边界区域302的场景,以确保整个前景对象104被拍摄在场景内。因此,例如,边界区域302中的像素可以与背景106相关联。
47.参照图2,方法200可以在框204处继续以在所拍摄场景的边界处生成颜色的颜色直方图。所拍摄场景的边界通常可对应于图3的所拍摄场景300的边界区域302的颜色。在一些实施例中,框204的部分或全部可以由图形处理单元(gpu)(诸如图1的gpu 122)或者通过另一个单指令多数据(simd)处理器执行。
48.颜色直方图可以针对沿着或相对接近所拍摄场景的最外边缘的一个或多个像素(例如,像素行和/或列)来生成。所拍摄场景的边界相对不太可能包括前景对象的一部分,并且因此可能包括主要与背景相关联的颜色。在生成颜色直方图时考虑的边界像素的数量可以是大约100,000个像素的量级。在一些实施例中,所考虑的边界像素的数量可以大于100,000或小于100,000。
49.在一些实施例中,颜色直方图可以在cie l*a*b*(cielab)颜色空间中生成。因此,例如,如果像素与不同的颜色空间(诸如红绿蓝(rgb)颜色模型)相关联,则要用于颜色直方图的像素可以被转换到cielab颜色空间。
50.在一些实施例中,颜色直方图可以包括桶(bucket)的三维阵列。例如,颜色直方图可以包括亮度(l*)维度、绿-品红(a*)维度和蓝-黄(b*)维度的桶阵列。例如,颜色直方图可以包括具有与l*的三个范围的桶值相关联的a*和b*维度中的32
×
32阵列的3
×
32
×
32的桶阵列。因此,例如,32
×
32的桶阵列(例如,每个桶可以在a*和b*维度上跨越6.25
×
6.25范围)可以与l*的低范围(诸如0≤l*《33)、l*的中间范围(例如33≤l*《66)和l*的高范围(例如66≤l*≤100)的每一个相关联。备选地,可以使用不同大小的桶、不同数量的桶和/或不
同范围的桶。
51.通过示例的方式,所考虑的每个边界像素的颜色可以落入3072个桶中的一个内。因此,例如,在使用3
×
32
×
32阵列的情况下,颜色直方图可以提供具有3072个近似颜色之一的像素的计数。
52.图4示出cielab颜色空间中的简化示例直方图400,其总体上可以对应于图2的框204的直方图。直方图400可以包括被分成桶408的3
×
10
×
10阵列内的l*402、a*404和b*406的颜色空间。尽管为了清楚而示出3
×
10
×
10的阵列,但是直方图400的颜色空间可以类似地被分成更小的桶408,每个更小的桶408覆盖颜色空间的相对较小的部分。例如,直方图400可以包括桶408的3
×
32
×
32阵列或一些其他大小的桶阵列。示例性桶值410可表示与相应桶408相关联的位于颜色空间内的具有一种颜色的像素的计数。
53.参考图2,方法200可以继续进行到框206以识别所考虑的边界像素的主色。在一些实施例中,框206的部分或全部可以由gpu(诸如图1的gpu 122)、另一单指令多数据(simd)处理器、cpu(诸如图1的cpu 121)或其他处理器来执行。例如,在框204由gpu执行的情况下,框206可以由gpu执行以促进运算的流水线操作。对于该框和其他框而言,从gpu工作转换到cpu工作在时间和/或处理资源方面可能相对昂贵,因为cpu可能被指令在cpu任务开始之前等待gpu完成其任务。在一些实施例中,gpu工作和cpu工作之间的转换次数可以减少,特别是在转换成本可能大于通过转换实现的成本节约的情况下。
54.在一些实施例中,可以识别直方图中的最大桶。另外,也可以识别与最大桶相邻的具有高于阈值的值的桶。在一些实施例中,所识别的桶可以被归零或以其他方式被忽略,并且可以重复识别最大桶的步骤并可能地重复识别高于阈值的相邻桶的步骤,直到已经考虑了所考虑像素的阈值数量。例如,桶可以被识别并归零,直到已经考虑了所考虑的像素的99%。
55.因此,例如,可以粗略地识别出背景颜色。粗略识别的背景颜色可以包括所识别的桶和/或高于阈值的邻近桶。
56.参考图4,通过示例的方式,方法200的框206可以识别与值99相关联的桶并且可以将桶的值归零。另外,如果阈值等于或小于57,则与值88、87、86、83、81、79、71、68和58相关联的桶也可以被归零。
57.参照图2,方法200可以继续进行至框208以识别粗略识别的背景颜色的聚类中心。在一些实施例中,框208的部分或全部可以由cpu(诸如图1的cpu 121)或其他处理器执行。
58.在一些实施例中,可以通过执行三维聚类分析来识别聚类中心。框206的直方图评估可以识别包含多个桶的一组或多组相对相似的背景颜色。聚类分析可用于识别每组相对相似背景颜色的聚类中心。在一些实施例中,可以经由k均值聚类分析的单次迭代来识别聚类中心。在识别聚类中心时,可以不必识别实际的聚类。因此,例如,可以忽略用于识别聚类的步骤以找到可能聚类的中心。
59.通过示例的方式,可以识别1个至4个聚类中心,其可以近似对应于所拍摄图像的背景中的主色。备选地,可以识别5个或更多个聚类中心。所识别的聚类中心的数量可能至少部分取决于所拍摄图像的组成。例如,如果所拍摄图像在背景中包括单个相对纯色,则可能识别出一个聚类中心。备选地,如果所拍摄图像包括多种颜色和/或图案,则可能识别出多于一个的聚类中心。
60.方法200可以在框210处继续以生成像素映射图。像素映射图可以部分地基于框208的识别的聚类中心。在一些实施例中,框210的部分或全部可以由gpu(诸如图1的gpu 122)或由另一simd处理器执行。
61.像素映射图的每个像素的亮度可以基于所拍摄图像中的像素颜色与最近的聚类中心之间的颜色空间单元中的距离。因此,例如,具有相对接近所识别的聚类中心的颜色的所拍摄图像的像素在像素映射图中可以相对接近黑色。此外,例如,具有相对远离所识别的颜色中心的颜色的在所拍摄图像中的像素在像素映射图中可以相对较亮。
62.因此,例如,像素映射图可以表示与所拍摄场景的不同部分的“非背景”质量相关联的纹理。通过示例的方式,在所拍摄场景包括单个背景颜色的情况下,像素映射图可以指示在颜色空间中每个像素的颜色与背景颜色的接近程度。
63.可选地,框210可以促进一些阴影去除。例如,在一些实施例中,当像素的颜色具有与聚类中心相似的色度但是比聚类中心更暗时,在确定所拍摄场景的像素的颜色与聚类中心之间的距离时可以忽略亮度差异。换言之,对于识别的每个背景颜色,如果所拍摄场景的像素具有与背景颜色相似的色度并且比背景颜色更暗,则可以将该像素假定为阴影并且该像素的相对黑暗度可以在确定其与背景颜色的距离时被忽略。因此,例如,该距离可以为零或接近零,导致像素映射图上的为黑色或接近黑色的像素。
64.图5示出简化的示例像素映射图500,其可以大体上对应于图2的方法200的框210的像素映射图。像素映射图500可以包括与图3的所拍摄场景300的背景106相关联的暗区502。另外,像素映射图500可以包括与图3的所拍摄场景300的前景对象104相关联的亮区504。可以相对于所拍摄场景300的背景106中的颜色差异来抑制暗区502的特征的颜色差异。此外,也可以相对于所拍摄场景300的前景对象104中的颜色差异来抑制亮区504的特征的颜色差异。
65.参照图2,方法200可以在框212处继续以基于像素映射图产生边缘映射图。在一些实施例中,框212的部分或全部可以由gpu(诸如图1的gpu 122)或由另一个simd处理器来执行。
66.可以通过对在框210中产生的像素映射图执行边缘检测来产生边缘映射图。在一些实施例中,框212可以包括在框210中产生的像素映射图上运行索贝尔边缘检测滤波器。边缘映射图可以被偏置以突出在背景颜色和非背景颜色之间的过渡。例如,两个背景颜色之间的过渡可能不会明显地表现出来,因为背景颜色在像素映射图中可能相对较暗。因此,例如,边缘检测可能表现出相对较低的响应。此外,可以抑制不同非背景颜色之间的边缘检测,因为在像素映射图中这些像素可能相对较亮。背景颜色和非背景颜色之间的过渡的边缘检测可以不被抑制和/或可以被增强,因为背景可能相对较暗并且非背景可能相对较亮。
67.可选地,方法200可继续至边缘提炼步骤,以对从框212产生的像素映射图或从框214产生的边缘映射图执行卷积运算。卷积运算可以计算像素核的平均值和标准偏差,像素核诸如以目标像素为中心的5
×
5像素核。平均值和标准偏差可以与目标像素相关联。例如,平均值和标准偏差值可以通过像素的红色通道和绿色通道与目标像素相关联。因此,例如,由于平均值和标准偏差可能相对较低,由与背景颜色相关联的像素围绕的具有与背景颜色不密切相关的颜色的孤立像素将被抑制。采用标准偏差值可以抵消抑制效果,所述抑制效果可能通过前景对象的边缘附近的平均值而经历。通过示例的方式,边缘提炼步骤可以产
生在前景对象内部处呈红色并在前景对象的外边缘处呈绿色的图像。边缘提炼步骤可以不易受到边缘检测失败的影响,特别是当边缘稍微模糊时。在一些实施例中,边缘提炼步骤的一部分或全部可以由gpu(诸如图1的gpu 122)或由另一个simd处理器来执行。
68.可选地,方法200可以替代地继续至边缘细化步骤以在框212中产生的边缘映射图上执行边缘细化。在一些实施例中,边缘细化步骤的部分或全部可以由gpu(诸如图1的gpu 122)或由另一simd处理器来执行。
69.边缘细化可以包括识别相对模糊的边缘并且提炼结果以产生相对较锐利的边缘。在一些实施例中,边缘细化可以包括寻找跨越多个像素的边缘并且将结果合并到表现出最大响应的像素中。通过示例的方式,一行像素可以包括与边缘映射图的边缘相关联的以下值。
70.0 0 0 1 35 17 5 2 0
71.边缘细化可以包括声明最高值(“35”像素)与真实边缘相关联,并且可以将该行像素的边缘值调整为以下值。
72.0 0 0 0 60 0 0 0 0
73.例如,围绕最高值像素(“35”像素)的像素值可以被加到最高值像素的值以得出为60的新值(例如,35+17+5+2+1),并且归零。备选地,可以将少于所有周围像素的值添加到最高值像素。例如,最高值像素可以被增加到53(例如,1+35+17),并且所有其他像素可以被归零或者只有被加到最高值像素的值的像素可以被归零。
74.在一些实施例中,可以计算像素值的导数并将其用于边缘细化处理。然而,计算资源预算可能鼓励使用更直接的边缘细化,如上所述。
75.可选地,方法200可以备选地或附加地继续至边缘抑制步骤以执行伪边缘抑制。在一些实施例中,边缘抑制步骤的部分或全部可以由gpu(诸如图1的gpu 122)或由另一simd处理器来执行。
76.伪边缘抑制可以部分地用于拒绝在像素映射图中在孤立“凸起”周围形成的边缘。通过示例的方式,一行像素可以包括与边缘映射图的边缘相关联的以下值。
77.0 0-3-18 25 1 0 0
78.正值可以指示像素映射图左侧的大数目,而负数可以指示像素映射图右侧的大数目。换言之,非零值可指示像素看起来是边缘,而负值指示边缘的前景侧看起来在右侧,而正值指示边缘的前景侧看起来在左侧。在上面提供的示例像素行中,显现有一个4像素宽的对象。实际上,这样的对象不太可能属于前景对象。相反,该对象通常可能是一片灰尘、背景中两个颜色明显不同的区域之间的过渡,或者其他一些不期望的伪影。因此,例如,可以考虑该行上方和下方的像素值以确定边缘是否是一个像素宽的线、拐角等,并且如果边缘看起来是假的,例如不属于前景对象,则值可以变为零和/或边缘可以被以其他方式抑制。
79.边缘提炼步骤、边缘细化步骤和/或边缘抑制步骤可以产生边缘映射图,该边缘映射图描述的边缘具有比经历一个或多个步骤更好的保真度。
80.图6示出简化的示例性边缘映射图600,其可以大体对应于从框212产生的边缘映射图、边缘提炼步骤、边缘细化步骤或边缘抑制步骤,这取决于是否执行边缘提炼步骤、边缘细化步骤和边缘抑制步骤中的一个或多个。边缘映射图600可以包括映射边缘602。在一些实施例中,边缘映射图600可以叠加到像素映射图500和/或可以包括像素映射图500和映
射边缘602的组合。
81.参照图2,在一些实施例中,方法200可以继续到框214以定义前景边缘。在一些实施例中,框214的部分或全部可以由cpu(诸如图1的cpu121)或另一个处理器执行。
82.可以基于从框212产生的边缘映射图、边缘细化步骤或边缘抑制步骤来定义前景边缘,这取决于是否执行边缘细化步骤和边缘抑制步骤中的一者或两者或两者都不执行。在一些实施例中,可以部分地通过考虑边缘映射图的每条线来定义前景边缘、确定两个最大边缘响应值,并且将它们定义为前景的右边缘和左边缘或者上边缘和下边缘。
83.在一些实施例中,前景边缘可以经由迟滞滤波器来定义,该迟滞滤波器可以包括多像素回扫特征。可选地,迟滞滤波器和/或其他边缘寻找滤波器可以至少部分地基于来自框212的亮度值来应用阈值。例如,方法200可以考虑边缘亮度值并且可以生成关于比各种潜在阈值更亮的像素数量的信息,所述阈值可用于定义适于前景边缘滤波器的上阈值、下阈值和/或其他阈值。
84.图7示出包括前景边缘702的示例性前景边缘映射图700,前景边缘702总体上可对应于从框214得到的前景边缘。在一些实施例中,前景边缘映射图600可叠加到像素映射图500和/或边缘映射图602。备选地,前景边缘映射图600可以包括像素映射图500、映射边缘602和/或前景边缘702的组合。
85.参照图2,在一些实施例中,方法200可以继续至框216以定义前景对象区域。前景对象区域可以基于在框214中定义的前景边缘。在一些实施例中,框216的部分或全部可以由gpu(诸如图1的gpu 122)或由另一个simd处理器来执行。前景对象区域可被定义为由在框214中定义的前景边缘所包围的区域。
86.图8示出了包括前景对象区域802的前景区域映射图800,前景对象区域802可以对应于从框216得到的前景对象区域。
87.参照图2,在一些实施例中,方法200可以继续到框218以显示前景对象。在一些实施例中,框218的部分或全部可以由gpu(诸如图1的gpu122)和显示器(诸如图1的显示器103)来执行。
88.显示前景对象可以基于在框216中定义的前景对象区域。与前景对象区域相关联的在所拍摄场景中的像素可以被传递到显示器。
89.在一些实施例中,可以不显示与前景对象区域不相关的在所拍摄场景中的像素。例如,与前景对象不相关的在所拍摄场景中的像素可以被显示为白色像素或者一些其他颜色的像素和/或像素图案。备选地或另外地,与前景对象不相关的所拍摄场景的像素可以用来自另一图像(诸如工作室空白图像)的像素替换。工作室空白图像可包括在没有前景对象的情况下所拍摄的产品背景的高质量图像。
90.可选地,可以显示不与前景对象相关联的像素的一部分,使得前景对象看起来包括位于前景对象的图像下方并具有比所显示背景颜色更深的颜色的形状,在此描述为图册阴影。在一些实施例中,图册阴影可以鼓励通过在线市场等提供的不同产品之间的类似比例、形状和/或彩色阴影。
91.图9示出前景对象104、替换背景902和图册阴影904的示例显示900,其可对应于从框218产生的显示和添加图册阴影的步骤。
92.图10是背景去除的另一个示例方法1000的流程图。在一些实施例中,方法1000可
以由移动设备(诸如图1的移动设备102)执行。方法1000可以包括框202至212,其大体上可以对应于图2的框202至212。
93.在一些实施例中,方法1000可以从框212继续至框1002以基于边缘映射图定义多边形映射图。在一些实施例中,框1002的部分或全部可以由gpu(诸如图1的gpu 122)或cpu(诸如图1的cpu 121)或另一个处理器来执行。多边形映射图可以包括描述前景对象边界的多边形结构。换言之,多边形映射图可以尝试将被识别为前景对象的可能外边缘的像素的集合转变成精确描述前景对象的边界的闭合多边形。因此,例如,多边形映射图可以描述前景对象区域,其可以包括多个离散区域。在一些实施例中,可以基于可用的轮廓寻找算法来生成多边形映射图。
94.在一些实施例中,方法200可以继续至框1004以评估背景去除的成功。例如,可以分析前景对象以确定背景去除是否导致前景对象具有在所拍摄图像的阈值范围内的大小。例如,可以分析前景对象以确定它是否填充所拍摄图像的5%到80%,或者所拍摄图像的一些其他部分。如果前景对象的相对大小落在阈值范围之外,则可认为背景去除是不成功的。备选地或另外地,可以分析前景对象以确定它是否相对于所拍摄图像大致居中。如果前景对象没有在阈值边界内居中,则可以认为背景去除是不成功的。备选地或附加地,可以分析前景对象以确定它是否看起来与所拍摄图像的其余部分在视觉上不同。如果前景对象被确定为与所拍摄图像的其余部分在视觉上不同达到一定的阈值余量,则可以认为背景去除是不成功的。在一些实施例中,确定前景对象的大小和/或中心可以至少部分地基于从框1002得到的像素映射图的多边形映射图。
95.在一些实施例中,方法1000可以继续至框1006以显示前景对象。在一些实施例中,框1006的部分或全部可以由gpu(诸如图1的gpu 122)以及显示器(诸如图1的显示器103)来执行。
96.显示前景对象可以基于与框1002中定义的多边形映射图的区域相对应的前景对象区域。与前景对象区域相关联的在所拍摄场景中的像素可以被传递到显示器。
97.在一些实施例中,可以不显示与前景对象区域不相关的在所拍摄场景中的像素。例如,与前景对象不相关的在所拍摄场景中的像素可以被显示为白色像素或者一些其他颜色的像素和/或像素图案。备选地或附加地,与前景对象不相关的在所拍摄场景中的像素可以用来自另一图像(例如工作室空白图像)的像素替换。工作室空白图像可包含在没有前景对象的情况下拍摄的产品背景的高质量图像。
98.可选地,图册阴影可以被包括在前景对象下方。
99.在一些实施例中,可以重复图2的方法200和/或图10的方法1000的一些或全部框,以在显示器处提供15帧每秒(fps)的背景去除预览。备选地,可以重复方法200和/或方法1000以提供大于15fps或小于15fps的预览。在一些实施例中,相关预览的fps可以至少部分地基于硬件能力,诸如执行方法200和/或方法1000的移动设备的cpu和/或gpu可用的处理资源。
100.本文描述的实施例可以包括使用包括各种计算机硬件或软件模块的专用或通用计算机,如以下更详细论述的那样。
101.本文描述的实施例可以使用用于携载或在其上存储计算机可执行指令或数据结构的计算机可读介质来实施。这样的计算机可读介质可以是可以由通用或专用计算机访问
的任何可用介质。通过示例而非限制性的方式,这样的计算机可读介质可以包括有形的计算机可读存储介质,其包括随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、压缩盘只读存储器(cd-rom)或其他光盘存储器、磁盘存储器或其他磁存储设备,或可用于以计算机可执行指令或数据结构的形式携载或存储期望的程序代码并且可由通用或专用计算机访问的任何其他存储介质。以上的组合也可以被包括在计算机可读介质的范围内。
102.计算机可执行指令例如包括使通用计算机、专用计算机或专用处理设备执行特定功能或功能组的指令和数据。虽然已经用特定于结构特征和/或方法动作的语言描述了本发明的主题,但是应当理解的是,所附权利要求中限定的主题不一定限于上述特定特征或动作。相反,上述具体特征和动作是作为实施权利要求的示例形式公开的。
103.如本文所使用的那样,术语“模块”或“组件”可以指代在计算系统上执行的软件对象或例程。本文描述的不同组件、模块、引擎和服务可以被实施为在计算系统上执行的对象或过程(例如,作为单独的线程)。尽管本文描述的系统和方法优选地以软件来实施,但是以硬件或软件和硬件的组合来实施也是可能的并且是可以预期的。在本文中,“计算实体”可以是如本文先前定义的任何计算系统,或者在计算系统上运行的任何模块或模块组合。
104.本发明可以在不脱离其精神或基本特征的情况下以其他具体形式来实施。所述的实施例在所有方面仅被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前面的描述来指示。在权利要求的等同物的含义和范围内的所有变化都将被包括在其范围内。
105.此外,本发明还包括以下实施方式。
106.(1).一种显示所拍摄场景的一部分的方法,所述方法包括:
107.在移动设备处以视觉方式拍摄场景;
108.识别与所拍摄场景的前景对象相关联的在所拍摄场景中的区域;以及
109.在移动设备上实时显示所显示场景,所显示场景包括:
110.所拍摄图像的前景部分,该前景部分与被识别为与所拍摄场景的前景对象相关联的区域相关联;以及
111.与所拍摄图像的背景部分不同的背景,该背景部分不与被识别为与所拍摄场景的前景对象相关联的区域相关联;
112.其中在移动设备处的所显示场景展示单独的背景去除过程的预期结果。
113.(2).根据(1)所述的方法,其特征在于,所显示场景以至少15帧每秒(fps)的速率刷新。
114.(3).根据(1)所述的方法,其特征在于,所述单独的背景去除过程由与在线市场相关联的背景去除器执行。
115.(4).根据(1)所述的方法,其特征在于,处理所拍摄场景包括生成位于所拍摄场景的边界处的颜色的颜色直方图。
116.(5).根据(4)所述的方法,其特征在于,所述颜色直方图包括cie l*a*b*(cielab)颜色空间中的桶的三维阵列。
117.(6).根据(1)所述的方法,其特征在于,处理所拍摄场景包括识别所拍摄场景的边界的主色。
118.(7).根据(6)所述的方法,其特征在于,识别所拍摄场景的主色包括识别与所拍摄场景的主色相关联的在颜色直方图中的桶。
119.(8).根据(1)所述的方法,其特征在于,处理所拍摄场景包括识别所拍摄场景的边界的主色的聚类中心。
120.(9).根据(8)所述的方法,其特征在于,所述聚类中心至少部分地基于被识别为与所拍摄场景的主色相关联的在颜色直方图中的桶。
121.(10).根据(1)所述的方法,其特征在于,处理所拍摄场景包括产生所拍摄场景的像素映射图,所述像素映射图中的每一像素具有颜色值,该颜色值至少部分地基于所拍摄场景的相关联像素的像素颜色与所拍摄场景的边界的主色的聚类中心之间的颜色空间距离。
122.(11).根据(10)所述的方法,其特征在于,处理所拍摄场景进一步包括产生所述像素映射图的边缘映射图。
123.(12).根据(11)所述的方法,其特征在于,处理所拍摄场景进一步包括至少部分地基于所述边缘映射图来定义多边形映射图。
124.(13).根据(12)所述的方法,其特征在于,处理所拍摄场景进一步包括至少部分地基于所述多边形映射图来评估背景去除的成功。
125.(14).根据(1)所述的方法,其特征在于,显示所显示场景还包括显示图册阴影。
126.(15).一种在移动设备处定义和显示所拍摄场景的前景部分以展示单独背景去除过程的预期结果的方法,所述方法包括:
127.以视觉方式拍摄场景;
128.生成所拍摄场景的边界处的像素的颜色的颜色直方图;
129.通过颜色直方图识别所拍摄场景的边界处的像素的主色;
130.识别在所拍摄场景的边界处的像素的主色的聚类的一个或多个聚类中心;
131.生成所述主色的像素映射图,所述像素映射图的每个像素的颜色至少部分地基于所拍摄场景的相关联像素的颜色与最近聚类中心之间的颜色空间距离;
132.基于像素映射图生成边缘映射图;
133.至少部分地基于边缘映射图来定义前景区域;以及
134.在移动设备上实时地显示所显示场景,所显示场景包括:
135.所拍摄图像的前景部分,该前景部分与被识别为与所拍摄场景的前景相关联的区域相关联;以及
136.与所拍摄图像的背景部分不同的背景,该背景部分不与被识别为与所拍摄场景的前景相关联的区域相关联;
137.其中在移动设备处的所显示场景展示单独的背景去除过程的预期结果。
138.(16).根据(15)所述的方法,其特征在于,所述颜色直方图经由包括被分成多个桶的三维直方图的cie l*a*b*(cielab)颜色空间来实现。
139.(17).根据(16)所述的方法,其特征在于,识别所拍摄场景的边界处的像素的主色包括:
140.识别与直方图的最大桶相关联的颜色;
141.将所识别的桶归零;以及
142.重复识别与最大桶相关联的颜色的步骤和将所识别的桶归零的步骤,直到识别出所拍摄场景的边界处的像素的阈值部分的颜色。
143.(18).根据(16)所述的方法,其特征在于,识别所拍摄场景的边界处的像素的主色包括:
144.识别与直方图的最大桶相关联的颜色;
145.识别与具有阈值并且相邻于所述最大桶的一个或多个桶相关联的一种或多种颜色;
146.将所识别的桶归零;以及
147.重复识别与最大桶相关联的颜色的步骤和将所识别的桶归零的步骤,直到识别出所拍摄场景的边界处的像素的阈值部分的颜色。
148.(19).一种移动设备,包括:
149.配置成以视觉方式拍摄场景的相机;
150.多个处理器,其包括中央处理单元(cpu)和图形处理单元(gpu);
151.非暂时性计算机存储介质,其上存储有计算机指令,所述计算机指令能够由所述多个处理器中的一个或多个处理器执行以执行操作,所述操作包括:
152.生成所拍摄场景的边界处的像素的颜色的颜色直方图;
153.通过颜色直方图识别所拍摄场景的边界处的像素的主色;
154.识别所拍摄场景的边界处的像素的主色的聚类的一个或多个聚类中心;
155.生成所述主色的像素映射图,所述像素映射图的每个像素的颜色至少部分地基于所拍摄场景的相关联像素的颜色与最近聚类中心之间的颜色空间距离;
156.基于像素映射图生成边缘映射图;以及
157.至少部分地基于边缘映射图来定义前景区域;以及
158.显示器,其配置成实时地显示所显示场景,所显示场景包括:
159.所拍摄图像的前景部分,该前景部分与被识别为与所拍摄场景的前景相关联的区域相关联;以及
160.与所拍摄图像的背景部分不同的背景,该背景部分不与被识别为与所拍摄场景的前景相关联的区域相关联;
161.其中在移动设备处的所显示场景展示单独的背景去除过程的预期结果。
162.(20).根据(19)所述的移动设备,其特征在于:
163.生成颜色直方图是在gpu处执行的;
164.识别所拍摄场景的边界处的像素的主色是在gpu处执行的;
165.识别一个或多个聚类中心是在cpu处执行的;
166.生成像素映射图是在gpu处执行的;以及
167.生成边缘映射图是在gpu处执行的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1