CN109960453B - 根据被引导的用户会话移除和替换图像中的对象 - Google Patents
根据被引导的用户会话移除和替换图像中的对象 Download PDFInfo
- Publication number
- CN109960453B CN109960453B CN201811167294.1A CN201811167294A CN109960453B CN 109960453 B CN109960453 B CN 109960453B CN 201811167294 A CN201811167294 A CN 201811167294A CN 109960453 B CN109960453 B CN 109960453B
- Authority
- CN
- China
- Prior art keywords
- image
- user
- module
- session
- pixels
- 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
Links
- 239000000463 material Substances 0.000 claims abstract description 191
- 239000000945 filler Substances 0.000 claims abstract description 86
- 238000000034 method Methods 0.000 claims abstract description 73
- 239000002131 composite material Substances 0.000 claims abstract description 70
- 230000004044 response Effects 0.000 claims description 36
- 239000013598 vector Substances 0.000 claims description 18
- 239000000203 mixture Substances 0.000 claims description 10
- 238000012790 confirmation Methods 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000002194 synthesizing effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 27
- 238000013528 artificial neural network Methods 0.000 description 25
- 238000003860 storage Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 17
- 238000013329 compounding Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 16
- 241000282472 Canis lupus familiaris Species 0.000 description 14
- 241000699666 Mus <mouse, genus> Species 0.000 description 11
- 238000004891 communication Methods 0.000 description 11
- 238000012549 training Methods 0.000 description 10
- 244000025254 Cannabis sativa Species 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 238000005202 decontamination Methods 0.000 description 6
- 230000003588 decontaminative effect Effects 0.000 description 6
- 238000005286 illumination Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 230000000153 supplemental effect Effects 0.000 description 5
- 150000001875 compounds Chemical class 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 230000002708 enhancing effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000013518 transcription Methods 0.000 description 3
- 230000035897 transcription Effects 0.000 description 3
- 241001148659 Panicum dichotomiflorum Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 230000035755 proliferation Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001755 vocal effect Effects 0.000 description 2
- 241000271566 Aves Species 0.000 description 1
- 241000288673 Chiroptera Species 0.000 description 1
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 241000238631 Hexapoda Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
- G06F16/538—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
- G06F16/532—Query formulation, e.g. graphical querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90332—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20092—Interactive image processing based on input by user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
- G06V10/248—Aligning, centring, orientation detection or correction of the image by interactive preprocessing or interactive shape modelling, e.g. feature points assigned by a user
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/226—Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
- G10L2015/228—Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Acoustics & Sound (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Library & Information Science (AREA)
- Artificial Intelligence (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本文描述了用于引导用户会话以获取编辑询问,并且基于编辑询问来移除和替换图像中的对象的系统和技术。查明与编辑询问所指示的图像中的对象相对应的像素。处理编辑询问以确定其是否包括移除请求或者替换请求。构建搜索询问以获取图像(例如从库存图像数据库),该图像包括填充材料或者替换材料,以分别满足移除请求或者替换请求。从填充材料或者替换材料以及待编辑的图像生成复合图像。协调复合图像以移除编辑人工痕迹并且使图像看起来自然。用户界面展示图像,并且在被引导的用户会话期间接受多模式用户输入。
Description
背景技术
不论是独立相机(例如,数码单反相机)还是集成在计算设备中的相机(例如,包含在智能电话中),数码相机的激增已经导致许多用户图像的激增。很多时候,图像并不完美。例如,图像可能是新手拍摄的,因此构图不佳,或者诸如天气等环境可能会影响图像中的背景(例如,天空的颜色)。因此,用户可能希望编辑图像(例如用图像编辑应用程序)。由于编辑过程的复杂性,为了用图像编辑应用程序完成编辑任务并且产生外观自然的图像(例如,观察者无法区分图像的哪个位置发生过编辑),需要高超的技能水平以及大量努力。例如,仅仅是根据用另一个对象(例如来自另一图像的对象)来替换图像中的对象的请求,训练有素的专业人员(例如使用图像编辑应用程序的技术人员)就可能要花费数小时来产生单个图像。
由于图像编辑过程的复杂性,并且用户可以用各种语言和各种方言说出无限多种单词,大多数图像编辑应用程序要么不包括声音接口,要么能力有限,只能满足有限的语音命令。例如,Adobe的PixelTone应用程序可以接收来自用户的针对待编辑的图像的语音编辑询问,例如“让人更亮”,但PixelTone应用程序没有图像的语义知识,并且不参与用户会话。因此,在该示例中,在请求“让人更亮”之前,用户必须首先手动选择图像中的“人”,例如,用画笔工具画在人上,这大大限制了声音接口的有用性。因此,图像编辑应用程序不引导用户会话,而是仅接收有限的语音命令。
而且,图像编辑应用程序不接收多模式用户输入,包括用户会话期间的补充用户输入以及用户会话期间的语音输入。因此,具有声音接口的图像编辑应用程序仅限于图像编辑应用程序处理语音输入的有效性,而无法获得在用户会话期间其它形式的用户输入的益处。
发明内容
描述了引导用户会话的技术和系统,该用户会话包括针对待编辑的图像的编辑询问,并且提供满足编辑询问的多个被协调的图像。可以通过向用户广播询问,接收用户响应并且基于用户响应回应用户来引导会话。被引导的用户会话可以包括多模式输入。在一个示例中,结果在被引导的用户会话期间被展示给用户,并且多模式输入作为被引导的用户会话的一部分被接收(例如,确认对象选择的语音指令以及来自鼠标的指示符)。以此方式,图像可以被有效地提供给满足编辑询问的用户,同时在使用用户的真实数据时来指导用户如何使用编辑应用程序,而非使用利用存储数据的教程。
处理被引导的用户会话(例如,利用自然语言处理器),以确定被引导的用户会话指示移除请求还是指示替换请求。此外,从用户会话中识别对象,例如待移除的对象、待替换的对象、用来替换另一对象的对象,以及其组合等。查明与待移除或待替换对象相对应的待编辑的图像的像素,例如,利用计算机视觉处理器。在一个示例中,使用特定于对象的视觉模块,例如使用包括神经网络的天空视觉模块,该神经网络被训练为在满足替换请求“用多云天空替换沉闷天空”时识别天空。从库存图像数据库获取图像,库存图像数据库包括填充材料,以在对象被移除时填充洞,或者包括替换材料,以根据替换请求替换对象。基于指示移除请求或替换请求的被引导的用户会话,对象被移除并且在其位置添加填充材料,或者对象被替换材料所替换,以产生被协调的多个复合图像,以使得编辑显得自然。多个被协调的图像被展示在用户界面中。因此,基于被引导的用户会话,向用户呈现满足编辑询问的多个选项(例如,具有不同版本的填充材料或者替换材料的被协调的图像)。在一个示例中,一旦被引导的用户会话完成并获取待编辑的图像,多个图像将被自动呈现给用户而无需用户干预。在另一示例中,将中间结果展示给用户,并且在被引导的用户会话期间接收多模式输入。
本发明内容以简化形式介绍将在以下的具体实施方式中进一步描述的一些概念。因此,本发明内容并非旨在识别所要求保护的主题的必要特征,也非旨在用作确定所要求保护的主题范围的辅助手段。
附图说明
详细说明结合附图进行描述。在附图中,附图标记的最左侧数字标记附图标记首次出现的附图。在本说明及附图的不同实例中使用相同的附图标记可以表示相似或相同的项目。附图中示出的实体可以指示一个或多个实体,因此,在讨论中,实体的单数或复数形式可以互换地引用。
图1示出了示例实施方式中的数字媒体环境,其可以被运行为采用本文所描述的技术。
图2示出了根据本公开的一个或多个方面的与替换请求相对应的图像的示例流程图。
图3示出了根据本公开的一个或多个方面的与移除请求相对应的图像的示例流程图。
图4示出了根据本公开的一个或多个方面的可用于替换和移除图像中的对象的示例系统。
图5示出了根据本公开的一个或多个方面示例用户界面。
图6示出了描述根据本公开的一个或多个方面的示例程序的流程图。
图7示出了描述根据本公开的一个或多个方面的示例程序的流程图。
图8示出了包括示例设备的各种部件的示例系统,该示例设备可以被实现为如图1至图7所描述和/或使用的任何类型的计算设备,以实现本文所描述的技术的各方面。
具体实施方式
概述
编辑图像的最常见请求是移除请求和替换请求。例如,“从图像中移除消防栓”和“用巴黎的街景替换图像中的背景”分别是移除请求和替换请求的示例。由于图像编辑操作的复杂性(例如,操作数量、操作顺序以及必须为每个操作正确设置的参数数量),并且用户可以用各种语言和各种方言说出无限多种单词,大多数图像编辑应用程序要么不包括声音接口,要么能力有限,只能满足有限的语音命令。例如,图像编辑应用程序不引导用户会话,而是仅接收有限的语音命令。而且,图像编辑应用程序不接收多模式用户输入,包括用户会话期间的补充用户输入以及用户会话期间的语音输入。因此,具有声音接口的图像编辑应用程序仅限于图像编辑应用程序处理有限语音命令的有效性,而无法获得被引导的用户会话的益处,包括在被引导的用户会话期间的补充用户输入以及被引导的用户会话期间的语音输入。
因此,本公开描述了系统和技术,用于引导用户会话以获取编辑询问,并且基于编辑询问,通过满足具有不同内容(例如从库存图像数据库获取的内容)的移除请求或者替换请求来提供已经被增强的多个图像。可以在被引导的用户会话期间,接收多模式用户输入,包括被引导的用户会话期间的语音输入的补充用户输入(例如,鼠标点击、触摸屏上的触摸等),以提高用户与计算设备之间通信的可靠性。可以通过向用户广播询问,接收用户响应并且基于用户响应回应用户来引导用户会话。处理接收到的用户响应以确定编辑询问的参数,例如用户会话是否指示移除请求或替换请求、待移除的对象、待替换的对象、用来替换对象的对象、对象的修饰语,以及其组合等。被引导的用户会话可以包括以任意合适次数来广播询问、接收用户响应,以及回应用户响应(例如,通过计算设备上的图像编辑应用程序启动)。被引导的用户会话中的每次提问和响应的提问范围可以以任何合适的方式来设置(例如,基于之前接收到的用户响应),无论编辑询问指示移除请求还是替换请求、满足编辑请求的资源可用性等。
基于被引导的用户会话的参数获取多个图像,这些图像包括填充材料,以填充根据移除请求移除对象时造成的洞,或者包括替换材料,以根据替换请求替换对象。在一个示例中,填充材料被识别为与不同于与待移除的对象相对应的、图像的像素的图像的像素相似。例如,当从草地移除消防栓时,填充材料可以与草地的像素相似。在一个示例中,替换材料被识别为与与待移除对象相对应的图像的像素相似(例如,当用多云天空替换沉闷天空时,像素是相似的,因为它们都代表天空)。此外,替换材料与替换请求相对应(例如,当替换请求指示用多云天空替换沉闷天空时,替换材料代表由替换请求所指示的多云天空)。
具有填充材料或替换材料的图像可以从任何合适的源来获取,例如,来自库存图像数据库、用户图像库(例如,上传至在线照片共享站点的图像)、用户的图像收藏(例如,存储在用户计算机上的文件)、从在线社交媒体帖子获取的图像、由用户发送或附加在电子邮件中的图像等。
获取待编辑的图像(例如,用户将图像加载至图像编辑应用程序中)。待编辑的图像由视觉模块处理,视觉模块可以是特定于对象的,例如待替换的对象。例如,天空视觉模块包括被训练为识别天空的神经网络,当图像中的待替换对象被识别为天空时(例如,针对替换请求“用多云天空替换沉闷天空”),该天空视觉模块用于查明图像中天空的像素。此外,查明图像中与对象相对应的像素可以包括:生成针对对象的对象掩膜,扩展对象掩膜以创建由对象掩膜的边界界定的区域,以及通过在区域中将背景与前景分离,来生成代表与对象相对应的像素的细化掩膜。此外,可以在背景去污过程中移除图像背景对该区域中的像素的贡献。
响应于确定被引导的用户会话中所指示的编辑询问是否包括移除请求或替换请求,从待编辑的图像以及分别从填充材料或替换材料来形成多个复合图像。协调复合图像以使得其看起来更自然(例如,从而不容易检测到编辑)。在一个示例中,协调包括调整复合图像的光照以在图像材料之间匹配一天中的时间。例如,可以通过根据图像拍摄时的一天中的时间来调整替换材料中的阴影,以使替换材料的光照与图像的一部分匹配。被协调的图像在用户界面中被展示,从而向用户呈现满足移除请求或替换请求的多个选项。在一个示例中,用户界面中展示的每个选项包括来自不同图像的填充材料或替换材料,从而用户能够从展示的选项中选择最个性化地满足对于用户的编辑询问的图像。
在一个示例中,中间结果被展示在用户界面中。例如,可以向用户呈现带有候选对象指示符的图像,例如包围编辑询问中请求被替换的对象的套索。为了确认候选对象的选择,接收多模式输入。多模式输入包括被引导的用户会话期间所接收的指示同一动作的多种形式的输入。例如,确认对象选择的语音指令(例如,“将套索朝消防栓移动并且远离狗的头部”)以及鼠标选择(例如,鼠标点击、保持以及拖拽套索)。因此,满足编辑询问的图像被有效地呈现给用户,同时在使用用户的真实数据时来指导用户如何使用编辑应用程序,而非使用利用存储数据的教程。因此,用户能够与实施本文所描述技术的计算设备(例如,个人助理)有效地沟通,而不必依赖其它方(如在线编辑服务、朋友、同事或熟人等)来通过移除或替换图像中的对象以增强图像。其结果是,用户能够在没有明显延迟(例如,几秒或几分钟,而不是几个小时、几天或几周)的情况下自动获取多个被协调的图像,通过参与被引导的用户会话,提供多模式输入或其组合,每个被协调的图像均满足用户的语音询问。
以下讨论中描述了一种可以采用本文所描述的技术的示例数字媒体环境。之后,描述了示例实施方式的细节和程序,该示例实施方式可以在示例数字媒体环境及其它环境中被执行。因此,示例程序的执行并不限于示例环境,并且示例环境不限于执行示例程序。
示例数字媒体环境
图1示出了示例实施方式中的数字媒体环境100,其可以被运行为采用本文所描述的技术。在本文中,术语“数字媒体环境”是指能够用于实施本文所描述技术的各种计算设备和资源。图示数字媒体环境100包括用户102,其具有至少一个计算设备(例如,移动设备)。在图1所示示例中,示出了用户102具有三个计算设备,计算设备104-1、104-2和104-3(统称为104)。例如,计算设备104-1示出为平板电脑,计算设备104-2示出为一副眼镜(例如,智能眼镜),并且计算设备104-3示出为智能手表。计算设备104为示例计算设备,任何合适的计算设备都是可以设想的,例如移动电话、平板电脑、笔记本电脑、台式计算机、游戏设备、护目镜、眼镜、相机、数字助理、回声设备、图像编辑器、非线性编辑器、数字音频工作站、复印机、扫描仪等。此外,对计算设备104之一的讨论不限于该计算设备,而是普遍适用于每个计算设备104。而且,计算设备104的范围可以从具有大量存储器和处理器资源的完整资源设备(例如,个人计算机、游戏控制台)到具有有限存储器或处理资源的低资源设备(例如,移动设备)。
各种类型的输入设备和输入方式可以用于向计算设备104提供输入。例如,计算设备104可以识别作为鼠标输入、手写笔输入、触摸输入、通过自然用户界面提供的输入等的输入。因此,计算设备104可以识别多种类型的姿势,包括触摸姿势以及通过自然用户界面提供的姿势。在一个示例中,计算设备104包括语音识别、标识和合成功能,允许计算设备104在会话(例如,被引导的用户会话)中与用户102通信的麦克风和扬声器。
此外,计算设备104可以代表一个或多个不同设备,例如如图8进一步描述的连接到网络、执行“云端”操作的一个或多个设备。在一个示例中,计算设备104之间彼此通信地耦合,例如,采用低功率无线通信标准(例如,协议)。例如,计算设备104-1可以与计算设备104-2和计算设备104-3无线通信。因此,一个设备(例如,计算设备104-1)上生成或存储的图像可以被传送至另一设备(例如,计算设备104-2)并在另一设备上显示。
在图1所示的示例中,计算设备104-1获取待编辑的图像106。待编辑的图像106可以以任何合适的方式获取,例如从另一计算设备获取,通过用计算设备104-1上的相机拍摄图像、从计算设备104-1上存储的文件(下文中将更详细地讨论)获取等。在图1的示例中,待编辑的图像106包括房子旁边的汽车,背景中有树和乌云。还可以看到待编辑的图像106中,屋顶的旗杆是弯的。
计算设备104-3引导用户会话108,用户会话108包括来自用户102的语音108-1和来自计算设备104-3的语音108-2(例如,语音108-1和语音108-2共同形成用户会话108,被引导的用户会话)。在图1的示例中,用户会话108包括针对待编辑的图像106的编辑询问,例如“用晴天替换雨天背景”。用户会话108可以包括任何合适次数的、以被引导的会话格式的来自用户102的语音108-1和来自计算设备104-3的语音108-2。在一个示例中,不是用户102包括一次会话108中的替换请求(例如“用晴天替换雨天背景”),而是会话108可以包括以引导、访谈形式的多次提问和回答,从中解读出包括移除请求或替换请求的编辑询问,例如:
计算设备104-3:您今天想要移除还是替换?
用户102:替换。
计算设备104-3:您想要替换什么?
用户102:雨天背景。
计算设备104-3:您想要用什么来替换雨天背景?
用户102:晴天。
基于用户会话108,计算设备104-2利用图像增强系统110(下文中将更详细地讨论)根据编辑询问来增强待编辑的图像106,并且向计算设备104-2上的用户界面(例如,头戴式显示器)提供被协调的图像112。附加地或备选地,被协调的图像112可以被显示在计算设备104-1或计算设备104-3的显示屏上。继续参见图1的示例,由于已经用包括彩虹的晴天背景替换了待编辑的图像106中的雨天背景,被协调的图像112根据编辑询问而被增强。此外,被协调的图像112中房顶的旗杆已经被校正(例如,拉直)。
计算设备104还耦合至网络114。网络114将计算设备104通信地耦合至服务器116(为了清楚起见,图1中仅示出计算设备104-1耦合至网络114,不过,计算设备104-2和104-3也可以经由网络114耦合至服务器116)。网络114可以包括各种网络,例如因特网、内联网、局域网(LAN)、广域网(WAN)、个域网(PAN)、蜂窝网络、地面网络、卫星网络、网络组合等,并且因此可以是有线的、无线的或其组合。
服务器116可以包括一个或多个服务器或服务提供商,以向计算设备104提供服务和/或资源。一般地,服务器116提供的资源可以是授权、购买或可以免费获取的(例如,无需认证、授权或基于账号访问)。资源可以包括服务和内容的任何合适组合,例如由一个或多个提供商通过网络114提供。服务的一些示例包括但不限于,在线购物服务、照片编辑服务、网络开发和管理服务、协作服务、社交网络服务、消息服务、广告服务、图形设计服务、图像存储服务(包括照片、文档、记录、文件等的存储)等。内容可以包括各种资产组合,包括视频、广告、音频、多媒体流、动画、图像、网络文档、网页、应用程序、设备应用程序、文本文档、图纸、演示文稿、库存照片、用户配置文件、用户偏好、用户数据(例如存储在图库中的图像)等。
服务器116包括图像支持系统118,其可以被配置为接收来自计算设备104的信号,处理接收到的信号,并将处理后的信号发送至计算设备104以支持图像中对象的移除和替换。例如,计算设备104-1可以获取待编辑的图像106并将其传送给服务器116。利用图像支持系统118,服务器116可以从由计算设备104-1接收到的待编辑的图像106生成被协调的图像112,并将被协调的图像112发送回计算设备104-1,以显示在计算设备104-1或者任何合适的计算设备上。因此,服务器116的图像支持系统118可以包括图像增强系统110的副本,包括图像增强应用程序120(下文中将更详细地讨论)。
计算设备104包括图像增强系统110,以移除或替换图像中的对象,例如待编辑的图像106中的对象。为了清楚起见,图1示出的计算设备104-2包括图像增强系统110,不过计算设备104-1和计算设备104-3也可以包括图像增强系统110(未示出)的副本。
图像增强系统110包括显示器122,用于显示图像,例如待编辑的图像106、被协调的图像112等。显示器122可以是任何合适类型的显示器,例如触摸屏、液晶显示器、等离子显示器、头戴式显示器、投影仪和屏幕等。图像增强系统110还包括处理器124。因此,图像增强系统110可以至少部分地通过在处理器124上执行存储在存储器126中的指令而实现。例如,处理器124可以执行部分图像增强应用程序120。
存储器126可以是能够由图像增强系统110访问或包含在图像增强系统110内的任何合适类型的存储器。存储器126存储并提供对存储器126中包括的、针对任何合适类型的数据的存储器的访问。例如,存储器126包括会话数据128(例如,与会话108相关的数据,例如会话108的记录、会话108的转录、从会话108推断的用户的情绪,例如,基于两次会话108之间的时间长度、来自用户102的语音108-1的幅度等),对象数据130(例如,表示图像中对象的数据,例如待移除或待替换对象的像素、待移除或待替换对象的掩模、待编辑的图像106中的对象的位置等),语言数据132(例如,会话108的语言分析的结果,例如会话108的词性、主体-对象对、与主体、对象或两者相关的单词列表、对象的同义词、搜索询问字符串等),移除数据134(例如,移除请求相关数据,例如待移除对象的数量和类型、与待移除对象相关的特定于对象的模块的可用性指示符、从待编辑的图像106移除的数据副本等),替换数据136(例如,替换请求相关数据,例如待替换对象的数量和类型、用于替换对象的替换对象的描述、与待替换对象相关的特定于对象的模块的可用性指示符、待编辑的图像106中被替换的数据副本等),以及图像数据138(例如,表示任何合适图像的数据,例如待编辑的图像106、复合图像、被协调的图像(例如被协调的图像112),所获取的包括填充材料或替换材料的图像、协调数据等)。
此外,图像增强系统110包括收发器模块140。收发器模块140代表被配置为使用任何合适类型和数量的通信协议发送和接收数据的功能。例如,图像增强系统110内的数据可以用收发器模块140发送至服务器116。此外,可以用收发器模块140从服务器116接收数据。收发器模块140还可以在计算设备104之间发送和接收数据。
图像增强系统110还包括图像库模块142。图像库模块142代表被配置为维护与用户(例如用户102)相关联的图像的功能。例如,图像库模块142可以管理用户图像收藏,包括存储在如的用户图像编辑应用程序中的图像。此外,图像库模块142将用户在计算设备104之一上操作的图像或用户从计算设备104之一操作的图像集成到存储在存储器126上的图像库中,例如用户发表在社交媒体帖子或博客中的来自一个计算设备104的图像、用户附加在电子邮件、文本或由计算设备104发送或接收的其它通信中的图像等。图像库模块142使得由图像库模块142维护的图库中的图像可用于图像增强应用程序120,例如,以用于填充材料或替换材料。由图像库模块142维护的图像可以被存储在图像数据138中。
图像增强系统110还包括图像增强应用程序120。图像增强应用程序120包括会话模块144、视觉模块146、语言模块148、图像搜索模块150、复合模块152、协调模块154以及显示模块156。这些模块彼此协作以引导用户会话,并且基于被引导的用户会话移除和替换待编辑的图像中的对象并且展示多个被协调的图像。
此外,虽然图像增强系统110和图像增强应用程序120的说明描述了移除请求和替换请求,本文所描述的系统、程序和设备并不限于移除请求和替换请求。移除请求和替换请求作为编辑功能的示例描述,因为这是编辑询问中所包括的最常见的编辑功能。然而,本文所描述的系统、程序和设备,包括图像增强系统110和图像增强应用程序120,也可以用于处理被引导的用户会话中编辑询问所包括或指示的其它编辑功能,包括移动请求(移动图像中的对象)、复制请求(复制图像中的对象)、添加请求(在图像中添加对象)、不透明请求(调整对象的不透明度)、增亮请求(使对象更亮)、颜色请求(调整对象的颜色)、样式请求(调整对象的样式)等。
会话模块144代表被配置为引导用户会话的功能,用户会话包括用于待编辑的图像的编辑询问。用户会话108是用户会话的示例,会话模块144可以引导用户会话108。用户会话可以是任何合适类型的会话,从用户会话中可以提取编辑询问。用户会话可以包括任何合适类型的通信,例如语言通信(例如,利用会话模块144的麦克风和扬声器)、书面通信(例如,用户可以用键盘输入或向会话模块144提供文档)或语言通信与书面通信的组合。在一个示例中,用户会话为被引导的用户会话,例如,以指示编辑询问的访谈问答形式。例如,会话模块144可以基于事件启动用户会话,例如用户指示待编辑的图像,例如,将待编辑的图像106加载到图像增强应用程序120中。利用访谈格式的语言通信的被引导的用户会话的一个示例如下:
设备:您好,您想要移除或替换图像中的东西吗?
用户:是的,替换。
设备:您想要替换什么?
用户:沉闷的天空。
设备:您想用什么替换沉闷的天空?
用户:多云的、有闪电的天空。
附加地或备选地,被引导的用户会话包括来自用户的编辑询问,例如“移除狗旁边的消防栓”。因此,被引导的用户会话可以是计算设备(例如计算设备104之一)与用户(例如用户102)之间的任何合适的会话,并且包括任何合适次数的语音。被引导的用户会话中的每次提问和响应的提问范围可以以任何合适方式设置,例如,基于之前接收到的用户响应、无论编辑询问指示移除请求还是替换请求、满足编辑请求的资源可用性等。在一个示例中,提问的范围随着每次被引导的用户会话而缩小,例如,通过在每次会话中获取上一回答的更多细节。
因此,会话模块144包括或可以访问麦克风阵列和扬声器阵列,以分别广播语音和接收来自用户的语音。例如,会话模块144可以广播编辑询问(例如,“您想要移除或替换图像中的什么”),并接收来自用户的指示对象的确认及替换请求指示或移除请求指示(例如,“移除消防栓”)。此外,会话模块144可以包括任何合适类型的控制以引导用户会话,例如神经网络,神经网络为会话模块144生成问题以基于从用户接收的上一问题的答案在用户会话中询问。在一个示例中,会话模块144可以通过先发性地启动对图像数据库中可用图像细节的搜索,在用户会话期间确定待询问的问题。例如,如果在用户会话过程期间,用户请求向待编辑的图像中“添加旧皮卡”,会话模块144可以启动对库存图像数据库的搜索,以识别数据库的图像中包括什么类型的旧皮卡,并且提供合适的问题作为对用户的回应,例如,基于包括1946年的雪佛兰皮卡和1955年的福特皮卡图像的数据库,提问“您想要1946年的雪佛兰皮卡还是1955年的福特皮卡?”
会话模块144向图像增强系统110的模块提供编辑询问,编辑询问被包括在被引导的用户会话中(或由被引导的用户会话指示)。会话模块144提供的编辑询问可以是任何合适类型的编辑询问。在一个示例中,编辑询问包括被引导的用户会话的转录(例如,ASCII格式的文本)。附加地或备选地,编辑询问可以包括由被引导的用户会话的单词或单词指示符填充的数据结构。例如,数据结构可以包括由编辑询问的编辑功能指示符填充的功能字段,例如0表示移除,1表示替换,2表示移动,3表示复制,4表示添加,5表示增亮,6表示变暗,7表示褐色滤光镜等。替换字段可以用将替换另一对象的对象的描述填充,例如上述示例被引导的用户会话中的“多云的天空、有闪电”。
由会话模块144确定的编辑询问,以及会话144使用或计算的任何合适信息,例如被引导的用户会话的文本、被引导的用户会话中的语音次数、用户数据(例如用户偏好、包括图像数量和类型以及用户执行或用于用户的编辑功能的用户历史记录等)、麦克风设置、扬声器设置等,被存储在存储器126的会话数据128中,并且可以用于图像增强应用程序120的模块。
视觉模块146代表被配置为查明与被引导的用户会话中所指示的待移除对象或待替换对象相对应的待编辑的图像的像素的功能。视觉模块146在待编辑的图像中执行像素分割,从而以任何合适方式确定与对象相对应的像素。在一个示例中,视觉模块146包括一个或多个神经网络,神经网络已经被训练为识别特定对象,例如天空、消防栓、背景、汽车、人、脸等。因此,在查明待编辑的图像中对象的像素时,视觉模块146可以使用被训练为识别编辑询问所指示的特定对象的神经网络。例如,如果编辑询问包括移除请求“移除消防栓”,视觉模块146用被训练为识别消防栓的神经网络查明图像中与消防栓相对应的像素,该神经网络用包括各种消防栓的训练图像来训练。附加地或备选地,视觉模块146用未被训练为识别特定对象的神经网络查明待编辑的图像中与图像中对象相对应的像素,例如,当待识别对象为蝴蝶时,使用被训练为识别昆虫、鸟或蝙蝠的神经网络。
而且,视觉模块146可以为图像中任何合适数量的对象查明待编辑的图像的像素。因此,如果编辑询问包括移除请求“移除图像中的人”,视觉模块146可以通过迭代使用被训练为识别人的神经网络,或者通过使用被训练为识别多个人的神经网络(例如用包括不同人群的训练图像训练),来查明图像中与多个人相对应的像素。
在一个示例中,视觉模块146将图像的像素分割为背景像素和前景像素。因此,视觉模块146可以判断图像的背景场景,并且背景场景可以包括多个对象。例如,对于请求“用夏威夷的图片替换背景”,视觉模块146可以查明包括多个对象,例如树木、岩石、太阳、月亮、星星等的与背景相对应的图像的像素。
此外,视觉模块146具有对待编辑的图像的语义理解,因而能够基于编辑询问中对对象的描述来区分图像中的对象。例如,如果编辑询问包括移除请求“移除左边的人”,视觉模块146能够(例如,通过使用经深度学习模式训练的神经网络的计算机视觉操作方法)将“左边的人”与图像中的其他人区分开来。因此,通过挖掘图像的语义知识,视觉模块146能够有效且准确地查明与编辑询问所指示对象相对应的像素。
在一个示例中,视觉模块查明与对象相对应的像素首先是通过确定不包括与对象相对应的像素的一组反像素。之后,从一组反像素中确定与对象相对应的像素,例如,作为一组反像素的一组补充像素。
而且,视觉模块146可以生成代表待编辑的图像中对象分割像素的掩膜。掩膜可以代表像素而不包括像素内容。在一个示例中,例如,通过用被训练为识别对象的神经网络分割待编辑的图像的像素,生成对象的对象掩膜。可以细化对象掩膜以形成细化掩膜,其获取对象的细节,例如头发、叶子等。通过扩展对象掩膜以创建由对象掩膜的边界界定的区域(例如对象掩膜的内部区域),并且将区域中图像的背景与图像的前景分离,从而从对象掩膜生成细化掩膜。
此外,视觉模块146可以使中间结果展示在用户界面中。例如,视觉模块146可以提供中间图像,在中间图像中显示对象的指示符。可以接收对对象的确认(例如,利用下文中更详细讨论的多模式输入),用户可以调整对象选择,并且视觉模块146可以基于用户的确认或调整来更新与对象相对应的像素。
由视觉模块146确定的分割像素,以及视觉模块146使用或计算的任何合适信息,例如分割对象的数量、分割对象的类型(例如人、狗、消防栓、背静、天空、树等)、反像素、对象掩膜、细化掩膜、生成细化掩膜所使用的区域、待编辑的图像的副本等,被存储在存储器126的对象数据130中,并且可以用于图像增强应用程序120的模块。
语言模块148代表被配置为确定编辑询问是否包括移除请求或替换请求以及该请求的参数的功能,例如移除或替换什么、用什么替换。语言模块148以任何合适方式处理编辑询问(例如,由会话模块144提供),以确定编辑询问是否包括移除请求或替换请求以及该请求的参数。在一个示例中,语言模块148对编辑询问执行单词识别,以识别关键词和关键词修饰语。例如,对于替换请求“用蓝色卡车替换汽车”,语言模块148将对象“汽车”和“卡车”及形容词“蓝色”识别为关键词。用于识别关键词的单词识别可以以任何方式在编辑询问上进行,例如使用单词滑动窗并且处理滑动窗下的单词、假设检验、编码、解码及其组合等。附加地或备选地,语言模块148用已经用编辑询问训练的自然语言处理器处理编辑询问,以获得对语言的理解。
语言模块148确定编辑请求的功能,例如,编辑询问是否包括移除请求或替换请求(例如,通过将编辑请求中的单词或单词的同义词与“移除”或“替换”匹配)。在一个示例中,语言模块148基于将被引导的用户会话的单词与分别被确定为与移除或替换相似的单词列表匹配来确定编辑询问是否包括移除请求或替换请求。此外,语言模块可以识别移除和替换之外的其它编辑功能,例如移动对象、调整对象的不透明度、增亮部分图像、调暗部分图像、调整对比度、复制对象、添加对象、移动对象等。
在一个示例中,语言模块148通过移除标点符号、特殊字符(例如,星号和&符号)以及停用词(例如,冠词“the”)来处理编辑询问。在向量空间中为编辑询问中剩余的每个单词分配向量。向量空间将单词向量定位为下述方式:共享公共上下文的单词在向量空间内彼此非常接近地定位。在一个示例中,word2vec功能用于产生向量(例如,针对编辑询问的单词或词组)。
基于向量的余弦相似性来确定单词向量与移除了标点、特殊字符和停用词的编辑询问向量之间的相似度得分。可以将相似度得分与阈值进行比较并彼此互相比较,以确定待移除或待替换的对象。例如,单词“天空”与替换请求“用多云天空替换沉闷天空”的相似度得分要高于单词“背景”与替换请求“用多云天空替换沉闷天空”的相似度得分。另一方面,单词“天空”与替换请求“用海滩替换背景”的相似度得分要低于单词“背景”与替换请求“用海滩替换背景”的相似度得分。因此,从单词向量确定的相似度得分可以用于确定从图像待替换或待移除的对象。
此外,语言模块148可以从被引导的用户会话的输入询问或单词串识别主体-对象对。例如,输入询问的主体部分可以指示什么应当被替换或移除(例如,沉闷天空),输入询问的对象部分可以指示用什么替换主体(例如,多云天空)。字符串(例如,编辑询问)被分离为第一部分和第二部分,第一部分包含与主体-对象对中的主体部分相关的单词,第二部分包含与主体-对象对中的对象部分相关的单词。第一部分和第二部分可以被汇编为一个或多个单词列表,并且用于获取具有填充材料、替换材料或其组合的图像。例如,语言模块148可以向图像搜索模块150提供单词列表,该单词列表包括由语言模块148生成的第一部分和第二部分,图像搜索模块150基于用第一部分单词进行的图像搜索获取包括填充材料的图像,并且基于用第二部分单词进行的图像搜索获取包括替换材料的图像。
附加地或备选地,语言模块148可以生成编辑询问中单词的同义词,并且该同义词可以用于构建搜索询问(例如,通过图像搜索模块150)或查明待编辑的图像的像素(例如,通过视觉模块146)。例如,编辑询问可以包括移除请求“移除窗户上的鬼影”。这种情况下,语言模块148可以生成单词“倒影”作为“鬼影”的同义词,该单词可以作为待分割对象被传递给视觉模块146。因此,视觉模块146不搜索鬼影(例如,死人幽灵),而是被指示为搜索窗户上的倒影。此外,单词“鬼影”可以由语言模块148标记为俚语、多义词或退化词,从而当在待编辑的图像中查找对象或为具有填充材料或替换材料的图像生成搜索询问时,可以赋予其相对较低的比重(或忽略)。
在一个示例中,语言模块148处理编辑询问以获取编辑询问的参数(例如,添加、移除、替换、移动什么,用什么来替换对象,替换请求的类型,例如天空替换请求,移除请求的类型,例如移除人的请求等),并通过基于编辑询问的参数以适当顺序调用适当函数,来引导图像增强应用程序120的操作。例如,该参数可以作为函数的变量而被传递至或用于将函数参数化。此外,可以调用正在移除或替换对象的特定函数。例如,表1中的伪代码包括用于背景和天空的特定对象替换和移除的特定替换和移除函数,以及用于对象的通用替换和移除函数。
/>
/>
在表1的伪代码中,函数用粗体表示,并且通过由语言模块148所确定的编辑询问的对象而被参数化。因此,被引导的用户会话可以由语言模块148而被直接映射为生成多个被协调的图像的移除和替换函数。
由语言模块148生成的、针对编辑询问是否包括移除请求或替换请求的确定,以及由语言模块148使用或计算的任何合适信息,例如编辑询问的参数(例如,用什么替换对象的细节,其可能指示待获取的合适替换材料)、从主体-对象对生成的单词列表、编辑询问中单词的同义词表、俚语或退化词指示符等,被存储在存储器126的语言数据132中,并且可以用于图像增强应用程序120的模块。
图像搜索模块150代表被配置为获取可以用于增强待编辑的图像(例如待编辑的图像106)的图像的功能。因此,由图像搜索模块150获取的图像可以包括填充材料、替换材料或其组合。填充材料是来自图像,以填充根据移除请求从待编辑的图像中移除对象而形成的洞。在一个示例中,填充材料从被协调的图像112或待编辑的图像106(例如,从被增强图像本身)获取。替换材料是来自图像,以根据替换请求替换对象。在一个示例中,填充材料被识别为与不同于与待从待编辑的图像中移除的对象相对应的像素的待编辑的图像的像素相似。例如,当移除草地上的消防栓时,填充材料可以与草地的像素相似,而非与消防栓相似。附加地或备选地,替换材料可以被识别为与与待编辑的图像中待移除对象相对应的像素相似(例如,当用多云天空替换沉闷天空时,多云天空的像素被识别为与沉闷天空相似,因为它们都代表天空)。而且,替换材料与替换请求相对应。继续该示例,替换材料代表多云天空而非沉闷天空。
因此,图像搜索模块150接收任何合适信息和指令,以获取包括填充材料或替换材料的图像。在一个示例中,图像搜索模块接收来自语言模块148的对象列表,并且基于该对象列表构建用于图像的搜索询问。例如,搜索询问可以包括形成询问字符串,其包括来自用户会话的单词与来自用户会话的其它单词同义词的组合,例如通过从“半卡车、freightliner”的组合形成搜索字符串,用于编辑询问,该编辑询问包括替换请求“用Freightliner替换Peterbilt卡车”,其中,半卡车是卡车的同义词。
图像搜索模块150可以访问由图像库模块142管理的图像,以获取具有填充材料或替换材料的图像。此外,图像搜索模块150可以使用收发器模块140以从任何合适源获取任何合适图像,包括从计算设备104或服务器116上的用户的文件目录获取图像、从用户的照片收藏获取图像(例如,在线照片共享服务、存储在如等用户的图像编辑应用程序中的图像)、用户发布在社交媒体帖子、博客、在线评论等中的图像、用户附加在电子邮件、文本或由计算设备104发送或接收的其它通信中的图像、搜索服务提供的图像、例如对于协调图像112相似图像的在线搜索、从库存图像数据库获取的图像、用户102提供的图像、例如用户102可能拥有的与待编辑的图像106相似的图像等。因此,图像搜索模块150获取除待编辑的图像106之外可以用于增强待编辑的图像106的图像,例如,通过从图像搜索模块150获取的图像添加填充材料或替换材料。
在一个示例中,由图像搜索模块150获取的包括填充材料的一个或多个图像基于用字符串的第一部分单词进行的图像搜索而获取,该部分包含与字符串的主体-对象对中的主体部分相关的字符串单词,并且由图像搜索模块150获取的包括替换材料的一个或多个图像基于用字符串的第二部分单词进行的图像搜索而获取,该部分包含与字符串的主体-对象对中的对象部分相关的字符串单词。字符串的第一部分和第二部分可以由语言模块148提供。图像搜索模块150可以基于搜索返回规定数量的图像(例如,一百个),例如,搜索的前N个图像(例如,前100个图像),或者搜索的前x%(例如,前10%的图像)。
由图像搜索模块150获取的图像以及图像搜索模块150使用或计算的任何合适信息,例如搜索字符串、返回的搜索结果统计等,被存储在存储器126的图像数据138中,并且可以用于图像增强应用程序120的模块。
复合模块152代表被配置为通过将填充材料、替换材料或其组合与待编辑的图像复合来增强待编辑的图像的功能。响应包括移除请求的编辑询问,复合模块152从待编辑的图像的像素中移除内容(例如,与待移除对象相对应),并向图像的像素中添加填充材料以形成一个或多个复合图像。因此,填充材料用于填充对象移除时形成的洞。从待编辑的图像移除的内容存储在存储器126的移除数据134中。填充材料可以被包括在由图像搜索模块150获取的一个或多个图像中。附加地或备选地,填充材料可以包括在待编辑的图像本身中。因此,复合模块152可以产生多个复合图像,每个复合图像包括来自不同图像、同一图像或其组合的填充材料。在一个示例中,中间结果被呈现在示出多个不同填充材料的用户界面上。用户可以选择使用哪个选项(例如,通过语音、触摸触摸屏、点击鼠标或其组合)作为待编辑的图像中的填充材料。
而且,响应包括替换请求的编辑询问,复合模块152用替换材料替换待编辑的图像的像素内容(例如,与待替换对象相对应),以形成一个或多个复合图像。待编辑的图像中被替换的内容存储在存储器126的替换数据136中。替换材料可以被包括在由图像搜索模块150获取的一个或多个图像中。附加地或备选地,替换材料可以包括在待编辑的图像本身中(例如,用户可能希望复制图像中的对象)。
复合模块152可以以任何合适方式将填充材料和替换材料与待编辑的图像进行复合。在一个示例中,复合模块152接收来自语言模块148的指示图像编辑功能的指令(例如,移除或替换),以及来自图像搜索模块150的具有填充材料或替换材料的图像。基于视觉模块146所指示的对象和数据(例如分割像素、掩膜等),复合模块152根据编辑询问复合填充材料或替换材料,以形成多个复合图像。
附加地或备选地,在被称为背景去污的过程中,复合模块152可以移除待编辑的图像的背景对像素的贡献。例如,可以通过扩展对象掩膜形成由对象掩膜的边界界定的区域(例如,在视觉模块146中)。在该区域内,一定百分比的像素可以归因于对象,其余百分比归因于背景。例如,考虑具有精细细节的对象,例如蓝色背景前的棕色头发。对于一个区域内头发的每个像素,一定百分比的像素归因于棕色头发(例如,70%),其余百分比(例如,30%)归因于蓝色背景。背景的贡献(在该示例中为30%的蓝色)可以从像素中移除,从而防止复合图像中的光圈效应。
在一个示例中,复合模块152使用待编辑的图像中被移除或替换特定于对象的复合模块形成复合图像。例如,在形成其中天空被替换的复合图像时,使用特定于天空对象的复合模块,例如包括神经网络的天空复合模块,该神经网络被训练为将天空与包括不同天空的训练图像进行复合。
由复合模块152生成的复合图像,以及复合模块152使用或计算的任何合适信息,例如由复合模块152根据最佳复合适合确定的复合图像排名、移除内容、替换内容、从像素中移除的内容(例如,背景)的贡献等,被存储在存储器126中,例如图像数据138中,并且可以用于图像增强应用程序120的模块。
协调模块154代表被配置为协调复合图像以形成被协调的图像的功能,被协调的图像看起来自然并且去除图像编辑的人工痕迹,包括从图像中移除对象及替换对象的人工痕迹。协调模块154可以以任何合适方式协调复合图像,以使其看起来自然且未经编辑。例如,协调模块154可以调整图像局部或整体光照。在一个示例中,调整部分复合图像的光照(例如,在替换材料中),以使其匹配复合图像另一部分的光照。可以调整光照以考虑替换材料与待编辑的图像之间的一天中的不同时间,从而调整被协调的图像中的阴影和高亮以匹配一天中的时间。
附加地或备选地,协调由待编辑的图像中特定于被移除或替换对象的协调模块执行。例如,在协调在其中自行车被替换的复合图像时,使用特定于自行车对象的协调模块,例如包括神经网络的自行车协调模块,该神经网络被训练为协调自行车与包括不同自行车的训练图像。
协调模块154还可以执行背景去污,其中如上文所述,从像素中移除图像的背景对于区域中像素的贡献。
由协调模块154生成的被协调的图像,以及协调模块154使用或计算的任何合适信息,例如协调算法的参数、所用神经网络的指示符、进行协调区域的指示符等,被存储在存储器126中,例如图像数据138中,并且可以用于图像增强应用程序120的模块。
显示模块156代表被配置为在用户界面中展示图像增强系统110的图像的功能。用户界面可以被显示在计算设备104的显示器122上。(下文中参照图5更详细地讨论了一个示例用户界面)。显示模块156可以在用户界面中展示任何合适图像,包括由图像搜索模块150获取的图像、由复合模块152生成的复合图像、由协调模块154生成的被协调的图像(例如被协调的图像112)、待编辑的图像(例如待编辑的图像106)、中间图像(例如由视觉模块146分割的具有对象指示符的图像)及其组合等。
考虑过示例数字媒体环境后,现在考虑根据从图像中移除和替换对象方面的图像的示例流程图的讨论。
示例图像
图2示出了根据本公开的一个或多个方面的与替换请求相对应的图像的示例流程图200。流程图200包括待编辑的图像202、设备与用户(例如图1中的计算设备104之一与用户102)之间的被引导的用户会话204(用会话气泡表示)以及被协调的图像206。被引导的用户会话204是图1中用户会话108的一个示例,被协调的图像206是图1中被协调的图像112的一个示例。因此,待编辑的图像202可以从图像库模块142获取或与之协作,被引导的用户会话204可以由会话模块144结合语言模块148引导,被协调的图像206可以由图1中的协调模块154生成。
被引导的用户会话204可以以任何合适方式启动。在一个示例中,被引导的用户会话204响应于待编辑的图像202被标记用于编辑(例如,通过用户选择待编辑的图像202用于编辑、待编辑的图像202被加载至图像编辑应用程序(例如,图像增强应用程序120)等)而启动。被引导的用户会话204为问答访谈格式,其中,设备(例如,图1中的计算设备104之一)提出问题,用户(例如,图1中的用户102)回答。
在被引导的用户会话204中,设备询问:“您好,您想要移除或替换图像中的东西吗?”,对此用户回答:“是的,替换”。设备通过询问“您想要替换什么?”来引导会话,对此用户回答:“沉闷的天空”。设备再次通过缩小替换任务的参数来引导会话,并且询问:“您想用什么替换沉闷的天空?”。通过在向用户提出的问题中包括待替换的对象(例如,沉闷的天空),设备提出要求用户确认的隐含提议。例如,如果用户回应纠正设备,说“我说的不是沉闷的天空,我说的是‘浆果派’”或类似的话,设备就已经实施高效的校正手段,因为不需要明确的询问来专门要求校正。其结果是,如果用户没有回应以纠正设备,设备就会非常确定地总结出从用户会话识别的“沉闷的天空”是正确的。因此,图1中的会话模块144和语言模块148可以在引导用户会话过程期间共同协作。
继续参见图2中的示例被引导的用户会话204,用户回答:“多云的天空”,指示设备应该用多云的天空替换沉闷的天空。作为回应,设备生成包括多云的天空的被协调的图像206。被协调的图像206具有自然外观并且没有复合图像中通常存在的人工编辑痕迹,例如光圈。
图3示出了根据本公开的一个或多个方面的与移除请求相对应的图像的示例流程图300。虽然图3的示例描述了用于移除请求的图像,图3的图像也可以应用于其它编辑功能,例如替换请求、移动请求(在图像中移动对象)、复制请求(在图像中复制对象)、添加请求(在图像中添加对象)等。
图3所示的示例流程图300包括待编辑的图像302、被引导的用户会话304、对象掩膜306、细化掩膜308、填充材料310、复合图像312以及被协调的图像314。在一个示例中,待编辑的图像302通过图像库模块142获取,并且可以是与图像编辑应用程序相关联的用户的图像收藏的一部分。填充材料可以被包括在从图像搜索模块150获取的图像、从待编辑的图像302获取的图像、从由图像库模块142管理的图像获取的图像或其组合中。
被引导的用户会话304包括设备与用户(例如,分别为图1中的计算设备104之一与用户102)之间的会话304,并且是图1中用户会话108的一个示例。而且,如前所述,被引导的用户会话304可以由会话模块144结合语言模块148引导。此外,被协调的图像314是图1中被协调的图像112的一个示例,并且被协调的图像314可以由图1中的协调模块154生成。对象掩膜306和细化掩膜308是由视觉模块146生成的掩膜的示例。
在图3的示例中,被引导的用户会话304包括设备提出的问题:“您好,您想要移除或替换图像中的东西吗?”附加地或备选地,设备可以询问关于任何合适编辑功能的问题,例如移动、复制、添加对象或使对象不透明。用户用编辑询问回应该问题:“可以移除图像前面的女人吗?”
视觉模块146查明待编辑的图像302中与“图像前面的女人”相对应的像素。由于视觉模块146具有对图像的语义理解,可以准确确定图像中的哪个女人是图像前面的女人。因此,视觉模块146生成用于对象“图像前面的女人”的对象掩膜306。对象掩膜识别与该对象相对应且不包括图像内容的粗略的一组像素。例如,对象掩膜的像素可以是双色,指示包括或不包括在对象掩膜内。在示例对象掩膜306中,白色像素包括在对象掩膜中,黑色像素从对象掩膜中排除。
基于对象掩膜306,视觉模块146生成细化掩膜308。通过扩展对象掩膜以创建由对象掩膜的边界界定的区域,可以从对象掩膜生成细化掩膜。例如,对象掩膜306中白色和黑色的边界可以朝白色像素内部扩展,以形成由边界界定的恒定宽度区域(例如,对象掩膜的内部区域)。在该区域内或任何合适区域内,图像背景与图像前景进一步分离,以细化对象掩膜,例如,通过施加训练为将对象掩膜区域中的背景与前景分离的神经网络。通过将对象掩膜306区域内的背景与前景进一步分离,生成比对象掩膜306更准确地限定代表对象(例如,图像前面的女人)的像素的细化掩膜308。
细化掩膜308和填充材料310由复合模块152用于生成复合图像312。在复合图像312中,与对象相对应(例如,图像前面的女人)的像素的内容已经被移除。为了填充图像中因移除内容导致的洞,填充材料310已经被添加至复合图像312中与对象相对应的像素,例如与细化掩膜308相关联的像素。复合填充材料可以包括执行背景去污,其中,在一个区域中,例如上述用于从对象掩膜306创建细化掩膜308的区域中,从像素中移除图像背景对像素的贡献。因此,可以减少复合图像312中的光圈。
然而,复合的一些人工痕迹可能仍然会保留在复合图像312中。在图3的示例中,挑剔的观察者可以检测到复合图像312中添加的填充材料的轮廓。因此,协调模块154生成被协调的图像314。被协调的图像314通过协调复合图像312而生成,以使图像看起来自然并移除对象移除任务的人工痕迹。在图3的示例中,已经使用专门针对与人相对应的协调对象训练的神经网络,以将对象移除的人工痕迹减少至大多数观察者都检测不到的水平。
已经考虑了图像的示例流程图,现在考虑对可用于移除和替换待编辑的图像中的对象的示例系统的讨论。
示例图像增强系统
图4示出了根据本公开的一个或多个方面的可用于替换和移除待编辑的图像中的对象的示例系统400。在该实现方式中,系统400包括如图1中所描述的图像增强应用程序120的模块。例如,会话模块144,视觉模块146,语言模块148,图像搜索模块150,复合模块152,协调模块154和显示模块156。系统400是可以使用图像增强应用程序120的模块构建的图像增强系统110的一个示例。例如,信号可以被重新定义,模块可以修改、组合、分割、添加或移除,以形成被修改的系统而无需改变系统400的功能。因此,此类被修改的系统视为落入本公开的范围内。
此外,为了简单起见,系统400被限定为图像增强应用程序120的模块及其一些互连的描述。然而,系统400可以包括任何合适信号,并在为了简单起见而省略的模块之间进行通信。这些信号可以包括系统时钟、计数器、图像指示器、对象指示器、复位信号等。在一个示例中,一旦被引导的用户会话完成,系统400可以自动操作而无需用户干预。此外,系统400可以实时操作(例如,一旦用户会话完成,用户觉察不到延迟)。因此,信号可以由系统400的模块计算并在系统400的模块之间通信而没有明显延迟,从而可以生成至少一个被协调的图像并在用户觉察不到延迟的情况下展示该图像。例如,系统400可以先发地获取具有填充材料或替换材料的图像,以及在被引导的用户会话期间基于从被引导的用户会话中提取的参数生成的被协调的图像,从而在被引导的用户会话过程中或紧随其后展示至少一个被协调的图像。随着更多的被协调的图像生成,系统400可以附加最新生成的被协调的图像以在用户界面中展示被协调的图像。
而且,系统400可以在一个或多个任何合适设备上实现。在一个示例中,系统400在一个计算设备上实现(例如,图1中的计算设备104之一)。在另一示例中,系统400在多于一个的计算设备上实现。例如,系统400的一部分可以由第一计算设备,例如图1中的计算设备104-1实现,而系统400的其他部分可以由附加计算设备或设备,例如计算设备104-2实现。在一个示例中,服务器,例如图1中的服务器116,实现系统400的一部分。服务器可以是远程服务器,例如,由于服务器与第一计算设备不并置。服务器可以被配置为从计算设备(例如一个或多个计算设备104)接收系统400的信号,处理接收到的信号,例如用图像支持系统118,并将处理结果返回计算设备。因此,图1中服务器116的图像支持系统118可以包括系统400。
附加地或备选地,系统400的一部分可以由与第一计算设备并置的附加计算设备实现。例如,一个计算设备104可以是第一计算设备,另一计算设备104可以是附加的并置计算设备。第一计算设备和附加计算设备可以由一个或多个用户操作。因此,系统400为环境中的多个用户提供包括在系统400内的共享数据。例如,待编辑的图像可以由第一用户操作的第一计算设备获取,并发送至第二用户操作的另一计算设备。之后,第二用户可以为待编辑的图像中的待替换对象(例如背景)选择具有填充材料的图像,并将具有填充材料的图像返回第一用户和第一计算设备。之后,第一计算设备可以使用第二用户选定的具有填充材料的图像形成被协调的图像。之后,被协调的图像可以共享给其它用户,例如第二用户。
会话模块144引导用户会话(例如,被引导的用户会话)。在一个示例中,会话模块144以问答访谈式会话引导用户会话。基于被引导的用户会话,会话模块144为语言模块148提供询问(例如,编辑询问)。询问可以包括针对编辑图像功能的请求,例如移除请求、替换请求、移动请求、复制请求、添加请求等。询问可以由会话模块144在任何合适时间提供,例如在被引导的用户会话期间、被引导的用户会话之后或被引导的用户会话期间以及被引导的用户会话之后。这样,由会话模块144提供的询问可以包括任何数量的询问,并且可以是任何合适格式。例如,由会话模块144提供的询问可以包括被引导的用户会话的一个或多个记录、被引导的用户会话的转录、字段由被引导的用户会话中的单词和单词指示符填充的数据结构及其组合等。
此外,会话模块144接收来自语言模块148的会话数据。接收自语言模块148的会话数据可以是与被引导的用户会话相关的任何合适数据,基于会话模块144所提供的询问而生成。例如,会话数据可以包括被引导的用户会话中提问的问题指示符(例如,基于由图像搜索模块150进行的数据库搜索,以在被引导的用户会话期间,确定关于被引导的用户会话的图像可用性)、确认的请求(例如,确认图像中对象的选择)等。因此,会话模块144、语言模块148和图像搜索模块150可以在被引导的用户会话期间协作,以引导被引导的用户会话。
语言模块148接收来自会话模块144的询问并处理该询问,以确定询问的参数,包括询问中包括什么编辑功能请求(例如,移除请求、替换请求、移动请求、复制请求、添加请求等)。在一个示例中,语言模块148确定来自会话模块144的询问是否包括移除请求或替换请求。
此外,语言模块148基于从会话模块144接收到的询问识别一个或多个对象。由语言模块148识别的对象可以是待替换对象、待移除对象、待复制对象、待移动对象、待添加至图像的对象、以及待替换待编辑的图像中对象的对象及其组合等。从语言模块148识别的对象示例包括有生命对象和无生命对象、背景、天空、成像过程的人工痕迹(例如,镜面反射、马赛克、透镜畸变、斑点等)等。
语言模块148向视觉模块146提供从询问识别的对象,向图像搜索模块150和复合模块152提供包括被包括在询问中或由询问所指示的编辑功能请求指示符(例如,询问是否包括移除请求或替换请求的指示符)的对象。
视觉模块146接收待编辑的图像,例如由用户提供并加载至图1的图像增强系统110的存储器126中的图像。视觉模块146还从语言模块148接收从询问中识别的对象。视觉模块146识别并查明待编辑的图像中与语言模块148所识别对象相对应的像素。视觉模块146可以以任何合适方式查明与对象相对应的像素。在一个示例中,视觉模块146生成用于由语言模块148所识别对象的一个或多个掩膜。掩膜可以描述对象形状而无需包括来自待编辑的图像的内容。视觉模块146可以生成针对对象的对象掩膜,并通过扩展对象掩膜以创建由对象掩膜的边界界定的区域并针对区域中的像素,将背景与前景分离,而从对象掩膜生成细化掩膜。
视觉模块146可以用神经网络识别与对象相对应的图像的像素,该神经网络已经专门针对待识别对象的类型的进行训练。因此,当识别到图像中的狗时,视觉模块146可以从已经用包括各种种类的狗的训练图像训练为识别图像中的狗的多个可用神经网络中选择一个神经网络。
附加地或备选地,视觉模块146可以通过确定不包括与对象相对应的像素的一组反像素,并且然后从该组反像素确定与对象相对应的像素来查明与由语言模块148所识别的对象相对应的图像的像素。
此外,视觉模块146具有对待编辑的图像的语义理解,因而能够区分图像中的相似对象。例如,对于包含多个书架的图像,视觉模块146能够从指示“角落里的书架”的对象描述区分出角落书架。
由视觉模块146所查明的、与对象相对应的像素被提供至复合模块152和图像搜索模块150。由视觉模块146提供的分割像素可以为任何合适格式并且包括任何合适数据,例如掩膜、对象指示符(例如,表示多个对象中的对象的编号)、替换或移除指示符、待编辑的图像副本等。
图像搜索模块150从语言模块148接收关于编辑询问的数据,包括指示询问是否包括移除请求或替换请求的指示符。从语言模块148接收的数据可以包括关于编辑询问的任何合适数据,例如从询问中识别的对象的描述及可以由图像搜索模块150使用以构成用于图像搜索的询问字符串的对象同义词(例如,搜索库存图像数据库、在线搜索、计算设备搜索等)。
图像搜索模块150还接收来自视觉模块146的分割像素。在一个示例中,图像搜索模块通过分析由视觉模块146提供的分割像素的内容,来构建用于图像搜索的询问字符串。例如,图像搜索模块150可以分析分割像素,以通过包括分割像素的描述符来缩短询问字符串,从而获得更匹配的填充材料或替换材料。例如,图像搜索模块150可以分析来自视觉模块146的包括草坪草地的分割像素,并确定该类型的草坪草地是蓝草。因此,视觉模块146可以从单词“草坪”、“草地”、“蓝草”的组合构建搜索字符串。
图像搜索模块150获取包括填充材料或替换材料的一个或多个图像。如上所述,图像搜索模块150从任何合适的源获取图像,例如图像数据库、用户图像库、计算设备上的文件等。
在一个示例中,图像搜索模块150基于指示编辑询问是否包括移除请求或替换请求的指示符获取图像。例如,响应于确定编辑询问包括替换请求,图像搜索模块150可以获取包括替换材料的一个或多个图像,替换材料被识别为与与根据替换请求、被语言模块148识别在待编辑的图像中将被替换的对象相对应的像素相似。
附加地或备选地,响应于确定编辑询问包括移除请求,图像搜索模块150可以获取一个或多个包括填充材料的图像,该填充材料被识别为与这样的像素相似,这样的像素是不同于与被语言模块148识别为根据移除请求在待编辑的图像中将被移除的对象相对应的像素。例如,该不同的像素可以与对象(例如,人)被从中移除的图像的背景相似。
图像搜索模块150向复合模块152提供具有填充材料、替换材料或填充材料和替换材料的图像。
复合模块152接收来自视觉模块146的分割像素(例如,包括待编辑的图像)、来自语言模块148的指示询问是否包括移除请求或替换请求的指示符、来自语言模块148的任何合适数据,例如从询问识别的对象的描述,以及由图像搜索模块150获取的图像,并且生成一个或多个复合图像,以满足从由会话模块144所引导的被引导的用户会话中获取的编辑询问。
在一个示例中,复合模块152通过将来自由图像搜索模块150所提供的图像的填充材料或替换材料与由视觉模块146所提供的待编辑的图像进行复合,来生成针对由图像搜索模块150提供的每个图像的复合图像。对于移除请求,复合包括移除与待移除对象相对应的待编辑的图像的分割像素的内容。之后,复合模块152将填充材料的内容添加至与待移除对象相对应的像素。对于替换请求,复合模块152用替换材料替换待编辑的图像中与待替换对象相对应的像素的内容。
复合模块152可以以任何合适方式处理填充材料或替换材料,以使其与待编辑的图像复合。例如,复合模块152可以从图像搜索模块150获取的图像中提取填充材料或替换材料,过滤材料(例如,调整颜色、亮度、对比度、施加过滤器等)、调整材料尺寸(例如,在材料像素之间内插、抽取材料像素的十分之一、或同时采取两种措施,以伸展或挤压材料)、旋转材料、修剪材料、将材料本身复合或与其它填充或替换材料复合等。
复合模块152向协调模块154提供一个或多个复合图像。协调模块154接收来自复合模块152的复合图像,并从复合图像生成被协调的图像。虽然在图4中未示出,但协调模块154可以接收由系统400生成或使用的任何其它合适数据,例如来自语言模块148的对象标识符、来自视觉模块146的分割像素等。
协调模块154以任何合适方式协调由复合模块152提供的复合图像。在一个示例中,协调模块154通过移除复合图像中的复合人工痕迹(例如光线不匹配)、调整或移除阴影、融合替换或填充材料、执行背景去污等,为由复合模块152接收的每个复合图像产生被协调的图像。附加地或备选地,协调模块154可以用神经网络协调复合图像,该神经网络专门针对从待编辑的图像中移除或替换的对象类型训练,用于形成复合图像、待编辑的图像的背景或其组合。例如,当移除图像中的人或用海滩景色替换人时,协调模块154可以使用被训练为将人与海滩景色协调的神经网络。这里,人是待替换或待移除对象,海滩景色是待编辑的图像的背景。由协调模块154生成的被协调的图像提供给显示模块156。
显示模块156接收来自协调模块154的被协调的图像。附加地或备选地,显示模块156接收系统400使用或生成的任何合适图像,例如由视觉模块146获取的待编辑的图像、由图像搜索模块获取的具有填充材料或替换材料的图像、中间图像(例如,由视觉模块146生成的包括指示符的图像,例如由语言模块148指示的图像中对象的套索、封闭框、阴影、图案等)等。显示模块156在用户界面(在下文中更详细讨论)中展示图像。
通过展示任何合适图像、掩膜、对象、像素、询问等,显示模块156可以展示系统400的任何结果(例如,中间或最终结果),并提示用户进行反馈。例如,显示模块156可以显示由视觉模块146生成的掩膜,并提示用户校正掩膜(例如,移动掩膜边界)或确认掩膜正确(例如,用户想干什么)。附加地或备选地,显示模块156可以展示系统400所使用的参数,例如协调模块154所使用的协调过程的参数,以允许用户调整该参数。例如,用户可以调整用于产生被协调的图像的亮度参数的亮度。在一个示例中,用户可以调整由视觉模块146生成的背景段的边界,例如通过移动限定图像背景景色的分离海滩和海洋的水位线。
此外,显示模块156根据分配给被协调的图像的得分以一定顺序展示来自协调模块154的被协调的图像。得分可以以任何合适方式分配,例如,由复合模块152或协调模块154基于复合、协调或复合和协调分配。在一个示例中,得分是基于复合模块152或协调模块154各自执行复合或协调消耗或耗费的处理资源水平(例如,编辑函数数量、处理器指令数量、时钟周期数、算法迭代数及其组合等)。得分可以分别针对复合和协调生成,并独立或组合以生成显示模块156所使用的展示被协调的图像的顺序。
系统400构成对没有被引导的用户会话益处、手动移除或替换待编辑的图像中对象的系统的改进。系统400生成自动满足替换请求或移除请求而无需用户进行高水平训练的多种方案。即使是新手用户也可以在不依赖另一方(例如,在线照片编辑服务、或者知道如何像专家一样使用Adobe的朋友)的情况下生成外观自然的移除或替换图像中的对象的被协调的图像。用户仅需提供待编辑的图像并参与与计算设备之间的被引导的会话以获取移除或替换图像中的对象的被协调的图像。因此,与没有引导用户会话益处、手动移除或替换待编辑的图像中对象的系统相比,用户可以迅速、廉价、毫不费力且基本不延迟地生成多个外观自然的被协调的图像。此外,通过在被引导的用户会话期间接收多模式用户输入,系统400与其它系统相比更可靠(例如,能够正确地解读用户指令,其它方法则不行),从而与在被引导的用户会话期间不接收多模式用户输入的其它系统的用户相比,系统400的用户更不容易失败。
考虑了示例系统400,现在考虑根据本公开一个或多个方面示例用户界面的讨论。
示例用户界面
图5示出了根据本公开的一个或多个方面示例用户界面500。在图5中,示例用户界面500包括四个数据面板,这些将在下文中讨论。然而,用户界面500可以包括任何合适数量及合适类型的数据面板,以显示数据、图像等。用户界面500是由图4中的系统400生成并且在图1中的显示器122上显示的用户界面的一个示例。因此,显示用户界面500的设备可以是任何合适设备,例如图1中的设备104之一。
用户界面500包括询问面板502,其包括设备(例如图1中的设备104之一)与用户(例如图1中的用户102)之间的被引导的用户会话的代表504。由代表504指示的被引导的用户会话是图1中用户会话108的一个示例。
用户界面500还包括中间结果面板506。中间结果面板506包括控件508,其适用于控制中间结果面板506中显示的图像。控件508可以包括任何合适控件,例如用于亮度、对比度、颜色、滤镜选择、阴影、剪切、覆盖等的调节器。此外,控件508可以包括用于用户会话的控件,例如音量、被引导的用户会话的在代表504中显示的文本的语言、静音、混响量、被引导的用户会话中语音防失真滤波器的带宽、被引导的用户会话的采样速率和数据比特宽度等。
中间结果面板506可以显示任何合适图像,例如中间图像、复合图像、被协调的图像、具有填充材料的图像、具有替换材料的图像等。在图5的示例中,中间结果面板506显示包括消防栓和狗、背景中有灌木丛的中间图像510。中间图像510是由图1和图2中的视觉模块146生成的图像的一个示例。响应于代表504中的被引导的用户会话,中间图像510包括对象指示符512(在该示例中为候选消防栓)。
例如,在代表504中,作为可能已经进行的被引导的用户会话的一部分,设备询问:“你想要移除什么?”。因此,“您想要移除什么?”可能不是代表504的被引导的用户会话的开始。用户回答:“移除消防栓”。响应于用户要求移除消防栓,用户界面500在中间结果面板506中展示中间图像510,并用指示符512指示用于消防栓的候选对象。指示符512可以是任何合适指示符,例如套索、圆圈、阴影、图案、掩膜、覆盖、箭头、近似文本等。在图5的示例中,指示符512包括包围消防栓与狗的头部的虚线轮廓。因此,指示符512不能正确识别消防栓,因为其中也包括狗的头部。作为用指示符512展示中间图像510并通过设备询问“这是消防栓吗”的结果,用户在代表504的被引导的用户会话中回应:“不,你还选中了狗的头部。这是消防栓。”
用户界面500接收多模式用户输入,包括代表504所指示的语音(例如,“不,你还选中了狗的头部。这是消防栓”)以及用户界面500中用工具进行的选择。在图5的示例中,用户选择指示符512(例如,通过用鼠标指向并点击鼠标键),用手形514表示。用户还移动指示符512以调整其指示的内容(例如,通过一直按下鼠标键并移动或调整指示符512)。在图5中,用箭头516示出指示符512的调整,从而使用户可以调整指示符512以使其包括消防栓而不包括狗的头部,从而校正指示符512。可以在用户界面500中使用任何合适的利用工具的选择,以提供多模式用户输入,例如用户点击对象中央(例如,点击中间图像510中消防栓的中央)同时说话(例如,在代表504的被引导的用户会话中,“不,你还选中了狗的头部。这是消防栓”),这代表了多模式用户输入。通过使用多模式输入,而不是用户必须通过效率较低的方式选择对象,例如,用工具刷在对象上绘画,可以快速并且准确地识别待编辑的图像中的对象,而无需用户付出努力。
继续参见图5中的示例,代表504中的被引导的用户会话包括来自用户的“把背景变成山景”的编辑询问。参与代表504的被引导的用户会话的设备使用图像增强系统(例如,图1的图像增强系统110或图4的系统400)并将编辑询问解读为包括用山景替换背景的替换请求。例如,“背景”是待替换对象,“山景”是用于替换待替换对象的对象。因此,用户界面500包括图像面板518,其被配置为显示任何合适类型的图像,例如中间图像、复合图像、被协调的图像、具有填充材料的图像、具有替换材料的图像等。在图5的示例中,图像面板518显示多个被协调的图像520,每个被协调的图像520包括移除了消防栓的中间图像510中的狗,以及用山景替换的背景(例如灌木丛)。被协调的图像520中的山景包括从任何合适图像中获取的填充材料,例如,从图像数据库中获取的库存图像。可以使用图像面板518的滚动条522搜索和滚动被协调图像的520。例如,通过上下滑动滚动条522的控件,图像面板518中的被协调的图像520分别上下滚动,从而在图像面板518中展示不同图像。
用户在图像面板518中选择一个被协调的图像520。在图5中,通过手形524指示该选择。例如,手形524指示用户选择显示在图像面板518右下角的一个被协调的图像520。被选则的图像可以与用户偏好相对应的山景。
作为用户在图像面板518中选择图像的结果,图像在显示面板526中展示。例如,响应于用户通过用手形524指示来选择显示在图像面板518右下角的一个被协调的图像520,在显示面板526中显示被协调的图像528。注意,显示面板526中的被协调的图像528与由手形524指示的被选择图像相对应(例如,它们是同一图像)。在一个示例中,响应于用户选择显示在图像面板518中一个协调图像520,显示面板526显示在用户界面500中。例如,在用户选择显示在图像面板518中一个被协调的图像520之前,显示面板526可以不显示在用户界面500中。
此外,显示面板526包括控件530,其适用于控制显示面板526中显示的图像。控件530可以包括任何合适控件,例如用于亮度、对比度、颜色、滤镜选择、阴影、剪切、覆盖、保存图像、图像中多个像素、纵横比等的调节器。在一个示例中,控件530包括对导出被协调的图像(例如,被协调的图像528)的选择,从而将其发送至计算设备,例如图1中的计算设备104之一。例如,可以生成被协调的图像528并将其显示在计算设备104之一的用户界面上,并通过控件530中的选择发送至计算设备104中的另一个。在一个示例中,选择需要单个用户动作,例如,启用“发送给朋友”按钮,该按钮导致将被协调的图像528发送至计算设备、人或其组合的预定列表。
考虑了示例用户界面500,现在考虑根据本公开一个或多个方面的用于移除和替换待编辑的图像中对象的示例程序的讨论。
示例程序
图6示出了根据本公开一个或多个方面的用于通过移除或替换图像中对象以增强待编辑的图像的示例程序600。程序方面可以在硬件、固件或软件,或者其组合中实现。该程序示出为一组框,其指定由一个或多个设备执行的操作,且不一定限于所示出的各框所执行的操作顺序。在至少一些方面,该程序可以由适当配置的计算设备在数字媒体环境中执行(例如图1中的一个或多个计算设备104或服务器116)该计算设备利用图像增强系统(例如,系统400或图像增强系统110)。图像增强系统实施程序600可以是已经安装在计算设备上的独立应用程序、由计算设备可访问的服务提供商托管的服务、计算设备的插件模块或其组合。
用户会话由计算设备引导(框602)。例如,用户会话为被引导的用户会话。用户会话包括用于待编辑的图像的编辑询问。用户会话可以在计算设备和与计算设备通话的一个或多个用户之间进行。在一个示例中,对用户会话的引导包括广播编辑询问(例如,“你想要移除或替换东西吗?”),以及接收指示对象的确认(例如,“是,移除野餐桌”)。因此,对用户会话的引导还可以包括接收替换请求的指示或移除请求的指示。
查明与用户会话中所指示的待移除或待替换对象相对应的图像的像素(框604)。查明像素可以包括确定像素。对象可以指示或包括任何合适对象,例如天空、人、动物、无生命对象或图像背景。在一个示例中,查明图像的像素包括确定不包括图像的像素的一组反像素,以及从该组反像素确定图像的像素。
附加地或备选地,查明图像的像素可以包括:生成针对对象的对象掩膜,扩展对象掩膜以创建由对象掩膜的边界界定的区域,以及通过将区域中的背景与前景分离,来生成表示与对象相对应的图像的像素的细化掩膜。在一个示例中,移除图像背景对该区域内像素的贡献。
此外,查明与对象相对应的图像的像素可以由特定于对象的视觉模块来执行。例如,视觉模块可以用被训练为识别图像中各实体的一个或多个神经网络执行实体分割。实体可以是任何合适对象。
确定编辑询问是否包括移除请求或替换请求(框606)。在一个示例中,确定编辑询问是否包括移除请求或替换请求是基于将用户会话的单词与分别被确定为与移除或替换相似的单词列表匹配。附加地或备选地,确定编辑询问是否包括移除请求或替换请求包括处理编辑询问以从用户会话的单词串中识别主体-对象对。单词串被分离为第一部分和第二部分,第一部分包含与主体-对象对中的主体部分相关的单词串,第二部分包含与主体-对象对中的对象部分相关的单词串。第一部分和第二部分可以用于获取包括填充材料或替换材料的图像,例如,通过利用来自第一部分或第二部分的术语来构建搜索询问。
响应于确定指示编辑询问包括移除请求,进入框608、610和612。
获取被识别为与不同于图像的像素的图像的像素相似的填充材料(框608)。填充材料可以以任何合适方式获取,例如通过获取包括填充材料的一个或多个图像。例如,填充材料可以从待编辑的图像本身获取,例如,从不同于与待移除对象相对应的图像的像素的图像部分获取。在一个示例中,当确定编辑询问是否包括移除请求或替换请求时,基于使用通过处理编辑询问而获取的单词串的第一部分的单词的图像搜索,获取包括填充材料的一个或多个图像。附加地或备选地,填充材料可以被合成(例如,通过以从图像中提取填充材料之外的其它方法创建填充材料的过程而生成)。在一个示例中,填充材料通过下述方式获取:合成第一填充材料,从图像(例如,搜索结果中返回的图像)获取第二填充材料,并且以任何合适方式组合第一填充材料和第二填充材料以形成填充材料。
从图像的像素中移除内容(框610)。因此,在图像中形成洞。
将填充材料添加至图像的像素,以形成一个或多个复合图像(框612)。因此,添加填充材料填充从像素移除内容时形成的洞。如上所述,添加填充材料可以包括执行背景去污。
响应于确定指示编辑询问包括替换请求,进入框614和616。
获取被识别为与图像的像素相似,并且与替换请求相对应的替换材料(框614)。替换材料可以以任何合适方式获取,例如通过获取包括替换材料的一个或多个图像。例如,替换材料可以从待编辑的图像本身获取,例如,从不同于与待替换对象相对应的图像的像素的图像部分获取。在一个示例中,当确定编辑询问是否包括移除请求或替换请求时,基于使用通过处理编辑询问而获取的单词串的第二部分的单词的图像搜索,获取包括替换材料的一个或多个图像。附加地或备选地,替换材料可以被合成(例如,通过以从图像中提取替换材料之外的其它方法创建替换材料的过程而生成)。在一个示例中,替换材料通过下述方式获取:合成第一替换材料,从图像(例如,搜索结果中返回的图像)获取第二替换材料,并且以任何合适方式组合第一替换材料和第二替换材料以形成替换材料。
此外,可以从图像数据库获取包括填充材料的图像和包括替换材料的图像,例如库存图像数据库或用户的个人图像收藏。附加地或备选地,可以通过形成询问字符串获取包括填充材料的一个或多个图像及包括替换材料的一个或多个图像,询问字符串包括来自用户会话的单词与来自用户会话的其它单词的同义词的组合。在一个示例中,填充材料或替换材料从至少一个图像获取,该至少一个图像包括待编辑的图像或图像数据库中的图像中的至少一个。附加地或备选地,填充材料或替换材料可以通过合成填充材料或替换材料获取。
用替换材料替换图像的像素的内容,以形成一个或多个复合图像(框616)。
协调一个或多个复合图像,以形成一个或多个被协调的图像(框618)。协调可以包括调整一个或多个复合图像中至少一个图像的光照,以匹配图像材料之间的一天中的时间。
在计算设备的用户界面中展示一个或多个被协调的图像(框620)。在一个示例中,用户界面显示指示候选对象的中间图像,并且请求确认中间图像中的候选对象匹配编辑询问所指示的对象。该确认可以以多模式输入接收,例如同时发生的语音和鼠标选择。
图7示出了根据本公开的一个或多个方面的用于通过移除或替换图像中对象以增强待编辑的图像的示例程序700。程序方面可以在硬件、固件或软件,或者其组合中实现。该程序示出为一组框,其指定由一个或多个设备执行的操作,且不一定限于所示出的各框所执行的操作顺序。在至少一些方面,该程序可以由适当配置的计算设备在数字媒体环境中执行(例如图1中的一个或多个计算设备104或服务器116)该计算设备利用图像增强系统(例如,系统400或图像增强系统110)。图像增强系统实施程序700可以是已经安装在计算设备上的独立应用程序、由计算设备可访问的服务提供商托管的服务、计算设备的插件模块或其组合。
引导用户会话,该用户会话包括用于待编辑的图像的编辑询问(框702)。例如,用户会话为被引导的用户会话,例如问答格式、访谈格式等。用户会话可以在计算设备和与计算设备通话的一个或多个用户之间进行。
查明与用户会话中所指示的待移除或待替换对象相对应的图像的像素(框704)。在一个示例中,用特定于对象的视觉模块来确定像素,该视觉模块包括用包括多个不同对象实例的训练图片集被训练为识别对象的神经网络(例如,用具有不同人的训练图片被训练为识别人)。
显示具有候选对象的指示的图像(框706)。指示的示例包括套索、高亮、箭头、图案、掩膜、文本框、阴影、容器(例如封闭部分对象的套索、框体、矩形、斑点、圆圈、椭圆等)等。
确认候选对象与对象匹配(框708)。确认候选对象图像与对象匹配可以包括:接收多模式用户输入以校正候选对象。一种模式可以是语音,另一种模式可以是键盘、鼠标、手写笔、姿势或触摸屏输入等。
确定编辑询问是否包括移除请求或替换请求(框710)。例如,编辑询问可以由语言处理器处理以识别关键词,包括主体-对象对、主体-对象-谓语三重组等,以确定待移除对象、待替换对象、替换待替换对象的对象、对象描述符(例如汽车的年份和颜色)等。谓语和谓语同义词可以与编辑功能(例如,移除和替换)的同义词列表匹配,以确定编辑询问是否包括移除请求或替换请求。
响应于确定指示编辑询问包括移除请求,进入框712和714。
从图像的像素中移除内容(框712)。通过从图像的像素中移除内容,在图像中形成洞,该洞可以由填充材料填充。
将被识别为与不同于图像的像素的图像的像素相似的填充材料添加至图像的像素中以形成一个或多个复合图像(框714)。在一个示例中,不同像素与图像相对应的背景。附加地或备选地,不同像素可以与图像中的另一对象、图像前景或图像的任何合适部分相对应。
响应于确定指示编辑询问包括替换请求,用被识别为与图像的像素相似并且与替换请求的替换材料替换图像相对应的像素的内容,以形成一个或多个复合图像(框716)。例如,可以用编辑询问中指示的不同天气的另一天空背景替换天空背景。
通过根据不同像素调整替换材料或填充材料,协调一个或多个复合图像以形成一个或多个被协调的图像(框718)。在一个示例中,协调通过特定于对象的协调模块来执行。协调消除编辑的人工痕迹(例如,复合人工痕迹),并使被协调的图像看起来自然,从而使观察者不易检测到填充材料和替换材料。协调可以包括调整填充材料或替换材料的像素之外的其它像素。
在计算设备的用户界面中展示一个或多个被协调的图像(框720)。在一个示例中,用户界面接收多模式输入。附加地或备选地,响应于获取待编辑的图像(例如,当图像加载至图像增强系统110中时),可以部分或整体地显示用户界面。
本文所述的程序构成对没有被引导的用户会话益处、手动移除或替换待编辑的图像中对象的程序的改进。本文所述的程序生成自动满足替换请求或移除请求而无需用户进行高水平训练的多种方案。即使是新手用户也可以在不依赖另一方(例如,在线照片编辑服务、或者知道如何像专家一样使用Adobe的朋友)的情况下生成外观自然的移除或替换图像中的对象的被协调的图像。用户仅需提供待编辑的图像并参与与计算设备之间的引导会话,即可获得移除或替换图像中对象的协调图像。因此,与没有引导用户会话益处、手动移除或替换待编辑的图像中对象的方法相比,用户可以迅速、廉价、毫不费力且基本不延迟地生成多个外观自然的协调图像。此外,通过展示中间图像并接收针对用户图像的多模式输入而非教程图像,本文所述的方法指导用户在操作用户真实数据而非对用户意义不大的图像时如何使用编辑应用程序。此外,通过在被引导的用户会话期间接收多模式用户输入,本文所述的方法与其它方法相比更可靠(例如,本文所述的方法可以正确地解读用户指令,而其它方法却不行)。因此,与在被引导的用户会话期间不接收多模式用户输入的其它方法的用户相比,本文所述方法的用户更不容易失败。
已经考虑了根据一个或多个实施方式的示例程序,现在考虑可以用于实践本文所述发明原理的示例系统和设备。
示例系统和设备
图8示出了总体上在800处的示例系统,包括示例计算设备802,其代表可以实现本文所述的各种技术的一个或多个计算系统和设备。这通过包括如上文所述进行操作的图像增强系统110、系统400、图像增强应用程序120和图像支持系统118来说明。计算设备802可以是,例如,用户计算设备(例如,计算设备104之一),或服务提供商的服务器设备(例如,服务器116)。此外,计算设备802可以包括片上系统、多个计算设备及其组合,或其它任何合适的计算设备或计算系统。因此,图8示出了计算设备802作为平板电脑、笔记本电脑、智能电话、智能眼镜和相机中的一个或多个,但这些示例是说明性的且不以任何方式意味着限定计算设备802中所包括的设备的类型或数量。
示例计算设备802包括处理系统804、一个或多个计算机可读介质806,以及彼此通信耦合的一个或多个I/O接口808。虽然未示出,但计算设备802可以还包括系统总线或其它数据和命令传输系统,其将各种组件彼此耦合。系统总线可以包括任何一个总线结构或不同总线结构的组合,例如存储器总线或存储器控制器、外围总线、通用串行总线、以及利用各种总线架构中的任何一种的处理器或本地总线。还构想了各种其它示例,例如控件和数据线。
处理系统804代表用硬件执行一个或多个操作的功能。因此,处理系统804被示出为包括可以被配置为处理器、功能块等的硬件元件810。这可以包括在硬件中实现为专用集成电路或用一个或多个半导体形成的其它逻辑装置。硬件元件810不受其构成材料或其中采用的处理机制的限制。例如,处理器可以由半导体(一个或多个)和晶体管构成(例如,电子集成电路(IC))。在这种背景下,处理器可执行指令可以是电子可执行指令。图1中的处理器124是处理系统804的一个示例。
图中示出计算机可读存储介质806包括存储器/存储装置812。图1中的存储器126是包括在存储器/存储装置812中的存储器/存储装置的一个示例。存储器/存储装置部件812可以包括易失性介质(例如随机存取存储器(RAM))、非易失性介质(例如只读存储器(ROM)、闪存、光盘、磁盘等)或其组合。存储器/存储装置部件812可以包括固定介质(例如RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如闪存、可移动硬盘驱动器、光盘等)。计算机可读介质806可以以各种其它方式配置,下文中将进一步详细描述。
输入/输出接口808代表允许用户向计算设备802输入命令和信息,同时允许使用各种输入/输出设备将信息呈现给用户和其它部件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如鼠标)、麦克风,麦克风阵列、扫描仪、触摸功能(例如,被配置为检测物理触摸的电容或其它传感器)、相机(例如,其可以利用如红外频率等可见或不可见波长将移动识别为不涉及触摸的手势)等。输出设备的示例包括显示设备(例如显示器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。计算设备802可以以各种其它方式配置以支持用户互动,下文中将进一步详细描述。
计算设备802还包括应用程序814。应用程序814代表能够在计算设备802上运行的任何合适应用程序,并且可以包括网络浏览器,其可操作为访问各种类型的基于网络的资源(例如资产、媒体剪辑、图像、内容、配置文件、服务、用户资料等)。如前所述,应用程序814包括图像增强应用程序120。此外,应用程序814包括支持图像增强系统110、系统800和图像支持系统118的任何应用程序。
这里可以在软件、硬件元件或程序模块的一般背景中描述各种技术。一般地,此类模块包括执行特定任务或实现特定抽象数据类型的例行程序、程序、对象、元件、部件、数据结构等。在本文中,术语“模块”、“功能”和“部件”一般表示软件、固件、硬件或其组合。本文所述技术的特征是独立于平台的,也就是说,这些技术可以在具有各种处理器的各种商业计算平台上实现。
所述模块和技术的实施方式可以被存储在某种形式的计算机可读介质上或通过某种形式的计算机可读介质传输。计算机可读介质可以包括可以由计算设备802访问的各种介质。作为示例而非限制,计算机可读介质可包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”是指与仅仅信号传输、载波或信号本身相比,能够持久或非瞬时存储信息的介质、设备或其组合。因此,计算机可读存储介质不包括信号本身或信号承载介质。计算机可读存储介质包括硬件,如易失性和非易失性、可移动和不可移动介质,存储设备或其组合,其在适于存储如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其它数据等信息的方法或技术中实现。计算机可读存储介质的示例可包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光学存储器、硬盘、磁带盒、磁带、磁盘存储器或其它磁存储设备,或适于存储所需信息并且可由计算机访问的其它存储设备、有形介质或制品。
“计算机可读信号介质”是指信号承载介质,其被配置为,例如,经由网络,将指令发送至计算设备802的硬件。信号介质通常可以体现计算机可读指令、数据结构、程序模块或调制数据信号中的其它数据,如载波、数据信号或其它传输机制。信号介质还包括任何信息传递介质。术语“调制数据信号”是指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,如有线网络或直接有线连接,以及无线介质,如声音、RF、红外线及其它无线介质。
如前所述,硬件元件810和计算机可读介质1106代表模块、可编程设备逻辑、以硬件形式实现的固定设备逻辑或其组合,其可在一些方面中采用以实现本文所述技术的至少一些方面,例如,执行一个或多个指令。硬件可以包括集成电路或片上系统的构件、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅或其它硬件中的其它实施方式。在这种背景下,硬件可以作为处理设备操作,执行由指令、由硬件实现的逻辑或其组合限定的程序任务,以及作为硬件,用于存储用于执行的指令,如之前所述的计算机可读存储介质。
也可以采用前述的组合来实现本文所述的各种技术。因此,软件、硬件或可执行模块可以实现为一个或多个指令、在某种形式的计算机可读存储介质上实现或者由一个或多个硬件元件810实现的逻辑或其组合。计算设备802可以被配置为实现与软件和硬件模块相对应的特定指令和功能。因此,可以由计算设备802作为软件执行的模块的实现可以至少部分地以硬件实现,例如,通过使用处理系统804的计算机可读存储介质和硬件元件810。指令和功能可以由一个或多个制品(例如,一个或多个计算设备802或处理系统804)执行/操作,以实现本文描述的技术、模块和示例。
本文描述的技术可以由计算设备802的各种配置支持,并且不限于本文所述技术的特定示例。该功能也可以全部或部分地通过使用分布系统实现,例如,通过下文所述的平台818在“云”816上实现。
云816包括并且代表用于资源820的平台818。平台818提取云816的硬件(例如服务器)的潜在功能和软件资源。资源820可以包括在远离计算设备802的服务器上执行计算机处理时可以使用的应用程序、数据或应用程序和数据。资源820还可以包括在因特网上,通过用户网,例如蜂窝或Wi-Fi网络,或其组合提供的服务。资源820可以包括资产存储器822,其存储资产,例如图像、图片(例如图库中的用户图像、库存图片数据库等)、文档模板、用户资料数据、用户图像收藏,例如在共享照片服务中发布的图片等,并且可以由计算设备802访问。
平台818可以提取资源和功能以将计算设备802连接至其它计算设备。平台818还可以用于提取资源的缩放,以提供满足经由平台818实现的资源820所需的相应级别的缩放。因此,在互连设备实施例中,本文所述功能的实现可以分布在整个系统800中。例如,功能可以部分地在计算设备802上实现,并经由提取云816的功能的平台818实现。
结论
在一个或多个实施方式中,数字媒体环境包括至少一个计算设备。本文描述了用于通过基于被引导的用户会话移除和替换图像中的对象,来引导用户会话并增强待编辑的图像的系统和技术。引导被引导的用户会话,例如,以问答访谈格式引导,以获取编辑询问和编辑询问的参数。通过对象类型特定的计算机视觉方法,来查明与编辑询问所指示的图像中的对象相对应的像素。处理编辑询问以确定器是否包括移除请求或替换请求。基于对编辑询问的处理,构建搜索询问以从例如库存图像数据库获取包括填充材料或替换材料的图像,以分别满足移除请求或替换请求。根据编辑询问,从填充材料或替换材料以及待编辑的图像生成复合图像,并且协调复合图像以消除编辑人工痕迹,并且使得图像看起来自然。用户界面展示图像,包括被协调的图像、复合图像和中间图像。用户界面在被引导的用户会话期间接收多模式用户输入。
虽然本发明针对具体的结构特征和方法作用描述,但应当理解的是,本发明由所附权利要求限定,不一定由本文所述的具体特征或作用限制。相反地,本文所披露的具体结构和作用仅为实施所要求保护的发明的示例形式。
Claims (20)
1.一种由计算设备实现的用于在数字媒体环境中编辑图像的方法,所述方法包括:
启动设备引导的会话,所述设备引导的会话包括由所述计算设备生成的一个或多个提问以及对所述一个或多个提问的一个或多个用户响应;
从所述一个或多个提问以及对所述一个或多个提问的所述一个或多个用户响应提取用于待编辑的图像的编辑询问;
基于所述编辑询问中对于对象的描述和所述图像的语义知识,确定所述图像中的所述对象;以及
引导所述设备引导的会话,包括:在所述设备引导的会话期间,
基于所述图像中的所述对象启动图像搜索;
基于所述图像搜索的结果,提供关于所述对象的经更新提问;以及
基于对关于所述对象的所述经更新提问的附加用户响应,编辑所述图像中的所述对象。
2.根据权利要求1所述的方法,其中所述引导所述设备引导的会话包括:
广播所述编辑询问;以及
以多模式输入接收指示所述对象的确认。
3.根据权利要求1所述的方法,还包括:
查明所述图像中与所述图像中的所述对象对应的像素;
获取被识别为与所述图像中与所述对象对应的所述像素的内容相似的替换材料,并且其中所述编辑所述图像中的所述对象包括:利用所述替换材料替换所述图像中与所述对象对应的所述像素的所述内容,以形成一个或多个复合图像。
4.根据权利要求3所述的方法,其中查明所述图像中与所述对象对应的所述像素包括:
生成针对所述对象的对象掩膜;
扩展所述对象掩膜,以创建由所述对象掩膜的边界界定的区域;以及
通过在所述区域中将背景与前景分离来生成细化掩膜,所述细化掩膜代表所述图像中与所述对象对应的所述像素。
5.根据权利要求4所述的方法,还包括移除来自所述背景的、对所述图像中与所述对象对应的所述像素中位于所述区域中的区域像素的贡献。
6.根据权利要求3所述的方法,还包括:
从所述设备引导的会话的单词的字符串识别主体-对象对;
将所述字符串分离为包括所述主体-对象对的主体单词的主体部分以及包括所述主体-对象对的对象单词的对象部分;并且
其中所述图像搜索基于所述对象部分,并且所述替换材料基于对关于所述对象的所述经更新提问的所述附加用户响应而从所述图像搜索的所述结果而被获取。
7.根据权利要求3所述的方法,还包括:
通过调整所述替换材料来协调所述一个或多个复合图像,以形成一个或多个被协调的图像;以及
在所述计算设备的用户界面中展示所述一个或多个被协调的图像。
8.根据权利要求1所述的方法,还包括:基于将所述设备引导的会话的单词匹配到被确定为是相似的以用于替换的相似单词的列表,确定所述编辑询问包括替换请求。
9.根据权利要求1所述的方法,还包括:
显示中间图像,所述中间图像指示候选对象;以及
请求确认所述中间图像中的所述候选对象与所述图像中的所述对象匹配。
10.根据权利要求1所述的方法,还包括:接收所述图像待被编辑的指示,并且其中启动所述设备引导的会话响应于接收所述指示。
11.根据权利要求3所述的方法,其中所述替换材料从以下至少一项获取:所述待编辑的图像或者图像数据库中的附加图像。
12.根据权利要求3所述的方法,其中所述替换材料通过合成所述替换材料而被获取。
13.一种由计算设备实现的数字媒体环境中的系统,所述系统包括至少部分地被实现在所述计算设备的硬件中的模块,所述系统包括:
会话模块,用于引导设备引导的会话,所述设备引导的会话包括多次的一个或多个提问以及对所述一个或多个提问的一个或多个用户响应,所述一个或多个提问由所述计算设备生成,所述设备引导的会话的范围随着所述多次中的每次而被缩小;
所述会话模块用于从所述一个或多个提问以及对所述一个或多个提问的所述一个或多个用户响应提取用于待编辑的图像的编辑询问;
语言模块,用于基于所述编辑询问中对于对象的描述和所述图像的语义知识来确定所述图像中的所述对象;以及
复合模块,用于基于所述编辑询问来编辑所述图像中的所述对象,以形成一个或多个复合图像。
14.根据权利要求13所述的系统,还包括:
视觉模块,用于查明所述图像中与所述对象对应的像素;
图像搜索模块,用于获取填充材料,所述填充材料被识别为与不同于所述图像中与所述对象对应的所述像素的、所述图像的像素的内容相似;
所述复合模块用于:
从所述图像中与所述对象对应的所述像素中移除对象内容;以及
将所述填充材料添加至所述图像中与所述对象对应的所述像素,以形成一个或多个复合图像。
15.根据权利要求14所述的系统,其中所述图像搜索模块被配置为通过形成询问字符串来获取所述填充材料,所述询问字符串包括来自所述设备引导的会话的单词与来自所述设备引导的会话的其它单词的同义词的组合。
16.根据权利要求13所述的系统,其中所述会话模块被实现为基于满足所述编辑询问的资源可用性来确定所述设备引导的会话的所述范围。
17.根据权利要求13所述的系统,其中所述语言模块被实现为:
将向量空间中的向量分配给所述编辑询问中对于所述对象的所述描述中的单词,所述向量基于共享公共上下文的所述单词而在所述向量空间中相对于彼此被定位;
从所述编辑查询中移除标点和停用词;
将所述向量空间中的附加向量分配给从所述编辑查询中移除所述标点和所述停用词的结果;
确定被分配给所述单词的所述向量与被分配给从所述编辑查询中移除所述标点和所述停用词的所述结果的所述附加向量之间的相似度得分;以及
基于所述相似度得分,确定所述图像中的所述对象。
18.一种由计算设备实现的用于在数字媒体环境中编辑图像的方法,所述方法包括:
用于引导设备引导的会话的步骤,所述设备引导的会话包括用于待编辑的图像的编辑询问并且指示待移除或者待替换的对象,所述设备引导的会话包括如下提问:重复所述对象以确认所述对象而无需要求对所述对象的校正;
用于查明所述图像中与所述对象对应的像素的步骤;
用于确定所述编辑询问是否包括移除请求或者替换请求的步骤;以及
用于响应于所述移除请求而如下操作的步骤:从所述图像中与所述对象对应的所述像素中移除对象内容,并且将填充材料添加至所述图像中与所述对象对应的所述像素,以形成一个或多个复合图像,所述填充材料被识别为与不同于所述图像中与所述对象对应的所述像素的、所述图像的像素的附加内容相似;或者
用于响应于所述替换请求而如下操作的步骤:利用替换材料替换所述图像中与所述对象对应的所述像素的所述对象内容,以形成一个或多个复合图像,所述替换材料被识别为与所述对象内容相似、并且与所述替换请求相对应。
19.根据权利要求18所述的方法,还包括:
用于显示具有候选对象的指示的所述图像的步骤;以及
用于确认所述候选对象与所述对象匹配的步骤,包括接收多模式用户输入以校正所述候选对象。
20.根据权利要求18所述的方法,其中所述设备引导的会话包括用户语音和计算机生成的语音。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/852,253 US10613726B2 (en) | 2017-12-22 | 2017-12-22 | Removing and replacing objects in images according to a directed user conversation |
US15/852,253 | 2017-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109960453A CN109960453A (zh) | 2019-07-02 |
CN109960453B true CN109960453B (zh) | 2023-12-22 |
Family
ID=64453818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811167294.1A Active CN109960453B (zh) | 2017-12-22 | 2018-10-08 | 根据被引导的用户会话移除和替换图像中的对象 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10613726B2 (zh) |
CN (1) | CN109960453B (zh) |
AU (1) | AU2018247342B2 (zh) |
DE (1) | DE102018007937A1 (zh) |
GB (1) | GB2569847B (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107818538A (zh) * | 2017-09-27 | 2018-03-20 | 百度在线网络技术(北京)有限公司 | 水印图像的处理方法、装置、设备及计算机可读存储介质 |
TWI682359B (zh) * | 2018-01-29 | 2020-01-11 | 國立清華大學 | 影像補全方法 |
US11487501B2 (en) * | 2018-05-16 | 2022-11-01 | Snap Inc. | Device control using audio data |
US10796690B2 (en) | 2018-08-22 | 2020-10-06 | Adobe Inc. | Digital media environment for conversational image editing and enhancement |
EP3905187A4 (en) * | 2018-12-27 | 2021-12-29 | NEC Corporation | Information processing system, information processing device, information processing method, and program |
US11783443B2 (en) | 2019-01-22 | 2023-10-10 | Fyusion, Inc. | Extraction of standardized images from a single view or multi-view capture |
US10887582B2 (en) | 2019-01-22 | 2021-01-05 | Fyusion, Inc. | Object damage aggregation |
US11176704B2 (en) | 2019-01-22 | 2021-11-16 | Fyusion, Inc. | Object pose estimation in visual data |
US10949978B2 (en) * | 2019-01-22 | 2021-03-16 | Fyusion, Inc. | Automatic background replacement for single-image and multi-view captures |
CN111984852A (zh) * | 2019-05-21 | 2020-11-24 | 微软技术许可有限责任公司 | 生成式图像获取 |
US11100145B2 (en) | 2019-09-11 | 2021-08-24 | International Business Machines Corporation | Dialog-based image retrieval with contextual information |
CN110674805B (zh) * | 2019-10-11 | 2022-04-15 | 杭州睿琪软件有限公司 | 昆虫识别方法及系统 |
US11481882B2 (en) * | 2019-11-18 | 2022-10-25 | Shinyfields Limited | Systems and methods for selective replacement of objects in images |
KR20210070029A (ko) | 2019-12-04 | 2021-06-14 | 삼성전자주식회사 | 반복적 생성을 통해 출력 콘텐트를 향상시키기 위한 디바이스, 방법, 및 프로그램 |
CN111178167B (zh) * | 2019-12-12 | 2023-07-25 | 咪咕文化科技有限公司 | 穿帮镜头审核方法、装置、电子设备及存储介质 |
US11776142B2 (en) | 2020-01-16 | 2023-10-03 | Fyusion, Inc. | Structuring visual data |
US11562474B2 (en) | 2020-01-16 | 2023-01-24 | Fyusion, Inc. | Mobile multi-camera multi-view capture |
CN111447410A (zh) * | 2020-03-24 | 2020-07-24 | 安徽工程大学 | 一种犬只状态识别监控系统及方法 |
CN111556278B (zh) * | 2020-05-21 | 2022-02-01 | 腾讯科技(深圳)有限公司 | 一种视频处理的方法、视频展示的方法、装置及存储介质 |
US20210407051A1 (en) * | 2020-06-26 | 2021-12-30 | Nvidia Corporation | Image generation using one or more neural networks |
US11670023B2 (en) * | 2020-08-31 | 2023-06-06 | Adobe Inc. | Artificial intelligence techniques for performing image editing operations inferred from natural language requests |
US11281928B1 (en) * | 2020-09-23 | 2022-03-22 | Sap Se | Querying semantic data from unstructured documents |
CN112637517B (zh) * | 2020-11-16 | 2022-10-28 | 北京字节跳动网络技术有限公司 | 视频处理方法、装置、电子设备及存储介质 |
US20220278990A1 (en) * | 2021-03-01 | 2022-09-01 | Lenovo (Singapore) Pte. Ltd. | Graphical user interfaces for authentication to use digital content |
US11605151B2 (en) | 2021-03-02 | 2023-03-14 | Fyusion, Inc. | Vehicle undercarriage imaging |
US20220327709A1 (en) * | 2021-04-12 | 2022-10-13 | Snap Inc. | Garment segmentation |
US11570318B2 (en) * | 2021-06-09 | 2023-01-31 | Adobe Inc. | Performing global image editing using editing operations determined from natural language requests |
US20230059007A1 (en) * | 2021-08-20 | 2023-02-23 | Adobe Inc. | Generating object-based layers for digital image editing using object classification machine learning models |
CN114661332B (zh) * | 2022-03-07 | 2022-09-16 | 北京时空墨科技有限公司 | 素材的替换方法、装置和管理设备 |
US20230368339A1 (en) * | 2022-05-13 | 2023-11-16 | Adobe Inc. | Object class inpainting in digital images utilizing class-specific inpainting neural networks |
CN114820398B (zh) * | 2022-07-01 | 2022-11-04 | 北京汉仪创新科技股份有限公司 | 基于扩散模型的图片字体替换方法、系统、设备和介质 |
CN116168119B (zh) * | 2023-02-28 | 2024-05-28 | 北京百度网讯科技有限公司 | 图像编辑方法、装置、电子设备、存储介质及程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516884A (zh) * | 2013-09-26 | 2015-04-15 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
CN104731446A (zh) * | 2013-12-20 | 2015-06-24 | 奥多比公司 | 基于提示的斑点修复技术 |
CN106020809A (zh) * | 2016-05-15 | 2016-10-12 | 大连文森特软件科技有限公司 | 网络游戏文学生成系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030190090A1 (en) * | 2002-04-09 | 2003-10-09 | Beeman Edward S. | System and method for digital-image enhancement |
US20080005269A1 (en) * | 2006-06-29 | 2008-01-03 | Knighton Mark S | Method and apparatus to share high quality images in a teleconference |
US8375397B1 (en) * | 2007-11-06 | 2013-02-12 | Google Inc. | Snapshot view of multi-dimensional virtual environment |
US8737815B2 (en) * | 2009-01-23 | 2014-05-27 | The Talk Market, Inc. | Computer device, method, and graphical user interface for automating the digital transformation, enhancement, and editing of personal and professional videos |
US8659622B2 (en) * | 2009-08-31 | 2014-02-25 | Adobe Systems Incorporated | Systems and methods for creating and editing seam carving masks |
EP2549735A3 (en) * | 2011-07-19 | 2014-08-27 | Samsung Electronics Co., Ltd. | Method of editing static digital combined images comprising images of multiple objects |
US8861868B2 (en) * | 2011-08-29 | 2014-10-14 | Adobe-Systems Incorporated | Patch-based synthesis techniques |
US11074495B2 (en) | 2013-02-28 | 2021-07-27 | Z Advanced Computing, Inc. (Zac) | System and method for extremely efficient image and pattern recognition and artificial intelligence platform |
US9443307B2 (en) | 2013-09-13 | 2016-09-13 | Intel Corporation | Processing of images of a subject individual |
US9478006B2 (en) * | 2014-03-28 | 2016-10-25 | Adobe Systems Incorporated | Content aware cropping |
US20150281148A1 (en) * | 2014-03-31 | 2015-10-01 | Microsoft Corporation | Immersive document view |
WO2015196038A1 (en) | 2014-06-20 | 2015-12-23 | Google Inc. | Image editing using selective editing tools |
-
2017
- 2017-12-22 US US15/852,253 patent/US10613726B2/en active Active
-
2018
- 2018-10-08 DE DE102018007937.7A patent/DE102018007937A1/de active Pending
- 2018-10-08 CN CN201811167294.1A patent/CN109960453B/zh active Active
- 2018-10-15 AU AU2018247342A patent/AU2018247342B2/en active Active
- 2018-10-22 GB GB1817165.2A patent/GB2569847B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516884A (zh) * | 2013-09-26 | 2015-04-15 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
CN104731446A (zh) * | 2013-12-20 | 2015-06-24 | 奥多比公司 | 基于提示的斑点修复技术 |
CN106020809A (zh) * | 2016-05-15 | 2016-10-12 | 大连文森特软件科技有限公司 | 网络游戏文学生成系统 |
Non-Patent Citations (1)
Title |
---|
Gierad Laput等.PixelTone: A Multimodal Interface for Image Editing.《CHI 2013:proceedings of the SIGCHI Conference on Human Factors in Computaing System》.2013,正文第2,4-7页、图4. * |
Also Published As
Publication number | Publication date |
---|---|
GB201817165D0 (en) | 2018-12-05 |
GB2569847B (en) | 2022-09-28 |
AU2018247342A1 (en) | 2019-07-11 |
AU2018247342B2 (en) | 2021-10-14 |
GB2569847A (en) | 2019-07-03 |
US10613726B2 (en) | 2020-04-07 |
DE102018007937A1 (de) | 2019-06-27 |
CN109960453A (zh) | 2019-07-02 |
US20190196698A1 (en) | 2019-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109960453B (zh) | 根据被引导的用户会话移除和替换图像中的对象 | |
US10657652B2 (en) | Image matting using deep learning | |
AU2019222819B2 (en) | Method for scaling object detection to a very large number of categories | |
US20190332937A1 (en) | Recurrent neural network architectures which provide text describing images | |
US10867416B2 (en) | Harmonizing composite images using deep learning | |
CN108122264B (zh) | 促进草图到绘画变换 | |
KR102089100B1 (ko) | 이미지 데이터베이스 기반 상호인식차를 최소화하는 인테리어 서비스 제공 시스템 | |
US20210027448A1 (en) | Utilizing object attribute detection models to automatically select instances of detected objects in images | |
Cheng et al. | ImageSpirit: Verbal guided image parsing | |
US10521567B2 (en) | Digital image processing for element removal and/or replacement | |
US10769718B1 (en) | Method, medium, and system for live preview via machine learning models | |
US20200288204A1 (en) | Generating and providing personalized digital content in real time based on live user context | |
US20190057527A1 (en) | Digital Media Environment for Style-Aware Patching in a Digital Image | |
US10339642B2 (en) | Digital image processing through use of an image repository | |
US9881000B1 (en) | Avoiding sentiment model overfitting in a machine language model | |
TW201602814A (zh) | 模組化搜尋物件架構相關強化搜尋結果 | |
CN117237606A (zh) | 兴趣点图像生成方法、装置、电子设备及存储介质 | |
CN110659419B (zh) | 确定目标用户的方法及相关装置 | |
Efimova et al. | Text-based sequential image generation | |
KR20220036772A (ko) | 기관 리포지토리와 연계된 개인기록 통합 관리 서비스 제공 시스템 | |
US11644961B1 (en) | Utilizing a transformer-based generative language model to generate digital design document variations | |
Zhang | Improvements on style transfer from photographs to Chinese ink wash paintings based on generative adversarial networks | |
Arora et al. | (Re) framing built heritage through the machinic gaze | |
KR20210090273A (ko) | 음성패킷 추천방법, 장치, 설비 및 저장매체 | |
CN117556036A (zh) | 摘要生成模型的训练方法、摘要生成方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |