KR20220125127A - Image processing apparatus and operating method for the same - Google Patents

Image processing apparatus and operating method for the same Download PDF

Info

Publication number
KR20220125127A
KR20220125127A KR1020210097304A KR20210097304A KR20220125127A KR 20220125127 A KR20220125127 A KR 20220125127A KR 1020210097304 A KR1020210097304 A KR 1020210097304A KR 20210097304 A KR20210097304 A KR 20210097304A KR 20220125127 A KR20220125127 A KR 20220125127A
Authority
KR
South Korea
Prior art keywords
kernel
gradient
image
pixel
kernels
Prior art date
Application number
KR1020210097304A
Other languages
Korean (ko)
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 CN202280018868.7A priority Critical patent/CN116997914A/en
Priority to EP22705003.6A priority patent/EP4083874A4/en
Priority to PCT/KR2022/002060 priority patent/WO2022186498A1/en
Priority to US17/687,162 priority patent/US20220284545A1/en
Publication of KR20220125127A publication Critical patent/KR20220125127A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • G06N3/0481
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Supplying Of Containers To The Packaging Station (AREA)

Abstract

The present invention relates to an image processing device, which comprises: a memory storing one or more instructions; and a processor executing the one or more instructions stored in the memory. The processor uses a convolutional neural network including one or more convolutional layers to obtain kernel coefficient information corresponding to each of the pixels included in a first image, generates a spatially variant kernel including a kernel corresponding to each of the pixels included in the first image based on a gradient kernel set including a plurality of gradient kernels corresponding to one or more gradient characteristics for a pixel and kernel coefficient information, and generates a second image by applying a kernel corresponding to each of the pixels included in the spatial variable kernel to an area centered on each of the pixels included in the first image and performing filtering.

Description

영상 처리 장치 및 그 동작방법{Image processing apparatus and operating method for the same}Image processing apparatus and operating method for the same

다양한 실시예들은 뉴럴 네트워크를 이용하여, 영상의 화질을 개선시키는 영상 처리 장치 및 그 동작 방법에 관한 것이다.Various embodiments relate to an image processing apparatus for improving image quality by 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 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.

