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

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

Info

Publication number
KR102236582B1
KR102236582B1 KR1020190056553A KR20190056553A KR102236582B1 KR 102236582 B1 KR102236582 B1 KR 102236582B1 KR 1020190056553 A KR1020190056553 A KR 1020190056553A KR 20190056553 A KR20190056553 A KR 20190056553A KR 102236582 B1 KR102236582 B1 KR 102236582B1
Authority
KR
South Korea
Prior art keywords
feature information
patches
image
input
sub
Prior art date
Application number
KR1020190056553A
Other languages
English (en)
Other versions
KR20200131663A (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 KR1020190056553A priority Critical patent/KR102236582B1/ko
Priority to PCT/KR2020/004561 priority patent/WO2020231005A1/ko
Priority to EP20806144.0A priority patent/EP3855388A4/en
Publication of KR20200131663A publication Critical patent/KR20200131663A/ko
Application granted granted Critical
Publication of KR102236582B1 publication Critical patent/KR102236582B1/ko
Priority to US17/525,620 priority patent/US11954755B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
    • G06K9/46
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

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

Abstract

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

Description

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

Claims (15)

  1. 영상 처리 장치에 있어서,
    하나 이상의 인스트럭션들을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고,
    상기 프로세서는, 입력 영상에 기초하여, 하나 이상의 입력 패치들을 추출하고,
    복수의 패치들과 상기 복수의 패치들 각각에 대응하는 서브 특징 정보 사이의 매핑 정보를 포함하는 딕셔너리에 기초하여, 상기 하나 이상의 입력 패치들 각각에 대응하는 서브 특징 정보를 추출하고, 상기 추출된 서브 특징 정보와 필터 커널의 컨볼루션 연산을 수행함으로써, 상기 입력 영상을 기 설정된 목적에 따라 영상 처리한, 최종 영상을 획득하며,
    상기 복수의 패치들은,
    제1 영상에서 추출되며,
    상기 서브 특징 정보는,
    n개의 컨볼루션 레이어들을 포함하고, 상기 기 설정된 목적에 따라 영상 처리하도록 훈련된 딥 뉴럴 네트워크(DNN)에 상기 제1 영상을 입력하여, n-1번째 컨볼루션 레이어로부터 출력되는 특징 정보로부터 추출되고,
    상기 필터 커널은,
    상기 DNN의 n번째 컨볼루션 레이어에 포함되는 필터 커널에 기초하는, 영상 처리 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 복수의 패치들 사이의 유사도, 및 상기 복수의 패치들에 대응하여 상기 특징 정보로부터 추출된 서브 특징 정보들 사이의 유사도에 기초하여, 상기 서브 특징 정보들이 클러스터링되는, 영상 처리 장치.
  5. 제4항에 있어서,
    상기 복수의 패치들 중 제1 패치에 대응하여, 상기 특징 정보로부터 추출된 제1 서브 특징 정보 및 제2 패치에 대응하여, 상기 특징 정보로부터 추출되는 제2 서브 특징 정보는 제1 클러스터로 클러스터링되고,
    상기 제1 클러스터에 대응하는 제1 대표 특징 정보는, 상기 제1 서브 특징 정보 및 제2 서브 특징 정보에 기초하여, 생성되며,
    상기 딕셔너리는, 상기 제1 패치 및 제2 패치가, 상기 제1 대표 특징 정보에 매핑되는 정보를 포함하는, 영상 처리 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 하나 이상의 입력 패치들 중 제1 입력 패치에 대한 제1 해쉬 값을 결정하고, 상기 복수의 패치들 중 상기 제1 해쉬 값을 가지는 제1 패치를 결정하며, 상기 딕셔너리에 기초하여, 상기 제1 패치에 대응하는 제1 서브 특징 정보를 추출하고, 추출된 제1 서브 특징 정보를 상기 제1 입력 패치에 대응하는 특징 정보로 결정하는, 영상 처리 장치.
  7. 제6항에 있어서,
    상기 제1 해쉬 값은, 상기 제1 입력 패치에 포함되는 픽셀들 중 일부 픽셀들에 대한 값들에 기초하여 결정되는 값이며, 상기 일부 픽셀들은, 기 설정된 패턴을 형성하는, 영상 처리 장치.
  8. 영상 처리 장치의 동작방법에 있어서,
    입력 영상에 기초하여, 하나 이상의 입력 패치들을 추출하는 단계;
    복수의 패치들과 상기 복수의 패치들 각각에 대응하는 서브 특징 정보 사이의 매핑 정보를 포함하는 딕셔너리에 기초하여, 상기 하나 이상의 입력 패치들 각각에 대응하는 서브 특징 정보를 추출하는 단계; 및
    상기 추출된 서브 특징 정보와 필터 커널의 컨볼루션 연산을 수행함으로써, 상기 입력 영상을 기 설정된 목적에 따라 영상 처리한, 최종 영상을 획득하는 단계를 포함하고,
    상기 복수의 패치들은,
    제1 영상에서 추출되며,
    상기 서브 특징 정보는,
    n개의 컨볼루션 레이어들을 포함하고, 상기 기 설정된 목적에 따라 영상 처리하도록 훈련된 딥 뉴럴 네트워크(DNN)에 상기 제1 영상을 입력하여, n-1번째 컨볼루션 레이어로부터 출력되는 특징 정보로부터 추출되고,
    상기 필터 커널은,
    상기 DNN의 n번째 컨볼루션 레이어에 포함되는 필터 커널에 기초하는, 영상 처리 장치의 동작방법.
  9. 삭제
  10. 삭제
  11. 제8항에 있어서,
    상기 복수의 패치들 사이의 유사도, 및 상기 복수의 패치들 각각에 대응하여 상기 특징 정보로부터 추출된 서브 특징 정보들 사이의 유사도에 기초하여, 상기 서브 특징 정보들이 클러스터링되는, 영상 처리 장치의 동작방법.
  12. 제11항에 있어서,
    상기 복수의 패치들 중 제1 패치에 대응하여, 상기 특징 정보로부터 추출된 제1 서브 특징 정보 및 제2 패치에 대응하여, 상기 특징 정보로부터 추출된 제2 서브 특징 정보는 제1 클러스터로 클러스터링되고,
    상기 제1 클러스터에 대응하는 제1 대표 특징 정보는, 상기 제1 서브 특징 정보 및 제2 서브 특징 정보에 기초하여, 생성되며,
    상기 딕셔너리는, 상기 제1 패치 및 제2 패치가, 상기 제1 대표 특징 정보에 매핑되는 정보를 포함하는, 영상 처리 장치의 동작방법.
  13. 제8항에 있어서,
    상기 하나 이상의 입력 패치들 각각에 대응하는 특징 정보를 추출하는 단계는,
    상기 하나 이상의 입력 패치들 중 제1 입력 패치에 대한 제1 해쉬 값을 결정하는 단계;
    상기 복수의 패치들 중 상기 제1 해쉬 값을 가지는 제1 패치를 결정하는 단계; 및
    상기 딕셔너리에 기초하여, 상기 제1 패치에 대응하는 제1 서브 특징 정보를 추출하고, 추출된 제1 특징 정보를 상기 제1 입력 패치에 대응하는 특징 정보로 결정하는 단계를 포함하는, 영상 처리 장치의 동작방법.
  14. 제13항에 있어서,
    상기 제1 해쉬 값을 결정하는 단계는,
    상기 제1 입력 패치에 포함되는 픽셀들 중 일부 픽셀들에 대한 값들에 기초하여 상기 제1 해쉬 값을 결정하는 단계를 포함하고,
    상기 일부 픽셀들은, 기 설정된 패턴을 형성하는, 영상 처리 장치의 동작방법.
  15. 입력 영상에 기초하여, 하나 이상의 입력 패치들을 추출하는 단계;
    복수의 패치들과 상기 복수의 패치들 각각에 대응하는 서브 특징 정보 사이의 매핑 정보를 포함하는 딕셔너리에 기초하여, 상기 하나 이상의 입력 패치들 각각에 대응하는 서브 특징 정보를 추출하는 단계; 및
    상기 추출된 서브 특징 정보와 필터 커널의 컨볼루션 연산을 수행함으로써, 상기 입력 영상을 기 설정된 목적에 따라 영상 처리한, 최종 영상을 획득하는 단계를 포함하고,
    상기 복수의 패치들은,
    제1 영상에서 추출되며,
    상기 서브 특징 정보는,
    n개의 컨볼루션 레이어들을 포함하고, 상기 기 설정된 목적에 따라 영상 처리하도록 훈련된 딥 뉴럴 네트워크(DNN)에 상기 제1 영상을 입력하여, n-1번째 컨볼루션 레이어로부터 출력되는 특징 정보로부터 추출되고,
    상기 필터 커널은,
    상기 DNN의 n번째 컨볼루션 레이어에 포함되는 필터 커널에 기초하는, 방법을 수행하도록 하는 프로그램이 저장된 하나 이상의 컴퓨터로 읽을 수 있는 기록매체.
KR1020190056553A 2019-05-14 2019-05-14 영상 처리 장치 및 그 동작방법 KR102236582B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190056553A KR102236582B1 (ko) 2019-05-14 2019-05-14 영상 처리 장치 및 그 동작방법
PCT/KR2020/004561 WO2020231005A1 (ko) 2019-05-14 2020-04-03 영상 처리 장치 및 그 동작방법
EP20806144.0A EP3855388A4 (en) 2019-05-14 2020-04-03 IMAGE PROCESSING DEVICE AND ITS OPERATING PROCESS
US17/525,620 US11954755B2 (en) 2019-05-14 2021-11-12 Image processing device and operation method thereof

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
KR20200131663A KR20200131663A (ko) 2020-11-24
KR102236582B1 true KR102236582B1 (ko) 2021-04-06

Family

ID=73290277

Family Applications (1)

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

Country Status (4)

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

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11972348B2 (en) * 2020-10-30 2024-04-30 Apple Inc. Texture unit circuit in neural network processor
JP7325775B2 (ja) * 2021-07-20 2023-08-15 シリコンスタジオ株式会社 画像処理システム、方法、及びプログラム
CN117372911A (zh) * 2022-06-28 2024-01-09 北京三星通信技术研究有限公司 图像处理方法、装置、电子设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120088350A (ko) * 2011-01-31 2012-08-08 한국전자통신연구원 고해상도 영상 생성 장치
US9324133B2 (en) * 2012-01-04 2016-04-26 Sharp Laboratories Of America, Inc. Image content enhancement using a dictionary technique
KR101873038B1 (ko) * 2012-04-04 2018-07-02 엘지디스플레이 주식회사 표시장치의 영상품질 향상 방법 및 그 장치
KR101653038B1 (ko) * 2014-05-12 2016-09-12 주식회사 칩스앤미디어 이미지 패치를 이용한 해상도 스케일링 장치 및 그 방법
DE202016009102U1 (de) * 2015-02-19 2022-04-22 Magic Pony Technology Limited Verbesserung visueller Daten mittels gestufter Faltungen
US10460230B2 (en) 2015-06-04 2019-10-29 Samsung Electronics Co., Ltd. Reducing computations in a neural network
US10832123B2 (en) 2016-08-12 2020-11-10 Xilinx Technology Beijing Limited Compression of deep neural networks with proper use of mask
US10762426B2 (en) 2016-08-12 2020-09-01 Beijing Deephi Intelligent Technology Co., Ltd. Multi-iteration compression for deep neural networks
US10984308B2 (en) 2016-08-12 2021-04-20 Xilinx Technology Beijing Limited Compression method for deep neural networks with load balance
US10733722B2 (en) * 2017-06-27 2020-08-04 Nec Corporation Reconstructor and contrastor for anomaly detection
US11615879B2 (en) * 2017-09-08 2023-03-28 The General Hospital Corporation System and method for automated labeling and annotating unstructured medical datasets

Also Published As

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

Similar Documents

Publication Publication Date Title
US11875268B2 (en) Object recognition with reduced neural network weight precision
CN111489412B (zh) 用于使用神经网络生成基本逼真图像的语义图像合成
Muresan et al. Fruit recognition from images using deep learning
US20200134375A1 (en) Semantic segmentation model training methods and apparatuses, electronic devices, and storage media
CN113039563A (zh) 学习生成用于训练神经网络的合成数据集
KR102236582B1 (ko) 영상 처리 장치 및 그 동작방법
KR102338372B1 (ko) 영상으로부터 객체를 분할하는 방법 및 장치
Singh et al. Single image dehazing for a variety of haze scenarios using back projected pyramid network
US11921822B2 (en) Image processing device for improving details of an image, and operation method of the same
US20200234467A1 (en) Camera self-calibration network
KR102332114B1 (ko) 이미지 처리 방법 및 장치
KR20200003444A (ko) 영상 모델 구축 장치 및 방법
US20200364486A1 (en) Image processing apparatus and operating method of the same
EP3839873A1 (en) Image processing apparatus and operation method thereof
CN114626500A (zh) 一种神经网络计算方法及相关设备
US20220284545A1 (en) Image processing device and operating method thereof
US20230073175A1 (en) Method and system for processing image based on weighted multiple kernels
KR20210048281A (ko) 배경 제거 영상 생성 방법 및 장치
US20220004904A1 (en) Deepfake detection models utilizing subject-specific libraries
US20210081756A1 (en) Fractional convolutional kernels
US20220284555A1 (en) Image processing apparatus and operation method thereof
KR20220125124A (ko) 영상 처리 장치 및 그 동작방법
KR20220125127A (ko) 영상 처리 장치 및 그 동작방법
KR20230034127A (ko) 영상 처리 장치 및 그 동작 방법
KR20220120216A (ko) 3d 모델링을 위한 전자 장치의 제어방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant