WO2021045599A1 - 비디오 영상에 보케 효과를 적용하는 방법 및 기록매체 - Google Patents

비디오 영상에 보케 효과를 적용하는 방법 및 기록매체 Download PDF

Info

Publication number
WO2021045599A1
WO2021045599A1 PCT/KR2020/012058 KR2020012058W WO2021045599A1 WO 2021045599 A1 WO2021045599 A1 WO 2021045599A1 KR 2020012058 W KR2020012058 W KR 2020012058W WO 2021045599 A1 WO2021045599 A1 WO 2021045599A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
effect
bokeh
bokeh effect
applying
Prior art date
Application number
PCT/KR2020/012058
Other languages
English (en)
French (fr)
Inventor
이용수
Original Assignee
주식회사 날비컴퍼니
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 KR1020200113328A external-priority patent/KR102262671B1/ko
Application filed by 주식회사 날비컴퍼니 filed Critical 주식회사 날비컴퍼니
Publication of WO2021045599A1 publication Critical patent/WO2021045599A1/ko
Priority to US17/668,545 priority Critical patent/US20220270215A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/536Depth or shape recovery from perspective effects, e.g. by using vanishing points
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face

Definitions

  • the present disclosure relates to a method of applying a bokeh effect to a video image and a recording medium, and more specifically, a single lens reflex camera (SLR) or a digital single-lens (DSLR) having a large aperture diameter using computer vision technology.
  • SLR single lens reflex camera
  • DSLR digital single-lens
  • Reflex Camera a method of applying focusing, out-focusing, and bokeh effects to real-time video images and a recording medium that can be realized.
  • the algorithm operation speed In order to apply the bokeh effect in real time, the algorithm operation speed must be fast enough, so image processing at a lower resolution than the original is recommended, but the part in focus or the part that is determined to be sharp is the same as the original. Having a level of clarity is aesthetically important.
  • the present disclosure provides a method and a recording medium for applying a bokeh effect to a video image to solve the above problems.
  • the bokeh effect can be implemented in various ways to create a natural image.
  • a method of applying a bokeh effect to a video image includes extracting characteristic information of an image from an image included in the video image, analyzing the extracted characteristic information of the image, and analyzing the image. And determining a bokeh effect to be applied to the image based on the characteristic information, and applying the determined bokeh effect to the image.
  • analyzing the extracted characteristic information of the image includes: detecting an object in the image, generating an area corresponding to the object in the image, a location, size, and Determining at least one of the directions, and analyzing a characteristic of the image based on information on at least one of a location, a size, and a direction of an area corresponding to the object.
  • the object in the image may include at least one of a person object, a face object, and a landmark object included in the image, and at least one of the position, size, and direction of the object in the image is determined.
  • the step of performing includes determining a ratio of the size of the image and the size of the area corresponding to the object, and analyzing the characteristics of the image based on information on at least one of the position, size, and direction of the object And classifying a pose of the included object.
  • the analyzing of the extracted characteristic information of the image includes detecting at least one of the height of the asymptote (horizontal line) and the vanishing point included in the image, and at least one of the height of the detected asymptote and the vanishing point. And analyzing depth characteristics in the raw image.
  • determining the bokeh effect to be applied to the image includes determining a type and application method of the bokeh effect applied to at least a portion of the image based on the analyzed characteristic information of the image.
  • the method of applying a bokeh effect to a video image further comprises receiving input information on an intensity of a bokeh effect on the video image, and the step of applying the bokeh effect to the image comprises: Based on the input information on the intensity, determining the intensity of the bokeh effect and applying it to the image.
  • the applying of the determined bokeh effect to an image includes generating sub-images corresponding to regions to which a blur effect is to be applied, applying a blur effect to the sub-images, and And mixing the sub-images to which the blur effect has been applied.
  • the step of applying the determined bokeh effect to the image further includes downsampling the image to generate an image with a resolution lower than the resolution of the image, and corresponds to areas in the image to which the blur effect is applied.
  • the generating of the sub-images includes applying a blur effect to a region corresponding to the sub-image in the low-resolution image.
  • the mixing of the sub-images to which the blur effect is applied includes mixing a low-resolution image and sub-images corresponding to regions to which the blur effect is applied, and the sub-images are mixed so as to be the same as the resolution of the image. And correcting sharpness of the up-sampled image by mixing the image and the up-sampled image and upsampling the lower resolution image.
  • step (d) includes correcting the extracted depth map using the generated segmentation mask, and applying a depth effect to a plurality of image frames based on the corrected depth map.
  • each of steps (a) to (d) is executed by any one of a plurality of heterogeneous processors.
  • a computer-readable medium in which a computer program for executing a method of applying a bokeh effect to a video image according to an embodiment of the present disclosure on a computer is recorded.
  • a bokeh effect is applied to a video image in which the degree, range, and method of the effect are automatically adjusted according to the characteristics of the input image and the intensity of the user using a segmentation mask.
  • a method and a recording medium can be provided.
  • the bokeh effect is applied in the image using information on the object to be focused in the image and the depth map of the image, it is possible to differentially apply the depth effect to the background area of the image.
  • the depth effect can be applied differentially to the object area in the image.
  • FIG. 1 is an exemplary diagram of a method of applying a bokeh effect to a video image according to an embodiment of the present disclosure.
  • FIG. 2 is a flowchart of a method of applying a bokeh effect to a video image according to an embodiment of the present disclosure.
  • FIG. 3 is a block diagram of a system for applying a bokeh effect to a video image according to an embodiment of the present disclosure.
  • FIG. 4 is a flowchart of an image processing method of a processing unit of a system for applying a bokeh effect to a video image according to an embodiment of the present disclosure.
  • FIG. 5 is an exemplary diagram illustrating a process of analyzing extracted characteristic information of an image according to an embodiment of the present disclosure.
  • FIG. 6 is an exemplary view illustrating a process of classifying a pose of an object in a process of analyzing extracted characteristic information of an image according to an embodiment of the present disclosure.
  • FIG. 7 is a diagram illustrating at least one of an asymptotic line (horizontal line) and a height of a vanishing point included in an image in a process of analyzing extracted characteristic information of an image according to an embodiment of the present disclosure, and analyzing depth characteristics in the image. It is an exemplary diagram for explaining the process of doing.
  • FIG. 8 is an exemplary diagram for describing a process of determining the type and application method of a bokeh effect to be applied to an image based on analyzed characteristic information of an image according to an embodiment of the present disclosure.
  • FIG. 9 is an exemplary view illustrating a process of determining the type and application method of a bokeh effect to be applied to an image based on analyzed characteristic information of an image according to an embodiment of the present disclosure.
  • FIG. 10 is an exemplary diagram illustrating a process of receiving input information on the intensity of a bokeh effect on a bokeh video image according to an embodiment of the present disclosure.
  • FIG. 11 is a flowchart illustrating a step of applying a bokeh effect to an image according to an embodiment of the present disclosure.
  • FIG. 12 is an exemplary diagram for describing a process of correcting a depth map using a segmentation mask according to an embodiment of the present disclosure.
  • FIG. 13 is a schematic diagram illustrating a data flow of a video bokeh solution according to an embodiment of the present disclosure.
  • FIG. 14 is a schematic diagram illustrating a data flow of a video bokeh solution according to an embodiment of the present disclosure.
  • FIG. 15 is a schematic diagram illustrating a data flow of a video bokeh solution according to an embodiment of the present disclosure.
  • 16 is a block diagram illustrating a data flow of a video bokeh solution according to an embodiment of the present disclosure.
  • 17 is an exemplary diagram illustrating an artificial neural network model according to an embodiment of the present disclosure.
  • module refers to software or hardware components, and “module” performs certain roles.
  • module'module' is not limited to software or hardware.
  • The'module' may be configured to be in an addressable storage medium, or may be configured to reproduce one or more processors.
  • the'module' includes components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, procedures, Includes subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, database, data structures, tables, arrays and variables. Components and'modules' may be combined into a smaller number of components and'modules', or further separated into additional components and'modules'.
  • the'system' may refer to at least one of a server device and a cloud server device, but is not limited thereto.
  • the'user terminal' is provided with a communication module to enable a network connection, and any electronic device capable of outputting content by accessing a website, an application, etc. (for example, a smartphone, a PC, a tablet PC, a laptop PC, etc.). Users are provided with arbitrary content accessible through the network by input through the user terminal interface (eg, touch display, keyboard, mouse, touch pen or stylus, microphone, motion recognition sensor, etc.) through the user terminal.
  • I can. 1 is an exemplary diagram of a method of applying a bokeh effect to a video image according to an embodiment of the present disclosure.
  • the user terminal 100 is shown as a smart phone, but is not limited thereto, and a camera may be provided to take a picture, and a CPU (Central Processing Unit) or a GPU (Graphic Processing Unit) Processing Unit) or a computer system such as NPU (Neural Processing Unit) and equipped with a device capable of executing a program operation, and an arbitrary electronic device capable of outputting video image content (for example, a PC, Tablet PC, laptop PC, etc.).
  • the user can control the intensity of the bokeh effect to be applied to the video image by input through the interface of the user terminal 100 (for example, a touch display, a keyboard, a mouse, a touch pen or a stylus, a microphone, a motion recognition sensor).
  • the user terminal 100 may receive a service for applying a bokeh effect to a video image through an application provided by a server.
  • the user terminal 100 may apply a bokeh effect to a video image.
  • a blur effect is applied to the background area 110, and the foreground area, which is the person object area 120, is not applied to the blur effect, and processing the bokeh effect in real time may be confirmed on the screen at the same time as recording. .
  • a method of applying a bokeh effect to a video image in a user terminal comprising: extracting image characteristic information from an image included in the video image, analyzing the extracted characteristic information of the image, based on the analyzed characteristic information of the image It may include determining a bokeh effect to be applied to the raw image and applying the determined bokeh effect to the image.
  • the bokeh effect application system may extract characteristic information of the image from the image included in the video image.
  • the characteristic information may mean information that can be extracted from an image, such as an RGB value of a pixel in the image, but is not limited thereto.
  • the bokeh effect application system may analyze the extracted characteristic information of the image. For example, by receiving characteristic information extracted from an input image, characteristic information for determining the type and intensity of a bokeh effect to be applied to the input image may be analyzed.
  • the bokeh effect application system may determine a bokeh effect to be applied to the image based on the analyzed characteristic information of the image.
  • the determined bokeh effect may include Flat Bokeh or Gradient Bokeh, but is not limited thereto.
  • the bokeh effect application system may apply the determined bokeh effect to the image.
  • the detailed configuration will be described with reference to FIGS. 3 and 4 below.
  • the bokeh effect application system 300 includes an imaging unit 310, an input unit 320, an output unit 330, a processing unit 340, a storage unit 350, and a communication unit 360. can do.
  • the imaging unit 310 may capture an input image for applying a bokeh effect and transmit it to the storage unit 350.
  • the imaging unit 310 may be equipped with a camera or the like to take a picture or an image.
  • the camera may be configured as a monocular camera with one lens and one sensor or a camera having two or more lenses and sensors, but is not limited thereto.
  • the input unit 320 receives the input intensity from the user in order to determine the type, intensity, and intensity distribution of the bokeh effect to be applied when the bokeh effect application unit 440 applies the bokeh effect to the input image. can do.
  • the output unit 330 may receive and output an image to which a bokeh effect is applied to the input image from the storage unit 350.
  • the output unit 330 may output an image to which a bokeh effect is applied to the input image and check it in real time.
  • the processor 340 may extract feature information from the input image, analyze the feature information based on the extracted feature information, and determine a bokeh effect based on the analyzed feature information. In addition, based on the determined bokeh effect and input information on the intensity of the bokeh effect received from the user, the intensity of the applied blur effect or the distribution of the intensity of the blur effect may be determined.
  • the detailed configuration of the processing unit 340 is shown in FIG. 4 below. And with reference to FIG. 11.
  • the storage unit 350 stores images captured from the imaging unit 310, or images generated in a series of processes in which the processing unit 340 applies a bokeh effect to an input image (for example, a sub-image, a mixed image). , Down-sampling video, etc.) and final output video can be saved. Also, an external input image received from the communication unit 360 may be stored. The storage unit 350 outputs the image stored in the storage unit 350 through the output unit 330, or transmits the images used by the processing unit 340 to apply a bokeh effect to the input image through the communication unit 360. can do.
  • the communication unit 360 may exchange data inside the bokeh effect application system 300 or transmit and receive data such as an image by communicating with an external server. In another embodiment, the communication unit 360 may receive a service for applying a bokeh effect to a video image through an application provided by a server.
  • the processing unit 340 receives the image being photographed received from the imaging unit 310 or the image stored in the user terminal 100 received from the storage unit 350 as an input image, and applies a bokeh effect to output it. I can.
  • the processing unit 340 may include a characteristic information extracting unit 410, a characteristic information analyzing unit 420, a bokeh effect determining unit 430, and a bokeh effect applying unit 440.
  • the processing unit 340 from artificial intelligence of a rule-based algorithm, to machine learning, a convolutional neural network (CNN), a recurrent neural network (RNN), a deep neural network (DNN), etc. It can be implemented with artificial intelligence technology.
  • CNN convolutional neural network
  • RNN recurrent neural network
  • DNN deep neural network
  • the characteristic information extracting unit 410 extracts information that can be extracted from an image, such as an RGB value of a pixel in the image, required for the characteristic information analysis unit 420 to analyze characteristic information for an input image. It may mean, but is not limited thereto.
  • the characteristic information analysis unit 420 may receive characteristic information extracted from the characteristic information extraction unit 410 and analyze characteristic information for determining the type and intensity of a bokeh effect to be applied to the input image.
  • the analyzed image characteristic information generated by analyzing the characteristic information by the characteristic information analysis unit 420 is an object within the image, a bounding box corresponding to the object within the image, and a segmentation mask corresponding to the edge of the object within the image.
  • the bokeh effect determiner 430 may determine a bokeh effect to be applied to the input image based on the characteristic information of the image analyzed by the characteristic information analyzer 420.
  • the bokeh effect determined by the bokeh effect determiner 430 may include a flat bokeh or a gradient bokeh, but is not limited thereto.
  • the characteristic information analysis unit 420 may be configured through a conventionally well-known artificial intelligence technology such as a rule-based artificial intelligence or a simple artificial neural network that performs a classification task, but is not limited thereto. Further, the detailed configuration of the bokeh effect determination unit 430 will be described with reference to FIGS. 8 and 9 below.
  • the bokeh effect application unit 440 may determine a distribution of the intensity of a flat bokeh or a blur effect of a gradient bokeh based on input information about the intensity of the bokeh effect received from the user. As shown in FIG. 11 to be described later, the processing unit 340 further includes the sub-image generation module 1110 of the bokeh effect application unit 440 to downsample the input image to a lower resolution than the input image, and The sub-images to which the blur effect is applied to the generated sub-image may be stored in the storage unit 350.
  • the sub-image mixing module 1120 of the bokeh effect application unit 440 when applying a gradient bokeh to an input image, mixes the sub-images to which the blur effect generated by the sub-image generation module 1110 is applied.
  • the mixed image may be stored in the storage unit 350.
  • the mixed image up-sampling module 1130 of the bokeh effect applying unit 440 may up-sample an image of a low resolution mixed by the sub-image mixing module 1120.
  • the sharpness correction module 1140 of the bokeh effect applying unit 440 may correct the sharpness of the bokeh effect applied image by using the original input image before applying the blur effect.
  • the characteristic information analysis unit 420 receives the characteristic information extracted from the characteristic information extraction unit 410, and analyzes characteristic information for determining the type and intensity of the bokeh effect to be applied to the input image. I can.
  • the characteristic information analysis unit 420 detects an object in the images 510 and 530 based on the characteristic information extracted from the characteristic information extraction unit, and a bounding box 515 corresponding to the object in the image , 535) and segmentation masks 525 and 545 corresponding to objects in the image may be generated. It can be generated by object detection using various types of artificial intelligence technologies that are widely known, such as a convolutional neural network (CNN) and a deep neural network (DNN).
  • CNN convolutional neural network
  • DNN deep neural network
  • the characteristic information analyzer 420 may determine at least one of a location, a size, and a direction of an area corresponding to an object in the image.
  • the characteristic information analysis unit 420 analyzes the characteristics of the image based on information on at least one of the location, size, and direction of the area corresponding to the object, and transmits the analyzed characteristic information to the bokeh effect determination unit 430. can do.
  • the characteristic information analysis unit 420 has the size of the area 515 corresponding to the object in the image is more than half (50%) of the entire image, and the area 515 corresponding to the object in the image is If it is attached to the edge of the image 510, it is possible to determine the image characteristics as being a selfie.
  • the characteristic information analysis unit 420 may determine that the size of the area 535 corresponding to the object in the image is less than half (50%) in the entire image, or the area 535 corresponding to the object in the image If the image 530 is not attached to the edge, the image characteristics can be determined as being a full body shot.
  • whether the image characteristic is a selfie or a full body shot may be used by the bokeh effect determiner 430 to determine the type of bokeh effect to be applied to the image.
  • the object in the image may include at least one of a person object, a face object, and a landmark object included in the image.
  • determining at least one of the position, size, and direction of the object in the image may include determining a ratio of the size of the image and the size of the area corresponding to the object.
  • analyzing the characteristics of the image based on information on at least one of the location, size, and direction of the object may include classifying a pose of the object included in the image.
  • the object in the image 610 may include at least one of a person object 612, a face object 614, a landmark object, and a person object 612 included in the image.
  • the landmark object may mean facial feature points such as eyes, nose, and mouth of a human face in the face object 614 in the image.
  • the characteristic information analysis unit 420 includes a ratio of an object included in the image based on information on at least one of the position, size, direction, and ratio of the object 612 and the face object 614 in the image. You can classify poses. For example, it is possible to determine whether a person in the image is standing or sitting based on the position, size, direction, and ratio information of the face object 614 in the object 612 in the image.
  • the ground area 616 exists on the opposite side of the face object 614 within the object 612 in the image.
  • the information on the ground area 616 may be used by the bokeh effect determiner 430 to determine the intensity of a bokeh effect to be applied.
  • the ground area 616 may be inferred as an area closest to the person object 612 included in the image among the background areas in terms of a distance. Accordingly, the bokeh effect determiner 430 may determine an area in which the blur effect is the least to enter among the background areas.
  • FIG. 7 is a diagram illustrating at least one of an asymptotic line (horizontal line) and a height of a vanishing point included in an image in a process of analyzing extracted characteristic information of an image according to an embodiment of the present disclosure, and analyzing depth characteristics in the image. It is an exemplary diagram for explaining the process of doing.
  • the analyzing of the extracted characteristic information of the image includes detecting at least one of the heights of the asymptote (horizontal line) and the vanishing point included in the image, and at least one of the heights of the detected asymptotes and vanishing points. It may include the step of analyzing the depth (depth) characteristic in the image on the basis of.
  • the characteristic information analysis unit 420 may detect the vanishing point 715 in the image 710 having a background element capable of detecting the vanishing point and transmit it to the bokeh effect determiner 430.
  • the vanishing point 715 may mean a point where edge components in the image intersect in a certain range. According to the perspective method, the object is projected larger as it approaches the viewer's point of view, and the object is projected smaller as it moves away from the observer's point of view.If this is expressed as a line, the line meets the line as the distance from the observer's point of view meets, and the vanishing point 715 ) Can be formed.
  • the vanishing point 715 may be inferred as an area farthest from the camera in the image except for the sky area. Accordingly, in the bokeh effect determiner 430, the vanishing point 715 may be determined as an area in which the blur effect is most entered among the background areas.
  • the characteristic information analysis unit 420 detects the asymptote line (horizontal line or horizontal line) 725 in the image 720 having a background element capable of detecting the asymptote line (horizontal line), and the bokeh effect determination unit 430 ) Can be sent.
  • the asymptote line 725 may also be inferred as an area farthest from the camera in the image except for the sky area. Accordingly, in the bokeh effect determiner 430, the asymptotic line 725 may be determined as an area in which the blur effect is most entered among the background areas.
  • determining the bokeh effect to be applied to the image may include determining the type and application method of the bokeh effect to be applied to at least a portion of the image based on analyzed characteristic information of the image. have.
  • the bokeh effect determination unit 430 may be implemented as a simple artificial neural network that performs a classification task. In the case of the intensity of the blur effect of the background area, the closer to black, the stronger the blur strength is, and the closer to white, the weaker the blur strength is.
  • FIG. 8 is an exemplary diagram for describing a process of determining the type and application method of a bokeh effect to be applied to an image based on analyzed characteristic information of an image according to an embodiment of the present disclosure.
  • the bokeh effect determiner 430 may determine a bokeh effect to be applied to the input image 810.
  • the type of the bokeh effect determined by the bokeh effect determiner 430 may include a flat bokeh or a gradient bokeh.
  • the bokeh effect determiner 430 may determine distributions of blur strength of Flat Bokeh and blur strength of Gradient Bokeh.
  • a blur effect of the same intensity may be applied to the background area in the image.
  • a background area in the image may have different blur strengths along a horizontal or vertical axis.
  • the image 830 to which the gradient bokeh is applied in the vertical direction may have the same blur intensity in the horizontal direction.
  • the in-focus portion of the background area (or the portion analyzed as in-focus) may receive the least blur effect or may not receive the blur effect.
  • the part where the actual distance of the background area is the farthest (or the part analyzed to be the farthest) can receive the strongest blur effect.
  • the input image 810 illustrated in FIG. 8 may be an image determined by the characteristic information analysis unit 420 to be a selfie.
  • the selfie image a part occupied by a person object in the entire image may be large, and an area occupied by a background may be small. Also, the difference in distance from the camera between the background areas may not be large. Therefore, even if Flat Bokeh, which collectively processes the blur intensity, is applied, the bokeh applied image may look natural. Accordingly, the bokeh effect determiner 430 may determine that it is appropriate to apply Flat Bokeh to an image whose image characteristic is a selfie.
  • the bokeh effect determination unit 430 applies Flat Bokeh, which has a faster operation speed and less computational amount, to the input image 810 than that of Gradient Bokeh, and is an aesthetically important part of the bokeh process of a selfie image.
  • a segmentation mask corresponding to a person region which is an area to which the blurring effect is not applied, may be calculated again.
  • the bokeh effect determiner 430 may determine a bokeh effect to be applied to the input image 910.
  • the input image 910 illustrated in FIG. 9 may be an image determined by the characteristic information analysis unit 420 to be a full body shot.
  • the full-body shot image a portion occupied by a person object in the entire image may be small, and an area occupied by a background may be large. Also, a difference in distance from the camera between the background areas may be large. Accordingly, the image 920 to which Flat Bokeh that collectively processes the blur intensity is applied may look unnatural.
  • the image 930 to which the gradient bokeh is applied may look natural because the blur effect maintains the depth characteristic of the background area. Accordingly, the bokeh effect determiner 430 may determine that it is appropriate to apply a gradient bokeh to an image whose image characteristic is a full body shot.
  • the image 930 to which the Gradient Bokeh is applied is a part of the background area, such as the vanishing point and the asymptote, analyzed by the characteristic information analysis unit 420 to be the farthest or the farthest part of the background area. , As illustrated in FIG. 9, the region 932 having the strongest blur effect may be determined.
  • the ground area analyzed by the characteristic information analysis unit 420 is a part of the background area that is analyzed to have the closest actual distance or the closest distance.
  • the blurring effect may be the weakest, or an area 934 to which the blurring effect is not applied may be determined.
  • the system for applying the bokeh effect may further include receiving input information on the intensity of the bokeh effect on the video image.
  • the step of applying the bokeh effect to the image may include determining an intensity of the bokeh effect and applying it to the image based on input information on the received intensity. In the case of the intensity of the blur effect of the background area, the closer to the black, the stronger the blur strength is, and the closer to the white, the weaker the blur strength is.
  • the bokeh effect application unit 440 may determine the intensity of the flat bokeh based on the input information 1015 and 1025 about the intensity of the bokeh effect received from the user. For example, when the bokeh effect application unit 440 receives the input information 1015 having a low blur intensity, the bokeh effect application unit 440 may output an image 1010 to which the background blur intensity is weakly applied. When input information 1025 having a high blur intensity is received, an image 1020 to which a background blur intensity is strongly applied may be output.
  • the bokeh effect applying unit 440 may determine the intensity and position of a region with a strong blur effect and an intensity and position of a region with a low blur effect in the gradient bokeh from the user and apply it to the image.
  • the step of applying the determined bokeh effect to the image includes generating sub-images corresponding to regions to which the blur effect is to be applied, applying the blur effect to the sub-images, and blurring. It may include mixing the sub-images to which the effect is applied.
  • the step of downsampling the image may further include generating an image with a resolution lower than the resolution of the image, and the step of generating sub-images corresponding to areas to which the blur effect is applied in the image It may include applying a blur effect to the area corresponding to the sub-image.
  • the step of mixing the sub-images to which the blur effect is applied includes mixing a low-resolution image and sub-images corresponding to the areas to which the blur effect is applied, and a low-resolution image in which the sub-images are mixed to be the same as the image resolution.
  • Upsampling may include correcting sharpness of the up-sampled image by mixing the image and the up-sampled image.
  • the bokeh effect application unit 440 includes a sub image generation module 1110, a sub image mixing module 1120, a mixed image upsampling module 1130, and a sharpness correction module 1140. I can.
  • the sub-image generating module 1110 is applied to the sub-image and the down-sampled image that downsampled the input image to a lower resolution than the input image in order to secure a fast operation speed when Flat Bokeh is applied to the input image.
  • a sub image to which the blur effect is applied may be generated and stored in the storage unit 350. The amount of computation required for the blur effect can be reduced by omitting the blur effect to the area inside the segmentation mask corresponding to the object area.
  • a series of image processing steps may be added before and after the blur processing.
  • the sub-image generation module 1110 blurs the downsampled image and the downsampled image of the input image to a lower resolution than the input image in order to secure a fast operation speed when applying a gradient bokeh to the input image.
  • a sub image to which the effect is applied may be generated and stored in the storage unit 350.
  • the sub-image may generate Flat Bokeh applied images having a specific blur strength, instead of generating an image having a blur strength that varies according to the position of a pixel of a gradient bokeh.
  • the area between the area with the blur intensity level 1 and the area with the blur intensity level 2 is the image with the 1st level blur intensity and the 2nd level blur.
  • the amount of computation can be reduced by calculating only an area having a blur effect larger than K-1 and smaller than K+1 for an image to which the K-level blur effect is applied.
  • the amount of calculation required for the blur effect can be reduced by omitting the blur effect to the area inside the segmentation mask corresponding to the person area.
  • a series of image processing steps may be added before and after the blur processing.
  • the sub-image generation module 1110 calculates the blur kernel 3x3 twice when calculating the blur kernel 5x5 in order to secure a fast operation speed in the step of applying the blur effect during the process of generating the sub-image. You can use the method of applying the solution. In addition, in order to secure a fast operation speed, a method of synthesizing the blur kernels 1x3 and 3x1 may be used when calculating the blur kernel 3x3.
  • the sub-image mixing module 1120 may be omitted when flat bokeh is applied to an input image.
  • the sub-image mixing module 1120 may mix and store the images to which the blur effect generated by the sub-image generation module 1110 is applied when applying a gradient bokeh to an input image and store them in the storage unit 350.
  • regions between a region having a first-level blur intensity and a region having a second-level blur intensity may linearly mix an image having a first-level blur intensity and an image having a second-level blur intensity.
  • the sub-image blending module 1120 may represent an image having a first-level blur intensity and an image having a second-level blur intensity as a curve in the form of a quadratic function. , Can be mixed in proportions with incremental weights.
  • the mixed image upsampling module 1130 may upsample an image of a low resolution mixed by the sub image mixing module 1120.
  • the sharpness correction module 1140 may correct the sharpness of the bokeh effect applied image by using the original image before applying the blur effect. If you mix the kernel with no blur effect (1x1) and the kernel with blur effect (e.g. 3x3, 5x5, etc.) at a lower resolution, even at the location where the blur effect was not applied when you upsampled it to a higher resolution. , Due to pixel values lost during downsampling and upsampling, the image may appear blurred.
  • a high resolution at the position corresponding to the kernel (1x) without the blur effect applied for example, the area of a person object inside the segmentation mask
  • the sharpness of the input video can be maintained only when the video without applying the blur effect of is mixed. Therefore, the location is the original input image with high resolution, the image without the blur effect of the low resolution, the image with the low resolution without the blur effect, and the three are mixed, so if the blending ratio is incorrectly set, the image Noise or pixel values may change. Therefore, by using the square root ratio to the original image, it is possible to correct the sharpness while maintaining the ratio of the initially applied blur effect.
  • the blending of the blur effect applied image and the low-resolution blur effect applied is sqrt(0.7):1-
  • the first mixed image may be generated by mixing at a ratio of sqrt(0.7).
  • the first mixed image may be upsampled.
  • the first mixed image and the high-resolution input image may be mixed in a ratio of sqrt(0.7):1-sqrt(0.7). Accordingly, a blending ratio of the blur effect applied image, the low-resolution blur applied image and the high-resolution input image may be about 0.7:0.14:0.16.
  • a method of applying a bokeh effect to a video image in a user terminal includes: (a) receiving information on a plurality of image frames, (b) receiving information on a plurality of image frames by first Generating a segmentation mask 1220 for one or more objects included in a plurality of image frames by inputting into the artificial neural network model, (c) inputting information on the plurality of image frames to a second artificial neural network model to obtain a plurality of images. Extracting the depth map 1210 for the frame, and (d) applying a depth effect for a plurality of image frames based on the generated segmentation mask 1220 and the extracted depth map 1210. I can.
  • the imaging unit 310 may include a depth camera, and a depth effect for a plurality of image frames may be applied by using the depth map 1210 obtained through the depth camera.
  • the depth camera may include a Time of Flight (ToF) sensor and a structured light sensor, but is not limited thereto, and in the present disclosure, a stereo vision method (for example, a depth value calculated by a dual camera) Even when the depth map 1210 is obtained by using the additional camera and a processor that calculates a depth value using a plurality of cameras, a depth camera may be referred to as a depth camera.
  • ToF Time of Flight
  • a stereo vision method for example, a depth value calculated by a dual camera
  • a system for applying a bokeh effect may include an image version for applying a bokeh effect to an image and a video version for applying a bokeh effect to a video image.
  • the image version of the bokeh effect application system for applying a bokeh effect to an image after input data (e.g., an image or a plurality of video frames) is input, when changing the position of the focus through user input and/or the user When changing the intensity of the blur through input, applying the bokeh effect to the input data can be processed in real time.
  • input data e.g., an image or a plurality of video frames
  • applying the bokeh effect to the input data can be processed in real time.
  • applying a bokeh effect to input data can be processed in real time.
  • the image version to which the bokeh effect is applied to the image is to obtain a filtering image for the blur kernels to be used in advance, and around the edge of the mask in consideration of the human mask.
  • each pixel value is prepared in advance according to the value of the normalized depth map obtained by considering the average depth map and intensity of the focused area. It may include the step of obtaining an interpolation result by using multiple filtered images (eg, an image filled with a special filtering value).
  • a bokeh method is applied to an image
  • the focus is changed depending on where the user inputs and/or when the intensity of the blur is changed through user input
  • interpolating from the filtered image may refer to an arbitrary value that can improve the sharpness of an image.
  • a Laplacian kernel that can give a sharpening effect is applied. May contain values.
  • filtering when the input data is an image, filtering may be applied first, and interpolation may be applied according to a normalized depth map.
  • a filtering image may be generated in advance according to at least one of the sizes and types of several kernels.
  • various filters may be applied to one image in advance, and the image to which the filter was applied may be blended according to a required effect.
  • the filtering kernel size is 1, 3, 7, 15, a result similar to the result of the filtering kernel size 11 may be output by blending the filtering results of kernel sizes 7 and 15.
  • the bokeh effect application system may perform a method in which filtering and interpolation are simultaneously performed according to a normalized depth map.
  • the system for applying the bokeh effect can perform filtering only once for one pixel, for example, so that the size of the filtering kernel can be more compactly configured.
  • the kernel size is 1, 3, 7, 15 in the image version
  • the kernel size can be 1, 3, 5, 7, 9, 11, 13, 15 in the video version. That is, since a video needs to output multiple images in a short time, it may be advantageous in terms of performance to create the necessary filters and apply them at once, rather than blending images to which multiple filters have been applied, such as an image version.
  • the method of performing the image version and the video version may be mutually performed according to the performance of the hardware constituting the bokeh effect application system.
  • the method of performing the original video version can be executed in the image version, and in a bokeh effect application system composed of high performance hardware, the video version is performed, and the original image version
  • the method of performing may be performed, but the method is not limited thereto, and various types of filtering processes may be performed.
  • the focus point and the blur intensity may change each time a frame color, depth, and mask are input
  • the throughput may be set to match the speed at which the video device processes frames (eg, 30 fps (frame per second) or 60 fps).
  • a pipeline technique may be applied using a computing unit in order to process according to a throughput of 30 fps or 60 fps.
  • each pixel value according to the value of the normalized depth map obtained by considering the average depth map and intensity of the focused area may be performed according to the depth value of each pixel.
  • a pixel having a depth value of 0.6 may be 4/7.
  • step (d) includes a step of correcting the extracted depth map 1210 using the generated segmentation mask 1220 and a plurality of It may include applying a depth effect to the image frame.
  • the depth map 1210 extracted through the second artificial neural network may have inaccurate depth information.
  • the boundaries of small and detailed parts such as a finger of a person included in an image or a plurality of image frames, may be ambiguous.
  • depth information may be incorrectly extracted.
  • the bokeh effect application system may normalize depth information inside and outside the segmentation mask 1220 using the segmentation mask 1220 generated through the first artificial neural network, respectively.
  • a segmentation mask to be used when correcting the depth map may be used.
  • the method of correcting the depth map may include normalizing a range of a depth map within a divided area to be focused within a predetermined range.
  • the process of improving the depth map may include making the depth map inside the unselected divided area homogeneous. For example, the average value may be unified, the variance may be made small through Equation 1 below, or median filtering may be applied.
  • it may include the step of subtracting a representative value (eg, an average) of the depth map inside the divided area to be focused from the depth map, and taking an absolute value and performing averaging.
  • a representative value eg, an average
  • each of steps (a) to (d) may be executed by any one of a plurality of heterogeneous processors.
  • Processors A, B, and C shown in Figs. 13 to 16 are each optimized for performing simple preprocessing and data execution, a processor that can play a role of mediating, a processor that draws a screen, and performs a neural network operation. It may be a processor (for example, DSP, NPU, Neural Accelerator, etc.), but is not limited thereto.
  • processor A may be a CPU
  • processor B may be a GPU (eg, a GPU having a GL interface)
  • processor C may be a DSP, but is not limited thereto
  • each of the processors A to C has a processor configuration. It may contain one of the known processors capable of executing.
  • FIG. 13 illustrates a system in which image data captured from a camera is directly input to the processor C, but is not limited thereto, and a processor capable of directly receiving a camera input may be input to and processed by one or more processors.
  • FIG. 14 illustrates that the neural network is performed by two processors (processors A and C), it is not limited thereto, and may be performed in parallel by several processors.
  • each task is shown to be processed by each processor, but each task may be divided and processed in stages by a plurality of processors. For example, multiple processors may process a single task serially and together.
  • the flow chart of the data processed in FIG. 16 is an exemplary embodiment, and is not limited thereto, and various types of data flow charts may be implemented according to a configuration and function of a processor.
  • the processor B 1320 may receive a frame image from the imaging unit 310 (S1340). In an embodiment, the processor B 1320 may perform pre-processing of the received frame image (S1342).
  • the processor C 1330 may receive the frame image at the same time that the processor B 1320 receives the frame image (S1350). In an embodiment, the processor C 1330 may include a first artificial neural network model. In an embodiment, the processor C 1330 may generate a segmentation mask corresponding to the frame image received in step S1350 using the first artificial neural network model (S1352). In an embodiment, the processor C 1330 may include a second artificial neural network model. The processor C 1330 may generate a depth map corresponding to the frame image received in step S1350 using the second artificial neural network model. Processor C 1330 may transmit the generated segmentation mask and depth map to processor A 1310 (S1356).
  • the processor A 1310 may receive a segmentation mask and a depth map from the processor C 1330 (S1360). In an embodiment, the processor A 1310 may transmit the received segmentation mask and depth map to the processor B 1320 (S1362).
  • the processor B 1320 may receive a segmentation mask and a depth map from the processor A 1310 (S1364). In an embodiment, the processor B 1320 may pre-process the received depth map (S1370). In one embodiment, the processor B 1320, the segmentation mask received from the processor A 1310 on the image preprocessed by the processor B 1320 in step S1342, and the processor B 1320 pre-processing in step S1370 A bokeh filter may be applied using one depth map (S1372). In an embodiment, the processor B 1320 may output a frame image corresponding to a result of applying the bokeh filter through the output unit 330 (S1374).
  • the processor B 1320 may receive a frame image from the imaging unit 310 (S1410). In an embodiment, the processor B 1320 may perform pre-processing of the received frame image (S1412). The processor B 1320 may transmit the preprocessed image to the processor A 1310 (S1414). Also, the processor B 1320 may transmit the preprocessed image to the processor C 1330 (S1416).
  • the processor A 1310 may receive a preprocessed image from the processor B 1320 (S1420).
  • the processor A 1310 may include a second artificial neural network model.
  • the processor A 1310 may generate a depth map corresponding to the preprocessed image received in step S1420 by using the second artificial neural network model (S1422).
  • the processor A 1310 may perform pre-processing of the depth map generated in step S1422 (S1424).
  • the processor C 1330 may receive the preprocessed image from the processor B 1320 (S1430).
  • the processor C 1330 may include a first artificial neural network model.
  • the processor C 1330 may generate a segmentation mask corresponding to the preprocessed image received in step S1430 by using the first artificial neural network model (S1432). Further, the processor C 1330 may transmit the generated segmentation mask to the processor A 1310 (S1434).
  • processor A 1310 may receive a segmentation mask from processor C 1330. In one embodiment, processor A 1310 uses a segmentation mask received in step S1440 and a depth map preprocessed by processor A 1310 in step S1424 on the preprocessed image received in step S1420. A bokeh effect filter may be applied (S1442). In addition, the processor A 1310 may transmit the bokeh filter application result to the processor B 1320 (S1444).
  • the processor B 1320 may receive the bokeh filter application result from the processor A 1310 (S1446). In an embodiment, the processor B 1320 may output a frame image corresponding to a result of applying the bokeh filter through the output unit 330 (S1450).
  • the processor B 1320 may receive a frame image from the imaging unit 310 (S1510). In an embodiment, the processor B 1320 may perform pre-processing of the received frame image (S1512). The processor B 1320 may transmit the preprocessed image to the processor A 1310 (S1514).
  • the processor A 1310 may receive a preprocessed image from the processor B 1320 (S1520). In an embodiment, the processor A 1310 may transmit the preprocessed image to the processor C 1330 (S1522). In an embodiment, the processor C 1330 may receive the preprocessed image from the processor A 1310 (S1524).
  • the processor C 1330 may include a first artificial neural network model.
  • the processor C 1330 may generate a segmentation mask corresponding to the preprocessed image received in step S1524 by using the first artificial neural network model.
  • the processor C 1330 may include a second artificial neural network model.
  • the processor C 1330 may generate a depth map corresponding to the preprocessed image received in step S1524 using the second artificial neural network model. Further, the processor C 1330 may transmit the generated segmentation mask and depth map to the processor A 1310 (S1534).
  • the processor A 1310 may receive a segmentation mask and a depth map from the processor C 1330 (S1540). In an embodiment, the processor A 1310 may pre-process the depth map received in step S1540 (S1542). Further, the processor A 1310 may transmit the segmentation mask received in step S1540 and the depth map preprocessed in step S1542 to the processor B 1320 (S1544).
  • the processor B 1320 may receive a segmentation mask and a depth map from the processor A 1310 (S1546). In an embodiment, the processor B 1320 may preprocess the depth map preprocessed by the processor A 1310 again (S1550). In an embodiment, the processor B 1320 may apply a bokeh effect filter to the image preprocessed by the processor B 1320 in step S1512 using the segmentation mask and depth map received in step S1544 ( S1552). Further, the processor B 1320 may output a frame image corresponding to a result of applying the bokeh filter through the output unit 330 (S1554).
  • the input/output interface 1610 illustrated in FIG. 16 may include the imaging unit 310, the input unit 320, and the output unit 330 described above in FIG. 3.
  • the input/output interface 1610 may acquire an image or a plurality of image frames through the imaging unit 310.
  • the input/output interface 1610 may receive an input for changing the position of the focus and/or the intensity of the bokeh effect from the user through the input unit 320.
  • the input/output interface 1610 may output a result of applying the bokeh filter generated by the processor A 1630, the processor B 1620, and the processor C 1640 through the output unit 330.
  • processor B 1620 may include a bokeh kernel 1622.
  • the processor B 1620 may be configured as a GPU in charge of drawing a screen, but is not limited thereto.
  • the bokeh kernel 1622 may apply a bokeh effect filter to an image or a plurality of image frames using a segmentation mask and a depth map.
  • the processor A 1630 may include a data bridge 1632 and a preprocessor 1634.
  • the processor A 1630 may be configured with a CPU that can serve as a mediator for simple preprocessing and data execution, but is not limited thereto.
  • a simple pre-processing task is a blur process that smoothes the boundary line between a person and a background, a median filter that removes signal noise such as depth map noise, and a depth map that fills the empty space of the depth map. (completion) and depth map upsampling to increase the resolution quality of the depth map may be included, but the present invention is not limited thereto, and various preprocessing operations capable of improving the quality of the output may be included.
  • the bokeh effect application system may include a separate artificial neural network model for simple preprocessing tasks such as depth map completion and depth map upsampling.
  • the data bridge 1632 may play a role of mediating data execution between the input/output interface 1610, the processor B 1620 and the processor C 1640.
  • the processor A 1630 may perform an operation to distribute a task to be processed by the processor B 1620 and the processor C 1640, but is not limited thereto.
  • the preprocessor 1634 may perform preprocessing of an image, a plurality of image frames, or a depth map received from the input/output interface 1610, the processor B 1620 and the processor C 1640.
  • processor C 1640 may include segmentation network 1642 and depth network 1644.
  • the processor C 1640 may be configured with a processor optimized for performing neural network operations such as DPS, NPU, and Neural Accelerator, but is not limited thereto.
  • the segmentation network 1642 may receive an image, a plurality of image frames, a preprocessed image, or a plurality of image frames to generate a segmentation mask.
  • the segmentation network 1642 may include a first artificial neural network model, which will be described later in more detail with reference to FIG. 17.
  • the depth network 1644 may receive an image, a plurality of image frames, a preprocessed image, or a plurality of image frames to extract a depth map.
  • the depth network 1644 may include a second artificial neural network model, which will be described later in more detail with reference to FIG. 17.
  • the artificial neural network model 1700 is a statistical learning algorithm implemented based on the structure of a biological neural network or a structure that executes the algorithm in machine learning technology and cognitive science.
  • nodes which are artificial neurons that form a network by combining synapses as in a biological neural network, repeatedly adjust the weight of the synapse, By learning to reduce the error between the output and the inferred output, it is possible to represent a machine learning model having problem solving ability.
  • the artificial neural network model 1700 may include an arbitrary probability model, a neural network model, and the like used in artificial intelligence learning methods such as machine learning and deep learning.
  • the artificial neural network model 1700 is a first artificial neural network configured to output a segmentation mask by inputting a plurality of image frames including at least one object and/or image features extracted from the plurality of image frames.
  • the artificial neural network model 1700 is a second artificial neural network configured to output a depth map by inputting a plurality of image frames including at least one object and/or image features extracted from the plurality of image frames.
  • the artificial neural network model 1700 is implemented as a multilayer perceptron (MLP) composed of multilayer nodes and connections between them.
  • the artificial neural network model 1700 may be implemented using one of various artificial neural network model structures including MLP.
  • the artificial neural network model 1700 includes an input layer 1720 that receives an input signal or data 1710 from the outside, and an output layer that outputs an output signal or data 1750 corresponding to the input data. (1740), located between the input layer 1720 and the output layer 1740, receives a signal from the input layer 1720, extracts a characteristic, and transmits it to the output layer 1740 (where n is a positive integer). It consists of hidden layers 1730_1 to 1730_n.
  • the output layer 1740 receives signals from the hidden layers 1730_1 to 1730_n and outputs them to the outside.
  • the processing unit 340 analyzes a plurality of input image frames using supervised learning in order to output a segmentation mask and/or a depth map from the plurality of training image frames, and corresponds to the plurality of image frames.
  • the artificial neural network model 1700 may be trained so that the segmentation mask and/or the depth map can be inferred.
  • the artificial neural network model 1700 learned in this way may be stored in the storage unit 350, and in response to input of a plurality of image frames including at least one object received by the communication unit 360 and/or the input unit 320 It is possible to output a segmentation mask and/or a depth map.
  • the input variable of the artificial neural network model 1700 capable of extracting depth information is a plurality of training images including at least one object. It can be a frame.
  • an input variable input to the input layer 1720 of the artificial neural network model 1700 may be an image vector 1710 in which a training image is composed of one vector data element.
  • an output variable output from the output layer 1740 of the artificial neural network model 1700 may be a vector 1750 representing a segmentation mask and/or a depth map.
  • the output variable of the artificial neural network model 1700 is not limited to the type described above, and may include arbitrary information/data representing a deformable 3D motion model.
  • a plurality of output variables corresponding to a plurality of input variables are matched to the input layer 1720 and the output layer 1740 of the artificial neural network model 1700, respectively, and the input layer 1720, the hidden layers 1730_1 to 1730_n, and the output layer
  • synaptic values between nodes included in 1740 are adjusted, it may be learned so that a correct output corresponding to a specific input can be extracted.
  • the nodes of the artificial neural network model 1700 can identify the characteristics hidden in the input variables of the artificial neural network model 1700 and reduce the error between the output variable calculated based on the input variable and the target output. You can adjust the synaptic value (or weight) between them.
  • information on the segmentation mask and/or depth map corresponding to the plurality of input image frames will be output in response to a plurality of image frames including at least one input object. I can.
  • the processing units used to perform the techniques include one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs). ), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, It may be implemented in a computer, or a combination thereof.
  • various illustrative logic blocks, modules, and circuits described in connection with the disclosure herein may include a general purpose processor, DSP, ASIC, FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or It may be implemented or performed in any combination of those designed to perform the functions described herein.
  • a general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
  • the processor may also be implemented as a combination of computing devices, eg, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in connection with the DSP core, or any other such configuration.
  • RAM random access memory
  • ROM read-only memory
  • NVRAM non-volatile random access memory
  • PROM on a computer-readable medium such as programmable read-only memory), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or optical data storage device, etc. It can also be implemented as stored instructions.
  • the instructions may be executable by one or more processors, and may cause the processor(s) to perform certain aspects of the functionality described herein.
  • Computer-readable media includes both computer storage media and communication media, including any medium that facilitates transfer of a computer program from one place to another.
  • Storage media may be any available media that can be accessed by a computer.
  • such computer readable medium may contain RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or desired program code in the form of instructions or data structures. It may include any other media that may be used for transfer or storage to and accessible by a computer. Also, any connection is properly termed a computer-readable medium.
  • disks and disks include CDs, laser disks, optical disks, digital versatile discs (DVDs), floppy disks, and Blu-ray disks, where disks are usually magnetic It reproduces data optically, while discs reproduce data optically using a laser. Combinations of the above should also be included within the scope of computer-readable media.
  • the software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM, or any other type of storage medium known in the art.
  • An exemplary storage medium may be coupled to a processor such that the processor can read information from or write information to the storage medium.
  • the storage medium may be integrated into the processor.
  • the processor and storage medium may also reside within the ASIC.
  • the ASIC may exist in the user terminal.
  • the processor and storage medium may exist as separate components in the user terminal.
  • exemplary implementations may refer to utilizing aspects of the currently disclosed subject matter in the context of one or more standalone computer systems, the subject matter is not so limited, but rather is associated with any computing environment, such as a network or distributed computing environment. It can also be implemented. Furthermore, aspects of the presently disclosed subject matter may be implemented in or across multiple processing chips or devices, and storage may be similarly affected across multiple devices. Such devices may include PCs, network servers, and handheld devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

본 개시는 사용자 단말에서 비디오 영상에 보케 효과를 적용하는 방법에 관한 것이다. 보케 효과를 적용하는 방법은, 비디오 영상에 포함된 이미지로부터 이미지의 특성 정보를 추출하는 단계, 이미지의 추출된 특성 정보를 분석하는 단계, 이미지의 분석된 특성 정보를 기초로 이미지에 적용될 보케 효과를 결정하는 단계, 결정된 보케 효과를 이미지에 적용하는 단계를 포함한다.

Description

비디오 영상에 보케 효과를 적용하는 방법 및 기록매체
본 개시는 비디오 영상에 보케 효과를 적용하는 방법 및 기록매체에 관한 것으로, 보다 상세하게는, 컴퓨터 비전 기술을 이용하여, 조리개의 지름이 큰 SLR(Single Lens Reflex Camera)이나 DSLR(Digital Single-Lens Reflex Camera)로 촬영해야 구현 가능한 포커싱, 아웃 포커싱, 보케 효과를 실시간 비디오 영상에 적용하는 방법 및 기록매체에 관한 것이다.
실시간(real-time) 비디오 입력에서 인물이 등장하는 경우, 인물의 중심에 초점을 두고 영상이 촬영되고 있다고 가정하는 것이 일반적이며, 인물에 대한 정보를 추가 분석하는 것을 통해 Bokeh 효과를 자동으로 자연스럽게 만들 수 있다.
실시간으로 Bokeh 효과를 적용하기 위해 알고리즘 연산 속도가 충분히 빨라야 하기 때문에, 원본보다 낮은 해상도(resolution)에서의 처리(image processing)가 권장되지만, 초점이 맞는 부분 혹은 선명해야 할 것으로 결정된 부분에서는 원본과 동일한 수준의 선명도를 갖는 것이 심미적으로 중요하다.
본 개시는 상기와 같은 문제점을 해결하기 위한 비디오 영상에 보케 효과를 적용하는 방법 및 기록매체를 제공한다.
모바일 카메라 등 실시간 비디오 입력이 들어오는 환경에서 실제 깊이(depth) 정보가 주어지지 않을 경우 다양한 방법으로 Bokeh 효과를 구현하여 자연스러운 영상을 만들 수 있다.
이 중 Segmentation mask를 이용하여 object 영역은 선명하고 background 영역은 흐리게 효과를 가하여 DSLR과 같은 포커싱 및 아웃포커싱 효과를 만드는 간단한 방식들이 이미 상용화 되어 있지만, background 영역에 일관된 흐림(Blurring) 효과를 주는 방식들이 대부분으로, 자연스럽지 않고 강한 흐림 효과를 주지 못한다는 단점이 있다.
본 개시의 일 실시예에 따른 비디오 영상에 보케 효과를 적용하는 방법은, 비디오 영상에 포함된 이미지로부터 이미지의 특성 정보를 추출하는 단계, 이미지의 추출된 특성 정보를 분석하는 단계, 이미지의 분석된 특성 정보를 기초로 이미지에 적용될 보케 효과를 결정하는 단계, 결정된 보케 효과를 이미지에 적용하는 단계를 포함한다.
일 실시예에 따르면, 이미지의 추출된 특성 정보를 분석하는 단계는, 이미지 내의 객체를 탐지하는 단계, 이미지 내의 객체에 대응하는 영역을 생성하는 단계, 이미지 내의 객체에 대응하는 영역의 위치, 크기 및 방향 중 적어도 하나를 결정하는 단계, 객체에 대응하는 영역의 위치, 크기 및 방향 중 적어도 하나에 대한 정보에 기초하여 이미지의 특성을 분석하는 단계를 포함한다.
일 실시예에 따르면, 이미지 내의 객체는 이미지 내에 포함된 인물 객체, 얼굴 객체, 랜드마크 객체 중 적어도 하나의 객체를 포함할 수 있으며, 이미지 내에서의 객체의 위치, 크기 및 방향 중 적어도 하나를 결정하는 단계는 이미지의 크기와 객체에 대응하는 영역의 크기의 비율을 결정하는 단계를 포함하고, 객체의 위치, 크기 및 방향 중 적어도 하나에 대한 정보에 기초하여 이미지의 특성을 분석하는 단계는 이미지 내에 포함된 객체의 포즈(pose)를 분류하는 단계를 포함한다.
일 실시예에 따르면, 이미지의 추출된 특성 정보를 분석하는 단계는, 이미지 내에 포함된 점근선(지평선) 및 소실점의 높이 중 적어도 하나를 탐지하는 단계 및 탐지된 점근선 및 소실점의 높이 중 적어도 하나를 기초로 이미지 내의 심도(depth) 특성을 분석하는 단계를 포함한다.
일 실시예에 따르면, 이미지에 적용될 보케 효과를 결정하는 단계는, 이미지의 분석된 특성 정보를 기초로 이미지의 적어도 일부분에 적용된 보케 효과의 종류 및 적용 방식을 결정하는 단계를 포함한다.
일 실시예에 따르면, 비디오 영상에 보케 효과를 적용하는 방법은, 비디오 영상에 대한 보케 효과의 강도에 대한 입력 정보를 수신하는 단계를 더 포함하고, 이미지에 보케 효과를 적용하는 단계는, 수신된 강도에 대한 입력 정보에 기초하여, 보케 효과의 강도를 결정해 이미지에 적용하는 단계를 포함한다.
일 실시예에 따르면, 결정된 보케 효과를 이미지에 적용하는 단계는, 이미지 내에서 블러(blur) 효과가 적용될 영역들에 대응하는 서브 이미지들을 생성하는 단계, 블러 효과를 서브 이미지들에 적용시키는 단계 및 블러 효과가 적용된 서브 이미지들을 혼합하는 단계를 포함한다.
일 실시예에 따르면, 결정된 보케 효과를 이미지에 적용하는 단계는, 이미지를 다운샘플링하여 이미지의 해상도보다 낮은 해상도의 이미지를 생성하는 단계를 더 포함하고, 이미지 내에서 블러 효과가 적용된 영역들에 대응하는 서브 이미지들을 생성하는 단계는, 낮은 해상도의 이미지에서 서브 이미지에 대응하는 영역에 블러 효과를 적용하는 단계를 포함한다.
일 실시예에 따르면, 블러 효과가 적용된 서브 이미지들을 혼합하는 단계는, 낮은 해상도의 이미지 및 블러 효과가 적용된 영역들에 대응하는 서브 이미지들을 혼합하는 단계, 이미지의 해상도와 동일하도록, 서브 이미지들이 혼합된 낮은 해상도의 이미지를 업샘플링(upsampling)하는 단계 및 이미지 및 업샘플링된 이미지들을 혼합하여 업샘플링된 이미지의 선명도를 보정하는 단계를 포함한다.
일 실시예에 따르면, (a) 복수의 영상 프레임에 대한 정보를 수신하는 단계, (b) 복수의 영상 프레임에 대한 정보를 제1 인공신경망 모델에 입력하여 복수의 영상 프레임 내에 포함된 하나 이상의 객체에 대한 세그멘테이션 마스크를 생성하는 단계, (c) 복수의 영상 프레임에 대한 정보를 제2 인공신경망 모델에 입력하여 복수의 영상 프레임에 대한 깊이 맵을 추출하는 단계 및 (d) 생성된 세그멘테이션 마스크 및 추출된 깊이 맵을 기초로, 복수의 영상 프레임에 대한 심도 효과를 적용하는 단계를 포함한다.
일 실시예에 따르면, (d) 단계는, 생성된 세그멘테이션 마스크를 이용하여 추출된 깊이 맵을 보정하는 단계 및 보정된 깊이 맵을 기초로 복수의 영상 프레임에 대한 심도 효과를 적용하는 단계를 포함한다.
일 실시예에 따르면, (a) 단계 내지 (d) 단계의 각각은 복수의 이기종 프로세서 중 어느 하나의 프로세서에 의해 실행된다.
본 개시의 일 실시예에 따른 비디오 영상에 보케 효과를 적용하는 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 매체가 제공된다.
본 개시의 일부 실시예들에 따르면, Segmentation mask를 이용하여, 입력 영상의 특성과 사용자의 강도(intensity) 조절에 따라 자동으로 효과의 정도, 범위, 방식이 조절되는 비디오 영상에 보케 효과를 적용하는 방법 및 기록매체를 제공할 수 있다.
본 개시의 일부 실시예들에 따르면, 이미지 내의 포커싱할 물체에 대한 정보 및 이미지의 깊이 맵을 이용하여 이미지 내에 보케 효과를 적용하기 때문에, 이미지의 배경 영역에 심도 효과를 차등적으로 적용할 수 있을 뿐만 아니라 이미지 내의 객체 영역에서도 심도 효과를 차등적으로 적용할 수 있다.
본 개시의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 개시의 실시예들은, 이하 설명하는 첨부 도면들을 참조하여 설명될 것이며, 여기서 유사한 참조 번호는 유사한 요소들을 나타내지만, 이에 한정되지는 않는다.
도 1은 본 개시의 일 실시예에 따른 비디오 영상에 보케 효과를 적용하는 방법의 예시도이다.
도 2는 본 개시의 일 실시예에 따른 비디오 영상에 보케 효과를 적용하는 방법의 순서도이다.
도 3은 본 개시의 일 실시예에 따른 비디오 영상에 보케 효과를 적용하는 시스템의 블록도이다.
도 4는 본 개시의 일 실시예에 따른 비디오 영상에 보케 효과를 적용하는 시스템의 처리부의 영상 처리 방법의 순서도이다.
도 5는 본 개시의 일 실시예에 따른 이미지의 추출된 특성 정보를 분석하는 과정을 설명하기 위한 예시도이다.
도 6은 본 개시의 일 실시예에 따른 이미지의 추출된 특성 정보를 분석하는 과정에서 객체의 포즈를 분류하는 과정을 설명하기 위한 예시도이다.
도 7은 본 개시의 일 실시예에 따른 이미지의 추출된 특성 정보를 분석하는 과정에서 이미지 내에 포함된 점근선(지평선) 및 소실점의 높이 중 적어도 하나를 탐지하여, 이미지 내의 심도(depth) 특성을 분석하는 과정을 설명하기 위한 예시도이다.
도 8은 본 개시의 일 실시예에 따른 이미지의 분석된 특성 정보를 기초로 이미지에 적용될 보케 효과의 종류 및 적용 방식을 결정하는 과정을 설명하기 위한 예시도이다.
도 9는 본 개시의 일 실시예에 따른 이미지의 분석된 특성 정보를 기초로 이미지에 적용될 보케 효과의 종류 및 적용 방식을 결정하는 과정을 설명하기 위한 예시도이다.
도 10은 본 개시의 일 실시예에 따른 보케 비디오 영상에 대한 보케 효과의 강도에 대한 입력 정보를 수신하는 과정을 설명하기 위한 예시도이다.
도 11은 본 개시의 일 실시예에 따른 보케 효과를 이미지에 적용하는 단계를 설명하기 위한 순서도이다.
도 12는 본 개시의 일 실시예에 따른 깊이 맵을 세그멘테이션 마스크를 이용하여 깊이 맵을 보정하는 과정을 설명하기 위한 예시도이다.
도 13은 본 개시의 일 실시예에 따른 비디오 보케 솔루션의 데이터 흐름을 나타내는 개략도이다.
도 14는 본 개시의 일 실시예에 따른 비디오 보케 솔루션의 데이터 흐름을 나타내는 개략도이다.
도 15는 본 개시의 일 실시예에 따른 비디오 보케 솔루션의 데이터 흐름을 나타내는 개략도이다.
도 16은 본 개시의 일 실시예에 따른 비디오 보케 솔루션의 데이터 흐름을 나타내는 블록도이다.
도 17은 본 개시의 일 실시예에 따른 인공신경망 모델을 나타내는 예시도이다.
이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.
첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.
개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.
본 개시에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다.
본 개시에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다.
본 개시의 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.
본 개시에서, 용어 '모듈'은 소프트웨어 또는 하드웨어 구성요소를 의미하며, '모듈'은 어떤 역할들을 수행한다. 그렇지만 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '모듈'들은 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈'들로 결합되거나 추가적인 구성요소들과 '모듈'들로 더 분리될 수 있다.
소프트웨어 또는 하드웨어 구성요소를 의미하며, '모듈'은 어떤 역할들을 수행한다.
본 개시에서, '시스템'은 서버 장치와 클라우드 서버 장치 중 적어도 하나의 장치를 지칭할 수 있지만, 이에 한정되는 것은 아니다.
본 개시에서, '사용자 단말'은 통신 모듈을 구비하여 네트워크 연결이 가능하고, 웹사이트, 애플리케이션 등을 접속하여 컨텐츠 출력이 가능한 임의의 전자기기(예를 들어, 스마트폰, PC, 태블릿 PC, 랩톱 PC 등)를 포함할 수 있다. 사용자는 사용자 단말을 통해 사용자 단말의 인터페이스(예를 들어, 터치 디스플레이, 키보드, 마우스, 터치펜 또는 스틸러스, 마이크로폰, 동작인식 센서 등)를 통한 입력에 의해 네트워크를 통해 접속가능한 임의의 컨텐츠를 제공받을 수 있다. 도 1은 본 개시의 일 실시예에 따른 비디오 영상에 보케 효과를 적용하는 방법의 예시도이다.
도 1에서는, 사용자 단말(100)이 스마트 폰으로 도시되었으나, 이에 한정되는 것은 아니며, 카메라를 구비하여 촬영을 할 수 있고, CPU(중앙처리장치, Central Processing Unit) 또는 GPU(그래픽처리장치, Graphics Processing Unit) 또는 NPU(신경망처리장치, Neural Processing Unit) 등의 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행할 수 있는 장치를 구비하고, 비디오 영상 컨텐츠 출력이 가능한 임의의 전자기기(예를 들어, PC, 태플릿 PC, 랩톱 PC 등)일 수 있다. 사용자는 사용자 단말(100)의 인터페이스(예를 들어, 터치 디스플레이, 키보드, 마우스, 터치펜 또는 스틸러스, 마이크로폰, 동작인식 센서)를 통한 입력에 의해 비디오 영상에 적용될 보케 효과의 강도를 제어할 수 있다. 또 다른 예로서, 사용자 단말(100)은 임의의 서버가 제공하는 애플리케이션을 통해 비디오 영상에 보케 효과를 적용하는 서비스를 제공받을 수 있다.
도 1에 도시된 바와 같이, 사용자 단말(100)에서 비디오 영상에 보케 효과를 적용할 수 있다. 일 실시예에서, 배경 영역(110)은 흐림 효과가 적용되고, 인물 객체 영역(120)인 전경 영역은 흐림 효과가 적용되지 않는, 실시간으로 보케 효과를 처리하는 것을 녹화와 동시에 화면으로 확인할 수 있다.
도 2는 본 개시의 일 실시예에 따른 비디오 영상에 보케 효과를 적용하는 방법의 순서도이다. 사용자 단말에서 비디오 영상에 보케 효과를 적용하는 방법에 있어서, 비디오 영상에 포함된 이미지로부터 이미지의 특성 정보를 추출하는 단계, 이미지의 추출된 특성 정보를 분석하는 단계, 이미지의 분석된 특성 정보를 기초로 이미지에 적용될 보케 효과를 결정하는 단계 및 결정된 보케 효과를 이미지에 적용하는 단계를 포함할 수 있다.
단계 S210에서 보케 효과 적용 시스템은 비디오 영상에 포함된 이미지로부터 이미지의 특성 정보를 추출할 수 있다. 특성 정보는 영상 내 픽셀의 RGB 값 등의 영상으로부터 추출할 수 있는 정보를 의미할 수 있으며, 이에 한정되지 않는다.
단계 S220에서 보케 효과 적용 시스템은 이미지의 추출된 특성 정보를 분석할 수 있다. 예를 들어, 입력 영상으로부터 추출한 특성 정보를 수신해, 입력 영상에 적용될 보케 효과의 종류와 강도를 결정하기 위한 특성 정보를 분석할 수 있다.
단계 S230에서 보케 효과 적용 시스템은 이미지의 분석된 특성 정보를 기초로 이미지에 적용될 보케 효과를 결정할 수 있다. 결정하는 보케 효과는 Flat Bokeh 또는 Gradient Bokeh 등을 포함할 수 있으며, 이에 한정되지 않는다.
단계 S240에서 보케 효과 적용 시스템은 결정된 보케 효과를 이미지에 적용할 수 있는데, 상세한 구성은 아래 도 3 및 4을 참조하여 설명된다.
도 3은 본 개시의 일 실시예에 따른 비디오 영상에 보케 효과를 적용하는 시스템의 블록도이다. 도 3에 도시된 바와 같이 보케 효과 적용 시스템(300)은, 촬상부(310), 입력부(320), 출력부(330), 처리부(340), 저장부(350) 및 통신부(360)를 포함할 수 있다.
일 실시예에서, 촬상부(310)는, 보케 효과를 적용하기 위한 입력 영상을 촬영해 저장부(350)로 송신할 수 있다. 촬상부(310)는, 카메라 등을 구비하여 사진 또는 영상을 촬영할 수 있다. 카메라는 하나의 렌즈와 하나의 센서를 단안 카메라 또는 두 개 이상의 렌즈와 센서를 갖는 카메라로 구성될 수 있으며, 이에 한정되지 않는다.
일 실시예에서, 입력부(320)는, 보케 효과 적용부(440)에서 입력 영상에 보케 효과를 적용하는데 있어서 적용할 보케 효과의 종류, 강도 및 강도 분포를 결정하기 위해, 사용자로부터 입력 강도를 수신할 수 있다.
일 실시예에서, 출력부(330)는, 입력 영상에 대해 보케 효과를 적용한 영상을 저장부(350)로부터 수신해 출력할 수 있다.
다른 실시예에서, 출력부(330)는, 입력 영상에 대해 보케 효과를 적용한 영상을 출력해 실시간으로 확인할 수 있다.
일 실시예에서, 처리부(340)는, 입력 영상으로부터 특성 정보를 추출하고, 추출한 특성 정보에 기초하여 특성 정보를 분석할 수 있고, 분석된 특성 정보를 기초로 보케 효과를 결정할 수 있다. 또한, 결정된 보케 효과와 사용자로부터 수신한 보케 효과의 강도에 대한 입력 정보에 기초해, 적용하는 흐림 효과의 강도 또는 흐림 효과 강도의 분포를 결정할 수 있는데, 처리부(340)의 상세한 구성은 아래 도 4 및 도 11을 참조하여 설명된다.
일 실시예에서. 저장부(350)는, 촬상부(310)로부터 촬상된 영상을 저장하거나, 처리부(340)에서 입력 영상에 보케 효과를 적용하는 일련의 과정에서 생성한 영상들(예를 들어 서브 이미지, 혼합 이미지, 다운 샘플링 영상 등) 및 최종 출력 영상을 저장할 수 있다. 또한, 통신부(360)로부터 수신한 외부 입력 영상 등을 저장할 수 있다. 저장부(350)는 저장부(350)에 저장된 영상을 출력부(330)를 통해 출력하거나, 처리부(340)에서 입력 영상에 보케 효과를 적용하기 위해 사용하는 영상들을 통신부(360)를 통해 송신할 수 있다.
일 실시예에서, 통신부(360)는 보케 효과 적용 시스템(300) 내부의 데이터 교환 또는, 외부의 서버와 통신하여 영상 등의 데이터를 송신 및 수신할 수 있다. 다른 실시예에서, 통신부(360)는, 임의의 서버가 제공하는 애플리케이션을 통해 비디오 영상에 보케 효과를 적용하는 서비스를 수신할 수 있다.
도 4는 본 개시의 일 실시예에 따른 비디오 영상에 보케 효과를 적용하는 시스템의 처리부의 영상 처리 방법의 순서도이다. 처리부(340)는 촬상부(310)로부터 수신한 촬영 중인 영상 또는, 저장부(350)로부터 수신한 사용자 단말(100)에 저장되어 있는 영상을 입력 영상으로 수신하여, 보케 효과를 적용시켜 출력할 수 있다. 도 4에 도시된 바와 같이 처리부(340)는, 특성 정보 추출부(410), 특성 정보 분석부(420), 보케 효과 결정부(430) 및 보케 효과 적용부(440)를 포함할 수 있다. 처리부(340)는, 룰 기반(Rule-base) 알고리즘의 인공지능부터 머신 러닝(Machine Learning), CNN(Convolutional Neural Network), RNN(Recurrent Neural Network) 및 DNN(Deep Neural Network) 등의 종래에 알려진 인공지능 기술로 구현될 수 있다.
일 실시예에서, 특성 정보 추출부(410)는, 특성 정보 분석부(420)가 입력 영상에 대한 특성 정보를 분석하기 위해 필요한, 영상 내 픽셀의 RGB 값 등의 영상으로부터 추출할 수 있는 정보를 의미할 수 있으며, 이에 한정되지 않는다.
일 실시예에서, 특성 정보 분석부(420)는, 특성 정보 추출부(410)에서 추출한 특성 정보를 수신해, 입력 영상에 적용될 보케 효과의 종류와 강도를 결정하기 위한 특성 정보를 분석할 수 있다. 특성 정보 분석부(420)에서 특성 정보를 분석해 생성하는 분석된 이미지 특성 정보는, 이미지 내 객체, 이미지 내 객체에 대응하는 영역(bounding box), 이미지 내의 객체의 에지(edge)에 대응하는 세그멘테이션 마스크(segmentation mask), 이미지 내 객체의 얼굴 영역(head bounding box), 얼굴 영역에서 사람 얼굴의 눈, 코 및 입 등의 얼굴 특징점(facial feature) 또는 랜드마크(land mark), 이미지 내 객체의 비율 및 포즈(pose), 이미지 내 객체의 접지 영역, 이미지 내에 포함된 배경의 점근선(지평선 또는 수평선), 소실점 및 각 분석된 요소의 위치, 크기 및 방향 등의 computer vision 정보를 의미할 수 있으며, 이에 한정되지 않는다. 또한, 특성 정보 분석부(420)의 상세한 구성은 아래 도 5 내지 7을 참조하여 설명된다.
일 실시예에서, 보케 효과 결정부(430)는, 특성 정보 분석부(420)로부터 분석된 영상의 특성 정보를 기초로 입력 영상에 적용할 보케 효과를 결정할 수 있다. 보케 효과 결정부(430)에서 결정하는 보케 효과는 Flat Bokeh 또는 Gradient Bokeh 등을 포함할 수 있으며, 이에 한정되지 않는다. 또한, 특성 정보 분석부(420)는 Rule-base 기반 인공지능 또는 Classification task를 수행하는 간단한 인공신경망 등의 종래에 널리 알려진 인공지능 기술을 통해 구성될 수 있으며, 이에 한정되지 않는다. 그리고, 보케 효과 결정부(430)의 상세한 구성은 아래 도 8 및 9를 참조하여 설명된다.
일 실시예에서, 보케 효과 적용부(440)는, 사용자로부터 수신한 보케 효과의 강도에 대한 입력 정보에 기초해 Flat Bokeh의 강도 또는 Gradient Bokeh의 흐림 효과의 강도의 분포를 결정할 수 있다. 처리부(340)는, 후술하는 도 11에 도시된 바와 같이, 또한, 보케 효과 적용부(440)의 서브 이미지 생성 모듈(1110)은, 입력 영상을 입력 영상보다 낮은 해상도로 다운샘플링한 서브 이미지와 생성된 서브 이미지에 블러 효과를 적용한 서브 이미지들을 저장부(350)에 저장할 수 있다.
일 실시예에서, 보케 효과 적용부(440)의 서브 이미지 혼합 모듈(1120)은, 입력 영상에 Gradient Bokeh 적용 시, 서브 이미지 생성 모듈(1110)에 의해 생성된 흐림 효과가 적용된 서브 이미지들을 혼합하여, 혼합 이미지를 저장부(350)에 저장할 수 있다.
일 실시예에서, 보케 효과 적용부(440)의 혼합 이미지 업샘플링 모듈(1130)은, 서브 이미지 혼합 모듈(1120)에서 혼합된 낮은 해상도의 이미지를 업샘플링 할 수 있다.
일 실시예에서, 보케 효과 적용부(440)의 선명도 보정 모듈(1140)은, 블러 효과를 적용하기 전의 원본 입력 영상을 이용하여, 보케 효과 적용 영상의 선명도를 보정할 수 있다.
도 5는 본 개시의 일 실시예에 따른 이미지의 추출된 특성 정보를 분석하는 과정을 설명하기 위한 예시도이다. 도 5에 도시된 바와 같이, 특성 정보 분석부(420)는 특성 정보 추출부(410)에서 추출한 특성 정보를 수신해, 입력 영상에 적용될 보케 효과의 종류와 강도를 결정하기 위한 특성 정보를 분석할 수 있다.
일 실시예에서, 특성 정보 분석부(420)는 특성 정보 추출부에서 추출한 특성 정보를 기초로, 이미지(510, 530) 내의 객체를 탐지하여, 이미지 내의 객체에 대응하는 영역(bounding box)(515, 535) 및 이미지 내의 객체에 대응하는 세그멘테이션 마스크(segmentation mask)(525, 545)를 생성할 수 있다. CNN(Convolutional Neural Network), DNN(Deep Neural Network) 등의 널리 알려진 다양한 종류의 인공 지능 기술로 객체 탐지(object detection)해 생성할 수 있다.
일 실시예에서, 특성 정보 분석부(420)는 이미지 내에서의 객체에 대응하는 영역의 위치, 크기 및 방향 중 적어도 하나를 결정할 수 있다. 또한, 특성 정보 분석부(420)는 객체에 대응하는 영역의 위치, 크기 및 방향 중 적어도 하나에 대한 정보에 기초하여 이미지의 특성을 분석하여 보케 효과 결정부(430)에 분석된 특성 정보를 송신할 수 있다.
예를 들어, 특성 정보 분석부(420)는 이미지 내에서 객체에 대응하는 영역(515)의 크기가 전체 이미지 내 절반(50%) 이상의 크기이고, 이미지 내에서 객체에 대응하는 영역(515)이 이미지의(510) 모서리에 붙어 있으면, 셀피(selfie)인 것으로 이미지 특성을 결정할 수 있다.
예를 들어, 특성 정보 분석부(420)는 이미지 내에서 객체에 대응하는 영역(535)의 크기가 전체 이미지 내 절반(50%) 이하의 크기이거나, 이미지 내에서 객체에 대응하는 영역(535)이 이미지(530) 모서리에 붙어 있지 않으면, 전신 샷(full body shot)인 것으로 이미지 특성을 결정할 수 있다.
일 실시예에서, 이미지 특성이 셀피 인지 전신 샷 인지 여부는 보케 효과 결정부(430)에서 이미지에 적용할 보케 효과의 종류를 결정하는데 사용될 수 있다.
도 6은 본 개시의 일 실시예에 따른 이미지의 추출된 특성 정보를 분석하는 과정에서 객체의 포즈를 분류하는 과정을 설명하기 위한 예시도이다. 도 6에 도시된 바와 같이, 이미지 내의 객체는, 이미지 내에 포함된 인물 객체, 얼굴 객체, 랜드마크 객체 중 적어도 하나의 객체를 포함할 수 있다. 또한, 이미지 내에서의 객체의 위치, 크기 및 방향 중 적어도 하나를 결정하는 단계는 이미지의 크기와 객체에 대응하는 영역의 크기의 비율을 결정하는 단계를 포함할 수 있다. 또한, 객체의 위치, 크기 및 방향 중 적어도 하나에 대한 정보에 기초하여 이미지의 특성을 분석하는 단계는 이미지 내에 포함된 객체의 포즈(pose)를 분류하는 단계를 포함할 수 있다.
일 실시예에서, 이미지(610) 내의 객체는, 이미지 내에 포함된 인물 객체(612), 얼굴 객체(614), 랜드마크 객체 및 중 적어도 하나의 객체를 포함할 수 있다. 랜드마크 객체는 이미지 내의 얼굴 객체(614)에서 사람 얼굴의 눈, 코 및 입 등의 얼굴 특징점을 의미할 수 있다.
일 실시예에서, 특성 정보 분석부(420)는, 이미지 내의 객체(612) 및 얼굴 객체(614) 위치, 크기, 방향 및 비율 중 적어도 하나에 대한 정보에 기초하여 이미지 내에 포함된 객체의 비율 및 포즈(pose)를 분류할 수 있다. 예를 들어, 이미지 내의 객체(612) 내에서 얼굴 객체(614)의 위치, 크기, 방향 및 비율 정보를 기초로 이미지 내의 인물이 서있는지 앉아있는지를 판단할 수 있다.
일 실시예에서, 이미지 내의 객체(612) 내에서 얼굴 객체(614)의 반대편에, 접지 영역(616)이 존재한다고 추론할 수 있다. 접지 영역(616) 정보는 보케 효과 결정부(430)에서 적용할 보케 효과의 강도를 결정하는데 사용될 수 있다. 예를 들어, 접지 영역(616)은 배경 영역 중 이미지 내에 포함된 인물 객체(612)와 가장 거리상 가까운 영역으로 추론될 수 있다. 따라서, 보케 효과 결정부(430)에서 배경 영역 중 블러 효과가 가장 적게 들어갈 영역으로 결정될 수 있다.
도 7은 본 개시의 일 실시예에 따른 이미지의 추출된 특성 정보를 분석하는 과정에서 이미지 내에 포함된 점근선(지평선) 및 소실점의 높이 중 적어도 하나를 탐지하여, 이미지 내의 심도(depth) 특성을 분석하는 과정을 설명하기 위한 예시도이다. 도 7에 도시된 바와 같이, 이미지의 추출된 특성 정보를 분석하는 단계는, 이미지 내에 포함된 점근선(지평선) 및 소실점의 높이 중 적어도 하나를 탐지하는 단계, 탐지된 점근선 및 소실점의 높이 중 적어도 하나를 기초로 이미지 내의 심도(depth) 특성을 분석하는 단계를 포함할 수 있다.
일 실시예에서, 특성 정보 분석부(420)는 소실점을 탐지할 수 있는 배경 요소가 있는 이미지(710)에서 소실점(715)을 탐지해, 보케 효과 결정부(430)로 송신할 수 있다. 소실점(715)은, 이미지 내 에지(edge) 성분들이 일정한 범위에 교차하는 점을 의미할 수 있다. 원근법에 의해 물체는 관찰자 시점에 가까울수록 크게 투영되고, 관찰자 시점에서 멀어질수록 작게 투영되어, 물체는 점점 작게 투영되며, 이를 선으로 표현하면 관찰자 시점에서 멀어질수록 선과 선이 만나, 소실점(715)을 형성할 수 있다. 즉, 소실점(715)은 하늘 영역을 제외하면 이미지 내 카메라로부터 실제 거리가 가장 먼 영역으로 추론될 수 있다. 따라서, 보케 효과 결정부(430)에서 소실점(715)은 배경 영역 중 블러 효과가 가장 많이 들어갈 영역으로 결정될 수 있다.
일 실시예에서, 특성 정보 분석부(420)는 점근선(지평선)을 탐지할 수 있는 배경 요소가 있는 이미지(720)에서 점근선(지평선 또는 수평선)(725)을 탐지해, 보케 효과 결정부(430)로 송신할 수 있다. 점근선(725) 또한 소실점과 마찬가지로 하늘 영역을 제외하면 이미지 내 카메라로부터 실제 거리가 가장 먼 영역으로 추론될 수 있다. 따라서, 보케 효과 결정부(430)에서 점근선(725)은 배경 영역 중 블러 효과가 가장 많이 들어갈 영역으로 결정될 수 있다.
이하에서는, 도 8 및 9를 참조하여 본 발명의 일 실시예에 따른 보케 효과 결정부(430)에서 이미지 특성에 따라 보케 효과를 결정하는 과정에 대하여 설명한다. 도 8 및 9에 도시된 바와 같이 이미지에 적용될 보케 효과를 결정하는 단계는, 이미지의 분석된 특성 정보를 기초로 이미지의 적어도 일부분에 적용될 보케 효과의 종류 및 적용 방식을 결정하는 단계를 포함할 수 있다. 보케 효과 결정부(430)는 classification task를 수행하는 간단한 인공신경망으로 구현될 수 있다. 배경 영역의 흐림 효과의 강도의 경우, 검은색에 가까울수록 흐림 강도가 강한 영역으로 도시되었고, 흰색에 가까울수록 흐림 강도가 약한 영역으로 도시하였다.
도 8은 본 개시의 일 실시예에 따른 이미지의 분석된 특성 정보를 기초로 이미지에 적용될 보케 효과의 종류 및 적용 방식을 결정하는 과정을 설명하기 위한 예시도이다. 보케 효과 결정부(430)에서는 입력 영상(810)에 적용할 보케 효과를 결정할 수 있다. 보케 효과 결정부(430)에서 결정하는 보케 효과의 종류는 Flat Bokeh 또는 Gradient Bokeh 등을 포함할 수 있다. 보케 효과 결정부(430)는 Flat Bokeh의 흐림 강도, Gradient Bokeh의 흐림 강도의 분포를 결정할 수 있다.
도 8에 도시된 바와 같이 Flat Bokeh가 적용된 영상(820)은 이미지에서 배경 영역이 일괄적으로 같은 강도의 흐림 효과가 적용될 수 있다. Gradient Bokeh가 적용된 영상(830)은 이미지에서 배경 영역이 수평 또는 수직 축을 따라 흐림 강도가 다르게 적용될 수 있다.
일 실시예에서, 도 8에 도시된 바와 같이 수직 방향으로 Gradient Bokeh가 적용된 영상(830)은 수평 방향의 흐림 강도는 동일하게 적용될 수 있다. Gradient Bokeh에서는 배경 영역의 초점이 맞는 부분(또는 초점이 맞았다고 분석된 부분)이 가장 흐림 효과를 적게 받거나 흐림 효과를 받지 않을 수 있다. Gradient Bokeh에서는 배경 영역의 실제 거리가 가장 먼 부분(또는 거리가 가장 멀 것이라고 분석된 부분)이 가장 흐림 효과를 강하게 받을 수 있다.
일 실시예에서, 도 8에 도시된 입력 영상(810)은 특성 정보 분석부(420)로부터 영상 특성이 셀피인 것으로 결정된 영상일 수 있다. 셀피 영상은 전체 영상에서 인물 객체가 차지하는 부분이 크고, 배경이 차지하는 영역이 작을 수 있다. 또한, 배경 영역 간의 카메라로부터의 거리 차이가 크지 않을 수 있다. 따라서, 블러 강도를 일괄적으로 처리하는 Flat Bokeh를 적용해도 보케 적용 영상이 자연스러워 보일 수 있다. 따라서, 보케 효과 결정부(430)에서는 영상 특성이 셀피인 영상은 Flat Bokeh를 적용하는 것이 적절하다고 결정할 수 있다.
다른 실시예에서, 보케 효과 결정부(430)는 Gradient Bokeh에 비해, 동작 속도가 빠르고 연산량이 적은 Flat Bokeh를 입력 영상(810)에 적용시키고, 셀피 영상의 보케 처리에서 심미적으로 중요한 부분인 인물 영역이 더욱 선명하고 정교한 에지(edge)를 가질 수 있도록, 흐림 효과가 적용되지 않을 영역인 인물 영역에 대응하는 세그멘테이션 마스크(Segmentation Mask)가 다시 산출될 수 있다.
도 9는 본 개시의 일 실시예에 따른 이미지의 분석된 특성 정보를 기초로 이미지에 적용될 보케 효과의 종류 및 적용 방식을 결정하는 과정을 설명하기 위한 예시도이다. 보케 효과 결정부(430)에서는 입력 영상(910)에 적용할 보케 효과를 결정할 수 있다.
일 실시예에서, 도 9에 도시된 입력 영상(910)은 특성 정보 분석부(420)로부터 영상 특성이 전신 샷인 것으로 결정된 영상일 수 있다. 전신 샷 영상은 전체 영상에서 인물 객체가 차지하는 부분이 적고, 배경이 차지하는 영역이 클 수 있다. 또한, 배경 영역 간의 카메라로부터의 거리 차이가 클 수 있다. 따라서, 블러 강도를 일괄적으로 처리하는 Flat Bokeh가 적용된 영상(920)은 부자연스러워 보일 수 있다. Gradient Bokeh가 적용된 영상(930)은 Flat Bokeh가 적용된 영상(920)에 비해 블러 효과가 배경 영역의 심도(depth) 특성을 유지하므로 자연스러워 보일 수 있다. 따라서, 보케 효과 결정부(430)에서는 영상 특성이 전신 샷인 영상은 Gradient Bokeh를 적용하는 것이 적절하다고 결정할 수 있다.
일 실시예에서, Gradient Bokeh가 적용된 영상(930)은 특성 정보 분석부(420)에서 분석한 소실점, 점근선 등의 영역은 배경 영역 중 실제 거리가 가장 멀거나, 거리가 가장 멀 것으로 분석된 부분이므로, 도 9에 도시된 바와 같이 흐림 효과가 가장 강한 영역(932)으로 결정될 수 있다.
일 실시예에서, Gradient Bokeh가 적용된 영상(930)은 특성 정보 분석부(420)에서 분석한 접지 영역은 배경 영역 중 실제 거리가 가장 가깝거나, 거리가 가장 가까울 것으로 분석된 부분이므로, 도 9에 도시된 바와 같이 흐림 효과가 가장 약하거나, 흐림 효과를 주지 않을 영역(934)로 결정될 수 있다.
도 10은 본 개시의 일 실시예에 따른 보케 비디오 영상에 대한 보케 효과의 강도에 대한 입력 정보를 수신하는 과정을 설명하기 위한 예시도이다. 도 10에 도시된 바와 같이, 보케 효과 적용 시스템은, 비디오 영상에 대한 보케 효과의 강도에 대한 입력 정보를 수신하는 단계를 더 포함할 수 있다. 그리고, 이미지에 보케 효과를 적용하는 단계는, 수신된 강도에 대한 입력 정보에 기초하여, 보케 효과의 강도를 결정해 이미지에 적용하는 단계를 포함할 수 있다. 배경 영역의 흐림 효과의 강도의 경우, 검은색에 가까울수록 흐림 강도가 강한 영역으로 도시되었고, 흰색에 가까울수록 흐림 강도가 약한 영역으로 도시되었다.
일 실시예에서, 보케 효과 적용부(440)는 사용자로부터 수신한 보케 효과의 강도에 대한 입력 정보(1015, 1025)에 기초해, Flat Bokeh의 강도를 결정할 수 있다. 예를 들어, 보케 효과 적용부(440)는 흐림 강도가 낮은 입력 정보(1015)를 수신하면, 배경의 흐림 강도가 약하게 적용된 영상(1010)을 출력할 수 있다. 흐림 강도가 높은 입력 정보(1025)를 수신하면, 배경의 흐림 강도가 강하게 적용된 영상(1020)을 출력할 수 있다.
다른 실시예에서, 보케 효과 적용부(440)는 사용자로부터 Gradient Bokeh에서 흐림 효과가 강한 영역의 강도 및 위치, 흐림 효과가 낮은 영역의 강도 및 위치를 결정해 이미지에 적용할 수 있다.
도 11은 본 개시의 일 실시예에 따른 보케 효과를 이미지에 적용하는 단계를 설명하기 위한 순서도이다. 도 11에 도시된 바와 같이, 결정된 보케 효과를 이미지에 적용하는 단계는, 이미지 내에서 블러 효과가 적용될 영역들에 대응하는 서브 이미지들을 생성하는 단계, 블러 효과를 서브 이미지들에 적용시키는 단계 및 블러 효과가 적용된 서브 이미지들을 혼합하는 단계를 포함할 수 있다. 또한, 이미지를 다운샘플링하여 이미지의 해상도보다 낮은 해상도의 이미지를 생성하는 단계를 더 포함할 수 있고, 이미지 내에서 블러 효과가 적용된 영역들에 대응하는 서브 이미지들을 생성하는 단계는 낮은 해상도의 이미지에서 서브 이미지에 대응하는 영역에 블러 효과를 적용하는 단계를 포함할 수 있다. 또한, 블러 효과가 적용된 서브 이미지들을 혼합하는 단계는 낮은 해상도의 이미지 및 블러 효과가 적용된 영역들에 대응하는 서브 이미지들을 혼합하는 단계, 이미지의 해상도와 동일하도록 서브 이미지들이 혼합된 낮은 해상도의 이미지를 업샘플링하는 단계, 이미지 및 업샘플링된 이미지들을 혼합하여 업샘플링된 이미지의 선명도를 보정하는 단계를 포함할 수 있다.
도 11에 도시된 바와 같이, 보케 효과 적용부(440)는 서브 이미지 생성 모듈(1110), 서브 이미지 혼합 모듈(1120), 혼합 이미지 업샘플링 모듈(1130) 및 선명도 보정 모듈(1140)을 포함할 수 있다.
일 실시예에서, 서브 이미지 생성 모듈(1110)은, 입력 영상에 Flat Bokeh 적용 시, 빠른 동작 속도를 확보하기 위해, 입력 영상을 입력 영상보다 낮은 해상도로 다운샘플링한 서브 이미지 및 다운샘플링한 이미지에 블러 효과가 적용된 서브 이미지를 생성해 저장부(350)에 저장할 수 있다. 객체 영역에 해당하는 세그멘테이션 마스크 내부 영역은 흐림 효과를 적용하지 않고, 생략하는 방식으로 흐림 효과에 필요한 연산량을 줄일 수 있다. 또한, 블러 처리 속도 향상 및 품질 향상을 위해, 블러 처리 전후에 일련의 image processing 단계가 추가될 수 있다.
일 실시예에서, 서브 이미지 생성 모듈(1110)은, 입력 영상에 Gradient Bokeh 적용 시, 빠른 동작 속도를 확보하기 위해, 입력 영상을 입력 영상보다 낮은 해상도로 다운샘플링한 이미지 및 다운샘플링한 이미지에 블러 효과를 적용한 서브 이미지를 생성해 저장부(350)에 저장할 수 있다. 서브 이미지는 Gradient Bokeh의 픽셀의 위치에 따라 달라지는 흐림 강도를 갖는 이미지를 생성하는 대신에, 특정한 흐림 강도를 갖는 Flat Bokeh 적용 이미지들을 생성할 수 있다. 예를 들어, 흐림 강도가 1~3단계가 있다고 하면, 자연스러운 보케 효과를 위해 흐림 강도가 1단계인 영역과 흐림 강도가 2단계인 영역 사이의 영역들은 1단계 흐림 강도를 갖는 영상과 2단계 흐림 강도를 갖는 영상을 혼합하여, 단계적 차이(Gradation)가 있는 흐림 강도를 갖도록 생성할 수 있다. 즉, 2단계 이상의 흐림 강도를 갖는 영역들은 1단계 흐림 강도를 갖는 영상을 준비할 필요가 없을 수 있다. 따라서, K단계의 흐림 효과를 적용한 영상은 K-1 보다 크고, K+1 보다 작은 흐림 효과를 갖는 영역에 대해서만 계산하는 방식으로 연산량을 줄일 수 있다. 또한, 인물 영역에 해당하는 세그멘테이션 마스크 내부 영역은 흐림 효과를 적용하지 않고, 생략하는 방식으로 흐림 효과에 필요한 연산량을 줄일 수 있다. 또한, 블러 처리 속도 향상 및 품질 향상을 위해, 블러 처리 전후에 일련의 image processing 단계가 추가될 수 있다.
다른 실시예에서, 서브 이미지 생성 모듈(1110)은, 서브 이미지를 생성하는 과정 중, 블러 효과를 적용하는 단계에서 빠른 동작 속도를 확보하기 위해, 블러 커널 5x5 계산 시, 블러 커널 3x3을 두 번 연산해 적용하는 방식을 사용할 수 있다. 또한, 빠른 동작 속도를 확보하기 위해, 블러 커널 3x3 계산 시, 블러 커널 1x3과 3x1을 합성하는 방식을 사용할 수 있다.
일 실시예에서, 서브 이미지 혼합 모듈(1120)은, 입력 영상에 Flat Bokeh 적용 시, 생략할 수 있다.
일 실시예에서, 서브 이미지 혼합 모듈(1120)은, 입력 영상에 Gradient Bokeh 적용 시, 서브 이미지 생성 모듈(1110)에 의해 생성된 흐림 효과가 적용된 이미지들을 혼합해 저장부(350)에 저장할 수 있다. 예를 들어, 1단계 흐림 강도를 갖는 영역과 2단계 흐림 강도를 갖는 영역 사이의 영역들은 1단계 흐림 강도를 갖는 영상과 2단계 흐림 강도를 갖는 영상을 선형적으로 혼합할 수 있다.
다른 실시예에서, 자연스러운 Gradient Bokeh 효과 구현을 위해, 서브 이미지 혼합 모듈(1120)은, 1단계 흐림 강도를 갖는 영상과 2단계 흐림 강도를 갖는 영상을, 2차함수 형태의 곡선으로 표현될 수 있는, 점진적 가중치를 갖는 비율로 혼합할 수 있다.
일 실시예에서, 혼합 이미지 업샘플링 모듈(1130)은, 서브 이미지 혼합 모듈(1120)에서 혼합된 낮은 해상도의 이미지를 업샘플링 할 수 있다.
일 실시예에서, 선명도 보정 모듈(1140)은, 블러 효과를 적용하기 전의 원본 영상을 이용하여 보케 효과 적용 영상의 선명도를 보정할 수 있다. 낮은 해상도에서 흐림 효과를 적용하지 않은 커널(1x1)과 흐림 효과를 적용한 커널(예를 들어, 3x3, 5x5 등)을 혼합하는 경우, 이를 높은 해상도로 업샘플링 했을 때 흐림 효과를 적용하지 않았던 위치라도, 다운샘플링 및 업샘플링 과정에서 손실되는 픽셀 값으로 인해, 이미지가 흐려져 보일 수 있다. 낮은 해상도에서 흐림 효과를 적용한 영상을 높은 해상도로 다시 업샘플링 후 선명도를 높이기 위하여, 흐림 효과를 적용하지 않은 커널(1x)에 해당하는 위치(예를 들어 세그멘테이션 마스크 내부의 인물 객체 영역)에 높은 해상도의 흐림 효과를 적용하지 않은 영상을 혼합해야 입력 영상의 선명도를 유지할 수 있다. 따라서, 해당 위치는 높은 해상도의 원본 입력 영상, 낮은 해상도의 흐림 효과를 적용하지 않은 영상, 흐림 효과가 적용되지 않은 낮은 해상도의 영상, 3가지가 혼합되기 때문에, 혼합 비율을 잘 못 설정하면, 영상에 잡음이나 픽셀 값이 변하는 문제가 생길 수 있다. 따라서, 원본 영상에 제곱근 비율을 사용하여, 처음에 적용한 흐림 효과의 비율을 유지하면서, 선명도를 보정할 수 있다.
예를 들어, 흐림 효과 적용 영상과 원본 영상의 비율이 0.7:0.3으로 혼합되어야 하는 경우, 먼저, 흐림 효과 적용 영상과 낮은 해상도의 흐림 효과를 적용하지 않은 영상의 혼합은 sqrt(0.7):1-sqrt(0.7)의 비율로 혼합되어 1차 혼합 영상이 생성될 수 있다. 그리고, 1차 혼합 영상이 업샘플링될 수 있다. 그리고, 1차 혼합 영상과 높은 해상도의 입력 영상의 혼합은 sqrt(0.7):1-sqrt(0.7)의 비율로 수행될 수 있다. 이에 따라, 흐림 효과 적용 영상과 낮은 해상도의 흐림 효과를 적용하지 않은 영상과 높은 해상도의 입력 영상의 혼합 비율은 약 0.7:0.14:0.16일 수 있다.
도 12는 본 개시의 일 실시예에 따른 깊이 맵을 세그멘테이션 마스크를 이용하여 깊이 맵을 보정하는 과정을 설명하기 위한 예시도이다. 본 개시의 일 실시예에 따른 사용자 단말에서 비디오 영상에 보케 효과를 적용하는 방법은, (a) 복수의 영상 프레임에 대한 정보를 수신하는 단계, (b) 복수의 영상 프레임에 대한 정보를 제1 인공신경망 모델에 입력하여 복수의 영상 프레임 내에 포함된 하나 이상의 객체에 대한 세그멘테이션 마스크(1220)를 생성하는 단계, (c) 복수의 영상 프레임에 대한 정보를 제2 인공신경망 모델에 입력하여 복수의 영상 프레임에 대한 깊이 맵(1210)을 추출하는 단계 및 (d) 생성된 세그멘테이션 마스크(1220) 및 추출된 깊이 맵(1210)을 기초로, 복수의 영상 프레임에 대한 심도 효과를 적용하는 단계를 포함할 수 있다.
다른 실시예에서, 이에 제한되지 않고, 촬상부(310)는 깊이 카메라를 포함할 수 있으며, 깊이 카메라를 통해 획득한 깊이 맵(1210)을 이용하여, 복수의 영상 프레임에 대한 심도 효과를 적용할 수도 있다. 예를 들어, 깊이 카메라는 ToF(Time of Flight) 센서, 구조광(Structured light) 센서를 포함할 수 있으나, 이에 제한되지 않고 본 개시에서는 스테레오 비전 방식(예를 들어, 듀얼 카메라로 깊이 값 계산)으로 깊이 맵(1210)을 획득하는 경우에도 추가로 구비된 카메라 및 복수의 카메라를 이용해 깊이 값을 계산하는 프로세서를 깊이 카메라로 지칭할 수 있다.
본 개시의 일 실시예에 따른 보케 효과 적용 시스템은, 이미지에 보케 효과를 적용하는 이미지 버전과 비디오 영상에 보케 효과를 적용하는 비디오 버전을 포함할 수 있다. 이미지에 보케 효과를 적용하기 위한 보케 효과 적용 시스템의 이미지 버전은, 입력 데이터(예를 들어, 이미지 또는 복수의 영상 프레임)가 입력된 후, 사용자 입력을 통해 초점의 위치를 변경할 때 및/또는 사용자 입력을 통해 블러(blur)의 강도를 변경할 때, 입력 데이터에 대한 보케 효과 적용이 실시간으로 처리될 수 있다. 또한, 범용성을 위해 ARM CPU만을 이용하여 처리할 때에도, 입력데이터에 대한 보케 효과 적용이 실시간으로 처리될 수 있다.
이미지에 보케 효과가 적용되는 이미지 버전은, 사용할 블러 커널(kernel)들에 대한 필터링 이미지(filtering image)를 미리 구하는 단계 및 휴먼 마스크(human mask)를 고려하여 마스크(mask)의 가장자리(edge) 주변 영역(예를 들어, Dilate한 영역과 Erode한 영역의 차이)에 대해 사람 영역과 배경(background) 영역이 서로 번지지 않도록 특수한 필터링을 한 값으로 채워주는 단계(예를 들어, 업데이트하는 단계)를 포함할 수 있다. 예를 들어, 이미지 전체에 보케 효과를 적용한다면, 사람 영역과 배경 영역의 경계선이 번져 보일 수 있다. 이에 따라, 사람 영역과 배경 영역을 분리하여, 배경 영역에 사람 영역이 분리된 공간에 사람 영역의 경계선 안쪽에 배경 영역의 픽셀을 채워 넣고 블러 효과를 적용한 다음, 미리 분리한 사람 영역을 다시 합성하여, 실제 DSLR 카메라로 촬영한 것과 유사한 고품질의 보케 효과 이미지를 획득할 수 있다.
또한, 이미지 버전은, 초점이 맞춰진 영역의 평균 깊이 맵(average depth map)과 강도(intensity)를 고려하여 얻은 정규화된 깊이 맵(normalized depth map)의 값에 따라 각 픽셀(pixel) 값을 미리 준비한 여러 필터링 이미지(예를 들어, 특수한 필터링을 한 값으로 채워진 이미지)를 이용하여 보간(interpolation)한 결과를 얻어내는 단계를 포함할 수 있다. 이와 같은 보케 방법을 이미지에 적용하면, 사용자가 입력하는 곳에 따라 초점을 변경할 때 및/또는 사용자 입력을 통해 블러의 강도를 변경할 때, 매번 필터링 과정을 수행할 필요 없이 정규화된 깊이 맵을 획득하는 단계 및 필터링 이미지로부터 보간하는 단계를 수행할 수 있다. 또한, 특수한 필터링을 한 값은, 이미지의 선명도(sharpness)를 향상시킬 수 있는 임의의 값을 지칭할 수 있으며, 예를 들어, 샤프닝(sharpening) 효과를 줄 수 있는 라플라시안 커널(Laplacian kernel)을 적용한 값을 포함할 수 있다.
일 실시예에서, 보케 효과 적용 시스템은, 입력 데이터가 이미지인 경우, 필터링(filtering)이 먼저 적용되고, 정규화된 깊이 맵에 따라 보간법(interpolation)이 적용될 수 있다. 여기서, 여러 커널의 크기 및 타입 중 적어도 하나에 따라 필터링 이미지를 미리 생성해 놓을 수 있다. 예를 들어, 입력 데이터가 이미지인 경우, 하나의 이미지에 다양한 필터를 미리 적용해 놓고, 필요한 효과에 따라 필터가 적용된 이미지를 블랜딩할 수 있다. 예를 들어, 필터링 커널 사이즈가 1, 3, 7, 15인 경우, 커널 사이즈 7 및 15의 필터링 결과물을 블랜딩하여 필터링 커널 사이즈 11의 결과물과 유사한 결과물을 출력할 수 있다.
일 실시예에서, 보케 효과 적용 시스템은, 입력 데이터가 비디오 영상인 경우, 정규화된 깊이 맵에 따라 필터링 및 보간법이 동시에 이루어지는 방식을 수행할 수 있다. 이때, 보케 효과 적용 시스템은, 예를 들어, 하나의 픽셀에 대해 필터링을 한 번만 수행할 수 있어, 필터링 커널의 사이즈를 더 촘촘하게 구성할 수 있다. 예를 들어, 이미지 버전에서 커널의 사이즈를 1, 3, 7, 15를 사용한다면, 비디오 버전에서는 커널의 사이즈를 1, 3, 5, 7, 9, 11, 13, 15를 사용할 수 있다. 즉, 비디오는 짧은 시간에 여러 개의 이미지를 출력해야 하기 때문에, 이미지 버전과 같이 복수의 필터가 적용된 이미지를 블랜딩하는 것 보다는, 필요한 필터를 생성해 두고 한 번에 적용하는 것이 성능상 유리할 수 있다.
다른 실시예에서, 보케 효과 적용 시스템을 구성하는 하드웨어의 성능에 따라, 이미지 버전 및 비디오 버전의 수행 방법이 상호 수행될 수 있다. 예를 들어, 성능이 낮은 하드웨어로 구성된 보케 효과 적용 시스템에서는 이미지 버전에서, 본래의 비디오 버전의 수행 방법이 실행될 수 있고, 성능이 높은 하드웨어로 구성된 보케 효과 적용 시스템에서는 비디오 버전에서, 본래의 이미지 버전의 수행 방법이 실행될 수 있으나, 이에 제한되지 않고, 다양한 방식의 필터링 과정이 수행될 수 있다.
일 실시예에서, 비디오 영상에 보케 효과가 적용되는 비디오 버전은, 프레임 컬러(frame color), 깊이(depth), 마스크(mask)가 입력될 때마다 초점을 맞추는 지점과 블러 강도가 바뀔 수 있고, 처리율(throughput)이 동영상 장치에서 프레임을 처리하는 속도에 맞도록 설정될 수 있다(예를 들어, 30fps(frame per second) 또는 60fps). 예를 들어, 처리율이 30fps 또는 60fps에 맞추어 처리하기 위해 컴퓨팅 유닛(computing unit)을 이용하여 파이프라인(pipeline) 기술이 적용될 수 있다.
비디오 영상에 보케 효과가 적용되는 비디오 버전은, 초점이 맞춰진 영역의 평균 깊이 맵(average depth map)과 강도(intensity)를 고려하여 얻은 정규화된 깊이 맵(normalized depth map)의 값에 따라 각 픽셀 값의 깊이 값을 얻어내는 단계 및 각 픽셀의 깊이 값 등에 따라 각 픽셀에서 사용할 커널을 결정하고 필터링하는 단계를 수행할 수 있다. 여기서, 예를 들어, 깊이 값이 0.6인 픽셀의 경우 4/7일 수 있다.
또한, 도 12에 도시된 바와 같이, (d) 단계는, 생성된 세그멘테이션 마스크(1220)를 이용하여 추출된 깊이 맵(1210)을 보정하는 단계 및 보정된 깊이 맵(1230)을 기초로 복수의 영상 프레임에 대한 심도 효과를 적용하는 단계를 포함할 수 있다.
일 실시예에서, 도 12에 도시된 바와 같이, 제2 인공신경망을 통해 추출된 깊이 맵(1210)은 깊이 정보가 부정확할 수 있다. 예를 들어, 이미지 또는 복수의 영상 프레임 내에 포함된 인물의 손가락과 같은 작고 세밀한 부분의 경계가 모호할 수 있다. 또는, 상의와 외투의 색상 차이로 인해, 깊이 정보가 부정확하게 추출될 수 있다.
따라서, 본 개시의 일 실시예에 따른 보케 효과 적용 시스템은, 제1 인공신경망을 통해 생성된 세그멘테이션 마스크(1220)를 이용해 세그멘테이션 마스크(1220)의 내부 및 외부의 깊이 정보를 각각 정규화 할 수 있다.
심도 효과를 적용함에 있어, 초점을 맞추고자 하는 부분이 포커싱할 물체를 탐지 및 분할하는 과정에서 얻어낸 분할 영역에 포함되지 않는 경우, 깊이 맵을 보정할 때 사용할 세그멘테이션 마스크가 사용될 수 있다.
깊이 맵을 보정하는 방법은, 초점을 맞출 분할 영역 내부의 깊이 맵의 범위를 정해진 범위 이내로 정규화(normalize)하는 단계를 포함할 수 있다. 또한, 깊이 맵을 개선하는 과정은, 선택되지 않은 분할 영역 내부의 깊이 맵을 균질하게 만드는 단계를 포함할 수 있다. 예를 들어, 평균 값으로 통일하거나, 아래 수학식 1을 통해 분산을 작게 만들거나, 평균 필터링(median filtering)을 적용할 수 있다.
[수학식 1]
대표값
Figure PCTKR2020012058-appb-img-000001
alpha + 현재값
Figure PCTKR2020012058-appb-img-000002
(1-alpha)
또한, 깊이 맵에서 초점을 맞출 분할 영역 내부의 깊이 맵의 대표값(예를 들어, 평균)을 빼고, 절대값을 취하여 평균화하는 단계를 포함할 수 있다.
도 13 내지 16을 통해 본 개시의 일 실시예에 따른 비디오 보케 솔루션의 데이터 흐름을 서술한다. 일 실시예에서, (a) 단계 내지 (d) 단계의 각각은 복수의 이기종 프로세서 중 어느 하나의 프로세서에 의해 실행될 수 있다.
도 13 내지 16에 도시되어 있는 프로세서 A, 프로세서 B, 프로세서 C는 각각 간단한 전처리 작업과 데이터 수행의 중재 역할을 할 수 있는 프로세서, 화면을 그리는 작업을 담당하는 프로세서, 뉴럴 네트워크 연산을 수행하기에 최적화된 프로세서(예를 들어, DSP, NPU, Neural Accelerator 등)일 수 있으나 이에 한정되는 것은 아니다. 또한, 일 예로, 프로세서 A는 CPU, 프로세서 B는 GPU(예를 들어, GL 인터페이스를 가진 GPU 등), 프로세서 C는 DSP일 수 있으나, 이에 한정되지 않으며, 프로세서 A 내지 C의 각각은 프로세서 구성을 실행할 수 있는 알려진 프로세서 중 하나를 포함할 수 있다.
도 13은 카메라로부터 촬상된 이미지 데이터가 프로세서 C로 바로 입력되는 시스템을 도시하고 있으나, 이에 한정되지 않으며, 카메라 입력을 바로 수신할 수 있는 프로세서는 하나 이상의 프로세서로 입력되어 처리될 수 있다. 또한, 도 14에서는 뉴럴 네트워크가 두 프로세서(프로세서 A 및 C)에서 수행되는 것으로 도시되어 있으나, 이에 한정되지 않으며, 여러 프로세서에서 병렬적으로 수행될 수 있다. 도 15에서는 각각의 작업이 각 프로세서에서 처리되는 것으로 도시되어 있으나, 각 작업이 복수의 프로세서에서 단계적으로 나누어져 처리될 수 있다. 예를 들어, 복수의 프로세서가 한 가지 작업을 직렬적으로 함께 처리할 수도 있다. 도 16에서 처리되는 데이터의 흐름도는 일 실시예로서, 이에 한정되지 않으며, 프로세서의 구성 및 기능에 따라 다양한 방식의 데이터 흐름도가 구현될 수 있다.
도 13은 본 개시의 일 실시예에 따른 비디오 보케 솔루션의 데이터 흐름을 나타내는 개략도이다. 도시된 바와 같이, 프로세서 B(1320)는 촬상부(310)로부터 프레임 이미지를 수신할 수 있다(S1340). 일 실시예에서, 프로세서 B(1320)는 수신한 프레임 이미지의 전처리를 수행할 수 있다(S1342).
일 실시예에서, 프로세서 C(1330)는 프로세서 B(1320)가 프레임 이미지를 수신하는 것과 동시에 프레임 이미지를 수신할 수 있다(S1350). 일 실시예에서, 프로세서 C(1330)는 제1 인공신경망 모델을 포함할 수 있다. 일 실시예에서, 프로세서 C(1330)는 제1 인공신경망 모델을 이용해 단계(S1350)에서 수신한 프레임 이미지에 대응하는 세그멘테이션 마스크를 생성할 수 있다(S1352). 일 실시예에서, 프로세서 C(1330)는 제2 인공신경망 모델을 포함할 수 있다. 프로세서 C(1330)는 제2 인공신경망 모델을 이용해 단계(S1350)에서 수신한 프레임 이미지에 대응하는 깊이 맵을 생성할 수 있다. 프로세서 C(1330)는 생성된 세그멘테이션 마스크 및 깊이 맵을 프로세서 A(1310)로 전송할 수 있다(S1356).
일 실시예에서, 프로세서 A(1310)는 프로세서 C(1330)로부터 세그멘테이션 마스크 및 깊이 맵을 수신할 수 있다(S1360). 일 실시예에서, 프로세서 A(1310)는 수신한 세그멘테이션 마스크 및 깊이 맵을 프로세서 B(1320)에게 전송할 수 있다(S1362).
일 실시예에서, 프로세서 B(1320)는 프로세서 A(1310)로부터 세그멘테이션 마스크 및 깊이 맵을 수신할 수 있다(S1364). 일 실시예에서, 프로세서 B(1320)는, 수신한 깊이 맵을 전처리 할 수 있다(S1370). 일 실시예에서, 프로세서 B(1320)는, 단계(S1342)에서 프로세서 B(1320)가 전처리한 이미지에 프로세서 A(1310)로부터 수신한 세그멘테이션 마스크, 단계(S1370)에서 프로세서 B(1320)가 전처리한 깊이 맵을 이용해 보케 필터를 적용할 수 있다(S1372). 일 실시예에서, 프로세서 B(1320)는 출력부(330)를 통해 보케 필터를 적용한 결과물에 해당하는 프레임 이미지를 출력할 수 있다(S1374).
도 14는 본 개시의 일 실시예에 따른 비디오 보케 솔루션의 데이터 흐름을 나타내는 개략도이다. 도시된 바와 같이, 프로세서 B(1320)는 촬상부(310)로부터 프레임 이미지를 수신할 수 있다(S1410). 일 실시예에서, 프로세서 B(1320)는 수신한 프레임 이미지의 전처리를 수행할 수 있다(S1412). 프로세서 B(1320)는 전처리된 이미지를 프로세서 A(1310)로 전송할 수 있다(S1414). 또한, 프로세서 B(1320)는 전처리된 이미지를 프로세서 C(1330)로 전송할 수 있다(S1416).
일 실시예에서, 프로세서 A(1310)는 프로세서 B(1320)로부터 전처리된 이미지를 수신할 수 있다(S1420). 일 실시예에서, 프로세서 A(1310)는 제2 인공신경망 모델을 포함할 수 있다. 프로세서 A(1310)는 제2 인공신경망 모델을 이용하여 단계(S1420)에서 수신한 전처리된 이미지에 대응하는 깊이 맵을 생성할 수 있다(S1422). 일 실시예에서, 프로세서 A(1310)는 단계(S1422)에서 생성된 깊이 맵의 전처리를 수행할 수 있다(S1424).
일 실시예에서, 프로세서 C(1330)는 프로세서 B(1320)로부터 전처리된 이미지를 수신할 수 있다(S1430). 일 실시예에서, 프로세서 C(1330)는 제1 인공신경망 모델을 포함할 수 있다. 프로세서 C(1330)는 제1 인공신경망 모델을 이용하여 단계(S1430)에서 수신한 전처리된 이미지에 대응하는 세그멘테이션 마스크를 생성할 수 있다(S1432). 또한, 프로세서 C(1330)는 생성한 세그멘테이션 마스크를 프로세서 A(1310)에게 전송할 수 있다(S1434).
일 실시예에서, 프로세서 A(1310)는 프로세서 C(1330)로부터 세그멘테이션 마스크를 수신할 수 있다. 일 실시예에서, 프로세서 A(1310)는 단계(S1420)에서 수신한 전처리된 이미지에 단계(S1440)에서 수신한 세그멘테이션 마스크 및 단계(S1424)에서 프로세서 A(1310)에 의해 전처리된 깊이 맵을 이용해 보케 효과 필터를 적용할 수 있다(S1442). 또한, 프로세서 A(1310)는 보케 필터 적용 결과를 프로세서 B(1320)에게 전송할 수 있다(S1444).
일 실시예에서, 프로세서 B(1320)는 프로세서 A(1310)로부터 보케 필터 적용 결과를 수신할 수 있다(S1446). 일 실시예에서, 프로세서 B(1320)는 출력부(330)를 통해 보케 필터를 적용한 결과물에 해당하는 프레임 이미지를 출력할 수 있다(S1450).
도 15는 본 개시의 일 실시예에 따른 비디오 보케 솔루션의 데이터 흐름을 나타내는 개략도이다. 도시된 바와 같이, 프로세서 B(1320)는 촬상부(310)로부터 프레임 이미지를 수신할 수 있다(S1510). 일 실시예에서, 프로세서 B(1320)는 수신한 프레임 이미지의 전처리를 수행할 수 있다(S1512). 프로세서 B(1320)는 전처리된 이미지를 프로세서 A(1310)로 전송할 수 있다(S1514).
일 실시예에서, 프로세서 A(1310)는 프로세서 B(1320)로부터 전처리된 이미지를 수신할 수 있다(S1520). 일 실시예에서, 프로세서 A(1310)는 프로세서 C(1330)에게 전처리된 이미지를 전송할 수 있다(S1522). 일 실시예에서, 프로세서 C(1330)는 프로세서 A(1310)로부터 전처리된 이미지를 수신할 수 있다(S1524).
일 실시예에서, 프로세서 C(1330)는 제1 인공신경망 모델을 포함할 수 있다. 프로세서 C(1330)는 제1 인공신경망 모델을 이용하여 단계(S1524)에서 수신한 전처리된 이미지에 대응하는 세그멘테이션 마스크를 생성할 수 있다. 일 실시예에서 프로세서 C(1330)는 제2 인공신경망 모델을 포함할 수 있다. 프로세서 C(1330)는 제2 인공신경망 모델을 이용하여 단계(S1524)에서 수신한 전처리된 이미지에 대응하는 깊이 맵을 생성할 수 있다. 또한, 프로세서 C(1330)는 생성한 세그멘테이션 마스크 및 깊이 맵을 프로세서 A(1310)에게 전송할 수 있다(S1534).
일 실시예에서, 프로세서 A(1310)는 프로세서 C(1330)로부터 세그멘테이션 마스크 및 깊이 맵을 수신할 수 있다(S1540). 일 실시예에서, 프로세서 A(1310)는 단계(S1540)에서 수신한 깊이 맵을 전처리할 수 있다(S1542). 또한, 프로세서 A(1310)는 단계(S1540)에서 수신한 세그멘테이션 마스크 및 단계(S1542)에서 전처리한 깊이 맵을 프로세서 B(1320)에게 전송할 수 있다(S1544).
일 실시예에서, 프로세서 B(1320)는 프로세서 A(1310)로부터 세그멘테이션 마스크 및 깊이 맵을 수신할 수 있다(S1546). 일 실시예에서, 프로세서 B(1320)는 프로세서 A(1310)에 의해 전처리된 깊이 맵을 다시 전처리할 수 있다(S1550). 일 실시예에서, 프로세서 B(1320)는 단계(S1512)에서 프로세서 B(1320)에 의해 전처리된 이미지에 단계(S1544)에서 수신한 세그멘테이션 마스크 및 깊이 맵을 이용해 보케 효과 필터를 적용할 수 있다(S1552). 또한, 프로세서 B(1320)는 출력부(330)를 통해 보케 필터를 적용한 결과물에 해당하는 프레임 이미지를 출력할 수 있다(S1554).
도 16은 본 개시의 일 실시예에 따른 비디오 보케 솔루션의 데이터 흐름을 나타내는 블록도이다. 도 16에 도시된 입출력 인터페이스(1610)는 도 3에서 전술한 촬상부(310), 입력부(320) 및 출력부(330)를 포함할 수 있다. 예를 들어, 입출력 인터페이스(1610)는 촬상부(310)를 통해 이미지 또는 복수의 영상 프레임을 획득할 수 있다. 또한, 입출력 인터페이스(1610)는 입력부(320)를 통해 사용자로부터 초점의 위치 및/또는 보케 효과의 강도를 변경하는 입력을 수신할 수 있다. 또한, 입출력 인터페이스(1610)는 출력부(330)를 통해 프로세서 A(1630), 프로세서 B(1620) 및 프로세서 C(1640)에 의해 생성된 보케 필터 적용 결과물을 출력할 수 있다.
일 실시예에서, 프로세서 B(1620)는 보케 커널(1622)을 포함할 수 있다. 예를 들어, 프로세서 B(1620)는 화면을 그리는 작업을 담당하는 GPU로 구성될 수 있으나, 이에 제한되지 않는다.
보케 커널(1622)은 도 13 내지 도 16에서 전술한 바와 같이, 이미지 또는 복수의 영상 프레임에 세그멘테이션 마스크 및 깊이 맵을 이용해 보케 효과 필터를 적용할 수 있다.
일 실시예에서, 프로세서 A(1630)는 데이터 브릿지(1632) 및 전처리부(1634)를 포함할 수 있다. 예를 들어, 프로세서 A(1630)는 간단한 전처리 작업과 데이터 수행의 중재 역할을 할 수 있는 CPU로 구성될 수 있으나, 이에 제한되지 않는다.
일 실시예에서, 간단한 전처리 작업은 사람과 배경의 경계선을 부드럽게 처리하는 블러(blur)처리, 깊이 맵 노이즈 등의 신호 잡음을 제거하는 미디안(median) 필터, 깊이 맵의 빈 공간을 채우는 깊이 맵 완성(completion) 및 깊이 맵의 해상도 품질을 높이는 깊이 맵 업샘플링 등을 포함할 수 있으나, 이에 제한되지 않고 출력물의 품질을 향상시킬 수 있는 다양한 전처리 작업을 포함할 수 있다.
다른 실시예에서, 보케 효과 적용 시스템(예: 보케 효과 적용 시스템(300))은 깊이 맵 완성, 깊이 맵 업샘플링 등의 간단한 전처리 작업을 위한 별도의 인공신경망 모델을 포함할 수 있다.
데이터 브릿지(1632)는 입출력 인터페이스(1610), 프로세서 B(1620) 및 프로세서 C(1640) 사이의 데이터 수행의 중재 역할을 할 수 있다. 예를 들어, 프로세서 A(1630)에서 연산을 통해 프로세서 B(1620) 및 프로세서 C(1640)에서 처리할 작업의 분배를 수행할 수 있으나, 이에 제한되지 않는다.
전처리부(1634)는 입출력 인터페이스(1610), 프로세서 B(1620) 및 프로세서 C(1640)로부터 수신한 이미지, 복수의 영상 프레임 또는 깊이 맵의 전처리를 수행할 수 있다.
일 실시예에서, 프로세서 C(1640)는 세그멘테이션 네트워크(1642) 및 깊이 네트워크(1644)를 포함할 수 있다. 예를 들어, 프로세서 C(1640)는 뉴럴 네트워크 연산을 수행하기에 최적화된 프로세서인 DPS, NPU, Neural Accelerator 등으로 구성될 수 있으나, 이에 제한되지 않는다.
세그멘테이션 네트워크(1642)는 이미지, 복수의 영상 프레임, 전처리된 이미지 또는 복수의 영상 프레임을 입력 받아 세그멘테이션 마스크를 생성할 수 있다. 또한, 세그멘테이션 네트워크(1642)는 제1 인공신경망 모델을 포함할 수 있으며, 도 17에서 보다 상세히 후술한다.
깊이 네트워크(1644)는 이미지, 복수의 영상 프레임, 전처리된 이미지 또는 복수의 영상 프레임을 입력 받아 깊이 맵을 추출할 수 있다. 또한, 깊이 네트워크(1644)는 제2 인공신경망 모델을 포함할 수 있으며, 도 17에서 보다 상세히 후술한다.
도 17은 본 개시의 일 실시예에 따른 인공신경망 모델을 나타내는 예시도이다. 인공신경망 모델(1700)은, 머신러닝(Machine Learning) 기술과 인지과학에서, 생물학적 신경망의 구조에 기초하여 구현된 통계학적 학습 알고리즘 또는 그 알고리즘을 실행하는 구조이다. 일 실시예에 따르면, 인공신경망 모델(1700)은, 생물학적 신경망에서와 같이 시냅스의 결합으로 네트워크를 형성한 인공 뉴런인 노드(Node)들이 시냅스의 가중치를 반복적으로 조정하여, 특정 입력에 대응한 올바른 출력과 추론된 출력 사이의 오차가 감소되도록 학습함으로써, 문제 해결 능력을 가지는 머신러닝 모델을 나타낼 수 있다. 예를 들어, 인공신경망 모델(1700)은 머신 러닝, 딥러닝 등의 인공지능 학습법에 사용되는 임의의 확률 모델, 뉴럴 네트워크 모델 등을 포함할 수 있다.
일 실시예에 따르면, 인공신경망 모델(1700)은 적어도 하나의 객체를 포함하는 복수의 영상 프레임 및/또는 이러한 복수의 영상 프레임으로부터 추출된 이미지 피처를 입력하여 세그멘테이션 마스크를 출력하도록 구성된 제1 인공신경망 모델을 포함할 수 있다.
일 실시예에 따르면, 인공신경망 모델(1700)은 적어도 하나의 객체를 포함하는 복수의 영상 프레임 및/또는 이러한 복수의 영상 프레임으로부터 추출된 이미지 피처를 입력하여 깊이 맵을 출력하도록 구성된 제2 인공신경망 모델을 포함할 수 있다.
인공신경망 모델(1700)은 다층의 노드들과 이들 사이의 연결로 구성된 다층 퍼셉트론(MLP: multilayer perceptron)으로 구현된다. 본 실시예에 따른 인공신경망 모델(1700)은 MLP를 포함하는 다양한 인공신경망 모델 구조들 중의 하나를 이용하여 구현될 수 있다. 도 17에 도시된 바와 같이, 인공신경망 모델(1700)은, 외부로부터 입력 신호 또는 데이터(1710)를 수신하는 입력층(1720), 입력 데이터에 대응한 출력 신호 또는 데이터(1750)를 출력하는 출력층(1740), 입력층(1720)과 출력층(1740) 사이에 위치하며 입력층(1720)으로부터 신호를 받아 특성을 추출하여 출력층(1740)으로 전달하는 n개(여기서, n은 양의 정수)의 은닉층(1730_1 내지 1730_n)으로 구성된다. 여기서, 출력층(1740)은 은닉층(1730_1 내지 1730_n)으로부터 신호를 받아 외부로 출력한다.
인공신경망 모델(1700)의 학습 방법에는, 교사 신호(정답)의 입력에 의해서 문제의 해결에 최적화되도록 학습하는 지도 학습(Supervised Learning) 방법과, 교사 신호를 필요로 하지 않는 비지도 학습(Unsupervised Learning) 방법이 있다. 처리부(340)는 복수의 학습 영상 프레임으로부터 세그멘테이션 마스크 및/또는 깊이 맵을 출력하기 위하여 지도 학습(Supervised Learning)을 이용하여 복수의 입력 영상 프레임에 대한 분석을 수행하고, 복수의 영상 프레임에 대응되는 세그멘테이션 마스크 및/또는 깊이 맵이 추론될 수 있도록 인공신경망 모델(1700)을 학습시킬 수 있다. 이렇게 학습된 인공신경망 모델(1700)은 저장부(350)에 저장될 수 있으며, 통신부(360) 및/또는 입력부(320) 수신된 적어도 하나의 객체를 포함하는 복수의 영상 프레임의 입력에 응답하여 세그멘테이션 마스크 및/또는 깊이 맵을 출력할 수 있다.
일 실시예에 따르면, 도 17에 도시된 바와 같이, 깊이 정보(예를 들어, 깊이 맵)를 추출할 수 있는 인공신경망 모델(1700)의 입력변수는, 적어도 하나의 객체를 포함한 복수의 학습 영상 프레임이 될 수 있다. 예를 들어, 인공신경망 모델(1700)의 입력층(1720)에 입력되는 입력변수는, 학습 이미지를 하나의 벡터 데이터 요소로 구성한, 이미지 벡터(1710)가 될 수 있다. 적어도 하나의 객체를 포함한 학습 이미지의 입력에 응답하여, 인공신경망 모델(1700)의 출력층(1740)에서 출력되는 출력변수는 세그멘테이션 마스크 및/또는 깊이 맵을 나타내는 벡터(1750)가 될 수 있다. 본 개시에 있어서 인공신경망 모델(1700)의 출력변수는, 이상에서 설명된 유형에 한정되지 않으며, 변형가능한 3D 움직임 모델을 나타내는 임의의 정보/데이터를 포함할 수 있다.
이와 같이 인공신경망 모델(1700)의 입력층(1720)과 출력층(1740)에 복수의 입력변수와 대응되는 복수의 출력변수가 각각 매칭되고, 입력층(1720), 은닉층(1730_1 내지 1730_n) 및 출력층(1740)에 포함된 노드들 사이의 시냅스 값이 조정됨으로써, 특정 입력에 대응한 올바른 출력이 추출될 수 있도록 학습될 수 있다. 이러한 학습 과정을 통해, 인공신경망 모델(1700)의 입력변수에 숨겨져 있는 특성을 파악할 수 있고, 입력변수에 기초하여 계산된 출력변수와 목표 출력 간의 오차가 줄어들도록 인공신경망 모델(1700)의 노드들 사이의 시냅스 값(또는 가중치)를 조정할 수 있다. 이렇게 학습된 인공신경망 모델(1700)을 이용하여, 입력된 적어도 하나의 객체를 포함한 복수의 영상 프레임에 응답하여, 복수의 입력 영상 프레임에 대응하는 세그멘테이션 마스크 및/또는 깊이 맵에 대한 정보가 출력될 수 있다.
본원에 기술된 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본원의 개시와 연계하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 당업자들은 더 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능성의 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는 지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다. 당업자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현 결정들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.
하드웨어 구현에서, 기법들을 수행하는 데 이용되는 프로세싱 유닛들은, 하나 이상의 ASIC들, DSP들, 디지털 신호 프로세싱 디바이스들 (digital signal processing devices; DSPD들), 프로그램가능 논리 디바이스들 (programmable logic devices; PLD들), 필드 프로그램가능 게이트 어레이들 (field programmable gate arrays; FPGA들), 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본원에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 컴퓨터, 또는 이들의 조합 내에서 구현될 수도 있다.
따라서, 본원의 개시와 연계하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, FPGA나 다른 프로그램 가능 논리 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안에서, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신 일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성의 조합으로써 구현될 수도 있다.
펌웨어 및/또는 소프트웨어 구현에 있어서, 기법들은 랜덤 액세스 메모리 (random access memory; RAM), 판독 전용 메모리 (read-only memory; ROM), 불휘발성 RAM (non-volatile random access memory; NVRAM), PROM (programmable read-only memory), EPROM (erasable programmable read-only memory), EEPROM (electrically erasable PROM), 플래시 메모리, 컴팩트 디스크 (compact disc; CD), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령들로써 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행 가능할 수도 있고, 프로세서(들)로 하여금 본원에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다.
소프트웨어로 구현되면, 상기 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독 가능한 매체 상에 저장되거나 또는 컴퓨터 판독 가능한 매체를 통해 전송될 수도 있다. 컴퓨터 판독가능 매체들은 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하여 컴퓨터 저장 매체들 및 통신 매체들 양자를 포함한다. 저장 매체들은 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체들일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다.
예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 전송되면, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 본원에서 사용된 디스크 (disk)와 디스크 (disc)는, CD, 레이저 디스크, 광 디스크, DVD (digital versatile disc), 플로피디스크, 및 블루레이 디스크를 포함하며, 여기서 디스크들 (disks) 은 보통 자기적으로 데이터를 재생하고, 반면 디스크들 (discs) 은 레이저를 이용하여 광학적으로 데이터를 재생한다. 위의 조합들도 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 공지된 임의의 다른 형태의 저장 매체 내에 상주할 수도 있다. 예시적인 저장 매체는, 프로세가 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기록할 수 있도록, 프로세서에 커플링 될 수 있다. 대안으로, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서와 저장 매체는 ASIC 내에 존재할 수도 있다. ASIC은 유저 단말 내에 존재할 수도 있다. 대안으로, 프로세서와 저장 매체는 유저 단말에서 개별 컴포넌트들로써 존재할 수도 있다.
본 개시의 앞선 설명은 당업자들이 본 개시를 행하거나 이용하는 것을 가능하게 하기 위해 제공된다. 본 개시의 다양한 수정예들이 당업자들에게 쉽게 자명할 것이고, 본원에 정의된 일반적인 원리들은 본 개시의 취지 또는 범위를 벗어나지 않으면서 다양한 변형예들에 적용될 수도 있다. 따라서, 본 개시는 본원에 설명된 예들에 제한되도록 의도된 것이 아니고, 본원에 개시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위가 부여되도록 의도된다.
비록 예시적인 구현예들이 하나 이상의 독립형 컴퓨터 시스템의 맥락에서 현재 개시된 주제의 양태들을 활용하는 것을 언급할 수도 있으나, 본 주제는 그렇게 제한되지 않고, 오히려 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 현재 개시된 주제의 양상들은 복수의 프로세싱 칩들이나 디바이스들에서 또는 그들에 걸쳐 구현될 수도 있고, 스토리지는 복수의 디바이스들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 디바이스들은 PC들, 네트워크 서버들, 및 핸드헬드 디바이스들을 포함할 수도 있다.
본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 변형 및 변경은 본 명세서에서 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.

Claims (13)

  1. 사용자 단말에서 비디오 영상에 보케 효과를 적용하는 방법에 있어서,
    상기 비디오 영상에 포함된 이미지로부터 상기 이미지의 특성 정보를 추출하는 단계;
    상기 이미지의 추출된 특성 정보를 분석하는 단계;
    상기 이미지의 분석된 특성 정보를 기초로 상기 이미지에 적용될 보케 효과를 결정하는 단계; 및
    상기 결정된 보케 효과를 상기 이미지에 적용하는 단계를 포함하는,
    보케 효과를 적용하는 방법.
  2. 제1항에 있어서,
    상기 이미지의 추출된 특성 정보를 분석하는 단계는,
    상기 이미지 내의 객체를 탐지하는 단계;
    상기 이미지 내의 객체에 대응하는 영역을 생성하는 단계;
    상기 이미지 내에서의 객체에 대응하는 영역의 위치, 크기 및 방향 중 적어도 하나를 결정하는 단계; 및
    상기 객체에 대응하는 영역의 위치, 크기 및 방향 중 적어도 하나에 대한 정보에 기초하여 이미지의 특성을 분석하는 단계를 포함하는,
    보케 효과를 적용하는 방법.
  3. 제2항에 있어서,
    상기 이미지 내의 객체는, 상기 이미지 내에 포함된 인물 객체, 얼굴 객체, 랜드마크 객체 중 적어도 하나의 객체를 포함할 수 있으며,
    상기 이미지 내에서의 객체의 위치, 크기 및 방향 중 적어도 하나를 결정하는 단계는 상기 이미지의 크기와 상기 객체에 대응하는 영역의 크기의 비율을 결정하는 단계를 포함하고,
    상기 객체의 위치, 크기 및 방향 중 적어도 하나에 대한 정보에 기초하여 이미지의 특성을 분석하는 단계는 상기 이미지 내에 포함된 객체의 포즈(pose)를 분류하는 단계를 포함하는,
    보케 효과를 적용하는 방법.
  4. 제1항에 있어서,
    상기 이미지의 추출된 특성 정보를 분석하는 단계는,
    상기 이미지 내에 포함된 점근선(지평선) 및 소실점의 높이 중 적어도 하나를 탐지하는 단계; 및
    상기 탐지된 점근선 및 소실점의 높이 중 적어도 하나를 기초로 상기 이미지 내의 심도(depth) 특성을 분석하는 단계를 포함하는,
    보케 효과를 적용하는 방법.
  5. 제1항에 있어서,
    상기 이미지에 적용될 보케 효과를 결정하는 단계는,
    상기 이미지의 분석된 특성 정보를 기초로 상기 이미지의 적어도 일부분에 적용될 보케 효과의 종류 및 적용 방식을 결정하는 단계를 포함하는,
    보케 효과를 적용하는 방법.
  6. 제1항에 있어서,
    상기 비디오 영상에 대한 보케 효과의 강도에 대한 입력 정보를 수신하는 단계를 더 포함하고,
    상기 이미지에 보케 효과를 적용하는 단계는,
    상기 수신된 강도에 대한 입력 정보에 기초하여, 보케 효과의 강도를 결정해 상기 이미지에 적용하는 단계를 포함하는,
    보케 효과를 적용하는 방법.
  7. 제1항에 있어서,
    상기 결정된 보케 효과를 상기 이미지에 적용하는 단계는,
    상기 이미지 내에서 블러(blur) 효과가 적용될 영역들에 대응하는 서브 이미지들을 생성하는 단계;
    상기 블러 효과를 서브 이미지들에 적용시키는 단계; 및
    상기 블러 효과가 적용된 서브 이미지들을 혼합하는 단계를 포함하는,
    보케 효과를 적용하는 방법.
  8. 제7항에 있어서,
    상기 이미지를 다운샘플링하여 상기 이미지의 해상도보다 낮은 해상도의 이미지를 생성하는 단계를 더 포함하고,
    상기 이미지 내에서 블러 효과가 적용된 영역들에 대응하는 서브 이미지들을 생성하는 단계는 상기 낮은 해상도의 이미지에서 상기 서브 이미지에 대응하는 영역에 블러 효과를 적용하는 단계를 포함하는,
    보케 효과를 적용하는 방법.
  9. 제8항에 있어서,
    상기 블러 효과가 적용된 서브 이미지들을 혼합하는 단계는,
    상기 낮은 해상도의 이미지 및 상기 블러 효과가 적용된 영역들에 대응하는 서브 이미지들을 혼합하는 단계;
    상기 이미지의 해상도와 동일하도록, 상기 서브 이미지들이 혼합된 낮은 해상도의 이미지를 업샘플링(upsampling)하는 단계; 및
    상기 이미지 및 상기 업샘플링된 이미지들을 혼합하여 상기 업샘플링된 이미지의 선명도를 보정하는 단계를 포함하는,
    보케 효과를 적용하는 방법.
  10. 사용자 단말에서 비디오 영상에 보케 효과를 적용하는 방법에 있어서,
    (a) 복수의 영상 프레임에 대한 정보를 수신하는 단계;
    (b) 상기 복수의 영상 프레임에 대한 정보를 제1 인공신경망 모델에 입력하여 상기 복수의 영상 프레임 내에 포함된 하나 이상의 객체에 대한 세그멘테이션 마스크를 생성하는 단계;
    (c) 상기 복수의 영상 프레임에 대한 정보를 제2 인공신경망 모델에 입력하여 상기 복수의 영상 프레임에 대한 깊이 맵을 추출하는 단계; 및
    (d) 상기 생성된 세그멘테이션 마스크 및 상기 추출된 깊이 맵을 기초로, 상기 복수의 영상 프레임에 대한 심도 효과를 적용하는 단계를 포함하는,
    비디오 영상에 보케 효과를 적용하는 방법.
  11. 제10항에 있어서,
    상기 (d) 단계는,
    상기 생성된 세그멘테이션 마스크를 이용하여 상기 추출된 깊이 맵을 보정하는 단계; 및
    상기 보정된 깊이 맵을 기초로 상기 복수의 영상 프레임에 대한 심도 효과를 적용하는 단계를 포함하는,
    비디오 영상에 보케 효과를 적용하는 방법.
  12. 제10항에 있어서,
    상기 (a) 단계 내지 상기 (d) 단계의 각각은 복수의 이기종 프로세서 중 어느 하나의 프로세서에 의해 실행되는,
    비디오 영상에 보케 효과를 적용하는 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 따른 사용자 단말에서 비디오 영상에 보케 효과를 적용하는 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체.
PCT/KR2020/012058 2019-09-06 2020-09-07 비디오 영상에 보케 효과를 적용하는 방법 및 기록매체 WO2021045599A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/668,545 US20220270215A1 (en) 2019-09-06 2022-02-10 Method for applying bokeh effect to video image and recording medium

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2019-0111055 2019-09-06
KR20190111055 2019-09-06
KR1020200113328A KR102262671B1 (ko) 2019-09-06 2020-09-04 비디오 영상에 보케 효과를 적용하는 방법 및 기록매체
KR10-2020-0113328 2020-09-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/668,545 Continuation US20220270215A1 (en) 2019-09-06 2022-02-10 Method for applying bokeh effect to video image and recording medium

Publications (1)

Publication Number Publication Date
WO2021045599A1 true WO2021045599A1 (ko) 2021-03-11

Family

ID=74852671

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/012058 WO2021045599A1 (ko) 2019-09-06 2020-09-07 비디오 영상에 보케 효과를 적용하는 방법 및 기록매체

Country Status (2)

Country Link
US (1) US20220270215A1 (ko)
WO (1) WO2021045599A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023195833A1 (en) * 2022-04-09 2023-10-12 Samsung Electronics Co., Ltd. Method and electronic device for detecting blur in image
WO2024025224A1 (en) * 2022-07-25 2024-02-01 Samsung Electronics Co., Ltd. Method and system for generation of a plurality of portrait effects in an electronic device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112085701A (zh) * 2020-08-05 2020-12-15 深圳市优必选科技股份有限公司 一种人脸模糊度检测方法、装置、终端设备及存储介质
CN117319812A (zh) * 2022-06-20 2023-12-29 北京小米移动软件有限公司 图像处理方法及装置、移动终端、存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130038076A (ko) * 2011-10-07 2013-04-17 엘지전자 주식회사 이동 단말기 및 그의 아웃 포커싱 이미지 생성방법
JP2015012437A (ja) * 2013-06-28 2015-01-19 株式会社ニコン デジタルカメラ
US20180286059A1 (en) * 2017-04-04 2018-10-04 Rolls-Royce Plc Determining surface roughness
KR20180120022A (ko) * 2017-04-26 2018-11-05 삼성전자주식회사 전자 장치 및 전자 장치의 영상 표시 방법
US20190213714A1 (en) * 2018-01-11 2019-07-11 Qualcomm Incorporated Low-resolution tile processing for real-time bokeh

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130038076A (ko) * 2011-10-07 2013-04-17 엘지전자 주식회사 이동 단말기 및 그의 아웃 포커싱 이미지 생성방법
JP2015012437A (ja) * 2013-06-28 2015-01-19 株式会社ニコン デジタルカメラ
US20180286059A1 (en) * 2017-04-04 2018-10-04 Rolls-Royce Plc Determining surface roughness
KR20180120022A (ko) * 2017-04-26 2018-11-05 삼성전자주식회사 전자 장치 및 전자 장치의 영상 표시 방법
US20190213714A1 (en) * 2018-01-11 2019-07-11 Qualcomm Incorporated Low-resolution tile processing for real-time bokeh

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023195833A1 (en) * 2022-04-09 2023-10-12 Samsung Electronics Co., Ltd. Method and electronic device for detecting blur in image
WO2024025224A1 (en) * 2022-07-25 2024-02-01 Samsung Electronics Co., Ltd. Method and system for generation of a plurality of portrait effects in an electronic device

Also Published As

Publication number Publication date
US20220270215A1 (en) 2022-08-25

Similar Documents

Publication Publication Date Title
WO2021045599A1 (ko) 비디오 영상에 보케 효과를 적용하는 방법 및 기록매체
WO2020192483A1 (zh) 图像显示方法和设备
US11457138B2 (en) Method and device for image processing, method for training object detection model
EP3871405A1 (en) Techniques for convolutional neural network-based multi-exposure fusion of multiple image frames and for deblurring multiple image frames
WO2021179820A1 (zh) 图像处理方法、装置、存储介质及电子设备
WO2019085792A1 (en) Image processing method and device, readable storage medium and electronic device
CN116018616A (zh) 保持帧中的目标对象的固定大小
ES2967691T3 (es) Ajuste de una representación digital de una región de cabeza
KR101679290B1 (ko) 영상 처리 방법 및 장치
EP4198875A1 (en) Image fusion method, and training method and apparatus for image fusion model
US11538175B2 (en) Method and apparatus for detecting subject, electronic device, and computer readable storage medium
CN110889410A (zh) 浅景深渲染中语义分割的稳健用途
WO2019050360A1 (en) ELECTRONIC DEVICE AND METHOD FOR AUTOMATICALLY SEGMENTING TO BE HUMAN IN AN IMAGE
KR102262671B1 (ko) 비디오 영상에 보케 효과를 적용하는 방법 및 기록매체
CN110335216B (zh) 图像处理方法、图像处理装置、终端设备及可读存储介质
WO2019105297A1 (zh) 图像虚化处理方法、装置、移动设备及存储介质
US20220189029A1 (en) Semantic refinement of image regions
WO2022076116A1 (en) Segmentation for image effects
US20180198994A1 (en) Compressive sensing capturing device and method
WO2023138629A1 (zh) 加密图像信息获取装置及方法
CN108462831B (zh) 图像处理方法、装置、存储介质及电子设备
WO2023146698A1 (en) Multi-sensor imaging color correction
US20060010582A1 (en) Chin detecting method, chin detecting system and chin detecting program for a chin of a human face
CN114445864A (zh) 一种手势识别方法及装置、存储介质
WO2024025134A1 (en) A system and method for real time optical illusion photography

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: 20860204

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20860204

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 12.09.2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20860204

Country of ref document: EP

Kind code of ref document: A1