뉴럴 네트워크는 인간의 생물학적 신경 세포의 특성을 수학적 표현에 의해 모델링한 것으로, 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용한다. 이 알고리즘을 통하여, 뉴럴 네트워크는 입력 데이터와 출력 데이터 사이의 사상(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 with respect to input data that has not been used for learning, based on the learned result.

심층 신경망(예를 들어, 층이 깊은 컨볼루션 뉴럴 네트워크(CNN: Convolution Neural Network))을 이용하여, 영상의 디노이징(denoising)과 같은 영상 처리를 수행하는 경우, 영상에 포함되는 픽셀들 각각에 동일한 커널(필터)을 적용하면, 영상 처리의 성능이 저하되는 문제점이 있다. 따라서, 영상 처리 시, 영상에 포함되는 픽셀들 각각의 그래디언트 특성에 따라 서로 다른 커널을 적용하여, 영상 처리를 수행할 필요가 있다.When image processing such as denoising of an image is performed using a deep neural network (eg, a deep convolutional neural network (CNN)), each pixel included in the image is If the same kernel (filter) is applied, there is a problem in that image processing performance is degraded. Therefore, during image processing, it is necessary to perform image processing by applying different kernels according to the gradient characteristics of each of the pixels included in the image.

다양한 실시예들은, 컨볼루션 뉴럴 네트워크를 이용하여, 영상에 포함된 픽셀들 각각의 그래디언트 특성에 따른 적응적인 영상 처리를 수행할 수 있는 영상 처리 장치 및 그 동작 방법을 제공할 수 있다.Various embodiments may provide an image processing apparatus capable of performing adaptive image processing according to a gradient characteristic of each pixel included in an image using a convolutional neural network, and an operating method thereof.

일 실시예에 따른 영상 처리 장치는, 하나 이상의 인스트럭션들을 저장하는 메모리, 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 상기 프로세서는, 하나 이상의 컨볼루션 레이어들을 포함하는 컨볼루션 뉴럴 네트워크를 이용하여, 제1 영상에 포함되는 픽셀들 각각에 대응하는 커널 계수 정보를 획득하고, 픽셀에 대한 하나 이상의 그래디언트 특성들에 대응하는 복수의 그래디언트 커널들을 포함하는 그래디언트 커널 셋과 상기 커널 계수 정보에 기초하여, 상기 제1 영상에 포함되는 상기 픽셀들 각각에 대응하는 커널을 포함하는 공간 가변 커널(spatially variant kernel)을 생성하고, 상기 제1 영상에 포함되는 상기 픽셀들 각각을 중심으로 하는 영역에 상기 공간 가변 커널에 포함되는, 상기 픽셀들 각각에 대응하는 커널을 적용하여 필터링을 수행함으로써, 제2 영상을 생성할 수 있다.An image processing apparatus according to an embodiment includes a memory storing one or more instructions, and a processor executing the one or more instructions stored in the memory, wherein the processor includes a convolutional neural network including one or more convolutional layers. Using a network, obtain kernel coefficient information corresponding to each of the pixels included in the first image, and a gradient kernel set including a plurality of gradient kernels corresponding to one or more gradient characteristics of the pixel and the kernel coefficient information based on , a spatially variant kernel including a kernel corresponding to each of the pixels included in the first image is generated, and a region centered on each of the pixels included in the first image The second image may be generated by performing filtering by applying a kernel corresponding to each of the pixels included in the spatially variable kernel to .

일 실시예에 따른 하나 이상의 그래디언트 특성들은, 픽셀이 나타내는 강도(strength) 특성, 각도(angle) 특성, 및 일관성(coherence) 중 적어도 하나를 포함할 수 있다.The one or more gradient characteristics according to an embodiment may include at least one of a strength characteristic, an angle characteristic, and coherence that the pixel represents.

일 실시예에 따른 복수의 그래디언트 커널들은, 저해상도 영상들과 상기 저해상도 영상들에 각각 대응하는 고해상도 영상들을 포함하는 훈련 데이터 셋을 이용하여 훈련되고, 상기 복수의 그래디언트 커널들은, 상기 저해상도 영상들에 포함되는 이미지 패치들의 그래디언트 특성들에 따라, 훈련될 수 있다.A plurality of gradient kernels according to an embodiment is trained using a training data set including low-resolution images and high-resolution images respectively corresponding to the low-resolution images, and the plurality of gradient kernels are included in the low-resolution images According to the gradient properties of the image patches to be trained, it can be trained.

일 실시예에 따른 복수의 그래디언트 커널들은, 상기 이미지 패치들이 나타내는 강도(strength) 특성, 각도(angle) 특성, 및 일관성(coherence)에 따라 훈련된 커널들을 포함할 수 있다.The plurality of gradient kernels according to an embodiment may include kernels trained according to strength characteristics, angle characteristics, and coherence indicated by the image patches.

일 실시예에 따른 제1 영상에 포함되는 하나의 픽셀에 대응하는 커널 계수 정보에 포함되는 커널 계수들의 개수는, 상기 그래디언트 커널 셋에 포함되는 상기 복수의 그래디언트 커널들의 개수와 동일하고, 상기 커널 계수 정보에 포함되는 커널 계수들 각각은, 상기 복수의 그래디언트 커널들 각각에 대응하는 가중치를 나타낼 수 있다.The number of kernel coefficients included in the kernel coefficient information corresponding to one pixel included in the first image according to an embodiment is the same as the number of the plurality of gradient kernels included in the gradient kernel set, and the kernel coefficients Each of the kernel coefficients included in the information may represent a weight corresponding to each of the plurality of gradient kernels.

일 실시예에 따른 공간 가변 커널은 상기 제1 영상에 포함되는 제1 픽셀에 대응하는 제1 커널 및 상기 제1 영상에 포함되는 제2 픽셀에 대응하는 제2 커널을 포함하며, 상기 프로세서는, 상기 제1 픽셀에 대한 제1 커널 계수 정보와 상기 복수의 그래디언트 커널들의 가중합을 수행하여, 상기 제1 커널을 생성하고, 상기 제2 픽셀에 대한 제2 커널 계수 정보와 상기 복수의 그래디언트 커널들의 가중합을 수행하여, 상기 제2 커널을 생성할 수 있다.A spatially variable kernel according to an embodiment includes a first kernel corresponding to a first pixel included in the first image and a second kernel corresponding to a second pixel included in the first image, wherein the processor comprises: The first kernel is generated by performing a weighted sum of first kernel coefficient information for the first pixel and the plurality of gradient kernels, and second kernel coefficient information for the second pixel and the plurality of gradient kernels are combined. By performing weighted summing, the second kernel may be generated.

일 실시예에 따른 프로세서는, 상기 제1 픽셀을 중심으로 하는 제1 영역에 상기 제1 커널을 적용하여, 필터링을 수행하고, 상기 제2 픽셀을 중심으로 하는 제2 영역에 상기 제2 커널을 적용하여, 필터링을 수행함으로써, 상기 제2 영상을 생성할 수 있다.The processor according to an embodiment performs filtering by applying the first kernel to a first region centered on the first pixel, and applies the second kernel to a second region centered on the second pixel. By applying and filtering, the second image may be generated.

일 실시예에 따른 프로세서는, 상기 제1 영상에 포함되는 적어도 하나의 영역에 대한 퀄리티 정보를 획득하고, 상기 퀄리티 정보에 기초하여, 복수의 그래디언트 커널 셋들 중, 상기 적어도 하나의 영역에 대응하는 상기 그래디언트 커널 셋을 선택하고, 상기 적어도 하나의 영역에 포함되는 적어도 하나의 픽셀에 대응하는 상기 커널 계수 정보와 상기 그래디언트 커널 셋에 기초하여, 상기 적어도 하나의 픽셀에 대응하는 커널을 생성할 수 있다.The processor according to an embodiment may be configured to obtain quality information on at least one region included in the first image, and based on the quality information, the processor corresponding to the at least one region among a plurality of gradient kernel sets. A gradient kernel set may be selected, and a kernel corresponding to the at least one pixel may be generated based on the kernel coefficient information corresponding to the at least one pixel included in the at least one region and the gradient kernel set.

일 실시예에 따른 프로세서는, 상기 제1 영상에 포함되는 제1 영역에 대한 제1 퀄리티 정보를 획득하고, 상기 복수의 그래디언트 커널 셋들 중 상기 제1 퀄리티 정보에 대응하는 제1 그래디언트 커널 셋과, 상기 제1 영역에 포함되는 제1 픽셀에 대응하는 제1 커널 계수 정보에 기초하여, 상기 제1 픽셀에 대응하는 제1 커널을 생성하며, 상기 제1 영상에 포함되는 제2 영역에 대한 제2 퀄리티 정보를 획득하고, 상기 복수의 그래디언트 커널 셋들 중 상기 제2 퀄리티 정보에 대응하는 제2 그래디언트 커널 셋과, 상기 제2 영역에 포함되는 제2 픽셀에 대응하는 제2 커널 계수 정보에 기초하여, 상기 제2 픽셀에 대응하는 제2 커널을 생성할 수 있다.The processor according to an embodiment obtains first quality information on a first region included in the first image, and includes a first gradient kernel set corresponding to the first quality information among the plurality of gradient kernel sets; A first kernel corresponding to the first pixel is generated based on first kernel coefficient information corresponding to a first pixel included in the first area, and a second kernel corresponding to the second area included in the first image is generated. Obtaining quality information, based on a second gradient kernel set corresponding to the second quality information among the plurality of gradient kernel sets, and second kernel coefficient information corresponding to a second pixel included in the second region, A second kernel corresponding to the second pixel may be generated.

일 실시예에 따른 영상 처리 장치의 동작 방법은, 하나 이상의 컨볼루션 레이어들을 포함하는 컨볼루션 뉴럴 네트워크를 이용하여, 제1 영상에 포함되는 픽셀들 각각에 대응하는 커널 계수 정보를 획득하는 단계, 픽셀에 대한 하나 이상의 그래디언트 특성들에 대응하는 복수의 그래디언트 커널들을 포함하는 그래디언트 커널 셋과 상기 커널 계수 정보에 기초하여, 상기 제1 영상에 포함되는 상기 픽셀들 각각에 대응하는 커널을 포함하는 공간 가변 커널(spatially variant kernel)을 생성하는 단계, 및 상기 제1 영상에 포함되는 상기 픽셀들 각각을 중심으로 하는 영역에, 상기 공간 가변 커널에 포함되는, 상기 픽셀들 각각에 대응하는 커널을 적용하여 필터링을 수행함으로써, 제2 영상을 생성하는 단계를 포함할 수 있다.According to an exemplary embodiment, a method of operating an image processing apparatus includes: obtaining kernel coefficient information corresponding to each of pixels included in a first image by using a convolutional neural network including one or more convolutional layers; A spatially variable kernel including a gradient kernel set including a plurality of gradient kernels corresponding to one or more gradient characteristics of , and a kernel corresponding to each of the pixels included in the first image based on the kernel coefficient information generating a (spatially variant kernel), and filtering by applying a kernel corresponding to each of the pixels included in the spatially variable kernel to an area centered on each of the pixels included in the first image By doing so, the method may include generating a second image.

일 실시예에 따른 영상 처리 장치는, 영상에 포함되는 복수의 픽셀들 각각의 그래디언트 특성에 따라 서로 다른 커널(필터)을 적용함으로써, 픽셀의 그래디언트 특성에 따른 적응적인 영상 처리가 가능하다.The image processing apparatus according to an embodiment may apply different kernels (filters) according to the gradient characteristics of each of a plurality of pixels included in an image, thereby enabling adaptive image processing according to the gradient characteristics of the pixels.

일 실시예에 따른 영상 처리 장치는 컨볼루션 뉴럴 네트워크를 이용하여, 입력 영상의 세밀한 가장자리(edge)와 텍스쳐를 유지하면서 노이즈를 제거하는, 디노이징(denosing)을 수행할 수 있다.The image processing apparatus according to an embodiment may perform denoising by using a convolutional neural network to remove noise while maintaining fine edges and textures of the input image.

일 실시예에 따른 영상에 포함되는 영역 별로, 퀄리티 정보에 따라 서로 다른 커널을 적용하여, 영상 처리를 수행함으로써, 영상 처리의 성능이 향상될 수 있다.According to an embodiment, by performing image processing by applying different kernels according to quality information to each region included in an image, image processing performance may be improved.

도 1은 일 실시예에 따른 영상 처리 장치가 영상 처리 네트워크를 이용하여 영상을 처리하는 동작을 나타내는 도면이다.
도 2는 일 실시예에 따른 영상 처리 네트워크를 나타내는 도면이다.
도 3은 일 실시예에 따른 커널 계수 정보를 획득하는 방법을 설명하기 위해 참조되는 도면이다.
도 4 및 도 5는 일 실시예에 따른 컨볼루션 레이어에서 수행되는 컨볼루션 연산을 설명하기 위해 참조되는 도면들이다.
도 6은 일 실시예에 따른 공간 가변 커널을 생성하는 방법을 설명하기 위해 참조되는 도면이다.
도 7은 다른 실시예에 따른 공간 가변 커널을 생성하는 방법을 설명하기 위해 참조되는 도면이다.
도 8은 일 실시예에 따른 제1 영상에 공간 가변 커널을 적용하는 방법을 설명하기 위해 참조되는 도면이다.
도 9는 일 실시예에 따른 영상 처리 장치의 동작 방법을 나타내는 흐름도이다.
도 10은 다른 실시예에 따른 영상 처리 장치의 동작 방법을 나타내는 흐름도이다.
도 11은 일 실시예에 따른 영상 처리 장치의 구성을 나타내는 블록도이다.
1 is a diagram illustrating an operation of an image processing apparatus processing an image using an image processing network according to an exemplary embodiment.
2 is a diagram illustrating an image processing network according to an exemplary embodiment.
3 is a diagram referenced to describe a method of obtaining kernel coefficient information according to an embodiment.
4 and 5 are diagrams referenced to describe a convolution operation performed in a convolution layer according to an embodiment.
6 is a diagram referenced to describe a method of generating a spatially variable kernel according to an embodiment.
7 is a diagram referenced to describe a method of generating a spatially variable kernel according to another embodiment.
8 is a diagram referenced to describe a method of applying a spatially variable kernel to a first image according to an exemplary embodiment.
9 is a flowchart illustrating a method of operating an image processing apparatus according to an exemplary embodiment.
10 is a flowchart illustrating a method of operating an image processing apparatus according to another 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.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.In the entire specification, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, 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 several 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 an operation of an image processing apparatus processing an image using an image processing network according to an exemplary embodiment.

도 1을 참조하면, 일 실시예에 따른 영상 처리 네트워크(30)는 제1 영상(10)을 입력 받아, 제1 영상(10)을 처리함으로써, 제2 영상(20)을 생성할 수 있다. 이때, 제1 영상(10)은 노이즈를 포함하는 영상이거나, 저해상도 영상일 수 있다. 영상 처리 장치(100)는 영상 처리 네트워크(30)를 이용하여, 제1 영상(10)의 세밀한 가장자리(edge)와 텍스쳐를 유지하면서 노이즈를 제거하는 디노이징(denosing)을 수행함으로써, 제2 영상(20)을 생성할 수 있다. 제2 영상(20)은 제1 영상(10)보다 고해상도 영상일 수 있으며, 제1 영상(10)보다 화질이 개선된 영상일 수 있다.Referring to FIG. 1 , an image processing network 30 according to an embodiment may receive a first image 10 and process the first image 10 to generate a second image 20 . In this case, the first image 10 may be an image including noise or a low-resolution image. The image processing apparatus 100 uses the image processing network 30 to perform denoising to remove noise while maintaining the fine edges and textures of the first image 10 , thereby performing a second image (20) can be created. The second image 20 may be a higher-resolution image than the first image 10 , and may be an image with improved image quality compared to the first image 10 .

일 실시예에 따른 영상 처리 네트워크(30)에서 수행되는 영상 처리에 대해서는 이하 도면들을 참조하여 자세히 설명하기로 한다.The image processing performed by the image processing network 30 according to an embodiment will be described in detail with reference to the drawings below.

도 2는 일 실시예에 따른 영상 처리 네트워크를 나타내는 도면이다.2 is a diagram illustrating an image processing network according to an exemplary embodiment.

도 2를 참조하면, 일 실시예에 따른 영상 처리 네트워크(30)는 커널 계수 생성부(210), 공간 가변 커널 생성부(220), 및 필터부(230)를 포함할 수 있다.Referring to FIG. 2 , the image processing network 30 according to an embodiment may include a kernel coefficient generator 210 , a spatially variable kernel generator 220 , and a filter unit 230 .

일 실시예에 따른 영상 처리 네트워크(30)는 제1 영상(10)을 입력 받아, 제2 영상(20)을 출력하는 구조를 포함할 수 있다.The image processing network 30 according to an embodiment may include a structure for receiving the first image 10 and outputting the second image 20 .

일 실시예에 따른 커널 계수 생성부(210)는 제1 영상(10)에 포함되는 픽셀들 각각에 대응하는 커널 계수 정보를 획득할 수 있다. 커널 계수 정보를 획득하는 방법에 대해서는 도 3을 참조하여, 자세히 설명하기로 한다.The kernel coefficient generator 210 according to an embodiment may obtain kernel coefficient information corresponding to each of the pixels included in the first image 10 . A method of obtaining kernel coefficient information will be described in detail with reference to FIG. 3 .

도 3은 일 실시예에 따른 커널 계수 정보를 획득하는 방법을 설명하기 위해 참조되는 도면이다.3 is a diagram referenced to describe a method of obtaining kernel coefficient information according to an embodiment.

도 3을 참조하면, 커널 계수 생성부(210)는 컨볼루션 뉴럴 네트워크(300)를 이용하여, 커널 계수 정보를 획득할 수 있다. 커널 계수 생성부(210)에 입력된 제1 영상(10)이 컨볼루션 뉴럴 네트워크(300)를 통과함으로써, 커널 계수 생성부(210)로부터 커널 계수 정보(340)가 출력될 수 있다.Referring to FIG. 3 , the kernel coefficient generator 210 may obtain kernel coefficient information by using the convolutional neural network 300 . As the first image 10 input to the kernel coefficient generator 210 passes through the convolutional neural network 300 , the kernel coefficient information 340 may be output from the kernel coefficient generator 210 .

일 실시예에 따른 컨볼루션 뉴럴 네트워크(300)는 하나 이상의 컨볼루션 레이어들(310), 하나 이상의 활성화 레이어들(320)을 포함할 수 있다. 이때, 활성화 레이어들 각각은 컨볼루션 레이어 다음에 위치할 수 있다.The convolutional neural network 300 according to an embodiment may include one or more convolutional layers 310 and one or more activation layers 320 . In this case, each of the activation layers may be located after the convolution layer.

컨볼루션 뉴럴 네트워크(300)에 포함되는 첫번째 레이어에 제1 영상(10)이 입력되고, 나머지 레이어들에 이전 레이어로부터 출력된 값들이 입력 될 수 있다. 컨볼루션 뉴럴 네트워크(300)는 레이어들 각각에서 연산을 수행하여 결과 값들을 획득하고, 획득된 결과 값들을 다음 레이어로 출력하는 구조를 가진다. 예를 들어, 컨볼루션 레이어(310)에서는 컨볼루션 레이어(310)에 포함된 커널과 컨볼루션 레이어(310)에 입력된 값들과의 컨볼루션 연산이 수행될 수 있다. 컨볼루션 레이어(310)에서 수행되는 연산은 도 4 및 도 5를 참조하여, 자세히 설명하기로 한다.The first image 10 may be input to the first layer included in the convolutional neural network 300 , and values output from the previous layer may be input to the remaining layers. The convolutional neural network 300 has a structure in which operation is performed in each of the layers to obtain result values, and the obtained result values are output to the next layer. For example, in the convolutional layer 310 , a convolution operation between a kernel included in the convolutional layer 310 and values input to the convolutional layer 310 may be performed. An operation performed in the convolution layer 310 will be described in detail with reference to FIGS. 4 and 5 .

도 4 및 도 5는 일 실시예에 따른 컨볼루션 레이어에서 수행되는 컨볼루션 연산을 설명하기 위해 참조되는 도면들이다.4 and 5 are diagrams referenced to describe a convolution operation performed in a convolution layer according to an embodiment.

도 4는 일 실시예에 따른 컨볼루션 레이어(310)로 입력되는 입력 영상(또는 입력 특징 맵, F_in), 컨볼루션 레이어(310)에 포함되는 커널(Kernel) 및 컨볼루션 레이어(310)로부터 출력되는 출력 영상(또는, 출력 특징 맵, F_out)을 나타내는 도면이다.4 is an input image (or an input feature map, F_in) input to the convolution layer 310, a kernel included in the convolution layer 310, and output from the convolution layer 310 according to an embodiment. It is a diagram showing an output image (or an output feature map, F_out) to be used.

도 4를 참조하면, 일 실시예에 따른 컨볼루션 레이어(310)로 입력되는 입력 영상(F_in)의 크기는 W x H 일 수 있으며, 채널 수는 Cin일 수 있다. 또한, 컨볼루션 레이어(310)는 커널(Kernel)을 포함하며, 커널(Kernel)은 Cout개의 서브 커널들을 포함할 수 있다. 또한, 하나의 서브 커널은 Kw x Kh x Cin의 크기를 가질 수 있다. 하나의 서브 커널의 채널 수(Cin)는 입력 영상(F_in)의 채널 수(Cin)와 동일할 수 있다. 컨볼루션 레이어(310)는 입력 영상(F_in)과 커널(Kernel)과의 컨볼루션 연산을 수행함으로써, 출력 영상(F_out)을 생성할 수 있다. 이때, 출력 영상(F_out)의 크기는 W x H일 수 있으며, 출력 영상(F_out)의 채널의 개수는 커널(Kernel)의 서브 커널들의 개수(Cout)에 의해 결정될 수 있다.Referring to FIG. 4 , the size of the input image F_in input to the convolutional layer 310 according to an embodiment may be W x H, and the number of channels may be C in . In addition, the convolution layer 310 may include a kernel, and the kernel may include C out sub-kernels. Also, one sub-kernel may have a size of Kw x Kh x C in . The number of channels C in of one sub-kernel may be the same as the number of channels C in of the input image F_in. The convolution layer 310 may generate an output image F_out by performing a convolution operation between the input image F_in and the kernel. In this case, the size of the output image F_out may be W x H, and the number of channels of the output image F_out may be determined by the number of sub-kernels C out of the kernel.

도 5는 일 실시예에 따른 입력 영상(F_in)과 커널(Kernel)에 포함된 제1 서브 커널(410)과의 컨볼루션 연산을 통해, 출력 영상(F_out)의 제1 채널 영상(420)이 생성되는 과정을 설명하기 위해 참조되는 도면이다.5 is a first channel image 420 of an output image F_out through a convolution operation between the input image F_in and the first sub-kernel 410 included in the kernel, according to an embodiment. It is a drawing referenced to describe the process of creation.

도 5에서는 설명의 편의를 위해, 입력 영상(F_in)이 5 x 5의 크기를 가지며, 채널의 개수는 1인 것으로 가정한다. 또한, 입력 영상(F_in))에 적용되는 커널(Kernel)에 포함되는 하나의 서브 커널은 3 x 3의 크기를 가지며, 채널의 개수(Cin)는 1인 것으로 가정한다.In FIG. 5 , for convenience of explanation, it is assumed that the input image F_in has a size of 5×5 and the number of channels is 1. In addition, it is assumed that one sub-kernel included in the kernel applied to the input image F_in) has a size of 3 x 3, and the number of channels Cin is 1.

도 5를 참조하면, 입력 영상(F_in)의 좌측 상단으로부터 우측 하단까지 제1 서브 커널(410)을 적용하여, 입력 영상(F_in)의 특징을 추출하는 과정이 도시되어 있다. 이때, 제1 서브 커널(410)은 3 x 3의 크기를 가지며, 채널 수는 1이다. 예를 들어, 컨볼루션 레이어(310)는 입력 영상(F_in)의 좌측 상단 3 x 3 영역(821)에 포함되는 픽셀들에 제1 서브 커널(410)을 적용하여 컨볼루션 연산을 수행할 수 있다. Referring to FIG. 5 , a process of extracting features of the input image F_in by applying the first sub-kernel 410 from the upper left to the lower right of the input image F_in is illustrated. In this case, the first sub-kernel 410 has a size of 3 x 3, and the number of channels is 1. For example, the convolution layer 310 may perform a convolution operation by applying the first sub-kernel 410 to pixels included in the upper left 3×3 region 821 of the input image F_in. .

즉, 컨볼루션 레이어(310)는 좌측 상단 3 x 3 영역(521)에 포함되는 픽셀 값들과 제1 서브 커널(410)에 포함되는 파라미터 값들을 곱하여 합산함으로써, 좌측 상단 3 x 3 영역(521) 매핑되는 하나의 픽셀 값(531)을 생성할 수 있다.That is, the convolution layer 310 multiplies and sums pixel values included in the upper left 3 x 3 region 521 by parameter values included in the first sub-kernel 410 , thereby forming the upper left 3 x 3 region 521 . One pixel value 531 to be mapped may be generated.

