[go: up one dir, main page]

KR102756360B1 - 영상 처리 방법 및 장치 - Google Patents

영상 처리 방법 및 장치 Download PDF

Info

Publication number
KR102756360B1
KR102756360B1 KR1020200111842A KR20200111842A KR102756360B1 KR 102756360 B1 KR102756360 B1 KR 102756360B1 KR 1020200111842 A KR1020200111842 A KR 1020200111842A KR 20200111842 A KR20200111842 A KR 20200111842A KR 102756360 B1 KR102756360 B1 KR 102756360B1
Authority
KR
South Korea
Prior art keywords
feature map
kernel
image processing
size
pixel
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020200111842A
Other languages
English (en)
Other versions
KR20220030084A (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 KR1020200111842A priority Critical patent/KR102756360B1/ko
Priority to US17/159,653 priority patent/US12136254B2/en
Priority to EP21160458.2A priority patent/EP3965014A1/en
Priority to CN202110495472.9A priority patent/CN114202657A/zh
Publication of KR20220030084A publication Critical patent/KR20220030084A/ko
Application granted granted Critical
Publication of KR102756360B1 publication Critical patent/KR102756360B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/3827Portable transceivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Signal Processing (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Automation & Control Theory (AREA)
  • Optics & Photonics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Geometry (AREA)
  • Algebra (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

일 실시예에 따른 영상 처리 방법 및 장치는 제1 특징 맵을 수신하고, 제1 특징 맵의 확대 비율에 기초하여 결정적으로 정의되는 커널을 획득하고, 제1 특징 맵과 커널 간의 전치 합성곱 연산을 수행함으로써, 제1 특징 맵을 제2 특징 맵으로 업 샘플링하며, 제2 특징 맵을 출력한다.

Description

영상 처리 방법 및 장치{METHOD AND APPARATUS OF PROCESSING IMAGE}
아래의 실시예들은 영상 처리 방법 및 장치에 관한 것이다.
예를 들어, 영상 인식, 객체 검출, 및 영상 분할 등과 같은 다양한 응응 분야에서 컨볼루션 신경망(Convolutional Neural Network; CNN)의 활용이 늘어나고 있다. 컨볼루션 신경망은 일반적으로 특징 맵(feature map)의 크기를 줄여나가면서 보다 추상적인 개념의 특징들을 조합해 가는 인식기의 구조를 기반으로 한다. 하지만, 컨볼루션 신경망의 최종 출력의 형태는 응용 분야마다 달라질 수 있다. 이와 같이 서로 다른 최종 출력의 형태로 인해 컨볼루션 신경망을 통해 줄어든 특징 맵의 크기를 다시 늘리는 연산이 요구될 수 있다. 특징 맵의 크기를 다시 늘리는 연산이 컨볼루션 신경망에서 주로 사용하는 합성곱(Convolution) 또는 행렬 곱셈(Matrix Multiplication)의 형태로 수행되지 않는 경우, 컨볼루션 신경망에 기반한 프로세싱 유닛은 해당 연산을 수행할 수가 없어 외부 프로세서의 도움을 받아야 할 수 있다.
전술한 배경기술은 발명자가 본원의 개시 내용을 도출하는 과정에서 보유하거나 습득한 것으로서, 반드시 본 출원 전에 일반 공중에 공개된 공지기술이라고 할 수는 없다.
일 실시예에 따르면, 영상 처리 방법은 제1 특징 맵(feature map)을 수신하는 단계; 상기 제1 특징 맵의 확대 비율에 기초하여 결정적으로 정의되는 (deterministically defined) 커널(kernel)을 획득하는 단계; 상기 제1 특징 맵과 상기 커널 간의 전치 합성곱(transposed convolution) 연산을 수행함으로써, 상기 제1 특징 맵을 제2 특징 맵으로 업 샘플링(up-sampling)하는 단계; 및 상기 제2 특징 맵을 출력하는 단계를 포함한다.
상기 커널은 상기 커널의 중심 픽셀과 상기 중심 픽셀의 주변 픽셀들 간의 거리에 기초한 가중치들을 포함할 수 있다.
상기 가중치는 상기 커널의 중심 픽셀과 상기 중심 픽셀의 주변 픽셀들 간의 거리에 반비례할 수 있다.
상기 커널의 크기, 상기 전치 합성곱 연산의 스트라이드(stride) 파라미터, 및 상기 전치 합성곱 연산의 패딩(padding) 파라미터 각각은 상기 확대 비율에 기초하여 결정될 수 있다.
상기 커널의 크기, 상기 전치 합성곱 연산의 스트라이드 파라미터, 및 상기 전치 합성곱 연산의 패딩 파라미터 각각은 보간 방식에 더 기초하여 결정될 수 있다.
상기 제1 특징 맵이 복수의 채널들을 포함하는 경우, 상기 업 샘플링하는 단계는 상기 채널들과 상기 커널 간의 뎁스 와이즈 전치 합성곱(depth-wise transposed convolution) 연산을 수행하는 단계를 포함할 수 있다.
상기 제1 특징 맵은 양자화된 활성 값들을 포함하고, 상기 커널은 양자화된 가중치들을 포함할 수 있다.
상기 커널은 상기 제1 특징 맵의 제1 픽셀의 제1 값을, 상기 제1 픽셀의 위치에 대응하는 상기 제2 특징 맵의 제2 픽셀의 제2 값으로 변환하기 위해 상기 제1 값에 곱해지는 가중치를 양자화(quantization)를 통해 파라미터로 변환한 전치 합성곱 커널(transposed convolution Kernel) 매트릭스를 포함할 수 있다.
상기 확대 비율은 상기 제1 특징 맵의 크기와 상기 제2 특징 맵의 크기가 일정 정수(integer) 비율을 만족하도록 결정될 수 있다.
상기 제1 특징 맵은 신경망 내 이전 레이어에서 합성곱 연산을 통해 원 영상(original image)의 정보가 압축된 특징 맵; 및 상기 신경망 내 이전 레이어에서 상기 전치 합성곱 연산을 통해 업 샘플링된 특징 맵 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 영상 처리 장치는 제1 특징 맵을 수신하는 통신 인터페이스; 및 상기 제1 특징 맵의 확대 비율에 기초하여 결정적으로 정의되는 커널을 획득하고, 상기 제1 특징 맵과 상기 커널 간의 전치 합성곱 연산을 수행함으로써, 상기 제1 특징 맵을 제2 특징 맵으로 업 샘플링하는 프로세서를 포함하고, 상기 통신 인터페이스는 상기 제2 특징 맵을 출력한다.
상기 커널은 상기 커널의 중심 픽셀과 상기 중심 픽셀의 주변 픽셀들 간의 거리에 기초한 가중치들을 포함할 수 있다.
상기 가중치는 상기 커널의 중심 픽셀과 상기 중심 픽셀의 주변 픽셀들 간의 거리에 반비례할 수 있다.
상기 커널의 크기, 상기 전치 합성곱 연산의 스트라이드 파라미터, 및 상기 전치 합성곱 연산의 패딩 파라미터 각각은 상기 확대 비율에 기초하여 결정될 수 있다.
상기 커널의 크기, 상기 전치 합성곱 연산의 스트라이드 파라미터, 및 상기 전치 합성곱 연산의 패딩 파라미터 각각은 보간 방식에 더 기초하여 결정될 수 있다.
상기 제1 특징 맵이 복수의 채널들 을 포함하는 경우, 상기 프로세서는 상기 채널들과 상기 커널 간의 뎁스 와이즈 전치 합성곱 연산을 수행할 수 있다.
상기 제1 특징 맵은 양자화된 활성 값들을 포함하고, 상기 커널은 양자화된 가중치들을 포함할 수 있다.
상기 커널은 상기 제1 특징 맵의 제1 픽셀의 제1 값을, 상기 제1 픽셀의 위치에 대응하는 상기 제2 특징 맵의 제2 픽셀의 제2 값으로 변환하기 위해 상기 제1 값에 곱해지는 가중치를 양자화를 통해 파라미터로 변환한 전치 합성곱 커널 매트릭스를 포함할 수 있다.
상기 확대 비율은 상기 제1 특징 맵의 크기와 상기 제2 특징 맵의 크기가 일정 정수 비율을 만족하도록 결정될 수 있다.
상기 제1 특징 맵은 신경망 내 이전 레이어에서 합성곱 연산을 통해 원 영상의 정보가 압축된 특징 맵; 및 상기 신경망 내 이전 레이어에서 상기 전치 합성곱 연산을 통해 업 샘플링된 특징 맵 중 적어도 하나를 포함할 수 있다.
상기 영상 처리 장치는 상기 확대 비율에 기초하여 상기 커널을 동적으로 생성하는 하드웨어 가속기(HardWare Accelerator)를 더 포함할 수 있다.
상기 영상 처리 장치는 HUD(Head Up Display) 장치, 3D 디지털 정보 디스플레이(Digital Information Display, DID), 내비게이션 장치, 3D 모바일 기기 , 스마트 폰, 스마트 TV, 및 스마트 차량 중 적어도 하나를 포함할 수 있다.
도 1은 특징 맵의 크기를 확대하는 데에 이용되는 보간 연산을 설명하기 위한 도면.
도 2는 일 실시예에 따른 영상 처리 방법을 나타낸 흐름도.
도 3 및 도 4는 일 실시예에 따라 전치 합성곱 연산에 의해 쌍선형 보간 연산을 대체하는 방법을 설명하기 위한 도면.
도 5은 일 실시예에 따라 제1 특징 맵의 채널들에 대응하는 커널을 이용하여 전치 합성곱 연산이 수행되는 과정을 설명하기 위한 도면.
도 6은 일 실시예에 따른 커널의 예시들을 도시한 도면.
도 7은 일 실시예에 따라 인코더에서 출력되는 제1 특징 맵을 디코더에 입력되는 제2 특징 맵으로 업 샘플링하는 과정을 설명하기 위한 도면.
도 8는 서버가 일 실시예에 따른 영상 처리 장치가 제1 특징 맵을 제2 특징 맵으로 업 샘플링하도록 하는 실행 파일을 생성하는 과정을 나타낸 흐름도.
도 9은 일 실시예에 따른 영상 처리 장치의 블록도.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.
도 1은 특징 맵의 크기를 확대하는 데에 이용되는 보간 연산을 설명하기 위한 도면이다. 도 1을 참조하면, 보간 연산의 일 예시인 쌍선형 보간(Bilinear Interpolation; B.I.) 연산의 수행 원리가 도시된다.
예를 들어, 컨볼루션 신경망(CNN 또는 ConvNet)는 신경망 모델이 직접 영상, 비디오, 텍스트 또는 사운드를 분류하는 머신 러닝의 한 유형인 딥 러닝(deep learning)에 많이 사용될 수 있다. 컨볼루션 신경망은 합성곱(Convolution) 연산을 사용하며, 예를 들어, 영상에서 객체, 얼굴, 장면을 인식하기 위해 패턴을 찾는데 유용하다.
컨볼루션 신경망은 영상의 특징을 추출하기 위하여 필터(filter)가 입력 영상의 픽셀 또는 데이터를 일정 간격으로 순회하면서 합성곱 연산을 수행하고, 합성곱 연산의 결과를 이용하여 특징 맵(feature map) 또는 활성도 맵(activation map)을 생성할 수 있다. 여기서, '필터'는 예를 들어, 영상의 특징을 찾아내기 위한 공용 파라미터 또는 가중치 파라미터들을 포함할 수 있다. 필터는 후술하는 '커널'이라고도 불릴 수 있다. 또한, 입력 영상에 필터를 적용할 때, 필터가 입력 영상의 픽셀 또는 데이터를 이동(또는 순회)하는 일정 간격은 '스트라이드(stride)'라고 부를 수 있다. 예를 들어, 스트라이드가 '2'인 경우, 필터는 입력 영상의 픽셀 또는 데이터에서 2칸씩 이동하면서 합성곱 연산을 수행할 수 있다. 이 경우, 스트라이드 파라미터 = 2라고 표현될 수 있다.
'특징 맵'은 합성곱 연산을 통해 원 영상(original image)의 정보가 압축된 것으로서, 예를 들어, 행렬의 형태로 표현될 수 있다. 또한, 활성도 맵은 특징 맵에 활성 함수(activation function)를 적용한 결과에 해당할 수 있다. 다시 말해, 활성도 맵은 컨볼루션 신경망에서 컨볼루션 연산을 수행하는 컨볼루션 레이어들의 최종 출력 결과에 해당할 수 있다.
컨볼루션 신경망에서 최종 출력되는 데이터의 형태(shape)는 예를 들어, 필터의 크기, 스트라이드(Stride), 패딩(Padding)의 적용 여부, 및/또는 맥스 풀링(Max Pooling)의 크기 등에 따라서 변경될 수 있다. 컨볼루션 레이어에서는 필터와 스트라이드의 작용으로 인해 특징 맵의 크기가 입력 데이터보다 작을 수 있다.
'패딩'은 데이터의 외곽에 지정된 픽셀 수(예를 들어, '2')만큼 특정 값을 채워 넣는 것으로 이해될 수 있다. 예를 들어, 패딩이 '2'로 설정된 경우, 32 x 32의 크기를 갖는 데이터 외곽의 상, 하, 좌, 우에는 각각 2 픽셀만큼 특정 값(예를 들어, '0')이 채워질 수 있다. 따라서, 패딩이 '2'로 설정된 경우, 최종적인 데이터의 크기는 36 x 36 크기가 될 수 있다. 이 경우, '패딩 파라미터= 2'라고 표현될 수 있다. 이와 같이, 패딩을 통해 컨볼루션 레이어의 출력 데이터의 사이즈가 조절될 수 있다.
이하, 본 명세서에서 크기는 픽셀(pixel) 단위의 크기에 해당하며, 별도의 기재가 없더라도 크기는 픽셀 단위의 크기로 이해될 수 있다.
예를 들어, 패딩을 사용하지 않는 경우, 데이터의 공간적 크기는 컨볼루션 레이어를 지날 때마다 작아지게 되므로 데이터의 가장자리의 정보들이 사라질 수 있다. 패딩은 이와 같이 데이터의 가장자리의 정보가 사라지는 것을 방지하거나, 또는 컨볼루션 레이어의 출력을 입력 데이터의 공간적 크기와 동일하게 맞춰 주기 위해 사용될 수 있다.
보간 연산은 예를 들어, 컨볼루션 신경망을 이용하여 영상 세그먼테이션(Image Segmentation)을 수행하는 경우 등과 같이 컨볼루션 레이어들을 거치면서 정보가 압축된 경우, 압축된 정보를 다시 확대하는 데에 이용될 수 있다. 보다 구체적으로, 보간 연산은 영상 또는 특징 맵 등의 크기가 확대됨에 따라 발생하는 빈 픽셀(hole)을 메워 주기 위해 빈 픽셀의 주변의 픽셀들을 분석하여 새로운 픽셀 값을 생성하는 연산으로 이해될 수 있다.
보간 연산의 일 예시에 해당하는 쌍선형 보간 연산은 보간 연산을 통해 새롭게 생성되는 픽셀(pixel)의 값을 해당 픽셀에 가장 가까운 주변 픽셀들의 기하 평균(Geometric Mean)으로 계산하는 방식이다.
예를 들어, 도 1에 도시된 사각형 내의 한 지점(x,y)에 보간하고자 하는 대상 픽셀(T)이 존재한다고 하자. 이 경우, 대상 픽셀(T)의 값은 대상 픽셀(T)에 가까운 4개의 인접 픽셀들(A, B, C, D)의 값들에 대한 기하 평균에 의해 구해질 수 있다.
대상 픽셀(T)에 가까운 4개의 인접 픽셀들(A, B, C, D)의 값에는 아래의 수학식 1과 같이 대상 픽셀(T)과 인접 픽셀들(A, B, C, D) 각각 간의 거리에 반비례하는 가중치가 곱해지고, 가중치가 곱해진 각 거리를 모두 더함으로써 대상 픽셀(T)의 보간 값이 결정될 수 있다.
다시 말해, 대상 픽셀(T)이 존재할 수 있는 최대 공간의 면적을 (x2 - x1) * (y2 - y1) 라고 하면, 해당 면적 내에서 대상 픽셀(T)과 인접 픽셀들(A, B, C, D) 간의 거리에 기초하여 차지되는 공간을 제외한 나머지 공간에 대응하는 기하 평균값이 대상 픽(T)셀과 인접 픽셀들(A, B, C, D) 간의 거리에 대응하는 가중치로 부여될 수 있다. 대상 픽셀(T)과 인접 픽셀들(A, B, C, D) 각각과의 거리가 가까울수록 큰 가중치가 부여되고, 대상 픽셀(T)과 인접 픽셀들(A, B, C, D) 각각과의 거리가 멀수록 작은 가중치가 부여될 수 있다.
앞서 살펴본 것과 같이, 쌍선형 보간 연산은 컨볼루션 신경망에서 주로 사용하는 합성곱(Convolution) 또는 행렬 곱셈(Matrix Multiplication)의 형태로 수행되지 않으므로, 컨볼루션 신경망에 기반한 프로세싱 유닛 또는 가속기(Accelerator)에서는 쌍선형 보간 연산을 수행할 수가 없다.
예를 들어, 쌍선형 보간 연산의 수행이 요구되는 경우, 컨볼루션 신경망에 기반한 프로세싱 유닛에서는 해당 연산을 GPU(Graphic Processing Unit) 및 CPU(Central Processing Unit) 등과 같은 외부 IP(Information Provider)를 통해 처리하게 되고, 외부 IP로의 데이터 전송에 따른 오버헤드(overhead) 및 처리 속도의 저하가 발생할 수 있다.
도 2는 일 실시예에 따른 영상 처리 방법을 나타낸 흐름도이다. 도 2를 참조하면, 일 실시예에 따른 영상 처리 장치는 제1 특징 맵(feature map)을 수신한다(210). 제1 특징 맵은 예를 들어, 신경망 내 이전 레이어에서 합성곱(convolution) 연산을 통해 원 영상(original image)의 정보가 압축된 특징 맵일 수도 있고, 또는 신경망 내 이전 레이어에서 전치 합성곱 연산을 통해 업 샘플링된 특징 맵일 수도 있다. 이때, 신경망은 예를 들어, 컨볼루션 신경망이고, 레이어는 예를 들어, 합성곱 연산을 수행하는 컨볼루션 레이어일 수 있다. 제1 특징 맵은 예를 들어, 양자화된 활성 값들을 포함할 수 있다. 예를 들어, 입력 영상이 컬러 영상이라면, 천연색을 표현하기 위해 특징 맵의 각 픽셀은 R(Red), G(Green), B(Blue)의 3개의 색상 각각에 대응하는 값을 가질 수 있으므로 제1 특징 맵은 3개의 채널들을 포함할 수 있다. 또는 입력 영상이 흑백 영상이라면, 특징 맵은 흑백 명암만을 표현하면 제1 특징 맵은 1개의 채널을 포함할 수 있다.
영상 처리 장치는 단계(210)에서 수신한 제1 특징 맵의 확대 비율에 기초하여 결정적으로 정의되는(deterministically defined) 커널(kernel)을 획득한다(220). 여기서, '확대 비율'은 제1 특징 맵의 크기에 대한 제2 특징 맵의 크기의 비율에 해당한다는 점에서 '크기 비율'로도 불릴 수 있다. 확대 비율은 예를 들어, 1 특징 맵의 크기와 제2 특징 맵의 크기가 일정 정수(integer) 비율을 만족하도록 결정될 수 있다.
여기서, 커널이 '제1 특징 맵의 확대 비율에 기초하여 결정적으로 정의된다'는 것으로 제1 특징 맵의 확대 비율이 결정되면 이에 따라 해당 확대 배율에 대응하는 커널이 정의된다는 의미로 이해될 수 있다.
커널은 예를 들어, 양자화된 가중치들을 포함할 수 있다. 커널은 예를 들어, 제1 특징 맵의 제1 픽셀의 제1 값을, 제1 픽셀의 위치에 대응하는 제2 특징 맵의 제2 픽셀의 제2 값으로 변환하기 위해 제1 값에 곱해지는 가중치를 양자화(quantization)를 통해 파라미터로 변환한 전치 합성곱 커널(transposed convolution Kernel) 매트릭스를 포함할 수 있다.
일 실시예에 따른 커널은 예를 들어, 도 5에 도시된 커널(610)과 같이 커널의 중심 픽셀과 중심 픽셀의 주변 픽셀들 간의 거리에 기초한 가중치들을 포함할 수 있다. 이때, 중심 픽셀은 커널(610)의 중심(center)에 위치하는 픽셀(예를 들어, 커널(610)의 (4,4)에 위치하는 픽셀)에 해당하고, 주변 픽셀은 커널(610)에서 중심 픽셀을 제외한 나머지 픽셀들에 해당할 수 있다. 가중치들은 커널의 중심 픽셀과 중심 픽셀의 주변 픽셀들 간의 거리에 반비례할 수 있다. 주변 픽셀들의 가중치는 주변 픽셀들과 중심 픽셀 간의 거리에 반비례할 수 있다. 예를 들어, 중심 픽셀의 가중치가 '1'이라고 하면, 주변 픽셀들의 가중치는 주변 픽셀들이 중심 픽셀과 주변 픽셀들 간의 거리가 멀어질수록, 다시 말해 거리 값이 커질수록, '0.75', '0.5', '0.25' 등과 같이 점차 작아질 수 있다.
영상 처리 장치는 제1 특징 맵과 단계(220)에서 획득한 커널 간의 전치 합성곱(transposed convolution) 연산을 수행함으로써, 제1 특징 맵을 제2 특징 맵으로 업 샘플링(up-sampling)한다(230). 여기서, 전치 합성곱 연산은 예를 들어, 제1 특징 맵의 각 픽셀에 커널을 곱하여 계산되는 값을 누적하는 연산에 해당할 수 있다. 커널은 제1 특징 맵을 지정한 간격으로 순회하면서 전치 합성곱 연산을 수행할 수 있다. 이때, 커널이 제1 특징 맵을 순회하는 지정된 간격은 전술한 '스트라이드'에 해당할 수 있다. 예를 들어, 스트라이드가 '2'로 설정되면, 커널은 제1 특징 맵에서 2 픽셀씩 이동하면서 전치 합성곱 연산을 수행할 수 있다.
제1 특징 맵이 복수의 채널들을 포함하는 경우, 단계(230)에서, 영상 처리 장치는 예를 들어, 복수의 채널들과 커널 간의 뎁스 와이즈 전치 합성곱(depth-wise transposed convolution) 연산 또는 그룹 전치 합성곱(Group Transposed Convolution) 연산을 수행함으로써 제1 특징 맵을 제2 특징 맵으로 업 샘플링할 수 있다. 일 실시예에 따른 영상 처리 장치가 전치 합성곱 연산을 수행하는 방법은 아래의 도 3 내지 도 5를 참조하여 보다 구체적으로 설명한다.
영상 처리 장치는 단계(230)에서 업 샘플링한 제2 특징 맵을 출력한다(240).
도 3 및 도 4는 일 실시예에 따라 전치 합성곱 연산에 의해 쌍선형 보간 연산을 대체하는 방법을 설명하기 위한 도면이다. 도 3을 참조하면, 입력 특징 벡터(310) 및 쌍선형 보간 연산을 통해 입력 특징 맵(310)을 4배 확장시킨 출력 특징 맵(330)이 도시된다. 도 3에서 예를 들어, 스트라이드 파라미터는 4이고, 패딩 파라미터는 3이며, 확대 비율은 4라고 하자.
영상 처리 장치는 입력 특징 맵(310)을 스트라이드 크기(4)만큼 곱한 4배의 크기로 확장시킬 수 있다. 이에 따라, 입력 특징 맵(310)에서 1, 2, 5, 6에 해당하는 4개의 픽셀들(311)은 출력 특징 맵(330)에서 블럭(331)과 같이 배치될 수 있다. 또한, 입력 특징 맵(310)에서 2, 3, 6, 7에 해당하는 4개의 픽셀들(313)은 출력 특징 맵(330)에서 블럭(333)과 같이 배치되고, 3, 4, 7, 8에 해당하는 4개의 픽셀들(313)은 출력 특징 맵(330)에서 블럭(335)과 같이 배치될 수 있다.
이때, 출력 특징 맵(330)의 빈 픽셀의 공간을 채우는 데에는 예를 들어, 전술한 쌍선형 보간(B.I.) 이외에도 인접 화소 보간(Nearest Neighbor Interpolation), 평균값 보간(Mean Value Interpolation), 바이-큐빅 보간(Bi-cubic Interpolation) 등과 같은 다양한 보간 방법들이 이용될 수 있다.
인접 화소 보간법은 출력 특징 맵(330)에서 빈 픽셀의 바로 이웃 픽셀들(예를 들어, 빈 픽셀의 왼쪽 픽셀 또는 위쪽 픽셀 등)의 값을 빈 픽셀의 값으로 채워주는 방식으로서, 먼저 x 축 방향으로 빈 픽셀 값들의 보간을 수행한 후, y축 방향으로의 빈 픽셀 값들의 보간을 수행할 수 있다. 평균값 보간법은 빈 픽셀의 이웃 픽셀들의 평균값을 빈 픽셀의 값으로 채워주는 방식에 해당할 수 있다. 또한, 바이-큐빅 보간법은 영상을 회전시키거나 확대하는 등의 변화를 가하여 입력과 출력 간의 기하(geometry) 정보가 변한 경우에, 출력의 임의의 위치에 있는 데이터를 입력에서의 근접한 픽셀들로부터 계산하여 빈 픽셀의 값으로 채워주는 방식에 해당할 수 있다.
이하, 설명의 편의를 위하여 쌍선형 보간법을 이용하여 출력 특징 맵(330)의 빈 픽셀의 공간을 채우는 것을 일 예로 들어 설명하지만 반드시 이에 한정되는 것은 아니며, 쌍선형 보간법 이외의 다양한 보간 방법들이 이용될 수 있다.
예를 들어, 쌍선형 보간법을 이용하여 출력 특징 벡터(330)의 빈 픽셀의 공간을 채우는 경우, 전술한 것과 같이 기하 평균에 의해 빈 픽셀과 인접 픽셀들 각각 간의 거리에 반비례하는 가중치가 곱해지고, 가중치가 곱해진 각 거리를 더함으로써 빈 픽셀의 값이 결정될 수 있다.
이와 같이, 기하 평균을 사용하는 경우, 입력 특징 맵(310)와 출력 특징 맵(330) 간의 픽셀 정렬이 잘 맞으면, 다시 말해, 특징 맵(310)와 출력 특징 맵(330) 간의 크기 비율이 일정 정수 비율을 만족하는 경우에 각 픽셀들에 곱해지는 가중치가 반복되는 특성이 존재할 수 있다. 이때, 특징 맵(310)와 출력 특징 맵(330) 간의 크기 비율이 일정 정수 비율을 만족하는지 여부는 입력 특징 맵(310)과 출력 특징 맵(330) 간의 크기 비율이 아래의 수학식 2를 만족하는지 여부에 의해 결정될 수 있다.
수학식 2는 와 같이 간략화될 수도 있다.
예를 들어, 도 3에서 입력 특징 맵(310)의 크기는 4이고, 확대 비율(Extension Ratio)은 4이며, 출력 특징 맵(330)의 크기는 13이다. 따라서, 입력 특징 맵(310)과 출력 특징 맵(330) 간의 크기 비율은 13 = 4*4 - [4-1]로서 수학식 2를 만족한다.
입력 특징 맵(310)과 출력 특징 맵(330) 간의 크기 비율이 수학식 2를 만족하는 경우, 입력 특징 맵(310)의 픽셀에 곱해지는 가중치가 일정하게 반복되는 현상이 발생하므로 쌍선형 보간 연산에서 반복 계산되는 가중치를 전치 합성곱 연산의 형태로 구현할 수 있다. 이에 따라, 쌍선형 보간 연산은 전치 합성곱 연산과 동일하게 치환될 수 있다.
예를 들어, 입력 특징 맵(310)와 출력 특징 맵(330) 간의 픽셀 정렬이 잘 맞으면, 커널의 크기(Kernel Size) = 확대 비율(Extension Ratio)*2 - 1이고, 스트라이드 파라미터, 및 패딩 파라미터는 확대 비율(Extension Ratio)의 값을 갖는 뎁스-와이즈 전치 합성곱 연산 레이어(Depth-wise Transposed Convolution Layer)에 의해 쌍선형 보간 연산이 대체될 수 있다.
일 실시예에 따르면, 커널의 가중치(weight)를 예를 들어, 아래의 [표 1]에 기재된 코드에 의해 생성될 수 있다.
전술한 쌍선형 보간 연산을 전치 합성곱 연산으로 대체하는 과정은 쌍선형 보간 연산의 경우뿐만 아니라 인접 화소 보간(Nearest Neighbor Interpolation) 연산의 경우에도 마찬가지로 적용될 수 있다.
예를 들어, 보간 연산이 인접 화소 보간 연산이고, 확대 비율이 짝수배인 경우, 전술한 파라미터들과 커널의 가중치(weight)를 생성하는 코드는 아래의 [표 2]과 같이 변경될 수 있다. 이때, 커널의 크기는 확대 비율(Extension Ratio) + 1이고, 스트라이드 파라미터는 확대 비율의 값을, 패딩 파라미터는 확대 비율/2의 값을 가질 수 있다.
이러한 결과는 예를 들어, 도 4에 도시된 것과 같이 입력 특징 맵(410)의 크기는 2이고, 확대 비율(Extension Ratio)은 4이며, 출력 특징 맵(430)의 크기가 5로서, 5 = 2*4-[4-1]와 같이 수학식 2을 만족하는 경우에도 마찬가지로 적용될 수 있다.
이때, 입력 특징 맵(410)의 각 픽셀에 곱해지는 커널의 가중치들은 중심 픽셀과의 거리가 멀어질수록 '0.75', '0.5', '0.25' 등과 같이 점차 작아지고, 이에 따라 출력 특징 맵(430)의 첫번째 라인에서 픽셀 A의 인접 픽셀들에 미치는 픽셀 A의 영향력, 다시 말해, 인접 픽셀들에 곱해지는 픽셀 A의 가중치 또한 '0.75', '0.5', '0.25' 등과 같이 점차 작아지는 것을 볼 수 있다.
일 실시예에서 커널의 크기, 전치 합성곱 연산의 스트라이드 파라미터, 및 전치 합성곱 연산의 패딩 파라미터 각각은 확대 비율에 기초하여 결정될 수 있다. 또한, 커널의 크기, 전치 합성곱 연산의 스트라이드 파라미터, 및 전치 합성곱 연산의 패딩 파라미터 각각은 확대 비율뿐만 아니라 예를 들어, 쌍선형 보간(B.I.), 인접 화소 보간, 평균값 보간, 및 바이-큐빅 보간 등과 같은 연산 보간 방식에 더 기초하여 결정될 수 있다.
예를 들어, 입력 특징 맵이 복수의 채널들을 포함하는 경우, 전술한 전치 합성곱 연산은 채널들 각각에 대하여 독립적으로 수행되어야 한다. 따라서, 영상 처리 장치는 입력 특징 맵의 복수의 채널들의 수만큼 동일한 수의 커널들을 생성하여 채널들 각각과 커널들 간의 뎁스 와이즈 전치 합성곱 연산 또는 그룹 전치 합성곱 연산을 수행할 수 있다.
실시예에 따라서, 커널의 가중치는 전용 하드웨어(예를 들어, 하드웨어 가속기 등)를 이용하여 자동으로 생성될 수도 있다. 영상 처리 장치는 전술한 [표 1] 또는 [표 2]에 기재된 코드에 의해 생성된 커널의 가중치를 전용 하드웨어로부터 수신하여 전치 합성곱 연산을 수행하는 데에 이용할 수도 있다.
도 5은 일 실시예에 따라 제1 특징 맵의 채널들에 대응하는 커널을 이용하여 전치 합성곱 연산이 수행되는 과정을 설명하기 위한 도면이다.
도 5(a) 내지 도 5(d)을 참조하면, 동일한 커널(610)이 제1 특징 맵(600)의 스칼라(Scalar)와 곱해져 제2 특징 맵(620), 제2 특징 맵(630), 제2 특징 맵(640), 및 제2 특징 맵(650)과 같이 순차적으로 픽셀들에 누적된 결과가 도시된다.
도 5에서 제1 특징 맵(600)의 크기는 2 x 2 이고, 제2 특징 맵(620, 630, 640, 650)의 크기는 8 x 8이며, 제1 특징 맵(600)의 확대 비율은 '4'일 수 있다. 커널(610)의 크기는 확대 비율('4')*2 - 1 = 7이고, 스트라이드 파라미터, 및 패딩 파라미터는 확대 비율과 같은 4일 수 있다. 커널(610)은 예를 들어, 커널의 중심 픽셀에는 가중치 '1'이 주어지고, 중심 픽셀의 주변 픽셀들에는 가중치 '0.75', '0.5', '0.25' 등과 같이 중심 픽셀과의 거리에 반비례하는 가중치들을 포함할 수 있다.
도 5(a)를 참조하면, 커널(610)이 제1 특징 맵(600)의 픽셀(601)의 스칼라 값(A)과 곱해진 결과가 제2 특징 맵(620)의 픽셀들에 누적된 것을 볼 수 있다.
커널(610)의 중심 픽셀(619)을 제2 특징 맵(620)의 블럭(625)의 좌상단 픽셀에 대응시키면, 커널(610)의 중심 픽셀(619)을 기준으로 커널(610)의 우측 하단 부분(611)과 픽셀(601)의 스칼라 값(A)을 곱한 값이 제2 특징 맵(620)의 블럭(625)에 누적될 수 있다.
예를 들어, 픽셀(601)의 스칼라 값(A)에 커널(610)의 우측 하단 부분(611)의 값을 곱한 결과는 우측 하단 부분(611)이 픽셀(601)을 순회함에 따라 제2 특징 맵(620)의 좌측 끝 픽셀부터 순차적으로 A*1, A*0.75, A*0.5, A*0.25, .. 등과 같이 계산되어 제2 특징 맵(620)의 블럭(625)와 같이 누적될 수 있다. 이러한 계산은 커널(610)의 우측 하단 부분(611) 전체가 픽셀(601)을 순회할 때까지 수행될 수 있다.
커널(610)의 우측 하단 부분(611)이 제1 특징 맵(600)에서 픽셀(601)에 대한 순회를 종료한 후, 도 5의 (b)와 같이 제1 특징 맵(600)의 픽셀(603)과 커널(610) 간의 연산이 수행될 수 있다.
도 5(b)를 참조하면, 커널(610)이 제1 특징 맵(600)의 픽셀(603)의 스칼라 값(B)와 곱해진 결과가 제2 특징 맵(630)의 픽셀들에 누적된 것을 볼 수 있다.
커널(610)의 중심 픽셀(619)을 제2 특징 맵(630)의 블럭(635)의 우상단 픽셀에 대응시키면, 커널(610)의 중심 픽셀(619)을 기준으로 커널(610)의 좌측 하단 부분(613)과 픽셀(603)의 스칼라 값(B)을 곱한 값이 제2 특징 맵(630)의 블럭(635)에 누적될 수 있다.
예를 들어, 픽셀(603)의 스칼라 값(B)에 커널(610)의 좌측 하단 부분(613)의 값을 곱한 결과는 좌측 하단 부분(613)이 픽셀(603)을 순회함에 B*1, B*0.75, B*0.5, B*0.25, .. 등과 같이 계산될 수 있다. 계산 결과는 제2 특징 맵(630)의 우측 끝 픽셀부터 순차적으로 누적되고, 이에 따라 제2 특징 맵(630)에는 블럭(635)와 같이 첫번째 라인의 우측 끝 픽셀부터 순차적으로 B*1, A*0.25+B*0.75, A*0.5+B*0.5, A*0.75+B*0.25의 값이 누적될 수 있다. 이러한 계산은 커널(610)의 좌측 하단 부분(613) 전체가 픽셀(603)을 순회할 때까지 수행될 수 있다.
도 5(c)를 참조하면, 커널(610)이 제1 특징 맵(600)의 픽셀(605)의 스칼라 값(C)와 곱해진 결과가 제2 특징 맵(640)의 픽셀들에 누적된 것을 볼 수 있다.
커널(610)의 중심 픽셀(619)을 제2 특징 맵(640)의 블록(645)의 좌하단 픽셀에 대응시키면, 커널(610)의 중심 픽셀(619)을 기준으로 커널(610)의 우측 상단 부분(615)과 픽셀(605)의 스칼라 값(C)을 곱한 값이 제2 특징 맵(640)의 블록(645)에 누적될 수 있다.
예를 들어, 픽셀(605)의 스칼라 값(C)에 커널(610)의 우측 상단 부분(615)의 값을 곱한 결과는 우측 상단 부분(615)이 픽셀(605)을 순회함에 C*1, C*0.75, C*0.5, C*0.25, .. 등과 같이 계산될 수 있다. 계산 결과는 제2 특징 맵(640) 하단의 좌측 끝 픽셀부터 순차적으로 누적되고, 이에 따라 제2 특징 맵(640)의 블럭(645)와 같이 첫번째 라인의 좌측 끝 픽셀부터 순차적으로 C*1, C*0.75, C*0.5, C *0.25의 값이 누적될 수 있다. 이러한 계산은 커널(610)의 우측 상단 부분(615) 전체가 픽셀(605)을 순회할 때까지 수행될 수 있다.
도 5(d)를 참조하면, 커널(610)이 제1 특징 맵(600)의 픽셀(607)의 스칼라 값(D)와 곱해진 결과가 제2 특징 맵(650)의 픽셀들에 누적된 것을 볼 수 있다.
커널(610)의 중심 픽셀(619)을 제2 특징 맵(650)의 블록(655)의 우하단 픽셀에 대응시키면, 커널(610)의 중심 픽셀(619)을 기준으로 커널(610)의 좌측 상단 부분(617)과 픽셀(607)의 스칼라 값(D)을 곱한 값이 제2 특징 맵(650)의 블록(655)에 누적될 수 있다.
예를 들어, 제1 특징 맵(600)의 픽셀(607)의 스칼라 값(D)에 커널(610)의 좌측 상단 부분(617)의 값을 곱한 결과는 커널(610)의 좌측 상단 부분(617)이 픽셀(607)을 순회함에 D*1, D*0.75, D*0.5, D*0.25, .. 등과 같이 계산될 수 있다. 계산 결과는 제2 특징 맵(650)의 우측 끝 픽셀부터 순차적으로 누적되고, 이에 따라 제2 특징 맵(650)의 블럭(655)와 같이 마지막 라인의 우측 끝 픽셀부터 순차적으로 D*1, C*1+D*0.75, C*0.75+D*0.5, C*0.5+D*0.25의 값이 누적될 수 있다. 이러한 계산은 커널(610)의 좌측 상단 부분(617) 전체가 픽셀(607)을 순회할 때까지 수행될 수 있다.
이와 같이, 일 실시예에 따르면, 동일한 커널(610)이 특징 맵(600)의 픽셀들 각각의 스칼라 값과 곱해져 제2 특징 맵의 픽셀 각각에 누적되는 전치 합성곱 연산에 의해 쌍선형 보간 연산을 대체할 수 있다.
도 6은 일 실시예에 따른 커널의 예시들을 도시한 도면이다. 도 6을 참조하면, 일 실시예에 따라 제1 특징 맵을 제2 특징 맵으로 업 샘플링하기 위해 제1 특징 맵의 픽셀의 값에 곱해지는 가중치들을 포함하는 커널들(710, 730)이 도시된다.
커널의 크기는 확대 비율*2 - 1과 같이 결정될 수 있다. 예를 들어, 도 5을 통해 전술한 것과 같이 확대 비율이 4인 경우, 커널의 크기는 확대 비율(4)*2 - 1 =7 이 되고, 이에 따라 커널들(710, 730)은 7 x 7의 크기를 가질 수 있다.
커널들(710, 730) 각각에 포함된 값(가중치)는 커널들(710, 730)각각의 중심점까지의 거리에 따라 가중화된 정규화된 값을 포함할 수 있다. 예를 들어, 커널(710)의 값(가중치)은 커널(710)의 정중앙에 위치하는 중심 픽셀과 주변 픽셀들과의 거리에 따라 중심 픽셀(4/4*4/4)로부터 점차 멀어질수록 4/4*3/4, 4/4*2/4, 4/4*1/4, 또는 3/4*4/4, 2/4*4/4, 1/4*4/4 와 같이 줄어드는 것을 볼 수 있다. 이와 같이 커널은 커널의 중심 픽셀과 중심 픽셀의 주변 픽셀들 간의 거리에 반비례하는 가중치들을 포함할 수 있다.
커널들(710, 730) 각각의 값은 모든 채널들이 동일한 커널 값을 가진다고 가정하는 경우, 아래의 표 3과 같이 결정될 수 있다.
커널(710, 730) 각각에 포함된 가중치들은 양자화(quantization)를 통해 파라미터로 변환되어 전치 합성곱 커널(transposed convolution Kernel) 매트릭스로 표현될 수 있다.
도 7은 일 실시예에 따라 인코더에서 출력되는 제1 특징 맵을 디코더에 입력되는 제2 특징 맵으로 업 샘플링하는 과정을 설명하기 위한 도면이다. 도 7을 참조하면, 일 실시예에 따른 인코더(801) 및 디코더(803)의 동작이 도시된다.
예를 들어, 513 x 513의 크기를 갖는 영상이 인코더(801)에 입력되었다고 하자. 이 경우, 513 x 513의 크기를 갖는 영상은 인코더(801)의 레이어들에서의 합성곱 연산을 통해 예를 들어, 257 x 257, 129 x 129, 65 x 65, 33 x 33과 같이 순차적으로 정보가 압축될 수 있다. 인코더(801)는 513 x 513의 크기를 갖는 영상의 정보가 압축된 33 x 33 크기의 특징 맵(810)을 출력할 수 있다.
33 x 33 크기의 특징 맵(810)이 디코더(803)로 입력된 경우, 디코더(803)는 33 x 33 크기의 특징 맵(810)을 업 샘플링하여 원 영상의 크기로 되돌릴 수 있다. 이를 위해, 디코더(803)는 예를 들어, 전술한 쌍선형 보간(B.I.) 연산을 통해 33 x 33 크기의 특징 맵(810)을 129 x 129 크기의 특징맵(830)으로 4배(4x) 확대시키고, 129 x 129 크기의 특징맵(830)을 513 x 513 크기의 특징맵(850)으로 다시 4배(4x) 확대할 수 있다.
이때, 신경망 내 이전 레이어에서 합성곱 연산을 통해 원 영상의 정보가 압축된 특징 맵(810)의 크기는 33 x 33 이고, 디코더(803)가 확대하고자 하는 특징맵(830)의 크기는 129 x 129이며, 확대 비율은 4이다. 따라서, 129 = 33*4 - (4-1)가 되므로 특징 맵(810)과 특징맵(830)은 전술한 수학식 2를 만족한다. 이에 따라, 디코더(803)는 쌍선형 보간(B.I.) 연산 대신에 전치 합성곱 연산을 수행하여 33x33 크기의 특징 맵(810)을 129 x 129 크기의 특징맵(830)으로 업 샘플링할 수 있다.
또한, 디코더(803)의 신경망 내 이전 레이어에서 전치 합성곱 연산을 통해 업 샘플링된 특징 맵(830)의 크기가 129 x 129이고, 디코더(803)가 최종적으로 출력하고자 하는 특징 맵(850)의 크기가 513 x 513이며, 확대 비율은 4이다. 따라서, 513 = 129*4 - (4-1)가 되므로 특징 맵(830)과 특징맵(850) 또한 전술한 수학식 2를 만족한다. 이에 따라, 디코더(803)는 쌍선형 보간(B.I.) 연산 대신에 전치 합성곱 연산(보다 구체적으로는 뎁스-와이즈 전치 합성곱 연산)을 수행하여 129 x 129 크기의 특징 맵(830)을 513 x 513 크기의 특징맵(850)으로 업 샘플링할 수 있다.
일 실시예에 따른 영상 처리 방법은 컨볼루션 신경망에서 특징 맵의 크기를 줄였다가 다시 늘리는 경우에 적용될 수 있으며, 뿐만 아니라, 예를 들어, 1 x 1 크기의 특징 맵을 33 x 33의 크기로 확대하여 메모리(Memory)에 복사(Copy)하는 연산에도 마찬가지로 적용될 수 있다. 메모리에 복사하는 연산을 수행하는 경우, 영상 처리 장치는 예를 들어, 스트라이드없이 커널의 가중치들이 '1'로 채워진 33x33 크기의 특징 맵을 생성하고, 뎁스 와이즈 전치 합성곱 연산을 통해 메모리에 복사할 수 있다.
도 8는 서버가 일 실시예에 따른 영상 처리 장치가 제1 특징 맵을 제2 특징 맵으로 업 샘플링하도록 하는 실행 파일을 생성하는 과정을 나타낸 흐름도이다. 도 8를 참조하면, 일 실시예에 따른 서버는 예를 들어, 입력 특징 맵에 대한 쌍선형 보간 연산을 수행하여 입력 특징 맵을 업 샘플링한 출력 특징 맵을 생성할 수 있다(910). 여기서, 입력 특징 맵은 전술한 제1 특징 맵에 대응되고, 출력 특징 맵을 전술한 제2 특징 맵에 대응될 수 있다.
서버는 픽셀 정렬(pixel align) 여부를 확인하기 위해, 입력 특징 맵과 출력 특징 맵 간의 크기 비율을 기초로, 입력 특징 맵과 출력 특징 맵을 정렬할 수 있다(920). 단계(920)에서, 입력 특징 맵과 출력 특징 맵 간의 크기 비율이 전술한 수학식 2를 만족하는 경우, 입력 특징 맵과 출력 특징 맵은 픽셀 정렬이 맞아질 수 있고, 쌍선형 보간 연산은 뎁스-와이즈 합성곱 연산에 의해 대체될 수 있다.
서버는 단계(920)에서 픽셀 정렬이 맞는지 여부를 결정할 수 있다(930). 단계(930)에서 픽셀 정렬이 맞는다고 결정된 경우, 서버는 쌍선형 보간 연산을 전치 합성곱으로 대체하기 위한 신경망 레이어의 파라미터들, 및 커널 가중치를 생성할 수 있다(940). 여기서, 신경망 레이어의 파라미터들은 예를 들어, 커널 사이즈, 스트라이드 파라미터, 및 패딩 파라미터 등을 포함할 수 있다. 단계(940)에서, 서버는 제1 특징 맵을 제2 특징 맵으로 업 샘플링하기 위한 쌍선형 보간 연산을 전치 합성곱 연산으로 대체하기 위한 정보를 생성할 수 있다.
단계(930)에서 픽셀 정렬이 맞는다고 결정된 경우, 서버는 예를 들어, 커널의 크기(Kernel Size) = 확대 비율(Extension Ratio)*2 - 1이고, 스트라이드 파라미터, 및 신경망 레이어의 패딩 파라미터는 확대 비율의 값을 갖는 뎁스-와이즈 전치 합성곱 연산 레이어에 의해 쌍선형 보간 연산을 대체할 수 있다.
서버는 커널의 가중치를 예를 들어, 전술한 [표 1]과 같이 생성하여 쌍선형 보간 연산과 동일한 연산을 수행하는 뎁스-와이즈 전치 합성곱 연산 레이어를 생성할 수 있다.
이와 달리, 단계(930)에서 픽셀 정렬이 맞지 않는다고 결정된 경우, 서버는 외부 IP를 통해 입력 특징 맵을 처리할 수 있다(950). 단계(950)에서, 서버는 예를 들어, 입력 특징 맵에 대한 쌍선형 보간 연산을 수행함으로써 입력 특징 맵을 출력 특징 맵으로 업 샘플링할 수 있다. 이때, 외부 IP는 예를 들어, GPU 및 CPU 등을 포함할 수 있으며, 외부 IP는 소수점(floating point) 연산을 포함하는 쌍선형 보간 연산을 통해 입력 특징 맵을 출력 특징 맵으로 업 샘플링할 수 있다.
서버는 단계(950)에서 처리된 결과를 양자화할 수 있다(960). 서버는 소수점 연산을 통해 실수를 포함하는 쌍선형 보간 연산의 결과를 양자화함으로써 단계(970)에서의 결과 병합이 가능하도록 할 수 있다.
서버는 단계(940)에서 생성된 쌍선형 보간 연산을 전치 합성곱 연산으로 대체하기 위한 정보와 단계(960)에서 쌍선형 보간 연산 결과를 양자화한 값을 병합할 수 있다(970). 단계(970)에서, 서버는 병합에 의해 영상 처리 장치가 입력 특징 맵을 출력 특징 맵으로 업 샘플링하도록 하는 실행 파일을 생성하여 영상 처리 장치에게 전달할 수 있다. 실행 파일은 예를 들어, 미리 정의된 커널을 포함하는 이진 실행 코드의 형태를 가질 수 있다.
서버로부터 실행 파일을 수신한 영상 처리 장치는 입력 특징 맵과 출력 특징 맵 간의 크기 비율에 기초하여 결정적으로 정의된 커널 및 해당 커널의 가중치, 스트라이드 파라미터, 및 패딩 파라미터 등을 포함할 수 있다.
일 실시예에 따르면, 제1 특징 맵의 확대 비율에 기초한 신경망의 구조에 따라서 순방향(forward)의 추론 연산을 수행하기 위한 프로그램이 영상 처리 장치(예를 들어, 스마트 폰과 같은 사용자 단말)에 설치되어 있고, 영상 처리 장치에게 입력 영상과 가중치가 주입(injection) 됨에 따라 영상 처리 장치에 포함된 신경망이 구동될 수 있다.
도 9은 일 실시예에 따른 영상 처리 장치의 블록도이다. 도 9을 참조하면, 일 실시예에 따른 영상 처리 장치(1000)는 통신 인터페이스(1010), 및 프로세서(1030)를 포함한다. 일 실시예에 따른 영상 처리 장치(1000)는 메모리(1050) 및 하드웨어 가속기(1070)를 더 포함할 수 있다. 통신 인터페이스(1010), 프로세서(1030), 메모리(1050) 및 하드웨어 가속기(1070)는 통신 버스(1005)를 통해 서로 연결될 수 있다.
통신 인터페이스(1010)는 제1 특징 맵을 수신한다. 제1 특징 맵은 예를 들어, 신경망 내 이전 레이어에서 합성곱 연산을 통해 원 영상의 정보가 압축된 특징 맵일 수도 있고, 또는 신경망 내 이전 레이어에서 전치 합성곱 연산을 통해 업 샘플링된 특징 맵일 수도 있으며, 반드시 이에 한정되지는 않는다. 이때, 제1 특징 맵은 양자화된 활성 값들을 포함할 수 있다. 또한, 통신 인터페이스(1010)는 프로세서(1030)가 업 샘플링한 제2 특징 맵을 출력한다.
프로세서(1030)는 제1 특징 맵의 확대 비율에 기초하여 결정적으로 정의되는 커널을 획득한다. 커널은 예를 들어, 커널의 중심 픽셀과 중심 픽셀의 주변 픽셀들 간의 거리에 반비례하는 가중치들을 포함할 수 있다. 커널은 양자화된 가중치들을 포함할 수 있다. 프로세서(1030)는 제1 특징 맵과 커널 간의 전치 합성곱 연산을 수행함으로써, 제1 특징 맵을 제2 특징 맵으로 업 샘플링한다.
또한, 프로세서(1030)는 도 1 내지 도 8를 통해 전술한 적어도 하나의 방법 또는 적어도 하나의 방법에 대응되는 알고리즘을 수행할 수 있다. 프로세서(1030)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 영상 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 영상 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(Central Processing Unit; CPU), 그래픽 처리 장치(Graphic Processing Unit; GPU), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array), NPU(Neural Processing Unit) 등을 포함할 수 있다.
프로세서(1030)는 프로그램을 실행하고, 영상 처리 장치(1000)를 제어할 수 있다. 프로세서(1030))에 의하여 실행되는 프로그램 코드는 메모리(1050)에 저장될 수 있다.
메모리(1050)는 예를 들어, 통신 인터페이스(1010)를 통해 수신된 제1 특징 맵 및/또는 프로세서(1030)에서 업 샘플링된 제2 특징 맵을 저장할 수 있다. 또한, 메모리(1050)는 커널 및 커널과 관련된 다양한 정보(예를 들어, 커널의 크기, 커널의 가중치 등), 및/또는 신경망 레이어의 파라미터들(예를 들어, 전치 합성곱 연산의 스트라이드 파라미터, 전치 합성곱 연산의 패딩 파라미터 등)을 저장할 수 있다.
이와 같이, 메모리(1050)는 상술한 프로세서(1030)의 처리 과정에서 생성되는 다양한 정보를 저장할 수 있다. 이 밖에도, 메모리(1050)는 각종 데이터와 프로그램 등을 저장할 수 있다. 메모리(1050)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(1050)는 하드 디스크 등과 같은 대용량 저장 매체를 구비하여 각종 데이터를 저장할 수 있다.
하드웨어 가속기(1070)는 제1 특징 맵의 확대 비율에 기초하여 커널을 동적으로 생성할 수 있다. 실시예에 따라서, 하드웨어 가속기(1070)는 커널을 동적으로 생성하는 대신에, 기 생성된 커널들 중 제1 특징 맵의 확대 비율에 기초하여 어느 하나의 커널을 선택할 수도 있다.
일 실시예에 따른 영상 처리 장치(1000)는 예를 들어, HUD(Head Up Display) 장치, 3D 디지털 정보 디스플레이(Digital Information Display, DID), 내비게이션 장치, 3D 모바일 기기, 스마트 폰, 스마트 TV, 및 스마트 차량 등을 포함할 수 있으며, 반드시 이에 한정되지는 않는다. 3D 모바일 기기는 예를 들어, 증강 현실(Augmented Reality; AR), 가상 현실(Virtual Reality; VR), 및/또는 혼합 현실(Mixed Reality; MR)을 표시하기 위한 디스플레이 장치, 머리 착용 디스플레이(Head Mounted Display; HMD) 및 얼굴 착용 디스플레이(Face Mounted Display; FMD) 등을 모두 포함하는 의미로 이해될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (23)

  1. 제1 특징 맵(feature map)을 수신하는 단계;
    상기 제1 특징 맵의 확대 비율에 기초하여 결정적으로 정의되는(deterministically defined) 커널(kernel)- 상기 커널에서 동일한 커널 값의 분포 위치는 상기 확대 비율에 기초하며, 상기 확대 비율은 상기 제1 특징 맵의 크기와 제2 특징 맵의 크기 간의 비율임 -을 획득하는 단계;
    상기 제2 특징 맵의 크기가 상기 제1 특징 맵의 크기 또는 상기 확대 비율 중 적어도 하나에 종속된 미리 정해진 공식과 일치하는지 여부에 따라, 상기 제1 특징 맵과 상기 커널 간에 수행되는 전치 합성곱(transposed convolution) 연산 및 보간 연산 중 어느 하나를 선택적으로 수행함으로써, 상기 제1 특징 맵을 제2 특징 맵으로 업 샘플링(up-sampling)하는 단계; 및
    상기 제2 특징 맵을 출력하는 단계
    를 포함하는,
    영상 처리 방법.
  2. 제1항에 있어서,
    상기 커널은
    상기 커널의 중심 픽셀과 상기 중심 픽셀의 주변 픽셀들 간의 거리에 기초한 가중치들을 포함하는,
    영상 처리 방법.
  3. 제2항에 있어서,
    상기 가중치는
    상기 커널의 중심 픽셀과 상기 중심 픽셀의 주변 픽셀들 간의 거리에 반비례하는,
    영상 처리 방법.
  4. 제1항에 있어서,
    상기 커널의 크기, 상기 전치 합성곱 연산의 스트라이드(stride) 파라미터, 및 상기 전치 합성곱 연산의 패딩(padding) 파라미터 각각은 상기 확대 비율에 기초하여 결정되는,
    영상 처리 방법.
  5. 제4항에 있어서,
    상기 커널의 크기, 상기 전치 합성곱 연산의 스트라이드(stride) 파라미터, 및 상기 전치 합성곱 연산의 패딩(padding) 파라미터 각각은 보간 방식에 더 기초하여 결정되는,
    영상 처리 방법.
  6. 제1항에 있어서,
    상기 제1 특징 맵이 복수의 채널들을 포함하는 경우,
    상기 업 샘플링하는 단계는
    상기 채널들과 상기 커널 간의 뎁스 와이즈 전치 합성곱(depth-wise transposed convolution) 연산을 수행하는 단계
    를 포함하는,
    영상 처리 방법.
  7. 제1항에 있어서,
    상기 제1 특징 맵은 양자화된 활성 값들을 포함하고,
    상기 커널은 양자화된 가중치들을 포함하는,
    영상 처리 방법.
  8. 제1항에 있어서,
    상기 커널은
    상기 제1 특징 맵의 제1 픽셀의 제1 값을, 상기 제1 픽셀의 위치에 대응하는 상기 제2 특징 맵의 제2 픽셀의 제2 값으로 변환하기 위해 상기 제1 값에 곱해지는 가중치를 양자화(quantization)를 통해 파라미터로 변환한 전치 합성곱 커널(transposed convolution Kernel) 매트릭스
    를 포함하는,
    영상 처리 방법.
  9. 제1항에 있어서,
    상기 확대 비율은
    상기 제1 특징 맵의 크기와 상기 제2 특징 맵의 크기가 일정 정수(integer) 비율을 만족하도록 결정되는,
    영상 처리 방법.
  10. 제1항에 있어서,
    상기 제1 특징 맵은
    신경망 내 이전 레이어에서 합성곱 연산을 통해 원 영상(original image)의 정보가 압축된 특징 맵; 및
    상기 신경망 내 이전 레이어에서 상기 전치 합성곱 연산을 통해 업 샘플링된 특징 맵
    중 적어도 하나를 포함하는,
    영상 처리 방법.
  11. 하드웨어와 결합되어 제1항 내지 제10항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  12. 제1 특징 맵을 수신하는 통신 인터페이스; 및
    상기 제1 특징 맵의 확대 비율- 상기 확대 비율은 상기 제1 특징 맵의 크기와 제2 특징 맵의 크기 간의 비율임-에 기초하여 결정적으로 정의되는 커널- 상기 커널에서 동일한 커널 값의 분포 위치는 상기 확대 비율에 기초함-을 획득하고, 상기 제2 특징 맵의 크기가 상기 제1 특징 맵의 크기 또는 상기 확대 비율 중 적어도 하나에 종속된 미리 정해진 공식과 일치하는지 여부에 따라, 상기 제1 특징 맵과 상기 커널 간에 수행되는 전치 합성곱 연산 및 보간 연산 중 어느 하나를 선택적으로 수행함으로써, 상기 제1 특징 맵을 제2 특징 맵으로 업 샘플링하는 프로세서
    를 포함하고,
    상기 통신 인터페이스는
    상기 제2 특징 맵을 출력하는,
    영상 처리 장치.
  13. 제12항에 있어서,
    상기 커널은
    상기 커널의 중심 픽셀과 상기 중심 픽셀의 주변 픽셀들 간의 거리에 기초한 가중치들을 포함하는,
    영상 처리 장치.
  14. 제13항에 있어서,
    상기 가중치는
    상기 커널의 중심 픽셀과 상기 중심 픽셀의 주변 픽셀들 간의 거리에 반비례하는,
    영상 처리 장치.
  15. 제12항에 있어서,
    상기 커널의 크기, 상기 전치 합성곱 연산의 스트라이드 파라미터, 및 상기 전치 합성곱 연산의 패딩 파라미터 각각은 상기 확대 비율에 기초하여 결정되는,
    영상 처리 장치.
  16. 제15항에 있어서,
    상기 커널의 크기, 상기 전치 합성곱 연산의 스트라이드 파라미터, 및 상기 전치 합성곱 연산의 패딩 파라미터 각각은 보간 방식에 더 기초하여 결정되는,
    영상 처리 장치.
  17. 제12항에 있어서,
    상기 제1 특징 맵이 복수의 채널들을 포함하는 경우,
    상기 프로세서는
    상기 채널들과 상기 커널 간의 뎁스 와이즈 전치 합성곱 연산을 수행하는,
    영상 처리 장치.
  18. 제12항에 있어서,
    상기 제1 특징 맵은 양자화된 활성 값들을 포함하고,
    상기 커널은 양자화된 가중치들을 포함하는,
    영상 처리 장치.
  19. 제12항에 있어서,
    상기 커널은
    상기 제1 특징 맵의 제1 픽셀의 제1 값을, 상기 제1 픽셀의 위치에 대응하는 상기 제2 특징 맵의 제2 픽셀의 제2 값으로 변환하기 위해 상기 제1 값에 곱해지는 가중치를 양자화를 통해 파라미터로 변환한 전치 합성곱 커널(transposed convolution Kernel) 매트릭스
    를 포함하는,
    영상 처리 장치.
  20. 제12항에 있어서,
    상기 확대 비율은
    상기 제1 특징 맵의 크기와 상기 제2 특징 맵의 크기가 일정 정수 비율을 만족하도록 결정되는,
    영상 처리 장치.
  21. 제12항에 있어서,
    상기 제1 특징 맵은
    신경망 내 이전 레이어에서 합성곱 연산을 통해 원 영상의 정보가 압축된 특징 맵; 및
    상기 신경망 내 이전 레이어에서 상기 전치 합성곱 연산을 통해 업 샘플링된 특징 맵
    중 적어도 하나를 포함하는,
    영상 처리 장치.
  22. 제12항에 있어서,
    상기 확대 비율에 기초하여 상기 커널을 동적으로 생성하는 하드웨어 가속기(HardWare Accelerator)
    를 더 포함하는,
    영상 처리 장치.
  23. 제12항에 있어서,
    상기 영상 처리 장치는
    HUD(Head Up Display) 장치, 3D 디지털 정보 디스플레이(Digital Information Display, DID), 내비게이션 장치, 3D 모바일 기기, 스마트 폰, 스마트 TV, 및 스마트 차량 중 적어도 하나를 포함하는,
    영상 처리 장치.
KR1020200111842A 2020-09-02 2020-09-02 영상 처리 방법 및 장치 Active KR102756360B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200111842A KR102756360B1 (ko) 2020-09-02 2020-09-02 영상 처리 방법 및 장치
US17/159,653 US12136254B2 (en) 2020-09-02 2021-01-27 Method and apparatus with image processing
EP21160458.2A EP3965014A1 (en) 2020-09-02 2021-03-03 Method and apparatus with image processing
CN202110495472.9A CN114202657A (zh) 2020-09-02 2021-05-07 用于图像处理的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200111842A KR102756360B1 (ko) 2020-09-02 2020-09-02 영상 처리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20220030084A KR20220030084A (ko) 2022-03-10
KR102756360B1 true KR102756360B1 (ko) 2025-01-17

Family

ID=74856758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200111842A Active KR102756360B1 (ko) 2020-09-02 2020-09-02 영상 처리 방법 및 장치

Country Status (4)

Country Link
US (1) US12136254B2 (ko)
EP (1) EP3965014A1 (ko)
KR (1) KR102756360B1 (ko)
CN (1) CN114202657A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102604016B1 (ko) * 2018-10-24 2023-11-22 삼성전자주식회사 전자 장치 및 이의 제어방법
CN114693850A (zh) * 2020-12-25 2022-07-01 英特尔公司 用于图像和视频处理的条件核预测网络和自适应深度预测
US20240169478A1 (en) * 2022-11-21 2024-05-23 Synaptics Incorporated Reducing image scaling artifacts via tile size selection
WO2024144222A1 (ko) * 2022-12-26 2024-07-04 서울대학교산학협력단 이중선형 업샘플링 연산 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020062894A1 (en) * 2018-09-25 2020-04-02 Boe Technology Group Co., Ltd. Computer-implemented method using convolutional neural network, apparatus for generating composite image, and computer-program product
US20200134833A1 (en) * 2018-10-26 2020-04-30 Here Global B.V. Deep neural network architecture for image segmentation
US20200244971A1 (en) * 2019-01-24 2020-07-30 Google Llc More accurate 2-tap interpolation filters for video compression

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9799098B2 (en) 2007-04-24 2017-10-24 Massachusetts Institute Of Technology Method and apparatus for image processing
US8238639B2 (en) * 2008-04-09 2012-08-07 Cognex Corporation Method and system for dynamic feature detection
KR101612315B1 (ko) 2015-03-24 2016-04-15 인천대학교 산학협력단 이미지 보간 방법
KR101780057B1 (ko) 2016-08-02 2017-09-19 한양대학교 에리카산학협력단 고해상도 영상 복원 방법 및 장치
GB2555136A (en) * 2016-10-21 2018-04-25 Nokia Technologies Oy A method for analysing media content
KR102474168B1 (ko) 2017-03-17 2022-12-06 포틀랜드 스테이트 유니버시티 적응형 컨볼루션 및 적응형 분리형 컨볼루션을 통한 프레임 인터폴레이션
GB2566733B (en) 2017-09-25 2020-02-26 Advanced Risc Mach Ltd Performimg convolution operations in graphics texture mapping units
US20190094858A1 (en) * 2017-09-25 2019-03-28 Uber Technologies, Inc. Parking Location Prediction
US10692243B2 (en) 2017-12-03 2020-06-23 Facebook, Inc. Optimizations for dynamic object instance detection, segmentation, and structure mapping
US20190297326A1 (en) * 2018-03-21 2019-09-26 Nvidia Corporation Video prediction using spatially displaced convolution
US11019355B2 (en) 2018-04-03 2021-05-25 Electronics And Telecommunications Research Institute Inter-prediction method and apparatus using reference frame generated based on deep learning
EP3557485B1 (en) 2018-04-19 2021-05-26 Aimotive Kft. Method for accelerating operations and accelerator apparatus
US10380753B1 (en) * 2018-05-30 2019-08-13 Aimotive Kft. Method and apparatus for generating a displacement map of an input dataset pair
US11900606B2 (en) * 2018-06-29 2024-02-13 QMENTA, Inc. Tumor segmentation tool
US10282864B1 (en) * 2018-09-17 2019-05-07 StradVision, Inc. Method and device for encoding image and testing method and testing device using the same
US10547823B2 (en) * 2018-09-25 2020-01-28 Intel Corporation View interpolation of multi-camera array images with flow estimation and image super resolution using deep learning
US11188799B2 (en) * 2018-11-12 2021-11-30 Sony Corporation Semantic segmentation with soft cross-entropy loss
EP3671645A1 (de) * 2018-12-20 2020-06-24 Carl Zeiss Vision International GmbH Verfahren und vorrichtung zum erzeugen einer 3d-rekonstruktion eines objekts
KR102069100B1 (ko) 2019-08-21 2020-01-22 주식회사 인포웍스 뉴럴 네트워크 기반 FMCW LiDAR 신호처리 시스템 및 방법
CN110543906B (zh) 2019-08-29 2023-06-16 彭礼烨 基于Mask R-CNN模型的肤质自动识别方法
CN110705702A (zh) 2019-09-29 2020-01-17 东南大学 一种动态可扩展的卷积神经网络加速器
CN110853011B (zh) 2019-11-11 2022-05-27 河北工业大学 用于肺结节检测的卷积神经网络模型的构建方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020062894A1 (en) * 2018-09-25 2020-04-02 Boe Technology Group Co., Ltd. Computer-implemented method using convolutional neural network, apparatus for generating composite image, and computer-program product
US20200134833A1 (en) * 2018-10-26 2020-04-30 Here Global B.V. Deep neural network architecture for image segmentation
US20200244971A1 (en) * 2019-01-24 2020-07-30 Google Llc More accurate 2-tap interpolation filters for video compression

Also Published As

Publication number Publication date
US20220067429A1 (en) 2022-03-03
US12136254B2 (en) 2024-11-05
CN114202657A (zh) 2022-03-18
KR20220030084A (ko) 2022-03-10
EP3965014A1 (en) 2022-03-09

Similar Documents

Publication Publication Date Title
KR102756360B1 (ko) 영상 처리 방법 및 장치
CA3030428C (en) Superpixel methods for convolutional neural networks
US11348203B2 (en) Image generation using subscaling and depth up-scaling
EP3583575B1 (en) Image transformation for machine learning
JP7403638B2 (ja) 高速なスパースニューラルネットワーク
CN109996023B (zh) 图像处理方法和装置
US10991065B2 (en) Methods and systems for processing graphics
JP7378500B2 (ja) 自己回帰ビデオ生成ニューラルネットワーク
US20170251194A1 (en) Apparatus for generating a three-dimensional color image and a method for producing a three-dimensional color image
KR102152346B1 (ko) 이미지 파일의 블록 간 차이를 통한 압축율 향상 방법 및 시스템
KR102083166B1 (ko) 이미지 처리 방법 및 장치
KR102864472B1 (ko) 기계 학습을 위한 이미지 처리 장치 및 방법
RU2408076C1 (ru) Способ сжатия изображения
US11550387B2 (en) Stereo correspondence search
US9741155B2 (en) Apparatus and method for tile-based graphic data rendering
US10586129B2 (en) Generating artificial images for use in neural networks
KR20210026996A (ko) 컨텍스트 정보 추출 방법 및 장치
CN113902617B (zh) 基于参考图像的超分辨率方法、装置、设备及介质
KR102504007B1 (ko) 분할 이미지를 통해 컨텍스트 벡터를 생성하는 컨텍스트 벡터 추출 모듈 및 이의 동작 방법
CN113965756A (zh) 一种图像编码方法、存储介质及终端设备
KR102485872B1 (ko) 컨텍스트 벡터를 활용하여 이미지 화질을 개선시키는 이미지 화질 개선 방법 및 이를 수행하는 이미지 화질 개선 모듈
CN119938872B (zh) 一种基于多模态大模型的视觉问答方法、设备及介质
KR20250113198A (ko) 렌더링 방법 및 장치, 렌더링을 위한 학습 방법
US20250139736A1 (en) Resampling images with deep data
KR102203272B1 (ko) 관심 객체 처리 장치 및 그 방법

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20200902

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20240731

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20241029

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20250114

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20250115

End annual number: 3

Start annual number: 1

PG1601 Publication of registration