US20190164322A1 - Presenting multiple image segmentations - Google Patents

Presenting multiple image segmentations Download PDF

Info

Publication number
US20190164322A1
US20190164322A1 US15/826,162 US201715826162A US2019164322A1 US 20190164322 A1 US20190164322 A1 US 20190164322A1 US 201715826162 A US201715826162 A US 201715826162A US 2019164322 A1 US2019164322 A1 US 2019164322A1
Authority
US
United States
Prior art keywords
image
mask
masks
edits
user
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.)
Granted
Application number
US15/826,162
Other versions
US10977844B2 (en
Inventor
Sarah Aye Kong
I-Ming Pao
Hyunghwan Byun
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adobe Inc filed Critical Adobe Inc
Priority to US15/826,162 priority Critical patent/US10977844B2/en
Assigned to ADOBE SYSTEMS INCORPORATED reassignment ADOBE SYSTEMS INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KONG, SARAH AYE, BYUN, HYUNGHWAN, PAO, I-MING
Assigned to ADOBE INC. reassignment ADOBE INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: ADOBE SYSTEMS INCORPORATED
Publication of US20190164322A1 publication Critical patent/US20190164322A1/en
Priority to US17/214,918 priority patent/US11468614B2/en
Application granted granted Critical
Publication of US10977844B2 publication Critical patent/US10977844B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20164Salient point detection; Corner detection

Definitions

  • Image segmentation is generally the process of generating a segment of an image.
  • Such a segment can be visualized in an editing environment using a mask that indicates the segmented portion of an image to which edits will be applied as opposed to the portions of the image that will not be affected by edits.
  • a segment can be created along boundaries within an image so that the segment designates an object and/or feature within the image.
  • the image in a portrait of an individual, can be segmented into a segment of the individual's face or a segment of the background or, if more detail is desired, into a segment of the individual's eyes, a segment of the individual's teeth, a segment of the individual's hair, etc.
  • using a mask for such a portrait can indicate that edits will only be applied to the emphasized portion(s) of the image and not the deemphasized portion(s).
  • Generating multiple segmentations for an image is a time intensive and tedious process. To generate a single segmentation can take multiple clicks, brush strokes, and/or multiple selection tools and dialogs in an image editing application. Even after such a time consuming process, the resulting segmentation might not include the portion(s) of the image the user was trying to segment in the first place.
  • the segmentation process is further complicated when a user wants to do localized adjustments to multiple areas of an image (e.g., using edits to whiten only the teeth of a person within an image and then using edits to change the saturation of only the sky portion of the image).
  • a user When making localized adjustments, a user must separately perform segmentation for each portion of the image that the user wishes to edit.
  • segmentation can be applied to the image using a mask so the user can apply edits to only the segmented portion of the image.
  • the user then repeats this whole process by performing segmentation for the new portion of the image and then applying edits using another mask.
  • Conventional methods for generating and displaying an image segmentation allows a user to utilize selection and masking tools to select an area of an image to create a single selection or mask at a time. If the user wishes to edit another area of the image, the user needs to repeat the process to create another selection or mask. This requires users to perform a serial process and thereby spend an extensive amount of time to apply localized adjustments for different areas of an image. Such methods require that a user repeatedly segment an image. Accordingly, such conventional methods can be costly in time and effort as these methods require a user to repeat the process of selecting portions of an image for editing, generating a mask and then editing the image using the mask.
  • Embodiments of the present disclosure are directed towards an image editing system for utilizing multiple masks generated by segmentation of an image to apply edits to portions of the image as designated by selected masks.
  • a system can be visualized using a graphical user interface with multiple selectable masks representing various segmentations of the image.
  • Presenting multiple masks for selection allows for easy and intuitive editing of an image using masks to edit corresponding portions of the image.
  • presentation of masks allows a user to see and visualize the different areas of an image available as possible masks at one time without having to go through step by step mask creation repeatedly in order to select and edit different areas. Editing an image using masks presented in this manner requires less expertise in generating the multiple masks and is significantly less time consuming.
  • An image editing system can provide multiple masks to a user for easy selection for editing corresponding portions of an image.
  • a selected mask indicates a segmented portion of an image to which an edit(s) will be applied as opposed to the portions of the image that will not be affected by edits. For instance, in a portrait of an individual, the image can be segmented into one or more segments that can be presented using masks, such as foreground (the individual) and background or, if more detail is desired, into segments of the individual's eyes, teeth, hair, etc. In this way, a user can select what portion of the image the user desires to edit using the corresponding mask.
  • FIG. 1A depicts an example configuration of an operating environment in which some implementations of the present disclosure can be employed, in accordance with various embodiments of the present disclosure.
  • FIG. 1B depicts an example configuration of an operating environment in which some implementations of the present disclosure can be employed, in accordance with various embodiments of the present disclosure.
  • FIG. 2 depicts aspects of an illustrative image editing system, in accordance with various embodiments of the present disclosure.
  • FIG. 3A depicts an illustrative image editing system for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure
  • FIG. 3B depicts an illustrative image editing system for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure.
  • FIG. 3C depicts an illustrative image editing system for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure.
  • FIG. 3D depicts an illustrative image editing system for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure.
  • FIG. 3E depicts an illustrative image editing system for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure.
  • FIG. 4 depicts an illustrative image editing system for providing available masks for use in editing of an image based on user interaction with portions of the image, in accordance with embodiments of the present disclosure.
  • FIG. 5 illustrates a process flow showing an embodiment for performing segmentation of an image to generate masks for use in editing portions of the image, in accordance with embodiments of the present invention.
  • FIG. 6 illustrates an example method for utilizing a mask generated based on segmentation of an image for editing portions of the image, in accordance with embodiments of the present invention.
  • FIG. 7 is a block diagram of an example computing device in which embodiments of the present disclosure may be employed.
  • image segmentation can be used to identify a segment within an image so that the segment can be edited.
  • Such a segment can be visualized in an image editing system using a mask that indicates the segmented portion of the image to which edits will be applied as opposed to the portions of the image that will not be affected by edits.
  • creating masks for multiple segments of an image is a time-consuming and tedious process.
  • embodiments of the present disclosure are directed to an image editing system for utilizing multiple masks generated using segmentation of an image. These multiple masks can be simultaneously provided to a user, allowing the user to apply edits to portions of the image as designated by selected masks.
  • multiple masks can be presented to a user for easy selection and utilization in the editing of an image.
  • Such masks presented to a user can be masks likely to be desired by a user for selection and utilization in the editing of an image.
  • presentation of multiple masks allows a user to visualize at one time the different areas of an image available as possible masks without having to repeatedly go through step by step mask creation in order to select and edit different areas of the image. As such, editing an image using masks presented in this manner is less time consuming and does not require expertise with masking tools and/or generation of masks.
  • FIG. 1A depicts an example configuration of an operating environment in which some implementations of the present disclosure can be employed, in accordance with various embodiments of the present disclosure. It should be understood that this and other arrangements described herein are set forth only as examples. Other arrangements and elements (e.g., machines, interfaces, functions, orders, and groupings of functions, etc.) can be used in addition to or instead of those shown, and some elements may be omitted altogether for the sake of clarity. Further, many of the elements described herein are functional entities that may be implemented as discrete or distributed components or in conjunction with other components, and in any suitable combination and location. Various functions described herein as being performed by one or more entities may be carried out by hardware, firmware, and/or software. For instance, some functions may be carried out by a processor executing instructions stored in memory as further described with reference to FIG. 7 .
  • operating environment 100 shown in FIG. 1A is an example of one suitable operating environment.
  • operating environment 100 includes a number of user devices, such as user devices 102 a and 102 b through 102 n , network 104 , and server(s) 106 .
  • Each of the components shown in FIG. 1A may be implemented via any type of computing device, such as one or more of computing device 700 described in connection to FIG. 7 , for example.
  • These components may communicate with each other via network 104 , which may be wired, wireless, or both.
  • Network 104 can include multiple networks, or a network of networks, but is shown in simple form so as not to obscure aspects of the present disclosure.
  • network 104 can include one or more wide area networks (WANs), one or more local area networks (LANs), one or more public networks such as the Internet, and/or one or more private networks.
  • network 104 includes a wireless telecommunications network, components such as a base station, a communications tower, or even access points (as well as other components) may provide wireless connectivity.
  • Networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.
  • the network 104 may be any network that enables communication among machines, databases, and devices (mobile or otherwise). Accordingly, the network 104 may be a wired network, a wireless network (e.g., a mobile or cellular network), a storage area network (SAN), or any suitable combination thereof.
  • the network 104 includes one or more portions of a private network, a public network (e.g., the Internet), or combination thereof. Accordingly, network 104 is not described in significant detail.
  • any number of user devices, servers, and other components may be employed within operating environment 100 within the scope of the present disclosure. Each may comprise a single device or multiple devices cooperating in a distributed environment.
  • User devices 102 a through 102 n can be any type of computing device capable of being operated by a user.
  • user devices 102 a through 102 n are the type of computing device described in relation to FIG. 7 .
  • a user device may be embodied as a personal computer (PC), a laptop computer, a mobile device, a smartphone, a tablet computer, a smart watch, a wearable computer, a personal digital assistant (PDA), an MP3 player, a global positioning system (GPS) or device, a video player, a handheld communications device, a gaming device or system, an entertainment system, a vehicle computer system, an embedded system controller, a remote control, an appliance, a consumer electronic device, a workstation, any combination of these delineated devices, or any other suitable device.
  • PC personal computer
  • PDA personal digital assistant
  • MP3 player MP3 player
  • GPS global positioning system
  • a video player a handheld communications device
  • gaming device or system an entertainment system
  • vehicle computer system an embedded system controller
  • the user devices can include one or more processors, and one or more computer-readable media.
  • the computer-readable media may include computer-readable instructions executable by the one or more processors.
  • the instructions may be embodied by one or more applications, such as application 110 shown in FIG. 1A .
  • Application 110 is referred to as a single application for simplicity, but its functionality can be embodied by one or more applications in practice.
  • the other user devices can include one or more applications similar to application 110 .
  • the application(s) may generally be any application capable of facilitating the exchange of information between the user devices and the server(s) 108 in carrying out image editing, such as, presenting and utilizing multiple segmentations of an image as masks for use in editing the image.
  • the application(s) comprises a web application, which can run in a web browser, and could be hosted at least partially on the server-side of environment 100 .
  • the application(s) can comprise a dedicated application, such as an application having image editing and/or processing functionality.
  • an application can be configured to display images and/or allow the user to input or identify images for editing.
  • the application is integrated into the operating system (e.g., as a service). It is therefore contemplated herein that “application” be interpreted broadly.
  • Example applications include Adobe® Photoshop®, LightRoom®, and the like.
  • application 110 can facilitate segmenting an image, presenting the segmentations as masks, and editing the image using selected masks.
  • a user can select or input an image or picture for segmentation.
  • An image and/or picture can be selected or input in any manner.
  • the application may facilitate the access of one or more images stored on the user device 102 a (e.g., in a photo library), and/or import images from remote devices 102 b - 102 n and/or applications, such as from server 106 .
  • a user may take a picture using a camera on a device, for example, user device 102 a .
  • a user may select a desired image from a repository, for example, stored in a data store accessible by a network or stored locally at the user device 102 a .
  • the input image can undergo segmentation using techniques, some of which are further discussed below with reference to segmentation engine 206 of FIG. 2 , and multiple segmentations can be provided to the user via the user device 102 a .
  • masks can be used to display the different segmentations to a user. Presenting various available segments as masks allows the user to select one of the provided masks to edit the image. For example, the user can select a foreground segment from the available masks and edit the image to generate a composite image using the mask of the foreground segment and a new background.
  • the user device can communicate over a network 104 with a server 106 (e.g., a Software as a Service (SAAS) server), which provides a cloud-based and/or network-based image editing system 108 .
  • SAAS Software as a Service
  • the image editing system may communicate with the user devices and corresponding user interface to facilitate the editing and/or presenting of images by the user via the user device using, for example, application 110 .
  • server 106 can facilitate segmenting an image, presenting the segmentations as masks, and editing the image using selected masks via image editing system 108 .
  • Server 106 includes one or more processors, and one or more computer-readable media.
  • the computer-readable media includes computer-readable instructions executable by the one or more processors. The instructions may optionally implement one or more components of image editing system 108 , described in additional detail below.
  • Server 106 is capable of automatically pre-generating multiple possible masks for images stored on the server by a user. Pre-generating such potential masks ensures that masks are ready when a user ties to edit an image using segmentation, decreasing or eliminating any delay in the process.
  • the instructions on server 106 may implement one or more components of image editing system 108 .
  • Application 110 may be utilized by a user to interface with the functionality implemented on server(s) 106 , such as image editing system 108 .
  • application 110 comprises a web browser.
  • server 106 may not be required, as further discussed with reference to FIG. 1B .
  • image editing system 108 may be provided via multiple devices arranged in a distributed environment that collectively provide the functionality described herein. Additionally, other components not shown may also be included within the distributed environment. In addition, or instead, image editing system 108 can be integrated, at least partially, into a user device, such as user device 102 a.
  • FIG. 1B depicts a user device 114 , in accordance with an example embodiment, configured to allow for editing images using segmentation.
  • the user device 114 may be the same or similar to the user device 102 a - 102 n and may be configured to support the image editing system 116 (as a standalone or networked device).
  • the user device 114 may store and execute software/instructions to facilitate interactions between a user and the image editing system 116 via the user interface 118 of the user device.
  • a user device can be utilized by a user to facilitate segmenting an image, presenting the segmentations as masks, and editing the image using selected masks.
  • a user can select or input an image or picture for segmentation utilizing user interface 118 .
  • An image and/or picture can be selected or input in any manner.
  • the user interface may facilitate the user accessing one or more images stored on the user device (e.g., in a photo library), and/or import images from remote devices and/or applications. Based on the input image, the input image can undergo segmentation using various techniques, some of which are further discussed below with reference to segmentation engine 206 of FIG. 2 , and multiple segmentations can be provided to the user as masks via a user interface.
  • masks can be used to display the different segmentations to a user via the user interface. Presenting various available segments as masks via the user interface allows the user to select one or more of the provided masks to use in editing the image. For example, the user can interact with the user interface to select a foreground segment from the available masks and edit the image to generate a composite image using the mask of the foreground segment and a new background. Interactions can include mousing over a portion of an image that has an associated mask, clicking on a portion of an image that has an associated mask using a mouse, clicking on a thumbnail representation of a mask, using touch screen capabilities, vocally indicating a selection, and/or other methods of user device interaction.
  • Such interactions can be carried out using a touch screen, a stylus, a mouse, and/or a track pad. It should be appreciated that while image editing system 116 is depicted as a single system, in implementations, the functionality of the system can be performed using additional systems.
  • Image editing system 204 includes segmentation engine 206 and editing engine 208 .
  • the foregoing engines of image editing system 204 can be implemented, for example, in operating environment 100 of FIG. 1A and/or operating environment 112 of FIG. 1B . In particular, those engines may be integrated into any suitable combination of user devices 102 a and 102 b through 102 n and server(s) 108 and/or user device 114 . While the segmentation engine and editing engine are depicted as separate engines, it should be appreciated that a single engine could perform the functionality of both engines. Additionally, in implementations, the functionality of the engines can be performed using additional engines. Further, it should be appreciated that the functionality of segmentation engine can be provided by a system separate from the image editing system. Such an imaging editing system can work in conjunction with data store 202 .
  • Data store 202 can store computer instructions (e.g., software program instructions, routines, or services), data, and/or models used in embodiments described herein.
  • data store 202 can store information or data received via the various engines and/or components of image editing system 204 and provides the various engines and/or components with access to that information or data, as needed.
  • data store 202 may be embodied as one or more data stores. Further, the information in data store 202 may be distributed in any suitable manner across one or more data stores for storage (which may be hosted externally).
  • data store 202 can be used to store a neural network system capable of being used to segment an image using deep learning techniques, further discussed below with reference to segmentation engine 206 .
  • a neural network system can be comprised of one or more neural networks.
  • data stored in data store 202 can include images a user can select for editing using, for example, the image editing system.
  • An image can include a visual representation of a person, object, or scene. Examples of an image can include digital versions of a picture, painting, drawing, and/or photograph. Such images can be input into data store 202 from a remote device, such as from a server or a user device.
  • Data stored in data store 202 can also include segmentations generated for an image. Such segmentations can be stored as multiple segments and/or as masks. Segments can be created along boundaries within an image and/or used to designate objects and/or features within the image.
  • Data stored in data store 202 can further include edited images. Saved edits can include manipulations to an image using a selected segment or mask to apply edits to the corresponding portion of the image.
  • Image editing system 204 can generally be used for editing images.
  • image editing system can be configured for editing images using segmentation.
  • image segmentation is the process of partitioning an image into multiple segments such that a segment can be selected for selectively applying edits to only the portion of the image as indicated by the selected segment.
  • Segments can be visualized in an editing environment and/or image editing application using masks that indicate the segmented portion of an image to which edits will be applied as opposed to the portions of the image that will not be affected by edits.
  • a mask can highlight a segmented portion of the image to which edits will be applied and darken, blur, fade, or otherwise distinguish the portions of the image that will not be affected by edits.
  • Image editing system can be configured to display multiple masks available that can be used for applying edits to portions of an image based on the segment of the image associated with a selected mask. This image editing system concurrently provides users with multiple masks representing possible segmentations for easy and intuitive editing of an image.
  • An image can be accessed or referenced by segmentation engine 206 for segmenting the image.
  • the segmentation engine 206 may access or retrieve an image selected by a user via data store 202 and/or from a remote device, such as from a server or a user device.
  • the segmentation engine 206 may receive an image provided to the segmentation engine 206 via a user device.
  • Image segmentation associated with an image can be initiated in any number of ways. For example, such segmentation can take place when a user indicates a desire to select and/or mask an image using, for example, a user interface associated with the image editing system. As another example, image segmentation may be initiated automatically, for instance, upon receiving an image.
  • an image can be segmented in any number of ways, such as, for instance, edge detection, color detection, object detection, etc.
  • an image may be segmented in accordance with identifying a feature(s) or an object(s) within an image.
  • Such segmentation can be performed using any of a variety of techniques.
  • Such techniques include deep learning techniques, color range or saliency detection, thresholding, clustering methods, compression-based methods, histogram-based methods, edge detection, dual clustering methods, region-growing methods, partial differential equation-based methods, variational methods, graph partitioning methods, watershed transformation, model based segmentation, multi-scale segmentation, and semi-automatic segmentation.
  • the deep learning techniques can include instance-level semantic segmentation as described in U.S. application Ser. No. 15/296,845, automatic boundary-aware human cutout as described in U.S. application Ser. No. 15/0886,590, object detection using cascaded convolutional neural networks as described in U.S. Pat. No. 9,418,319, all of which are incorporated by reference, generic algorithms for segmentation such as R-CNN and/or mask R-CNN.
  • any number of segments can be identified or detected.
  • any segments may be identified and ranked, such that only a portion of the identified segments are masked and/or presented.
  • the editing engine 208 can be utilized to edit the image in accordance with a selected segment(s). As can be appreciated, in some cases, the image may be segmented immediately preceding editing of the image. In other cases, an image may be segmented and stored accordingly, for example in data store 202 , for subsequent editing. As shown, the editing engine 208 can include mask component 210 , presentation component 212 , and modification component 214 . The foregoing components of editing engine 208 can be implemented, for example, in operating environment 100 of FIG. 1A and/or operating environment 112 of FIG. 1B .
  • those components may be integrated into any suitable combination of user devices 102 a and 102 b through 102 n and server(s) 106 and/or user device 114 .
  • mask component, presentation component, and modification component are depicted as a separate components, in implementations, the functionality of the system can be performed using a single component and/or additional components.
  • the mask component 210 is configured to generate a set of masks for the image in accordance with image segmentations.
  • a mask may be generated.
  • Masks can be generated based on the saliency of objects in an image, based on objects of an image that likely need to be edited (e.g., based on attributes not meeting a certain threshold), based on boundaries within an image that designate an object and/or feature within the image. or a combination thereof. Initiating mask generation may occur in any number of ways. In some implementations, mask generation may automatically occur upon image segmentation. That is, upon identifying a set of image segmentations (e.g., via segmentation engine 206 ), a set of corresponding masks may be automatically generated.
  • masks may be generated upon a user indicating a desire to view possible masks for an image.
  • a user may select or input a menu command, a mouse or touch input using a touch and/or click, lasso and/or marque tool and/or a voice input to “Show Selections,” “Show Segments,” or “Show Masks,” or some combination thereof.
  • Such an input can be performed using, for example, a touch screen, a stylus, a mouse, and/or a track pad.
  • the masks generated and/or presented may be determined, for example, based on input from a user, or in other cases, based on default configurations.
  • mask component 210 may enable a user to select a particular level of detail for the masks desired to be viewed. This level of masks can be based on how much detail the user wishes to observe for segmentation options. For instance, in a portrait of an individual, the image can be segmented into a segment of the individual's face and a segment of the background or, if more detail is desired, into segments of the individual's eyes, teeth, hair, etc.
  • the detail level can indicate the number of masks the user wishes to view: 1 for one mask, 2 for two masks, etc.
  • the detail level can be designated as low, medium, or high where low would include masks of larger image areas (e.g., just a foreground mask and a background mask) and high would include masks of smaller more detailed areas for editing smaller segments of the image (e.g., for a portrait, in addition to foreground and background, masks of eyes, teeth, hair, etc.).
  • Such a detail level may be provided at the outset to determine for which image segmentations to generate masks. In other cases, masks may be generated for each image segmentation, and the detail level may be used to select which masks to present to a user.
  • a set of masks can be presented to the user using presentation component 212 allowing the user to visualize different portions of the image that localized edits can be applied to using masks.
  • multiple masks can be concurrently or simultaneously presented such that a user may select from among the masks to apply edits.
  • Presenting multiple masks in this manner allows a user to visualize available masks in a single input rather than having to iteratively go through the step by step mask creation in order to select and edit different areas of an image.
  • the user can select a mask from the presented masks to apply edits to the corresponding portion of the image based on the selection for which the mask was generated.
  • the set of masks can be presented to users in various manners.
  • such masks can overlay an image such that a user can visualize which mask corresponds to what portion of the image upon selection of a mask (e.g., via clicking a mask, mousing over a mask, etc.).
  • the masks can be presented as a strip of thumbnails in a mask zone of a graphical user interface of an image editing system. Available masks can also be presented when a user interacts with a portion of an image for which a mask is available, for example, by clicking on a portion the user is interested in editing.
  • multiple nested masks can be available upon selecting a mask that contains portions of another mask(s) (e.g., selecting a mask of a person and being presented with nested masks of the person's face, and, further, the person's smile).
  • a thumbnail pop-up window can appear upon a user interaction with a portion of the image for which a mask is available. The user can further interact with such a pop-up to select the available mask for making edits.
  • modification component 214 can be used to apply edits to an image.
  • a mask can be used to create different adjustment layers for applying edits such as levels, curves, hue and saturation, black and white, vibrance, color balance, etc.
  • edits such as levels, curves, hue and saturation, black and white, vibrance, color balance, etc.
  • a mask can be selected and edits made to the corresponding portion of the image.
  • a user can simply select another mask from the presented masks for use in editing the image. That is, a user can select a second mask previously generated and presented to apply additional or alternative edits to the image.
  • a user can select a mask representing a person in an image.
  • a list of possible edit options can appear. These edit options can be used to edit the portion of the image as indicate by the selected mask, (e.g., the person). For instance, if hue and saturation is selected, the user can edit the portion of the image as indicated by the mask to make changes to the hue and saturation.
  • Such edits to the image are capable of being displayed in an edit zone. These edits can appear in a manner that an individual edit operation can be returned to for further editing.
  • hue and saturation editing instance applied using the mask of the person from the applied edits. Selecting this editing instance will allow the user to make further hue and saturation edits to the person portion of the image.
  • Such masks can also be used in creating composite images. For example, a mask indicating a car in an image can be selected for editing. This car mask can then be exported as a new layer and composited with a new background to create a composite image. Additional edits can then be made to the composited image using additional editing operations. For instance, after generating the composite image, a user may wish to input additional edits to the appearance of the car. Such edits can include changing the brightness of the car, modifying the color of the car, etc. Each of these edits can be performed using the car mask so that the edits are applied to only the car portion of the image and not the overall composite image.
  • edits to an image can be made using a first mask using a first layer mask in a first layer and edits made using a second mask can be applied using a second layer mask in a second layer. In this way, edits made to an image are stacked as layers of edits applied using selected masks.
  • FIGS. 3A-3E depict illustrative image editing systems for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure.
  • FIG. 3A depicts a graphical user interface of image editing system 300 for presenting available masks for use in editing an image. Examples of such an image editing system can include Adobe® Photoshop®, LightRoom®, and the like.
  • Select and Mask 302 can be selected to generate segmentations for image 306 displayed in display zone 308 .
  • Such segmentations can be generated using, for instance, a segmentation engine (e.g., segmentation engine 206 of image editing system 204 ).
  • Select and Mask can be displayed as a selectable button.
  • Select and Mask button can be selected by a user by clicking on the button, using touch screen capabilities, vocally indicating a selection, and/or other methods of user device interaction.
  • Select and Mask need not have a visual component and can be applied using a vocal indication.
  • Show Masks 304 can be selected. Upon selecting Show Masks, multiple masks available for use can be displayed. In embodiments, Show Masks can be displayed as a selectable button. Such a Show Masks button can be selected by a user by clicking on the button, using touch screen capabilities, vocally indicating a selection, and/or other methods of user device interaction. In further embodiments, Show Masks need not have a visual component and can be applied using a vocal indication. Show Masks can also be a selection tool that allows a user to utilize multiple input methods such as single click, marquee, and/or lasso. Alternatively, upon selecting Show Masks, segmentation can automatically be triggered, removing the need for a Select and Mask interaction.
  • masks generated during segmentation can be displayed in mask zone 310 of the image editing system 300 .
  • presentation of masks allows a user to see and visualize the different areas of image 306 available as possible selections or masks at one time without having to repeatedly go through step by step mask creation in order to select and edit different areas of the image.
  • the masks can be presented in a horizontal strip of thumbnails in mask zone 310 with different visualization options (e.g., Marching Ants, Overlay, On Black, On White, and Black and White). It should be appreciated that such presentation is not limited to a horizontal position and further embodiments can include vertical position, presentation in a pop-up window, in a new tab, etc.
  • the displayed masks can be based on a selected detail level 312 .
  • the detail level can indicate the number of masks the user wishes to view: 1 for one mask, 2 for two masks, etc.
  • the detail level can be designated as low, medium, or high (or other designations) where low would include masks depicting less detailed portions of an image and high would include masks for editing smaller segments of the image.
  • Image 306 can be edited using image editing system 300 .
  • Edits to the image can be displayed in edit zone 314 .
  • Edit zone 314 can indicate different layers of edits as well as any edits made to image 306 .
  • Such edits can include changes made to levels, curves, hue and saturation, black and white, vibrance, color balance, etc.
  • the edit zone can also designate what layer an edit is applied to and/or the properties of an edit.
  • FIG. 3B depicts that when a user selects mask 316 from the available thumbnail masks, list 318 can be presented.
  • List 318 includes available edit options a user can apply for the portion of the image corresponding to selected mask 316 .
  • Such a list can be tailored for the specific function of editing an image utilizing a selected mask. In embodiments, such a list can appear when a user right clicks on a mask, left clicks on a mask, uses touch screen capabilities, vocally indicates a selection, and/or other methods of user device interaction.
  • List 318 can include various edit options, such as, for example, brightness/contrast, levels, curves, exposures, vibrance, hue/saturation, color balance, black & white, photo finish, channel mixer, color lookup, invert, posturize, threshold, corrective colorization, shadows/highlights, HDR toning, desaturate, match color, replace color, equalize, etc.
  • FIG. 3C depicts that when a user selects an available edit option from list 318 , editing window 320 can appear.
  • a user selected the vibrance option from list 318 resulting in editing window 320 .
  • a user can utilize editing window 320 to edit the portion of the image corresponding to selected mask 316 .
  • making edits using editing window 320 will change values associated with vibrance and/or saturation for the face/skin segment of the individual in the image.
  • the edit zone can be updated to show the edits to the corresponding portions of the image. For instance, edit 322 indicates a vibrance edit was made. Displaying the edits using the edit zone allows a user to go back and make changes to those edits if desired.
  • FIG. 3D depicts that displaying multiple masks for selection allows a user to easily move from editing one portion of an image, using, for example, mask 316 , to editing another area portion of the image, using, for example, mask 324 .
  • a mask can be used to create a new layer using a layer mask.
  • Output to Selection 328 can be used to select how to apply an edit option to a selected mask. For instance, after selecting mask 324 , Export Mask 330 can be selected to output mask 324 to a new layer as a layer mask. Such a layer can be seen in the edit zone as edit 332 .
  • FIG. 3E depicts that upon selecting a mask from the mask zone, the selected mask can be displayed in the display zone for the image.
  • Displayed mask 334 shows a full-size mask for the image as edits are made.
  • FIG. 4 depicts an illustrative image editing system for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure.
  • an image editing system can include Adobe® Photoshop®, LightRoom®, and the like.
  • Select and Mask can be selected to generate segmentations for image 402 displayed in display zone 404 .
  • Such segmentations can be generated using, for instance, a segmentation engine (e.g., segmentation engine 205 of image editing system 204 ).
  • Show Masks can become available for display. Show Masks can be selected upon completion of image segmentation. Alternatively, selecting Show Masks can automatically trigger Select and Mask to generate the segmentations. Masks for visualizing the segments generated during segmentation can be presented to a user when the user interacts with a portion of image 402 for which a mask is available. As displayed, interaction 406 (e.g., clicking and/or mousing over the person in image 402 ) indicates that mask 408 for the foreground of image 402 is available for use in editing the image. User interaction can include mousing over a portion of an image that has an associated mask, clicking on a portion of an image that has an associated mask using a mouse, using touch screen capabilities, and/or other methods of user device interaction.
  • interaction 406 e.g., clicking and/or mousing over the person in image 402
  • User interaction can include mousing over a portion of an image that has an associated mask, clicking on a portion of an image that has an associated mask using a mouse, using touch screen capabilities, and/or other
  • Such user interactions can be input using, for example, using a touch screen, a stylus, a mouse, and/or a track pad.
  • a thumbnail pop-up window can appear upon a user interaction with a portion of the image for which a mask is available. The user can further interact with such a pop-up to select the available mask for making edits.
  • mask zone 410 can overlay display zone 404 so that the selected mask can be viewed. Further, a user can indicate that while performing edits to image 402 using selected mask 408 , the user wishes to view the image without selected mask 408 . This can be implemented, for example, by hiding the overlaid mask zone during the edits. Hiding the overlaid mask zone can be accomplished, for instance, by deselecting Show Masks. Edits to image 402 can be displayed in edit zone 412 .
  • Method 500 can be performed, for example by segmentation engine 206 of image editing system 204 , as illustrated in FIG. 2 .
  • a request is received for segmentation of a selected image.
  • Such an image can be selected from a group of images stored in a database, such as data store 202 of FIG. 2 .
  • Image segmentation is the process of partitioning an image into multiple segments. Segments can be created along boundaries within an image and/or used to designate objects and/or features within the image.
  • Such a segment can be visualized in an editing environment using a mask that indicates the segmented portion of an image to which edits will be applied as opposed to the portions of the image that will not be affected by edits.
  • segmentation of the image can be performed.
  • Such segmentation can be performed using any number of techniques.
  • Such techniques include deep learning techniques, color range or saliency detection, thresholding, clustering methods, compression-based methods, histogram-based methods, edge detection, dual clustering methods, region-growing methods, partial differential equation-based methods, variational methods, graph partitioning methods, watershed transformation, model based segmentation, multi-scale segmentation, and semi-automatic segmentation.
  • the deep learning techniques can include instance-level semantic segmentation as described in U.S. application Ser. No. 15/296,845, automatic boundary-aware human cutout as described in U.S. application Ser. No.
  • the segments as generated at block 504 can be presented as selectable masks. Presentation of multiple generated masks allows a user to see and visualize the different areas of an image available as possible selections or masks at one time without having to repeatedly go through step by step mask creation in order to select and edit different areas of the image.
  • the masks can be presented in a strip of thumbnails in a mask zone with different visualization options (e.g., Marching Ants, Overlay, On Black, On White, and Black and White).
  • an available mask can be presented when a user interacts with a portion of an image for which a mask is available, for example, by clicking on a portion the user is interested in editing.
  • a thumbnail pop-up window can appear upon a user interaction with a portion of the image for which a mask is available. The user can further interact with such a pop-up to select the available mask for making edits.
  • FIG. 6 illustrates an example process flow 600 for utilizing a mask generated based on segmentation of an image for editing portions of the image, in accordance with embodiments of the present invention.
  • a request for segmentations for an image can be sent. Such a request can be sent, for example, by editing engine 208 to segmentation engine 206 , as depicted in FIG. 2 .
  • an indication to select to show masks based on received segmentation can be received.
  • a selection can be indicated using a Show Masks button.
  • Show Masks need not have a visual component and can be applied using a vocal indication.
  • Show Masks can also be a selection tool that allows a user to utilize multiple input methods such as single click, marquee, and/or lasso.
  • multiple masks available for use can be presented. The masks can be presented as a strip of thumbnails in a mask zone of a graphical user interface of an image editing system.
  • Available masks can also be presented when a user interacts with a portion of an image for which a mask is available, for example, by clicking on a portion the user is interested in editing.
  • a thumbnail pop-up window can appear upon a user interaction with a portion of the image for which a mask is available. The user can further interact with such a pop-up to select the available mask for making edits.
  • input can be received indicating a desired detail level of segmentation.
  • This level of masks can be based on how much detail a user wishes to observe for segmentation options. For instance, in a portrait of an individual, the image can be segmented into a segment of the individual's face and a segment of the background or, if more detail is desired, into segments of the individual's eyes, teeth, hair, etc.
  • the detail level can indicate the number of masks the user wishes to view: 1 for one mask, 2 for two masks, etc.
  • the detail level can be designated as low, medium, or high where low would include masks for less detailed objects from an image and high would include masks for editing more detailed objects using smaller segments of the image.
  • a mask can be selected for use in editing an image.
  • a list of possible edit options can be presented. In embodiments, such a list can appear when a user right clicks on a mask, left clicks on a mask, uses touch screen capabilities, vocally indicates a selection, and/or other methods of user device interaction.
  • a selected mask such as that at block 608 , can be selected to export as a new layer.
  • a layer is used to describe the different levels at which a user can edit an image in an image editing application.
  • a user can stack, merge, and/or define layers when editing a digital image. Layers can be used to allow portions of images within a layer to be shown in a selected manner (e.g., with a selected editing process applied). Layers also allow users to be able to combine two or more images into a single image. Using layers when editing an image can allow a user to continually make changes and/or edits within a layer during the editing process without affecting other layers of the image.
  • Such a layer can be seen in an edit zone of a graphical user interface of an image editing system.
  • Different adjustment layers include levels, curves, hue and saturation, black and white, vibrance, color balance, etc. In this way, a user is provided with an easy and intuitive way that the user can use the list of available masks for image editing, adjustments, and/or composition.
  • the image can be edited using the selected mask.
  • Current editing manipulations can be displayed the editing zone graphical user interface of an image editing system.
  • Such edits can include changes made to levels, curves, hue and saturation, black and white, vibrance, color balance, etc.
  • the process flow can return to block 608 and another presented mask can be selected, repeating the editing process without requiring additional segmentation to be performed. It should also be appreciated that not all masks selected at block 608 need to be exported as a new layer, as in block 610 . In some embodiments, the process at block 610 can be skipped and multiple edits can be made in the same layer using different masks to apply edits to corresponding portions of an image.
  • FIG. 7 provides an example of a computing device in which embodiments of the present invention may be employed.
  • Computing device 700 includes bus 710 that directly or indirectly couples the following devices: memory 712 , one or more processors 714 , one or more presentation components 716 , input/output (I/O) ports 718 , input/output components 720 , and illustrative power supply 722 .
  • Bus 710 represents what may be one or more busses (such as an address bus, data bus, or combination thereof).
  • FIG. 7 is merely illustrative of an exemplary computing device that can be used in connection with one or more embodiments of the present invention. Distinction is not made between such categories as “workstation,” “server,” “laptop,” “handheld device,” etc., as all are contemplated within the scope of FIG. 7 and reference to “computing device.”
  • Computer-readable media can be any available media that can be accessed by computing device 700 and includes both volatile and nonvolatile media, removable and non-removable media.
  • Computer-readable media may comprise computer storage media and communication media.
  • Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVDs) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device 700 .
  • Computer storage media does not comprise signals per se.
  • Communication media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
  • modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • communication media includes wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
  • Memory 712 includes computer storage media in the form of volatile and/or nonvolatile memory. As depicted, memory 712 includes instructions 724 . Instructions 724 , when executed by processor(s) 714 are configured to cause the computing device to perform any of the operations described herein, in reference to the above discussed figures, or to implement any program modules described herein.
  • the memory may be removable, non-removable, or a combination thereof.
  • Exemplary hardware devices include solid-state memory, hard drives, optical-disc drives, etc.
  • Computing device 700 includes one or more processors that read data from various entities such as memory 712 or I/O components 720 .
  • Presentation component(s) 716 present data indications to a user or other device. Exemplary presentation components include a display device, speaker, printing component, vibrating component, etc.
  • I/O ports 718 allow computing device 700 to be logically coupled to other devices including I/O components 720 , some of which may be built in. Illustrative components include a microphone, joystick, game pad, satellite dish, scanner, printer, wireless device, etc. I/O components 720 may provide a natural user interface (NUI) that processes air gestures, voice, or other physiological inputs generated by a user. In some instances, inputs may be transmitted to an appropriate network element for further processing.
  • NUI may implement any combination of speech recognition, touch and stylus recognition, facial recognition, biometric recognition, gesture recognition both on screen and adjacent to the screen, air gestures, head and eye tracking, and touch recognition associated with displays on computing device 700 .
  • Computing device 700 may be equipped with depth cameras, such as stereoscopic camera systems, infrared camera systems, RGB camera systems, and combinations of these, for gesture detection and recognition. Additionally, computing device 700 may be equipped with accelerometers or gyroscopes that enable detection of motion. The output of the accelerometers or gyroscopes may be provided to the display of computing device 700 to render immersive augmented reality or virtual reality.
  • depth cameras such as stereoscopic camera systems, infrared camera systems, RGB camera systems, and combinations of these, for gesture detection and recognition.
  • computing device 700 may be equipped with accelerometers or gyroscopes that enable detection of motion. The output of the accelerometers or gyroscopes may be provided to the display of computing device 700 to render immersive augmented reality or virtual reality.
  • the phrase “in one embodiment” or “in an embodiment” is used repeatedly. The phrase generally does not refer to the same embodiment; however, it may.
  • the terms “comprising,” “having,” and “including” are synonymous, unless the context dictates otherwise.
  • the phrase “A/B” means “A or B.”
  • the phrase “A and/or B” means “(A), (B), or (A and B).”
  • the phrase “at least one of A, B and C” means “(A), (B), (C), (A and B), (A and C), (B and C) or (A, B and C).”

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Methods and systems are provided for presenting and using multiple masks based on a segmented image in editing the image. In particular, multiple masks can be presented to a user using a graphical user interface for easy selection and utilization in the editing of an image. The graphical user interface can include a display configured to display an image, a mask zone configured to display segmentations of the image using masks, and an edit zone configured to display edits to the image. Upon receiving segmentation for the image, the masks can be displayed in the mask zone where the masks are based on a selected segmentation detail level.

Description

    BACKGROUND
  • Images are oftentimes desired to be segmented, for example, to better allow editing of the image. Image segmentation is generally the process of generating a segment of an image. Such a segment can be visualized in an editing environment using a mask that indicates the segmented portion of an image to which edits will be applied as opposed to the portions of the image that will not be affected by edits. A segment can be created along boundaries within an image so that the segment designates an object and/or feature within the image. For instance, in a portrait of an individual, the image can be segmented into a segment of the individual's face or a segment of the background or, if more detail is desired, into a segment of the individual's eyes, a segment of the individual's teeth, a segment of the individual's hair, etc. As such, using a mask for such a portrait can indicate that edits will only be applied to the emphasized portion(s) of the image and not the deemphasized portion(s).
  • Generating multiple segmentations for an image is a time intensive and tedious process. To generate a single segmentation can take multiple clicks, brush strokes, and/or multiple selection tools and dialogs in an image editing application. Even after such a time consuming process, the resulting segmentation might not include the portion(s) of the image the user was trying to segment in the first place. The segmentation process is further complicated when a user wants to do localized adjustments to multiple areas of an image (e.g., using edits to whiten only the teeth of a person within an image and then using edits to change the saturation of only the sky portion of the image). When making localized adjustments, a user must separately perform segmentation for each portion of the image that the user wishes to edit. Once a segment is created that segmentation can be applied to the image using a mask so the user can apply edits to only the segmented portion of the image. To edit another portion of the image, the user then repeats this whole process by performing segmentation for the new portion of the image and then applying edits using another mask.
  • Conventional methods for generating and displaying an image segmentation allows a user to utilize selection and masking tools to select an area of an image to create a single selection or mask at a time. If the user wishes to edit another area of the image, the user needs to repeat the process to create another selection or mask. This requires users to perform a serial process and thereby spend an extensive amount of time to apply localized adjustments for different areas of an image. Such methods require that a user repeatedly segment an image. Accordingly, such conventional methods can be costly in time and effort as these methods require a user to repeat the process of selecting portions of an image for editing, generating a mask and then editing the image using the mask.
  • SUMMARY
  • Embodiments of the present disclosure are directed towards an image editing system for utilizing multiple masks generated by segmentation of an image to apply edits to portions of the image as designated by selected masks. In accordance with embodiments, such a system can be visualized using a graphical user interface with multiple selectable masks representing various segmentations of the image. Presenting multiple masks for selection allows for easy and intuitive editing of an image using masks to edit corresponding portions of the image. Advantageously, such presentation of masks allows a user to see and visualize the different areas of an image available as possible masks at one time without having to go through step by step mask creation repeatedly in order to select and edit different areas. Editing an image using masks presented in this manner requires less expertise in generating the multiple masks and is significantly less time consuming.
  • An image editing system can provide multiple masks to a user for easy selection for editing corresponding portions of an image. A selected mask indicates a segmented portion of an image to which an edit(s) will be applied as opposed to the portions of the image that will not be affected by edits. For instance, in a portrait of an individual, the image can be segmented into one or more segments that can be presented using masks, such as foreground (the individual) and background or, if more detail is desired, into segments of the individual's eyes, teeth, hair, etc. In this way, a user can select what portion of the image the user desires to edit using the corresponding mask.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1A depicts an example configuration of an operating environment in which some implementations of the present disclosure can be employed, in accordance with various embodiments of the present disclosure.
  • FIG. 1B depicts an example configuration of an operating environment in which some implementations of the present disclosure can be employed, in accordance with various embodiments of the present disclosure.
  • FIG. 2 depicts aspects of an illustrative image editing system, in accordance with various embodiments of the present disclosure.
  • FIG. 3A depicts an illustrative image editing system for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure
  • FIG. 3B depicts an illustrative image editing system for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure.
  • FIG. 3C depicts an illustrative image editing system for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure.
  • FIG. 3D depicts an illustrative image editing system for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure.
  • FIG. 3E depicts an illustrative image editing system for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure.
  • FIG. 4 depicts an illustrative image editing system for providing available masks for use in editing of an image based on user interaction with portions of the image, in accordance with embodiments of the present disclosure.
  • FIG. 5 illustrates a process flow showing an embodiment for performing segmentation of an image to generate masks for use in editing portions of the image, in accordance with embodiments of the present invention.
  • FIG. 6 illustrates an example method for utilizing a mask generated based on segmentation of an image for editing portions of the image, in accordance with embodiments of the present invention.
  • FIG. 7 is a block diagram of an example computing device in which embodiments of the present disclosure may be employed.
  • DETAILED DESCRIPTION
  • Oftentimes, users desire for easy editing of images in an image editing system. For instance, users might desire editing that does not require expertise of difficult tools within the editing system or editing that is not highly iterative and time-consuming. One manner in which to edit images is using segmentation. Image segmentation can be used to identify a segment within an image so that the segment can be edited. Such a segment can be visualized in an image editing system using a mask that indicates the segmented portion of the image to which edits will be applied as opposed to the portions of the image that will not be affected by edits. However, creating masks for multiple segments of an image is a time-consuming and tedious process.
  • With the advancement of technology, deep learning techniques have been implemented that can more quickly segment images. However, even when using deep learning based techniques to generate a segment for an image, only one mask is presented to the user, as conventional methods only allow for visualization and editing using a single mask at a time upon image segmentation. In this way, users are unaware of what portions of an image have corresponding masks that can be used for localized editing of portions of an image. It should be appreciated that conventional methods can allow for using multiple layer masks to apply edits to various portions of an image, however, each mask must be individually generated and then used for applying edits. As such, existing technologies are generally deficient in allowing easy and intuitive editing of an image using masks.
  • Accordingly, embodiments of the present disclosure are directed to an image editing system for utilizing multiple masks generated using segmentation of an image. These multiple masks can be simultaneously provided to a user, allowing the user to apply edits to portions of the image as designated by selected masks. In particular, and as described herein, multiple masks can be presented to a user for easy selection and utilization in the editing of an image. Such masks presented to a user can be masks likely to be desired by a user for selection and utilization in the editing of an image. Advantageously, such presentation of multiple masks allows a user to visualize at one time the different areas of an image available as possible masks without having to repeatedly go through step by step mask creation in order to select and edit different areas of the image. As such, editing an image using masks presented in this manner is less time consuming and does not require expertise with masking tools and/or generation of masks.
  • Turning to FIG. 1A, FIG. 1A depicts an example configuration of an operating environment in which some implementations of the present disclosure can be employed, in accordance with various embodiments of the present disclosure. It should be understood that this and other arrangements described herein are set forth only as examples. Other arrangements and elements (e.g., machines, interfaces, functions, orders, and groupings of functions, etc.) can be used in addition to or instead of those shown, and some elements may be omitted altogether for the sake of clarity. Further, many of the elements described herein are functional entities that may be implemented as discrete or distributed components or in conjunction with other components, and in any suitable combination and location. Various functions described herein as being performed by one or more entities may be carried out by hardware, firmware, and/or software. For instance, some functions may be carried out by a processor executing instructions stored in memory as further described with reference to FIG. 7.
  • It should be understood that operating environment 100 shown in FIG. 1A is an example of one suitable operating environment. Among other components not shown, operating environment 100 includes a number of user devices, such as user devices 102 a and 102 b through 102 n, network 104, and server(s) 106. Each of the components shown in FIG. 1A may be implemented via any type of computing device, such as one or more of computing device 700 described in connection to FIG. 7, for example. These components may communicate with each other via network 104, which may be wired, wireless, or both. Network 104 can include multiple networks, or a network of networks, but is shown in simple form so as not to obscure aspects of the present disclosure. By way of example, network 104 can include one or more wide area networks (WANs), one or more local area networks (LANs), one or more public networks such as the Internet, and/or one or more private networks. Where network 104 includes a wireless telecommunications network, components such as a base station, a communications tower, or even access points (as well as other components) may provide wireless connectivity. Networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet. The network 104 may be any network that enables communication among machines, databases, and devices (mobile or otherwise). Accordingly, the network 104 may be a wired network, a wireless network (e.g., a mobile or cellular network), a storage area network (SAN), or any suitable combination thereof. In an example embodiment, the network 104 includes one or more portions of a private network, a public network (e.g., the Internet), or combination thereof. Accordingly, network 104 is not described in significant detail.
  • It should be understood that any number of user devices, servers, and other components may be employed within operating environment 100 within the scope of the present disclosure. Each may comprise a single device or multiple devices cooperating in a distributed environment.
  • User devices 102 a through 102 n can be any type of computing device capable of being operated by a user. For example, in some implementations, user devices 102 a through 102 n are the type of computing device described in relation to FIG. 7. By way of example and not limitation, a user device may be embodied as a personal computer (PC), a laptop computer, a mobile device, a smartphone, a tablet computer, a smart watch, a wearable computer, a personal digital assistant (PDA), an MP3 player, a global positioning system (GPS) or device, a video player, a handheld communications device, a gaming device or system, an entertainment system, a vehicle computer system, an embedded system controller, a remote control, an appliance, a consumer electronic device, a workstation, any combination of these delineated devices, or any other suitable device.
  • The user devices can include one or more processors, and one or more computer-readable media. The computer-readable media may include computer-readable instructions executable by the one or more processors. The instructions may be embodied by one or more applications, such as application 110 shown in FIG. 1A. Application 110 is referred to as a single application for simplicity, but its functionality can be embodied by one or more applications in practice. As indicated above, the other user devices can include one or more applications similar to application 110.
  • The application(s) may generally be any application capable of facilitating the exchange of information between the user devices and the server(s) 108 in carrying out image editing, such as, presenting and utilizing multiple segmentations of an image as masks for use in editing the image. In some implementations, the application(s) comprises a web application, which can run in a web browser, and could be hosted at least partially on the server-side of environment 100. In addition, or instead, the application(s) can comprise a dedicated application, such as an application having image editing and/or processing functionality. For example, such an application can be configured to display images and/or allow the user to input or identify images for editing. In some cases, the application is integrated into the operating system (e.g., as a service). It is therefore contemplated herein that “application” be interpreted broadly. Example applications include Adobe® Photoshop®, LightRoom®, and the like.
  • In accordance with embodiments herein, application 110 can facilitate segmenting an image, presenting the segmentations as masks, and editing the image using selected masks. In particular, a user can select or input an image or picture for segmentation. An image and/or picture can be selected or input in any manner. The application may facilitate the access of one or more images stored on the user device 102 a (e.g., in a photo library), and/or import images from remote devices 102 b-102 n and/or applications, such as from server 106. For example, a user may take a picture using a camera on a device, for example, user device 102 a. As another example, a user may select a desired image from a repository, for example, stored in a data store accessible by a network or stored locally at the user device 102 a. Based on the input image, the input image can undergo segmentation using techniques, some of which are further discussed below with reference to segmentation engine 206 of FIG. 2, and multiple segmentations can be provided to the user via the user device 102 a. After undergoing segmentation, masks can be used to display the different segmentations to a user. Presenting various available segments as masks allows the user to select one of the provided masks to edit the image. For example, the user can select a foreground segment from the available masks and edit the image to generate a composite image using the mask of the foreground segment and a new background.
  • The user device can communicate over a network 104 with a server 106 (e.g., a Software as a Service (SAAS) server), which provides a cloud-based and/or network-based image editing system 108. The image editing system may communicate with the user devices and corresponding user interface to facilitate the editing and/or presenting of images by the user via the user device using, for example, application 110.
  • As described herein, server 106 can facilitate segmenting an image, presenting the segmentations as masks, and editing the image using selected masks via image editing system 108. Server 106 includes one or more processors, and one or more computer-readable media. The computer-readable media includes computer-readable instructions executable by the one or more processors. The instructions may optionally implement one or more components of image editing system 108, described in additional detail below. Server 106 is capable of automatically pre-generating multiple possible masks for images stored on the server by a user. Pre-generating such potential masks ensures that masks are ready when a user ties to edit an image using segmentation, decreasing or eliminating any delay in the process.
  • For cloud-based implementations, the instructions on server 106 may implement one or more components of image editing system 108. Application 110 may be utilized by a user to interface with the functionality implemented on server(s) 106, such as image editing system 108. In some cases, application 110 comprises a web browser. In other cases, server 106 may not be required, as further discussed with reference to FIG. 1B.
  • Thus, it should be appreciated that image editing system 108 may be provided via multiple devices arranged in a distributed environment that collectively provide the functionality described herein. Additionally, other components not shown may also be included within the distributed environment. In addition, or instead, image editing system 108 can be integrated, at least partially, into a user device, such as user device 102 a.
  • Referring to FIG. 1B, aspects of an illustrative image editing system are shown, in accordance with various embodiments of the present disclosure. FIG. 1B depicts a user device 114, in accordance with an example embodiment, configured to allow for editing images using segmentation. The user device 114 may be the same or similar to the user device 102 a-102 n and may be configured to support the image editing system 116 (as a standalone or networked device). For example, the user device 114 may store and execute software/instructions to facilitate interactions between a user and the image editing system 116 via the user interface 118 of the user device.
  • A user device can be utilized by a user to facilitate segmenting an image, presenting the segmentations as masks, and editing the image using selected masks. In particular, a user can select or input an image or picture for segmentation utilizing user interface 118. An image and/or picture can be selected or input in any manner. The user interface may facilitate the user accessing one or more images stored on the user device (e.g., in a photo library), and/or import images from remote devices and/or applications. Based on the input image, the input image can undergo segmentation using various techniques, some of which are further discussed below with reference to segmentation engine 206 of FIG. 2, and multiple segmentations can be provided to the user as masks via a user interface. After undergoing segmentation, masks can be used to display the different segmentations to a user via the user interface. Presenting various available segments as masks via the user interface allows the user to select one or more of the provided masks to use in editing the image. For example, the user can interact with the user interface to select a foreground segment from the available masks and edit the image to generate a composite image using the mask of the foreground segment and a new background. Interactions can include mousing over a portion of an image that has an associated mask, clicking on a portion of an image that has an associated mask using a mouse, clicking on a thumbnail representation of a mask, using touch screen capabilities, vocally indicating a selection, and/or other methods of user device interaction. Such interactions can be carried out using a touch screen, a stylus, a mouse, and/or a track pad. It should be appreciated that while image editing system 116 is depicted as a single system, in implementations, the functionality of the system can be performed using additional systems.
  • Referring to FIG. 2, aspects of an illustrative image editing environment 200 are shown, in accordance with various embodiments of the present disclosure. Image editing system 204 includes segmentation engine 206 and editing engine 208. The foregoing engines of image editing system 204 can be implemented, for example, in operating environment 100 of FIG. 1A and/or operating environment 112 of FIG. 1B. In particular, those engines may be integrated into any suitable combination of user devices 102 a and 102 b through 102 n and server(s) 108 and/or user device 114. While the segmentation engine and editing engine are depicted as separate engines, it should be appreciated that a single engine could perform the functionality of both engines. Additionally, in implementations, the functionality of the engines can be performed using additional engines. Further, it should be appreciated that the functionality of segmentation engine can be provided by a system separate from the image editing system. Such an imaging editing system can work in conjunction with data store 202.
  • Data store 202 can store computer instructions (e.g., software program instructions, routines, or services), data, and/or models used in embodiments described herein. In some implementations, data store 202 can store information or data received via the various engines and/or components of image editing system 204 and provides the various engines and/or components with access to that information or data, as needed. Although depicted as a single component, data store 202 may be embodied as one or more data stores. Further, the information in data store 202 may be distributed in any suitable manner across one or more data stores for storage (which may be hosted externally).
  • In embodiments, data store 202 can be used to store a neural network system capable of being used to segment an image using deep learning techniques, further discussed below with reference to segmentation engine 206. Such a neural network system can be comprised of one or more neural networks.
  • In embodiments, data stored in data store 202 can include images a user can select for editing using, for example, the image editing system. An image can include a visual representation of a person, object, or scene. Examples of an image can include digital versions of a picture, painting, drawing, and/or photograph. Such images can be input into data store 202 from a remote device, such as from a server or a user device. Data stored in data store 202 can also include segmentations generated for an image. Such segmentations can be stored as multiple segments and/or as masks. Segments can be created along boundaries within an image and/or used to designate objects and/or features within the image. Data stored in data store 202 can further include edited images. Saved edits can include manipulations to an image using a selected segment or mask to apply edits to the corresponding portion of the image.
  • Image editing system 204 can generally be used for editing images. Specifically, image editing system can be configured for editing images using segmentation. As used herein, image segmentation is the process of partitioning an image into multiple segments such that a segment can be selected for selectively applying edits to only the portion of the image as indicated by the selected segment. Segments can be visualized in an editing environment and/or image editing application using masks that indicate the segmented portion of an image to which edits will be applied as opposed to the portions of the image that will not be affected by edits. In some cases, a mask can highlight a segmented portion of the image to which edits will be applied and darken, blur, fade, or otherwise distinguish the portions of the image that will not be affected by edits. Image editing system can be configured to display multiple masks available that can be used for applying edits to portions of an image based on the segment of the image associated with a selected mask. This image editing system concurrently provides users with multiple masks representing possible segmentations for easy and intuitive editing of an image.
  • An image can be accessed or referenced by segmentation engine 206 for segmenting the image. In this regard, the segmentation engine 206 may access or retrieve an image selected by a user via data store 202 and/or from a remote device, such as from a server or a user device. As another example, the segmentation engine 206 may receive an image provided to the segmentation engine 206 via a user device. Image segmentation associated with an image can be initiated in any number of ways. For example, such segmentation can take place when a user indicates a desire to select and/or mask an image using, for example, a user interface associated with the image editing system. As another example, image segmentation may be initiated automatically, for instance, upon receiving an image. As described, an image can be segmented in any number of ways, such as, for instance, edge detection, color detection, object detection, etc. By way of example only, an image may be segmented in accordance with identifying a feature(s) or an object(s) within an image.
  • Such segmentation can be performed using any of a variety of techniques. Such techniques include deep learning techniques, color range or saliency detection, thresholding, clustering methods, compression-based methods, histogram-based methods, edge detection, dual clustering methods, region-growing methods, partial differential equation-based methods, variational methods, graph partitioning methods, watershed transformation, model based segmentation, multi-scale segmentation, and semi-automatic segmentation. Specifically, the deep learning techniques can include instance-level semantic segmentation as described in U.S. application Ser. No. 15/296,845, automatic boundary-aware human cutout as described in U.S. application Ser. No. 15/0886,590, object detection using cascaded convolutional neural networks as described in U.S. Pat. No. 9,418,319, all of which are incorporated by reference, generic algorithms for segmentation such as R-CNN and/or mask R-CNN.
  • As can be appreciated, any number of segments can be identified or detected. For example, in some implementations, any segments may be identified and ranked, such that only a portion of the identified segments are masked and/or presented.
  • Upon segmenting an image, the editing engine 208 can be utilized to edit the image in accordance with a selected segment(s). As can be appreciated, in some cases, the image may be segmented immediately preceding editing of the image. In other cases, an image may be segmented and stored accordingly, for example in data store 202, for subsequent editing. As shown, the editing engine 208 can include mask component 210, presentation component 212, and modification component 214. The foregoing components of editing engine 208 can be implemented, for example, in operating environment 100 of FIG. 1A and/or operating environment 112 of FIG. 1B. In particular, those components may be integrated into any suitable combination of user devices 102 a and 102 b through 102 n and server(s) 106 and/or user device 114. It should be appreciated that while mask component, presentation component, and modification component are depicted as a separate components, in implementations, the functionality of the system can be performed using a single component and/or additional components.
  • Generally, the mask component 210 is configured to generate a set of masks for the image in accordance with image segmentations. In this regard, for each image segmentation, a mask may be generated. Masks can be generated based on the saliency of objects in an image, based on objects of an image that likely need to be edited (e.g., based on attributes not meeting a certain threshold), based on boundaries within an image that designate an object and/or feature within the image. or a combination thereof. Initiating mask generation may occur in any number of ways. In some implementations, mask generation may automatically occur upon image segmentation. That is, upon identifying a set of image segmentations (e.g., via segmentation engine 206), a set of corresponding masks may be automatically generated. In other implementations, masks may be generated upon a user indicating a desire to view possible masks for an image. For example, a user may select or input a menu command, a mouse or touch input using a touch and/or click, lasso and/or marque tool and/or a voice input to “Show Selections,” “Show Segments,” or “Show Masks,” or some combination thereof. Such an input can be performed using, for example, a touch screen, a stylus, a mouse, and/or a track pad.
  • The masks generated and/or presented may be determined, for example, based on input from a user, or in other cases, based on default configurations. For example, mask component 210 may enable a user to select a particular level of detail for the masks desired to be viewed. This level of masks can be based on how much detail the user wishes to observe for segmentation options. For instance, in a portrait of an individual, the image can be segmented into a segment of the individual's face and a segment of the background or, if more detail is desired, into segments of the individual's eyes, teeth, hair, etc. In an embodiment, the detail level can indicate the number of masks the user wishes to view: 1 for one mask, 2 for two masks, etc. In another embodiment, the detail level can be designated as low, medium, or high where low would include masks of larger image areas (e.g., just a foreground mask and a background mask) and high would include masks of smaller more detailed areas for editing smaller segments of the image (e.g., for a portrait, in addition to foreground and background, masks of eyes, teeth, hair, etc.). Such a detail level may be provided at the outset to determine for which image segmentations to generate masks. In other cases, masks may be generated for each image segmentation, and the detail level may be used to select which masks to present to a user.
  • A set of masks can be presented to the user using presentation component 212 allowing the user to visualize different portions of the image that localized edits can be applied to using masks. In this manner, multiple masks can be concurrently or simultaneously presented such that a user may select from among the masks to apply edits. Presenting multiple masks in this manner allows a user to visualize available masks in a single input rather than having to iteratively go through the step by step mask creation in order to select and edit different areas of an image. The user can select a mask from the presented masks to apply edits to the corresponding portion of the image based on the selection for which the mask was generated.
  • The set of masks can be presented to users in various manners. In an embodiment, such masks can overlay an image such that a user can visualize which mask corresponds to what portion of the image upon selection of a mask (e.g., via clicking a mask, mousing over a mask, etc.). The masks can be presented as a strip of thumbnails in a mask zone of a graphical user interface of an image editing system. Available masks can also be presented when a user interacts with a portion of an image for which a mask is available, for example, by clicking on a portion the user is interested in editing. In such presentations of masks, multiple nested masks can be available upon selecting a mask that contains portions of another mask(s) (e.g., selecting a mask of a person and being presented with nested masks of the person's face, and, further, the person's smile). In further embodiments, upon a user interaction with a portion of the image for which a mask is available, a thumbnail pop-up window can appear. The user can further interact with such a pop-up to select the available mask for making edits.
  • Upon selecting a mask to apply, modification component 214 can be used to apply edits to an image. For instance, a mask can be used to create different adjustment layers for applying edits such as levels, curves, hue and saturation, black and white, vibrance, color balance, etc. In this way, a user is provided an easy and intuitive way that the user can select masks to use from the list of available masks for image editing, adjustments, and/or composition. To this end, a mask can be selected and edits made to the corresponding portion of the image. Instead of having to go through the conventional method of the time-consuming step by step creation of a new mask to apply edits to another portion of the image, a user can simply select another mask from the presented masks for use in editing the image. That is, a user can select a second mask previously generated and presented to apply additional or alternative edits to the image.
  • In an embodiment, a user can select a mask representing a person in an image. Upon selecting the mask, a list of possible edit options can appear. These edit options can be used to edit the portion of the image as indicate by the selected mask, (e.g., the person). For instance, if hue and saturation is selected, the user can edit the portion of the image as indicated by the mask to make changes to the hue and saturation. Such edits to the image are capable of being displayed in an edit zone. These edits can appear in a manner that an individual edit operation can be returned to for further editing. In the case of editing hue and saturation of a person in an image, if upon applying later edits, the user decides that the saturation has been edited too much, the user can select the hue and saturation editing instance applied using the mask of the person from the applied edits. Selecting this editing instance will allow the user to make further hue and saturation edits to the person portion of the image.
  • Such masks can also be used in creating composite images. For example, a mask indicating a car in an image can be selected for editing. This car mask can then be exported as a new layer and composited with a new background to create a composite image. Additional edits can then be made to the composited image using additional editing operations. For instance, after generating the composite image, a user may wish to input additional edits to the appearance of the car. Such edits can include changing the brightness of the car, modifying the color of the car, etc. Each of these edits can be performed using the car mask so that the edits are applied to only the car portion of the image and not the overall composite image.
  • In embodiments, edits to an image can be made using a first mask using a first layer mask in a first layer and edits made using a second mask can be applied using a second layer mask in a second layer. In this way, edits made to an image are stacked as layers of edits applied using selected masks.
  • FIGS. 3A-3E depict illustrative image editing systems for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure. FIG. 3A depicts a graphical user interface of image editing system 300 for presenting available masks for use in editing an image. Examples of such an image editing system can include Adobe® Photoshop®, LightRoom®, and the like. As illustrated, Select and Mask 302 can be selected to generate segmentations for image 306 displayed in display zone 308. Such segmentations can be generated using, for instance, a segmentation engine (e.g., segmentation engine 206 of image editing system 204). In embodiments, Select and Mask can be displayed as a selectable button. Such a Select and Mask button can be selected by a user by clicking on the button, using touch screen capabilities, vocally indicating a selection, and/or other methods of user device interaction. In further embodiments, Select and Mask need not have a visual component and can be applied using a vocal indication.
  • Upon completion of image segmentation, Show Masks 304 can be selected. Upon selecting Show Masks, multiple masks available for use can be displayed. In embodiments, Show Masks can be displayed as a selectable button. Such a Show Masks button can be selected by a user by clicking on the button, using touch screen capabilities, vocally indicating a selection, and/or other methods of user device interaction. In further embodiments, Show Masks need not have a visual component and can be applied using a vocal indication. Show Masks can also be a selection tool that allows a user to utilize multiple input methods such as single click, marquee, and/or lasso. Alternatively, upon selecting Show Masks, segmentation can automatically be triggered, removing the need for a Select and Mask interaction.
  • Upon the selection Show Masks, masks generated during segmentation can be displayed in mask zone 310 of the image editing system 300. Advantageously, such presentation of masks allows a user to see and visualize the different areas of image 306 available as possible selections or masks at one time without having to repeatedly go through step by step mask creation in order to select and edit different areas of the image. In one embodiment, as depicted in FIG. 3A, the masks can be presented in a horizontal strip of thumbnails in mask zone 310 with different visualization options (e.g., Marching Ants, Overlay, On Black, On White, and Black and White). It should be appreciated that such presentation is not limited to a horizontal position and further embodiments can include vertical position, presentation in a pop-up window, in a new tab, etc.
  • The displayed masks can be based on a selected detail level 312. In an embodiment, the detail level can indicate the number of masks the user wishes to view: 1 for one mask, 2 for two masks, etc. In another embodiment, the detail level can be designated as low, medium, or high (or other designations) where low would include masks depicting less detailed portions of an image and high would include masks for editing smaller segments of the image. Although described as using numerals, or high/medium/low designations, as can be appreciated, detail level can be specified in any number of ways.
  • Image 306 can be edited using image editing system 300. Edits to the image can be displayed in edit zone 314. Edit zone 314 can indicate different layers of edits as well as any edits made to image 306. Such edits can include changes made to levels, curves, hue and saturation, black and white, vibrance, color balance, etc. The edit zone can also designate what layer an edit is applied to and/or the properties of an edit.
  • FIG. 3B depicts that when a user selects mask 316 from the available thumbnail masks, list 318 can be presented. List 318 includes available edit options a user can apply for the portion of the image corresponding to selected mask 316. Such a list can be tailored for the specific function of editing an image utilizing a selected mask. In embodiments, such a list can appear when a user right clicks on a mask, left clicks on a mask, uses touch screen capabilities, vocally indicates a selection, and/or other methods of user device interaction. List 318 can include various edit options, such as, for example, brightness/contrast, levels, curves, exposures, vibrance, hue/saturation, color balance, black & white, photo finish, channel mixer, color lookup, invert, posturize, threshold, corrective colorization, shadows/highlights, HDR toning, desaturate, match color, replace color, equalize, etc.
  • FIG. 3C depicts that when a user selects an available edit option from list 318, editing window 320 can appear. As depicted, a user selected the vibrance option from list 318 resulting in editing window 320. A user can utilize editing window 320 to edit the portion of the image corresponding to selected mask 316. As depicted, making edits using editing window 320 will change values associated with vibrance and/or saturation for the face/skin segment of the individual in the image. As edits are made to the image using selected masks, the edit zone can be updated to show the edits to the corresponding portions of the image. For instance, edit 322 indicates a vibrance edit was made. Displaying the edits using the edit zone allows a user to go back and make changes to those edits if desired.
  • FIG. 3D depicts that displaying multiple masks for selection allows a user to easily move from editing one portion of an image, using, for example, mask 316, to editing another area portion of the image, using, for example, mask 324. Such a mask can be used to create a new layer using a layer mask. Output to Selection 328 can be used to select how to apply an edit option to a selected mask. For instance, after selecting mask 324, Export Mask 330 can be selected to output mask 324 to a new layer as a layer mask. Such a layer can be seen in the edit zone as edit 332.
  • FIG. 3E depicts that upon selecting a mask from the mask zone, the selected mask can be displayed in the display zone for the image. Displayed mask 334 shows a full-size mask for the image as edits are made.
  • FIG. 4 depicts an illustrative image editing system for providing available masks for use in editing of an image, in accordance with embodiments of the present disclosure. Examples of such an image editing system can include Adobe® Photoshop®, LightRoom®, and the like. Select and Mask can be selected to generate segmentations for image 402 displayed in display zone 404. Such segmentations can be generated using, for instance, a segmentation engine (e.g., segmentation engine 205 of image editing system 204).
  • Upon selecting Show Masks, multiple masks can become available for display. Show Masks can be selected upon completion of image segmentation. Alternatively, selecting Show Masks can automatically trigger Select and Mask to generate the segmentations. Masks for visualizing the segments generated during segmentation can be presented to a user when the user interacts with a portion of image 402 for which a mask is available. As displayed, interaction 406 (e.g., clicking and/or mousing over the person in image 402) indicates that mask 408 for the foreground of image 402 is available for use in editing the image. User interaction can include mousing over a portion of an image that has an associated mask, clicking on a portion of an image that has an associated mask using a mouse, using touch screen capabilities, and/or other methods of user device interaction. Such user interactions can be input using, for example, using a touch screen, a stylus, a mouse, and/or a track pad. In further embodiments, instead of displaying an available mask in full-size over the image, upon a user interaction with a portion of the image for which a mask is available, a thumbnail pop-up window can appear. The user can further interact with such a pop-up to select the available mask for making edits.
  • When a mask has been selected, mask zone 410 can overlay display zone 404 so that the selected mask can be viewed. Further, a user can indicate that while performing edits to image 402 using selected mask 408, the user wishes to view the image without selected mask 408. This can be implemented, for example, by hiding the overlaid mask zone during the edits. Hiding the overlaid mask zone can be accomplished, for instance, by deselecting Show Masks. Edits to image 402 can be displayed in edit zone 412.
  • With reference to FIG. 5, a process flow is provided showing an embodiment of method 500 for performing segmentation of an image to generate masks for use in editing portions of the image, in accordance with embodiments of the present invention. Method 500 can be performed, for example by segmentation engine 206 of image editing system 204, as illustrated in FIG. 2.
  • At block 502, a request is received for segmentation of a selected image. Such an image can be selected from a group of images stored in a database, such as data store 202 of FIG. 2. Image segmentation is the process of partitioning an image into multiple segments. Segments can be created along boundaries within an image and/or used to designate objects and/or features within the image. Such a segment can be visualized in an editing environment using a mask that indicates the segmented portion of an image to which edits will be applied as opposed to the portions of the image that will not be affected by edits.
  • At block 504, segmentation of the image can be performed. Such segmentation can be performed using any number of techniques. Such techniques include deep learning techniques, color range or saliency detection, thresholding, clustering methods, compression-based methods, histogram-based methods, edge detection, dual clustering methods, region-growing methods, partial differential equation-based methods, variational methods, graph partitioning methods, watershed transformation, model based segmentation, multi-scale segmentation, and semi-automatic segmentation. Specifically, the deep learning techniques can include instance-level semantic segmentation as described in U.S. application Ser. No. 15/296,845, automatic boundary-aware human cutout as described in U.S. application Ser. No. 15/0886,590, object detection using cascaded convolutional neural networks as described in U.S. Pat. No. 9,418,319, all of which are incorporated by reference, generic algorithms for segmentation such as R-CNN and/or mask R-CNN.
  • At block 506, the segments as generated at block 504, can be presented as selectable masks. Presentation of multiple generated masks allows a user to see and visualize the different areas of an image available as possible selections or masks at one time without having to repeatedly go through step by step mask creation in order to select and edit different areas of the image. In one embodiment, the masks can be presented in a strip of thumbnails in a mask zone with different visualization options (e.g., Marching Ants, Overlay, On Black, On White, and Black and White). In another embodiment, an available mask can be presented when a user interacts with a portion of an image for which a mask is available, for example, by clicking on a portion the user is interested in editing. In further embodiments, upon a user interaction with a portion of the image for which a mask is available, a thumbnail pop-up window can appear. The user can further interact with such a pop-up to select the available mask for making edits.
  • FIG. 6 illustrates an example process flow 600 for utilizing a mask generated based on segmentation of an image for editing portions of the image, in accordance with embodiments of the present invention. At block 602, a request for segmentations for an image can be sent. Such a request can be sent, for example, by editing engine 208 to segmentation engine 206, as depicted in FIG. 2.
  • At block 604, an indication to select to show masks based on received segmentation can be received. In embodiments, such a selection can be indicated using a Show Masks button. In further embodiments, Show Masks need not have a visual component and can be applied using a vocal indication. Show Masks can also be a selection tool that allows a user to utilize multiple input methods such as single click, marquee, and/or lasso. Upon receiving such an indication, multiple masks available for use can be presented. The masks can be presented as a strip of thumbnails in a mask zone of a graphical user interface of an image editing system. Available masks can also be presented when a user interacts with a portion of an image for which a mask is available, for example, by clicking on a portion the user is interested in editing. In further embodiments, upon a user interaction with a portion of the image for which a mask is available, a thumbnail pop-up window can appear. The user can further interact with such a pop-up to select the available mask for making edits.
  • At block 606, input can be received indicating a desired detail level of segmentation. This level of masks can be based on how much detail a user wishes to observe for segmentation options. For instance, in a portrait of an individual, the image can be segmented into a segment of the individual's face and a segment of the background or, if more detail is desired, into segments of the individual's eyes, teeth, hair, etc. In an embodiment, the detail level can indicate the number of masks the user wishes to view: 1 for one mask, 2 for two masks, etc. In another embodiment, the detail level can be designated as low, medium, or high where low would include masks for less detailed objects from an image and high would include masks for editing more detailed objects using smaller segments of the image.
  • At block 608 a mask can be selected for use in editing an image. When a user selects a mask from the available masks, a list of possible edit options can be presented. In embodiments, such a list can appear when a user right clicks on a mask, left clicks on a mask, uses touch screen capabilities, vocally indicates a selection, and/or other methods of user device interaction.
  • At block 610, a selected mask, such as that at block 608, can be selected to export as a new layer. A layer is used to describe the different levels at which a user can edit an image in an image editing application. A user can stack, merge, and/or define layers when editing a digital image. Layers can be used to allow portions of images within a layer to be shown in a selected manner (e.g., with a selected editing process applied). Layers also allow users to be able to combine two or more images into a single image. Using layers when editing an image can allow a user to continually make changes and/or edits within a layer during the editing process without affecting other layers of the image. Such a layer can be seen in an edit zone of a graphical user interface of an image editing system. Different adjustment layers include levels, curves, hue and saturation, black and white, vibrance, color balance, etc. In this way, a user is provided with an easy and intuitive way that the user can use the list of available masks for image editing, adjustments, and/or composition.
  • At block 612, the image can be edited using the selected mask. Current editing manipulations can be displayed the editing zone graphical user interface of an image editing system. Such edits can include changes made to levels, curves, hue and saturation, black and white, vibrance, color balance, etc.
  • Upon completing edits using a selected mask at block 612, the process flow can return to block 608 and another presented mask can be selected, repeating the editing process without requiring additional segmentation to be performed. It should also be appreciated that not all masks selected at block 608 need to be exported as a new layer, as in block 610. In some embodiments, the process at block 610 can be skipped and multiple edits can be made in the same layer using different masks to apply edits to corresponding portions of an image.
  • Having described embodiments of the present invention, FIG. 7 provides an example of a computing device in which embodiments of the present invention may be employed. Computing device 700 includes bus 710 that directly or indirectly couples the following devices: memory 712, one or more processors 714, one or more presentation components 716, input/output (I/O) ports 718, input/output components 720, and illustrative power supply 722. Bus 710 represents what may be one or more busses (such as an address bus, data bus, or combination thereof). Although the various blocks of FIG. 7 are shown with lines for the sake of clarity, in reality, delineating various components is not so clear, and metaphorically, the lines would more accurately be gray and fuzzy. For example, one may consider a presentation component such as a display device to be an I/O component. Also, processors have memory. The inventors recognize that such is the nature of the art and reiterate that the diagram of FIG. 7 is merely illustrative of an exemplary computing device that can be used in connection with one or more embodiments of the present invention. Distinction is not made between such categories as “workstation,” “server,” “laptop,” “handheld device,” etc., as all are contemplated within the scope of FIG. 7 and reference to “computing device.”
  • Computing device 700 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computing device 700 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVDs) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device 700. Computer storage media does not comprise signals per se. Communication media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
  • Memory 712 includes computer storage media in the form of volatile and/or nonvolatile memory. As depicted, memory 712 includes instructions 724. Instructions 724, when executed by processor(s) 714 are configured to cause the computing device to perform any of the operations described herein, in reference to the above discussed figures, or to implement any program modules described herein. The memory may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical-disc drives, etc. Computing device 700 includes one or more processors that read data from various entities such as memory 712 or I/O components 720. Presentation component(s) 716 present data indications to a user or other device. Exemplary presentation components include a display device, speaker, printing component, vibrating component, etc.
  • I/O ports 718 allow computing device 700 to be logically coupled to other devices including I/O components 720, some of which may be built in. Illustrative components include a microphone, joystick, game pad, satellite dish, scanner, printer, wireless device, etc. I/O components 720 may provide a natural user interface (NUI) that processes air gestures, voice, or other physiological inputs generated by a user. In some instances, inputs may be transmitted to an appropriate network element for further processing. An NUI may implement any combination of speech recognition, touch and stylus recognition, facial recognition, biometric recognition, gesture recognition both on screen and adjacent to the screen, air gestures, head and eye tracking, and touch recognition associated with displays on computing device 700. Computing device 700 may be equipped with depth cameras, such as stereoscopic camera systems, infrared camera systems, RGB camera systems, and combinations of these, for gesture detection and recognition. Additionally, computing device 700 may be equipped with accelerometers or gyroscopes that enable detection of motion. The output of the accelerometers or gyroscopes may be provided to the display of computing device 700 to render immersive augmented reality or virtual reality.
  • Embodiments presented herein have been described in relation to particular embodiments which are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will become apparent to those of ordinary skill in the art to which the present disclosure pertains without departing from its scope.
  • Various aspects of the illustrative embodiments have been described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art. However, it will be apparent to those skilled in the art that alternate embodiments may be practiced with only some of the described aspects. For purposes of explanation, specific numbers, materials, and configurations are set forth in order to provide a thorough understanding of the illustrative embodiments. However, it will be apparent to one skilled in the art that alternate embodiments may be practiced without the specific details. In other instances, well-known features have been omitted or simplified in order not to obscure the illustrative embodiments.
  • Various operations have been described as multiple discrete operations, in turn, in a manner that is most helpful in understanding the illustrative embodiments; however, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations need not be performed in the order of presentation. Further, descriptions of operations as separate operations should not be construed as requiring that the operations be necessarily performed independently and/or by separate entities. Descriptions of entities and/or modules as separate modules should likewise not be construed as requiring that the modules be separate and/or perform separate operations. In various embodiments, illustrated and/or described operations, entities, data, and/or modules may be merged, broken into further sub-parts, and/or omitted.
  • The phrase “in one embodiment” or “in an embodiment” is used repeatedly. The phrase generally does not refer to the same embodiment; however, it may. The terms “comprising,” “having,” and “including” are synonymous, unless the context dictates otherwise. The phrase “A/B” means “A or B.” The phrase “A and/or B” means “(A), (B), or (A and B).” The phrase “at least one of A, B and C” means “(A), (B), (C), (A and B), (A and C), (B and C) or (A, B and C).”

Claims (20)

1. One or more computer-readable media having a plurality of executable instructions embodied thereon, which, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving a request to edit an image;
upon generating multiple segments of the image, generating a set of corresponding masks for the multiple segments of the image, the masks indicating portions of the image to which edits are applicable upon selection; and
providing at least one of the multiple segments for display using at least one of the masks via a graphical user interface, wherein each mask is selectable for use in applying edits to a corresponding portion of the image based on the segments.
2. The media of claim 1, further comprising:
receiving an indication to apply edits to a portion of the image using a selected mask indicating the portion of the image to edit; and
providing the edits to the portion of the image for display via the graphical user interface.
3. The media of claim 2, further comprising:
receiving a second indication to apply edits to a second portion of the image using a second selected mask indicating a second portion of the image to edit.
4. The media of claim 3, wherein the edits to the portion of the image using the selected mask are applied using a layer mask in a first layer and the edits to the second portion of the image are applied using a second layer mask in a second layer.
5. The media of claim 1, wherein the segments for display using the at least one of the masks are based on a selected segmentation detail level.
6. The media of claim 1, wherein a mask appears via the graphical user interface upon a user interaction with a portion of the image corresponding to the mask.
7. The media of claim 1, wherein the at least one of the masks appear via the graphical user interface as at least one of a strip of thumbnails and a pop-up upon a user interaction with a portion of the image corresponding to the mask.
8. The media of claim 1, wherein the segments of the image are generated utilizing at least one of deep learning techniques, color range detection, saliency detection, thresholding, clustering methods, compression-based methods, histogram-based methods, edge detection, dual clustering methods, region-growing methods, partial differential equation-based methods, variational methods, graph partitioning methods, watershed transformation, model based segmentation, multi-scale segmentation, and semi-automatic segmentation.
9. A computer-implemented method for editing images, the method comprising:
causing a display of a graphical user interface used to edit an image, the graphical user interface including a display zone configured to display the image,
upon generating multiple segments of the image, generating multiple masks that correspond to the multiple segments, the masks representing segments of the image to which edits are applicable upon selection; and
causing a display of the masks in a mask zone of the graphical user interface, wherein each mask is selectable for use in applying edits to corresponding portions of the image based on the segments.
10. The computer-implemented method of claim 9, wherein the mask zone is adjacent to the display zone, the display of the masks as thumbnails.
11. The computer-implemented method of claim 9, wherein the mask zone overlays the display zone, the display of a mask appearing upon user interaction with a portion of the image corresponding to the mask.
12. The computer-implemented method of claim 11, wherein the user interaction including at least one of a mouse-over, a click, a touch-screen selection, and a verbal selection.
13. The computer-implemented method of claim 11, wherein the mask is presented as a full-size overlay over the image.
14. The computer-implemented method of claim 11, wherein the mask is presented as a pop-up thumbnail.
15. The computer-implemented method of claim 11, the display of a second mask appearing upon a second user interaction with a second portion of the image corresponding to the second mask.
16. The computer-implemented method of claim 9, further comprising:
receiving a selection of a mask for use in editing the image.
17. The computer-implemented method of claim 16, further comprising:
causing a display of edit options upon the selection of the mask.
18. The computer-implemented method of claim 9, further comprising:
causing a display of a graphical user interface used to edit an image, the graphical user interface including a display zone configured to display the image.
19. A computing system comprising:
means for segmenting an image into segments, each segment comprising a portion of the image;
means for generating a set of corresponding masks for the segments of the image;
means for concurrently providing the set of corresponding masks, wherein each mask provides a visual representation of a corresponding segment and is selectable for use in applying at least one edit to the corresponding portion of the image; and
means for applying edits to the image using the selected mask.
20. The system of claim 18, further comprising:
means for providing edit options to the user upon selection of the mask.
US15/826,162 2017-11-29 2017-11-29 Presenting multiple image segmentations Active US10977844B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/826,162 US10977844B2 (en) 2017-11-29 2017-11-29 Presenting multiple image segmentations
US17/214,918 US11468614B2 (en) 2017-11-29 2021-03-28 Presenting multiple image segmentations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15/826,162 US10977844B2 (en) 2017-11-29 2017-11-29 Presenting multiple image segmentations

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/214,918 Continuation US11468614B2 (en) 2017-11-29 2021-03-28 Presenting multiple image segmentations

Publications (2)

Publication Number Publication Date
US20190164322A1 true US20190164322A1 (en) 2019-05-30
US10977844B2 US10977844B2 (en) 2021-04-13

Family

ID=66632584

Family Applications (2)

Application Number Title Priority Date Filing Date
US15/826,162 Active US10977844B2 (en) 2017-11-29 2017-11-29 Presenting multiple image segmentations
US17/214,918 Active US11468614B2 (en) 2017-11-29 2021-03-28 Presenting multiple image segmentations

Family Applications After (1)

Application Number Title Priority Date Filing Date
US17/214,918 Active US11468614B2 (en) 2017-11-29 2021-03-28 Presenting multiple image segmentations

Country Status (1)

Country Link
US (2) US10977844B2 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200065604A1 (en) * 2018-08-27 2020-02-27 Samsung Electronics Co., Ltd. User interface framework for multi-selection and operation of non-consecutive segmented information
US10797863B2 (en) * 2017-12-28 2020-10-06 Intel Corporation Multi-domain cascade convolutional neural network
US11061744B2 (en) * 2018-06-01 2021-07-13 Apple Inc. Direct input from a remote device
US20210304431A1 (en) * 2019-08-09 2021-09-30 Google Llc Depth-Aware Photo Editing
US11157599B2 (en) 2019-08-20 2021-10-26 Citrix Systems, Inc. Masked watermarks and related systems and techniques
US20210373755A1 (en) * 2017-09-09 2021-12-02 Apple Inc. Device, Method, and Graphical User Interface for Adjusting a Display Property of an Affordance Over Changing Background Content
US20220207807A1 (en) * 2019-04-09 2022-06-30 Koninklijke Philips N.V. Modifying an appearance of hair
US11468614B2 (en) 2017-11-29 2022-10-11 Adobe Inc. Presenting multiple image segmentations
WO2022227486A1 (en) * 2021-04-27 2022-11-03 西安微电子技术研究所 Artificial intelligence-based remote sensing field ridge boundary detection method, system, computer device, and storage medium
US20230177695A1 (en) * 2020-08-21 2023-06-08 Inspur Suzhou Intelligent Technology Co., Ltd. Instance segmentation method and system for enhanced image, and device and medium
WO2023115044A1 (en) * 2021-12-17 2023-06-22 Pinterest, Inc. Extracted image segments collage
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
US11887360B2 (en) 2017-12-28 2024-01-30 Intel Corporation Ubiquitous witness for vehicle incidents

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020042038A1 (en) * 1999-05-13 2002-04-11 Miller Ross J. Systems and methods for dental treatment planning
US20050114784A1 (en) * 2003-04-28 2005-05-26 Leslie Spring Rich media publishing
US20070146389A1 (en) * 2005-12-24 2007-06-28 Distler Joshua D I Methods and files for delivering imagery with embedded data
US20080126020A1 (en) * 2006-11-27 2008-05-29 Ramsay Hoguet Visual bookmarks for home and landscape design
US20090087035A1 (en) * 2007-10-02 2009-04-02 Microsoft Corporation Cartoon Face Generation
US8170380B1 (en) * 2008-05-30 2012-05-01 Adobe Systems Incorporated Method and apparatus for importing, exporting and determining an initial state for files having multiple layers
US20120216106A1 (en) * 2011-02-23 2012-08-23 Casey Martin D Computer-implemented system and method for conducting field inspections and generating reports
US20160275712A1 (en) * 2013-03-15 2016-09-22 Crayola, Llc Coloring Kit for Capturing and Animating Two-Dimensional Colored Creation
US9563961B1 (en) * 2016-01-19 2017-02-07 Xerox Corporation Method and system for image processing
US20170278308A1 (en) * 2016-03-23 2017-09-28 Intel Corporation Image modification and enhancement using 3-dimensional object model based recognition
US10325416B1 (en) * 2018-05-07 2019-06-18 Apple Inc. Avatar creation user interface

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117558B2 (en) 2006-11-27 2012-02-14 Designin Corporation Converting web content into two-dimensional CAD drawings and three-dimensional CAD models
US8731319B2 (en) * 2008-06-25 2014-05-20 Adobe Systems Incorporated Image layer stack interface
US9418319B2 (en) 2014-11-21 2016-08-16 Adobe Systems Incorporated Object detection using cascaded convolutional neural networks
US9569697B1 (en) * 2015-02-19 2017-02-14 Google Inc. Object oriented image editing
US9972092B2 (en) 2016-03-31 2018-05-15 Adobe Systems Incorporated Utilizing deep learning for boundary-aware image segmentation
US10424064B2 (en) 2016-10-18 2019-09-24 Adobe Inc. Instance-level semantic segmentation system
US10977844B2 (en) 2017-11-29 2021-04-13 Adobe Inc. Presenting multiple image segmentations

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020042038A1 (en) * 1999-05-13 2002-04-11 Miller Ross J. Systems and methods for dental treatment planning
US20050114784A1 (en) * 2003-04-28 2005-05-26 Leslie Spring Rich media publishing
US20070146389A1 (en) * 2005-12-24 2007-06-28 Distler Joshua D I Methods and files for delivering imagery with embedded data
US20080126020A1 (en) * 2006-11-27 2008-05-29 Ramsay Hoguet Visual bookmarks for home and landscape design
US20090087035A1 (en) * 2007-10-02 2009-04-02 Microsoft Corporation Cartoon Face Generation
US8170380B1 (en) * 2008-05-30 2012-05-01 Adobe Systems Incorporated Method and apparatus for importing, exporting and determining an initial state for files having multiple layers
US20120216106A1 (en) * 2011-02-23 2012-08-23 Casey Martin D Computer-implemented system and method for conducting field inspections and generating reports
US20160275712A1 (en) * 2013-03-15 2016-09-22 Crayola, Llc Coloring Kit for Capturing and Animating Two-Dimensional Colored Creation
US9563961B1 (en) * 2016-01-19 2017-02-07 Xerox Corporation Method and system for image processing
US20170278308A1 (en) * 2016-03-23 2017-09-28 Intel Corporation Image modification and enhancement using 3-dimensional object model based recognition
US10325416B1 (en) * 2018-05-07 2019-06-18 Apple Inc. Avatar creation user interface

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210373755A1 (en) * 2017-09-09 2021-12-02 Apple Inc. Device, Method, and Graphical User Interface for Adjusting a Display Property of an Affordance Over Changing Background Content
US11468614B2 (en) 2017-11-29 2022-10-11 Adobe Inc. Presenting multiple image segmentations
US10797863B2 (en) * 2017-12-28 2020-10-06 Intel Corporation Multi-domain cascade convolutional neural network
US11887360B2 (en) 2017-12-28 2024-01-30 Intel Corporation Ubiquitous witness for vehicle incidents
US11521024B2 (en) * 2017-12-28 2022-12-06 Intel Corporation Cascade convolutional neural network
US11061744B2 (en) * 2018-06-01 2021-07-13 Apple Inc. Direct input from a remote device
US11074116B2 (en) * 2018-06-01 2021-07-27 Apple Inc. Direct input from a remote device
US10915778B2 (en) * 2018-08-27 2021-02-09 Samsung Electronics Co., Ltd. User interface framework for multi-selection and operation of non-consecutive segmented information
US20200065604A1 (en) * 2018-08-27 2020-02-27 Samsung Electronics Co., Ltd. User interface framework for multi-selection and operation of non-consecutive segmented information
US20220207807A1 (en) * 2019-04-09 2022-06-30 Koninklijke Philips N.V. Modifying an appearance of hair
US11756223B2 (en) * 2019-08-09 2023-09-12 Google Llc Depth-aware photo editing
US20210304431A1 (en) * 2019-08-09 2021-09-30 Google Llc Depth-Aware Photo Editing
US11157599B2 (en) 2019-08-20 2021-10-26 Citrix Systems, Inc. Masked watermarks and related systems and techniques
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
US20230177695A1 (en) * 2020-08-21 2023-06-08 Inspur Suzhou Intelligent Technology Co., Ltd. Instance segmentation method and system for enhanced image, and device and medium
US11748890B2 (en) * 2020-08-21 2023-09-05 Inspur Suzhou Intelligent Technology Co., Ltd. Instance segmentation method and system for enhanced image, and device and medium
WO2022227486A1 (en) * 2021-04-27 2022-11-03 西安微电子技术研究所 Artificial intelligence-based remote sensing field ridge boundary detection method, system, computer device, and storage medium
WO2023115044A1 (en) * 2021-12-17 2023-06-22 Pinterest, Inc. Extracted image segments collage