또한, 컨볼루션 레이어(310)는 입력 영상(F_in)의 좌측 상단 3 x 3 영역(521)에서 우측으로 한 픽셀 이동시킨 3 x 3 영역(522)에 포함되는 픽셀 값들과 제1 서브 커널(410)에 포함되는 파라미터 값들을 곱하여 합산함으로써, 3 x 3 영역(522)에 매핑되는 하나의 픽셀 값(532)을 생성할 수 있다. In addition, the convolutional layer 310 includes pixel values included in the 3x3 region 522 moved one pixel to the right from the upper left 3x3 region 521 of the input image F_in and the first sub-kernel 410 . ) by multiplying and summing parameter values included in ), one pixel value 532 mapped to the 3×3 area 522 may be generated.

동일한 방식으로, 컨볼루션 레이어(310)는 입력 영상(F_in) 내에서 제1 서브 커널(410)을 좌측에서 우측으로, 상단에서 하단으로 한 픽셀씩 슬라이딩하면서, 제1 서브 커널(410)에 포함되는 파라미터 값들과 입력 영상(F_in)의 픽셀값들을 곱하여 합산함으로써, 출력 영상(F_out)의 제1 채널 영상(420)에 포함되는 픽셀 값들을 생성할 수 있다. 이때, 컨볼루션 연산의 대상이 되는 데이터는 한 픽셀씩 이동하면서 샘플링될 수도 있으나, 2개 이상의 픽셀 개수만큼 이동하면서 샘플링될 수도 있다. 샘플링 과정에서 샘플링된 픽셀들의 간격의 크기를 스트라이드(stride)라고 하며, 스트라이드의 크기에 따라 출력되는 출력 영상(F_out)의 크기가 결정될 수 있다. 또한, 도 5에 도시된 바와 같이, 출력 영상(F_out)의 크기를 입력 영상(F_in)과 동일하게 하기 위해서는 패딩이 수행될 수 있다. 패딩은 출력되는 출력 영상(F_out)의 크기가 작아지는 것을 방지하기 위하여, 입력 영상(F_in)의 가장자리에 특정 값(예를 들어, '0')을 주어, 입력 영상(F_in)의 사이즈를 증가시키는 것을 의미한다. 패딩을 수행한 후, 컨볼루션 연산을 수행하면, 출력 영상(F_out)의 크기가 입력 영상(F_in)의 크기와 동일할 수 있다. 다만, 이에 한정되지 않는다.In the same manner, the convolution layer 310 is included in the first sub-kernel 410 while sliding the first sub-kernel 410 from left to right and from top to bottom one pixel at a time in the input image F_in. The pixel values included in the first channel image 420 of the output image F_out may be generated by multiplying and summing the parameter values of the input image F_in and the pixel values of the input image F_in. In this case, the data to be subjected to the convolution operation may be sampled while moving one pixel at a time, or may be sampled while moving by the number of two or more pixels. A size of an interval between pixels sampled in the sampling process is referred to as a stride, and the size of the output image F_out may be determined according to the size of the stride. Also, as shown in FIG. 5 , padding may be performed to make the size of the output image F_out equal to that of the input image F_in. The padding increases the size of the input image F_in by giving a specific value (eg, '0') to the edge of the input image F_in to prevent the size of the output image F_out from being reduced. means to do If a convolution operation is performed after padding, the size of the output image F_out may be the same as the size of the input image F_in. However, the present invention is not limited thereto.

한편, 도 5에는 제1 서브 커널(410)에 대한 컨볼루션 연산 결과(출력 영상(F_out)의 제1 채널 영상(420))만 도시하였지만, Cout개의 서브 커널들에 대해서, 컨볼루션 연산을 수행하는 경우, Cout개의 채널 영상들을 포함하는 출력 영상(F_out)이 출력될 수 있다. 즉, 커널(Kernel)에 포함되는 서브 커널들의 개수에 따라, 출력 영상(F_out)의 채널 수가 결정될 수 있다.Meanwhile, although FIG. 5 shows only the result of the convolution operation for the first sub-kernel 410 (the first channel image 420 of the output image F_out), the convolution operation is performed on Cout sub-kernels. In this case, an output image F_out including Cout number of channel images may be output. That is, the number of channels of the output image F_out may be determined according to the number of sub-kernels included in the kernel.

다시, 도 3을 참조하면, 컨볼루션 레이어(310) 다음에는 활성화 레이어(320)가 위치할 수 있다.Again, referring to FIG. 3 , the activation layer 320 may be positioned after the convolution layer 310 .

일 실시예에 따른 활성화 레이어(320)에서는 활성화 레이어(320)에 입력된 값들에 활성화 함수를 적용하는 연산이 수행될 수 있다. 활성화 함수 연산은 제1 특징 정보에 대해 비선형(non-linear) 특성을 부여하는 것으로, 활성화 함수는, 시그모이드 함수(sigmoid function), Tanh 함수, ReLU(Rectified Linear Unit) 함수, leaky ReLu 함수 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.In the activation layer 320 according to an embodiment, an operation for applying an activation function to values input to the activation layer 320 may be performed. The activation function calculation is to give a non-linear characteristic to the first characteristic information, and the activation function is a sigmoid function, a Tanh function, a Rectified Linear Unit (ReLU) function, a leaky ReLu function, etc. may include, but is not limited thereto.

또한, 컨볼루션 뉴럴 네트워크(300)는 요소별 합산 연산을 수행하는 레이어(330)를 더 포함할 수 있다.Also, the convolutional neural network 300 may further include a layer 330 that performs an element-by-element summation operation.

요소별 합산 연산은 요소별 합산 레이어(330)에 입력된 제1 입력 정보에 포함되는 값들 각각과 제2 입력 정보에 포함되는 값들 각각을 합산할 때, 동일한 위치에 있는 값들끼리 더하는 연산이다.The element-by-element summing operation is an operation of adding values at the same position when each of the values included in the first input information input to the element-by-element summing layer 330 and each of the values included in the second input information are summed.

도 3을 참조하면, 컨볼루션 뉴럴 네트워크(300)로 입력된 제1 영상(10)이 컨볼루션 뉴럴 네트워크(300)에 포함된 하나 이상의 컨볼루션 레이어들(310), 하나 이상의 활성화 레이어들(320), 하나 이상의 요소별 합산 연산을 수행하는 레이어들(330)을 통과함으로써, 제1 영상(10)에 포함되는 픽셀들 각각에 대응하는 커널 계수 정보(340)가 출력될 수 있다. 이때, 제1 영상(10)의 크기는 W x H이고, 제1 영상(10)에 대응하는 커널 계수 정보(340)의 크기는 W x H 이고, 채널 수가 N개일 수 있다. 이때, N은, 후술하는 그래디언트 커널 셋에 포함되는 복수의 그래디언트 커널들의 개수에 기초하여 결정될 수 있다. 이에 대해서는, 도 6에서 자세히 설명하기로 한다.Referring to FIG. 3 , the first image 10 input to the convolutional neural network 300 includes one or more convolutional layers 310 and one or more activation layers 320 included in the convolutional neural network 300 . ), the kernel coefficient information 340 corresponding to each of the pixels included in the first image 10 may be output by passing through the layers 330 that perform the summation operation for each element or more. In this case, the size of the first image 10 may be W x H, the size of the kernel coefficient information 340 corresponding to the first image 10 may be W x H, and the number of channels may be N. In this case, N may be determined based on the number of a plurality of gradient kernels included in a gradient kernel set to be described later. This will be described in detail with reference to FIG. 6 .

다시, 도 2를 참조하면, 일 실시예에 따른 공간 가변 커널 생성부(220)는 커널 계수 생성부(210)에서 생성된 커널 계수 정보(340)와 그래디언트 커널 셋에 기초하여, 공간 가변 커널을 생성할 수 있다. Referring again to FIG. 2 , the spatially variable kernel generating unit 220 according to an embodiment generates a spatially variable kernel based on the kernel coefficient information 340 and the gradient kernel set generated by the kernel coefficient generating unit 210 . can create

일 실시예에 따른 공간 가변 커널을 생성하는 방법에 대해서는 도 6을 참조하여, 자세히 설명하기로 한다.A method of generating a spatially variable kernel according to an embodiment will be described in detail with reference to FIG. 6 .

도 6은 일 실시예에 따른 공간 가변 커널을 생성하는 방법을 설명하기 위해 참조되는 도면이다.6 is a diagram referenced to describe a method of generating a spatially variable kernel according to an embodiment.

일 실시예에 따른 그래디언트 커널 셋(610)은 픽셀이 가지는 하나 이상의 그래디언트 특성들의 조합에 대응하는 복수의 그래디언트 커널들을 포함할 수 있다. 픽셀이 가지는 하나 이상의 그래디언트 특성들은, 픽셀에서 나타나는 가장자리(edge)의 특성에 기초하여 결정될 수 있다. 일 실시예에 따른 그래디언트 특성들은, 강도(strength) 특성, 각도(angle) 특성, 및 일관성(coherence) 중 적어도 하나를 포함할 수 있다. The gradient kernel set 610 according to an embodiment may include a plurality of gradient kernels corresponding to a combination of one or more gradient characteristics of a pixel. One or more gradient characteristics of the pixel may be determined based on characteristics of an edge appearing in the pixel. The gradient characteristics according to an embodiment may include at least one of a strength characteristic, an angle characteristic, and coherence.

본 개시의 실시예들에서는, 설명의 편의를 위하여, 픽셀이 가지는 그래디언트 특성들은 강도(strength) 특성, 각도(angle) 특성, 및 일관성(coherence)을 포함하는 것으로 설명하나, 이에 한정되지 않는다. 예를 들어, 가장자리(edge)가 날카로울수록 더 큰 강도를 가지도록 강도 특성이 결정될 수 있다. 각도 특성은, 가장자리의 방향을 나타낼 수 있다. 일관성은 가장자리의 방향성의 척도(a measure of how directional the edge is)를 나타낼 수 있다. 가장자리가 곡선인 경우보다 직선인 경우, 일관성이 높게 나타난다.In embodiments of the present disclosure, for convenience of description, it is described that the gradient characteristics of a pixel include a strength characteristic, an angle characteristic, and coherence, but is not limited thereto. For example, the strength characteristic may be determined such that the sharper the edge, the greater the strength. The angular characteristic may indicate the direction of the edge. Consistency may represent a measure of how directional the edge is. When the edge is straight, the consistency is higher than when it is curved.

또한, 일 실시예에 따른 그래디언트 특성들은 픽셀의 그래디언트 값에 대한 고유 성분 분석(Eigen analysis)을 통하여, 계산된 고유 값들(eigne values) 및 고유 벡터들(eigen vector)에 기초하여, 결정될 수 있다.Also, the gradient characteristics according to an embodiment may be determined based on eigen values and eigen vectors calculated through eigen analysis on the gradient value of the pixel.

그래디언트 커널 셋(610)은 기 학습된 데이터일 수 있다. 이때, 그래디언트 커널 셋(610)의 학습은 일 실시예에 따른 영상 처리 장치(100) 또는 외부 장치에서 수행될 수 있다. 그래디언트 커널 셋(610)의 학습이 외부 장치에서 수행되는 경우, 외부 장치는 영상 처리 장치(100)로 기 학습된 그래디언트 커널 셋(610)을 전송할 수 있다. 다만, 이에 한정되지 않는다.The gradient kernel set 610 may be pre-learned data. In this case, learning of the gradient kernel set 610 may be performed in the image processing apparatus 100 or an external device according to an embodiment. When the learning of the gradient kernel set 610 is performed in the external device, the external device may transmit the previously learned gradient kernel set 610 to the image processing apparatus 100 . However, the present invention is not limited thereto.

그래디언트 커널 셋(610)은, 저해상도 영상들과 저해상도 영상들에 각각 대응하는 고해상도 영상들을 포함하는 학습 데이터 셋을 이용하여, 학습될 수 있다. 예를 들어, 저해상도 영상을 필터링하여 고해상도 영상을 생성하기 위해, 저해상도 영상에 포함되는 복수의 이미지 패치들의 그래디언트 특성들에 따른 커널(필터)들이 훈련을 통하여 결정될 수 있다. 이때, 기계 학습 방법을 이용하여, 이미지 패치들이 가지는 그래디언트 특성들의 조합에 대응되는 그래디언트 커널들이 훈련될 수 있으나, 이에 한정되지 않는다. The gradient kernel set 610 may be learned by using a training data set including low-resolution images and high-resolution images respectively corresponding to the low-resolution images. For example, in order to generate a high-resolution image by filtering the low-resolution image, kernels (filters) according to gradient characteristics of a plurality of image patches included in the low-resolution image may be determined through training. In this case, gradient kernels corresponding to a combination of gradient characteristics of image patches may be trained using the machine learning method, but is not limited thereto.

그래디언트 커널 셋(610)에 포함되는 복수의 그래디언트 커널들의 개수는 각 그래디언트 특성의 변화에 따른 그래디언트 커널의 개수에 기초하여 결정될 수 있다. 예를 들어, 픽셀의 제1 그래디언트 특성(θ, 예를 들어, 각도 특성) 값들의 변화에 따른 그래디언트 커널의 개수가 N1, 픽셀의 제2 그래디언트 특성(λ, 예를 들어, 강도 특성) 값들의 변화에 따른 그래디언트 커널의 개수가 N2, 픽셀의 제3 그래디언트 특성(μ, 예를 들어, 일관성) 값들의 변화에 따른 그래디언트 커널의 개수가 N3인 경우, 그래디언트 커널 셋(610)은, N1 x N2 x N3개의 그래디언트 커널들을 포함할 수 있다. 또한, 하나의 그래디언트 커널(Kj)의 크기는 K x K일 수 있다. The number of the plurality of gradient kernels included in the gradient kernel set 610 may be determined based on the number of gradient kernels according to a change in each gradient characteristic. For example, the number of gradient kernels according to changes in the values of the first gradient characteristic (θ, for example, the angular characteristic) of the pixel is N1, the second gradient characteristic (λ, for example, the intensity characteristic) of the pixel values When the number of gradient kernels according to the change is N2 and the number of gradient kernels according to the change in the third gradient characteristic (μ, for example, consistency) values of the pixel is N3, the gradient kernel set 610 is N1 x N2 x N3 gradient kernels. Also, the size of one gradient kernel Kj may be K x K.

도 6을 참조하면, 일 실시예에 따른 공간 가변 커널 생성부(220)는 커널 계수 생성부(210)에서 생성된 커널 계수 정보(340)와 그래디언트 커널 셋(610)에 기초하여, 공간 가변 커널을 생성할 수 있다. Referring to FIG. 6 , the spatially variable kernel generating unit 220 according to an embodiment is configured to generate a spatially variable kernel based on the kernel coefficient information 340 and the gradient kernel set 610 generated by the kernel coefficient generating unit 210 . can create

커널 계수 정보(340)는, 픽셀들 각각에 대응하는 N개의 커널 계수들을 포함할 수 있다. 예를 들어, 도 6에 도시된 바와 같이, 하나의 픽셀은 N개의 커널 계수들(621)을 포함할 수 있다. 이때, N은 N1 x N2 x N3일 수 있다. 제1 영상에 포함되는 픽셀들 각각에 대응하는 커널 계수 정보(340)는 다음의 수학식 1로 나타낼 수 있다.The kernel coefficient information 340 may include N kernel coefficients corresponding to each of the pixels. For example, as shown in FIG. 6 , one pixel may include N kernel coefficients 621 . In this case, N may be N1 x N2 x N3. The kernel coefficient information 340 corresponding to each of the pixels included in the first image may be expressed by Equation 1 below.

Figure pat00001
Figure pat00001

이때, Ci는 픽셀 Pi에 대응하는 커널 계수 정보를 나타낸다. 예를 들어, 제1 영상에 포함되는 픽셀들 중 제1 픽셀(P1)에 대응하는 제1 커널 계수 정보(C1)는 N개의 커널 계수들(C11, C12, ..., C1N)을 포함할 수 있다.In this case, C i represents kernel coefficient information corresponding to the pixel P i . For example, the first kernel coefficient information C 1 corresponding to the first pixel P 1 among pixels included in the first image includes the N kernel coefficients C 11 , C 12 , ..., C 1N ) may be included.

또한, 그래디언트 커널 셋(610)은 N개의 그래디언트 커널들을 포함할 수 있으며, 이때, N은 N1 x N2 x N3일 수 있다. 그래디언트 커널 셋(610)은 다음의 수학식 2로 나타낼 수 있다.Also, the gradient kernel set 610 may include N gradient kernels, where N may be N1 x N2 x N3. The gradient kernel set 610 may be expressed by Equation 2 below.

Figure pat00002
Figure pat00002

하나의 픽셀에 대응하는 N개의 커널 계수들 각각은 그래디언트 커널 셋(610)에 포함되는 N개의 복수의 그래디언트 커널들 각각에 대응하는 가중치를 나타낸다.Each of the N kernel coefficients corresponding to one pixel represents a weight corresponding to each of the N gradient kernels included in the gradient kernel set 610 .

일 실시예에 따른 공간 가변 커널 생성부(220)는 수학식 3과 같이, 커널 계수 정보와 복수의 그래디언트 커널들의 가중합을 수행하여, 제1 영상에 포함되는 픽셀들 각각에 대응하는 커널을 생성할 수 있다.The spatially variable kernel generator 220 according to an embodiment generates a kernel corresponding to each of the pixels included in the first image by performing weighted summing of the kernel coefficient information and the plurality of gradient kernels as shown in Equation 3 can do.

Figure pat00003
Figure pat00003

수학식 3에서, Kpi는 픽셀 Pi에 대응하는 커널을 나타내며, Cij는 픽셀 Pi에 대응하는 커널 계수들을 나타내고, Kj는 복수의 그래디언트 커널들을 나타낸다. 이때, 픽셀들 각각에 대응하는 Kpi는 Kj와 동일하게 K x K 크기를 가질 수 있다.In Equation 3, K pi represents a kernel corresponding to pixel P i , C ij represents kernel coefficients corresponding to pixel P i , and K j represents a plurality of gradient kernels. In this case, K pi corresponding to each of the pixels may have the same size as K x K as K j .

픽셀 별로 생성된 K x K 크기를 가지는 커널을 1 x 1 x K2의 크기를 가지는 커널 벡터(631)의 형태로 나타내는 경우, 제1 영상(10)에 대응하는 공간 가변 커널(650)은 도 6에 도시된 바와 같이, 크기가 W x H이고, 채널 수가 K2개로 나타날 수 있다. 다만, 도 6에 도시된 공간 가변 커널(650)은 일 예시일 뿐, 이에 한정되지 않으며, 실시예에 따라 다양한 형태로 나타날 수 있다.When a kernel having a size of K x K generated for each pixel is represented in the form of a kernel vector 631 having a size of 1 x 1 x K 2 , the spatially variable kernel 650 corresponding to the first image 10 is shown in FIG. As shown in Fig. 6, the size is W x H, and the number of channels may be K2. However, the spatially variable kernel 650 illustrated in FIG. 6 is only an example, and is not limited thereto, and may appear in various forms according to embodiments.

다시 도 2를 참조하면, 공간 가변 커널 생성부(220)는 생성된 공간 가변 커널(650)을 필터부(230)로 출력할 수 있다. 필터부(230)는 제1 영상(10)을 입력 받아, 제1 영상(10)에 공간 가변 커널을 적용함으로써, 제2 영상(20)을 생성할 수 있다. 제1 영상(10)에 공간 가변 커널(650)을 적용하여, 제2 영상(20)을 생성하는 방법에 대해서는 도 8을 참조하여, 자세히 설명하기로 한다.Referring back to FIG. 2 , the spatially variable kernel generator 220 may output the generated spatially variable kernel 650 to the filter 230 . The filter unit 230 may generate the second image 20 by receiving the first image 10 and applying a spatially variable kernel to the first image 10 . A method of generating the second image 20 by applying the spatially variable kernel 650 to the first image 10 will be described in detail with reference to FIG. 8 .

도 7은 다른 실시예에 따른 공간 가변 커널을 생성하는 방법을 설명하기 위해 참조되는 도면이다.7 is a diagram referenced to describe a method of generating a spatially variable kernel according to another embodiment.

도 7을 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 제1 영상의 퀄리티 정보를 획득하는 퀄리티 추정부(710)를 더 포함할 수 있다.Referring to FIG. 7 , the image processing apparatus 100 according to an embodiment may further include a quality estimator 710 that obtains quality information of the first image.

일 실시예에 따른 퀄리티 추정부(710)는 제1 영상(10) 또는 제1 영상(10)에 포함되는 복수의 영역들 각각에 대응하는 퀄리티 정보를 획득할 수 있다. 퀄리티 추정부(710)는 제1 영상(10)에 포함되는 복수의 영역들 각각에 포함되는 텍스쳐, 엣지, 노이즈 정보 등에 기초하여, 제1 영상 전체 또는 영역 별 퀄리티를 추정할 수 있다. 이때, 퀄리티 추정부(710)는 기 학습된 퀄리티 추정 네트워크에 기초하여, 제1 영상 전체 또는 영역 별로 퀄리티 정보를 획득할 수 있다. 예를 들어, 퀄리티 추정 네트워크는 영상 전체 또는 영상의 일 영역을 입력 받아, 해당 영상 또는 영역에 대한 퀄리티에 대한 값을 출력하는 네트워크일 수 있으나, 이에 한정되지 않는다. 또한, 퀄리티 추정부(710)는 제1 영상에 포함되는 픽셀 별로 퀄리티 정보를 획득할 수도 있다.The quality estimator 710 according to an embodiment may acquire the first image 10 or quality information corresponding to each of a plurality of regions included in the first image 10 . The quality estimator 710 may estimate the quality of the entire first image or each region based on texture, edge, and noise information included in each of the plurality of regions included in the first image 10 . In this case, the quality estimator 710 may acquire quality information for the entire first image or for each region based on the previously learned quality estimation network. For example, the quality estimation network may be a network that receives an entire image or a region of an image and outputs a quality value for the image or region, but is not limited thereto. Also, the quality estimator 710 may acquire quality information for each pixel included in the first image.

그래디언트 커널 셋 선택부(720)는 제1 영상(10)에 대응하는 퀄리티 정보 또는 제1 영상(10)에 포함되는 영역 별 퀄리티 정보에 기초하여, 복수의 그래디언트 커널 셋들(725) 중 하나를 선택할 수 있다. 이때, 복수의 그래디언트 커널 셋들(725)은 기 학습된(trained) 데이터일 수 있다. 또한, 복수의 그래디언트 커널 셋들(725)의 학습은 일 실시예에 따른 영상 처리 장치(100) 또는 외부 장치에서 수행될 수 있다. 복수의 그래디언트 커널 셋들(725)의 학습이 외부 장치에서 수행되는 경우, 외부 장치는 영상 처리 장치(100)로 기 학습된 복수의 그래디언트 커널 셋들(725)을 전송할 수 있다. 다만, 이에 한정되지 않는다.The gradient kernel set selector 720 selects one of the plurality of gradient kernel sets 725 based on quality information corresponding to the first image 10 or quality information for each region included in the first image 10 . can In this case, the plurality of gradient kernel sets 725 may be pre-trained data. Also, learning of the plurality of gradient kernel sets 725 may be performed in the image processing apparatus 100 or an external device according to an embodiment. When the learning of the plurality of gradient kernel sets 725 is performed in the external device, the external device may transmit the plurality of previously learned gradient kernel sets 725 to the image processing apparatus 100 . However, the present invention is not limited thereto.

복수의 그래디언트 커널 셋들(725)은 도 6에서 설명한 그래디언트 커널 셋(610)의 학습과 유사한 방식으로 이루어질 수 있다. 다만, 퀄리티 정보가 서로 다른 저해상도 영상들을 이용하여, 그래디언트 커널들을 학습시킴으로써, 퀄리티 정보에 따른 서로 다른 그래디언트 커널 셋들이 생성될 수 있다. 예를 들어, 제1 퀄리티 정보(예를 들어, 퀄리티 정보의 값이 '0'인 경우)를 가지는 저해상도 영상들과 이에 대응하는 고해상도 영상들을 이용하여 학습시킴으로써, 제1 퀄리티 정보에 대응하는 제1 그래디언트 커널 셋이 생성될 수 있다. 또한, 제2 퀄리티 정보(예를 들어, 퀄리티 정보의 값이 '1'인 경우)를 가지는 저해상도 영상들과 이에 대응하는 고해상도 영상들을 이용하여, 학습시킴으로써, 제2 퀄리티 정보에 대응하는 제2 그래디언트 커널 셋이 생성될 수 있다. 다만, 이에 한정되지 않는다.The plurality of gradient kernel sets 725 may be performed in a similar manner to the learning of the gradient kernel set 610 described with reference to FIG. 6 . However, by learning the gradient kernels using low-resolution images having different quality information, different gradient kernel sets according to the quality information may be generated. For example, by learning using low-resolution images having first quality information (eg, when the value of quality information is '0') and high-resolution images corresponding thereto, the first quality information corresponding to the first quality information A set of gradient kernels can be created. In addition, by learning by using low-resolution images having second quality information (eg, when the value of quality information is '1') and high-resolution images corresponding thereto, the second gradient corresponding to the second quality information A kernel set can be created. However, the present invention is not limited thereto.

예를 들어, 그래디언트 커널 셋 선택부(720)는 제1 픽셀이 포함되는 제1 영역의 퀄리티 정보가 제1 퀄리티 정보를 나타내는 경우, 제1 퀄리티 정보에 대응하는 제1 그래디언트 커널 셋(741)을 선택할 수 있다.For example, when the quality information of the first region including the first pixel indicates the first quality information, the gradient kernel set selector 720 selects the first gradient kernel set 741 corresponding to the first quality information. You can choose.

이에 따라, 공간 가변 커널 생성부(220)는 제1 픽셀에 대응하는 제1 커널 계수 정보(731)와 제1 그래디언트 커널 셋(741)에 기초하여, 제1 픽셀에 대응하는 제1 커널 벡터(751)를 생성할 수 있다. 예를 들어, 공간 가변 커널 생성부(220)는 제1 커널 계수 정보(731)와 제1 그래디언트 커널 셋(741)에 포함되는 복수의 그래디언트 커널들의 가중합을 수행하여, 제1 픽셀에 대응하는 제1 커널 벡터(751)를 생성할 수 있다. Accordingly, the spatially variable kernel generator 220 generates a first kernel vector corresponding to the first pixel ( 751) can be created. For example, the spatially variable kernel generator 220 performs a weighted sum of the first kernel coefficient information 731 and a plurality of gradient kernels included in the first gradient kernel set 741 to correspond to the first pixel. A first kernel vector 751 may be generated.

또한, 그래디언트 커널 셋 선택부(720)는 제2 픽셀이 포함되는 제2 영역의 퀄리티 정보가 제2 퀄리티 정보를 나타내는 경우, 제2 퀄리티 정보에 대응하는 제2 그래디언트 커널 셋(742)을 선택할 수 있다.Also, when the quality information of the second region including the second pixel indicates the second quality information, the gradient kernel set selector 720 may select the second gradient kernel set 742 corresponding to the second quality information. have.

이에 따라, 공간 가변 커널 생성부(220)는 제2 픽셀에 대응하는 제2 커널 계수 정보(732)와 제2 그래디언트 커널 셋(742)에 기초하여, 제2 픽셀에 대응하는 제2 커널 벡터(752)를 생성할 수 있다. 예를 들어, 공간 가변 커널 생성부(220)는 제2 커널 계수 정보(732)와 제2 그래디언트 커널 셋(742)에 포함되는 복수의 그래디언트 커널들의 가중합을 수행하여, 제2 픽셀에 대응하는 제2 커널 벡터(752)를 생성할 수 있다.Accordingly, the spatially variable kernel generator 220 generates a second kernel vector corresponding to the second pixel ( 752) can be created. For example, the spatially variable kernel generating unit 220 performs a weighted sum of the second kernel coefficient information 732 and a plurality of gradient kernels included in the second gradient kernel set 742 to correspond to the second pixel. A second kernel vector 752 may be generated.

이와 동일한 방식으로, 그래디언트 커널 셋 선택부(720)는 제1 영상(10) 또는 제1 영상(10)에 포함되는 영역 별로 해당 영역이 나타내는 퀄리티 정보에 대응하는 그래디언트 커널 셋을 선택하여, 공간 가변 커널 생성부(220)로 전송할 수 있다. 또한, 공간 가변 커널 생성부(220)는 영역 별로 선택된 그래디언트 커널 셋을 이용하여, 해당 영역에 포함되는 픽셀 별로 1 x 1 x K2의 크기를 가지는 커널 벡터를 생성할 수 있다. 이에 따라, 커널 벡터들을 포함하는 공간 가변 커널(750)은 도 7에 도시된 바와 같이, 크기가 W x H이고, 채널 수가 K2개로 나타날 수 있다. 다만, 도 7에 도시된 공간 가변 커널(750)은 일 예시일 뿐, 이에 한정되지 않으며, 실시예에 따라 다양한 형태로 나타날 수 있다.In the same way, the gradient kernel set selector 720 selects the first image 10 or a gradient kernel set corresponding to the quality information indicated by the corresponding region for each region included in the first image 10 to spatially vary. may be transmitted to the kernel generator 220 . Also, the spatially variable kernel generator 220 may generate a kernel vector having a size of 1 x 1 x K 2 for each pixel included in the corresponding region by using the gradient kernel set selected for each region. Accordingly, as shown in FIG. 7 , the spatially variable kernel 750 including the kernel vectors may have a size of W x H and K 2 channels. However, the spatially variable kernel 750 illustrated in FIG. 7 is only an example, and is not limited thereto, and may appear in various forms according to embodiments.

다시 도 2를 참조하면, 공간 가변 커널 생성부(220)는 생성된 공간 가변 커널(750)을 필터부(230)로 출력할 수 있다. 필터부(230)는 제1 영상(10)을 입력 받아, 제1 영상(10)에 공간 가변 커널(750)을 적용함으로써, 제2 영상(20)을 생성할 수 있다. 제1 영상(10)에 공간 가변 커널(750)을 적용하여, 제2 영상(20)을 생성하는 방법에 대해서는 도 8을 참조하여, 자세히 설명하기로 한다.Referring again to FIG. 2 , the spatially variable kernel generator 220 may output the generated spatially variable kernel 750 to the filter 230 . The filter unit 230 may generate the second image 20 by receiving the first image 10 and applying the spatially variable kernel 750 to the first image 10 . A method of generating the second image 20 by applying the spatially variable kernel 750 to the first image 10 will be described in detail with reference to FIG. 8 .

도 8은 일 실시예에 따른 제1 영상에 공간 가변 커널을 적용하는 방법을 설명하기 위해 참조되는 도면이다.8 is a diagram referenced to describe a method of applying a spatially variable kernel to a first image according to an exemplary embodiment.

도 8을 참조하면, 일 실시예에 따른 공간 가변 커널(850)은 도 6의 공간 가변 커널(650) 또는 도 7의 공간 가변 커널(750)일 수 있으나, 이에 한정되지 않는다.Referring to FIG. 8 , the spatially variable kernel 850 according to an embodiment may be the spatially variable kernel 650 of FIG. 6 or the spatially variable kernel 750 of FIG. 7 , but is not limited thereto.

공간 가변 커널(850)은 제1 영상에 포함되는 픽셀들 각각에 대응하는 커널 벡터를 포함할 수 있다. 예를 들어, 공간 가변 커널(850)은 제1 영상(10)에 포함되는 제1 픽셀(810)에 대응하는 제1 커널 벡터(851)를 포함할 수 있으며, 제1 영상(10)에 포함되는 제2 픽셀(820)에 대응하는 제2 커널 벡터(852)를 포함할 수 있다. 또한, 공간 가변 커널(850)은 제1 영상(10)에 포함되는 제3 픽셀(830)에 대응하는 제3 커널 벡터(853)를 포함할 수 있다.The spatially variable kernel 850 may include a kernel vector corresponding to each of the pixels included in the first image. For example, the spatially variable kernel 850 may include a first kernel vector 851 corresponding to the first pixel 810 included in the first image 10 , and is included in the first image 10 . A second kernel vector 852 corresponding to the second pixel 820 may be included. Also, the spatially variable kernel 850 may include a third kernel vector 853 corresponding to the third pixel 830 included in the first image 10 .

필터부(230)는 1x1x K2의 크기를 가지는 1차원 형태의 커널 벡터를 K x K의 크기를 가지는 2차원 형태의 커널로 변환할 수 있다. 예를 들어, 제1 커널 벡터(851)를 제1 커널(815)로, 제2 커널 벡터(852)를 제2 커널(825)로, 제3 커널 벡터(853)를 제3 커널(835)로 변환할 수 있다.The filter unit 230 may convert a one-dimensional kernel vector having a size of 1x1x K 2 into a two-dimensional kernel having a size of K x K. For example, the first kernel vector 851 is the first kernel 815 , the second kernel vector 852 is the second kernel 825 , and the third kernel vector 853 is the third kernel 835 . can be converted to

필터부(230)는 제1 영상(10)에 포함되는 제1 픽셀(810)을 중심으로 하는 제1 영역에 제1 커널(815)을 적용하여 필터링을 수행함으로써, 제2 영상(20)의 제4 픽셀(840) 값을 계산할 수 있다. 또한, 필터부(230)는 제1 영상(10)에 포함되는 제2 픽셀(820)을 중심으로 하는 제2 영역에 제2 커널(825)을 적용하여 필터링을 수행함으로써, 제2 영상(20)의 제5 픽셀(860) 값을 계산할 수 있다. 또한, 필터부(230)는 제1 영상(10)에 포함되는 제3 픽셀(830)을 중심으로 하는 제3 영역에 제3 커널(835)을 적용하여 필터링을 수행함으로써, 제2 영상(20)의 제6 픽셀(870) 값을 계산할 수 있다.The filter unit 230 filters the second image 20 by applying the first kernel 815 to the first region centered on the first pixel 810 included in the first image 10 . A value of the fourth pixel 840 may be calculated. In addition, the filter unit 230 performs filtering by applying the second kernel 825 to a second region centered on the second pixel 820 included in the first image 10 , thereby performing filtering on the second image 20 . ) of the fifth pixel 860 may be calculated. In addition, the filter unit 230 performs filtering by applying the third kernel 835 to a third region centered on the third pixel 830 included in the first image 10 , thereby performing filtering on the second image 20 . ) of the sixth pixel 870 may be calculated.

이와 동일한 방법으로, 필터부(230)는 제1 영상(10)에 포함되는 픽셀들 각각에 대응하는 커널을, 제1 영상(10)에 포함되는 픽셀들 각각을 중심으로 하는 영역에 적용하여, 필터링을 수행함으로써, 제2 영상(20)에 포함되는 픽셀 값들을 계산할 수 있다.In the same way, the filter unit 230 applies a kernel corresponding to each of the pixels included in the first image 10 to an area centered on each of the pixels included in the first image 10, By performing the filtering, pixel values included in the second image 20 may be calculated.

도 9는 일 실시예에 따른 영상 처리 장치의 동작 방법을 나타내는 흐름도이다.9 is a flowchart illustrating a method of operating an image processing apparatus according to an exemplary embodiment.

도 9를 참조하면, 일 실시예에 따른 영상 처리 장치(100)는 컨볼루션 뉴럴 네트워크를 이용하여, 제1 영상에 포함되는 픽셀들 각각에 대응하는 커널 계수 정보를 획득할 수 있다(S910).Referring to FIG. 9 , the image processing apparatus 100 according to an embodiment may obtain kernel coefficient information corresponding to each of the pixels included in the first image by using the convolutional neural network ( S910 ).

일 실시예에 따른 영상 처리 장치(100)는 제1 영상을 컨볼루션 뉴럴 네트워크에 입력할 수 있으며, 입력된 제1 영상이 컨볼루션 뉴럴 네트워크를 통과함으로써, 커널 계수 정보가 출력될 수 있다. 이때, 컨볼루션 뉴럴 네트워크는 하나 이상의 컨볼루션 레이어들, 하나 이상의 활성화 레이어들 및 하나 이상의 요소별 합산 레이어들을 포함할 수 있다. 커널 계수 정보를 획득하는 방법에 대해서는 도 3 내지 5를 참조하여 자세히 설명하였으므로 구체적인 설명은 생략하기로 한다.The image processing apparatus 100 according to an embodiment may input a first image to a convolutional neural network, and may output kernel coefficient information as the inputted first image passes through the convolutional neural network. In this case, the convolutional neural network may include one or more convolutional layers, one or more activation layers, and one or more element-specific summation layers. Since the method of obtaining the kernel coefficient information has been described in detail with reference to FIGS. 3 to 5 , a detailed description thereof will be omitted.

영상 처리 장치(100)는 그래디언트 커널 셋과 커널 계수 정보에 기초하여, 공간 가변 커널을 생성할 수 있다(S920).The image processing apparatus 100 may generate a spatially variable kernel based on the gradient kernel set and kernel coefficient information ( S920 ).

일 실시예에 따른 그래디언트 커널 셋은 픽셀이 가지는 하나 이상의 그래디언트 특성들의 조합에 대응하는 복수의 그래디언트 커널들을 포함할 수 있다. 픽셀이 가지는 하나 이상의 그래디언트 특성들은, 픽셀에서 나타나는 가장자리(edge)의 특성에 기초하여 결정될 수 있다. 일 실시예에 따른 그래디언트 특성들은, 강도(strength) 특성, 각도(angle) 특성, 및 일관성(coherence) 중 적어도 하나를 포함할 수 있다. The gradient kernel set according to an embodiment may include a plurality of gradient kernels corresponding to a combination of one or more gradient characteristics of a pixel. One or more gradient characteristics of the pixel may be determined based on characteristics of an edge appearing in the pixel. The gradient characteristics according to an embodiment may include at least one of a strength characteristic, an angle characteristic, and coherence.

그래디언트 커널 셋은 기 학습된 데이터일 수 있다. 이때, 그래디언트 커널 셋의 학습은 일 실시예에 따른 영상 처리 장치(100) 또는 외부 장치에서 수행될 수 있다. 그래디언트 커널 셋의 학습이 외부 장치에서 수행되는 경우, 외부 장치는 영상 처리 장치(100)로 기 학습된 그래디언트 커널 셋을 전송할 수 있다. 다만, 이에 한정되지 않는다.The gradient kernel set may be pre-trained data. In this case, learning of the gradient kernel set may be performed in the image processing apparatus 100 or an external device according to an embodiment. When the learning of the gradient kernel set is performed in the external device, the external device may transmit the previously learned gradient kernel set to the image processing apparatus 100 . However, the present invention is not limited thereto.

910 단계(S910)에서 획득된 커널 계수 정보는, 픽셀들 각각에 대응하는 N개의 커널 계수들을 포함할 수 있으며, 그래디언트 커널 셋은 N개의 그래디언트 커널들을 포함할 수 있다. 이에 대해서는, 도 6에서 자세히 설명하였으므로 구체적인 설명은 생략하기로 한다.The kernel coefficient information obtained in operation S910 may include N kernel coefficients corresponding to each pixel, and the gradient kernel set may include N gradient kernels. Since this has been described in detail with reference to FIG. 6 , a detailed description thereof will be omitted.

하나의 픽셀에 대응하는 N개의 커널 계수들은 N개의 그래디언트 커널들 각각에 대응하는 가중치를 나타내며, 영상 처리 장치(100)는 N개의 커널 계수들과 N개의 그래디언트 커널들의 가중합을 수행함으로써, 하나의 픽셀에 대응하는 커널을 생성할 수 있다.N kernel coefficients corresponding to one pixel represent weights corresponding to each of the N gradient kernels, and the image processing apparatus 100 performs a weighted sum of the N kernel coefficients and the N gradient kernels to obtain one A kernel corresponding to a pixel can be created.

이에 따라, 영상 처리 장치(100)는 제1 영상에 포함되는 픽셀 별로 K x K 크기를 가지는 커널을 생성할 수 있으며, K x K 크기를 가지는 커널을 1 x 1 x K2의 크기를 가지는 커널 벡터로 변환하는 경우, 제1 영상(10)에 대응하는 공간 가변 커널을 생성할 수 있다. Accordingly, the image processing apparatus 100 may generate a kernel having a size of K x K for each pixel included in the first image, and a kernel having a size of K x K is replaced with a kernel having a size of 1 x 1 x K 2 . When converting into a vector, a spatially variable kernel corresponding to the first image 10 may be generated.

일 실시예에 따른 영상 처리 장치(100)는 제1 영상에 공간 가변 커널을 적용함으로써, 제2 영상을 생성할 수 있다(S930).The image processing apparatus 100 according to an embodiment may generate a second image by applying a spatially variable kernel to the first image (S930).

920 단계(S920)에서 생성된 공간 가변 커널은 제1 영상에 포함되는 픽셀들 각각에 대응하는 커널 벡터를 포함할 수 있다. 예를 들어, 공간 가변 커널은 제1 영상에 포함되는 제1 픽셀에 대응하는 제1 커널 벡터를 포함할 수 있으며, 제1 영상에 포함되는 제2 픽셀에 대응하는 제2 커널 벡터를 포함할 수 있다.The spatially variable kernel generated in step 920 ( S920 ) may include a kernel vector corresponding to each of the pixels included in the first image. For example, the spatially variable kernel may include a first kernel vector corresponding to a first pixel included in the first image, and may include a second kernel vector corresponding to a second pixel included in the first image. have.

영상 처리 장치(100)는 1x1x K2의 크기를 가지는 1차원 형태의 커널 벡터를 K x K의 크기를 가지는 2차원 형태의 커널로 변환할 수 있다. 예를 들어, 제1 커널 벡터를 2차원 형태의 제1 커널로, 제2 커널 벡터를 2차원 형태의 제2 커널로 변환할 수 있다.The image processing apparatus 100 may convert a one-dimensional kernel vector having a size of 1x1x K 2 into a two-dimensional kernel having a size of K x K. For example, the first kernel vector may be converted into a two-dimensional first kernel, and the second kernel vector may be converted into a two-dimensional second kernel.

영상 처리 장치(100)는 제1 픽셀을 중심으로 하는 영역에 제1 커널을 적용하여 필터링을 수행함으로써, 제2 영상에 포함되는 제3 픽셀 값을 계산하고, 제2 픽셀을 중심으로 하는 영역에 제2 커널을 적용하여 필터링을 수행함으로써, 제2 영상에 포함되는 제4 픽셀 값을 계산할 수 있다.The image processing apparatus 100 calculates a third pixel value included in the second image by applying the first kernel to the area centered on the first pixel and performs filtering, and applies the first kernel to the area centered on the second pixel. By performing filtering by applying the second kernel, a fourth pixel value included in the second image may be calculated.

이에 따라, 영상 처리 장치(100)는 제1 영상의 필터링을 수행할 때, 중심 픽셀의 위치에 따라 상이한 커널을 적용하여 필터링을 수행할 수 있다.Accordingly, when filtering the first image, the image processing apparatus 100 may perform filtering by applying different kernels according to the position of the central pixel.

도 10은 다른 실시예에 따른 영상 처리 장치의 동작 방법을 나타내는 흐름도이다.10 is a flowchart illustrating a method of operating an image processing apparatus according to another exemplary embodiment.

도 10을 참조하면, 다른 실시예에 따른 영상 처리 장치(100)는 제1 영상의 퀄리티 정보를 획득할 수 있다(S1010).Referring to FIG. 10 , the image processing apparatus 100 according to another embodiment may obtain quality information of a first image ( S1010 ).

예를 들어, 영상 처리 장치(100)는 제1 영상 또는 제1 영상에 포함되는 복수의 영역들 각각에 대응하는 퀄리티 정보를 획득할 수 있다. 영상 처리 장치(100)는 제1 영상 또는 제1 영상에 포함되는 복수의 영역들 각각에 포함되는 텍스쳐, 엣지, 노이즈 정보 등에 기초하여, 제1 영상 전체 또는 영역 별 퀄리티를 추정할 수 있다. 영상 처리 장치(100)는 기 학습된 퀄리티 추정 네트워크에 기초하여, 제1 영상 전체 또는 영역 별로 퀄리티 정보를 획득할 수 있다. 예를 들어, 퀄리티 추정 네트워크는 영상 전체 또는 영상의 일 영역을 입력 받아, 해당 영상 또는 영역에 대한 퀄리티에 대한 값을 출력하는 네트워크일 수 있으나, 이에 한정되지 않는다. 또한, 영상 처리 장치(100)는 제1 영상에 포함되는 픽셀 별로 퀄리티 정보를 획득할 수도 있다.For example, the image processing apparatus 100 may obtain the first image or quality information corresponding to each of a plurality of regions included in the first image. The image processing apparatus 100 may estimate the quality of the entire first image or each region based on the first image or texture, edge, and noise information included in each of a plurality of regions included in the first image. The image processing apparatus 100 may acquire quality information for the entire first image or for each region based on the previously learned quality estimation network. For example, the quality estimation network may be a network that receives an entire image or a region of an image and outputs a quality value for the image or region, but is not limited thereto. Also, the image processing apparatus 100 may acquire quality information for each pixel included in the first image.

영상 처리 장치(100)는 퀄리티 정보에 기초하여, 복수의 그래디언트 커널 셋들 중 하나의 그래디언트 커널 셋을 선택할 수 있다(S1020).The image processing apparatus 100 may select one gradient kernel set from among a plurality of gradient kernel sets based on the quality information ( S1020 ).

이때, 복수의 그래디언트 커널 셋들은 기 학습된(trained) 데이터일 수 있다. 복수의 그래디언트 커널 셋들을 학습시키는 방법에 대해서는 도 7에서 자세히 설명하였으므로 구체적인 설명은 생략하기로 한다.In this case, the plurality of gradient kernel sets may be pre-trained data. Since the method for learning the plurality of gradient kernel sets has been described in detail with reference to FIG. 7 , a detailed description thereof will be omitted.

예를 들어, 영상 처리 장치(100)는 제1 영역의 퀄리티 정보가 제1 퀄리티 정보를 나타내는 경우, 제1 퀄리티 정보에 대응하는 제1 그래디언트 커널 셋을 선택하고, 제2 영역의 퀄리티 정보가 제2 퀄리티 정보를 나타내는 경우, 제2 퀄리티 정보에 대응하는 제2 그래디언트 커널 셋을 선택할 수 있다.For example, when the quality information of the first region indicates the first quality information, the image processing apparatus 100 selects a first gradient kernel set corresponding to the first quality information, and the quality information of the second region When the second quality information is indicated, a second gradient kernel set corresponding to the second quality information may be selected.

영상 처리 장치(100)는 선택된 그래디언트 커널 셋을 이용하여, 공간 가변 커널을 생성할 수 있다(S1030).The image processing apparatus 100 may generate a spatially variable kernel by using the selected gradient kernel set ( S1030 ).

예를 들어, 영상 처리 장치(100)는 커널 계수 정보와 선택된 그래디언트 커널 셋에 기초하여, 공간 가변 커널을 생성할 수 있다. 이때, 커널 계수 정보를 획득하는 방법에 대해서는 도 9의 910 단계(S910)에서 자세히 설명하였으므로, 구체적인 설명은 생략하기로 한다.For example, the image processing apparatus 100 may generate a spatially variable kernel based on the kernel coefficient information and the selected gradient kernel set. At this time, since the method of obtaining the kernel coefficient information has been described in detail in step 910 ( S910 ) of FIG. 9 , a detailed description thereof will be omitted.

영상 처리 장치(100)는 제1 영역에 포함되는 제1 픽셀에 대응하는 제1 커널 계수 정보와 1020 단계(S1020)에서 제1 영역에 대응하여, 선택된 제1 그래디언트 커널 셋에 포함되는 복수의 그래디언트 커널들의 가중합을 수행하여, 제1 픽셀에 대응하는 제1 커널 벡터를 생성할 수 있다. The image processing apparatus 100 performs first kernel coefficient information corresponding to a first pixel included in the first region and a plurality of gradients included in the selected first gradient kernel set corresponding to the first region in operation S1020 ( S1020 ). The weighted sum of the kernels may be performed to generate a first kernel vector corresponding to the first pixel.

또한, 영상 처리 장치(100)는 제2 영역에 포함되는 제2 픽셀에 대응하는 제2 커널 계수 정보와 1020 단계(S1020)에서 제2 영역에 대응하여, 선택된 제2 그래디언트 커널 셋에 포함되는 복수의 그래디언트 커널들의 가중합을 수행하여, 제2 픽셀에 대응하는 제2 커널 벡터를 생성할 수 있다.In addition, the image processing apparatus 100 includes second kernel coefficient information corresponding to the second pixel included in the second region and a plurality of pieces included in the second gradient kernel set selected in operation S1020 in response to the second region ( S1020 ). A second kernel vector corresponding to the second pixel may be generated by performing a weighted sum of the gradient kernels of .

이와 동일한 방식으로, 영상 처리 장치(100)는 영역 별로 선택된 그래디언트 커널 셋을 이용하여, 해당 영역에 포함되는 픽셀 별로 커널 벡터를 생성할 수 있으며, 이에 따라, 커널 벡터들을 포함하는 공간 가변 커널이 생성될 수 있다.In the same way, the image processing apparatus 100 may generate a kernel vector for each pixel included in the corresponding region using the gradient kernel set selected for each region, and accordingly, a spatially variable kernel including the kernel vectors is generated. can be

영상 처리 장치(100)는 제1 영상에 1030 단계(S1030)에서 생성된 공간 가변 커널을 적용함으로써, 제2 영상을 생성할 수 있다(S1040). 도 10의 1040 단계(S1040)는 도 9의 930 단계(S930)에 대응하므로, 구체적인 설명은 생략하기로 한다.The image processing apparatus 100 may generate a second image by applying the spatially variable kernel generated in operation 1030 ( S1030 ) to the first image ( S1040 ). Since step 1040 ( S1040 ) of FIG. 10 corresponds to step 930 ( S930 ) of FIG. 9 , a detailed description thereof 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 image processing apparatus 100 according to an embodiment may include a processor 120 and a memory 130 .

일 실시예에 따른 프로세서(120)는 영상 처리 장치(100)를 전반적으로 제어할 수 있다. 일 실시예에 따른 프로세서(120)는 메모리(130)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다.The processor 120 according to an embodiment may control the image processing apparatus 100 as a whole. The processor 120 according to an embodiment may execute one or more programs stored in the memory 130 .

일 실시예에 따른 메모리(130)는 영상 처리 장치(100)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다. 메모리(130)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(130)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(120)에 의해 실행될 수 있다.The memory 130 according to an embodiment 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 .

일 실시예에 따른 프로세서(120)는 CPU(Cetral Processing Unit), GPU (Graphic Processing Unit) 및 VPU(Video Processing Unit) 중 적어도 하나를 포함할 수 있다. 또는, 실시예에 따라, CPU, GPU 및 VPU 중 적어도 하나를 통합한 SoC(System On Chip) 형태로 구현될 수 있다. 또는, 프로세서(120)는 NPU(Neural Processing Unit)를 더 포함할 수 있다.The processor 120 according to an embodiment may include at least one of a central processing unit (CPU), a graphic processing unit (GPU), and a video processing unit (VPU). Alternatively, according to an embodiment, it may be implemented in the form of a system on chip (SoC) in which at least one of a CPU, a GPU, and a VPU is integrated. Alternatively, the processor 120 may further include a Neural Processing Unit (NPU).

일 실시예에 따른 프로세서(120)는 영상 처리 네트워크(30)를 이용하여, 입력 영상의 노이즈를 제거하면서, 세밀한 가장자리 처리와 텍스쳐를 유지하는 디노이징을 수행한 출력 영상을 생성할 수 있다. 예를 들어, 프로세서(120)는 도 2 내지 도 10에서 도시하고 설명한 커널 계수 생성부(210), 공간 가변 커널 생성부(220), 필터부(230), 퀄리티 추정부(710), 및 그래디언트 커널 셋 선택부(720)의 동작들 중 적어도 하나를 수행할 수 있다.The processor 120 according to an embodiment may generate an output image that has been subjected to detailed edge processing and denoising while maintaining a texture while removing noise from the input image by using the image processing network 30 . For example, the processor 120 may include the kernel coefficient generation unit 210 , the spatially variable kernel generation unit 220 , the filter unit 230 , the quality estimation unit 710 , and the gradient illustrated and described with reference to FIGS. 2 to 10 . At least one of the operations of the kernel set selector 720 may be performed.

프로세서(120)는 컨볼루션 뉴럴 네트워크를 이용하여, 제1 영상에 포함되는 픽셀들 각각에 대응하는 커널 계수 정보를 획득할 수 있다. 프로세서(120)는 제1 영상을 컨볼루션 뉴럴 네트워크에 입력할 수 있으며, 입력된 제1 영상이 컨볼루션 뉴럴 네트워크를 통과함으로써, 커널 계수 정보가 출력될 수 있다. 이때, 컨볼루션 뉴럴 네트워크는 하나 이상의 컨볼루션 레이어들, 하나 이상의 활성화 레이어들 및 하나 이상의 요소별 합산 레이어들을 포함할 수 있다. 커널 계수 정보를 획득하는 방법에 대해서는 도 3 내지 5를 참조하여 자세히 설명하였으므로 구체적인 설명은 생략하기로 한다.The processor 120 may obtain kernel coefficient information corresponding to each of the pixels included in the first image by using the convolutional neural network. The processor 120 may input the first image to the convolutional neural network, and as the inputted first image passes through the convolutional neural network, kernel coefficient information may be output. In this case, the convolutional neural network may include one or more convolutional layers, one or more activation layers, and one or more element-specific summation layers. Since the method of obtaining the kernel coefficient information has been described in detail with reference to FIGS. 3 to 5 , a detailed description thereof will be omitted.

프로세서(120)는 그래디언트 커널 셋과 커널 계수 정보에 기초하여, 공간 가변 커널을 생성할 수 있다. The processor 120 may generate a spatially variable kernel based on the gradient kernel set and kernel coefficient information.

일 실시예에 따른 그래디언트 커널 셋은 픽셀이 가지는 하나 이상의 그래디언트 특성들의 조합에 대응하는 복수의 그래디언트 커널들을 포함할 수 있다. 픽셀이 가지는 하나 이상의 그래디언트 특성들은, 픽셀에서 나타나는 가장자리(edge)의 특성에 기초하여 결정될 수 있다. 일 실시예에 따른 그래디언트 특성들은, 강도(strength) 특성, 각도(angle) 특성, 및 일관성(coherence) 중 적어도 하나를 포함할 수 있다. 그래디언트 커널 셋은 기 학습된 데이터일 수 있다.The gradient kernel set according to an embodiment may include a plurality of gradient kernels corresponding to a combination of one or more gradient characteristics of a pixel. One or more gradient characteristics of the pixel may be determined based on characteristics of an edge appearing in the pixel. The gradient characteristics according to an embodiment may include at least one of a strength characteristic, an angle characteristic, and coherence. The gradient kernel set may be pre-trained data.

또한, 프로세서(120)는 제1 영상 또는 제1 영상에 포함되는 영역 별로 퀄리티 정보를 획득하고, 획득된 퀄리티 정보에 따라, 복수의 그래디언트 커널 셋들 중 하나의 그래디언트 커널 셋을 선택할 수 있다.Also, the processor 120 may obtain the first image or quality information for each region included in the first image, and select one gradient kernel set from among the plurality of gradient kernel sets according to the obtained quality information.

커널 계수 정보는, 픽셀들 각각에 대응하는 N개의 커널 계수들을 포함할 수 있으며, 그래디언트 커널 셋은 N개의 그래디언트 커널들을 포함할 수 있다. 이에 대해서는, 도 6에서 자세히 설명하였으므로 구체적인 설명은 생략하기로 한다.The kernel coefficient information may include N kernel coefficients corresponding to each pixel, and the gradient kernel set may include N gradient kernels. Since this has been described in detail with reference to FIG. 6 , a detailed description thereof will be omitted.

하나의 픽셀에 대응하는 N개의 커널 계수들은 N개의 그래디언트 커널들 각각에 대응하는 가중치를 나타내며, 프로세서(120)는 N개의 커널 계수들과 N개의 그래디언트 커널들의 가중합을 수행함으로써, 하나의 픽셀에 대응하는 커널을 생성할 수 있다.The N kernel coefficients corresponding to one pixel represent weights corresponding to each of the N gradient kernels, and the processor 120 performs weighted summing of the N kernel coefficients and the N gradient kernels to obtain one pixel. Corresponding kernels can be created.

이에 따라, 프로세서(120)는 제1 영상에 포함되는 픽셀 별로 K x K 크기를 가지는 커널을 생성할 수 있으며, K x K 크기를 가지는 커널을 1 x 1 x K2의 크기를 가지는 커널 벡터로 변환하는 경우, 제1 영상에 대응하는 공간 가변 커널을 생성할 수 있다.Accordingly, the processor 120 may generate a kernel having a size of K x K for each pixel included in the first image, and convert the kernel having a size of K x K to a kernel vector having a size of 1 x 1 x K 2 . In the case of transformation, a spatially variable kernel corresponding to the first image may be generated.

프로세서(120)는 제1 영상에 공간 가변 커널을 적용함으로써, 제2 영상을 생성할 수 있다. 공간 가변 커널은 제1 영상에 포함되는 픽셀들 각각에 대응하는 커널 벡터를 포함할 수 있다. 예를 들어, 공간 가변 커널은 제1 영상에 포함되는 제1 픽셀에 대응하는 제1 커널 벡터를 포함할 수 있으며, 제1 영상에 포함되는 제2 픽셀에 대응하는 제2 커널 벡터를 포함할 수 있다. The processor 120 may generate the second image by applying a spatially variable kernel to the first image. The spatially variable kernel may include a kernel vector corresponding to each of the pixels included in the first image. For example, the spatially variable kernel may include a first kernel vector corresponding to a first pixel included in the first image, and may include a second kernel vector corresponding to a second pixel included in the first image. have.

프로세서(120)는 1 x 1 x K2의 크기를 가지는 1차원 형태의 커널 벡터를 K x K의 크기를 가지는 2차원 형태의 커널로 변환할 수 있다. 예를 들어, 제1 커널 벡터를 2차원 형태의 제1 커널로, 제2 커널 벡터를 2차원 형태의 제2 커널로 변환할 수 있다. 프로세서(120)는 제1 픽셀을 중심으로 하는 영역에 제1 커널을 적용하여 필터링을 수행함으로써, 제2 영상에 포함되는 제3 픽셀 값을 계산하고, 제2 픽셀을 중심으로 하는 영역에 제2 커널을 적용하여 필터링을 수행함으로써, 제2 영상에 포함되는 제4 픽셀 값을 계산할 수 있다.The processor 120 may convert a one-dimensional kernel vector having a size of 1 x 1 x K 2 into a two-dimensional kernel having a size of K x K. For example, the first kernel vector may be converted into a two-dimensional first kernel, and the second kernel vector may be converted into a two-dimensional second kernel. The processor 120 calculates a third pixel value included in the second image by performing filtering by applying the first kernel to an area centered on the first pixel, and applies the second kernel to the area centered on the second pixel. By performing filtering by applying the kernel, a fourth pixel value included in the second image may be calculated.

한편, 일 실시예에 따른 영상 처리 네트워크(30)는, 서버 또는 외부 장치에 의해 훈련된 네트워크일 수 있다. 외부 장치는 훈련 데이터에 기초하여, 영상 처리 네트워크(30)를 학습시킬 수 있다. 이때, 훈련 데이터는 노이즈가 포함된 영상 데이터와 노이즈는 제거되면서, 엣지 특성이나 텍스쳐 특성은 보존되는 영상 데이터를 포함하는 복수의 데이터 세트들을 포함할 수 있다.Meanwhile, the image processing network 30 according to an embodiment may be a network trained by a server or an external device. The external device may train the image processing network 30 based on the training data. In this case, the training data may include a plurality of data sets including image data including noise and image data in which an edge characteristic or a texture characteristic is preserved while noise is removed.

서버 또는 외부 장치는 영상 처리 네트워크(30)에 포함된 복수의 컨볼루션 레이어들(예를 들어, 도 3의 컨볼루션 뉴럴 네트워크(300)에 포함된 복수의 컨볼루션 레이어들) 각각에서 이용되는 커널들에 포함되는 파라미터 값들을 결정할 수 있다. 예를 들어, 서버 또는 외부 장치는 영상 처리 네트워크(30)에 의해 생성된 영상 데이터와 훈련 데이터로써의 노이즈는 제거되면서, 엣지 특성은 보존되는 영상 데이터의 차이(손실 정보)를 최소화하는 방향으로 파라미터 값들을 결정할 수 있다.A server or an external device is a kernel used in each of a plurality of convolutional layers included in the image processing network 30 (eg, a plurality of convolutional layers included in the convolutional neural network 300 of FIG. 3 ). It is possible to determine parameter values included in the values. For example, the server or external device is a parameter in the direction of minimizing the difference (loss information) of the image data generated by the image processing network 30 and the image data generated by the image processing network 30 while noise as the training data is removed while the edge characteristics are preserved. values can be determined.

일 실시예에 따른 영상 처리 장치(100)는 서버 또는 외부 장치로부터 훈련이 완료된 영상 처리 네트워크(30) 또는 컨볼루션 뉴럴 네트워크(300)를 수신하여, 메모리(130)에 저장할 수 있다. 예를 들어, 메모리(130)는 일 실시예에 따른 영상 처리 네트워크(30) 또는 컨볼루션 뉴럴 네트워크(300)의 구조 및 파라미터 값들을 저장할 수 있으며, 프로세서(120)는 메모리(130)에 저장된 파라미터 값들을 이용하여, 일 실시예에 따른 제1 영상으로부터 노이즈는 제거되면서, 엣지 특성은 보존되는 제2 영상을 생성할 수 있다.The image processing apparatus 100 according to an embodiment may receive the trained image processing network 30 or the convolutional neural network 300 from a server or an external device and store the received image in the memory 130 . For example, the memory 130 may store the structure and parameter values of the image processing network 30 or the convolutional neural network 300 according to an embodiment, and the processor 120 may store parameters stored in the memory 130 . Using the values, a second image in which edge characteristics are preserved while noise is removed from the first image according to an exemplary embodiment may be generated.

한편, 도 11에 도시된 영상 처리 장치(100)의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 영상 처리 장치(100)의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.Meanwhile, a block diagram of the image processing apparatus 100 illustrated in FIG. 11 is a block diagram for an exemplary embodiment. Each component of the block diagram may be integrated, added, or omitted according to specifications of the image processing apparatus 100 that are actually implemented. That is, two or more components may be combined into one component, or one component may be subdivided into two or more components as needed. In addition, the function performed in each block is for describing the embodiments, and the specific operation or device does not limit the scope of the present invention.

일 실시예에 따른 영상 처리 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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 execute 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 (19)

영상 처리 장치에 있어서,
하나 이상의 인스트럭션들을 저장하는 메모리; 및
상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고,
상기 프로세서는,
하나 이상의 컨볼루션 레이어들을 포함하는 컨볼루션 뉴럴 네트워크를 이용하여, 제1 영상에 포함되는 픽셀들 각각에 대응하는 커널 계수 정보를 획득하고,
픽셀에 대한 하나 이상의 그래디언트 특성들에 대응하는 복수의 그래디언트 커널들을 포함하는 그래디언트 커널 셋과 상기 커널 계수 정보에 기초하여, 상기 제1 영상에 포함되는 상기 픽셀들 각각에 대응하는 커널을 포함하는 공간 가변 커널(spatially variant kernel)을 생성하고,
상기 제1 영상에 포함되는 상기 픽셀들 각각을 중심으로 하는 영역에 상기 공간 가변 커널에 포함되는, 상기 픽셀들 각각에 대응하는 커널을 적용하여 필터링을 수행함으로써, 제2 영상을 생성하는, 영상 처리 장치.
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 is
Obtaining kernel coefficient information corresponding to each of the pixels included in the first image by using a convolutional neural network including one or more convolutional layers,
Spatial variable including a gradient kernel set including a plurality of gradient kernels corresponding to one or more gradient characteristics of a pixel and a kernel corresponding to each of the pixels included in the first image based on the kernel coefficient information Create a kernel (spatially variant kernel),
Image processing for generating a second image by performing filtering by applying a kernel corresponding to each of the pixels included in the spatially variable kernel to an area centered on each of the pixels included in the first image Device.
제1항에 있어서,
상기 하나 이상의 그래디언트 특성들은,
픽셀이 나타내는 강도(strength) 특성, 각도(angle) 특성, 및 일관성(coherence) 중 적어도 하나를 포함하는, 영상 처리 장치.
According to claim 1,
The one or more gradient properties are:
An image processing apparatus comprising at least one of a strength characteristic, an angle characteristic, and coherence that a pixel represents.
제1항에 있어서,
상기 복수의 그래디언트 커널들은,
저해상도 영상들과 상기 저해상도 영상들에 각각 대응하는 고해상도 영상들을 포함하는 훈련 데이터 셋을 이용하여 훈련되고,
상기 복수의 그래디언트 커널들은,
상기 저해상도 영상들에 포함되는 이미지 패치들의 그래디언트 특성들에 따라, 훈련되는, 영상 처리 장치.
According to claim 1,
The plurality of gradient kernels are
It is trained using a training data set including low-resolution images and high-resolution images corresponding to the low-resolution images, respectively,
The plurality of gradient kernels are
An image processing apparatus that is trained according to gradient characteristics of image patches included in the low-resolution images.
제3항에 있어서,
복수의 그래디언트 커널들은,
상기 이미지 패치들이 나타내는 강도(strength) 특성, 각도(angle) 특성, 및 일관성(coherence)에 따라 훈련된 커널들을 포함하는, 영상 처리 장치.
4. The method of claim 3,
Multiple gradient kernels,
and kernels trained according to a strength characteristic, an angle characteristic, and coherence indicated by the image patches.
제1항에 있어서,
상기 제1 영상에 포함되는 하나의 픽셀에 대응하는 커널 계수 정보에 포함되는 커널 계수들의 개수는, 상기 그래디언트 커널 셋에 포함되는 상기 복수의 그래디언트 커널들의 개수와 동일하고,
상기 커널 계수 정보에 포함되는 커널 계수들 각각은, 상기 복수의 그래디언트 커널들 각각에 대응하는 가중치를 나타내는, 영상 처리 장치.
According to claim 1,
The number of kernel coefficients included in the kernel coefficient information corresponding to one pixel included in the first image is the same as the number of the plurality of gradient kernels included in the gradient kernel set,
Each of the kernel coefficients included in the kernel coefficient information represents a weight corresponding to each of the plurality of gradient kernels.
제5항에 있어서,
상기 공간 가변 커널은 상기 제1 영상에 포함되는 제1 픽셀에 대응하는 제1 커널 및 상기 제1 영상에 포함되는 제2 픽셀에 대응하는 제2 커널을 포함하며,
상기 프로세서는,
상기 제1 픽셀에 대한 제1 커널 계수 정보와 상기 복수의 그래디언트 커널들의 가중합을 수행하여, 상기 제1 커널을 생성하고,
상기 제2 픽셀에 대한 제2 커널 계수 정보와 상기 복수의 그래디언트 커널들의 가중합을 수행하여, 상기 제2 커널을 생성하는, 영상 처리 장치.
6. The method of claim 5,
The spatially variable kernel includes a first kernel corresponding to a first pixel included in the first image and a second kernel corresponding to a second pixel included in the first image,
The processor is
performing a weighted sum of first kernel coefficient information for the first pixel and the plurality of gradient kernels to generate the first kernel;
The image processing apparatus of claim 1, wherein the second kernel is generated by performing a weighted sum of second kernel coefficient information for the second pixel and the plurality of gradient kernels.
제6항에 있어서,
상기 프로세서는,
상기 제1 픽셀을 중심으로 하는 제1 영역에 상기 제1 커널을 적용하여, 필터링을 수행하고,
상기 제2 픽셀을 중심으로 하는 제2 영역에 상기 제2 커널을 적용하여, 필터링을 수행함으로써, 상기 제2 영상을 생성하는, 영상 처리 장치.
7. The method of claim 6,
The processor is
performing filtering by applying the first kernel to a first area centered on the first pixel;
and generating the second image by performing filtering by applying the second kernel to a second region centered on the second pixel.
제1항에 있어서,
상기 프로세서는,
상기 제1 영상에 포함되는 적어도 하나의 영역에 대한 퀄리티 정보를 획득하고,
상기 퀄리티 정보에 기초하여, 복수의 그래디언트 커널 셋들 중, 상기 적어도 하나의 영역에 대응하는 상기 그래디언트 커널 셋을 선택하고,
상기 적어도 하나의 영역에 포함되는 적어도 하나의 픽셀에 대응하는 상기 커널 계수 정보와 상기 그래디언트 커널 셋에 기초하여, 상기 적어도 하나의 픽셀에 대응하는 커널을 생성하는 영상 처리 장치.
According to claim 1,
The processor is
Obtaining quality information on at least one region included in the first image,
selecting the gradient kernel set corresponding to the at least one region from among a plurality of gradient kernel sets based on the quality information;
An image processing apparatus for generating a kernel corresponding to the at least one pixel based on the kernel coefficient information corresponding to the at least one pixel included in the at least one area and the gradient kernel set.
제8항에 있어서,
상기 프로세서는,
상기 제1 영상에 포함되는 제1 영역에 대한 제1 퀄리티 정보를 획득하고,
상기 복수의 그래디언트 커널 셋들 중 상기 제1 퀄리티 정보에 대응하는 제1 그래디언트 커널 셋과, 상기 제1 영역에 포함되는 제1 픽셀에 대응하는 제1 커널 계수 정보에 기초하여, 상기 제1 픽셀에 대응하는 제1 커널을 생성하며,
상기 제1 영상에 포함되는 제2 영역에 대한 제2 퀄리티 정보를 획득하고,
상기 복수의 그래디언트 커널 셋들 중 상기 제2 퀄리티 정보에 대응하는 제2 그래디언트 커널 셋과, 상기 제2 영역에 포함되는 제2 픽셀에 대응하는 제2 커널 계수 정보에 기초하여, 상기 제2 픽셀에 대응하는 제2 커널을 생성하는, 영상 처리 장치.
9. The method of claim 8,
The processor is
Obtaining first quality information on a first area included in the first image,
Corresponding to the first pixel based on a first gradient kernel set corresponding to the first quality information among the plurality of gradient kernel sets and first kernel coefficient information corresponding to a first pixel included in the first region to create a first kernel that
Obtaining second quality information on a second region included in the first image,
Corresponding to the second pixel based on a second gradient kernel set corresponding to the second quality information among the plurality of gradient kernel sets and second kernel coefficient information corresponding to a second pixel included in the second region An image processing device that generates a second kernel to
영상 처리 장치의 동작 방법에 있어서,
하나 이상의 컨볼루션 레이어들을 포함하는 컨볼루션 뉴럴 네트워크를 이용하여, 제1 영상에 포함되는 픽셀들 각각에 대응하는 커널 계수 정보를 획득하는 단계;
픽셀에 대한 하나 이상의 그래디언트 특성들에 대응하는 복수의 그래디언트 커널들을 포함하는 그래디언트 커널 셋과 상기 커널 계수 정보에 기초하여, 상기 제1 영상에 포함되는 상기 픽셀들 각각에 대응하는 커널을 포함하는 공간 가변 커널(spatially variant kernel)을 생성하는 단계; 및
상기 제1 영상에 포함되는 상기 픽셀들 각각을 중심으로 하는 영역에, 상기 공간 가변 커널에 포함되는, 상기 픽셀들 각각에 대응하는 커널을 적용하여 필터링을 수행함으로써, 제2 영상을 생성하는 단계를 포함하는, 영상 처리 장치의 동작 방법.
A method of operating an image processing apparatus, comprising:
obtaining kernel coefficient information corresponding to each of pixels included in a first image by using a convolutional neural network including one or more convolutional layers;
Spatial variable including a gradient kernel set including a plurality of gradient kernels corresponding to one or more gradient characteristics of a pixel and a kernel corresponding to each of the pixels included in the first image based on the kernel coefficient information Generating a kernel (spatially variant kernel); and
generating a second image by performing filtering by applying a kernel corresponding to each of the pixels included in the spatially variable kernel to an area centered on each of the pixels included in the first image; Including, an operating method of an image processing apparatus.
제10항에 있어서,
상기 하나 이상의 그래디언트 특성들은,
픽셀이 나타내는 강도(strength) 특성, 각도(angle) 특성, 및 일관성(coherence) 중 적어도 하나를 포함하는, 영상 처리 장치의 동작 방법.
11. The method of claim 10,
The one or more gradient properties are:
An operating method of an image processing apparatus, comprising at least one of a strength characteristic, an angle characteristic, and coherence that a pixel represents.
제10항에 있어서,
상기 복수의 그래디언트 커널들은,
저해상도 영상들과 상기 저해상도 영상들에 각각 대응하는 고해상도 영상들을 포함하는 훈련 데이터 셋을 이용하여 훈련된고,
상기 복수의 그래디언트 커널들은,
상기 저해상도 영상들에 포함되는 이미지 패치들의 그래디언트 특성들에 따라, 훈련되는, 영상 처리 장치의 동작 방법.
11. The method of claim 10,
The plurality of gradient kernels are
It is trained using a training data set including low-resolution images and high-resolution images corresponding to the low-resolution images, respectively,
The plurality of gradient kernels are
The method of operating an image processing apparatus, which is trained according to gradient characteristics of image patches included in the low-resolution images.
제12항에 있어서,
복수의 그래디언트 커널들은,
상기 이미지 패치들이 나타내는 강도(strength) 특성, 각도(angle) 특성, 및 일관성(coherence)에 따라 훈련된 커널들을 포함하는, 영상 처리 장치의 동작 방법.
13. The method of claim 12,
Multiple gradient kernels,
and kernels trained according to strength characteristics, angle characteristics, and coherence indicated by the image patches.
제10항에 있어서,
상기 제1 영상에 포함되는 하나의 픽셀에 대응하는 커널 계수 정보에 포함되는 커널 계수들의 개수는, 상기 그래디언트 커널 셋에 포함되는 상기 복수의 그래디언트 커널들의 개수와 동일하고,
상기 커널 계수 정보에 포함되는 커널 계수들 각각은, 상기 복수의 그래디언트 커널들 각각에 대응하는 가중치를 나타내는, 영상 처리 장치의 동작 방법.
11. The method of claim 10,
The number of kernel coefficients included in the kernel coefficient information corresponding to one pixel included in the first image is the same as the number of the plurality of gradient kernels included in the gradient kernel set,
Each of the kernel coefficients included in the kernel coefficient information represents a weight corresponding to each of the plurality of gradient kernels.
제14항에 있어서,
상기 공간 가변 커널은 상기 제1 영상에 포함되는 제1 픽셀에 대응하는 제1 커널 및 상기 제1 영상에 포함되는 제2 픽셀에 대응하는 제2 커널을 포함하며,
상기 공간 가변 커널을 생성하는 단계는,
상기 제1 픽셀에 대한 제1 커널 계수 정보와 상기 복수의 그래디언트 커널들의 가중합을 수행하여, 상기 제1 커널을 생성하는 단계; 및
상기 제2 픽셀에 대한 제2 커널 계수 정보와 상기 복수의 그래디언트 커널들의 가중합을 수행하여, 상기 제2 커널을 생성하는 단계를 포함하는, 영상 처리 장치의 동작 방법.
15. The method of claim 14,
The spatially variable kernel includes a first kernel corresponding to a first pixel included in the first image and a second kernel corresponding to a second pixel included in the first image,
The step of generating the spatially variable kernel comprises:
generating the first kernel by performing a weighted sum of first kernel coefficient information for the first pixel and the plurality of gradient kernels; and
and generating the second kernel by performing a weighted sum of second kernel coefficient information for the second pixel and the plurality of gradient kernels.
제15항에 있어서,
상기 제2 영상을 생성하는 단계는,
상기 제1 픽셀을 중심으로 하는 제1 영역에 상기 제1 커널을 적용하여, 필터링을 수행하는 단계; 및
상기 제2 픽셀을 중심으로 하는 제2 영역에 상기 제2 커널을 적용하여, 필터링을 수행하는 단계;를 포함하는, 영상 처리 장치의 동작 방법.
16. The method of claim 15,
The generating of the second image comprises:
performing filtering by applying the first kernel to a first area centered on the first pixel; and
and performing filtering by applying the second kernel to a second area centered on the second pixel.
제10항에 있어서,
상기 동작 방법은,
상기 제1 영상에 포함되는 적어도 하나의 영역에 대한 퀄리티 정보를 획득하는 단계; 및
상기 퀄리티 정보에 기초하여, 복수의 그래디언트 커널 셋들 중, 상기 적어도 하나의 영역에 대응하는 상기 그래디언트 커널 셋을 선택하는 단계를 더 포함하고,
상기 공간 가변 커널을 생성하는 단계는,
상기 적어도 하나의 영역에 포함되는 적어도 하나의 픽셀에 대응하는 상기 커널 계수 정보와 상기 그래디언트 커널 셋에 기초하여, 상기 적어도 하나의 픽셀에 대응하는 커널을 생성하는 단계를 포함하는, 영상 처리 장치의 동작 방법.
11. The method of claim 10,
The method of operation is
acquiring quality information on at least one region included in the first image; and
Selecting the gradient kernel set corresponding to the at least one region from among a plurality of gradient kernel sets based on the quality information,
The step of generating the spatially variable kernel comprises:
and generating a kernel corresponding to the at least one pixel based on the kernel coefficient information corresponding to the at least one pixel included in the at least one region and the gradient kernel set. Way.
제17항에 있어서,
상기 퀄리티 정보를 획득하는 단계는,
상기 제1 영상에 포함되는 제1 영역에 대한 제1 퀄리티 정보를 획득하는 단계; 및
상기 제1 영상에 포함되는 제2 영역에 대한 제2 퀄리티 정보를 획득하는 단계를 포함하고,
상기 공간 가변 커널을 생성하는 단계는,
상기 복수의 그래디언트 커널 셋들 중 상기 제1 퀄리티 정보에 대응하는 제1 그래디언트 커널 셋과, 상기 제1 영역에 포함되는 제1 픽셀에 대응하는 제1 커널 계수 정보에 기초하여, 상기 제1 픽셀에 대응하는 제1 커널을 생성하는 단계; 및
상기 복수의 그래디언트 커널 셋들 중 상기 제2 퀄리티 정보에 대응하는 제2 그래디언트 커널 셋과, 상기 제2 영역에 포함되는 제2 픽셀에 대응하는 제2 커널 계수 정보에 기초하여, 상기 제2 픽셀에 대응하는 제2 커널을 생성하는 단계를 포함하는, 영상 처리 장치의 동작 방법.
18. The method of claim 17,
The step of obtaining the quality information includes:
obtaining first quality information on a first area included in the first image; and
acquiring second quality information on a second region included in the first image;
The step of generating the spatially variable kernel comprises:
Corresponding to the first pixel based on a first gradient kernel set corresponding to the first quality information among the plurality of gradient kernel sets and first kernel coefficient information corresponding to a first pixel included in the first region generating a first kernel to and
Corresponding to the second pixel based on a second gradient kernel set corresponding to the second quality information among the plurality of gradient kernel sets and second kernel coefficient information corresponding to a second pixel included in the second region A method of operating an image processing apparatus comprising the step of generating a second kernel to
제10항의 방법을 수행하도록 하는 프로그램이 저장된 하나 이상의 컴퓨터로 읽을 수 있는 기록매체.One or more computer-readable recording media in which a program for performing the method of claim 10 is stored.
KR1020210097304A 2021-03-04 2021-07-23 Image processing apparatus and operating method for the same KR20220125127A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202280018868.7A CN116997914A (en) 2021-03-04 2022-02-11 Image processing apparatus and method of operating the same
EP22705003.6A EP4083874A4 (en) 2021-03-04 2022-02-11 Image processing device and operating method therefor
PCT/KR2022/002060 WO2022186498A1 (en) 2021-03-04 2022-02-11 Image processing device and operating method therefor
US17/687,162 US20220284545A1 (en) 2021-03-04 2022-03-04 Image processing device and operating method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210029089 2021-03-04
KR1020210029089 2021-03-04

Publications (1)

Publication Number Publication Date
KR20220125127A true KR20220125127A (en) 2022-09-14

Family

ID=83278967

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210097304A KR20220125127A (en) 2021-03-04 2021-07-23 Image processing apparatus and operating method for the same

Country Status (1)

Country Link
KR (1) KR20220125127A (en)

Similar Documents

Publication Publication Date Title
Su et al. Pixel-adaptive convolutional neural networks
CN109308679B (en) Image style conversion method and device, equipment and storage medium
JP6276901B1 (en) Image processing apparatus, image processing method, and image processing program
CN110210524B (en) Training method of image enhancement model, image enhancement method and device
Singh et al. Single image dehazing for a variety of haze scenarios using back projected pyramid network
KR102570562B1 (en) Image processing apparatus and operating method for the same
KR20200067631A (en) Image processing apparatus and operating method for the same
KR20200132305A (en) Method for performing convolution operation at predetermined layer within the neural network by electronic device, and electronic device thereof
KR102420104B1 (en) Image processing apparatus and operating method for the same
KR102236582B1 (en) Image processing apparatus and operating method for the same
KR101795952B1 (en) Method and device for generating depth image of 2d image
CN112689849A (en) Image processing apparatus and method of operating the same
EP4083874A1 (en) Image processing device and operating method therefor
JP2021108120A (en) Apparatus for, method of, and program for machine learning combining dot data with raster data
US20230073175A1 (en) Method and system for processing image based on weighted multiple kernels
KR20220125127A (en) Image processing apparatus and operating method for the same
Gkillas et al. A highly interpretable deep equilibrium network for hyperspectral image deconvolution
KR101866135B1 (en) Device and method for generating depth information of 2d image, recording medium thereof
Viriyavisuthisakul et al. A regularization-based generative adversarial network for single image super-resolution
US20230169752A1 (en) Image processing apparatus and operating method thereof
KR20220125124A (en) Image processing apparatus and operating method for the same
CN116997914A (en) Image processing apparatus and method of operating the same
KR102266903B1 (en) Image processing apparatus and operating method for the same
US20220284555A1 (en) Image processing apparatus and operation method thereof
US20230169748A1 (en) Image processing apparatus and operating method thereof