KR20240071400A - 가변 보조 입력을 이용하는 트랜스포머 기반 신경망 - Google Patents

가변 보조 입력을 이용하는 트랜스포머 기반 신경망 Download PDF

Info

Publication number
KR20240071400A
KR20240071400A KR1020247013224A KR20247013224A KR20240071400A KR 20240071400 A KR20240071400 A KR 20240071400A KR 1020247013224 A KR1020247013224 A KR 1020247013224A KR 20247013224 A KR20247013224 A KR 20247013224A KR 20240071400 A KR20240071400 A KR 20240071400A
Authority
KR
South Korea
Prior art keywords
input
auxiliary
tensor
neural network
tensors
Prior art date
Application number
KR1020247013224A
Other languages
English (en)
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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20240071400A publication Critical patent/KR20240071400A/ko

Links

Classifications

    • 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/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • 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/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • 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
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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/0464Convolutional networks [CNN, ConvNet]
    • 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/047Probabilistic or stochastic networks
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)
  • Coils Or Transformers For Communication (AREA)

Abstract

본 개시내용은 트랜스포머 기반 신경망에 관한 것이다. 현재 객체를 프로세싱하는 방법이 제공되고, 방법은, 현재 객체를 나타내는 입력 데이터 텐서의 세트를 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 단계, 적어도 하나의 보조 데이터 텐서를 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 단계 - 적어도 하나의 보조 데이터 텐서는 입력 데이터 텐서의 세트의 입력 데이터 텐서 각각과는 상이하고, 적어도 하나의 보조 입력을 나타냄 -, 및 출력 데이터 텐서의 세트를 획득하기 위하여 적어도 하나의 보조 데이터 텐서를 이용하여 트랜스포머 기반 신경망에 의해 입력 데이터 텐서의 세트를 프로세싱하는 단계를 포함한다. 입력된 적어도 하나의 보조 데이터 텐서는 현재 객체를 프로세싱하는 것에 대한 정보에 종속된다.

Description

가변 보조 입력을 이용하는 트랜스포머 기반 신경망
본 개시내용은 일반적으로, 트랜스포머 기반 신경망(transformer based neural network)의 분야, 특히, 개선된 프로세싱 결과를 획득하기 위하여 가변 보조 입력 데이터를 이용하는 트랜스포머 기반 신경망에 관한 것이다.
인공 신경망을 이용하는 신경망(NN : Neural network) 및 심층-학습(DL : deep-learning) 기법은 언어 프로세싱, 및 비디오, 이미지(예컨대, 스틸 이미지) 등의 인코딩 및 디코딩을 포함하는 매우 다양한 기술적 분야에서 일부 시간 동안에 이제 이용되고 있다.
순환 신경망(recurrent neural network) 뿐만 아니라 컨볼루션 신경망(convolutional neural network) 아키텍처가 폭넓게 이용되고 있다. 최근, 트랜스포머는 언어 프로세싱(예를 들어, 텍스트 번역) 및 이미지 프로세싱의 분야의 둘 모두에서 증가하는 관심을 끌고 있다. 비디오 코딩은 신경망, 특히, 트랜스포머의 채용에 의해 용이하게 될 수 있다.
비디오 코딩(비디오 인코딩 및 디코딩)은 광범위한 디지털 비디오 애플리케이션, 예를 들어, 브로드캐스트 디지털 TV, 인터넷 및 모바일 네트워크 상에서의 비디오 송신, 비디오 채팅과 같은 실시간 대화 애플리케이션, 비디오 회의, DVD 및 블루-레이(Blu-ray) 디스크, 비디오 컨텐츠(video content) 취득 및 편집 시스템, 및 보안 애플리케이션의 캠코더에서 이용된다.
심지어 상대적으로 짧은 비디오를 묘사하기 위하여 필요한 비디오 데이터의 양은 상당할 수 있고, 이것은 데이터가 제한된 대역폭 용량으로 통신 네트워크에 걸쳐 스트리밍되어야 하거나 또는 이와 다르게 통신되어야 할 때에 어려움으로 귀착될 수 있다. 따라서, 비디오 데이터는 일반적으로, 현대판 전기통신 네트워크에 걸쳐 통신되기 전에 압축된다. 메모리 자원이 제한될 수 있으므로, 비디오의 크기는 또한, 비디오가 저장 디바이스 상에서 저장될 때에 쟁점이 될 수 있다. 비디오 압축 디바이스는 송신 또는 저장 이전에 비디오 데이터를 코딩하기 위하여 출발지(source)에서 소프트웨어 및/또는 하드웨어를 종종 이용하고, 이에 의해, 디지털 비디오 이미지를 표현하기 위하여 필요한 데이터의 수량을 감소시킨다. 압축된 데이터는 그 다음으로, 비디오 데이터를 디코딩하는 비디오 압축해제 디바이스에 의해 목적지(destination)에서 수신된다. 압축 기법은 또한, 스틸 이미지 코딩의 맥락에서 적당하게 적용된다.
제한된 네트워크 자원 및 더 높은 비디오 품질의 점점 더 증가하는 수요로, 이미지 품질에 있어서 희생을 거의 또는 전혀 가지지 않으면서 압축 비율을 개선시키는 개선된 압축 및 압축해제 기법이 바람직하다.
이용가능한 메모리 및/또는 프로세싱 속력에서의 제한을 참작하는 훈련된 신경망에 기초한 이러한 이미지 코딩(비디오 코딩 또는 스틸 이미지 코딩)의 효율을 추가로 개선시키는 것이 바람직하다. 이 애플리케이션에 대한 것 뿐만 아니라, 언어 프로세싱 및 음향 신호(acoustic signal)의 프로세싱을 포함하는 다른 애플리케이션에 대하여, 이용되는 신경망, 특히, 트랜스포머의 동작의 신뢰성 및 효율을 추가로 증가시키는 것이 바람직하다.
본 개시내용은, 예를 들어, 이하의 상세한 설명에서 설명되는 신경망 중의 하나 이상을 포함하는 트랜스포머 기반 신경망에 의한 객체(예를 들어, 이미지 또는 텍스트)의 프로세싱을 위한 방법 및 장치에 관한 것이다.
상기한 그리고 다른 목적은 독립항의 발명 요지에 의해 달성된다. 추가의 구현 형태는 종속항, 설명, 및 도면으로부터 분명하다.
제1 측면에 따르면, 현재 객체를 프로세싱하는 방법이 제공되고, 이 방법은,
현재 객체를 나타내는 입력 데이터 텐서(tensor)의 세트를 트랜스포머 기반 신경망의 신경 계층(neural layer) 내로 입력하는 단계;
적어도 하나의 보조 데이터 텐서를 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 단계 - 적어도 하나의 보조 데이터 텐서는 입력 데이터 텐서의 세트의 입력 데이터 텐서 각각과는 상이하고, 적어도 하나의 보조 입력을 나타냄 -; 및
출력 데이터 텐서의 세트를 획득하기 위하여 적어도 하나의 보조 데이터 텐서를 이용하여 트랜스포머 기반 신경망에 의해 입력 데이터 텐서의 세트를 프로세싱하는 단계를 포함한다.
신경 계층 내로 입력되는 적어도 하나의 보조 데이터 텐서는 현재 객체를 프로세싱하는 것에 대한 정보에 종속된다(여기서, 정보는 보조 입력에 의해 제공됨). 예를 들어, 이미지 프로세싱의 맥락에서, 현재 객체는 이미지 또는 이미지의 일부 중의 하나를 포함한다. 이미지는 비디오 시퀀스(video sequence)의 프레임 또는 스틸 이미지(still image)일 수 있다. 예를 들어, 언어 프로세싱의 맥락에서, 현재 객체는 (발화된 또는 기재된) 하나 이상의 문장(sentence)(의 단어)을 포함한다. 예를 들어, 오디오 프로세싱의 맥락에서, 객체는 오디오 신호를 포함한다.
트랜스포머 기반 신경망은 트랜스포머(이하에서의 상세한 설명 참조)를 포함해야 하고, 추가적으로, 또 다른 신경망, 예를 들어, 순환 또는 컨볼루션 신경망을 포함할 수 있다. 트랜스포머는 셀프-어텐션(self-attention)의 개념을 구현하고, 적어도 하나의 셀프-어텐션 계층(이하의 설명 참조)을 포함한다. 입력 데이터 텐서의 프로세싱의 결과(즉, 모델 성능)는 현재 객체를 프로세싱하는 것에 대한 정보(또한 이하의 설명 참조)를 이용함으로써 개선된다. 예를 들어, 디코딩된 이미지의 품질은 이 정보를 이용함으로써 강화될 수 있다. 현재 객체를 프로세싱하는 것에 대한 정보는 사전-훈련(pre-train)되고 고정된 보조 입력에 의해 제공되지 않는다. 오히려, 보조 입력을, 추가적인 모델 입력을 제공하는 적어도 하나의 보조 데이터 텐서로 투영함으로써, 현재 객체에 대하여 획득되는 가변 정보가 트랜스포머 기반 신경망에 의한 프로세싱을 위하여 이용가능하게 된다. 특히, 현재 객체를 프로세싱하는 것에 대한 정보는 연속적 또는 이산적 파라미터 범위 상에서 현재 객체를 프로세싱하는 것에 대한 정보일 수 있다.
현존하는 트랜스포머 모델(이하의 상세한 설명 참조)은 본 명세서에서 제공되는 방법을 구현하기 위하여 상대적으로 용이하게 적응될 수 있다는 것이 주목된다. 현존하는 사전-훈련된 모델은 이 방법에 의해 이용되고 개선될 수 있다.
특히, 현재 객체는 신경망 추론 동안에 또는 신경망 훈련 동안에 프로세싱될 수 있다. 실제로, 본 명세서에서 제공되는 방법은 훈련 및 추론 결과의 둘 모두를 개선시킨다.
구현예에 따르면, 입력 데이터 텐서의 세트는 적어도 하나의 보조 데이터 텐서와 별도로 입력된다. 이것은 트랜스포머 기반 신경망의 동작을, 트랜스포머 기반 신경망의 적용의 높은 유연성으로 귀착되는 임의적인 수 및 임의적으로 변경되는 수의 보조 입력으로 용이하게 적응시키는 것을 허용한다. 텐서 공간에서 현재 객체를 프로세싱하는 것에 대한 정보를 제공하는 보조 입력을 나타내는 적어도 하나의 보조 데이터 텐서는 입력 데이터 텐서에 적용되는 수학적 동작과 동일하거나 유사한 신경 계층 내의 수학적 동작에 의해 프로세싱될 수 있다는 것이 주목된다. 특히, (상이한 가중치가 상이한 신경 계층에서 적용될 수 있지만) 동일한 가중치가 동일한 신경 계층 내의 적어도 하나의 보조 데이터 텐서 및 입력 데이터 텐서에 적용될 수 있다.
입력 데이터 텐서의 세트가 적어도 하나의 보조 데이터 텐서와 별도로 입력될 때, 입력 데이터 텐서의 세트는 트랜스포머 기반 신경망의 제1 신경 계층 내로 입력될 수 있고, 적어도 하나의 보조 데이터 텐서는 제1 계층과는 상이한 트랜스포머 기반 신경망의 제2 신경 계층 내로 입력될 수 있다. 다시, 유연성이 증가되는데, 그 이유는 당업자가 예를 들어, 보조 정보/입력을 이용하지 않는 하부 레벨 신경 계층 상에서의 프로세싱 및 보조 정보/입력을 이용하는 선택된 상부 레벨 신경 계층 상에서의 프로세싱을 선택할 수 있기 때문이다.
대안적인 구현예에 따르면, 입력 데이터 텐서의 세트는 적어도 하나의 보조 데이터 텐서와 별도로 입력되지 않는다. 이 경우에, 입력 데이터 텐서의 세트 및 적어도 하나의 보조 데이터 텐서를 입력하는 것은, a) 상이한 혼합된 입력 텐서의 세트를 생성하는 것 - 상이한 혼합된 입력 텐서의 세트의 각각의 혼합된 입력 텐서는 적어도 하나의 보조 데이터 텐서, 및 입력 데이터 텐서의 세트의 하나의 입력 데이터 텐서 중의 적어도 하나를 포함함 -, 및 b) 혼합된 입력 텐서의 세트를 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 것을 포함한다. 일부 구현예에서, 상이한 혼합된 입력 텐서의 세트의 혼합된 입력 텐서 각각은 적어도 하나의 보조 데이터 텐서, 및 입력 데이터 텐서의 세트의 정확하게 하나의 입력 데이터 텐서 중의 적어도 하나를 포함한다.
이 구현예는 적어도 하나의 보조 데이터 텐서에 의해 입력 데이터 텐서의 각각 또는 일부의 프로세싱에 개별적으로 영향을 주는 것을 허용한다. 입력 데이터 텐서의 전체 세트는 혼합된 입력 텐서, 및 적어도 하나의 보조 데이터 텐서와 혼합(예를 들어, 연접(concatenate))되지 않는 입력 텐서를 포함할 수 있다는 것이 주목된다. 적어도 하나의 보조 데이터 텐서를 입력 데이터 텐서와 혼합하는 것은 타깃 메트릭(target metric)의 측면에서 성능을 증가시킬 수 있다. 게다가, 적어도 하나의 보조 데이터 텐서를 갖는 트랜스포머 기반 신경망의 특정한 신경 계층에 의해 출력되는 하나 이상의 데이터 텐서의 일부 혼합이 수행될 수 있다. 다시, 전체적인 아키텍처는 보조 정보를 이용하는 높은 유연성을 허용하고, 구체적인 애플리케이션에 대하여, 미세-조율(fine-tuning)은 트랜스포머 기반 신경망에 의해 수행되는 수치 실험에 기초하여 용이하게 달성될 수 있다.
시맨틱 레벨(semantic level) 상에서, 전술한 방법에 따르면, 현재 객체는 현재 객체의 프로세싱을 위하여 이용되는 연속적 또는 이산적 품질에 대한 정보를 프로세싱하는 것을 나타낼 수 있는 적어도 하나의 보조 입력에 기초하여 프로세싱된다. 트랜스포머 기반 신경망에 의한 프로세싱을 위하여, 프로세싱되어야 하는 현재 객체는 입력 데이터 텐서로 변환되어야 하고, 적어도 하나의 보조 입력은 적어도 하나의 보조 데이터 텐서로 변환되어야 한다. 구현예에 따르면, 적어도 하나의 보조 데이터 텐서는 적어도 하나의 보조 입력을 적어도 하나의 보조 데이터 텐서로 선형적으로 또는 비-선형적으로 변환함으로써 생성된다. 이것은, 일부 투영 계층이 적어도 하나의 보조 입력을 수신하고, 입력 데이터 텐서를 프로세싱할 때에 이용되어야 하는 적어도 하나의 보조 데이터 텐서를 출력함으로써 행해질 수 있다. 또 다른 신경망(예를 들어, 순환 또는 컨볼루션 신경망)은 적어도 하나의 보조 데이터 텐서로의 적어도 하나의 보조 입력의 변환을 최적화하기 위하여 훈련되고 이용될 수 있다.
원칙적으로, 제1 측면 및 그 구현예에 따른 전술한 방법은 현재 객체를 프로세싱하는 것에 대한 정보가 어떻게 제공되는지에 종속되지 않는다. 현재 객체의 코딩의 맥락에서, 예를 들어, 많은 애플리케이션에서는, 비트스트림이 객체에 대하여 (예를 들어, 인코더에 의해) 생성된다. 이러한 비트스트림은 객체 자체에 대한 정보 뿐만 아니라, (예를 들어, 수신기 또는 디코더 측 상에서) 객체를 어떻게 프로세싱할 것인지도 포함한다. 구현예에 따라 이를 고려하면, 방법은 객체에 대하여 생성되는 비트스트림으로부터 현재 객체를 프로세싱하는 것에 대한 정보를 획득하는 단계를 더 포함한다. 이에 의해, 필요한 정보는 신뢰성 있게 그리고 용이하게 획득될 수 있다.
제1 측면 및 그 구현예에 따른 방법은 매우 다양한 객체의 프로세싱을 위하여 이용될 수 있다. 예를 들어, 이미지 프로세싱의 맥락에서, 현재 객체는 이미지 또는 이미지의 일부 중의 하나를 포함한다. 이미지는 비디오 시퀀스의 프레임 또는 스틸 이미지일 수 있다.
프로세싱되어야 할 현재 객체가 이미지를 포함할 때, 적어도 하나의 보조 입력은,
품질 지시 파라미터;
신호 공간 내의 채널별 왜곡 메트릭;
잠재 공간 내의 채널별 왜곡 메트릭;
밝기(brightness), 콘트라스트(contrast), 블러링(blurring), 웜니스(warmness), 샤프니스(sharpness), 포화(saturation), 컬러 히스토그램(color Histogram), 케이드(cade);
섀도잉(shadowing), 휘도(luminance), 비네트 제어(vignette control), 페인팅 스타일(painting style);
불연속적으로 가변적인 필터 강도, 연속적으로 가변적인 필터 강도;
인트라 예측 또는 인터 예측의 지시; 및
객체 대체 애플리케이션을 위한 변환 레이트를 포함하는 그룹으로부터 선택될 수 있다.
이 프로세싱 품질의 전부는 특히, 이미지 코딩의 맥락에서, 프로세싱된 객체의 품질을 증가시키기 위한 추가적인 정보로서 유용한 것으로 증명될 수 있다. 이미지 코딩에 대하여, 제1 측면 또는 그 구현예 중의 임의의 구현예에 따른 방법의 단계를 포함하는, 이미지를 인코딩하는 방법이 제공되고, 이에 대응하여, 제1 측면 또는 그 구현예 중의 임의의 구현예에 따른 방법의 단계를 포함하는, 인코딩된 이미지를 디코딩하는 방법이 제공된다. 비디오 코딩의 맥락에서, 트랜스포머 기반 신경망은 인루프 필터(inloop filter) 내에 포함될 수 있다. 게다가, 비디오 코딩의 맥락에서, 트랜스포머 기반 신경망은 인터-예측 프로세싱(inter-prediction processing)을 위하여 적당하게 이용될 수 있다.
추가로, 제1 측면 또는 그 구현예 중의 임의의 구현예에 따른 방법의 단계를 포함하는 이미지 강화 방법이 제공된다. (본 기술분야에서 공지된 임의의 품질 메트릭에 따른) 프로세싱된 이미지의 강화는 보조 입력을 채용함으로써 당해 기술에 비해 상당히 개선될 수 있다.
제1 측면 또는 그 구현예 중의 임의의 구현예에 따른 방법은 또한, 텍스트 또는 언어 프로세싱(예를 들어, 자연 언어 프로세싱(Natural Language Processing))에 적당하게 적용될 수 있다. 따라서, 또 다른 구현예에 따르면, 현재 객체는 하나 이상의 문장(의 단어)을 포함한다. 이 경우에, 적어도 하나의 보조 입력은 온도(temperature)(자연 언어 프로세싱의 맥락에서, 이것은 softmax를 적용하기 전에 최종적인 선형 계층에 의해 출력되는 로짓(logit)을 스케일링함으로써 예측의 무작위성(randomness)을 제어하기 위하여 이용되는 신경망의 하이퍼-파라미터(hyper-parameter)임; 이하의 설명을 또한 참조함), 언어, 및 어펙션(affection)을 포함하는 그룹으로부터 선택될 수 있다.
제1 측면 또는 그 구현예 중의 임의의 구현예에 따른 방법은 또한, 오디오 신호 프로세싱에 적당하게 적용될 수 있다. 따라서, 또 다른 구현예에 따르면, 현재 객체는 오디오 신호를 포함한다. 이 경우에, 적어도 하나의 보조 입력은,
품질 지시 파라미터;
신호 공간 내의 채널별 왜곡 메트릭;
임의의 잠재 공간(latent space) 내의 채널별 왜곡 메트릭;
등화기 설정(equalizer setting);
음량(volume); 및
변환 레이트를 포함하는 그룹으로부터 선택될 수 있다.
오디오 신호 프로세싱의 맥락에서는, 제1 측면 또는 그 구현예 중의 임의의 구현예에 따른 방법의 단계를 포함하는, 음향 신호를 인코딩하는 방법이 제공된다. 이에 대응하여, 제1 측면 또는 그 구현예 중의 임의의 구현예에 따른 방법의 단계를 포함하는, 인코딩된 음향 신호를 디코딩하는 방법이 제공된다.
제2 측면에 따르면, 신경망 추론에 의해 현재 객체를 프로세싱하는 방법이 제공된다. 제2 측면에 따른 이 방법은,
현재 객체를 나타내는 입력 데이터 텐서의 세트를 훈련된 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 단계;
적어도 하나의 보조 데이터 텐서를 훈련된 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 단계 - 적어도 하나의 보조 데이터 텐서는 입력 데이터 텐서의 세트의 입력 데이터 텐서 각각과는 상이하고, 적어도 하나의 보조 입력을 나타냄 -; 및
출력 데이터 텐서의 세트를 획득하기 위하여 적어도 하나의 보조 데이터 텐서를 이용하여 훈련된 트랜스포머 기반 신경망에 의해 입력 데이터 텐서의 세트를 프로세싱하는 단계를 포함한다.
신경 계층 내로 입력되는 적어도 하나의 보조 데이터 텐서는 (보조 입력에 의해 제공되는) 현재 객체의 성질(property)에 대한 정보, 및 (보조 입력에 의해 제공되는) 현재 객체를 프로세싱하는 것에 대한 정보 중의 적어도 하나에 종속된다.
신경망 추론 동안의 입력 데이터 텐서의 프로세싱의 결과(즉, 모델 성능)는 현재 객체의 성질에 대한 정보(예를 들어, 현재 객체의 컨텐츠 또는 컨텐츠의 유형/클래스) 및/또는 현재 객체를 프로세싱하는 것에 대한 정보(이하의 설명 참조)를 이용함으로써 개선된다. 이 정보는 사전-훈련되고 고정된 보조 입력에 의해 제공되는 것이 아니라, 보조 입력을, 추가적인 모델 입력을 제공하는 적어도 하나의 보조 데이터 텐서로 투영함으로써, 현재 객체에 대하여 획득되는 가변 정보가 트랜스포머 기반 신경망에 의한 프로세싱을 위하여 이용가능하게 된다. 특히, 현재 객체를 프로세싱하는 것에 대한 정보는 연속적 또는 이산적 파라미터 범위 상에서 현재 객체를 프로시싱하는 것에 대한 정보일 수 있다.
신경망 추론 동안에, 현재 객체의 성질에 대한 정보, 특히, 객체의 컨텐츠에 대한 정보, 및 현재 객체를 프로세싱하는 것에 대한 정보는 둘 모두 또는 대안적으로, 트랜스포머 기반 신경망에 의해 객체의 프로세싱의 결과를 개선시키기 위하여(예를 들어, 디코딩된 이미지의 품질이 개선될 수 있음) 유용하게 이용될 수 있다.
위에서 설명된 것과 동일한 장점을 제공하면서, 제2 측면에 따른 방법의 상이한 구현예가 실현될 수 있다.
구현예에 따르면, 입력 데이터 텐서의 세트는 적어도 하나의 보조 데이터 텐서와 별도로 입력된다. 이 경우에, 입력 데이터 텐서의 세트는 훈련된 트랜스포머 기반 신경망의 제1 신경 계층 내로 입력될 수 있고, 적어도 하나의 보조 데이터 텐서는 제1 계층과는 상이한, 훈련된 트랜스포머 기반 신경망의 제2 신경 계층 내로 입력될 수 있다. 텐서 공간에서 현재 객체를 프로세싱하는 것에 대한 정보를 제공하는 보조 입력을 나타내는 적어도 하나의 보조 데이터 텐서는 입력 데이터 텐서에 적용되는 수학적 동작과 동일하거나 유사한 신경 계층 내의 수학적 동작에 의해 프로세싱될 수 있다. 특히, 동일한 가중치가 동일한 신경 계층 내의 적어도 하나의 보조 데이터 텐서 및 입력 데이터 텐서에 적용될 수 있다.
대안적으로, 입력 데이터 텐서의 세트 및 적어도 하나의 보조 데이터 텐서를 입력하는 것은, a) 상이한 혼합된 입력 텐서의 세트를 생성하는 것 - 상이한 혼합된 입력 텐서의 세트의 각각의 혼합된 입력 텐서는 적어도 하나의 보조 데이터 텐서, 및 입력 데이터 텐서의 세트의 하나의 입력 데이터 텐서 중의 적어도 하나를 포함함 -, 및 b) 혼합된 입력 텐서의 세트를 훈련된 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 것을 포함할 수 있다. 일부 구현예에서, 상이한 혼합된 입력 텐서의 세트의 혼합된 입력 텐서 각각은 적어도 하나의 보조 데이터 텐서, 및 입력 데이터 텐서의 세트의 정확하게 하나의 입력 데이터 텐서 중의 적어도 하나를 포함한다.
본 명세서에서 제공되는 제1 측면에 따른 방법을 참조하여 위에서 설명된 것과 유사하게, 제2 측면에 따른 방법은, 적어도 하나의 보조 입력을 적어도 하나의 보조 데이터 텐서로 선형적으로 변환하는 것, 적어도 하나의 보조 입력을 적어도 하나의 보조 데이터 텐서로 비-선형적으로 변환하는 것, 및 적어도 하나의 보조 입력을 또 다른 신경망에 의해 적어도 하나의 보조 데이터 텐서로 변환하는 것 중의 하나에 의해 적어도 하나의 보조 데이터 텐서를 생성하는 단계를 더 포함할 수 있다.
제2 측면에 따른 방법의 구현예에 따르면, 현재 객체의 성질에 대한 정보, 및 현재 객체를 프로세싱하는 것에 대한 정보 중의 적어도 하나는 연속적 또는 이산적 파라미터 범위 상에서 현재 객체를 프로세싱하는 것에 대한 정보이다.
위에서 설명된 바와 같이, 현재 객체의 성질에 대한 정보 및/또는 현재 객체를 프로세싱하는 것에 대한 정보는 객체에 대하여 생성되는 비트스트림으로부터 획득될 수 있다.
제1 측면에 따른 방법과 유사한, 제2 측면에 따른 방법은 또한, 예를 들어, 이미지 프로세싱, 언어 프로세싱(예를 들어, 자연 언어 프로세싱), 및 오디오 신호 프로세싱에 적용될 수 있다.
따라서, 현재 객체는 예를 들어, 이미지, 또는 이미지의 일부 중의 하나를 포함할 수 있고, 여기서, 이미지는 비디오 시퀀스의 프레임 또는 스틸 이미지일 수 있다. 이 경우에, 적어도 하나의 보조 입력은,
컨텐츠, 컨텐츠의 클래스/유형;
품질 지시 파라미터;
신호 공간 내의 채널별 왜곡 메트릭;
잠재 공간 내의 채널별 왜곡 메트릭;
밝기, 콘트라스트, 블러링, 웜니스, 샤프니스, 포화, 컬러 히스토그램, 케이드;
섀도잉, 휘도, 비네트 제어, 페인팅 스타일;
불연속적으로 가변적인 필터 강도, 연속적으로 가변적인 필터 강도;
인트라 예측 또는 인터 예측의 지시; 및
객체 대체 애플리케이션을 위한 변환 레이트를 포함하는 그룹으로부터 선택될 수 있다.
추가로, 제2 측면 또는 그 구현예 중의 임의의 구현예에 따른 방법의 단계를 포함하는, 이미지를 인코딩하거나 인코딩된 이미지를 디코딩하는 방법이 제공된다. 게다가, 제2 측면 또는 그 구현예 중의 임의의 구현예에 따른 방법의 단계를 포함하는 이미지 압축 방법이 제공된다.
본 명세서에서 제공되는 특정한 애플리케이션을 다루는 다른 방법은, 적절한 것으로 고려될 때마다 제2 측면 또는 그 구현예 중의 임의의 구현예에 따른 방법의 단계를 포함하는, 비디오 압축, 이미지 오토-인코딩, 비디오 코딩, 및 이미지 강화 방법을 포함한다. 특히, 훈련된 트랜스포머 기반 신경망은 인루프 필터 내에 포함될 수 있다.
제2 측면에 따른 방법의 또 다른 구현예에 따르면, 현재 객체는 하나 이상의 문장(의 단어)을 포함한다. 이 경우에, 적어도 하나의 보조 입력은 컨텐츠, 컨텐츠의 유형, 온도(이하의 설명 참조), 언어, 및 어펙션을 포함하는 그룹으로부터 선택된다.
대안적으로, 현재 객체는 오디오 신호를 포함한다. 오디오 신호 프로세싱의 맥락에서, 적어도 하나의 보조 입력은,
컨텐츠, 컨텐츠의 유형;
품질 지시 파라미터;
신호 공간 내의 채널별 왜곡 메트릭;
임의의 잠재 공간 내의 채널별 왜곡 메트릭;
등화기 설정;
음량; 및
변환 레이트를 포함하는 그룹으로부터 선택될 수 있다.
오디오 신호 프로세싱의 맥락에서는, 제2 측면 또는 그 전술한 실시예 중의 임의의 실시예에 따른 방법의 단계를 포함하는, 음향 신호를 인코딩하는 방법이 제공된다. 이에 대응하여, 제2 측면 또는 그 전술한 실시예 중의 임의의 실시예에 따른 방법의 단계를 포함하는, 인코딩된 음향 신호를 디코딩하는 방법이 제공된다.
제3 측면에 따르면, 하나 이상의 프로세서 상에서 실행될 때, 제1 및 제2 측면, 및 또한 위에서 설명된 것의 특정 구현예 중의 임의의 것에 따른 방법의 단계를 수행하는 코드를 포함하는 비-일시적 매체 상에 저장되는 컴퓨터 프로그램이 제공된다.
제4 측면에 따르면, 위에서 설명된 제1 측면 또는 제2 측면 뿐만 아니라 전술한 구현예에 따른 방법의 단계를 수행하도록 구성되는 프로세싱 회로부를 포함하는 프로세싱 장치가 제공된다.
제5 측면에 따르면, 하나 이상의 프로세서, 및 하나 이상의 프로세서에 결합되고, 하나 이상의 프로세서에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체를 포함하는 프로세싱 장치가 제공되고, 여기서, 프로그래밍은, 하나 이상의 프로세서에 의해 실행될 때, 위에서 설명된 제1 측면 또는 제2 측면 뿐만 아니라 전술한 구현예에 따른 방법을 수행하도록 프로세싱 장치를 구성한다.
전술한 프로세싱 장치 중의 임의의 프로세싱 장치는, 인코딩된 이미지, 예를 들어, 스틸 이미지 또는 비디오 시퀀스의 프레임을 디코딩하도록 구성되는 디코딩 디바이스, 또는 이미지, 예를 들어, 스틸 이미지 또는 비디오 시퀀스의 프레임을 인코딩하도록 구성되는 인코딩 디바이스에 의해 포함될 수 있다. 또한, 이미지를 코딩하도록 구성되고, 전술한 장치 중의 임의의 장치를 포함하는 오토-인코딩 디바이스가 본 명세서에서 제공된다.
이하에서, 발명의 기술적 배경 및 실시예는 첨부된 그림 및 도면을 참조하여 더 상세하게 설명된다.
도 1은 신경망의 계층에 의해 프로세싱되는 채널을 예시하는 개략도이다.
도 2는 신경망의 오토-인코더 유형을 예시하는 개략도이다.
도 3은 하이퍼-프라이어(hyper-prior) 모델을 포함하는 네트워크 아키텍처를 예시하는 개략도이다.
도 4는 머신 비전 태스크(machine vision task)와 같은 머신 기반 태스크에 대한 클라우드-기반 솔루션(cloud-based solution)의 구조를 예시하는 블록도이다.
도 5는 종단-대-종단(end-to-end) 훈련가능한 비디오 압축 프레임워크의 구조를 예시하는 블록도이다.
도 6은 모션 벡터 압축을 위한 네트워크를 예시하는 블록도이다.
도 7은 당해 기술의 학습된 이미지 압축 구성을 예시하는 블록도이다.
도 8은 당해 기술의 트랜스포머 아키텍처를 예시한다.
도 9는 도 8에서 도시되는 트랜스포머 아키텍처의 트랜스포머 계층을 약간 더 상세하게 예시한다.
도 10은 클래스 토큰을 채용하는 기술의 또 다른 트랜스포머 아키텍처를 예시한다.
도 11은 회전 및 대조 토큰을 채용하는 기술의 또 다른 트랜스포머 아키텍처를 예시한다.
도 12는 본 발명의 실시예에 따라 동작하는 트랜스포머를 예시한다.
도 13은 본 발명의 또 다른 실시예에 따라 동작하는 트랜스포머를 예시한다.
도 14는 본 발명의 또 다른 실시예에 따라 동작하는 트랜스포머를 예시한다.
도 15는 본 발명의 실시예에 따라 객체를 프로세싱하는 방법을 예시하는 순서도이다.
도 16은 본 발명의 또 다른 실시예에 따라 객체를 프로세싱하는 방법을 예시하는 순서도이다.
도 17은 본 발명의 실시예에 따라 객체를 프로세싱하는 방법을 수행하도록 구성되는 프로세싱 장치를 예시한다.
도 18은 발명의 실시예를 구현하도록 구성되는 비디오 코딩 시스템의 예를 도시하는 블록도이다.
도 19는 발명의 실시예를 구현하도록 구성되는 비디오 코딩 시스템의 또 다른 예를 도시하는 블록도이다.
도 20은 발명의 실시예를 구현하도록 구성되는 인코딩 장치 또는 디코딩 장치의 예를 예시하는 블록도이다.
도 21은 발명의 실시예를 구현하도록 구성되는 인코딩 장치 또는 디코딩 장치의 또 다른 예를 예시하는 블록도이다.
다음의 설명에서, 첨부 도면에 대해 참조가 행해지고, 첨부 도면은 개시내용의 일부를 형성하고, 예시로서, 발명의 실시예의 구체적인 측면, 또는 본 발명의 실시예가 이용될 수 있는 구체적인 측면을 도시한다. 발명의 실시예는 다른 측면에서 이용될 수 있고, 도면에서 도시되지 않은 구조적 또는 논리적 변경을 포함할 수 있다는 것이 이해된다. 그러므로, 다음의 상세한 설명은 제한적인 의미로 취해지지 않아야 되고, 본 발명의 범위는 첨부된 청구항에 의해 정의된다.
예를 들어, 설명된 방법과 관련된 개시내용은 또한, 방법을 수행하도록 구성된 대응하는 디바이스 또는 시스템에 대해 유효할 수 있고 그 반대도 마찬가지일 수 있다는 것이 이해된다. 예를 들어, 하나 또는 복수의 구체적인 방법 단계가 설명될 경우에, 이러한 하나 이상의 유닛이 도면에서 명시적으로 설명되거나 예시되지 않더라도, 대응하는 디바이스는 설명된 하나 또는 복수의 방법 단계를 수행하기 위한 하나 또는 복수의 유닛, 예컨대, 기능적 유닛(예컨대, 하나 또는 복수의 단계를 수행하는 하나의 유닛, 또는 복수의 단계 중의 하나 이상의 단계를 각각 수행하는 복수의 유닛)을 포함할 수 있다. 다른 한편으로, 예를 들어, 구체적인 장치가 하나 또는 복수의 유닛, 예컨대, 기능적 유닛에 기초하여 설명될 경우에, 이러한 하나 또는 복수의 단계가 도면에서 명시적으로 설명되거나 예시되지 않더라도, 대응하는 방법은 하나 또는 복수의 유닛의 기능성을 수행하기 위한 하나의 단계(예컨대, 하나 또는 복수의 유닛의 기능성을 수행하는 하나의 단계, 또는 복수의 유닛 중의 하나 이상의 유닛의 기능성을 각각 수행하는 복수의 단계)를 포함할 수 있다. 또한, 본 명세서에서 설명된 다양한 예시적인 실시예 및/또는 측면의 특징은 이와 다르게 구체적으로 언급되지 않으면, 서로 조합될 수 있다는 것이 이해된다.
이하에서는, 이용되는 기술적 용어의 일부에 대한 개요가 제공된다.
인공 신경망(artificial neural network)
인공 신경망(ANN : artificial neural network) 또는 연결주의 시스템(connectionist system)은 동물 뇌를 구성하는 생물학적 신경망에 의해 희미하게 영감받은 컴퓨팅 시스템이다. 이러한 시스템은 일반적으로, 태스크-특정 규칙으로 프로그래밍되지 않으면서, 예를 고려함으로써 태스크를 수행하도록 "학습(learn)"한다. 예를 들어, 이미지 인식에서, 이들은 "고양이(cat)" 또는 "고양이 없음(no cat)"으로서 수동적으로 표기된 예시적인 이미지를 분석함으로써, 그리고 다른 이미지 내의 고양이를 식별하기 위하여 결과를 이용함으로써, 고양이를 포함하는 이미지를 식별하도록 학습할 수 있다. 이러한 시스템은 고양이의 임의의 이전 지식, 예를 들어, 고양이가 털, 꼬리, 수염, 및 고양이-유사 얼굴을 가진다는 것 없이 이를 행한다. 그 대신에, 이러한 시스템은 이들이 프로세싱하는 예로부터 식별 특성을 자동적으로 생성한다.
ANN은, 생물학적 뇌 내의 뉴런을 느슨하게 모델링하는 인공 뉴런(artificial neuron)으로 칭해지는 접속된 유닛 또는 노드의 집합에 기초한다. 생물학적 뇌 내의 시냅스(synapse)와 같은 각각의 접속은 신호를 다른 뉴런으로 송신할 수 있다. 신호를 수신하는 인공 뉴런은 그 다음으로, 신호를 프로세싱하고, 인공 뉴런에 접속된 뉴런에 시그널링할 수 있다.
ANN 구현예에서, 접속에서의 신호는 실수이고, 각각의 뉴런의 출력은 그 입력의 합의 일부 비-선형 함수에 의해 연산된다. 접속은 에지(edge)로 칭해진다. 뉴런 및 에지는 전형적으로, 학습이 진행됨에 따라 조절되는 가중치(weight)를 가진다. 가중치는 접속에서의 신호의 강도를 증가시키거나 감소시킨다. 뉴런은 집성 신호(aggregate signal)가 그 임계치를 교차하는 경우에만 신호가 전송되도록 하는 임계치를 가질 수 있다. 전형적으로, 뉴런은 계층 내로 집성된다. 상이한 계층은 그 입력에 대해 상이한 변환(transformation)을 수행할 수 있다. 신호는 아마도 계층을 다수 횟수 횡단한 후에 최초 계층(입력 계층)으로부터 마지막 계층(출력 계층)으로 이동한다.
ANN 접근법의 원래의 목표는 인간 뇌가 행하는 것과 동일한 방식으로 문제를 해결하는 것이었다. 시간이 지남에 따라, 관심이 특정 태스크를 수행하는 것으로 이동되어, 생물학으로부터 이탈을 초래하였다. ANN은 컴퓨터 비전, 음성 인식, 머신 번역, 소셜 네트워크 필터링, 보드 및 비디오 게임 플레이, 의학적 진단, 및 심지어 페인팅(painting)과 같이, 인간에게 유보되는 것으로서 전통적으로 간주된 활동을 포함하는 다양한 태스크에 대해 이용되고 있다.
컨볼루션 신경망(convolutional neural network)
명칭 "컨볼루션 신경망(convolutional neural network)"(CNN)은 네트워크가 컨볼루션(convolution)으로 칭해지는 수학적 동작을 채용한다는 것을 지시한다. 컨볼루션은 특화된 종류의 선형 동작이다. 컨볼루션 네트워크는 그 계층 중의 적어도 하나에서의 일반적인 행렬 승산(matrix multiplication) 대신에 컨볼루션을 이용하는 간단한 신경망이다.
도 1은 CNN과 같은 신경망에 의한 프로세싱의 일반적인 개념을 개략적으로 예시한다. 컨볼루션 신경망은 입력 및 출력 계층 뿐만 아니라 다수의 은닉된 계층(hidden layer)으로 구성된다. 입력 계층은 (도 1에서 도시된 바와 같은 이미지의 부분과 같은) 입력이 프로세싱을 위하여 제공되는 계층이다. CNN의 은닉된 계층은 전형적으로, 승산 또는 다른 내적(dot product)와 컨볼루션하는 일련의 컨볼루션 계층으로 구성된다. 계층의 결과는, 때때로 채널로서 또한 지칭되는 하나 이상의 특징 맵(feature map)(도 1에서의 특징 맵)이다. 계층의 일부 또는 전부에 관여되는 서브샘플링(subsampling)이 있을 수 있다. 결과적으로, 특징 맵은 도 1에서 예시된 바와 같이 더 작아질 수 있다. CNN에서의 활성화 함수는 통상적으로, 정류된 선형 유닛(RELU : Rectified Linear Unit) 계층이고, 풀링 계층(pooling layer), 완전 접속된 계층, 및 그 입력 및 출력이 활성화 함수 및 최종적인 컨볼루션에 의해 마스킹(mask)되기 때문에, 은닉된 계층으로서 지칭되는 정규화 계층과 같은 추가적인 컨볼루션이 추후에 뒤따른다. 계층은 컨볼루션으로서 구어체로 지칭되지만, 이것은 오직 컨볼루션에 의한 것이다. 수학적으로, 컨볼루션은 기술적으로 슬라이딩 내적(sliding dot product) 또는 교차-상관(cross-correlation)이다. 컨볼루션이 가중치가 특정 인덱스 포인트에서 어떻게 결정되는지에 영향을 준다는 점에서, 컨볼루션은 행렬 내의 인덱스에 대한 중요성을 가진다.
이미지를 프로세싱하기 위한 CNN을 프로그래밍할 때, 도 1에서 도시된 바와 같이, 입력은 형상 (이미지의 수) x (이미지 폭) x (이미지 높이) x (이미지 심도)를 갖는 텐서이다. 그 다음으로, 컨볼루션 계층을 통과한 후에, 이미지는 형상 (이미지의 수) x (특징 맵 폭) x (특징 맵 높이) x (특징 맵 채널)으로 특징 맵으로 추상화된다. 신경망 내의 컨볼루션 계층은 다음의 속성을 가져야 한다. 폭 및 높이에 의해 정의되는 컨볼루션 커널(하이퍼-파라미터). 입력 채널 및 출력 채널의 수(하이퍼-파라미터). 컨볼루션 필터의 심도(입력 채널)는 입력 특징 맵의 채널 수(심도)와 동일해야 한다.
과거에는, 전통적인 멀티계층 지각(MLP : multilayer perceptron) 모델이 이미지 인식을 위하여 이용되었다. 그러나, 노드 사이의 완전 접속성으로 인해, 이들은 높은 차원성을 겪었고, 더 높은 차원의 이미지로 양호하게 스케일링하지 않았다. RGB 컬러 채널을 갖는 1000×1000-픽셀 이미지는 3 백만 가중치를 가지고, 이것은 완전 접속성을 갖는 스케일에서 효율적으로 실현가능하게 프로세싱하기에 너무 높다. 또한, 이러한 네트워크 아키텍처는 데이터의 공간적 구조를 참작하지 않아서, 너무 떨어져 있는 입력 픽셀을 함께 근접한 픽셀과 동일한 방식으로 취급한다. 이것은 연산적으로 그리고 시맨틱 방식의 둘 모두에 있어서 이미지 데이터에서의 참조의 국지성(locality)을 무시한다. 따라서, 뉴런의 완전 접속성은 공간적으로 국지적인 입력 패턴에 의해 지배되는 이미지 인식과 같은 목적에 대하여 낭비적이다.
컨볼루션 신경망은 시각적 피질(cortex)의 거동을 모방하도록 구체적으로 설계되는 멀티계층 퍼셉트론(perceptron)의 생물적으로 영감받은 변종이다. 이 모델은 신경 이미지에서 존재하는 강력한 공간적으로 국지적인 상관을 활용함으로써 MLP 아키텍처에 의해 제기되는 도전을 완화한다. 컨볼루션 계층은 CNN의 핵심 구성 블록이다. 계층의 파라미터는, 작은 수용 필드(receptive field)를 가지지만, 입력 용적(input volume)의 전체 심도를 통해 확장되는 학습가능한 필터(전술한 커널)의 세트로 구성된다. 포워드 통과(forward pass) 동안에, 각각의 필터는 입력 용적의 폭 및 높이에 걸쳐 컨볼루션되어, 필터의 엔트리(entry)와 입력 사이의 내적(dot product)을 연산하고 그 필터의 2-차원 활성화 맵을 생성한다. 그 결과, 네트워크는 네트워크가 입력에서의 일부 공간적 포지션에서 일부 특정 유형의 특징을 검출할 때에 활성화하는 필터를 학습한다.
심도 차원을 따라 모든 필터에 대한 활성화 맵을 적층하는 것은 컨볼루션 계층의 전체 출력 용적을 형성한다. 따라서, 출력 용적 내의 모든 엔트리는 또한, 입력 내의 작은 영역을 주시하고 동일한 활성화 맵 내의 뉴런과 파라미터를 공유하는 뉴런의 출력으로서 해독될 수 있다. 특징 맵 또는 활성화 맵은 주어진 필터에 대한 출력 활성화이다. 특징 맵 및 활성화는 동일한 의미를 가진다. 일부 논문에서는, 그것은 이미지의 상이한 파트의 활성화에 대응하는 매핑이기 때문에 활성화 맵으로 칭해지고, 어떤 종류의 특징이 이미지에서 발견되는 매핑이기도 하기 때문에 특징 맵으로 칭해진다. 높은 활성화는 어떤 특징이 발견되었다는 것을 의미한다.
CNN의 또 다른 중요한 개념은 비-선형 다운-샘플링의 형태인 풀링(pooling)이다. 최대 풀링(max pooling)이 가장 보편적인 풀링을 구현하기 위한 몇몇 비-선형 함수가 있다. 그것은 입력 이미지를 비-중첩 직사각형들 세트로 파티셔닝하고, 각각의 이러한 서브-영역에 대하여, 최대를 출력한다.
직관적으로, 특징의 정확한 위치는 다른 특징에 대한 그 대략적인 위치보다 덜 중요하다. 이것은 컨볼루션 신경망에서의 풀링의 이용의 배후의 사상이다. 풀링 계층은 파라미터의 수, 메모리 풋프린트(footprint), 및 네트워크에서의 연산량을 감소시키고, 이에 따라, 오버피팅(overfitting)을 또한 제어하기 위하여, 표현의 공간적 크기를 점진적으로 감소시키도록 작용한다. CNN 아키텍처 내의 연속적인 컨볼루션 계층 사이에 풀링 계층을 주기적으로 삽입하는 것이 보편적이다. 풀링 동작은 또 다른 형태의 번역 불변성(translation invariance)을 제공한다.
풀링 계층은 입력의 매 심도 슬라이스에 대해 독립적으로 동작하고 그것을 공간적으로 리사이징(resize)한다. 가장 보편적인 형태는 폭 및 높이를 따라 입력에서의 매 심도 슬라이스에서 2씩 2개의 다운-샘플의 스트라이드(stride)가 적용되어 활성화의 75%를 폐기하는 크기 2x2의 필터를 갖는 풀링 계층이다. 이 경우에, 매 최대 동작(max operation)은 4 회 초과이다. 심도 차원은 미변경된 상태로 유지된다.
최대 풀링에 추가적으로, 풀링 유닛은 평균 풀링 또는 -놈(norm) 풀링과 같은 다른 함수를 이용할 수 있다. 평균 풀링은 이력적으로 종종 이용되었지만, 실제적으로 더 양호하게 수행하는 최대 풀링에 비해 선호도가 최근에 하락하였다. 표현의 크기에 있어서의 공격적인 감소로 인해, 더 작은 필터를 이용하거나 풀링 계층을 모두 폐기하는 것을 지향하는 최근의 추세가 있다. "관심 영역(Region of Interest)" 풀링(또한, ROI 풀링으로서 알려짐)은, 출력 크기가 고정되고 입력 직사각형이 파라미터인, 최대 풀링의 변형이다. 풀링은 고속 R-CNN 아키텍처에 기초한 객체 검출을 위한 컨볼루션 신경망의 중요한 컴포넌트이다.
전술한 ReLU는 비-포화 활성화 함수를 적용하는 정류된 선형 유닛의 약어이다. 그것은 음수 값을 제로로 설정함으로써 활성화 맵으로부터 음수 값을 효과적으로 제거한다. 그것은 컨볼루션 계층의 수용 필드에 영향을 주지 않으면서, 판정 함수 및 전체적인 네트워크의 비선형 성질을 증가시킨다. 다른 함수, 예를 들어, 포화 쌍곡선 접선(saturating hyperbolic tangent) 및 시그모이드 함수(sigmoid function)는 또한, 비선형성을 증가시키기 위하여 이용된다. ReLU는 다른 함수보다 종종 선호되는데, 그 이유는 ReLU가 일반화 정확도에 대한 상당한 벌칙 없이 신경망을 더 빨리 몇 회 훈련시키기 때문이다.
몇몇 컨볼루션 및 최대 풀링 계층 후에, 신경망에서의 하이-레벨 추론(high-level reasoning)은 완전 접속된 계층을 통해 행해진다. 완전 접속된 계층에서의 뉴런은 보통의(비-컨볼루션) 인공 신경망에서 보여지는 바와 같이, 이전 계층에서의 모든 활성화에 대한 접속을 가진다. 따라서, 그 활성화는 아핀 변환(affine transformation)으로서 연산될 수 있고, 행렬 승산은 바이어스 오프셋(bias offset)(학습된 또는 고정된 바이어스 항의 벡터 추가)에 선행한다.
"손실 계층(loss layer)"은 훈련이 예측된(출력) 것과 진정한 라벨 사이의 편차를 어떻게 벌칙부과하는지를 특정하고, 일반적으로, 신경망의 최종적인 계층이다. 상이한 태스크에 대하여 적절한 다양한 손실 함수가 이용될 수 있다. Softmax 손실은 K개의 상호 배타적인 클래스의 단일 클래스를 예측하기 위하여 이용된다. 시그모이드 교차-엔트로피 손실(sigmoid cross-entropy loss)은 [0, 1]인 K개의 독립적인 확률 값을 예측하기 위하여 이용된다. 유클리드 손실(euclidean loss)은 실수 라벨로 회귀하기 위하여 이용된다.
요약하면, 도 1은 전형적인 컨볼루션 신경망에서의 데이터 흐름을 도시한다. 먼저, 입력 이미지는 컨볼루션 계층으로 통과하게 되고, 이 계층의 학습가능한 필터의 세트 내의 필터의 수에 대응하는 몇몇 채널을 포함하는 특징 맵으로 추상화된다. 그 다음으로, 특징 맵은 특징 맵 내의 각각의 채널의 차원을 감소시키는 예컨대, 풀링 계층을 이용하여 서브샘플링된다. 다음으로, 특징 맵 내의 상이한 수의 채널을 초래하는 상이한 수의 출력 채널을 가질 수 있는 또 다른 컨볼루션 계층으로 데이터가 들어간다. 위에서 언급된 바와 같이, 입력 채널 및 출력 채널의 수는 계층의 하이퍼-파라미터이다. 네트워크의 접속성을 확립하기 위하여, 현재 계층에 대한 입력 채널의 수가 이전 계층의 출력 채널의 수와 동일해야 하는 것과 같이, 그 파라미터는 2개의 접속된 계층 사이에서 동기화될 필요가 있다. 입력 데이터, 예컨대, 이미지를 프로세싱하는 제1 계층에 대하여, 입력 채널의 수는 일반적으로, 데이터 표현의 채널 수, 예를 들어, 이미지 또는 비디오의 RGB 또는 YUV 표현에 대한 3개의 채널, 또는 그레이스케일 이미지 또는 비디오 표현에 대한 1개의 채널과 동일하다.
오토인코더(autoencoder) 및 비감독된 학습(unsupervised learning)
오토인코더는 비감독된 방식으로 효율적인 데이터 코딩을 학습하기 위하여 이용되는 인공 신경망의 유형이다. 그 대략적인 도면이 도 2에서 도시되어 있다. 오토인코더의 목표는 신호 "잡음"을 무시하도록 네트워크를 훈련시킴으로써, 전형적으로, 차원성 감소를 위하여, 데이터의 세트에 대한 표현(인코딩)을 학습하는 것이다. 감소 측과 함께, 재구성 측이 학습되고, 여기서, 오토인코더는 감소된 인코딩으로부터, 그 원래의 입력과 가능한 한 근접한 표현, 이 때문에 그 명칭을 생성하도록 노력한다. 가장 간단한 경우에, 하나의 은닉된 계층이 주어지는 경우에, 오토인코더의 인코더 스테이지(stage)는 입력 을 취하고 그것을 으로 매핑한다:
이 이미지 는 통상적으로, 코드, 잠재 변수, 또는 잠재 표현으로서 지칭된다. 여기서, 는 시그모이드 함수 또는 정류된 선형 유닛과 같은 엘리먼트별 활성화 함수이다. 는 가중치 행렬이고, 는 바이어스 벡터이다. 가중치 및 바이어스는 통상적으로 무작위적으로 초기화되고, 그 다음으로, 역전파(Backpropagation)를 통해 훈련 동안에 반복적으로 업데이트된다. 그 후에, 오토인코더의 디코더 스테이지는 h를 과 동일한 형상의 재구성 에 매핑한다:
여기서, 디코더에 대한 , 및 은 인코더에 대한 대응하는 , 및 에 비상관될 수 있다.
변이형 오토인코더 모델은 잠재 변수의 분포에 관한 강력한 가정을 행한다. 이들은 잠재 표현 학습을 위한 변이형 접근법이고, 이 변이형 접근법은 추가적인 손실 컴포넌트, 및 확률론적 경도 변이형 베이즈(SGVB : Stochastic Gradient Variational Bayes) 추정기로 칭해지는 훈련 알고리즘에 대한 특정 추정기로 귀착된다. 데이터가 지향된 그래픽 모델 에 의해 생성되고, 인코더는, 가 인코더(인식 모델) 및 디코더(생성형 모델)의 파라미터를 각각 나타내는 사후 분포(posterior distribution) 에 대한 근사화 를 학습하는 것으로 가정된다. VAE의 잠재 벡터의 확률 분포는 전형적으로, 표준 오토인코더보다 훨씬 더 근접한 훈련 데이터의 확률 분포와 정합한다. VAE의 목적(objective)은 다음의 형태를 가진다:
여기서, 은 쿨백-라이블러 발산(kullback-Leibler divergence)을 의미한다. 잠재 변수 상의 프라이어(prior)는 통상적으로, 중심 등방성 다변량 가우시안(centered isotropic multivariate Gaussian) 인 것으로 설정된다. 보편적으로, 변이형 및 우도(likelihood) 분포의 형상은 이들이 인자화된 가우시안이 되도록 선택된다:
여기서, 는 인코더 출력인 반면, 은 디코더 출력이다.
인공 신경망 분야 및 특히 컨볼루션 신경망에서의 최근의 진전은 신경망 기반 기술을 이미지 및 비디오 압축의 태스크에 적용하는 연구자의 관심을 가능하게 한다. 예를 들어, 변이형 오토인코더에 기초한 네트워크를 이용하는 종단-대-종단 최적화된 이미지 압축이 제안되었다. 따라서, 데이터 압축은 공학에서의 기본적이고 양호하게-연구된 문제로서 간주되고, 최소 엔트로피를 갖는 주어진 이산 데이터 앙상블(ensemble)에 대한 코드를 설계하는 목표로 보편적으로 공식화된다. 솔루션은 데이터의 확률적 구조의 지식에 과도하게 의존하고, 따라서, 문제는 확률적 소스 모델링(probabilistic source modeling)에 밀접하게 관련된다. 그러나, 모든 실제적인 코드는 유한한 엔트로피를 가져야 하므로, (이미지 픽셀 세기의 벡터와 같은) 연속값 데이터는 이산 값의 유한 세트(finite set)로 양자화되어야 하고, 이는 오차를 도입한다. 손실성 압축 문제로서 알려져 있는 이 맥락에서, 당업자는 2개의 경쟁하는 비용: 이산화된 표현의 엔트로피(레이트) 및 양자화로부터 생기는 오차(왜곡)를 절충해야 한다. 제한된-용량 채널 상에서의 데이터 저장 또는 송신과 같은 상이한 압축 애플리케이션은 상이한 레이트-왜곡 절충을 요구한다. 레이트 및 왜곡의 공동 최적화는 어렵다. 추가의 제약이 없다면, 고차원 공간에서의 최적의 양자화의 일반적인 문제는 다루기 어렵다. 이러한 이유로, 대부분의 현존하는 이미지 압축 방법은 데이터 벡터를 적당한 연속값 표현으로 선형적으로 변환하고, 그 엘리먼트를 독립적으로 양자화하고, 그 다음으로, 무손실성 엔트로피 코드를 이용하여 결과적인 이산 표현을 인코딩함으로써 동작한다. 이 방식은 변환의 중심 역할로 인해 변환 코딩으로 칭해진다. 예를 들어, JPEG는 픽셀의 블록에 대해 이산 코사인 변환(discrete cosine transform)을 이용하고, JPEG 2000은 멀티-스케일 직교 웨이블렛 분해(multi-scale orthogonal wavelet decomposition)를 이용한다. 전형적으로, 변환 코딩 방법의 3개의 컴포넌트인, 변환, 양자화기, 및 엔트로피 코드는 (종종 수동적 파라미터 조절을 통해) 별도로 최적화된다. HEVC, VVC, 및 EVC와 같은 최신 비디오 압축 표준은 또한, 예측 후에 잔차 신호를 코딩하기 위하여 변환된 표현을 이용한다. 이산 코사인 및 사인 변환(DCT, DST) 뿐만 아니라, 저주파수 비-분리가능 수동적 최적화된 변환(LFNST : low frequency non-separable manually optimized transform)과 같은 몇몇 변환이 그 목적을 위하여 이용된다.
변이형 이미지 압축(variational image compression)
J. Balle, L. Valero Laparra, 및 E. P. Simoncelli (2015). "일반화된 정규화 변환을 이용하는 이미지의 밀도 모델링(Density Modeling of Images Using a Generalized Normalization Transformation)". 표현 학습에 대한 4차 회의에서 제시되는 arXiv e-prints(이하에서, "Balle"로서 지칭됨)에서, 저자는 비선형 변환에 기초한 이미지 압축 모델의 종단-대-종단 최적화를 위한 프레임워크를 제안하였다. 이전에, 저자는 선형-비선형 블록 변환으로 구성되는 모델이 지각적 왜곡의 척도(measure)를 최적화하였고, 평균 제곱 오차(MSE : mean squared error)에 대하여 최적화되는 모델에 비해 시각적으로 우수한 성능을 나타내었다는 것을 입증하였다. 여기서, 저자는 MSE에 대하여 최적화하지만, 선형 컨볼루션 및 비선형성의 캐스케이드(cascade)로부터 구축되는 더 유연성 있는 변환을 이용한다. 구체적으로, 저자는 생물학적 시각계에서의 뉴런의 모델에 의해 영감을 받는 일반화된 분열적 정규화(GDN : generalized divisive normalization) 공동 비선형성을 이용하고, 이미지 밀도를 가우시안화할 시에 효과적인 것을 증명하였다. 이 캐스케이딩된 변환은 균일한 스칼라 양자화(즉, 각각의 엘리먼트가 최근접 정수로 라운딩됨)에 선행하고, 이것은 원본 이미지 공간 상에서의 벡터 양자화의 파라미터 형태를 효과적으로 구현한다. 압축된 이미지는 근사화 파라미터 비선형 역 변환을 이용하여 이 양자화된 값으로부터 재구성된다.
레이트-왜곡 곡선을 따르는 임의의 희망된 포인트에 대하여, 분석 및 합성 변환의 둘 모두의 파라미터는 확률론적 경도 하강(stochastic gradient descent)을 이용하여 공동으로 최적화된다. (거의 모든 곳에서 제로 경도를 생성하는) 양자화의 존재 시에 이것을 달성하기 위하여, 저자는 자화 단계를 추가적 균일한 잡음으로 대체하는, 확률 모델의 연속적 이완(continuous relaxation)에 기초한 프록시 손실 함수(proxy loss function)를 이용한다. 이완된 레이트-왜곡 최적화 문제는 생성형 이미지 모델, 특히, 변이형 오토인코더에 맞추기 위하여 이용되는 것들과 일부 유사성을 지니고 있지만, 그것이 모두 레이트-왜곡 곡선을 따라 이산적 문제를 근사화한다는 것을 보장하기 위하여 저자가 부과하는 제약에 있어서 상이하다. 최종적으로, 미분 또는 이산 엔트로피 추정치를 보고하는 것이 아니라, 저자는 엔트로피 코드를 구현하고, 실제적인 비트 레이트를 이용하여 성능을 보고하고, 따라서, 완전한 손실성 압축 방법으로서의 솔루션의 실현가능성을 입증한다.
J. Balle에서, 변이형 오토인코더에 기초한 이미지 압축을 위한 종단-대-종단 훈련가능한 모델이 설명되어 있다. 모델은 잠재 표현에서의 공간적 불일치를 효과적으로 캡처하기 위하여 하이퍼프라이어(hyperprior)를 통합한다. 이 하이퍼프라이어는 디코딩 측으로 또한 송신되는 부가 정보, 가상적으로 모든 최신 이미지 코덱에 보편적이지만, ANN을 이용하는 이미지 압축에서 주로 비탐구된 개념에 관련된다. 현존하는 오토인코더 압축 방법과 달리, 이 모델은 기초적인 오토인코더와 공동으로 복잡한 프라이어를 훈련시킨다. 저자는 이 모델이 대중적인 MS-SSIM 인덱스를 이용하여 시각적 품질을 측정할 때에 최신 이미지 압축을 초래하고, 제곱 오차(PSNR)에 기초한 더 전통적인 메 트릭을 이용하여 평가될 때에 게시된 ANN-기반 방법을 능가하는 레이트-왜곡 성능을 산출한다는 것을 입증한다.
도 3은 하이퍼프라이어 모델을 포함하는 네트워크 아키텍처를 도시한다. 좌측 측부(ga, gs)는 이미지 오토인코더 아키텍처를 도시하고, 우측 측부(ha, hs)는 하이퍼프라이어를 구현하는 오토인코더에 대응한다. 인자화된-프라이어 모델은 분석 및 합성 변환 ga 및 gs에 대한 동일한 아키텍처를 이용한다. Q는 양자화를 나타내고, AE, AD는 각각 산술 인코더 및 산술 디코더를 나타낸다. 인코더는 입력 이미지 x가 ga를 거치게 하여, 공간적으로 변동되는 표준 편차를 갖는 응답 y(잠재 표현)를 산출한다. 인코딩 ga는 서브샘플링을 갖는 복수의 컨볼루션 계층, 및 활성화 함수로서, 일반화된 분열적 정규화(GDN)를 포함한다.
응답은 ha로 공급되어, z에서의 표준 편차의 분포를 요약한다. z은 그 다음으로, 부가 정보로서 양자화되고, 압축되고, 송신된다. 인코더는 그 다음으로, 산술 코딩(AE : arithmetic coding)을 위한 확률 값(또는 주파수 값)을 획득하기 위하여 이용되는 표준 편차의 공간적 분포인 을 추정하기 위하여 양자화된 벡터 를 이용하고, 양자화된 이미지 표현 (또는 잠재 표현)을 압축하고 송신하기 위하여 그것을 이용한다. 디코더는 먼저, 압축된 신호로부터 을 복원한다. 디코더는 그 다음으로 을 획득하기 위하여 hs를 이용하고, 이것은 을 마찬가지로 성공적으로 복원하기 위하여 디코더에 올바른 확률 추정치를 제공한다. 디코더는 그 다음으로, 재구성된 이미지를 획득하기 위하여 을 gs로 공급한다.
추가의 작업에서, 하이퍼프라이어에 의한 확률 모델링은 예컨대, PixelCNN++ 아키텍처에 기초하여 자기회귀 모델(autoregressive model)을 도입함으로써 추가로 개선되었고, 이것은 예컨대, L. Zhou, Zh. Sun, X. Wu, J. Wu, 어텐션 메커니즘에 의한 종단-대-종단 최적화된 이미지 압축(End-to-end Optimized Image Compression with Attention Mechanism), CVPR 2019(이하에서 "Zhou"로서 지칭됨)의 도 2 상에서 예시되는 바와 같이, 디코딩되어야 할 추가의 심볼의 더 양호한 확률 추정을 위한 잠재 공간의 이미지 디코딩된 심볼의 컨텍스트(context)를 사용하는 것을 허용한다.
머신 태스크에 대한 클라우드 솔루션
머신에 대한 비디오 코딩(VCM : Video Coding for Machine)은 요즘 대중적인 또 다른 컴퓨터 사이언스 방향이다. 이 접근법 배후의 주요 사상은 객체 세그먼트화, 검출, 및 인식과 같은 컴퓨터 비전(CV : computer vision) 알고리즘에 의한 추가의 프로세싱으로 타깃화된 이미지 또는 비디오 정보의 코딩된 표현을 송신하는 것이다. 인간 지각으로 타깃화된 전통적인 이미지 및 비디오 코딩과 대조적으로, 품질 특성은 컴퓨터 비전 태스크의 성능, 예컨대, 재구성된 품질이 아니라, 객체 검출 정확도이다. 이것은 도 4에서 예시되어 있다.
머신을 위한 비디오 코딩은 또한, 협력적 지능(collaborative intelligence)으로서 지칭되고, 그것은 모바일-클라우드 기반구조에 걸친 심층 신경망(deep neural network)의 효율적인 전개를 위한 비교적 새로운 패러다임이다. 모바일과 클라우드 사이에서 네트워크를 분할함으로써, 시스템의 전체적인 에너지 및/또는 레이턴시(latency)가 최소화되도록 연산 작업부하를 분포시키는 것이 가능하다. 일반적으로, 협력적 지능은 신경망의 프로세싱이 2개 이상의 상이한 연산 노드; 예를 들어, 디바이스, 그러나 일반적으로, 임의의 기능적으로 정의된 노드 사이에서 분포되는 패러다임이다. 여기서, 용어 "노드"는 전술한 신경망 노드를 지칭하지 않는다. 오히려, 여기에서의 (연산) 노드는 신경망의 일부를 구현하는 (물리적으로 또는 적어도 논리적으로) 별도의 디바이스/모듈을 지칭한다. 이러한 디바이스는 상이한 서버, 상이한 최종 사용자 디바이스, 서버 및/또는 사용자 디바이스 및/또는 클라우드 및/또는 프로세서의 혼합 등일 수 있다. 다시 말해서, 연산 노드는, 동일한 신경망에 속하며, 신경망 내에서/신경망을 위하여 코딩된 데이터를 전달하기 위하여 서로 통신하는 노드로서 간주될 수 있다. 예를 들어, 복잡한 연산을 수행할 수 있기 위하여, 하나 이상의 계층은 제1 디바이스 상에서 실행될 수 있고, 하나 이상의 계층은 또 다른 디바이스에서 실행될 수 있다. 그러나, 분포는 또한, 더 미세할 수 있고, 단일 계층은 복수의 디바이스 상에서 실행될 수 있다. 이 개시내용에서, 용어 "복수"는 2개 이상을 지칭한다. 일부 현존하는 솔루션에서, 신경망 기능성의 일부는 디바이스(사용자 디바이스 에지 디바이스 등) 또는 복수의 이러한 디바이스에서 실행되고, 그 다음으로, 출력(특징 맵)은 클라우드로 전달된다. 클라우드는 신경망의 일부를 동작시키는 디바이스의 외부에 위치되는 프로세싱 또는 연산 시스템의 집합이다. 협력적 지능의 관념은 마찬가지로 모델 훈련으로 확장되었다. 이 경우에, 데이터는 2개의 통로: 훈련 시의 역전파 동안에 클라우드로부터 모바일로, 그리고 훈련 뿐만 아니라 추론 시의 포워드 패스(forward pass) 동안에 모바일로부터 클라우드로 유동한다.
일부 작업은 심층 특징(deep feature)을 인코딩하고, 그 다음으로, 이들로부터 입력 이미지를 재구성함으로써 시맨틱 이미지 압축(semantic image compression)을 제시하였다. 균일한 양자화에 기초한 압축이 도시되었고, H.264로부터의 컨텍스트-기반 적응적 산술 코딩(CABAC : context-based adaptive arithmetic coding)이 뒤따른다. 일부 시나리오에서는, 압축된 신경 이미지 데이터를 클라우드로 전송하는 것이 아니라, 은닉된 계층의 출력(심층 특징 맵)을 모바일 파트로부터 클라우드로 송신하고, 재구성된 이미지를 이용하여 객체 검출을 수행하는 것이 더 효율적일 수 있다. 특징 맵의 효율적인 압축은 인간 지각 및 머신 비전의 둘 모두를 위한 이미지 및 비디오 압축 및 재구성에 이익이 된다. 엔트로피 코딩 방법, 예컨대, 산술 코딩은 심층 특징(즉, 특징 맵)의 압축에 대한 대중적인 접근법이다.
요즘, 비디오 컨텐츠는 805 초과의 인터넷 트래픽에 기여하고, 백분율은 훨씬 더 증가할 것으로 예상된다. 그러므로, 효율적인 비디오 압축 시스템을 구축하고, 주어진 대역폭 예산에서 더 높은 품질의 프레임을 생성하는 것이 중요하다. 추가적으로, 비디오 객체 검출 또는 비디오 객체 추적과 같은 대부분의 비디오 관련된 컴퓨터 비전 태스크는 압축된 비디오의 품질에 민감하고, 효율적인 비디오 압축은 다른 컴퓨터 비전 태스크에 대한 이익을 가져올 수 있다. 한편, 비디오 압축에서의 기법은 또한 액션 인식 및 모델 압축을 위하여 유용하다. 그러나, 과거 몇 십년에는, 위에서 언급된 바와 같이, 비디오 시퀀스에서의 중복성을 감소시키기 위하여, 비디오 압축 알고리즘이 핸드-크래프트된 모듈(hand-crafted module), 예컨대, 블록 기반 모션 추정 및 이산 코사인 변환(DCT : Discrete Cosine Transform)에 의존한다. 각각의 모듈이 양호하게 설계되지만, 전체 압축 시스템은 종단-대-종단 최적화되지 않는다. 전체 압축 시스템을 공동으로 최적화함으로써 비디오 압축 성능을 추가로 개선시키는 것이 바람직하다.
종단-대-종단 이미지 또는 비디오 압축
최근, 이미지 압축을 위한 심층 신경망(DNN : deep neural network) 기반 오토인코더는 JPEG, JPEG2000, 또는 BPG와 같은 전통적인 이미지 코덱보다 필적하는 또는 심지어 더 양호한 성능을 달성하였다. 하나의 가능한 설명은, DNN 기반 이미지 압축 모델이 전통적인 접근법에서 이용되지 않는 대규모 종단-대-종단 훈련 및 고도로 비-선형 변환을 활용할 수 있다는 것이다. 그러나, 비디오 압축을 위한 종단-대-종단 학습 시스템을 구축하기 위하여 이 기법을 직접적으로 적용하는 것은 사소하지 않다. 첫째, 비디오 압축을 위하여 맞춤화된 모션 정보를 어떻게 생성하고 압축할 것인지를 학습하는 것이 공개된 문제로 남아 있다. 비디오 압축 방법은 비디오 시퀀스에서의 시간적 중복성을 감소시키기 위하여 모션 정보에 과도하게 의존한다. 간단한 솔루션은 모션 정보를 나타내기 위하여 학습 기반 광학 흐름을 이용하는 것이다. 그러나, 현재의 학습 기반 광학 흐름 접근법은 흐름 필드를 가능한 한 정확하게 생성하는 것을 목표로 하고 있다. 정밀한 광학 흐름은 종종, 특정한 비디오 태스크에 대하여 최적이 아니다. 추가적으로, 광학 흐름의 데이터 용량은 전통적인 압축 시스템에서의 모션 정보와 비교할 때에 상당히 증가하고, 광학 흐름 값을 압축하기 위하여 현존하는 압축 접근법을 직접적으로 적용하는 것은 모션 정보를 저장하기 위하여 요구되는 비트의 수를 상당히 증가시킬 것이다. 둘째, 잔차 및 모션 정보의 둘 모두에 대한 레이트-왜곡 기반 목적을 최소화함으로써 DNN 기반 비디오 압축 시스템을 어떻게 구축할 것인지는 불명확하다. 레이트-왜곡 최적화(RDO : rate-distortion optimization)는 압축을 위한 비트의 수(또는 비트 레이트)가 주어질 때, 더 높은 품질의 재구성된 프레임(즉, 더 적은 왜곡)을 달성하는 것을 목표로 한다. RDO는 비디오 압축 성능을 위하여 중요하다. 학습 기반 압축 시스템을 위한 종단-대-종단 훈련의 파워(power)를 활용하기 위하여, RDO 전략은 전체 시스템을 최적화하도록 요구된다.
Guo Lu, Wanli Ouyang, Dong Xu, Xiaoyun Zhang, Chunlei Cai, Zhiyong Gao; "DVC: 종단-대-종단 심층 비디오 압축 프레임워크(An End-to-end Deep Video Compression Framework)". Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2019, pp. 11006-11015에서, 저자는 모션 추정, 모션 압축, 잔차 코딩을 공동으로 학습하는 종단-대-종단 심층 비디오 압축(DVC : deep video compression) 모델을 제안하였다.
이러한 인코더는 도 5에서 예시되어 있다. 특히, 도 5는 종단-대-종단 훈련가능한 비디오 압축 프레임워크의 전체적인 구조를 도시한다. 모션 정보를 압축하기 위하여, CNN은 광학 흐름을 더 양호한 압축을 위해 적당한 대응하는 표현으로 변환하도록 설계되었다. 구체적으로, 오토-인코더 스타일 네트워크는 광학 흐름을 압축하기 위하여 이용된다. 모션 벡터(MV : motion vector) 압축 네트워크가 도 6에서 도시되어 있다. 네트워크 아키텍처는 도 3의 ga/gs와 다소 유사하다. 특히, 광학 흐름은 GDN 및 IGDN을 포함하는 일련의 컨볼루션 동작 및 비선형 변환으로 공급된다. 2인 마지막 디컨볼루션 계층을 제외하고는, 컨볼루션(디컨볼루션(deconvolution))을 위한 출력 채널의 수는 128이다. M × N × 2의 크기를 갖는 광학 흐름이 주어지면, MV 인코더는 M/16×N/16×128의 크기를 갖는 모션 표현을 생성할 것이다. 그 다음으로, 모션 표현은 양자화되고, 엔트로피 코딩되고, 비트스트림으로 전송된다. MV 디코더는 양자화된 표현을 수신하고, MV 인코더를 이용하여 모션 정보를 재구성한다.
도 7은 본 개시내용에 따라 개선될 수 있는 당해 기술의 오토-인코더 및 하이퍼-프라이어 컴포넌트를 포함하는 특정한 학습된 이미지 압축 구성을 예시하는 블록도이다. 압축되어야 할 입력 이미지는 의 크기를 갖는 3D 텐서로서 표현되고, 여기서, 는 각각 이미지의 높이 및 폭(차원)이고, 은 컴포넌트(예를 들어, 루마 컴포넌트(luma component) 및 2개의 크로마 컴포넌트(chroma component))의 수이다. 입력 이미지는 인코더(71)로 통과하게 된다. 인코더는 다수의 컨볼루션 및 비-선형 변환을 적용함으로써 입력 이미지를 다운-샘플링하고, 잠재 텐서 를 생성한다. 심층 학습의 맥락에서, 용어 "다운-샘플링" 및 "업-샘플링"은 고전적인 의미에서의 리-샘플링(re-sampling)을 지칭하는 것이 아니라, 텐서의 차원의 크기를 변경하기 위한 보편적인 용어인 것이 주목된다. 인코더(71)에 의해 출력되는 잠재 텐서 는 잠재 공간에서의 이미지를 나타내고, 의 크기를 가지고, 여기서, 는 인코더(71)의 다운-샘플링 인자이고, 은 채널의 수(예를 들어, 입력 이미지를 나타내는 텐서의 변환에 관여되는 신경망 계층의 수)이다.
잠재 텐서 는 하이퍼-잠재 텐서(hyper-latent tensor) 로의 컨볼루션 및 비-선형 변환에 의하여 하이퍼-인코더(72)에 의해 추가로 다운-샘플링된다. 하이퍼-잠재 텐서 는 크기 을 가지고, 여기서, 는 하이퍼-인코더(72)의 다운-샘플링 인자이다.
하이퍼-잠재 텐서 는 양자화된 하이퍼-잠재 텐서 을 획득하기 위하여 블록 Q에 의해 양자화된다. 양자화된 하이퍼-잠재 텐서 의 값의 통계적 성질은 인자화된 엔트로피 모델에 의하여 추정된다. 산술 인코더(AE)는 텐서 의 비트스트림 표현을 생성하기 위하여 이 통계적 성질을 이용한다. 텐서 의 모든 엘리먼트는 자기회귀 프로세스의 필요성 없이 비트스트림 내로 기록된다.
인자화된 엔트로피 모델은 파라미터가 디코더 측 상에서 이용가능한 코드북(codebook)으로서 작동한다. 산술-디코더(AD : arithmetic-decoder)는 인자화된 엔트로피 모델을 이용함으로써 비트스트림으로 하이퍼-잠재 텐서 을 복원한다. 복원된 하이퍼-잠재 텐서 은 다수의 컨볼루션 동작 및 비-선형 변환을 적용함으로써 하이퍼-디코더(73)에 의해 업-샘플링된다. 업-샘플링되는 복원된 하이퍼-잠재 텐서는 에 의해 나타내어진다. 양자화된 잠재 텐서 의 엔트로피는 업-샘플링되는 복원된 하이퍼-잠재 텐서 에 기초하여 자기회귀적으로 추정된다. 이와 같이 획득된 자기회귀 엔트로피 모델은 양자화된 잠재 텐서 의 통계적 성질을 추정하기 위하여 이용된다.
산술 인코더(AE)는 양자화된 잠재 텐서 의 비트스트림 표현을 생성하기 위하여 이 추정된 통계적 성질을 이용한다. 다시 말해서, 오토-인코더 컴포넌트의 산술 인코더(AE)는 하이퍼-프라이어 컴포넌트에 의해 제공되는 부가 정보에 기초한 엔트로피 인코딩에 의해 잠재 공간에서의 이미지 정보를 압축한다. 잠재 텐서 는 자기회귀 엔트로피 모델에 의하여, 수신기 측 상의 산술 디코더(AD)에 의해 비트스트림으로부터 복원된다. 복원된 잠재 텐서 는 재구성된 이미지의 텐서 표현을 획득하기 위하여 다수의 컨볼루션 동작 및 비-선형 변환을 적용함으로써 디코더(74)에 의해 업-샘플링된다.
전술한 신경망은 (예를 들어, 인코딩 및 디코딩 목적을 위하여) 도 7에서 도시된 구성에서 구현될 수 있다.
트랜스포머
최근, "트랜스포머"로 칭해지는 새로운 종류의 신경망이 도입되었다. 트랜스포머는 순환 또는 컨볼루션 신경망을 포함하는 것이 아니라 셀프-어텐션에 의존한다. 변환은 또한, 예를 들어, 도 5 및 도 7에서 도시된 구성에서 구현될 수 있다. 특히, 변환은 순환 또는 컨볼루션 신경망과 조합될 수 있다.
도 8은 당해 기술의 트랜스포머(800)의 예를 예시한다. 트랜스포머(800)는 신경 계층(810)(트랜스포머 계층)을 포함한다. 트랜스포머(800)는 인코더 신경 계층 및 디코더 신경 계층을 포함하는 인코더-디코더 아키텍처를 포함할 수 있다. 대안적으로, 트랜스포머(800)는 신경 계층의 인코더 스택(stack)만을 포함할 수 있다. 입력 데이터는 트랜스포머로 입력되고, 출력 데이터가 출력된다. 예를 들어, 트랜스포머(800)는 이미지 프로세싱을 위하여 구성되고, 강화된 이미지를 출력할 수 있다. 입력 데이터는 예를 들어, 이미지의 패치(patch) 또는 문장의 단어를 포함할 수 있다. 예를 들어, 토큰화기(tokenizer)는 이미지로부터의 패치 또는 프로세싱되어야 할 문장으로부터의 단어의 형태로 토큰(token)을 생성한다. 이 토큰은 일부 임베딩 알고리즘(embedding algorithm)에 의해 (연속값) 임베딩으로 변환될 수 있다. 도 8에서 도시된 예에 따르면, 선형 투영 계층(820)은 입력 패치를, (잠재 공간에서) 프로세싱되어야 할 객체의 부분의 텐서 표현(임베딩)으로 변환한다. 신호 입력의 이러한 텐서 표현은 트랜스포머(800)에 의해 프로세싱된다. 포지션 인코딩 계층(positional encoding layer)(830)의 제공은 서로에 대한 프로세싱되어야 할 객체(예를 들어, 이미지 또는 문장)의 부분의 포지션, 예를 들어, 서로에 대한 이미지의 패치 또는 문장의 단어의 포지션에 대한 정보를 제공한다. 포지션 인코딩을 위한 정현 함수(sinusoidal function)가 이용될 수 있다.
신경망(810) 중의 최종적인 신경망은 선형 후방 투영 계층(840)에 의해 객체 공간(예를 들어, 이미지 또는 문장 공간)으로 다시 변환되는 잠재 공간 내의 출력 데이터 텐서를 출력한다.
신경 계층(트랜스포머 계층)(810)에 의한 프로세싱은 셀프-어텐션의 개념에 기초한다. 특정한 예에 따른 트랜스포머(800)의 신경 계층(810)의 세부사항이 도 9에서 도시되어 있다. 도 9의 좌측 측부는 복수의 인코더 신경 계층 중의 하나를 도시하고, 도 9의 우측 측부는 트랜스포머(800)의 복수의 디코더 신경 계층 중의 하나를 도시한다. 원칙적으로, 트랜스포머(800)는 인코더 스택(encoder stack) 및 디코더 스택(decoder stack)의 둘 모두, 또는 인코더 스택만을 포함할 수 있다. 트랜스포머(800)의 신경 계층(810) 각각은 멀티-헤드 셀프-어텐션 계층(multi-head self-attention layer) 및 (완전 접속된) 피드 포워드 신경망(feed forward neural network)을 포함한다. 셀프-어텐션 계층은 인코더 스택이 객체(예를 들어, 이미지의 패치 또는 문장의 단어)의 특정 부분을 인코딩할 때, 객체(예를 들어, 이미지의 패치 또는 단어)의 다른 부분을 주시하도록 인코더 스택을 돕는다. 셀프-어텐션 계층의 출력은 피드-포워드 신경망으로 공급된다. 디코더 스택은 또한, 그 컴포넌트, 및 이들 사이에서, 입력 데이터의 관련된 파트에 포커싱하도록 디코더 스택을 돕는 추가적인 "인코더-디코더" 어텐션 계층을 가진다. 각각의 포지션에서 프로세싱되어야 할 객체(예를 들어, 이미지의 패치 또는 문장의 단어)의 각각의 부분은 인코더 내의 그 자신의 경로를 통해 유동한다. 셀프-어텐션 계층 내의 이 경로 사이에는 종속성이 있다. 피드-포워드 계층은 이 종속성을 가지지 않지만, 그러므로, 다양한 경로가 피드-포워드 계층을 통해 유동하면서 병렬로 실행될 수 있다.
인코더 스택의 멀티-헤드 셀프-어텐션 계층에서는, 질의(Query) Q, 키(Key) K, 및 값 V 텐서 및 셀프-어텐션
이 연산되고, 여기서, 은 키 텐서의 차원을 나타내고, softmax 함수는 최종적인 어텐션 가중치를 확률 분포로서 제공한다.
각각의 인코더 및 디코더 계층 내의 각각의 서브-계층(셀프-어텐션 계층 및 피드 포워드 신경망)은 그 주위에서 잔차 접속을 가지고, 정규화 계층(도 9 참조)에 선행한다.
상부 인코더 계층의 출력은 어텐션 벡터 K 및 V의 세트로 변환된다. 이들은 그 "인코더-디코더 어텐션" 계층 내의 각각의 디코더 계층에 의해 이용되어야 한다. "인코더-디코더 어텐션" 계층이 이하의 개개의 계층으로부터 질의 행렬을 생성하고 인코더 스택(도 9 참조)의 출력으로부터 키 및 값 행렬을 취하는 것을 제외하고는, "인코더-디코더 어텐션" 계층은 인코더 스택의 멀티-헤드 셀프-어텐션 계층과 유사하게 동작한다.
디코더 스택은, 로짓(logit)을 출력하고, 최고 확률 출력을 생성하는 Softmax 계층에 선행하는 최종적인 선형 계층(완전 접속된 신경망)에 의해 객체(예를 들어, 이미지의 패치 또는 문장의 단어)의 부분으로 변환되는 플로트(float)의 벡터를 출력한다.
도 10은 도 8에서 도시된 트랜스포머(800)와 유사한 트랜스포머(1000)를 도시한다. 트랜스포머(1000)는 또한, 신경 계층(1010), 입력 이미지를 텐서 (잠재) 공간으로 투영하기 위한 선형 투영 계층(1020), 및 포지션 인코딩 계층(1030)을 포함한다. 그러나, 추가적으로, 위에서 설명된 입력 데이터에 속하는 것이 아니라 경도 하강 동안에 학습되는 벡터인 클래스 토큰(class token)이 이용된다. 본 기술에서의 용어는 일관적으로 고정되지는 않는다는 것이 주목된다. 예를 들어, 때때로, 트랜스포머(1000)에 의해 실제적으로 프로세싱되는 여분의 데이터는 용어 "토큰"에 의해 나타내어지고, 때때로, 그것은 용어 "임베딩"에 의해 나타내어진다. 클래스 토큰/임베딩은 분류 프로세스를 위하여 신경 계층(1010)을 통해 경로화된다. 클래스 토큰/임베딩은 훈련 국면에서 학습되고, 신경망 추론에서 고정된 상태로 유지되고, 즉, 클래스 토큰은 가변 입력을 나타내지 않는다. 멀티계층 지각(MLP : Multilayer Perceptron) 헤드(1040)는 프로세싱된 객체(예를 들어, 이미지)의 클래스(예를 들어, 인간)를 출력한다. 다시 말해서, 트랜스포머(1000)는 분류기로서 동작한다. 도 9에서 도시된 아키텍처는 트랜스포머(1000)에 의해 적어도 부분적으로 포함될 수 있다.
도 11은 도 8에서 도시된 트랜스포머(800)와 유사한 당해 기술의 트랜스포머(1100)의 또 다른 예를 도시한다. 트랜스포머(1100)는 또한, 신경 계층(1110), 입력 이미지를 텐서 (잠재) 공간으로 투영하기 위한 선형 투영 계층(1120), 및 포지션 인코딩 계층(1130)을 포함한다. 추가적으로, 2개의 여분의 토큰이 이용되고, 하나는 프로세싱되어야 할 이미지의 회전에 관련되는 정보를 나타내고, 다른 하나는 대조 학습(contrastive learning)에 관련되는 정보를 나타낸다. 회전 및 대조 토큰은 여분의 입력 데이터를 나타낸다. 회전 및 대조 토큰은 훈련 국면에서 학습되고, 신경망 추론에서 고정된 상태로 유지된다. 다시, 텐서 공간에서 트랜스포머(1100)에 의해 실제적으로 프로세싱되는 여분의 데이터는 "임베딩"으로 명명될 수 있다. 여분의 토큰/임베딩은 신경 계층(1110)을 통해, 이미지(그 패치)의 특정한 특징의 식별/판별을 위하여 이용되는 개개의 값을 출력하는 회전 MLP 헤드(1140) 및 대조 MLP 헤드(1150)로 각각 경로화된다. 도 9에서 도시된 아키텍처는 트랜스포머(1100)에 의해 적어도 부분적으로 포함될 수 있다.
위에서 설명된 당해 기술의 예시적인 트랜스포머의 더 많은 세부사항은 이하에서 발견될 수 있다:
어텐션은 당신이 필요로 하는 모든 것이다(Attention Is All You Need). Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin, https://arxiv.org/abs/1706.03762
BERT: 언어 이해를 위한 심층 양방향 트랜스포머의 사전-훈련(Pre-training of Deep Bidirectional Transformers for Language Understanding), Jacob Devlin Ming-Wei Chang Kenton Lee Kristina Toutanova, Google AI Language, https://arxiv.org/pdf/1810.04805.pdf/
이미지는 16X16 워드의 가치임(AN IMAGE IS WORTH 16X16 WORDS): 스케일에서의 이미지 인식을 위한 트랜스포머(TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE), Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov et al, Google Research, Brain Team, https://arxiv.org/pdf/2010.11929.pdf/
어텐션을 통한 훈련 데이터-효율적 이미지 변환 및 증류(Training data-efficient image transformers & distillation through attention), Hugo Touvron, Matthieu Cord, Matthijs Douze et al, Facebook AI, https://arxiv.org/pdf/2012.12877
이미지 트랜스포머에 대한 심층적 고찰(Going deeper with Image Transformers). Hugo Touvron, Matthieu Cord, Alexandre Sablayrolles et al, Facebook AI, https://arxiv.org/pdf/2103.17239
SiT: 자체-감독된 비전 트랜스포머(Self-supervised vision Transformer), Sara Atito, Muhammad Awais, Josef Kittler, IEEE, https://arxiv.org/abs/2104.03602
당해 기술의 전술한 트랜스포머는 객체가 얼마나 (많이) 프로세싱되어야 하는지, 또는 특정한 종류의 객체가 프로세싱되어야 한다는 것에 대한 정보를 이용하지 않는다. 본 개시내용은 당해 기술과 비교하여 트랜스포머의 개선된 사용을 제공한다. 본 명세서에서 제공되는 실시예에 따른 트랜스포머(1200)의 동작은 도 12에서 예시되어 있다. 트랜스포머(1200)의 아키텍처는 위에서 설명된 트랜스포머 중의 임의의 하나의 트랜스포머와 유사할 수 있다. 트랜스포머(1200)는 다수의 신경 계층(트랜스포머 계층)(1210), 입력 데이터 텐서(신호 입력의 텐서 표현)를 획득하기 위한 선형 투영 계층(1220), 및 객체의 부분 사이의 포지션 관계를 인코딩하기 위한 포지션 인코딩 계층(1230)을 포함한다. 선형 투영 계층(1240)은 신경 계층(1210) 중의 최종적인 신경 계층에 의해 출력되는 결과를 객체 공간으로 변환한다. 예를 들어, 단지 분류 태스크에 대한 다른 실시예에서는, 선형 투영 계층(1240)이 필요한 것이 아니라, (예를 들어, 클래스 출력을 제공하기 위한) 일부 MLP 헤드가 도 10 및 도 11을 참조하여 설명된 바와 같이 제공된다는 것이 주목된다. 이러한 (예를 들어, 분류) 헤드 및 선형 투영 계층(1240) 둘 모두가 제공될 수 있다는 것은 말할 필요도 없다. 도 12에서 도시된 실시예에서는, 이미지 프로세싱이 다루어진다. 다른 객체, 예를 들어, 문장 또는 오디오 신호의 프로세싱은 또한, 이 실시예 뿐만 아니라 이하에서 설명되는 다른 실시예에 의해 포괄된다는 것이 이해되어야 한다.
당해 기술과 반대로, 보조 입력은 트랜스포머 기반 신경망에 의해 객체를 프로세싱하기 위하여 이용되고, 여기서, 보조 입력은 객체를 프로세싱하는 것에 대한 정보, 및/또는 프로세싱되어야 하는 객체(예를 들어, 이미지, 텍스트, 또는 오디오 신호)의 성질에 대한 정보에 종속된다. 이 보조 입력은 트랜스포머 기반 신경망의 훈련 국면의 결과로서 고정되는 것이 아니라 현재 객체 자체에 관련된다는 점에서 가변적이다. 예를 들어, 보조 입력은, 객체에 대하여 생성되며, 객체를 어떻게 프로세싱할 것인지, 예를 들어, 객체를 어떻게 디코딩할 것인지에 대한 정보를 포함하는 비트스트림으로부터 획득될 수 있다.
적어도 하나의 보조 데이터 텐서는 입력 데이터 텐서에 적용되는 수학적 동작과 동일한 신경 계층에서의 수학적 동작에 의해 프로세싱될 수 있다. 특히, 동일한 가중치가 동일한 신경 계층 내의 적어도 하나의 보조 데이터 텐서 및 입력 데이터 텐서에 적용될 수 있다. 보조 데이터 텐서는 트랜스포머(1200)의 신경 계층(1210) 내에 포함되는 셀프-어텐션 계층(들)을 통해 입력 데이터 텐서의 프로세싱에 영향을 준다.
이미지 프로세싱의 맥락에서, 보조 입력의 예는 다음 중의 하나 이상을 포함한다:
컨텐츠, 컨텐츠의 클래스/유형 - 예를 들어, 스크린 컨텐츠, 또는 통신, 자연, 스포츠 등과 같은 컨텐츠;
품질 지시 파라미터 - 예를 들어, 코덱 품질 파라미터 또는 베타(beta);
신호 공간에서의 채널별 왜곡 메트릭 - 예를 들어, Y, U, V, 또는 R,G,B에 대하여, MSE, MSSIM, 또는 PSNR;
잠재 공간에서의 채널별 왜곡 메트릭 - 예를 들어, (DCT) 주파수 도메인에서의 더 높거나 더 낮은 왜곡;
밝기, 콘트라스트, 블러링, 웜니스, 샤프니스, 포화, 컬러 히스토그램, 케이드;
섀도잉, 휘도, 비네트 제어, 페인팅 스타일;
예를 들어, 포토샵(Photoshop), 인스타그램(Instagram) 등, 예를 들어, 연화(softening), 이상화(idealization), 노화 등으로서 스크롤바 제어(scrollbar control)를 갖는 사용자 애플리케이션에서 이용된 바와 같이, 불연속적으로 가변적인 필터 강도, (일부 최소 및 일부 최대 사이의) 연속적으로 가변적인 필터 강도;
인트라 예측 또는 인터 예측의 지시; 및
예를 들어, 심층 페이크 애플리케이션(deep fake application)에서와 같은, 객체 대체 애플리케이션을 위한 변환 레이트.
언어/텍스트 프로세싱의 맥락에서, 보조 입력에 대한 예는 다음 중의 하나 이상을 포함한다:
컨텐츠, 컨텐츠의 유형 - 예를 들어, 시, 소설, 공포물, 수사물(detective), 텍스트, 음성 등;
온도(softmax를 적용하기 전에, 최종적인 선형 계층에 의해 출력되는 로짓을 스케일링함으로써 예측의 무작위성을 제어하기 위하여 이용되는 신경망의 하이퍼-파라미터);
언어 - 예를 들어, 영어, 방언 등; 및
어펙션 - 예를 들어, 농담, 호전성, 드라마 등.
오디오 신호 프로세싱의 맥락에서, 보조 입력의 예는 다음 중의 하나 이상을 포함한다:
컨텐츠, 컨텐츠의 유형 - 예를 들어, 클래식, 록, 팝, 음성, 음악 등;
품질 지시 파라미터 - 예를 들어, 코덱 품질 파라미터;
신호 공간 내의 채널별 왜곡 메트릭;
임의의 잠재 공간에서의 채널별 왜곡 메트릭 - 예를 들어, 주파수 도메인;
등화기 설정;
음량; 및
변환 레이트 - 예를 들어, 스펙트럼 변경, 음성 변경 등.
보조 입력은 투영 유닛(1250)에 의해 하나 이상의 보조 데이터 텐서(보조 입력의 텐서 표현)로 변환된다. 투영 유닛(1250)은 적어도 하나의 보조 입력을 적어도 하나의 보조 데이터 텐서로 선형적으로 또는 비-선형적으로 변환하도록 구성될 수 있다. 투영 유닛(1250)은 변환을 수행하기 위한 신경망을 포함할 수 있다.
예를 들어, 보조 입력이 품질 파라미터 QP와 같은 스칼라(scalar)일 때, 보조 데이터 텐서는 A*QP + B에 의해 획득되고, 여기서, A 및 B는 신경망 파라미터로 구성되는 텐서이다. A 및 B는 트랜스포머 모델과 동일한 차원을 가지고, 트랜스포머 모델의 다른 파라미터와 같이 사전-훈련된다. 다른 예에서, 보조 데이터 텐서는 QP에 비-선형적으로 종속될 수 있다.
입력 데이터 텐서는 보조 입력에 의해 제공되는 정보를 이용하여 트랜스포머(1200)에 의해 프로세싱된다. 보조 데이터 텐서(들)는 프로세싱을 위하여 입력 데이터 텐서에 추가될 수 있거나 입력 데이터 텐서와 연접될 수 있다. 입력 데이터 텐서의 프로세싱에 관여되는 가중치 및 활성화 함수는 하나 이상의 보조 데이터 텐서에 종속될 수 있다. 보조 입력에 의해 제공되는 정보의 채용으로 인해, 트랜스포머(1200)에 의해 출력되는 결과는 예를 들어, 출력에 적용되는 일부 품질 메트릭의 측면에서 개선될 수 있다(예를 들어, 더 예리한 이미지, 콘트라스트가 더 풍부한 이미지, 단어의 더 정확한 번역, 잡음이 더 적은 오디오 신호 등).
본 명세서에서 제공되는 또 다른 실시예에 따른 트랜스포머(1300)의 동작은 도 13에서 예시되어 있다. 트랜스포머(1300)의 아키텍처는 도 12에서 도시된 트랜스포머(1200)와 유사할 수 있다. 트랜스포머(1300)는 다수의 신경 계층(트랜스포머 계층)(1310), 입력 데이터 텐서(신호 입력의 텐서 표현)를 획득하기 위한 선형 투영 계층(1320), 및 객체의 부분 사이의 포지션 관계를 인코딩하기 위한 포지션 인코딩 계층(1330)을 포함한다. 선형 투영 계층(1340)은 신경 계층(1310) 중의 최종적인 신경 계층에 의해 출력되는 결과를 객체 공간으로 변환한다.
보조 입력에 대한 전술한 예 중의 하나 이상이 이용될 수 있다. 보조 입력은 투영 유닛(1350)에 의해 하나 이상의 보조 데이터 텐서(보조 입력의 텐서 표현)로 변환된다. 투영 유닛(1350)은 적어도 하나의 보조 입력을 적어도 하나의 보조 데이터 텐서로 선형적으로 또는 비-선형적으로 변환하도록 구성될 수 있다. 투영 유닛(1350)은 변환을 수행하기 위한 신경망을 포함할 수 있다.입력 데이터 텐서는 보조 입력에 의해 제공되는 정보를 이용하여 트랜스포머(1300)에 의해 프로세싱된다. 그러나, 도 12를 참조하여 설명된 실시예와는 상이하게, 도 13에서 예시된 실시예에서는, 하나 이상의 보조 데이터 텐서가 초기 신경 계층이 아니라, 신경 계층(1310)의 일부 더 상위-레벨 계층에서 입력된다. 트랜스포머(1300)의 출력에 대한 보조 입력의 영향은 이에 따라, 유연하게 제어될 수 있다.
본 명세서에서 제공되는 또 다른 실시예에 따른 트랜스포머(1400)의 동작은 도 14에서 예시되어 있다. 트랜스포머(1400)의 아키텍처는 도 12에서 도시된 트랜스포머(1200)와 유사할 수 있다. 트랜스포머(1400)는 다수의 신경 계층(트랜스포머 계층)(1310), 입력 데이터 텐서(신호 입력의 텐서 표현)를 획득하기 위한 선형 투영 계층(1420), 및 객체의 부분 사이의 포지션 관계를 인코딩하기 위한 포지션 인코딩 계층(1430)을 포함한다. 선형 투영 계층(1440)은 신경 계층(1410) 중의 최종적인 신경 계층에 의해 출력되는 결과를 객체 공간으로 변환한다.
보조 입력에 대한 전술한 예 중의 하나 이상이 이용될 수 있다. 그러나, 도 12 및 도 14를 참조하여 설명된 실시예와는 상이하게, 이 실시예에서는, 보조 데이터 텐서(들)가 입력 데이터 텐서와 별도로 입력되는 것이 아니라, 하나 이상의 보조 데이터 텐서 및 입력 데이터 텐서의 혼합이 트랜스포머(1400) 내로 입력된다. 하나 이상의 보조 데이터 텐서는 투영 유닛(1450)에 의해 하나 이상의 보조 입력으로부터 획득된다. 투영 유닛(1450)은 적어도 하나의 보조 입력을 적어도 하나의 보조 데이터 텐서로 선형적으로 또는 비-선형적으로 변환하도록 구성될 수 있다. 투영 유닛(1450)은 변환을 수행하기 위한 신경망을 포함할 수 있다. 텐서의 혼합은 연접(concatenation)에 의해 획득될 수 있고, 혼합된 텐서는 트랜스포머(1400)의 신경 계층(1410) 내로 입력된다. 입력 데이터 텐서의 각각 또는 일부의 프로세싱은 이에 따라, 적어도 하나의 보조 데이터 텐서에 의해 개별적으로 영향받을 수 있다. 또한, 하나 이상의 신경 계층 내로 별도로 입력되는 입력 데이터 텐서 및 하나 이상의 보조 데이터 텐서가 아니라, 혼합된 텐서를 프로세싱하는 것이 더 용이할 수 있다. 하나 이상의 보조 데이터 텐서는 추가적으로 또는 대안적으로, 신경 계층(1410) 중의 하나의 신경 계층의 일부 출력과 혼합될 수 있다는 것이 주목된다.
실시예에 따른 현재 객체(예를 들어, 이미지 또는 문장 또는 오디오 신호)를 프로세싱하는 방법은 도 15의 순서도에서 도시되어 있다. 방법은 각각 도 12, 도 13, 및 도 14에서 도시된 트랜스포머(1200, 1300, 및 1400) 중의 하나에서 구현될 수 있다. 방법은 현재 객체를 나타내는 입력 데이터 텐서의 세트를 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 것(S152)을 포함한다. 추가로, 방법은 적어도 하나의 보조 데이터 텐서를 트랜스포머 기반 신경망의 신경 계층(적어도 하나의 보조 데이터 텐서가 입력되는 동일한 신경 계층, 또는 상이한 신경 계층 중의 어느 하나) 내로 입력하는 것(S154)을 포함하고, 여기서, 적어도 하나의 보조 데이터 텐서는 입력 데이터 텐서의 세트의 입력 데이터 텐서 각각과는 상이하고, 적어도 하나의 보조 입력을 나타낸다. 추가로, 방법은 출력 데이터 텐서의 세트를 획득하기 위하여 적어도 하나의 보조 데이터 텐서를 이용하여 트랜스포머 기반 신경망에 의해 입력 데이터 텐서의 세트를 프로세싱하는 것(S156)을 포함한다. 신경 계층 내로 입력되는 적어도 하나의 보조 데이터 텐서는 (보조 입력에 의해 제공되는) 현재 객체를 프로세싱하는 것에 대한 정보에 종속된다.
보조 입력에 대한 전술한 예 중의 하나 이상이 이용될 수 있다. 적어도 하나의 보조 데이터 텐서는 입력 데이터 텐서와는 별도로 신경 계층 내로 입력될 수 있거나(참조, 도 12 및 도 13에서 예시된 실시예), 이들 중의 적어도 일부와 혼합될 수 있다(참조, 도 14에서 예시된 실시예). 도 15에서 예시된 방법에 따른 객체는 신경망 추론 동안에 또는 신경망 훈련 동안에 프로세싱될 수 있다.
실시예에 따른 신경망 추론에 의해 현재 객체(예를 들어, 이미지 또는 문장 또는 오디오 신호)를 프로세싱하는 방법은 도 16의 순서도에서 도시되어 있다. 방법은 각각 도 12, 도 13, 및 도 14에서 도시된 트랜스포머(1200, 1300, 및 1400) 중의 하나에서 구현될 수 있다. 도 16에서 예시된 방법은 현재 객체를 나타내는 입력 데이터 텐서의 세트를 훈련된 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 것(S162)을 포함한다. 추가로, 방법은 적어도 하나의 보조 데이터 텐서를 훈련된 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 것(S164)을 포함하고, 여기서, 적어도 하나의 보조 데이터 텐서는 입력 데이터 텐서의 세트의 입력 데이터 텐서 각각과는 상이하고, 적어도 하나의 보조 입력을 나타낸다. 게다가, 이 방법은 출력 데이터 텐서의 세트를 획득하기 위하여 적어도 하나의 보조 데이터 텐서를 이용하여 훈련된 트랜스포머 기반 신경망에 의해 입력 데이터 텐서의 세트를 프로세싱하는 것(S166)을 포함한다. 신경 계층 내로 입력되는 적어도 하나의 보조 데이터 텐서는 (보조 입력에 의해 제공되는) 현재 객체의 성질에 대한 정보, 및 (보조 입력에 의해 제공되는) 현재 객체를 프로세싱하는 것에 대한 정보 중의 적어도 하나에 종속된다.
보조 입력에 대한 전술한 예 중의 하나 이상이 이용될 수 있다. 적어도 하나의 보조 데이터 텐서는 입력 데이터 텐서와는 별도로 신경 계층 내로 입려될 수 있거나(참조, 도 12 및 도 13에서 예시된 실시예), 이들 중의 적어도 일부와 혼합될 수 있다(참조, 도 14에서 예시된 실시예).
도 15 및 도 16에서 예시된 방법 중의 적어도 하나는 이미지를 인코딩하는 방법 또는 인코딩된 이미지를 디코딩하는 방법에 의해 포함될 수 있다. 도 15 및 도 16에서 예시된 방법 중의 적어도 하나는 이미지 강화 방법 또는 이미지를 오토-인코딩하는 방법에 의해 포함될 수 있다.
도 15 및 도 16에서 예시된 방법은, 이 방법의 단계를 수행하도록 구성되는 프로세싱 회로부를 포함하는 프로세싱 장치에서 구현될 수 있다. 특히, 도 15 및 도 16에서 예시된 방법은 도 17에서 예시된 바와 같은 프로세싱 장치(170)에서 구현될 수 있다. 프로세싱 장치(170)는 프로세싱 회로부(175)를 포함한다. 하나 이상의 프로세서(176)는 프로세싱 회로부(175)에 의해 포함된다. 하나 이상의 프로세서(176)는 비-일시적 컴퓨터-판독가능 저장 매체(177)와의 데이터 통신 연결로 결합된다. 비-일시적 컴퓨터-판독가능 저장 매체(177)는 하나 이상의 프로세서(176)에 의한 실행을 위한 프로그래밍을 저장하고, 여기서, 프로그래밍은, 하나 이상의 프로세서(176)에 의해 실행될 때, 각각 도 15 및 도 16을 참조하여 위에서 설명된 실시예에 따른 방법을 수행하도록 프로세싱 장치(170)를 구성한다.
프로세싱 장치(170)는 인코딩 또는 디코딩 디바이스에 의해 포함될 수 있다. 예를 들어, 프로세싱 장치(170)는 이미지(예를 들어, 스틸 이미지, 또는 비디오 시퀀스의 프레임)를 인코딩하기 위한 인코딩 디바이스, 또는 인코딩된 이미지(예를 들어, 스틸 이미지, 또는 비디오 시퀀스의 프레임)를 디코딩하기 위한 디코딩 디바이스에 의해 포함될 수 있다. 프로세싱 장치(170)는 이미지(예를 들어, 스틸 이미지, 또는 비디오 시퀀스의 프레임)를 코딩하도록 구성되는 오토-인코딩 디바이스에 의해 포함될 수 있다.
도 15 및 도 16에서 예시된 방법은 또한, 이하에서 설명되는 디바이스 및 시스템에서 구현될 수 있다. 프로세싱 장치(170)는 또한, 이하에서 설명되는 디바이스 및 시스템 내에 포함될 수 있다.
하드웨어 및 소프트웨어인 일부 예시적인 구현예
도 18은 이러한 본 출원의 기법, 특히, 트랜스포머 기반 신경망, 예를 들어, 도 12 내지 도 14 중의 임의의 것에서 예시된 바와 같은 트랜스포머 기반 신경망을 사용할 수 있는 예시적인 코딩 시스템, 예컨대, 비디오, 이미지, 오디오, 및/또는 다른 코딩 시스템(또는 줄여서 코딩 시스템)을 예시하는 개략적인 블록도이다. 비디오 코딩 시스템(10)의 비디오 인코더(20)(또는 줄여서 인코더(20)) 및 비디오 디코더(30)(또는 줄여서 디코더(30))는 본 출원에서 설명된 다양한 예에 따라 기법을 수행하도록 구성될 수 있는 디바이스의 예를 나타낸다. 예를 들어, 비디오 코딩 및 디코딩은 트랜스포머 기반 신경망, 예를 들어, 도 12 내지 도 14 중의 임의의 것에서 예시된 바와 같은 트랜스포머 기반 신경망, 그리고 임의적으로, 도 1 내지 도 6에서 도시된 것들과 같은 신경망을 채용할 수 있고, 이는 분산될 수 있고, 분산된 연산 노드(2개 이상) 사이에서 특징 맵을 전달하기 위하여 전술한 비트스트림 파싱 및/또는 비트스트림 생성을 적용할 수 있다.
도 18에서 도시된 바와 같이, 코딩 시스템(10)은 인코딩된 픽처 데이터(21)를, 예컨대, 인코딩된 픽처 데이터(13)를 디코딩하기 위한 목적지 디바이스(destination device)(14)에 제공하도록 구성된 출발지 디바이스(source device)(12)를 포함한다.
출발지 디바이스(12)는 인코더(20)를 포함하고, 추가적으로, 즉, 임의적으로, 픽처 소스(picture source)(16), 프리-프로세서(pre-processor)(또는 프리-프로세싱 유닛)(18), 예컨대, 픽처 프리-프로세서(18), 및 통신 인터페이스 또는 통신 유닛(22)을 포함할 수 있다.
픽처 소스(16)는 임의의 종류의 픽처 캡처 디바이스, 예를 들어, 실세계 픽처를 캡처하기 위한 카메라, 및/또는 임의의 종류의 픽처 생성 디바이스, 예를 들어, 컴퓨터 애니메이팅된 픽처를 생성하기 위한 컴퓨터-그래픽 프로세서, 또는 실세계 픽처, 컴퓨터 생성된 픽처(예컨대, 스크린 컨텐츠, 가상 현실(virtual reality)(VR) 픽처), 및/또는 그 임의의 조합(예컨대, 증강 현실(augmented reality)(AR) 픽처)을 획득하고 및/또는 제공하기 위한 임의의 종류의 다른 디바이스를 포함할 수 있거나 이러한 디바이스일 수 있다. 픽처 소스는 전술한 픽처 중의 임의의 것을 저장하는 임의의 종류의 메모리 또는 스토리지(storage)일 수 있다.
프리-프로세서(18) 및 프리-프로세싱 유닛(18)에 의해 수행된 프로세싱과 구분하여, 픽처 또는 픽처 데이터(17)는 또한, 원시 픽처(raw picture) 또는 원시 픽처 데이터(raw picture data)(17)로 지칭될 수 있다.
프리-프로세서(18)는 (원시) 픽처 데이터(17)를 수신하고, 프리-프로세싱된 픽처(19) 또는 프리-프로세싱된 픽처 데이터(19)를 획득하기 위하여 픽처 데이터(17)에 대해 프리-프로세싱을 수행하도록 구성된다. 프리-프로세서(18)에 의해 수행된 프리-프로세싱은 예컨대, 트리밍(trimming), (예컨대, RGB로부터 YCbCr로의) 컬러 포맷 변환, 컬러 정정(color correction), 또는 잡음-제거(de-noising)를 포함할 수 있다. 프리-프로세싱 유닛(18)은 임의적인 컴포넌트일 수 있다는 것이 이해될 수 있다. 프리-프로세싱은 또한, 존재 지시자 시그널링을 이용하는 신경망(예를 들어, 도 12 내지 도 14 중의 임의의 것에서 예시된 바와 같은 트랜스포머 기반 신경망, 및 임의적으로, 도 1 내지 도 7 중의 임의의 것에서 도시된 바와 같은 신경망)을 채용할 수 있다.
비디오 인코더(20)는 프리-프로세싱된 픽처 데이터(19)를 수신하고 인코딩된 픽처 데이터(21)를 제공하도록 구성된다.
출발지 디바이스(12)의 통신 인터페이스(22)는 인코딩된 픽처 데이터(21)를 수신하고, 저장 또는 직접적인 재구성을 위하여, 인코딩된 픽처 데이터(21)(또는 그 임의의 추가의 프로세싱된 버전(version))를 통신 채널(13) 상에서 또 다른 디바이스, 예컨대, 목적지 디바이스(14) 또는 임의의 다른 디바이스로 송신하도록 구성될 수 있다.
목적지 디바이스(14)는 디코더(30)(예컨대, 비디오 디코더(30))를 포함하고, 추가적으로, 즉, 임의적으로, 통신 인터페이스 또는 통신 유닛(28), 포스트-프로세서(post-processor)(32)(또는 포스트-프로세싱 유닛(32)), 및 디스플레이 디바이스(34)를 포함할 수 있다.
목적지 디바이스(14)의 통신 인터페이스(28)는 예컨대, 출발지 디바이스(12)로부터 직접적으로, 또는 임의의 다른 소스, 예컨대, 저장 디바이스, 예컨대, 인코딩된 픽처 데이터 저장 디바이스로부터 인코딩된 픽처 데이터(21)(또는 그 임의의 추가의 프로세싱된 버전)를 수신하고, 인코딩된 픽처 데이터(21)를 디코더(30)에 제공하도록 구성된다.
통신 인터페이스(22) 및 통신 인터페이스(28)는 출발지 디바이스(12)와 목적지 디바이스(14) 사이의 직접 통신 링크, 예컨대, 직접 유선 또는 무선 접속을 통해, 또는 임의의 종류의 네트워크, 예컨대, 유선 또는 무선 네트워크 또는 그 임의의 조합, 또는 임의의 종류의 사설 및 공공 네트워크, 또는 그 임의의 종류의 조합을 통해, 인코딩된 픽처 데이터(21) 또는 인코딩된 데이터(13)를 송신하거나 수신하도록 구성될 수 있다.
통신 인터페이스(22)는 예컨대, 인코딩된 픽처 데이터(21)를 적절한 포맷, 예컨대, 패킷(packet)로 패키징하고, 및/또는 통신 링크 또는 통신 네트워크 상에서의 송신을 위한 임의의 종류의 송신 인코딩 또는 프로세싱을 이용하여 인코딩된 픽처 데이터를 프로세싱하도록 구성될 수 있다.
통신 인터페이스(22)의 대응부를 형성하는 통신 인터페이스(28)는 예컨대, 송신된 데이터를 수신하고, 인코딩된 픽처 데이터(21)를 획득하기 위하여 임의의 종류의 대응하는 송신 디코딩 또는 프로세싱 및/또는 디-패키징(de-packaging)을 이용하여 송신 데이터를 프로세싱하도록 구성될 수 있다.
통신 인터페이스(22) 및 통신 인터페이스(28)의 둘 모두는 출발지 디바이스(12)로부터 목적지 디바이스(14)로 가리키는 도 18에서의 통신 채널(13)에 대한 화살표에 의해 지시된 바와 같은 단방향 통신 인터페이스, 또는 양방향 통신 인터페이스로서 구성될 수 있고, 통신 링크 및/또는 데이터 송신, 예컨대, 인코딩된 픽처 데이터 송신에 관련된 임의의 다른 정보를 확인응답(acknowledge)하고 교환하기 위하여, 예컨대, 메시지를 전송하고 수신하도록, 예컨대, 접속을 셋업(set up)하도록 구성될 수 있다. 디코더(30)는 인코딩된 픽처 데이터(21)를 수신하고 디코딩된 픽처 데이터(31) 또는 디코딩된 픽처(31)를 제공하도록 구성된다(예컨대, 도 12 내지 도 14 중의 임의의 것에서 예시된 바와 같은 트랜스포머 기반 신경망, 및 임의적으로, 도 1 내지 도 7에서 도시된 것 중의 하나 이상에 기초한 신경망을 채용함).
목적지 디바이스(14)의 포스트-프로세서(32)는 포스트-프로세싱된 픽처 데이터(33), 예컨대, 포스트-프로세싱된 픽처(33)를 획득하기 위하여, 디코딩된 픽처 데이터(31)(또는 재구성된 픽처 데이터로 칭해짐), 예컨대, 디코딩된 픽처(31)를 포스트-프로세싱하도록 구성된다. 포스트-프로세싱 유닛(32)에 의해 수행된 포스트-프로세싱은, 예컨대, (예컨대, YCbCr로부터 RGB로의) 컬러 포맷 변환, 컬러 정정, 트리밍, 또는 리-샘플링(re-sampling), 또는 예컨대, 디스플레이 디바이스(34)에 의한 디스플레이를 위하여, 예컨대, 디코딩된 픽처 데이터(31)를 준비하기 위한 임의의 다른 프로세싱을 포함할 수 있다.
목적지 디바이스(14)의 디스플레이 디바이스(34)는 픽처를 예컨대, 사용자 또는 뷰어(viewer)에게 디스플레이하기 위한 포스트-프로세싱된 픽처 데이터(33)를 수신하도록 구성된다. 디스플레이 디바이스(34)는 재구성된 픽처를 표현하기 위한 임의의 종류의 디스플레이, 예컨대, 통합된 또는 외부의 디스플레이 또는 모니터일 수 있거나 이러한 디스플레이 또는 모니터를 포함할 수 있다. 디스플레이는 예컨대, 액정 디스플레이(liquid crystal display)(LCD), 유기 발광 다이오드(organic light emitting diodes)(OLED) 디스플레이, 플라즈마 디스플레이, 프로젝터(projector), 마이크로 LED 디스플레이, 실리콘 상 액정(liquid crystal on silicon)(LCoS), 디지털 광 프로세서(digital light processor)(DLP), 또는 임의의 종류의 다른 디스플레이를 포함할 수 있다.
도 18은 출발지 디바이스(12) 및 목적지 디바이스(14)를 별도의 디바이스로서 도시하지만, 디바이스의 실시예는 또한, 둘 모두 또는 둘 모두의 기능성인, 출발지 디바이스(12) 또는 대응하는 기능성, 및 목적지 디바이스(14) 또는 대응하는 기능성을 포함할 수 있다. 이러한 실시예에서, 출발지 디바이스(12) 또는 대응하는 기능성, 및 목적지 디바이스(14) 또는 대응하는 기능성은 동일한 하드웨어 및/또는 소프트웨어를 이용하여, 또는 별도의 하드웨어 및/또는 소프트웨어 또는 그 임의의 조합에 의해 구현될 수 있다.
설명에 기초하여 통상의 기술자에게 분명한 바와 같이, 도 18에서 도시된 바와 같은 상이한 유닛의 기능성 또는 출발지 디바이스(12) 및/또는 목적지 디바이스(14) 내에서의 기능성의 존재 및 (정확한) 분할은 실제적인 디바이스 및 애플리케이션에 따라 변동될 수 있다.
인코더(20)(예컨대, 비디오 인코더(20)) 또는 디코더(30)(예컨대, 비디오 디코더(30)) 또는 인코더(20) 및 디코더(30)의 둘 모두는 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(digital signal processor)(DSP), 애플리케이션-특정 집적 회로(application-specific integrated circuit)(ASIC), 필드-프로그래밍가능 게이트 어레이(field-programmable gate array)(FPGA), 개별 로직, 하드웨어, 비디오 코딩 전용, 또는 그 임의의 조합과 같은 프로세싱 회로부를 통해 구현될 수 있다. 인코더(20)는 도 12 내지 도 14 중의 임의의 것에서 예시된 바와 같은 트랜스포머 기반 신경망, 및 임의적으로, 도 1 내지 도 6 중의 임의의 것 또는 그 일부에서 도시된 것과 같은 신경망을 포함하는 다양한 모듈을 구체화하기 위하여 프로세싱 회로부(46)를 통해 구현될 수 있다. 디코더(30)는 도 1 내지 도 7에 대하여 논의된 바와 같은 다양한 모듈 및/또는 본 명세서에서 설명된 임의의 다른 디코더 시스템 또는 서브시스템을 구체화하기 위하여 프로세싱 회로부(46)를 통해 구현될 수 있다. 프로세싱 회로부(46)는 본 명세서에서 제공된 방법을 포함하는 다양한 동작을 수행하도록 구성될 수 있다. 기법이 부분적으로 소프트웨어로 구현되는 경우에, 디바이스는 소프트웨어를 위한 명령을 적당한 비-일시적(non-transitory) 컴퓨터-판독가능 저장 매체 내에 저장할 수 있고, 이 개시내용의 기법을 수행하기 위하여 하나 이상의 프로세서를 이용하여 명령을 하드웨어로 실행할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30)의 어느 하나는 예를 들어, 도 19에서 도시된 바와 같이, 단일 디바이스 내의 조합된 인코더/디코더(CODEC)의 부분으로서 통합될 수 있다.
출발지 디바이스(12) 및 목적지 디바이스(14)는 임의의 종류의 핸드헬드(handheld) 또는 정지식 디바이스, 예컨대, 노트북 또는 랩톱 컴퓨터, 이동 전화, 스마트 폰, 태블릿 또는 태블릿 컴퓨터, 카메라, 데스크톱 컴퓨터, 셋톱 박스(set-top box), 텔레비전, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게이밍 콘솔(video gaming console), (컨텐츠 서비스 서버 또는 컨텐츠 전달 서버와 같은) 비디오 스트리밍 디바이스, 브로드캐스트 수신기 디바이스, 브로드캐스트 송신기 디바이스 등을 포함하는 광범위한 디바이스 중의 임의의 것을 포함할 수 있고, 오퍼레이팅 시스템(operating system)을 이용하지 않을 수 있거나 임의의 종류의 오퍼레이팅 시스템을 이용할 수 있다. 일부 경우에는, 출발지 디바이스(12) 및 목적지 디바이스(14)가 무선 통신을 위하여 구비될 수 있다. 이에 따라, 출발지 디바이스(12) 및 목적지 디바이스(14)는 무선 통신 디바이스일 수 있다.
일부 경우에, 도 18에서 예시된 비디오 코딩 시스템(10)은 단지 예이고, 본 출원의 기법은 인코딩 및 디코딩 디바이스 사이의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩 설정(예컨대, 비디오 인코딩 또는 비디오 디코딩)에 적용할 수 있다. 다른 예에서, 데이터는 로컬 메모리로부터 인출(retrieve)되고, 네트워크 상에서 스트리밍되는 등과 같다. 비디오 인코딩 디바이스는 데이터를 인코딩하고 데이터를 메모리에 저장할 수 있고, 및/또는 비디오 디코딩 디바이스는 메모리로부터 데이터를 인출하고 데이터를 디코딩할 수 있다. 일부 예에서, 인코딩 및 디코딩은, 서로 통신하지 않지만, 간단하게 데이터를 메모리로 인코딩하고 및/또는 메모리로부터 데이터를 인출하고 데이터를 디코딩하는 디바이스에 의해 수행된다.
도 20은 개시내용의 실시예에 따른 비디오 코딩 디바이스(2000)의 개략도이다. 비디오 코딩 디바이스(2000)는 본 명세서에서 설명된 바와 같은 개시된 실시예를 구현하기 위하여 적당하다. 실시예에서, 비디오 코딩 디바이스(2000)는 도 18의 비디오 디코더(30)와 같은 디코더, 또는 도 18의 비디오 인코더(20)와 같은 인코더일 수 있다.
비디오 코딩 디바이스(2000)는 데이터를 수신하기 위한 유입 포트(2010)(또는 입력 포트(2010)) 및 수신기 유닛(Rx)(2020); 데이터를 프로세싱하기 위한 프로세서, 로직 유닛, 또는 중앙 프로세싱 유닛(central processing unit)(CPU)(2030); 데이터를 송신하기 위한 송신기 유닛(Tx)(2040) 및 유출 포트(2050)(또는 출력 포트(2050)); 및 데이터를 저장하기 위한 메모리(2060)를 포함한다. 비디오 코딩 디바이스(2000)는 또한, 광학 또는 전기 신호의 유출 또는 유입을 위하여 유입 포트(2010), 수신기 유닛(2020), 송신기 유닛(2040), 및 유출 포트(2050)에 결합된 광학-대-전기(OE) 컴포넌트 및 전기-대-광학(EO) 컴포넌트를 포함할 수 있다.
프로세서(2030)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(2030)는 하나 이상의 CPU 칩, (예컨대, 멀티-코어 프로세서로서의) 코어, FPGA, ASIC, 및 DSP로서 구현될 수 있다. 프로세서(2030)는 유입 포트(2010), 수신기 유닛(2020), 송신기 유닛(2040), 유출 포트(2050), 및 메모리(2060)와 통신한다. 프로세서(2030)는 코딩 모듈(2070)을 포함한다. 코딩 모듈(2070)은 위에서 설명되는 개시된 실시예를 구현한다. 예를 들어, 코딩 모듈(2070)은 다양한 코딩 동작을 구현하거나, 프로세싱하거나, 준비하거나, 제공한다. 그러므로, 코딩 모듈(2070)의 포함은 비디오 코딩 디바이스(2000)의 기능성에 대한 상당한 개선을 제공하고, 상이한 상태로의 비디오 코딩 디바이스(2000)의 변환을 달성한다. 대안적으로, 코딩 모듈(2070)은 메모리(2060) 내에 저장되고 프로세서(2030)에 의해 실행된 명령으로서 구현된다.
메모리(2060)는 하나 이상의 디스크, 테이프 드라이브, 및 솔리드-스테이트 드라이브를 포함할 수 있고, 이러한 프로그램이 실행을 위하여 선택될 때에 프로그램을 저장하고 프로그램 실행 동안에 판독되는 명령 및 데이터를 저장하기 위하여, 오버-플로우 데이터 저장 디바이스로서 이용될 수 있다. 메모리(2060)는 예를 들어, 휘발성 및/또는 비-휘발성일 수 있고, 판독-전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 3진 컨텐츠-어드레싱가능한 메모리(ternary content-addressable memory)(TCAM), 및/또는 정적 랜덤-액세스 메모리(static random-access memory)(SRAM)일 수 있다.
도 21은 예시적인 실시예에 따른 도 18로부터의 출발지 디바이스(12) 및 목적지 디바이스(14)의 어느 하나 또는 둘 모두로서 이용될 수 있는 장치(2100)의 단순화된 블록도이다.
장치(2100)에서의 프로세서(2102)는 중앙 프로세싱 유닛일 수 있다. 대안적으로, 프로세서(2102)는 지금-현존하거나 이후에 개발된, 정보를 조작할 수 있거나 프로세싱할 수 있는 임의의 다른 유형의 디바이스 또는 다수의 디바이스일 수 있다. 개시된 구현예는 도시된 바와 같은 단일 프로세서, 예컨대, 프로세서(2102)로 실시될 수 있지만, 속력 및 효율에서의 장점은 하나 초과의 프로세서를 이용하여 달성될 수 있다.
장치(2100)에서의 메모리(2104)는 구현예에서 판독 전용 메모리(read only memory)(ROM) 디바이스 또는 랜덤 액세스 메모리(random access memory)(RAM) 디바이스일 수 있다. 임의의 다른 적당한 유형의 저장 디바이스가 메모리(2104)로서 이용될 수 있다. 메모리(2104)는 버스(2112)를 이용하여 프로세서(2102)에 의해 액세스되는 코드 및 데이터(2106)를 포함할 수 있다. 메모리(2104)는 오퍼레이팅 시스템(operating system)(2108) 및 애플리케이션 프로그램(2110)을 더 포함할 수 있고, 애플리케이션 프로그램(2110)은 프로세서(2102)가 여기에서 설명된 방법을 수행하는 것을 허용하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램(2110)은, 여기에서 설명된 방법을 수행하는 비디오 코딩 애플리케이션을 더 포함하는 애플리케이션 1 내지 N을 포함할 수 있다.
장치(2100)는 또한, 디스플레이(2118)와 같은 하나 이상의 출력 디바이스를 포함할 수 있다. 디스플레이(2118)는 하나의 예에서, 디스플레이를, 터치 입력을 감지하도록 동작가능한 터치 감지 엘리먼트와 조합하는 터치 감지 디스플레이일 수 있다. 디스플레이(2118)는 버스(2112)를 통해 프로세서(2102)에 결합될 수 있다.
단일 버스로서 여기에서 도시되지만, 장치(2100)의 버스(2112)는 다수의 버스로 구성될 수 있다. 추가로, 보조 스토리지는 장치(2100)의 다른 컴포넌트에 직접적으로 결합될 수 있거나 네트워크를 통해 액세스될 수 있고, 메모리 카드와 같은 단일 통합된 유닛, 또는 다수의 메모리 카드와 같은 다수의 유닛을 포함할 수 있다. 장치(2100)는 이에 따라, 널리 다양한 구성으로 구현될 수 있다.
게다가, 도 17에서 도시된 프로세싱 장치(170)는 도 18에서 도시된 출발지 디바이스(12) 또는 목적지 디바이스(14), 도 19에서 도시된 비디오 코딩 시스템(40), 도 20에서 도시된 비디오 코딩 디바이스(2000), 또는 도 21에서 도시된 장치(2100)를 포함할 수 있다.

Claims (50)

  1. 현재 객체를 프로세싱하는 방법으로서,
    상기 현재 객체를 나타내는 입력 데이터 텐서(tensor)의 세트를 트랜스포머 기반 신경망(transformer based neural network)의 신경 계층(neural layer) 내로 입력하는 단계(S152);
    적어도 하나의 보조 데이터 텐서를 상기 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 단계(S154) - 상기 적어도 하나의 보조 데이터 텐서는 상기 입력 데이터 텐서의 세트의 상기 입력 데이터 텐서 각각과는 상이하고 적어도 하나의 보조 입력을 나타냄 -; 및
    출력 데이터 텐서의 세트를 획득하기 위하여 상기 적어도 하나의 보조 데이터 텐서를 이용하여 상기 트랜스포머 기반 신경망에 의해 상기 입력 데이터 텐서의 세트를 프로세싱하는 단계(S156)
    를 포함하고,
    상기 입력된 적어도 하나의 보조 데이터 텐서는 상기 현재 객체를 프로세싱하는 것에 대한 정보에 종속되는, 방법.
  2. 제1항에 있어서,
    상기 현재 객체는 신경망 추론 동안에 프로세싱되는, 방법.
  3. 제1항에 있어서,
    상기 현재 객체는 신경망 훈련 동안에 프로세싱되는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 입력 데이터 텐서의 세트는 상기 적어도 하나의 보조 데이터 텐서(S154)와는 별도로 입력되는(S152), 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 입력 데이터 텐서의 세트는 상기 트랜스포머 기반 신경망의 제1 신경 계층 내로 입력되고(S152), 상기 적어도 하나의 보조 데이터 텐서는 제1 계층과는 상이한, 상기 트랜스포머 기반 신경망의 제2 신경 계층 내로 입력되는(S154), 방법.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 입력 데이터 텐서의 세트(S152) 및 상기 적어도 하나의 보조 데이터 텐서(S154)를 입력하는 것은,
    상이한 혼합된 입력 텐서의 세트를 생성하는 것 - 상기 상이한 혼합된 입력 텐서의 세트의 각각의 혼합된 입력 텐서는 상기 적어도 하나의 보조 데이터 텐서, 및 상기 입력 데이터 텐서의 세트의 하나의 입력 데이터 텐서 중의 적어도 하나를 포함함 -; 및
    상기 혼합된 입력 텐서의 세트를 상기 트랜스포머 기반 신경망의 상기 신경 계층 내로 입력하는 것
    을 포함하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 적어도 하나의 보조 입력을 상기 적어도 하나의 보조 데이터 텐서로 선형적으로 변환하는 것;
    상기 적어도 하나의 보조 입력을 상기 적어도 하나의 보조 데이터 텐서로 비-선형적으로 변환하는 것; 및
    또 다른 신경망에 의해 상기 적어도 하나의 보조 입력을 상기 적어도 하나의 보조 데이터 텐서로 변환하는 것
    중의 하나에 의해 상기 적어도 하나의 보조 데이터 텐서를 생성하는 단계를 더 포함하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 현재 객체를 프로세싱하는 것에 대한 상기 정보는, 연속적 파라미터 범위 상에서 상기 현재 객체를 프로세싱하는 것에 대한 정보인, 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    객체에 대하여 생성되는 비트스트림으로부터, 상기 현재 객체를 프로세싱하는 것에 대한 상기 정보를 획득하는 단계를 더 포함하는 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 현재 객체는 이미지 또는 이미지의 일부 중의 하나를 포함하는, 방법.
  11. 제10항에 있어서,
    상기 이미지는 비디오 시퀀스(video sequence)의 프레임인, 방법.
  12. 제10항 또는 제11항에 있어서,
    상기 적어도 하나의 보조 입력은,
    품질 지시 파라미터;
    신호 공간 내의 채널별 왜곡 메트릭;
    잠재 공간 내의 채널별 왜곡 메트릭;
    밝기(brightness), 콘트라스트(contrast), 블러링(blurring), 웜니스(warmness), 샤프니스(sharpness), 포화(saturation), 컬러 히스토그램(color Histogram), 케이드(cade);
    섀도잉(shadowing), 휘도(luminance), 비네트 제어(vignette control), 페인팅 스타일(painting style);
    불연속적으로 가변적인 필터 강도, 연속적으로 가변적인 필터 강도;
    인트라 예측 또는 인터 예측의 지시; 및
    객체 대체 애플리케이션(object replacement application)을 위한 변환 레이트
    를 포함하는 그룹으로부터 선택되는, 방법.
  13. 제10항 내지 제12항 중 어느 한 항의 상기 방법의 단계를 포함하는, 이미지를 인코딩하는 방법.
  14. 제10항 내지 제12항 중 어느 한 항의 상기 방법의 단계를 포함하는, 인코딩된 이미지를 디코딩하는 방법.
  15. 제13항 또는 제14항의 상기 방법의 단계를 포함하는 비디오 코딩 방법으로서,
    상기 트랜스포머 기반 신경망은 인루프 필터 내에 포함되는, 비디오 코딩 방법.
  16. 제10항 내지 제15항 중 어느 한 항의 상기 방법의 단계를 포함하는, 이미지 강화 방법.
  17. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 현재 객체는 하나 이상의 문장을 포함하는, 방법.
  18. 제17항에 있어서,
    상기 적어도 하나의 보조 입력은 온도, 언어, 및 어펙션(affection)을 포함하는 그룹으로부터 선택되는, 방법.
  19. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 현재 객체는 오디오 신호를 포함하는, 방법.
  20. 제19항에 있어서,
    상기 적어도 하나의 보조 입력은,
    품질 지시 파라미터;
    신호 공간 내의 채널별 왜곡 메트릭;
    임의의 잠재 공간 내의 채널별 왜곡 메트릭;
    등화기 설정(equalizer setting);
    음량(volume); 및
    변환 레이트
    를 포함하는 그룹으로부터 선택되는, 방법.
  21. 제19항 또는 제20항의 상기 방법의 단계를 포함하는, 음향 신호를 인코딩하는 방법.
  22. 제19항 또는 제20항의 상기 방법의 단계를 포함하는, 인코딩된 음향 신호를 디코딩하는 방법.
  23. 신경망 추론에 의해 현재 객체를 프로세싱하는 방법으로서,
    상기 현재 객체를 나타내는 입력 데이터 텐서의 세트를 훈련된 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 단계(S162);
    적어도 하나의 보조 데이터 텐서를 상기 훈련된 트랜스포머 기반 신경망의 신경 계층 내로 입력하는 단계(S164) - 상기 적어도 하나의 보조 데이터 텐서는 상기 입력 데이터 텐서의 세트의 상기 입력 데이터 텐서 각각과는 상이하고 적어도 하나의 보조 입력을 나타냄 -; 및
    출력 데이터 텐서의 세트를 획득하기 위하여 상기 적어도 하나의 보조 데이터 텐서를 이용하여 상기 훈련된 트랜스포머 기반 신경망에 의해 상기 입력 데이터 텐서의 세트를 프로세싱하는 단계(S166)
    를 포함하고,
    상기 입력된 적어도 하나의 보조 데이터 텐서는 상기 현재 객체의 성질에 대한 정보, 및 상기 현재 객체를 프로세싱하는 것에 대한 정보 중의 적어도 하나에 종속되는, 방법.
  24. 제23항에 있어서,
    상기 입력 데이터 텐서의 세트는 상기 적어도 하나의 보조 데이터 텐서(S164)와는 별도로 입력되는(S162), 방법.
  25. 제23항 또는 제24항에 있어서,
    상기 입력 데이터 텐서의 세트는 상기 훈련된 트랜스포머 기반 신경망의 제1 신경 계층 내로 입력되고(S162), 상기 적어도 하나의 보조 데이터 텐서는 제1 계층과는 상이한, 상기 훈련된 트랜스포머 기반 신경망의 제2 신경 계층 내로 입력되는(S162), 방법.
  26. 제23항 내지 제25항 중 어느 한 항에 있어서,
    상기 입력 데이터 텐서의 세트(S162) 및 상기 적어도 하나의 보조 데이터 텐서(S164)를 입력하는 것은,
    상이한 혼합된 입력 텐서의 세트를 생성하는 것 - 상기 상이한 혼합된 입력 텐서의 세트의 각각의 혼합된 입력 텐서는 상기 적어도 하나의 보조 데이터 텐서, 및 상기 입력 데이터 텐서의 세트의 하나의 입력 데이터 텐서 중의 적어도 하나를 포함함 -; 및
    상기 혼합된 입력 텐서의 세트를 상기 훈련된 트랜스포머 기반 신경망의 상기 신경 계층 내로 입력하는 것
    을 포함하는, 방법.
  27. 제23항 내지 제26항 중 어느 한 항에 있어서,
    상기 적어도 하나의 보조 입력을 상기 적어도 하나의 보조 데이터 텐서로 선형적으로 변환하는 것;
    상기 적어도 하나의 보조 입력을 상기 적어도 하나의 보조 데이터 텐서로 비-선형적으로 변환하는 것; 및
    또 다른 신경망에 의해 상기 적어도 하나의 보조 입력을 상기 적어도 하나의 보조 데이터 텐서로 변환하는 것
    중의 하나에 의해 상기 적어도 하나의 보조 데이터 텐서를 생성하는 단계를 더 포함하는 방법.
  28. 제23항 내지 제27항 중 어느 한 항에 있어서,
    상기 현재 객체의 성질에 대한 정보, 및 상기 현재 객체를 프로세싱하는 것에 정보 중의 적어도 하나는, 연속적인 파라미터 범위 상에서 상기 현재 객체를 프로세싱하는 것에 대한 정보인, 방법.
  29. 제23항 내지 제28항 중 어느 한 항에 있어서,
    객체에 대하여 생성되는 비트스트림으로부터, 상기 현재 객체의 성질에 대한 정보, 및 상기 현재 객체를 프로세싱하는 것에 대한 정보 중의 적어도 하나를 획득하는 단계를 더 포함하는 방법.
  30. 제23항 내지 제29항 중 어느 한 항에 있어서,
    상기 현재 객체는 이미지 또는 이미지의 일부 중의 하나를 포함하는, 방법.
  31. 제30항에 있어서,
    상기 이미지는 비디오 시퀀스의 프레임인, 방법.
  32. 제30항 또는 제31항에 있어서,
    상기 적어도 하나의 보조 입력은,
    컨텐츠, 컨텐츠의 유형;
    품질 지시 파라미터;
    신호 공간 내의 채널별 왜곡 메트릭;
    잠재 공간 내의 채널별 왜곡 메트릭;
    밝기, 콘트라스트, 블러링, 웜니스, 샤프니스, 포화, 컬러 히스토그램, 케이드;
    섀도잉, 휘도, 비네트 제어, 페인팅 스타일;
    불연속적으로 가변적인 필터 강도, 연속적으로 가변적인 필터 강도;
    인트라 예측 또는 인터 예측의 지시; 및
    객체 대체 애플리케이션을 위한 변환 레이트
    를 포함하는 그룹으로부터 선택되는, 방법.
  33. 제30항 내지 제32항 중 어느 한 항의 상기 방법의 단계를 포함하는, 이미지를 인코딩하는 방법.
  34. 제30항 내지 제32항 중 어느 한 항의 상기 방법의 단계를 포함하는, 인코딩된 이미지를 디코딩하는 방법.
  35. 제30항 내지 제34항 중 어느 한 항의 상기 방법의 단계를 포함하는, 이미지 압축 방법.
  36. 제30항 내지 제34항 중 어느 한 항의 상기 방법의 단계를 포함하는, 비디오 압축 방법.
  37. 제33항 및 제34항의 상기 방법의 단계를 포함하는, 이미지를 오토-인코딩하는 방법.
  38. 비디오 코딩 방법으로서,
    제30항 내지 제37항 중 어느 한 항의 상기 방법의 단계를 포함하고,
    상기 훈련된 트랜스포머 기반 신경망은 인루프 필터 내에 포함되는, 비디오 코딩 방법.
  39. 제30항 내지 제38항 중 어느 한 항의 상기 방법의 단계를 포함하는, 이미지 강화 방법.
  40. 제23항 내지 제29항 중 어느 한 항에 있어서,
    상기 현재 객체는 하나 이상의 문장을 포함하는, 방법.
  41. 제40항에 있어서,
    상기 적어도 하나의 보조 입력은 컨텐츠, 컨텐츠의 유형, 온도, 언어, 및 어펙션을 포함하는 그룹으로부터 선택되는, 방법.
  42. 제23항 내지 제29항 중 어느 한 항에 있어서,
    상기 현재 객체는 오디오 신호를 포함하는, 방법.
  43. 제42항에 있어서,
    상기 적어도 하나의 보조 입력은,
    컨텐츠, 컨텐츠의 유형;
    품질 지시 파라미터;
    신호 공간 내의 채널별 왜곡 메트릭;
    임의의 잠재 공간 내의 채널별 왜곡 메트릭;
    등화기 설정;
    음량; 및
    변환 레이트
    를 포함하는 그룹으로부터 선택되는, 방법.
  44. 제42항 또는 제43항의 상기 방법의 단계를 포함하는, 음향 신호를 인코딩하는 방법.
  45. 제42항 또는 제43항의 상기 방법의 단계를 포함하는, 인코딩된 음향 신호를 디코딩하는 방법.
  46. 코드를 포함하는 비-일시적 매체 상에 저장되는 컴퓨터 프로그램으로서,
    상기 코드는, 하나 이상의 프로세서에 의해 실행될 때, 제1항 내지 제45항 중 어느 한 항에 따른 상기 방법의 단계를 수행하는, 컴퓨터 프로그램.
  47. 프로세싱 장치(170)로서,
    하나 이상의 프로세서(176); 및
    상기 하나 이상의 프로세서(176)에 결합되고, 상기 하나 이상의 프로세서(176)에 의한 실행을 위한 프로그래밍을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체(177) - 상기 프로그래밍은, 상기 하나 이상의 프로세서(176)에 의해 실행될 때, 제1항 내지 제45항 중 어느 한 항에 다른 상기 방법을 수행하도록 상기 프로세싱 장치(170)를 구성함 -
    를 포함하는 프로세싱 장치(170).
  48. 인코딩된 이미지를 디코딩하도록 구성되고, 제47항의 상기 프로세싱 장치(170)를 포함하는 디코딩 디바이스.
  49. 이미지를 인코딩하도록 구성되고, 제47항의 상기 프로세싱 장치(170)를 포함하는 인코딩 디바이스.
  50. 이미지를 코딩하도록 구성되고, 제48항 및 제49항의 상기 프로세싱 장치(170)를 포함하는 오토-인코딩 디바이스.
KR1020247013224A 2021-12-15 2021-12-15 가변 보조 입력을 이용하는 트랜스포머 기반 신경망 KR20240071400A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2021/000569 WO2023113635A1 (en) 2021-12-15 2021-12-15 Transformer based neural network using variable auxiliary input

Publications (1)

Publication Number Publication Date
KR20240071400A true KR20240071400A (ko) 2024-05-22

Family

ID=81326755

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247013224A KR20240071400A (ko) 2021-12-15 2021-12-15 가변 보조 입력을 이용하는 트랜스포머 기반 신경망

Country Status (5)

Country Link
EP (1) EP4413501A1 (ko)
KR (1) KR20240071400A (ko)
CN (1) CN118451424A (ko)
TW (1) TW202326594A (ko)
WO (1) WO2023113635A1 (ko)

Also Published As

Publication number Publication date
EP4413501A1 (en) 2024-08-14
CN118451424A (zh) 2024-08-06
WO2023113635A1 (en) 2023-06-22
TW202326594A (zh) 2023-07-01

Similar Documents

Publication Publication Date Title
TWI806199B (zh) 特徵圖資訊的指示方法,設備以及電腦程式
US20240064318A1 (en) Apparatus and method for coding pictures using a convolutional neural network
JP2023548507A (ja) セグメンテーション情報のシグナリングを用いた復号化
US20240296593A1 (en) Conditional Image Compression
US20240078414A1 (en) Parallelized context modelling using information shared between patches
JP2023543520A (ja) 機械学習を基にしたピクチャコーディングにおけるクロマサブサンプリングフォーマット取り扱いのための方法
US20240267568A1 (en) Attention Based Context Modelling for Image and Video Compression
WO2023172153A1 (en) Method of video coding by multi-modal processing
TW202348029A (zh) 使用限幅輸入數據操作神經網路
WO2024005660A1 (en) Method and apparatus for image encoding and decoding
EP4449312A1 (en) Neural network with approximated activation function
KR20240071400A (ko) 가변 보조 입력을 이용하는 트랜스포머 기반 신경망
TWI850806B (zh) 基於注意力的圖像和視訊壓縮上下文建模
WO2024217530A1 (en) Method and apparatus for image encoding and decoding
WO2024083405A1 (en) Neural network with a variable number of channels and method of operating the same
TW202345034A (zh) 使用條件權重操作神經網路
CN118872266A (zh) 基于多模态处理的视频译码方法