Also Published As

Publication number Publication date
US10977844B2 (en) 2021-04-13
US20210217216A1 (en) 2021-07-15
US11468614B2 (en) 2022-10-11

Similar Documents

Publication Publication Date Title
US11468614B2 (en) Presenting multiple image segmentations
US10657652B2 (en) Image matting using deep learning
US11783461B2 (en) Facilitating sketch to painting transformations
US10593023B2 (en) Deep-learning-based automatic skin retouching
US9811933B2 (en) Image editing using selective editing tools
US9619471B2 (en) Background removal tool for a presentation application
US8582834B2 (en) Multi-image face-based image processing
US8854370B2 (en) Color waveform
US20180356967A1 (en) Facilitating automatic generation of customizable storyboards
US20120210229A1 (en) Color workflow
US20210241503A1 (en) Method and apparatus for automatic line drawing coloring and graphical user interface thereof
US20160062961A1 (en) Hotspot editor for a user interface
US20230244940A1 (en) Methods and systems for geometry-aware image contrast adjustments via image-based ambient occlusion estimation
US11157773B2 (en) Image editing by a generative adversarial network using keypoints or segmentation masks constraints
US11048862B2 (en) Enhanced design collaboration using design-based feedback
US9786055B1 (en) Method and apparatus for real-time matting using local color estimation and propagation
US11538170B2 (en) Integrated interactive image segmentation
US20180276004A1 (en) Visual history for content state changes
US10685470B2 (en) Generating and providing composition effect tutorials for creating and editing digital content
US20200364914A1 (en) Adaptive image armatures with interactive composition guidance
KR20230068084A (en) Device, method and computer program for operating modeling of customized floor plan
US11475544B2 (en) Automated braces removal from images
US20240168617A1 (en) Detecting and modifying object attributes
US10068361B2 (en) Hybrid level set for interactive editing of matting and selection
CN117649460A (en) Mask operation method and equipment, storage medium and terminal thereof

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: ADOBE SYSTEMS INCORPORATED, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KONG, SARAH AYE;PAO, I-MING;BYUN, HYUNGHWAN;SIGNING DATES FROM 20171127 TO 20171217;REEL/FRAME:044444/0835

AS Assignment

Owner name: ADOBE INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:ADOBE SYSTEMS INCORPORATED;REEL/FRAME:047687/0115

Effective date: 20181008

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE