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

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

Info

Publication number
WO2020231005A1
WO2020231005A1 PCT/KR2020/004561 KR2020004561W WO2020231005A1 WO 2020231005 A1 WO2020231005 A1 WO 2020231005A1 KR 2020004561 W KR2020004561 W KR 2020004561W WO 2020231005 A1 WO2020231005 A1 WO 2020231005A1
Authority
WO
WIPO (PCT)
Prior art keywords
feature information
patches
input
image
patch
Prior art date
Application number
PCT/KR2020/004561
Other languages
English (en)
French (fr)
Inventor
이지혜
임태규
김태오
이형민
이상윤
Original Assignee
삼성전자 주식회사
연세대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사, 연세대학교 산학협력단 filed Critical 삼성전자 주식회사
Priority to EP20806144.0A priority Critical patent/EP3855388A4/en
Publication of WO2020231005A1 publication Critical patent/WO2020231005A1/ko
Priority to US17/525,620 priority patent/US11954755B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • 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
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Definitions

  • Various embodiments relate to an image processing apparatus and a method of operating the same, and more particularly, to an image processing apparatus and a method of operating the same for reducing a memory and an amount of computation required for image processing.
  • artificial intelligence As data traffic increases in the form of exponential functions with the development of computer technology, artificial intelligence has become an important trend driving future innovation. Since artificial intelligence is a method that imitates the way of thinking of humans, it can be applied infinitely to virtually all industries. Representative technologies of artificial intelligence include pattern recognition, machine learning, expert systems, neural networks, and natural language processing.
  • Neural networks are modeled by mathematical expressions of the characteristics of biological neurons in humans, and use an algorithm that mimics the ability of humans to learn. Through this algorithm, the neural network can generate a mapping between input data and output data, and the ability to generate such an event can be expressed as the learning ability of the neural network. In addition, the neural network has a generalization capability capable of generating correct output data for input data that has not been used for training based on the learned result.
  • a convolution neural network may include one or more convolutional layers, and in each of the convolutional layers, a convolution operation of input data and weights included in the kernel may be performed.
  • CNN convolution neural network
  • the implementation complexity of the convolutional neural network increases, and the amount of computation and memory required for the convolution operation are very large.
  • Various embodiments provide an image processing apparatus that performs image processing and an operation method thereof using a dictionary generated using a DNN including n convolutional layers and a filter kernel of the nth convolutional layer of the DNN. I can.
  • the image processing apparatus may reduce an amount of computation and memory required for image processing than image processing using a DNN while maintaining performance similar to image processing using a DNN.
  • FIG. 1 is a diagram illustrating a process of performing image processing by an image processing apparatus according to an exemplary embodiment.
  • FIG. 2 is a diagram illustrating a deep neural network used to generate a dictionary according to an embodiment.
  • FIG. 3 is a diagram for describing a convolution operation based on a convolution layer.
  • 4 and 5 are diagrams referred to for describing a method of generating a dictionary according to an exemplary embodiment.
  • FIG. 6 is a diagram referred to for describing a method of extracting feature information corresponding to an input patch by an image processing apparatus according to an exemplary embodiment.
  • FIG. 7 is a diagram for comparing image processing using a DNN with image processing using a dictionary and a filter kernel according to an embodiment.
  • FIG. 8 is a flowchart illustrating a method of operating an image processing apparatus according to an exemplary embodiment.
  • FIG. 9 is a block diagram illustrating a configuration of an image processing apparatus according to an exemplary embodiment.
  • FIG. 10 is a diagram illustrating an image processing system including a server and an image processing apparatus according to an exemplary embodiment.
  • An image processing apparatus includes a memory that stores one or more instructions, and a processor that executes the one or more instructions stored in the memory, wherein the processor extracts one or more input patches based on an input image. And, based on a dictionary including mapping information between a plurality of patches and feature information corresponding to each of the plurality of patches, extracts feature information corresponding to each of the one or more input patches, and the extracted feature By performing a convolution operation of the information and the filter kernel, a final image obtained by image-processing the input image according to a preset purpose is obtained.
  • a dictionary according to an embodiment includes n convolutional layers, an n-1 th of a deep neural network (DNN) trained to output a second image by image processing a first image according to the predetermined purpose.
  • the filter kernel is generated based on feature information output from the convolutional layer, and the filter kernel may be based on a filter kernel included in the nth convolutional layer of the DNN.
  • a plurality of patches according to an embodiment is extracted from an image input to the trained DNN, and feature information corresponding to each of the plurality of patches is corresponding to the plurality of patches, and the n-1 th conball It may be obtained based on feature information output from the root layer.
  • the n-1th convolution Feature information output from the root layer may be clustered.
  • the first feature information output from the n-1 th convolution layer and the second patch are output from the n-1 th convolution layer
  • the second characteristic information is clustered into a first cluster, and first representative characteristic information corresponding to the first cluster is generated based on the first characteristic information and the second characteristic information, and the dictionary is
  • the first patch and the second patch may include information mapped to the first representative feature information.
  • the processor determines a first hash value for a first input patch among the one or more input patches, determines a first patch having the first hash value among the plurality of patches, and Based on the dictionary, first feature information corresponding to the first patch may be extracted, and the extracted first feature information may be determined as feature information corresponding to the first input patch.
  • the first hash value is a value determined based on values of some of the pixels included in the first input patch, and the some pixels may form a preset pattern.
  • An operating method of an image processing apparatus includes extracting one or more input patches based on an input image, and mapping information between a plurality of patches and feature information corresponding to each of the plurality of patches. Extracting feature information corresponding to each of the one or more input patches, based on the dictionary to be configured, and
  • FIG. 1 is a diagram illustrating a process of performing image processing by an image processing apparatus according to an exemplary embodiment.
  • the image processing apparatus 100 may perform image processing on an input image 10 according to a preset purpose, and output a final image 60 that has undergone image processing.
  • the final image 60 may be a high-resolution image in which the resolution of the input image 10 is increased.
  • it is not limited thereto.
  • the image processing apparatus 100 may extract a plurality of input patches 20 based on the input image 10.
  • the plurality of input patches 20 may have the same size.
  • the image processing apparatus 100 may extract a plurality of input patches 20 from the input image 10 so that the plurality of input patches 20 do not overlap each other. For example, when the size of the input image 10 is 50 x 50, the image processing apparatus 100 inputs 25 patches having a size of 10 x 10 so that the plurality of input patches 20 do not overlap each other. It can be extracted from the image.
  • the image processing apparatus 100 may extract a plurality of input patches 20 from the input image 10 so that the plurality of input patches 20 overlap in a partial area.
  • an input patch having a size of 10 x 10 is extracted from a first area on the upper left of the input image 10, and in a second area in which the first area is moved from left to right by one pixel, 10 x
  • An input patch having a size of 10 can be extracted.
  • the area may be moved one pixel from left to right or from top to bottom, and an input patch having a size of 10 x 10 may be extracted from the moved area.
  • 36 patches having a size of 10 x 10 can be extracted from the input image 10 having a size of 50 x 50.
  • the present invention is not limited thereto, and input patches may be extracted in various ways.
  • the image processing apparatus 100 may extract feature information 40 corresponding to a plurality of input patches based on the dictionary 30.
  • the dictionary 30 includes mapping information between a plurality of patches and feature information corresponding to each of the plurality of patches. For example, when the first patch corresponds to the first feature information and the second patch corresponds to the second feature information, the dictionary is "first patch-first feature information" and "second patch-second feature information" Mapping information including "information" may be included. A method of generating a dictionary will be described in detail later.
  • the image processing apparatus 100 may acquire a final image by inputting the extracted feature information 40 to the convolution layer 50.
  • the image processing apparatus 100 may obtain a final image 60 by performing a convolution operation of the feature information 40 and a filter kernel included in the convolution layer 50.
  • the final image 60 may be an image in which the input image 10 is processed according to a preset purpose.
  • FIG. 2 is a diagram illustrating a deep neural network used to generate a dictionary according to an embodiment.
  • a deep neural network (DNN) 200 may be a convolution neural network (CNN) including n convolution layers.
  • CNN convolution neural network
  • the deep neural network 200 according to an embodiment is a convolutional neural network.
  • the convolutional neural network 200 has a structure in which input data 210 is input, passed through n convolution layers, and output data 230 is output.
  • the image processing apparatus 100 may extract “features” such as a border, a line, and a color from an input image using the convolutional neural network 200.
  • Each of the n convolutional layers included in the convolutional neural network 200 may receive data from a previous convolutional layer, process the received data, and transmit data to a next convolutional layer.
  • the image processing apparatus 100 generates a feature map by convolving an image input from each of the convolution layers with a filter kernel including one or more weights, and converts the generated feature map to the next convolution layer. You can enter.
  • Initial convolutional layers of the convolutional neural network 200 may be operated to extract low-level features such as edges or gradients from an input image.
  • Complicated features eg, eyes, nose, mouth, face, etc.
  • One or more convolutional layers that receive and output a feature map in the convolutional neural network 200 may be hidden layers (eg, hidden convolutional layers).
  • other processing operations may be performed in addition to an operation of convolving by applying one or more filter kernels to a feature map. For example, an activation function operation that imparts a non-linear characteristic to the feature map may be performed.
  • FIG. 3 illustrates a convolution operation between the filter kernel 330 and the input image 310 for obtaining sample values of the feature map 350.
  • I1 to I49 displayed on the input image 310 represent pixels in the input image 310
  • F1 to F9 displayed on the filter kernel 330 represent weights of the filter kernel 330
  • M1 to M9 displayed in the feature map 350 represent samples of the feature map 350.
  • the weight of the filter kernel 330 may be optimized through training of the DNN.
  • a feature map 350 having a predetermined size may be obtained.
  • the DNN 200 of FIG. 2 may be trained by a plurality of training data sets.
  • the plurality of training data sets may be data sets for training image processing according to a predetermined purpose.
  • the plurality of training data sets may include training images and label images obtained by converting each of the training images into a high-resolution image.
  • One training data set may include a training image and a label image corresponding to the training image.
  • the weight value of one or more filter kernels included in the DNN is reduced so that the difference (loss information) between the image output from the DNN and the label image corresponding to the training image input to the DNN is reduced. Can be adjusted.
  • weight values of filter kernels included in the DNN may be determined.
  • 4 and 5 are diagrams referred to for describing a method of generating a dictionary according to an exemplary embodiment.
  • a dictionary may be generated using the DNN 200 on which training has been completed.
  • the first image when the first image 410 is input to the DNN 200, the first image may pass through n convolution layers and may be output as a second image 430.
  • a convolution operation between data input to the convolution layer and a filter kernel of the convolution layer is performed, and a feature map (feature information) may be output.
  • a dictionary may be generated using the feature map 420 (hereinafter referred to as a first feature map) output from the n-1 th convolution layer 240.
  • a plurality of patches may be extracted from the first image 410.
  • the plurality of patches may have the same size, and may be extracted from the first image 410 so as not to overlap each other, or may be extracted from the first image 410 so as to overlap in a partial region.
  • feature information corresponding to each of the plurality of patches may be extracted from the first feature map 420.
  • feature information 421 corresponding to the first patch from the region of the first feature map 420 corresponding to the region of the first patch 411 extracted from the first image 410 I can.
  • a dictionary according to an embodiment may be generated by using the extracted plurality of patches and feature information corresponding to the plurality of patches.
  • m feature information 520 corresponding to each of m patches may be extracted from a first feature map.
  • the m pieces of feature information 520 may be clustered. For example, based on the similarity between the m patches 510 and the similarity between the m feature information 520, the m feature information 520 may be clustered.
  • the patch and the feature information corresponding to the patch are concatenated to generate a single vector, and the generated vectors may be clustered based on the Euclidean distance between vectors.
  • the clustering method is not limited thereto, and feature information may be clustered through various methods.
  • first feature information 521 corresponding to a first patch 511 second feature information 522 corresponding to a second patch 512, and a third patch 513 corresponding to the third patch 513.
  • the feature information 523 may be clustered into the same cluster (a first cluster (Cluster 1)).
  • one cluster may have one representative feature information. For example, based on the first feature information 521, the second feature information 522, and the third feature information 523 included in the first cluster 1, corresponding to the first cluster 1 First representative characteristic information 531 to be performed may be obtained.
  • the first representative feature information 531 may be obtained by a weighted sum of the first feature information 521, the second feature information 522, and the third feature information 523, but is not limited thereto.
  • the plurality of patches and feature information corresponding to each of the plurality of patches may be clustered into k clusters, and k representative feature information may be obtained. Accordingly, a plurality of patches may be mapped to any one of k pieces of representative feature information, and the dictionary 30 according to an embodiment may include mapping information of a plurality of patches and k pieces of representative feature information.
  • FIG. 6 is a diagram referred to for describing a method of extracting feature information corresponding to an input patch by an image processing apparatus according to an exemplary embodiment.
  • the image processing apparatus 100 may determine a hash value for each of the input patches.
  • the image processing apparatus 100 may calculate a hash value based on pixel values included in the input patch. For example, if the input patch is 5 x 5 and the coordinates of the center pixel are (2, 2), pixels located on the same vertical line as the center pixel with respect to the center pixel (e.g., coordinates (2, 1), (2, 2), (2, 3), (2, 4), (2, 5)) and on the same horizontal line as the center pixel relative to the center pixel. Using the values of located pixels (e.g., pixels with coordinates (1, 2), (2, 2), (3, 2), (4, 2), (5, 2)), hash Value can be calculated. However, it is not limited thereto.
  • a patch having the same hash value as the input patch among a plurality of patches included in the dictionary is determined, and representative feature information corresponding to the determined patch value can be extracted as the feature information of the input patch.
  • the first Feature information corresponding to the input patch 610 may be determined as first representative feature information 630 mapped to the first patch 620 in the dictionary 30.
  • the image processing apparatus 100 may extract feature information 40 corresponding to each of the plurality of input patches 20 extracted from the input image by using a dictionary in the same manner.
  • the plurality of extracted feature information 40 may be input to the convolution layer 50 of FIG. 1, and a convolution operation of the filter kernel included in the convolution layer 50 and the input feature information is performed. , A final image can be obtained.
  • the filter kernel included in the convolutional layer 50 may be the same as the filter kernel included in the n-th convolutional layer 250 of the DNN 200 in which training of FIG. 2 is completed.
  • FIG. 7 is a diagram for comparing image processing using a DNN with image processing using a dictionary and a filter kernel according to an embodiment.
  • the first image 710 when a first image 710 is input to a DNN 200 on which training has been completed, the first image 710 passes through n convolution layers and may be output as a second image 720.
  • the second image 720 may be an image processed from the first image 710 according to a preset purpose.
  • the second image 720 is generated using the DNN 200, a required amount of computation and a memory are very large.
  • the complexity of implementation for implementing the DNN 200 may also increase.
  • a third image 730 may be generated by extracting feature information for each of a plurality of patches and performing a convolution operation on the extracted feature information with a filter kernel included in the convolution layer 50.
  • the third image 730 is similar to the second image 720, and the filter kernel included in the convolution layer 50 is the n-th convolution layer 250 of the DNN 200 on which training of FIG. 2 is completed. It can be the same as the filter kernel included in.
  • the third image 730 from the first image 710 is obtained using a dictionary acquired using the training-completed DNN 200 and a filter kernel of the n-th convolution layer 50 of the DNN 200.
  • the amount of computation required to acquire may be reduced to 1/n than the amount of computation required to acquire the second image 720 from the first image 710 using the DNN 200.
  • FIG. 8 is a flowchart illustrating a method of operating an image processing apparatus according to an exemplary embodiment.
  • the image processing apparatus 100 may extract one or more input patches based on an input image (S810 ).
  • the image processing apparatus 100 may extract a plurality of input patches having the same size from an input image, and extract a plurality of input patches so that the plurality of input patches do not overlap each other, or a plurality of input patches are A plurality of input patches may be extracted from the input image so as to overlap.
  • the image processing apparatus 100 may extract feature information corresponding to each of one or more input patches based on a dictionary including mapping information between a plurality of patches and feature information corresponding to each of the plurality of patches. (S820).
  • a dictionary according to an embodiment may be generated using a trained DNN including n convolutional layers, as described with reference to FIGS. 4 and 5. For example, based on an image input to the DNN and feature information (feature map) output from the n-1 th convolution layer of the DNN, a plurality of patches and feature information corresponding to the plurality of patches may be extracted. have. Also, feature information corresponding to a plurality of patches may be clustered into k clusters based on similarity. At this time, each of the k clusters has representative feature information, and accordingly, a plurality of patches may be mapped to any one of k representative feature information, and a dictionary according to an embodiment includes a plurality of patches and k Mapping information of representative feature information may be included.
  • the image processing apparatus 100 determines a hash value for the input patch, determines a patch having the same hash value as the input patch among a plurality of patches included in the dictionary, and inputs representative feature information mapped to the determined patch. It can be extracted as feature information of The image processing apparatus 100 may extract feature information corresponding to each of the plurality of input patches extracted from the input image using the dictionary in the same manner.
  • the image processing apparatus 100 may obtain a final image by performing a convolution operation between the extracted feature information and the filter kernel (S830).
  • the extracted feature information may be input as a convolution layer, and the image processing apparatus 100 performs a convolution operation between the input feature information and a filter kernel included in the convolution layer, The final image can be obtained.
  • the filter kernel included in the convolutional layer may be the same as the filter kernel included in the n-th convolutional layer of the trained DNN.
  • FIG. 9 is a block diagram illustrating a configuration of an image processing apparatus according to an exemplary embodiment.
  • the image processing apparatus 100 may include a processor 120 and a memory 130.
  • the processor 120 may generally control the image processing apparatus 100.
  • the processor 120 may execute one or more programs stored in the memory 130.
  • the memory 130 may store various data, programs, or applications for driving and controlling the image processing apparatus 100.
  • a program stored in the memory 130 may include one or more instructions.
  • a program (one or more instructions) or an application stored in the memory 130 may be executed by the processor 120.
  • the processor 120 may extract a plurality of input patches having the same size from an input image.
  • the processor 120 may extract feature information corresponding to each of the plurality of patches based on a dictionary including mapping information between a plurality of patches and feature information corresponding to each of the plurality of patches.
  • the method of generating the dictionary has been described in detail above, so the same description will be omitted.
  • the processor 120 determines a hash value for the input patch, determines a patch having the same hash value as the input patch among a plurality of patches included in the dictionary, and stores feature information (representative feature information) mapped to the determined patch. It can be extracted as feature information of the input patch.
  • the processor 120 may extract feature information corresponding to each of the plurality of input patches extracted from the input image by using the dictionary in the same manner.
  • the processor 120 may obtain a final image by performing a convolution operation between the extracted feature information and the filter kernel of the convolution layer.
  • the filter kernel included in the convolutional layer may be the same as the filter kernel included in the n-th convolutional layer of the trained DNN.
  • the processor 120 may obtain a final image obtained by image-processing an input image by using a dictionary and one convolution layer (n-th convolution layer of DNN), and a dictionary and one convolution according to an embodiment
  • the amount of computation required for image processing using a layer can be reduced to 1/n compared to the amount of computation required for image processing using a DNN.
  • a block diagram of the image processing apparatus 100 illustrated in FIG. 9 is a block diagram for an exemplary embodiment.
  • Each component of the block diagram may be integrated, added, or omitted according to the specifications of the image processing apparatus 100 that is actually implemented. That is, if necessary, two or more components may be combined into a single component, or one component may be subdivided into two or more components and configured.
  • functions performed by each block are for explaining embodiments, and specific operations or devices thereof do not limit the scope of the present invention.
  • FIG. 10 is a diagram illustrating an image processing system including a server and an image processing apparatus according to an exemplary embodiment.
  • the server 1000 may train the DNN 200 of FIG. 2 or obtain a DNN for which training has been completed.
  • the DNN 200 of FIG. 2 may be trained by a plurality of training data sets.
  • the plurality of training data sets may be data sets for training image processing according to a predetermined purpose.
  • the plurality of training data sets may include training images and label images obtained by converting each of the training images into a high-resolution image.
  • One training data set may include a training image and a label image corresponding to the training image.
  • the weight value of one or more filter kernels included in the DNN is reduced so that the difference (loss information) between the image output from the DNN and the label image corresponding to the training image input to the DNN is reduced. Can be adjusted.
  • weight values of filter kernels included in the DNN may be determined.
  • the server 1000 may generate a dictionary using the DNN for which training has been completed.
  • the server 1000 may generate a dictionary using a first image input to the DNN and a feature map output from the n-1 th convolution layer of the DNN.
  • the server 1000 may extract a plurality of patches from the first image.
  • the plurality of patches may have the same size and may be extracted from the first image so as not to overlap each other, or may be extracted from the first image so as to overlap in a partial area.
  • the server 1000 may extract feature information corresponding to each of the plurality of patches from the first feature map.
  • first feature information corresponding to the first patch may be extracted from the region of the first feature map corresponding to the region of the first patch extracted from the first image.
  • the server 1000 may generate a dictionary by using the extracted plurality of patches and feature information corresponding to the plurality of patches.
  • the server 1000 may extract m feature information corresponding to m patches and m patches, and cluster m feature information. At this time, based on the similarity between m patches and the similarity between m feature information, m feature information may be clustered into k clusters. Each of the k clusters may have representative feature information, and a plurality of patches may be mapped to any of the k representative feature information. Accordingly, the server 1000 may generate a dictionary including mapping information of a plurality of patches and k pieces of representative feature information.
  • the server 1000 may store the generated dictionary and values of the filter kernel included in the n-th convolutional layer of the trained DNN in a memory and transmit it to the image processing apparatus 100.
  • the image processing apparatus 100 may perform image processing on an input image using a dictionary and a filter kernel included in an n-th convolutional layer of a trained DNN. Since this has been described in detail in FIGS. 1 to 9, the same description will be omitted.
  • the method of operating an image processing apparatus may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium.
  • the computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination.
  • the program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in computer software.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks.
  • -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like.
  • Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
  • an image processing apparatus and a method of operating the image processing apparatus according to the disclosed embodiments may be included in a computer program product and provided.
  • Computer program products can be traded between sellers and buyers as commodities.
  • the computer program product may include a S/W program and a computer-readable storage medium storing the S/W program.
  • the computer program product may include a product (e.g., downloadable app) electronically distributed through an electronic device manufacturer or an electronic market (e.g., Google Play Store, App Store). have.
  • a product e.g., downloadable app
  • an electronic market e.g., Google Play Store, App Store
  • the storage medium may be a server of a manufacturer, a server of an electronic market, or a storage medium of a relay server temporarily storing an SW program.
  • the computer program product may include a storage medium of a server or a storage medium of a client device in a system composed of a server and a client device.
  • a third device eg, a smart phone
  • the computer program product may include a storage medium of the third device.
  • the computer program product may include a S/W program itself transmitted from a server to a client device or a third device, or transmitted from a third device to a client device.
  • one of the server, the client device, and the third device may execute the computer program product to perform the method according to the disclosed embodiments.
  • two or more of a server, a client device, and a third device may execute a computer program product to distribute and implement the method according to the disclosed embodiments.
  • a server eg, a cloud server or an artificial intelligence server

