WO2025029057A1 - 생성 모델을 이용한 이미지 처리 방법 및 이를 수행하기 위한 컴퓨팅 장치 - Google Patents

생성 모델을 이용한 이미지 처리 방법 및 이를 수행하기 위한 컴퓨팅 장치 Download PDF

Info

Publication number
WO2025029057A1
WO2025029057A1 PCT/KR2024/011285 KR2024011285W WO2025029057A1 WO 2025029057 A1 WO2025029057 A1 WO 2025029057A1 KR 2024011285 W KR2024011285 W KR 2024011285W WO 2025029057 A1 WO2025029057 A1 WO 2025029057A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
area
generation
computing device
input image
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.)
Pending
Application number
PCT/KR2024/011285
Other languages
English (en)
French (fr)
Inventor
이태미
공내진
배기현
조호철
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020230178039A external-priority patent/KR20250019552A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to CN202480050152.4A priority Critical patent/CN121713215A/zh
Priority to EP24849624.2A priority patent/EP4723041A4/en
Priority to US18/811,005 priority patent/US20250045877A1/en
Publication of WO2025029057A1 publication Critical patent/WO2025029057A1/ko
Anticipated expiration legal-status Critical
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation
    • G06T11/60Creating or editing images; Combining images with text
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0475Generative networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation

Definitions

  • the present disclosure relates to a method, device and system for editing an image using a generative model, and more particularly, to a method, device and system for editing an image after an object is transformed when the position or size of the object in the image is transformed.
  • Generative AI technology refers to a technology that learns the patterns and structures of massive training data and generates new data similar to the input data based on that. Using generative AI technology, you can obtain images corresponding to text or expand images to areas that were not included in the original image.
  • Generative AI technology can be applied to the field of image processing to support outpainting or inpainting.
  • Outpainting refers to expanding an image while maintaining the style and content of the image
  • inpainting refers to generating an image to fill a specific area within the image.
  • some devices or programs support functions that allow users to change the location or size of objects included in an image.
  • part of an object is cut off in the image after the object is changed or the object is displayed in a way that does not match its surroundings, user satisfaction may decrease.
  • a method executed by at least one processor for processing an image using one or more generative models may include the steps of: receiving a user input requesting movement of at least one object included in an input image; expanding the input image in a direction determined based on the movement of the object; determining a generation required area, which is an area requiring generation of a partial image of the at least one object, based on the expanded input image; generating an image for the generation required area using at least one generative model; and outputting a reconstructed image based on the input image and the partial image of the at least one object.
  • a computing device includes an input/output interface for receiving a user input requesting processing of an input image and outputting a reconstructed image processed according to the user input, a memory storing instructions for processing the input image, and at least one processor for executing the instructions, wherein, when the at least one processor receives a user input requesting movement of at least one object included in the input image, the at least one processor expands the input image in a direction determined based on the movement of the object, determines a generation required area, which is an area requiring generation of a partial image of the at least one object, based on the expanded input image, and generates an image for the generation required area using at least one generative model, and then outputs a reconstructed image based on the input image and the partial image of the at least one object.
  • a computer-readable, non-transitory recording medium is stored with instructions executed by at least one processor, such that the at least one processor includes an input/output interface for receiving a user input requesting processing of an input image and outputting a reconstructed image processed according to the user input, a memory storing instructions for processing the input image, and at least one processor for executing the instructions, wherein, when the at least one processor receives a user input requesting movement of at least one object included in the input image, the instructions enable the at least one processor to expand the input image in a direction determined based on the movement of the object, determine a generation required area, which is an area requiring generation of a partial image of the at least one object based on the expanded input image, generate an image for the generation required area using at least one generative model, and then output a reconstructed image based on the input image and the partial image of the at least one object.
  • the at least one processor includes an input/output interface for receiving a user input requesting processing of an input image and outputting a
  • a computer program may be stored in a medium for performing at least one of the embodiments of the disclosed method on a computer.
  • FIG. 1 is a diagram illustrating a process of editing an image using a creation model when transforming an object included in an image according to one embodiment of the present disclosure.
  • FIG. 2 is a diagram illustrating a process of expanding an image by considering inverse transformation when an object included in the image is reduced according to one embodiment of the present disclosure.
  • FIG. 3 is a diagram illustrating a process of expanding an image by considering inverse transformation when an object included in the image is rotated, according to one embodiment of the present disclosure.
  • FIG. 4a is a diagram illustrating a method for expanding an image based on the size of a selected object according to one embodiment of the present disclosure.
  • FIG. 4b is a diagram illustrating a process of expanding an image based on the size of the image according to one embodiment of the present disclosure.
  • FIG. 5 is a diagram illustrating a process of expanding an image based on a transformable range of a selected object according to one embodiment of the present disclosure.
  • FIG. 6 is a diagram illustrating a process of expanding an image by moving all borders located in the reverse transformation direction according to one embodiment of the present disclosure.
  • FIG. 7 is a diagram illustrating a process of inferring an object proposal region from an image according to one embodiment of the present disclosure.
  • FIGS. 8 and 9 are diagrams illustrating a process of inferring an object proposal region without expanding an input image and expanding the object proposal region by considering the inverse transformation of the object.
  • Figure 10 is a diagram illustrating a process of editing an image by using the object image generated as is in the process of expanding the input image by considering the inverse transformation of the object's transformation.
  • FIG. 11 is a diagram illustrating an example of a configuration of a computing device for performing image editing using a generative model according to one embodiment of the present disclosure.
  • FIG. 12 is a diagram illustrating the types and roles of generation models according to one embodiment of the present disclosure.
  • FIGS. 13 to 19 are flowcharts illustrating a process of editing an image using a generative model according to embodiments of the present disclosure.
  • FIGS. 20 to 23 are flowcharts illustrating a process of editing an image using a generative model according to embodiments of the present disclosure.
  • each block of the flowchart diagrams and combinations of the flowchart diagrams can be performed by computer program instructions.
  • the computer program instructions can be installed on a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus, and the instructions, when executed by the processor of the computer or other programmable data processing apparatus, can create means for performing the functions described in the flowchart block(s).
  • the computer program instructions can also be stored in a computer-available or computer-readable memory that can direct a computer or other programmable data processing apparatus to implement the functions in a particular manner, and the instructions stored in the computer-available or computer-readable memory can also produce an article of manufacture that includes instruction means for performing the functions described in the flowchart block(s).
  • the computer program instructions can also be installed on a computer or other programmable data processing apparatus.
  • each block of the flowchart diagram may represent a module, segment, or portion of code that includes one or more executable instructions for performing a specified logical function(s).
  • the functions mentioned in the blocks may occur out of order.
  • two blocks depicted in succession may be performed substantially simultaneously or may be performed in reverse order depending on the functionality.
  • the term ' ⁇ unit' used in one embodiment of the present disclosure may represent software or a hardware component such as a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC), and the ' ⁇ unit' may perform a specific role. Meanwhile, the ' ⁇ unit' is not limited to software or hardware.
  • the ' ⁇ unit' may be configured to be in an addressable storage medium and may be configured to play one or more processors.
  • the ' ⁇ unit' may include components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables.
  • the functions provided through a specific component or a specific ' ⁇ unit' may be combined to reduce the number or separated into additional components.
  • the ' ⁇ unit' may include one or more processors.
  • Embodiments of the present disclosure relate to a method of editing an image using a generative model. Before describing specific embodiments, the meanings of terms frequently used in this specification are defined.
  • 'EDITING' of an image may mean processing an image so that at least a portion of the image is changed.
  • a device performing image processing may generate an image after the object is transformed, which may be expressed as editing the image.
  • terms such as 'RECOMPOSITION' of an image may also be used.
  • the 'transformation' of an object may include movement of the object, resize (e.g., enlargement or reduction), rotation of the object, etc.
  • the present disclosure describes processes involving movement of an object. However, those skilled in the art will understand that the present disclosure is not limited to such embodiments. Additionally, even though the embodiments are for a case where an object is moved, other types of transformations such as resize or rotation may be applied to the object. Instead of 'transformation' of an object, a term such as 'change' of an object may be used. Also, instead of 'movement' of an object, a term such as 'translation' of an object may be used.
  • a 'partial object' may mean an object whose appearance is at least partially not displayed in an image. For example, if an object is located at the edge of an image so that only a part of the object is displayed in the image and the rest is not displayed in the image, the object may be referred to as a partial object. Or, for example, if a part of the object is obscured by another object or background and is not displayed, the object may be referred to as a partial object.
  • a computing device may determine whether an object is a partial object based on whether the object touches at least one of the edges of an image.
  • the computing device may perform object recognition on an image and determine whether the object is a partial object based on the result of recognizing the object.
  • terms such as 'incomplete object' may be used.
  • a 'full object' can mean an object whose entire appearance is displayed in the image. Instead of 'full object', terms such as 'complete object' or 'whole object' can also be used.
  • 'Generative AI' can refer to artificial intelligence technology that can generate new text, images, etc. in response to input data (e.g. text, images, etc.). Representative examples of generative AI are explained in the 'Generative Model' section below.
  • a 'generative model' can refer to a neural network model that implements generative AI technology.
  • a generative model can generate new data with similar characteristics to the input data or new data corresponding to the input data by learning the patterns and structures of training data. For example, if the input data is an image and the generative model is requested to expand the image, the generative model can generate a new image in the outer area of the original image while maintaining the content or style of the original image. Or, for example, if the input data is text containing a question, the generative model can generate and output an answer to the question.
  • the term 'object proposal area' may mean an area in an image where an object is judged or predicted to exist.
  • a computing device performing image processing may infer, determine, or extract a certain area (e.g., a bounding box) including an object as an object proposal area.
  • the computing device may separate an object from an image through segmentation and infer (determine) only the separated object as the object proposal area.
  • the computing device may infer (determine) the object proposal area to include not only the separated object as a result of performing segmentation, but also a portion of a margin around the object.
  • the term 'generation required area' may refer to an area where an image needs to be generated for editing the image. For example, when moving an object within an image, an image needs to be generated for a part of the object that was not visible in the original image, and the area where a new image needs to be generated may correspond to the generation required area.
  • one or more generation models can generate an image for the generation required area.
  • by inferring (determining) the minimum area where an image needs to be generated as the generation required area it is possible to prevent the output image from becoming unnatural due to the instability of the generation model or the generation of the image from taking a lot of time.
  • Outpainting' may refer to a technique of expanding the outer border of an image while maintaining the style and content of the image.
  • outpainting may be used when expanding an input image considering inverse transformation.
  • Inpainting' may refer to a technique of creating a new image and filling in a specific area within an image.
  • inpainting may be used when creating an image for an area requiring creation.
  • FIGS. 1 to 10 It is assumed that the processes described with reference to FIGS. 1 to 10 are performed by a computing device supporting an image processing function. Therefore, in describing FIGS. 1 to 10, it is described that the computing device performs the processes. Detailed configurations included in the computing device according to one embodiment are illustrated in FIG. 11, and the corresponding configurations are described in detail later.
  • the computing device may perform outpainting to expand an image, or inpainting when a transformation of an object requires generation of a new image (object or background) within the image.
  • the generation of such an image may be performed using a single generation model, but efficiency and performance may be improved by using generation models with different characteristics for each operation.
  • the first generative model (1210) is a model for performing outpainting for image expansion.
  • the second generative model (1220) and the third generative model (1230) are both models for performing inpainting for image generation after object transformation, wherein the second generative model (1220) is a model for generating an image of an object, and the third generative model (1230) is a model for generating an image of a background.
  • the first generation model (1210) may be a model that focuses on the generation speed rather than the quality of the generated image. This is because, when expanding an image for inference (determination) of an object proposal region, fast generation is more important than the quality of the generated image.
  • the second generation model (1220) may be a model that focuses on the quality of the generated image rather than the generation speed. This is because the image generated by the second generation model (1220) corresponds to the output image. Therefore, the second generation model (1220) may be a model with higher performance than the first generation model (1210).
  • the first generation model (1210) may be a model with lower quality of output data instead of faster generation speed than the second generation model (1220).
  • the second generation model (1220) may be a model with higher performance than the third generation model (1230).
  • processes described in the following examples using different generative models may also be performed using one identical generative model or multiple identical generative models.
  • FIG. 1 is a diagram for explaining a process of editing an image using a generation model when transforming an object included in an image according to one embodiment of the present disclosure.
  • FIG. 1 illustrates images corresponding to the first operation (1a) to the sixth operation (1f) in the order of processing the images.
  • the computing device can obtain an input image including an object (10).
  • the computing device can receive a user input requesting a transformation of the object.
  • the user can request a movement of the object (10) by touching the object (10) on the screen of the computing device on which the input image is displayed and moving the finger while maintaining the touch.
  • the user input can also be configured to select (specify) the object (10) and request a transformation of the object (10) in various other forms. (e.g., clicking the mouse button while the pointer is positioned on the object and moving the pointer while maintaining the click)
  • the transformation of the object (10) requested by the user is a 'translation' of the object, but is not limited thereto, and the user may also request a resize (enlargement, reduction) or rotation of the object (10).
  • the computing device can expand the input image considering the transformation (movement) requested by the user, or considering the inverse transformation for the transformation requested by the user. In other words, the computing device can expand the input image in a direction determined based on the movement of the object requested by the user.
  • the computing device can perform outpainting using the first generation model (1210) described above. In order for the first generation model (1210) to perform the outpainting, the computing device can input a prompt instructing the first generation model (1210) to perform the outpainting.
  • the computing device can input a prompt to the first generation model (1210) to expand the input image by moving a certain border of the input image in a certain direction and a certain distance, and generate an image for the expanded area while maintaining the features of the input image (e.g., the overall atmosphere and the contents of the foreground and background, etc.).
  • the computing device can generate a prompt that instructs outpainting based on the user input (transformation request) and the input image. That is, the computing device can generate a prompt that instructs the first generative model (1210) to perform outpainting in the manner described in the embodiments below.
  • a detailed description of a specific method in which the computing device expands the input image by considering the inverse transformation in the third operation (1c) is as follows.
  • the computing device can determine whether an object (10) that a user has requested to transform (move), i.e., an object (10) selected by a user input, is in contact with at least one border among the borders of an input image. Referring to FIG. 1, it can be seen that a first border (B1) among the borders of the input image is in contact with the object (10). Accordingly, the computing device can select the first border (B1) that is in contact with the object (10) among the borders of the input image.
  • the computing device can move the first border (B1) in a distance and direction according to the inverse transformation (movement) according to the user input.
  • the computing device can move the first border (B1) in the opposite direction to the movement (distance and direction) of the object (10) requested by the user input in the second operation (1b).
  • the user input received by the computing device in the second operation (1b) includes a transformation request to move the object (10) in the upper left diagonal direction.
  • the computing device can move the first border (B1) in the lower right diagonal direction.
  • the distance by which the first border (B1) is moved can be determined based on the distance by which the object (10) is moved by the user input in the second operation (1b). For example, the distance by which the first border (B1) is moved can be the same as the distance by which the object (10) is moved by the user input in the second operation (1b).
  • the computing device can expand the input image by generating (outpainting) an image up to the area where the first border (B1) is moved using the first generation model (1210).
  • the computing device can generate a prompt that instructs the first generation model (1210) to generate an image up to the area where the first border (B1) is moved while maintaining the characteristics of the input image.
  • the computing device can also expand the input image in various other ways.
  • the method by which the computing device expands the input image may vary even when a transformation other than movement (resize, rotation, etc.) is applied to the object (10). This will be described in detail with reference to FIGS. 2 to 6.
  • FIG. 2 is a diagram for explaining a method of expanding an image by considering inverse transformation when an object included in the image is reduced according to one embodiment of the present disclosure.
  • FIG. 2 illustrates images corresponding to the first operation (2a) to the third operation (2c) in the order of image processing.
  • a computing device in a first operation (2a), can obtain an input image including an object (10).
  • the computing device can receive a user input requesting reduction of the object (10). For example, a user can request reduction of the object (10) by touching the object (10) with two fingers on a screen of the computing device on which the input image is displayed and performing a pinch in operation.
  • the computing device can move the first border (B1) according to the inverse transformation (reduction) according to the user input.
  • the computing device can move the first border (B1) so that the input image expands in the direction of the first border (B1) by the ratio at which the object (10) is reduced by the user input. (e.g., if the size of the object (10) is reduced by 15% by the user input, the computing device moves the first border (B1) so that the input image expands in the direction of the first border (B1) by 15%.)
  • the computing device can extend the length of the first border (B1) by moving the first border (B1) in a direction away from the center of the object (10).
  • FIG. 3 is a diagram for explaining a method of expanding an image by considering inverse transformation when an object included in the image is rotated according to one embodiment of the present disclosure.
  • FIG. 3 illustrates images corresponding to the first operation (3a) to the third operation (3c) in the order of processing the images.
  • the computing device can obtain an input image including an object (10).
  • the computing device can receive a user input requesting rotation of the object (10). For example, the user can touch the object (10) with two fingers on a screen of the computing device on which the input image is displayed, and rotate the object (10) while maintaining the touch.
  • the computing device can expand the input image by considering the inverse transformation for the transformation (rotation) requested by the user. Specifically, the computing device can determine whether the object (10) for which the user requested rotation, i.e., the object (10) selected by the user input, touches at least one border among the borders of the input image. Referring to FIG. 3, it can be seen that the first border (B1) among the borders of the input image touches the object (10). Therefore, the computing device can select the first border (B1) that touches the object (10) among the borders of the input image.
  • the computing device can expand the input image by generating an image up to the area where the first border (B1) is moved using the first generation model (1210).
  • the computing device can expand the input image even before a request for transformation of the object (10) is received when the object (10) is selected by a user input.
  • the user can request the movement of the object (10) by touching the object (10) included in the input image with a finger for a predetermined period of time and moving the finger while maintaining the touch, and the computing device can expand the input image in advance before the user moves the finger.
  • the computing device can improve the speed at which the image is edited by expanding the image in advance before the user makes a decision on the transformation. From the user's perspective, the time taken for the edited image to be output is shortened, so the user experience can be improved.
  • the computing device may expand an input image in advance before a user input requesting selection of an object (10) or transformation of an object (10) is received, and then infer (determine) an object suggestion region based on the user input when the user input is received.
  • the computing device may expand an original image by a predetermined ratio (e.g., 1.5 times) through outpainting, temporarily store the expanded original image, and then perform a process for inferring (determining) an object suggestion region when a user input is received.
  • the computing device can expand the image based on the size or position of the selected object (10), the size of the input image, etc.
  • the computing device can move the border of the input image by a distance determined based on the length of the selected object (10) (the length measured based on an axis parallel to the direction of movement of the border), or can move the border of the input image by a distance determined based on the range in which the selected object (10) can be converted within the input image (e.g. based on how far and in which direction the object (10) can be moved within the input image).
  • the computing device can move the border of the input image by a distance determined based on the length (width or height) of the input image. This will be described in detail below with reference to FIGS. 4A, 4B, and 5.
  • FIG. 4a is a diagram for explaining a method of expanding an image based on the size of a selected object according to one embodiment of the present disclosure.
  • FIG. 4a illustrates images corresponding to the first operation (4aa) to the third operation (4ac) in the order of processing the images.
  • a computing device in a first operation (4aa), can obtain an input image including an object (10).
  • the computing device can receive a user input for selecting the object (10).
  • the user may select the object (10) as a target of transformation by touching the object (10) with a finger for a predetermined period of time, but may not have yet made an input requesting transformation (movement, resizing, rotation, etc.) of the object (10).
  • the computing device may also receive a user input requesting transformation of the object (10).
  • the computing device can expand the input image based on the size of the object (10).
  • the computing device can determine whether the selected object (10) touches at least one border among the borders of the input image. Referring to FIG. 4a, it can be seen that the first border (B1) among the borders of the input image touches the object (10). Therefore, the computing device can select the first border (B1) among the borders of the input image that touches the object (10).
  • the computing device can move the first border (B1) away from the center of the object (10) and determine the distance by which the first border (B1) is to be moved based on the size of the object (10). According to one embodiment, the computing device can measure the length (d1) of the object (10) based on an axis parallel to the moving direction of the first border (B1). Also, according to one embodiment, the computing device can measure the length (d1) of the object (10) based on an axis perpendicular to the first border (B1).
  • the computing device can move the first border (B1) by a distance (d2) that is obtained by multiplying the length (d1) of the measured object (10) by a preset ratio (e.g. 0.2).
  • a preset ratio e.g. 0.2
  • the preset ratio used in calculating the distance (d2) can be set to an appropriate value depending on conditions such as the required image quality or processing speed.
  • the computing device can expand the input image by generating an image up to the area where the first border (B1) is moved using the first generation model (1210).
  • FIG. 4b is a diagram for explaining a method of expanding an image based on the size of the image according to one embodiment of the present disclosure.
  • FIG. 4b illustrates images corresponding to the first operation (4ba) to the third operation (4bc) in the order of processing the images.
  • the computing device in the first operation (4ba), can obtain an input image including an object (10).
  • the computing device can receive a user input for selecting the object (10).
  • the user may select the object (10) as a target of transformation by touching the object (10) with a finger for a predetermined period of time in the second operation (4bb), but may not have yet made an input requesting transformation (movement, resizing, rotation, etc.) of the object (10).
  • the computing device may also receive a user input requesting transformation of the object (10).
  • the computing device can expand the input image based on the size of the input image. For example, the computing device can expand the input image based on the length (width or height) of the input image.
  • the computing device can determine whether the selected object (10) touches at least one border among the borders of the input image. Referring to FIG. 4b, it can be seen that the first border (B1) among the borders of the input image touches the object (10). Therefore, the computing device can select the first border (B1) among the borders of the input image that touches the object (10).
  • the computing device can move the first border (B1) away from the center of the object (10) and determine the distance by which the first border (B1) is to be moved based on the length (width or height) of the input image. According to one embodiment, the computing device can measure the length (d1) of the input image based on an axis perpendicular to the first border (B1). Also, according to one embodiment, the computing device can measure the length (d1) of the input image based on an axis parallel to the movement direction of the first border (B1).
  • the computing device can move the first border (B1) by a distance (d2) that is obtained by multiplying the length (d1) of the measured image by a preset ratio (e.g. 0.1).
  • a preset ratio e.g. 0.1
  • the preset ratio used in calculating the distance (d2) can be set to an appropriate value depending on conditions such as the required image quality or processing speed.
  • the computing device can expand the input image by generating an image up to the area where the first border (B1) is moved using the first generation model (1210).
  • FIG. 5 is a diagram for explaining a method of expanding an image based on a transformable range of a selected object according to one embodiment of the present disclosure.
  • FIG. 5 illustrates images corresponding to the first operation (5a) to the third operation (5c) in the order of processing the images.
  • the computing device can obtain an input image including an object (10).
  • the computing device can receive a user input for selecting the object (10). For example, the user may select the object (10) as a target of transformation by touching the object (10) with a finger for a predetermined period of time in the second operation (5b), but may not yet have made an input requesting transformation (movement, resizing, rotation, etc.) of the object (10).
  • the computing device may also receive a user input requesting transformation of the object (10).
  • the computing device can expand the input image based on the transformable range of the object (10). Specifically, the computing device can determine the range in which the object (10) can be transformed (e.g. moved) within the input image based on the size and position of the object (10), and expand the input image based on the determined range.
  • the computing device can determine whether the selected object (10) is in contact with at least one border among the borders of the input image. Referring to FIG. 5, it can be seen that the first border (B1) among the borders of the input image is in contact with the object (10). Accordingly, the computing device can select the first border (B1) that is in contact with the object (10) among the borders of the input image.
  • the computing device can move the first border (B1) away from the center of the object (10) and determine the distance by which the first border (B1) is to be moved based on the transformable range of the object (10).
  • the computing device can measure the distance (d1) by which the object (10) can move based on an axis parallel to the moving direction of the first border (B1) in the third operation (5c).
  • the computing device can move the first border (B1) by a distance (d2) obtained by multiplying the measured distance (d1) by a preset ratio (e.g. 1).
  • the preset ratio used in calculating the distance (d2) can be set to an appropriate value depending on conditions such as the quality of the required image or the processing speed.
  • FIG. 6 is a diagram for explaining a method of expanding an image by moving all borders located in the reverse transformation direction according to one embodiment of the present disclosure.
  • FIG. 6 illustrates images corresponding to the first operation (6a) to the third operation (6c) in the order of processing the images.
  • the computing device in the first operation (6a), can obtain an input image including an object (10).
  • the computing device can receive a user input requesting movement of the object (10). For example, the user can request movement of the object (10) by touching the object (10) on the screen of the computing device on which the input image is displayed and moving the finger while maintaining the touch.
  • the computing device can expand the input image by considering the inverse transformation for the transformation (movement) requested by the user. Specifically, the computing device can select all the borders located in the inverse transformation direction among the borders of the input image.
  • the user input received by the computing device includes a transformation request to move the object (10) in the upper left diagonal direction. Since the inverse transformation direction is the lower right direction, the computing device can select the borders (B1, B2) located on the lower and right sides.
  • the computing device can move the first border (B1) and the second border (B2) by a distance and direction according to the inverse transformation (movement) according to the user input. For example, the computing device can move the first border (B1) downward by the distance by which the object (10) moves upward by the user input received in the second operation (6b). Similarly, the computing device can move the second border (B2) rightward by the distance by which the object (10) moves leftward by the user input received in the second operation (6b).
  • the computing device can expand the input image by generating an image up to the area where the borders (B1, B2) are moved using the first generation model (1210).
  • the computing device when the input image is expanded in the third operation (1c), the computing device can infer (determine) the object proposal area (100a) in the fourth operation (1d). Meanwhile, the image included in the expanded area in the third operation (1c) can also be used as a guide when performing inpainting (e.g., generating an image for an area requiring generation) after object transformation. In other words, when performing inpainting after object transformation, the computing device can refer to the image generated when expanding the input image in the third operation (1c), and thus the image generation efficiency can be improved.
  • inpainting e.g., generating an image for an area requiring generation
  • the 'object proposal region' may mean a region in which an object (10) is judged or predicted to exist within an image.
  • the computing device may infer (determine) a region including an object (10) in an extended input image as an object proposal region (100a).
  • the computing device may infer (determine) an object proposal region (100b) corresponding to the object (10) transformed (moved) in a fifth operation (1e) based on the object proposal region (100a) inferred (determined) in a fourth operation (1d).
  • the object proposal region (100a) inferred (determined) in the fourth operation (1d) is referred to as a first object proposal region
  • the object proposal region (100b) inferred (determined) in the fifth operation (1e) is referred to as a second object proposal region.
  • the computing device can infer (determine) the first object suggestion area (100a) in the form of a bounding box.
  • the computing device can infer (determine) the bounding box including the object (10) as the first object suggestion area (100a) through a method used in general pedestrian detection technology, and can also infer (determine) the first object suggestion area (100a) through various other methods.
  • the computing device can infer (determine) the first object suggestion area (100a) in a form other than a bounding box, which will be described in detail with reference to FIG. 7.
  • FIG. 7 is a diagram for explaining a method for inferring (determining) an object proposal region from an image according to one embodiment of the present disclosure.
  • FIG. 7 illustrates three examples of different methods for inferring (determining) an object proposal region on the first to third screens (7a, 7b, and 7c).
  • the first screen (7a) of Fig. 7 illustrates an example in which a computing device infers (determines) an object suggestion area (700a) in the form of a bounding box containing an object (10). This is the same as the method described in the fourth operation (1d) of Fig. 1 above.
  • the second screen (7b) of Fig. 7 illustrates an example in which a computing device separates an object (10) through segmentation and infers (determines) only the separated object (10) as an object suggestion area (700b).
  • the third screen (7c) of Fig. 7 illustrates an example in which a computing device separates an object (10) through segmentation and infers (determines) an object proposal area (700c) to include not only the separated object (10) but also a portion of the margin around the object (10).
  • the computing device infers (determines) the object suggestion region in the form of a bounding box, but the computing device may also infer (determine) the object suggestion region in the other two ways illustrated in FIG. 7, and may also infer (determine) the object suggestion region in various other ways.
  • the computing device infers (determines) a first object proposal region (100a) from the expanded input image in the fourth operation (1d), it can transform the object (10) and infer (determine) a second object proposal region (100b) corresponding to the transformed object (10) in the fifth operation (1e).
  • the operation performed by the computing device in the fifth operation (1e) is described in detail as follows.
  • the computing device can transform the object (10) according to the request included in the user input received in the second operation (1b). That is, the computing device can move the object (10) in the upper left direction on the input image.
  • the computing device can infer (determine) the second object proposal area (100b) corresponding to the object (10) at the position after the movement based on the first object proposal area (100a) inferred (determined) in advance.
  • the computing device can infer (determine) the second object proposal area (100b) corresponding to the moved object (10) by reflecting the size and shape of the first object proposal area (100a), the positional relationship between the first object proposal area (100a) and the object (10), etc.
  • the object (10) included in the second object proposal area (100b) may be smaller than the object (10) included in the first object proposal area (100a) because it is extracted from an unexpanded input image.
  • the second object proposal area (100b) may have the same size as the first object proposal area (100a), so there may be an area (200) in the second object proposal area (100b) where generation of an additional image of the object (10) is required.
  • the computing device may infer (determine) this area (200) as a generation required area.
  • the computing device may infer (determine) the second object proposal area (100b) by moving the first object proposal area (100a) in a distance and direction in which the object (10) moves according to a user's request.
  • the computing device can infer (determine) the generation-required region (200) based on the second object proposal region (100b). Specifically, the computing device can infer (determine) the region where an image for the converted object (10) must be additionally generated as the generation-required region (200) by comparing the converted object (10) and the second object proposal region (100b).
  • the 'region requiring generation' may mean a region requiring generation of an image for editing the image.
  • the region requiring generation may be divided into an object portion and a background portion.
  • the portion (200) requiring additional generation of the object (10) image may be referred to as a first region requiring generation
  • the empty spaces (parts requiring additional generation of a background image) created due to transformation (movement) of the object (10) may be referred to as a second region requiring generation. That is, the computing device may infer (determine) the region requiring generation of a background image due to transformation of the object (10) as the second region requiring generation.
  • the computing device can infer (determine) an area including an object (10) in the expanded input image as a first object proposal area (100a), and move (transform) the object (10) on the input image according to a user input received in the second operation (1b). Then, the computing device can infer (determine) a second object proposal area (100b) corresponding to the moved object (10) based on the first object proposal area (100a). Finally, the computing device can infer (determine) a first generation-required area (200) and a second generation-required area (empty spaces created due to the movement of the object (10)) based on the second object proposal area (100b).
  • the computing device may infer (determine) the region requiring generation (200) by considering the object (10). For example, the computing device may determine the region requiring generation of an image of the object (10) based on the size of the object (10) and the direction of the object (10) (e.g., the direction in which the front of the object (10) is facing), and infer (determine) the determined region as the region requiring generation (200).
  • the computing device may determine the region requiring generation of an image of the object (10) based on the size of the object (10) and the direction of the object (10) (e.g., the direction in which the front of the object (10) is facing), and infer (determine) the determined region as the region requiring generation (200).
  • the computing device may identify the object (10) by performing object recognition on an input image (e.g., identify the type of the object), and determine the region requiring generation of an image of the object (10) based on the identification result of the object (10) (e.g., the type of the object), and infer (determine) the determined region as the region requiring generation (200).
  • identify the object (10) by performing object recognition on an input image (e.g., identify the type of the object), and determine the region requiring generation of an image of the object (10) based on the identification result of the object (10) (e.g., the type of the object), and infer (determine) the determined region as the region requiring generation (200).
  • the computing device may infer (determine) the entire second object proposal area (100b) as a region requiring generation. Accordingly, the computing device may generate a new image for the entire second object proposal area (100b) using the second generation model (1220) for object image generation. In this case, since the image for the entire second object proposal area (100b) is generated by reflecting the surrounding background at the position after the transformation of the object (10), the effect of generating the image to better match the surrounding background can be expected.
  • the computing device may input a prompt instructing the generation model to inpaint a region requiring generation.
  • the computing device may generate a prompt instructing the generation model to generate an image while maintaining the features of the input image (e.g., the overall atmosphere and the contents of the foreground and background, etc.) for the first generation requiring region (200) inferred (determined) in the fifth operation (1e), and input the prompt to the second generation model (1220).
  • the computing device may generate a prompt instructing inpainting based on a user input (conversion request) and the input image.
  • the image generated when the input image is expanded in the third operation (1c) can be used as a guide when generating an image for the first generation-required area (200).
  • the computing device can generate an image of an object (10) in the first generation-required area (200) similar to the image of the object (10) included in the expanded input image in the third operation (1c), but can generate the image so as to match the background in the first generation-required area (200).
  • the computing device can generate a prompt that instructs to generate an image for the first generation-required area (200) while maintaining the characteristics of the image of the expanded area in the third operation (1c), and input the prompt into the second generation model (1220).
  • FIGS. 8 and 9 are diagrams for explaining embodiments of a method for inferring (determining) an object proposal region without expanding an input image and expanding the object proposal region by considering the inverse transformation of the object transformation.
  • FIG. 8 illustrates images corresponding to the first operation (8a) to the eighth operation (8h) in the order of processing images.
  • FIG. 9 illustrates images corresponding to the first operation (9a) to the seventh operation (9g) in the order of processing images.
  • the computing device can obtain an input image including an object (10).
  • the computing device can receive a user input requesting transformation of the object.
  • the user can request movement of the object (10) by touching the object (10) on the screen of the computing device on which the input image is displayed and moving the finger while maintaining the touch.
  • the transformation of the object (10) requested by the user is a 'movement' of the object, but is not limited thereto, and the user can also request resizing (enlarging, reducing) or rotating the object (10).
  • the computing device can infer (determine) an area including an object (10) in the input image as an object proposal area (100a).
  • the computing device can infer (determine) an object proposal area (100b) corresponding to the object (10) transformed (moved) in the fourth operation (8d) based on the object proposal area (100a) inferred (determined) in the third operation (8c).
  • the object proposal area (100a) inferred (determined) in the third operation (8c) is referred to as a first object proposal area
  • the object proposal area (100b) inferred (determined) in the fourth operation (8d) is referred to as a second object proposal area.
  • the computing device can infer (determine) the first object suggestion area (100a) in the form of a bounding box.
  • the computing device can infer (determine) the bounding box including the object (10) as the first object suggestion area (100a) through a method used in general pedestrian detection technology, and can also infer (determine) the first object suggestion area (100a) through various other methods.
  • the computing device can infer (determine) the first object suggestion area (100a) in a form other than a bounding box, as described above with reference to FIG. 7.
  • the computing device infers (determines) the first object proposal area (100a) from the input image in the third operation (8c), it can transform the object (10) and infer (determine) the second object proposal area (100b) corresponding to the transformed object (10) in the fourth operation (8d).
  • the operation performed by the computing device in the fourth operation (8d) is described in detail as follows.
  • the computing device can transform the object (10) according to the request included in the user input received in the second operation (8b). That is, the computing device can move the object (10) in the upper left direction on the input image.
  • the computing device can infer (determine) the second object proposal area (100b) corresponding to the object (10) at the position after the movement based on the first object proposal area (100a) extracted in advance.
  • the computing device can infer (determine) the second object proposal area (100b) corresponding to the moved object (10) by reflecting the size and shape of the first object proposal area (100a), the positional relationship between the first object proposal area (100a) and the object (10), etc.
  • the computing device can expand the second object proposal area (100b) by considering the inverse transformation of the transformation of the object (10).
  • the method of expanding the second object proposal area (100b) by considering the inverse transformation may be similar to the third operation (1c) of FIG. 1 and the method described with reference to FIGS. 2 to 6.
  • at least one border that touches the object (10) among the borders of the input image is moved by a distance and in a direction according to the inverse transformation.
  • At least one border that touches the object (10) among the borders of the second object proposal area (100b) is moved by a distance and in a direction according to the inverse transformation, and an image can be generated (outpainted) using the first generation model up to the area where the border is moved.
  • the method of moving the border according to the transformation of the object (10) may be the same as described in the previous embodiments.
  • the extended second object proposal area (100c) considering the inverse transformation is illustrated in the sixth motion (8f).
  • the computing device can infer (determine) the generation-required region (200) based on the extended second object suggestion region (100c).
  • a detailed description of how the computing device infers (determines) the generation-required region (200) is as follows.
  • the computing device can transform (move) the object (10) according to a request included in a user input, and apply the extended second object suggestion region (100c) to the transformed object (10).
  • the computing device can infer (determine) the region in which an image for the transformed object (10) must be additionally generated as the generation-required region (200) by comparing the transformed object (10) and the extended second object suggestion region (100c).
  • the object (10) included in the extended second object proposal area (100c) may be smaller than the object (10) included in the extended second object proposal area (100c) in the sixth operation (8f) because it is extracted from the non-extended input image. Accordingly, in the extended second object proposal area (100c), there may be an area (200) where generation of an additional image of the object (10) is required. The computing device may infer (determine) this area (200) as a region requiring generation.
  • the computing device can infer (determine) the region requiring generation (200) based on the extended second object proposal region (100c). Specifically, the computing device can infer (determine) the region requiring generation (200) by comparing the converted object (10) and the extended second object proposal region (100c).
  • the region requiring generation can be divided into an object portion and a background portion.
  • the portion (200) requiring additional generation of the object (10) image can be referred to as a first region requiring generation
  • the empty spaces (parts requiring additional generation of a background image) created due to transformation (movement) of the object (10) can be referred to as a second region requiring generation. That is, the computing device can infer (determine) the region where the background image must be generated due to transformation of the object (10) as the second region requiring generation.
  • the computing device can generate images for the first generation-required area (200) and the second generation-required area (empty spaces created due to movement of the object (10)), edit the images, and output the edited images.
  • the computing device can generate an image for the first generation-required area (200) using the second generation model (1220), and can generate an image for the second generation-required area using the third generation model (1230).
  • the expanded second object suggestion region (100c) of the sixth operation (8f) already includes an image of the expanded object (10).
  • the computing device compares the object (10) before expansion (the object whose position has only been moved due to transformation) with the expanded second object suggestion region (100c) to infer (determine) the region requiring generation (200), and generates an image for the region requiring generation (200) using the second generation model (1220), thereby expanding the object (10).
  • the reason for this is as follows.
  • the image included in the extended second object proposal area (100c) is an image generated using the first generation model (1210).
  • the first generation model (1210) is a model used to 'temporarily' expand an image in order to infer (determine) the generation-required area (200).
  • the second generation model (1220) is a model used when generating an image to be output, and can generate a more precise image than the first generation model (1210).
  • the computing device expands the second object proposal area (100b) using the first generation model (1210), and then infers (determines) the generation-required area (200) based on the expanded second object proposal area (100c), and generates an image for the generation-required area (200) again using the second generation model (1220), thereby improving the quality of the output image.
  • the computing device can infer (determine) only the empty spaces (parts requiring additional generation of a background image) resulting from the transformation (movement) of the object (10) as the generation-required area (second generation-required area).
  • the computing device can output an edited image by using the image of the object (10) included in the extended second object proposal area (100c) as it is and generating an image for the second generation-required area using the third generation model.
  • first method the method according to the embodiment illustrated in Fig. 1
  • second method the method according to the embodiment illustrated in Fig. 8
  • the image is expanded at the position before the object (10) is transformed, so the image is generated by reflecting the background at the position before the object (10) is transformed, and the object proposal area can be inferred (determined) accordingly.
  • the object proposal area (100c) of the second method is inferred (determined) to better match the surroundings of the position after transformation of the object (10), and therefore, it is expected that a more natural output image will be obtained when using the second method.
  • Fig. 10 is a drawing for explaining an embodiment of editing an image by using the object image generated as it is in the process of expanding an input image by considering the inverse transformation of the object transformation.
  • Fig. 10 shows images corresponding to the first operation (10a) to the sixth operation (10f) in the order of image processing.
  • the computing device can transform the object (10) according to a request included in the user input received in the second operation (10b). That is, the computing device can move the object (10) in the upper left direction on the input image.
  • the computing device can infer (determine) a second object proposal area (100b) corresponding to the object (10) at the position after the movement, based on the first object proposal area (100a) inferred (determined) in advance.
  • the computing device can infer (determine) a second object proposal area (100b) corresponding to the moved object (10) by reflecting the size and shape of the first object proposal area (100a), and the positional relationship between the first object proposal area (100a) and the object (10).
  • the computing device can insert an image of an object (10) included in the first object proposal area (100a) into the second object proposal area (100b). Then, the computing device can infer (determine) only the empty spaces (areas where additional generation of a background image is required) resulting from the transformation (movement) of the object (10) as the generation-required area (the second generation-required area).
  • the computing device can output an edited image by generating an image for the second generation required area using the third generation model.
  • the computing device can increase the processing speed by using the image of the object (10) generated by the first generation model (1210) as it is at the position after the transformation of the object (10) when expanding the input image for inference (determination) of the object proposal area.
  • the computing device can adjust the color or brightness, etc. of the image of the object (10) according to the surrounding background by using a harmonizer or the like so that the image of the object (10) generated by the first generation model (1210) can blend well with the surrounding background at the position after the transformation of the object (10).
  • FIG. 11 is a diagram for explaining the configuration of a computing device for performing image editing using a generative model according to one embodiment of the present disclosure.
  • the input/output interface (1100) may include an input interface (e.g., a touch screen, a hard button, a microphone, etc.) for receiving control commands or information from a user, and an output interface (e.g., a display panel, a speaker, etc.) for displaying the results of execution of an operation according to the user's control or the status of the computing device (1000).
  • an input interface e.g., a touch screen, a hard button, a microphone, etc.
  • an output interface e.g., a display panel, a speaker, etc.
  • the memory (1200) is a configuration for storing various programs or data, and may be configured as a storage medium or a combination of storage media such as a ROM, a RAM, a hard disk, a CD-ROM, and a DVD.
  • the memory (1200) may not exist separately and may be configured to be included in the processor (1300).
  • the memory (1200) may be configured as a volatile memory, a nonvolatile memory, or a combination of volatile memory and nonvolatile memory. Programs or instructions for performing operations according to the embodiments described with reference to FIGS. 1 to 10 above may be stored in the memory (1200).
  • the memory (1200) may also provide stored data to the processor (1300) at the request of the processor (1300).
  • the processor (1300) is a configuration that controls a series of processes so that the computing device (1000) operates according to the embodiments described with reference to FIGS. 1 to 10 above, and may be composed of one or more processors.
  • the one or more processors may be a general-purpose processor such as a CPU, an AP, a DSP (Digital Signal Processor), a graphics-only processor such as a GPU, a VPU (Vision Processing Unit), or an artificial intelligence-only processor such as an NPU.
  • the one or more processors are artificial intelligence-only processors
  • the artificial intelligence-only processor may be designed with a hardware structure specialized for processing a specific artificial intelligence model.
  • the processor (1300) can record data in the memory (1200), read data stored in the memory (1200), and process data according to predefined operation rules or artificial intelligence models, particularly by executing programs or commands stored in the memory (1200). Accordingly, the processor (1300) can perform the operations described in the embodiments described above, and the operations described as performed by the computing device (1000) in the embodiments described above can be viewed as performed by the processor (1300) unless otherwise specifically described.
  • FIGS. 13 to 19 are flowcharts for explaining a method of editing an image using a generation model according to embodiments of the present disclosure.
  • a method of editing an image using a generation model according to embodiments of the present disclosure will be explained with reference to FIGS. 13 to 19. Since the operations described below are performed by the computing device (1000) described so far, the contents included in the embodiments described above may be applied equally even if omitted below.
  • a computing device may receive user input requesting transformation of at least one object included in an input image.
  • the computing device can transform at least one object according to a user's request, and infer (determine) a generation-required region, which is a region where image generation is required, by considering the inverse transformation for the transformation.
  • Operation 1302 is the same as operation 1403 of FIG. 14, so the contents described below for operation 1403 can be equally applied to operation 1302.
  • the computing device can generate an image of a region requiring generation using one or more generative models.
  • a computing device may receive user input requesting transformation of at least one object included in an input image.
  • the computing device can determine whether at least one border among the borders of the input image touches at least one object (an object that is a target of the conversion request). If the determination result shows that the at least one border does not touch at least one object, the computing device can proceed to operation 1405 to convert at least one object according to a request included in the user input. Conversely, if the determination result shows that the at least one border touches at least one object, the calculation proceeds to operation 1403.
  • the computing device can transform at least one object according to the user's request, and infer (determine) a generation-required region, which is a region where image generation is required, by considering the inverse transformation for the transformation.
  • a generation-required region which is a region where image generation is required.
  • operation 1501 the computing device can expand the input image by considering the inverse transformation of the object's transformation. Detailed operations included in operation 1501 are described with reference to FIGS. 16 to 18.
  • the computing device can select at least one border that touches at least one object among the borders of the input image.
  • the computing device can move the selected at least one border by a distance and direction according to the inverse transformation.
  • the computing device can generate an image up to the area where the border is moved using one or more generative models.
  • the computing device may select at least one border that touches at least one object selected from among borders of the input image or at least one border that cuts the at least one object.
  • the computing device may move the at least one selected border by a distance determined according to a size of the at least one object. For example, the computing device may move the at least one selected border by a distance that is a preset ratio multiplied by a length of the at least one object.
  • the computing device may determine a movement distance based on a range in which the at least one object is transformable within the input image, and move the at least one selected border by the determined movement distance.
  • the computing device can generate an image using one or more generative models to a region where at least one boundary has been moved.
  • the computing device may select at least one border that touches at least one object selected from among borders of an input image or at least one border that cuts off the at least one object.
  • the computing device may move the at least one selected border by a distance determined based on a length of the input image measured with respect to an axis perpendicular to the at least one selected border. For example, the computing device may move the at least one selected border by a distance that is a preset ratio multiplied by the length of the input image.
  • the computing device may generate an image up to an area where the at least one border is moved using one or more generative models.
  • the computing device can infer (determine) an area including at least one object in the extended input image as a first object proposal area.
  • the computing device can transform the at least one object according to a request included in the user input received in operation 1401.
  • the computing device can infer (determine) a second object proposal area corresponding to the transformed at least one object based on the first object proposal area.
  • the computing device can infer (determine) a generation need area based on the second object proposal area.
  • the computing device can infer (determine) an area including at least one object in an input image as a first object proposal area.
  • the computing device can transform at least one object according to a request included in a user input received in operation 1401.
  • the computing device can infer (determine) a second object proposal area corresponding to the transformed at least one object based on the first object proposal area.
  • the computing device can extend the second object proposal area by considering an inverse transformation of the object.
  • the computing device can infer (determine) a generation need area based on the extended second object proposal area.
  • the computing device can generate an image of a region requiring generation using one or more generative models.
  • the computing device may receive user input requesting movement of at least one object included in an input image.
  • the user may request movement of an object included in the input image in various ways.
  • the computing device can expand the input image in a direction determined based on the movement of the requested object.
  • the computing device can determine the direction in which to expand the input image by considering the movement of the requested object. For example, the computing device can determine the direction opposite to the movement direction of the object as the expansion direction of the input image.
  • Fig. 21 illustrates detailed operations included in operation 2002.
  • the computing device may determine whether at least one object is a partial object in which only a portion of the object is displayed. According to one embodiment of the present disclosure, the computing device may perform object recognition on an input image, and then determine whether the object is a partial object based on the recognition result for at least one object. Alternatively, according to one embodiment of the present disclosure, the computing device may determine whether the object is a partial object based on whether the object touches a border of the input image or whether the object is cut off by the border of the input image. Detailed operations included in operation 2101 are illustrated in FIG. 22.
  • the computing device may determine whether at least one object touches at least one border among borders of an input image or whether at least one object is cut by at least one border among borders of the input image. Then, in operation 2202, the computing device may determine at least one object as a partial object if at least one object touches at least one border or at least one object is cut by at least one border.
  • the computing device may generate an image to extend the input image in a direction opposite to a movement direction of the requested object, if at least one object is a partial object.
  • the computing device may select at least one border touching at least one object or at least one border cutting off the at least one object from among borders of the input image, move the selected at least one border in a direction opposite to a movement direction of the requested object, and then generate an image up to an area to which the at least one border has moved using one or more generation models.
  • the computing device may infer (determine) a region requiring generation of an image of at least one object based on the expanded input image.
  • the computing device may infer (determine) a region requiring generation of an image of at least one object as a region requiring generation of the image of at least one object based on the size of at least one object and the direction of at least one object.
  • the computing device may identify at least one object included in the input image (e.g., determine the type of the object), and then infer (determine) a region requiring generation of an image of at least one object as a region requiring generation of the image of the object based on the identification result (e.g., the type of the object).
  • the computing device may infer (determine) a region including an object in the expanded input image as an object suggestion region, and then infer (determine) a region requiring generation based on the object suggestion region.
  • Detailed operations included in operation 2003 are illustrated in FIG. 23.
  • the computing device can infer (determine) an area including at least one object in the extended input image as a first object proposal area.
  • the computing device can move at least one object upon request.
  • the computing device can infer (determine) a second object proposal area corresponding to at least one moved object based on the first object proposal area.
  • the computing device can infer (determine) a region requiring generation based on a second object suggestion region.
  • the computing device can infer (determine) a region requiring additional generation of an image for the at least one moved object as a first region requiring generation by comparing the at least one moved object with the second object suggestion region, and infer (determine) a region requiring generation of a background image due to movement of the object as a second region requiring generation.
  • the specific method by which the computing device infers (determines) the first object proposal region, the second object proposal region, and the generation need region is as described above with reference to FIG. 1.
  • a method of editing an image using a generative model may include the steps of receiving a user input requesting movement of at least one object included in an input image, expanding the input image in a direction determined based on the requested movement of the object, determining a generation required area, which is an area requiring generation of an image for the at least one object, based on the expanded input image, and generating an image for the generation required area using at least one generative model.
  • the step of expanding the input image may include the step of determining whether the at least one object is a partial object in which only a portion of the object is displayed, and if the at least one object is a partial object, the step of generating an image to expand the input image in a direction opposite to a movement direction of the requested object.
  • the step of determining whether the object is a partial object may include the step of performing object recognition on the input image and the step of determining whether the object is a partial object based on the recognition result for the at least one object.
  • the step of inferring the region requiring generation may infer the region requiring generation of an image of the at least one object as the region requiring generation based on the size of the at least one object and the direction of the at least one object.
  • the step of inferring the region requiring generation may include the step of identifying the at least one object and the step of inferring the region requiring generation of an image of the at least one object as the region requiring generation based on the identification result.
  • the step of inferring the region requiring generation may include the steps of inferring an area including the at least one object in the extended input image as a first object proposal area, moving the at least one object according to the request, inferring a second object proposal area corresponding to the moved at least one object based on the first object proposal area, and inferring the region requiring generation based on the second object proposal area.
  • the step of inferring the region requiring generation based on the second object suggestion region may include the step of inferring a region in which an image for the at least one moved object must be additionally generated as the first region requiring generation by comparing the at least one moved object with the second object suggestion region, and the step of inferring a region in which a background image must be generated due to movement of the object as the second region requiring generation.
  • the input image is expanded using a first generation model, an image for the first generation-required region is generated using a second generation model, and an image for the second generation-required region is generated using a third generation model, wherein the second generation model may have higher performance than the first generation model or the third generation model.
  • the step of generating an image for the region requiring generation may include the step of generating a prompt based on at least one of information about a location of the region requiring generation, information about a type of the at least one object, and information about a background including the region requiring generation, and the step of inputting the generated prompt into the at least one generation model.
  • a computing device includes an input/output interface for receiving a user input requesting processing of an image and outputting an image processed according to the user input, a memory storing commands for processing the image, and at least one processor, wherein the at least one processor executes the commands such that, when a user input requesting movement of at least one object included in an input image is received, the input image is expanded in a direction determined based on the requested movement of the object, and a generation required area, which is an area where generation of an image for the at least one object is required, is inferred based on the expanded input image, and then an image for the generation required area is generated using at least one generative model.
  • the at least one processor may generate an image to expand the input image by determining whether the at least one object is a partial object in which only a part of the object is displayed, and if the at least one object is a partial object, expanding the input image in a direction opposite to a movement direction of the requested object.
  • the at least one processor when determining whether the at least one processor is a partial object, may determine whether the at least one object is in contact with at least one border among borders of the input image, and if the at least one object is in contact with the at least one border, the at least one object may be determined to be a partial object.
  • the at least one processor may generate an image to expand the input image by selecting at least one border among borders of the input image that comes into contact with the at least one object, moving the selected at least one border in a direction opposite to a movement direction of the requested object, and then generating an image up to an area to which the at least one border has been moved using the at least one generation model.
  • the at least one processor may perform object recognition on the input image to determine whether the object is a partial object, and then determine whether the object is a partial object based on a recognition result for the at least one object.
  • the at least one processor may infer a region requiring generation of an image of the at least one object as the region requiring generation based on a size of the at least one object and a direction of the at least one object.
  • the at least one processor may identify the at least one object, and then infer a region requiring generation of an image of the at least one object as the region requiring generation based on the identification result.
  • the at least one processor may infer, in the area requiring generation, an area including the at least one object in the extended input image as a first object proposal area, move the at least one object according to the request, infer a second object proposal area corresponding to the moved at least one object based on the first object proposal area, and then infer the area requiring generation based on the second object proposal area.
  • the at least one processor may compare the at least one moved object with the second object suggestion area, thereby inferring an area in which an image for the at least one moved object must be additionally generated as a first generation need area, and then inferring an area in which a background image must be generated due to movement of the object as a second generation need area.
  • the at least one processor expands the input image using a first generative model, generates an image for the first generation-required region using a second generative model, and generates an image for the second generation-required region using a third generative model, wherein the second generative model may have higher performance than the first generative model or the third generative model.
  • the step of inferring the region requiring generation may include the steps of expanding the input image by considering the inverse transformation, inferring an area including the at least one object in the expanded input image as a first object proposal area, transforming the at least one object according to the request, inferring a second object proposal area corresponding to the transformed at least one object based on the first object proposal area, and inferring the region requiring generation based on the second object proposal area.
  • the step of expanding the input image may include the steps of selecting at least one border among borders of the input image that touches the at least one object, moving the at least one selected border by a distance and direction according to the inverse transformation, and generating an image up to an area where the at least one border has been moved using the at least one generative model.
  • the step of moving the at least one object by a distance determined based on a size of the at least one object may move the at least one selected border by a distance calculated by multiplying a length of the at least one object by a preset ratio.
  • the step of moving the at least one object by a distance determined based on a size of the at least one object may determine a movement distance based on a range within which the at least one object is transformable within the input image, and move the at least one selected border by the determined movement length.
  • the step of expanding the input image may include the steps of selecting at least one border among borders of the input image that touches the at least one selected object, moving the at least one selected border by a distance determined based on a length of the input image measured relative to an axis perpendicular to the at least one selected border, and generating an image up to an area to which the at least one border has been moved using the at least one generative model.
  • the step of moving by a distance determined according to a length of the input image may move the at least one selected border by a distance obtained by multiplying the length of the input image by a preset ratio.
  • the step of inferring the region requiring generation based on the second object suggestion region may include the step of inferring a region in which an image for the at least one converted object must be additionally generated as the first region requiring generation by comparing the at least one converted object with the second object suggestion region, and the step of inferring a region in which a background image must be generated due to conversion of the object as the second region requiring generation.
  • the step of inferring the region requiring generation based on the extended second object proposal region may include the step of inferring a region in which an image for the at least one transformed object must be additionally generated as the first region requiring generation by comparing the at least one transformed object with the extended second object proposal region, and the step of inferring a region in which a background image must be generated due to the transformation of the object as the second region requiring generation.
  • a computing device includes an input/output interface for receiving a user input requesting processing of an image and outputting an image processed according to the user input, a memory storing commands for processing the image, and at least one processor, wherein the at least one processor executes the commands so that, when receiving a user input requesting transformation of at least one object included in an input image, the computing device determines whether at least one border among borders of the input image touches the at least one object, and if the at least one border touches the at least one object, transforms the at least one object according to the request, infers a generation required area, which is an area where image generation is required, by considering an inverse transformation for the transformation, and generates an image for the generation required area using one or more generative models.
  • the at least one processor may, in inferring the generation-required region, expand the input image by considering the inverse transformation, infer an area including the at least one object in the expanded input image as a first object proposal area, transform the at least one object according to the request, infer a second object proposal area corresponding to the transformed at least one object based on the first object proposal area, and infer the generation-required region based on the second object proposal area.
  • the at least one processor may, when expanding the input image, select at least one border among borders of the input image that is in contact with the at least one selected object, move the at least one selected border by a distance determined according to a size of the at least one object, and generate an image up to an area to which the at least one border has been moved using the at least one generation model.
  • the at least one processor when inferring the generation need area based on the second object suggestion area, can compare the at least one transformed object with the second object suggestion area, thereby inferring an area where an image for the at least one transformed object must be additionally generated as a first generation need area, and inferring an area where a background image must be generated due to the conversion of the object as a second generation need area.
  • the at least one processor expands the input image using a first generative model, generates an image for the first generation-required region using a second generative model, and generates an image for the second generation-required region using a third generative model, wherein the second generative model may have higher performance than the first generative model or the third generative model.
  • Various embodiments of the present disclosure may be implemented or supported by one or more computer programs, which may be formed from computer-readable program code and embodied in a computer-readable medium.
  • application and “program” may represent one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, associated data, or portions thereof suitable for implementation in computer-readable program code.
  • Computer-readable program code may include various types of computer code, including source code, object code, and executable code.
  • the machine-readable storage medium may be provided in the form of a non-transitory storage medium.
  • the 'non-transitory storage medium' is a tangible device and may exclude wired, wireless, optical, or other communication links that transmit temporary electrical or other signals. Meanwhile, the 'non-transitory storage medium' does not distinguish between cases where data is permanently stored in the storage medium and cases where it is temporarily stored.
  • the 'non-transitory storage medium' may include a buffer where data is temporarily stored.
  • the computer-readable medium may be any available medium that can be accessed by a computer, and may include both volatile and nonvolatile media, removable and non-removable media.
  • the computer-readable medium includes media on which data can be permanently stored and media on which data can be stored and later overwritten, such as a rewritable optical disk or an erasable memory device.
  • the method according to various embodiments disclosed in the present document may be provided as included in a computer program product.
  • the computer program product may be traded between a seller and a buyer as a commodity.
  • the computer program product may be distributed in the form of a machine-readable storage medium (e.g., a compact disc read only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store or directly between two user devices (e.g., smartphones).
  • a machine-readable storage medium e.g., a compact disc read only memory (CD-ROM)
  • CD-ROM compact disc read only memory
  • At least a portion of the computer program product may be at least temporarily stored or temporarily generated in a machine-readable storage medium, such as a memory of a manufacturer's server, a server of an application store, or an intermediary server.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

생성 모델을 이용하여 이미지를 편집하는 방법은, 입력 이미지에 포함된 적어도 하나의 객체의 이동(movement)을 요청하는 사용자 입력을 수신하는 단계, 상기 객체의 이동에 기초하여 결정되는 방향으로 상기 입력 이미지를 확장하는 단계, 상기 확장된 입력 이미지에 기초하여 상기 적어도 하나의 객체에 대한 부분 이미지(partial image)의 생성이 필요한 영역인 생성 필요 영역(generation required area)을 결정하는 단계 적어도 하나의 생성 모델(generative model)을 이용하여 상기 생성 필요 영역에 대한 이미지를 생성하는 단계 및 상기 입력 이미지 및 상기 적어도 하나의 객체에 대한 부분 이미지에 기초하여 재구성된 이미지를 출력하는 단계를 포함할 수 있다.

Description

생성 모델을 이용한 이미지 처리 방법 및 이를 수행하기 위한 컴퓨팅 장치
본 개시는 생성 모델을 이용하여 이미지를 편집하는 방법, 장치 및 시스템에 관한 것으로서, 자세하게는 이미지 내에서 객체의 위치나 크기 등이 변환되는 경우 객체가 변환된 후의 이미지를 편집하는 방법, 장치 및 시스템에 관한 것이다.
생성형 AI (generative AI) 기술은 방대한 훈련용 데이터의 패턴과 구조를 학습하고, 그에 기초하여 입력 데이터와 유사한 새로운 데이터를 생성하는 기술을 의미한다. 생성형 AI 기술을 이용하면 텍스트에 대응되는 이미지를 얻거나, 원본 이미지에는 포함되지 않았던 영역까지 이미지를 확장할 수도 있다.
생성형 AI 기술은 이미지 처리 분야에 적용되어 아웃페인팅(outpainting) 또는 인페인팅(inpainting)을 지원할 수 있다. 이미지의 스타일과 내용을 유지하면서 이미지를 확장하는 것을 아웃페인팅이라고 하고, 이미지 내 특정 영역에 채워질 이미지를 생성하는 것을 인페인팅이라고 한다.
한편, 최근 사용자 경험을 중시하는 이미지 처리 기술의 발전으로 인해 일부 디바이스나 프로그램은 사용자가 이미지에 포함된 객체들의 위치나 크기를 변환시킬 수 있도록 하는 기능을 지원하기도 한다. 그런데, 객체가 변환된 후의 이미지에서 객체의 일부가 잘리거나 주변과 어울리지 않게 객체가 표시된다면 사용자의 만족도가 떨어질 수 있다.
본 개시의 일 실시예에 따른 하나 이상의 생성 모델을 이용하여 이미지를 처리하는, 적어도 하나의 프로세서에 의해 실행되는 방법은, 입력 이미지에 포함된 적어도 하나의 객체의 이동(movement)을 요청하는 사용자 입력을 수신하는 단계, 상기 객체의 이동에 기초하여 결정되는 방향으로 상기 입력 이미지를 확장하는 단계, 상기 확장된 입력 이미지에 기초하여 상기 적어도 하나의 객체에 대한 부분 이미지(partial image)의 생성이 필요한 영역인 생성 필요 영역(generation required area)을 결정하는 단계 적어도 하나의 생성 모델(generative model)을 이용하여 상기 생성 필요 영역에 대한 이미지를 생성하는 단계 및 상기 입력 이미지 및 상기 적어도 하나의 객체에 대한 부분 이미지에 기초하여 재구성된 이미지를 출력하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 컴퓨팅 장치는 입력 이미지의 처리를 요청하는 사용자 입력을 수신하고, 상기 사용자 입력에 따라 처리된 재구성된 이미지를 출력하기 위한 입출력 인터페이스, 상기 입력 이미지를 처리하기 위한 인스트럭션들이 저장되는 메모리 및 상기 인스트럭션들을 실행하기 위한 적어도 하나의 프로세서를 포함하며, 상기 인스트럭션들에 의해 상기 적어도 하나의 프로세서는, 입력 이미지에 포함된 적어도 하나의 객체의 이동(movement)을 요청하는 사용자 입력을 수신하면, 상기 객체의 이동에 기초하여 결정되는 방향으로 상기 입력 이미지를 확장하고, 상기 확장된 입력 이미지에 기초하여 상기 적어도 하나의 객체에 대한 부분 이미지(partial image)의 생성이 필요한 영역인 생성 필요 영역(generation required area)을 결정하고, 적어도 하나 이상의 생성 모델(generative model)을 이용하여 상기 생성 필요 영역에 대한 이미지를 생성한 후, 상기 입력 이미지 및 상기 적어도 하나의 객체에 대한 부분 이미지에 기초하여 재구성된 이미지를 출력할 수 있다.
본 개시의 일 실시예에 따른, 컴퓨터로 읽을 수 있는 비일시적인 기록매체에 저장되는 명령어들이 적어도 하나의 프로세서에 의해 실행됨으로써 적어도 하나의 프로세서는, 입력 이미지의 처리를 요청하는 사용자 입력을 수신하고, 상기 사용자 입력에 따라 처리된 재구성된 이미지를 출력하기 위한 입출력 인터페이스, 상기 입력 이미지를 처리하기 위한 인스트럭션들이 저장되는 메모리 및 상기 인스트럭션들을 실행하기 위한 적어도 하나의 프로세서를 포함하며, 상기 인스트럭션들에 의해 상기 적어도 하나의 프로세서는, 입력 이미지에 포함된 적어도 하나의 객체의 이동(movement)을 요청하는 사용자 입력을 수신하면, 상기 객체의 이동에 기초하여 결정되는 방향으로 상기 입력 이미지를 확장하고, 상기 확장된 입력 이미지에 기초하여 상기 적어도 하나의 객체에 대한 부분 이미지(partial image)의 생성이 필요한 영역인 생성 필요 영역(generation required area)을 결정하고, 적어도 하나 이상의 생성 모델(generative model)을 이용하여 상기 생성 필요 영역에 대한 이미지를 생성한 후, 상기 입력 이미지 및 상기 적어도 하나의 객체에 대한 부분 이미지에 기초하여 재구성된 이미지를 출력할 수 있다.
본 개시의 일 실시예에 따른, 컴퓨터 프로그램은, 개시된 방법의 실시예들 중에서 적어도 하나를 컴퓨터에서 수행하기 위해 매체에 저장된 것일 수 있다.
도 1은 본 개시의 일 실시예에 따른, 이미지에 포함된 객체 변환 시 생성 모델을 이용하여 이미지를 편집하는 과정을 도시한 도면이다.
도 2는 본 개시의 일 실시예에 따른, 이미지에 포함된 객체가 축소되는 경우 역변환을 고려하여 이미지를 확장하는 과정을 도시한 도면이다.
도 3은 본 개시의 일 실시예에 따른, 이미지에 포함된 객체가 회전되는 경우 역변환을 고려하여 이미지를 확장하는 과정을 도시한 도면이다.
도 4a는 본 개시의 일 실시예에 따른, 선택된 객체의 크기에 기초하여 이미지를 확장하는 방법을 설명하기 위한 도면이다.
도 4b는 본 개시의 일 실시예에 따른, 이미지의 크기에 기초하여 이미지를 확장하는 과정을 도시한 도면이다.
도 5는 본 개시의 일 실시예에 따른, 선택된 객체의 변환 가능한 범위에 기초하여 이미지를 확장하는 과정을 도시한 도면이다.
도 6은 본 개시의 일 실시예에 따른, 역변환 방향에 위치하는 모든 테두리들을 이동시킴으로써 이미지를 확장하는 과정을 도시한 도면이다.
도 7은 본 개시의 일 실시예에 따른, 이미지로부터 객체 제안 영역을 추론하는 과정을 도시한 도면이다.
도 8 및 도 9는 입력 이미지를 확장하지 않은 상태에서 객체 제안 영역을 추론하고, 객체의 변환에 대한 역변환을 고려하여 객체 제안 영역을 확장하는 과정을 도시한 도면이다.
도 10은 객체의 변환에 대한 역변환을 고려하여 입력 이미지를 확장하는 과정에서 생성된 객체 이미지를 그대로 사용하여 이미지를 편집하는 과정을 도시한 도면이다.
도 11은 본 개시의 일 실시예에 따른, 생성 모델을 이용한 이미지 편집을 수행하기 위한 컴퓨팅 장치의 구성의 예시를 도면이다.
도 12는 본 개시의 일 실시예에 따른, 생성 모델들의 종류와 역할을 도시한 도면이다.
도 13 내지 도 19는 본 개시의 실시예들에 따른, 생성 모델을 이용하여 이미지를 편집하는 과정을 설명하기 위한 순서도들이다.
도 20 내지 도 23은 본 개시의 실시예들에 따른, 생성 모델을 이용하여 이미지를 편집하는 과정을 설명하기 위한 순서도들이다.
본 개시를 설명함에 있어서 본 개시가 속하는 기술 분야에 익히 알려져 있고 본 개시와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 개시의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
마찬가지 이유로 첨부된 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시 되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성 요소에는 동일한 참조 번호를 부여하였다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 개시된 실시예들은 본 개시의 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 개시의 범주를 완전하게 알려주기 위해 제공되는 것이다. 본 개시의 일 실시예는 청구범위에 따라 정의될 수 있다. 명세서 전체에 걸쳐 동일한 참조 부호는 동일한 구성 요소를 나타낸다. 또한, 본 개시의 일 실시예를 설명함에 있어서 관련된 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
일 실시예에서, 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있다. 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있고, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성할 수 있다. 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하고, 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하다.
또한, 흐름도 도면의 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 일 실시예에서, 블록들에 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능하다. 예를 들면, 잇달아 도시되어 있는 두 개의 블록들은 실질적으로 동시에 수행되는 것도 가능하고 또는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 개시의 일 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 나타낼 수 있고, '~부'는 특정한 역할을 수행할 수 있다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 일 실시예에서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 특정한 구성요소나 특정한 '~부'를 통해 제공되는 기능은 그 개수를 줄이도록 결합되거나 추가적인 구성요소들로 분리될 수 있다. 또한, 일 실시예에서 ‘~부’는 하나 이상의 프로세서를 포함할 수 있다.
본 개시의 실시예들은 생성 모델을 이용하여 이미지를 편집하는 방법에 관한 것이다. 구체적인 실시예들을 설명하기에 앞서 본 명세서에서 자주 사용되는 용어들의 의미를 정의한다.
이미지의 '편집(EDITING)'이란 이미지의 적어도 일부 영역이 변경되도록 이미지를 처리하는 것을 의미할 수 있다. 본 개시의 실시예들에서는 이미지에 포함된 객체가 변환(이동, 확대, 축소, 회전 등)되면, 이미지 처리를 수행하는 장치는 객체가 변환된 후의 이미지를 생성할 수 있는데, 이를 이미지를 편집한다고 표현할 수 있다. 이미지의 '편집' 대신에 이미지의 '재구성(recomposition)' 등과 같은 용어가 사용될 수도 있다.
객체의 '변환(transformation)'이란 객체의 이동(movement), 객체의 리사이즈(resize)(e.g. 확대 또는 축소), 객체의 회전(rotation) 등을 포함할 수 있다. 본 개시에서는 객체의 이동을 포함하는 과정들에 대해서 설명한다. 하지만, 통상의 기술자라면 본 개시가 그러한 실시예들로 제한되지 않음을 이해할 수 있을 것이다. 추가적으로, 객체가 이동되는 경우에 대한 실시예들이더라도, 리사이즈 또는 회전 등과 같이 다른 종류의 변환이 객체에 적용될 수도 있다. 객체의 '변환' 대신에 객체의 '수정(change)' 등과 같은 용어가 사용될 수도 있다. 또한, 객체의 '이동' 대신에 객체의 '옮김(translation)' 등과 같은 용어가 사용될 수도 있다.
'부분 객체(partial object)'란 객체의 모습 중 적어도 일부가 이미지상에 표시되지 않은 객체를 의미할 수 있다. 예를 들어, 객체가 이미지의 가장자리에 위치하여 객체의 일부만 이미지에 표시되고 나머지는 이미지에 표시되지 않는다면, 해당 객체를 부분 객체라고 할 수 있다. 또는 예를 들어, 객체의 일부분이 다른 객체 또는 배경에 의해 가려져 표시되지 않는다면, 해당 객체를 부분 객체라고 할 수 있다. 본 개시의 일 실시예에 따르면, 컴퓨팅 장치는 객체가 이미지의 테두리들 중 적어도 하나와 맞닿았는지 여부에 기초하여 객체가 부분 객체인지를 판단할 수 있다. 또한 본 개시의 일 실시예에 따르면, 컴퓨팅 장치는 이미지에 대해서 객체 인식을 수행하고, 객체를 인식한 결과에 기초하여 객체가 부분 객체인지를 판단할 수도 있다. '부분 객체' 대신에 '불완전 객체(incomplete object)' 등과 같은 용어가 사용될 수도 있다.
'전체 객체(full object)'란 객체의 전체 모습이 이미지상에 표시되는 객체를 의미할 수 있다. '전체 객체' 대신에 '완전 객체(complete object)' 또는 '전부 객체(whole object)' 등의 용어가 사용될 수도 있다.
'생성형 AI (generative artificial intelligence)'란 입력 데이터(e.g. 텍스트, 이미지 등)에 대응하여 새로운 텍스트, 이미지 등을 생성할 수 있는 인공지능 기술을 의미할 수 있다. 생성형 AI의 대표적인 예시에 대해서는 아래의 '생성 모델' 부분에서 설명한다.
'생성 모델(generative model)'이란 생성형 AI 기술을 구현하는 신경망 모델(neural network model)을 의미할 수 있다. 생성 모델은 훈련용 데이터의 패턴과 구조를 학습함으로써 입력 데이터와 유사한 특징을 갖는 새로운 데이터 또는 입력 데이터에 대응되는 새로운 데이터를 생성할 수 있다. 예를 들어, 입력 데이터가 이미지이고 생성 모델이 이미지의 확장을 요청받는다면, 생성 모델은 원본 이미지의 내용이나 스타일을 유지하면서 원본 이미지의 바깥 영역에 새로운 이미지를 생성할 수 있다. 또는 예를 들어, 입력 데이터가 질문을 포함하는 텍스트라면 생성 모델은 질문에 대한 답변을 생성하여 출력할 수 있다.
'객체 제안 영역(object proposal area)'이란 이미지 내에서 객체가 존재하는 것으로 판단 또는 예측되는 영역을 의미할 수 있다. 일 실시예에 따르면, 이미지 처리를 수행하는 컴퓨팅 장치는 객체를 포함하는 일정 영역(e.g. 바운딩 박스)을 객체 제안 영역으로 추론, 결정 또는 추출할 수 있다. 또는, 컴퓨팅 장치는 세그멘테이션(segmentation)을 통해 이미지로부터 객체를 분리하고, 분리된 객체만을 객체 제안 영역으로 추론(결정)할 수도 있다. 또는, 컴퓨팅 장치는 세그멘테이션의 수행 결과 분리된 객체뿐만 아니라, 객체 주변의 마진(margin)을 일부 포함하도록 객체 제안 영역을 추론(결정)할 수도 있다.
'생성 필요 영역(generation required area)'이란 이미지의 편집을 위해 이미지의 생성이 필요한 영역을 의미할 수 있다. 예를 들어, 이미지 내에서 객체를 이동시킬 경우 원본 이미지에서는 보이지 않던 객체의 부분에 대한 이미지를 생성해야 할 필요가 있는데, 이렇게 새로운 이미지를 생성해야 하는 영역이 생성 필요 영역에 해당될 수 있다. 본 개시의 실시예들에서는 하나 이상의 생성 모델들이 생성 필요 영역에 대한 이미지를 생성할 수 있다. 본 개시의 실시예들에서는 이미지의 생성이 필요한 최소한의 영역을 생성 필요 영역으로 추론(결정)함으로써, 생성 모델의 불안정성으로 인해 출력 이미지가 부자연스러워지거나, 이미지의 생성에 많은 시간이 소비되는 것을 방지할 수 있다.
'아웃페인팅(outpainting)'이란 이미지의 스타일과 내용을 유지하면서 이미지의 외부 테두리를 확장하는 기술을 의미할 수 있다. 본 개시의 실시예들에서는 역변환을 고려한 입력 이미지의 확장 시 아웃페인팅이 사용될 수 있다.
'인페인팅(inpainting)'이란 이미지 내 특정 영역에 새로운 이미지를 생성하여 채우는 기술을 의미할 수 있다. 본 개시의 일시예들에서는 생성 필요 영역에 대한 이미지 생성 시 인페인팅이 사용될 수 있다.
이하에서는 도면들을 참조하여 본 개시의 실시예들에 따른 생성 모델을 이용하여 이미지를 편집하는 방법 및 이를 수행하기 위한 컴퓨팅 장치에 대해서 설명한다.
도 1 내지 도 10을 참조하여 설명되는 프로세스들은 이미지 처리 기능을 지원하는 컴퓨팅 장치에 의해 수행된다고 가정한다. 따라서, 도 1 내지 도 10을 설명함에 있어서 컴퓨팅 장치가 프로세스들을 수행하는 것으로 설명한다. 일 실시예에 따른 컴퓨팅 장치에 포함되는 세부 구성들은 도 11에 도시하였으며, 해당 구성들에 대해서는 뒤에서 자세히 설명한다.
본 개시의 실시예들에서 컴퓨팅 장치는 이미지를 확장하기 위해 아웃페인팅을 수행하거나, 객체의 변환으로 인해 이미지 내 새로운 이미지(객체 또는 배경)의 생성이 필요한 경우에는 인페인팅을 수행할 수 있다. 이러한 이미지의 생성은 하나의 생성 모델을 이용해 수행될 수도 있지만, 동작마다 다른 특성을 갖는 생성 모델을 이용함으로써 효율 및 성능을 높일 수도 있다.
본 개시의 실시예들에서는 다른 특별한 설명이 없는 한 도 12에 도시된 바와 같은 3가지 생성 모델을 이용하여 이미지를 편집한다고 가정한다. 도 12를 참고하면, 제1 생성 모델(1210)은 이미지 확장을 위한 아웃페인팅을 수행하기 위한 모델이다. 제2 생성 모델(1220)과 제3 생성 모델(1230)은 모두 객체 변환 후 이미지 생성을 위한 인페인팅을 수행하기 위한 모델들인데, 제2 생성 모델(1220)은 객체의 이미지를 생성하기 위한 모델이고, 제3 생성 모델(1230)은 배경의 이미지를 생성하기 위한 모델이다.
일 실시예에 따르면, 제1 생성 모델(1210)은 생성되는 이미지의 품질보다는 생성 속도에 중점을 둔 모델일 수 있다. 객체 제안 영역 추론(결정)을 위한 이미지의 확장 시에는 생성되는 이미지의 품질보다 빠른 생성이 중요하기 때문이다. 이에 반해, 제2 생성 모델(1220)은 생성 속도보다는 생성되는 이미지의 품질에 중점을 둔 모델일 수 있다. 제2 생성 모델(1220)에 의해 생성되는 이미지가 출력 이미지에 해당되기 때문이다. 따라서, 제2 생성 모델(1220)은 제1 생성 모델(1210)에 비해 성능이 높은 모델일 수 있다. 또한, 제1 생성 모델(1210)은 제2 생성 모델(1220)에 비해 생성 속도가 빠른 대신에 출력 데이터의 품질이 낮은 모델일 수 있다. 또한, 배경보다는 객체의 이미지가 전체 이미지의 품질에 더 많은 영향을 미칠 수 있으므로, 제2 생성 모델(1220)은 제3 생성 모델(1230)에 비해 성능이 높은 모델일 수 있다. 물론 이후의 실시예들에서 서로 다른 생성 모델을 이용하는 것으로 설명되는 프로세스들이라도 하나의 동일한 생성 모델 또는 복수의 동일한 생성 모델들을 이용하여 수행될 수도 있음은 자명하다.
도 1은 본 개시의 일 실시예에 따른, 이미지에 포함된 객체 변환 시 생성 모델을 이용하여 이미지를 편집하는 과정을 설명하기 위한 도면이다. 도 1에는 이미지를 처리하는 순서에 따라 제1 동작(1a)에서 제6 동작(1f)에 각각 대응되는 이미지들을 도시하였다.
도 1을 참고하면, 제1 동작(1a)에서 컴퓨팅 장치는 객체(10)를 포함하는 입력 이미지를 획득할 수 있다. 제2 동작(1b)에서 컴퓨팅 장치는 객체의 변환(transform)을 요청하는 사용자 입력을 수신할 수 있다. 예를 들어, 사용자는 입력 이미지가 디스플레이되는 컴퓨팅 장치의 화면에서 객체(10)를 터치하고, 터치를 유지한 상태로 손가락을 이동시킴으로써 객체(10)의 이동을 요청할 수 있다. 물론, 사용자 입력은 이 밖에도 다양한 형태로 객체(10)를 선택(특정)하고, 객체(10)의 변환을 요청하도록 구성될 수도 있다. (e.g. 포인터가 객체상에 위치한 상태에서 마우스의 버튼을 클릭하고, 클릭을 유지한 채로 포인터을 이동시킴)
도 1에 개시된 실시예에서는 사용자가 요청하는 객체(10)의 변환이 객체의 '이동(translation)'인데, 이에 한정되지 않고 사용자는 객체(10)의 리사이즈(resize)(확대, 축소), 또는 회전(rotation)을 요청할 수도 있다.
제3 동작(1c)에서 컴퓨팅 장치는 사용자가 요청한 변환(이동)을 고려하여, 또는 사용자가 요청한 변환에 대한 역변환을 고려하여 입력 이미지를 확장할 수 있다. 다시 말해, 컴퓨팅 장치는 사용자가 요청한 객체의 이동에 기초하여 결정되는 방향으로 입력 이미지를 확장할 수 있다. 입력 이미지를 확장하기 위해, 컴퓨팅 장치는 앞서 설명한 제1 생성 모델(1210)을 이용하여 아웃페인팅을 수행할 수 있다. 제1 생성 모델(1210)이 아웃페인팅을 수행하도록 하기 위해 컴퓨팅 장치는 제1 생성 모델(1210)에 아웃페인팅을 지시하는 프롬프트(prompt)를 입력할 수 있다. 예를 들어, 컴퓨팅 장치는 입력 이미지의 테두리들 중 어떤 테두리를 어느 방향으로 얼마의 거리만큼 이동시킴으로써 입력 이미지를 확장하고, 입력 이미지의 특징(e.g. 전체적인 분위기 및 전경과 배경의 내용 등)을 유지하면서 확장된 영역에 대한 이미지를 생성하라는 내용의 프롬프트를 제1 생성 모델(1210)에 입력할 수 있다. 컴퓨팅 장치는 사용자 입력(변환 요청)과 입력 이미지에 기초하여 아웃페인팅을 지시하는 프롬프트를 생성할 수 있다. 즉, 컴퓨팅 장치는 이하의 실시예들에서 설명되는 방식에 따라 제1 생성 모델(1210)이 아웃페인팅을 수행하도록 지시하는 프롬프트를 생성할 수 있다. 컴퓨팅 장치가 제3 동작(1c)에서 역변환을 고려하여 입력 이미지를 확장하는 구체적인 방법에 대해서 자세히 설명하면 다음과 같다.
컴퓨팅 장치는 사용자가 변환(이동)을 요청한 객체(10), 즉 사용자 입력에 의해 선택된 객체(10)가 입력 이미지의 테두리(border)들 중에서 적어도 하나의 테두리와 맞닿아 있는지 여부를 판단할 수 있다. 도 1을 참고하면, 입력 이미지의 테두리들 중에서 제1 테두리(B1)가 객체(10)와 맞닿아 있음을 알 수 있다. 따라서, 컴퓨팅 장치는 입력 이미지의 테두리들 중에서, 객체(10)와 맞닿은 제1 테두리(B1)를 선택할 수 있다.
컴퓨팅 장치는 사용자 입력에 따른 변환(이동)에 대한 역변환에 따른 거리 및 방향으로 제1 테두리(B1)를 이동시킬 수 있다. 다시 말해, 컴퓨팅 장치는 제2 동작(1b)에서 사용자 입력에 의해 요청되는 객체(10)의 이동(거리 및 방향)과 반대로 제1 테두리(B1)를 이동시킬 수 있다. 제2 동작(1b)에서 컴퓨팅 장치가 수신한 사용자 입력은 객체(10)를 좌측 위 대각선 방향으로 이동시키도록 하는 변환 요청을 포함한다. 따라서, 컴퓨팅 장치는 우측 아래 대각선 방향으로 제1 테두리(B1)를 이동시킬 수 있다. 이때, 제1 테두리(B1)가 이동되는 거리는, 제2 동작(1b)에서 사용자 입력에 의해 객체(10)가 이동되는 거리에 기초하여 결정될 수 있다. 예를 들어, 제1 테두리(B1)가 이동되는 거리는, 제2 동작(1b)에서 사용자 입력에 의해 객체(10)가 이동되는 거리와 동일할 수 있다.
역변환에 따라 제1 테두리(B1)가 이동되면, 컴퓨팅 장치는 제1 생성 모델(1210)을 이용하여 제1 테두리(B1)가 이동된 영역까지 이미지를 생성(아웃페인팅)함으로써 입력 이미지를 확장할 수 있다. 다시 말해, 컴퓨팅 장치는 입력 이미지의 특징을 유지하면서 제1 테두리(B1)가 이동된 영역까지 이미지를 생성하도록 지시하는 프롬프트를 생성하여 제1 생성 모델(1210)에 입력할 수 있다.
컴퓨팅 장치는 이 밖에도 다양한 방법에 따라 입력 이미지를 확장할 수 있다. 또한, 객체(10)에 이동이 아닌 다른 형태의 변환(리사이즈, 회전 등)이 가해지는 경우에도 컴퓨팅 장치가 입력 이미지를 확장하는 방법은 달라질 수 있다. 이에 대해서는 도 2 내지 도 6을 참조하여 자세히 설명한다.
도 2는 본 개시의 일 실시예에 따른, 이미지에 포함된 객체가 축소되는 경우 역변환을 고려하여 이미지를 확장하는 방법을 설명하기 위한 도면이다. 도 2에는 이미지를 처리하는 순서에 따라 제1 동작(2a)에서 제3 동작(2c)에 각각 대응되는 이미지들을 도시하였다.
도 2를 참고하면, 제1 동작(2a)에서 컴퓨팅 장치는 객체(10)를 포함하는 입력 이미지를 획득할 수 있다. 제2 동작(2b)에서 컴퓨팅 장치는 객체(10)의 축소를 요청하는 사용자 입력을 수신할 수 있다. 예를 들어, 사용자는 입력 이미지가 디스플레이되는 컴퓨팅 장치의 화면에서 두 손가락으로 객체(10)를 터치하고, 핀치 인(pinch in) 동작을 수행함으로써 객체(10)의 축소를 요청할 수 있다.
제3 동작(2c)에서 컴퓨팅 장치는 사용자가 요청한 변환(축소)에 대한 역변환을 고려하여 입력 이미지를 확장할 수 있다. 구체적으로, 컴퓨팅 장치는 사용자가 축소를 요청한 객체(10), 즉 사용자 입력에 의해 선택된 객체(10)가 입력 이미지의 테두리들 중에서 적어도 하나의 테두리와 맞닿아 있는지 여부를 판단할 수 있다. 도 2를 참고하면, 입력 이미지의 테두리들 중에서 제1 테두리(B1)가 객체(10)와 맞닿아 있음을 알 수 있다. 따라서, 컴퓨팅 장치는 입력 이미지의 테두리들 중에서, 객체(10)와 맞닿은 제1 테두리(B1)를 선택할 수 있다.
컴퓨팅 장치는 사용자 입력에 따른 변환(축소)에 대한 역변환에 따라 제1 테두리(B1)를 이동시킬 수 있다. 다시 말해, 컴퓨팅 장치는 사용자 입력에 의해 객체(10)가 축소되는 비율만큼 입력 이미지가 제1 테두리(B1) 방향으로 확장되도록 제1 테두리(B1)를 이동시킬 수 있다. (e.g. 사용자 입력에 의해 객체(10)의 크기가 15% 축소된다면, 컴퓨팅 장치는 제1 테두리 방향(B1)으로 입력 이미지가 15% 확장되도록 제1 테두리(B1)를 이동시킴) 따라서, 제3 동작(2c)에 도시된 바와 같이 컴퓨팅 장치는 객체(10)의 중심에서 멀어지는 방향으로 제1 테두리(B1)를 이동시키면서, 제1 테두리(B1)의 길이를 연장시킬 수 있다.
역변환에 따라 제1 테두리(B1)가 이동되면, 컴퓨팅 장치는 제1 생성 모델(1210)을 이용하여 제1 테두리(B1)가 이동된 영역까지 이미지를 생성함으로써 입력 이미지를 확장할 수 있다.
도 3은 본 개시의 일 실시예에 따른, 이미지에 포함된 객체가 회전되는 경우 역변환을 고려하여 이미지를 확장하는 방법을 설명하기 위한 도면이다. 도 3에는 이미지를 처리하는 순서에 따라 제1 동작(3a)에서 제3 동작(3c)에 각각 대응되는 이미지들을 도시하였다.
도 3을 참고하면, 제1 동작(3a)에서 컴퓨팅 장치는 객체(10)를 포함하는 입력 이미지를 획득할 수 있다. 제2 동작(3b)에서 컴퓨팅 장치는 객체(10)의 회전을 요청하는 사용자 입력을 수신할 수 있다. 예를 들어, 사용자는 입력 이미지가 디스플레이되는 컴퓨팅 장치의 화면에서 두 손가락으로 객체(10)를 터치하고, 터치를 유지한 채로 객체(10)를 회전시킬 수 있다.
제3 동작(3c)에서 컴퓨팅 장치는 사용자가 요청한 변환(회전)에 대한 역변환을 고려하여 입력 이미지를 확장할 수 있다. 구체적으로, 컴퓨팅 장치는 사용자가 회전을 요청한 객체(10), 즉 사용자 입력에 의해 선택된 객체(10)가 입력 이미지의 테두리들 중에서 적어도 하나의 테두리와 맞닿아 있는지 여부를 판단할 수 있다. 도 3을 참고하면, 입력 이미지의 테두리들 중에서 제1 테두리(B1)가 객체(10)와 맞닿아 있음을 알 수 있다. 따라서, 컴퓨팅 장치는 입력 이미지의 테두리들 중에서, 객체(10)와 맞닿은 제1 테두리(B1)를 선택할 수 있다.
컴퓨팅 장치는 사용자 입력에 따른 변환(회전)에 대한 역변환에 따라 제1 테두리(B1)를 이동시킬 수 있다. 다시 말해, 컴퓨팅 장치는 제2 동작(3b)에서 사용자 입력에 의해 요청되는 객체(10)의 회전(방향 및 각도)과 반대로 제1 테두리(B1)를 이동시킬 수 있다. 제2 동작(3b)에서 수신한 사용자 입력은 객체(10)를 시계 반대 방향으로 회전시키도록 요청하고 있다. 따라서, 제3 동작(3c)에 도시된 바와 같이 컴퓨팅 장치는 제1 테두리(B1)의 왼쪽 끝을 축으로 시계 방향으로 제1 테두리(B1)를 회전시킴으로써 제1 테두리(B1)를 이동시킬 수 있다. 이때, 제1 테두리(B1)가 회전하는 각도의 크기는, 제2 동작(3b)에서 사용자 입력에 의해 객체(10)가 회전하는 각도의 크기에 기초하여 결정될 수 있다. 예를 들어, 제1 테두리(B1)가 회전하는 각도의 크기는, 제2 동작(3b)에서 사용자 입력에 의해 객체(10)가 회전하는 각도의 크기와 동일할 수 있다.
역변환에 따라 제1 테두리(B1)가 이동되면, 컴퓨팅 장치는 제1 생성 모델(1210)을 이용하여 제1 테두리(B1)가 이동된 영역까지 이미지를 생성함으로써 입력 이미지를 확장할 수 있다.
일 실시예에 따르면, 컴퓨팅 장치는 사용자 입력에 의해 객체(10)가 선택되면, 객체(10)에 대한 변환 요청이 수신되기 전이라도 입력 이미지를 확장할 수 있다. 예를 들어, 사용자는 입력 이미지에 포함된 객체(10)를 손가락으로 일정 시간 이상 터치하고, 터치를 유지한 상태로 손가락을 이동시킴으로써 객체(10)의 이동을 요청할 수 있는데, 컴퓨팅 장치는 사용자가 손가락을 이동시키기 전에 미리 입력 이미지를 확장할 수도 있다. 사용자가 객체(10)를 선택(일정 시간 이상 터치)한 후 객체(10)를 어떻게 변환시킬지(e.g. 객체(10)를 어디로 이동시킬지)를 결정하기까지 다소 시간이 걸릴 수 있는데, 컴퓨팅 장치는 사용자가 변환에 대한 결정을 내리기 전에 미리 이미지를 확장해 놓음으로써 이미지가 편집되는 속도를 향상시킬 수 있다. 사용자의 입장에서는 편집된 이미지가 출력되기까지 걸리는 시간이 단축되므로 사용자 경험이 향상될 수 있다.
일 실시예에 따르면, 컴퓨팅 장치는 객체(10)를 선택하거나 객체(10)의 변환을 요청하는 사용자 입력이 있기도 전에 미리 입력 이미지를 확장시킨 후, 사용자 입력이 수신되면 사용자 입력에 기초하여 객체 제안 영역을 추론(결정)할 수도 있다. 예를 들어, 컴퓨팅 장치는 아웃 페인팅을 통해 원본 이미지를 미리 정해진 비율(e.g. 1.5배)만큼 확장하고, 확장된 원본 이미지를 임시로 저장하고 있다가, 사용자 입력이 수신되면 객체 제안 영역을 추론(결정)하기 위한 프로세스를 수행할 수도 있다.
이와 같이 변환될 객체(10)가 선택되기만 하고, 구체적인 변환 요청이 수신되지 않은 상태에서 입력 이미지를 확장한다면 컴퓨팅 장치는 역변환을 고려할 수 없다. 따라서 일 실시예에 따르면, 컴퓨팅 장치는 선택된 객체(10)의 크기나 위치, 또는 입력 이미지의 크기 등에 기초하여 이미지를 확장할 수 있다. 예를 들어, 컴퓨팅 장치는 선택된 객체(10)의 길이(테두리의 이동 방향에 평행한 축을 기준으로 측정된 길이)에 따라 결정되는 거리만큼 입력 이미지의 테두리를 이동시키거나, 또는 선택된 객체(10)가 입력 이미지 내에서 변환 가능한 범위에 기초하여(e.g. 객체(10)가 입력 이미지 내에서 어느 방향으로 얼마만큼 이동이 가능한지에 기초하여) 결정되는 거리만큼 입력 이미지의 테두리를 이동시킬 수 있다. 또는 컴퓨팅 장치는 입력 이미지의 길이(폭 또는 높이)에 기초하여 결정되는 거리만큼 입력 이미지의 테두리를 이동시킬 수도 있다. 이하에서 도 4a, 도 4b 및 도 5를 참조하여 자세히 설명한다.
도 4a는 본 개시의 일 실시예에 따른, 선택된 객체의 크기에 기초하여 이미지를 확장하는 방법을 설명하기 위한 도면이다. 도 4a에는 이미지를 처리하는 순서에 따라 제1 동작(4aa)에서 제3 동작(4ac)에 각각 대응되는 이미지들을 도시하였다.
도 4a를 참고하면, 제1 동작(4aa)에서 컴퓨팅 장치는 객체(10)를 포함하는 입력 이미지를 획득할 수 있다. 제2 동작(4ab)에서 컴퓨팅 장치는 객체(10)를 선택하는 사용자 입력을 수신할 수 있다. 예를 들어, 사용자는 제2 동작(4ab)에서 객체(10)를 일정 시간 이상 손가락으로 터치함으로써 객체(10)를 변환의 대상으로서 선택하지만, 객체(10)의 변환(이동, 리사이즈, 회전 등)을 요청하는 입력은 아직 하지 않은 상태일 수 있다. 또한 일 실시예에 따르면, 제2 동작(4ab)에서 컴퓨팅 장치는 객체(10)의 변환을 요청하는 사용자 입력을 수신할 수도 있다.
제3 동작(4ac)에서 컴퓨팅 장치는 객체(10)의 크기에 기초하여 입력 이미지를 확장할 수 있다. 입력 이미지를 확장하기 위해, 컴퓨팅 장치는 선택된 객체(10)가 입력 이미지의 테두리들 중에서 적어도 하나의 테두리와 맞닿아 있는지 여부를 판단할 수 있다. 도 4a를 참고하면, 입력 이미지의 테두리들 중에서 제1 테두리(B1)가 객체(10)와 맞닿아 있음을 알 수 있다. 따라서, 컴퓨팅 장치는 입력 이미지의 테두리들 중에서, 객체(10)와 맞닿은 제1 테두리(B1)를 선택할 수 있다.
컴퓨팅 장치는 객체(10)의 중심에서 멀어지는 방향으로 제1 테두리(B1)를 이동시킬 수 있으며, 객체(10)의 크기에 기초하여 제1 테두리(B1)를 이동시킬 거리를 결정할 수 있다. 일 실시예에 따르면, 컴퓨팅 장치는 제1 테두리(B1)의 이동 방향에 평행한 축을 기준으로 객체(10)의 길이(d1)를 측정할 수 있다. 또한 일 실시예에 따르면, 컴퓨팅 장치는 제1 테두리(B1)에 수직인 축을 기준으로 객체(10)의 길이(d1)를 측정할 수도 있다.
컴퓨팅 장치는 측정된 객체(10)의 길이(d1)에 미리 설정된 비율(e.g. 0.2)을 곱한 거리(d2)만큼 제1 테두리(B1)를 이동시킬 수 있다. 이때, 거리(d2) 계산 시 사용되는 미리 설정된 비율은 요구되는 이미지의 품질이나 처리 속도 등의 조건에 따라 적절한 값으로 설정될 수 있다.
제1 테두리(B1)가 이동되면, 컴퓨팅 장치는 제1 생성 모델(1210)을 이용하여 제1 테두리(B1)가 이동된 영역까지 이미지를 생성함으로써 입력 이미지를 확장할 수 있다.
도 4b는 본 개시의 일 실시예에 따른, 이미지의 크기에 기초하여 이미지를 확장하는 방법을 설명하기 위한 도면이다. 도 4b에는 이미지를 처리하는 순서에 따라 제1 동작(4ba)에서 제3 동작(4bc)에 각각 대응되는 이미지들을 도시하였다.
도 4b를 참고하면, 제1 동작(4ba)에서 컴퓨팅 장치는 객체(10)를 포함하는 입력 이미지를 획득할 수 있다. 제2 동작(4bb)에서 컴퓨팅 장치는 객체(10)를 선택하는 사용자 입력을 수신할 수 있다. 예를 들어, 사용자는 제2 동작(4bb)에서 객체(10)를 일정 시간 이상 손가락으로 터치함으로써 객체(10)를 변환의 대상으로 선택하지만, 객체(10)의 변환(이동, 리사이즈, 회전 등)을 요청하는 입력은 아직 하지 않은 상태일 수 있다. 또한 일 실시예에 따르면, 제2 동작(4bb)에서 컴퓨팅 장치는 객체(10)의 변환을 요청하는 사용자 입력을 수신할 수도 있다.
제3 동작(4bc)에서 컴퓨팅 장치는 입력 이미지의 크기에 기초하여 입력 이미지를 확장할 수 있다. 예를 들어, 컴퓨팅 장치는 입력 이미지의 길이(폭 또는 높이)에 기초하여 입력 이미지를 확장할 수 있다. 입력 이미지를 확장하기 위해, 컴퓨팅 장치는 선택된 객체(10)가 입력 이미지의 테두리들 중에서 적어도 하나의 테두리와 맞닿아 있는지 여부를 판단할 수 있다. 도 4b를 참고하면, 입력 이미지의 테두리들 중에서 제1 테두리(B1)가 객체(10)와 맞닿아 있음을 알 수 있다. 따라서, 컴퓨팅 장치는 입력 이미지의 테두리들 중에서, 객체(10)와 맞닿은 제1 테두리(B1)를 선택할 수 있다.
컴퓨팅 장치는 객체(10)의 중심에서 멀어지는 방향으로 제1 테두리(B1)를 이동시킬 수 있으며, 입력 이미지의 길이(폭 또는 높이)에 기초하여 제1 테두리(B1)를 이동시킬 거리를 결정할 수 있다. 일 실시예에 따르면, 컴퓨팅 장치는 제1 테두리(B1)와 수직인 축을 기준으로 입력 이미지의 길이(d1)를 측정할 수 있다. 또한 일 실시예에 따르면, 컴퓨팅 장치는 제1 테두리(B1)의 이동 방향에 평행한 축을 기준으로 입력 이미지의 길이(d1)를 측정할 수 있다.
컴퓨팅 장치는 측정된 이미지의 길이(d1)에 미리 설정된 비율(e.g. 0.1)을 곱한 거리(d2)만큼 제1 테두리(B1)를 이동시킬 수 있다. 이때, 거리(d2) 계산 시 사용되는 미리 설정된 비율을 요구되는 이미지의 품질이나 처리 속도 등의 조건에 따라 적절한 값으로 설정될 수 있다.
제1 테두리(B1)가 이동되면, 컴퓨팅 장치는 제1 생성 모델(1210)을 이용하여 제1 테두리(B1)가 이동된 영역까지 이미지를 생성함으로써 입력 이미지를 확장할 수 있다.
도 5는 본 개시의 일 실시예에 따른, 선택된 객체의 변환 가능한 범위에 기초하여 이미지를 확장하는 방법을 설명하기 위한 도면이다. 도 5에는 이미지를 처리하는 순서에 따라 제1 동작(5a)에서 제3 동작(5c)에 각각 대응되는 이미지들을 도시하였다.
도 5를 참고하면, 제1 동작(5a)에서 컴퓨팅 장치는 객체(10)를 포함하는 입력 이미지를 획득할 수 있다. 제2 동작(5b)에서 컴퓨팅 장치는 객체(10)를 선택하는 사용자 입력을 수신할 수 있다. 예를 들어, 사용자는 제2 동작(5b)에서 객체(10)를 일정 시간 이상 손가락으로 터치함으로써 객체(10)를 변환의 대상으로서 선택하지만, 객체(10)의 변환(이동, 리사이즈, 회전 등)을 요청하는 입력을 아직 하지 않은 상태일 수 있다. 또한 일 실시예에 따르면, 제2 동작(5b)에서 컴퓨팅 장치는 객체(10)의 변환을 요청하는 사용자 입력을 수신할 수도 있다.
제3 동작(5c)에서 컴퓨팅 장치는 객체(10)의 변환 가능한 범위에 기초하여 입력 이미지를 확장할 수 있다. 자세하게는, 컴퓨팅 장치는 객체(10)의 크기 및 위치에 기초하여 객체(10)가 입력 이미지 내에서 변환(e.g. 이동) 가능한 범위를 판단하고, 판단된 범위에 기초하여 입력 이미지를 확장할 수 있다.
입력 이미지를 확장하기 위해, 컴퓨팅 장치는 선택된 객체(10)가 입력 이미지의 테두리들 중에서 적어도 하나의 테두리와 맞닿아 있는지 여부를 판단할 수 있다. 도 5를 참고하면, 입력 이미지의 테두리들 중에서 제1 테두리(B1)가 객체(10)와 맞닿아 있음을 알 수 있다. 따라서, 컴퓨팅 장치는 입력 이미지의 테두리들 중에서, 객체(10)와 맞닿은 제1 테두리(B1)를 선택할 수 있다.
컴퓨팅 장치는 객체(10)의 중심에서 멀어지는 방향으로 제1 테두리(B1)를 이동시킬 수 있으며, 객체(10)의 변환 가능한 범위에 기초하여 제1 테두리(B1)를 이동시킬 거리를 결정할 수 있다. 일 실시예에 따르면, 컴퓨팅 장치는 제3 동작(5c)에서 제1 테두리(B1)의 이동 방향에 평행한 축을 기준으로 객체(10)가 이동 가능한 거리(d1)를 측정할 수 있다. 컴퓨팅 장치는 측정된 거리(d1)에 미리 설정된 비율(e.g. 1)을 곱한 거리(d2)만큼 제1 테두리(B1)를 이동시킬 수 있다. 이때, 거리(d2) 계산 시 사용되는 미리 설정된 비율은 요구되는 이미지의 품질이나 처리 속도 등의 조건에 따라 적절한 값으로 설정될 수 있다.
도 6은 본 개시의 일 실시예에 따른, 역변환 방향에 위치하는 모든 테두리들을 이동시킴으로써 이미지를 확장하는 방법을 설명하기 위한 도면이다. 도 6에는 이미지를 처리하는 순서에 따라 제1 동작(6a)에서 제3 동작(6c)에 각각 대응되는 이미지들을 도시하였다.
도 6을 참고하면, 제1 동작(6a)에서 컴퓨팅 장치는 객체(10)를 포함하는 입력 이미지를 획득할 수 있다. 제2 동작(6b)에서 컴퓨팅 장치는 객체(10)의 이동을 요청하는 사용자 입력을 수신할 수 있다. 예를 들어, 사용자는 입력 이미지가 디스플레이되는 컴퓨팅 장치의 화면에서 객체(10)를 터치하고, 터치를 유지한 상태로 손가락을 이동시킴으로써 객체(10)의 이동을 요청할 수 있다.
제3 동작(6c)에서 컴퓨팅 장치는 사용자가 요청한 변환(이동)에 대한 역변환을 고려하여 입력 이미지를 확장할 수 있다. 구체적으로, 컴퓨팅 장치는 입력 이미지의 테두리들 중에서 역변환 방향에 위치하는 모든 테두리들을 선택할 수 있다. 제2 동작(6b)에서 컴퓨팅 장치가 수신한 사용자 입력은 객체(10)를 좌측 위 대각선 방향으로 이동시키도록 하는 변환 요청을 포함한다. 역변환 방향은 우측 아래 방향이므로, 컴퓨팅 장치는 하측 및 우측에 위치한 테두리들(B1, B2)을 선택할 수 있다.
컴퓨팅 장치는 사용자 입력에 따른 변환(이동)에 대한 역변환에 따른 거리 및 방향으로 제1 테두리(B1) 및 제2 테두리(B2)를 이동시킬 수 있다. 예를 들어, 컴퓨팅 장치는 제2 동작(6b)에서 수신한 사용자 입력에 의해 객체(10)가 상측으로 이동되는 거리만큼 제1 테두리(B1)를 하측으로 이동시킬 수 있다. 유사하게 컴퓨팅 장치는 제2 동작(6b)에서 수신한 사용자 입력에 의해 객체(10)가 좌측 방향으로 이동되는 거리만큼 제2 테두리(B2)를 우측으로 이동시킬 수 있다.
역변환에 따라 제1 테두리(B1) 및 제2 테두리(B2)가 이동되면, 컴퓨팅 장치는 제1 생성 모델(1210)을 이용하여 테두리들(B1, B2)이 이동된 영역까지 이미지를 생성함으로써 입력 이미지를 확장할 수 있다.
지금까지 입력 이미지를 확장하는 다양한 방법들에 대해서 살펴보았다. 다시 도 1로 돌아가서, 제3 동작(1c)에서 입력 이미지가 확장되면, 컴퓨팅 장치는 제4 동작(1d)에서 객체 제안 영역(100a)을 추론(결정)할 수 있다. 한편, 제3 동작(1c)에서 확장된 영역에 포함된 이미지는 이후에 객체 변환 후 인페인팅 수행(e.g. 생성 필요 영역에 대한 이미지 생성) 시 가이드(guide)로서 사용될 수도 있다. 다시 말해, 컴퓨팅 장치는 이후에 객체 변환 후 인페인팅을 수행할 때, 제3 동작(1c)에서 입력 이미지의 확장 시 생성된 이미지를 참조할 수 있고, 따라서 이미지 생성 효율이 높아질 수 있다.
앞서 설명한 바와 같이 '객체 제안 영역'이란 이미지 내에서 객체(10)가 존재하는 것으로 판단 또는 예측되는 영역을 의미할 수 있다. 컴퓨팅 장치는 확장된 입력 이미지에서 객체(10)를 포함하는 영역을 객체 제안 영역(100a)으로 추론(결정)할 수 있다. 일 실시예에 따르면, 컴퓨팅 장치는 제4 동작(1d)에서 추론(결정)한 객체 제안 영역(100a)에 기초하여, 제5 동작(1e)에서 변환(이동)된 객체(10)에 대응되는 객체 제안 영역(100b)을 추론(결정)할 수 있다. 설명의 편의를 위해, 제4 동작(1d)에서 추론(결정)되는 객체 제안 영역(100a)을 제1 객체 제안 영역이라고 하고, 제5 동작(1e)에서 추론(결정)되는 객체 제안 영역(100b)을 제2 객체 제안 영역이라고 한다.
제4 동작(1d)에서 컴퓨팅 장치는 바운딩 박스(bounding box) 형태로 제1 객체 제안 영역(100a)을 추론(결정)할 수 있다. 일 실시예에 따르면, 컴퓨팅 장치는 일반적인 보행자 검출 기술에서 사용되는 방식을 통해 객체(10)를 포함하는 바운딩 박스를 제1 객체 제안 영역(100a)으로 추론(결정)할 수 있으며, 그 외 다양한 방식을 통해 제1 객체 제안 영역(100a)을 추론(결정)할 수도 있다. 또한 일 실시예에 따르면, 컴퓨팅 장치는 바운딩 박스가 아닌 다른 형태로 제1 객체 제안 영역(100a)을 추론(결정)할 수도 있는데, 이에 대해서는 도 7을 참조하여 자세히 설명한다.
도 7은 본 개시의 일 실시예에 따른, 이미지로부터 객체 제안 영역을 추론(결정)하는 방법을 설명하기 위한 도면이다. 도 7에는 객체 제안 영역을 추론(결정)하는 방식이 서로 다른 3개의 예를 제1 내지 제3화면(7a, 7b, 7c)에 도시하였다.
도 7의 제1 화면(7a)에는 컴퓨팅 장치가 객체(10)를 포함하는 바운딩 박스 형태로 객체 제안 영역(700a)을 추론(결정)하는 예를 도시하였다. 앞서 도 1의 제4 동작(1d)에서 설명한 방식과 동일하다.
도 7의 제2 화면(7b)에는 컴퓨팅 장치가 세그멘테이션(segmentation)을 통해 객체(10)를 분리하고, 분리된 객체(10)만을 객체 제안 영역(700b)으로 추론(결정)하는 예를 도시하였다.
도 7의 제3 화면(7c)에는 컴퓨팅 장치가 세그멘테이션을 통해 객체(10)를 분리하고, 분리된 객체(10)뿐만 아니라 객체(10) 주변의 마진(margin)을 일부 포함하도록 객체 제안 영역(700c)을 추론(결정)하는 예를 도시하였다.
도 1 및 도 8 내지 도 10에 도시된 실시예들에서는 컴퓨팅 장치가 바운딩 박스 형태로 객체 제안 영역을 추론(결정)하지만, 컴퓨팅 장치는 도 7에 도시된 다른 두 가지 방식으로 객체 제안 영역을 추론(결정)할 수도 있으며, 그 외 다양한 방식으로 객체 제안 영역을 추론(결정)할 수도 있다.
다시 도 1로 돌아가서, 컴퓨팅 장치는 제4 동작(1d)에서 확장된 입력 이미지로부터 제1 객체 제안 영역(100a)을 추론(결정)했으면, 제5 동작(1e)에서 객체(10)를 변환하고 변환된 객체(10)에 대응되는 제2 객체 제안 영역(100b)을 추론(결정)할 수 있다.
제5 동작(1e)에서 컴퓨팅 장치가 수행하는 동작을 자세히 설명하면 다음과 같다. 컴퓨팅 장치는, 제2 동작(1b)에서 수신한 사용자 입력에 포함된 요청에 따라 객체(10)를 변환할 수 있다. 즉, 컴퓨팅 장치는 객체(10)를 입력 이미지상에서 좌측 위 방향으로 이동시킬 수 있다. 컴퓨팅 장치는 앞서 추론(결정)된 제1 객체 제안 영역(100a)에 기초하여, 이동 후 위치에서의 객체(10)에 대응되는 제2 객체 제안 영역(100b)을 추론(결정)할 수 있다. 예를 들어, 컴퓨팅 장치는 제1 객체 제안 영역(100a)의 크기 및 형태, 그리고 제1 객체 제안 영역(100a)과 객체(10) 간의 위치 관계 등을 반영하여, 이동된 객체(10)에 대응되는 제2 객체 제안 영역(100b)을 추론(결정)할 수 있다. 일 실시예에 따르면, 제2 객체 제안 영역(100b)에 포함된 객체(10)는 확장되지 않은 입력 이미지로부터 추출된 것이므로 제1 객체 제안 영역(100a)에 포함된 객체(10)보다 작을 수 있다. 그런데 도 1에 도시된 바와 같이, 제2 객체 제안 영역(100b)은 제1 객체 제안 영역(100a)과 크기가 동일할 수 있으므로, 제2 객체 제안 영역(100b)에는 객체(10)의 추가적인 이미지의 생성이 필요한 영역(200)이 존재할 수 있다. 컴퓨팅 장치는 이 영역(200)을 생성 필요 영역(generation required area)으로 추론(결정)할 수 있다. 또는 예를 들어, 컴퓨팅 장치는 사용자의 요청에 따라 객체(10)가 이동되는 거리 및 방향으로 제1 객체 제안 영역(100a)을 이동시킴으로써 제2 객체 제안 영역(100b)을 추론(결정)할 수도 있다.
정리하면, 컴퓨팅 장치는 제2 객체 제안 영역(100b)에 기초하여 생성 필요 영역(200)을 추론(결정)할 수 있다. 자세하게는, 컴퓨팅 장치는 변환된 객체(10)와 제2 객체 제안 영역(100b)을 비교함으로써, 변환된 객체(10)에 대한 이미지를 추가적으로 생성해야 하는 영역을 생성 필요 영역(200)으로 추론(결정)할 수 있다.
앞서 설명한 바와 같이 '생성 필요 영역'이란 이미지의 편집을 위해 이미지의 생성이 필요한 영역을 의미할 수 있다. 일 실시예에 따르면, 생성 필요 영역은 객체 부분과 배경 부분으로 구분될 수 있는데, 도 1의 제5 동작(1e)에서 객체(10) 이미지의 추가적인 생성이 필요한 부분(200)을 제1 생성 필요 영역이라고 하고, 객체(10)의 변환(이동)으로 인해 생기는 빈 공간들(배경 이미지의 추가적인 생성이 필요한 부분)을 제2 생성 필요 영역이라고 할 수 있다. 즉, 컴퓨팅 장치는 객체(10)의 변환으로 인해 배경 이미지를 생성해야 하는 영역을 제2 생성 필요 영역으로 추론(결정)할 수 있다.
제4 동작(1d) 및 제5 동작(1e)를 정리하면, 컴퓨팅 장치는 확장된 입력 이미지에서 객체(10)를 포함하는 영역을 제1 객체 제안 영역(100a)으로 추론(결정)하고, 제2 동작(1b)에서 수신한 사용자 입력에 따라 입력 이미지상에서 객체(10)를 이동(변환)시킬 수 있다. 이어서, 컴퓨팅 장치는 제1 객체 제안 영역(100a)에 기초하여, 이동된 객체(10)에 대응되는 제2 객체 제안 영역(100b)을 추론(결정)할 수 있다. 마지막으로, 컴퓨팅 장치는 제2 객체 제안 영역(100b)에 기초하여 제1 생성 필요 영역(200) 및 제2 생성 필요 영역(객체(10)의 이동으로 인해 생기는 빈 공간들)을 추론(결정)할 수 있다.
본 개시의 일 실시예에 따르면, 컴퓨팅 장치는 객체(10)를 고려하여 생성 필요 영역(200)을 추론(결정)할 수도 있다. 예를 들어, 컴퓨팅 장치는 객체(10)의 크기 및 객체(10)의 방향(e.g. 객체(10)의 정면이 향하는 방향)에 기초하여, 객체(10)의 이미지의 생성이 필요한 영역을 결정하고, 결정된 영역을 생성 필요 영역(200)으로 추론(결정)할 수도 있다. 또는 예를 들어, 컴퓨팅 장치는 입력 이미지에 대해 객체 인식을 수행함으로써 객체(10)를 식별(e.g. 객체의 종류를 식별)하고, 객체(10)의 식별 결과(e.g. 객체의 종류)에 기초하여 객체(10)의 이미지의 생성이 필요한 영역을 결정하고, 결정된 영역을 생성 필요 영역(200)으로 추론(결정)할 수도 있다.
제6 동작(1f)에서 컴퓨팅 장치는 제1 생성 필요 영역(200) 및 제2 생성 필요 영역(객체(10)의 이동으로 인해 생기는 빈 공간들)에 대한 이미지를 생성하여 이미지를 편집하고, 편집된 이미지를 출력할 수 있다. 일 실시예에 따르면 앞서 도 12를 참조하여 설명한 바와 같이, 컴퓨팅 장치는 제2 생성 모델(1220)을 이용하여 제1 생성 필요 영역(200)에 대한 이미지를 생성할 수 있고, 제3 생성 모델(1230)을 이용하여 제2 생성 필요 영역에 대한 이미지를 생성할 수 있다.
한편 본 개시의 일 실시예에 따르면, 제5 동작(1e)에서 컴퓨팅 장치는 제2 객체 제안 영역(100b) 전체를 생성 필요 영역으로 추론(결정)할 수도 있다. 따라서, 컴퓨팅 장치는 객체 이미지 생성을 위한 제2 생성 모델(1220)을 이용하여 제2 객체 제안 영역(100b) 전체에 대해서 새롭게 이미지를 생성할 수도 있다. 이 경우 객체(10)의 변환 후 위치에서 주변 배경을 반영하여 제2 객체 제안 영역(100b) 전체에 대한 이미지가 생성되므로, 주변 배경과 더 잘 어울리도록 이미지가 생성되는 효과를 기대할 수 있다.
본 개시의 일 실시예에 따르면, 제6 동작(1f)에서 컴퓨팅 장치는 생성 모델에 생성 필요 영역에 대한 인페인팅을 지시하는 프롬프트를 입력할 수 있다. 예들 들어, 컴퓨팅 장치는 제5 동작(1e)에서 추론(결정)된 제1 생성 필요 영역(200)에 대해서, 입력 이미지의 특징(e.g. 전체적인 분위기 및 전경과 배경의 내용 등)을 유지하면서 이미지를 생성하도록 지시하는 프롬프트를 생성하여 제2 생성 모델(1220)에 입력할 수 있다. 이를 위해, 컴퓨팅 장치는 사용자 입력(변환 요청)과 입력 이미지에 기초하여 인페인팅을 지시하는 프롬프트를 생성할 수 있다.
한편, 앞서 설명한 바와 같이 제3 동작(1c)에서 입력 이미지의 확장 시 생성된 이미지는, 제1 생성 필요 영역(200)에 대한 이미지 생성 시 가이드로 사용될 수 있다. 일 실시예에 따르면, 컴퓨팅 장치는 제3 동작(1c)에서 확장된 입력 이미지에 포함된 객체(10)의 이미지와 유사하게 제1 생성 필요 영역(200) 내 객체(10)의 이미지를 생성하되, 제1 생성 필요 영역(200) 내의 배경과 어울리도록 이미지를 생성할 수 있다. 이를 위해, 컴퓨팅 장치는 제3 동작(1c)에서 확장된 영역의 이미지의 특징을 유지하면서 제1 생성 필요 영역(200)에 대해서 이미지를 생성하도록 지시하는 프롬프트를 생성하여 제2 생성 모델(1220)에 입력할 수 있다.
지금까지는 객체(10)의 변환을 고려하여, 또는 객체(10)의 변환에 대한 역변환을 고려하여 입력 이미지를 확장한 후 객체 제안 영역을 추론(결정)하는 방식의 실시예들에 대해서 설명하였다. 이하에서는 도 8 및 도 9를 참조하여, 입력 이미지를 확장하지 않은 상태에서 객체 제안 영역을 추론(결정)하고, 객체(10)의 변환에 대한 역변환을 고려하여 객체 제안 영역을 확장하는 방식의 실시예들에 대해서 설명한다. 이러한 실시예들에 따를 경우, 변환된 객체(10)의 주변 배경을 반영하여 이미지(객체 제안 영역 내의 이미지)의 확장이 이루어지므로, 앞서 도 1을 참조하여 설명한 실시예에 비해 객체(10)가 주변 배경과 더 잘 어울리도록 이미지가 생성되는 효과를 기대할 수 있다.
도 8 및 도 9는 입력 이미지를 확장하지 않은 상태에서 객체 제안 영역을 추론(결정)하고, 객체의 변환에 대한 역변환을 고려하여 객체 제안 영역을 확장하는 방식의 실시예들을 설명하기 위한 도면이다. 도 8에는 이미지를 처리하는 순서에 따라 제1 동작(8a)에서 제8 동작(8h)에 각각 대응되는 이미지들을 도시하였다. 도 9에는 이미지를 처리하는 순서에 따라 제1 동작(9a)에서 제7 동작(9g)에 각각 대응되는 이미지들을 도시하였다.
도 8을 참고하면, 제1 동작(8a)에서 컴퓨팅 장치는 객체(10)를 포함하는 입력 이미지를 획득할 수 있다. 제2 동작(8b)에서 컴퓨팅 장치는 객체의 변환을 요청하는 사용자 입력을 수신할 수 있다. 예를 들어, 사용자는 입력 이미지가 디스플레이되는 컴퓨팅 장치의 화면에서 객체(10)를 터치하고, 터치를 유지한 상태로 손가락을 이동시킴으로써 객체(10)의 이동을 요청할 수 있다. 도 8에 개시된 실시예에서는 사용자가 요청하는 객체(10)의 변환이 객체의 '이동'인데, 이에 한정되지 않고 사용자는 객체(10)의 리사이즈(확대, 축소), 또는 회전을 요청할 수도 있다.
제3 동작(8c)에서 컴퓨팅 장치는 입력 이미지에서 객체(10)를 포함하는 영역을 객체 제안 영역(100a)으로 추론(결정)할 수 있다. 일 실시예에 따르면, 컴퓨팅 장치는 제3 동작(8c)에서 추론(결정)한 객체 제안 영역(100a)에 기초하여, 제4 동작(8d)에서 변환(이동)된 객체(10)에 대응되는 객체 제안 영역(100b)을 추론(결정)할 수 있다. 설명의 편의를 위해, 제3 동작(8c)에서 추론(결정)되는 객체 제안 영역(100a)을 제1 객체 제안 영역이라고 하고, 제4 동작(8d)에서 추론(결정)되는 객체 제안 영역(100b)을 제2 객체 제안 영역이라고 한다.
제3 동작(8c)에서 컴퓨팅 장치는 바운딩 박스 형태로 제1 객체 제안 영역(100a)을 추론(결정)할 수 있다. 일 실시예에 따르면, 컴퓨팅 장치는 일반적인 보행자 검출 기술에서 사용되는 방식을 통해 객체(10)를 포함하는 바운딩 박스를 제1 객체 제안 영역(100a)으로 추론(결정)할 수 있으며, 그 외 다양한 방식을 통해 제1 객체 제안 영역(100a)을 추론(결정)할 수도 있다. 또한 일 실시예에 따르면, 컴퓨팅 장치는 바운딩 박스가 아닌 다른 형태로 제1 객체 제안 영역(100a)을 추론(결정)할 수도 있는데, 이에 대해서는 앞서 도 7을 참조하여 설명한 바와 같다.
컴퓨팅 장치는 제3 동작(8c)에서 입력 이미지로부터 제1 객체 제안 영역(100a)을 추론(결정)했으면, 제4 동작(8d)에서 객체(10)를 변환하고 변환된 객체(10)에 대응되는 제2 객체 제안 영역(100b)을 추론(결정)할 수 있다.
제4 동작(8d)에서 컴퓨팅 장치가 수행하는 동작을 자세히 설명하면 다음과 같다. 컴퓨팅 장치는, 제2 동작(8b)에서 수신한 사용자 입력에 포함된 요청에 따라 객체(10)를 변환할 수 있다. 즉, 컴퓨팅 장치는 객체(10)를 입력 이미지상에서 좌측 위 방향으로 이동시킬 수 있다. 컴퓨팅 장치는 앞서 추출된 제1 객체 제안 영역(100a)에 기초하여, 이동 후 위치에서의 객체(10)에 대응되는 제2 객체 제안 영역(100b)을 추론(결정)할 수 있다. 예를 들어, 컴퓨팅 장치는 제1 객체 제안 영역(100a)의 크기 및 형태, 그리고 제1 객체 제안 영역(100a)과 객체(10) 간의 위치 관계 등을 반영하여, 이동된 객체(10)에 대응되는 제2 객체 제안 영역(100b)을 추론(결정)할 수 있다.
제5 동작(8e)에서 컴퓨팅 장치는 객체(10)의 변환에 대한 역변환을 고려하여 제2 객체 제안 영역(100b)을 확장할 수 있다. 역변환을 고려하여 제2 객체 제안 영역(100b)을 확장하는 방법은, 앞서 도 1의 제3 동작(1c), 그리고 도 2 내지 도 6을 참조하여 설명한 방법과 유사할 수 있다. 앞선 실시예들에서 입력 이미지의 테두리들 중에서 객체(10)와 맞닿은 적어도 하나의 테두리를 역변환에 따른 거리 및 방향으로 이동시켰다. 도 8의 제5 동작(8e)에서는 제2 객체 제안 영역(100b)의 테두리들 중에서 객체(10)와 맞닿은 적어도 하나의 테두리를 역변환에 따른 거리 및 방향으로 이동시키고, 테두리가 이동된 영역까지 제1 생성 모델을 이용하여 이미지를 생성(아웃페인팅)할 수 있다. 객체(10)의 변환에 따라서 테두리를 이동시키는 방법은 앞선 실시예들에서 설명한 바와 같을 수 있다. 역변환을 고려하여 확장된 제2 객체 제안 영역(100c)을 제6 동작(8f)에 도시하였다.
제7 동작(8g)에서 컴퓨팅 장치는 확장된 제2 객체 제안 영역(100c)에 기초하여 생성 필요 영역(200)을 추론(결정)할 수 있다. 컴퓨팅 장치가 생성 필요 영역(200)을 추론(결정)하는 방법에 대해서 자세히 설명하면 다음과 같다. 컴퓨팅 장치는 사용자 입력에 포함된 요청에 따라 객체(10)를 변환(이동)하고, 변환된 객체(10)에 확장된 제2 객체 제안 영역(100c)을 적용할 수 있다. 컴퓨팅 장치는 변환된 객체(10)와 확장된 제2 객체 제안 영역(100c)을 비교함으로써, 변환된 객체(10)에 대한 이미지를 추가적으로 생성해야 하는 영역을 생성 필요 영역(200)으로 추론(결정)할 수 있다. 제7 동작(8g)에서 확장된 제2 객체 제안 영역(100c)에 포함된 객체(10)는 확장되지 않은 입력 이미지로부터 추출된 것이므로, 제6 동작(8f)에서 확장된 제2 객체 제안 영역(100c)에 포함된 객체(10)보다 작을 수 있다. 따라서, 확장된 제2 객체 제안 영역(100c)에는 객체(10)의 추가적인 이미지의 생성이 필요한 영역(200)이 존재할 수 있다. 컴퓨팅 장치는 이 영역(200)을 생성 필요 영역으로 추론(결정)할 수 있다.
정리하면, 컴퓨팅 장치는 확장된 제2 객체 제안 영역(100c)에 기초하여 생성 필요 영역(200)을 추론(결정)할 수 있다. 자세하게는, 컴퓨팅 장치는 변환된 객체(10)와 확장된 제2 객체 제안 영역(100c)을 비교함으로써, 변환된 객체(10)에 대한 이미지를 추가적으로 생성해야 하는 영역을 생성 필요 영역(200)으로 추론(결정)할 수 있다.
일 실시예에 따르면, 생성 필요 영역은 객체 부분과 배경 부분으로 구분될 수 있는데, 도 8의 제7 동작(8g)에서 객체(10) 이미지의 추가적인 생성이 필요한 부분(200)을 제1 생성 필요 영역이라고 하고, 객체(10)의 변환(이동)으로 인해 생기는 빈 공간들(배경 이미지의 추가적인 생성이 필요한 부분)을 제2 생성 필요 영역이라고 할 수 있다. 즉, 컴퓨팅 장치는 객체(10)의 변환으로 인해 배경 이미지를 생성해야 하는 영역을 제2 생성 필요 영역으로 추론(결정)할 수 있다.
제8 동작(8h)에서 컴퓨팅 장치는 제1 생성 필요 영역(200) 및 제2 생성 필요 영역(객체(10)의 이동으로 인해 생기는 빈 공간들)에 대한 이미지를 생성하여 이미지를 편집하고, 편집된 이미지를 출력할 수 있다. 일 실시예에 따르면 앞서 도 12를 참조하여 설명한 바와 같이, 컴퓨팅 장치는 제2 생성 모델(1220)을 이용하여 제1 생성 필요 영역(200)에 대한 이미지를 생성할 수 있고, 제3 생성 모델(1230)을 이용하여 제2 생성 필요 영역에 대한 이미지를 생성할 수 있다.
이상 설명한 실시예에 따르면, 제5 동작(8e)에서 제2 객체 제안 영역(100b)이 확장됨에 따라, 제6 동작(8f)의 확장된 제2 객체 제안 영역(100c)에는 이미 확장된 객체(10) 이미지가 포함되어 있다. 하지만, 컴퓨팅 장치는 제7 동작(8g)에서 확장 전의 객체(10)(변환으로 인해 위치만 이동된 객체)와 확장된 제2 객체 제안 영역(100c)을 비교하여 생성 필요 영역(200)을 추론(결정)하고, 생성 필요 영역(200)에 대한 이미지를 제2 생성 모델(1220)을 이용하여 생성함으로써 객체(10)를 확장한다. 그 이유를 설명하면 다음과 같다.
제6 동작(8f)에서 확장된 제2 객체 제안 영역(100c) 내에 포함된 이미지는 제1 생성 모델(1210)을 이용하여 생성된 이미지이다. 앞서 설명한 바와 같이 제1 생성 모델(1210)은 생성 필요 영역(200)을 추론(결정)하기 위해 '임시로' 이미지를 확장할 때 사용되는 모델이다. 그에 반해, 제2 생성 모델(1220)은 출력하기 위한 이미지를 생성할 때 사용되는 모델로서, 제1 생성 모델(1210)에 비해 정밀한 이미지를 생성할 수 있다. 따라서, 컴퓨팅 장치는 제1 생성 모델(1210)을 이용하여 제2 객체 제안 영역(100b)을 확장한 후 확장된 제2 객체 제안 영역(100c)에 기초하여 생성 필요 영역(200)을 추론(결정)하고, 생성 필요 영역(200)에 대한 이미지는 다시 제2 생성 모델(1220)을 이용하여 생성함으로써 출력되는 이미지의 품질을 향상시킬 수 있다.
일 실시예에 따르면, 제7 동작(8g)에서 생성 필요 영역(200)을 추론(결정)하고, 생성 필요 영역(200)에 대한 이미지를 생성하는 과정을 생략하고, 제6 동작(8f)에서 확장된 제2 객체 제안 영역(100c) 내의 이미지를 그대로 사용하여 출력 이미지를 생성할 수도 있다. 이러한 실시예를 도 9에 도시하였다.
도 9를 도 8과 비교하면, 도 8의 제7 동작(8g)가 삭제된 것을 제외하면 나머지 동작들은 모두 동일하다. 따라서, 동일한 동작들에 대한 설명은 생략하고 도 9의 제6 동작(9f) 및 제7 동작(9g)에 대해서만 설명한다.
제6 동작(9f)에서 컴퓨팅 장치는 객체(10)의 변환(이동)으로 인해 생기는 빈 공간들(배경 이미지의 추가적인 생성이 필요한 부분)만을 생성 필요 영역(제2 생성 필요 영역)으로 추론(결정)할 수 있다. 제7 동작(9g)에서 컴퓨팅 장치는 확장된 제2 객체 제안 영역(100c)에 포함된 객체(10)의 이미지를 그대로 사용하고, 제3 생성 모델을 이용하여 제2 생성 필요 영역에 대한 이미지를 생성함으로써 편집된 이미지를 출력할 수 있다.
이하에서는 도 1에 도시된 실시예에 따른 방법(이하, '제1 방법')과 도 8에 도시된 실시예에 따른 방법(이하, '제2 방법')의 차이점에 대해서 설명한다.
제1 방법의 경우 객체(10)가 변환되기 전의 위치에서 이미지가 확장되므로 객체(10)의 변환 전 위치의 배경을 반영하여 이미지가 생성되고, 그에 따라 객체 제안 영역이 추론(결정)될 수 있다.
제2 방법의 경우 객체(10)의 변환된 후의 위치에서 객체 제안 영역이 추론(결정)되고, 객체(10)의 변환 후 위치의 배경을 반영하여 객체 제안 영역이 추론(결정)될 수 있다.
따라서, 제1 방법의 객체 제안 영역(도 1의 제4 동작(1d)의 제1 객체 제안 영역(100a))과, 제2 방법의 객체 제안 영역(도 8의 제6 동작(8f)의 확장된 제2 객체 제안 영역(100c))을 비교하면, 제2 방법의 객체 제안 영역(100c)이 객체(10)의 변환 후 위치의 주변과 더 잘 어울리도록 추론(결정)되고, 따라서 제2 방법에 의할 경우 더 자연스러운 출력 이미지를 얻는 효과를 기대할 수 있다.
도 10은 객체의 변환에 대한 역변환을 고려하여 입력 이미지를 확장하는 과정에서 생성된 객체 이미지를 그대로 사용하여 이미지를 편집하는 실시예를 설명하기 위한 도면이다. 도 10에는 이미지를 처리하는 순서에 따라 제1 동작(10a)에서 제6 동작(10f)에 각각 대응되는 이미지들을 도시하였다.
도 10을 도 1과 비교하면, 제5 동작(1e, 10e)만이 상이하고 나머지 동작들은 동일하다. 따라서, 동일한 동작들에 대한 설명은 생략하고 도 10의 제5 동작(10e)에 대해서만 설명한다.
제5 동작(10e)에서 컴퓨팅 장치는 제2 동작(10b)에서 수신한 사용자의 입력에 포함된 요청에 따라 객체(10)를 변환할 수 있다. 즉, 컴퓨팅 장치는 객체(10)를 입력 이미지상에서 좌측 위 방향으로 이동시킬 수 있다. 컴퓨팅 장치는 앞서 추론(결정)된 제1 객체 제안 영역(100a)에 기초하여, 이동 후 위치에서의 객체(10)에 대응되는 제2 객체 제안 영역(100b)을 추론(결정)할 수 있다. 예를 들어, 컴퓨팅 장치는 제1 객체 제안 영역(100a)의 크기 및 형태, 그리고 제1 객체 제안 영역(100a)과 객체(10) 간의 위치 관계 등을 반영하여, 이동된 객체(10)에 대응되는 제2 객체 제안 영역(100b)을 추론(결정)할 수 있다.
컴퓨팅 장치는 제2 객체 제안 영역(100b)에 들어갈 객체(10)의 이미지를 새롭게 생성하는 대신, 제1 객체 제안 영역(100a)에 포함된 객체(10)의 이미지를 제2 객체 제안 영역(100b)에 삽입할 수 있다. 이어서, 컴퓨팅 장치는 객체(10)의 변환(이동)으로 인해 생기는 빈 공간들(배경 이미지의 추가적인 생성이 필요한 부분)만을 생성 필요 영역(제2 생성 필요 영역)으로 추론(결정)할 수 있다.
제6 동작(10f)에서 컴퓨팅 장치는 제3 생성 모델을 이용하여 제2 생성 필요 영역에 대한 이미지를 생성함으로써 편집된 이미지를 출력할 수 있다.
이상 설명한 바와 같이, 도 10에 도시된 실시예에서 컴퓨팅 장치는 객체 제안 영역의 추론(결정)을 위한 입력 이미지의 확장 시 제1 생성 모델(1210)에 의해 생성된 객체(10)의 이미지를, 객체(10)의 변환 후 위치에서 그대로 사용함으로써 처리 속도를 증가시킬 수 있다. 일 실시예에 따르면, 컴퓨팅 장치는 제1 생성 모델(1210)에 의해 생성된 객체(10)의 이미지가, 객체(10)의 변환 후 위치에서의 주변 배경과 잘 어울릴 수 있도록 하기 위해 하모나이저(harmonizer) 등을 이용하여 객체(10) 이미지의 색상이나 밝기 등을 주변 배경에 따라 조정할 수 있다.
이하에서는 도 11을 참고하여, 지금까지 설명한 이미지 처리 동작들을 수행하기 위한 컴퓨팅 장치의 구성에 대해서 설명한다. 도 11은 본 개시의 일 실시예에 따른, 생성 모델을 이용한 이미지 편집을 수행하기 위한 컴퓨팅 장치의 구성을 설명하기 위한 도면이다.
도 11을 참고하면, 일 실시예에 따른 컴퓨팅 장치(1000)는 입출력 인터페이스(1100), 메모리(1200) 및 프로세서(1300)를 포함할 수 있다. 다만, 컴퓨팅 장치(1000)의 구성 요소는 전술한 예에 한정되는 것은 아니고, 컴퓨팅 장치(1000)는 전술한 구성 요소들보다 더 많은 구성 요소를 포함하거나, 또는 더 적은 구성 요소를 포함할 수 도 있다. 일 실시예에서, 입출력 인터페이스(1100), 메모리(1200) 및 프로세서(1300) 중 일부 또는 전부는 하나의 칩(chip) 형태로 구현될 수도 있으며, 프로세서(1300)는 하나 이상의 프로세서를 포함할 수도 있다.
입출력 인터페이스(1100)는 사용자로부터 제어 명령이나 정보 등을 입력받기 위한 입력 인터페이스(e.g. 터치 스크린, 하드 버튼, 마이크 등)와, 사용자의 제어에 따른 동작의 실행 결과나 컴퓨팅 장치(1000)의 상태를 표시하기 위한 출력 인터페이스(e.g. 디스플레이 패널, 스피커 등)를 포함할 수 있다.
메모리(1200)는 다양한 프로그램이나 데이터를 저장하기 위한 구성으로서, 롬(ROM), 램(RAM), 하드디스크, CD-ROM 및 DVD 등과 같은 저장 매체 또는 저장 매체들의 조합으로 구성될 수 있다. 메모리(1200)는 별도로 존재하지 않고 프로세서(1300)에 포함되도록 구성될 수도 있다. 메모리(1200)는 휘발성 메모리, 비휘발성 메모리 또는 휘발성 메모리와 비휘발성 메모리의 조합으로 구성될 수도 있다. 메모리(1200)에는 앞서 도 1 내지 도 10을 참조하여 설명된 실시예들에 따른 동작들을 수행하기 위한 프로그램 또는 명령어들이 저장될 수 있다. 메모리(1200)는 프로세서(1300)의 요청에 따라 저장된 데이터를 프로세서(1300)에 제공할 수도 있다.
프로세서(1300)는 앞서 도 1 내지 도 10을 참조하여 설명된 실시예들에 따라 컴퓨팅 장치(1000)가 동작하도록 일련의 과정을 제어하는 구성으로서, 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다. 예를 들어, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.
프로세서(1300)는 메모리(1200)에 데이터를 기록하거나, 메모리(1200)에 저장된 데이터를 읽을 수 있으며, 특히 메모리(1200)에 저장된 프로그램 또는 명령어들을 실행함으로써 미리 정의된 동작 규칙 또는 인공지능 모델에 따라 데이터를 처리할 수 있다. 따라서, 프로세서(1300)는 앞서 설명된 실시예들에서 설명되는 동작들을 수행할 수 있으며, 앞서 설명된 실시예들에서 컴퓨팅 장치(1000)이 수행한다고 설명된 동작들은 특별한 설명이 없는 한 프로세서(1300)가 수행하는 것으로 볼 수 있다.
도 13 내지 도 19는 본 개시의 실시예들에 따른, 생성 모델을 이용하여 이미지를 편집하는 방법을 설명하기 위한 순서도들이다. 이하에서는 도 13 내지 도 19를 참고하여, 본 개시의 실시예들에 따른 생성 모델을 이용하여 이미지를 편집하는 방법에 대해서 설명한다. 이하에서 설명되는 동작들은 지금까지 설명한 컴퓨팅 장치(1000)에 의해 수행되므로, 앞서 설명한 실시예들에서 포함된 내용들은 이하에서 생략되더라도 동일하게 적용될 수 있을 것이다.
도 13을 참고하면, 1301 동작에서 컴퓨팅 장치는 입력 이미지에 포함된 적어도 하나의 객체의 변환을 요청하는 사용자 입력을 수신할 수 있다.
1302 동작에서 컴퓨팅 장치는 사용자의 요청에 따라 적어도 하나의 객체를 변환하고, 변환에 대한 역변환을 고려하여 이미지의 생성이 필요한 영역인 생성 필요 영역을 추론(결정)할 수 있다. 1302 동작은는 도 14의 1403 동작과와 동일하므로 이하에서 1403 동작에 대해 설명되는 내용은 1302 동작에도 동일하게 적용될 수 있다.
1303 동작에서 컴퓨팅 장치는 하나 이상의 생성 모델을 이용하여 생성 필요 영역에 대한 이미지를 생성할 수 있다.
도 14를 참고하면, 1401 동작에서 컴퓨팅 장치는 입력 이미지에 포함된 적어도 하나의 객체의 변환을 요청하는 사용자 입력을 수신할 수 있다.
1402 동작에서 컴퓨팅 장치는 입력 이미지의 테두리들 중에서 적어도 하나의 테두리가 적어도 하나의 객체(변환 요청의 대상이 되는 객체)와 맞닿아 있는지 확인할 수 있다. 판단 결과, 적어도 하나의 테두리가 적어도 하나의 객체와 맞닿아 있지 않다면, 1405 동작으로로 진행하여 컴퓨팅 장치는 사용자 입력에 포함된 요청에 따라 적어도 하나의 객체를 변환할 수 있다. 반대로, 판단 결과 적어도 하나의 테두리가 적어도 하나의 객체와 맞닿아 있다면 1403 동작으로로 진행한다.
1403 동작에서 컴퓨팅 장치는 사용자의 요청에 따라 적어도 하나의 객체를 변환하고, 변환에 대한 역변환을 고려하여 이미지의 생성이 필요한 영역인 생성 필요 영역을 추론(결정)할 수 있다. 1403 동작에 포함되는 세부 동작들을 도 15 및 도 19에 각각 도시하였다. 도 15의 동작들은 앞서 도 1 내지 도 6을 참조하여 설명한 제1 방법에 대응될 수 있고, 도 19의 동작들은 앞서 도 8 및 도 9를 참조하여 설명한 제2 방법에 대응될 수 있다.
도 15를 참고하면, 1501 동작에서 컴퓨팅 장치는 객체의 변환에 대한 역변환을 고려하여 입력 이미지를 확장할 수 있다. 1501 동작에 포함되는 세부 동작들에 대해서 도 16 내지 도 18을 참조하여 설명한다.
도 16을 참고하면, 1601 동작에서 컴퓨팅 장치는 입력 이미지의 테두리들 중에서 적어도 하나의 객체와 맞닿은 적어도 하나의 테두리를 선택할 수 있다. 1602 동작에서 컴퓨팅 장치는 역변환에 따른 거리 및 방향으로 선택된 적어도 하나의 테두리를 이동시킬 수 있다. 1603 동작에서 컴퓨팅 장치는 하나 이상의 생성 모델을 이용하여 테두리가 이동된 영역까지 이미지를 생성할 수 있다.
도 17을 참고하면, 1701 동작에서 컴퓨팅 장치는 입력 이미지의 테두리들 중에서 선택된 적어도 하나의 객체와 맞닿은 적어도 하나의 테두리 또는 적어도 하나의 객체를 절단하는 적어도 하나의 테두리를 선택할 수 있다. 1702 동작에서 컴퓨팅 장치는 선택된 적어도 하나의 테두리를 적어도 하나의 객체의 크기에 따라 결정되는 거리만큼 이동시킬 수 있다. 예를 들어, 컴퓨팅 장치는 선택된 적어도 하나의 테두리를 적어도 하나의 객체의 길이에 미리 설정된 비율을 곱한 거리만큼 이동시킬 수 있다. 또는 예를 들어, 컴퓨팅 장치는 적어도 하나의 객체가 입력 이미지 내에서 변환 가능한 범위에 기초하여 이동 거리를 결정하고, 선택된 적어도 하나의 테두리를 결정된 이동 거리만큼 이동시킬 수도 있다.
1703 동작에서 컴퓨팅 장치는 하나 이상의 생성 모델을 이용하여 적어도 하나의 테두리가 이동된 영역까지 이미지를 생성할 수 있다.
도 18을 참고하면, 1801 동작에서 컴퓨팅 장치는 입력 이미지의 테두리들 중에서 선택된 적어도 하나의 객체와 맞닿은 적어도 하나의 테두리 또는 적어도 하나의 객체를 절단하는 적어도 하나의 테두리를 선택할 수 있다. 1802 동작에서 컴퓨팅 장치는 선택된 적어도 하나의 테두리를, 선택된 적어도 하나의 테두리에 수직인 축을 기준으로 측정된 입력 이미지의 길이에 따라 결정되는 거리만큼 이동시킬 수 있다. 예를 들어, 컴퓨팅 장치는 선택된 적어도 하나의 테두리를 입력 이미지의 길이에 미리 설정된 비율을 곱한 거리만큼 이동시킬 수 있다. 1803 동작에서 컴퓨팅 장치는 하나 이상의 생성 모델을 이용하여 적어도 하나의 테두리가 이동된 영역까지 이미지를 생성할 수 있다.
다시 도 15로 돌아와서, 1502 동작에서 컴퓨팅 장치는 확장된 입력 이미지에서 적어도 하나의 객체를 포함하는 영역을 제1 객체 제안 영역으로 추론(결정)할 수 있다. 1503 동작에서 컴퓨팅 장치는 1401 동작에서 수신한 사용자 입력에 포함된 요청에 따라 적어도 하나의 객체를 변환할 수 있다. 1504 동작에서 컴퓨팅 장치는 제1 객체 제안 영역에 기초하여, 변환된 적어도 하나의 객체에 대응되는 제2 객체 제안 영역을 추론(결정)할 수 있다. 1505 동작에서 컴퓨팅 장치는 제2 객체 제안 영역에 기초하여 생성 필요 영역을 추론(결정)할 수 있다.
도 19를 참고하면, 1901 동작에서 컴퓨팅 장치는 입력 이미지에서 적어도 하나의 객체를 포함하는 영역을 제1 객체 제안 영역으로 추론(결정)할 수 있다. 1902 동작에서 컴퓨팅 장치는 1401 동작에서 수신한 사용자 입력에 포함된 요청에 따라 적어도 하나의 객체를 변환할 수 있다. 1903 동작에서 컴퓨팅 장치는 제1 객체 제안 영역에 기초하여, 변환된 적어도 하나의 객체에 대응되는 제2 객체 제안 영역을 추론(결정)할 수 있다. 1904 동작에서 컴퓨팅 장치는 객체의 변환에 대한 역변환을 고려하여 제2 객체 제안 영역을 확장할 수 있다. 1905 동작에서 컴퓨팅 장치는 확장된 제2 객체 제안 영역에 기초하여 생성 필요 영역을 추론(결정)할 수 있다.
다시 도 14로 돌아와서, 1404 동작에서 컴퓨팅 장치는 하나 이상의 생성 모델을 이용하여 생성 필요 영역에 대한 이미지를 생성할 수 있다.
이하에서는 도 20 내지 도 23을 참조하여 본 개시의 일 실시예에 따른 생성 모델을 이용하여 이미지를 편집하는 방법에 대해서 설명한다.
도 20을 참고하면, 2001 동작에서 컴퓨팅 장치는 입력 이미지에 포함된 적어도 하나의 객체의 이동을 요청하는 사용자 입력을 수신할 수 있다. 앞서 설명한 바와 같이 사용자는 다양한 방식으로 입력 이미지에 포함된 객체의 이동을 요청할 수 있다.
2002 동작에서 컴퓨팅 장치는 요청된 객체의 이동에 기초하여 결정되는 방향으로 입력 이미지를 확장할 수 있다. 컴퓨팅 장치는 요청된 객체의 이동을 고려하여 입력 이미지를 확장할 방향을 결정할 수 있다. 예를 들어, 컴퓨팅 장치는 객체의 이동 방향의 반대 방향을 입력 이미지의 확장 방향으로 결정할 수 있다. 도 21에는 2002 동작에 포함되는 세부 동작들을 도시하였다.
도 21을 참고하면, 2101 동작에서 컴퓨팅 장치는 적어도 하나의 객체가 객체의 일부만 표시된 부분 객체(partial object)인지 여부를 판단할 수 있다. 본 개시의 일 실시예에 따르면, 컴퓨팅 장치는 입력 이미지에 대해 객체 인식을 수행한 후, 적어도 하나의 객체에 대한 인식 결과에 기초하여 객체가 부분 객체인지 여부를 판단할 수 있다. 또는 본 개시의 일 실시예에 따르면, 컴퓨팅 장치는 객체가 입력 이미지의 테두리와 맞닿아 있는지 여부 또는 객체가 입력 이미지의 테두리에 의해 절단되는지 여부에 기초하여 부분 객체인지 여부를 판단할 수도 있다. 2101 동작에 포함되는 세부 동작들을 도 22에 도시하였다.
도 22를 참고하면, 2201 동작에서 컴퓨팅 장치는 적어도 하나의 객체가 입력 이미지의 테두리들 중에서 적어도 하나의 테두리와 맞닿아 있는지 여부 또는 적어도 하나의 객체가 입력 이미지의 테두리들 중에서 적어도 하나의 테두리에 의해 절단되는지 여부를 확인할 수 있다. 이어서 2202 동작에서 컴퓨팅 장치는 적어도 하나의 객체가 적어도 하나의 테두리와 맞닿아 있거나 적어도 하나의 객체가 적어도 하나의 테두리에 의해 절단되었다면, 적어도 하나의 객체를 부분 객체로 판단할 수 있다.
다시 도 21로 돌아가서, 2102 동작에서 컴퓨팅 장치는 적어도 하나의 객체가 부분 객체인 경우, 요청된 객체의 이동 방향의 반대 방향으로 입력 이미지를 확장하도록 이미지를 생성할 수 있다. 본 개시의 일 실시예에 따르면, 컴퓨팅 장치는 입력 이미지의 테두리들 중에서 적어도 하나의 객체와 맞닿은 적어도 하나의 테두리 또는 적어도 하나의 객체를 절단하는 적어도 하나의 테두리를 선택하고, 선택된 적어도 하나의 테두리를 요청된 객체의 이동 방향의 반대 방향으로 이동시킨 후, 하나 이상의 생성 모델을 이용하여 적어도 하나의 테두리가 이동된 영역까지 이미지를 생성할 수 있다.
다시 도 20으로 돌아가서, 2003 동작에서 컴퓨팅 장치는 확장된 입력 이미지에 기초하여 적어도 하나의 객체에 대한 이미지의 생성이 필요한 영역인 생성 필요 영역을 추론(결정)할 수 있다. 본 개시의 일 실시예에 따르면, 컴퓨팅 장치는 적어도 하나의 객체의 크기 및 적어도 하나의 객체의 방향에 기초하여, 적어도 하나의 객체의 이미지의 생성이 필요한 영역을 생성 필요 영역으로 추론(결정)할 수 있다. 또는 본 개시의 일 실시예에 따르면, 컴퓨팅 장치는 입력 이미지에 포함된 적어도 하나의 객체를 식별(e.g. 객체의 종류 파악)한 후, 식별 결과(e.g. 객체의 종류)에 기초하여 적어도 하나의 객체의 이미지의 생성이 필요한 영역을 생성 필요 영역으로 추론(결정)할 수도 있다. 또는 본 개시의 일 실시예에 따르면, 컴퓨팅 장치는 확장된 입력 이미지에서 객체를 포함하는 영역을 객체 제안 영역으로 추론(결정)한 후, 객체 제안 영역에 기초하여 생성 필요 영역을 추론(결정)할 수도 있다. 2003 동작에 포함되는 세부 동작들을 도 23에 도시하였다.
도 23을 참고하면, 2301 동작에서 컴퓨팅 장치는 확장된 입력 이미지에서 적어도 하나의 객체를 포함하는 영역을 제1 객체 제안 영역으로 추론(결정)할 수 있다.
2302 동작에서 컴퓨팅 장치는 요청에 따라 적어도 하나의 객체를 이동시킬 수 있다.
2303 동작에서 컴퓨팅 장치는 제1 객체 제안 영역에 기초하여, 이동된 적어도 하나의 객체에 대응되는 제2 객체 제안 영역을 추론(결정)할 수 있다.
2304 동작에서 컴퓨팅 장치는 제2 객체 제안 영역에 기초하여 생성 필요 영역을 추론(결정)할 수 있다. 본 개시의 일 실시예에 따르면, 컴퓨팅 장치는 이동된 적어도 하나의 객체와 제2 객체 제안 영역을 비교함으로써, 이동된 적어도 하나의 객체에 대한 이미지를 추가적으로 생성해야 하는 영역을 제1 생성 필요 영역으로 추론(결정)하고, 객체의 이동으로 인해 배경 이미지를 생성해야 하는 영역을 제2 생성 필요 영역으로 추론(결정)할 수 있다.
컴퓨팅 장치가 제1 객체 제안 영역, 제2 객체 제안 영역 및 생성 필요 영역을 추론(결정)하는 구체적인 방법은, 앞서 도 1을 참조하여 설명한 바와 같다.
다시 도 20으로 돌아와서, 2004 동작에서 컴퓨팅 장치는 적어도 하나의 생성 모델을 이용하여 생성 필요 영역에 대한 이미지를 생성할 수 있다. 본 개시의 일 실시예에 따르면, 컴퓨팅 장치는 생성 필요 영역의 위치에 대한 정보, 적어도 하나의 객체의 종류에 대한 정보 및 생성 필요 영역을 포함하는 배경에 대한 정보 중 적어도 하나 이상에 기초하여 프롬프트를 생성하고, 생성된 프롬프트를 적어도 하나의 생성 모델에 입력함으로써 생성 필요 영역에 대한 이미지를 생성할 수 있다.
이상 설명한 실시예들에 따라, 사용자로부터 이미지에 포함된 객체에 대한 변환 요청이 있는 경우, 변환에 대한 역변환을 고려하여 이미지의 생성이 필요한 영역(생성 필요 영역)을 추론(결정)하고, 추론(결정)된 생성 필요 영역에 대해서 생성 모델을 이용하여 이미지를 생성함으로써 변환된 객체가 주변 배경과 잘 어울리도록 이미지를 편집할 수 있다. 또한, 이미지의 생성이 필요한 최소한의 영역을 생성 필요 영역으로 추론(결정)함으로써 이미지 처리 속도 및 효율을 향상시킬 수 있다.
일 실시예에 따른, 생성 모델을 이용하여 이미지를 편집하는 방법은, 입력 이미지에 포함된 적어도 하나의 객체의 이동(movement)을 요청하는 사용자 입력을 수신하는 단계, 상기 요청된 객체의 이동에 기초하여 결정되는 방향으로 상기 입력 이미지를 확장하는 단계, 상기 확장된 입력 이미지에 기초하여 상기 적어도 하나의 객체에 대한 이미지의 생성이 필요한 영역인 생성 필요 영역(generation required area)을 결정하는 단계 및 적어도 하나의 생성 모델(generative model)을 이용하여 상기 생성 필요 영역에 대한 이미지를 생성하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 입력 이미지를 확장하는 단계는, 상기 적어도 하나의 객체가 객체의 일부만 표시된 부분 객체(partial object)인지 여부를 판단하는 단계 및 상기 적어도 하나의 객체가 부분 객체인 경우, 상기 요청된 객체의 이동 방향의 반대 방향으로 상기 입력 이미지를 확장하도록 이미지를 생성하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 부분 객체인지 여부를 판단하는 단계는, 상기 적어도 하나의 객체가 상기 입력 이미지의 테두리(border)들 중에서 적어도 하나의 테두리와 맞닿아 있는지 여부를 확인하는 단계 및 상기 적어도 하나의 객체가 상기 적어도 하나의 테두리와 맞닿아 있다면, 상기 적어도 하나의 객체를 부분 객체로 판단하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 입력 이미지를 확장하도록 이미지를 생성하는 단계는, 상기 입력 이미지의 테두리들 중에서 상기 적어도 하나의 객체와 맞닿은 적어도 하나의 테두리를 선택하는 단계, 상기 요청된 객체의 이동 방향의 반대 방향으로, 상기 선택된 적어도 하나의 테두리를 이동시키는 단계 및 상기 하나 이상의 생성 모델을 이용하여 상기 적어도 하나의 테두리가 이동된 영역까지 이미지를 생성하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 부분 객체인지 여부를 판단하는 단계는, 상기 입력 이미지에 대해 객체 인식을 수행하는 단계 및 상기 적어도 하나의 객체에 대한 인식 결과에 기초하여 상기 객체가 부분 객체인지 여부를 판단하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 생성 필요 영역을 추론하는 단계는, 상기 적어도 하나의 객체의 크기 및 상기 적어도 하나의 객체의 방향에 기초하여, 상기 적어도 하나의 객체의 이미지의 생성이 필요한 영역을 상기 생성 필요 영역으로 추론할 수 있다.
일 실시예에 따르면, 상기 생성 필요 영역을 추론하는 단계는, 상기 적어도 하나의 객체를 식별하는 단계 및 상기 식별 결과에 기초하여 상기 적어도 하나의 객체의 이미지의 생성이 필요한 영역을 상기 생성 필요 영역으로 추론하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 생성 필요 영역을 추론하는 단계는, 상기 확장된 입력 이미지에서 상기 적어도 하나의 객체를 포함하는 영역을 제1 객체 제안 영역(object proposal area)으로 추론하는 단계, 상기 요청에 따라 상기 적어도 하나의 객체를 이동시키는 단계, 상기 제1 객체 제안 영역에 기초하여, 상기 이동된 적어도 하나의 객체에 대응되는 제2 객체 제안 영역을 추론하는 단계 및 상기 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 추론하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 추론하는 단계는, 상기 이동된 적어도 하나의 객체와 상기 제2 객체 제안 영역을 비교함으로써, 상기 이동된 적어도 하나의 객체에 대한 이미지를 추가적으로 생성해야 하는 영역을 제1 생성 필요 영역으로 추론하는 단계 및 상기 객체의 이동으로 인해 배경 이미지를 생성해야 하는 영역을 제2 생성 필요 영역으로 추론하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 입력 이미지는 제1 생성 모델을 이용하여 확장되고, 상기 제1 생성 필요 영역에 대한 이미지는 제2 생성 모델을 이용하여 생성되고, 상기 제2 생성 필요 영역에 대한 이미지는 제3 생성 모델을 이용하여 생성되며, 상기 제2 생성 모델은 상기 제1 생성 모델 또는 상기 제3 생성 모델에 비해 성능이 높을 수 있다.
일 실시예에 따르면, 상기 생성 필요 영역에 대한 이미지를 생성하는 단계는, 상기 생성 필요 영역의 위치에 대한 정보, 상기 적어도 하나의 객체의 종류에 대한 정보 및 상기 생성 필요 영역을 포함하는 배경에 대한 정보 중 적어도 하나 이상에 기초하여 프롬프트를 생성하는 단계 및 상기 생성된 프롬프트를 상기 적어도 하나의 생성 모델에 입력하는 단계를 포함할 수 있다.
일 실시예에 따른 컴퓨팅 장치는, 이미지의 처리를 요청하는 사용자 입력을 수신하고, 상기 사용자 입력에 따라 처리된 이미지를 출력하기 위한 입출력 인터페이스, 이미지를 처리하기 위한 명령들이 저장되는 메모리 및 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는 상기 명령들을 실행함으로써, 입력 이미지에 포함된 적어도 하나의 객체의 이동(movement)을 요청하는 사용자 입력을 수신하면, 상기 요청된 객체의 이동에 기초하여 결정되는 방향으로 상기 입력 이미지를 확장하고, 상기 확장된 입력 이미지에 기초하여 상기 적어도 하나의 객체에 대한 이미지의 생성이 필요한 영역인 생성 필요 영역(generation required area)을 추론한 후, 적어도 하나 이상의 생성 모델(generative model)을 이용하여 상기 생성 필요 영역에 대한 이미지를 생성할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 입력 이미지를 확장함에 있어서, 상기 적어도 하나의 객체가 객체의 일부만 표시된 부분 객체(partial object)인지 여부를 판단한 후, 상기 적어도 하나의 객체가 부분 객체인 경우, 상기 요청된 객체의 이동 방향의 반대 방향으로 상기 입력 이미지를 확장하도록 이미지를 생성할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 부분 객체인지 여부를 판단함에 있어서, 상기 적어도 하나의 객체가 상기 입력 이미지의 테두리(border)들 중에서 적어도 하나의 테두리와 맞닿아 있는지 여부를 확인한 후, 상기 적어도 하나의 객체가 상기 적어도 하나의 테두리와 맞닿아 있다면, 상기 적어도 하나의 객체를 부분 객체로 판단할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 입력 이미지를 확장하도록 이미지를 생성함에 있어서, 상기 입력 이미지의 테두리들 중에서 상기 적어도 하나의 객체와 맞닿은 적어도 하나의 테두리를 선택하고, 상기 요청된 객체의 이동 방향의 반대 방향으로, 상기 선택된 적어도 하나의 테두리를 이동시킨 후, 상기 하나 이상의 생성 모델을 이용하여 상기 적어도 하나의 테두리가 이동된 영역까지 이미지를 생성할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 부분 객체인지 여부를 판단함에 있어서, 상기 입력 이미지에 대해 객체 인식을 수행한 후, 상기 적어도 하나의 객체에 대한 인식 결과에 기초하여 상기 객체가 부분 객체인지 여부를 판단할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 생성 필요 영역을 추론함에 있어서, 상기 적어도 하나의 객체의 크기 및 상기 적어도 하나의 객체의 방향에 기초하여, 상기 적어도 하나의 객체의 이미지의 생성이 필요한 영역을 상기 생성 필요 영역으로 추론할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 생성 필요 영역을 추론함에 있어서, 상기 적어도 하나의 객체를 식별한 후, 상기 식별 결과에 기초하여 상기 적어도 하나의 객체의 이미지의 생성이 필요한 영역을 상기 생성 필요 영역으로 추론할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 생성 필요 영역을 추론함에 있어서, 상기 확장된 입력 이미지에서 상기 적어도 하나의 객체를 포함하는 영역을 제1 객체 제안 영역(object proposal area)으로 추론하고, 상기 요청에 따라 상기 적어도 하나의 객체를 이동시키고, 상기 제1 객체 제안 영역에 기초하여, 상기 이동된 적어도 하나의 객체에 대응되는 제2 객체 제안 영역을 추론한 후, 상기 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 추론할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 추론함에 있어서, 상기 이동된 적어도 하나의 객체와 상기 제2 객체 제안 영역을 비교함으로써, 상기 이동된 적어도 하나의 객체에 대한 이미지를 추가적으로 생성해야 하는 영역을 제1 생성 필요 영역으로 추론한 후, 상기 객체의 이동으로 인해 배경 이미지를 생성해야 하는 영역을 제2 생성 필요 영역으로 추론할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는, 제1 생성 모델을 이용하여 상기 입력 이미지를 확장하고, 제2 생성 모델을 이용하여 상기 제1 생성 필요 영역에 대한 이미지를 생성하고, 제3 생성 모델을 이용하여 상기 제2 생성 필요 영역에 대한 이미지를 생성하며, 상기 제2 생성 모델은 상기 제1 생성 모델 또는 상기 제3 생성 모델에 비해 성능이 높을 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 생성 필요 영역에 대한 이미지를 생성함에 있어서, 상기 생성 필요 영역의 위치에 대한 정보, 상기 적어도 하나의 객체의 종류에 대한 정보 및 상기 생성 필요 영역을 포함하는 배경에 대한 정보 중 적어도 하나 이상에 기초하여 프롬프트를 생성한 후, 상기 생성된 프롬프트를 상기 적어도 하나의 생성 모델에 입력할 수 있다.
일 실시예에 따른, 생성 모델을 이용하여 이미지를 편집하는 방법은, 입력 이미지에 포함된 적어도 하나의 객체의 변환을 요청하는 사용자 입력을 수신하는 단계, 상기 입력 이미지의 테두리(border)들 중에서 적어도 하나의 테두리가 상기 적어도 하나의 객체와 맞닿아 있는지 여부를 확인하는 단계, 상기 적어도 하나의 테두리가 상기 적어도 하나의 객체와 맞닿아 있다면, 상기 요청에 따라 상기 적어도 하나의 객체를 변환하고, 상기 변환에 대한 역변환을 고려하여 이미지의 생성이 필요한 영역인 생성 필요 영역(generation required area)을 추론하는 단계 및 하나 이상의 생성 모델(generative model)을 이용하여 상기 생성 필요 영역에 대한 이미지를 생성하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 생성 필요 영역을 추론하는 단계는, 상기 역변환을 고려하여 상기 입력 이미지를 확장하는 단계, 상기 확장된 입력 이미지에서 상기 적어도 하나의 객체를 포함하는 영역을 제1 객체 제안 영역(object proposal area)으로 추론하는 단계, 상기 요청에 따라 상기 적어도 하나의 객체를 변환하는 단계, 상기 제1 객체 제안 영역에 기초하여, 상기 변환된 적어도 하나의 객체에 대응되는 제2 객체 제안 영역을 추론하는 단계 및 상기 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 추론하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 입력 이미지를 확장하는 단계는, 상기 입력 이미지의 테두리(border)들 중에서 상기 적어도 하나의 객체와 맞닿은 적어도 하나의 테두리를 선택하는 단계, 상기 역변환에 따른 거리 및 방향으로, 상기 선택된 적어도 하나의 테두리를 이동시키는 단계 및 상기 하나 이상의 생성 모델을 이용하여 상기 적어도 하나의 테두리가 이동된 영역까지 이미지를 생성하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 입력 이미지를 확장하는 단계는, 상기 입력 이미지의 테두리들 중에서 상기 선택된 적어도 하나의 객체와 맞닿은 적어도 하나의 테두리를 선택하는 단계, 상기 선택된 적어도 하나의 테두리를 상기 적어도 하나의 객체의 크기에 따라 결정되는 거리만큼 이동시키는 단계 및 상기 하나 이상의 생성 모델을 이용하여 상기 적어도 하나의 테두리가 이동된 영역까지 이미지를 생성하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 객체의 크기에 따라 결정되는 거리만큼 이동시키는 단계는, 상기 적어도 하나의 객체의 길이에 미리 설정된 비율을 곱한 거리만큼 상기 선택된 적어도 하나의 테두리를 이동시킬 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 객체의 크기에 따라 결정되는 거리만큼 이동시키는 단계는, 상기 적어도 하나의 객체가 상기 입력 이미지 내에서 변환 가능한 범위에 기초하여 이동 거리를 결정하고, 상기 결정된 이동 길이만큼 상기 선택된 적어도 하나의 테두리를 이동시킬 수 있다.
일 실시예에 따르면, 상기 입력 이미지를 확장하는 단계는, 상기 입력 이미지의 테두리들 중에서 상기 선택된 적어도 하나의 객체와 맞닿은 적어도 하나의 테두리를 선택하는 단계, 상기 선택된 적어도 하나의 테두리를, 상기 선택된 적어도 하나의 테두리에 수직인 축을 기준으로 측정된 상기 입력 이미지의 길이에 따라 결정되는 거리만큼 이동시키는 단계 및 상기 하나 이상의 생성 모델을 이용하여 상기 적어도 하나의 테두리가 이동된 영역까지 이미지를 생성하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 입력 이미지의 길이에 따라 결정되는 거리만큼 이동시키는 단계는, 상기 입력 이미지의 길이에 미리 설정된 비율을 곱한 거리만큼 상기 선택된 적어도 하나의 테두리를 이동시킬 수 있다.
일 실시예에 따르면, 상기 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 추론하는 단계는, 상기 변환된 적어도 하나의 객체와 상기 제2 객체 제안 영역을 비교함으로써, 상기 변환된 적어도 하나의 객체에 대한 이미지를 추가적으로 생성해야 하는 영역을 제1 생성 필요 영역으로 추론하는 단계 및 상기 객체의 변환으로 인해 배경 이미지를 생성해야 하는 영역을 제2 생성 필요 영역으로 추론하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 입력 이미지는 제1 생성 모델을 이용하여 확장되고, 상기 제1 생성 필요 영역에 대한 이미지는 제2 생성 모델을 이용하여 생성되고, 상기 제2 생성 필요 영역에 대한 이미지는 제3 생성 모델을 이용하여 생성되며, 상기 제2 생성 모델은 상기 제1 생성 모델 또는 상기 제3 생성 모델에 비해 성능이 높을 수 있다.
일 실시예에 따르면, 상기 생성 필요 영역을 추론하는 단계는, 상기 입력 이미지에서 상기 적어도 하나의 객체를 포함하는 영역을 제1 객체 제안 영역으로 추론하는 단계, 상기 요청에 따라 상기 적어도 하나의 객체를 변환하는 단계, 상기 제1 객체 제안 영역에 기초하여, 상기 변환된 적어도 하나의 객체에 대응되는 제2 객체 제안 영역을 추론하는 단계, 상기 역변환을 고려하여 상기 제2 객체 제안 영역을 확장하는 단계 및 상기 확장된 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 추론하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 확장된 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 추론하는 단계는, 상기 변환된 적어도 하나의 객체와 상기 확장된 제2 객체 제안 영역을 비교함으로써, 상기 변환된 적어도 하나의 객체에 대한 이미지를 추가적으로 생성해야 하는 영역을 제1 생성 필요 영역으로 추론하는 단계 및 상기 객체의 변환으로 인해 배경 이미지를 생성해야 하는 영역을 제2 생성 필요 영역으로 추론하는 단계를 포함할 수 있다.
일 실시예에 따른 컴퓨팅 장치는, 이미지의 처리를 요청하는 사용자 입력을 수신하고, 상기 사용자 입력에 따라 처리된 이미지를 출력하기 위한 입출력 인터페이스, 이미지를 처리하기 위한 명령들이 저장되는 메모리 및 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는 상기 명령들을 실행함으로써, 입력 이미지에 포함된 적어도 하나의 객체의 변환을 요청하는 사용자 입력을 수신하면, 상기 입력 이미지의 테두리(border)들 중에서 적어도 하나의 테두리가 상기 적어도 하나의 객체와 맞닿아 있는지 여부를 확인하고, 상기 적어도 하나의 테두리가 상기 적어도 하나의 객체와 맞닿아 있다면, 상기 요청에 따라 상기 적어도 하나의 객체를 변환하고, 상기 변환에 대한 역변환을 고려하여 이미지의 생성이 필요한 영역인 생성 필요 영역(generation required area)을 추론하고, 하나 이상의 생성 모델(generative model)을 이용하여 상기 생성 필요 영역에 대한 이미지를 생성할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 생성 필요 영역을 추론함에 있어서, 상기 역변환을 고려하여 상기 입력 이미지를 확장하고, 상기 확장된 입력 이미지에서 상기 적어도 하나의 객체를 포함하는 영역을 제1 객체 제안 영역(object proposal area)으로 추론하고, 상기 요청에 따라 상기 적어도 하나의 객체를 변환하고, 상기 제1 객체 제안 영역에 기초하여, 상기 변환된 적어도 하나의 객체에 대응되는 제2 객체 제안 영역을 추론하고, 상기 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 추론할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 입력 이미지를 확장함에 있어서, 상기 입력 이미지의 테두리(border)들 중에서 상기 적어도 하나의 객체와 맞닿은 적어도 하나의 테두리를 선택하고, 상기 역변환에 따른 거리 및 방향으로, 상기 선택된 적어도 하나의 테두리를 이동시키고, 상기 하나 이상의 생성 모델을 이용하여 상기 적어도 하나의 테두리가 이동된 영역까지 이미지를 생성할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 입력 이미지를 확장함에 있어서, 상기 입력 이미지의 테두리들 중에서 상기 선택된 적어도 하나의 객체와 맞닿은 적어도 하나의 테두리를 선택하고, 상기 선택된 적어도 하나의 테두리를 상기 적어도 하나의 객체의 크기에 따라 결정되는 거리만큼 이동시키고, 상기 하나 이상의 생성 모델을 이용하여 상기 적어도 하나의 테두리가 이동된 영역까지 이미지를 생성할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는, 상기 선택된 적어도 하나의 테두리를 상기 적어도 하나의 객체의 크기에 따라 결정되는 거리만큼 이동시킴에 있어서, 상기 적어도 하나의 객체의 길이에 미리 설정된 비율을 곱한 거리만큼 상기 선택된 적어도 하나의 테두리를 이동시킬 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는, 상기 선택된 적어도 하나의 테두리를 상기 적어도 하나의 객체의 크기에 따라 결정되는 거리만큼 이동시킴에 있어서, 상기 적어도 하나의 객체가 상기 입력 이미지 내에서 변환 가능한 범위에 기초하여 이동 거리를 결정하고, 상기 결정된 이동 길이만큼 상기 선택된 적어도 하나의 테두리를 이동시킬 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 추론함에 있어서, 상기 변환된 적어도 하나의 객체와 상기 제2 객체 제안 영역을 비교함으로써, 상기 변환된 적어도 하나의 객체에 대한 이미지를 추가적으로 생성해야 하는 영역을 제1 생성 필요 영역으로 추론하고, 상기 객체의 변환으로 인해 배경 이미지를 생성해야 하는 영역을 제2 생성 필요 영역으로 추론할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는, 제1 생성 모델을 이용하여 상기 입력 이미지를 확장하고, 제2 생성 모델을 이용하여 상기 제1 생성 필요 영역에 대한 이미지를 생성하고, 제3 생성 모델을 이용하여 상기 제2 생성 필요 영역에 대한 이미지를 생성하며, 상기 제2 생성 모델은 상기 제1 생성 모델 또는 상기 제3 생성 모델에 비해 성능이 높을 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 생성 필요 영역을 추론함에 있어서, 상기 입력 이미지에서 상기 적어도 하나의 객체를 포함하는 영역을 제1 객체 제안 영역으로 추론하고, 상기 요청에 따라 상기 적어도 하나의 객체를 변환하고, 상기 제1 객체 제안 영역에 기초하여, 상기 변환된 적어도 하나의 객체에 대응되는 제2 객체 제안 영역을 추론하고, 상기 역변환을 고려하여 상기 제2 객체 제안 영역을 확장하고, 상기 확장된 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 추론할 수 있다.
본 개시의 다양한 실시예들은 하나 이상의 컴퓨터 프로그램들에 의해 구현 또는 지원될 수 있고, 컴퓨터 프로그램들은 컴퓨터 판독 가능한 프로그램 코드(code)로부터 형성되고, 컴퓨터로 판독 가능한 매체에 수록될 수 있다. 본 개시에서, "애플리케이션(application)" 및 "프로그램(program)"은 컴퓨터 판독 가능한 프로그램 코드에서의 구현에 적합한 하나 이상의 컴퓨터 프로그램, 소프트웨어 컴포넌트, 명령어 세트, 프로시저(procedure), 함수, 개체(object), 클래스, 인스턴스, 관련 데이터, 또는 그것의 일부를 나타낼 수 있다. "컴퓨터 판독 가능한 프로그램 코드"는, 소스 코드, 목적 코드, 및 실행 가능한 코드를 포함하는 다양한 유형의 컴퓨터 코드를 포함할 수 있다. "컴퓨터 판독 가능한 매체"는, ROM(read only memory), RAM(random access memory), 하드 디스크 드라이브(HDD), CD(compact disc), DVD(digital video disc), 또는 다양한 유형의 메모리와 같이, 컴퓨터에 의해 액세스(access)될 수 있는 다양한 유형의 매체를 포함할 수 있다.
또한, 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장 매체'는 실재(tangible)하는 장치이고, 일시적인 전기적 또는 다른 신호들을 전송하는 유선, 무선, 광학적, 또는 다른 통신 링크들을 배제할 수 있다. 한편, 이 '비일시적 저장 매체'는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예를 들어, '비일시적 저장 매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다. 컴퓨터 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 컴퓨터 판독 가능한 매체는, 데이터가 영구적으로 저장될 수 있는 매체와 데이터가 저장되고 나중에 덮어쓰기 될 수 있는 매체, 이를테면 재기입 가능한 광 디스크 또는 소거 가능한 메모리 디바이스를 포함한다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예를 들어, compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두 개의 사용자 장치들(예를 들어, 스마트폰) 간에 직접, 온라인으로 배포(예를 들어, 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예를 들어, 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 으로 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (15)

  1. 하나 이상의 생성 모델을 이용하여 이미지를 처리하는, 적어도 하나의 프로세서에 의해 실행되는 방법에 있어서,
    입력 이미지에 포함된 적어도 하나의 객체의 이동(movement)을 요청하는 사용자 입력을 수신하는 단계;
    상기 객체의 이동에 기초하여 결정되는 방향으로 상기 입력 이미지를 확장하는 단계;
    상기 확장된 입력 이미지에 기초하여 상기 적어도 하나의 객체에 대한 부분 이미지(partial image)의 생성이 필요한 영역인 생성 필요 영역(generation required area)을 결정하는 단계;
    적어도 하나의 생성 모델(generative model)을 이용하여 상기 생성 필요 영역에 대한 이미지를 생성하는 단계; 및
    상기 입력 이미지 및 상기 적어도 하나의 객체에 대한 부분 이미지에 기초하여 재구성된 이미지를 출력하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 입력 이미지를 확장하는 단계는,
    상기 적어도 하나의 객체가 객체의 일부만 표시된 부분 객체(partial object)인지 여부를 판단하는 단계; 및
    상기 적어도 하나의 객체가 부분 객체인 경우, 상기 객체의 이동 방향의 반대 방향으로 상기 입력 이미지를 확장하도록 이미지를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항 및 제2항 중 어느 한 항에 있어서,
    상기 부분 객체인지 여부를 판단하는 단계는,
    상기 적어도 하나의 객체가 상기 입력 이미지의 테두리(border)들 중에서 적어도 하나의 테두리에 의해 절단되었는지 여부를 확인하는 단계; 및
    상기 적어도 하나의 객체가 상기 적어도 하나의 테두리에 의해 절단되었다면, 상기 적어도 하나의 객체를 부분 객체로 판단하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 입력 이미지를 확장하도록 이미지를 생성하는 단계는,
    상기 입력 이미지의 테두리들 중에서 상기 적어도 하나의 객체를 절단하는 적어도 하나의 테두리 중 제1 테두리를 선택하는 단계;
    상기 요청된 객체의 이동 방향의 반대 방향으로, 상기 제1 테두리를 이동시키는 단계; 및
    상기 하나 이상의 생성 모델을 이용하여 상기 적어도 하나의 테두리가 이동된 영역까지 이미지를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 생성 필요 영역을 결정하는 단계는,
    상기 적어도 하나의 객체의 크기 및 상기 적어도 하나의 객체의 이동 방향에 기초하여, 상기 적어도 하나의 객체의 부분 이미지의 생성이 필요한 영역을 상기 생성 필요 영역으로 결정하는 것을 특징으로 하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 생성 필요 영역을 결정하는 단계는,
    상기 확장된 입력 이미지에서 상기 적어도 하나의 객체를 포함하는 영역을 제1 객체 제안 영역(object proposal area)으로 결정하는 단계;
    상기 사용자 입력에 따라 상기 적어도 하나의 객체를 이동시키는 단계;
    상기 제1 객체 제안 영역에 기초하여, 상기 이동된 적어도 하나의 객체에 대응되는 제2 객체 제안 영역을 결정하는 단계; 및
    상기 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 결정하는 단계는,
    상기 이동된 적어도 하나의 객체와 상기 제2 객체 제안 영역을 비교함으로써, 상기 이동된 적어도 하나의 객체에 대한 부분 이미지를 추가적으로 생성해야 하는 제1 영역을 제1 생성 필요 영역으로 결정하는 단계; 및
    상기 객체의 이동으로 인해 배경 이미지를 생성해야 하는 제2 영역을 제2 생성 필요 영역으로 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 입력 이미지는 제1 생성 모델을 이용하여 확장되고,
    상기 제1 생성 필요 영역 내의 상기 이동된 적어도 하나의 객체에 대한 부분 이미지는 제2 생성 모델을 이용하여 생성되고,
    상기 제2 생성 필요 영역 내의 배경 이미지는 제3 생성 모델을 이용하여 생성되며,
    상기 제2 생성 모델은 상기 제1 생성 모델 또는 상기 제3 생성 모델에 비해 성능이 높은 것을 특징으로 하는 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 생성 필요 영역에 대한 이미지를 생성하는 단계는,
    상기 생성 필요 영역의 위치에 대한 정보, 상기 적어도 하나의 객체의 종류에 대한 정보 및 상기 생성 필요 영역을 포함하는 배경에 대한 정보 중 적어도 하나 이상에 기초하여 프롬프트를 생성하는 단계; 및
    상기 생성된 프롬프트를 상기 적어도 하나의 생성 모델에 입력하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 입력 이미지의 처리를 요청하는 사용자 입력을 수신하고, 상기 사용자 입력에 따라 처리된 재구성된 이미지를 출력하기 위한 입출력 인터페이스(1100);
    상기 입력 이미지를 처리하기 위한 인스트럭션들이 저장되는 메모리(1200); 및
    상기 인스트럭션들을 실행하기 위한 적어도 하나의 프로세서(1300)를 포함하며,
    상기 인스트럭션들에 의해 상기 적어도 하나의 프로세서는,
    입력 이미지에 포함된 적어도 하나의 객체의 이동(movement)을 요청하는 사용자 입력을 수신하면,
    상기 객체의 이동에 기초하여 결정되는 방향으로 상기 입력 이미지를 확장하고,
    상기 확장된 입력 이미지에 기초하여 상기 적어도 하나의 객체에 대한 부분 이미지(partial image)의 생성이 필요한 영역인 생성 필요 영역(generation required area)을 결정하고,
    적어도 하나 이상의 생성 모델(generative model)을 이용하여 상기 생성 필요 영역에 대한 이미지를 생성한 후
    상기 입력 이미지 및 상기 적어도 하나의 객체에 대한 부분 이미지에 기초하여 재구성된 이미지를 출력하는, 컴퓨팅 장치.
  11. 제10항에 있어서,
    상기 입력 이미지를 확장함에 있어서, 상기 인스트럭션들에 의해 상기 적어도 하나의 프로세서(1300)는,
    상기 적어도 하나의 객체가 객체의 일부만 표시된 부분 객체(partial object)인지 여부를 판단한 후,
    상기 적어도 하나의 객체가 부분 객체인 경우, 상기 객체의 이동 방향의 반대 방향으로 상기 입력 이미지를 확장하도록 이미지를 생성하는 것을 특징으로 하는 컴퓨팅 장치.
  12. 제10항 및 제11항 중 어느 한 항에 있어서,
    상기 적어도 하나의 객체가 부분 객체인지 여부를 판단함에 있어서, 상기 인스트럭션들에 의해 상기 적어도 하나의 프로세서(1300)는,
    상기 적어도 하나의 객체가 상기 입력 이미지의 테두리(border)들 중에서 적어도 하나의 테두리에 의해 절단되었는지 여부를 확인한 후,
    상기 적어도 하나의 객체가 상기 적어도 하나의 테두리에 의해 절단되었다면, 상기 적어도 하나의 객체를 부분 객체로 판단하는 것을 특징으로 하는 컴퓨팅 장치.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서,
    상기 입력 이미지를 확장하도록 이미지를 생성함에 있어서, 상기 인스트럭션들에 의해 상기 적어도 하나의 프로세서(1300)는,
    상기 입력 이미지의 테두리들 중에서 상기 적어도 하나의 객체를 절단하는 적어도 하나의 테두리 중 제1 테두리를 선택하고,
    상기 요청된 객체의 이동 방향의 반대 방향으로, 상기 제1 테두리를 이동시킨 후,
    상기 하나 이상의 생성 모델을 이용하여 상기 적어도 하나의 테두리가 이동된 영역까지 이미지를 생성하는 것을 특징으로 하는 컴퓨팅 장치.
  14. 제10항 내지 제13항 중 어느 한 항에 있어서,
    상기 생성 필요 영역을 결정함에 있어서, 상기 인스트럭션들에 의해 상기 적어도 하나의 프로세서(1300)는,
    상기 확장된 입력 이미지에서 상기 적어도 하나의 객체를 포함하는 영역을 제1 객체 제안 영역(object proposal area)으로 결정하고,
    상기 요청에 따라 상기 적어도 하나의 객체를 이동시키고,
    상기 제1 객체 제안 영역에 기초하여, 상기 이동된 적어도 하나의 객체에 대응되는 제2 객체 제안 영역을 결정한 후,
    상기 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 결정하는 것을 특징으로 하는 컴퓨팅 장치.
  15. 제10항 내지 제14항 중 어느 한 항에 있어서,
    상기 제2 객체 제안 영역에 기초하여 상기 생성 필요 영역을 결정함에 있어서, 상기 인스트럭션들에 의해 상기 적어도 하나의 프로세서(1300)는,
    상기 이동된 적어도 하나의 객체와 상기 제2 객체 제안 영역을 비교함으로써, 상기 이동된 적어도 하나의 객체에 대한 부분 이미지를 추가적으로 생성해야 하는 제1 영역을 제1 생성 필요 영역으로 결정한 후,
    상기 객체의 이동으로 인해 배경 이미지를 생성해야 하는 제2 영역을 제2 생성 필요 영역으로 결정하는 것을 특징으로 하는 컴퓨팅 장치.
PCT/KR2024/011285 2023-08-01 2024-07-31 생성 모델을 이용한 이미지 처리 방법 및 이를 수행하기 위한 컴퓨팅 장치 Pending WO2025029057A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202480050152.4A CN121713215A (zh) 2023-08-01 2024-07-31 使用生成模型的图像处理方法和用于执行该方法的计算设备
EP24849624.2A EP4723041A4 (en) 2023-08-01 2024-07-31 IMAGE PROCESS USING A GENERAL MODEL AND COMPUTER DEVICE DESIGNED TO EXECUTE IT
US18/811,005 US20250045877A1 (en) 2023-08-01 2024-08-21 Image processing method using generative model and computing device for performing the same

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20230100706 2023-08-01
KR10-2023-0100706 2023-08-01
KR10-2023-0178039 2023-12-08
KR1020230178039A KR20250019552A (ko) 2023-08-01 2023-12-08 생성 모델을 이용한 이미지 편집 방법 및 이를 수행하기 위한 컴퓨팅 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/811,005 Continuation US20250045877A1 (en) 2023-08-01 2024-08-21 Image processing method using generative model and computing device for performing the same

Publications (1)

Publication Number Publication Date
WO2025029057A1 true WO2025029057A1 (ko) 2025-02-06

Family

ID=94395725

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2024/011285 Pending WO2025029057A1 (ko) 2023-08-01 2024-07-31 생성 모델을 이용한 이미지 처리 방법 및 이를 수행하기 위한 컴퓨팅 장치

Country Status (1)

Country Link
WO (1) WO2025029057A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200094608A (ko) * 2019-01-30 2020-08-07 삼성전자주식회사 이미지를 처리하기 위한 방법 및 그에 따른 장치
KR102218255B1 (ko) * 2020-09-25 2021-02-19 정안수 갱신 영역 학습을 통한 인공지능 기반의 영상 분석 시스템 및 방법과, 이를 위한 컴퓨터 프로그램
KR102230361B1 (ko) * 2019-09-18 2021-03-23 고려대학교 산학협력단 단일 이미지를 이용하는 배경이미지 복원장치 및 그 동작 방법
KR20210056944A (ko) * 2019-11-11 2021-05-20 주식회사 날비컴퍼니 이미지 변형 방법
KR20230053275A (ko) * 2021-10-14 2023-04-21 주식회사 인피닉 객체 영역 지정 및 객체 검출 방법과 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200094608A (ko) * 2019-01-30 2020-08-07 삼성전자주식회사 이미지를 처리하기 위한 방법 및 그에 따른 장치
KR102230361B1 (ko) * 2019-09-18 2021-03-23 고려대학교 산학협력단 단일 이미지를 이용하는 배경이미지 복원장치 및 그 동작 방법
KR20210056944A (ko) * 2019-11-11 2021-05-20 주식회사 날비컴퍼니 이미지 변형 방법
KR102218255B1 (ko) * 2020-09-25 2021-02-19 정안수 갱신 영역 학습을 통한 인공지능 기반의 영상 분석 시스템 및 방법과, 이를 위한 컴퓨터 프로그램
KR20230053275A (ko) * 2021-10-14 2023-04-21 주식회사 인피닉 객체 영역 지정 및 객체 검출 방법과 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램

Similar Documents

Publication Publication Date Title
WO2015041438A1 (en) Method for screen mirroring and source device thereof
WO2021172921A1 (ko) 의료 영상 장치 및 의료 영상 처리 방법
WO2017057960A1 (en) Electronic device and method for controlling the same
WO2022124865A1 (en) Method, device, and computer program for detecting boundary of object in image
WO2021221394A1 (ko) 이미지 증강을 위한 방법 및 전자 장치
WO2019080401A1 (zh) 脚本语句转换方法、装置及计算机可读存储介质
WO2025029057A1 (ko) 생성 모델을 이용한 이미지 처리 방법 및 이를 수행하기 위한 컴퓨팅 장치
WO2026015009A1 (en) Method, apparatus, and system for video enhancement, and storage medium
WO2019074185A1 (en) ELECTRONIC APPARATUS AND CONTROL METHOD THEREOF
WO2023128424A1 (ko) 애플리케이션 화면을 분석하는 전자 장치 및 그 동작 방법
WO2024058405A1 (ko) 전자 장치 및 전자 장치의 제어 방법
WO2023229431A1 (ko) 신경망 모델을 이용하여 영상을 보정하는 방법 및 영상 보정을 위한 신경망 모델을 실행하는 컴퓨팅 장치
WO2024186190A1 (ko) 이미지의 품질을 평가하기 위한 전자 장치 및 전자 장치의 동작 방법
WO2023224212A1 (ko) 사용자에 의한 3차원 객체 편집을 용이하게 하는 영상처리방법 및 영상처리장치
WO2020059914A1 (ko) 단말기, 이의 제어 방법 및 상기 방법을 구현하기 위한 프로그램을 기록한 기록 매체
WO2022005246A1 (en) Page navigation method and electronic device
WO2024158073A1 (ko) 학습 모델을 이용한 영상들 간의 유사도 판단
WO2019035536A1 (ko) 전자 장치 및 그의 제어 방법
WO2017107522A1 (zh) 一种终端的操作方法和终端
WO2021010558A1 (ko) 단말기, 이의 제어 방법 및 상기 방법을 구현하기 위한 프로그램을 기록한 기록 매체
WO2024076169A1 (ko) 공간정보를 이용한 객체 인식 모델의 학습 방법 및 이를 수행하기 위한 컴퓨팅 장치
WO2026049307A1 (ko) 전자 장치 및 전자 장치의 동작 방법
WO2024253431A1 (ko) 시선 추적 센서를 포함하는 헤드 마운티드 디스플레이 장치 및 헤드 마운티드 디스플레이 장치의 동작 방법
WO2025259079A1 (en) Method and electronic device for automatic generation of high quality data for image editing applications
WO2025084610A1 (ko) 컨볼루션 연산을 수행하는 전자 장치 및 전자 장치의 동작 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 24849624

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2024849624

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2024849624

Country of ref document: EP

Effective date: 20251229

ENP Entry into the national phase

Ref document number: 2024849624

Country of ref document: EP

Effective date: 20251229

ENP Entry into the national phase

Ref document number: 2024849624

Country of ref document: EP

Effective date: 20251229

ENP Entry into the national phase

Ref document number: 2024849624

Country of ref document: EP

Effective date: 20251229

ENP Entry into the national phase

Ref document number: 2024849624

Country of ref document: EP

Effective date: 20251229

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 2024849624

Country of ref document: EP