WO2020231006A1 - 영상 처리 장치 및 그 동작방법 - Google Patents

영상 처리 장치 및 그 동작방법 Download PDF

Info

Publication number
WO2020231006A1
WO2020231006A1 PCT/KR2020/004596 KR2020004596W WO2020231006A1 WO 2020231006 A1 WO2020231006 A1 WO 2020231006A1 KR 2020004596 W KR2020004596 W KR 2020004596W WO 2020231006 A1 WO2020231006 A1 WO 2020231006A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
pixels
pixel
value
pixels included
Prior art date
Application number
PCT/KR2020/004596
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
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US17/293,806 priority Critical patent/US20220375027A1/en
Publication of WO2020231006A1 publication Critical patent/WO2020231006A1/ko

Links

Images

Classifications

    • 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
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/254Analysis of motion involving subtraction of images
    • 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
    • G06T2207/20224Image subtraction

Definitions

  • Various embodiments relate to an image processing apparatus that performs deconvolution of up-scaling an image and a method of operating the same.
  • artificial intelligence As data traffic increases in the form of exponential functions with the development of computer technology, artificial intelligence has become an important trend driving future innovation. Since artificial intelligence is a method that imitates the way of thinking of humans, it can be applied infinitely to virtually all industries. Representative technologies of artificial intelligence include pattern recognition, machine learning, expert systems, neural networks, and natural language processing.
  • Neural networks are modeled by mathematical expressions of the characteristics of biological neurons in humans, and use an algorithm that mimics the ability of humans to learn. Through this algorithm, the neural network can generate a mapping between input data and output data, and the ability to generate such an event can be expressed as the learning ability of the neural network. In addition, the neural network has a generalization capability capable of generating correct output data for input data that has not been used for training based on the learned result.
  • a deconvolution layer may be used to generate an output image larger than the size of an input image.
  • CNN convolution neural network
  • the number of kernels applied to the deconvolution operation becomes larger than that of the integer multiple upscaled. Accordingly, there is a problem in that the memory required for the deconvolution operation increases, parallel processing cannot be performed, the amount of operation increases, and the speed of the operation increases.
  • Various embodiments may provide an image processing apparatus capable of reducing a required amount of computation and a memory when performing deconvolution for a non-integer multiplication scale, and an operation method thereof.
  • the image processing apparatus may reduce the number of kernels required for a deconvolution operation for a non-integer multiplication scale.
  • the image processing apparatus may reduce an amount of computation and a memory required when performing deconvolution for a non-integer multiple up-scale, and increase an operation speed.
  • the image processing apparatus may upscale an image in various sizes (resolutions) by performing a deconvolution operation for a non-integer multiplication scale.
  • the image processing apparatus may generate a high-quality up-scaled image by performing a deconvolution operation for a non-integer multiplication scale.
  • FIG. 1 is a diagram illustrating a method of generating an image by using a deconvolution operation by an image processing apparatus according to an exemplary embodiment.
  • FIG. 2 is a diagram for describing a case of upscaling an image by a non-integer multiple, according to an exemplary embodiment.
  • FIG. 3 is a diagram illustrating a case of up-scaling a first image by an integer multiple and a case of upscaling a first image by a real multiple instead of an integer, according to an embodiment.
  • FIG. 4 is a diagram for describing a method of determining a tendency of weights included in a kernel applied to deconvolution for up-scaling a first image according to an exemplary embodiment.
  • FIG. 5 is a diagram for describing a method of modeling a kernel applied to deconvolution for up-scaling a first image according to an exemplary embodiment.
  • FIG. 6 is a diagram illustrating deconvolution for a non-integer multiple up-scale of a first image according to an embodiment.
  • FIG. 7 is a diagram illustrating a process of performing deconvolution to upscale a first image by an image processing apparatus according to an exemplary embodiment.
  • FIG. 8 is a diagram for describing a method of generating transform feature information according to an embodiment.
  • 9 and 10 are diagrams for explaining a process of performing a deconvolution different from that of FIG. 7 in order to upscale a first image by an image processing apparatus according to an exemplary embodiment.
  • FIG. 11 is a flowchart illustrating a method of operating an image processing apparatus according to an exemplary embodiment.
  • FIG. 12 is a block diagram illustrating a configuration of an image processing apparatus according to an exemplary embodiment.
  • An image processing apparatus includes a memory that stores one or more instructions and a processor that executes the one or more instructions stored in the memory, the processor comprising: pixels included in a first image and a second image.
  • the first image is obtained by acquiring position transformation characteristic information based on the relative positional relationship of included pixels and values of pixels included in the first image, and performing a convolution operation between the position transformation characteristic information and a kernel.
  • a second image that is upscaled by k times is generated, where k is a real number.
  • k may be a real number rather than an integer.
  • Weight values included in the kernel according to an embodiment do not change according to positions of sample values included in the position transformation feature information on which the convolution operation is performed.
  • the processor obtains one pixel value in the second image by using values of n pixels among a plurality of pixels included in the first image, and obtains a pixel value at a location of the one pixel.
  • the position transformation characteristic information may be obtained based on the relative positional relationship of the n pixels with respect to.
  • a distance between adjacent pixels included in the first image may be 1.
  • n pixels according to an embodiment may be determined based on an index j value represented by the one pixel.
  • Sample values included in the position transformation feature information according to an embodiment may be expressed in a linear equation for u.
  • the number of weights included in the kernel according to an embodiment may be determined based on the value of n.
  • An operating method of an image processing apparatus is, based on a relative positional relationship between pixels included in a first image and pixels included in a second image, and values of pixels included in the first image, based on a position change.
  • FIG. 1 is a diagram illustrating a method of generating an image by using a deconvolution operation by an image processing apparatus according to an exemplary embodiment.
  • the image processing apparatus 100 may generate an image by using a neural network 20.
  • the image processing apparatus 100 may extract feature information on a first image (input) using the neural network 20 and generate a second image (output) based on the extracted feature information.
  • the neural network 20 may include one or more deconvolution layers, and in each of the deconvolution layers, an image input to the deconvolution layer and a deconvolution of a kernel ( The deconvolution operation 30 may be performed, and a result of the deconvolution operation and an output image may be generated.
  • the deconvolution operation 30, in a convolution neural network (CNN) may be generally used to upscale an input image, for example, generating a super-resoultion image, It can be used in various fields such as auto-encoder and style transfer. However, it is not limited thereto.
  • CNN convolution neural network
  • the size of the up-scaled second image (output) generated as a result of the deconvolution operation is larger than the size of the first image (input).
  • the first image is to be scaled up by a real multiple (non-integer multiple) rather than an integer multiple.
  • FIG. 2 is a diagram for describing a case of upscaling an image by a non-integer multiple, according to an exemplary embodiment.
  • a display on which an image is displayed may be configured in a module unit, and in this case, the size of the display may be determined in various ways according to a method of combining modules. For example, when the size of one module has a resolution of 9.8 inches and 480x270, the first display 210 having Ultra-HD (4K) resolution including 8 x 8 modules may be configured. Alternatively, a second display 220 having a resolution of 4320 x 2430 including 9 x 9 modules (eg, about 4.5K resolution) may be configured.
  • FIG. 3 is a diagram illustrating a case of up-scaling a first image by an integer multiple and a case of upscaling a first image by a real multiple instead of an integer, according to an embodiment.
  • FIG. 3A shows a case in which the first video LR is upscaled by an integer multiple (eg, double).
  • an integer multiple eg, double
  • the value of the fourth pixel P4 included in the second image is determined, and the first pixel ( A value of the fourth pixel P4 may be calculated by applying the first kernel K 0 to the value P1 and the value of the second pixel P2 and performing a convolution operation.
  • the first kernel K 0 includes weight values applied to the values of the first pixel P1 and the value of the second pixel P2, and the weight values are the first pixel ( It may be determined based on the relative positions of P1) and the second pixel P2, but is not limited thereto.
  • a value of the fifth pixel P5 included in the second image is determined, and the first to third pixels (
  • the fifth pixel P5 may be calculated by applying the second kernel K 1 to the values P1, P2, and P3 to perform a convolution operation.
  • the second kernel K 1 includes weight values applied to values of the first to third pixels P1, P2, and P3, and the weight values are the first to third pixels for the fifth pixel P5. It may be determined based on the relative positions of the fields P1, P2, and P3, but is not limited thereto.
  • each of the fourth, sixth, and eighth pixels P4, P6, and P8 is pixels used to calculate a corresponding pixel value (first image Pixel, input data) and the relative position of the pixel are the same. Accordingly, values of the fourth, sixth, and eighth pixels P4, P6, and P8 may be calculated by applying the same weights (kernel, for example, K 0 ) to the input data.
  • kernel for example, K 0
  • each of the fifth and seventh pixels P5 and P7 has the same relative position with the pixels used to calculate the corresponding pixel value, and thus, the fifth pixel P5
  • the kernel applied to calculate) eg, K 1
  • the kernel applied to calculate the seventh pixel (P7) eg, K 1
  • the number of kernels required is 2, and when the first image is upscaled by k1 (k1 is an integer), the number of kernels required is k1.
  • FIG. 3 shows a case of up-scaling the first image to a non-integer multiple (eg, 7/3 times).
  • the value of the ninth pixel P9 included in the second image is determined, and the first A value of the ninth pixel P9 may be calculated by applying a third kernel K i to the value of the pixel P1 and the value of the second pixel P2 and performing a convolution operation.
  • the third kernel Ki includes weight values applied to the first pixel P1 and the second pixel P2, and the weight values are the first pixel P1 for the ninth pixel P9. And relative positions of the second pixel P2.
  • the tenth pixel P10 ) Value may be calculated, and in this case, the weight values included in the fourth kernel K i+1 are relative positions of the first pixel P1 and the second pixel P2 with respect to the tenth pixel P10 Can be determined based on
  • the number of kernels required for the deconvolution operation is 1001, and accordingly, the memory and the amount of operation required for the deconvolution operation are greatly increased. It slows down.
  • FIG. 4 is a diagram for describing a method of determining a tendency of weights included in a kernel applied to deconvolution for up-scaling a first image according to an exemplary embodiment.
  • FIG. 4 illustrates a cubic B-spline interpolation method in order to find a tendency of weights applied to a pixel value of a first image according to a location of a pixel of a second image when calculating a pixel value of a second image according to an embodiment.
  • An example of application is shown.
  • a first graph 410 is a pixel of a second image using four pixel values (x i-1 , x i , x i+1 , x i+2 ) of a first image.
  • curves representing weights applied to each of four pixel values (x i-1 , x i , x i+1 , x i+2 ) B 0 (u), B 1 (u ), B 2 (u), B 3 (u)).
  • the curves B 0 (u), B 1 (u), B 2 (u), B 3 (u)) are cubic B spline curves, and as shown in FIG. 4, B 0 (u) , B 1 (u), B 2 (u), B 3 (u) are expressed as functions of u.
  • the meaning of the variable u will be described in detail below.
  • the positions of the pixels in the first image are expressed as integers, and the second image
  • the positions of the pixels of can be expressed as real numbers.
  • a value of a pixel (y j ) included in the second image is determined by performing a truncating operation on j, and four pixels among the pixels included in the first image It may be determined based on (x i-1 , x i , x i+1 , x i+2 ).
  • u when u is assumed to have the same size as the first image and the second image, when a point corresponding to the pixel y j included in the second image is located between the pixels xi and xi+1 of the first image , May be expressed as a distance between a point corresponding to the pixel xi and the pixel y j .
  • u may be expressed as a difference (ji) between j and j rounded off (eg, an integer i).
  • the curves (B 0 (u), B 1 (u), B 2 (u), B 3 (u)) can be represented by a matrix B(u), as shown in FIG.
  • Four pixels (x i-1 , x i , x i+1 , x i+2 ) of one image can be represented by matrix I. Accordingly, the value of the pixel y j may be determined by the following equation.
  • the operation of the symbols ⁇ A, B> F means a convolution operation. In other words, it refers to an operation that adds values obtained by multiplying elements at the same position in matrix A and matrix B.
  • the matrix B of FIG. 4 applies B-cubic spline curves to find the tendency of the weights applied to the input I.
  • the remaining part 430 for example, , Coefficients (1/6) and elements of matrix B'
  • the remaining part 430 can be determined as appropriate values through training.
  • FIG. 5 is a diagram for describing a method of modeling a kernel applied to deconvolution for up-scaling a first image according to an exemplary embodiment.
  • matrix K of FIG. 5 represents a trainable kernel applied to deconvolution for up-scaling the first image, and may be expressed as a product of the trainable matrix ⁇ 510 and the matrix U.
  • the matrix K can be expressed as Equation 2 below.
  • the matrix ⁇ and the matrix U may be expressed as shown in FIG. 5, respectively.
  • Equation 3 the deconvolution operation for up-scaling the first image
  • Equation 3 the matrix I i represents pixel values of the first image, which are used to calculate the pixel value y j included in the second image.
  • the matrix U j the matrix is ⁇ and, instead of being calculated, the matrix I i and the operation such that the position of the matrix U j can be changed.
  • the pixel value yj of the second image can be expressed as Equation 4 below.
  • Equation 4 The meaning of the parameters in Equation 4 will be described in detail below with reference to FIG. 6.
  • FIG. 6 is a diagram illustrating deconvolution for a non-integer multiple up-scale of a first image according to an embodiment.
  • x denotes a first image
  • y denotes a second image obtained by scaling x by a non-integer multiple.
  • i is a value representing the index of pixels included in the first image, and when x and y are represented by the same size and the distance between adjacent pixels included in the first image is 1, It is a value indicating the location of pixels. i can be expressed as an integer value of 0, 1,..., n.
  • j is a value indicating the index of pixels included in the second image, and a value indicating the location of pixels included in the second image.
  • the positions (eg, coordinates) of the pixels of the first image are expressed as integers
  • the positions (eg, coordinates) of the pixels of the second image may be expressed as real numbers.
  • j can be expressed as a real value.
  • the value of the pixel (yj) included in the second image can be expressed as ⁇ U j ⁇ I i T , ⁇ > F , where the matrix U j is expressed as a function of u j , u j is determined according to the value.
  • the u j value is a value determined according to the relative distance between the pixel y j and the pixel x i of the first image.
  • the index i of the pixel x i is determined as a value obtained by performing a rounding operation on the index j of the pixel y j .
  • the matrix Uj is determined differently according to the index j of the pixel value yj to be calculated.
  • the matrix Ii is determined differently according to the index j of y j .
  • the index i value is determined according to the index j
  • the matrix I 1 [x 0 , x 1 , x 2 , x 3 ] may be determined.
  • the matrix Ii may be configured differently depending on the number of elements included in the matrix Ii.
  • the matrix ⁇ is a value determined by training, and can be equally applied regardless of the index j or u j of the pixel value y j to be calculated.
  • FIG. 7 is a diagram illustrating a process of performing deconvolution to upscale a first image by an image processing apparatus according to an exemplary embodiment.
  • the image processing apparatus 100 includes a relative positional relationship between pixels included in the first image 710 and pixels included in the second image 720 and of pixels included in the first image 710. Based on the value, position transformation feature information 740 may be obtained.
  • the image processing apparatus 100 may generate transform feature information 730 by using pixel values included in the first image.
  • the number of transform feature information may be n, where n is the same as the number of pixels included in the first image used to calculate one pixel value included in the second image. .
  • FIG. 7 a case in which one pixel value of the second image is calculated using four pixel values included in the first image is illustrated.
  • the transformation characteristic information 730 includes four transformation characteristic information (first transformation characteristic information (X k-1 ), second transformation characteristic information (X k ), and third transformation characteristic information (X It may include k+1 ) and fourth transform feature information (X k+2 )). A method of generating the transform feature information 730 will be described in detail with reference to FIG. 8.
  • FIG. 8 is a diagram for describing a method of generating transform feature information according to an embodiment.
  • the pixels of the first image 710 and the second image 720 have the same size, and if the distance between adjacent pixels included in the first image 710 is 1, the pixels of the first image
  • the positions of the pixels are expressed as integers, and the positions of the pixels of the second image may be expressed as real numbers.
  • the transformation feature information 730 may be generated to have the same size as the second image 720. For example, if the size of the second image is W X H, the size of the transform feature information may also be W X H.
  • Sample values included in each of the transform feature information 730 may be determined based on a location (index) of a pixel of the second image 720 corresponding to each of the samples.
  • the first pixel 840 of the second image 720 has an index j 0 , and a value k 0 obtained by performing a discard operation on j 0 may be determined.
  • the sample values S11, S21, S31, and S41 at a location corresponding to the first pixel 840 are determined based on the k 0 value.
  • the first sample value S11 of the first transform feature information 831 is determined as a pixel value (x k0-1 ) of the first image having k 0 -1 as an index
  • the second transform feature The second sample value (S21) of the information 832 is determined as a pixel value (x k0 ) of the first image having k 0 as an index
  • the third sample value (S31) of the third transform feature information 833 is It is determined as a pixel value (x k0+1 ) of the first image having k 0 +1 as an index
  • the fourth sample value (S41) of the fourth transform feature information 834 is a second order having k 0 +2 as an index. It is determined as the pixel value (x k0+2 ) of one image.
  • the image processing apparatus 100 may acquire first to fourth transform feature information 831, 832, 833, and 834 having the same size as the second image in the same manner.
  • the image processing apparatus 100 multiplies the first to fourth transform feature information 730 by u j 3 , u j 2 , u j 1 , and u j 0 , respectively, and position transform feature information Fields 740 can be created.
  • the image processing apparatus 100 performs a convolution operation between the position transformation feature information 740 and the kernel 750, so that the first image 710 is a non-integer multiple up-scaled second image 720. Can be obtained.
  • the weight values included in the kernel 750 do not change according to positions of sample values included in the position transformation feature information 740 on which the convolution operation is performed.
  • the number of weights included in the kernel may be determined based on the number n of pixels included in the first image used to calculate the value of one pixel included in the second image.
  • Equation 5 the value of the pixel y j0 of the second image 720 that is upscaled by performing the deconvolution operation of FIG. 7 on the first image 710 may be expressed as Equation 5 below.
  • 9 and 10 are diagrams for explaining a process of performing a deconvolution different from that of FIG. 7 in order to upscale a first image by an image processing apparatus according to an exemplary embodiment.
  • yj when calculating y j , may be calculated by additionally using variables of v j , p j , and q j in addition to u j .
  • v j, p j , and q j can be expressed as a function for u j , as shown in Equation 6 below, and can be expressed as a nonlinear function for u j .
  • W S means the size of the first image
  • W T means the size of the second image
  • Equation 5 may be transformed as in Equation 7 below.
  • Equation 8 v j, p j , and q j may be expressed by Equation 8 below.
  • Equation 9 y j+1
  • FIG. 10 is a diagram illustrating an operation process of Equation 9, and the transformation characteristic information 1040 illustrated in FIG. 10 is the second transformation characteristic information 832 among the four transformation characteristic information 730 of FIG. 7. I can.
  • the image processing apparatus 100 generates position transformation feature information 1040 by multiplying the transformed feature information 1040 from the first image 1010 by u j 3 , u j 2 , u j 1 , and u j 0 , respectively. can do.
  • the image processing apparatus 100 performs a convolution operation between the position transformation feature information 1040 and the kernel 1050 so that the first image 1010 is a non-integer multiple up-scaled second image 1020. Can be obtained.
  • the weight values included in the kernel 1050 do not change according to positions of sample values included in the position transformation feature information 1040 on which the convolution operation is performed.
  • the number of weights included in the kernel may be determined based on the number n of pixels included in the first image used to calculate the value of one pixel included in the second image.
  • Equation 10 the value of the pixel y j1 of the second image 1020 that is upscaled by performing the deconvolution operation of FIG. 10 on the first image 1010 may be expressed as Equation 10 below.
  • FIG. 11 is a flowchart illustrating a method of operating an image processing apparatus according to an exemplary embodiment.
  • the image processing apparatus 100 acquires a relative positional relationship between pixels included in a first image and pixels included in a second image, and obtains the acquired positional relationship and the first image.
  • Position transformation feature information may be obtained based on the values of pixels included in.
  • the image processing apparatus 100 obtains a value of one pixel in the second image by using values of n pixels among a plurality of pixels included in the first image. In this case, a relative positional relationship of n pixels in the first image with respect to the position of one pixel in the second image may be obtained.
  • x 0 and x 1 may refer to a pixel value located at coordinate 0 and coordinate 1 in the first image
  • y 0.2 may refer to a pixel value located at coordinate 0.2 in the second image.
  • the image processing apparatus 100 may determine k by performing a discard operation on the index j value indicated by the pixel included in the second image, and may determine u j, which is a difference value between the index j and k j indicated by the pixel. For example, in the case of y 0.2 , k j may be determined as 0 and u j may be determined as 0.2.
  • the image processing apparatus 100 acquires position transformation feature information based on the number of pixels of the first image used to acquire one pixel value of the second image and k j , u j can do.
  • a method of acquiring the location transformation feature information has been described in detail with reference to FIGS. 7 to 10, and thus a detailed description thereof will be omitted.
  • the image processing apparatus 100 may generate a second image in which the first image is up-scaled by k (k is a real number) times by performing a convolution operation between the location transformation feature information and the kernel.
  • k may mean a real number rather than an integer
  • the size of the kernel eg, the number of weights included in the kernel
  • the size of the kernel is the first used to obtain one pixel value in the second image. It may be determined based on the number n of pixels in the image.
  • the weight values included in the kernel do not change according to the positions of sample values included in the position transformation feature information on which the convolution operation is performed, and are constant.
  • FIG. 12 is a block diagram illustrating a configuration of an image processing apparatus according to an exemplary embodiment.
  • the image processing apparatus 100 may include a processor 120 and a memory 130.
  • the processor 120 may generally control the image processing apparatus 100.
  • the processor 120 may execute one or more programs stored in the memory 130.
  • the memory 130 may store various data, programs, or applications for driving and controlling the image processing apparatus 100.
  • a program stored in the memory 130 may include one or more instructions.
  • a program (one or more instructions) or an application stored in the memory 130 may be executed by the processor 120.
  • the processor 120 obtains a relative positional relationship between pixels included in the first image and pixels included in the second image, and based on the acquired positional relationship and values of pixels included in the first image. Thus, it is possible to obtain the location transformation feature information.
  • the processor 120 obtains a value of one pixel in the second image by using values of n pixels among a plurality of pixels included in the first image.
  • a relative positional relationship of n pixels in the first image with respect to the position of one pixel in the second image may be obtained.
  • the processor 120 may determine k by performing a discard operation on the index j value indicated by the pixel included in the second image, and may determine u j, which is a difference value between the index j and k j indicated by the pixel. For example, in the case of y 0.2 , k j may be determined as 0 and u j may be determined as 0.2.
  • the processor 120 may obtain the position transformation characteristic information based on the number of pixels of the first image used to obtain one pixel value of the second image and k j , u j . have.
  • a method of acquiring the location transformation feature information has been described in detail with reference to FIGS. 7 to 10, and thus a detailed description thereof will be omitted.
  • the processor 120 may generate a second image obtained by performing a convolution operation between the position transformation feature information and the kernel, thereby increasing the first image by k (k is a real number) times.
  • k may mean a real number rather than an integer
  • the size of the kernel eg, the number of weights included in the kernel
  • the weight values included in the kernel do not change according to the positions of sample values included in the position transformation feature information on which the convolution operation is performed, and are constant.
  • weight values included in the kernel are values determined through training, and weight values determined through training may be stored in the memory 130.
  • a block diagram of the image processing apparatus 100 shown in FIG. 12 is a block diagram for an embodiment.
  • Each component of the block diagram may be integrated, added, or omitted according to the specifications of the image processing apparatus 100 that is actually implemented. That is, if necessary, two or more components may be combined into a single component, or one component may be subdivided into two or more components and configured.
  • functions performed by each block are for explaining embodiments, and specific operations or devices thereof do not limit the scope of the present invention.
  • the method of operating an image processing apparatus may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium.
  • the computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination.
  • the program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in computer software.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks.
  • -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like.
  • Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
  • an image processing apparatus and a method of operating the image processing apparatus according to the disclosed embodiments may be included in a computer program product and provided.
  • Computer program products can be traded between sellers and buyers as commodities.
  • the computer program product may include a S/W program and a computer-readable storage medium storing the S/W program.
  • the computer program product may include a product (e.g., downloadable app) electronically distributed through an electronic device manufacturer or an electronic market (e.g., Google Play Store, App Store). have.
  • a product e.g., downloadable app
  • an electronic market e.g., Google Play Store, App Store
  • the storage medium may be a server of a manufacturer, a server of an electronic market, or a storage medium of a relay server temporarily storing an SW program.
  • the computer program product may include a storage medium of a server or a storage medium of a client device in a system composed of a server and a client device.
  • a third device eg, a smart phone
  • the computer program product may include a storage medium of the third device.
  • the computer program product may include a S/W program itself transmitted from a server to a client device or a third device, or transmitted from a third device to a client device.
  • one of the server, the client device, and the third device may execute the computer program product to perform the method according to the disclosed embodiments.
  • two or more of a server, a client device, and a third device may execute a computer program product to distribute and implement the method according to the disclosed embodiments.
  • a server eg, a cloud server or an artificial intelligence server

Landscapes

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

Abstract

영상 처리 장치에 관한 것으로, 하나 이상의 인스트럭션들을 저장하는 메모리 및 메모리에 저장된 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 프로세서는, 제1 영상에 포함되는 픽셀들과 제2 영상에 포함되는 픽셀들의 상대적인 위치 관계 및 상기 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득하며, 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 제1 영상을 k배 업 스케일한 제2 영상을 생성하며, 상기 k는 실수인 영상 처리 장치가 개시된다.

Description

영상 처리 장치 및 그 동작방법
다양한 실시예들은 영상을 업 스케일하는 디컨볼루션을 수행하는 영상 처리 장치 및 그 동작방법에 관한 것이다.
컴퓨터 기술의 발달과 함께 데이터 트래픽이 지수함수 형태로 증가하면서 인공지능은 미래 혁신을 주도하는 중요한 트랜드로 자리잡았다. 인공지능은 사람의 사고방식을 모방하는 방식이기 때문에 사실상 전 산업에 무한하게 응용이 가능하다. 인공지능의 대표적인 기술로는 패턴 인식, 기계 학습, 전문가 시스템, 뉴럴 네트워크, 자연어 처리 등이 있다.
뉴럴 네트워크는 인간의 생물학적 신경 세포의 특성을 수학적 표현에 의해 모델링한 것으로, 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용한다. 이 알고리즘을 통하여, 뉴럴 네트워크는 입력 데이터와 출력 데이터 사이의 사상(mapping)을 생성할 수 있고, 이러한 사상을 생성하는 능력은 뉴럴 네트워크의 학습 능력이라고 표현될 수 있다. 또한, 뉴럴 네트워크는 학습된 결과에 기초하여, 학습에 이용되지 않았던 입력 데이터에 대하여, 올바른 출력 데이터를 생성할 수 있는 일반화 능력을 가진다.
컨볼루션 뉴럴 네트워크(CNN: Convolution Neural Network) 등에서, 입력 영상의 크기보다 큰 출력 영상을 생성하기 위해 디컨볼루션 레이어가 이용될 수 있다. 그러나, 디컨볼루션 레이어를 이용하여 영상을 비 정수배 업 스케일하는 경우, 디컨볼루션 연산에 적용되는 커널의 개수가, 정수 배 업 스케일의 경우보다 많아지게 된다. 이에 따라, 디컨볼루션 연산에 필요한 메모리가 증가하며, 병렬 처리를 할 수 없게 되어, 연산량이 증가하고, 연산의 속도가 느려지는 문제점이 있다.
다양한 실시예들은, 비-정수 배 업 스케일을 위한 디컨볼루션 수행 시, 필요한 연산량 및 메모리를 감소시킬 수 있는 영상 처리 장치 및 그 동작방법을 제공할 수 있다.
일 실시예에 따른 영상 처리 장치는, 비-정수 배 업 스케일을 위한 디컨볼루션 연산에 필요한 커널들의 개수를 감소시킬 수 있다.
일 실시예에 따른 영상 처리 장치는, 비-정수배 업 스케일을 위한 디컨볼루션 수행 시 필요한 연산량 및 메모리를 감소할 수 있으며, 연산 속도를 빠르게 할 수 있다.
일 실시예에 따른 영상 처리 장치는, 비-정수 배 업 스케일을 위한 디컨볼루션 연산을 수행함으로써, 다양한 크기(해상도)로 영상을 업 스케일할 수 있다.
일 실시예에 따른 영상 처리 장치는, 비-정수 배 업 스케일을 위한 디컨볼루션 연산을 수행함으로써, 고품질의 업 스케일된 영상을 생성할 수 있다.
도 1은 일 실시예에 따른 영상 처리 장치가 디컨볼루션 연산을 이용하여 영상을 생성하는 방법을 나타내는 도면이다.
도 2는 일 실시예에 따라 영상을 비 정수 배 업 스케일하는 경우를 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 제1 영상을 정수 배 업 스케일하는 경우와 정수가 아닌 실수 배로 업 스케일하는 경우를 나타내는 도면이다.
도 4는 일 실시예에 따른 제1 영상을 업 스케일하기 위한 디컨볼루션에 적용되는 커널에 포함되는 가중치들의 경향성을 결정하는 방법을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 제1 영상을 업 스케일하기 위한 디컨볼루션에 적용되는 커널을 모델링하는 방법을 설명하기 위한 도면이다.
도 6은, 일 실시예에 따른 제1 영상을 비-정수 배 업 스케일하기 위한 디컨볼루션을 나타내는 도면이다.
도 7은 일 실시예에 따른 영상 처리 장치가 제1 영상을 업 스케일하기 위해 디컨볼루션을 수행하는 과정을 설명하기 위한 도면이다.
도 8은, 일 실시예에 따른, 변환 특징 정보들을 생성하는 방법을 설명하기 위한 도면이다.
도 9 및 도 10은, 일 실시예에 따른 영상 처리 장치가 제1 영상을 업 스케일하기 위하여, 도 7의 디컨볼루션과 다른 디컨볼루션을 수행하는 과정을 설명하기 위한 도면들이다.
도 11은 일 실시예에 따른 영상 처리 장치의 동작방법을 나타내는 흐름도이다.
도 12는 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.
일 실시예에 따른 영상 처리 장치는 하나 이상의 인스트럭션들을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 상기 프로세서는, 제1 영상에 포함되는 픽셀들과 제2 영상에 포함되는 픽셀들의 상대적인 위치 관계 및 상기 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득하며, 상기 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 상기 제1 영상을 k배 업 스케일한 제2 영상을 생성하며, 상기 k는 실수이다.
일 실시예에 따른 k는 정수가 아닌 실수일 수 있다.
일 실시예에 따른 커널에 포함되는 가중치 값들은, 상기 컨볼루션 연산이 수행되는 상기 위치 변환 특징 정보에 포함되는 샘플 값들의 위치에 따라, 변하지 않는다.
일 실시예에 따른 프로세서는, 상기 제1 영상에 포함되는 복수의 픽셀들 중 n개의 픽셀들의 값을 이용하여, 상기 제2 영상에서의 하나의 픽셀 값을 획득하며, 상기 하나의 픽셀의 위치에 대한 상기 n개의 픽셀들의 상대적인 위치 관계에 기초하여, 상기 위치 변환 특징 정보를 획득할 수 있다.
일 실시예에 따른 제1 영상과 상기 제2 영상을 동일한 크기로 가정하여, 상기 제1 영상에 포함되는 픽셀들의 위치를 인덱스 i(i= 정수)로 나타내고, 상기 제2 영상에 포함되는 픽셀들의 위치를 인덱스 j(j=실수)로 나타내며, 상기 프로세서는, 상기 하나의 픽셀이 나타내는 인덱스 값에 버림 연산을 수행하여, k j(k j=정수)를 결정하고, 상기 j와 k j의 차이 값인 u j를 결정하고, 상기 k j와 u j에 기초하여, 상기 위치 변환 특징 정보를 획득할 수 있다.
일 실시예에 따른 제1 영상에 포함되는 인접하는 픽셀들 사이의 거리는 1일 수 있다.
일 실시예에 따른 n개의 픽셀들은, 상기 하나의 픽셀이 나타내는 인덱스 j값에 기초하여, 결정될 수 있다.
일 실시예에 따른 위치 변환 특징 정보에 포함되는 샘플 값들은, 상기 u에 대한 선형식으로 표현될 수 있다.
일 실시예에 따른 커널에 포함되는 가중치들의 개수는, 상기 n의 값에 기초하여 결정될 수 있다.
일 실시예에 따른 영상 처리 장치의 동작방법은, 제1 영상에 포함되는 픽셀들과 제2 영상에 포함되는 픽셀들의 상대적인 위치 관계 및 상기 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득하는 단계, 및 상기 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 상기 제1 영상을 k배 업 스케일한 제2 영상을 생성하는 단계를 포함하며, 상기 k는 실수이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 일 실시예에 따른 영상 처리 장치가 디컨볼루션 연산을 이용하여 영상을 생성하는 방법을 나타내는 도면이다.
도 1을 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 뉴럴 네트워크(Neural Network)(20)를 이용하여, 영상을 생성할 수 있다. 영상 처리 장치(100)는 뉴럴 네트워크(20)를 이용하여, 제1 영상(input)에 대한 특징 정보를 추출하고, 추출된 특징 정보에 기초하여, 제2 영상(output)을 생성할 수 있다.
뉴럴 네트워크(20)는 하나 이상의 디컨볼루션(deconvolution) 레이어들을 포함할 수 있으며, 디컨볼루션 레이어들 각각에서는, 디컨볼루션 레이어에 입력된 영상(input)과 커널(kernel)의 디컨볼루션(deconvolution) 연산(30)을 수행할 수 있으며, 디컨볼루션 연산 결과, 출력 영상(output)을 생성할 수 있다.
디컨볼루션 연산(30)은, 컨볼루션 뉴럴 네트워크(CNN:Convolution Neural Network)에서, 일반적으로 입력 영상을 업 스케일하기 위해 이용될 수 있으며, 예를 들어, 초 해상도(super-resoultion) 영상 생성, 자동-엔코더(auto-encoder), 스타일 변환(style transfer) 등 다양한 분야에 이용될 수 있다. 다만, 이에 한정되지 않는다.
디컨볼루션 연산 결과 생성된 업 스케일된 제2 영상(output)의 크기는 제1 영상(input)의 크기보다 크다.
한편, 제1 영상을 정수 배가 아닌 실수 배(비-정수 배) 업 스케일하고자 하는 경우가 발생할 수 있다.
도 2는 일 실시예에 따라 영상을 비 정수 배 업 스케일하는 경우를 설명하기 위한 도면이다.
도 2를 참조하면, 영상이 표시되는 디스플레이는 모듈 단위로 구성될 수 있으며, 이때, 모듈을 조합하는 방법에 따라 디스플레이의 크기가 다양하게 결정될 수 있다. 예를 들어, 모듈 하나의 크기가 9.8인치, 480x270의 해상도를 가지는 경우, 8 x 8 모듈들을 포함하는 Ultra-HD(4K) 해상도를 가지는 제1 디스플레이(210)를 구성할 수 있다. 또는, 9 x 9 모듈들을 포함하는 4320 x 2430의 해상도(예를 들어, 약 4.5K 해상도)를 가지는 제2 디스플레이(220)를 구성할 수 있다.
이때, 제1 디스플레이(210)에 출력할 수 있는, 4K 해상도를 가지는 영상을 제2 디스플레이(220)에 출력하고자 하는 경우, 4K 해상도를 가지는 영상을 9/8배 업 스케일할 필요가 있다.
이와 같이, 디컨볼루션 연산을 이용하여, 영상을 정수 배가 아닌 실수 배(비-정수 배)로 업 스케일하는 경우, 디컨볼루션 연산에 필요한 커널의 개수는 정수 배로 업 스케일하는 경우보다 증가할 수 있다. 이에 대해서는, 도 3을 참조하여 설명하기로 한다.
도 3은 일 실시예에 따른 제1 영상을 정수 배 업 스케일하는 경우와 정수가 아닌 실수 배로 업 스케일하는 경우를 나타내는 도면이다.
도 3의 (a)는, 제1 영상(LR)을 정수 배(예를 들어, 2배)로 업 스케일하는 경우를 나타낸다. 도 3의 (a)를 참조하면, 제1 영상을 2배로 업 스케일하여 생성된 제2 영상(HR)에 포함되는 픽셀들의 개수는, 제1 영상에 포함된 픽셀들의 개수보다 2배 증가한다.
예를 들어, 제1 영상에 포함되는 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 기초하여, 제2 영상에 포함되는 제4 픽셀(P4) 값이 결정되며, 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 제1 커널(K 0)을 적용하여, 컨볼루션 연산함으로써, 제4 픽셀(P4) 값이 계산될 수 있다. 이때, 제1 커널(K 0)은, 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 적용되는 가중치 값들을 포함하며, 가중치 값들은 제4 픽셀(P4)에 대한 제1 픽셀(P1) 및 제2 픽셀(P2)의 상대적인 위치들에 기초하여 결정될 수 있으나, 이에 한정되지 않는다.
또한, 제1 영상에 포함되는 제1 내지 제3 픽셀(P1, P2, P3) 값들에 기초하여, 제2 영상에 포함되는 제5 픽셀(P5) 값이 결정되며, 제1 내지 제3 픽셀(P1, P2, P3) 값들에 제2 커널(K 1)을 적용하여 컨볼루션 연산함으로써, 제5 픽셀(P5) 값이 계산될 수 있다. 이때, 제2 커널(K 1)은 제1 내지 제3 픽셀(P1, P2, P3) 값들에 적용되는 가중치 값들을 포함하며, 가중치 값들은 제 5 픽셀(P5)에 대한 제1 내지 제3 픽셀들(P1, P2, P3)의 상대적인 위치들에 기초하여, 결정될 수 있으나, 이에 한정되지 않는다.
한편, 도 3의 (a)를 참조하면, 제4 픽셀, 제6 픽셀, 및 제8 픽셀들(P4, P6, P8) 각각은, 해당 픽셀 값을 계산하기 위해 이용되는 픽셀들(제1 영상에서의 픽셀, 입력 데이터)과 해당 픽셀과의 상대적인 위치가 동일하다. 따라서, 입력 데이터에 동일한 가중치들(커널, 예를 들어, K 0)을 적용하여, 제4 픽셀, 제6 픽셀 및 제8 픽셀들(P4, P6, P8)의 값을 계산할 수 있다.
이와 동일하게, 제5 픽셀 및 제7 픽셀들(P5, P7) 각각도, 해당 픽셀 값을 계산하기 위해 이용되는 픽셀들과, 해당 픽셀과의 상대적인 위치가 동일하며, 따라서, 제5 픽셀(P5)을 계산하기 위해 적용되는 커널(예를 들어, K 1)과 제7 픽셀(P7)을 계산하기 위해 적용되는 커널(예를 들어, K 1)은 동일하다.
이에 따라, 제1 영상을 2배 업 스케일하는 경우, 필요한 커널의 개수는 2가 되며, 제1 영상을 k1(k1은 정수) 배 업 스케일하는 경우, 필요한 커널의 개수는 k1가 된다.
반면에 도 3의 (b)는 제1 영상을 비-정수 배(예를 들어, 7/3배)로 업 스케일하는 경우를 나타낸다.
예를 들어 제1 영상(LR)에 포함되는 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 기초하여, 제2 영상에 포함되는 제9 픽셀(P9) 값이 결정되며, 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 제3 커널(K i)을 적용하여, 컨볼루션 연산함으로써, 제9 픽셀(P9) 값이 계산될 수 있다. 이때, 제3 커널(Ki)은 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 적용되는 가중치 값들을 포함하며, 가중치 값들은 제9 픽셀(P9)에 대한 제1 픽셀(P1) 및 제2 픽셀(P2)의 상대적인 위치들에 기초하여 결정될 수 있다.
또한, 제1 영상(LR)에 포함되는 제1 픽셀(P1) 값과 제2 픽셀(P2) 값에 제4 커널(K i+1)을 적용하여, 컨볼루션 연산함으로써, 제10 픽셀(P10) 값이 계산될 수 있으며, 이때, 제4 커널(K i+1)에 포함되는 가중치 값들은, 제10 픽셀(P10)에 대한 제1 픽셀(P1) 및 제2 픽셀(P2)의 상대적인 위치들에 기초하여 결정될 수 있다.
한편, 도 3의 (b)를 참조하면, 제9 픽셀 내지 제15 픽셀들(P9, P10, P11, P12, P13, P14, P15) 각각은, 해당 픽셀 값을 계산하기 위해 이용되는 픽셀들(제1 영상에서의 픽셀들)과 해당 픽셀과의 상대적인 위치가 모두 다르다. 따라서, 입력 데이터에 동일한 가중치들을 적용할 수 없으며, 따라서, 제9 픽셀 내지 제15 픽셀들(P9, P10, P11, P12, P13, P14, P15)의 값을 결정하기 위해서는, 서로 다른 7개의 커널이 필요하다. 즉, 제1 영상을 k2(k2는 정수가 아닌 실수, k2 = A/B(A와 B는 서로소))배 업 스케일하는 경우, A개의 커널이 필요하다.
예를 들어, 제1 영상을 1001/1000 배 업 스케일하는 경우, 디컨볼루션 연산에 필요한 커널의 개수는 1001개가 되고, 이에 따라, 디컨볼루션 연산에 필요한 메모리 및 연산량이 매우 증가하게 되며, 연산속도가 느려지게 된다.
도 4는 일 실시예에 따른 제1 영상을 업 스케일하기 위한 디컨볼루션에 적용되는 커널에 포함되는 가중치들의 경향성을 결정하는 방법을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 제2 영상의 픽셀 값을 계산할 때, 제2 영상의 픽셀의 위치에 따라, 제1 영상의 픽셀 값에 적용되는 가중치들의 경향성을 찾기 위하여, 큐빅 B-스플라인 보간법을 적용한 예를 나타낸다.
도 4를 참조하면, 제1 그래프(410)는, 제1 영상의 4개의 픽셀 값들(x i-1, x i, x i+1, x i+2)을 이용하여, 제2 영상의 픽셀 값을 계산하는 경우에, 4개의 픽셀 값들(x i-1, x i, x i+1, x i+2) 각각에 적용되는 가중치를 나타내는 곡선들(B 0(u), B 1(u), B 2(u), B 3(u))을 포함한다. 이때, 곡선들(B 0(u), B 1(u), B 2(u), B 3(u))은, 큐빅 B 스플라인 곡선들이며, 도 4에 도시된 바와 같이, B 0(u), B 1(u), B 2(u), B 3(u)는 u에 대한 함수로 나타난다. 변수 u의 의미는 이하에서 자세히 설명하기로 한다.
예를 들어, 제1 영상과 제2 영상을 동일한 크기로 가정하고, 제1 영상에 포함되는 인접하는 픽셀들의 거리를 1로 하면, 제1 영상의 픽셀들의 위치는 정수로 표현되고, 제2 영상의 픽셀들의 위치는 실수로 표현될 수 있다. 예를 들어, 제1 영상의 픽셀들은, x i(i=0, 1, 2, 3,.., n)으로 표현될 수 있으며, 인덱스 i는 해당 픽셀의 좌표 값(위치)을 나타낼 수 있다. 제2 영상의 픽셀들은, y j(j = 실수)로 표현될 수 있으며, j는 해당 픽셀의 좌표 값(위치)을 나타낼 수 있다.
한편, 도 4를 참조하면, 제2 영상에 포함되는 픽셀(y j)의 값은, j에 버림 연산을 수행하여, 정수 i를 결정하고, 제1 영상에 포함되는 픽셀들 중 4개의 픽셀들(x i-1, x i, x i+1, x i+2)에 기초하여, 결정될 수 있다.
예를 들어, y j =B 0(u)*x i-1+B 1(u)*x i+B 2(u)*x i+1+B 3(u)*x i+2로 나타낼 수 있다.
이때, u는 제1 영상과 제2 영상을 동일한 크기로 가정하였을 때, 제2 영상에 포함된 픽셀 y j에 대응하는 지점이, 제1 영상의 픽셀들 xi와 xi+1 사이에 위치할 때, 픽셀 xi와 픽셀 y j에 대응하는 지점 사이의 거리로 나타낼 수 있다. 도 4를 참조하면, u는 j를 버림한 값(예를 들어, 정수 i)과 j의 차이(j-i)로 표현될 수 있다.
한편, 곡선들(B 0(u), B 1(u), B 2(u), B 3(u))은, 도 4에 도시된 바와 같이, 행렬 B(u)로 나타낼 수 있으며, 제1 영상의 4개의 픽셀들(x i-1, x i, x i+1, x i+2)은 행렬 I로 나타낼 수 있다. 이에 따라, 픽셀 y j의 값은 다음과 같은 수학식에 의해 결정될 수 있다.
Figure PCTKR2020004596-appb-img-000001
이때, 기호 <A, B> F의 연산은 컨볼루션 연산을 의미한다. 즉, 행렬 A와 행렬 B에서 동일한 위치의 원소들끼리 곱한 값들을 합하는 연산을 의미한다.
한편, 도 4의 행렬 B는, 입력 I에 적용되는 가중치들의 경향성을 찾기 위하여, B-큐빅 스플라인 곡선들을 적용한 것으로, 도 4의 행렬 B에서 u에 대한 행렬을 제외한 나머지 부분(430, 예를 들어, 계수(1/6)와 행렬 B'의 엘리먼트들)은 훈련을 통하여, 적절한 값으로 결정될 수 있다.
도 5는 일 실시예에 따른 제1 영상을 업 스케일하기 위한 디컨볼루션에 적용되는 커널을 모델링하는 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 도 4의 행렬 B에서 u에 대한 행렬을 제외한 나머지 부분(430, 예를 들어, 계수(1/6)와 행렬 B'의 엘리먼트들)은, 도 5에 도시된 바와 같이, 훈련 가능한 값인 θ ij로 표현되도록 모델링할 수 있다. 이에 따라, 도 5의 행렬 K는, 제1 영상을 업 스케일하기 위한 디컨볼루션에 적용되는 훈련 가능한 커널을 나타내며, 훈련 가능한 행렬 Θ(510)와 행렬 U의 곱으로 표현될 수 있다. 예를 들어, 행렬 K는 다음의 수학식 2와 같이 나타낼 수 있다.
Figure PCTKR2020004596-appb-img-000002
이때, 행렬 Θ와 행렬 U는 각각 도 5에 도시된 바와 같이 표현될 수 있다.
또한, 제1 영상을 업 스케일하기 위한 디컨볼루션 연산은, 다음의 수학식 3과 같이 표현될 수 있다.
Figure PCTKR2020004596-appb-img-000003
수학식 3에서, 행렬 I i는 제2 영상에 포함되는 픽셀 값 y j를 계산하기 위해 이용되는, 제1 영상의 픽셀 값들을 나타낸다. 또한, 행렬 U j는, 행렬 Θ와 연산되는 대신에, 행렬 I i와 연산되도록 행렬 U j의 위치가 변경될 수 있다.
이에 따라, 행렬 K j(=ΘU)는 u j의 함수로 나타나는 행렬로, u j의 값에 따라 변하는(space-variant) 행렬이었으나, 행렬 Θ는 u j의 값에 따라 변하지 않는(space-invarient) 행렬이 된다. 또한, 컨볼루션 연산에서 순서는 바뀔 수 있으므로, 제2 영상의 픽셀 값 yj는 다음의 수학식 4와 같이 나타낼 수 있다.
Figure PCTKR2020004596-appb-img-000004
수학식 4에서 파라미터들의 의미는, 이하, 도 6을 참조하여 자세히 설명하기로 한다.
도 6은, 일 실시예에 따른 제1 영상을 비-정수 배 업 스케일하기 위한 디컨볼루션을 나타내는 도면이다.
도 6을 참조하면, x는 제1 영상을 나타내며, y는 x를 비-정수 배 업 스케일한 제2 영상을 나타낸다. 또한, i는 제1 영상에 포함되는 픽셀들의 인덱스를 나타내는 값으로, x와 y를 동일한 크기로 나타내고, 제1 영상에 포함되는 인접하는 픽셀들 사이의 거리를 1로 하였을 때, x에 포함되는 픽셀들의 위치를 나타내는 값이다. i는 0, 1,..., n의 정수 값으로 표현될 수 있다. 또한, j는 제2 영상에 포함되는 픽셀들의 인덱스를 나타내는 값으로, 제2 영상에 포함되는 픽셀들의 위치를 나타내는 값이다. 제1 영상의 픽셀들의 위치(예를 들어, 좌표)가 정수로 표현되면, 제2 영상의 픽셀들의 위치(예를 들어, 좌표)는 실수로 표현될 수 있다. 따라서, j는 실수 값으로 표현될 수 있다.
도 5에서 설명한 바와 같이, 제2 영상에 포함되는 픽셀(yj)의 값은 <U j·I i T, Θ> F로 나타낼 수 있으며, 이때, 행렬 U j는 u j에 대한 함수로 표현되며, u j값에 따라 결정된다. 이때, u j값은 픽셀 y j와 제1 영상의 픽셀 x i의 상대적인 거리에 따라, 결정되는 값이다. 또한, 픽셀 x i의 인덱스 i 는, 픽셀 y j의 인덱스 j에 버림 연산을 수행한 값으로 결정된다. 예를 들어, 픽셀 y 1.2 의 값을 구하는 경우, j는 1.2이므로, 1.2에 버림 연산을 수행한 값 1이 i값이 되며, x i는 x 1이 된다. 또한, u 1.2는 0.2가 된다. 따라서, 행렬 Uj는 계산하고자 하는 픽셀 값 yj의 인덱스 j에 따라 다르게 결정된다.
또한, 행렬 Ii도 y j의 인덱스 j에 따라 다르게 결정된다. 예를 들어, 인덱스 j에 따라 인덱스 i 값이 결정되며, 인덱스 i에 따라, 행렬 Ii=[x i-1, x i, x i+1, x i+2]가 결정된다. 예를 들어, 인덱스 j가 1.2이고 인덱스 i가 1인 경우, 행렬 I 1=[x 0, x 1, x 2, x 3]으로 결정될 수 있다. 다만, 행렬 Ii에 포함되는 엘리먼트들의 개수에 따라 행렬 Ii는 다르게 구성될 수 있다.
한편, 행렬 Θ는 훈련에 의해 결정되는 값으로, 계산하고자 하는 픽셀 값 y j의 인덱스 j 또는, u j와 상관없이 동일하게 적용될 수 있다.
도 7은 일 실시예에 따른 영상 처리 장치가 제1 영상을 업 스케일하기 위해 디컨볼루션을 수행하는 과정을 설명하기 위한 도면이다.
일 실시예에 따른 영상 처리 장치(100)는 제1 영상(710)에 포함되는 픽셀들과 제2 영상(720)에 포함되는 픽셀들의 상대적인 위치 관계 및 제1 영상(710)에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보들(740)을 획득할 수 있다.
예를 들어, 영상 처리 장치(100)는 제1 영상에 포함되는 픽셀 값들을 이용하여, 변환 특징 정보들(730)을 생성할 수 있다. 도 7에 도시된 바와 같이, 변환 특징 정보들은 n개일 수 있으며, 이때, n은, 제2 영상에 포함되는 하나의 픽셀 값을 계산하기 위해 이용되는 제1 영상에 포함되는 픽셀들의 개수와 동일하다. 도 7에서는, 제1 영상에 포함되는 4개의 픽셀 값들을 이용하여, 제2 영상의 하나의 픽셀 값을 계산하는 경우를 도시한다.
일 실시예에 따른 변환 특징 정보들(730)은, 4개의 변환 특징 정보들(제1 변환 특징 정보(X k-1), 제2 변환 특징 정보(X k), 제3 변환 특징 정보(X k+1) 및 제4 변환 특징 정보(X k+2))을 포함할 수 있다. 변환 특징 정보들(730)을 생성하는 방법에 대해서는 도 8을 참조하여, 자세히 설명하기로 한다.
도 8은, 일 실시예에 따른, 변환 특징 정보들을 생성하는 방법을 설명하기 위한 도면이다.
도 8을 참조하면, 제1 영상(710)과 제2 영상(720)을 동일한 크기로 가정하고, 제1 영상(710)에 포함되는 인접하는 픽셀들의 거리를 1로 하면, 제1 영상의 픽셀들의 위치는 정수로 표현되고, 제2 영상의 픽셀들의 위치는 실수로 표현될 수 있다. 예를 들어, 제1 영상(710)의 픽셀들은, x i(i=0, 1, 2, 3,.., n)으로 표현될 수 있으며, 인덱스 i는 해당 픽셀의 좌표 값(위치)을 나타낼 수 있다. 제2 영상의 픽셀들은, y j(j = j0, j1, j2,..., jm, j는 실수)로 표현될 수 있으며, j는 해당 픽셀의 좌표 값(위치)을 나타낼 수 있다.또한, 제1 영상에 포함되는 픽셀 값은 x i= x 0, x 1, x 2,..., x n으로 나타낼 수 있으며, 제2 영상에 포함되는 픽셀 값은 y j=y j0, y j1, y j2,..., y jm으로 나타낼 수 있다.
변환 특징 정보들(730)은, 제2 영상(720)과 동일한 크기를 가지도록 생성될 수 있다. 예를 들어, 제2 영상의 크기가 W X H이면, 변환 특징 정보들의 크기도 W X H일 수 있다.
변환 특징 정보들(730) 각각에 포함되는 샘플 값들은, 샘플들 각각에 대응하는 제2 영상(720)의 픽셀의 위치(인덱스)에 기초하여 결정될 수 있다. 예를 들어, 제2 영상(720)의 제1 픽셀(840)은 인덱스 j 0 값을 가지며, j 0에 버림 연산을 수행한 값 k 0를 결정할 수 있다. 따라서, 제1 픽셀(840)에 대응하는 위치의 샘플 값들(S11, S21, S31, S41)은, k 0 값에 기초하여 결정된다.
예를 들어, 제1 변환 특징 정보(831)의 제1 샘플 값(S11)은, k 0-1을 인덱스로 가지는 제1 영상의 픽셀 값(x k0-1)으로 결정되고, 제2 변환 특징 정보(832)의 제2 샘플 값(S21)은 k 0을 인덱스로 가지는 제1 영상의 픽셀 값(x k0)으로 결정되며, 제3 변환 특징 정보(833)의 제3 샘플 값(S31)은 k 0+1을 인덱스로 가지는 제1 영상의 픽셀 값(x k0+1)으로 결정되고, 제4 변환 특징 정보(834)의 제4 샘플 값(S41)은 k 0+2를 인덱스로 가지는 제1 영상의 픽셀 값 (x k0+2)으로 결정된다.
영상 처리 장치(100)는, 이와 동일한 방식으로, 제2 영상과 동일한 크기를 가지는 제1 내지 제4 변환 특징 정보들(831, 832, 833, 834)를 획득할 수 있다.
다시 도 7을 참조하면, 영상 처리 장치(100)는 제1 내지 제4 변환 특징 정보들(730)에 u j 3, u j 2, u j 1, u j 0을 각각 곱하여, 위치 변환 특징 정보들(740)을 생성할 수 있다.
또한, 영상 처리 장치(100)는 위치 변환 특징 정보들(740)과 커널(750)의 컨볼루션 연산을 수행함으로써, 제1 영상(710)이 비-정수 배 업 스케일된 제2 영상(720)을 획득할 수 있다. 이때, 커널(750)에 포함되는 가중치 값들은, 컨볼루션 연산이 수행되는 위치 변환 특징 정보들(740)에 포함되는 샘플 값들의 위치에 따라, 변하지 않는다. 또한, 커널에 포함되는 가중치들의 개수는, 제2 영상에 포함되는 하나의 픽셀 값을 계산하기 위해 이용되는 제1 영상에 포함되는 픽셀들의 개수 n에 기초하여 결정될 수 있다.
예를 들어, 제1 영상(710)에, 도 7의 디컨볼루션 연산이 수행되어 업 스케일된 제2 영상(720)의 픽셀 y j0의 값은, 다음의 수학식 5와 같이 나타낼 수 있다.
Figure PCTKR2020004596-appb-img-000005
도 9 및 도 10은, 일 실시예에 따른 영상 처리 장치가 제1 영상을 업 스케일하기 위하여, 도 7의 디컨볼루션과 다른 디컨볼루션을 수행하는 과정을 설명하기 위한 도면들이다.
도 9를 참조하면, y j를 계산할 때, u j이외에, v j, p j, q j의 변수를 추가로 이용하여, yj를 계산할 수 있다.
변수 v j, p j, q j 는 다음의 수학식 6과 같이, u j에 대한 함수로 나타낼 수 있으며, u j에 대한 비선형적 함수로 나타낼 수 있다.
Figure PCTKR2020004596-appb-img-000006
이때, W S는, 제1 영상의 크기를 의미하며, W T는 제2 영상의 크기를 의미한다.
예를 들어, 수학식 6의 변수 v j, p j, q j 와 u j 의 관계를 이용하면, 수학식 5는 다음의 수학식 7과 같이 변형될 수 있다.
Figure PCTKR2020004596-appb-img-000007
또한, v j, p j, q j 는 다음과 같은 수학식 8로 표현될 수 있다.
Figure PCTKR2020004596-appb-img-000008
수학식 7 및 수학식 8을 이용하여, y j+1를 일반적인 식으로 표현하면, 다음의 수학식 9와 같이 나타낼 수 있다.
Figure PCTKR2020004596-appb-img-000009
도 10은, 수학식 9의 연산 과정을 나타내는 도면이며, 도 10에 도시된 변환 특징 정보(1040)는, 도 7의 4개의 변환 특징 정보들(730) 중 제2 변환 특징 정보(832)일 수 있다.
영상 처리 장치(100)는 제1 영상(1010)으로부터 변환 특징 정보(1040)에 u j 3, u j 2, u j 1, u j 0을 각각 곱하여, 위치 변환 특징 정보들(1040)을 생성할 수 있다. 또한, 영상 처리 장치(100)는 위치 변환 특징 정보들(1040)과 커널(1050)의 컨볼루션 연산을 수행함으로써, 제1 영상(1010)이 비-정수 배 업 스케일된 제2 영상(1020)을 획득할 수 있다. 이때, 커널(1050)에 포함되는 가중치 값들은, 컨볼루션 연산이 수행되는 위치 변환 특징 정보들(1040)에 포함되는 샘플 값들의 위치에 따라, 변하지 않는다. 또한, 커널에 포함되는 가중치들의 개수는, 제2 영상에 포함되는 하나의 픽셀 값을 계산하기 위해 이용되는 제1 영상에 포함되는 픽셀들의 개수 n에 기초하여 결정될 수 있다.
예를 들어, 제1 영상(1010)에, 도 10의 디컨볼루션 연산이 수행되어 업 스케일된 제2 영상(1020)의 픽셀 y j1의 값은, 다음의 수학식 10과 같이 나타낼 수 있다.
Figure PCTKR2020004596-appb-img-000010
도 11은 일 실시예에 따른 영상 처리 장치의 동작방법을 나타내는 흐름도이다.
도 11을 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 제1 영상에 포함되는 픽셀들과 제2 영상에 포함되는 픽셀들의 상대적인 위치 관계를 획득하고, 획득한 위치 관계 및 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득할 수 있다.
일 실시예에 따른, 영상 처리 장치(100)는 제1 영상에 포함되는 복수의 픽셀들 중 n개의 픽셀들의 값을 이용하여, 제2 영상에서의 하나의 픽셀 값을 획득한다. 이때, 제2 영상에서의 하나의 픽셀의 위치에 대한 제1 영상에서의 n개의 픽셀들의 상대적인 위치 관계를 획득할 수 있다.
예를 들어, 제1 영상과 제2 영상을 동일한 크기로 가정하여, 제1 영상에서 인접하는 픽셀들 사이의 거리를 1로 하고, 제1 영상에 포함되는 픽셀들의 위치를 인덱스 i(i=정수)로 나타내며, 제2 영상에 포함되는 픽셀들의 위치를 인덱스 j(j=실수)로 나타낼 수 있다. 예를 들어, x 0, x 1은 각각 제1 영상에서 좌표 0과 좌표 1에 위치하는 픽셀 값을 의미하고, y 0.2는 제2 영상에서 좌표 0.2에 위치하는 픽셀 값을 의미할 수 있다.
영상 처리 장치(100)는 제2 영상에 포함되는 픽셀이 나타내는 인덱스 j값에 버림 연산을 수행하여 k를 결정할 수 있으며, 픽셀이 나타내는 인덱스 j와 k j의 차이 값인 u j를 결정할 수 있다. 예를 들어, y 0.2의 경우, k j는 0으로, u j는 0.2로 결정할 수 있다.
일 실시예에 따른 영상 처리 장치(100)는 제2 영상의 하나의 픽셀 값을 획득하기 위해 이용되는 제1 영상의 픽셀들의 개수와, k j, u j에 기초하여, 위치 변환 특징 정보를 획득할 수 있다. 위치 변환 특징 정보를 획득하는 방법에 대해서는, 도 7 내지 10에서 자세히 설명하였으므로, 구체적인 설명은 생략하기로 한다.
또한, 영상 처리 장치(100)는 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 제1 영상을 k(k는 실수)배 업 스케일한 제2 영상을 생성할 수 있다.
이때, k는 정수가 아닌 실수를 의미할 수 있으며, 커널의 크기(예를 들어, 커널에 포함되는 가중치들의 개수)는, 제2 영상에서의 하나의 픽셀 값을 획득하기 위하여, 이용되는 제1 영상에서의 픽셀들의 개수 n에 기초하여 결정될 수 있다. 또한, 커널에 포함되는 가중치 값들은, 컨볼루션 연산이 수행되는 위치 변환 특징 정보에 포함되는 샘플 값들의 위치에 따라 변하지 않으며, 일정하다.
도 12는 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.
도 12를 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 프로세서(120) 및 메모리(130)를 포함할 수 있다.
일 실시예에 따른 프로세서(120)는 영상 처리 장치(100)를 전반적으로 제어할 수 있다. 일 실시예에 따른 프로세서(120)는 메모리(130)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다.
일 실시예에 따른 메모리(130)는 영상 처리 장치(100)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다. 메모리(130)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(130)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(120)에 의해 실행될 수 있다.
일 실시예에 따른 프로세서(120)는 제1 영상에 포함되는 픽셀들과 제2 영상에 포함되는 픽셀들의 상대적인 위치 관계를 획득하고, 획득한 위치 관계 및 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득할 수 있다.
일 실시예에 따른, 프로세서(120)는 제1 영상에 포함되는 복수의 픽셀들 중 n개의 픽셀들의 값을 이용하여, 제2 영상에서의 하나의 픽셀 값을 획득한다. 이때, 제2 영상에서의 하나의 픽셀의 위치에 대한 제1 영상에서의 n개의 픽셀들의 상대적인 위치 관계를 획득할 수 있다. 예를 들어, 제1 영상과 제2 영상을 동일한 크기로 가정하여, 제1 영상에서 인접하는 픽셀들 사이의 거리를 1로 하고, 제1 영상에 포함되는 픽셀들의 위치를 인덱스 i(i=정수)로 나타내며, 제2 영상에 포함되는 픽셀들의 위치를 인덱스 j(j=실수)로 나타낼 수 있다.
프로세서(120)는 제2 영상에 포함되는 픽셀이 나타내는 인덱스 j값에 버림 연산을 수행하여 k를 결정할 수 있으며, 픽셀이 나타내는 인덱스 j와 k j의 차이 값인 u j를 결정할 수 있다. 예를 들어, y 0.2의 경우, k j는 0으로, u j는 0.2로 결정할 수 있다.
일 실시예에 따른 프로세서(120)는 제2 영상의 하나의 픽셀 값을 획득하기 위해 이용되는 제1 영상의 픽셀들의 개수와, k j, u j에 기초하여, 위치 변환 특징 정보를 획득할 수 있다. 위치 변환 특징 정보를 획득하는 방법에 대해서는, 도 7 내지 10에서 자세히 설명하였으므로, 구체적인 설명은 생략하기로 한다.
또한, 프로세서(120)는 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 제1 영상을 k(k는 실수)배 업 스케일한 제2 영상을 생성할 수 있다. 이때, k는 정수가 아닌 실수를 의미할 수 있으며, 커널의 크기(예를 들어, 커널에 포함되는 가중치들의 개수)는, 제2 영상에서의 하나의 픽셀 값을 획득하기 위하여, 이용되는 제1 영상에서의 픽셀들의 개수 n에 기초하여 결정될 수 있다. 또한, 커널에 포함되는 가중치 값들은, 컨볼루션 연산이 수행되는 위치 변환 특징 정보에 포함되는 샘플 값들의 위치에 따라 변하지 않으며, 일정하다.
또한, 일 실시예에 따른 커널에 포함되는 가중치 값들은, 훈련되어 결정되는 값이며, 훈련되어 결정된 가중치 값들은, 메모리(130)에 저장될 수 있다.
한편, 도 12에 도시된 영상 처리 장치(100)의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 영상 처리 장치(100)의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.
일 실시예에 따른 영상 처리 장치의 동작방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
또한, 개시된 실시예들에 따른 영상 처리 장치 및 영상 처리 장치의 동작방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 서버 및 클라이언트 장치로 구성되는 시스템에서, 서버의 저장매체 또는 클라이언트 장치의 저장매체를 포함할 수 있다. 또는, 서버 또는 클라이언트 장치와 통신 연결되는 제3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 클라이언트 장치 또는 제3 장치로 전송되거나, 제3 장치로부터 클라이언트 장치로 전송되는 S/W 프로그램 자체를 포함할 수 있다.
이 경우, 서버, 클라이언트 장치 및 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 클라이언트 장치 및 제3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 클라이언트 장치가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.

Claims (15)

  1. 영상 처리 장치에 있어서,
    하나 이상의 인스트럭션들을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고,
    상기 프로세서는,
    제1 영상에 포함되는 픽셀들과 제2 영상에 포함되는 픽셀들의 상대적인 위치 관계 및 상기 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득하며,
    상기 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 상기 제1 영상을 k배 업 스케일한 제2 영상을 생성하며, 상기 k는 실수인, 영상 처리 장치.
  2. 제1항에 있어서,
    상기 k는 정수가 아닌 실수인, 영상 처리 장치.
  3. 제1항에 있어서,
    상기 커널에 포함되는 가중치 값들은, 상기 컨볼루션 연산이 수행되는 상기 위치 변환 특징 정보에 포함되는 샘플 값들의 위치에 따라, 변하지 않는, 영상 처리 장치.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 제1 영상에 포함되는 복수의 픽셀들 중 n개의 픽셀들의 값을 이용하여, 상기 제2 영상에서의 하나의 픽셀 값을 획득하며, 상기 하나의 픽셀의 위치에 대한 상기 n개의 픽셀들의 상대적인 위치 관계에 기초하여, 상기 위치 변환 특징 정보를 획득하는, 영상 처리 장치.
  5. 제4항에 있어서,
    상기 제1 영상과 상기 제2 영상을 동일한 크기로 가정하여, 상기 제1 영상에 포함되는 픽셀들의 위치를 인덱스 i(i= 정수)로 나타내고, 상기 제2 영상에 포함되는 픽셀들의 위치를 인덱스 j(j=실수)로 나타내며,
    상기 프로세서는,
    상기 하나의 픽셀이 나타내는 인덱스 값에 버림 연산을 수행하여, k j(k j=정수)를 결정하고, 상기 j와 k j의 차이 값인 u j를 결정하고,
    상기 k j와 u j에 기초하여, 상기 위치 변환 특징 정보를 획득하는, 영상 처리 장치.
  6. 제5항에 있어서,
    상기 제1 영상에 포함되는 인접하는 픽셀들 사이의 거리는 1인, 영상 처리 장치.
  7. 제5항에 있어서,
    상기 n개의 픽셀들은, 상기 하나의 픽셀이 나타내는 인덱스 j값에 기초하여, 결정되는, 영상 처리 장치.
  8. 제5항에 있어서,
    상기 위치 변환 특징 정보에 포함되는 샘플 값들은, 상기 u에 대한 선형식으로 표현되는, 영상 처리 장치.
  9. 제4항에 있어서,
    상기 커널에 포함되는 가중치들의 개수는, 상기 n의 값에 기초하여 결정되는, 영상 처리 장치.
  10. 영상 처리 장치의 동작방법에 있어서,
    제1 영상에 포함되는 픽셀들과 제2 영상에 포함되는 픽셀들의 상대적인 위치 관계 및 상기 제1 영상에 포함되는 픽셀들의 값에 기초하여, 위치 변환 특징 정보를 획득하는 단계; 및
    상기 위치 변환 특징 정보와 커널과의 컨볼루션 연산을 수행함으로써, 상기 제1 영상을 k배 업 스케일한 제2 영상을 생성하는 단계를 포함하며, 상기 k는 실수인, 영상 처리 장치의 동작방법.
  11. 제10항에 있어서,
    상기 k는 정수가 아닌 실수인, 영상 처리 장치의 동작방법.
  12. 제10항에 있어서,
    상기 커널에 포함되는 가중치 값들은, 상기 컨볼루션 연산이 수행되는 상기 위치 변환 특징 정보에 포함되는 샘플 값들의 위치에 따라, 변하지 않는, 영상 처리 장치의 동작방법.
  13. 제10항에 있어서,
    상기 위치 변환 특징 정보를 획득하는 단계는,
    상기 제2 영상에 포함되는 하나의 픽셀의 위치에 대한 상기 제1 영상에 포함되는 n개의 픽셀들의 상대적인 위치 관계에 기초하여, 상기 위치 변환 특징 정보를 획득하는 단계를 포함하고,
    상기 n개의 픽셀들은, 상기 하나의 픽셀 값을 획득하기 위하여, 이용되는, 픽셀들인, 영상 처리 장치의 동작방법.
  14. 제13항에 있어서,
    상기 제1 영상과 상기 제2 영상을 동일한 크기로 가정하여, 상기 제1 영상에 포함되는 픽셀들의 위치를 인덱스 i(i= 정수)로 나타내고, 상기 제2 영상에 포함되는 픽셀들의 위치를 인덱스 j(j=실수)로 나타내며,
    상기 위치 변환 특징 정보를 획득하는 단계는,
    상기 하나의 픽셀이 나타내는 인덱스 값에 버림 연산을 수행하여, k j(k j=정수)를 결정하고, 상기 j와 k j의 차이 값인 u j를 결정하고, 상기 k j와 u j에 기초하여, 상기 위치 변환 특징 정보를 획득하는 단계를 포함하는, 영상 처리 장치의 동작방법.
  15. 제14항에 있어서,
    상기 제1 영상에 포함되는 인접하는 픽셀들 사이의 거리는 1인, 영상 처리 장치의 동작방법.
PCT/KR2020/004596 2019-05-16 2020-04-03 영상 처리 장치 및 그 동작방법 WO2020231006A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/293,806 US20220375027A1 (en) 2019-05-16 2020-04-03 Image processing device and operation method therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0057605 2019-05-16
KR1020190057605A KR102266903B1 (ko) 2019-05-16 2019-05-16 영상 처리 장치 및 그 동작방법

Publications (1)

Publication Number Publication Date
WO2020231006A1 true WO2020231006A1 (ko) 2020-11-19

Family

ID=73290205

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/004596 WO2020231006A1 (ko) 2019-05-16 2020-04-03 영상 처리 장치 및 그 동작방법

Country Status (3)

Country Link
US (1) US20220375027A1 (ko)
KR (1) KR102266903B1 (ko)
WO (1) WO2020231006A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014106909A (ja) * 2012-11-29 2014-06-09 Jvc Kenwood Corp 画像拡大装置、画像拡大方法、及び画像拡大プログラム
KR101522260B1 (ko) * 2015-01-27 2015-05-26 주식회사 칩스앤미디어 해상도 변환 방법 및 그 장치
KR101526321B1 (ko) * 2014-01-02 2015-06-11 주식회사 칩스앤미디어 해상도 변환 방법 및 그 장치
JP2016139980A (ja) * 2015-01-28 2016-08-04 セイコーエプソン株式会社 画像処理装置、画像処理方法および表示装置
KR20180050928A (ko) * 2016-11-07 2018-05-16 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7446820B2 (en) * 2005-03-30 2008-11-04 Intel Corporation Methods and apparatus for re-scaling image by variable re-scaling factor using B-spline interpolator
US9342894B1 (en) * 2015-05-01 2016-05-17 Amazon Technologies, Inc. Converting real-type numbers to integer-type numbers for scaling images
US10701394B1 (en) * 2016-11-10 2020-06-30 Twitter, Inc. Real-time video super-resolution with spatio-temporal networks and motion compensation
CN107767343B (zh) * 2017-11-09 2021-08-31 京东方科技集团股份有限公司 图像处理方法、处理装置和处理设备
US20190295228A1 (en) * 2018-03-21 2019-09-26 Nvidia Corporation Image in-painting for irregular holes using partial convolutions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014106909A (ja) * 2012-11-29 2014-06-09 Jvc Kenwood Corp 画像拡大装置、画像拡大方法、及び画像拡大プログラム
KR101526321B1 (ko) * 2014-01-02 2015-06-11 주식회사 칩스앤미디어 해상도 변환 방법 및 그 장치
KR101522260B1 (ko) * 2015-01-27 2015-05-26 주식회사 칩스앤미디어 해상도 변환 방법 및 그 장치
JP2016139980A (ja) * 2015-01-28 2016-08-04 セイコーエプソン株式会社 画像処理装置、画像処理方法および表示装置
KR20180050928A (ko) * 2016-11-07 2018-05-16 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치

Also Published As

Publication number Publication date
US20220375027A1 (en) 2022-11-24
KR102266903B1 (ko) 2021-06-18
KR20200132306A (ko) 2020-11-25

Similar Documents

Publication Publication Date Title
WO2020116768A1 (ko) 영상 처리 장치 및 그 동작방법
WO2021201422A1 (ko) Ar에 적용 가능한 의미적인 분할 방법 및 시스템
AU2018319215B2 (en) Electronic apparatus and control method thereof
WO2020017871A1 (ko) 영상 처리 장치 및 그 동작방법
WO2017150878A1 (en) Leveraging multi cues for fine-grained object classification
EP3963516A1 (en) Teaching gan (generative adversarial networks) to generate per-pixel annotation
WO2019098538A1 (en) Device and method for processing convolution operation using kernel
WO2019164237A1 (ko) 시스톨릭 배열을 이용하여 딥 러닝 연산을 수행하는 방법 및 장치
WO2020055181A1 (ko) 영상 처리 장치 및 그 동작방법
WO2020231005A1 (ko) 영상 처리 장치 및 그 동작방법
CN109955244B (zh) 一种基于视觉伺服的抓取控制方法、装置和机器人
CN111080699B (zh) 基于深度学习的单目视觉里程计方法及系统
WO2020231035A1 (en) Image processing apparatus and operating method of the same
WO2022092993A1 (ko) 대상 이미지에 대한 추론 작업을 수행하는 방법 및 시스템
KR20190088379A (ko) 자세 추정 방법, 추정된 자세를 이용하여 가상 객체를 디스플레이하는 방법, 및 이를 수행하는 장치들
WO2020231006A1 (ko) 영상 처리 장치 및 그 동작방법
Cervera GPU-accelerated vision for robots: Improving system throughput using OpenCV and CUDA
WO2020204610A1 (ko) 딥러닝 기반 컬러링 방법, 시스템 및 프로그램
WO2019198900A1 (en) Electronic apparatus and control method thereof
WO2023210914A1 (en) Method for knowledge distillation and model generation
Makihara et al. Grasp pose detection for deformable daily items by pix2stiffness estimation
WO2022060001A1 (ko) 영상 처리 장치 및 그 동작방법
WO2021107592A1 (en) System and method for precise image inpainting to remove unwanted content from digital images
CN110910478B (zh) Gif图生成方法、装置、电子设备及存储介质
JP6892557B2 (ja) 学習装置、画像生成装置、学習方法、画像生成方法及びプログラム

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

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

Country of ref document: EP

Kind code of ref document: A1