Landscapes

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

Abstract

영상 처리 장치에 관한 것으로, 하나 이상의 인스트럭션들을 저장하는 메모리, 및 메모리에 저장된 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 프로세서는, 입력 영상에 기초하여, 하나 이상의 입력 패치들을 추출하고, 복수의 패치들과 상기 복수의 패치들 각각에 대응하는 특징 정보 사이의 매핑 정보를 포함하는 딕셔너리에 기초하여, 하나 이상의 입력 패치들 각각에 대응하는 특징 정보를 추출하고, 추출된 특징 정보와 필터 커널의 컨볼루션 연산을 수행함으로써, 입력 영상을 기 설정된 목적에 따라 영상 처리한, 최종 영상을 획득하는 영상 처리 장치가 개시된다.

Description

영상 처리 장치 및 그 동작방법
다양한 실시예들은 영상 처리 장치 및 그 동작방법에 관한 것으로서, 더욱 상세하게는 영상 처리에 필요한 메모리 및 연산량을 감소시키기 위한 영상 처리 장치 및 그 동작방법에 관한 것이다.
컴퓨터 기술의 발달과 함께 데이터 트래픽이 지수함수 형태로 증가하면서 인공지능은 미래 혁신을 주도하는 중요한 트랜드로 자리잡았다. 인공지능은 사람의 사고방식을 모방하는 방식이기 때문에 사실상 전 산업에 무한하게 응용이 가능하다. 인공지능의 대표적인 기술로는 패턴 인식, 기계 학습, 전문가 시스템, 뉴럴 네트워크, 자연어 처리 등이 있다.
뉴럴 네트워크는 인간의 생물학적 신경 세포의 특성을 수학적 표현에 의해 모델링한 것으로, 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용한다. 이 알고리즘을 통하여, 뉴럴 네트워크는 입력 데이터와 출력 데이터 사이의 사상(mapping)을 생성할 수 있고, 이러한 사상을 생성하는 능력은 뉴럴 네트워크의 학습 능력이라고 표현될 수 있다. 또한, 뉴럴 네트워크는 학습된 결과에 기초하여, 학습에 이용되지 않았던 입력 데이터에 대하여, 올바른 출력 데이터를 생성할 수 있는 일반화 능력을 가진다.
컨볼루션 뉴럴 네트워크(CNN: Convolution Neural Network)는 하나 이상의 컨볼루션 레이어들을 포함할 수 있으며, 컨볼루션 레이어들 각각에서는, 입력 데이터와 커널에 포함된 가중치들의 컨볼루션 연산이 수행될 수 있다. 이때, 컨볼루션 뉴럴 네트워크의 입력 데이터 및 출력 데이터가 모두 영상 데이터인 경우, 컨볼루션 뉴럴 네트워크의 구현 복잡도가 증가하며, 컨볼루션 연산에 필요한 연산량 및 메모리의 양이 매우 크다.
다양한 실시예들은, n개의 컨볼루션 레이어들을 포함하는 DNN을 이용하여 생성된 딕셔너리와 DNN의 n번째 컨볼루션 레이어의 필터 커널을 이용하여, 영상 처리를 수행하는 영상 처리 장치 및 그 동작방법을 제공할 수 있다.
일 실시예에 따른 영상 처리 장치는, DNN을 이용한 영상 처리와 유사한 성능을 유지하면서, DNN을 이용한 영상 처리보다, 영상 처리에 필요한 연산량 및 메모리의 양을 감소시킬 수 있다.
도 1은 일 실시예에 따른 영상 처리 장치가 영상 처리를 수행하는 과정을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 딕셔너리를 생성하기 위해 이용되는 딥 뉴럴 네트워크를 나타내는 도면이다.
도 3은 컨볼루션 레이어에 의한 컨볼루션 연산을 설명하기 위한 도면이다.
도 4 및 도 5는 일 실시예에 따른 딕셔너리를 생성하는 방법을 설명하기 위해 참조되는 도면들이다.
도 6은 일 실시예에 따른 영상 처리 장치가 입력 패치에 대응하는 특징 정보를 추출하는 방법을 설명하기 위해 참조되는 도면이다.
도 7은 DNN을 이용한 영상 처리와 일 실시예에 따른 딕셔너리 및 필터 커널을 이용한 영상 처리를 비교하기 위한 도면이다.
도 8은 일 실시예에 따른 영상 처리 장치의 동작방법을 나타내는 흐름도이다.
도 9는 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.
도 10은 일 실시예에 따른 서버 및 영상 처리 장치를 포함하는 영상 처리 시스템을 나타내는 도면이다.
일 실시예에 따른 영상 처리 장치는 하나 이상의 인스트럭션들을 저장하는 메모리, 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 상기 프로세서는, 입력 영상에 기초하여, 하나 이상의 입력 패치들을 추출하고, 복수의 패치들과 상기 복수의 패치들 각각에 대응하는 특징 정보 사이의 매핑 정보를 포함하는 딕셔너리에 기초하여, 상기 하나 이상의 입력 패치들 각각에 대응하는 특징 정보를 추출하고, 상기 추출된 특징 정보와 필터 커널의 컨볼루션 연산을 수행함으로써, 상기 입력 영상을 기 설정된 목적에 따라 영상 처리한, 최종 영상을 획득한다.
일 실시예에 따른 딕셔너리는, n개의 컨볼루션 레이어들을 포함하고, 제1 영상을 상기 기 설정된 목적에 따라 영상 처리하여, 제2 영상을 출력하도록 훈련된 딥 뉴럴 네트워크(DNN)의 n-1 번째 컨볼루션 레이어로부터 출력되는 특징 정보에 기초하여, 생성되고, 상기 필터 커널은, 상기 DNN의 n번째 컨볼루션 레이어에 포함되는 필터 커널에 기초할 수 있다.
일 실시예에 따른 복수의 패치들은, 상기 훈련된 DNN에 입력되는 영상으로부터 추출되고, 상기 복수의 패치들 각각에 대응하는 특징 정보는, 상기 복수의 패치들에 대응하여, 상기 n-1 번째 컨볼루션 레이어로부터 출력되는 특징 정보에 기초하여, 획득될 수 있다.
일 실시예에 따른 복수의 패치들 사이의 유사도 및 상기 복수의 패치들 각각에 대응하여, 상기 n-1번째 컨볼루션 레이어로부터 출력된 특징 정보들 사이의 유사도에 기초하여, 상기 n-1번째 컨볼루션 레이어로부터 출력된 특징 정보들이 클러스터링될 수 있다.
일 실시예에 따른 복수의 패치들 중 제1 패치에 대응하여, 상기 n-1번째 컨볼루션 레이어로부터 출력된 제1 특징 정보 및 제2 패치에 대응하여, 상기 n-1번째 컨볼루션 레이어로부터 출력되는 제2 특징 정보는 제1 클러스터로 클러스터링되고, 상기 제1 클러스터에 대응하는 제1 대표 특징 정보는, 상기 제1 특징 정보 및 제2 특징 정보에 기초하여, 생성되며, 상기 딕셔너리는, 상기 제1 패치 및 제2 패치가, 상기 제1 대표 특징 정보에 매핑되는 정보를 포함할 수 있다.
일 실시예에 따른 프로세서는, 상기 하나 이상의 입력 패치들 중 제1 입력 패치에 대한 제1 해쉬 값을 결정하고, 상기 복수의 패치들 중 상기 제1 해쉬 값을 가지는 제1 패치를 결정하며, 상기 딕셔너리에 기초하여, 상기 제1 패치에 대응하는 제1 특징 정보를 추출하고, 추출된 제1 특징 정보를 상기 제1 입력 패치에 대응하는 특징 정보로 결정할 수 있다.
일 실시예에 따른 제1 해쉬 값은, 상기 제1 입력 패치에 포함되는 픽셀들 중 일부 픽셀들에 대한 값들에 기초하여 결정되는 값이며, 상기 일부 픽셀들은, 기 설정된 패턴을 형성할 수 있다.
일 실시예에 따른 영상 처리 장치의 동작방법은, 입력 영상에 기초하여, 하나 이상의 입력 패치들을 추출하는 단계, 복수의 패치들과 상기 복수의 패치들 각각에 대응하는 특징 정보 사이의 매핑 정보를 포함하는 딕셔너리에 기초하여, 상기 하나 이상의 입력 패치들 각각에 대응하는 특징 정보를 추출하는 단계, 및
상기 추출된 특징 정보와 필터 커널의 컨볼루션 연산을 수행함으로써, 상기 입력 영상을 기 설정된 목적에 따라 영상 처리한, 최종 영상을 획득하는 단계를 포함할 수 있다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 일 실시예에 따른 영상 처리 장치가 영상 처리를 수행하는 과정을 설명하기 위한 도면이다.
도 1을 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 기 설정된 목적에 따라 입력 영상(10)에 대한 영상 처리를 수행하여, 영상 처리된 최종 영상(60)을 출력할 수 있다. 이때, 최종 영상(60)은, 입력 영상(10)의 해상도를 증가시킨 고해상도 영상을 수 있다. 다만, 이에 한정되지 않는다.
영상 처리 장치(100)는 입력 영상(10)에 기초하여, 복수의 입력 패치들(20)을 추출할 수 있다. 이때, 복수의 입력 패치들(20)은 동일한 크기를 가질 수 있다. 또한, 영상 처리 장치(100)는 복수의 입력 패치들(20)이 서로 중첩되지 않도록 입력 영상(10)으로부터, 복수의 입력 패치들(20)을 추출할 수 있다. 예를 들어, 영상 처리 장치(100)는 입력 영상(10)의 크기가 50 x 50인 경우, 복수의 입력 패치들(20)이 서로 중첩되지 않도록 10 x 10의 크기를 가지는 25개의 패치들을 입력 영상으로부터 추출할 수 있다.
또는, 영상 처리 장치(100)는 복수의 입력 패치들(20)이 일부 영역에서 중첩되도록 입력 영상(10)으로부터 복수의 입력 패치들(20)을 추출할 수 있다.
예를 들어, 입력 영상(10)의 좌측 상단의 제1 영역에서 10 x 10크기를 가지는 입력 패치를 추출하고, 제1 영역에서 좌측에서 우측으로, 한 픽셀씩 이동시킨 제2 영역에서, 10 x 10 크기를 가지는 입력 패치를 추출할 수 있다. 이와 같이, 입력 영상(10)에서 영역을 좌측에서 우측 또는 상단에서 하단으로 한 픽셀씩 이동시키고 이동된 영역에서 10 x 10 크기를 가지는 입력 패치를 추출할 수 있다. 이에 따라, 50 x 50의 크기를 가지는 입력 영상(10)으로부터 10 x 10의 크기를 가지는 36개의 패치들을 추출할 수 있다. 다만, 이에 한정되지 않으며 다양한 방법으로 입력 패치들을 추출할 수 있다.
영상 처리 장치(100)는 딕셔너리(30)에 기초하여, 복수의 입력 패치들에 대응하는 특징 정보들(40)을 추출할 수 있다. 일 실시예에 따른 딕셔너리(30)는 복수의 패치들과 복수의 패치들 각각에 대응하는 특징 정보 사이의 매핑 정보를 포함한다. 예를 들어, 제1 패치는 제1 특징 정보에 대응되고, 제2 패치는 제2 특징 정보에 대응되는 경우, 딕셔너리는 "제1 패치 - 제1 특징 정보" 및 "제2 패치-제2 특징 정보"를 포함하는 매핑 정보를 포함할 수 있다. 딕셔너리를 생성하는 방법에 대해서는, 자세히 후술하기로 한다.
영상 처리 장치(100)는 추출된 특징 정보들(40)을 컨볼루션 레이어(50)에 입력함으로써, 최종 영상을 획득할 수 있다. 예를 들어, 영상 처리 장치(100)는 특징 정보들(40)과 컨볼루션 레이어(50)에 포함되는 필터 커널의 컨볼루션 연산을 수행함으로써, 최종 영상(60)을 획득할 수 있다. 이때, 최종 영상(60)은, 기 설정된 목적에 따라 입력 영상(10)이 처리된 영상일 수 있다.
도 2는 일 실시예에 따른 딕셔너리를 생성하기 위해 이용되는 딥 뉴럴 네트워크를 나타내는 도면이다.
도 2를 참조하면, 딥 뉴럴 네트워크(DNN: Deep Neural Network, 200)는, n개의 컨볼루션 레이어들을 포함하는 컨볼루션 뉴럴 네트워크(CNN: Convolution Neural Network)일 수 있다. 이하에서는, 일 실시예에 따른 딥 뉴럴 네트워크(200)가 컨볼루션 뉴럴 네트워크인 것으로 설명한다. 예를 들어, 컨볼루션 뉴럴 네트워크(200)는 입력 데이터(210)가 입력되고, n개의 컨볼루션 레이어들을 통과하여, 출력 데이터(230)가 출력되는 구조를 가진다.
일 실시예에 따른 영상 처리 장치(100)는 컨볼루션 뉴럴 네트워크(200)를 이용하여, 입력된 영상으로부터 테두리, 선, 색 등과 같은 "특징들(features)"을 추출할 수 있다. 컨볼루션 뉴럴 네트워크(200)에 포함되는 n개의 컨볼루션 레이어들 각각에서는 이전 컨볼루션 레이어로부터 데이터를 수신하고, 수신된 데이터를 처리하여, 다음 컨볼루션 레이어로 데이터를 전송할 수 있다. 예를 들어, 영상 처리 장치(100)는 컨볼루션 레이어들 각각에서 입력된 영상을 하나 이상의 가중치들을 포함하는 필터 커널과 컨볼루션 하여, 특징 맵을 생성하고, 생성된 특징 맵을 다음 컨볼루션 레이어로 입력할 수 있다.
컨볼루션 뉴럴 네트워크(200)의 초기 컨볼루션 레이어들은 입력 영상으로부터 에지들 또는 그레디언트들과 같은 낮은 레벨의 특징들을 추출하도록 동작될 수 있다. 후기 컨볼루션 레이어들로 갈수록 점진적으로 복잡한 특징들(예를 들어, 눈, 코, 입, 얼굴 등)을 추출할 수 있다.
컨볼루션 뉴럴 네트워크(200) 내에서 특징 맵을 입력받고 출력하는 하나 이상의 컨볼루션 레이어들은 히든(hidden) 레이어들(예를 들어, 히든 컨볼루션 레이어들)일 수 있다. 또한, 컨볼루션 뉴럴 네트워크(200)에서는 특징 맵에 하나 이상의 필터 커널들을 적용하여 컨볼루션하는 연산 이외에 다른 프로세싱 연산들이 수행될 수 있다. 예를 들어, 특징 맵에 비선형(Non-linear) 특성을 부여하는 활성화 함수(activation function) 연산이 수행 등이 수행될 수 있다.
도 3을 참조하여, 컨볼루션 레이어에서 수행되는 컨볼루션 연산에 대해 보다 상세하게 설명한다.
미리 결정된 2차원의 크기를 갖는 필터 커널(330)(도 3에서는 3 X 3 크기의 필터 커널)의 파라미터들과 그에 대응하는 입력 영상(310) 내 픽셀 값들 사이의 곱 연산 및 덧셈 연산을 통해 특징 맵(350)이 생성될 수 있다.
도 3은 특징 맵(350)의 샘플 값을 획득하기 위한 필터 커널(330)과 입력 영상(310) 사이의 컨볼루션 연산을 도시하고 있다.
도 3에서 입력 영상(310)에 표시된 I1 내지 I49는 입력 영상(310) 내 픽셀들을 나타내고, 필터 커널(330)에 표시된 F1 내지 F9는 필터 커널(330)의 가중치들을 나타낸다. 또한, 특징 맵(350)에 표시된 M1 내지 M9는 특징 맵(350)의 샘플들을 나타낸다. 필터 커널(330)의 가중치는, DNN의 훈련을 통해 그 값이 최적화될 수 있다.
컨볼루션 연산 과정에서, 입력 영상(310)의 I1, I2, I3, I8, I9, I10, I15, I16, I17의 픽셀 값들 각각과 필터 커널(330)의 F1, F2, F3, F4, F5, F6, F7, F8 및 F9 각각의 곱 연산이 수행되고, 곱 연산의 결과 값들을 조합(예를 들어, 덧셈 연산)한 값이 특징 맵(350)의 M1의 값으로 할당될 수 있다. 컨볼루션 연산의 스트라이드(stride)가 2라면, 입력 영상(310)의 I3, I4, I5, I10, I11, I12, I17, I18, I19의 픽셀 값들 각각과 필터 커널(330)의 F1, F2, F3, F4, F5, F6, F7, F8 및 F9 각각의 곱 연산이 수행되고, 곱 연산의 결과 값들을 조합한 값이 특징 맵(350)의 M2의 값으로 할당될 수 있다.
필터 커널(330)이 입력 영상(310)의 마지막 픽셀에 도달할 때까지 스트라이드에 따라 이동하는 동안 입력 영상(310) 내 픽셀 값들과 필터 커널(330)의 가중치들 사이의 컨볼루션 연산이 수행됨으로써, 소정 크기를 갖는 특징 맵(350)이 획득될 수 있다.
한편, 도 2의 DNN(200)은 복수의 훈련 데이터 세트들에 의해서 훈련될 수 있다. 예를 들어, 복수의 훈련 데이터 세트들은, 기 설정된 목적에 따른 영상 처리를 훈련시키기 위한 데이터 세트들일 수 있다. 예를 들어, 기 설정된 목적이, 입력 영상을 고해상도 영상으로 변환하는 것인 경우, 복수의 훈련 데이터 세트들은, 훈련 영상들 및 훈련 영상들 각각을 고해상도 영상으로 변환한 레이블 영상들을 포함할 수 있다. 하나의 훈련 데이터 세트는, 훈련 영상과 훈련 영상에 대응하는 레이블 영상을 포함할 수 있다.
예를 들어, 훈련 영상을 DNN에 입력하여, DNN에서 출력되는 영상과 DNN 에 입력된 훈련 영상에 대응하는 레이블 영상의 차이(손실 정보)가 작아지도록 DNN에 포함되는 하나 이상의 필터 커널들의 가중치 값이 조정될 수 있다. 이와 같이, 복수의 훈련 데이터 세트들을 이용하여, DNN 을 훈련시킴으로써, DNN에 포함되는 필터 커널들의 가중치 값이 결정될 수 있다.
도 4 및 도 5는, 일 실시예에 따른 딕셔너리를 생성하는 방법을 설명하기 위해 참조되는 도면들이다.
도 4를 참조하면, 훈련이 완료된 DNN(200)을 이용하여, 일 실시예에 따른 딕셔너리가 생성될 수 있다. 예를 들어, 제1 영상(410)이 DNN(200)에 입력되면, 제1 영상은 n개의 컨볼루션 레이어들을 통과하여, 제2 영상(430)으로 출력될 수 있다. 이때, n개의 컨볼루션 레이어들 각각에서는, 컨볼루션 레이어에 입력된 데이터와 컨볼루션 레이어의 필터 커널과의 컨볼루션 연산이 수행되어, 특징 맵(특징 정보)이 출력될 수 있다.
이때, n-1 번째 컨볼루션 레이어(240)에서 출력된 특징 맵(420, 이하, 제1 특징 맵이라 한다)을 이용하여, 딕셔너리가 생성될 수 있다.
예를 들어, 제1 영상(410)에서 복수의 패치들을 추출할 수 있다. 이때, 복수의 패치들은 동일한 크기를 가질 수 있으며, 서로 중첩되지 않도록 제1 영상(410)으로부터 추출되거나, 일부 영역에서 중첩되도록 제1 영상(410)으로부터 추출될 수 있다.
복수의 패치들이 추출되면, 제1 특징 맵(420)으로부터 복수의 패치들 각각에 대응하는 특징 정보를 추출할 수 있다. 예를 들어, 제1 영상(410)에서 추출된 제1 패치(411)의 영역과 대응되는 제1 특징 맵(420)의 영역으로부터 제1 패치에 대응하는 제1 특징 정보(421)를 추출할 수 있다. 다만, 이에 한정되지 않는다. 추출된 복수의 패치들 및 복수의 패치들에 대응하는 특징 정보들을 이용하여, 일 실시예에 따른 딕셔너리가 생성될 수 있다.
도 5를 참조하면, 제1 영상에서 m개의 패치들(510)이 추출되는 경우, 제1 특징 맵으로부터, m개의 패치들 각각에 대응하는, m개의 특징 정보들(520)이 추출될 수 있다. 이때, m개의 특징 정보들(520)은, 클러스터링될 수 있다. 예를 들어, m개의 패치들(510) 사이의 유사도 및 m개의 특징 정보들(520) 사이의 유사도에 기초하여, m개의 특징 정보들(520)을 클러스터링 할 수 있다. 이때, 패치와 패치에 대응하는 특징 정보를 결합(concatenation)하여, 하나의 벡터로 생성하고, 이와 같이 생성된 벡터들은, 벡터들 사이의 유클리드 거리(Euclidean distance)에 기초하여, 클러스터링될 수 있다. 다만, 클러스터링 방법이 이에 한정되는 것은 아니며 다양한 방법을 통해 특징 정보들이 클러스터링 될 수 있다.
도 5를 참조하면, 제1 패치(511)에 대응하는 제1 특징 정보(521), 제2 패치(512)에 대응하는 제2 특징 정보(522) 및 제3 패치(513)에 대응하는 제3 특징 정보(523)는 동일한 클러스터(제1 클러스터(Cluster 1))로 클러스터링될 수 있다.
또한, 하나의 클러스터는 하나의 대표 특징 정보를 가질 수 있다. 예를 들어, 제1 클러스터(Cluster 1)에 포함되는 제1 특징 정보(521), 제2 특징 정보(522) 및 제3 특징 정보(523)에 기초하여, 제1 클러스터(Cluster 1)에 대응하는 제1 대표 특징 정보(531)를 획득할 수 있다. 예를 들어, 제1 특징 정보(521), 제2 특징 정보(522) 및 제3 특징 정보(523)의 가중 합으로 제1 대표 특징 정보(531)를 획득할 수 있으나, 이에 한정되지 않는다.
복수의 패치들 및 복수의 패치들 각각에 대응하는 특징 정보들은, k개의 클러스터로 클러스터링될 수 있으며, k개의 대표 특징 정보들이 획득될 수 있다. 따라서, 복수의 패치들은 k개의 대표 특징 정보들 중 어느 하나로 매핑될 수 있으며, 일 실시예에 따른 딕셔너리(30)는 복수의 패치들과 k개의 대표 특징 정보들의 매핑 정보를 포함할 수 있다.
도 6은 일 실시예에 따른 영상 처리 장치가 입력 패치에 대응하는 특징 정보를 추출하는 방법을 설명하기 위해 참조되는 도면이다.
도 6을 참조하면, 영상 처리 장치(100)는 입력 패치들 각각에 대한 해쉬 값을 결정할 수 있다. 영상 처리 장치(100)는 입력 패치에 포함되는 픽셀 값들에 기초하여, 해쉬 값을 계산할 수 있다. 예를 들어, 입력 패치가 5 x 5 크기이고, 중심 픽셀의 좌표가 (2, 2)인 경우, 중심 픽셀을 기준으로 중심 픽셀과 동일한 수직선(vertical) 상에 위치한 픽셀들(예를 들어, 좌표가 (2, 1), (2, 2), (2, 3), (2, 4), (2, 5)인 픽셀들) 및 중심 픽셀을 기준으로 중심 픽셀과 동일한 수평선(horizontal) 상에 위치한 픽셀들(예를 들어, 좌표가 (1, 2), (2, 2), (3, 2), (4, 2), (5, 2)인 픽셀들)의 값을 이용하여, 해쉬 값을 계산할 수 있다. 다만, 이에 한정되지 않는다.
입력 패치의 해쉬 값이 결정되면, 딕셔너리에 포함된 복수의 패치들 중 입력 패치와 동일한 해쉬 값을 가지는 패치를 결정하고, 결정된 패치 값에 대응하는 대표 특징 정보를 입력 패치의 특징 정보로 추출할 수 있다.
예를 들어, 제1 입력 패치(610)의 해쉬 값이 제1 해쉬 값으로 결정되고, 딕셔너리에 포함된 복수의 패치들 중 제1 패치(620)의 해쉬 값이 제1 해쉬 값인 경우, 제1 입력 패치(610)에 대응하는 특징 정보를, 딕셔너리(30)에서 제1 패치(620)에 매핑되는 제1 대표 특징 정보(630)로 결정할 수 있다.
영상 처리 장치(100)는 동일한 방식으로, 딕셔너리를 이용하여, 입력 영상으로부터 추출된 복수의 입력 패치들(20) 각각에 대응하는 특징 정보들(40)을 추출할 수 있다. 추출된 복수의 특징 정보들(40)은, 도 1의 컨볼루션 레이어(50)로 입력될 수 있으며, 컨볼루션 레이어(50)에 포함된 필터 커널과 입력된 특징 정보들의 컨볼루션 연산을 수행하여, 최종 영상을 획득할 수 있다. 이때, 컨볼루션 레이어(50)에 포함된 필터 커널은 도 2의 훈련이 완료된 DNN(200)의 n번째 컨볼루션 레이어(250)에 포함된 필터 커널과 동일할 수 있다.
도 7은 DNN을 이용한 영상 처리와 일 실시예에 따른 딕셔너리 및 필터 커널을 이용한 영상 처리를 비교하기 위한 도면이다.
도 7을 참조하면, 훈련이 완료된 DNN(200)에 제1 영상(710)을 입력하면, 제1 영상(710)은 n개의 컨볼루션 레이어들을 통과하여, 제2 영상(720)으로 출력될 수 있다. 이때, 제2 영상(720)은 제1 영상(710)을 기 설정된 목적에 따라 영상 처리된 영상일 수 있다. DNN(200)을 이용하여, 제2 영상(720)을 생성하는 경우, 필요한 연산량 및 메모리가 매우 크다. 또한, DNN(200)을 구현하기 위한 구현 복잡도도 증가할 수 있다.
반면에, 도 1 내지 도 6에서 설명한 바와 같이, DNN(200)의 n-1번째 레이어(240)에서 출력되는 특징 정보에 기초하여, 딕셔너리(30)를 생성하고, 딕셔너리(30)에 기초하여, 복수의 패치들 각각에 대한 특징 정보를 추출하고, 추출된 특징 정보를 컨볼루션 레이어(50)에 포함된 필터 커널과의 컨볼루션 연산을 수행함으로써, 제3 영상(730)을 생성할 수 있다. 이때, 제3 영상(730)은 제2 영상(720)과 유사하며, 컨볼루션 레이어(50)에 포함된 필터 커널은 도 2의 훈련이 완료된 DNN(200)의 n번째 컨볼루션 레이어(250)에 포함된 필터 커널과 동일할 수 있다.
또한, 딕셔너리(30)를 이용하여, 복수의 패치들 각각에 대한 특징 정보를 추출하는 경우, DNN(200)의 제1 내지 제n-1 컨볼루션 레이어들을 통과하면서, 컨볼루션 연산을 수행하는 것보다 필요한 연산량 및 메모리가 감소될 수 있다.
따라서, 훈련이 완료된 DNN(200)을 이용하여 획득한 딕셔너리 및 DNN(200)의 n번째 컨볼루션 레이어(50)의 필터 커널을 이용하여, 제1 영상(710)으로부터 제3 영상(730)을 획득하는데 필요한 연산량은, DNN(200)을 이용하여, 제1 영상(710)으로부터 제2 영상(720)을 획득하는데 필요한 연산량보다 1/n로 감소할 수 있다.
도 8은 일 실시예에 따른 영상 처리 장치의 동작방법을 나타내는 흐름도이다.
도 8을 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 입력 영상에 기초하여, 하나 이상의 입력 패치들을 추출할 수 있다(S810).
영상 처리 장치(100)는 입력 영상으로부터, 동일한 크기를 가지는 복수의 입력 패치들을 추출할 수 있으며, 복수의 입력 패치들이 서로 중첩되지 않도록 복수의 입력 패치들을 추출하거나, 복수의 입력 패치들이 일부 영역에서 중첩되도록 입력 영상으로부터 복수의 입력 패치들을 추출할 수 있다.
영상 처리 장치(100)는 복수의 패치들과 복수의 패치들 각각에 대응하는 특징 정보 사이의 매핑 정보를 포함하는 딕셔너리에 기초하여, 하나 이상의 입력 패치들 각각에 대응하는 특징 정보를 추출할 수 있다(S820).
일 실시예에 따른 딕셔너리는, 도 4 및 도 5 에서 설명한 바와 같이, n개의 컨볼루션 레이어들을 포함하는 훈련이 완료된 DNN을 이용하여, 생성될 수 있다. 예를 들어, DNN에 입력된 영상과 DNN의 n-1번째 컨볼루션 레이어에서 출력된 특징 정보(특징 맵)에 기초하여, 복수의 패치들 및 복수의 패치들에 대응하는 특징 정보들이 추출될 수 있다. 또한, 복수의 패치들에 대응하는 특징 정보들은 유사도에 기초하여, k개의 클러스터들로 클러스터링될 수 있다. 이때, k개의 클러스터들 각각은 대표 특징 정보를 가지며, 이에 따라, 복수의 패치들은 k개의 대표 특징 정보들 중 어느 하나에 매핑될 수 있으며, 일 실시예에 따른 딕셔너리는 복수의 패치들과 k개의 대표 특징 정보들의 매핑 정보를 포함할 수 있다.
영상 처리 장치(100)는 입력 패치에 대한 해쉬 값을 결정하고, 딕셔너리에 포함된 복수의 패치들 중 입력 패치와 동일한 해쉬 값을 가지는 패치를 결정하고, 결정된 패치에 매핑된 대표 특징 정보를 입력 패치의 특징 정보로 추출할 수 있다. 영상 처리 장치(100)는 동일한 방식으로, 딕셔너리를 이용하여, 입력 영상으로부터 추출된 복수의 입력 패치들 각각에 대응하는 특징 정보들을 추출할 수 있다.
영상 처리 장치(100)는 추출된 특징 정보들과 필터 커널과의 컨볼루션 연산을 수행함으로써, 최종 영상을 획득할 수 있다(S830).
예를 들어, 추출된 특징 정보들은, 컨볼루션 레이어로 입력될 수 있으며, 영상 처리 장치(100)는 입력된 특징 정보들과, 컨볼루션 레이어에 포함된 필터 커널과의 컨볼루션 연산을 수행함으로써, 최종 영상을 획득할 수 있다. 이때, 컨볼루션 레이어에 포함된 필터 커널은 훈련이 완료된 DNN의 n번째 컨볼루션 레이어에 포함된 필터 커널과 동일할 수 있다.
도 9는 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.
도 9를 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 프로세서(120) 및 메모리(130)를 포함할 수 있다.
일 실시예에 따른 프로세서(120)는 영상 처리 장치(100)를 전반적으로 제어할 수 있다. 일 실시예에 따른 프로세서(120)는 메모리(130)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다.
일 실시예에 따른 메모리(130)는 영상 처리 장치(100)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다. 메모리(130)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(130)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(120)에 의해 실행될 수 있다.
일 실시예에 따른 프로세서(120)는 입력 영상으로부터 동일한 크기를 가지는 복수의 입력 패치들을 추출할 수 있다. 프로세서(120)는 복수의 패치들과 복수의 패치들 각각에 대응하는 특징 정보 사이의 매핑 정보를 포함하는 딕셔너리에 기초하여, 복수의 패치들 각각에 대응하는 특징 정보를 추출할 수 있다. 딕셔너리를 생성하는 방법에 대해서는, 앞에서 자세히 설명하였으므로 동일한 설명은 생략하기로 한다.
프로세서(120)는 입력 패치에 대한 해쉬 값을 결정하고, 딕셔너리에 포함된 복수의 패치들 중 입력 패치와 동일한 해쉬 값을 가지는 패치를 결정하고, 결정된 패치에 매핑된 특징 정보(대표 특징 정보)를 입력 패치의 특징 정보로 추출할 수 있다. 프로세서(120)는 동일한 방식으로, 딕셔너리를 이용하여, 입력 영상으로부터 추출된 복수의 입력 패치들 각각에 대응하는 특징 정보들을 추출할 수 있다.
프로세서(120)는 추출된 특징 정보들과 컨볼루션 레이어의 필터 커널과의 컨볼루션 연산을 수행함으로써, 최종 영상을 획득할 수 있다. 이때, 컨볼루션 레이어에 포함된 필터 커널은 훈련이 완료된 DNN의 n번째 컨볼루션 레이어에 포함된 필터 커널과 동일할 수 있다.
프로세서(120)는 딕셔너리와 하나의 컨볼루션 레이어(DNN의 n번째 컨볼루션 레이어)를 이용함으로써, 입력 영상을 영상 처리한 최종 영상을 획득할 수 있으며, 일 실시예에 따른 딕셔너리와 하나의 컨볼루션 레이어를 이용하여, 영상 처리하는데 필요한 연산량은, DNN을 이용하여, 영상 처리하는데 필요한 연산량보다 1/n로 감소할 수 있다.
한편, 도 9에 도시된 영상 처리 장치(100)의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 영상 처리 장치(100)의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.
도 10은 일 실시예에 따른 서버 및 영상 처리 장치를 포함하는 영상 처리 시스템을 나타내는 도면이다.
도 10을 참조하면, 일 실시예에 따른 서버(1000)는 도 2의 DNN(200)을 훈련시키거나, 훈련이 완료된 DNN을 획득할 수 있다. 도 2의 DNN(200)은 복수의 훈련 데이터 세트들에 의해 훈련될 수 있다. 예를 들어, 복수의 훈련 데이터 세트들은, 기 설정된 목적에 따른 영상 처리를 훈련시키기 위한 데이터 세트들일 수 있다. 예를 들어, 기 설정된 목적이, 입력 영상을 고해상도 영상으로 변환하는 것인 경우, 복수의 훈련 데이터 세트들은, 훈련 영상들 및 훈련 영상들 각각을 고해상도 영상으로 변환한 레이블 영상들을 포함할 수 있다. 하나의 훈련 데이터 세트는, 훈련 영상과 훈련 영상에 대응하는 레이블 영상을 포함할 수 있다. 예를 들어, 훈련 영상을 DNN에 입력하여, DNN에서 출력되는 영상과 DNN 에 입력된 훈련 영상에 대응하는 레이블 영상의 차이(손실 정보)가 작아지도록 DNN에 포함되는 하나 이상의 필터 커널들의 가중치 값이 조정될 수 있다. 이와 같이, 복수의 훈련 데이터 세트들을 이용하여, DNN 을 훈련시킴으로써, DNN에 포함되는 필터 커널들의 가중치 값이 결정될 수 있다.
일 실시예에 따른 서버(1000)는 훈련이 완료된 DNN을 이용하여, 딕셔너리를 생성할 수 있다. 예를 들어, 서버(1000)는 DNN에 입력되는 제1 영상과 DNN의 n-1번째 컨볼루션 레이어에서 출력된 특징 맵을 이용하여, 딕셔너리를 생성할 수 있다.
예를 들어, 서버(1000)는 제1 영상에서 복수의 패치들을 추출할 수 있다. 이때, 복수의 패치들은 동일한 크기를 가질 수 있으며, 서로 중첩되지 않도록 제1 영상으로부터 추출되거나, 일부 영역에서 중첩되도록 제1 영상으로부터 추출될 수 있다. 서버(1000)는 복수의 패치들이 추출되면, 제1 특징 맵으로부터 복수의 패치들 각각에 대응하는 특징 정보를 추출할 수 있다. 예를 들어, 제1 영상에서 추출된 제1 패치의 영역에 대응되는 제1 특징 맵의 영역으로부터 제1 패치에 대응하는 제1 특징 정보를 추출할 수 있다. 다만, 이에 한정되지 않는다. 서버(1000)는 추출된 복수의 패치들 및 복수의 패치들에 대응하는 특징 정보들을 이용하여, 딕셔너리를 생성할 수 있다. 예를 들어, 서버(1000)는 m개의 패치들 및 m개의 패치들 각각에 대응하는 m개의 특징 정보를 추출하고, m개의 특징 정보를 클러스터링할 수 있다. 이때, m개의 패치들 사이의 유사도 및 m개의 특징 정보들 사이의 유사도에 기초하여, m개의 특징 정보들을 k개의 클러스터로 클러스터링할 수 있다. k개의 클러스터들 각각은 대표 특징 정보를 가질 수 있으며, 복수의 패치들은 k개의 대표 특징 정보들 중 어느 하나로 매핑될 수 있다. 이에 따라, 서버(1000)는 복수의 패치들과 k개의 대표 특징 정보들의 매핑 정보를 포함하는 딕셔너리를 생성할 수 있다.
서버(1000)는 생성된 딕셔너리 및 훈련이 완료된 DNN의n번째 컨볼루션 레이어에 포함된 필터 커널의 값들을 메모리에 저장하고, 영상 처리 장치(100)로 전송할 수 있다.
일 실시예에 따른 영상 처리 장치(100)는 딕셔너리 및 훈련이 완료된 DNN의n번째 컨볼루션 레이어에 포함된 필터 커널을 이용하여, 입력 영상에 대한 영상 처리를 수행할 수 있다. 이에 대해서는, 도 1 내지 도 9에서 자세히 설명하였으므로, 동일한 설명은 생략하기로 한다.
일 실시예에 따른 영상 처리 장치의 동작방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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. 영상 처리 장치에 있어서,
    하나 이상의 인스트럭션들을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고,
    상기 프로세서는, 입력 영상에 기초하여, 하나 이상의 입력 패치들을 추출하고,
    복수의 패치들과 상기 복수의 패치들 각각에 대응하는 특징 정보 사이의 매핑 정보를 포함하는 딕셔너리에 기초하여, 상기 하나 이상의 입력 패치들 각각에 대응하는 특징 정보를 추출하고, 상기 추출된 특징 정보와 필터 커널의 컨볼루션 연산을 수행함으로써, 상기 입력 영상을 기 설정된 목적에 따라 영상 처리한, 최종 영상을 획득하는, 영상 처리 장치.
  2. 제1항에 있어서,
    상기 딕셔너리는,
    n개의 컨볼루션 레이어들을 포함하고, 제1 영상을 상기 기 설정된 목적에 따라 영상 처리하여, 제2 영상을 출력하도록 훈련된 딥 뉴럴 네트워크(DNN)의 n-1 번째 컨볼루션 레이어로부터 출력되는 특징 정보에 기초하여, 생성되고,
    상기 필터 커널은, 상기 DNN의 n번째 컨볼루션 레이어에 포함되는 필터 커널에 기초하는, 영상 처리 장치.
  3. 제2항에 있어서,
    상기 복수의 패치들은, 상기 훈련된 DNN에 입력되는 영상으로부터 추출되고,
    상기 복수의 패치들 각각에 대응하는 특징 정보는, 상기 복수의 패치들에 대응하여, 상기 n-1 번째 컨볼루션 레이어로부터 출력되는 특징 정보에 기초하여, 획득되는, 영상 처리 장치.
  4. 제3항에 있어서,
    상기 복수의 패치들 사이의 유사도 및 상기 복수의 패치들 각각에 대응하여, 상기 n-1번째 컨볼루션 레이어로부터 출력된 특징 정보들 사이의 유사도에 기초하여, 상기 n-1번째 컨볼루션 레이어로부터 출력된 특징 정보들이 클러스터링되는, 영상 처리 장치.
  5. 제4항에 있어서,
    상기 복수의 패치들 중 제1 패치에 대응하여, 상기 n-1번째 컨볼루션 레이어로부터 출력된 제1 특징 정보 및 제2 패치에 대응하여, 상기 n-1번째 컨볼루션 레이어로부터 출력되는 제2 특징 정보는 제1 클러스터로 클러스터링되고,
    상기 제1 클러스터에 대응하는 제1 대표 특징 정보는, 상기 제1 특징 정보 및 제2 특징 정보에 기초하여, 생성되며,
    상기 딕셔너리는, 상기 제1 패치 및 제2 패치가, 상기 제1 대표 특징 정보에 매핑되는 정보를 포함하는, 영상 처리 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 하나 이상의 입력 패치들 중 제1 입력 패치에 대한 제1 해쉬 값을 결정하고, 상기 복수의 패치들 중 상기 제1 해쉬 값을 가지는 제1 패치를 결정하며, 상기 딕셔너리에 기초하여, 상기 제1 패치에 대응하는 제1 특징 정보를 추출하고, 추출된 제1 특징 정보를 상기 제1 입력 패치에 대응하는 특징 정보로 결정하는, 영상 처리 장치.
  7. 제6항에 있어서,
    상기 제1 해쉬 값은, 상기 제1 입력 패치에 포함되는 픽셀들 중 일부 픽셀들에 대한 값들에 기초하여 결정되는 값이며, 상기 일부 픽셀들은, 기 설정된 패턴을 형성하는, 영상 처리 장치.
  8. 영상 처리 장치의 동작방법에 있어서,
    입력 영상에 기초하여, 하나 이상의 입력 패치들을 추출하는 단계;
    복수의 패치들과 상기 복수의 패치들 각각에 대응하는 특징 정보 사이의 매핑 정보를 포함하는 딕셔너리에 기초하여, 상기 하나 이상의 입력 패치들 각각에 대응하는 특징 정보를 추출하는 단계; 및
    상기 추출된 특징 정보와 필터 커널의 컨볼루션 연산을 수행함으로써, 상기 입력 영상을 기 설정된 목적에 따라 영상 처리한, 최종 영상을 획득하는 단계를 포함하는, 영상 처리 장치의 동작방법.
  9. 제8항에 있어서,
    상기 딕셔너리는,
    n개의 컨볼루션 레이어들을 포함하고, 제1 영상을 상기 기 설정된 목적에 따라 영상 처리하여, 제2 영상을 출력하도록 훈련된 딥 뉴럴 네트워크(DNN)의 n-1 번째 컨볼루션 레이어로부터 출력되는 특징 정보에 기초하여, 생성되고,
    상기 필터 커널은, 상기 DNN의 n번째 컨볼루션 레이어에 포함되는 필터 커널에 기초하는, 영상 처리 장치의 동작방법.
  10. 제9항에 있어서,
    상기 복수의 패치들은, 상기 훈련된 DNN에 입력되는 영상으로부터 추출되고,
    상기 복수의 패치들 각각에 대응하는 특징 정보는, 상기 복수의 패치들에 대응하여, 상기 n-1 번째 컨볼루션 레이어로부터 출력되는 특징 정보에 기초하여, 획득되는, 영상 처리 장치의 동작방법.
  11. 제10항에 있어서,
    상기 복수의 패치들 사이의 유사도 및 상기 복수의 패치들 각각에 대응하여, 상기 n-1번째 컨볼루션 레이어로부터 출력된 특징 정보들 사이의 유사도에 기초하여, 상기 n-1번째 컨볼루션 레이어로부터 출력된 특징 정보들이 클러스터링되는, 영상 처리 장치의 동작방법.
  12. 제11항에 있어서,
    상기 복수의 패치들 중 제1 패치에 대응하여, 상기 n-1번째 컨볼루션 레이어로부터 출력된 제1 특징 정보 및 제2 패치에 대응하여, 상기 n-1번째 컨볼루션 레이어로부터 출력되는 제2 특징 정보는 제1 클러스터로 클러스터링되고,
    상기 제1 클러스터에 대응하는 제1 대표 특징 정보는, 상기 제1 특징 정보 및 제2 특징 정보에 기초하여, 생성되며,
    상기 딕셔너리는, 상기 제1 패치 및 제2 패치가, 상기 제1 대표 특징 정보에 매핑되는 정보를 포함하는, 영상 처리 장치의 동작방법.
  13. 제8항에 있어서,
    상기 하나 이상의 입력 패치들 각각에 대응하는 특징 정보를 추출하는 단계는,
    상기 하나 이상의 입력 패치들 중 제1 입력 패치에 대한 제1 해쉬 값을 결정하는 단계;
    상기 복수의 패치들 중 상기 제1 해쉬 값을 가지는 제1 패치를 결정하는 단계; 및
    상기 딕셔너리에 기초하여, 상기 제1 패치에 대응하는 제1 특징 정보를 추출하고, 추출된 제1 특징 정보를 상기 제1 입력 패치에 대응하는 특징 정보로 결정하는 단계를 포함하는, 영상 처리 장치의 동작방법.
  14. 제13항에 있어서,
    상기 제1 해쉬 값을 결정하는 단계는,
    상기 제1 입력 패치에 포함되는 픽셀들 중 일부 픽셀들에 대한 값들에 기초하여 상기 제1 해쉬 값을 결정하는 단계를 포함하고,
    상기 일부 픽셀들은, 기 설정된 패턴을 형성하는, 영상 처리 장치의 동작방법.
  15. 제8항의 방법을 수행하도록 하는 프로그램이 저장된 하나 이상의 컴퓨터로 읽을 수 있는 기록매체를 포함하는 컴퓨터 프로그램 제품.
PCT/KR2020/004561 2019-05-14 2020-04-03 영상 처리 장치 및 그 동작방법 WO2020231005A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP20806144.0A EP3855388A4 (en) 2019-05-14 2020-04-03 IMAGE PROCESSING DEVICE AND ITS OPERATING PROCESS
US17/525,620 US11954755B2 (en) 2019-05-14 2021-11-12 Image processing device and operation method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0056553 2019-05-14
KR1020190056553A KR102236582B1 (ko) 2019-05-14 2019-05-14 영상 처리 장치 및 그 동작방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/525,620 Continuation US11954755B2 (en) 2019-05-14 2021-11-12 Image processing device and operation method thereof

Publications (1)

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

Family

ID=73290277

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US11954755B2 (ko)
EP (1) EP3855388A4 (ko)
KR (1) KR102236582B1 (ko)
WO (1) WO2020231005A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023015654A (ja) * 2021-07-20 2023-02-01 シリコンスタジオ株式会社 画像処理システム、方法、及びプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11972348B2 (en) * 2020-10-30 2024-04-30 Apple Inc. Texture unit circuit in neural network processor
CN117372911A (zh) * 2022-06-28 2024-01-09 北京三星通信技术研究有限公司 图像处理方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120088350A (ko) * 2011-01-31 2012-08-08 한국전자통신연구원 고해상도 영상 생성 장치
US20130170767A1 (en) * 2012-01-04 2013-07-04 Anustup Kumar CHOUDHURY Image content enhancement using a dictionary technique
KR20130112501A (ko) * 2012-04-04 2013-10-14 엘지디스플레이 주식회사 표시장치의 영상품질 향상 방법 및 그 장치
KR20150129897A (ko) * 2014-05-12 2015-11-23 주식회사 칩스앤미디어 이미지 패치를 이용한 해상도 스케일링 장치 및 그 방법
KR20160143505A (ko) * 2015-06-04 2016-12-14 삼성전자주식회사 신경망의 연산량을 줄이는 방법 및 시스템

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016132152A1 (en) * 2015-02-19 2016-08-25 Magic Pony Technology Limited Interpolating visual data
US10832123B2 (en) 2016-08-12 2020-11-10 Xilinx Technology Beijing Limited Compression of deep neural networks with proper use of mask
US10762426B2 (en) 2016-08-12 2020-09-01 Beijing Deephi Intelligent Technology Co., Ltd. Multi-iteration compression for deep neural networks
US10984308B2 (en) 2016-08-12 2021-04-20 Xilinx Technology Beijing Limited Compression method for deep neural networks with load balance
US10593033B2 (en) * 2017-06-27 2020-03-17 Nec Corporation Reconstructor and contrastor for medical anomaly detection
WO2019051356A1 (en) * 2017-09-08 2019-03-14 The General Hospital Corporation SYSTEM AND METHOD FOR AUTOMATICALLY LABELING AND ANNOUNTING NON-STRUCTURED MEDICAL DATA SETS

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120088350A (ko) * 2011-01-31 2012-08-08 한국전자통신연구원 고해상도 영상 생성 장치
US20130170767A1 (en) * 2012-01-04 2013-07-04 Anustup Kumar CHOUDHURY Image content enhancement using a dictionary technique
KR20130112501A (ko) * 2012-04-04 2013-10-14 엘지디스플레이 주식회사 표시장치의 영상품질 향상 방법 및 그 장치
KR20150129897A (ko) * 2014-05-12 2015-11-23 주식회사 칩스앤미디어 이미지 패치를 이용한 해상도 스케일링 장치 및 그 방법
KR20160143505A (ko) * 2015-06-04 2016-12-14 삼성전자주식회사 신경망의 연산량을 줄이는 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023015654A (ja) * 2021-07-20 2023-02-01 シリコンスタジオ株式会社 画像処理システム、方法、及びプログラム
JP7325775B2 (ja) 2021-07-20 2023-08-15 シリコンスタジオ株式会社 画像処理システム、方法、及びプログラム

Also Published As

Publication number Publication date
US11954755B2 (en) 2024-04-09
US20220076062A1 (en) 2022-03-10
EP3855388A4 (en) 2022-01-05
EP3855388A1 (en) 2021-07-28
KR20200131663A (ko) 2020-11-24
KR102236582B1 (ko) 2021-04-06

Similar Documents

Publication Publication Date Title
WO2020231005A1 (ko) 영상 처리 장치 및 그 동작방법
US10846567B2 (en) Scene understanding using a neurosynaptic system
WO2022089256A1 (zh) 联邦神经网络模型的训练方法、装置、设备、计算机程序产品及计算机可读存储介质
US9195903B2 (en) Extracting salient features from video using a neurosynaptic system
WO2017164478A1 (ko) 미세 얼굴 다이나믹의 딥 러닝 분석을 통한 미세 표정 인식 방법 및 장치
US20210295168A1 (en) Gradient compression for distributed training
WO2020116768A1 (ko) 영상 처리 장치 및 그 동작방법
US10726206B2 (en) Visual reference resolution using attention memory for visual dialog
EP3963516A1 (en) Teaching gan (generative adversarial networks) to generate per-pixel annotation
US20180129930A1 (en) Learning method based on deep learning model having non-consecutive stochastic neuron and knowledge transfer, and system thereof
CN113469355B (zh) 分布式系统中的多模型训练管道
WO2020231035A1 (en) Image processing apparatus and operating method of the same
WO2018212584A2 (ko) 딥 뉴럴 네트워크를 이용하여 문장이 속하는 클래스를 분류하는 방법 및 장치
CN114330565A (zh) 一种人脸识别方法及装置
CN114925320B (zh) 一种数据处理方法及相关装置
WO2020055181A1 (ko) 영상 처리 장치 및 그 동작방법
WO2024014819A1 (en) Multimodal disentanglement for generating virtual human avatars
CN117094362A (zh) 一种任务处理方法及相关装置
WO2023210914A1 (en) Method for knowledge distillation and model generation
WO2019198900A1 (en) Electronic apparatus and control method thereof
Nicolau et al. On Image Compression for Mobile Robots Using Feed-Forward Neural Networks
WO2020231006A1 (ko) 영상 처리 장치 및 그 동작방법
WO2021177500A1 (ko) 자기수렴 생성망 학습 방법 및 시스템
Wang et al. Face detection technology research based on AdaBoost algorithm and haar features
WO2022186498A1 (ko) 영상 처리 장치 및 그 동작방법

Legal Events

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

Ref document number: 20806144

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020806144

Country of ref document: EP

Effective date: 20210421

NENP Non-entry into the national phase

Ref country code: DE