KR20190117416A - 동영상 프레임 해상도를 향상시키기 위한 방법 및 장치 - Google Patents

동영상 프레임 해상도를 향상시키기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20190117416A
KR20190117416A KR1020190119073A KR20190119073A KR20190117416A KR 20190117416 A KR20190117416 A KR 20190117416A KR 1020190119073 A KR1020190119073 A KR 1020190119073A KR 20190119073 A KR20190119073 A KR 20190119073A KR 20190117416 A KR20190117416 A KR 20190117416A
Authority
KR
South Korea
Prior art keywords
frame
neural network
artificial neural
image processing
frames
Prior art date
Application number
KR1020190119073A
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 엘지전자 주식회사
Priority to KR1020190119073A priority Critical patent/KR20190117416A/ko
Publication of KR20190117416A publication Critical patent/KR20190117416A/ko
Priority to US16/711,001 priority patent/US11205247B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4046Scaling the whole image or part thereof using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4053Super resolution, i.e. output image resolution higher than sensor resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
    • 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
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/147Scene change detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

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

Abstract

본 발명의 일 실시 예에 따른 동영상 프레임의 해상도를 향상시키기 위한 방법은, 저해상도를 갖는 복수의 프레임들을 포함하는 동영상 데이터를 로딩하는 단계, 이미지 처리용 인공 신경망 그룹 중에서 동영상 의 각 프레임 중 두 개의 서로 다른 프레임에 서로 다른 복잡도를 가지는 이미지 처리용 인공 신경망을 적용하도록 이미지 처리용 인공 신경망을 선택하는 단계 및 선택된 이미지 처리용 인공 신경망에 따라 동영상의 각 프레임을 처리하여 고해상도 프레임을 생성하는 단계를 포함할 수 있다. 본 개시의 이미지 처리용 신경망은 기계학습을 통해 생성된 심층 신경망일 수 있고, 동영상의 입력 및 출력은 5G 네트워크를 이용한 사물 인터넷 환경에서 이루어질 수 있다.

Description

동영상 프레임 해상도를 향상시키기 위한 방법 및 장치{METHOD AND APPARATUS FOR ENHANCING VIDEO FRAME RESOLUTION}
본 개시는 동영상의 프레임 해상도를 향상시키기 위한 방법 및 장치에 관한 것이다. 보다 상세하게는, 슈퍼 레졸루션 이미징(super resolution imaging)을 위해, 동영상의 프레임에 복수의 이미지 처리용 신경망을 이용함으로써 처리 속도와 효율을 향상시키는 고해상도 동영상 프레임을 생성하는 방법 및 장치에 관한 것이다.
이미지 처리 기술(image processing technology)은 이미지의 품질을 향상시키거나 이미지로부터 특정 정보를 추출하기 위해 이미지에 특정 동작들을 수행하는 방법에 관한 기술이다.
이미지 처리 기술은 여러 분야에서 광범위하게 활용될 수 있는 기술로, 자율주행 차량, 보안 모니터링 시스템, 화상 통신, 고화질 영상 전송 등의 다양한 분야에서 필수적으로 요구되고 있는 핵심 기술 중 하나이다.
고해상도 이미지 센서, 5G 통신 네트워크, 인공지능 기술의 발전과 함께 이미지 처리 기술도 발전하고 있으며, 최근에는 심층 신경망을 이용하여 저해상도 이미지 및 동영상의 각 프레임(frame)을 고해상도 이미지로 변환시키는 기술이 시도되고 있다.
선행기술 1은 동영상에 대하여 슈퍼 레졸루션(super resolution) 처리를 수행하는 경우, 동영상을 구성하는 복수의 입력 프레임에 RNN(Recurrent Neural Network) 및 CNN(Convolutional Neural Network)을 순차적으로 적용하는 기술을 개시하고 있다.
선행기술 1은 복수의 프레임 간의 불연속적 아티팩트(artifact)를 해결하고자 연속된 프레임을 동시에 신경망에 입력하지 않고 입력 프레임에 RNN 및 CNN을 순차적으로 적용하고 있으나, 모든 프레임에 대해서 동일한 방식의 CNN을 적용하므로 적용되는 CNN의 복잡도가 높은 경우 동영상 슈퍼 레졸루션 처리에 높은 연산량이 요구될 수 있는 문제점이 있다.
선행기술 2는 움직임 보상 과정을 수행하지 않고 전후 인접 프레임의 시공간적 정보를 활용하는 기술을 개시하고 있으나, 역시 모든 프레임에 대해서 동일한 방식의 CNN을 적용하는데 그치고 있다.
상술된 바와 같은 한계를 극복하기 위해, 여러 방식으로 훈련된 신경망 모델을 동영상의 다양한 프레임들에 대해 적합한 방식으로 활용하여 효과적으로 고해상도 이미지를 생성할 수 있도록 하는 해결책이 필요하다.
한편, 전술한 선행기술은 발명자가 본 개시의 도출을 위해 보유하고 있었거나, 본 개시의 도출 과정에서 습득한 기술 정보로서, 반드시 본 개시의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
선행기술 1: 한국 공개특허공보 제10-2018-0126362호(2018.11.27. 공개) 선행기술 2: 한국 공개특허공보 제10-2019-0059157호(2019.05.30. 공개)
본 개시의 실시 예는 종래의 기술에서 정해진 하나의 신경망을 이용하여 동영상의 모든 프레임(frame)에 대한 해상도 향상 처리를 수행함으로써, 동영상의 슈퍼 레졸루션 처리시 과도한 연산량이 요구되는 문제점을 해결하고자 한다.
또한, 본 개시의 실시 예는 종래의 기술에서 프레임의 내용을 고려하지 않고 모든 프레임에 대해 동일한 신경망을 이용하여 슈퍼 레졸루션 처리를 수행함으로써 슈퍼 레졸루션 처리가 효율적으로 이루어지지 않는 문제점을 해결하고자 한다.
또한, 본 개시의 실시 예는 종래의 기술에서 해상도 향상의 필요성이 크지 않은 프레임들의 대해서도 사용자의 관심과는 무관하게 복잡도가 높은 신경망을 적용함으로써, 불필요하게 연산 능력 낭비가 발생하고 전체적인 슈퍼 레졸루션 처리 속도가 저하되는 문제점을 해결하고자 한다.
또한, 본 개시의 실시 예는 종래의 기술에서 동영상 중 사용자의 관심 프레임과는 무관하게 동일한 프레임 해상도 향상 방식을 이용함으로써, 처리 능력 및 처리 가능 시간에 여유가 있음에도 충분히 높은 품질의 프레임을 보여주지 못하는 문제점을 해결하고자 한다.
본 개시의 일 실시 예는 동영상의 복수의 저해상도 프레임에 대해 서로 다른 복잡도를 가지는 이미지 처리용 신경망들을 적용하여 해상도 향상이 이루어지도록 함으로써, 해상도 향상의 성능과 효율을 향상시킨 동영상 프레임 해상도 향상 방법 및 장치를 제공할 수 있다.
본 개시의 다른 실시 예는 해상도 향상 성능이 좋은 단일 이미지 슈퍼 레졸루션(SISR: Single Image Super Resolution) 모델과 해상도 향상 효율이 좋은 멀티 이미지 슈퍼 레졸루션(Multiple Images Super Resolution) 모델을 함께 적용함으로써, 해상도 향상의 성능과 효율을 향상시킨 동영상 프레임 해상도 향상 방법 및 장치를 제공할 수 있다.
본 개시의 다른 실시 예는, 동영상 프레임의 장면 변화에 기반하여 서로 다른 복잡도를 가지는 이미지 처리용 신경망들을 적용하여 해상도 향상이 이루어지도록 함으로써, 시청자의 관심을 반영하도록 해상도 향상의 성능과 효율을 향상시킨 동영상 프레임 해상도 향상 방법 및 장치를 제공할 수 있다.
본 개시의 다른 실시 예는, 동영상 프레임의 장면 변화 속도에 기반하여 서로 다른 복잡도를 가지는 이미지 처리용 신경망들을 적용하여 해상도 향상이 이루어지도록 함으로써, 시청자들이 화질의 저하를 체감할 수 없이 해상도 향상의 성능과 효율을 향상시킨 동영상 프레임 해상도 향상 방법 및 장치를 제공할 수 있다.
본 개시의 일 실시 예에 따른 동영상 프레임 해상도를 향상시키기 위한 방법은, 저해상도를 갖는 복수의 프레임들을 포함하는 동영상 데이터를 로딩(loading)하는 단계, 이미지 처리용 인공 신경망 그룹 중에서 동영상 데이터의 각 프레임에 적용할 이미지 처리용 인공 신경망을 선택하는 단계로서, 적어도 두 개의 서로 다른 프레임에 서로 다른 복잡도를 가지는 이미지 처리용 인공 신경망을 적용하도록 이미지 처리용 인공 신경망을 선택하는 단계 및 선택된 이미지 처리용 인공 신경망에 따라 동영상 데이터의 각 프레임을 처리하여 각 프레임에 대한 고해상도 프레임을 생성하는 단계를 포함할 수 있다.
또한, 본 개시의 일 실시 예에 따른 프레임 해상도를 향상시키기 위한 방법에서, 이미지 처리용 인공 신경망을 선택하는 단계는 복수의 프레임들 중에서, 미리 설정된 주기(periodical) 간격에 대응되는 제 1 그룹의 프레임에 적용할 이미지 처리용 인공 신경망으로서, 주기 간격에 대응되지 않는 제 2 그룹의 프레임에 적용할 이미지 처리용 인공 신경망보다 높은 복잡도를 가지는 이미지 처리용 인공 신경망을 선택하는 단계를 포함할 수 있다.
여기에서, 이미지 처리용 인공 신경망을 선택하는 단계 이전에 처리할 프레임의 이전 프레임에 대한 장면 변화 정도를 판단하고, 이미지 처리용 인공 신경망을 선택하는 단계는 장면 변화 정도에 기반하여 주기 간격의 기준 프레임을 처리할 프레임으로 설정할지 판단하는 단계를 포함할 수 있다.
또한, 고해상도 프레임을 생성하는 단계는 처리할 프레임이 제 2 그룹의 프레임 중 하나의 프레임인지 판단한 결과에 기반하여, 이미지 처리용 인공 신경망의 입력으로서 처리할 프레임으로부터 미리 설정된 주변 간격 이내의 주변 프레임들 및 처리할 프레임을 활용하여 고해상도 프레임을 획득하는 단계를 포함할 수 있다.
여기에서, 주변 프레임들은 처리할 프레임에 대한 주변 프레임의 장면 변화 정도가 미리 설정된 기준 이하인 프레임들일 수 있다.
또한, 본 개시의 일 실시 예에 따른 프레임 해상도를 향상시키기 위한 방법에서, 이미지 처리용 인공 신경망을 선택하는 단계는 처리할 프레임의 이전 프레임에 대한 장면 변화 정도를 판단하는 단계 및 장면 변화 정도에 기반하여 주기 간격을 변경하는 단계를 더 포함할 수 있다.
여기에서, 처리할 프레임의 이전 프레임에 대한 장면 변화 정도를 판단하는 단계는 처리할 프레임에서 객체(object)를 식별하는 단계, 이전 프레임과 비교하여 상기 객체의 움직임 정도를 판단하는 단계 및 움직임 정도에 기반하여 주기 간격을 변경하는 단계를 포함할 수 있다.
또한, 고해상도 프레임을 생성하는 단계는 처리할 프레임이 제 2 그룹의 프레임 중 하나의 프레임인지 판단한 결과에 기반하여, 처리할 프레임으로부터 미리 설정된 주변 간격 이내의 주변 프레임들 및 처리할 프레임을 이미지 처리용 인공 신경망의 입력으로 활용하여 임시 고해상도 프레임을 획득하는 단계 및 변화 정도에 기반하여, 처리할 프레임의 이전 프레임을 처리하고 획득한 고해상도 프레임 및 상기 임시 고해상도 프레임을 합성하여 처리할 프레임에 대한 최종 고해상도 프레임을 획득하는 단계를 포함할 수 있다.
또한, 본 개시의 일 실시 예에 따른 프레임 해상도를 향상시키기 위한 방법에서, 이미지 처리용 인공 신경망을 선택하는 단계는 처리할 프레임의 이전 프레임에 대한 장면 변화 정도를 판단하는 단계, 장면 변화 정도가 미리 설정된 기준 이상인 프레임에 적용할 이미지 처리용 인공 신경망으로서, 제 1 그룹의 프레임에 적용할 이미지 처리용 인공 신경망보다 높은 복잡도를 가지는 이미지 처리용 인공 신경망을 선택하는 단계를 포함할 수 있다.
또한, 본 개시의 일 실시 예에 따른 프레임 해상도를 향상시키기 위한 방법에서, 동영상 데이터를 로딩하는 단계 이전에 압축 동영상 데이터를 디코딩(decoding)하여 동영상 데이터를 획득하는 단계를 더 포함하고, 이미지 처리용 인공 신경망을 선택하는 단계는 복수의 프레임들 중에서, 압축 동영상 데이터의 인트라 프레임(intra frame)을 디코딩한 제 3 그룹의 프레임에 적용할 이미지 처리용 인공 신경망으로서, 압축 동영상 데이터의 인터 프레임(inter frame)을 디코딩한 제 4 그룹의 프레임에 적용할 이미지 처리용 인공 신경망보다 높은 복잡도를 가지는 이미지 처리용 인공 신경망을 선택하는 단계를 포함할 수 있다.
여기에서, 고해상도 프레임을 생성하는 단계는, 제 4 그룹의 프레임 중 하나의 프레임으로부터 주변 간격 이내의 주변 프레임들을 선택하는 단계로서, 주변 간격은 적어도 하나의 제 3 그룹의 프레임이 주변 프레임들에 포함되도록 설정하는 단계, 하나의 프레임 및 주변 프레임들을 이미지 처리용 인공 신경망의 입력으로 활용하여 고해상도 프레임을 획득하는 단계를 포함할 수 있다.
또한, 본 개시의 일 실시 예에 따른 프레임 해상도를 향상시키기 위한 방법에서, 이미지 처리용 인공 신경망을 선택하는 단계는 처리할 프레임의 이전 프레임에 대한 장면 변화 정도를 판단하는 단계, 장면 변화 정도가 미리 설정된 기준 이상인 프레임에 적용할 이미지 처리용 인공 신경망으로서 장면 변화 정도가 미리 설정된 기준 미만인 프레임에 적용할 이미지 처리용 인공 신경망보다 높은 복잡도를 가지는 이미지 처리용 인공 신경망을 선택하는 단계를 포함할 수 있다.
본 개시의 일 실시 예에 따른 프레임 해상도를 향상시키기 위한 방법이 저장된 컴퓨터 판독 가능한 기록매체는, 상술된 방법 중 어느 하나의 방법을 실행시키기 위한 컴퓨터 프로그램이 저장된 컴퓨터로 판독 가능한 기록매체일 수 있다.
본 개시의 일 실시 예에 따른 동영상 프레임 해상도를 향상시키기 위한 장치는, 프로세서 및 프로세서와 전기적으로 연결되고 프로세서에서 수행되는 적어도 하나의 명령어 및 이미지 처리용 인공 신경망의 파라미터가 저장되는 메모리를 포함하고, 메모리는 프로세서를 통해 실행될 때, 프로세서가 저해상도를 갖는 복수의 프레임을 포함하는 동영상 데이터를 로딩하고, 프레임에 이미지 처리용 인공 신경망을 적용하여 고해상도 프레임을 생성하도록 야기하는 명령들로서, 동영상 데이터의 프레임 중 적어도 두 개의 서로 다른 프레임에 서로 다른 복잡도를 가지는 이미지 처리용 인공 신경망을 적용하도록 야기하는 명령들을 저장할 수 있다.
여기에서, 명령들은 미리 설정된 주기 간격에 대응되는 제 1 그룹의 프레임에 적용할 이미지 처리용 인공 신경망으로서, 주기 간격에 대응되지 않는 제 2 그룹의 프레임에 적용할 이미지 처리용 인공 신경망보다 높은 복잡도를 가지는 이미지 처리용 인공 신경망을 선택하도록 야기할 수 있다.
여기에서, 명령들은 처리할 프레임이 상기 제 2 그룹의 프레임인지 판단한 결과에 기반하여, 이미지 처리용 인공 신경망의 입력으로서 상기 처리할 프레임으로부터 미리 설정된 주변 간격 이내의 주변 프레임들 및 처리할 프레임을 활용하여 고해상도 프레임을 획득하도록 야기할 수 있다.
본 개시의 다른 실시 예에 따른 동영상 프레임 해상도를 향상시키기 위한 장치는, 프로세서 및 프로세서와 전기적으로 연결되고 프로세서에서 수행되는 적어도 하나의 명령어 및 이미지 처리용 인공 신경망의 파라미터가 저장되는 메모리를 포함하고, 메모리는 저해상도를 갖는 복수의 프레임을 포함하는 동영상 데이터로부터 처리할 프레임을 로딩하고, 서로 다른 복잡도를 갖는 복수의 이미지 처리용 인공 신경망 모델 중 어느 한 인공 신경망 모델에 기반하여 생성된 인공 신경망 인스턴스(instance)에 처리할 프레임을 전달하여 고해상도 프레임을 생성하도록 야기하는 명령들을 저장할 수 있다.
여기에서, 명령들은 복수의 이미리 처리용 인공 신경망 모델에 기반하여 복수의 인공 신경망 인스턴스들을 생성하고, 복수의 인공 신경망 인스턴스 중 어느 한 인스턴스에 처리할 프레임을 전달하도록 야기하는 명령들을 저장할 수 있다.
또한, 본 개시의 일 실시 예에 따른 동영상 프레임 해상도를 향상시키기 위한 장치에서, 명령들은 복수의 이미리 처리용 인공 신경망 모델 중 어느 한 인공 신경망 모델에 기반한 인공 신경망 인스턴스를 처리할 프레임에 기반하여 선택적으로 생성하고, 생성된 인공 신경망 인스턴스에 처리할 프레임을 전달하도록 야기하는 명령들을 저장할 수 있다.
본 개시의 실시 예에 따른 이미지 해상도를 향상시키기 위한 장치 및 방법은 동영상 프레임의 유형에 따라 서로 다른 복잡도를 가지는 이미지 처리용 신경망을 선택하여 이용함으로써 동영상의 고해상도 변환 시 해상도 향상의 성능과 효율이 향상될 수 있다.
또한, 본 개시의 실시 예는 해상도 향상 성능이 좋은 단일 이미지 슈퍼 레졸루션(SISR: Single Image Super Resolution) 모델과 해상도 향상 효율이 좋은 멀티 이미지 슈퍼 레졸루션(Multiple Images Super Resolution) 모델을 함께 적용함으로써, 동영상 고해상도 변환 시 해상도 향상의 성능과 효율이 향상될 수 있다.
또한, 본 개시의 실시 예는, 동영상 프레임의 장면 변화에 기반하여 서로 다른 복잡도를 가지는 이미지 처리용 신경망들을 적용하여 해상도 향상이 이루어지도록 함으로써, 시청자의 관심을 반영하도록 동영상 프레임을 고해상도 변환할 수 있다.
또한, 본 개시의 실시 예는, 동영상 프레임의 장면 변화 속도에 기반하여 서로 다른 복잡도를 가지는 이미지 처리용 신경망들을 적용하여 해상도 향상이 이루어지도록 함으로써, 시청자들이 화질의 저하를 체감할 수 없이 해상도 향상의 성능과 효율을 향상시킬 수 있다.
본 개시의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 실시 예에 따른 동영상 프레임 해상도 향상 방법을 수행하기 위한 환경의 예시도이다.
도 2는 본 개시의 실시 예에 따른 동영상 프레임 처리용 신경망을 생성하기 위한 시스템을 도시한다.
도 3은 본 개시의 실시 예에 따른 동영상 프레임 처리용 신경망을 설명하기 위한 도면이다.
도 4는 본 개시의 실시 예에 따른 동영상 프레임 해상도 향상 방법을 설명하기 위한 순서도를 도시한다.
도 5는 본 개시의 실시 예에 따른 동영상 프레임 해상도 향상 방법이 동영상에 대해서 수행되는 과정을 설명하기 위한 도면이다.
도 6은 본 개시의 실시 예에 따른 동영상 프레임 해상도 향상 방법을 설명하기 위한 순서도를 도시한다.
도 7 내지 도 10은 본 개시의 실시 예에 따른 동영상 프레임 해상도 향상 방법이 동영상에 대해서 수행되는 과정을 설명하기 위한 도면이다.
도 11은 본 개시의 실시 예에 따른 동영상 프레임 해상도 향상 방법을 설명하기 위한 순서도를 도시한다.
도 12는 본 개시의 실시 예에 따른 동영상 프레임 해상도 향상 방법이 동영상에 대해서 수행되는 과정을 설명하기 위한 도면이다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 설명되는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 개시는 아래에서 제시되는 실시 예들로 한정되는 것이 아니라, 서로 다른 다양한 형태로 구현될 수 있고, 본 개시의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 아래에 제시되는 실시 예들은 본 개시의 개시가 완전하도록 하며, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 본 개시를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
이하, 본 개시에 따른 실시 예들을 첨부된 도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 개시의 실시예에 따른 이미지 해상도 향상 방법을 수행하기 위한 환경의 예시도이다.
본 개시의 실시예에 따른 이미지 해상도 향상 방법을 수행하기 위한 환경은 전자 장치(100), 서버 연산 시스템(200), 트레이닝 연산 시스템(300), 및 이들이 서로 통신할 수 있도록 하는 네트워크(400)를 포함할 수 있다.
전자 장치(100)는 사물 지능 통신(IoT(internet of things), IoE(internet of everything), IoST(internet of small things) 등)을 지원할 수 있으며, M2M(machine to machine) 통신, D2D(device to device) 통신 등을 지원할 수 있다.
전자 장치(100)는 사물 인터넷을 위해 연결된 5G 환경에서 빅데이터, 인공지능(artificial intelligence, AI) 알고리즘 및/또는 기계학습(machine learning) 알고리즘을 이용하여 이미지 해상도 향상 방식을 결정할 수 있다.
전자 장치(100)는 예를 들어, 개인용 컴퓨터, 스마트폰, 태블릿, 게임 콘솔, 프로젝터, 웨어러블 기기(예를 들어, 글래스형 단말기 (smart glass), HMD(head mounted display)), 셋톱박스(STB), 데스크탑 컴퓨터, 디지털사이니지, 스마트 TV, NAS(Network Attached Storage) 등 어떤 종류의 연산 디바이스든 될 수 있고, 고정형 기기 및 이동 가능한 기기 등으로 구현될 수 있다.
즉, 전자 장치(100)는 가정에서 이용하는 다양한 가전의 형태로 구현될 수 있으며, 고정 또는 이동 가능한 로봇에도 적용될 수 있다.
전자 장치(100)는 사물 인터넷을 위해 연결된 5G 환경에서 데이터를 송신 또는 수신 가능한 무선 통신부(미도시)를 포함할 수 있다. 무선 통신부는, 방송 수신 모듈, 이동통신 모듈, 무선 인터넷 모듈, 근거리 통신 모듈, 위치정보 모듈 중 적어도 하나를 포함할 수 있다.
방송 수신 모듈은 방송 채널을 통하여 외부의 방송 관리 서버로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다.
이동통신 모듈은, 이동통신을 위한 기술표준들 또는 통신방식(예를 들어, GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등), 5G 통신에 따라 구축된 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다.
무선 인터넷 모듈은 무선 인터넷 접속을 위한 모듈을 말하는 것으로, 전자 장치(100)에 내장되거나 외장될 수 있다. 무선 인터넷 모듈은 무선 인터넷 기술들에 따른 통신망에서 무선 신호를 송수신하도록 이루어진다.
무선 인터넷 기술로는, 예를 들어 WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등이 있다.
근거리 통신 모듈은 근거리 통신(Short range communication)을 위한 것으로서, 블루투스(Bluetooth™), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee, NFC(Near Field Communication), Wi-Fi(Wireless-Fidelity), Wi-Fi Direct, Wireless USB(Wireless Universal Serial Bus) 기술 중 적어도 하나를 이용하여, 근거리 통신을 지원할 수 있다.
위치정보 모듈은 이동 전자 장치의 위치(또는 현재 위치)를 획득하기 위한 모듈로서, 그의 대표적인 예로는 GPS(Global Positioning System) 모듈 또는 WiFi(Wireless Fidelity) 모듈이 있다. 예를 들어, 전자 장치는 GPS모듈을 활용하면, GPS 위성에서 보내는 신호를 이용하여 이동 전자 장치의 위치를 획득할 수 있다.
전자 장치(100)는 하나 이상의 프로세서들(110) 및 메모리(120)를 포함할 수 있다.
하나 이상의 프로세서들(110)은 데이터를 처리할 수 있는 모든 종류의 장치, 예를 들어 MCU, GPU, AI 가속기(AI accelerator chip)를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다.
이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다.
프로세서(110)는 데이터 분석 및 기계 학습 알고리즘을 사용하여 결정되거나, 생성된 정보에 기초하여 전자 장치(100)의 적어도 하나의 실행 가능한 동작을 결정 또는 예측할 수 있다. 이를 위해, 프로세서(180)는 상기 적어도 하나의 실행 가능한 동작 중 예측되는 동작이나, 바람직한 것으로 판단되는 동작을 실행하도록 상기 전자 장치를 제어할 수 있다.
프로세서(110)는 지능적 에뮬레이션(즉, 지식 기반 시스템, 추론 시스템 및 지식 획득 시스템)을 구현하는 다양한 기능을 수행 할 수 있다. 이는 적응 시스템, 기계 학습 시스템, 인공 신경망 등을 포함하는, 다양한 유형의 시스템(예컨대, 퍼지 논리 시스템)에 적용될 수 있다.
전자 장치(100)는 프로세서(110)에서 수행한 결과를 처리한 데이터를 출력하기 위한 출력부(미도시)를 포함할 수 있다.
출력부는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이, 음향 출력 모듈, 햅틱 모듈, 광 출력 모듈 중 적어도 하나를 포함할 수 있다.
디스플레이부는 전자 장치(100)에서 처리되는 정보를 표시(출력)한다. 예를 들어, 디스플레이는 전자 장치(100)에서 구동되는 응용 프로그램의 실행화면 정보, 또는 이러한 실행화면 정보에 따른 UI(User Interface), GUI(Graphic User Interface) 정보를 표시할 수 있다.
디스플레이부는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 전자 장치(100)와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력 수단으로서 기능함과 동시에, 전자 장치(100)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.
메모리(120)는 RAM, ROM, EEPROM, EPROM, 플래시 메모리 디바이스들, 자기 디스크들, 등과 같은 하나 이상의 비-일시적(non-transitory) 저장 매체를 포함할 수 있다. 메모리(120)는 데이터(122) 및 프로세서들(110)에 의해 실행되었을 때 전자 장치(100)로 하여금 동작들을 수행하도록 하는 인스트럭션들(124)을 저장할 수 있다.
또한, 전자 장치(100)는 사용자 인터페이스(140)를 포함해 사용자로부터 명령들을 입력 받을 수 있고, 출력 정보를 사용자에게 전달할 수도 있다. 사용자 인터페이스(140)는 키보드, 마우스, 터치 스크린, 마이크, 카메라 등의 다양한 입력 수단과 모니터, 스피커, 디스플레이 등의 다양한 출력 수단을 포함할 수 있다.
전자 장치(100)는 전자 장치(100)에 연결되는 다양한 종류의 외부 기기와의 통로 역할을 수행하는 인터페이스부(미도시)를 포함할 수 있다. 이러한 인터페이스부는, 유/무선 헤드셋 포트(port), 외부 충전기 포트(port), 유/무선 데이터 포트(port), 메모리 카드(memory card) 포트, 식별 모듈이 구비된 장치를 연결하는 포트(port), 오디오 I/O(Input/Output) 포트(port), 비디오 I/O(Input/Output) 포트(port), 이어폰 포트(port)중 적어도 하나를 포함할 수 있다. 전자 장치(100)에서는, 상기 인터페이스부에 외부 기기가 연결되는 것에 대응하여, 연결된 외부 기기와 관련된 적절할 제어를 수행할 수 있다.
사용자는 사용자 인터페이스(140)를 통해 전자 장치(100)에서 처리되어야 하는 동영상을 선택할 수 있다. 예를 들어, 사용자는 마우스, 키보드, 터치 스크린 등을 통해 해상도가 향상되기 원하는 동영상을 선택할 수 있다.
사용자 인터페이스(140)는 기계식 (mechanical) 입력수단(또는, 메커니컬 키, 예를 들어, 전자 장치(100)의 전/후면 또는 측면에 위치하는 버튼, 돔 스위치 (dome switch), 조그 휠, 조그 스위치 등) 및 터치식 입력수단을 포함할 수 있다. 일 예로서, 터치식 입력수단은, 소프트웨어적인 처리를 통해 터치스크린에 표시되는 가상 키(virtual key), 소프트 키(soft key) 또는 비주얼 키(visual key)로 이루어지거나, 상기 터치스크린 이외의 부분에 배치되는 터치 키(touch key)로 이루어질 수 있다.
일 실시예에서, 전자 장치(100)는 또한 인공 지능 기술이 적용된 슈퍼 레졸루션 모델들(130)을 저장하거나 포함할 수 있다. 예를 들어, 인공 지능 기술이 적용된 슈퍼 레졸루션 모델들(130)은 심층 신경망 또는 다른 타입의 머신 러닝 모델들과 같은 다양한 학습 모델들이거나, 이들을 포함할 수 있다.
본 명세서에서는 훈련 데이터를 이용하여 학습됨으로써 파라미터가 결정된 인공 신경망을 학습 모델 또는 학습된 모델(a trained model)이라 칭할 수 있다.
한편, 슈퍼 레졸루션 모델들(130)은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있으며, 슈퍼 레졸루션 모델의 일부 또는 전부가 소프트웨어로 구현되는 경우 슈퍼 레졸루션 모델을 구성하는 하나 이상의 명령어는 메모리(120)에 저장될 수 있다.
여기서, 인공 지능(artificial intelligence, AI)은 인간의 지능으로 할 수 있는 사고, 학습, 자기계발 등을 컴퓨터가 할 수 있도록 하는 방법을 연구하는 컴퓨터 공학 및 정보기술의 한 분야로, 컴퓨터가 인간의 지능적인 행동을 모방할 수 있도록 하는 것을 의미한다.
또한, 인공지능은 그 자체로 존재하는 것이 아니라, 컴퓨터 과학의 다른 분야와 직간접으로 많은 관련을 맺고 있다. 특히 현대에는 정보기술의 여러 분야에서 인공지능적 요소를 도입하여, 그 분야의 문제 풀이에 활용하려는 시도가 매우 활발하게 이루어지고 있다.
머신 러닝(machine learning)은 인공지능의 한 분야로, 컴퓨터에 명시적인 프로그램 없이 배울 수 있는 능력을 부여하는 연구 분야이다.
구체적으로 머신 러닝은, 경험적 데이터를 기반으로 학습을 하고 예측을 수행하고 스스로의 성능을 향상시키는 시스템과 이를 위한 알고리즘을 연구하고 구축하는 기술이라 할 수 있다. 머신 러닝의 알고리즘들은 엄격하게 정해진 정적인 프로그램 명령들을 수행하는 것이라기보다, 입력 데이터를 기반으로 예측이나 결정을 이끌어내기 위해 특정한 모델을 구축하는 방식을 취한다.
용어 '머신 러닝'은 용어 '기계 학습'과 혼용되어 사용될 수 있다.
기계 학습에서 데이터를 어떻게 분류할 것인가를 놓고, 많은 기계 학습 알고리즘이 개발되었다. 의사결정나무(Decision Tree)나 베이지안 망(Bayesian network), 서포트벡터머신(SVM: support vector machine), 그리고 인공 신경망(ANN: Artificial Neural Network) 등이 대표적이다.
의사결정나무는 의사결정규칙(Decision Rule)을 나무구조로 도표화하여 분류와 예측을 수행하는 분석방법이다.
베이지안 망은 다수의 변수들 사이의 확률적 관계(조건부독립성: conditional independence)를 그래프 구조로 표현하는 모델이다. 베이지안 망은 비지도 학습(unsupervised learning)을 통한 데이터마이닝(data mining)에 적합하다.
서포트벡터머신은 패턴인식과 자료분석을 위한 지도 학습(supervised learning)의 모델이며, 주로 분류와 회귀분석을 위해 사용한다.
인공신경망은 생물학적 뉴런의 동작원리와 뉴런간의 연결 관계를 모델링한 것으로 노드(node) 또는 처리 요소(processing element)라고 하는 다수의 뉴런들이 레이어(layer) 구조의 형태로 연결된 정보처리 시스템이다.
인공 신경망은 기계 학습에서 사용되는 모델로써, 기계학습과 인지과학에서 생물학의 신경망(동물의 중추신경계 중 특히 뇌)에서 영감을 얻은 통계학적 학습 알고리즘이다.
구체적으로 인공신경망은 시냅스(synapse)의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다.
용어 인공신경망은 용어 뉴럴 네트워크(Neural Network)와 혼용되어 사용될 수 있다.
인공신경망은 복수의 레이어(layer)를 포함할 수 있고, 레이어들 각각은 복수의 뉴런(neuron)을 포함할 수 있다. 또한 인공신경망은 뉴런과 뉴런을 연결하는 시냅스를 포함할 수 있다.
인공 신경망은 일반적으로 다음의 세가지 인자, 즉 (1) 다른 레이어의 뉴런들 사이의 연결 패턴 (2) 연결의 가중치를 갱신하는 학습 과정 (3) 이전 레이어로부터 수신되는 입력에 대한 가중 합으로부터 출력값을 생성하는 활성화 함수에 의해 정의될 수 있다.
인공 신경망은, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network), MLP(Multilayer Perceptron), CNN(Convolutional Neural Network)와 같은 방식의 네트워크 모델들을 포함할 수 있으나, 이에 한정되지 않는다.
본 명세서에서 용어 '레이어'는 용어 '계층'과 혼용되어 사용될 수 있다.
인공신경망은 계층 수에 따라 단층 신경망(Single-Layer Neural Networks)과 다층 신경망(Multi-Layer Neural Networks)으로 구분된다.
일반적인 단층 신경망은, 입력층과 출력층으로 구성된다.
또한 일반적인 다층 신경망은 입력층(Input Layer)과 하나 이상의 은닉층(Hidden Layer), 출력층(Output Layer)으로 구성된다.
입력층은 외부의 자료들을 받아들이는 층으로서, 입력층의 뉴런 수는 입력되는 변수의 수와 동일하며, 은닉층은 입력층과 출력층 사이에 위치하며 입력층으로부터 신호를 받아 특성을 추출하여 출력층으로 전달한다. 출력층은 은닉층으로부터 신호를 받고, 수신한 신호에 기반한 출력 값을 출력한다. 뉴런간의 입력신호는 각각의 연결강도(가중치)와 곱해진 후 합산되며 이 합이 뉴런의 임계치보다 크면 뉴런이 활성화되어 활성화 함수를 통하여 획득한 출력값을 출력한다.
한편 입력층과 출력 층 사이에 복수의 은닉층을 포함하는 심층 신경망은, 기계 학습 기술의 한 종류인 딥 러닝을 구현하는 대표적인 인공 신경망일 수 있다.
한편 용어 '딥 러닝'은 용어 '심층 학습'과 혼용되어 사용될 수 있다.
인공 신경망은 훈련 데이터(training data)를 이용하여 학습(training)될 수 있다. 여기서 학습이란, 입력 데이터를 분류(classification)하거나 회귀분석(regression)하거나 군집화(clustering)하는 등의 목적을 달성하기 위하여, 학습 데이터를 이용하여 인공 신경망의 파라미터(parameter)를 결정하는 과정을 의미할 수 있다. 인공 신경망의 파라미터의 대표적인 예시로써, 시냅스에 부여되는 가중치(weight)나 뉴런에 적용되는 편향(bias)을 들 수 있다.
훈련 데이터에 의하여 학습된 인공 신경망은, 입력 데이터를 입력 데이터가 가지는 패턴에 따라 분류하거나 군집화 할 수 있다.
한편 훈련 데이터를 이용하여 학습된 인공 신경망을, 본 명세서에서는 학습 모델(a trained model)이라 명칭 할 수 있다.
다음은 인공 신경망의 학습 방식에 대하여 설명한다.
인공 신경망의 학습 방식은 크게, 지도 학습, 비 지도 학습, 준 지도 학습(Semi-Supervised Learning), 강화 학습(Reinforcement Learning)으로 분류될 수 있다.
지도 학습은 훈련 데이터로부터 하나의 함수를 유추해내기 위한 기계 학습의 한 방법이다.
그리고 이렇게 유추되는 함수 중, 연속적인 값을 출력하는 것을 회귀분석(Regression)이라 하고, 입력 벡터의 클래스(class)를 예측하여 출력하는 것을 분류(Classification)라고 할 수 있다.
지도 학습에서는, 훈련 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시킨다.
여기서 레이블이란, 훈련 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과 값)을 의미할 수 있다.
본 명세서에서는 훈련 데이터가 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과값)을 레이블 또는 레이블링 데이터(labeling data)이라 명칭 한다.
또한 본 명세서에서는, 인공 신경망의 학습을 위하여 훈련 데이터에 레이블을 설정하는 것을, 훈련 데이터에 레이블링 데이터를 레이블링(labeling) 한다고 명칭 한다.
이 경우 훈련 데이터와 훈련 데이터에 대응하는 레이블)은 하나의 트레이닝 셋(training set)을 구성하고, 인공 신경망에는 트레이닝 셋의 형태로 입력될 수 있다.
한편 훈련 데이터는 복수의 특징(feature)을 나타내고, 훈련 데이터에 레이블이 레이블링 된다는 것은 훈련 데이터가 나타내는 특징에 레이블이 달린다는 것을 의미할 수 있다. 이 경우 훈련 데이터는 입력 객체의 특징을 벡터 형태로 나타낼 수 있다.
인공 신경망은 훈련 데이터와 레이블링 데이터를 이용하여, 훈련 데이터와 레이블링 데이터의 연관 관계에 대한 함수를 유추할 수 있다. 그리고, 인공 신경망에서 유추된 함수에 대한 평가를 통해 인공 신경망의 파라미터가 결정(최적화)될 수 있다.
비 지도 학습은 기계 학습의 일종으로, 훈련 데이터에 대한 레이블이 주어지지 않는다.
구체적으로, 비 지도 학습은, 훈련 데이터 및 훈련 데이터에 대응하는 레이블의 연관 관계 보다는, 훈련 데이터 자체에서 패턴을 찾아 분류하도록 인공 신경망을 학습시키는 학습 방법일 수 있다.
비 지도 학습의 예로는, 군집화 또는 독립 성분 분석(Independent Component Analysis)을 들 수 있다.
본 명세서에서 용어 '군집화'는 용어 '클러스터링'과 혼용되어 사용될 수 있다.
비지도 학습을 이용하는 인공 신경망의 일례로 생성적 적대 신경망(GAN: Generative Adversarial Network), 오토 인코더(AE: Autoencoder)를 들 수 있다.
생성적 적대 신경망이란, 생성기(generator)와 판별기(discriminator), 두 개의 서로 다른 인공지능이 경쟁하며 성능을 개선하는 머신 러닝 방법이다.
이 경우 생성기는 새로운 데이터를 창조하는 모형으로, 원본 데이터를 기반으로 새로운 데이터를 생성할 수 있다.
또한 판별기는 데이터의 패턴을 인식하는 모형으로, 입력된 데이터가 원본 데이터인지 또는 생성기에서 생성한 새로운 데이터인지 여부를 감별하는 역할을 수행할 수 있다.
그리고 생성기는 판별기를 속이지 못한 데이터를 입력 받아 학습하며, 판별기는 생성기로부터 속은 데이터를 입력 받아 학습할 수 있다. 이에 따라 생성기는 판별기를 최대한 잘 속이도록 진화할 수 있고, 판별기는 원본 데이터와 생성기에 의해 생성된 데이터를 잘 구분하도록 진화할 수 있다.
오토 인코더는 입력 자체를 출력으로 재현하는 것을 목표로 하는 신경망이다.
오토 인코더는 입력층, 적어도 하나의 은닉층 및 출력층을 포함한다.
이 경우 은닉 계층의 노드 수가 입력 계층의 노드 수보다 적으므로 데이터의 차원이 줄어들게 되며, 이에 따라 압축 또는 인코딩이 수행되게 된다.
또한 은닉 계층에서 출력한 데이터는 출력 계층으로 들어간다. 이 경우 출력 계층의 노드 수는 은닉 계층의 노드 수보다 많으므로, 데이터의 차원이 늘어나게 되며, 이에 따라 압축 해제 또는 디코딩이 수행되게 된다.
한편 오토 인코더는 학습을 통해 뉴런의 연결 강도를 조절함으로써 입력 데이터가 은닉층 데이터로 표현된다. 은닉층에서는 입력층보다 적은 수의 뉴런으로 정보를 표현하는데 입력 데이터를 출력으로 재현할 수 있다는 것은, 은닉층이 입력 데이터로부터 숨은 패턴을 발견하여 표현했다는 것을 의미할 수 있다.
준 지도 학습은 기계 학습의 일종으로, 레이블이 주어진 훈련 데이터와 레이블이 주어지지 않은 훈련 데이터를 모두 사용하는 학습 방법을 의미할 수 있다.
준 지도 학습의 기법 중 하나로, 레이블이 주어지지 않은 훈련 데이터의 레이블을 추론한 후 추론된 라벨을 이용하여 학습을 수행하는 기법이 있으며, 이러한 기법은 레이블링에 소요되는 비용이 큰 경우에 유용하게 사용될 수 있다.
강화 학습은, 에이전트(Agent)가 매 순간 어떤 행동을 해야 좋을지 판단할 수 있는 환경이 주어진다면, 데이터 없이 경험으로 가장 좋을 길을 찾을 수 있다는 이론이다.
강화 학습은 주로 마르코프 결정 과정(MDP: Markov Decision Process)에 의하여 수행될 수 있다.
마르코프 결정 과정을 설명하면, 첫 번째로 에이전트가 다음 행동을 하기 위해 필요한 정보들이 구성된 환경이 주어지며, 두 번째로 그 환경에서 에이전트가 어떻게 행동할지 정의하고, 세 번째로 에이전트가 무엇을 잘하면 보상(reward)를 주고 무엇을 못하면 벌점(penalty)을 줄지 정의하며, 네 번째로 미래의 보상이 최고점에 이를 때까지 반복 경험하여 최적의 정책(policy)을 도출하게 된다.
인공 신경망은 모델의 구성, 활성 함수(Activation Function), 손실 함수(Loss Function) 또는 비용 함수(Cost Function), 학습 알고리즘, 최적화 알고리즘 등에 의해 그 구조가 특정되며, 학습 전에 하이퍼파라미터(Hyperparameter)가 미리 설정되고, 이후에 학습을 통해 모델 파라미터(Model Parameter)가 설정되어 내용이 특정될 수 있다.
예컨대, 인공 신경망의 구조를 결정하는 요소에는 은닉층의 개수, 각 은닉층에 포함된 은닉 노드의 개수, 입력 특징 벡터(Input Feature Vector), 대상 특징 벡터(Target Feature Vector) 등이 포함될 수 있다.
하이퍼파라미터는 모델 파라미터의 초기값 등과 같이 학습을 위하여 초기에 설정하여야 하는 여러 파라미터들을 포함한다. 그리고, 모델 파라미터는 학습을 통하여 결정하고자 하는 여러 파라미터들을 포함한다.
예컨대, 하이퍼파라미터에는 노드 간 가중치 초기값, 노드 간 편향 초기값, 미니 배치(Mini-batch) 크기, 학습 반복 횟수, 학습률(Learning Rate) 등이 포함될 수 있다. 그리고, 모델 파라미터에는 노드 간 가중치, 노드 간 편향 등이 포함될 수 있다.
손실 함수는 인공 신경망의 학습 과정에서 최적의 모델 파라미터를 결정하기 위한 지표(기준)로 이용될 수 있다. 인공 신경망에서 학습은 손실 함수를 줄이기 위하여 모델 파라미터들을 조작하는 과정을 의미하며, 학습의 목적은 손실 함수를 최소화하는 모델 파라미터를 결정하는 것으로 볼 수 있다.
손실 함수는 주로 평균 제곱 오차(MSE: Mean Squared Error) 또는 교차 엔트로피 오차(CEE, Cross Entropy Error)를 사용할 수 있으며, 본 개시가 이에 한정되지는 않는다.
교차 엔트로피 오차는 정답 레이블이 원 핫 인코딩(one-hot encoding)된 경우에 사용될 수 있다. 원 핫 인코딩은 정답에 해당하는 뉴런에 대하여만 정답 레이블 값을 1로, 정답이 아닌 뉴런은 정답 레이블 값이 0으로 설정하는 인코딩 방법이다.
머신 러닝 또는 딥 러닝에서는 손실 함수를 최소화하기 위하여 학습 최적화 알고리즘을 이용할 수 있으며, 학습 최적화 알고리즘에는 경사 하강법(GD: Gradient Descent), 확률적 경사 하강법(SGD: Stochastic Gradient Descent), 모멘텀(Momentum), NAG(Nesterov Accelerate Gradient), Adagrad, AdaDelta, RMSProp, Adam, Nadam 등이 있다.
경사 하강법은 현재 상태에서 손실 함수의 기울기를 고려하여 손실 함수값을 줄이는 방향으로 모델 파라미터를 조정하는 기법이다.
모델 파라미터를 조정하는 방향은 스텝(step) 방향, 조정하는 크기는 스텝 사이즈(size)라고 칭한다.
이때, 스텝 사이즈는 학습률을 의미할 수 있다.
경사 하강법은 손실 함수를 각 모델 파라미터들로 편미분하여 기울기를 획득하고, 모델 파라미터들을 획득한 기울기 방향으로 학습률만큼 변경하여 갱신할 수 있다.
확률적 경사 하강법은 학습 데이터를 미니 배치로 나누고, 각 미니 배치마다 경사 하강법을 수행하여 경사 하강의 빈도를 높인 기법이다.
Adagrad, AdaDelta 및 RMSProp는 SGD에서 스텝 사이즈를 조절하여 최적화 정확도를 높이는 기법이다. SGD에서 모멘텀 및 NAG는 스텝 방향을 조절하여 최적화 정확도를 높이는 기법이다. Adam은 모멘텀과 RMSProp를 조합하여 스텝 사이즈와 스텝 방향을 조절하여 최적화 정확도를 높이는 기법이다. Nadam은 NAG와 RMSProp를 조합하여 스텝 사이즈와 스텝 방향을 조절하여 최적화 정확도를 높이는 기법이다.
인공 신경망의 학습 속도와 정확도는 인공 신경망의 구조와 학습 최적화 알고리즘의 종류뿐만 아니라, 하이퍼파라미터에 크게 좌우되는 특징이 있다. 따라서, 좋은 학습 모델을 획득하기 위하여는 적당한 인공 신경망의 구조와 학습 알고리즘을 결정하는 것뿐만 아니라, 적당한 하이퍼파라미터를 설정하는 것이 중요하다.
통상적으로 하이퍼파라미터는 실험적으로 다양한 값으로 설정해가며 인공 신경망을 학습시켜보고, 학습 결과 안정적인 학습 속도와 정확도를 제공하는 최적의 값으로 설정한다.
상술된 바와 같은 인공 지능 기술이 적용된 슈퍼 레졸루션 모델들(130)은 먼저 트레이닝 연산 시스템(300)에 의해 트레이닝 단계를 거쳐 생성될 수 있고, 서버 연산 시스템(200)에 저장되었다가 네트워크(400)를 통해 전자 장치(100)로 전송된 것일 수 있다.
트레이닝 연산 시스템(300) 또는 서버 연산 시스템(200)은 주기적으로 혹은 요청에 의하여 전자 장치(100)에 기계 학습 또는 딥 러닝에 의하여 학습한 슈퍼 레졸루션 모델을 전송할 수 있다.
슈퍼 레졸루션 모델들(130)은 이미지 처리용 신경망으로서, 저해상도 동영상이 입력되면 고해상도 동영상을 출력하기 위해 동영상의 프레임(frame, image)을 처리하도록 훈련된 학습 모델일 수 있다.
통상적으로 슈퍼 레졸루션 모델들(130)은 트레이닝 연산 시스템(300)에서 트레이닝 단계를 마치고 저해상도 동영상에 적용할 수 있는 상태로 전자 장치(100)에 저장되어 있을 수 있으나, 일부 실시 예에서 슈퍼 레졸루션 모델들(130)은 전자 장치(100)에서도 추가적으로 트레이닝을 거쳐 업데이트 또는 업그레이드될 수도 있다.
한편, 전자 장치(100)에 저장되는 슈퍼 레졸루션 모델들(130)은 트레이닝 연산 시스템(300)에서 생성된 슈퍼 레졸루션 모델들(130) 중 일부일 수 있으며, 필요에 따라, 새로운 슈퍼 레졸루션 모델들이 트레이닝 연산 시스템(300)에서 생성되어 전자 장치(100)로 전달될 수 있다.
다른 예로서, 슈퍼 레졸루션 모델들(130)은 전자 장치(100)에 저장되는 대신 서버 연산 시스템(200)에 저장되고, 스트리밍 서비스의 형태로 전자 장치(100)에 필요한 기능을 제공할 수도 있다.
서버 연산 시스템(200)은 프로세서들(210) 및 메모리(220)를 포함하며, 일반적으로 전자 장치(100)보다 큰 프로세싱 능력 및 큰 메모리 용량을 가질 수 있다. 따라서, 시스템 구현에 따라, 적용에 보다 많은 프로세싱 능력을 필요로 하는 무거운 슈퍼 레졸루션 모델들(230)은 서버 연산 시스템(200)에 저장되고, 적용에 보다 적은 프로세싱 능력을 필요로 하는 경량의 슈퍼 레졸루션 모델들(130)은 전자 장치(100)에 저장되도록 구성될 수도 있다.
전자 장치(100)는 동영상에 대하여 저장하고 있는 여러 슈퍼 레졸루션 모델들(130) 중 처리 대상이 되는 프레임의 속성에 따라 복잡도가 다른 슈퍼 레졸루션 모델들을 복합적으로 적용할 수 있다. 일 예에서, 전자 장치(100)는 동영상의 일부 프레임에는 복잡도가 낮은 경량의 슈퍼 레졸루션 모델을 적용하고 동일한 동영상의 다른 일부 프레임에는 복잡도가 높은 중량의 슈퍼 레졸루션 모델을 적용할 수 있다. 다른 일 예에서, 전자 장치(100)는 경량의 슈퍼 레졸루션 모델(130)이 필요한 경우에는 전자 장치(100)에 저장되어 있는 슈퍼 레졸루션 모델(130)을 사용하고, 중량의 슈퍼 레졸루션 모델(230)이 필요한 경우에는 서버 연산 시스템(200)에 저장된 슈퍼 레졸루션 모델(230)을 사용하도록 구성될 수도 있다.
전자 장치(100) 또는 서버 연산 시스템(200)이 포함하는 슈퍼 레졸루션 모델들(130, 230)은 트레이닝 연산 시스템(300)에 의해 생성된 이미지 처리용 신경망일 수 있다.
도 2는 본 개시의 실시예에 따른 이미지 처리용 신경망을 생성하기 위한 시스템을 도시한다.
트레이닝 연산 시스템(300)은 하나 이상의 프로세서들(310)과 메모리(320)를 포함할 수 있다. 또한, 트레이닝 연산 시스템(300)은 기계 학습 모델들을 트레이닝하기 위한 모델 트레이너(350) 및 트레이닝 데이터(360)를 포함할 수 있다.
트레이닝 연산 시스템(300)은 단일한 서버뿐만 아니라 복수의 서버 세트, 클라우드 서버 또는 이들의 조합 등으로 구현될 수 있다.
즉, 트레이닝 연산 시스템(300)은 복수로 구성되어 트레이닝 연산 시스템 세트(혹은 클라우드 서버)를 구성할 수 있고, 트레이닝 연산 시스템 세트에 포함된 적어도 하나 이상의 트레이닝 연산 시스템(300)은 분산 처리를 통하여 데이터 분석 또는 학습하여 결과를 도출할 수 있다.
트레이닝 연산 시스템(300)은 모델 트레이너(350)를 통해 서로 복잡도 또는 구조가 다른 다수의 슈퍼 레졸루션 모델들을 생성할 수 있다.
예를 들어, 사용자가 관심을 가지지 않을 프레임은 은닉층이 2계층으로 형성된 이미지 처리용 신경망이 사용될 수 있지만, 사용자가 관심을 가질 프레임은 은닉층이 4계층으로 형성된 이미지 처리용 신경망이 사용될 수 있다.
트레이닝 연산 시스템(300)은 최초 신경망의 구성에 따라 처리 시간은 오래 걸리지만 보다 향상된 성능을 제공하는 복잡도가 높은 이미지 처리용 신경망을 생성할 수도 있고, 보다 낮은 성능을 제공하지만 처리 시간이 단축되는 복잡도가 낮은 이미지 처리용 신경망을 생성할 수 있다.
이와 같이, 다양한 프레임에서 사용될 수 있는 다양한 복잡도를 가진 슈퍼 레졸루션 모델들을 포함하는 슈퍼 레졸루션 모델 그룹이 형성될 수 있다.
여기서, 이미지 처리용 신경망의 복잡도는 입력 노드의 개수, 피쳐의 개수, 채널의 개수와 은닉층의 개수 등에 의해 결정되는 것으로 피쳐의 개수가 많을수록, 채널의 개수가 많을수록, 그리고 은닉층의 개수가 많을수록 복잡도가 높은 것으로 이해될 수 있다. 또한, 채널의 수가 많을수록, 그리고 은닉층의 수가 많을수록 신경망이 무거운 것으로 지칭될 수도 있다. 또한, 신경망의 복잡도는 신경망의 차원수(dimensionality)라고 지칭될 수도 있다.
신경망의 복잡도가 높을수록 프레임 해상도 향상 성능은 더 우수할 수 있지만, 프레임 처리에 소요되는 시간은 더 길어질 수 있다. 반대로, 신경망이 가벼울수록 프레임 해상도 향상 성능은 상대적으로 낮을 수 있지만, 프레임 처리에 소요되는 시간은 더 짧아질 수 있다.
트레이닝 연산 시스템(300)은 모델 트레이너(350)를 통해 서로 다른 개수의 입력 프레임을 요구하는 다수의 슈퍼 레졸루션 모델들을 생성할 수 있다.
트레이닝 연산 시스템(300)은 슈퍼 레졸루션 모델은 한 장의 저해상도 이미지를 가지고 고해상도의 이미지를 만들어 내는 단일 이미지 슈퍼 레졸루션(SISR: Single Image Super Resolution) 모델과 복수의 저해상도 이미지를 가지고 고해상도의 이미지를 만들어 내는 멀티 이미지 슈퍼 레졸루션(Multiple Images Super Resolution) 모델을 생성할 수 있다.
또한, 트레이닝 연산 시스템(300)은 동일한 단일 이미지 슈퍼 레졸루션 모델의 경우에도 입력 노드의 개수, 피쳐의 개수, 채널의 개수와 은닉층의 개수 등 구조 별로 복잡도가 서로 다른 복수의 단일 이미지 슈퍼 레졸루션 모델을 생성할 수 있고, 마찬가지로 멀티 이미지 슈퍼 레졸루션 모델의 경우에도 복잡도가 서로 다른 복수의 멀티 이미지 슈퍼 레졸루션 모델을 생성할 수 있다.
일 예에서, 트레이닝 연산 시스템(300)은 트레이닝 데이터(360)에 기초하여 다수의 슈퍼 레졸루션 모델들을 생성할 수 있다.
트레이닝 데이터(360)가 사람의 고해상도 이미지로 레이블된 해당 사람의 저해상도 이미지인 경우 트레이닝 연산 시스템(300)은 사람의 이미지의 해상도를 최적으로 향상시킬 수 있는 슈퍼 레졸루션 모델을 생성할 수 있다. CCTV 동영상 데이터의 슈퍼 레졸루션 처리는 사람 얼굴의 식별 가능성이 중요하므로, 사람의 이미지의 해상도를 향상시킬 수 있는 서로 다른 복잡도를 가지면서 성능이 다른 슈퍼 레졸루션 모델들을 생성할 수 있다.
예를 들어, 트레이닝 연산 시스템(300)은 사람 이미지의 해상도를 향상시키도록 훈련된 동영상 프레임 처리용 신경망들로서, 대개의 프레임에 적용되는 슈퍼 레졸루션 모델의 신경망보다 더 많은 개수의 은닉층을 가지는 신경망을 포함하는 슈퍼 레졸루션 모델 그룹을 생성할 수 있고, 은닉층의 개수를 서로 달리하는 신경망을 포함하는 슈퍼 레졸루션 모델 그룹을 생성할 수 있다.
도 3은 본 개시의 실시예에 따른 이미지 처리용 신경망을 설명하기 위한 도면이다.
이미지 처리용 신경망은 입력층과, 은닉층, 그리고 출력층으로 구성될 수 있다. 피처(feature)의 개수에 따라 입력 노드의 개수가 정해지게 되고, 노드의 개수가 많아질수록 신경망의 복잡도 또는 차원수는 증가하게 된다. 또한, 은닉층의 개수가 많아질수록 신경망의 복잡도 또는 차원수가 증가하게 된다.
피처의 개수, 입력 노드의 개수, 은닉층의 개수, 각 층들의 노드의 개수는 신경망 설계자에 의해 정해질 수 있으며, 복잡도가 증가할수록 처리 시간은 더 많이 소요되지만 더 좋은 성능을 보일 수 있다.
초기 신경망 구조가 설계되면, 훈련 데이터를 이용해 신경망을 훈련시킬 수 있다. 프레임 해상도 향상을 위한 신경망을 구현하기 위해서는 고해상도 원본 이미지와 해당 이미지의 저해상도 버전이 필요하다. 고해상도 원본 이미지들을 수집한 후 해당 이미지에 블러(blur) 효과를 주고, 다운샘플링을 수행함으로써, 고해상도 원본 이미지들에 대응하는 저해상도 이미지들을 준비할 수 있다.
이러한 저해상도 이미지들에 대해 대응하는 고해상도 원본 이미지들을 레이블로 연결시키면 이미지 해상도를 향상시키기 위한 신경망을 트레이닝 시킬 수 있는 트레이닝 데이터가 준비된다.
많은 양의 트레이닝 데이터를 통해 신경망을 지도학습 방식으로 훈련시키면 저해상도 이미지가 입력되었을 때 고해상도 이미지를 출력할 수 있는 이미지 처리용 신경망 모델이 생성될 수 있다.
여기서, 트레이닝 데이터로 특정 종류의 객체의 이미지들을 포함한 트레이닝 데이터를 사용하면 해당 객체 이미지의 해상도를 향상시키는데 최적화된 이미지 처리용 신경망을 획득할 수 있다.
한편, 이미지 처리용 신경망의 처리 속도와 처리 성능은 트레이드 오프 관계에 있을 수 있고, 설계자는 신경망의 초기 구조를 변경함으로써, 처리 속도 및 처리 성능이 서로 다른 다양한 슈퍼 레졸루션 모델용 신경망을 생성할 수 있다.
슈퍼 레졸루션 모델은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있으며, 슈퍼 레졸루션 모델의 일부 또는 전부가 소프트웨어로 구현되는 경우 슈퍼 레졸루션 모델을 구성하는 하나 이상의 명령어 또는 파라미터는 메모리(120, 220, 320)에 저장될 수 있다.
도 4는 본 개시의 실시 예에 따른 동영상 프레임 해상도 향상 방법을 설명하기 위한 순서도이다.
또한, 도 5는 도 4에서 설명된 본 개시의 실시 예에 따른 동영상 프레임 해상도 향상 방법이 동영상 데이터에 대해서 수행되는 과정을 설명하기 위한 도면이다.
프레임 향상 장치는 도 1에서 설명한 전자 장치(100)와 같은 구성을 가질 수 있다. 먼저, 프레임 해상도 향상 장치는 동영상 데이터(510)를 로딩(loading)할 수 있다(S410). 동영상 데이터는 카메라가 장착된 장치에 의해 촬영된 것일 수도 있고, 외부 장치로부터 유무선 통신을 통해 수신한 데이터일 수도 있다.
또한, 동영상 데이터의 로딩은 유무선 통신을 통해서 실시간 스트리밍 방식을 통해 수신한 스트리밍 데이터를 슈퍼 레졸루션 모델 적용을 위해 메모리에 일시적 또는 비 일시적으로 저장하는 것을 포함한다.
프레임 향상 장치는, 컴퓨터, 스마트폰, 태블릿 등 일반 사용자 단말기일 수도 있고, 동영상 데이터를 수신 받아 각 프레임의 해상도 향상을 수행하고 연결된 외부 디바이스(예를 들어, 모니터, 프로젝터, 디스플레이 장치, TV 등)에 그 결과를 전송하는 서버 역할의 장치일 수도 있다.
동영상 데이터(510)는 복수의 프레임으로 구성되어 있고, 프레임 향상 장치는 로딩한 동영상 데이터의 시간적 순서대로 처리할 프레임을 선택할 수 있다(S420).
프레임 향상 장치는 동영상 데이터(510)의 일부 프레임(521)에는 단일 프레임을 위한 슈퍼 레졸루션 모델을 적용하고 나머지 프레임(522)들에는 멀티 프레임을 위한 슈퍼 레졸루션 모델을 적용할 수 있다. 멀티 프레임 슈퍼 레졸루션이 적용되는 경우 버퍼(buffer)에 복수의 프레임을 로딩한 후 슈퍼 레졸루션 모델을 적용할 수 있다.
도 5를 참조하여 설명하는 본 발명의 실시 예는 프레임 향상 장치가 복잡도가 서로 다른 두 개의 슈퍼 레졸루션 모델을 저장하고 있는 것으로 가정하고, 슈퍼 레졸루션 모델 1이 슈퍼 레졸루션 모델 2보다 복잡도가 높은 모델인 것으로 전제한다.
프레임 향상 장치는 처리할 프레임을 선택하면 처리할 프레임의 유형을 판단할 수 있다(S430).
예를 들어, 프레임 향상 장치는 미리 설정된 주기(periodical) 간격에 대응되는 프레임들(521)에는 복잡도가 높은 슈퍼 레졸루션 모델 1을 적용하고, 주기 간격에 대응되지 않는 프레임들(522)에는 슈퍼 레졸루션 모델 1의 복잡도보다 낮은 복잡도를 갖는 슈퍼 레졸루션 모델 2를 적용하는 것으로 미리 설정할 수 있다.
다른 실시 예에서, 프레임 향상 장치는 동영상 데이터의 디코딩(decoding) 이전의 프레임의 성격에 따라 처리할 프레임의 유형을 판단할 수 있다(S430).
예를 들어, 프레임 향상 장치는 처리할 프레임이 디코딩 이전에 주변 프레임을 참조하지 않는 인트라 프레임(intra frame)에 대응되는 경우, 처리할 프레임은 복잡도가 높은 슈퍼 레졸루션 모델 1을 적용하고, 주변 프레임을 참조하는 인터 프레임들(inter frames)에는 슈퍼 레졸루션 모델 1의 복잡도보다 낮은 복잡도를 갖는 슈퍼 레졸루션 모델 2를 적용하는 것으로 미리 설정할 수 있다.
따라서, 적응적으로(adaptively) 키 프레임(key frame)을 적용하여 인코딩(encoding)하는 경우에도, 중요한 키 프레임에는 해상도 향상의 효과가 높은 슈퍼 레졸루션 모델을 적용할 수 있다.
주기 간격을 기준으로 처리할 프레임의 유형을 판단하는 경우, 주기 간격은 프레임 개수로 표현되거나 시간(time)으로 표현될 수 있다. 예를 들어, 특정 프레임 개수 마다 슈퍼 레졸루션 모델 1을 적용하는 것으로 미리 설정된 경우, 프레임 향상 장치는 처리할 프레임이 로딩되는 숫자를 카운팅 하여 현재 처리할 프레임의 유형을 판단할 수 있다. 특정 시간 간격 마다 슈퍼 레졸루션 모델 1을 적용하는 것으로 미리 설정된 경우, 로딩되는 동영상 데이터의 초당 프레임 수를 고려하여 현재 처리할 프레임의 유형을 판단할 수 있다. 도 5의 실시 예는 주기 간격이 프레임 개수 4로 설정된 것을 전제하여 본 발명의 실시 예를 설명한다.
도 5를 참조하면, 첫 번째 처리할 프레임(511)은 동영상 데이터의 프레임들 중에서 주기 간격이 시작되는 프레임이므로, 복잡도가 높은 슈퍼 레졸루션 모델 1을 적용한 단일 이미지 슈퍼 레졸루션 처리를 수행하여(S452) 고해상도 프레임을 획득할 수 있다(S460).
두 번째 처리할 프레임(512)은 프레임의 유형을 판단한 결과(S430) 주기 간격에 대응되지 않는 프레임이므로, 적용할 슈퍼 레졸루션 모델로서 슈퍼 레졸루션 모델 1의 복잡도보다 낮은 복잡도를 갖는 슈퍼 레졸루션 모델 2를 선택할 수 있다.
프레임 향상 장치는 주기 간격에 대응되지 않는 프레임에 대해서 단일 이미지 슈퍼 레졸루션 모델을 적용하거나, 처리할 프레임의 주변 프레임들을 동시에 입력으로 사용하는 멀티 이미지 슈퍼 레졸루션 모델을 적용할 수 있다.
일 실시 예에서, 프레임 향상 장치는 주기 간격에 대응되지 않는 프레임들에 대해서 연산 속도가 빠르지만 복잡도가 낮은 슈퍼 레졸루션 모델을 적용하는 것을 보상하기 위해, 멀티 이미지 슈퍼 레졸루션 모델을 적용할 수 있다.
프레임 향상 장치는 멀티 이미지 슈퍼 레졸루션 모델인 슈퍼 레졸루션 모델 2를 적용하는 경우, 처리할 프레임과 함께 슈퍼 레졸루션 모델에 입력될 주변 프레임들을 선택할 수 있다(S440).
멀티 이미지 슈퍼 레졸루션 모델에 입력되는 주변 프레임과의 간격(주변 간격)은 미리 설정될 수 있고, 주변 간격은 프레임의 개수 또는 처리할 프레임으로부터의 시간 간격으로 표현될 수 있다.
도 5를 참조한 실시 예에서는 주변 간격으로 2 프레임이 설정되어, 처리할 프레임의 이전 2개의 프레임과 이후 2개의 프레임을 주변 프레임으로서 슈퍼 레졸루션 모델 2에 처리할 프레임과 함께 입력하는 것을 전제로 한다. 이 경우, 프레임 향상 장치는 버퍼에 주변 프레임들을 로딩한 후, 멀티 이미지 슈퍼 레졸루션 모델은 슈퍼 레졸루션 모델 2에 선택된 프레임들을 입력하여 고해상도 프레임을 획득할 수 있다(S460).
다른 실시 예에서, 인터 프레임에 멀티 이미지 슈퍼 레졸루션 모델을 적용하는 경우, 프레임 향상 장치는 모든 인터 프레임들에 대해서 멀티 이미지 슈퍼 레졸루션 모델을 적용할 때 적어도 하나의 인트라 프레임이 함께 입력될 수 있도록 주변 간격을 설정할 수 있다.
주변 간격의 미리 설정된 크기에 따라 버퍼 크기를 설정할 수 있다. 따라서, 처리할 프레임에 대한 고해상도 프레임을 획득한 이후에도, 해당 처리할 프레임은 이후 처리할 프레임에 대한 고해상도 프레임을 획득하기 위한 멀티 이미지 슈퍼 레졸루션 모델의 입력으로 사용하기 위해 버퍼에서 언 로딩(unloading)하지 않을 수 있다.
프레임 향상 장치는 멀티 이미지 슈퍼 레졸루션 모델에 입력되는 주변 프레임 선택을 위한 미리 설정되어 있는 주변 간격에 해당하는 프레임인 경우에도 미리 설정된 기준에 기반하여 멀티 이미지 슈퍼 레졸루션 모델의 입력에서 제외할 수 있다.
예를 들어, 처리할 프레임이 두 번째 프레임(513)이고 주변 간격으로 2 프레임이 설정된 경우, 처리할 프레임의 이전 2개의 프레임들(511, 512)과 이후 2개의 프레임들(514, 515)이 주변 간격에 해당할 수 있다. 그러나, 일부 프레임(514)이 처리할 프레임(513)으로부터 장면 변화 정도가 크다면, 프레임 향상 장치는 멀티 이미지 슈퍼 레졸루션 모델에 장면 변화 정도가 큰 일부 프레임(514)을 제외한 프레임들(511, 512, 513, 515)만 슈퍼 레졸루션 모델의 입력으로 사용할 수 있다.
프레임들 사이의 장면 변화 정도는 비교 대상 프레임들 사이의 밝기(brightness) 변화와 컬러 히스토그램(color histogram) 변화 또는 밝기 변화 량과 컬러 히스토그램 변화 량에 각각 계수(weighting factor)를 반영한 값, 비교 대상 프레임들 사이의 차분 이미지(subtraction image)의 픽셀 값의 합 또는 차분 이미지의 일정 값 이상인 픽셀들의 개수, 프레임에 대한 객체 인식을 수행한 결과 인식된 객체의 변화 등에 기반하여 측정할 수 있다.
따라서, 복잡도가 낮은 슈퍼 레졸루션 모델을 적용하는 경우에도 복수의 이미지를 입력으로 하여 높은 수준의 고해상도 프레임을 획득할 수 있고, 처리할 프레임과 장면 변화 정도가 큰 주변 프레임은 멀티 이미지 슈퍼 레졸루션 모델의 입력에서 제외함으로써 슈퍼 레졸루션 모델 적용 결과가 저해되는 것을 방지할 수 있다.
도 5를 다시 참조하여 설명하면, 미리 설정된 주기 간격이 4인 경우 동영상 데이터에서 해당 주기 간격에 해당하는 프레임들(511, 515, 519)에는 복잡도가 높은 슈퍼 레졸루션 모델을 적용하고 그 외 프레임들에는 복잡도가 낮은 슈퍼 레졸루션 모델을 적용할 수 있다. 복잡도가 낮은 슈퍼 레졸루션 모델은 멀티 이미지 슈퍼 레졸루션 모델일 수 있다.
도 5를 참조하여 설명한 본 발명의 실시 예는 프레임 향상 장치가 복잡도가 서로 다른 두 개의 슈퍼 레졸루션 모델을 저장하고 있는 것으로 가정했지만, 프레임 향상 장치는 그 이상 개수의 슈퍼 레졸루션 모델을 동영상 데이터의 프레임들에 적용하여 고해상도 프레임을 획득할 수도 있다.
프레임 향상 장치가 도 1과 같은 전자 장치(100)로 구현된 경우, 프레임 향상 장치는 슈퍼 레졸루션 모델 적용을 위한 연산 처리에 프로세서(110) 내부에 별도로 구현된 AI 전용 코어(core)를 이용할 수 있다. 또는, 모바일 장치의 AP(Application Processor)나 전자 장치의 CPU와 별개의 칩으로 구성된 AI 가속기를 이용하여 슈퍼 레졸루션 모델 적용을 위한 연산을 처리할 수도 있다. 이 경우, 프레임 향상 장치는 이미지 처리용 인공 신경망 모델에 기반하여 인공 신경망 인스턴스(instance)를 생성하고, 생성된 인스턴스에 처리할 프레임을 전달하여 슈퍼 레졸루션 처리를 수행할 수 있다.
일 실시예에서, AI 전용 코어나 AI 가속기는 슈퍼 레졸루션 모델을 위한 파라미터를 계산하기 위한 메모리 용량이 한 개의 슈퍼 레졸루션 모델을 운용할 정도인 경우 처리할 프레임의 판단된 유형에 기반하여 한 인공 신경망 모델에 기반한 인공 신경망 인스턴스를 선택적으로 생성하여 슈퍼 레졸루션 처리를 수행할 수 있다. AI 전용 코어나 AI 가속기의 메모리 용량이 적절한 경우, 복수의 이미리 처리용 인공 신경망 모델에 기반한 복수의 인공 신경망 인스턴스들을 생성하고 이에 적합한 프레임을 전달하여 슈퍼 레졸루션 처리를 수행할 수 있다.
도 6은 본 개시의 다른 실시 예에 따른 동영상 프레임 해상도 향상 방법을 설명하기 위한 순서도이다.
또한, 도 7 내지 도 10은 도 6에서 설명된 본 개시의 실시 예에 따른 동영상 프레임 해상도 향상 방법이 동영상 데이터에 대해서 수행되는 과정을 설명하기 위한 도면이다. 이하의 설명에서 도 1 내지 도 5에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다.
도 8 내지 도 10을 참조하여 설명하는 본 발명의 실시 예는 프레임 향상 장치가 복잡도가 서로 다른 두 개의 슈퍼 레졸루션 모델을 저장하고 있는 것으로 가정하고, 슈퍼 레졸루션 모델 1이 슈퍼 레졸루션 모델 2보다 복잡도가 높은 모델인 것으로 전제한다.
프레임 향상 장치는 도 1에서 설명한 전자 장치(100)와 같은 구성을 가질 수 있다. 먼저, 프레임 해상도 향상 장치는 동영상 데이터(700)를 로딩(loading)할 수 있다(S510).
도 7을 참조하면, 동영상 데이터(700)는 장면 변화 속도가 서로 다른 프레임들로 구성된 동영상일 수 있다. 예를 들어, 동영상 데이터(700)는 장면 변화 속도가 미리 설정된 기준 범위 내의 속도인 프레임들(710)과 뉴스 방송과 같이 기준보다 느린 장면 변화를 갖는 프레임들(720) 및 스포츠 방송과 같이 기준보다 빠른 장면 변화를 갖는 프레임들(730)로 구성된 동영상 데이터일 수 있다.
프레임 향상 장치는 프레임의 장면 변화 정도를 판단한 결과에 기반하여, 장면 변화 정도에 따라 서로 다른 복잡도를 갖는 슈퍼 레졸루션 모델을 적용할 수 있다.
예를 들어, 미리 설정된 주기 간격에 대응하는 프레임들에 복잡도가 높은 슈퍼 레졸루션 모델을 적용하는 경우, 프레임 향상 장치는 장면 변화 정도가 느린 프레임들에 대해서 주기 간격을 더 짧게 변경하거나, 장면 변화 정도가 빠른 프레임들에 대해서 주기 간격을 더 길게 변경할 수 있다. 따라서, 장면 변화 정도가 느린 프레임들로 구성된 구간에서는 복잡도가 높은 슈퍼 레졸루션 모델이 적용되는 프레임들이 많아지고, 장면 변화 정도가 빠른 프레임들로 구성된 구간에서는 복잡도가 높은 슈퍼 레졸루션 모델이 적용되는 프레임들이 적어질 수 있다. 이하에서 자세히 설명한다.
프레임 향상 장치는 로딩한 동영상 데이터의 시간적 순서대로 처리할 프레임을 선택할 수 있다(S620).
프레임 향상 장치는 동영상 데이터(700)의 주기 간격에 대응되는 프레임(741, 751, 761) 에는 단일 프레임을 위한 슈퍼 레졸루션 모델을 적용하고 나머지 프레임들(742, 752, 762)에는 멀티 프레임을 위한 슈퍼 레졸루션 모델을 적용할 수 있다. 멀티 프레임 슈퍼 레졸루션이 적용되는 경우 버퍼에 복수의 프레임을 로딩한 후 슈퍼 레졸루션 모델을 적용할 수 있다.
프레임 향상 장치는 처리할 프레임의 이전 프레임에 대한 변화를 분석하여 장면 변화 정도를 판단할 수 있다. 장면 변화 정도는 처리할 프레임의 이전 프레임에 대한 차분 영상의 통계적인 분포 변화 또는 프레임에서 인식된 객체(object)의 움직임 정도에 기반하여 판단할 수 있다.
객체의 움직임 정도에 기반하여 판단하는 경우 처리할 프레임에서 인식된 객체와 이전 프레임에서 인식된 객체들의 동일성을 비교하고, 동일한 객체라고 판단된 경우 해당 객체가 이전 프레임에서 처리할 프레임으로 움직인 정도를 기준과 비교하여 장면 변화 정도를 판단할 수 있다. 객체 인식용 신경망은 CNN(Convolutional Neural Network), FCNN(Fully-convolutional Neural Network), R-CNN(Region-based Convolutional Neural Network), YOLO(You Only Look Once) 등의 다양한 모델을 이용하여 형성될 수 있다.
프레임 향상 장치는 장면 전환(scene change)을 검출하여, 동일한 장면이라고 판단된 프레임들 내에서만 장면 변화 속도를 판단할 수도 있다. 예를 들어, 도 7과 같이 구성된 동영상 데이터의 경우 첫 번째 프레임 그룹(710)과 두 번째 프레임 그룹(720) 및 세 번째 프레임 그룹(730)은 서로 다른 장면으로 판단하여, 각 프레임 그룹의 마지막 프레임과 그 다음 프레임 그룹의 첫 프레임 사이에서는 장면 변화 정도를 판단하지 않을 수 있다.
장면 전환은 카메라 움직임, 영상 효과 또는 동영상 편집 과정 등에서 물리적 또는 논리적으로 프레임의 내용이 완전히 서로 다른 내용의 프레임으로 전환되는 지점을 의미한다. 뉴스 프로그램의 아나운서가 방송되는 화면에서 기자가 있는 현장 화면으로 전환되는 지점을 예로 들 수 있다.
장면 전환을 구분하는 방법의 물리적인 특성에 따라, 프레임의 색상에 기반하거나 움직임 벡터, 에지 정보, 픽셀 차 등을 이용하여 장면 전환을 검출할 수 있고, 종래의 장면 전환 기술은 특별히 그 종류를 한정하지 않고 이용될 수 있다.
이에 비해 장면 변화는 장면이 전혀 다른 내용으로 전환되는 것이 아니라, 유사한 성격의 장면으로 구성된 프레임들로서, 프레임 내의 객체들이 움직이거나 카메라 각도가 점진적으로 변화하는 정도에 그치는 것을 예로 들 수 있다.
도 8을 참조하면, 프레임 향상 장치는 첫 번째 프레임 그룹(710)의 프레임들 사이의 장면 변화가 기준 범위 이내인 경우, 미리 설정된 주기 간격에 기반하여 주기 간격에 대응하는 프레임들(711, 715)에는 복잡도가 높은 슈퍼 레졸루션 모델 1을 적용하고, 주기 간격에 대응하지 않는 프레임들(712, 713, 714, 716, 717, 718)에는 복잡도가 낮은 슈퍼 레졸루션 모델 2를 적용할 수 있다. 또한, 앞서 설명한 것처럼 복잡도가 낮은 슈퍼 레졸루션 모델 2를 적용하는 경우, 멀티 이미지 슈퍼 레졸루션 모델을 적용함으로써 고해상도 프레임 획득을 보완할 수 있다.
도 7 및 도 9를 참조하면, 프레임 향상 장치는 두 번째 프레임 그룹(720)의 첫 번째 프레임(721)의 장면이 이전 프레임 그룹(710)의 마지막 프레임(718)과 비교하여 장면이 전환된 경우, 주기 간격을 다시 시작하도록 할 수 있다.
프레임 향상 장치는 처리할 프레임의 이전 프레임에 대한 장면 변화 정도를 판단하고(S630), 장면 변화 정도가 기준 범위를 벗어나는 경우 프레임 향상 장치는 기준 간격을 변화시킬 수 있다. 이후, 프레임 향상 장치는 변화된 기준 간격에 기반하여 처리할 프레임의 유형을 판단할 수 있다(S640).
예를 들어, 도 7 및 도 9를 참조하면, 두 번째 프레임 그룹(720)의 두 번째 프레임(722)는 첫 번째 프레임(721)과 비교할 때 장면 변화 정도가 기준 범위보다 작은 경우 프레임 향상 장치는 기준 간격을 짧게 변경하여 프레임들에 복잡도가 높은 슈퍼 레졸루션 모델이 더 자주 적용되도록 할 수 있다.
다른 예를 들어, 도 7 및 도 10을 참조하면, 세 번째 프레임 그룹(730)의 두 번째 프레임(732)는 첫 번째 프레임(731)과 비교할 때 장면 변화 정도가 기준 범위보다 큰 경우 프레임 향상 장치는 기준 간격을 길게 변경하여 프레임들에 복잡도가 높은 슈퍼 레졸루션 모델이 더 드물게 적용되도록 할 수 있다.
따라서, 프레임의 장면 변화 속도에 기반하여 복잡도가 높은 슈퍼 레졸루션 모델의 적용 프레임을 변경함으로써, 동영상 데이터의 모든 프레임에 복잡도가 높은 슈퍼 레졸루션 모델을 적용하지 않아도 시청자들이 화질의 저하를 체감할 수 없는 고해상도 프레임을 획득할 수 있다.
프레임 향상 장치는 복잡도가 낮은 슈퍼 레졸루션 모델을 적용하는 경우, 처리할 프레임의 주변 프레임들을 함께 입력으로 사용하는(S650) 멀티 이미지 슈퍼 레졸루션 모델을 적용할 수 있다(S661).
일 실시 예에서, 프레임 향상 장치는 장면 변화 정도가 기준 범위보다 크기 때문에 복잡도가 낮은 슈퍼 레졸루션 모델을 적용하는 경우, 처리할 프레임(732)에 복잡도가 낮은 슈퍼 레졸루션 모델을 적용한 결과와 이전 프레임(731)에 슈퍼 레졸루션 모델을 적용한 결과(781)를 합성(771)(S670)하여 고해상도 프레임(782)을 획득할 수 있다(S680). 이전 프레임에 대한 슈퍼 레졸루션 모델을 적용한 결과와의 이미지 합성은 계수(weighting factor)를 반영한 합성(synthesization)일 수 있다.
도 11은 본 개시의 다른 실시 예에 따른 동영상 프레임 해상도 향상 방법을 설명하기 위한 순서도이다.
또한, 도 12는 도 11에서 설명된 본 개시의 실시 예에 따른 동영상 프레임 해상도 향상 방법이 동영상 데이터에 대해서 수행되는 과정을 설명하기 위한 도면이다. 이하의 설명에서 도 1 내지 도 10에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다.
도 11 내지 도 12를 참조하여 설명하는 본 발명의 실시 예는 프레임 향상 장치가 복잡도가 서로 다른 세 개의 슈퍼 레졸루션 모델을 저장하고 있는 것으로 가정하고, 슈퍼 레졸루션 모델 3, 슈퍼 레졸루션 모델 1, 슈퍼 레졸루션 모델 2의 순서로 복잡도가 높은 모델인 것으로 전제한다.
프레임 향상 장치는 도 1에서 설명한 전자 장치(100)와 같은 구성을 가질 수 있다. 먼저, 프레임 해상도 향상 장치는 동영상 데이터(1210)를 로딩(loading)할 수 있다(S1110).
도 11 및 도 12를 참조하여 설명하면, 첫 번째 프레임(1211)은 이전 프레임이 존재하지 않으므로 장면 변화가 없고(S1120) 미리 설정된 주기 간격에 기반하여 처리할 프레임의 유형을 판단한 결과(S1140), 프레임 향상 장치는 첫 번째 프레임을 복잡도가 높은 슈퍼 레졸루션 모델 1을 적용할 프레임(1221)로 판단할 수 있다(S1140).
두 번째 프레임(1212) 내지 네 번째 프레임(1214)들은 이전 프레임에 대한 장면 변화 정도가 기준 범위를 벗어나지 않는 것으로 판단하고(S1120) 미리 설정된 주기 간격에 기반하여 처리할 프레임의 유형을 판단한 결과(S1140), 프레임 향상 장치는 해당 프레임들을 복잡도가 낮은 슈퍼 레졸루션 모델 2를 적용할 프레임들(1222 ~ 1224)로 판단할 수 있다(S1140). 프레임 향상 장치는 복잡도가 낮은 슈퍼 레졸루션 모델을 적용하는 경우, 처리할 프레임의 주변 프레임들을 함께 입력으로 사용하는(S1150) 멀티 이미지 슈퍼 레졸루션 모델을 적용할 수 있다(S1161).
다섯 번째 프레임(1215) 내지 여섯 번째 프레임(1216)들은 이전 프레임에 대한 장면 변화 정도가 기준 범위를 벗어나는 것으로 판단한 결과(S1120), 프레임 향상 장치는 해당 프레임들을 복잡도가 최고인 슈퍼 레졸루션 모델 3을 적용할 프레임들(1225 ~ 1226)로 판단하고 슈퍼 레졸루션 처리하여 고해상도 프레임들을 획득할 수 있다(S1170).
따라서, 평소에는 장면 변화가 거의 없고 사용자의 관심도 적으나, 장면 변화가 발생한 경우 사용자의 관심이 매우 큰 CCTV 또는 주차 중인 자동차의 감시 카메라의 경우, 평상시에는 일반적인 방법에 따라 슈퍼 레졸루션 모델들을 적용하다가 변화가 발생한 프레임에 해상도 향상의 효과가 가장 큰 슈퍼 레졸루션 모델을 적용함으로써 사용자의 기대에 부응하는 해상도 향상을 수행할 수 있다.
예를 들어, 프레임 향상 장치는 미리 설정된 주기(periodical) 간격에 대응되는 프레임들(521)에는 복잡도가 높은 슈퍼 레졸루션 모델 1을 적용하고, 주기 간격에 대응되지 않는 프레임들(522)에는 슈퍼 레졸루션 모델 1의 복잡도보다 낮은 복잡도를 갖는 슈퍼 레졸루션 모델 2를 적용하는 것으로 미리 설정할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 상기 컴퓨터는 단말기의 프로세서(180)를 포함할 수도 있다.
한편, 상기 프로그램은 본 개시를 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 개시의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 개시에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다.
본 개시에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 개시가 한정되는 것은 아니다. 본 개시에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 개시를 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 개시의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 폼 팩터(form factor)에 따라 구성될 수 있음을 알 수 있다.
따라서, 본 개시의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 개시의 사상의 범주에 속한다고 할 것이다.
510, 700: 동영상 데이터
520: 처리할 프레임
521, 741, 751, 761, 1221, 1229: 제 1 그룹의 프레임
522, 742, 752, 762, 1222~1224, 1227~1228 : 제 2 그룹의 프레임
530: 적용되는 슈퍼 레졸루션 모델
540: 고해상도 프레임
1225~1226: 변화가 큰 프레임

Claims (19)

  1. 동영상의 프레임(frame) 해상도를 향상시키기 위한 방법으로서,
    저해상도를 갖는 복수의 프레임들을 포함하는 동영상 데이터를 로딩(loading)하는 단계;
    이미지 처리용 인공 신경망 그룹 중에서 상기 동영상 데이터의 각 프레임에 적용할 이미지 처리용 인공 신경망을 선택하는 단계로서, 적어도 두 개의 서로 다른 프레임에 서로 다른 복잡도를 가지는 이미지 처리용 인공 신경망을 적용하도록 이미지 처리용 인공 신경망을 선택하는 단계; 및
    선택된 상기 이미지 처리용 인공 신경망에 따라 상기 동영상 데이터의 각 프레임을 처리하여 각 프레임에 대한 고해상도 프레임을 생성하는 단계를 포함하는,
    전자 장치의 동영상 프레임 해상도 향상 방법.
  2. 제 1 항에 있어서,
    상기 이미지 처리용 인공 신경망을 선택하는 단계는,
    상기 복수의 프레임들 중에서,
    미리 설정된 주기(periodical) 간격에 대응되는 제 1 그룹의 프레임에 적용할 이미지 처리용 인공 신경망으로서, 상기 주기 간격에 대응되지 않는 제 2 그룹의 프레임에 적용할 이미지 처리용 인공 신경망보다 높은 복잡도를 가지는 이미지 처리용 인공 신경망을 선택하는 단계를 포함하는,
    전자 장치의 동영상 프레임 해상도 향상 방법.
  3. 제 2 항에 있어서,
    상기 이미지 처리용 인공 신경망을 선택하는 단계 이전에,
    처리할 프레임의 이전 프레임에 대한 장면 변화 정도를 판단하는 단계를 포함하고,
    상기 이미지 처리용 인공 신경망을 선택하는 단계는,
    상기 장면 변화 정도에 기반하여, 상기 처리할 프레임을 상기 주기 간격의 기준 프레임으로 설정할지 판단하는 단계를 포함하는,
    전자 장치의 동영상 프레임 해상도 향상 방법.
  4. 제 2 항에 있어서,
    상기 고해상도 프레임을 생성하는 단계는,
    처리할 프레임이 상기 제 2 그룹의 프레임 중 하나의 프레임인지 판단한 결과에 기반하여, 이미지 처리용 인공 신경망의 입력으로서 상기 처리할 프레임으로부터 미리 설정된 주변 간격 이내의 주변 프레임들 및 상기 처리할 프레임을 활용하여 고해상도 프레임을 획득하는 단계를 포함하는,
    전자 장치의 동영상 프레임 해상도 향상 방법.
  5. 제 4 항에 있어서,
    상기 주변 프레임들은 상기 처리할 프레임에 대한 상기 주변 프레임의 장면 변화 정도가 미리 설정된 기준 이하인 프레임들인,
    전자 장치의 동영상 프레임 해상도 향상 방법.
  6. 제 2 항에 있어서,
    상기 이미지 처리용 인공 신경망을 선택하는 단계는,
    처리할 프레임의 이전 프레임에 대한 장면 변화 정도를 판단하는 단계; 및
    상기 장면 변화 정도에 기반하여 상기 주기 간격을 변경하는 단계를 더 포함하는,
    전자 장치의 동영상 프레임 해상도 향상 방법.
  7. 제 6 항에 있어서,
    상기 처리할 프레임의 이전 프레임에 대한 장면 변화 정도를 판단하는 단계는,
    상기 처리할 프레임에서 객체(object)를 식별하는 단계;
    상기 이전 프레임과 비교하여 상기 객체의 움직임 정도를 판단하는 단계; 및
    상기 움직임 정도에 기반하여 상기 주기 간격을 변경하는 단계를 포함하는,
    전자 장치의 동영상 프레임 해상도 향상 방법.
  8. 제 6 항에 있어서,
    상기 고해상도 프레임을 생성하는 단계는,
    상기 처리할 프레임이 상기 제 2 그룹의 프레임 중 하나의 프레임인지 판단한 결과에 기반하여, 상기 처리할 프레임으로부터 미리 설정된 주변 간격 이내의 주변 프레임들 및 상기 처리할 프레임을 이미지 처리용 인공 신경망의 입력으로 활용하여 임시 고해상도 프레임을 획득하는 단계; 및
    상기 변화 정도에 기반하여, 상기 처리할 프레임의 이전 프레임을 처리하여 획득한 고해상도 프레임 및 상기 임시 고해상도 프레임을 합성하여 상기 처리할 프레임에 대한 최종 고해상도 프레임을 획득하는 단계를 포함하는,
    전자 장치의 동영상 프레임 해상도 향상 방법.
  9. 제 2 항에 있어서,
    상기 이미지 처리용 인공 신경망을 선택하는 단계는,
    처리할 프레임의 이전 프레임에 대한 장면 변화 정도를 판단하는 단계;
    상기 장면 변화 정도가 미리 설정된 기준 이상인 프레임에 적용할 이미지 처리용 인공 신경망으로서, 상기 제 1 그룹의 프레임에 적용할 이미지 처리용 인공 신경망보다 높은 복잡도를 가지는 이미지 처리용 인공 신경망을 선택하는 단계를 포함하는,
    전자 장치의 동영상 프레임 해상도 향상 방법.
  10. 제 1 항에 있어서,
    상기 동영상 데이터를 로딩하는 단계 이전에,
    압축 동영상 데이터를 디코딩(decoding)하여 상기 동영상 데이터를 획득하는 단계를 더 포함하고,
    상기 이미지 처리용 인공 신경망을 선택하는 단계는,
    상기 복수의 프레임들 중에서, 상기 압축 동영상 데이터의 인트라 프레임(intra frame)을 디코딩한 제 3 그룹의 프레임에 적용할 이미지 처리용 인공 신경망으로서, 상기 압축 동영상 데이터의 인터 프레임(inter frame)을 디코딩한 제 4 그룹의 프레임에 적용할 이미지 처리용 인공 신경망보다 높은 복잡도를 가지는 이미지 처리용 인공 신경망을 선택하는 단계를 포함하는,
    전자 장치의 동영상 프레임 해상도 향상 방법.
  11. 제 10 항에 있어서,
    상기 고해상도 프레임을 생성하는 단계는,
    상기 제 4 그룹의 프레임 중 하나의 프레임으로부터 주변 간격 이내의 주변 프레임들을 선택하는 단계로서, 상기 주변 간격은 적어도 하나의 상기 제 3 그룹의 프레임이 상기 주변 프레임들에 포함되도록 설정하는 단계;
    상기 하나의 프레임 및 상기 주변 프레임들을 이미지 처리용 인공 신경망의 입력으로 활용하여 고해상도 프레임을 획득하는 단계를 포함하는,
    전자 장치의 동영상 프레임 해상도 향상 방법.
  12. 제 1 항에 있어서,
    상기 이미지 처리용 인공 신경망을 선택하는 단계는,
    처리할 프레임의 이전 프레임에 대한 장면 변화 정도를 판단하는 단계;
    상기 장면 변화 정도가 미리 설정된 기준 이상인 프레임에 적용할 이미지 처리용 인공 신경망으로서 상기 장면 변화 정도가 미리 설정된 기준 미만인 프레임에 적용할 이미지 처리용 인공 신경망보다 높은 복잡도를 가지는 이미지 처리용 인공 신경망을 선택하는 단계를 포함하는,
    전자 장치의 동영상 프레임 해상도 향상 방법.
  13. 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 청구항 제 1 내지 12 항 중 어느 한 항의 방법을 실행하도록 구성된 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 기록매체.
  14. 동영상의 프레임 해상도를 향상시키기 위한 장치로서,
    프로세서; 및
    상기 프로세서와 전기적으로 연결되고, 상기 프로세서에서 수행되는 적어도 하나의 명령어 및 이미지 처리용 인공 신경망의 파라미터가 저장되는 메모리를 포함하고,
    상기 메모리는,
    상기 프로세서를 통해 실행될 때, 상기 프로세서가 저해상도를 갖는 복수의 프레임을 포함하는 동영상 데이터를 로딩(loading)하고, 상기 프레임에 이미지 처리용 인공 신경망을 적용하여 고해상도 프레임을 생성하도록 야기하는 명령들로서, 상기 동영상 데이터의 프레임 중 적어도 두 개의 서로 다른 프레임에 서로 다른 복잡도를 가지는 이미지 처리용 인공 신경망을 적용하도록 야기하는 명령들을 저장하는,
    동영상 프레임 해상도 향상 장치.
  15. 제 14 항에 있어서,
    상기 명령들은,
    미리 설정된 주기(periodical) 간격에 대응되는 제 1 그룹의 프레임에 적용할 이미지 처리용 인공 신경망으로서, 상기 주기 간격에 대응되지 않는 제 2 그룹의 프레임에 적용할 이미지 처리용 인공 신경망보다 높은 복잡도를 가지는 이미지 처리용 인공 신경망을 선택하도록 야기하는,
    동영상 프레임 해상도 향상 장치.
  16. 제 15 항에 있어서,
    상기 명령들은,
    처리할 프레임이 상기 제 2 그룹의 프레임인지 판단한 결과에 기반하여, 이미지 처리용 인공 신경망의 입력으로서 상기 처리할 프레임으로부터 미리 설정된 주변 간격 이내의 주변 프레임들 및 상기 처리할 프레임을 활용하여 고해상도 프레임을 획득하도록 야기하는,
    동영상 프레임 해상도 향상 장치.
  17. 동영상의 프레임 해상도를 향상시키기 위한 장치로서,
    프로세서; 및
    상기 프로세서와 전기적으로 연결되고, 상기 프로세서에서 수행되는 적어도 하나의 명령어 및 이미지 처리용 인공 신경망의 파라미터가 저장되는 메모리를 포함하고,
    상기 메모리는,
    저해상도를 갖는 복수의 프레임을 포함하는 동영상 데이터로부터 처리할 프레임을 로딩(loading)하고, 서로 다른 복잡도를 갖는 복수의 이미지 처리용 인공 신경망 모델 중 어느 한 인공 신경망 모델에 기반하여 생성된 인공 신경망 인스턴스(instance)에 상기 처리할 프레임을 전달하여 고해상도 프레임을 생성하도록 야기하는 명령들을 저장하는,
    동영상 프레임 해상도 향상 장치.
  18. 제 17 항에 있어서,
    상기 명령들은,
    상기 복수의 이미지 처리용 인공 신경망 모델에 기반하여 복수의 인공 신경망 인스턴스들을 생성하고, 상기 복수의 인공 신경망 인스턴스 중 어느 한 인스턴스에 상기 처리할 프레임을 전달하도록 야기하는,
    동영상 프레임 해상도 향상 장치.
  19. 제 17 항에 있어서,
    상기 명령들은,
    상기 복수의 이미리 처리용 인공 신경망 모델 중 어느 한 인공 신경망 모델에 기반한 인공 신경망 인스턴스를 상기 처리할 프레임에 기반하여 선택적으로 생성하고, 생성된 상기 인공 신경망 인스턴스에 상기 처리할 프레임을 전달하도록 야기하는,
    동영상 프레임 해상도 향상 장치.
KR1020190119073A 2019-09-26 2019-09-26 동영상 프레임 해상도를 향상시키기 위한 방법 및 장치 KR20190117416A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190119073A KR20190117416A (ko) 2019-09-26 2019-09-26 동영상 프레임 해상도를 향상시키기 위한 방법 및 장치
US16/711,001 US11205247B2 (en) 2019-09-26 2019-12-11 Method and apparatus for enhancing video frame resolution

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190119073A KR20190117416A (ko) 2019-09-26 2019-09-26 동영상 프레임 해상도를 향상시키기 위한 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20190117416A true KR20190117416A (ko) 2019-10-16

Family

ID=68421701

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190119073A KR20190117416A (ko) 2019-09-26 2019-09-26 동영상 프레임 해상도를 향상시키기 위한 방법 및 장치

Country Status (2)

Country Link
US (1) US11205247B2 (ko)
KR (1) KR20190117416A (ko)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111402130A (zh) * 2020-02-21 2020-07-10 华为技术有限公司 数据处理方法和数据处理装置
CN111726621A (zh) * 2020-04-24 2020-09-29 中国科学院微电子研究所 一种视频转换方法及装置
CN111738924A (zh) * 2020-06-22 2020-10-02 北京字节跳动网络技术有限公司 图像处理方法及装置
CN113301343A (zh) * 2020-02-21 2021-08-24 阿里巴巴集团控股有限公司 在视频超分辨率中使用解码器信息的系统和方法
CN113784015A (zh) * 2020-06-10 2021-12-10 Oppo广东移动通信有限公司 图像处理电路、电子设备和图像处理方法
KR102375541B1 (ko) * 2021-11-02 2022-03-17 주식회사 스누아이랩 구조적 일관성 손실을 갖는 인공지능서비스장치 및 그 장치의 구동방법
WO2022108008A1 (en) * 2020-11-23 2022-05-27 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
WO2022161310A1 (zh) * 2021-01-27 2022-08-04 维沃移动通信有限公司 显示方法、装置和电子设备
CN115035230A (zh) * 2022-08-12 2022-09-09 阿里巴巴(中国)有限公司 视频渲染处理方法、装置、设备及存储介质
KR20230033820A (ko) 2021-09-02 2023-03-09 신대근 이미지 프레임 내 얼굴의 위치 및 비율을 기반으로 이미지 프레임을 변환하는 전자 장치
EP4060998A4 (en) * 2019-11-15 2023-11-15 Korea Advanced Institute of Science and Technology SYSTEM AND METHOD FOR LIVE VIDEO INGESTION

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11836893B2 (en) * 2020-03-11 2023-12-05 Mediatek Inc. Online AI super resolution engine and operations
US20210287338A1 (en) * 2020-03-11 2021-09-16 Mediatek Inc. Image-guided adjustment to super-resolution operations
US20210304357A1 (en) * 2020-03-27 2021-09-30 Alibaba Group Holding Limited Method and system for video processing based on spatial or temporal importance
TW202143740A (zh) * 2020-05-08 2021-11-16 美商賽納波狄克公司 可調適視訊串流系統與方法
US11205077B1 (en) * 2020-05-29 2021-12-21 Arm Limited Operating on a video frame to generate a feature map of a neural network
SG10202106406VA (en) * 2020-06-16 2021-07-29 Ncs Pte Ltd An active audio-visual surveillance system
US20220067879A1 (en) 2020-09-03 2022-03-03 Nvidia Corporation Image enhancement using one or more neural networks
US11785068B2 (en) 2020-12-31 2023-10-10 Synaptics Incorporated Artificial intelligence image frame processing systems and methods
JP7007000B1 (ja) * 2021-05-24 2022-01-24 Navier株式会社 画像処理装置および画像処理方法
CN117044215A (zh) * 2021-06-15 2023-11-10 三星电子株式会社 用于低光照媒体增强的方法和系统
WO2022265321A1 (en) 2021-06-15 2022-12-22 Samsung Electronics Co., Ltd. Methods and systems for low light media enhancement
CN113411521B (zh) * 2021-06-23 2022-09-09 北京达佳互联信息技术有限公司 视频处理方法、装置、电子设备及存储介质
CN114708144B (zh) * 2022-03-16 2023-05-26 荣耀终端有限公司 图像数据处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180126362A (ko) 2017-05-17 2018-11-27 삼성전자주식회사 동영상의 초해상 처리 방법 및 이를 위한 영상 처리 장치
KR20190059157A (ko) 2017-11-22 2019-05-30 에스케이텔레콤 주식회사 영상 화질 개선방법 및 그 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3259914A1 (en) * 2015-02-19 2017-12-27 Magic Pony Technology Limited Interpolating visual data
US10467458B2 (en) * 2017-07-21 2019-11-05 Altumview Systems Inc. Joint face-detection and head-pose-angle-estimation using small-scale convolutional neural network (CNN) modules for embedded systems
WO2018212599A1 (en) * 2017-05-17 2018-11-22 Samsung Electronics Co., Ltd. Super-resolution processing method for moving image and image processing apparatus therefor
US10733714B2 (en) * 2017-11-09 2020-08-04 Samsung Electronics Co., Ltd Method and apparatus for video super resolution using convolutional neural network with two-stage motion compensation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180126362A (ko) 2017-05-17 2018-11-27 삼성전자주식회사 동영상의 초해상 처리 방법 및 이를 위한 영상 처리 장치
KR20190059157A (ko) 2017-11-22 2019-05-30 에스케이텔레콤 주식회사 영상 화질 개선방법 및 그 장치

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11877018B2 (en) 2019-11-15 2024-01-16 Korea Advanced Institute Of Science And Technology Live video ingest system and method
EP4060998A4 (en) * 2019-11-15 2023-11-15 Korea Advanced Institute of Science and Technology SYSTEM AND METHOD FOR LIVE VIDEO INGESTION
CN111402130A (zh) * 2020-02-21 2020-07-10 华为技术有限公司 数据处理方法和数据处理装置
CN113301343A (zh) * 2020-02-21 2021-08-24 阿里巴巴集团控股有限公司 在视频超分辨率中使用解码器信息的系统和方法
CN111402130B (zh) * 2020-02-21 2023-07-18 华为技术有限公司 数据处理方法和数据处理装置
CN111726621B (zh) * 2020-04-24 2022-12-30 中国科学院微电子研究所 一种视频转换方法及装置
CN111726621A (zh) * 2020-04-24 2020-09-29 中国科学院微电子研究所 一种视频转换方法及装置
CN113784015A (zh) * 2020-06-10 2021-12-10 Oppo广东移动通信有限公司 图像处理电路、电子设备和图像处理方法
CN111738924A (zh) * 2020-06-22 2020-10-02 北京字节跳动网络技术有限公司 图像处理方法及装置
WO2022108008A1 (en) * 2020-11-23 2022-05-27 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
WO2022161310A1 (zh) * 2021-01-27 2022-08-04 维沃移动通信有限公司 显示方法、装置和电子设备
KR20230033820A (ko) 2021-09-02 2023-03-09 신대근 이미지 프레임 내 얼굴의 위치 및 비율을 기반으로 이미지 프레임을 변환하는 전자 장치
KR102375541B1 (ko) * 2021-11-02 2022-03-17 주식회사 스누아이랩 구조적 일관성 손실을 갖는 인공지능서비스장치 및 그 장치의 구동방법
CN115035230A (zh) * 2022-08-12 2022-09-09 阿里巴巴(中国)有限公司 视频渲染处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US11205247B2 (en) 2021-12-21
US20210097646A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
KR20190117416A (ko) 동영상 프레임 해상도를 향상시키기 위한 방법 및 장치
US11212543B2 (en) Method and apparatus for compressing or restoring image
US20210104018A1 (en) Method and apparatus for enhancing resolution of image
US20210073945A1 (en) Method and apparatus for enhancing image resolution
US11216694B2 (en) Method and apparatus for recognizing object
KR102137151B1 (ko) 노이즈 캔슬링 장치 및 그 방법
US20210104021A1 (en) Method and apparatus for processing image noise
US11776092B2 (en) Color restoration method and apparatus
US20220360794A1 (en) Video compression using deep generative models
KR20190094133A (ko) 객체를 인식하는 인공 지능 장치 및 그 방법
US11321820B2 (en) Video data quality improving method and apparatus
KR20190100097A (ko) 디스플레이 상의 화면의 화질 또는 화면 내용을 추론하여 화면을 조정하는 방법, 제어기 및 시스템
KR20190106865A (ko) 동영상 검색방법 및 동영상 검색 단말기
KR102658688B1 (ko) 이미지 조도 향상을 위한 방법 및 장치
CN111567056B (zh) 视频播放装置及其控制方法
KR101876433B1 (ko) 행동인식 기반 해상도 자동 조절 카메라 시스템, 행동인식 기반 해상도 자동 조절 방법 및 카메라 시스템의 영상 내 행동 자동 인식 방법
US11468540B2 (en) Method and device for image processing
US20210012194A1 (en) Method and system for implementing a variable accuracy neural network
US20210110158A1 (en) Method and apparatus for estimating location in a store based on recognition of product in image
KR20210007829A (ko) 가변 정확도 신경망을 구현하기 위한 방법 및 시스템
US11567494B2 (en) Enhancing performance of local device
KR20240012453A (ko) 영상 편집 장치 및 영상 편집 장치의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal