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

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

Info

Publication number
WO2023219275A1
WO2023219275A1 PCT/KR2023/004576 KR2023004576W WO2023219275A1 WO 2023219275 A1 WO2023219275 A1 WO 2023219275A1 KR 2023004576 W KR2023004576 W KR 2023004576W WO 2023219275 A1 WO2023219275 A1 WO 2023219275A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
image
image processing
areas
feature data
Prior art date
Application number
PCT/KR2023/004576
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 KR1020220121078A external-priority patent/KR20230157220A/ko
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to US18/136,614 priority Critical patent/US20230360382A1/en
Publication of WO2023219275A1 publication Critical patent/WO2023219275A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]

Definitions

  • This disclosure relates to an image processing device that processes images using a neural network and a method of operating the same.
  • artificial intelligence As data traffic increases exponentially with the development of computer technology, artificial intelligence has become an important trend leading future innovation. Because artificial intelligence imitates human thinking, it can be applied virtually to all industries. Representative technologies of artificial intelligence include pattern recognition, machine learning, expert systems, neural networks, and natural language processing.
  • Neural networks can model the characteristics of human biological nerve cells using mathematical expressions and use algorithms that imitate the learning ability that humans have. Through this algorithm, the neural network can create a mapping between input data and output data, and the ability to create this mapping can be expressed as the learning ability of the neural network. In addition, the neural network has a generalization ability to generate output data for input data that was not used for learning, based on the learned results.
  • Neural networks can be used in image processing.
  • image processing to remove noise or artifacts from an image or increase the resolution of the image can be performed using a deep neural network (DNN).
  • DNN deep neural network
  • An image processing device capable of processing images using one or more neural networks is provided.
  • An image processing device that processes an image using at least one neural network may include a memory that stores at least one instruction and at least one processor that executes the at least one instruction.
  • At least one processor may acquire first feature data based on the first image by executing the at least one instruction stored in the memory.
  • At least one processor performs first image processing on the first feature data by executing the at least one instruction stored in the memory, so as to generate a first image of the first image including a first number of pixels. Second feature data corresponding to the first areas may be obtained.
  • At least one processor may acquire third feature data based on the first image by executing the at least one instruction stored in the memory.
  • At least one processor performs a second image processing on the third characteristic data by executing the at least one instruction stored in the memory to include a second number of pixels greater than the first number. Fourth feature data corresponding to second areas of the first image may be obtained.
  • At least one processor may generate a second image based on the second feature data and the fourth feature data by executing the at least one instruction stored in the memory.
  • the first image processing and the second image processing may include performing a self-attention operation.
  • At least one processor executes the at least one instruction stored in the memory, based on information on surrounding regions for each of the first regions, and executes the first region corresponding to each of the first regions.
  • 2 feature data may be acquired, and based on information on surrounding regions for each of the second regions, the fourth feature data corresponding to each of the second regions may be obtained.
  • the first number is 1, and each of the first areas may include one pixel.
  • At least one processor executes the at least one instruction stored in the memory, based on the first characteristic data, query data, key data, and value. Obtain data, each of the query data, the key data and the value data corresponds to the first regions, obtain a weight matrix based on the query data and the key data, and obtain the value Based on the data and the weight matrix, the second feature data may be obtained.
  • At least one processor acquires a correlation matrix based on the query data and the key data by executing the at least one instruction stored in the memory, and determines the size of the first image and the The weight matrix may be obtained by applying a positional bias based on the size of images used for training of at least one neural network to the correlation matrix.
  • At least one processor executes the at least one instruction stored in the memory, thereby storing the third feature data divided into third areas containing the first number of pixels into the second areas.
  • the fourth feature data can be obtained by converting the image into two regions and performing the second image processing on each of the second regions.
  • At least one processor acquires first query data, first key data, and first value data based on the third characteristic data by executing the at least one instruction stored in the memory. and the first query data, first key data, and first value data respectively correspond to third areas including the first number of pixels, the first query data, first key data, and By grouping each of the first value data to correspond to each of the second areas, second query data, second key data, and second value data corresponding to the second areas are obtained, and the second Based on the query data and the second key data, a weight matrix may be obtained, and based on the second value data and the weight matrix, the fourth feature data may be obtained.
  • the third feature data is obtained from the second feature data.
  • the at least one neural network includes at least one convolutional neural network, and the at least one processor uses the at least one convolutional neural network by executing the at least one instruction stored in the memory,
  • the first feature data may be extracted from the first image.
  • the at least one neural network includes at least one convolutional neural network, and the at least one processor executes the at least one instruction stored in the memory to generate the second feature data and the fourth feature data. Based on these, fifth feature data may be obtained, and the second image may be obtained from the fifth feature data using the at least one convolutional neural network.
  • At least one neural network according to an embodiment.
  • a method of operating an image processing device that processes an image using a network may include acquiring first feature data based on a first image.
  • a method of operating an image processing device that processes an image using at least one neural network includes performing first image processing on the first feature data, and performing the first image processing on the first characteristic data, 1 It may include obtaining second feature data corresponding to the first areas of the image.
  • a method of operating an image processing device that processes an image using at least one neural network may include acquiring third feature data based on the first image.
  • a method of operating an image processing device that processes an image using at least one neural network includes performing second image processing on the third feature data, and generating a second number greater than the first number. It may include obtaining fourth feature data corresponding to second areas of the first image including pixels.
  • a method of operating an image processing device that processes an image using one or more neural networks includes generating a second image based on the second feature data and the fourth feature data. It can be included.
  • the first image processing and the second image processing may include performing a self-attention operation.
  • Obtaining the second feature data includes acquiring the second feature data corresponding to each of the first regions based on information on surrounding regions for each of the first regions, Obtaining the fourth feature data may include acquiring the fourth feature data corresponding to each of the second regions based on information on surrounding regions for each of the second regions.
  • the first number is 1, and each of the first areas may include one pixel.
  • Obtaining the second characteristic data includes obtaining query data, key data, and value data based on the first characteristic data, the query data, and key data. Each of the data and value data corresponds to the first regions, obtaining a weight matrix based on the query data and the key data, and based on the value data and the weight matrix, It may include acquiring second feature data.
  • the step of obtaining the weight matrix includes obtaining a correlation matrix based on the query data and the key data, and matching the size of the first image and the size of the images used for training the at least one neural network. and obtaining the weight matrix by applying a based positional bias to the correlation matrix.
  • Obtaining the fourth feature data includes converting the third feature data divided into third regions including the first number of pixels to be divided into the second regions, and the second region. It may include obtaining the fourth feature data by performing the second image processing on each of them.
  • the step of acquiring the fourth feature data includes, based on the third feature data, obtaining first query data, first key data, and first value data, the first query data, first Each of the key data and first value data corresponds to third areas including the first number of pixels, and each of the first query data, first key data, and first value data is stored in the second region.
  • the third feature data may be obtained from the second feature data.
  • the at least one neural network includes at least one convolutional neural network
  • the step of acquiring the first feature data includes extracting the first feature from the first image using the at least one convolutional neural network. It may include a step of extracting data.
  • the at least one neural network includes at least one convolutional neural network
  • the step of generating the second image includes generating fifth feature data based on the second feature data and the fourth feature data. It may include acquiring the second image from the fifth feature data using the at least one convolutional neural network.
  • a computer-readable recording medium includes at least one instruction for performing, by a computer, a method of operating an image processing device that processes an image using one or more neural networks according to an embodiment. You can save the program.
  • FIG. 1 is a diagram illustrating an operation of an image processing device processing an image using an image processing network, according to an embodiment.
  • Figure 2 is a diagram showing a second feature extraction network according to an embodiment.
  • Figure 3 is a diagram showing a transform block according to one embodiment.
  • Figure 4 is a diagram showing a first transform layer according to one embodiment.
  • Figure 5 is a diagram showing a self-attention operation performed in a first self-attention module according to an embodiment.
  • Figure 6 is a diagram showing a first self-attention module according to an embodiment.
  • Figure 7 is a diagram showing a multi-perceptron module according to an embodiment.
  • Figure 8 is a diagram showing a second transform layer according to one embodiment.
  • FIG. 9 is a diagram illustrating a self-attention operation performed in a second self-attention module according to an embodiment.
  • Figure 10 is a diagram showing a second self-attention module according to an embodiment.
  • Figure 11 is a diagram showing a second self-attention module according to an embodiment.
  • Figure 12 is a diagram showing a transform block according to an embodiment.
  • Figure 13 is a diagram showing a transform block according to an embodiment.
  • Figure 14 is a flowchart showing a method of an image processing device according to an embodiment.
  • Figure 15 is a block diagram showing the configuration of an image processing device according to an embodiment.
  • the expression “at least one of a, b, or c” refers to only a, only b, only c, both a and b, both a and c, both b and c, or all a, b, and c. it means.
  • FIG. 1 is a diagram illustrating an operation of an image processing device processing an image using an image processing network, according to an embodiment.
  • the image processing network 103 may receive a first image 101 and process the first image 101 to generate a second image 102.
  • the first image 101 may include noise or artifacts and may be a low-resolution image or low-quality image.
  • the image processing device 100 uses the image processing network 103 to perform denoising to remove noise while maintaining the detailed edges and texture of the first image 101, thereby producing a second image. (102) can be generated.
  • the second image 102 may be a higher resolution image than the first image 101.
  • the second image 102 may be an image with improved image quality than the first image 101.
  • the disclosed embodiments are not limited thereto.
  • the image processing network 103 may include one or more neural networks.
  • the image processing network 103 may include a first feature extraction network 200, a second feature extraction network 300, and an image restoration network 400. However, it is not limited to this.
  • the first feature extraction network 200 is a network that maps the image space in which the first image 101 (input image) exists to a feature space, and is one of the same as convolutional neural networks (CNN). It may include the above neural networks.
  • the second feature extraction network 300 generates higher-dimensional features than the features extracted from the first feature extraction network 200, based on the features extracted from the first feature extraction network 200. It can be extracted.
  • Image restoration network 400 may obtain the second image 102 (output image) using high-dimensional features.
  • Image restoration network 400 may include one or more neural networks, such as convolutional neural networks (CNNs).
  • CNNs convolutional neural networks
  • the image restoration network 400 may perform up-sampling to generate a second image with higher resolution than the first image.
  • the disclosed embodiments are not limited to this, and the image processing network 103 according to one embodiment may include various other neural networks.
  • Figure 2 is a diagram showing a second feature extraction network according to an embodiment.
  • the second feature extraction network 300 may include one or more transform blocks 310, a convolution layer 320, and a summation layer 330.
  • Each of the transform blocks 310 contains information about surrounding pixels adjacent to each of the pixels included in the input first feature data and each of predetermined unit areas included in the input first feature data. Second feature data can be extracted using information about adjacent surrounding areas. The conversion block will be described in detail with reference to FIG. 3.
  • a convolution operation may be performed between input data (or input information) input to the convolution layer 320 and a kernel included in the convolution layer 320.
  • input data input to the convolution layer 320 may be result data output after an operation is performed in the transform blocks 310.
  • the second feature extraction network 300 is shown in FIG. 2 as including one convolution layer 320, embodiments are not limited thereto and may include two or more convolution layers.
  • a summation operation may be performed for each element of the input data (x1) input to the second feature extraction network 300 and the output data output from the convolution layer 320.
  • Output data (y1) output from the summation layer 330 may be input to the image restoration network 400 of FIG. 1. However, it is not limited to this.
  • Figure 3 is a diagram showing a transform block according to one embodiment.
  • the transform block 311 shown in FIG. 3 may be any one of the transform blocks 310 in FIG. 2 .
  • the transform block 311 according to one embodiment may include one or more first residual transform blocks and one or more second residual transform blocks.
  • the first residual transform block 350 may be referred to as an intra residual transform block (aRTB), and the second residual transform block 370 may be referred to as an inter residual transform block (aRTB). It may be referred to as inter Residual Transformer Block (eRTB).
  • aRTB intra residual transform block
  • eRTB inter Residual Transformer Block
  • the transform block 311 may include a structure in which the first residual transform block 350 and the second residual transform block 370 are arranged at an intersection.
  • the embodiments are not limited to this, and the transform block 311 may include a structure in which the first residual transform block 350 and the second residual transform block 370 are arranged in parallel.
  • the first residual transform block 350 may include one or more first transform layers 351, a convolution layer 352, and a summing layer 353.
  • the first conversion layer will be described in detail with reference to FIG. 4.
  • a convolution operation may be performed between input data (or input information) input to the convolution layer 352 and a kernel included in the convolution layer 352.
  • input data input to the convolution layer 352 may be result data output after an operation is performed in the first transformation layers 351.
  • the first residual transform block 350 is shown as including one convolution layer 352, but the embodiments are not limited to this, and the first residual transform block 350 includes two. It may also include more than one convolutional layer.
  • an element-by-element summation operation may be performed on the input data input to the first residual transform block 350 and the output data output from the convolution layer 352.
  • Data output from the summing layer 353 may be input to the second residual transform block 370.
  • the embodiments are not limited thereto.
  • the second residual transform block 370 may include one or more second transform layers 371, a convolution layer 372, and a summation layer 373.
  • the second transform layer will be described in detail with reference to FIG. 8.
  • a convolution operation may be performed between input data (or input information) input to the convolution layer 372 and a kernel included in the convolution layer 372.
  • input data input to the convolution layer 372 may be result data output after an operation is performed in the second transformation layers 371.
  • the second residual transform block 370 is shown as including one convolution layer 372, but the embodiments are not limited to this, and the second residual transform block 370 includes two. It may also include more than one convolutional layer.
  • an element-by-element summation operation may be performed on the input data input to the second residual transform block 370 and the output data output from the convolution layer 372.
  • Data output from the summing layer 373 may be input to the first residual transform block located after the second residual transform block 370.
  • the embodiments are not limited thereto.
  • Figure 4 is a diagram showing a first transform layer according to one embodiment.
  • the first transform layer 410 shown in FIG. 4 may be one of the first transform layers 351 of FIG. 3 .
  • the first transformation layer 410 according to one embodiment includes a first normalization layer 411, a first self-attention module 412, a first summation layer 413, and a second normalization layer 414. ), a multi-layer perceptron (MLP) module 415, and a second summation layer 416.
  • MLP multi-layer perceptron
  • the first normalization layer 411 may normalize input data (x2) input to the first transformation layer 410.
  • the first normalization layer 411 may normalize the input data (x2) so that the sum of the input data input to the first transformation layer 410 is 1.
  • the first normalization layer 411 may normalize input data using various normalization methods. Normalized input data may be input to the first self-attention module 412.
  • the first self-attention module 412 performs a self-attention operation on the first feature data (e.g., normalized input data) input to the first self-attention module 412, and calculates the first number Second feature data corresponding to the first areas including pixels may be obtained.
  • the first number may be one pixel.
  • the attention operation acquires association information (e.g., similarity information) between query data (query, Q) and key data (key, K), obtains a weight based on the association information, and applies the weight to the key data.
  • association information e.g., similarity information
  • key data key, K
  • the attention operation performed based on query data (Q), key data (K), and value data (V) obtained from the same input data may be referred to as a self-attention operation. there is.
  • the self-attention operation performed in the first self-attention module 412 according to an embodiment will be described in detail with reference to FIGS. 5 and 6.
  • Figure 5 is a diagram showing a self-attention operation performed in a first self-attention module according to an embodiment.
  • the first self-attention module 412 may be referred to as an intra Multi-head Self-Attention (MSA) module.
  • MSA Multi-head Self-Attention
  • the first self-attention module 412 generates query data (Q), key data (K), and value based on the first input data 510 input to the first self-attention module 412.
  • Data (V) can be obtained.
  • the size of the first input data 510 may be W x H, and the number of channels may be C.
  • the first self-attention module 412 may perform self-attention processing on pixels included in the first input data 510 in units of patches having a size of M x M.
  • the first self-attention module 412 may perform self-attention processing in units of M 2 pixels included in one patch.
  • the self-attention operation will be explained based on the pixels (x 1, x 2 , ..., x K ) included in one patch.
  • K is M 2 . Referring to FIG. 5, the pixels ( x 1 , x 2 , ..., x K ), respectively, and query data 521 corresponding to each may be obtained.
  • each corresponds to the pixels (x 1, x 2 , ..., x K ) through a multiplication operation of the pixels (x 1, x 2 , ..., x K ) and the second weight matrix (WK1).
  • Key data 522 may be obtained.
  • each corresponds to the pixels (x 1, x 2 , ..., x K ) through a multiplication operation of the pixels (x 1, x 2 , ..., x K ) and the third weight matrix (WV1).
  • Value data 523 may be obtained.
  • Relevance data (E, 530) can be obtained through an element-by-element multiplication operation of the key data 522 and the query data 521.
  • correlation data (E, 530) can be calculated by Equation 1 below.
  • Equation 1 e ij represents the element at the (i, j) position in the correlation data (E, 530), and q i represents query data corresponding to the ith pixel (xi) among the query data 521. , k j represents key data corresponding to the jth pixel (xj) among the key data 522.
  • the first self-attention module 412 may obtain weight data (A, 540) by applying a softmax function to the correlation data (E, 530).
  • weight data (A, 540) can be calculated by Equation 2 below.
  • Equation 2 aij represents the element at the (i, j) position in the weight data (A, 540), and eij represents the element at the (i, j) position in the correlation data (E, 530).
  • the first self-attention module 412 performs a weighted sum of the weight data (A, 540) and the value data 523, thereby generating the first self-attention module corresponding to the pixels (x 1, x 2 , ..., x K ).
  • 1 Output data 550 can be obtained.
  • the first output data 550 may be calculated by Equation 3 below.
  • Equation 3 yi represents a feature value corresponding to pixel x i included in the pixels (x 1, x 2 , ..., x K ) in the first output data 550.
  • Figure 6 is a diagram showing a first self-attention module according to an embodiment.
  • the first self-attention module 412 includes three linear layers configured in parallel (e.g., a first linear layer 611, a second linear layer 612, and It may include a third linear layer 613).
  • the three linear layers (the first linear layer 611, the second linear layer 612, and the third linear layer 613) may be fully connected layers.
  • Data (Q) can be obtained.
  • key data (K) may be obtained through a multiplication operation between the first input data (x, 510) and the second weight matrix (WK1) included in the second linear layer (612).
  • value data (V) may be obtained through a multiplication operation between the first input data (x, 510) and the third weight matrix (WV1) included in the third linear layer (613).
  • the first self-attention module 412 may obtain the first correlation data (E1) through an element-by-element multiplication operation of the data (KT) obtained by applying the transpose function to the key data (K) and the query data (Q).
  • the first self-attention module 412 may obtain second correlation data (E2) by adding the position bias (B) to the first correlation data (E1) and applying a window mask.
  • Equation 4 the position bias (B) can be determined by Equation 4 as follows.
  • B[] represents the position bias to be applied to the first correlation data
  • d(xi, xj) may represent the distance between pixel xi and pixel xj.
  • B train [d(x i, x j )] is a value determined through training of a neural network and may be a previously stored value.
  • reflection padding may be applied to the first input data (x, 510) input to the first self-attention module 412.
  • Reflection padding is used when the size of the first input data (x, 510) is not a multiple of the patch size, for example, the width W of the first input data (x, 510) is not a multiple of the patch size M, or the first This means that if the height H of the input data (x, 510) is not a multiple of the patch size M, padding is performed so that the size of the first input data is a multiple of the patch size.
  • the first self-attention module 412 performs reflection padding to The size (resolution) of data (x, 510) can be set to 128 x 128.
  • the effect of shifting the first input data (x, 510) can be achieved.
  • the first self-attention module 412 may shift the partitioning position of the patch by applying a window mask. By shifting the position where patches are divided, patches can be configured more diversely, and as the configuration of patches containing one pixel becomes more diverse, pixels adjacent to that pixel can be configured more diversely.
  • the first self-attention module 412 may obtain weight data (A) by applying the softmax function to the second correlation data (E2).
  • the first self-attention module 412 may obtain first output data (y) by performing a weighted sum of weight data (A) and value data (V).
  • the first output data (y) output from the first self-attention module 412 may be output to the first summation layer 413.
  • an element-by-element summation operation is performed on the first output data (y) output from the first self-attention module 412 and the input data (X2) input to the first conversion layer 410. You can.
  • the second normalization layer 414 may normalize the second output data output from the first summing layer 413. Normalized data may be input into the multi-perceptron module 415.
  • the multi-perceptron module 415 will be described in detail with reference to FIG. 7.
  • Figure 7 is a diagram showing a multi-perceptron module according to an embodiment.
  • the multi-perceptron module 415 may include a first linear layer 710, a normalization layer 720, and a second linear layer 730.
  • third output data may be obtained through a multiplication operation between data input to the first linear layer 710 and the first weight matrix included in the first linear layer 710.
  • the third output data may be input to the normalization layer 720.
  • the normalization layer 720 can normalize data input to the normalization layer 720. Normalized data may be input to the second linear layer 730.
  • fourth output data may be obtained through a multiplication operation between data input to the second linear layer 730 and a second weight matrix included in the second linear layer 730.
  • the multi-perceptron module 415 is shown as including two linear layers, but embodiments are not limited thereto and may include three or more linear layers.
  • the fourth output data obtained from the multi-perceptron module 415 may be output to the second summation layer 416.
  • an element-by-element sum operation may be performed on the fourth output data output from the multi-perceptron module 415 and the second output data output from the first summation layer 413.
  • Figure 8 is a diagram showing a second transform layer according to one embodiment.
  • the second transform layer 810 shown in FIG. 8 may be one of the second transform layers 371 of FIG. 3 .
  • the second transform layer 810 according to one embodiment includes a first normalization layer 811, a second self-attention module 812, a first summation layer 813, and a second normalization layer 814. ), a multi-perceptron (MLP) module 815, and a second summation layer 816.
  • MLP multi-perceptron
  • the first normalization layer 811 may normalize input data (x3) input to the second transformation layer 810.
  • the first normalization layer 811 may normalize the input data so that the sum of the input data input to the second transformation layer 810 is 1.
  • input data may be normalized using various normalization methods. Normalized input data may be input to the second self-attention module 812.
  • the second self-attention module 812 performs a self-attention operation on the third feature data (e.g., normalized input data) input to the second self-attention module 812 to obtain a second number.
  • Third feature data corresponding to the second areas including pixels may be obtained.
  • the second number may be larger than the first number described in FIG. 5, the second area may be larger than the first area, and each of the second areas may include a plurality of pixels.
  • the self-attention operation performed in the second self-attention module 812 according to an embodiment will be described in detail with reference to FIGS. 9 and 10.
  • FIG. 9 is a diagram illustrating a self-attention operation performed in a second self-attention module according to an embodiment.
  • the second self-attention module 812 may be referred to as an inter Multi-head Self-Attention (MSA) module.
  • MSA Multi-head Self-Attention
  • the second self-attention module 812 generates query data (Q), key data (K), and value based on the second input data 910 input to the second self-attention module 812.
  • Data (V) can be obtained.
  • the size of the second input data 910 may be W x H, and the number of channels may be C.
  • the second self-attention module 812 may obtain feature information corresponding to each of the patches (P 1 , P 2 , ..., P N ).
  • the second input data Query data 921 corresponding to each of the patches 920, P 1 , P 2 , ..., P N included in 910 may be obtained.
  • the second input data 910 is calculated through a multiplication operation between the patches 920, P 1 , P 2 , ..., P N included in the second input data 910 and the second weight matrix W K2. ), key data 922 corresponding to each of the patches 920, P 1 , P 2 , ..., P N may be obtained.
  • the second input data 910 is calculated through a multiplication operation between the patches 920, P 1 , P 2 , ..., P N included in the second input data 910 and the third weight matrix W V2 . ), value data 923 corresponding to each of the patches 920, P 1 , P 2 , ..., P N may be obtained.
  • Relevance data (E, 930) may be obtained through an element-by-element multiplication operation of the key data 922 and the query data 921. Since this has been explained in Equation 1 of FIG. 5, the same description will be omitted.
  • weight data (A, 940) can be obtained. Since this has been explained in Equation 2 of FIG. 5, description of the same components will be omitted.
  • the second self-attention module 812 may obtain second output data 950 by performing a weighted sum of the weight data (A, 940) and the value data 923. Since this has been explained in Equation 3 of FIG. 5, the same description will be omitted.
  • Figure 10 is a diagram showing a second self-attention module according to an embodiment.
  • the second self-attention module 812 may include a first reshape layer 1010.
  • third input data can be obtained by reshaping the second input data so that pixels included in the second input data 910 are grouped with pixels included in the same patch.
  • the third input data may be divided into patches 920 of FIG. 9.
  • the second self-attention module 812 includes three linear layers configured in parallel (e.g., a first linear layer 1021, a second linear layer 1022, and a third linear layer 1023). ) may include.
  • the three linear layers (for example, the first linear layer 1021, the second linear layer 1022, and the third linear layer 1023) may be fully connected layers.
  • query data (Q') corresponding to the third input data can be obtained through a multiplication operation between the third input data and the first weight matrix (W Q2 ) included in the first linear layer 1021.
  • key data K' may be obtained through a multiplication operation between the third input data and the second weight matrix W K2 included in the second linear layer 1022.
  • value data (V') may be obtained through a multiplication operation between the third input data and the third weight matrix (W V2 ) included in the third linear layer 1023.
  • the second self-attention module 812 generates the first correlation data (E1') through an element-by-element multiplication operation of the data ( K'T ) obtained by applying the transpose function to the key data (K') and the query data (Q'). It can be obtained.
  • the second self-attention module 812 may obtain second correlation data (E2') by adding the position bias (B') to the first correlation data (E1') and applying a window mask.
  • Equation 5 the position bias (B') can be determined by Equation 5 as follows.
  • B'[] represents the position bias to be applied to the first correlation data
  • d(P i , P j ) may mean the distance between patch P i and patch P j .
  • B' train [d(P i , P j )] is a value determined through training of a neural network and may be a previously stored value.
  • applying a window mask can have the effect of shifting the second input data 910.
  • the second self-attention module 812 may shift the partitioning position of the patch by applying a window mask.
  • patches can be configured in various ways. Accordingly, the configuration of patches adjacent to one patch may also be diversified.
  • the second self-attention module 812 may obtain weight data (A') by applying the softmax function to the second correlation data (E2').
  • the second self-attention module 812 may obtain second output data (y') by performing a weighted sum of the weight data (A') and the value data (V').
  • the second output data (y') may be divided into patches, and the second output data (y') is transformed into the third output data (y) in the second reshape layer 1030. It can be.
  • the third output data (y) may be divided into pixels rather than patches.
  • the third output data (y) output from the second self-attention module 812 may be output to the first summation layer 813.
  • an element-by-element summation operation is performed on the third output data (y) output from the second self-attention module 812 and the input data (x3) input to the second conversion layer 810. You can.
  • the second normalization layer 814 may normalize the fourth output data output from the first summation layer 813. Normalized data may be input into the multi-perceptron module 815. Since the multi-perceptron module 815 has been described in detail in FIG. 7, the same description will be omitted.
  • the fifth output data obtained from the multi-perceptron module 815 may be output to the second summation layer 816.
  • an element-by-element summation operation may be performed on the fifth output data output from the multi-perceptron module 815 and the fourth output data output from the first summation layer 813.
  • Figure 11 is a diagram showing a second self-attention module according to an embodiment.
  • the second self-attention module 812 includes three linear layers configured in parallel (e.g., a first linear layer 1111, a second linear layer 1112, and It may include a third linear layer (1113).
  • the three linear layers eg, the first linear layer 1111, the second linear layer 1112, and the third linear layer 1113) may be fully connected layers.
  • query data (Q1') corresponding to the second input data is obtained through a multiplication operation between the second input data (910, x) and the first weight matrix (W Q3 ) included in the first linear layer (1111). ) can be obtained.
  • key data K1' may be obtained through a multiplication operation between the second input data and the second weight matrix W K3 included in the second linear layer 1112.
  • value data V1' may be obtained through a multiplication operation between the second input data and the third weight matrix W V3 included in the third linear layer 1113.
  • the second self-attention module 812 may include a first deformation layer 1121, a second deformation layer 1122, and a third deformation layer 1123.
  • the first transformation layer 1121 is a structure connected to the first linear layer 1111 and transforms the first query data (Q1') output from the first linear layer 1111 to generate second query data ( Q') can be obtained.
  • the second query data (Q') may be in the form of grouping query values corresponding to pixels included in the first query data (Q1') with query values corresponding to pixels included in the same patch. You can. That is, the second query data (Q') may be divided into query data corresponding to patches.
  • the second transformation layer 1122 is connected to the second linear layer 1112 and transforms the first key data (K1') output from the second linear layer (1112) into second key data (K'). ) can be obtained.
  • the second key data K' may be in the form of grouping key values corresponding to pixels included in the first key data K1' with key values corresponding to pixels included in the same patch. You can. That is, the second key data K' may be divided into key data corresponding to patches.
  • the third transformation layer 1123 is connected to the third linear layer 1113 and transforms the first value data (V1') output from the third linear layer (1113) into second value data (V'). ) can be obtained.
  • the second value data (V') may be in the form of grouping value values corresponding to pixels included in the first value data (V1') with value values corresponding to pixels included in the same patch. You can. That is, the second value data (V') may be divided into value data corresponding to patches.
  • the second self- attention module 812 generates first correlation data ( E1') can be obtained.
  • the second self-attention module 812 may obtain second correlation data (E2') by adding the position bias (B') to the first correlation data (E1') and applying a window mask.
  • the second self-attention module 812 may obtain weight data (A') by applying the softmax function to the second correlation data (E2').
  • the second self-attention module 812 may obtain second output data (y') by performing a weighted sum of the weight data (A') and the value data (V').
  • the second output data (y') may be divided into patches, and the second output data (y') is transformed into the third output data (y) in the fourth reshape layer 1130. It can be.
  • the third output data (y) may be divided into pixels rather than patches.
  • the size of the second input data (x) may be H x W x C
  • the first linear layer 1021, the second linear layer 1022, and The size of the modified third input data input to the third linear layer 1023 may be N x M 2 x C.
  • N represents the number of patches
  • M 2 represents the size of one patch
  • C represents the number of channels
  • H x W is equal to N x M 2 .
  • the number of parameters of the weight matrix included in each of the first linear layer 1021, the second linear layer 1022, and the third linear layer 1023 may be M 2 C x M 2 C.
  • the size of the second input data input to the first linear layer 1111, the second linear layer 1112, and the third linear layer 1113 is H x W x C, and accordingly, the number of parameters of the weight matrix included in each of the first linear layer 1111, the second linear layer 1112, and the third linear layer 1113 may be C x C. .
  • the second input data is operated on linear layers and then transformed to be grouped into data corresponding to patches
  • the second input data is transformed to be grouped into patches.
  • the amount of computation and the number of computation parameters can be reduced compared to the case of computation in linear layers. Accordingly, the second self-attention module of FIG. 11 can perform image processing using a smaller amount of calculation and calculation parameters while maintaining the performance of image processing (inter-self attention).
  • Figure 12 is a diagram showing a transform block according to an embodiment.
  • the transform block 1200 shown in FIG. 12 may be one of the transform blocks 310 of FIG. 2 .
  • the transform block 1200 includes a first residual transform block 1210, a second residual transform block 1220, a connection layer 1230, a normalization layer 1240, and a linear transform block 1200. It may include a layer 1250 and a summing layer 1260.
  • the transform block 1200 may include a structure in which the first residual transform block 1210 and the second residual transform block 1220 are connected in parallel.
  • the first residual transform block 1210 may be referred to as an intra residual transform block (aRTB), and the second residual transform block 1220 may be referred to as an inter residual transform block (aRTB). It may be referred to as inter Residual Transformer Block (eRTB).
  • the first residual transform block 1210 corresponds to the first residual transform block 350 in FIG. 3
  • the second residual transform block 1220 corresponds to the second residual transform block 370 in FIG. 3. It can be.
  • the second transform layer 810 included in the second residual transform block 370 can be equally applied to the first residual transform block 1210 and the second residual transform block 1220 of FIG. 12, , the same description will be omitted.
  • the first input data (X1) input to the transform block 1200 may be input to the first residual transform block 1210 and the second residual transform block 1220.
  • the first output data output from the first residual transform block 1210 and the second output data output from the second residual transform block 1220 may be concatenated in the connection layer 1230.
  • the connection layer 1230 may output third output data obtained by connecting the first and second output data input to the connection layer 1230 in the channel direction to the normalization layer 1240.
  • the third output data may be input to the normalization layer 1240 and normalized, and the normalized fourth output data may be input to the linear layer 1250.
  • the fifth output data may be obtained through a multiplication operation between the fourth output data input to the linear layer 1250 and the weight matrix included in the linear layer 1250.
  • the fifth output data may be input to the summation layer 1260.
  • the first input data (X1) input to the transform block 1200 may be input to the summation layer 1260.
  • a summation operation for each element of the fifth output data and the first input data input to the summation layer 1260 may be performed.
  • the transform block 1200 includes a first residual transform block 1210, a second residual transform block 1220, a connection layer 1230, a normalization layer 1240, a linear layer 1250, and a summation layer.
  • the module 1201 including the layer 1260 may include a structure in which the module 1201 is repeatedly arranged in series. However, it is not limited to this.
  • Figure 13 is a diagram showing a transform block according to an embodiment.
  • the transform block 1300 shown in FIG. 13 may be one of the transform blocks 310 of FIG. 2 .
  • the transform block 1300 includes a first residual transform block 1310, a second residual transform block 1320, a first normalization layer 1321, and a second normalization layer ( 1322), first linear layer (1331), second linear layer (1332), first attention layer (1341), second attention layer (1342), third linear layer (1351), fourth linear layer (1352) , may include a first summation layer (1361), a second summation layer (1362), a connection layer (1370), a third normalization layer (1380), a fifth linear layer (1390), and a third summation layer (1395).
  • first summation layer 1361
  • a second summation layer 1362
  • connection layer (1370
  • a third normalization layer (1380
  • a fifth linear layer 1390
  • a third summation layer there is.
  • the transform block 1300 may include a structure in which the first residual transform block 1310 and the second residual transform block 1320 are connected in parallel.
  • the first residual transform block 1310 may be referred to as an intra residual transform block (aRTB), and the second residual transform block 1320 may be referred to as an inter residual transform block (aRTB). It may be referred to as inter Residual Transformer Block (eRTB).
  • the first residual transform block 1310 corresponds to the first residual transform block 350 in FIG. 3
  • the second residual transform block 1320 corresponds to the second residual transform block 370 in FIG. 3. It can be.
  • the second transform layer 810 included in the second residual transform block 370 can be equally applied to the first residual transform block 1310 and the second residual transform block 1320 of FIG. 13, , the same description will be omitted.
  • the first input data (X1) input to the transform block 1300 may be input to the first residual transform block 1310 and the second residual transform block 1320.
  • the first output data output from the first residual transform block 1310 may be input to the first normalization layer 1321 and normalized, and the normalized second output data may be input to the first linear layer 1331. there is.
  • third output data is obtained through a multiplication operation between the first normalized data input to the first linear layer 1331 and the first weight matrix included in the first linear layer 1331. You can.
  • the third output data can be used as an attention map to attend to the fourth output data output from the second residual transform block 1320.
  • the third output data and the fourth output data may be input to the second attention layer 1342, and in the second attention layer 1342, an element-by-element multiplication operation of the third output data and the fourth output data is performed. It can be done.
  • the fourth output data output from the second residual transform block 1320 may be input to the second normalization layer 1322 and normalized, and the normalized fifth output data may be input to the second linear layer 1332. It can be.
  • the sixth output data is obtained through a multiplication operation between the fifth output data input to the second linear layer 1332 and the second weight matrix included in the second linear layer 1332. You can.
  • the sixth output data can be used as an attention map to attend to the first output data output from the first residual transform block 1310.
  • the first output data and the sixth output data may be input to the first attention layer 1341, and in the first attention layer 1341, an element-by-element multiplication operation of the first output data and the sixth output data is performed. It can be done.
  • the seventh output data output from the first attention layer 1341 may be input to the third linear layer 1351.
  • the eighth output data is obtained through a multiplication operation between the seventh output data input to the third linear layer 1351 and the third weight matrix included in the third linear layer 1351. You can.
  • the eighth output data may be input to the first summation layer 1361.
  • the first output data output from the first residual transform block 1310 may also be input to the first summation layer 1361.
  • an element-by-element sum operation may be performed on the eighth output data and the first output data input to the first summation layer 1361.
  • the ninth output data output from the second attention layer 1342 may be input to the fourth linear layer 1352.
  • the tenth output data is obtained through a multiplication operation between the ninth output data input to the fourth linear layer 1352 and the fourth weight matrix included in the fourth linear layer 1352. You can.
  • the tenth output data may be input to the second summation layer 1362.
  • the fourth output data output from the second residual transform block 1320 may also be input to the second summation layer 1362.
  • an element-by-element summation operation may be performed on the 10th output data and the fourth output data input to the second summation layer 1362.
  • the 11th output data output from the first summation layer 1361 may be input to the connection layer 1370.
  • the twelfth output data output from the second summation layer 1362 may be input to the connection layer 1370.
  • the connection layer 1370 may output the 13th output data by connecting the 11th output data and the 12th output data in the channel direction to the third normalization layer 1380.
  • the 13th output data may be input to the third normalization layer 1380 and normalized, and the normalized 14th output data may be input to the fifth linear layer 1390.
  • the 15th output data is obtained through a multiplication operation between the 14th output data input to the 5th linear layer 1390 and the 5th weight matrix included in the 5th linear layer 1390. You can.
  • the 15th output data may be input to the third summation layer 1395.
  • the first input data (X1) input to the transform block 1300 may be input to the third summation layer 1395.
  • the 16th output data can be obtained by performing an element-wise sum operation of the 15th output data input to the third summation layer 1395 and the first input data (X1).
  • the transform block 1300 includes a first residual transform block 1310, a second residual transform block 1320, a first normalization layer 1321, a second normalization layer 1322, and a first linear transform block.
  • Layer 1331, second linear layer 1332, first attention layer 1341, second attention layer 1342, third linear layer 1351, fourth linear layer 1352, first summation layer ( 1361), a second summation layer 1362, a connection layer 1370, a third normalization layer 1380, a fifth linear layer 1390, and a third summation layer 1395 are connected in series. It may contain repetitively arranged structures. However, it is not limited to this.
  • Figure 14 is a flowchart showing a method of an image processing device according to an embodiment.
  • the image processing device 100 may obtain first feature data based on the first image using one or more neural networks.
  • the image processing apparatus 100 may extract first feature data corresponding to the first image using one or more convolutional neural networks.
  • the image processing device 100 may perform first image processing on first feature data to obtain second feature data.
  • the image processing apparatus 100 may obtain second feature data corresponding to first areas including the first number of pixels from the first feature data.
  • the image processing apparatus 100 may obtain second feature data corresponding to each of the first areas based on information on surrounding areas for each of the first areas.
  • the image processing device 100 may obtain second feature data by performing self-attention on the first feature data.
  • the image processing apparatus 100 may obtain second feature data corresponding to first feature data using the first self-attention module 412 shown and described in FIGS. 5 and 6. Since the operations performed in the first self-attention module 412 have been described in detail in FIGS. 5 and 6, the same description will be omitted.
  • the image processing device 100 may obtain third feature data based on the first image.
  • the image processing apparatus 100 may extract third feature data corresponding to the first image using one or more convolutional neural networks.
  • the image processing device 100 may acquire third feature data based on the second feature data acquired in step S1420. However, it is not limited to this.
  • the image processing device 100 may perform second image processing on the third feature data to obtain fourth feature data.
  • the image processing apparatus 100 may obtain fourth feature data corresponding to second areas including a second number of pixels greater than the first number from the third feature data.
  • the image processing apparatus 100 may obtain fourth feature data corresponding to each of the second areas based on information on surrounding areas for each of the second areas.
  • the image processing device 100 may obtain fourth feature data by performing self-attention on the third feature data.
  • the image processing apparatus 100 may acquire fourth feature data corresponding to third feature data using the second self-attention module 812 shown and described in FIGS. 9 to 11 . Since the operations performed in the second self-attention module 812 have been described in detail in FIGS. 9 to 11, the same description will be omitted.
  • the image processing device 100 may generate a second image based on the second feature data and the fourth feature data.
  • the second feature data may be feature data based on information about surrounding pixels adjacent to each pixel included in the first image
  • the fourth feature data may be feature data based on a predetermined unit area included in the first image. It may be feature data based on information about surrounding areas (patches) adjacent to each of the fields (patches). Accordingly, the image processing device 100 according to an embodiment uses both information about adjacent surrounding pixels (local information) and information about adjacent surrounding areas (non-local information) to generate a second image. can be created.
  • the image processing device 100 may extract feature data from the second feature extraction network 300, receive the extracted feature data, and use the image restoration network 400 to 2 Images can be acquired.
  • the second feature extraction network 300 includes a module for obtaining second feature data (e.g., a first self-attention module), a module for obtaining fourth feature data (e.g., a second self-attention module), Attention module) may be included.
  • the second image may be a higher-resolution image than the first image, and may be an image with improved image quality than the first image by removing artifacts, noise, etc. from the first image.
  • Figure 15 is a block diagram showing the configuration of an image processing device according to an embodiment.
  • the image processing device 100 of FIG. 15 may be a device that performs image processing using the image processing network 103.
  • the image processing network 103 may include one or more neural networks.
  • the image processing network 103 may include a first feature extraction network 200, a second feature extraction network 300, and an image restoration network 400. However, it is not limited to this.
  • the image processing device 100 may include a processor 110, a memory 120, and a display 130.
  • the processor 110 may generally control the image processing device 100.
  • the processor 110 may execute one or more programs stored in the memory 120.
  • the memory 120 may store various data, programs, or applications for driving and controlling the image processing device 100.
  • a program stored in memory 120 may include one or more instructions.
  • a program (one or more instructions) or application stored in the memory 120 may be executed by the processor 110.
  • the processor 110 may include at least one of a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), and a Video Processing Unit (VPU). Alternatively, depending on the embodiment, it may be implemented in the form of a SoC (System On Chip) integrating at least one of CPU, GPU, and VPU. Alternatively, the processor 110 may further include a Neural Processing Unit (NPU).
  • CPU Central Processing Unit
  • GPU Graphics Processing Unit
  • VPU Video Processing Unit
  • SoC System On Chip
  • NPU Neural Processing Unit
  • the processor 110 may generate a second image by processing the first image using one or more neural networks.
  • the processor 110 may use the image processing network 103 to remove noise from the first image and generate a second image that has undergone denoising to maintain detailed edge processing and texture.
  • the processor 110 may use the image processing network 103 to generate a second image with higher resolution than the first image.
  • the processor 110 may use the first feature extraction network 200 to obtain first feature data of the first image.
  • the processor 110 may obtain second feature data (deep features) of the first image using the second feature extraction network 300 of FIG. 2. Since the structure and operation of the second feature extraction network 300 of FIG. 2 have been described in detail in FIGS. 3 to 14, detailed description will be omitted.
  • the processor 110 uses the first self-attention module 412 included in the second feature extraction network 300 to select neighboring pixels adjacent to each of the pixels included in the first image. Feature data based on information about can be obtained. Since the structure and operation of the first self-attention module 412 are explained in detail in FIGS. 5 and 6, detailed description will be omitted.
  • the processor 110 uses the second self-attention module 812 included in the second feature extraction network 300 to select each of the predetermined unit regions (patches) included in the first image. Feature data based on information about surrounding areas (patches) adjacent to can be obtained. Since the structure and operation of the second self-attention module 812 are explained in detail in FIGS. 9 to 11, detailed description will be omitted.
  • the processor 110 receives data extracted from the second feature extraction network 300 using the image restoration network 400, and uses the image restoration network 400 to generate a second image. can be obtained.
  • the image processing network 103 may be a network trained by a server or an external device.
  • An external device can train the image processing network 103 based on training data.
  • the training data may include a plurality of data sets including image data containing noise and image data from which the noise is removed while edge characteristics or texture characteristics are preserved.
  • the server or external device may determine the parameter values included in the kernels used in each of the plurality of convolutional layers included in the image processing network 103 and the parameter values included in the weight matrices used in each of the linear layers. there is. For example, the server or external device sets parameters in a direction to minimize the difference (loss information) of the image data (training data) that preserves edge characteristics while removing the image data and noise generated by the image processing network 103. Values can be determined.
  • the image processing device 100 may receive the trained image processing network 103 from a server or an external device and store it in the memory 120 .
  • the memory 120 may store the structure and parameter values of the image processing network 103 according to an embodiment, and the processor 110 may use the parameter values stored in the memory 120, according to an embodiment. While noise is removed from the first image according to , a second image in which edge characteristics are preserved can be generated.
  • the display 130 generates a driving signal by converting image signals, data signals, OSD signals, and control signals processed by the processor 110.
  • the display 130 may be implemented as a PDP, LCD, OLED, flexible display, etc., and may also be implemented as a 3D display. Additionally, the display 130 can be configured as a touch screen and used as an input device in addition to an output device.
  • the display 130 may display a second image that has been image processed using the image processing network 103.
  • the block diagram of the image processing device 100 shown in FIG. 15 is a block diagram for one embodiment.
  • Each component of the block diagram may be integrated, added, or omitted depending on the specifications of the image processing device 100 that is actually implemented. That is, as needed, two or more components may be combined into one component, or one component may be subdivided into two or more components.
  • the functions performed by each block are for explaining the embodiments, and the specific operations or devices do not limit the scope of the present invention.
  • An image processing device may process images using one or more neural networks.
  • An image processing device may include a memory that stores one or more instructions, and at least one processor that executes the one or more instructions stored in the memory.
  • the at least one processor may acquire first feature data based on the first image by executing the one or more instructions.
  • the at least one processor may perform first image processing on the first feature data by executing the one or more instructions to obtain second feature data corresponding to first areas including a first number of pixels. You can.
  • the at least one processor may obtain third feature data based on the first image by executing the one or more instructions.
  • the at least one processor performs second image processing on the third characteristic data by executing the one or more instructions, thereby producing second images corresponding to second areas including a second number of pixels greater than the first number. 4 Feature data can be obtained.
  • the at least one processor may generate a second image based on the second feature data and the fourth feature data by executing the one or more instructions.
  • the first image processing and the second image processing include self-attention.
  • the at least one processor may execute the one or more instructions to obtain the second feature data corresponding to each of the first areas, based on information on surrounding areas for each of the first areas.
  • the at least one processor may execute the one or more instructions to obtain the fourth feature data corresponding to each of the second areas based on information on surrounding areas for each of the second areas.
  • the first number is 1, and each of the first areas may include one pixel.
  • An image processing device is based on information about surrounding pixels adjacent to each of the pixels included in the first image and information about surrounding areas adjacent to each of predetermined unit areas included in the first image.
  • the second image can be generated.
  • the performance of image processing according to one embodiment can be improved compared to existing image processing technologies. For example, the degree of improvement in image quality or removal of noise of the generated second image may increase compared to the image processed by existing image processing technology.
  • the at least one processor executes the one or more instructions to generate query data, key data, and values respectively corresponding to the first areas included in the first feature data. Data can be obtained.
  • the at least one processor may obtain a weight matrix based on the query data and the key data by executing the one or more instructions.
  • the at least one processor may acquire the second feature data based on the value data and the weight matrix by executing the one or more instructions.
  • the at least one processor may obtain a correlation matrix based on the query data and the key data by executing the one or more instructions stored in the memory 120.
  • the at least one processor by executing the one or more instructions, applies a positional bias based on the size of the first image and the size of images used to train the one or more neural networks to the correlation matrix, and sets the weights. You can obtain a matrix.
  • the at least one processor by executing the one or more instructions, converts the third feature data (divided into third areas including the first number of pixels) to be divided into the second areas (e.g. For example, split) can be done.
  • the at least one processor may acquire the fourth feature data by executing the one or more instructions and performing the second image processing on each of the second areas.
  • the at least one processor By executing the one or more instructions, the at least one processor generates first query data and first key data respectively corresponding to third areas including the first number of pixels included in the third feature data. and first value data can be obtained.
  • the at least one processor by executing the one or more instructions, groups each of the first query data, first key data, and first value data to correspond to each of the second areas, thereby Second query data, second key data, and second value data corresponding to the areas may be obtained.
  • the at least one processor may obtain a weight matrix based on the second query data and the second key data by executing the one or more instructions.
  • the at least one processor may acquire the fourth feature data based on the second value data and the weight matrix by executing the one or more instructions.
  • Third feature data may be obtained from the second feature data.
  • One or more neural networks may include one or more convolutional neural networks.
  • the at least one processor may extract the first feature data from the first image using the one or more convolutional neural networks by executing the one or more instructions.
  • the at least one processor may acquire fifth characteristic data based on the second characteristic data and the fourth characteristic data by executing the one or more instructions.
  • the at least one processor may acquire the second image from the fifth feature data by executing the one or more instructions and using the one or more convolutional neural networks.
  • a method of operating an image processing device that processes an image using one or more neural networks may include acquiring first feature data based on a first image.
  • a method of operating an image processing device that processes an image using one or more neural networks includes performing first image processing on the first feature data to create a first region including a first number of pixels. It may include obtaining second feature data corresponding to the features.
  • a method of operating an image processing device that processes an image using one or more neural networks may include acquiring third feature data based on the first image.
  • a method of operating an image processing device that processes an image using one or more neural networks includes performing a second image processing on the third feature data to produce a second number of pixels greater than the first number. It may include acquiring fourth feature data corresponding to second areas including .
  • a method of operating an image processing device that processes an image using one or more neural networks includes generating a second image based on the second feature data and the fourth feature data. It can be included.
  • the first image processing and the second image processing according to one embodiment may include self-attention.
  • Obtaining the second feature data may include obtaining the second feature data corresponding to each of the first regions based on information on surrounding regions for each of the first regions. .
  • Obtaining the fourth feature data may include acquiring the fourth feature data corresponding to each of the second regions based on information on surrounding regions for each of the second regions. .
  • the first number is 1, and each of the first areas may include one pixel.
  • the step of acquiring the second feature data includes acquiring query data, key data, and value data corresponding to the first areas included in the first feature data. May include steps.
  • Obtaining the second feature data may include obtaining a weight matrix based on the query data and the key data.
  • Obtaining the second feature data may include obtaining the second feature data based on the value data and the weight matrix.
  • the step of obtaining a weight matrix based on the query data and the key data includes obtaining a correlation matrix based on the query data and the key data, and determining the size of the first image and the one or more
  • the method may include obtaining the weight matrix by applying a positional bias based on the size of images used for training neural networks to the correlation matrix.
  • Obtaining the fourth feature data may include converting the third feature data divided into third regions including the first number of pixels to be divided into the second regions.
  • Obtaining the fourth feature data may include obtaining the fourth feature data by performing the second image processing on each of the second regions.
  • the step of acquiring the fourth feature data includes first query data, first key data, and first query data, respectively, corresponding to third areas including the first number of pixels included in the third feature data. It may include acquiring value data.
  • the step of acquiring the fourth characteristic data includes grouping each of the first query data, first key data, and first value data to correspond to each of the second areas, thereby grouping each of the first query data, first key data, and first value data to correspond to each of the second areas. It may include obtaining second query data, second key data, and second value data.
  • Obtaining the fourth feature data may include obtaining a weight matrix based on the second query data and the second key data.
  • Obtaining the fourth feature data may include acquiring the fourth feature data based on the second value data and the weight matrix.
  • the third feature data may be obtained from the second feature data.
  • the one or more neural networks may include one or more convolutional neural networks.
  • Obtaining the first feature data may include extracting the first feature data from the first image using the one or more convolutional neural networks.
  • Generating the second image may include acquiring fifth feature data based on the second feature data and the fourth feature data.
  • Generating the second image may include obtaining the second image from the fifth feature data using the one or more convolutional neural networks.
  • a method of operating an image processing device may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium.
  • the computer-readable medium may include program instructions, data files, data structures, etc., singly or in combination.
  • Program instructions recorded on the medium may be specially designed and constructed for the present invention or may be known and usable by those skilled in the art of 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.
  • Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.
  • image processing device and the method of operating the image processing device according to the disclosed embodiments may be included and provided in a computer program product.
  • Computer program products are commodities and can be traded between sellers and buyers.
  • a computer program product may include a S/W program and a computer-readable storage medium in which the S/W program is stored.
  • a computer program product may include a product in the form of a S/W program (e.g., a downloadable app) distributed electronically by the manufacturer of an electronic device or through an electronic marketplace (e.g., Google Play Store, App Store). there is.
  • a storage medium may be a storage medium of a manufacturer's server, an electronic market server, or a relay server that temporarily stores the SW program.
  • a computer program product in a system comprised of a server and a client device, may include a storage medium of a server or a storage medium of a client device.
  • the computer program product may include a storage medium of the third device.
  • the computer program product may include the S/W program itself, which is transmitted from a server to a client device or a third device, or from a third device to a client device.
  • one of a server, a client device, and a third device may execute a computer program product to perform methods according to the disclosed embodiments.
  • two or more of a server, a client device, and a third device may execute the computer program product and perform the methods according to the disclosed embodiments in a distributed manner.
  • a server eg, a cloud server or an artificial intelligence server, etc.
  • a server may execute a computer program product stored on the server and control a client device connected to the server to perform the method according to the disclosed embodiments.

Landscapes

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

Abstract

일 실시예에 따른 적어도 하나의 뉴럴 네트워크를 이용하여, 영상을 처리하는 영상 처리 장치는, 적어도 하나의 인스트럭션을 저장하는 메모리, 및 메모리에 저장된 적어도 하나의 인스트럭션을 실행함으로써, 제1 영상에 기초하는 제1 특징 데이터를 획득하고, 제1 특징 데이터에 제1 영상 처리를 수행하여, 상기 제1 영상의 제1 영역들에 대응하는 제2 특징 데이터들을 획득하고, 제1 영역들은 제1 개수의 픽셀들을 포함함, 제1 영상에 기초하는 제3 특징 데이터를 획득하고, 제3 특징 데이터에 제2 영상 처리를 수행하여, 제1 영상의 제2 영역들에 대응하는 제4 특징 데이터들을 획득하고, 제2 영역들은 제1 개수보다 큰 제2 개수의 픽셀들을 포함함, 제2 특징 데이터들 및 제4 특징 데이터들에 기초하여, 제2 영상을 생성하는 적어도 하나의 프로세서를 포함할 수 있다.

Description

영상 처리 장치 및 그 동작 방법
본 개시는 뉴럴 네트워크를 이용하여, 영상을 처리하는 영상 처리 장치 및 그 동작 방법에 관한 것이다.
컴퓨터 기술의 발달과 함께 데이터 트래픽이 지수함수 형태로 증가하면서 인공지능은 미래 혁신을 주도하는 중요한 트랜드로 자리잡았다. 인공지능은 사람의 사고방식을 모방하는 방식이기 때문에 사실상 전 산업에 무한하게 응용이 가능하다. 인공지능의 대표적인 기술로는 패턴 인식, 기계 학습, 전문가 시스템, 뉴럴 네트워크, 자연어 처리 등이 있다.
뉴럴 네트워크는 인간의 생물학적 신경 세포의 특성을 수학적 표현에 의해 모델링할 수 있고, 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용할 수 있다. 이 알고리즘을 통하여, 뉴럴 네트워크는 입력 데이터와 출력 데이터 사이의 사상(mapping)을 생성할 수 있고, 이러한 사상을 생성하는 능력은 뉴럴 네트워크의 학습 능력이라고 표현될 수 있다. 또한, 뉴럴 네트워크는 학습된 결과에 기초하여, 학습에 이용되지 않았던 입력 데이터에 대하여, 출력 데이터를 생성할 수 있는 일반화 능력을 가진다.
뉴럴 네트워크는 영상 처리에 이용될 수 있다. 특히, 심층 신경망(DNN: Deep Neural Network)을 이용하여, 영상의 노이즈 또는 아티팩트를 제거하거나, 영상의 해상도를 증가시키는 영상 처리를 수행할 수 있다.
하나 이상의 뉴럴 네트워크들을 이용하여, 영상을 처리할 수 있는 영상 처리 장치가 제공된다.
적어도 하나의 뉴럴 네트워크를 이용하여, 영상을 처리하는 영상 처리 장치는 적어도 하나의 인스트럭션을 저장하는 메모리 및 상기 적어도 하나의 인스트럭션을 실행하는 적어도 하나의 프로세서를 포함할 수 있다.
일 실시예에 따른 적어도 하나의 프로세서는 상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써, 제1 영상에 기초하는 제1 특징 데이터를 획득할 수 있다.
일 실시예에 따른 적어도 하나의 프로세서는 상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 제1 특징 데이터에 제1 영상 처리를 수행하여, 제1 개수의 픽셀들을 포함하는 상기 제1 영상의 제1 영역들에 대응하는 제2 특징 데이터들을 획득할 수 있다.
일 실시예에 따른 적어도 하나의 프로세서는 상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 제1 영상에 기초하는 제3 특징 데이터를 획득할 수 있다.
일 실시예에 따른 적어도 하나의 프로세서는 상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 제3 특징 데이터에 제2 영상 처리를 수행하여, 상기 제1 개수보다 큰 제2 개수의 픽셀들을 포함하는 상기 제1 영상의 제2 영역들에 대응하는 제4 특징 데이터들을 획득할 수 있다.
일 실시예에 따른 적어도 하나의 프로세서는 상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 제2 특징 데이터들 및 상기 제4 특징 데이터들에 기초하여, 제2 영상을 생성할 수 있다.
상기 제1 영상 처리 및 상기 제2 영상 처리는 셀프 어텐션(self-attention) 연산을 수행하는 것을 포함할 수 있다.
일 실시예에 따른 적어도 하나의 프로세서는 상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 제1 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 상기 제1 영역들에 각각 대응하는 상기 제2 특징 데이터들을 획득하고, 상기 제2 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 상기 제2 영역들에 각각 대응하는 상기 제4 특징 데이터들을 획득할 수 있다.
상기 제1 개수는 1개이고, 상기 제1 영역들 각각은 하나의 픽셀을 포함할 수 있다.
일 실시예에 따른 적어도 하나의 프로세서는 상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 제1 특징 데이터에 기초하여, 쿼리(query) 데이터들, 키(key) 데이터들, 밸류(value) 데이터들을 획득하고, 상기 쿼리 데이터들, 상기 키 데이터들 및 상기 밸류 데이터들 각각은 상기 제1 영역들에 대응함, 상기 쿼리 데이터들 및 상기 키 데이터들에 기초하여, 가중치 행렬을 획득하며, 상기 밸류 데이터들 및 상기 가중치 행렬에 기초하여, 상기 제2 특징 데이터들을 획득할 수 있다.
일 실시예에 따른 적어도 하나의 프로세서는 상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 쿼리 데이터들 및 상기 키 데이터들에 기초하여, 연관성 행렬을 획득하며, 상기 제1 영상의 크기와 상기 적어도 하나의 뉴럴 네트워크의 훈련에 이용된 이미지들의 크기에 기초하는 위치 바이어스를 상기 연관성 행렬에 적용함으로써, 상기 가중치 행렬을 획득할 수 있다.
일 실시예에 따른 적어도 하나의 프로세서는 상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 제1 개수의 픽셀들을 포함하는 제3 영역들로 구분된 상기 제3 특징 데이터를 상기 제2 영역들로 구분되도록 변환하고, 상기 제2 영역들 각각에 상기 제2 영상 처리를 수행함으로써, 상기 제4 특징 데이터들을 획득할 수 있다.
일 실시예에 따른 적어도 하나의 프로세서는 상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 제3 특징 데이터에 기초하여, 제1 쿼리 데이터들, 제1 키 데이터들 및 제1 밸류 데이터들을 획득하고, 상기 제1 쿼리 데이터들, 제1 키 데이터들 및 제1 밸류 데이터들은 각각 상기 제1 개수의 픽셀들을 포함하는 제3 영역들에 대응함, 상기 제1 쿼리 데이터들, 제1 키 데이터들 및 제1 밸류 데이터들 각각을 상기 제2 영역들 각각에 대응하도록 그룹핑함으로써, 상기 제2 영역들에 대응하는 제2 쿼리 데이터들, 제2 키 데이터들 및 제2 밸류 데이터들을 획득하며, 상기 제2 쿼리 데이터들 및 상기 제2 키 데이터들에 기초하여, 가중치 행렬을 획득하고, 상기 제2 밸류 데이터들 및 상기 가중치 행렬에 기초하여, 상기 제4 특징 데이터들을 획득할 수 있다.
상기 제3 특징 데이터는 상기 제2 특징 데이터들로부터 획득된다.
상기 적어도 하나의 뉴럴 네트워크는 적어도 하나의 컨볼루션 뉴럴 네트워크를 포함하고, 상기 적어도 하나의 프로세서는, 상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 적어도 하나의 컨볼루션 뉴럴 네트워크를 이용하여, 상기 제1 영상으로부터 상기 제1 특징 데이터를 추출할 수 있다.
상기 적어도 하나의 뉴럴 네트워크는 적어도 하나의 컨볼루션 뉴럴 네트워크를 포함하고, 상기 적어도 하나의 프로세서는, 상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 제2 특징 데이터들 및 상기 제4 특징 데이터들에 기초하여, 제5 특징 데이터를 획득하고, 상기 적어도 하나의 컨볼루션 뉴럴 네트워크를 이용하여, 상기 제5 특징 데이터로부터 상기 제2 영상을 획득할 수 있다.일 실시예에 따른 적어도 하나의 뉴럴 네트워크를 이용하여, 영상을 처리하는 영상 처리 장치의 동작 방법은, 제1 영상에 기초하는 제1 특징 데이터를 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 적어도 하나의 뉴럴 네트워크를 이용하여, 영상을 처리하는 영상 처리 장치의 동작 방법은, 상기 제1 특징 데이터에 제1 영상 처리를 수행하여, 제1 개수의 픽셀들을 포함하는 상기 제1 영상의 제1 영역들에 대응하는 제2 특징 데이터들을 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 적어도 하나의 뉴럴 네트워크를 이용하여, 영상을 처리하는 영상 처리 장치의 동작 방법은, 상기 제1 영상에 기초하는 제3 특징 데이터를 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 적어도 하나의뉴럴 네트워크를 이용하여, 영상을 처리하는 영상 처리 장치의 동작 방법은, 상기 제3 특징 데이터에 제2 영상 처리를 수행하여, 상기 제1 개수보다 큰 제2 개수의 픽셀들을 포함하는 상기 제1 영상의 제2 영역들에 대응하는 제4 특징 데이터들을 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 하나 이상의 뉴럴 네트워크들을 이용하여, 영상을 처리하는 영상 처리 장치의 동작 방법은, 상기 제2 특징 데이터들 및 상기 제4 특징 데이터들에 기초하여, 제2 영상을 생성하는 단계를 포함할 수 있다.
상기 제1 영상 처리 및 상기 제2 영상 처리는 셀프 어텐션(self-attention) 연산을 수행하는 것을 포함할 수 있다.
상기 제2 특징 데이터들을 획득하는 단계는, 상기 제1 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 상기 제1 영역들에 각각 대응하는 상기 제2 특징 데이터들을 획득하는 단계를 포함하고, 상기 제4 특징 데이터들을 획득하는 단계는, 상기 제2 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 상기 제2 영역들에 각각 대응하는 상기 제4 특징 데이터들을 획득하는 단계를 포함할 수 있다.
상기 제1 개수는 1개이고, 상기 제1 영역들 각각은 하나의 픽셀을 포함할 수 있다.
상기 제2 특징 데이터들을 획득하는 단계는, 상기 제1 특징 데이터에 기초하여, 쿼리(query) 데이터들, 키(key) 데이터들, 밸류(value) 데이터들을 획득하는 단계, 상기 쿼리 데이터들, 키 데이터들 및 밸류 데이터들 각각은 상기 제1 영역들에 대응함, 상기 쿼리 데이터들 및 상기 키 데이터들에 기초하여, 가중치 행렬을 획득하는 단계, 및 상기 밸류 데이터들 및 상기 가중치 행렬에 기초하여, 상기 제2 특징 데이터들을 획득하는 단계를 포함할 수 있다.
상기 가중치 행렬을 획득하는 단계는, 상기 쿼리 데이터들 및 상기 키 데이터들에 기초하여, 연관성 행렬을 획득하며, 상기 제1 영상의 크기와 상기 적어도 하나의 뉴럴 네트워크의 훈련에 이용된 이미지들의 크기에 기초하는 위치 바이어스를 상기 연관성 행렬에 적용함으로써, 상기 가중치 행렬을 획득하는 단계를 포함할 수 있다.
상기 제4 특징 데이터들을 획득하는 단계는, 상기 제1 개수의 픽셀들을 포함하는 제3 영역들로 구분된 상기 제3 특징 데이터를 상기 제2 영역들로 구분되도록 변환하는 단계, 및 상기 제2 영역들 각각에 상기 제2 영상 처리를 수행함으로써, 상기 제4 특징 데이터들을 획득하는 단계를 포함할 수 있다.
상기 제4 특징 데이터들을 획득하는 단계는, 상기 제3 특징 데이터에 기초하여, 제1 쿼리 데이터들, 제1 키 데이터들 및 제1 밸류 데이터들을 획득하는 단계, 상기 제1 쿼리 데이터들, 제1 키 데이터들 및 제1 밸류 데이터들 각각은 상기 제1 개수의 픽셀들을 포함하는 제3 영역들에 대응함, 상기 제1 쿼리 데이터들, 제1 키 데이터들 및 제1 밸류 데이터들 각각을 상기 제2 영역들 각각에 대응하도록 그룹핑함으로써, 상기 제2 영역들에 대응하는 제2 쿼리 데이터들, 제2 키 데이터들 및 제2 밸류 데이터들을 획득하는 단계, 상기 제2 쿼리 데이터들 및 상기 제2 키 데이터들에 기초하여, 가중치 행렬을 획득하는 단계, 및 상기 제2 밸류 데이터들 및 상기 가중치 행렬에 기초하여, 상기 제4 특징 데이터들을 획득하는 단계를 포함할 수 있다.
상기 제3 특징 데이터는 상기 제2 특징 데이터들로부터 획득될 수 있다.
상기 적어도 하나의 뉴럴 네트워크는 적어도 하나의 컨볼루션 뉴럴 네트워크를 포함하고, 상기 제1 특징 데이터를 획득하는 단계는, 상기 적어도 하나의 컨볼루션 뉴럴 네트워크를 이용하여, 상기 제1 영상으로부터 상기 제1 특징 데이터를 추출하는 단계를 포함할 수 있다.
상기 적어도 하나의 뉴럴 네트워크는 적어도 하나의 컨볼루션 뉴럴 네트워크를 포함하고, 상기 제2 영상을 생성하는 단계는, 상기 제2 특징 데이터들 및 상기 제4 특징 데이터들에 기초하여, 제5 특징 데이터를 획득하는 단계, 및 상기 적어도 하나의 컨볼루션 뉴럴 네트워크를 이용하여, 상기 제5 특징 데이터로부터 상기 제2 영상을 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 컴퓨터로 읽을 수 있는 기록매체는 일 실시예에 따른 하나 이상의 뉴럴 네트워크들을 이용하여, 영상을 처리하는 영상 처리 장치의 동작 방법을 컴퓨터에 의해 수행하기 위한 적어도 하나의 인스트럭션을 포함하는 프로그램을 저장할 수 있다.
본 개시의 특정 실시예들의 상기 및 기타 측면들, 특징들 및 이점들은 첨부된 도면들과 함께 취해지는 설명으로부터 더욱 명백해질 것이며, 여기서;
도 1은 일 실시예에 따른 영상 처리 장치가 영상 처리 네트워크를 이용하여, 영상을 처리하는 동작을 나타내는 도면이다.
도 2는 일 실시예에 따른 제2 특징 추출 네트워크를 나타내는 도면이다.
도 3은 일 실시예에 따른 변환 블록을 나타내는 도면이다.
도 4는 일 실시예에 따른 제1 변환 레이어를 나타내는 도면이다.
도 5는 일 실시예에 따른 제1 셀프 어텐션 모듈에서 수행되는 셀프 어텐션 연산을 나타내는 도면이다.
도 6은 일 실시예에 따른 제1 셀프 어텐션 모듈을 나타내는 도면이다.
도 7은 일 실시예에 따른 다중 퍼셉트론 모듈을 나타내는 도면이다.
도 8은 일 실시예에 따른 제2 변환 레이어를 나타내는 도면이다.
도 9는 일 실시예에 따른 제2 셀프 어텐션 모듈에서 수행되는 셀프 어텐션 연산을 나타내는 도면이다.
도 10은 일 실시예에 따른 제2 셀프 어텐션 모듈을 나타내는 도면이다.
도 11은 일 실시예에 따른 제2 셀프 어텐션 모듈을 나타내는 도면이다.
도 12는 일 실시예에 따른 변환 블록을 나타내는 도면이다.
도 13은 일 실시예에 따른 변환 블록을 나타내는 도면이다.
도 14는 일 실시예에 따른 영상 처리 장치의 방법을 나타내는 흐름도이다.
도 15는 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.
본 명세서 전체에서 “a, b 또는 c 중 적어도 하나”라는 표현은 a만, b만, c만, a와 b 모두, a와 c 모두, b와 c 모두, 또는 a, b, 및 c 모두를 의미한다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 일 실시예에 따른 영상 처리 장치가 영상 처리 네트워크를 이용하여, 영상을 처리하는 동작을 나타내는 도면이다.
도 1을 참조하면, 일 실시예에 따른 영상 처리 네트워크(103)는 제1 영상(101)을 입력 받아, 제1 영상(101)을 처리함으로써, 제2 영상(102)을 생성할 수 있다. 제1 영상(101)은 노이즈 또는 아티팩트를 포함할 수 있으며, 저해상도 영상, 또는 저화질 영상일 수 있다. 영상 처리 장치(100)는 영상 처리 네트워크(103)를 이용하여, 제1 영상(101)의 세밀한 가장자리(edge)와 텍스쳐를 유지하면서 노이즈를 제거하는 디노이징(denoising)을 수행함으로써, 제2 영상(102)을 생성할 수 있다. 또한, 제2 영상(102)은 제1 영상(101)보다 고해상도 영상일 수 있다. 또한, 제2 영상(102)은 제1 영상(101)보다 화질이 개선된 영상일 수 있다. 다만, 개시의 실시예들은 이에 한정되지 않는다.
일 실시예에 따른 영상 처리 네트워크(103)는 하나 이상의 뉴럴 네트워크들을 포함할 수 있다. 예를 들어, 영상 처리 네트워크(103)는 제1 특징 추출 네트워크(200), 제2 특징 추출 네트워크(300) 및 영상 복원 네트워크(400)를 포함할 수 있다. 다만, 이에 한정되지 않는다.
제1 특징 추출 네트워크(200)는 제1 영상(101, 입력 영상)이 존재하는 이미지 공간에서 특징(feature) 공간으로 매핑하는 네트워크로, 컨볼루션 뉴럴 네트워크(CNN: Convolutional neural network)들과 같은 하나 이상의 뉴럴 네트워크들을 포함할 수 있다. 또한, 제2 특징 추출 네트워크(300)는 제1 특징 추출 네트워크(200)에서 추출된 특징에 기초하여, 제1 특징 추출 네트워크(200)에서 추출된 특징보다 고차원적인 특징(high-dimensional feature)을 추출할 수 있다.
또한, 영상 복원 네트워크(400)는 고차원 특징을 이용하여, 제2 영상(102, 출력 영상)을 획득할 수 있다. 영상 복원 네트워크(400)는 컨볼루션 뉴럴 네트워크(CNN)들과 같은 하나 이상의 뉴럴 네트워크들을 포함할 수 있다. 일 실시예에 따른 영상 복원 네트워크(400)는 업 샘플링을 수행하여, 제1 영상보다 해상도가 높은 제2 영상을 생성할 수 있다.
다만, 개시의 실시예들은 이에 한정되지 않으며, 일 실시예에 따른 영상 처리 네트워크(103)는 다양한 다른 뉴럴 네트워크들을 포함할 수 있다.
이하, 도면을 참조하여 일 실시예에 따른 영상 처리 네트워크를 자세히 설명하기로 한다.
도 2는 일 실시예에 따른 제2 특징 추출 네트워크를 나타내는 도면이다.
도 2를 참조하면, 일 실시예에 따른 제2 특징 추출 네트워크(300)는 하나 이상의 변환 블록들(310), 컨볼루션 레이어(320) 및 합산 레이어(330)를 포함할 수 있다.
일 실시예에 따른 변환 블록들(310) 각각은 입력된 제1 특징 데이터에 포함되는 픽셀들 각각에 인접하는 주변 픽셀들에 대한 정보와 입력된 제1 특징 데이터에 포함되는 소정 단위 영역들 각각에 인접하는 주변 영역들에 대한 정보를 이용하여, 제2 특징 데이터를 추출할 수 있다. 변환 블록에 대해서는 도 3을 참조하여 자세히 설명하기로 한다.
일 실시예에 따른 컨볼루션 레이어(320)에서는 컨볼루션 레이어(320)에 입력된 입력 데이터(또는 입력 정보)와 컨볼루션 레이어(320)에 포함되는 커널과의 컨볼루션 연산이 수행될 수 있다. 일 실시예에서, 컨볼루션 레이어(320)에 입력되는 입력 데이터는 변환 블록들(310)에서 연산이 수행되어 출력된 결과 데이터일 수 있다. 또한, 도 2에서는 제2 특징 추출 네트워크(300)가 하나의 컨볼루션 레이어(320)를 포함하는 것으로 도시하였지만, 실시예들은 이에 한정되지 않고, 2개 이상의 컨볼루션 레이어들을 포함할 수도 있다.
일 실시예에 따른 합산 레이어(330)에서는 제2 특징 추출 네트워크(300)로 입력된 입력 데이터(x1)와 컨볼루션 레이어(320)에서 출력된 출력 데이터의 요소별 합산 연산이 수행될 수 있다. 합산 레이어(330)에서 출력된 출력 데이터(y1)는 도 1의 영상 복원 네트워크(400)로 입력될 수 있다. 다만, 이에 한정되지 않는다.
도 3은 일 실시예에 따른 변환 블록을 나타내는 도면이다.
도 3에 도시된 변환 블록(311)은 도 2의 변환 블록들(310) 중 어느 하나일 수 있다. 도 3을 참조하면, 일 실시예에 따른 변환 블록(311)은 하나 이상의 제1 레지듀얼 변환 블록들 및 하나 이상의 제2 레지듀얼 변환 블록들을 포함할 수 있다.
일 실시예에 따른 제1 레지듀얼 변환 블록(350)은 인트라 레지듀얼 변환 블록(intra Residual Transformer Block, aRTB)으로 지칭될 수 있고, 제2 레지듀얼 변환 블록(370)은 인터 레지듀얼 변환 블록(inter Residual Transformer Block, eRTB)으로 지칭될 수 있다.
또한, 일 실시예에 따른 변환 블록(311)은 제1 레지듀얼 변환 블록(350) 및 제2 레지듀얼 변환 블록(370)이 교차로 배열된 구조를 포함할 수 있다. 다만, 실시예들은 이에 한정되지 않으며, 변환 블록(311)은 제1 레지듀얼 변환 블록(350) 및 제2 레지듀얼 변환 블록(370)이 병렬로 배열된 구조를 포함할 수도 있다.
제1 레지듀얼 변환 블록(350)은 하나 이상의 제1 변환 레이어들(351), 컨볼루션 레이어(352), 및 합산 레이어(353)를 포함할 수 있다. 제1 변환 레이어에 대해서는 도 4를 참조하여, 자세히 설명하기로 한다.
일 실시예에 따른 컨볼루션 레이어(352)에서는 컨볼루션 레이어(352)에 입력된 입력 데이터(또는 입력 정보)와 컨볼루션 레이어(352)에 포함되는 커널과의 컨볼루션 연산이 수행될 수 있다. 일 실시예에서, 컨볼루션 레이어(352)에 입력되는 입력 데이터는 제1 변환 레이어들(351)에서 연산이 수행되어 출력된 결과 데이터일 수 있다. 또한, 도 3에서는 제1 레지듀얼 변환 블록(350)이 하나의 컨볼루션 레이어(352)를 포함하는 것으로 도시하였지만, 실시예들은 이에 한정되지 않고, 제1 레지듀얼 변환 블록(350)은 2개 이상의 컨볼루션 레이어들을 포함할 수도 있다.
일 실시예에 따른 합산 레이어(353)에서는 제1 레지듀얼 변환 블록(350)으로 입력된 입력 데이터와 컨볼루션 레이어(352)에서 출력된 출력 데이터의 요소별 합산 연산이 수행될 수 있다. 합산 레이어(353)에서 출력된 데이터는 제2 레지듀얼 변환 블록(370)으로 입력될 수 있다. 다만, 실시예들은 이에 한정되지 않는다.
또한, 도 3을 참조하면, 제2 레지듀얼 변환 블록(370)은 하나 이상의 제2 변환 레이어들(371), 컨볼루션 레이어(372) 및 합산 레이어(373)를 포함할 수 있다. 여기서, 제2 변환 레이어에 대해서는 도 8을 참조하여, 자세히 설명하기로 한다.
일 실시예에 따른 컨볼루션 레이어(372)에서는 컨볼루션 레이어(372)에 입력된 입력 데이터(또는 입력 정보)와 컨볼루션 레이어(372)에 포함되는 커널과의 컨볼루션 연산이 수행될 수 있다. 일 실시예에서, 컨볼루션 레이어(372)에 입력되는 입력 데이터는 제2 변환 레이어들(371)에서 연산이 수행되어 출력된 결과 데이터일 수 있다. 또한, 도 3에서는 제2 레지듀얼 변환 블록(370)이 하나의 컨볼루션 레이어(372)를 포함하는 것으로 도시하였지만, 실시예들은 이에 한정되지 않고, 제2 레지듀얼 변환 블록(370)은 2개 이상의 컨볼루션 레이어들을 포함할 수도 있다.
일 실시예에 따른 합산 레이어(373)에서는 제2 레지듀얼 변환 블록(370)으로 입력된 입력 데이터와 컨볼루션 레이어(372)에서 출력된 출력 데이터의 요소별 합산 연산이 수행될 수 있다. 합산 레이어(373)에서 출력된 데이터는 제2 레지듀얼 변환 블록(370) 다음에 위치하는 제1 레지듀얼 변환 블록으로 입력될 수 있다. 다만, 실시예들은 이에 한정되지 않는다.
도 4는 일 실시예에 따른 제1 변환 레이어를 나타내는 도면이다.
도 4에 도시된 제1 변환 레이어(410)는 도 3의 제1 변환 레이어들(351) 중 어느 하나일 수 있다. 도 4를 참조하면, 일 실시예에 따른 제1 변환 레이어(410)는 제1 정규화 레이어(411), 제1 셀프 어텐션 모듈(412), 제1 합산 레이어(413), 제2 정규화 레이어(414), 다중 퍼셉트론(MLP: Multi-Layer Perceptron) 모듈 (415) 및 제2 합산 레이어(416)를 포함할 수 있다.
일 실시예에 따른 제1 정규화 레이어(411)는 제1 변환 레이어(410)에 입력되는 입력 데이터(x2)를 정규화할 수 있다. 예를 들어, 제1 정규화 레이어(411)는 제1 변환 레이어(410)에 입력되는 입력 데이터의 합이 1이되도록 입력 데이터(x2)를 정규화할 수 있다. 다만, 이에 한정되지 않는다. 일 실시예에서, 제1 정규화 레이어(411)는 다양한 정규화 방법을 이용하여, 입력 데이터를 정규화할 수 있다. 정규화된 입력 데이터는 제1 셀프 어텐션 모듈(412)로 입력될 수 있다.
일 실시예에 따른 제1 셀프 어텐션 모듈(412)은 제1 셀프 어텐션 모듈(412)로 입력되는 제1 특징 데이터(예를 들어, 정규화된 입력 데이터)에 셀프 어텐션 연산을 수행하여, 제1 개수의 픽셀들을 포함하는 제1 영역들에 대응하는 제2 특징 데이터들을 획득할 수 있다. 일 실시예에서, 제1 개수는 픽셀 하나일 수 있다.
여기서, 어텐션 연산은 쿼리 데이터(query, Q)와 키 데이터(key, K)와의 연관성 정보(예를 들어, 유사도 정보)를 획득하고, 연관성 정보에 기초하여, 가중치를 획득하며, 가중치를 키 데이터(K)에 매핑되어 있는 밸류 데이터(value, V)에 반영하고, 가중치가 반영된 밸류 데이터(V)에 대한 가중 합을 수행하는 연산을 의미한다.
일 실시예에서, 동일한 입력 데이터로부터 획득된 쿼리 데이터(Q), 키 데이터(K), 및 밸류 데이터(V)에 기초하여, 수행되는 어텐션 연산을 셀프 어텐션(self-attention) 연산이라 지칭할 수 있다.
일 실시예에 따른 제1 셀프 어텐션 모듈(412)에서 수행되는 셀프 어텐션 연산에 대해서는 도 5 및 도 6을 참조하여, 자세히 설명하기로 한다.
도 5는 일 실시예에 따른 제1 셀프 어텐션 모듈에서 수행되는 셀프 어텐션 연산을 나타내는 도면이다.
일 실시예에 따른 제1 셀프 어텐션 모듈(412)은 인트라 멀티 헤드 셀프 어텐션(intra Multi-head Self-Attention(MSA)) 모듈로 지칭될 수 있다.
도 5를 참조하면, 제1 셀프 어텐션 모듈(412)에서는 제1 셀프 어텐션 모듈(412)로 입력된 제1 입력 데이터(510)에 기초하여, 쿼리 데이터(Q), 키 데이터(K), 밸류 데이터(V)가 획득될 수 있다.
예를 들어, 제1 입력 데이터(510)의 크기는 W x H이며, 채널 수는 C일 수 있다. 도 5에서는 설명의 편의를 위해, 제1 입력 데이터(510)가 하나의 채널을 포함하는(C=1) 것을 예로 들어 설명하기로 한다.
제1 셀프 어텐션 모듈(412)은 제1 입력 데이터(510)에 포함되는 픽셀들을 M x M 크기를 가지는 패치 단위로 셀프 어텐션 처리할 수 있다. 예를 들어, 제1 셀프 어텐션 모듈(412)은 하나의 패치에 포함되는 M2개의 픽셀들 단위로 셀프 어텐션 처리를 수행할 수 있다. 도 5에서는 설명의 편의를 위해, 하나의 패치에 포함되는 픽셀들(x1, x2, ..., xK)을 기준으로 셀프 어텐션 연산을 설명하기로 한다. 여기서 K는 M2 이다. 도 5를 참조하면, 하나의 패치에 포함되는 픽셀들(x1, x2, ..., xK)과 제1 가중치 행렬(WQ1)의 곱 연산을 통해 픽셀들(x1, x2, ..., xK)에 각각 대응하는 쿼리 데이터들(521)이 획득될 수 있다. 또한, 픽셀들(x1, x2, ..., xK)과 제2 가중치 행렬(WK1)의 곱 연산을 통해 픽셀들(x1, x2, ..., xK)에 각각 대응하는 키 데이터들(522)이 획득될 수 있다. 또한, 픽셀들(x1, x2, ..., xK)과 제3 가중치 행렬(WV1)의 곱 연산을 통해 픽셀들(x1, x2, ..., xK)에 각각 대응하는 밸류 데이터들(523)이 획득될 수 있다.
키 데이터들(522)과 쿼리 데이터들(521)의 요소 별 곱셈 연산을 통해 연관성 데이터(E, 530)가 획득될 수 있다. 예를 들어, 연관성 데이터(E, 530)는 다음과 같은 수학식 1에 의해 계산될 수 있다.
Figure PCTKR2023004576-appb-img-000001
수학식 1에서, eij는 연관성 데이터(E, 530)에서 (i, j) 위치의 엘리먼트를 나타내고, qi는 쿼리 데이터들(521) 중 i번째 픽셀(xi)에 대응하는 쿼리 데이터를 나타내며, kj는 키 데이터들(522) 중 j번째 픽셀(xj)에 대응하는 키 데이터를 나타낸다.
제1 셀프 어텐션 모듈(412)은 연관성 데이터(E, 530)에 소프트맥스(softmax) 함수를 적용함으로써, 가중치 데이터(A, 540)를 획득할 수 있다. 예를 들어, 가중치 데이터(A, 540)는 다음과 같은 수학식 2에 의해 계산될 수 있다.
Figure PCTKR2023004576-appb-img-000002
수학식 2에서, aij는 가중치 데이터(A, 540)에서 (i, j)위치의 엘리먼트이고, eij는 연관성 데이터(E, 530)에서의 (i, j) 위치의 엘리먼트를 나타낸다.
제1 셀프 어텐션 모듈(412)은 가중치 데이터(A, 540)와 밸류 데이터들(523)의 가중 합을 수행함으로써, 픽셀들(x1, x2, ..., xK)에 대응하는 제1 출력 데이터(550)를 획득할 수 있다. 예를 들어, 제1 출력 데이터(550)는 다음과 같은 수학식 3에 의해 계산될 수 있다.
Figure PCTKR2023004576-appb-img-000003
수학식 3에서 yi는 제1 출력 데이터(550)에서, 픽셀들(x1, x2, ..., xK)에 포함되는 픽셀 xi에 대응하는 특징 값을 나타낸다.
도 6은 일 실시예에 따른 제1 셀프 어텐션 모듈을 나타내는 도면이다.
도 6을 참조하면, 일 실시예에 따른 제1 셀프 어텐션 모듈(412)은 병렬로 구성된 3개의 리니어 레이어들(예를 들어, 제1 리니어 레이어(611), 제2 리니어 레이어(612), 및 제3 리니어 레이어(613))을 포함할 수 있다. 3개의 리니어 레이어들(제1 리니어 레이어(611), 제2 리니어 레이어(612), 및 제3 리니어 레이어(613))은 풀리 커넥티드 레이어(fully connected layer)들일 수 있다.
예를 들어, 제1 입력 데이터(x, 510)와 제1 리니어 레이어(611)에 포함된 제1 가중치 행렬(WQ1)과의 곱 연산을 통해 제1 입력 데이터(x, 510)에 대응하는 쿼리 데이터(Q)가 획득될 수 있다. 또한, 제1 입력 데이터(x, 510)와 제2 리니어 레이어(612)에 포함된 제2 가중치 행렬(WK1)과의 곱 연산을 통해 키 데이터(K)가 획득될 수 있다. 또한, 제1 입력 데이터(x, 510)와 제3 리니어 레이어(613)에 포함된 제3 가중치 행렬(WV1)과의 곱 연산을 통해 밸류 데이터(V)가 획득될 수 있다.
제1 셀프 어텐션 모듈(412)은 키 데이터(K)에 트랜스포즈 함수를 적용한 데이터(KT)와 쿼리 데이터(Q)의 요소 별 곱셈 연산을 통해 제1 연관성 데이터(E1)를 획득할 수 있다.
제1 셀프 어텐션 모듈(412)은 제1 연관성 데이터(E1)에 위치 바이어스(B)를 합산하고, 윈도우 마스크를 적용함으로써, 제2 연관성 데이터(E2)를 획득할 수 있다.
여기서, 위치 바이어스(B)는 다음과 같은 수학식 4에 의해 결정될 수 있다.
Figure PCTKR2023004576-appb-img-000004
여기서, B[]는 제1 연관성 데이터에 적용할 위치 바이어스를 나타내고, d(xi, xj)는 픽셀 xi와 픽셀 xj의 거리를 의미할 수 있다. 또한, Btrain[d(xi, xj)]는 뉴럴 네트워크의 훈련을 통해 결정된 값으로 기 저장된 값일 수 있다.
한편, 제1 셀프 어텐션 모듈(412)에 입력되는 제1 입력 데이터(x, 510)에는 리플렉션 패딩(reflection padding)이 적용될 수 있다. 리플렉션 패딩은 제1 입력 데이터(x, 510)의 크기가 패치 크기의 배수가 아닌 경우, 예를 들어, 제1 입력 데이터(x, 510)의 너비 W가 패치 크기 M의 배수가 아니거나 제1 입력 데이터(x, 510)의 높이 H가 패치 크기 M의 배수가 아닌 경우, 패딩을 수행하여, 제1 입력 데이터의 크기가 패치 크기의 배수가 되도록 하는 것을 의미한다. 예를 들어, 제1 입력 데이터(x, 510)의 크기(해상도)가 126 x 127이고, 패치 크기 M=8인 경우, 제1 셀프 어텐션 모듈(412)은 리플렉션 패딩을 수행하여, 제1 입력 데이터(x, 510)의 크기(해상도)가 128 x 128이 되도록 할 수 있다.
또한, 윈도우 마스크를 적용함으로써, 제1 입력 데이터(x, 510)를 시프팅(shifting)하는 효과를 가질 수 있다. 예를 들어, 제1 셀프 어텐션 모듈(412)은 윈도우 마스크를 적용함으로써, 패치를 분할하는(partitioning) 위치를 시프팅할 수 있다. 패치를 분할하는 위치를 시프팅함으로써, 패치들을 더 다양하게 구성할 수 있으며, 하나의 픽셀이 포함되는 패치들의 구성이 다양화됨에 따라 해당 픽셀에 대한 인접 픽셀들이 더 다양하게 구성될 수 있다.
제1 셀프 어텐션 모듈(412)은 제2 연관성 데이터(E2)에 소프트맥스 함수를 적용함으로써, 가중치 데이터(A)를 획득할 수 있다.
제1 셀프 어텐션 모듈(412)은 가중치 데이터(A)와 밸류 데이터(V)의 가중 합을 수행함으로써, 제1 출력 데이터(y)를 획득할 수 있다.
다시, 도 4를 참조하면, 제1 셀프 어텐션 모듈(412)에서 출력된 제1 출력 데이터(y)는 제1 합산 레이어(413)로 출력될 수 있다. 제1 합산 레이어(413)에서는 제1 셀프 어텐션 모듈(412)에서 출력된 제1 출력 데이터(y)와 제1 변환 레이어(410)에 입력된 입력 데이터(X2)의 요소별 합산 연산이 수행될 수 있다.
제2 정규화 레이어(414)는 제1 합산 레이어(413)로부터 출력된 제2 출력 데이터를 정규화할 수 있다. 정규화된 데이터는 다중 퍼셉트론 모듈(415)로 입력될 수 있다. 다중 퍼셉트론 모듈(415)에 대해서는 도 7을 참조하여 자세히 설명하기로 한다.
도 7은 일 실시예에 따른 다중 퍼셉트론 모듈을 나타내는 도면이다.
도 7을 참조하면, 일 실시예에 따른 다중 퍼셉트론 모듈(415)은 제1 리니어 레이어(710), 정규화 레이어(720) 및 제2 리니어 레이어(730)를 포함할 수 있다.
제1 리니어 레이어(710)에서는 제1 리니어 레이어(710)에 입력된 데이터와 제1 리니어 레이어(710)에 포함된 제1 가중치 행렬과의 곱셈 연산을 통해 제3 출력 데이터가 획득될 수 있다. 제3 출력 데이터는 정규화 레이어(720)로 입력될 수 있다. 정규화 레이어(720)에서는 정규화 레이어(720)에 입력된 데이터를 정규화할 수 있다. 정규화된 데이터는 제2 리니어 레이어(730)로 입력될 수 있다.
제2 리니어 레이어(730)에서는 제2 리니어 레이어(730)에 입력된 데이터와 제2 리니어 레이어(730)에 포함된 제2 가중치 행렬과의 곱셈 연산을 통해 제4 출력 데이터가 획득될 수 있다.
한편, 도 7에서는 다중 퍼셉트론 모듈(415)이 2개의 리니어 레이어들을 포함하는 것으로 도시하였지만, 실시예들은 이에 한정되지 않으며, 3개 이상의 리니어 레이어들을 포함할 수도 있다.
다시 도 4를 참조하면, 다중 퍼셉트론 모듈(415)에서 획득된 제4 출력 데이터는 제2 합산 레이어(416)로 출력될 수 있다. 제2 합산 레이어(416)에서는 다중 퍼셉트론 모듈(415)에서 출력된 제4 출력 데이터와 제1 합산 레이어(413)에서 출력된 제2 출력 데이터의 요소별 합산 연산이 수행될 수 있다.
도 8은 일 실시예에 따른 제2 변환 레이어를 나타내는 도면이다.
도 8에 도시된 제2 변환 레이어(810)는 도 3의 제2 변환 레이어들(371) 중 어느 하나일 수 있다. 도 8을 참조하면, 일 실시예에 따른 제2 변환 레이어(810)는 제1 정규화 레이어(811), 제2 셀프 어텐션 모듈(812), 제1 합산 레이어(813), 제2 정규화 레이어(814), 다중 퍼셉트론(MLP) 모듈(815) 및 제2 합산 레이어(816)를 포함할 수 있다.
일 실시예에 따른 제1 정규화 레이어(811)는 제2 변환 레이어(810)에 입력되는 입력 데이터(x3)를 정규화할 수 있다. 예를 들어, 제1 정규화 레이어(811)는 제2 변환 레이어(810)에 입력되는 입력 데이터의 합이 1이 되도록 입력 데이터를 정규화할 수 있다. 다만, 실시예들은 이에 한정되지 않으며, 다양한 정규화 방법을 이용하여, 입력 데이터를 정규화할 수 있다. 정규화된 입력 데이터는 제2 셀프 어텐션 모듈(812)로 입력될 수 있다.
일 실시예에 따른 제2 셀프 어텐션 모듈(812)은 제2 셀프 어텐션 모듈(812)로 입력되는 제3 특징 데이터(예를 들어, 정규화된 입력 데이터)에 셀프 어텐션 연산을 수행하여, 제2 개수의 픽셀들을 포함하는 제2 영역들에 대응하는 제3 특징 데이터들을 획득할 수 있다. 일 실시예에서, 제2 개수는 도 5에서 설명한 제1 개수보다 클 수 있으며, 제2 영역은 제1 영역보다 크며, 제2 영역들 각각은 복수의 픽셀들을 포함할 수 있다.
일 실시예에 따른 제2 셀프 어텐션 모듈(812)에서 수행되는 셀프 어텐션 연산에 대해서는 도 9 및 도 10을 참조하여, 자세히 설명하기로 한다.
도 9는 일 실시예에 따른 제2 셀프 어텐션 모듈에서 수행되는 셀프 어텐션 연산을 나타내는 도면이다.
일 실시예에 따른 제2 셀프 어텐션 모듈(812)은 인터 멀티 헤드 셀프 어텐션(inter Multi-head Self-Attention(MSA)) 모듈로 지칭될 수 있다.
도 9를 참조하면, 제2 셀프 어텐션 모듈(812)에서는 제2 셀프 어텐션 모듈(812)로 입력된 제2 입력 데이터(910)에 기초하여, 쿼리 데이터(Q), 키 데이터(K), 밸류 데이터(V)가 획득될 수 있다.
예를 들어, 제2 입력 데이터(910)의 크기는 W x H이며, 채널 수는 C일 수 있다. 도 9에서는 설명의 편의를 위해, 제2 입력 데이터(910)가 하나의 채널을 포함하는(C=1) 것을 예로 들어 설명하기로 한다. 제2 입력 데이터(910)를 소정 개수(예를 들어, M2개)의 픽셀들을 포함하는 영역들(패치들)로 분할하면, 하나의 채널에 포함되는 패치들의 개수는 N개일 수 있다.
일 실시예에 따른 제2 셀프 어텐션 모듈(812)은 패치들(P1, P2, ..., PN) 각각에 대응하는 특징 정보를 획득할 수 있다.
예를 들어, 제2 입력 데이터(910)에 포함되는 패치들(920, P1, P2, ..., PN)과 제1 가중치 행렬의 곱 연산(WQ2)을 통해 제2 입력 데이터(910)에 포함되는 패치들(920, P1, P2, ..., PN)에 각각 대응하는 쿼리 데이터들(921)이 획득될 수 있다.
또한, 제2 입력 데이터(910)에 포함되는 패치들(920, P1, P2, ..., PN)과 제2 가중치 행렬(WK2)의 곱 연산을 통해 제2 입력 데이터(910)에 포함되는 패치들(920, P1, P2, ..., PN)에 각각 대응하는 키 데이터들(922)이 획득될 수 있다.
또한, 제2 입력 데이터(910)에 포함되는 패치들(920, P1, P2, ..., PN)과 제3 가중치 행렬(WV2)의 곱 연산을 통해 제2 입력 데이터(910)에 포함되는 패치들(920, P1, P2, ..., PN)에 각각 대응하는 밸류 데이터들(923)이 획득될 수 있다.
키 데이터들(922)과 쿼리 데이터들(921)의 요소 별 곱셈 연산을 통해 연관성 데이터(E, 930)가 획득될 수 있다. 이에 대해서는 도 5의 수학식 1에서 설명하였으므로 동일한 설명은 생략하기로 한다.
연관성 데이터(E, 930)에 소프트맥스 함수를 적용함으로써, 가중치 데이터(A, 940)가 획득될 수 있다. 이에 대해서는 도 5의 수학식 2에서 설명하였으므로 동일한 구성요소들의 설명은 생락하기로 한다.
제2 셀프 어텐션 모듈(812)은 가중치 데이터(A, 940)와 밸류 데이터들(923)의 가중 합을 수행함으로써, 제2 출력 데이터(950)를 획득할 수 있다. 이에 대해서는 도 5의 수학식 3에서 설명하였으므로 동일한 설명은 생략하기로 한다.
도 10은 일 실시예에 따른 제2 셀프 어텐션 모듈을 나타내는 도면이다.
도 10을 참조하면, 일 실시예에 다른 제2 셀프 어텐션 모듈(812)은 제1 변형(reshape) 레이어(1010)를 포함할 수 있다. 제1 변형 레이어(1010)에서는 제2 입력 데이터(910)에 포함되는 픽셀들을 동일한 패치에 포함되는 픽셀들끼리 그룹핑되도록 제2 입력 데이터를 변형(reshape)하여, 제3 입력 데이터를 획득할 수 있다. 일 실시예에서, 제3 입력 데이터는 도 9의 패치들(920)로 구분된 형태일 수 있다.
일 실시예에 따른 제2 셀프 어텐션 모듈(812)은 병렬로 구성된 3개의 리니어 레이어들(예를 들어, 제1 리니어 레이어(1021), 제2 리니어 레이어(1022), 제3 리니어 레이어(1023))을 포함할 수 있다. 3개의 리니어 레이어들(예를 들어, 제1 리니어 레이어(1021), 제2 리니어 레이어(1022), 제3 리니어 레이어(1023))은 풀리 커넥티드 레이어(fully connected layer)들일 수 있다.
예를 들어, 제3 입력 데이터와 제1 리니어 레이어(1021)에 포함된 제1 가중치 행렬(WQ2)과의 곱 연산을 통해 제3 입력 데이터에 대응하는 쿼리 데이터(Q')가 획득될 수 있다. 또한, 제3 입력 데이터와 제2 리니어 레이어(1022)에 포함된 제2 가중치 행렬(WK2)과의 곱 연산을 통해 키 데이터(K')가 획득될 수 있다. 또한, 제3 입력 데이터와 제3 리니어 레이어(1023)에 포함된 제3 가중치 행렬(WV2)과의 곱 연산을 통해 밸류 데이터(V')가 획득될 수 있다.
제2 셀프 어텐션 모듈(812)은 키 데이터(K')에 트랜스포즈 함수를 적용한 데이터(K'T)와 쿼리 데이터(Q')의 요소 별 곱셈 연산을 통해 제1 연관성 데이터(E1')를 획득할 수 있다.
제2 셀프 어텐션 모듈(812)은 제1 연관성 데이터(E1')에 위치 바이어스(B')를 합산하고, 윈도우 마스크를 적용함으로써, 제2 연관성 데이터(E2')를 획득할 수 있다.
여기서, 위치 바이어스(B')는 다음과 같은 수학식 5에 의해 결정될 수 있다.
Figure PCTKR2023004576-appb-img-000005
여기서, B'[]는 제1 연관성 데이터에 적용할 위치 바이어스를 나타내고, d(Pi, Pj)는 패치 Pi와 패치 Pj의 거리를 의미할 수 있다. 또한, B'train[d(Pi, Pj)]는 뉴럴 네트워크의 훈련을 통해 결정된 값으로 기 저장된 값일 수 있다.
또한, 윈도우 마스크를 적용함으로써, 제2 입력 데이터(910)를 시프팅(shifting)하는 효과를 가질 수 있다. 예를 들어, 제2 셀프 어텐션 모듈(812)은 윈도우 마스크를 적용함으로써, 패치를 분할하는(partitioning) 위치를 시프팅할 수 있다. 패치를 분할하는 위치를 시프팅함으로써, 패치들을 다양하게 구성할 수 있다. 이에 따라, 하나의 패치에 인접하는 패치들의 구성도 다양화될 수 있다.
제2 셀프 어텐션 모듈(812)은 제2 연관성 데이터(E2')에 소프트맥스 함수를 적용함으로써, 가중치 데이터(A')를 획득할 수 있다.
제2 셀프 어텐션 모듈(812)은 가중치 데이터(A')와 밸류 데이터(V')의 가중 합을 수행함으로써, 제2 출력 데이터(y')를 획득할 수 있다.
이때, 제2 출력 데이터(y')는 패치들로 구분된 형태일 수 있으며, 제2 출력 데이터(y')는 제2 변형(reshape) 레이어(1030)에서 제3 출력 데이터(y)로 변형될 수 있다. 제3 출력 데이터(y)는 패치들로 구분됨이 없이 픽셀들로 구분된 형태일 수 있다.
다시 도 8을 참조하면, 제2 셀프 어텐션 모듈(812)에서 출력된 제3 출력 데이터(y)는 제1 합산 레이어(813)로 출력될 수 있다. 제1 합산 레이어(813)에서는 제2 셀프 어텐션 모듈(812)에서 출력된 제3 출력 데이터(y)와 제2 변환 레이어(810)에 입력된 입력 데이터(x3)의 요소별 합산 연산이 수행될 수 있다.
제2 정규화 레이어(814)는 제1 합산 레이어(813)로부터 출력된 제4 출력 데이터를 정규화할 수 있다. 정규화된 데이터는 다중 퍼셉트론 모듈(815)로 입력될 수 있다. 다중 퍼셉트론 모듈(815)에 대해서는 도 7에서 자세히 설명하였으므로 동일한 설명은 생략하기로 한다.
다중 퍼셉트론 모듈(815)에서 획득된 제5 출력 데이터는 제2 합산 레이어(816)로 출력될 수 있다. 제2 합산 레이어(816)에서는 다중 퍼셉트론 모듈(815)에서 출력된 제5 출력 데이터와 제1 합산 레이어(813)에서 출력된 제4 출력 데이터의 요소별 합산 연산이 수행될 수 있다.
도 11은 일 실시예에 따른 제2 셀프 어텐션 모듈을 나타내는 도면이다.
도 11을 참조하면, 일 실시예에 따른 제2 셀프 어텐션 모듈(812)은 병렬로 구성된 3개의 리니어 레이어들(예를 들어, 제1 리니어 레이어(1111), 제2 리니어 레이어(1112), 및 제3 리니어 레이어(1113))을 포함할 수 있다. 3개의 리니어 레이어들(예를 들어, 제1 리니어 레이어(1111), 제2 리니어 레이어(1112), 및 제3 리니어 레이어(1113))은 풀리 커넥티드 레이어(fully connected layer)들일 수 있다.
예를 들어, 제2 입력 데이터(910, x)와 제1 리니어 레이어(1111)에 포함된 제1 가중치 행렬(WQ3)과의 곱 연산을 통해 제2 입력 데이터에 대응하는 쿼리 데이터(Q1')가 획득될 수 있다. 또한, 제2 입력 데이터와 제2 리니어 레이어(1112)에 포함된 제2 가중치 행렬(WK3)과의 곱 연산을 통해 키 데이터(K1')가 획득될 수 있다. 또한, 제2 입력 데이터와 제3 리니어 레이어(1113)에 포함된 제3 가중치 행렬(WV3)과의 곱 연산을 통해 밸류 데이터(V1')가 획득될 수 있다.
일 실시예에 따른 제2 셀프 어텐션 모듈(812)은 제1 변형 레이어(1121), 제2 변형 레이어(1122), 및 제3 변형 레이어(1123)를 포함할 수 있다. 예를 들어, 제1 변형 레이어(1121)는 제1 리니어 레이어(1111)에 연결된 구조로 제1 리니어 레이어(1111)에서 출력된 제1 쿼리 데이터(Q1')를 변형시켜, 제2 쿼리 데이터(Q')를 획득할 수 있다. 예를 들어, 제2 쿼리 데이터(Q')는 제1 쿼리 데이터(Q1')에 포함되는 픽셀들에 각각 대응하는 쿼리 값들을 동일한 패치에 포함되는 픽셀들에 대응하는 쿼리 값들끼리 그룹핑한 형태일 수 있다. 즉, 제2 쿼리 데이터(Q')는 패치들에 각각 대응하는 쿼리 데이터들로 구분된 형태일 수 있다.
또한, 제2 변형 레이어(1122)는 제2 리니어 레이어(1112)에 연결된 구조로 제2 리니어 레이어(1112)에서 출력된 제1 키 데이터(K1')를 변형시켜, 제2 키 데이터(K')를 획득할 수 있다. 예를 들어, 제2 키 데이터(K')는 제1 키 데이터(K1')에 포함되는 픽셀들에 각각 대응하는 키 값들을 동일한 패치에 포함되는 픽셀들에 대응하는 키 값들끼리 그룹핑한 형태일 수 있다. 즉, 제2 키 데이터(K')는 패치들에 각각 대응하는 키 데이터들로 구분된 형태일 수 있다.
또한, 제3 변형 레이어(1123)는 제3 리니어 레이어(1113)에 연결된 구조로 제3 리니어 레이어(1113)에서 출력된 제1 밸류 데이터(V1')를 변형시켜, 제2 밸류 데이터(V')를 획득할 수 있다. 예를 들어, 제2 밸류 데이터(V')는 제1 밸류 데이터(V1')에 포함되는 픽셀들에 각각 대응하는 밸류 값들을 동일한 패치에 포함되는 픽셀들에 대응하는 밸류 값들끼리 그룹핑한 형태일 수 있다. 즉, 제2 밸류 데이터(V')는 패치들에 각각 대응하는 밸류 데이터들로 구분된 형태일 수 있다.
제2 셀프 어텐션 모듈(812)은 제2 키 데이터(K')에 트랜스포즈 함수를 적용한 데이터(K'T)와 제2 쿼리 데이터(Q')의 요소 별 곱셈 연산을 통해 제1 연관성 데이터(E1')를 획득할 수 있다.
제2 셀프 어텐션 모듈(812)은 제1 연관성 데이터(E1')에 위치 바이어스(B')를 합산하고, 윈도우 마스크를 적용함으로써, 제2 연관성 데이터(E2')를 획득할 수 있다.
제2 셀프 어텐션 모듈(812)은 제2 연관성 데이터(E2')에 소프트맥스 함수를 적용함으로써, 가중치 데이터(A')를 획득할 수 있다.
제2 셀프 어텐션 모듈(812)은 가중치 데이터(A')와 밸류 데이터(V')의 가중 합을 수행함으로써, 제2 출력 데이터(y')를 획득할 수 있다.
이때, 제2 출력 데이터(y')는 패치들로 구분된 형태일 수 있으며, 제2 출력 데이터(y')는 제4 변형(reshape) 레이어(1130)에서 제3 출력 데이터(y)로 변형될 수 있다. 제3 출력 데이터(y)는 패치들로 구분됨이 없이 픽셀들로 구분된 형태일 수 있다.
도 10의 제2 셀프 어텐션 모듈(812)의 경우, 제2 입력 데이터(x)의 크기는 H x W x C일 수 있으며, 제1 리니어 레이어(1021), 제2 리니어 레이어(1022), 및 제3 리니어 레이어(1023)으로 입력되는 변형된 제3 입력 데이터의 크기는 N x M2 x C일 수 있다. 일 실시예에서, N은 패치들의 개수, M2은 패치 하나의 크기, C는 채널 수를 나타내며, H x W는 N x M2 과 동일하다. 이에 따라, 제1 리니어 레이어(1021), 제2 리니어 레이어(1022) 및 제3 리니어 레이어(1023) 각각에 포함되는 가중치 행렬의 파라미터 수는 M2C x M2C일 수 있다.
반면, 도 11의 제2 셀프 어텐션 모듈(812)의 경우, 제1 리니어 레이어(1111), 제2 리니어 레이어(1112), 및 제3 리니어 레이어(1113)로 입력되는 제2 입력 데이터의 크기는 H x W x C이며, 이에 따라, 제1 리니어 레이어(1111), 제2 리니어 레이어(1112), 및 제3 리니어 레이어(1113) 각각에 포함되는 가중치 행렬의 파라미터 수는 C x C일 수 있다.
따라서, 도 11과 같이, 제2 입력 데이터를 리니어 레이어들에서 연산한 후, 패치에 대응하는 데이터들로 그룹핑되도록 변형하는 경우가 도 10과 같이, 제2 입력 데이터를 패치들로 그룹핑되도록 변형한 후, 리니어 레이어들에서 연산하는 경우보다 연산량 및 연산 파라미터의 수를 감소시킬 수 있다. 이에 따라, 도 11의 제2 셀프 어텐션 모듈은 영상 처리(인터 셀프 어텐션)의 성능은 유지하면서, 더 적은 연산량 및 연산 파라미터를 이용하여, 영상 처리를 수행할 수 있다.
도 12는 일 실시예에 따른 변환 블록을 나타내는 도면이다.
도 12에 도시된 변환 블록(1200)은 도 2의 변환 블록들(310) 중 어느 하나일 수 있다.
도 12를 참조하면, 일 실시예에 따른 변환 블록(1200)은 제1 레지듀얼 변환 블록(1210), 제2 레지듀얼 변환 블록(1220), 연결 레이어(1230), 정규화 레이어(1240), 리니어 레이어(1250), 합산 레이어(1260)를 포함할 수 있다.
일 실시예에 따른 변환 블록(1200)은 제1 레지듀얼 변환 블록(1210) 및 제2 레지듀얼 변환 블록(1220)이 병렬로 연결된 구조를 포함할 수 있다.
일 실시예에 따른 제1 레지듀얼 변환 블록(1210)은 인트라 레지듀얼 변환 블록(intra Residual Transformer Block, aRTB)으로 지칭될 수 있고, 제2 레지듀얼 변환 블록(1220)은 인터 레지듀얼 변환 블록(inter Residual Transformer Block, eRTB)으로 지칭될 수 있다. 제1 레지듀얼 변환 블록(1210)은 도 3의 제1 레지듀얼 변환 블록(350)에 대응되며, 제2 레지듀얼 변환 블록(1220)은 도 3의 제2 레지듀얼 변환 블록(370)에 대응될 수 있다. 이에 따라, 도 3 내지 도 11에서 도시하고 설명한 제1 레지듀얼 변환 블록(350), 제2 레지듀얼 변환 블록(370), 제1 레지듀얼 변환 블록(350)에 포함되는 제1 변환 레이어(410), 제2 레지듀얼 변환 블록(370)에 포함되는 제2 변환 레이어(810)는 도 12의 제1 레지듀얼 변환 블록(1210) 및 제2 레지듀얼 변환 블록(1220)에도 동일하게 적용될 수 있으며, 동일한 설명은 생략하기로 한다.
일 실시예에 따른 변환 블록(1200)으로 입력된 제1 입력 데이터(X1)는 제1 레지듀얼 변환 블록(1210)과 제2 레지듀얼 변환 블록(1220)으로 입력될 수 있다. 제1 레지듀얼 변환 블록(1210)에서 출력된 제1 출력 데이터와 제2 레지듀얼 변환 블록(1220)에서 출력된 제2 출력 데이터는 연결 레이어(1230)에서 연결(concatenation)될 수 있다. 예를 들어, 연결 레이어(1230)에서는 연결 레이어(1230)에 입력된 제1 출력 데이터와 제2 출력 데이터를 채널 방향으로 연결시킨 제3 출력 데이터를 정규화 레이어(1240)로 출력할 수 있다. 제3 출력 데이터는 정규화 레이어(1240)로 입력되어 정규화될 수 있으며, 정규화된 제4 출력 데이터는 리니어 레이어(1250)로 입력될 수 있다.
리니어 레이어(1250)에서는 리니어 레이어(1250)에 입력된 제4 출력 데이터와 리니어 레이어(1250)에 포함된 가중치 행렬과의 곱셈 연산을 통해 제5 출력 데이터가 획득될 수 있다. 제5 출력 데이터는 합산 레이어(1260)로 입력될 수 있다. 또한, 변환 블록(1200)으로 입력된 제1 입력 데이터(X1)는 합산 레이어(1260)로 입력될 수 있다.
합산 레이어(1260)에서는 합산 레이어(1260)에 입력된 제5 출력 데이터와 제1 입력 데이터의 요소별 합산 연산이 수행될 수 있다.
일 실시예에 따른 변환 블록(1200)은 제1 레지듀얼 변환 블록(1210), 제2 레지듀얼 변환 블록(1220), 연결 레이어(1230), 정규화 레이어(1240), 리니어 레이어(1250), 합산 레이어(1260)를 포함하는 모듈(1201)이 직렬로 반복적으로 배열된 구조를 포함할 수 있다. 다만, 이에 한정되지 않는다.
도 13은 일 실시예에 따른 변환 블록을 나타내는 도면이다.
도 13에 도시된 변환 블록(1300)은 도 2의 변환 블록들(310) 중 어느 하나일 수 있다.
도 13을 참조하면, 일 실시예에 따른 변환 블록(1300)은 제1 레지듀얼 변환 블록(1310), 제2 레지듀얼 변환 블록(1320), 제1 정규화 레이어(1321), 제2 정규화 레이어(1322), 제1 리니어 레이어(1331), 제2 리니어 레이어(1332), 제1 어텐션 레이어(1341), 제2 어텐션 레이어(1342), 제3 리니어 레이어(1351), 제4 리니어 레이어(1352), 제1 합산 레이어(1361), 제2 합산 레이어(1362), 연결 레이어(1370), 제3 정규화 레이어(1380), 제5 리니어 레이어(1390), 제3 합산 레이어(1395)를 포함할 수 있다.
일 실시예에 따른 변환 블록(1300)은 제1 레지듀얼 변환 블록(1310) 및 제2 레지듀얼 변환 블록(1320)이 병렬로 연결된 구조를 포함할 수 있다.
일 실시예에 따른 제1 레지듀얼 변환 블록(1310)은 인트라 레지듀얼 변환 블록(intra Residual Transformer Block, aRTB)으로 지칭될 수 있고, 제2 레지듀얼 변환 블록(1320)은 인터 레지듀얼 변환 블록(inter Residual Transformer Block, eRTB)으로 지칭될 수 있다. 제1 레지듀얼 변환 블록(1310)은 도 3의 제1 레지듀얼 변환 블록(350)에 대응되며, 제2 레지듀얼 변환 블록(1320)은 도 3의 제2 레지듀얼 변환 블록(370)에 대응될 수 있다. 이에 따라, 도 3 내지 도 11에서 도시하고 설명한 제1 레지듀얼 변환 블록(350), 제2 레지듀얼 변환 블록(370), 제1 레지듀얼 변환 블록(350)에 포함되는 제1 변환 레이어(410), 제2 레지듀얼 변환 블록(370)에 포함되는 제2 변환 레이어(810)는 도 13의 제1 레지듀얼 변환 블록(1310) 및 제2 레지듀얼 변환 블록(1320)에도 동일하게 적용될 수 있으며, 동일한 설명은 생략하기로 한다.
일 실시예에 따른 변환 블록(1300)으로 입력된 제1 입력 데이터(X1)는 제1 레지듀얼 변환 블록(1310)과 제2 레지듀얼 변환 블록(1320)으로 입력될 수 있다. 제1 레지듀얼 변환 블록(1310)에서 출력된 제1 출력 데이터는 제1 정규화 레이어(1321)로 입력되어 정규화될 수 있으며, 정규화된 제2 출력 데이터는 제1 리니어 레이어(1331)로 입력될 수 있다.
제1 리니어 레이어(1331)에서는 제1 리니어 레이어(1331)에 입력된 제1 정규화 데이터와 제1 리니어 레이어(1331)에 포함된 제1 가중치 행렬과의 곱셈 연산을 통해 제3 출력 데이터가 획득될 수 있다.
제3 출력 데이터는 제2 레지듀얼 변환 블록(1320)에서 출력되는 제4 출력 데이터를 어텐션하는 어텐션 맵으로 이용될 수 있다. 예를 들어, 제3 출력 데이터와 제4 출력 데이터는 제2 어텐션 레이어(1342)로 입력될 수 있으며, 제2 어텐션 레이어(1342)에서는 제3 출력 데이터와 제4 출력 데이터의 요소별 곱셈 연산이 수행될 수 있다.
또한, 제2 레지듀얼 변환 블록(1320)에서 출력된 제4 출력 데이터는 제2 정규화 레이어(1322)로 입력되어 정규화될 수 있으며, 정규화된 제5 출력 데이터는 제2 리니어 레이어(1332)로 입력될 수 있다.
제2 리니어 레이어(1332)에서는 제2 리니어 레이어(1332)에 입력된 제5 출력 데이터와 제2 리니어 레이어(1332)에 포함된 제2 가중치 행렬과의 곱셈 연산을 통해 제6 출력 데이터가 획득될 수 있다.
제6 출력 데이터는 제1 레지듀얼 변환 블록(1310)에서 출력된 제1 출력 데이터를 어텐션하는 어텐션 맵으로 이용될 수 있다. 예를 들어, 제1 출력 데이터와 제6 출력 데이터는 제1 어텐션 레이어(1341)로 입력될 수 있으며, 제1 어텐션 레이어(1341)에서는 제1 출력 데이터와 제6 출력 데이터의 요소별 곱셈 연산이 수행될 수 있다.
제1 어텐션 레이어(1341)에서 출력된 제7 출력 데이터는 제3 리니어 레이어(1351)로 입력될 수 있다.
제3 리니어 레이어(1351)에서는 제3 리니어 레이어(1351)에 입력된 제7 출력 데이터와 제3 리니어 레이어(1351)에 포함된 제3 가중치 행렬과의 곱셈 연산을 통해 제8 출력 데이터가 획득될 수 있다. 제8 출력 데이터는 제1 합산 레이어(1361)로 입력될 수 있다. 또한, 제1 레지듀얼 변환 블록(1310)에서 출력된 제1 출력 데이터도 제1 합산 레이어(1361)로 입력될 수 있다. 제1 합산 레이어(1361)에서는 제1 합산 레이어(1361)로 입력된 제8 출력 데이터와 제1 출력 데이터의 요소별 합산 연산이 수행될 수 있다.
또한, 제2 어텐선 레이어(1342)에서 출력된 제9 출력 데이터는 제4 리니어 레이어(1352)로 입력될 수 있다.
제4 리니어 레이어(1352)에서는 제4 리니어 레이어(1352)에 입력된 제9 출력 데이터와 제4 리니어 레이어(1352)에 포함된 제4 가중치 행렬과의 곱셈 연산을 통해 제10 출력 데이터가 획득될 수 있다. 제10 출력 데이터는 제2 합산 레이어(1362)로 입력될 수 있다. 또한, 제2 레지듀얼 변환 블록(1320)에서 출력된 제4 출력 데이터도 제2 합산 레이어(1362)로 입력될 수 있다. 제2 합산 레이어(1362)에서는 제2 합산 레이어(1362)로 입력된 제10 출력 데이터와 제4 출력 데이터의 요소별 합산 연산이 수행될 수 있다.
제1 합산 레이어(1361)에서 출력된 제11 출력 데이터는 연결 레이어(1370)로 입력될 수 있다.
제2 합산 레이어(1362)에서 출력된 제12 출력 데이터는 연결 레이어(1370)로 입력될 수 있다. 연결 레이어(1370)에서는 제11 출력 데이터와 제12 출력 데이터를 채널 방향으로 연결시킨 제13 출력 데이터를 제3 정규화 레이어(1380)로 출력할 수 있다. 제13 출력 데이터는 제3 정규화 레이어(1380)로 입력되어 정규화될 수 있으며, 정규화된 제14 출력 데이터는 제5 리니어 레이어(1390)로 입력될 수 있다.
제5 리니어 레이어(1390)에서는 제5 리니어 레이어(1390)에 입력된 제14 출력 데이터와 제5 리니어 레이어(1390)에 포함된 제5 가중치 행렬과의 곱셈 연산을 통해 제15 출력 데이터가 획득될 수 있다. 제15 출력 데이터는 제3 합산 레이어(1395)로 입력될 수 있다. 또한, 변환 블록(1300)으로 입력된 제1 입력 데이터(X1) 제3 합산 레이어(1395)로 입력될 수 있다.
제3 합산 레이어(1395)에서는 제3 합산 레이어(1395)에 입력된 제15 출력 데이터와 제1 입력 데이터(X1)의 요소별 합산 연산을 수행함으로써, 제16 출력 데이터를 획득할 수 있다.
일 실시예에 따른 변환 블록(1300)은 제1 레지듀얼 변환 블록(1310), 제2 레지듀얼 변환 블록(1320), 제1 정규화 레이어(1321), 제2 정규화 레이어(1322), 제1 리니어 레이어(1331), 제2 리니어 레이어(1332), 제1 어텐션 레이어(1341), 제2 어텐션 레이어(1342), 제3 리니어 레이어(1351), 제4 리니어 레이어(1352), 제1 합산 레이어(1361), 제2 합산 레이어(1362), 연결 레이어(1370), 제3 정규화 레이어(1380), 제5 리니어 레이어(1390), 제3 합산 레이어(1395)를 포함하는 모듈(1301)이 직렬로 반복적으로 배열된 구조를 포함할 수 있다. 다만, 이에 한정되지 않는다.
도 14는 일 실시예에 따른 영상 처리 장치의 방법을 나타내는 흐름도이다.
S1410에서, 일 실시예에 따른 영상 처리 장치(100)는 하나 이상의 뉴럴 네트워크들을 이용하여, 제1 영상에 기초하는 제1 특징 데이터를 획득할 수 있다.
예를 들어, 영상 처리 장치(100)는 하나 이상의 컨볼루션 뉴럴 네트워크들을 이용하여, 제1 영상에 대응하는 제1 특징 데이터를 추출할 수 있다.
S1420에서, 일 실시예에 따른 영상 처리 장치(100)는 제1 특징 데이터에 제1 영상 처리를 수행하여, 제2 특징 데이터들을 획득할 수 있다.
예를 들어, 영상 처리 장치(100)는 제1 특징 데이터에서 제1 개수의 픽셀들을 포함하는 제1 영역들에 대응하는 제2 특징 데이터들을 획득할 수 있다. 영상 처리 장치(100)는 제1 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 제1 영역들에 각각 대응하는 제2 특징 데이터들을 획득할 수 있다.
영상 처리 장치(100)는 제1 특징 데이터에 셀프 어텐션을 수행함으로써, 제2 특징 데이터들을 획득할 수 있다.
일 실시예에 따른 영상 처리 장치(100)는 도 5 및 도 6에서 도시하고 설명한 제1 셀프 어텐션 모듈(412)을 이용하여, 제1 특징 데이터에 대응하는 제2 특징 데이터들을 획득할 수 있다. 제1 셀프 어텐션 모듈(412)에서 수행되는 연산에 대해서는 도 5 및 도 6에서 자세히 설명하였으므로 동일한 설명은 생략하기로 한다.
S1430에서, 일 실시예에 따른 영상 처리 장치(100)는 제1 영상에 기초하는 제3 특징 데이터를 획득할 수 있다.
예를 들어, 영상 처리 장치(100)는 하나 이상의 컨볼루션 뉴럴 네트워크들을 이용하여, 제1 영상에 대응하는 제3 특징 데이터를 추출할 수 있다. 또는, 영상 처리 장치(100)는 1420 단계(S1420)에서 획득한 제2 특징 데이터들에 기초하여, 제3 특징 데이터를 획득할 수 있다. 다만, 이에 한정되지 않는다.
S1440에서, 일 실시예에 따른 영상 처리 장치(100)는 제3 특징 데이터에 제2 영상 처리를 수행하여, 제4 특징 데이터들을 획득할 수 있다.
예를 들어, 영상 처리 장치(100)는 제3 특징 데이터에서 상기 제1 개수보다 큰 제2 개수의 픽셀들을 포함하는 제2 영역들에 대응하는 제4 특징 데이터들을 획득할 수 있다. 영상 처리 장치(100)는 제2 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 제2 영역들에 각각 대응하는 제4 특징 데이터들을 획득할 수 있다.
영상 처리 장치(100)는 제3 특징 데이터에 셀프 어텐션을 수행함으로써, 제4 특징 데이터들을 획득할 수 있다.
일 실시예에 따른 영상 처리 장치(100)는 도 9 내지 도 11에서 도시하고 설명한 제2 셀프 어텐션 모듈(812)을 이용하여, 제3 특징 데이터에 대응하는 제4 특징 데이터들을 획득할 수 있다. 제2 셀프 어텐션 모듈(812)에서 수행되는 연산에 대해서는 도 9 내지 도 11에서 자세히 설명하였으므로 동일한 설명은 생략하기로 한다.
S1450에서, 일 실시예에 따른 영상 처리 장치(100)는 제2 특징 데이터들 및 제4 특징 데이터들에 기초하여, 제2 영상을 생성할 수 있다.
예를 들어, 제2 특징 데이터들은 제1 영상에 포함되는 픽셀들 각각에 인접하는 주변 픽셀들에 대한 정보에 기초하는 특징 데이터일 수 있으며, 제4 특징 데이터들은 제1 영상에 포함되는 소정 단위 영역들(패치들) 각각에 인접하는 주변 영역들(패치들)에 대한 정보에 기초하는 특징 데이터일 수 있다. 이에 따라, 일 실시예에 따른 영상 처리 장치(100)는 인접하는 주변 픽셀들에 대한 정보(local 정보)와 인접하는 주변 영역들에 대한 정보(non-local 정보)를 모두 이용하여, 제2 영상을 생성할 수 있다.
구체적으로, 일 실시예에 따른 영상 처리 장치(100)는 제2 특칭 추출 네트워크(300)로부터 특징 데이터를 추출할 수 있으며, 추출된 특징 데이터를 입력 받아 영상 복원 네트워크(400)를 이용하여, 제2 영상을 획득할 수 있다. 일 실시예에서, 제2 특징 추출 네트워크(300)는 제2 특징 데이터들을 획득하는 모듈(예를 들어, 제1 셀프 어텐션 모듈), 제4 특징 데이터들을 획득하는 모듈(예를 들어, 제2 셀프 어텐션 모듈)을 포함할 수 있다.
일 실시예에 따른 제2 영상은 제1 영상보다 고해상도 영상일 수 있으며, 제1 영상에서 아티팩트, 노이즈 등이 제거됨으로써, 제1 영상보다 화질이 개선된 영상일 수 있다.
도 15는 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.
도 15의 영상 처리 장치(100)는 영상 처리 네트워크(103)를 이용하여, 영상 처리를 수행하는 장치일 수 있다. 일 실시예에 따른 영상 처리 네트워크(103)는 하나 이상의 뉴럴 네트워크들을 포함할 수 있다. 예를 들어, 영상 처리 네트워크(103)는 제1 특징 추출 네트워크(200), 제2 특징 추출 네트워크(300), 및 영상 복원 네트워크(400)를 포함할 수 있다. 다만, 이에 한정되지 않는다.
도 15를 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 프로세서(110), 메모리(120) 및 디스플레이(130)를 포함할 수 있다.
일 실시예에 따른 프로세서(110)는 영상 처리 장치(100)를 전반적으로 제어할 수 있다. 일 실시예에 따른 프로세서(110)는 메모리(120)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다.
일 실시예에 따른 메모리(120)는 영상 처리 장치(100)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다. 메모리(120)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(120)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(110)에 의해 실행될 수 있다.
일 실시예에 따른 프로세서(110)는 CPU(Cetral Processing Unit), GPU (Graphic Processing Unit) 및 VPU(Video Processing Unit) 중 적어도 하나를 포함할 수 있다. 또는, 실시예에 따라, CPU, GPU 및 VPU 중 적어도 하나를 통합한 SoC(System On Chip) 형태로 구현될 수 있다. 또는, 프로세서(110)는 NPU(Neural Processing Unit)를 더 포함할 수 있다.
일 실시예에 따른 프로세서(110)는 하나 이상의 뉴럴 네트워크들을 이용하여, 제1 영상을 처리함으로써, 제2 영상을 생성할 수 있다. 예를 들어, 프로세서(110)는 영상 처리 네트워크(103)를 이용하여, 제1 영상의 노이즈를 제거하면서, 세밀한 가장자리 처리와 텍스쳐를 유지하는 디노이징을 수행한 제2 영상을 생성할 수 있다. 또는, 프로세서(110)는 영상 처리 네트워크(103)를 이용하여, 제1 영상보다 해상도가 높은 제2 영상을 생성할 수 있다.
일 실시예에 따른 프로세서(110)는 제1 특징 추출 네트워크(200)를 이용하여, 제1 영상의 제1 특징 데이터를 획득할 수 있다.
일 실시예에 따른 프로세서(110)는 도 2의 제2 특징 추출 네트워크(300)를 이용하여, 제1 영상의 제2 특징 데이터들(deep features)을 획득할 수 있다. 도 2의 제2 특징 추출 네트워크(300)의 구조 및 동작에 대해서는 도 3 내지 도 14에서 자세히 설명하였으므로, 구체적인 설명은 생략하기로 한다.
특히, 일 실시예에 따른 프로세서(110)는 제2 특징 추출 네트워크(300)에 포함되는 제1 셀프 어텐션 모듈(412)을 이용하여, 제1 영상에 포함되는 픽셀들 각각에 인접하는 주변 픽셀들에 대한 정보에 기초하는 특징 데이터들을 획득할 수 있다. 제1 셀프 어텐션 모듈(412)의 구조 및 동작에 대해서는 도 5 및 도 6에서 자세히 설명하였으므로, 구체적인 설명은 생략하기로 한다.
또한, 일 실시예에 따른 프로세서(110)는 제2 특징 추출 네트워크(300)에 포함되는 제2 셀프 어텐션 모듈(812)을 이용하여, 제1 영상에 포함되는 소정 단위 영역들(패치들) 각각에 인접하는 주변 영역들(패치들)에 대한 정보에 기초하는 특징 데이터들을 획득할 수 있다. 제2 셀프 어텐션 모듈(812)의 구조 및 동작에 대해서는 도 9 내지 도 11에서 자세히 설명하였으므로, 구체적인 설명은 생략하기로 한다.
또한, 일 실시예에 따른 프로세서(110)는 영상 복원 네트워크(400)를 이용하여, 제2 특징 추출 네트워크(300)에서 추출된 데이터를 입력 받아 영상 복원 네트워크(400)를 이용하여, 제2 영상을 획득할 수 있다.
한편, 일 실시예에 따른 영상 처리 네트워크(103)는, 서버 또는 외부 장치에 의해 훈련된 네트워크일 수 있다. 외부 장치는 훈련 데이터에 기초하여, 영상 처리 네트워크(103)를 학습시킬 수 있다. 이때, 훈련 데이터는 노이즈가 포함된 영상 데이터와 노이즈는 제거되면서, 엣지 특성이나 텍스쳐 특성은 보존되는 영상 데이터를 포함하는 복수의 데이터 세트들을 포함할 수 있다.
서버 또는 외부 장치는 영상 처리 네트워크(103)에 포함된 복수의 컨볼루션 레이어들 각각에서 이용되는 커널들에 포함되는 파라미터 값들 및 리니어 레이어들 각각에서 이용되는 가중치 행렬들에 포함되는 파라미터 값들을 결정할 수 있다. 예를 들어, 서버 또는 외부 장치는 영상 처리 네트워크(103)에 의해 생성된 영상 데이터와 노이즈는 제거되면서, 엣지 특성은 보존되는 영상 데이터(훈련 데이터)의 차이(손실 정보)를 최소화하는 방향으로 파라미터 값들을 결정할 수 있다.
일 실시예에 따른 영상 처리 장치(100)는 서버 또는 외부 장치로부터 훈련이 완료된 영상 처리 네트워크(103)를 수신하여, 메모리(120)에 저장할 수 있다. 예를 들어, 메모리(120)는 일 실시예에 따른 영상 처리 네트워크(103)의 구조 및 파라미터 값들을 저장할 수 있으며, 프로세서(110)는 메모리(120)에 저장된 파라미터 값들을 이용하여, 일 실시예에 따른 제1 영상으로부터 노이즈는 제거되면서, 엣지 특성은 보존되는 제2 영상을 생성할 수 있다.
일 실시예에 따른 디스플레이(130)는, 프로세서(110)에서 처리된 영상 신호, 데이터 신호, OSD 신호, 제어 신호 등을 변환하여 구동 신호를 생성한다. 디스플레이(130)는 PDP, LCD, OLED, 플렉시블 디스플레이(flexible display)등으로 구현될 수 있으며, 또한, 3차원 디스플레이(3D display)로 구현될 수 있다. 또한, 디스플레이(130)는, 터치 스크린으로 구성되어 출력 장치 이외에 입력 장치로 사용되는 것도 가능하다.
일 실시예에 따른 디스플레이(130)는 영상 처리 네트워크(103)를 이용하여, 영상 처리된 제2 영상을 표시할 수 있다.
한편, 도 15에 도시된 영상 처리 장치(100)의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 영상 처리 장치(100)의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.
일 실시예에 따른 영상 처리 장치는 하나 이상의 뉴럴 네트워크들을 이용하여, 영상을 처리할 수 있다.
일 실시예에 따른 영상 처리 장치는 하나 이상의 인스트럭션들을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 적어도 하나의 프로세서를 포함할 수 있다.
상기 적어도 하나의 프로세서는 상기 하나 이상의 인스트럭션들을 실행함으로써, 제1 영상에 기초하는 제1 특징 데이터를 획득할 수 있다.
상기 적어도 하나의 프로세서는 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제1 특징 데이터에 제1 영상 처리를 수행하여, 제1 개수의 픽셀들을 포함하는 제1 영역들에 대응하는 제2 특징 데이터들을 획득할 수 있다.
상기 적어도 하나의 프로세서는 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제1 영상에 기초하는 제3 특징 데이터를 획득할 수 있다.
상기 적어도 하나의 프로세서는 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제3 특징 데이터에 제2 영상 처리를 수행하여, 상기 제1 개수보다 큰 제2 개수의 픽셀들을 포함하는 제2 영역들에 대응하는 제4 특징 데이터들을 획득할 수 있다.
상기 적어도 하나의 프로세서는 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제2 특징 데이터들 및 상기 제4 특징 데이터들에 기초하여, 제2 영상을 생성할 수 있다.
상기 제1 영상 처리 및 상기 제2 영상 처리는 셀프 어텐션(self-attention)을 포함하는, 영상 처리 장치.
상기 적어도 하나의 프로세서는 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제1 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 상기 제1 영역들에 각각 대응하는 상기 제2 특징 데이터들을 획득할 수 있다.
상기 적어도 하나의 프로세서는 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제2 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 상기 제2 영역들에 각각 대응하는 상기 제4 특징 데이터들을 획득할 수 있다.
상기 제1 개수는 1개이고, 상기 제1 영역들 각각은 하나의 픽셀을 포함할 수 있다.
일 실시예에 따른 영상 처리 장치는 제1 영상에 포함되는 픽셀들 각각에 인접하는 주변 픽셀들에 대한 정보와 제1 영상에 포함되는 소정 단위 영역들 각각에 인접하는 주변 영역들에 대한 정보에 기초하여, 제1 영상을 처리함으로써, 제2 영상을 생성할 수 있다. 이에 따라, 일 실시예에 따른 영상 처리의 성능은 기존의 영상 처리 기술들에 비해 향상될 수 있다. 예를 들어, 생성된 제2 영상의 화질의 개선 정도나 노이즈의 제거 정도가 기존 영상 처리 기술에 의해 처리된 영상에 비해 증가할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제1 특징 데이터에 포함되는 상기 제1 영역들에 각각 대응하는 쿼리(query) 데이터들, 키(key) 데이터들, 밸류(value) 데이터들을 획득할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 쿼리 데이터들 및 상기 키 데이터들에 기초하여, 가중치 행렬을 획득할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 밸류 데이터들 및 상기 가중치 행렬에 기초하여, 상기 제2 특징 데이터들을 획득할 수 있다.
상기 적어도 하나의 프로세서는, 상기 메모리(120)에 저장된 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 쿼리 데이터들 및 상기 키 데이터들에 기초하여, 연관성 행렬을 획득할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제1 영상의 크기와 상기 하나 이상의 뉴럴 네트워크들의 훈련에 이용된 이미지들의 크기에 기초하는 위치 바이어스를 상기 연관성 행렬에 적용하여, 상기 가중치 행렬을 획득할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, (상기 제1 개수의 픽셀들을 포함하는 제3 영역들로 구분된) 상기 제3 특징 데이터를 상기 제2 영역들로 구분되도록 변환(예를 들어, 분할)할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제2 영역들 각각에 상기 제2 영상 처리를 수행함으로써, 상기 제4 특징 데이터들을 획득할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제3 특징 데이터에 포함되는 상기 제1 개수의 픽셀들을 포함하는 제3 영역들에 각각 대응하는 제1 쿼리 데이터들, 제1 키 데이터들 및 제1 밸류 데이터들을 획득할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제1 쿼리 데이터들, 제1 키 데이터들 및 제1 밸류 데이터들 각각을 상기 제2 영역들 각각에 대응하도록 그룹핑함으로써, 상기 제2 영역들에 대응하는 제2 쿼리 데이터들, 제2 키 데이터들 및 제2 밸류 데이터들을 획득할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제2 쿼리 데이터들 및 상기 제2 키 데이터들에 기초하여, 가중치 행렬을 획득할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제2 밸류 데이터들 및 상기 가중치 행렬에 기초하여, 상기 제4 특징 데이터들을 획득할 수 있다.
일 실시예에 따른 제3 특징 데이터는 상기 제2 특징 데이터들로부터 획득될 수 있다.
일 실시예에 따른 하나 이상의 뉴럴 네트워크들은 하나 이상의 컨볼루션 뉴럴 네트워크를 포함할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 하나 이상의 컨볼루션 뉴럴 네트워크들을 이용하여, 상기 제1 영상으로부터 상기 제1 특징 데이터를 추출할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 제2 특징 데이터들 및 상기 제4 특징 데이터들에 기초하여, 제5 특징 데이터를 획득할 수 있다.
상기 적어도 하나의 프로세서는, 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 하나 이상의 컨볼루션 뉴럴 네트워크를 이용하여, 상기 제5 특징 데이터로부터 상기 제2 영상을 획득할 수 있다.
일 실시예에 따른 하나 이상의 뉴럴 네트워크들을 이용하여, 영상을 처리하는 영상 처리 장치의 동작 방법은, 제1 영상에 기초하는 제1 특징 데이터를 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 하나 이상의 뉴럴 네트워크들을 이용하여, 영상을 처리하는 영상 처리 장치의 동작 방법은, 상기 제1 특징 데이터에 제1 영상 처리를 수행하여, 제1 개수의 픽셀들을 포함하는 제1 영역들에 대응하는 제2 특징 데이터들을 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 하나 이상의 뉴럴 네트워크들을 이용하여, 영상을 처리하는 영상 처리 장치의 동작 방법은, 상기 제1 영상에 기초하는 제3 특징 데이터를 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 하나 이상의 뉴럴 네트워크들을 이용하여, 영상을 처리하는 영상 처리 장치의 동작 방법은, 상기 제3 특징 데이터에 제2 영상 처리를 수행하여, 상기 제1 개수보다 큰 제2 개수의 픽셀들을 포함하는 제2 영역들에 대응하는 제4 특징 데이터들을 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 하나 이상의 뉴럴 네트워크들을 이용하여, 영상을 처리하는 영상 처리 장치의 동작 방법은, 상기 제2 특징 데이터들 및 상기 제4 특징 데이터들에 기초하여, 제2 영상을 생성하는 단계를 포함할 수 있다.
일 실시예에 따른 상기 제1 영상 처리 및 상기 제2 영상 처리는 셀프 어텐션(self-attention)을 포함할 수 있다.
상기 제2 특징 데이터들을 획득하는 단계는, 상기 제1 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 상기 제1 영역들에 각각 대응하는 상기 제2 특징 데이터들을 획득하는 단계를 포함할 수 있다.
상기 제4 특징 데이터들을 획득하는 단계는, 상기 제2 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 상기 제2 영역들에 각각 대응하는 상기 제4 특징 데이터들을 획득하는 단계를 포함할 수 있다.
상기 제1 개수는 1개이고, 상기 제1 영역들 각각은 하나의 픽셀을 포함할 수 있다.
상기 제2 특징 데이터들을 획득하는 단계는, 상기 제1 특징 데이터에 포함되는 상기 제1 영역들에 각각 대응하는 쿼리(query) 데이터들, 키(key) 데이터들, 밸류(value) 데이터들을 획득하는 단계를 포함할 수 있다.
상기 제2 특징 데이터들을 획득하는 단계는, 상기 쿼리 데이터들 및 상기 키 데이터들에 기초하여, 가중치 행렬을 획득하는 단계를 포함할 수 있다.
상기 제2 특징 데이터들을 획득하는 단계는, 상기 밸류 데이터들 및 상기 가중치 행렬에 기초하여, 상기 제2 특징 데이터들을 획득하는 단계를 포함할 수 있다.
상기 쿼리 데이터들 및 상기 키 데이터들에 기초하여, 가중치 행렬을 획득하는 단계는, 상기 쿼리 데이터들 및 상기 키 데이터들에 기초하여, 연관성 행렬을 획득하며, 상기 제1 영상의 크기와 상기 하나 이상의 뉴럴 네트워크들의 훈련에 이용된 이미지들의 크기에 기초하는 위치 바이어스를 상기 연관성 행렬에 적용함으로써, 상기 가중치 행렬을 획득하는 단계를 포함할 수 있다.
상기 제4 특징 데이터들을 획득하는 단계는, 상기 제1 개수의 픽셀들을 포함하는 제3 영역들로 구분된 상기 제3 특징 데이터를 상기 제2 영역들로 구분되도록 변환하는 단계를 포함할 수 있다.
상기 제4 특징 데이터들을 획득하는 단계는, 상기 제2 영역들 각각에 상기 제2 영상 처리를 수행함으로써, 상기 제4 특징 데이터들을 획득하는 단계를 포함할 수 있다.
상기 제4 특징 데이터들을 획득하는 단계는, 상기 제3 특징 데이터에 포함되는 상기 제1 개수의 픽셀들을 포함하는 제3 영역들에 각각 대응하는 제1 쿼리 데이터들, 제1 키 데이터들 및 제1 밸류 데이터들을 획득하는 단계를 포함할 수 있다.
상기 제4 특징 데이터들을 획득하는 단계는, 상기 제1 쿼리 데이터, 제1 키 데이터들 및 제1 밸류 데이터들 각각을 상기 제2 영역들 각각에 대응하도록 그룹핑함으로써, 상기 제2 영역들에 대응하는 제2 쿼리 데이터들, 제2 키 데이터들 및 제2 밸류 데이터들을 획득하는 단계를 포함할 수 있다.
상기 제4 특징 데이터들을 획득하는 단계는, 상기 제2 쿼리 데이터들 및 상기 제2 키 데이터들에 기초하여, 가중치 행렬을 획득하는 단계를 포함할 수 있다.
상기 제4 특징 데이터들을 획득하는 단계는, 상기 제2 밸류 데이터들 및 상기 가중치 행렬에 기초하여, 상기 제4 특징 데이터들을 획득하는 단계를 포함할 수 있다.
상기 제3 특징 데이터는 상기 제2 특징 데이터들로부터 획득될 수 있다.
상기 하나 이상의 뉴럴 네트워크들은 하나 이상의 컨볼루션 뉴럴 네트워크를 포함할 수 있다.
상기 제1 특징 데이터를 획득하는 단계는, 상기 하나 이상의 컨볼루션 뉴럴 네트워크들을 이용하여, 상기 제1 영상으로부터 상기 제1 특징 데이터를 추출하는 단계를 포함할 수 있다.
상기 제2 영상을 생성하는 단계는, 상기 제2 특징 데이터들 및 상기 제4 특징 데이터들에 기초하여, 제5 특징 데이터를 획득하는 단계를 포함할 수 있다.
상기 제2 영상을 생성하는 단계는, 상기 하나 이상의 컨볼루션 뉴럴 네트워크를 이용하여, 상기 제5 특징 데이터로부터 상기 제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. 적어도 하나의 뉴럴 네트워크를 이용하여, 영상을 처리하는 영상 처리 장치에 있어서,
    적어도 하나의 인스트럭션을 저장하는 메모리(120); 및
    상기 메모리에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써,
    제1 영상에 기초하는 제1 특징 데이터를 획득하고,
    상기 제1 특징 데이터에 제1 영상 처리를 수행하여, 상기 제1 영상의 제1 영역들에 대응하는 제2 특징 데이터들을 획득하고, 상기 제1 영역들은 제1 개수의 픽셀들을 포함함,
    상기 제1 영상에 기초하는 제3 특징 데이터를 획득하고,
    상기 제3 특징 데이터에 제2 영상 처리를 수행하여, 상기 제1 영상의 제2 영역들에 대응하는 제4 특징 데이터들을 획득하고, 상기 제2 영역들은 상기 제1 개수보다 큰 제2 개수의 픽셀들을 포함함,
    상기 제2 특징 데이터들 및 상기 제4 특징 데이터들에 기초하여, 제2 영상을 생성하는 적어도 하나의 프로세서(110)를 포함하는, 영상 처리 장치.
  2. 제1항에 있어서,
    상기 제1 영상 처리 및 상기 제2 영상 처리는 셀프 어텐션(self-attention) 연산을 수행하는 것을 포함하는, 영상 처리 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 적어도 하나의 프로세서(110)는, 상기 메모리(120)에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써,
    상기 제1 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 상기 제1 영역들에 각각 대응하는 상기 제2 특징 데이터들을 획득하고,
    상기 제2 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 상기 제2 영역들에 각각 대응하는 상기 제4 특징 데이터들을 획득하는, 영상 처리 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제1 개수는 1개이고, 상기 제1 영역들 각각은 하나의 픽셀을 포함하는, 영상 처리 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 적어도 하나의 프로세서(110)는, 상기 메모리(120)에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써,
    상기 제1 특징 데이터에 기초하여, 쿼리(query) 데이터들, 키(key) 데이터들, 밸류(value) 데이터들을 획득하고, 상기 쿼리 데이터들, 상기 키 데이터들 및 상기 밸류 데이터들 각각은 상기 제1 영역들에 대응함,
    상기 쿼리 데이터들 및 상기 키 데이터들에 기초하여, 가중치 행렬을 획득하며,
    상기 밸류 데이터들 및 상기 가중치 행렬에 기초하여, 상기 제2 특징 데이터들을 획득하는, 영상 처리 장치.
  6. 제5항에 있어서,
    상기 적어도 하나의 프로세서(110)는, 상기 메모리(120)에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써,
    상기 쿼리 데이터들 및 상기 키 데이터들에 기초하여, 연관성 행렬을 획득하며, 상기 제1 영상의 크기와 상기 적어도 하나의 뉴럴 네트워크의 훈련에 이용된 이미지들의 크기에 기초하는 위치 바이어스를 상기 연관성 행렬에 적용함으로써, 상기 가중치 행렬을 획득하는, 영상 처리 장치.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 적어도 하나의 프로세서(110)는, 상기 메모리(120)에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써,
    상기 제1 개수의 픽셀들을 포함하는 제3 영역들로 구분된 상기 제3 특징 데이터를 상기 제2 영역들로 구분되도록 변환하고,
    상기 제2 영역들 각각에 상기 제2 영상 처리를 수행함으로써, 상기 제4 특징 데이터들을 획득하는, 영상 처리 장치.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 적어도 하나의 프로세서(110)는, 상기 메모리(120)에 저장된 상기 적어도 하나의 인스트럭션들을 실행함으로써,
    상기 제3 특징 데이터에 기초하여, 제1 쿼리 데이터들, 제1 키 데이터들 및 제1 밸류 데이터들을 획득하고, 상기 제1 쿼리 데이터들, 제1 키 데이터들 및 제1 밸류 데이터들은 각각 상기 제1 개수의 픽셀들을 포함하는 제3 영역들에 대응함,
    상기 제1 쿼리 데이터들, 제1 키 데이터들 및 제1 밸류 데이터들 각각을 상기 제2 영역들 각각에 대응하도록 그룹핑함으로써, 상기 제2 영역들에 대응하는 제2 쿼리 데이터들, 제2 키 데이터들 및 제2 밸류 데이터들을 획득하며,
    상기 제2 쿼리 데이터들 및 상기 제2 키 데이터들에 기초하여, 가중치 행렬을 획득하고,
    상기 제2 밸류 데이터들 및 상기 가중치 행렬에 기초하여, 상기 제4 특징 데이터들을 획득하는, 영상 처리 장치.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 제3 특징 데이터는 상기 제2 특징 데이터들로부터 획득되는, 영상 처리 장치.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 적어도 하나의 뉴럴 네트워크는 적어도 하나의 컨볼루션 뉴럴 네트워크를 포함하고,
    상기 적어도 하나의 프로세서(110)는, 상기 메모리(120)에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써,
    상기 적어도 하나의 컨볼루션 뉴럴 네트워크를 이용하여, 상기 제1 영상으로부터 상기 제1 특징 데이터를 추출하는, 영상 처리 장치.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 적어도 하나의 뉴럴 네트워크는 적어도 하나의 컨볼루션 뉴럴 네트워크를 포함하고,
    상기 적어도 하나의 프로세서(110)는, 상기 메모리(120)에 저장된 상기 적어도 하나의 인스트럭션을 실행함으로써,
    상기 제2 특징 데이터들 및 상기 제4 특징 데이터들에 기초하여, 제5 특징 데이터를 획득하고,
    상기 적어도 하나의 컨볼루션 뉴럴 네트워크를 이용하여, 상기 제5 특징 데이터로부터 상기 제2 영상을 획득하는, 영상 처리 장치.
  12. 적어도 하나의 뉴럴 네트워크들을 이용하여, 영상을 처리하는 영상 처리 장치의 동작 방법에 있어서,
    제1 영상에 기초하는 제1 특징 데이터를 획득하는 단계;
    상기 제1 특징 데이터에 제1 영상 처리를 수행하여, 상기 제1 영상의 제1 영역들에 대응하는 제2 특징 데이터들을 획득하는 단계, 상기 제1 영역들은 제1 개수의 픽셀들을 포함함;
    상기 제1 영상에 기초하는 제3 특징 데이터를 획득하는 단계;
    상기 제3 특징 데이터에 제2 영상 처리를 수행하여, 상기 제1 영상의 제2 영역들에 대응하는 제4 특징 데이터들을 획득하는 단계, 상기 제2 영역들은 상기 제1 개수보다 큰 제2 개수의 픽셀들을 포함함; 및
    상기 제2 특징 데이터들 및 상기 제4 특징 데이터들에 기초하여, 제2 영상을 생성하는 단계를 포함하는, 영상 처리 장치의 동작 방법.
  13. 제12항에 있어서,
    상기 제1 영상 처리 및 상기 제2 영상 처리는 셀프 어텐션(self-attention) 연산을 수행하는 것을 포함하는, 영상 처리 장치의 동작 방법.
  14. 제12항 또는 제13항에 있어서,
    상기 제2 특징 데이터들을 획득하는 단계는,
    상기 제1 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 상기 제1 영역들에 각각 대응하는 상기 제2 특징 데이터들을 획득하는 단계를 포함하고,
    상기 제4 특징 데이터들을 획득하는 단계는,
    상기 제2 영역들 각각에 대한 주변 영역들의 정보에 기초하여, 상기 제2 영역들에 각각 대응하는 상기 제4 특징 데이터들을 획득하는 단계를 포함하는, 영상 처리 장치의 동작 방법.
  15. 제12항 내지 제14항 중 어느 한 항의 방법을 수행하도록 프로세서에 의해 실행되는 프로그램이 저장된 적어도 하나의 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2023/004576 2022-05-09 2023-04-05 영상 처리 장치 및 그 동작 방법 WO2023219275A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/136,614 US20230360382A1 (en) 2022-05-09 2023-04-19 Image processing apparatus and operating method thereof

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2022-0056891 2022-05-09
KR20220056891 2022-05-09
KR1020220121078A KR20230157220A (ko) 2022-05-09 2022-09-23 영상 처리 장치 및 그 동작 방법
KR10-2022-0121078 2022-09-23

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/136,614 Continuation US20230360382A1 (en) 2022-05-09 2023-04-19 Image processing apparatus and operating method thereof

Publications (1)

Publication Number Publication Date
WO2023219275A1 true WO2023219275A1 (ko) 2023-11-16

Family

ID=88730595

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/004576 WO2023219275A1 (ko) 2022-05-09 2023-04-05 영상 처리 장치 및 그 동작 방법

Country Status (1)

Country Link
WO (1) WO2023219275A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200129198A (ko) * 2017-05-23 2020-11-17 구글 엘엘씨 어텐션-기반의 시퀀스 변환 신경망
KR102278756B1 (ko) * 2020-03-11 2021-07-16 연세대학교 산학협력단 일관성을 고려한 스테레오 영상의 업스케일 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200129198A (ko) * 2017-05-23 2020-11-17 구글 엘엘씨 어텐션-기반의 시퀀스 변환 신경망
KR102278756B1 (ko) * 2020-03-11 2021-07-16 연세대학교 산학협력단 일관성을 고려한 스테레오 영상의 업스케일 장치 및 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KIM JOOEUN: "Self-attention Siamese Networks for Similarity-based Object Tracking", PROCEEDINGS OF KIISE KOREA SOFTWARE CONGRESS 2020, 21 December 2020 (2020-12-21), pages 535 - 537, XP055942059 *
MOHAMED H. ABDELPAKEY; MOHAMED S. SHEHATA; MOSTAFA M. MOHAMED: "DensSiam: End-to-End Densely-Siamese Network with Self-Attention Model for Object Tracking", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 8 September 2018 (2018-09-08), 201 Olin Library Cornell University Ithaca, NY 14853 , XP080914959 *
PRAJIT RAMACHANDRAN; NIKI PARMAR; ASHISH VASWANI; IRWAN BELLO; ANSELM LEVSKAYA; JONATHON SHLENS: "Stand-Alone Self-Attention in Vision Models", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 13 June 2019 (2019-06-13), 201 Olin Library Cornell University Ithaca, NY 14853 , XP081381415 *

Similar Documents

Publication Publication Date Title
WO2020190112A1 (en) Method, apparatus, device and medium for generating captioning information of multimedia data
WO2017222140A1 (ko) Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치
WO2021162359A1 (en) Image processing method and electronic apparatus
WO2020231049A1 (en) Neural network model apparatus and compressing method of neural network model
WO2019124652A1 (en) Electronic apparatus and control method thereof
WO2022154457A1 (en) Action localization method, device, electronic equipment, and computer-readable storage medium
WO2023153818A1 (en) Method of providing neural network model and electronic apparatus for performing the same
EP3714406A1 (en) Electronic apparatus and control method thereof
WO2023219275A1 (ko) 영상 처리 장치 및 그 동작 방법
WO2021167210A1 (ko) 서버, 전자 장치 및 그들의 제어 방법
WO2021141359A1 (en) Image display apparatus and image displaying method
WO2023068821A1 (ko) 자기-지도 학습 기반의 다중 객체 추적 장치 및 방법
WO2022019443A1 (ko) 효율적인 양자 모듈러 곱셈기 및 양자 모듈러 곱셈 방법
WO2023219276A1 (ko) 영상 처리 장치 및 그 동작 방법
WO2022065981A1 (ko) 동영상 처리 장치 및 방법
WO2023219277A1 (ko) 영상 처리 장치 및 그 동작 방법
WO2020262825A1 (ko) 위노그라드 알고리즘에 기반한 행렬 곱셈 방법 및 장치
WO2023008678A9 (ko) 영상 처리 장치 및 그 동작 방법
WO2023090569A1 (ko) 영상 처리 장치 및 그 동작 방법
WO2023121408A1 (ko) 인공신경망을 이용한 희소 데이터 기반의 컨볼루션 연산 방법 및 장치
WO2024039047A1 (ko) 영상의 시맨틱 로그 생성 방법
WO2024005513A1 (en) Image processing method, apparatus, electronic device and storage medium
WO2023101276A1 (ko) 영상 처리 장치 및 그 동작 방법
WO2024043617A1 (ko) Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법
WO2023085862A1 (en) Image processing method and related device

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

Country of ref document: EP

Kind code of ref document: A1