KR20210141304A - Image processing apparatus and operating method for the same - Google Patents
Image processing apparatus and operating method for the same Download PDFInfo
- Publication number
- KR20210141304A KR20210141304A KR1020200159100A KR20200159100A KR20210141304A KR 20210141304 A KR20210141304 A KR 20210141304A KR 1020200159100 A KR1020200159100 A KR 1020200159100A KR 20200159100 A KR20200159100 A KR 20200159100A KR 20210141304 A KR20210141304 A KR 20210141304A
- Authority
- KR
- South Korea
- Prior art keywords
- image
- pieces
- blocks
- processing apparatus
- size
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 62
- 238000011017 operating method Methods 0.000 title claims description 5
- 238000007906 compression Methods 0.000 claims abstract description 23
- 230000006835 compression Effects 0.000 claims abstract description 23
- 238000013528 artificial neural network Methods 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 11
- 238000005070 sampling Methods 0.000 description 92
- 238000010586 diagram Methods 0.000 description 23
- 230000015572 biosynthetic process Effects 0.000 description 12
- 238000000605 extraction Methods 0.000 description 12
- 238000003786 synthesis reaction Methods 0.000 description 12
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 6
- 230000002194 synthesizing effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Processing (AREA)
Abstract
Description
다양한 실시예들은 뉴럴 네트워크를 이용하여, 영상의 아티팩트를 제거하는 영상 처리 장치 및 그 동작방법에 관한 것이다.Various embodiments relate to an image processing apparatus for removing artifacts from an image using a neural network, and an operating method thereof.
컴퓨터 기술의 발달과 함께 데이터 트래픽이 지수함수 형태로 증가하면서 인공지능은 미래 혁신을 주도하는 중요한 트랜드로 자리잡았다. 인공지능은 사람의 사고방식을 모방하는 방식이기 때문에 사실상 전 산업에 무한하게 응용이 가능하다. 인공지능의 대표적인 기술로는 패턴 인식, 기계 학습, 전문가 시스템, 뉴럴 네트워크, 자연어 처리 등이 있다.As data traffic increases exponentially with the development of computer technology, artificial intelligence has become an important trend driving future innovation. Since artificial intelligence is a method that imitates human thinking, it can be applied to virtually all industries infinitely. Representative technologies of artificial intelligence include pattern recognition, machine learning, expert systems, neural networks, and natural language processing.
뉴럴 네트워크는 인간의 생물학적 신경 세포의 특성을 수학적 표현에 의해 모델링한 것으로, 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용한다. 이 알고리즘을 통하여, 뉴럴 네트워크는 입력 데이터와 출력 데이터 사이의 사상(mapping)을 생성할 수 있고, 이러한 사상을 생성하는 능력은 뉴럴 네트워크의 학습 능력이라고 표현될 수 있다. 또한, 뉴럴 네트워크는 학습된 결과에 기초하여, 학습에 이용되지 않았던 입력 데이터에 대하여, 올바른 출력 데이터를 생성할 수 있는 일반화 능력을 가진다.A neural network models the characteristics of human biological nerve cells by mathematical expressions, and uses an algorithm that mimics the ability of learning that humans have. Through this algorithm, the neural network can generate a mapping between input data and output data, and the ability to generate this mapping can be expressed as the learning ability of the neural network. In addition, the neural network has a generalization ability to generate correct output data for input data that has not been used for learning, based on the learned result.
기존 컨볼루션 뉴럴 네트워크(CNN: Convolution Neural Network) 에서는, 입력 영상 내에 모든 픽셀에 대하여 동일한 커널을 사용하는 것이 일반적이다. 이에 따라, 기존 컨볼루션 뉴럴 네트워크를 이용하여 영상을 처리하는 경우, 블록 경계에서 나타나는 압축 아티팩트(예를 들어, 블록킹 아티팩트(blocking artifact)나 링잉 아티팩트(rigning artifact))를 효과적으로 제거할 수 없다는 문제점이 있다.In a conventional convolutional neural network (CNN), it is common to use the same kernel for all pixels in an input image. Accordingly, when an image is processed using an existing convolutional neural network, compression artifacts (eg, blocking artifacts or ringing artifacts) appearing at block boundaries cannot be effectively removed. have.
또한, 블록 경계에서 룰(rule)에 따라 서로 다른 필터를 사용하여, 아티팩트를 제거하는 방법은, 컨볼루션 뉴럴 네트워크를 이용한 구현이 어려우며, 병렬 처리에 적합하지 않은 문제점이 있다.In addition, a method of removing artifacts by using different filters according to rules at the block boundary is difficult to implement using a convolutional neural network, and is not suitable for parallel processing.
다양한 실시예들은, 컨볼루션 뉴럴 네트워크를 이용하여, 압축 아티팩트를 효과적으로 감소시킬 수 있는 영상 처리 장치 및 그 동작방법을 제공할 수 있다.Various embodiments may provide an image processing apparatus capable of effectively reducing compression artifacts using a convolutional neural network and an operating method thereof.
일 실시예에 따른 영상 처리 장치는 하나 이상의 인스트럭션들을 저장하는 메모리, 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 상기 프로세서는, 하나 이상의 뉴럴 네트워크를 이용하여, 제1 영상에 포함되는 픽셀들의 위치에 기초하여, 상기 제1 영상으로부터 n개의 제1 특징 정보들을 추출하고, 상기 n개의 제1 특징 정보들 각각과 n개의 커널들 각각과의 컨볼루션 연산을 수행함으로써, n개의 제2 특징 정보들을 생성하며, 상기 n개의 제2 특징 정보들에 기초하여, 제2 영상을 생성하고, 상기 제2 영상은 상기 제1 영상에 포함되는 압축 아티팩트가 제거된 영상일 수 있다.An image processing apparatus according to an embodiment 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 uses one or more neural networks to generate a first image. Based on the positions of the included pixels, n pieces of first feature information are extracted from the first image, and a convolution operation is performed between each of the n pieces of first feature information and each of the n kernels. Second feature information may be generated, and a second image may be generated based on the n pieces of second feature information, and the second image may be an image from which compression artifacts included in the first image are removed.
일 실시예에 따른 프로세서는, 상기 제1 영상을 기 설정된 크기를 가지는 블록들로 나누고, 상기 블록들 각각에서 동일한 위치를 가지는 픽셀들을 동일한 그룹으로 나누어 상기 n 개의 제1 특징 정보들을 추출할 수 있다.The processor according to an embodiment may divide the first image into blocks having a preset size, and divide pixels having the same position in each of the blocks into the same group to extract the n pieces of first feature information .
일 실시예에 따른 상기 블록들 각각은 상기 n개의 픽셀들을 포함하고, 상기 n은 상기 블록들의 기 설정된 크기에 기초하여 결정될 수 있다.Each of the blocks according to an embodiment may include the n pixels, and n may be determined based on a preset size of the blocks.
일 실시예에 따른 프로세서는, 상기 제2 영상을 상기 기 설정된 크기를 가지는 블록들로 나누고, 상기 제2 특징 정보들 중 하나의 제2 특징 정보에 포함되는 픽셀 값들을 상기 블록들 각각에서 동일한 위치의 픽셀 값들로 결정할 수 있다.The processor according to an embodiment divides the second image into blocks having the preset size, and places pixel values included in one second characteristic information among the second characteristic information at the same location in each of the blocks. It can be determined by the pixel values of .
일 실시예에 따른 프로세서는, 스트라이드 크기 L을 적용하여, 상기 제1 영상과 제2 커널과의 컨볼루션 연산을 수행함으로써, 상기 n개의 제1 특징 정보들을 추출할 수 있다.The processor according to an embodiment may extract the n pieces of first feature information by performing a convolution operation between the first image and the second kernel by applying a stride size L.
일 실시예에 따른 상기 제1 특징 정보들의 개수 n은 상기 스트라이드 크기 L에 기초하여 결정될 수 있다.The number n of the first characteristic information according to an embodiment may be determined based on the stride size L.
일 실시예에 따른 상기 n개의 커널들은 서로 상이한 커널들일 수 있다.The n kernels according to an embodiment may be different kernels.
일 실시예에 따른 제1 영상과 상기 제2 영상의 크기는 동일할 수 있다.The size of the first image and the second image according to an embodiment may be the same.
일 실시예에 따른 하나 이상의 뉴럴 네트워크를 이용하여, 영상 처리를 수행하는 영상 처리 장치의 동작방법은, 제1 영상에 포함되는 픽셀들의 위치에 기초하여, 상기 제1 영상으로부터 n개의 제1 특징 정보들을 추출하는 단계, 상기 n개의 제1 특징 정보들 각각과 n개의 커널들 각각과의 컨볼루션 연산을 수행함으로써, n개의 제2 특징 정보들을 생성하는 단계, 및 상기 n개의 제2 특징 정보들에 기초하여, 제2 영상을 생성하는 단계를 포함하고, 상기 제2 영상은 상기 제1 영상에 포함되는 압축 아티팩트가 제거된 영상일 수 있다.According to an embodiment, the method of operating an image processing apparatus performing image processing using one or more neural networks includes n pieces of first feature information from a first image based on positions of pixels included in a first image. extracting , generating n pieces of second feature information by performing a convolution operation with each of the n pieces of first feature information and each of the n kernels, and adding to the n pieces of second feature information based on the method, generating a second image, wherein the second image may be an image from which compression artifacts included in the first image are removed.
일 실시예에 따른 영상 처리 장치는, 영상에 포함되는 픽셀들의 블록 내에서의 위치에 기초하여, 유사한 특성을 가지는 픽셀들끼리 그룹핑함으로써, 1차적으로 특징 정보들을 추출하고, 추출된 특징 정보들에 서로 다른 커널을 적용하여 컨볼루션을 수행함으로써, 압축 아티팩트를 효과적으로 제거할 수 있다.An image processing apparatus according to an exemplary embodiment may primarily extract feature information by grouping pixels having similar characteristics based on positions within a block of pixels included in an image, and then add the extracted feature information to the extracted feature information. By performing convolution by applying different kernels, compression artifacts can be effectively removed.
일 실시예 따른 영상 처리 장치는 아티팩트 제거 네트워크를 이용함으로써, 압축 아티팩트를 제거하는 영상 처리를 병렬로 수행할 수 있다.The image processing apparatus according to an embodiment may perform image processing for removing compression artifacts in parallel by using the artifact removal network.
도 1은 일 실시예에 따른 영상 처리 장치가 아티팩트 제거 네트워크를 이용하여 영상을 처리하는 방법을 나타내는 도면이다.
도 2는 일 실시예에 따른 하나의 컨볼루션 레이어를 나타내는 도면이다.
도 3은 일 실시예에 따른 픽셀 샘플링부의 동작을 설명하기 위해 참조되는 도면이다.
도 4는 일 실시예에 따른 픽셀 샘플링 주기의 예시를 나타내는 도면이다.
도 5는 일 실시예에 따른 컨볼루션부의 동작을 설명하기 위해 참조되는 도면이다.
도 6은 일 실시예에 따른 픽셀 합성부의 동작을 설명하기 위해 참조되는 도면이다.
도 7은 다른 실시예에 따른 도 1의 하나의 컨볼루션 레이어를 나타내는 도면이다.
도 8은 도 7의 컨볼루션 레이어에서 수행되는 동작을 설명하기 위해 참조되는 도면이다.
도 9는 일 실시예에 따른 특징 추출부가 컨볼루션 연산을 수행하는 동작을 설명하기 위해 참조되는 도면이다.
도 10은 일 실시예에 따른 영상 처리 장치의 동작방법을 나타내는 흐름도이다.
도 11은 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.1 is a diagram illustrating a method of an image processing apparatus processing an image using an artifact removal network according to an exemplary embodiment.
2 is a diagram illustrating one convolutional layer according to an embodiment.
3 is a reference diagram for describing an operation of a pixel sampling unit according to an exemplary embodiment.
4 is a diagram illustrating an example of a pixel sampling period according to an embodiment.
5 is a diagram referenced to describe an operation of a convolution unit according to an embodiment.
6 is a reference diagram for describing an operation of a pixel combining unit according to an exemplary embodiment.
7 is a diagram illustrating one convolutional layer of FIG. 1 according to another embodiment.
FIG. 8 is a diagram referenced to describe an operation performed in the convolution layer of FIG. 7 .
9 is a diagram referenced to describe an operation of a feature extractor performing a convolution operation according to an embodiment.
10 is a flowchart illustrating a method of operating an image processing apparatus according to an exemplary embodiment.
11 is a block diagram illustrating a configuration of an image processing apparatus according to an exemplary embodiment.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.Terms used in this specification will be briefly described, and the present invention will be described in detail.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in the present invention have been selected as currently widely used general terms as possible while considering the functions in the present invention, but these may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, and the like. In addition, in a specific case, there is a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding invention. Therefore, the term used in the present invention should be defined based on the meaning of the term and the overall content of the present invention, rather than the name of a simple term.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When a part "includes" a certain element throughout the specification, this means that other elements may be further included, rather than excluding other elements, unless otherwise stated. In addition, terms such as "...unit" and "module" described in the specification mean a unit that processes at least one function or operation, which may be implemented as hardware or software, or a combination of hardware and software. .
아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art to which the present invention pertains can easily implement them. However, the present invention may be embodied in many different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.
도 1은 일 실시예에 따른 영상 처리 장치가 아티팩트 제거 네트워크를 이용하여 영상을 처리하는 방법을 나타내는 도면이다.1 is a diagram illustrating a method of an image processing apparatus processing an image using an artifact removal network according to an exemplary embodiment.
도 1을 참조하면, 일 실시예에 따른 아티팩트 제거 네트워크(30)는 입력 영상(10)을 입력 받아, 입력 영상(10)을 처리함으로써, 출력 영상(20)을 생성할 수 있다.Referring to FIG. 1 , an
일 실시예에 따른, 입력 영상(10)은 압축 아티팩트(compression artifact)를 포함할 수 있다. 압축 아티팩트는 영상을 압축하는 과정에서 발생하는 아티팩트로, 블록킹 아티팩트(blocking artifact), 링잉 아티팩트(ringing artifact) 등을 포함할 수 있다. 일반적으로 영상 또는 비디오를 압축하고, 압축 해제하는 과정에서 압축 아티팩트가 발생하게 된다.According to an embodiment, the
영상 또는 비디오 압축은, 영상 또는 비디오에 포함된 픽셀들을, 하나의 블록이 소정 개수의 픽셀들을 포함하도록, 복수의 블록들로 나누어, 블록 단위로 수행될 수 있다. 이에 따라, 압축 아티팩트는 블록의 경계에서 주로 발생하게 되며, 일정한 주기를 가지고 발생하게 된다.The image or video compression may be performed in units of blocks by dividing pixels included in the image or video into a plurality of blocks such that one block includes a predetermined number of pixels. Accordingly, the compression artifact is mainly generated at the boundary of the block, and is generated with a certain period.
일 실시예에 따른 영상 처리 장치(100)는 아티팩트 제거 네트워크(Artifact Removal Network)(30)를 이용하여, 입력 영상(10)을 영상 처리함으로써, 아티팩트가 제거된 출력 영상(20)을 생성할 수 있다. The
일 실시예에 따른 아티팩트 뉴럴 네트워크(30)는 하나 이상의 컨볼루션 레이어들(210, 220, ..., 290)을 포함할 수 있으며, 컨볼루션 레이어들 각각에서는 픽셀 샘플링, 컨볼루션 연산, 픽셀 합성 등이 수행될 수 있다.The artifact
컨볼루션 레이어들 각각에서 수행되는 영상 처리에 대해서는 이하 도면들을 참조하여 자세히 설명하기로 한다.Image processing performed in each of the convolutional layers will be described in detail with reference to the drawings below.
도 2는 일 실시예에 따른 하나의 컨볼루션 레이어를 나타내는 도면이다.2 is a diagram illustrating one convolutional layer according to an embodiment.
도 2를 참조하면, 일 실시예에 따른 하나의 컨볼루션 레이어(200)는 픽셀 샘플링부(300), 컨볼루션부(400), 및 픽셀 합성부(500)를 포함할 수 있다. 하나의 컨볼루션 레이어(200)는 도 1의 제1 내지 제N 컨볼루션 레이어들(210, 220,..., 290) 중 어느 하나일 수 있다. 예를 들어, 제1 내지 제N 컨볼루션 레이어들(210, 220, ..., 290) 각각은 픽셀 샘플링부(300), 컨볼루션부(400), 및 픽셀 합성부(500)를 포함할 수 있다. 일 실시예에 따른 컨볼루션 레이어(200)는 제1 영상(F_in)을 입력 받아, 제2 영상(F_out)을 출력하는 구조를 포함할 수 있으며, 제1 영상(F_in)과 제2 영상(F_out)의 크기는 동일할 수 있으나, 이에 한정되지 않는다.Referring to FIG. 2 , one
이하, 도 3 내지 도 6을 참조하여, 하나의 컨볼루션 레이어에서 수행되는 동작을 구체적으로 설명하기로 한다.Hereinafter, an operation performed in one convolutional layer will be described in detail with reference to FIGS. 3 to 6 .
도 3은 일 실시예에 따른 픽셀 샘플링부의 동작을 설명하기 위해 참조되는 도면이다.3 is a reference diagram for describing an operation of a pixel sampling unit according to an exemplary embodiment.
일 실시예에 따른 픽셀 샘플링부(300)는 제1 영상(F_in)에 포함되는 픽셀들의 위치 정보에 기초하여, 픽셀들을 그룹핑함으로써, n개의 샘플링 특징들을 생성할 수 있다. 이때, 제1 영상은 도 1의 입력 영상(10) 또는 이전 컨볼루션 레이어에서 출력된 특징 정보일 수 있다. 예를 들어, 현재 컨볼루션 레이어(200)가 제1 컨볼루션 레이어(Conv_1)인 경우, 제1 영상은 입력 영상(10)일 수 있으며, 현재 컨볼루션 레이어(200)가 제2 내지 제N 컨볼루션 레이어들(Conv_2,..., Conv_N) 중 하나인 경우, 제1 영상(F_in)은 이전 컨볼루션 레이어에서 출력되는 특징 정보일 수 있다. 또는 이전 컨볼루션 레이어에서 출력된 특징 정보에 소정의 연산이나 처리가 수행된 특징 정보일 수도 있다. 다만, 이에 한정되지 않는다.The
일 실시예에 따른 제1 영상(F_in)은 W x H x Cin의 크기를 가진다. 이때, W는 제1 영상(F_in)의 너비를 나타내고, H는 제1 영상(F_in)의 높이를 나타내며, Cin는 제1 영상(F_in)의 채널 수를 나타낸다.The first image F_in according to an embodiment has a size of W x H x Cin. In this case, W denotes the width of the first image F_in, H denotes the height of the first image F_in, and Cin denotes the number of channels of the first image F_in.
픽셀 샘플링부(300)는 수학식 1과 같이, 제1 영상에 포함된 픽셀들을 너비 방향 및 높이 방향으로 각각 주기 L을 가지고 샘플링 함으로써, 복수의 샘플링 특징들을 생성할 수 있다. 예를 들어, 픽셀 샘플링부(300)는 제1 영상(F_in)을 기 설정된 크기(L x L)의 블록들로 나누고, 블록들 각각에서 동일한 위치를 가지는 픽셀들을 동일한 그룹으로 샘플링할 수 있다.As shown in
[수학식 1][Equation 1]
F_inu,v = F_in[u:L:W-1, v:L:H-1, 0:1:C-1]F_in u,v = F_in[u:L:W-1, v:L:H-1, 0:1:C-1]
수학식 1에서, F_inu,v 는 샘플링 특징을 나타내고, F_in은 제1 영상을 나타낸다. F_in[]는 제1 영상(F_in)을 너비 방향, 높이 방향, 채널 방향으로 픽셀들을 샘플링하는 연산을 나타낸다. u:L:W-1은 제1 영상(F_in)의 너비 방향으로 u 지점에 위치한 픽셀에서 시작하여, W-1지점에 위치한 픽셀까지 L의 주기로 픽셀들을 샘플링하는 것을 의미한다. v:L:H-1은 제1 영상(F_in)의 높이 방향으로 v 지점에 위치한 픽셀에서 시작하여, H-1지점에 위치한 픽셀까지 L의 주기로 픽셀들을 샘플링하는 것을 의미한다. 0:1:C-1은 제1 영상(F_in)의 채널 방향으로 0 지점에 위치한 픽셀부터, C-1 지점에 위치한 픽셀까지 모든 픽셀들을 샘플링하는 것을 의미한다. 즉, 제1 영상(F_in)에 포함된 픽셀들 중 너비 방향의 위치 및 높이 방향의 위치가 동일하고, 서로 다른 채널에 위치한 픽셀들은 동일한 그룹으로 샘플링될 수 있다.In
이하에서는, 제1 영상(F_in)에 포함되는 하나의 채널 영상(제1 채널 영상, 310)이 16 x 16의 크기를 가지며, L=8인 경우를 예로 들어, 복수의 샘플링 특징들을 생성하는 방법을 설명하기로 한다.Hereinafter, a case in which one channel image (first channel image, 310 ) included in the first image F_in has a size of 16×16 and L=8 is taken as an example, and a method of generating a plurality of sampling features to be explained.
제1 영상(F_in)은 8 x 8 크기의 블록들로 분할될 수 있으며, 픽셀 샘플링부(300)는 블록들 각각에서 동일한 위치를 가지는 픽셀들을 하나의 그룹으로 샘플링할 수 있다. 예를 들어, 제1 채널 영상(310)이 8 x 8 크기의 블록들로 분할되면, 제1 채널 영상(310)은 4개의 블록들(제1 내지 제4 블록들(B1, B2, B3, B4))로 분할될 수 있다. 또한, 제1 영상(F_in)의 제1 채널 영상(310)에 포함되는 픽셀들이 위치에 따라, 순서대로 P 0,0,0 부터 P 15,15,0 으로 인덱싱되면, P 0,0,0(P0), P 0,8,0(P1), P 8,0,0(P2), P 8,8,0(P3) 은 제1 블록 내지 제4 블록들 (B1, B2, B3, B4)각각에서, 동일한 위치를 가지게 된다. 픽셀 샘플링부(300)는 P 0,0,0(P0), P 0,8,0(P1), P 8,0,0(P2), P 8,8,0(P3)를 제1 그룹으로 샘플링 할 수 있다. 또한, 채널 방향으로는 샘플링 주기가 1이므로, 제2 내지 제C-1 채널 영상들에 대해서도 제1 채널 영상과 동일하게, 동일한 위치의 픽셀들(P 0,0,1, P 0,8,1, P 8,0,1, P 8,8,1,..., P 0,0,C-1, P 0,8,C-1, P 8,0,C-1, P 8,8,C-1)을 제1 그룹으로 샘플링할 수 있다. 픽셀 샘플링부(300)는 제1 그룹으로 샘플링된 픽셀들에 기초하여, 제1 샘플링 특징(F_in0,0)이 생성할 수 있으며, 제1 샘플링 특징(F_in0,0)은 2 X 2 X C의 크기를 가진다.The first image F_in may be divided into blocks having a size of 8×8, and the
또한, 픽셀 샘플링부(300)는 동일한 방식으로 제1 채널 영상(310)에서, 제1 내지 제4 블록들(B1, B2, B3, B4) 각각에서 동일한 위치를 가지는 P 1,0,0(P4), P 9,0,0(P5), P 1,8,0(P6), P 9,8,0(P7)을 제2 그룹으로 샘플링하고, 제2 내지 제 C-1 채널 영상들에 대해서도 제1 채널 영상(310)과 동일하게, 동일한 위치의 픽셀들(P 1,0,1, P 9,0,1, P 1,8,1, P 9,8,1,..., P 1,0,C-1, P 9,0,C-1, P 1,8,C-1, P 9,8,C-1)을 제2 그룹으로 샘플링할 수 있다. 픽셀 샘플링부(300)는 제2 그룹으로 샘플링된 픽셀들에 기초하여, 제2 샘플링 특징(F_in1,0)을 생성할 수 있으며, 제2 샘플링 특징(F_in1,0)은 2 X 2 X C의 크기를 가진다.Also, in the
또한, 픽셀 샘플링부(300)는 동일한 방식으로 제1 채널 영상(310)에서, 제1 내지 제4 블록들 (B1, B2, B3, B4) 각각에서, 동일한 위치를 가지는 P 7,7,0(P8), P 7,15,0(P9), P 15,7,0(P10), P 15,15,0(P11) 를 제64 그룹으로 샘플링하고, 제2 내지 제 C-1 채널 영상들에 대해서도 제1 채널 영상(310)과 동일하게, 동일한 위치의 픽셀들(P 7,7,1, P 7,15,1, P 15,7,1, P 15,15,1,..., P 7,7,C-1, P 7,15,C-1, P 15,7,C-1, P 15,15,C-1)을 제 64 그룹으로 샘플링할 수 있다. 픽셀 샘플링부(300)는 제64그룹으로 샘플링된 픽셀들에 기초하여, 제64 샘플링 특징을 생성할 수 있으며, 제64 샘플링 특징(F_in7,7)은 2 X 2 X C의 크기를 가진다.In addition, in the
상기에서는 설명의 편의를 위해, W=H=16이고, L=8인 것을 예로 들어 설명하였으나, 이에 한정되지 않는다. 상기에서 설명한 방법으로 샘플링을 수행하면, 픽셀 샘플링부(300)는 L x L 개의 샘플링 특징들(F_in0,0, F_in1,0,...,F_inL-1,L-1))을 생성할 수 있으며, 샘플링 특징들 각각은 WF x HF x Cin의 크기를 가질 수 있다. 이때, WF 는 제1 영상의 너비(W)와 너비 방향으로의 샘플링 주기 L에 기초하여 결정될 수 있으며, HF 는 제1 영상의 높이(H)와 높이 방향으로의 샘플링 주기 L에 기초하여 결정될 수 있다.In the above description, for convenience of description, W=H=16 and L=8 have been described as examples, but the present invention is not limited thereto. When sampling is performed by the method described above, the
도 4는 일 실시예에 따른 픽셀 샘플링 주기의 예시를 나타내는 도면이다.4 is a diagram illustrating an example of a pixel sampling period according to an embodiment.
도 4는 일 실시예에 따른 제1 영상(F_in)에 포함되는 8 x 8 크기의 블록을 나타낸다.4 illustrates an 8×8 block included in the first image F_in according to an exemplary embodiment.
도 4를 참조하면, 일 실시예에 따른 픽셀 샘플링부(300)는 너비 방향으로 Lw=4, 높이 방향으로 Lh=4의 주기로 제1 영상(F_in)을 샘플링하여, 4 x 4 개의 샘플링 특징들(F_in0,0, F_in1,0,..., F_in3,3)을 생성할 수 있으며, 샘플링 특징들(F_in0,0, F_in1,0,..., F_in3,3) 각각은 W/4 x H/4 x Cin의 크기를 가질 수 있다.Referring to FIG. 4 , the
또한, 픽셀 샘플링부(300)는 너비 방향으로 Lw=4, 높이 방향으로 Lh=1의 주기로 제1 영상(F_in)을 샘플링하여, 4 x 1개의 샘플링 특징들(F_in0,0, F_in1,0,..., F_in3,0)을 생성할 수 있다. 이때, 샘플링 특징들 각각은 W/4 x H x Cin의 크기를 가질 수 있다.In addition, the
또한, 픽셀 샘플링부(300)는 너비 방향으로 Lw=8, 높이 방향으로 Lh=2의 주기로 제1 영상(F_in)을 샘플링하여, 8 x 2 개의 샘플링 특징들(F_in0,0, F_in1,0,..., F_in7,1)을 생성할 수 있다. 이때, 샘플링 특징들 각각은 W/8 x H/2 x Cin의 크기를 가질 수 있다.In addition, the
또한, 픽셀 샘플링부(300)는 너비 방향으로 Lw=8, 높이 방향으로 Lh=1의 주기로 제1 영상(F_in)을 샘플링하여, 8 x 1 개의 샘플링 특징들(F_in0,0, F_in1,0,..., F_in8,0)을 생성할 수 있다. 이때, 샘플링 특징들 각각은 W/8 x H x Cin의 크기를 가질 수 있다.In addition, the
일 실시예에 따른 픽셀 샘플링부(300)는 영상 처리 시스템의 복잡도, 메모리, 라인 프로세싱(line processing) 수행 여부, 디인터레이싱(deinteracing) 수행 여부, 인코딩 정보(예를 들어, 압축 파라미터 등) 등에 기초하여, 너비 방향 및 높이 방향의 샘플링 주기를 결정할 수 있다. 또한, 일 실시예에 따른 샘플링 주기는 도 4에 도시된 샘플링 주기에 한정되지 않으며, 다양한 샘플링 주기를 포함할 수 있다.The
도 5는 일 실시예에 따른 컨볼루션부의 동작을 설명하기 위해 참조되는 도면이다.5 is a diagram referenced to describe an operation of a convolution unit according to an embodiment.
도 5를 참조하면, 컨볼루션부(400)는 픽셀 샘플링부(300)에서 생성한 n개의 샘플링 특징들 각각과 n개의 커널들 각각과의 컨볼루션(그룹 컨볼루션)을 수행할 수 있으며, 컨볼루션 연산은 수학식 2로 나타낼 수 있다. Referring to FIG. 5 , the
[수학식 2][Equation 2]
F_outu,v=Conv2D(input=F_inu,v, kernel=Ku,v, stride=1)F_out u,v =Conv2D(input=F_in u,v , kernel=K u,v , stride=1)
수학식 2에서, F_inu,v는 n개의 샘플링 특징들 중 하나를 나타내며, Ku,v는 입력되는 샘플링 특징에 대응하는 커널을 나타내며, 스트라이드의 크기는 1임을 나타낸다. 스트라이트의 크기가 1이면, 입력된 샘플링 특징에 포함되는 픽셀들을 한 픽셀씩 이동하면서 컨볼루션 연산을 수행한다는 의미이다.In
도 5및 수학식 2를 참조하면, n개의 샘플링 특징들 각각에는 서로 다른 커널들이 적용될 수 있다. 예를 들어, 컨볼루션부(400)는 제1 샘플링 특징(F_in0,0)에 제1 커널(K0,0)을 적용하여, 제1 샘플링 특징(F_in0,0)과 제1 커널(K0,0)과의 컨볼루션 연산을 수행함으로써, 제1 출력 특징(F_out0,0)을 생성할 수 있다.5 and
또한, 제1 커널(K0,0)은 Cout개의 서브 커널들을 포함할 수 있으며, 하나의 서브 커널은 WK x HK x Cin의 크기를 가질 수 있다. 하나의 서브 커널의 채널 수(Cin)는 샘플링 특징의 채널 수(Cin)와 동일할 수 있다.Also, the first kernel K 0,0 may include Cout sub-kernels, and one sub-kernel may have a size of W K x H K x Cin. The number of channels (Cin) of one sub-kernel may be the same as the number of channels (Cin) of the sampling feature.
또한, 컨볼루션부(400)는 제2 샘플링 특징(F_in1,0)에 제2 커널(K1,0)을 적용하여, 제2 샘플링 특징(F_in1,0)과 제2 커널(K1,0)과의 컨볼루션 연산을 수행함으로써, 제2 출력 특징(F_out1,0)을 생성할 수 있다. 또한, 컨볼루션부(400)는 제n 샘플링 특징(F_inL-1,L-1)에 제n 커널(KL-1,L-1)을 적용하여, 제n 샘플링 특징(F_inL-1,L-1)과 제n커널(KL-1,L-1)과의 컨볼루션 연산을 수행함으로써, 제n 출력 특징(F_outL-1,L-1)을 생성할 수 있다. 또한, 제2 내지 제 n커널들 각각은 Cout개의 서브 커널들을 포함할 수 있으며, 하나의 서브 커널은 WK x HK x Cin의 크기를 가질 수 있다.Also, the
이때, 컨볼루션 연산 결과 출력되는 특징들(F_out0,0, F_out1,0,..., F_outL-1,L-1) 각각의 너비와 높이는 샘플링 특징들과 동일하며, 출력되는 특징들의 채널 수는 하나의 커널에 포함되는 서브 커널들의 개수에 기초하여 결정될 수 있다. 예를 들어, 일 실시예에 따른 샘플링 특징들 각각이 WF x HF x Cin 크기를 가지고, 하나의 커널에 포함되는 서브 커널들의 개수가 Cout이면, 출력되는 n개의 특징들 각각은 WF x HF x Cout의 크기를 가질 수 있다.At this time, the width and height of each of the features output as a result of the convolution operation (F_out 0,0 , F_out 1,0 ,..., F_out L-1,L-1 ) are the same as the sampling features, and The number of channels may be determined based on the number of sub-kernels included in one kernel. For example, if each of the sampling features according to an embodiment has a size of W F x H F x Cin and the number of sub-kernels included in one kernel is Cout, each of the output n features is W F x It may have a size of H F x Cout.
일 실시예에 따른 n개의 샘플링 특징들은 픽셀들의 블록 내에서의 위치 별로 샘플링된 특징들로, 하나의 샘플링 특징은, 아티팩트가 발생할 확률이 유사한 픽셀들끼리 샘플링 된 정보일 수 있다. 또한, 도 5에서 설명한 바와 같이, n개의 샘플링 특징들 각각에는 서로 다른 커널들이 적용되므로, 아티팩트가 발생할 확률에 따라 서로 다른 커널들이 적용되게 된다. 이에 따라, 블록 경계에서 주로 발생하는 압축 아티팩트를 효과적으로 제거할 수 있다.According to an embodiment, the n sampling features are features sampled for each position in a block of pixels, and one sampling feature may be information sampled between pixels having a similar probability of occurrence of an artifact. Also, as described with reference to FIG. 5 , different kernels are applied to each of the n sampling features, so that different kernels are applied according to the probability of occurrence of artifacts. Accordingly, it is possible to effectively remove compression artifacts mainly occurring at block boundaries.
도 6은 일 실시예에 따른 픽셀 합성부의 동작을 설명하기 위해 참조되는 도면이다.6 is a reference diagram for describing an operation of a pixel combining unit according to an exemplary embodiment.
도 6을 참조하면, 픽셀 합성부(500)는 컨볼루션부(400)에서 출력된 n개의 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1)을 합성하여, 제2 영상(F_out)을 생성할 수 있다. 이때, 제2 영상(F_out)의 너비와 높이는 제1 영상(F_in)과 동일하며, 제2 영상(F_out)의 채널 수는 컨볼루션부(400)에서 출력된 n 개의 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1) 각각의 채널 수(Cout)와 동일하게 결정될 수 있다.Referring to FIG. 6 , the
픽셀 합성부(500)는 픽셀 샘플링부(300)가 픽셀을 샘플링한 주기에 기초하여, 제2 영상(F_out)을 생성할 수 있다. 픽셀 합성부(500)는 수학식 3과 같이, 컨볼루션부(400)에서 출력된 n 개의 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1)에 기초하여, 제2 영상(F_out)을 생성할 수 있다.The
[수학식 3][Equation 3]
F_out[u:L:W-1, v:L:H-1, 0:1:Cout-1]=F_outu,v F_out[u:L:W-1, v:L:H-1, 0:1:Cout-1]=F_out u,v
예를 들어, 픽셀 합성부(500)는 픽셀 샘플링부(300)에서 제1 영상(F_in)이 너비 방향으로 L의 주기로, 높이 방향으로 L의 주기로 샘플링된 경우, 제2 영상(F_out)을 L x L 크기의 블록들로 나누고, 출력 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1) 각각에 포함된 픽셀 값들을 블록들 각각에서 동일한 위치를 가지는 픽셀들의 픽셀 값들로 결정할 수 있다.For example, when the first image F_in is sampled with a period of L in the width direction and a period of L in the height direction by the
이하에서는, 설명의 편의를 위하여, 출력 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1) 각각은 2 X 2 X Cout의 크기를 가지고, 제2 영상은 16 X 16 X Cout 의 크기를 가지며, L=8인 경우를 예로 들어, 출력 특징들을 합성하는 방법을 설명하기로 한다.Hereinafter, for convenience of description, each of the output features F_out 0,0, F_out 1,0, ..., F_out L-1,L-1 has a size of 2 X 2 X Cout, and the second An image has a size of 16 X 16 X Cout and a method of synthesizing output features will be described by taking the case of L=8 as an example.
이때, 채널들 각각에서 특징들을 합성하는 방법은 동일하므로, 하나의 채널 영상을 기준으로 설명하기로 한다. 도 6을 참조하면, 제1 내지 제n 출력 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1) 각각에 포함된 제1 채널 영상들(F_out0,0,0, F_out1,0,0, ..., F_outL-1,L-1,0)은 2 x 2의 크기를 가지고, 제2 영상(F_out)에 포함된 제1 채널 영상(610)은 16 x 16의 크기를 가진다. 또한, L=8이므로, 제2 영상(F_out)의 제1 채널 영상(610)은 8 x 8 크기의 블록들(제1 내지 제4 블록들)로 나눠질 수 있다.In this case, since the method of synthesizing features in each of the channels is the same, the description will be made based on a single channel image. Referring to FIG. 6 , the first channel images F_out 0 included in each of the first to nth output features F_out 0,0, F_out 1,0, ..., F_out L-1,L-1 . ,0,0, F_out 1,0,0, ..., F_out L-1,L-1,0 ) has a size of 2 x 2, and the first channel image ( 610) has a size of 16 x 16. Also, since L=8, the
픽셀 합성부(500)는 제1 출력 특징(F_out0,0)의 제1 채널 영상(F_out0,0,0)에 포함된 픽셀 값들을 제2 영상(F_out)의 제1 채널 영상(610)에 포함된 제1 내지 제4 블록들(B1, B2, B3, B4) 각각에서 (0, 0) 위치를 가지는 픽셀들(P0, P1, P2, P3)의 픽셀 값들로 결정할 수 있다. 또한, 제2 출력 특징(F_out1,0)의 제1 채널 영상(F_out1,0,0)에 포함된 픽셀 값들을 제1 채널 영상(610)의 제1 내지 제4 블록들(B1, B2, B3, B4) 각각에서 (0, 1) 위치를 가지는 픽셀들(P4, P5, P6, P7)의 픽셀 값들로 결정할 수 있다. 또한, 제n 출력 특징(F_outL-1,L-1)의 제1 채널 영상(F_outL-1,L-1,0)에 포함된 픽셀 값들을 제1 채널 영상(610)의 제1 내지 제4 블록들(B1, B2, B3, B4) 각각에서 (7, 7) 위치를 가지는 픽셀들(P8, P9, P10, P11)의 픽셀 값들로 결정할 수 있다. 이와 같이, 픽셀 합성부(500)는 제1 내지 제 n 출력 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1) 각각에 포함된 제1 채널 영상들(F_out0,0,0, F_out1,0,0, ..., F_outL-1,L-1,0)의 픽셀 값들을 이용하여, 제2 영상(F_out)의 제1 채널 영상(610)을 생성할 수 있다. 또한, 동일한 방식으로 제2 영상(F_out)의 제2 내지 제 Cout 채널 영상들을 생성할 수 있다.The
한편, 도 2 내지 도 6에서 도시하고 설명한 픽셀 샘플링부(300), 컨볼루션부(400), 및 픽셀 합성부(500) 중 적어도 하나는, 하드웨어 칩 형태로 제작되어 영상 처리 장치(100)에 탑재될 수 있다. 예를 들어, 픽셀 샘플링부(300), 컨볼루션부(400) 및 픽셀 합성부(500)중 적어도 하나는, 인공 지능(AI;artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 일 실시예에 따른 영상 처리 장치(100)에 탑재될 수도 있다.Meanwhile, at least one of the
또한, 픽셀 샘플링부(300), 컨볼루션부(400), 및 픽셀 합성부(500) 중 적어도 하나는, 소프트웨어 모듈로 구현될 수 있다. 픽셀 샘플링부(300), 컨볼루션부(400), 및 픽셀 합성부(500) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.Also, at least one of the
도 7은 다른 실시예에 따른 도 1의 하나의 컨볼루션 레이어를 나타내는 도면이다.7 is a diagram illustrating one convolutional layer of FIG. 1 according to another embodiment.
도 7을 참조하면, 다른 실시예에 따른 하나의 컨볼루션 레이어(700)는 특징 추출부(710), 컨볼루션부(720) 및 픽셀 합성부(730)를 포함할 수 있다. 도 7의 컨볼루션부(720) 및 픽셀 합성부(730)는 도 2의 컨볼루션부(400) 및 픽셀 합성부(500)와 동일하므로, 구체적인 설명은 생략하기로 한다.Referring to FIG. 7 , one
또한, 도 7의 컨볼루션 레이어(700)는 도 1의 제1 내지 제N 컨볼루션 레이어들(210, 220,..., 290) 중 어느 하나일 수 있다.Also, the
이하, 도 8 및 도 9를 참조하여, 도 7의 컨볼루션 레이어에서 수행되는 동작을 구체적으로 설명하기로 한다.Hereinafter, an operation performed in the convolutional layer of FIG. 7 will be described in detail with reference to FIGS. 8 and 9 .
도 8은 도 7의 컨볼루션 레이어에서 수행되는 동작을 설명하기 위해 참조되는 도면이다.FIG. 8 is a diagram referenced to describe an operation performed in the convolution layer of FIG. 7 .
도 8을 참조하면, 일 실시예에 따른 특징 추출부(710)는 제1 영상(F_in)과 커널(P0,0, P1,0,...,PL-1,L-1)과의 컨볼루션을 수행함으로써, n개의 히든 특징들을 생성할 수 있다.Referring to FIG. 8 , the
일 실시예에 따른 제1 영상(F_in)은 W x H x Cin의 크기를 가진다. 이때, W는 제1 영상(F_in)의 너비를 나타내고, H는 제1 영상(F_in)의 높이를 나타내며, Cin는 제1 영상(F_in)의 채널 수를 나타낸다.The first image F_in according to an embodiment has a size of W x H x Cin. In this case, W denotes the width of the first image F_in, H denotes the height of the first image F_in, and Cin denotes the number of channels of the first image F_in.
특징 추출부(710)는 다음의 수학식 4와 같이, 제1 영상(F_in)과 커널(P0,0, P1,0,...,PL-1,L-1)과의 컨볼루션 연산을 수행할 수 있다.The
[수학식 4][Equation 4]
F_hiddenu,v=Conv2D(input=F_in[u:1:W-1, v:1:H-1,0:1:Cin-1], kernel=Pu,v, stride=L)F_hidden u,v =Conv2D(input=F_in[u:1:W-1, v:1:H-1,0:1:Cin-1], kernel=Pu,v, stride=L)
수학식 4에서 F_hiddenu,v 는 컨볼루션 연산을 통해 추출된 히든 특징을 나타내고, Conv2D (input, kernel, stride = L)는, input과 kernel을 스트라이트 크기 L로 컨볼루션 연산을 수행함을 나타낸다. 이때, F_in은 제1 영상을 나타내며, F_in[]는 제1 영상(F_in)에 포함되는 픽셀들 중 입력 영상(input)에 포함시킬 픽셀들을 샘플링하는 연산을 나타낸다. u:1:W-1은 제1 영상(F_in)의 너비 방향으로 u 지점에 위치하는 픽셀에서 시작하여, W-1지점에 위치하는 픽셀까지 한 픽셀씩 이동하여 샘플링하는 것을 의미하는 것으로, 제1 영상(F_in)의 너비 방향으로 u 지점에 위치한 픽셀부터 W-1지점에 위치한 픽셀까지의 모든 픽셀들이 입력 영상에 포함된다.In
또한, v:1:H-1은 제1 영상(F_in)의 높이 방향으로 v 지점에 위치하는 픽셀에서 시작하여, H-1지점에 위치하는 픽셀까지 한 픽셀씩 이동하여 샘플링하는 것을 의미하는 것으로, 제1 영상(F_in)의 높이 방향으로 v 지점에 위치하는 픽셀부터, H-1지점에 위치한 픽셀까지의 모든 픽셀들이 입력 영상에 포함된다. 또한, 0:1:C-1은 제1 영상의 채널 방향으로 0 지점에 위치한 픽셀부터, C-1 지점에 위치한 픽셀까지 모든 픽셀들을 샘플링하는 것을 의미한다.In addition, v:1:H-1 means sampling by moving one pixel at a time from the pixel located at the point v in the height direction of the first image F_in to the pixel located at the point H-1. , all pixels from the pixel positioned at the point v in the height direction of the first image F_in to the pixel positioned at the point H-1 are included in the input image. Also, 0:1:C-1 means sampling all pixels from a pixel located at point 0 to a pixel located at point C-1 in the channel direction of the first image.
특징 추출부(710)가 입력 영상(input)과 커널(kernel)과의 컨볼루션 연산을 수행할 때, 입력 영상(input) 내에서 컨볼루션 연산의 대상이 되는 데이터(픽셀 값)는 스트라이드의 크기만큼 이동하면서 스캔될 수 있다. 예를 들어, 특징 추출부(710)는 스트라이드의 크기가 L인 경우, 입력 영상(input)내에서 L개의 픽셀만큼 데이터를 이동시키면서 커널과의 컨볼루션 연산을 수행할 수 있다.When the
특징 추출부(710)가 컨볼루션 연산을 수행하여, 히든 특징을 생성하는 방법에 대해서는 도 9를 참조하여 자세히 설명하기로 한다.A method in which the
도 9는 일 실시예에 따른 특징 추출부가 컨볼루션 연산을 수행하는 동작을 설명하기 위해 참조되는 도면이다.9 is a diagram referenced to describe an operation of a feature extractor performing a convolution operation according to an embodiment.
도 9에서는, 설명의 편의를 위해, 제1 영상(F_in)에 포함되는 하나의 채널 영상이 16 x 16의 크기를 가지며, L=8인 경우를 예로 들어, 복수의 히든 특징들을 생성하는 방법을 설명하기로 한다.In FIG. 9 , for convenience of explanation, a method of generating a plurality of hidden features is illustrated by taking the case where one channel image included in the first image F_in has a size of 16 x 16 and L = 8 as an example. to explain
도 9를 참조하면, 입력 데이터(910)는 제1 영상(F_in)의 제1 채널 영상(910)을 나타내며, 특징 추출부(710)는 입력 데이터(910)의 좌측 상단 8 x 8 영역(915)에 포함되는 픽셀들에 커널(920, P0,0)을 적용하여 컨볼루션 연산을 수행할 수 있다. 즉, 좌측 상단 8 x 8 영역(915)에 포함되는 픽셀 값들과 커널(920)에 포함되는 가중치 값들을 곱하여 합산함으로써, 좌측 상단 8 x 8 영역에 매핑되는 하나의 픽셀값(931)을 생성할 수 있다.Referring to FIG. 9 , the
또한, 입력 데이터(910)의 좌측 상단 8 x 8 영역(915)에서 너비 방향(우측)으로 8픽셀들만큼 이동시킨 8 x 8 영역(925)에 포함되는 픽셀 값들과 커널(920)에 포함되는 가중치 값들을 곱하여 합산함으로써, 8 x 8 영역(925)에 매핑되는 하나의 픽셀 값(932)을 생성할 수 있다. In addition, pixel values included in the 8×8
동일한 방식으로, 입력 데이터(910) 내에서 컨볼루션 연산의 대상을 좌측에서 우측으로(너비 방향으로), 상단에서 하단으로(높이 방향으로), 8 픽셀들만큼 이동시키면서, 커널(920)에 포함되는 가중치 값들을 곱하여 합산함으로써, 픽셀 값들(예를 들어, 제3 픽셀 값, 제4 픽셀 값)을 생성할 수 있다. 이에 따라, 입력 데이터(910)에 대응하여, 2 x 2의 히든 특징(F_hidden0,0,0)이 출력될 수 있다.In the same manner, the object of the convolution operation in the
도 9에서는 설명의 편의를 위하여, 제1 영상(F_in)의 하나의 채널 영상에 대해서만 설명하였으나, 다른 채널 영상들 각각에 대해서도 도 9에서 설명한 방식과 동일한 방식으로 컨볼루션을 수행할 수 있다. In FIG. 9 , for convenience of explanation, only one channel image of the first image F_in has been described, but convolution may be performed on each of the other channel images in the same manner as described in FIG. 9 .
또한, 도 9에서는 설명의 편의를 위해, W=H=16이고, L=8인 것을 예로 들어 설명하였으나, 이에 한정되지 않으며, 도 9에서 설명한 방법으로 컨볼루션 연산을 수행하면, L x L 개의 히든 특징들(F_hidden0,0, F_ hidden 1,0,...,F_ hidden L-1,L-1)을 생성할 수 있으며, 히든 특징들 각각은 WF x HF x Cin의 크기를 가질 수 있다. 이때, WF 는 제1 영상의 너비(W)와 너비 방향으로의 스트라이드 크기 L에 기초하여 결정될 수 있으며, HF 는 제1 영상의 높이(H)와 높이 방향으로의 스트라이드 크기 L에 기초하여 결정될 수 있다.In addition, for convenience of explanation, in FIG. 9 , W=H=16 and L=8 have been described as examples, but the present invention is not limited thereto. Hidden features (F_hidden 0,0 , F_hidden 1,0 ,..., F_hidden L-1,L-1 ) can be generated, and each of the hidden features has a size of W F x H F x Cin. can have In this case, W F may be determined based on the width (W) of the first image and the stride size L in the width direction, and H F is the height (H) of the first image and the stride size L in the height direction. can be decided.
일 실시예에 따른 히든 특징들(F_hidden0,0, F_ hidden 1,0,...,F_ hidden L-1,L-1)은 제1 영상(F_in)과 커널(P0,0, P1,0,...,PL-1,L-1)과의 컨볼루션 연산을 수행함으로써 생성된 특징들로, 타겟이 되는 픽셀의 주변 픽셀들의 특징이 함께 반영된 정보일 수 있다.The hidden features F_hidden 0,0 , F_hidden 1,0 ,..., F_hidden L-1,L-1 according to an embodiment include the first image F_in and the kernel P 0,0 , P 1,0 ,...,P L-1,L-1 ), the features are generated by performing a convolution operation, and may be information in which features of neighboring pixels of a target pixel are also reflected.
다시, 도 8을 참조하면, 컨볼루션부(720)는 특징 추출부(710)에서 생성한 n개의 히든 특징들(F_hidden0,0, F_ hidden 1,0,...,F_ hidden L-1,L-1)과 커널들과의 컨볼루션을 수행할 수 있으며, 컨볼루션 연산은 수학식 5로 나타낼 수 있다.Again, referring to FIG. 8 , the
[수학식 5][Equation 5]
F_outu,v=Conv2D(input=F_hiddenu,v, kernel=Ku,v, stride=1)F_out u,v =Conv2D(input=F_hidden u,v , kernel=K u,v , stride=1)
수학식 5에서 F_hiddenu,v 는 n개의 히든 특징들 중 하나를 나타내며, Ku,v는 입력되는 히든 특징에 대응하는 커널을 나타내며, 스트라이드의 크기는 1임을 나타낸다.In Equation 5, F_hidden u,v represents one of n hidden features, K u,v represents a kernel corresponding to the input hidden feature, and the size of the stride is 1.
예를 들어, 컨볼루션부(720)는 제1 히든 특징(F_hidden0,0)에 제1 커널(K0,0)을 적용하여, 제1 히든 특징(F_hidden0,0)과 제1 커널(K0,0)과의 컨볼루션 연산을 수행함으로써, 제1 출력 특징(F_out0,0)을 생성할 수 있다. 또한, 제1 커널(K0,0)은 Cout개의 서브 커널들을 포함할 수 있으며, 하나의 서브 커널은 WK x HK x Cin의 크기를 가질 수 있다. 하나의 서브 커널의 채널 수는 히든 특징의 채널 수(Cin)와 동일할 수 있다.For example, a
또한, 컨볼루션부(720)는 제2 히든 특징(F_hidden1,0)에 제2 커널(K1,0)을 적용하여, 제2 히든 특징(F_hidden1,0)과 제2 커널(K1,0)과의 컨볼루션 연산을 수행함으로써, 제2 출력 특징(F_out1,0)을 생성할 수 있다. 또한, 컨볼루션부(720)는 제n 히든 특징(F_hiddenL-1,L-1)에 제n 커널(KL-1,L-1)을 적용하여, 제n 히든 특징(F_hiddenL-1,L-1)과 제n 커널(KL-1,L-1)과의 컨볼루션 연산을 수행함으로써, 제n 출력 특징(F_outL-1,L-1)을 생성할 수 있다. 또한, 제2 내지 제 n 커널들(K1,0,..., KL-1,L-1) 각각은 Cout개의 서브 커널들을 포함할 수 있으며, 하나의 서브 커널은 WK x HK x Cin의 크기를 가질 수 있다.Also, the
이때, 컨볼루션 연산 결과 출력되는 특징들(F_out0,0, F_out1,0,..., F_outL-1,L-1) 각각의 너비와 높이는 히든 특징과 동일하며, 출력되는 특징의 채널 수는 하나의 커널에 포함되는 서브 커널들의 개수에 기초하여 결정될 수 있다. 예를 들어, 일 실시예에 따른 히든 특징들 각각이 WF x HF x Cin 크기를 가지고, 하나의 커널에 포함되는 서브 커널들의 개수가 Cout이면, 출력되는 N개의 특징들 각각은 WF x HF x Cout의 크기를 가질 수 있다.At this time, the width and height of each of the features output as a result of the convolution operation (F_out 0,0 , F_out 1,0 ,..., F_out L-1,L-1 ) are the same as the hidden feature, and the channel of the output feature The number may be determined based on the number of sub-kernels included in one kernel. For example, if each of the hidden features according to an embodiment has a size of W F x H F x C in and the number of sub-kernels included in one kernel is Cout, each of the output N features is W F It may have a size of x H F x Cout.
또한, 일 실시예에 따른 픽셀 합성부(730)는 컨볼루션부(720)에서 출력된 n개의 특징들을 합성하여, 제2 영상(F_out)을 생성할 수 있다. 픽셀 합성부(730)는 특징 추출부(710)가 히든 특징들(F_hidden0,0, F_ hidden 1,0,...,F_ hidden L-1,L-1)을 생성하기 위해 수행한 컨볼루션 연산에 적용되는 스트라이드의 크기 L에 기초하여, 제2 영상(F_out)을 생성할 수 있다. 픽셀 합성부(730)는 수학식 3에 기초하여, 제2 영상(F_out)을 생성할 수 있다.Also, the
예를 들어, 픽셀 합성부(730)는 특징 추출부(710)에서 제1 영상(F_in)과 커널(P0,0, P1,0,...,PL-1,L-1)과의 컨볼루션 연산 수행 시, 스트라이트 크기를 L로 한 경우, 제2 영상(F_out)을 L x L 크기의 블록들로 나누고, 출력 특징들(F_out0,0, F_out1,0, ..., F_outL-1,L-1) 각각에 포함된 픽셀 값들을 블록들 각각에서 동일한 위치를 가지는 픽셀들의 픽셀 값들로 결정할 수 있다. 이에 대해서는 도 6에서 자세히 설명하였으므로 구체적인 설명은 생략하기로 한다.For example, the
한편, 도 7 내지 도 9에서 도시하고 설명한 특징 추출부(710), 컨볼루션부(720), 및 픽셀 합성부(730) 중 적어도 하나는, 하드웨어 칩 형태로 제작되어 영상 처리 장치에 탑재될 수 있다. 예를 들어, 특징 추출부(710), 컨볼루션부(720), 및 픽셀 합성부(730) 중 적어도 하나는, 인공 지능(AI;artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 일 실시예에 따른 영상 처리 장치(100)에 탑재될 수도 있다.Meanwhile, at least one of the
또한, 특징 추출부(710), 컨볼루션부(720), 및 픽셀 합성부(730) 중 적어도 하나는, 소프트웨어 모듈로 구현될 수 있다. 특징 추출부(710), 컨볼루션부(720), 및 픽셀 합성부(730) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.In addition, at least one of the
도 10은 일 실시예에 따른 영상 처리 장치의 동작방법을 나타내는 흐름도이다.10 is a flowchart illustrating a method of operating an image processing apparatus according to an exemplary embodiment.
도 10을 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 제1 영상에 포함되는 픽셀들의 위치에 기초하여, 제1 영상으로부터 n개의 제1 특징 정보들을 추출할 수 있다(S1010).Referring to FIG. 10 , the
예를 들어, 영상 처리 장치(100)는 제1 영상에 포함되는 픽셀들의 위치 정보에 기초하여, 픽셀들을 그룹핑함으로써, n개의 샘플링 특징들을 생성할 수 있다. 영상 처리 장치(100)는 제1 영상을 기 설정된 크기(L x L)의 블록들로 나누고 블록들 각각에서 동일한 위치를 가지는 픽셀들을 동일한 그룹으로 샘플링함으로써, n개의 샘플링 특징들을 생성할 수 있다. 이때, 블록의 기 설정된 크기(너비 방향 및 높이 방향으로의 샘플링 주기)는 다양하게 설정될 수 있다. n개의 샘플링 특징들을 생성하는 방법에 대해서는 도 3에서 자세히 설명하였으므로, 동일한 설명은 생략하기로 한다.For example, the
또는, 영상 처리 장치(100)는 스트라이드 크기 L을 적용하여, 제1 영상과 커널들과의 컨볼루션 연산을 수행함으로써, n개의 히든 특징들을 생성할 수 있다. n개의 히든 특징들을 생성하는 방법에 대해서는 도 8 및 9에서 자세히 설명하였으므로 동일한 설명은 생략하기로 한다.Alternatively, the
일 실시예에 따른 영상 처리 장치(100)는 n개의 제1 특징 정보들 각각과 n개의 커널들 각각과의 컨볼루션 연산을 수행함으로써, n개의 제2 특징 정보들을 생성할 수 있다(S1020).The
예를 들어, 영상 처리 장치(100)는 1010단계(S1010)에서 생성된 n개의 샘플링 특징들 각각과 n개의 커널들 각각과의 컨볼루션(그룹 컨볼루션)을 수행함으로써, n개의 출력 특징들을 생성할 수 있다. 이때, n개의 커널들 각각은 Cout개(출력 특징의 채널 수)의 서브 커널들을 포함할 수 있으며, 하나의 서브 커널은 WK x HK x Cin(샘플링 특징의 채널 수)의 크기를 가질 수 있다.For example, the
또는, 영상 처리 장치(100)는 1010단계(S1020)에서 생성된 n개의 히든 특징들 각각과 n개의 커널들 각각과의 컨볼루션(그룹 컨볼루션)을 수행함으로써, n개의 출력 특징들을 생성할 수 있다. 이때, n개의 커널들 각각은 Cout개(출력 특징의 채널 수)의 서브 커널들을 포함할 수 있으며, 하나의 서브 커널은 WK x HK x Cin(히든 특징의 채널 수)의 크기를 가질 수 있다.Alternatively, the
컨볼루션 연산을 수행하는 방법에 대해서는 도 5에서 자세히 설명하였으므로 동일한 설명은 생략하기로 한다.Since the method of performing the convolution operation has been described in detail with reference to FIG. 5 , the same description will be omitted.
일 실시예에 따른 영상 처리 장치(100)는 n개의 제2 특징 정보들에 기초하여, 제2 영상을 생성할 수 있다(S1030).The
예를 들어, 영상 처리 장치(100)는 1010단계(S1010)에서 제1 영상에 포함된 픽셀들을 샘플링 할 때 이용한 너비 방향 및 높이 방향으로의 샘플링 주기 L에 기초하여, 제2 영상을 생성할 수 있다.For example, the
또는, 영상 처리 장치(100)는 1010단계(S1010)에서 히든 특징들을 생성하기 위해 수행한 컨볼루션 연산에 적용되는 스트라이드 크기 L에 기초하여, 제2 영상을 생성할 수 있다.Alternatively, the
영상 처리 장치(100)는 제2 영상을 L x L크기의 블록들로 나누고, 1020단계(S1020)에서 생성된 n개의 출력 특징들 각각에 포함된 픽셀 값들을 블록들 각각에서 동일한 위치를 가지는 픽셀들의 픽셀 값들로 결정할 수 있다.The
제2 영상을 생성하는 방법에 대해서는 도 6에서 자세히 설명하였으므로 동일한 설명은 생략하기로 한다.Since the method of generating the second image has been described in detail with reference to FIG. 6 , the same description will be omitted.
도 11은 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.11 is a block diagram illustrating a configuration of an image processing apparatus according to an exemplary embodiment.
도 11을 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 프로세서(120) 및 메모리(130)를 포함할 수 있다.Referring to FIG. 11 , the
일 실시예에 따른 프로세서(120)는 영상 처리 장치(100)를 전반적으로 제어할 수 있다. 일 실시예에 따른 프로세서(120)는 메모리(130)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다.The
일 실시예에 따른 메모리(130)는 영상 처리 장치(100)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다. 메모리(130)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(130)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(120)에 의해 실행될 수 있다.The
일 실시예에 따른 프로세서(120)는 CPU(Cetral Processing Unit), GPU (Graphic Processing Unit) 및 VPU(Video Processing Unit) 중 적어도 하나를 포함할 수 있다. 또는, 실시예에 따라, CPU, GPU 및 VPU 중 적어도 하나를 통합한 SoC(System On Chip) 형태로 구현될 수 있다. 또는, 프로세서()는 NPU(Neural Processing Unit)를 더 포함할 수 있다.The
일 실시예에 따른 프로세서(120)는 하나 이상의 컨볼루션 뉴럴 네트워크를 포함하는 아티팩트 제거 네트워크를 이용하여, 압축 아티팩트가 포함된 제1 영상으로부터 압축 아티팩트가 제거된 제2 영상을 생성할 수 있다.The
예를 들어, 프로세서(120)는 도 2 내지 도 6에서 도시하고 설명한 픽셀 샘플링부(300), 컨볼루션부(400), 및 픽셀 합성부(500)의 동작들 중 적어도 하나를 수행할 수 있으며, 도 7 내지 도 9에서 도시하고 설명한 특징 추출부(710), 컨볼루션부(720), 및 픽셀 합성부(930)의 동작들 중 적어도 하나를 수행할 수 있다. 프로세서(120)는 제1 영상에 포함되는 픽셀들의 위치에 기초하여, n개의 제1 특징 정보들을 추출할 수 있다. 예를 들어, 프로세서(120)는 제1 영상을 기 설정된 크기(L x L)의 블록들로 나누고, 블록들 각각에서 동일한 위치를 가지는 픽셀들을 하나의 샘플링 특징으로 추출할 수 있다. 이에 따라, n(= L x L)개의 샘플링 특징들을 생성할 수 있다. 또는, 프로세서(120)는 스트라이드 크기 L을 적용하여, 제1 영상과 커널들과의 컨볼루션 연산을 수행함으로써, n개의 히든 특징들을 생성할 수 있다.For example, the
또한, 프로세서(120)는 n개의 제1 특징 정보들 각각과 n개의 커널들 각각과의 컨볼루션 연산을 수행함으로써, n개의 제2 특징 정보들을 생성할 수 있다.Also, the
또한, 프로세서(120)는 n개의 제2 특징 정보들에 기초하여, 압축 아티팩트가 제거된 제2 영상을 생성할 수 있다. 프로세서(120)는 제2 영상을 L x L크기의 블록들로 나누고, 생성된 n개의 제2 특징 정보들 각각에 포함된 픽셀 값들을 블록들 각각에서 동일한 위치를 가지는 픽셀들의 픽셀 값들로 결정할 수 있다.Also, the
한편, 일 실시예에 따른 아티팩트 제거 네트워크(30)는, 서버 또는 외부 장치에 의해 훈련된 네트워크일 수 있다. 외부 장치는 훈련 데이터에 기초하여, 아티팩트 제거 네트워크(30)를 학습시킬 수 있다. 이때, 훈련 데이터는 압축 아티팩트가 포함된 영상 데이터와 압축 아티팩트가 제거된 영상 데이터를 포함하는 복수의 데이터 세트들을 포함할 수 있다.Meanwhile, the
서버 또는 외부 장치는 아티팩트 제거 네트워크(30)에 포함된 복수의 컨볼루션 레이어들 각각에서 이용되는 커널들에 포함되는 가중치 값들을 결정할 수 있다. 예를 들어, 서버 또는 외부 장치는 아티팩트 제거 네트워크(30)에 의해 생성된 영상 데이터와 훈련 데이터로써의 압축 아티팩트가 제거된 영상 데이터의 차이(손실 정보)를 최소화하는 방향으로 가중치 값들을 결정할 수 있다.The server or the external device may determine weight values included in kernels used in each of a plurality of convolutional layers included in the
일 실시예에 따른 영상 처리 장치(100)는 서버 또는 외부 장치로부터 훈련이 완료된 아티팩트 제거 네트워크(30)를 수신하여, 메모리(130)에 저장할 수 있다. 예를 들어, 메모리(130)는 일 실시예에 따른 아티팩트 제거 네트워크(30)의 구조 및 가중치 값들을 저장할 수 있으며, 프로세서(120)는 메모리(130)에 저장된 가중치 값들을 이용하여, 일 실시예에 따른 제1 영상으로부터 압축 아티팩트가 제거된 제2 영상을 생성할 수 있다.The
한편, 도 11에 도시된 영상 처리 장치(100)의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 영상 처리 장치(100)의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.Meanwhile, a block diagram of the
일 실시예에 따른 영상 처리 장치의 동작방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method of operating an image processing apparatus according to an embodiment may be implemented in the form of a program command 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, etc. 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 available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and carry out program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
또한, 개시된 실시예들에 따른 영상 처리 장치 및 영상 처리 장치의 동작방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.Also, the image processing apparatus and the 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 may be traded between sellers and buyers as commodities.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.The computer program product may include a S/W program and a computer-readable storage medium in which the S/W program is stored. For example, computer program products may include products (eg, downloadable apps) in the form of S/W programs distributed electronically through manufacturers of electronic devices or electronic markets (eg, Google Play Store, App Store). have. For electronic distribution, at least a portion of the S/W program may be stored in a storage medium or may be temporarily generated. In this case, 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 a SW program.
컴퓨터 프로그램 제품은, 서버 및 클라이언트 장치로 구성되는 시스템에서, 서버의 저장매체 또는 클라이언트 장치의 저장매체를 포함할 수 있다. 또는, 서버 또는 클라이언트 장치와 통신 연결되는 제3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 클라이언트 장치 또는 제3 장치로 전송되거나, 제3 장치로부터 클라이언트 장치로 전송되는 S/W 프로그램 자체를 포함할 수 있다.The computer program product, in a system consisting of a server and a client device, may include a storage medium of the server or a storage medium of the client device. Alternatively, when there is a third device (eg, a smart phone) that is communicatively connected to the server or the client device, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include the S/W program itself transmitted from the server to the client device or the third device, or transmitted from the third device to the client device.
이 경우, 서버, 클라이언트 장치 및 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 클라이언트 장치 및 제3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.In this case, 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. Alternatively, two or more of a server, a client device, and a third device may execute a computer program product to distribute the method according to the disclosed embodiments.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 클라이언트 장치가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.For example, a server (eg, a cloud server or an artificial intelligence server) may execute a computer program product stored in the server to control a client device communicatively connected with the server to perform the method according to the disclosed embodiments.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.Although the embodiments have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements by those skilled in the art using the basic concept of the present invention as defined in the following claims are also included in the scope of the present invention. belongs to
Claims (17)
하나 이상의 인스트럭션들을 저장하는 메모리; 및
상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고,
상기 프로세서는, 하나 이상의 뉴럴 네트워크를 이용하여,
제1 영상에 포함되는 픽셀들의 위치에 기초하여, 상기 제1 영상으로부터 n개의 제1 특징 정보들을 추출하고, 상기 n개의 제1 특징 정보들 각각과 n개의 커널들 각각과의 컨볼루션 연산을 수행함으로써, n개의 제2 특징 정보들을 생성하며, 상기 n개의 제2 특징 정보들에 기초하여, 제2 영상을 생성하고,
상기 제2 영상은 상기 제1 영상에 포함되는 압축 아티팩트가 제거된 영상인 영상 처리 장치.In the image processing apparatus,
a memory storing one or more instructions; and
a processor executing the one or more instructions stored in the memory;
The processor, using one or more neural networks,
Based on the positions of pixels included in the first image, n pieces of first feature information are extracted from the first image, and a convolution operation is performed between each of the n pieces of first feature information and each of the n kernels. By doing so, n pieces of second characteristic information are generated, and a second image is generated based on the n pieces of second characteristic information,
The second image is an image from which compression artifacts included in the first image are removed.
상기 프로세서는,
상기 제1 영상을 기 설정된 크기를 가지는 블록들로 나누고, 상기 블록들 각각에서 동일한 위치를 가지는 픽셀들을 동일한 그룹으로 나누어 상기 n 개의 제1 특징 정보들을 추출하는, 영상 처리 장치.According to claim 1,
The processor is
and dividing the first image into blocks having a preset size, and dividing pixels having the same position in each of the blocks into the same group to extract the n pieces of first characteristic information.
상기 블록들 각각은 상기 n개의 픽셀들을 포함하고,
상기 n은 상기 블록들의 기 설정된 크기에 기초하여 결정되는, 영상 처리 장치.3. The method of claim 2,
each of the blocks includes the n pixels,
The n is determined based on a preset size of the blocks.
상기 프로세서는,
상기 제2 영상을 상기 기 설정된 크기를 가지는 블록들로 나누고,
상기 제2 특징 정보들 중 하나의 제2 특징 정보에 포함되는 픽셀 값들을 상기 블록들 각각에서 동일한 위치의 픽셀 값들로 결정하는, 영상 처리 장치.3. The method of claim 2,
The processor is
dividing the second image into blocks having the preset size;
and determining pixel values included in one piece of second characteristic information among the second characteristic information as pixel values at the same position in each of the blocks.
상기 프로세서는,
스트라이드 크기 L을 적용하여, 상기 제1 영상과 제2 커널과의 컨볼루션 연산을 수행함으로써, 상기 n개의 제1 특징 정보들을 추출하는, 영상 처리 장치.According to claim 1,
The processor is
An image processing apparatus for extracting the n pieces of first feature information by performing a convolution operation between the first image and a second kernel by applying a stride size L.
상기 제1 특징 정보들의 개수 n은 상기 스트라이드 크기 L에 기초하여 결정되는, 영상 처리 장치.6. The method of claim 5,
The image processing apparatus, wherein the number n of the first characteristic information is determined based on the stride size L.
상기 n개의 커널들은 서로 상이한 커널들인, 영상 처리 장치.According to claim 1,
The n kernels are different kernels from each other.
상기 제1 영상과 상기 제2 영상의 크기는 동일한, 영상 처리 장치.According to claim 1,
The image processing apparatus of claim 1 , wherein the size of the first image and the size of the second image are the same.
제1 영상에 포함되는 픽셀들의 위치에 기초하여, 상기 제1 영상으로부터 n개의 제1 특징 정보들을 추출하는 단계;
상기 n개의 제1 특징 정보들 각각과 n개의 커널들 각각과의 컨볼루션 연산을 수행함으로써, n개의 제2 특징 정보들을 생성하는 단계; 및
상기 n개의 제2 특징 정보들에 기초하여, 제2 영상을 생성하는 단계를 포함하고,
상기 제2 영상은 상기 제1 영상에 포함되는 압축 아티팩트가 제거된 영상인, 동작방법.A method of operating an image processing apparatus for performing image processing using one or more neural networks, the method comprising:
extracting n pieces of first feature information from the first image based on positions of pixels included in the first image;
generating n pieces of second feature information by performing a convolution operation with each of the n pieces of first feature information and each of the n pieces of kernels; and
generating a second image based on the n pieces of second characteristic information;
The second image is an image from which compression artifacts included in the first image are removed.
상기 n개의 제1 특징 정보들을 추출하는 단계는,
상기 제1 영상을 기 설정된 크기를 가지는 블록들로 나누고, 상기 블록들 각각에서 동일한 위치를 가지는 픽셀들을 동일한 그룹으로 나누어 상기 n 개의 제1 특징 정보들을 추출하는 단계를 포함하는, 영상 처리 장치의 동작방법.10. The method of claim 9,
The step of extracting the n pieces of first characteristic information includes:
and extracting the n pieces of first characteristic information by dividing the first image into blocks having a preset size and dividing pixels having the same position in each of the blocks into the same group Way.
상기 블록들 각각은 상기 n개의 픽셀들을 포함하고,
상기 n은 상기 블록들의 기 설정된 크기에 기초하여 결정되는, 영상 처리 장치의 동작방법.11. The method of claim 10,
each of the blocks includes the n pixels,
and n is determined based on a preset size of the blocks.
상기 제2 영상을 생성하는 단계는,
상기 제2 영상을 상기 기 설정된 크기를 가지는 블록들로 나누고, 상기 제2 특징 정보들 중 하나의 제2 특징 정보에 포함되는 픽셀 값들을 상기 블록들 각각에서 동일한 위치의 픽셀 값들로 결정하는 단계를 포함하는, 영상 처리 장치의 동작방법.11. The method of claim 10,
The generating of the second image comprises:
dividing the second image into blocks having the preset size, and determining pixel values included in one piece of second characteristic information among the second characteristic information as pixel values at the same position in each of the blocks; Including, an operating method of an image processing apparatus.
상기 n개의 제1 특징 정보들을 추출하는 단계는,
스트라이드 크기 L을 적용하여, 상기 제1 영상과 제2 커널과의 컨볼루션 연산을 수행함으로써, 상기 n개의 제1 특징 정보들을 추출하는 단계를 포함하는, 영상 처리 장치의 동작방법.10. The method of claim 9,
The step of extracting the n pieces of first characteristic information includes:
and extracting the n pieces of first feature information by performing a convolution operation between the first image and the second kernel by applying a stride size L.
상기 제1 특징 정보들의 개수 n은 상기 스트라이드 크기 L에 기초하여 결정되는, 영상 처리 장치의 동작방법.14. The method of claim 13,
The method of operating an image processing apparatus, wherein the number n of the first characteristic information is determined based on the stride size L.
상기 n개의 커널들은 서로 상이한 커널들인, 영상 처리 장치의 동작방법.10. The method of claim 9,
The n kernels are different kernels from each other, the operating method of the image processing apparatus.
상기 제1 영상과 상기 제2 영상의 크기는 동일한, 영상 처리 장치의 동작방법.10. The method of claim 9,
and sizes of the first image and the second image are the same.
A computer program product comprising one or more computer-readable recording media in which a program for performing the method of claim 9 is stored.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2021/005888 WO2021230624A1 (en) | 2020-05-15 | 2021-05-11 | Image processing device and operation method thereof |
US17/987,574 US20230071417A1 (en) | 2020-05-15 | 2022-11-15 | Image processing device and operation method thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20200058333 | 2020-05-15 | ||
KR1020200058333 | 2020-05-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210141304A true KR20210141304A (en) | 2021-11-23 |
Family
ID=78695273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200159100A KR20210141304A (en) | 2020-05-15 | 2020-11-24 | Image processing apparatus and operating method for the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20210141304A (en) |
-
2020
- 2020-11-24 KR KR1020200159100A patent/KR20210141304A/en active Search and Examination
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740865B2 (en) | Image processing apparatus and method using multi-channel feature map | |
CN108268885B (en) | Feature point detection method, device, and computer-readable storage medium | |
DE112020003128T5 (en) | DILATED CONVOLUTION WITH SYSTOLIC ARRAY | |
US11562166B2 (en) | Generating shift-invariant neural network feature maps and outputs | |
KR102452951B1 (en) | Method and apparatus for performing convolution operation in neural network | |
KR20200067631A (en) | Image processing apparatus and operating method for the same | |
US11875257B2 (en) | Normalization method for machine-learning and apparatus thereof | |
DE112020005799T5 (en) | Efficient use of a processing element array | |
US11954755B2 (en) | Image processing device and operation method thereof | |
KR20200095300A (en) | Method and apparatus for processing convolution operation of neural network | |
KR20200132304A (en) | Image processing apparatus and operating method for the same | |
KR102553146B1 (en) | Image processing apparatus and operating method for the same | |
DE102021121514A1 (en) | Device and method for an artificial neural network | |
KR20190136891A (en) | Electronic apparatus and control method thereof | |
KR20210141304A (en) | Image processing apparatus and operating method for the same | |
US20230071417A1 (en) | Image processing device and operation method thereof | |
US20220327811A1 (en) | System and method for composite training in machine learning architectures | |
CN112766277A (en) | Channel adjustment method, device and equipment of convolutional neural network model | |
US20220284555A1 (en) | Image processing apparatus and operation method thereof | |
KR20220037764A (en) | Image processing apparatus and operating method for the same | |
US11842273B2 (en) | Neural network processing | |
CN112132253A (en) | 3D motion recognition method and device, computer readable storage medium and equipment | |
KR20230034127A (en) | Image processing apparatus and operating method for the same | |
US20230169748A1 (en) | Image processing apparatus and operating method thereof | |
WO2024058682A1 (en) | Data processing method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |