KR102008437B1 - 비디오 향상의 시간적 평탄화 - Google Patents

비디오 향상의 시간적 평탄화 Download PDF

Info

Publication number
KR102008437B1
KR102008437B1 KR1020177031687A KR20177031687A KR102008437B1 KR 102008437 B1 KR102008437 B1 KR 102008437B1 KR 1020177031687 A KR1020177031687 A KR 1020177031687A KR 20177031687 A KR20177031687 A KR 20177031687A KR 102008437 B1 KR102008437 B1 KR 102008437B1
Authority
KR
South Korea
Prior art keywords
filter
video
frames
implementations
objects
Prior art date
Application number
KR1020177031687A
Other languages
English (en)
Other versions
KR20170133468A (ko
Inventor
티모시 세프코스키 클레어
팅린 리우
세브케트 데린 바바칸
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20170133468A publication Critical patent/KR20170133468A/ko
Application granted granted Critical
Publication of KR102008437B1 publication Critical patent/KR102008437B1/ko

Links

Images

Classifications

    • G06T5/70
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/49Segmenting video sequences, i.e. computational techniques such as parsing or cutting the sequence, low-level clustering or determining units such as shots or scenes
    • G06K9/00765
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06K9/4609
    • G06K9/4652
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration by the use of local operators
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/12Classification; Matching
    • 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/20024Filtering details

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

구현예들은 일반적으로 비디오를 향상시키는 것과 관련된다. 일부 구현예들에서, 방법은 비디오의 하나 또는 그 초과의 프레임들 내의 하나 또는 그 초과의 오브젝트들을 분류하는 단계를 포함한다. 방법은 하나 또는 그 초과의 오브젝트들의 분류에 기초하여 하나 또는 그 초과의 필터들의 하나 또는 그 초과의 필터 파라미터들을 결정하는 단계를 더 포함한다. 방법은 하나 또는 그 초과의 오브젝트들의 분류에 기초하여, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하는 단계를 더 포함한다. 이 방법은 대응하는 평탄화된 필터 파라미터들을 갖는 필터들 중 하나 또는 그 초과의 것을 비디오의 하나 또는 그 초과의 프레임들에 적용하는 단계를 더 포함한다.

Description

비디오 향상의 시간적 평탄화
[001] 본 출원은, 2015년 7월 24일자로 출원되고 명칭이 TEMPORALLY SMOOTH VIDEO ENHANCEMENT인 미국 정규 특허 출원 제 14/808,208 호를 우선권으로 주장하며, 이로써, 상기 출원의 전체 내용이 인용에 의해 포함된다.
[002] 디지털 비디오 카메라들의 인기와 편리함, 그리고 인터넷 통신들의 광범위한 사용으로 인해 사용자-제작 비디오들이 보편화되었다. 다양한 소비자 전자 디바이스들 및 개인용 컴퓨터들을 위한 수동 비디오 편집 시스템들은 사용자가 비디오들의 조작에 관한 지식과 노하우를 가질 수 있게 한다. 이러한 비디오 편집 시스템들은 일반적으로, 사용자가 이미지를 조작하기 위해 복잡하고 어려운 명령들을 이해할 것을 요구한다. 이 지식 수준은, 고급 편집 특징들이 평균적인 사용자의 이해에서 벗어나 있게 한다.
[003] 구현예들은 일반적으로 비디오 향상과 관련된다. 일부 구현예들에서, 방법은 비디오의 하나 또는 그 초과의 프레임들 내의 하나 또는 그 초과의 오브젝트들을 분류하는 단계를 포함한다. 방법은 하나 또는 그 초과의 오브젝트들의 분류에 기초하여 하나 또는 그 초과의 오브젝트들 각각에 대해 하나 또는 그 초과의 필터들의 하나 또는 그 초과의 필터 파라미터들을 결정하는 단계를 더 포함한다. 방법은 하나 또는 그 초과의 오브젝트들의 분류에 기초하여, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하는 단계를 더 포함한다. 평탄화하는 단계는 복수의 프레임들 및 복수의 프레임들에 인접한 프레임들에 대해 하나 또는 그 초과의 필터 파라미터들의 하나 또는 그 초과의 값들을 조정하는 것을 포함한다. 이 방법은 대응하는 평탄화된 필터 파라미터들을 갖는 필터들 중 하나 또는 그 초과의 것을 비디오의 하나 또는 그 초과의 프레임들에 적용하는 단계를 더 포함한다.
[004] 추가로 본 방법과 관련하여, 일부 구현예들에서, 방법은 비디오의 복수의 프레임들에 걸쳐서 하나 또는 그 초과의 오브젝트들의 프레임 내 위치들을 추적(tracking)하는 단계를 더 포함하며, 복수의 프레임들은 하나 또는 그 초과의 프레임들을 포함하고, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하는 것은 추적된 위치들에 기초한다. 일부 구현예들에서, 방법에서, 하나 또는 그 초과의 필터 파라미터들을 결정하는 단계는, 비디오의 프레임들 중 하나 또는 그 초과의 것과 연관시켜 적용할 하나 또는 그 초과의 필터 파라미터들을 추정(estimating)하는 단계를 더 포함한다. 일부 구현예들에서, 필터들 중 하나 또는 그 초과의 것은 밝기 필터, 콘트라스트 필터, 채도 필터, 색조 구조 필터, 컬러 필터, 및 비네트(vignette) 필터 중 하나 또는 그 초과의 것을 포함한다. 일부 구현예들에서, 분류하는 단계는 하나 또는 그 초과의 분류 동작들에 기초하고, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하는 것은 분류 동작들 중 하나 또는 그 초과의 것을 평탄화하는 것을 포함한다. 일부 구현예들에서, 분류하는 단계는 하나 또는 그 초과의 분류 동작들에 기초하고, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하는 것은 분류 동작들 중 하나 또는 그 초과의 것을 평탄화하는 것을 포함하며, 분류 동작들 중 하나 또는 그 초과의 것을 평탄화하는 것은 복수의 프레임들에 걸쳐 분류 신뢰도 구간(confidence interval)을 평탄화하는 것을 포함하고, 복수의 프레임들은 하나 또는 그 초과의 프레임들을 포함한다. 일부 구현예들에서, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하는 것은 하나 또는 그 초과의 필터 파라미터 추정 동작들을 평탄화하는 것을 포함한다. 일부 구현예들에서, 방법은 필터들 중 하나 또는 그 초과의 것의 하나 또는 그 초과의 출력들을 평탄화하는 단계를 더 포함한다.
[005] 일부 구현예들에서, 프로그램 명령들을 보유하는 비일시적 컴퓨터 판독가능 저장 매체로서, 명령들은 하나 또는 그 초과의 프로세서들에 의해 실행될 경우, 하나 또는 그 초과의 프로세서들로 하여금, 비디오의 복수의 프레임들에 걸쳐서 하나 또는 그 초과의 오브젝트들의 프레임 내 위치들을 추적하는 것; 하나 또는 그 초과의 오브젝트들의 프레임 내 위치들의 추적에 기초하여 하나 또는 그 초과의 필터들의 하나 또는 그 초과의 필터 파라미터들을 결정하는 것; 하나 또는 그 초과의 오브젝트들의 프레임 내 위치들의 추적에 기초하여, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하는 것; 및 대응하는 평탄화된 필터 파라미터들을 갖는 필터들 중 하나 또는 그 초과의 것을 비디오의 복수의 프레임들 중 하나 또는 그 초과의 프레임들에 적용하는 것을 포함하는 동작들을 수행하게 한다.
[006] 추가로 비일시적 컴퓨터 판독가능 저장 매체와 관련하여, 일부 구현예들에서, 하나 또는 그 초과의 필터 파라미터들을 결정하기 위해서, 명령들은 추가로, 하나 또는 그 초과의 프로세서들로 하여금, 비디오의 복수의 프레임들 중 하나 또는 그 초과의 프레임들과 연관시켜 적용할 하나 또는 그 초과의 필터 파라미터들을 추정하는 것을 포함하는 동작들을 수행하게 한다. 일부 구현예들에서, 필터들 중 하나 또는 그 초과의 것은 밝기 필터, 콘트라스트 필터, 채도 필터, 색조 구조 필터, 컬러 필터, 및 비네트 필터 중 하나 또는 그 초과의 것을 포함한다. 일부 구현예들에서, 명령들은 추가로, 하나 또는 그 초과의 프로세서들로 하여금, 비디오의 복수의 프레임들 중 하나 또는 그 초과의 프레임들 내의 하나 또는 그 초과의 오브젝트들을 분류하는 것을 포함하는 동작들을 수행하게 하며, 분류하는 것은 하나 또는 그 초과의 분류 동작들에 기초하고, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하기 위해서, 명령들은 추가로, 하나 또는 그 초과의 프로세서들로 하여금 분류 동작들 중 하나 또는 그 초과의 것을 평탄화하는 것을 포함하는 동작들을 수행하게 한다. 일부 구현예들에서, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하기 위해서, 명령들은 추가로, 하나 또는 그 초과의 프로세서들로 하여금 하나 또는 그 초과의 필터 파라미터 추정 동작들 평탄화하는 것을 포함하는 동작들을 수행하게 한다. 일부 구현예들에서, 명령들은 추가로, 하나 또는 그 초과의 프로세서들로 하여금, 필터들 중 하나 또는 그 초과의 것의 하나 또는 그 초과의 출력들을 평탄화하는 것을 포함하는 동작들을 수행하게 한다.
[007] 일부 구현예들에서, 시스템은, 하나 또는 그 초과의 프로세서들, 및 하나 또는 그 초과의 프로세서들에 의한 실행을 위해 하나 또는 그 초과의 비일시적 유형 매체에 인코딩된 로직을 포함한다. 실행될 경우, 로직은, 비디오의 복수의 프레임들 내의 하나 또는 그 초과의 오브젝트들을 분류하는 것에 기초하여 하나 또는 그 초과의 필터들의 하나 또는 그 초과의 필터 파라미터들을 결정하는 것; 하나 또는 그 초과의 오브젝트들을 분류에 기초하여, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하는 것; 평탄화된 필터 파라미터들 중 하나 또는 그 초과의 것을 비디오의 복수의 프레임들 중 하나 또는 그 초과의 것에 적용하는 것; 및 필터들 중 하나 또는 그 초과의 것의 하나 또는 그 초과의 출력들을 평탄화하는 것을 포함하는 동작들을 수행하게 하도록 동작가능하다.
[008] 추가로 본 시스템과 관련하여, 일부 구현예들에서, 로직은, 실행될 경우, 비디오의 복수의 프레임들에 걸쳐서 하나 또는 그 초과의 오브젝트들의 프레임 내 위치들을 추적하는 것을 포함하는 동작들을 수행하도록 추가로 동작가능하고, 복수의 프레임들은 하나 또는 그 초과의 프레임들을 포함하고, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하는 것은 하나 또는 그 초과의 오브젝트들의 프레임 내 위치 추적에 기초한다. 일부 구현예들에서, 하나 또는 그 초과의 필터 파라미터들을 결정하기 위해서, 로직은, 실행될 경우, 비디오의 프레임들 중 하나 또는 그 초과의 것과 연관시켜 적용할 하나 또는 그 초과의 필터 파라미터들을 추정하는 것을 포함하는 동작들을 수행하도록 추가로 동작가능하다. 일부 구현예들에서, 필터들 중 하나 또는 그 초과의 것은 밝기 필터, 콘트라스트 필터, 채도 필터, 색조 구조 필터, 컬러 필터, 및 비네트 필터 중 하나 또는 그 초과의 것을 포함한다. 일부 구현예들에서, 로직은, 실행될 경우, 비디오의 하나 또는 그 초과의 프레임들 내의 하나 또는 그 초과의 오브젝트들을 분류하는 것을 포함하는 동작들을 수행하도록 추가로 동작가능하고, 분류하는 것은 하나 또는 그 초과의 분류 동작들에 기초하고, 그리고 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하기 위해서, 로직은, 실행될 경우, 분류 동작들 중 하나 또는 그 초과의 것을 평탄화하는 것을 포함하는 동작들을 수행하도록 추가로 동작가능하다. 일부 구현예들에서, 하나 또는 그 초과의 필터 출력들을 평탄화하는 것은 복수의 프레임들에 걸친 필터 출력 값들의 가중 평균치에 기초할 수 있고, 복수의 프레임들은 하나 또는 그 초과의 프레임들을 포함한다.
[009] 일부 구현예들에서, 방법은 비디오의 하나 또는 그 초과의 프레임들 내의 하나 또는 그 초과의 오브젝트들을 분류하기 위한 수단을 포함한다. 방법은 하나 또는 그 초과의 오브젝트들의 분류하기 위한 수단에 기초하여 하나 또는 그 초과의 필터들의 하나 또는 그 초과의 필터 파라미터들을 결정하기 위한 수단을 더 포함한다. 방법은 하나 또는 그 초과의 오브젝트들의 분류에 기초하여, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하기 위한 수단을 더 포함한다. 이 방법은 대응하는 평탄화된 필터 파라미터들을 갖는 필터들 중 하나 또는 그 초과의 것을 비디오의 하나 또는 그 초과의 프레임들에 적용하기 위한 수단을 더 포함한다.
[0010] 추가로 본 방법과 관련하여, 일부 구현예들에서, 방법은 비디오의 복수의 프레임들에 걸쳐서 오브젝트들 중 하나 또는 그 초과의 것을 추적하기 위한 수단을 더 포함하며, 복수의 프레임들은 하나 또는 그 초과의 프레임들을 포함하고, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하기 위한 수단은 하나 또는 그 초과의 추적된 오브젝트들을 추적하기 위한 수단에 기초한다. 일부 구현예들에서, 하나 또는 그 초과의 필터 파라미터들을 결정하기 위한 수단은, 비디오의 프레임들 중 하나 또는 그 초과의 것과 연관시켜 적용할 하나 또는 그 초과의 필터 파라미터들을 추정하기 위한 수단을 포함한다. 일부 구현예들에서, 필터들 중 하나 또는 그 초과의 것은 밝기 필터, 콘트라스트 필터, 채도 필터, 색조 구조 필터, 컬러 필터, 및 비네트 필터 중 하나 또는 그 초과의 것을 포함한다. 일부 구현예들에서, 분류하기 위한 수단은 하나 또는 그 초과의 분류 동작들에 기초하고, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하기 위한 수단은 분류 동작들 중 하나 또는 그 초과의 것을 평탄화하기 위한 수단을 포함한다. 일부 구현예들에서, 분류하기 위한 수단은 하나 또는 그 초과의 분류 동작들에 기초하고, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하기 위한 수단은 분류 동작들 중 하나 또는 그 초과의 것을 평탄화하기 위한 수단을 포함하며, 분류 동작들 중 하나 또는 그 초과의 것을 평탄화하기 위한 수단은 복수의 프레임들에 걸쳐 분류 신뢰도 구간을 평탄화하기 위한 수단을 포함하고, 복수의 프레임들은 하나 또는 그 초과의 프레임들을 포함한다. 일부 구현예들에서, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하기 위한 수단은 하나 또는 그 초과의 필터 파라미터 추정 동작들을 평탄화하는 것을 포함한다. 일부 구현예들에서, 방법은 필터들 중 하나 또는 그 초과의 것의 하나 또는 그 초과의 출력들을 평탄화하기 위한 수단을 더 포함한다.
[0011] 도 1은 일부 구현예들에 따른, 예시적인 네트워크 환경의 블록도를 도시한다.
[0012] 도 2는 일부 구현예들에 따른, 예시적인 비디오 인핸서의 블록도를 도시한다.
[0013] 도 3은 일부 구현예들에 따른, 비디오를 향상시키기 위한 예시적인 흐름도를 도시한다.
[0014] 도 4는 일부 구현예들에 따른, 예시적인 비디오 프레임을 도시한다.
[0015] 도 5는 일부 구현예들에 따른, 예시적인 컴퓨팅 디바이스의 블록도를 도시한다.
[0016] 구현예들은 일반적으로 비디오들에 대한 향상들을 제공하는 컴퓨터-구현 방법들, 비일시적 컴퓨터 판독가능 저장 매체, 및 컴퓨터 시스템들에 관한 것이다. 아래에서 보다 구체적으로 설명되는 바와 같이, 구현예들은 필터 파라미터들의 양상들을 결정하고 평탄화하며, 비디오의 프레임들에 대응하는 필터들을 적용하여, 비디오에 적용될 경우, 향상된 비디오들이 시간에 따라 다수의 프레임들에 걸쳐 평탄하게 나타난다. 향상된 비디오는, 비디오가 다양한 타입들의 불연속성들을 나타내지 않는다는 점에서 평탄하게 나타나며, 이는 아래에서 보다 구체적으로 설명된다.
[0017] 일부 구현예들에서, 시스템은 비디오의 하나 또는 그 초과의 프레임들 내의 하나 또는 그 초과의 오브젝트들을 분류한다. 예를 들어, 시스템은 주어진 오브젝트를 검출한 후 그 오브젝트를 얼굴로서 분류할 수 있다. 시스템은 하나 또는 그 초과의 오브젝트들의 분류에 기초하여 하나 또는 그 초과의 오브젝트들 각각에 대해 하나 또는 그 초과의 필터들의 하나 또는 그 초과의 필터 파라미터들을 추가로 결정한다. 예를 들어, 시스템은, 비디오가 얼굴을 나타내기 때문에, 비디오에 적합하게 될 비네트(vignette) 필터 파라미터들을 결정할 수 있다. 시스템은 하나 또는 그 초과의 오브젝트들의 분류에 기초하여, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 추가로 평탄화한다. 예를 들어, 얼굴과 같은 주어진 오브젝트가 비디오의 일부 프레임들에 존재할 수 있지만, 노이즈와 같은 팩터들로 인해 그 프레임들에서는 검출되지 않을 수 있다. 시스템은 비디오의 플리커(flicker)를 제거하기 위해 필터 파라미터 동작을 평탄화할 수 있다. 시스템은, 비디오를 향상시키기 위해서 대응하는 평탄화된 필터 파라미터들을 갖는 필터들 중 하나 또는 그 초과의 것을 비디오의 하나 또는 그 초과의 프레임들에 추가로 적용한다. 시스템은, 비디오를 향상시키기 위해서 하나 또는 그 초과의 필터 출력들을 추가로 평탄화한다. 다양한 다른 예시적인 구현예들이 아래에서 보다 구체적으로 설명된다.
[0018] 본원에 설명된 구현예들은, 비디오 향상들이 하나의 프레임 상에서 일관되고 현실적으로 보여야 할뿐만 아니라 비디오가 시간에 따라 재생될 때 자연스럽게 보여야 한다는 점에 관한 비디오들의 난제를 다룬다. 아래에서 보다 구체적으로 설명된 바와 같이, 구현예들은, 변경들이 시간에 따라 평탄하게 변경되는 것을 보장함으로써 자연스러운 모습을 달성한다. 구현예들은 비디오에 존재할 수 있는 비디오의 프레임들 내의 다양한 타입들의 바람직하지 않은 불연속성을 최소화하고 그리고/또는 제거한다. 예를 들어, 비디오가 노이즈 또는 다른 조건들로 인해 플리커를 디스플레이할 수 있다. 이러한 플리커는, 특정 시나리오에 의존하여, 하나 또는 그 초과의 상이한 타입들의 불연속성들에 의해 야기될 수 있다. 예시적인 불연속성들은 특징 불연속성들, 추정 불연속성들, 및 출력 불연속성들을 포함할 수 있다. 이러한 불연속성들 및 이러한 불연속성들을 처리하기 위한 구현예들이 아래에서 보다 구체적으로 설명된다.
[0019] 도 1은 일부 구현예들에 따른, 예시적인 네트워크 환경(100)의 블록도를 도시한다. 일부 구현예들에서, 네트워크 환경(100)은 서버 디바이스(104) 및 네트워크 데이터베이스(106)를 포함하는 시스템(102)을 포함한다. 네트워크 환경(100)은 또한, 직접 또는 시스템(102)을 통해 서로 통신할 수 있는 클라이언트 디바이스들(110, 120, 130 및 140)을 포함한다. 네트워크 환경(100)은 또한 네트워크(150)를 포함한다. 다른 구현예들이 가능하다. 예를 들어, 일부 또는 모든 프로세싱이 단일 디바이스(예를 들어, 모바일 디바이스, 데스크탑 디바이스 등) 상에서 수행될 수 있다.
[0020] 예시의 편의를 위해, 도 1에서는 시스템(102), 서버 디바이스(104) 및 네트워크 데이터베이스(106) 각각이 하나의 블록으로 도시되어 있으며, 클라이언트 디바이스들(110, 120, 130, 및 140)이 네 개의 블록들로 도시되어 있다. 블록들(102, 104, 및 106)은 다수의 시스템들, 서버 디바이스들, 및 선택적으로 네트워크 데이터베이스들을 나타낼 수 있다. 또한, 임의의 개수의 클라이언트 디바이스들이 존재할 수 있다. 다른 구현예들에서, 네트워크 환경(100)은 도시된 컴포넌트들을 모두 갖지 않을 수 있고, 그리고/또는 본 명세서에서 도시된 것들 대신에 또는 이에 추가하여 다른 타입들의 엘리먼트들을 포함하는 다른 엘리먼트들을 가질 수 있다.
[0021] 다양한 구현예들에서, 사용자들(Ul, U2, U3, 및 U4)은 각각의 클라이언트 디바이스들(110, 120, 130, 및 140)을 사용하여 서로 통신할 수 있다. 예를 들어, 사용자들(Ul, U2, U3, 및 U4)은 서로 상호작용할 수 있으며, 각각의 클라이언트 디바이스들(110, 120, 130, 및 140)이 서로 미디어를 송신한다.
[0022] 본원에 설명된 다양한 구현예들에서, 시스템(102) 및/또는 임의의 클라이언트 디바이스(110-140)의 프로세서는, 본원에 설명된 엘리먼트들(예를 들어, 비디오들 등)이 하나 또는 그 초과의 디스플레이 스크린들 상의 사용자 인터페이스에 디스플레이되게 한다.
[0023] 다양한 구현예들에서, 시스템(102)은 하나 또는 그 초과의 사진들에서 얼굴 또는 다른 오브젝트들을 검출하기 위해 이미지 인식 기술을 사용할 수 있다. 오브젝트들은 또한 산, 나무, 해변, 동물과 같은 자연 오브젝트들과 공, 병과 같은 다른 오브젝트들 등을 포함할 수 있다. 인식 기술들은 시스템(102)에서 그리고/또는 클라이언트 디바이스 상에서 구현될 수 있다. 인식 기술들의 예시적인 구현예들이 아래에서 보다 구체적으로 설명된다.
[0024] 구현예들은 임의의 네트워크 시스템에 적용될 수 있으며 그리고/또는 개인 사용자에 대해 로컬로 적용될 수 있다. 예를 들어, 본원에 설명된 구현은 시스템(102) 및/또는 임의의 클라이언트 디바이스(110-140)에 의해 구현될 수 있다. 시스템(102)은 독립형 컴퓨터, 태블릿 컴퓨터, 스마트 폰 등에서 본원에 설명된 구현예들을 수행할 수 있다. 시스템(102) 또는 클라이언트 디바이스(110-140)는 개별적으로 또는 다른 디바이스들과의 조합으로 본원에 설명된 구현예들을 수행할 수 있다.
[0025] 도 2는 일부 구현예들에 따른, 예시적인 비디오 인핸서(200)의 블록도를 도시한다. 다양한 구현예들에서, 비디오 인핸서(200)는 도 1의 시스템(102)에 의해 구현될 수 있다. 다양한 구현예들에서, 비디오 인핸서(200)의 하나 또는 그 초과의 컴포넌트들은 도 1의 시스템(102)에 의해 통합될 수 있고 그리고/또는 액세스가능하며 그리고 제어될 수 있다. 도시된 바와 같이, 비디오 인핸서(200)는 프레임 안정기(202), 프레임 캐시(204), 필터 파라미터 추정기(206), 추정된 필터 파라미터 버퍼(208), 필터 파라미터 평탄화기(210), 필터 적용기(212), 및 얼굴 추적기(214)를 포함한다. 이러한 컴포넌트들의 동작들/기능들, 및 입력들 및 출력들은 아래에서 보다 구체적으로 설명된다. 도시된 바와 같이, 비디오 인핸서의 이들 컴포넌트들은 계층으로 배열되고, 추정 계층으로 지칭될 수 있다. 추정 계층에서의 컴포넌트들의 특정 구성 및 순서는 특정 구현예에 의존하여 변할 수 있다. 아래에서 보다 구체적으로 설명되는 바와 같이, 구현예들은 추정 계층의 하나 또는 그 초과의 레벨들에서 주어진 비디오의 프레임들을 평탄화한다.
[0026] 예시의 편의를 위해, 도 2에서는 프레임 안정기(202), 프레임 캐시(204), 필터 파라미터 추정기(206), 추정된 필터 파라미터 버퍼(208), 필터 파라미터 평탄화기(210), 필터 적용기(212), 및 얼굴 추적기(214) 각각이 하나의 블록으로 도시된다. 블록들(202, 204, 206, 208, 210, 212 및 214)은 다수의 디바이스들, 시스템들 등을 나타낼 수 있다. 다른 구현예들에서, 비디오 인핸서(200)는 도시된 컴포넌트들을 모두 갖지 않을 수 있고, 그리고/또는 본 명세서에서 도시된 것들 대신에 또는 이에 추가하여 다른 타입들의 엘리먼트들을 포함하는 다른 엘리먼트들을 가질 수 있다.
[0027] 비디오 인핸서(200), 비디오 인핸서(200)의 컴포넌트들의 일부, 및 다양한 동작들의 다양한 예시적 구현예들이 도 3과 관련하여 아래에서 구체적으로 설명된다.
[0028] 도 3은 일부 구현예들에 따른, 비디오를 향상시키기 위한 예시적인 흐름도를 도시한다. 도 2 및 도 3 둘 모두를 참조하면, 방법은, 시스템(102) 또는 임의의 다른 적절한 디바이스가 비디오에 액세스하는 블록(302)에서 개시된다.
[0029] 다양한 구현예들에서, 비디오 인핸서(200)는 프레임 안정기(202)에서 비디오의 프레임들을 수신한다. 일부 구현예들에서, 비디오 인핸서(200)는 임의의 적절한 저장 위치로부터 비디오의 프레임들을 액세스하거나 획득할 수 있다. 비디오 인핸서(200)는 또한, 사용자가 비디오 인핸서(200)에 비디오를 업로드할 때 또는 사용자가 (예를 들어, 소셜 네트워크 시스템에서) 하나 또는 그 초과의 미디어 앨범들에 비디오를 추가한 후에 비디오의 프레임들에 액세스하거나 비디오의 프레임들을 획득할 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는 사용자의 비디오 카메라 디바이스(예를 들어, 스마트 폰, 비디오 카메라 등)가 비디오들을 캡처함에 따라 비디오 카메라 디바이스가 비디오들을 비디오 인핸서(200)에 자동으로 업로드하게 할 수 있다.
[0030] 다양한 구현예들에서, 비디오 인핸서(200)는 비디오들의 흔들림을 감소시키거나 제거하기 위해서 비디오의 하나 또는 그 초과의 프레임들을 안정화시킨다. 비디오 인핸서(200)는 임의의 적절한 안정화 기술들을 사용하여 비디오의 프레임들을 안정화시킬 수 있다. 다양한 구현예들에서, 비디오 인핸서(200)의 프레임 안정화기(202)는 비디오의 프레임들의 안정화를 수행할 수 있다.
[0031] 다양한 구현예들에서, 안정화 후, 비디오의 안정화된 프레임들은 임의의 적절한 메모리 또는 캐시 계층에 저장될 수 있다. 캐시 계층에 저장되는 것은 메모리 사용을 감소시키는데 도움을 준다. 다양한 구현예들에서, 비디오의 프레임들은, 비디오 인핸서(200)에 의해 액세스될 때까지 임의의 적절한 메모리 또는 캐시 계층, 이를 테면 프레임 캐시(204)에 저장될 수 있다.
[0032] 블록(304)에서, 비디오 인핸서(200)는 비디오의 프레임들에 기초하여 하나 또는 그 초과의 필터들의 하나 또는 그 초과의 필터 파라미터들을 결정한다. 다양한 구현예들에서, 필터 파라미터들의 각각의 세트는 특정 필터와 연관될 수 있다. 예를 들어, 밝기, 콘트라스트, 및 채도와 같은 필터 파라미터들은 BCS(brightness-contrast-saturation) 필터와 연관될 수 있다. 일부 구현예들에서, 밝기 필터 파라미터는 밝기 필터와 연관될 수 있고, 콘트라스트 필터 파라미터는 콘트라스트 필터와 연관될 수 있고, 채도 필터 파라미터는 채도 필터와 연관될 수 있다. 일부 구현예들에서, 주어진 필터 파라미터는 2개 이상의 필터와 연관될 수 있다. 예를 들어, 채도와 같은 필터 파라미터는 BCS 필터와 연관될 수 있고 선택적 컬러 팝 필터와 연관될 수 있다. 주어진 필터 파라미터가 다수의 필터들과 연관되는 이러한 시나리오들에서, 주어진 필터 파라미터 값은, 특정 구현에 의존하여, 필터마다 다를 수 있다.
[0033] 아래에서 보다 구체적으로 설명되는 바와 같이, 비디오 인핸서(200)는 대응하는 필터 파라미터들을 갖는 다양한 타입들의 필터들을 비디오의 상이한 프레임들에 적용할 수 있다. 이러한 필터들은, 예를 들어, BCS 필터, 색조(tonal) 구조 필터, 컬러 필터, 선택적 컬러 팝 필터, 비네트 필터 등을 포함할 수 있다.
[0034] 다음은 일부 필터들의 예시적인 설명들이다. 일부 구현예들에서, BCS 필터는 밝기, 콘트라스트, 및 채도를 향상시킨다. 일부 구현예들에서, 색조 구조 필터는 보조광(fill light), 포근함(warmth), 및 구조를 적용할 수 있다. 일부 구현예들에서, 선택적 컬러 팝 필터와 같은 컬러 필터는 하나 또는 그 초과의 컬러들(예를 들어, 녹색 색상, 청색 색상, 녹색 및 청색 색상 등)을 선택적으로 부스팅하거나 향상시킬 수 있다. 예를 들어, 선택적 컬러 팝 필터는 풍경들에서 녹색들 및 청색들을 선택적으로 부스팅시킬 수 있다. 일부 구현예들에서, 포근함 필터와 같은 컬러 필터는 색 온도(예를 들어, 백색 밸런스)를 조정할 수 있다. 일부 구현예들에서, 채도 필터와 같은 컬러 필터는 다수의 또는 모든 컬러들에 동등하게 적용될 수 있다. 일부 구현예들에서, (예를 들어, 프레임 내에 검출된 얼굴이 있을 때) 비네트 필터는 에지를 어둡게 한다. 일부 구현예들에서, 노이즈 감소 필터는 이미지들의 노이즈를 감소시킨다. 일부 구현예들에서, 모션 디블러링 필터(motion deblurring filter)는 흐린 프레임들을 선명하게 한다. 일부 구현예들에서, 그레디언트 평탄화 필터는 하늘과 같은 평탄한 그래디언트(smooth gradient)들에서의 밴딩 아티팩트(banding artifact)들을 감소시킨다.
[0035] 다른 타입들의 필터들도 또한 가능하다. 예를 들어, 다른 필터들은 BCSW(BCS-warmth) 필터, 보조광 필터, 컬러/톤 안정화 필터 등을 포함할 수 있다.
[0036] 다양한 구현예들에서, 필터들에 대한 필터 파라미터들을 결정하기 위해서, 비디오 인핸서(200)는 하나 또는 그 초과의 기술들에 기초하여 비디오의 하나 또는 그 초과의 프레임들과 연관되어 적용될 하나 또는 그 초과의 대응하는 필터들의 하나 또는 그 초과의 필터 파라미터들을 추정한다. 예를 들어, 다양한 구현예들에서, 비디오 인핸서(200)는 비디오의 하나 또는 그 초과의 프레임들 내의 하나 또는 그 초과의 오브젝트들을 분류하는 것에 기초하여 하나 또는 그 초과의 필터들의 필터 파라미터들을 결정할 수 있다. 비디오의 하나 또는 그 초과의 프레임들 내의 하나 또는 그 초과의 오브젝트들의 분류에 관한 예시적인 구현예들이 아래에서 보다 구체적으로 설명된다. 다양한 구현예들에서, 비디오 인핸서(200)는 비디오의 다수의 프레임들에 걸쳐 하나 또는 그 초과의 오브젝트들을 추적하는 것에 기초하여 하나 또는 그 초과의 필터들의 하나 또는 그 초과의 필터 파라미터들을 결정할 수 있다. 비디오의 다수의 프레임들에 걸쳐 하나 또는 그 초과의 오브젝트들을 추적하는 것에 관한 예시적인 구현예들이 아래에서 보다 구체적으로 설명된다. 다양한 구현예들에서, 비디오 인핸서(200)의 필터 파라미터 추정기(206)는 필터 파라미터들의 추정을 수행할 수 있다.
[0037] 소정의 구현예들에서, 비디오의 프레임들에 적용될 필터들에 대한 필터 파라미터들을 결정하기 위해서, 비디오 인핸서(200)는 비디오의 일부 프레임들에서 하나 또는 그 초과의 입력 특징들 또는 오브젝트들을 검출한다. 그런다음, 비디오 인핸서(200)는 비디오의 하나 또는 그 초과의 프레임들 각각 내에서 하나 또는 그 초과의 검출된 오브젝트들을 분류한다. 예를 들어, 비디오 인핸서(200)는 오브젝트를 검출한 다음, 오브젝트를 (예를 들어, 얼굴, 산 등으로) 분류할 수 있다. 다양한 구현에서, "오브젝트들" 및 "특징들"이란 용어들은 상호교환가능하게 사용될 수 있다. 그런다음, 비디오 인핸서(200)는 검출된 특징들 중 하나 또는 그 초과의 것의 분류에 기초하여 하나 또는 그 초과의 오브젝트들 각각에 대해 하나 또는 그 초과의 필터 파라미터들을 결정한다. 예를 들어, 비디오의 하나 또는 그 초과의 프레임들 내의 주어진 오브젝트가 얼굴이면, 비디오 인핸서(200)는 비디오에 적용되는데 적합할 수 있는 비네트 필터를 위한 필터 파라미터들을 결정할 수 있다.
[0038] 비디오의 오브젝트들의 분류에 기초하여 필터 파라미터들을 결정하는 것은, 분류된 오브젝트들에 적합한, 비디오의 효과적인 향상을 가능하게 한다. 일부 구현예들에서, 비디오 인핸서(200)가 프레임 내에서 얼굴을 검출하고 분류하는 경우, 비디오 인핸서(200)는 로컬 콘트라스트를 적용하지 않을 것이다. 이는, 예를 들어, 로컬 콘트라스트가 사람의 얼굴에 있는 흠들(예를 들어, 여드름, 점들, 공포들, 상처들 등)을 강조하는 경향이 있을 수 있기 때문이다. 일부 구현예들에서, 비디오 인핸서(200)가 산을 검출하고 분류하는 경우, 향상된 로컬 콘트라스트가 산악 풍경들의 외관을 개선할 수 있기 때문에, 비디오 인핸서(200)는 보다 많은 로컬 콘트라스트를 적용할 것이다.
[0039] 일부 구현예들에서, 특정 오브젝트의 존재 또는 부재 및/또는 특정 오브젝트 속성들의 존재 또는 부재는 하나 또는 그 초과의 필터들을 불필요하게 만들 수 있거나 또는 이러한 필터들에 대한 하나 또는 그 초과의 필터 파라미터들을 불필요하게 만들거나 조정이 필요하게 할 수 있다. 선택적 컬러 팝 필터를 포함하는 예에서, 비디오 인핸서(200)는 특정 컬러(예를 들어, 녹색, 청색 등)가 존재하지 않는 경우 선택적 컬러 팝 필터를 디스에이블할 수 있다.
[0040] 보조광 필터를 포함하는 다른 예에서, 그림자들(예를 들어, 과다노출된 이미지 등)이 없는 경우 보조광 필터를 적용하는 것은 많은 영향이 없을 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는, 보조광이 필요 없는 것으로 결정할 수 있다. 비디오 인핸서(200)는 보조광 필터를 적용하지만 하나 또는 그 초과의 필터 파라미터 값들을 조정할 수 있다(예를 들어, 사용자가 보조광의 강도를 낮추는 식이다). 일부 구현 예에서, 비디오 인핸서 (200)는, 미리결정된 조건들이 충족되는 경우 특정 필터(예를 들어, 보조광 필터 등)를 디스에이블할 수 있다. 예를 들어, 비디오 인핸서(200)는, 광 강도가 임계치 미만인 것으로 결정될 경우 보조광 필터를 디스에이블할 수 있다. 다른 평탄화하는 다양한 분석들이 아래에서 보다 구체적으로 설명된다.
[0041] 일부 구현예들에서, 비디오 인핸서(200)는 비디오의 모든 각각의 N번째 프레임에 기초하여 하나 또는 그 초과의 필터 파라미터들을 추정할 수 있다. 예를 들어, 일부 구현예들에서, 비디오 인핸서(200)는 비디오의 모든 각각의 프레임에 기초하여 하나 또는 그 초과의 필터 파라미터들을 추정할 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는 비디오의 하나 걸러 하나의 프레임에 기초하여 하나 또는 그 초과의 필터 파라미터들을 추정할 수 있다. N 값은 변할 수 있으며 특정 구현예들에 의존할 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는 필터 파라미터들을 추정하기 위해 임의의 적절한 추정 기술을 사용할 수 있다.
[0042] 일부 구현예들에서, 비디오 인핸서(200)는 비디오의 장면 변경들을 결정할 수 있다. 주어진 비디오에서의 상이한 장면들은, 분류될 상이한 오브젝트들을 포함할 수 있다. 따라서, 비디오 인핸서(200)는 상이한 장면 변경들에 기초하여 필터 파라미터들을 추정할 수 있다.
[0043] 비디오 인핸서(200)는 장면 변경들을 결정하기 위해서 장면 변경 정보에 액세스할 수 있다. 비디오 인핸서(200)는 또한, 장면 변경들을 결정하기 위해서 프레임들을 분석하여 다수의 프레임들에 걸쳐 (예를 들어, 연속적인 프레임에 걸쳐) 상당한 변경들을 검출할 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는, 주어진 장면에서의 오브젝트들이 실질적으로 변경되지 않을 것이기 때문에 장면 당 하나의 프레임을 분석할 수 있다. 장면 당 하나의 프레임 또는 프레임들의 서브세트를 분석하는 것은 향상 프로세스가 계산적으로 덜 집약적이게 하고, 프로세싱 시간을 감소시키고 그리고 프로세싱 레이턴시를 감소시킬뿐만 아니라 메모리를 최적화시킬 것이다.
[0044] 일부 구현예들에서, 비디오 인핸서(200)는 비디오의 하나 또는 그 초과의 프레임들에서 하나 또는 그 초과의 오브젝트들을 먼저 분류하고 룩업 테이블을 참조함으로써 필터 파라미터들을 결정할 수 있다. 예를 들어, 비디오 인핸서(200)가 사람의 얼굴을 검출하고 분류하는 경우, 비디오 인핸서 (200)는, 비네트 필터가 얼굴을 포함하는 프레임들에 적용되는 것이 적절하다는 것을 결정할 수 있다. 다른 예에서, 비디오 인핸서(200)가, 비디오가 실내 장면을 갖는 것으로 결정하면, 비디오 인핸서(200)는, BCS 필터가 실내 프레임들에 적용되는 것이 적절한 것으로 결정할 수 있다.
[0045] 비디오의 프레임들 내의 다양한 타입들의 불연속성들이 비디오에 존재할 수 있으며, 그러한 불연속성들은 바람직하지 않을 수 있다. 예를 들어, 비디오가 노이즈 또는 다른 조건들로 인해 플리커를 디스플레이할 수 있다. 이러한 플리커는, 특정 시나리오에 의존하여, 하나 또는 그 초과의 상이한 타입들의 불연속성들에 의해 야기될 수 있다. 예시적인 불연속성들은 특징 불연속성들, 추정 불연속성들, 및 출력 불연속성들을 포함할 수 있다. 이러한 불연속성들 및 이러한 불연속성들을 처리하기 위한 구현예들이 아래에서 보다 구체적으로 설명된다.
[0046] 오브젝트 분류 및 얼굴 검출(예를 들어, 얼굴이 존재하는지 여부와 같은 이진 분류들)의 경우와 같이, 추정이 별개의 특징들에 의존하고 있을 때 특징 불연속성들이 발생할 수 있다. 예를 들어, 비디오 상에 캡처될 경우 사람의 얼굴이 존재할 수 있다. 그러나, 노이즈 또는 불량한 조명과 같은 다른 조건들으로 인해, 얼굴이 일부 프레임들 내에서는 검출될 수 있지만 다른 프레임들에서는 검출되지 않을 수 있다. 다른 예에서, 특징 불연속성들은 흐린 프레임에서 손실되는 추적된 오브젝트 또는 비디오에서의 장면 변경들을 포함할 수 있다.
[0047] 다양한 구현예들에서, 특징 불연속성들은 분류 평탄화에 의해 해결될 수 있다. 분류 평탄화를 위한 일 기술은, 비디오 인핸서(200)가 전체 비디오에 대해 하나의 분류를 선택하는 경우이다. 즉, 비디오 인핸서(200)는, 비디오의 프레임들 중 일부 프레임들에 오브젝트가 존재할 경우, 비디오 내의 다수의 프레임들(예를 들어, 연속적인 장면 변경들 사이의 모든 프레임들)을 특정 오브젝트(예를 들어, 얼굴)가 존재하는 것으로서 취급할 수 있다. 일부 구현예들에서, 분류 평탄화는 비디오의 프레임들 내의 특정 오브젝트의 존재 (또는 부재)의 확률적 신뢰도-구간-기반 결정에 기초할 수 있다. 다양한 구현예들에서, 얼굴 검출은 임의의 적절한 얼굴 추적 코드를 사용함으로써 평탄화될 수 있다. 특징 불연속성들을 처리하기 위한 다양한 구현예들이 아래에서 보다 구체적으로 설명된다.
[0048] 다양한 구현예들에서, 오브젝트들의 분류는 하나 또는 그 초과의 분류 동작들에 기초하고, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하기 위해서, 비디오 인핸서(200)는 분류 동작들 또는 기능들 중 하나 또는 그 초과의 것을 평탄화할 수 있다. 분류 동작들의 예들이 아래에서 보다 구체적으로 설명된다. 예를 들어, 일부 구현예들에서, 비디오 인핸서(200)는 하나 또는 그 초과의 필터 파라미터 추정들에 대한 하나 또는 그 초과의 입력들을 조정할 수 있다. 입력들은, 예를 들어, 비디오의 오브젝트들을 포함할 수 있다. 일부 구현예들에서, 동작을 평탄화하기 위한 일 기술은, 비디오 인핸서(200)가, 얼굴과 같은 특정 오브젝트를 갖는 것으로서 더 많은 프레임들을 분류하거나 또는 더 적은 프레임들을 분류하는 것이다. 이 기술은 특정 오브젝트와 연관된 신뢰도 구간을 조정하는 것을 포함한다. 예시적인 구현예들이 아래에서 보다 구체적으로 설명된다.
[0049] 다양한 구현예들에서, 하나 또는 그 초과의 분류 동작들 또는 기능들을 평탄화하기 위해서, 비디오 인핸서(200)는 비디오의 다수의 프레임들에 걸쳐 분류 신뢰도 구간을 평탄화할 수 있다. 이는, 주어진 오브젝트의 분류에 기초하여 특정 필터 및 그 특정 필터의 대응하는 필터 파라미터들을 적용할지 여부에 영향을 줄 것이다. 예를 들어, 오브젝트(예를들어, 얼굴, 산, 풍경 등)를 검출할 경우, 신뢰도 구간 또는 신뢰 수준(예를 들어, 0 내지 100 %)은 오브젝트가 비디오의 특정 프레임들에 존재할 가능성을 나타낼 수 있다.
[0050] 일부 구현예들에서, 비디오 인핸서(200)는 미리결정된 신뢰도 임계치를 미리결정된 값(예를 들어, 50 %)으로 설정할 수 있다. 예를 들어, 비디오 인핸서(200)는, 신뢰도 구간이 50% 또는 그 초과인 경우 오브젝트(예를 들어, 산)가 존재하는 것으로 간주할 수 있다. 즉, 특정 오브젝트의 신뢰도 구간이 주어진 프레임에 대한 미리결정된 신뢰도 임계치를 만족하는 경우, 비디오 인핸서(200)는 오브젝트가 주어진 프레임 내에 존재하는 것으로 간주할 수 있다. 그렇지 않으면, 비디오 인핸서(200)는, 신뢰도 임계치가 49 % 또는 그 미만이면, 오브젝트가 존재하지 않는 것으로 간주할 수 있다. 즉, 특정 오브젝트의 신뢰도 구간이 주어진 프레임에 대한 미리결정된 신뢰도 임계치를 만족하지 않는 경우, 비디오 인핸서는 오브젝트가 주어진 프레임 내에 존재하지 않는 것으로 간주할 수 있다.
[0051] 일부 구현예들에서, 비디오 인핸서(200)는 각각의 프레임에 대한 오브젝트의 신뢰도를 결정할 수 있고, 그런다음, 오브젝트가 주어진 프레임에 있을 가능성을 평탄화해 내기 위해서 각각의 프레임의 신뢰도 구간에 평탄화 함수를 적용할 수 있다. 예시적인 구현예들이 아래에서 보다 구체적으로 설명된다.
[0052] 일부 구현예들에서, c(a, i)=프레임 i의 특징 a의 신뢰도라 하자. 비디오 인핸서(200)는, 인근 프레임들의 신뢰도를 결합하는, 평탄화 함수 f를 정의할 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는 (예를 들어, 가중치들에 대한 가우시안 분포를 사용하여) 인근 프레임들에서의 신뢰도의 가중 평균치를 취할 수 있고, 아웃라이어들을 폐기할 수 있다.
[0053] 예를 들어, 신뢰도 임계치가 50 %이고, 상이한 프레임들에서의 신뢰도 구간 값들이 값에 있어서 근접해 있지만 일부 값들은 50% 초과이고 일부 값들은 50% 미만인 경우(예를 들어, 51, 49, 53, 48 등), 오브젝트(예를 들어, 산)가 비디오 내에서 그리고 비디오 밖으로 팝핑(popping)되는 것으로 보일 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는, 값들을 함께 그룹화하고 그에 따라 이들 프레임들에 동일한 분류를 적용함으로써 그 분류를 평탄화하기 위해서 특정 양만큼 신뢰도 임계치를 낮추거나 상승시킴으로써 분류를 평탄화할 수 있다.
[0054] 추정기가 별개의 값들을 출력할 경우 추정 불연속들이 발생할 수 있다. 예를 들어, 선택적 컬러 팝 추정기는, 채도를 증가시키기 위해 하드 임계치를 사용할 수 있다. BCS(brightness-contrast-saturation) 필터는 또한, 채도 및/또는 밝기를 증가시키기 위해 하드 임계치를 사용할 수 있다. 일부 시나리오들에서, 특정 필터는 일부 프레임들에서 필터 파라미터(예를 들어, 채도, 밝기 등)를 조정할 수 있지만, 추정 불연속성들로 인해 다른 프레임들에서는 조정할 수 없다. 이러한 추정 불연속성들은 (예를 들어, 비디오의 다수의 프레임들에 걸쳐) 시각적 변경들을 발생시킬 수 있다.
[0055] 일부 구현예들에서, 신뢰도 구간이 하드 임계치를 만족하는 주어진 오브젝트들의 경우, 필터는, 특정 구현에 의존하여, 상이한 방향들로 특정 필터 파라미터들을 조정할 수 있다. 예를 들어, 일부 구현예들에서, 컬러 팝 필터는 다수의 필터 파라미터들, 이를 테면 상이한 컬러들 등을 가질 수 있다. RGB(red-green-blue) 컬러 공간을 고려하면, 적색의 채도는 보통 90 %로 설정되고, 녹색의 채도는 80 %로 설정되고, 청색의 채도는 70 %로 설정될 수 있다. 특정 오브젝트가 식별되는 경우, 비디오 인핸서(200)는, 적색의 채도가 100 %까지 증가되고, 녹색의 채도가 80 %로 유지되고, 청색의 채도가 60%로 설정되도록 채도를 조정할 수 있다. 이 특정 예에서 설명된 백분율들은 예시적이고 비제한적이며, 특정 구현에 의존하여 다른 백분율들이 가능하다.
[0056] 다른 예에서, 색조 구조 필터는 보조광, 포근함 및 구조를 적용 할 수 있으며, 보조광은 비디오 프레임의 모든 각각의 픽셀에 걸쳐 밝기를 증가시키는 것이 아니라 그림자들의 밝기를 증가시킨다. 이는, 픽셀의 조정 량이 픽셀의 이웃에 의존되는 로컬 필터의 예이다. 색조 구조 필터는 또한, 색상 시프트(hue shift)인 포근함을 조정할 수 있다. 예를 들어, 색조 구조 필터는, 전체 이미지를 더 적색으로 조정할 수 있다. 색조 구조 필터는 또한 구조를 조정할 수 있으며, 구조는 로컬 콘트라스트 강조 에지들 및 선명한 경계들이다.
[0057] 일부 구현예들에서, 이러한 문제들은 값들 사이의 평탄 전이 함수(smooth transition function)를 사용함으로써 (예를 들어, 임계치들을 평탄화하는 것 등에 의해) 해결될 수 있다. 다른 경우들에서, 추정된 파라미터들은 프레임들(예를 들어, 50개의 프레임들 등)의 버퍼에 걸쳐 필터링될 수 있다. 예시적인 필터링 접근법들은, 가우시안 평탄화(Gaussian smoothing), 칼만 필터링(Kalman filtering), 안정화에 의해 사용되는 최적화 등을 포함할 수 있다. 일부 구현예들에서, (예를 들어, 평탄화될 수 없는 함수들의 경우), 비디오 인핸서(200)는 필터 출력들을 평탄화할 수 있다(예를 들어, 프레임들에 걸쳐 출력 파라미터 값들 등을 평탄화할 수 있다). 특징 불연속성들을 처리하기 위한 다양한 다른 구현예들이 아래에서 보다 구체적으로 설명된다.
[0058] 다양한 구현예들에서, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화하기 위해, 비디오 인핸서(200)는 하나 또는 그 초과의 필터 파라미터 추정 동작들을 평탄화할 수 있다. 예를 들어, 비디오 인핸서(200)는 밝기를 결정하기 위해서 필터 파라미터 추정 동작들에서 사용되는 임계치를 평탄화할 수 있다. 필터 파라미터 동작들을 평탄화하는 다양한 예시적인 구현예들이 아래에서 보다 구체적으로 설명된다.
[0059] 일부 구현예들에서, 비디오 인핸서(200)는 필터 파라미터 가중 함수들에 기초하여 하나 또는 그 초과의 필터 파라미터 추정 동작들을 평탄화할 수 있다. 예를 들어, 일부 구현예들에서, 비디오 인핸서(200)는 오브젝트들 중 하나 또는 그 초과의 것을 글로벌 오브젝트들로서 지정할 수 있다. 그런다음, 비디오 인핸서(200)는 그 지정에 기초하여 대응하는 평탄화된 필터 파라미터들을 갖는 하나 또는 그 초과의 필터들을 비디오의 모든 프레임들에 적용할 수 있거나 또는 비디오의 어떠한 프레임들에도 적용하지 않을 수 있다. 다양한 예시적인 구현예들이 아래에서 보다 구체적으로 설명된다.
[0060] 다양한 구현예들에서, 비디오 인핸서(200)는 비디오의 다수의 프레임들에 걸쳐 하나 또는 그 초과의 오브젝트들 또는 특징들을 추적한다(예를 들어, 프레임 별로 오브젝트들을 추적한다). 예를 들어, 비디오 인핸서(200)는 다수의 프레임들에 걸쳐 얼굴을 추적할 수 있다. 다양한 구현예들에서, 비디오 인핸서(200)의 얼굴 추적기(214)는 얼굴들 및 다른 특징들의 추적을 수행할 수 있다.
[0061] 다양한 구현예들에서, 파라미터들의 추정은 프레임들의 세트 내의 특정 오브젝트(예를 들어, 얼굴)의 존재 또는 부재에 의해서뿐만 아니라 존재한다면 특정 오브젝트의 위치에 의해 영향을 받을 수 있다. 예를 들어, 일부 구현예들에서, 비디오 인핸서(200)는, 일부 프레임들의 중앙에 또는 그 근처에 얼굴이 있을 경우 비네트 필터를 적용할 수 있다. 일부 구현예들에서, BCS 필터의 파라미터들은 얼굴 외모 등을 우선시 할 수 있다. 비네트 필터는 이미지의 코너들과 에지들을 어둡게 할 수 있다. 따라서, 비네트 필터는, 비네트를 얼굴 중앙에 배치하기 위해 얼굴의 위치를 사용한다.
[0062] 다양한 구현예들에서, 얼굴 추적기(214)는 오브젝트 포지션 정보를 제공하는데, 이 정보는 프레임 내의 오브젝트(예를 들어, 얼굴 등)의 위치를 포함한다. 얼굴 추적기(214)는 특정 구현에 의존하여, 임의의 적절한 추적 기술을 사용할 수 있다. 예를 들어, 일부 구현예들에서, 얼굴 추적기(214)는 추적을 처리하기 위해 임의의 적절한 얼굴 추적기 라이브러리를 사용할 수 있다. 일부 구현예들이 얼굴 추적의 맥락에서 설명되지만, 이러한 구현예들 및 다른 구현예들은 또한 다른 타입의 오브젝트들(예를 들어, 패닝(panning) 동안의 산들, 장면을 가로질러 이동하는 동물들 등)에 적용될 수 있다.
[0063] 일부 구현예들에서, 프레임들의 세트가 얼굴을 포함하지만 세트 내의 하나 또는 그 초과의 프레임들이 흐린 경우, 얼굴 추적기(214)는 흐린 프레임들 상에서 얼굴을 검출하지 못할 수도 있다. 일부 구현예들에서, 얼굴 추적기(214)는, 얼굴이 존재하지만 주어진 프레임에서 검출되지 않았음을 결정할 수 있다. 예를 들어, 얼굴 추적기(214)는 주어진 프레임의 전과 후에 얼굴을 검출할 수 있다. 일부 구현예들에서, 얼굴 추적기(214)는, 얼굴이 위치될 장소를 추정하기 위해서 프레임들 사이를 보간할 수 있다. 일부 구현예들에서, 얼굴을 포함하지만 얼굴이 검출되지 않는 다수의 프레임들이 존재하는 경우, 얼굴 추적기(214)는, 얼굴이 위치될 수 있는 경로를 보간할 수 있다.
[0064] 일부 구현예들에서, 일부 오브젝트들은, 각각의 프레임에서 독립적으로 검출되는 것이 아니라, 다수의 프레임들에 걸쳐 추적될 수 있다. 이는 최종 결과들을 평탄화하는데 유용하다. 예를 들어, 일부 오브젝트들 또는 피처들의 경우, 비디오의 프레임들 내에서 어느 프레임들에 오브젝트들이 나타나는지는 중요하지 않을 수 있다. 비디오 인핸서(200)는 오브젝트를 글로벌 오브젝트로서 지정하고 하나 또는 그 초과의 특정 필터들 및 대응하는 필터 파라미터들을 비디오의 모든 프레임들에 적용할 수 있거나 또는 비디오의 어떠한 프레임들에도 적용하지 않을 수 있다.
[0065] 예를 들어, 비디오 인핸서(200)가 비디오의 일부 프레임들에서 산들을 검출하고 분류하는 경우, 비디오 인핸서(200)는 전체 비디오를 풍경 비디오로서 분류한 다음, 산 및/또는 풍경에 대한 필터 파라미터 추정치들을 전체 비디오에 적용할 수 있다. 즉, 비디오 인핸서(200)는, 어느 특정 프레임들이 산을 포함하거나 또는 포함하지 않는지를 결정하지 않을 수 있다. 본원의 다른 구현예들에서 설명된 바와 같이, 비디오 인핸서(200)는 산들을 포함하는 장면의 일부인 프레임들의 시퀀스를 분류한 다음, 산 및/또는 풍경에 대한 필터 파라미터 추정치들을 비디오의 프레임들의 시퀀스에 적용할 수 있다.
[0066] 일부 시나리오들에서, 비디오의 동일한 프레임들에 2개의 상이한 타입들의 오브젝트들이 있을 수 있으며, 각각의 오브젝트는, 적용될 수 있는 상이한 필터 파라미터들을 가질 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는 하나의 오브젝트(예를 들어, 산 위에 있는 얼굴들 등)에 더 높게 등급을 매기고, 더 높은 등급의 오브젝트에 기초하여 결정된 필터 파라미터들에 기초하여 필터를 적용할 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는 2개 또는 그 초과의 대응하는 오브젝트들(예를 들어, 가장 높은 등급의 오브젝트들 등)에 기초하여 결정된 필터 파라미터들에 기초하여 2개 또는 그 초과의 필터들을 적용할 수 있다.
[0067] 다양한 구현예들에서, 추정된 필터 파라미터 버퍼(208)는, 각각의 프레임을 위한 평탄화된 파라미터들을 요청할 경우 사용하기 위해, 추정된 필터 파라미터들을 위한 버퍼 계층을 제공할 수 있다. 추정된 필터 파라미터 버퍼(208)는 필터 파라미터 추정기(206)와 필터 파라미터 평탄화기(210) 사이에 버퍼 계층을 제공한다. 다양한 구현예들에서, 추정된 필터 파라미터 버퍼(208)는, 새로운 추정된 필터 파라미터들을 자신의 처음에 삽입하고 하나 또는 그 초과의 추정된 필터 파라미터들을 자신의 끝에서 드롭시킴으로써 이동 버퍼 윈도우와 같이 기능한다.
[0068] 본원에서 보다 상세하게 설명되는 바와 같이, 비디오 인핸서(200)는 프레임들의 버퍼에 걸쳐 필터 파라미터들을 평탄화한다. 이는 시간적으로 평탄한 비디오를 발생시키고 불연속성들(예를 들어, 출력에서 나타날 수 있고 부정적 효과들을 생성할 수 있는 불연속성들 등)을 최소화하고 그리고/ 또는 제거한다.
[0069] 다시 도 2 및 도 3을 참조하면, 블록(306)에서, 비디오 인핸서(200)는, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화한다. 다양한 구현예들에서, 비디오 인핸서(200)는 비디오의 하나 또는 그 초과의 프레임들에 기초하여, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화한다. 예를 들어, 본원에서 보다 구체적으로 설명되는 바와 같이, 다양한 구현예들에서, 비디오 인핸서(200)는, 비디오의 하나 또는 그 초과의 프레임들의 하나 또는 그 초과의 오브젝트들을 분류하는 것에 기초하여, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화한다. 일부 구현예들에서, 비디오 인핸서(200)는 비디오의 다수의 프레임들에 걸쳐 하나 또는 그 초과의 오브젝트들을 추적하는 것에 기초하여, 결정된 필터 파라미터들 중 하나 또는 그 초과의 것을 평탄화한다. 다양한 구현예들에서, 비디오 인핸서(200)의 필터 파라미터 평탄화기(210)는, 추정된 필터 파라미터들의 평탄화를 수행할 수 있다.
[0070] 일부 구현예들에서, 일부 필터들 또는 오브젝트들/특징들은 이미 본질적으로 평탄하다. 따라서, 추가 평탄화가 필요하지 않다. 일부 시나리오들에서, 비디오에서 장면 변경이 있는 경우, 비디오 인핸서(200)는 장면-변경 경계들을 검출할 수 있고, 그러한 경계들에서의 평탄화 요건들을 완화할 수 있다. 예를 들어, 장면 변경에서 얼굴이 검출되지 않는 것이 허용될 수 있다. 일부 구현예들에서, 장면 변경 경계들을 검출하기 위해서, 비디오 인핸서(200)는 연속적인 프레임들 간의 차(difference)들을 컴퓨팅하고, 미리결정된 임계치를 설정할 수 있다. 이 차가 미리결정된 기준을 충족시키는 경우, 비디오 인핸서(200)는 장면 변경이 발생했다고 간주할 수 있다. 일부 구현예들에서, 평탄화는 개별 장면 내의 프레임들에 걸쳐 적용될 수 있지만 프레임들간에 장면 변경들이 있을 경우에는 프레임들에 걸쳐 적용되지 않을 수 있다. 일부 구현예들에서, 평탄화는 (예를 들어, 장면 변경 후에 특징이 유지될 경우) 장면 변경들에 걸쳐 적용될 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는 차 컴퓨테이션을 가속화하기 위해서 비디오 인코딩 정보를 사용할 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는 로컬 오브젝트들/특징, 컬러 히스토그램들 등을 추적할 수 있다.
[0071] 일부 구현예들에서, 비디오 인핸서(200)는 비디오를 완전한 프레임들(예를 들어, RGB-비트맵들 등)로 디코딩함으로써 비디오를 프로세싱한 후, 프로세싱 후에 비디오를 리인코딩(re-encode)할 수 있다. 일부 구현예들에서, 인코딩된 차들은 프로세싱을 가속화하기 위해 사용될 수 있다. 예를 들어, 인코딩된 차들은, 차 프레임들에서 반복될 I-프레임에서의 변경들을 카피함으로써 프로세싱을 가속화하는데 사용될 수 있다. 일부 구현예들에서, 인코딩된 모션 정보는 (예를 들어, 다수의 프레임에서 검출된 개의 산책과 같이) 특정 특징들을 일정하게 유지하는 것과 같은 특정 기술들을 위해 사용될 수 있다.
[0072] 일부 구현예들에서, 가우시안 커널 평탄화 기술(Gaussian kernel smoothing technique)은, (예를 들어, 실수 값 함수(real valued function)에 대한 파라메트릭 모델이 알려지지 않은 경우 등에서) 그 함수의 노이지(noisy) 관찰들을 사용함으로써 그 함수를 실수 값 함수를 추정하는데 사용될 수 있다. 일부 구현예들에서, 가우시안 커널은 다음 식:
Figure 112017111957646-pct00001
으로 표현될 수 있다. 일부 구현예들에서, 추정된 필터 파라미터들이 점진적으로 그리고 연속적으로 변경되도록, 가까운 샘플들(예를 들어, 더 가까운 프레임들)에는 더 큰 가중치가 주어진다. 일부 구현예들에서, 가우시안 커널 평탄화기는 각각의 파라미터에 대해서 실행될 수 있으며, 여기서, 상이한 커널 사이즈들이 상이한 파라미터들에 대해 사용될 수 있다(예를 들어, 파라미터 공간의 각각의 차원에 대해 평탄화 강도를 튜닝한다).
[0073] 일부 구현예들에서, 선형 이차 추정으로도 알려진 칼만 필터가 사용될 수 있다. 일부 구현예들에서, 칼만 필터는, 노이즈 및 다른 부정확성을 포함하는 시간에 따라 관찰된 일련의 측정치들을 이용하며, 단일 측정치만을 기초로 하는 것보다 더 정밀한 경향이 있는 미지 변수들의 추정치들을 생성할 수 있다.
[0074] 일부 구현예들에서, 비디오 인핸서(200)는 하나 또는 그 초과의 필터 동작들을 평탄화한다. 필터 파라미터 추정 동작이 평탄화되고, 동작들에 대한 입력들이 시간에 따라 평탄화되는 경우, 함수의 출력은 시간에 따라 평탄화될 가능성이 높다. 예를 들어, 산에 대한 미리결정된 임계치가 50 %이고 산이 되는 주어진 오브젝트의 신뢰도 구간이, 오브젝트가 산인 10 % 신뢰도인 경우, 신뢰도 구간은, 그 오브젝트가 산으로 간주되기에는 명백하게 너무 낮을 것이다. 따라서, 비디오 인핸서(200)는 산 오브젝트 분류에 기초하여 필터 파라미터들을 적용하지 않을 것이다. 반대로, 산들에 대해 미리결정된 임계치가 50 %이고 그리고 산이 되는 주어진 오브젝트의 신뢰도 구간이, 오브젝트가 산인 90 % 신뢰도인 경우, 그 신뢰도 구간은, 오브젝트가 산으로 간주되기에 명백하게 충분히 높을 것이다. 따라서, 비디오 인핸서(200)는 대응하는 필터 파라미터들을 적용할 것이다. 이 특정 예에서 설명된 백분율들은 예시적이고 비제한적이며, 다른 백분율들이 특정 구현에 의존하여 가능하다.
[0075] 상기 나타내어진 바와 같이, 일부 구현예들에서, 비디오 인핸서(200)는 가중 함수들을 평탄화하기 위해 하나 또는 그 초과의 하드 임계치들을 변경할 수 있다. 일부 구현예들에서, 밝기 필터 파라미터(예를 들어, BCS 필터 등)를 갖는 필터의 동작들의 경우, 비디오 인핸서(200)는, 측정된 평균 픽셀 값이 미리결정된 임계치를 초과하는 경우 밝기를 고정된 양만큼 증가시킴으로써 밝기를 설정하거나 또는 추정할 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는 미리결정된 임계치 주위에 사인곡선 가중치(sinusoidal weight)를 적용함으로써 필터 동작들을 평탄화할 수 있다. 위의 예를 산으로 들어 계속하면, 산들에 대해 미리결정된 임계치가 50 %이고 산이 되는 주어진 오브젝트의 신뢰도 구간이 48 % 또는 52 %인 경우, 그 신뢰도 구간은 산으로 간주되는 오브젝트의 뾰족한 끝 상에 있을 것이다. 따라서, 비디오 인핸서(200)가 미리결정된 임계치 주위에 사인곡선 가중치를 적용할 수 있으며, 비디오 인핸서(200)는 필터 동작들을 평탄화하기 위해서, 미리결정된 50 %의 임계치 주위에서 보간할 수 있다. 이 특정 예에서 설명된 백분율들은 예시적이고 비제한적이며, 특정 구현에 의존하여 다른 백분율들이 가능하다.
[0076] 일부 시나리오에서, 필터 동작이 평탄화될 수 없는 경우, 비디오 인핸서(200)는, 인근 프레임들의 추정된 파라미터들에 평탄화 함수를 적용함으로써 필터의 출력에 평탄화 함수를 적용할 수 있다. 필터 동작이 평탄화될 수 없는 예시적인 시나리오들은, 특징들을 검출하는 기술들이 신뢰도 값을 제공하지 않는 경우일 수 있다(예를 들어, 오브젝트 검출 기술이 프레임 내의 오브젝트의 존재에 관해 이진 출력을 제공하는 경우, 신뢰도에 기초한 파라미터 평탄화는 실현 가능하지 않을 수 있다). 필터 파라미터들이 평탄화될 수 없는 경우, 필터 출력은 불연속성들을 가질 수 있다. 예를 들어, 프레임 별로 상이한 결과들(예를 들어, 때때로 산만 검출됨)은 상이한 필터 파라미터 추정치들(예를 들어, 어떤 때는 4의 밝기, 어떤 때는 7의 밝기 등)을 발생시킬 수 있다. 다양한 구현예들에서, 비디오 인핸서(200)는 비디오를 향상시키기 위해서 필터의 출력에 평탄화 함수를 적용할 수 있다.
[0077] 다시 도 2 및 도 3을 참고하면, 블록(308)에서, 비디오 인핸서(200)는 비디오를 향상시키기 위해, 대응하는 평탄화된 필터 파라미터들을 갖는 하나 또는 그 초과의 필터들을 비디오의 하나 또는 그 초과의 프레임들에 적용한다. 일부 구현예들에서, 비디오 인핸서(200)는 하나 또는 그 초과의 대응하는 필터들의 평탄화된 필터 파라미터들 중 하나 또는 그 초과의 것을 비디오의 하나 또는 그 초과의 프레임들 각각에 또는 프레임들의 세트들에 적용한다. 다양한 구현예들에서, 비디오 인핸서(200)의 필터 적용기(212)는 대응하는 필터들과 연관하여 필터 파라미터들의 적용을 수행할 수 있다.
[0078] 본원에 나타내어진 바와 같이, 비디오 인핸서(200)는 평탄화된 필터 파라미터들을 비디오의 프레임들에 시간적으로 적용한다. 다양한 구현예들에서, 시간적 적용은, 평탄화가 이들 연속적인 프레임들에 걸쳐 평탄한 (예를 들어, 시간적으로 평탄한) 향상된 비디오를 생성하도록, 필터 적용이 다수의 연속적인 프레임들에 대해 발생한다는 것을 의미한다. 따라서, 다양한 구현예들에서, 비디오 인핸서(200)는 평탄화된 필터 파라미터들을 갖는 하나 또는 그 초과의 필터들을 일련의 프레임들에 적용한다. 구현예들은, 필터 적용들의 불연속성들을 최소화하고 그리고/또는 제거하고 파라미터들이 이미지의 실제 변경들에 대해 어떻게 맵핑되는지를 보여준다. 예를 들어, 구현예들은, 픽셀들의 그룹이 픽셀들의 하나의 빈에서 다른 빈으로 이동함에 따라 히스토그램-기반 조정들에서 점프들을 최소화하고 그리고/또는 제거한다.
[0079] 일부 구현예들에서, 출력 불연속성들은 필터 단위(per filter) 기반으로 다루어질 수 있다. 예를 들어, 일부 구현예들에서, 비디오 인핸서(200)는 선택적 컬러 팝에 의해 사용된 컬러 빈들을 연속적인 분포로 변환하거나 또는 시간에 따라 (예를 들어, 일련의 프레임들에 대해) 평탄화할 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는 상이한 파라미터 값들을 갖는 주어진 필터의 다수의 반복들을 실행한 다음, 그의 가중 평균치를 활용하여 출력 비디오 프레임들을 생성할 수 있다. 출력 불연속성들을 처리하기 위한 다양한 다른 구현예들이 아래에서 보다 구체적으로 설명된다.
[0080] 다양한 구현예들에서, 비디오 인핸서(200)는 하나 또는 그 초과의 필터들의 하나 또는 그 초과의 필터 출력들을 평탄화할 수 있으며, 이는 출력 불연속성들을 다루는 것을 돕는다. 일부 시나리오들에서, 주어진 프레임에 적용된 필터가 평탄화 필터 파라미터들에 따라 평탄하게 변하지 않는다면, 비디오 인핸서(200)는 필터 출력을 평탄화할 수 있다. 상기와 같이, 가능한 경우, 평탄하게 변하도록 필터를 변경시키는 것이 바람직할 수 있다. 그렇지 않으면, 입력 파라미터들의 범위에 대해 필터를 적용한 후, 다양한 출력들에 평탄화 함수를 적용함으로써 출력이 평탄화될 수 있다.
[0081] 다양한 구현예들에서, 비디오 인핸서(200)는 비디오의 다수의 프레임들에 걸친 필터 출력 값들의 가중된 평균치에 기초하여 하나 또는 그 초과의 필터 출력들을 평탄화할 수 있다. 예를 들어, 밝기가 5 씩 증가되는 경우, 비디오 인핸서(200)는 값들(3, 4, 6 및 7)로 따로따로 필터를 적용한 다음 5개의 결과들의 가중된 평균치를 취할 수 있다. 일부 구현예들에서, 가중치는, 예를 들어, 가우시안 함수에 기초할 수 있다.
[0082] 본원에 나타내어진 바와 같이, 상이한 타입들의 불연속성들이 발생할 수 있다. 하나 또는 그 초과의 불연속성 발생을 평탄화하는 것에 의해, 본원에 설명된 구현예들은, 부자연스러운 과도한 평탄화를 도입하지 않으면서 결과들이 입력들의 범위에 대해 평탄화되는 것을 보장한다.
[0083] 일부 구현예들에서, 비디오 인핸서(200)는 평탄화 기술들 중 임의의 하나 또는 그 초과의 것을 적용할 수 있다. 예를 들어, 일부 구현예들에서, 비디오 인핸서(200)는 하나 또는 그 초과의 평탄화 기술들을, 주어진 필터 파라미터 추정 동작의 입력에 적용할 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는 하나 또는 그 초과의 평탄화 기술들을, 주어진 필터 파라미터 추정 동작에 적용할 수 있다. 일부 구현예들에서, 비디오 인핸서(200)는 하나 또는 그 초과의 평탄화 기술들을, 주어진 필터의 출력에 적용할 수 있다. 다양한 구현예들에서, 스테이지들 중 일부 또는 모두에서의 평탄화가 특정 구현에 의존하여 가능하다. 이러한 스테이지들 중 임의의 하나 또는 그 초과의 것에서의 평탄화는 특정 구현에 의존하여 수행될 수 있다.
[0084] 도 4는 일부 구현예들에 따른, 예시적인 비디오 프레임(400)을 도시한다. 도시된 바와 같이, 좌측(402)은 편집되지 않은/향상되지 않은 버전을 도시한다. 우측(404)은 편집된/향상된 버전을 도시한다.
[0085] 본원에 설명된 구현예들은 다양한 이점들을 제공한다. 예를 들어, 구현예들은 시간적인 평탄화 편집들을 이용하여 향상된 비디오들을 자동으로 생성한다. 구현예들은 비디오에 자동 향상들을 제공하여, 단일 프레임 상에서 일관되고 사실적으로 보일뿐만 아니라, 비디오가 시간에 따라 재생됨에 따라 자연스럽게 보인다. 또한 구현예들은 비디오 향상의 계산 효율성을 개선하고 메모리 사용량을 최적화한다.
[0086] 단계들, 동작들, 또는 컴퓨테이션들이 특정 순서로 제시될 수 있지만, 순서는 특정 구현예들에서 변경될 수 있다. 특정 구현에 의존하여, 단계들의 다른 순서들이 가능하다. 일부 특정 구현예들에서, 본 명세서에서 순차적으로 나타내어지는 다수의 단계들은 동시에 수행될 수 있다. 또한, 일부 구현예들은 나타내어진 단계들 모두를 갖지 않을 수 있으며, 그리고/또는 본원에서 나타내어지는 것들 대신에 또는 이에 추가하여 다른 단계들을 가질 수 있다.
[0087] 시스템(102)이 본원의 구현예들에서 설명되는 바와 같은 단계들을 수행하는 것으로 설명되고 있지만, 시스템(102)의 컴포넌트들 중 임의의 적절한 컴포넌트 또는 이들의 조합, 또는 시스템(102)과 연관된 임의의 적절한 프로세서 또는 프로세서들은, 설명되는 단계들을 수행할 수 있다.
[0088] 다양한 구현예들에서, 시스템(102)은 이미지들에서, 얼굴들, 랜드마크들, 오브젝트들 등을 인식하기 위해 다양한 인식 알고리즘들을 활용할 수 있다. 이러한 인식 알고리즘들은 시스템(102)에 통합될 수 있다. 시스템(102)은 또한, 시스템(102) 외부에 있고 시스템(102)이 액세스하는 소프트웨어에 의해 제공되는 인식 알고리즘들에 액세스할 수 있다.
[0089] 다양한 구현예들에서, 시스템(102)은 사용자들이 개인 정보의 사용을 지정하고 그리고/또는 동의할 수 있게 하며, 이는, 이미지들 내의 사용자들의 얼굴들을 사용하거나 이미지들 내에서 식별된 사람들을 인식하는데 사용자들의 아이덴티티 정보를 사용하는 시스템(102)을 포함할 수 있다.
[0090] 다양한 오브젝트 및/또는 얼굴 인식 기술들이 사용될 수 있다. 예를 들어, 시스템(102)은 주요 컴포넌트 분석(principal component analysis), 선형 판별 분석(linear discriminate analysis), 탄력적 번치 그래프 매칭(elastic bunch graph matching), 은닉 마르코프 모델(hidden Markov model)들, 및 동적 링크 매칭(dynamic link matching) 중 하나 또는 그 초과의 것을 이용하는 얼굴 인식 기술들을 사용할 수 있다. 구현예들은, 다른 알려진 또는 나중에 개발될 안면 인식 알고리즘들, 기술들 및/또는 시스템들을 사용할 수 있다는 것을 인식할 것이다.
[0091] 도 5는 일부 구현예들에 따른, 예시적인 컴퓨팅 디바이스(500)의 블록도를 도시한다. 예를 들어, 컴퓨팅 디바이스(500)는 도 1의 서버 디바이스(104)를 구현하기 위해 사용될 수 있을 뿐만 아니라 본원에서 설명되는 방법 구현예들을 수행하기 위해 사용될 수 있다. 본원에 설명된 구현예들은 사용자 디바이스 상에서, 서버 상에서, 또는 이 둘의 조합으로 로컬로 수행될 수 있다. 일부 구현예들에서, 컴퓨팅 디바이스(500)는 프로세서(502), 운영 시스템(operating system)(504), 메모리(506), 및 I/O(Input/Output) 인터페이스(508)를 포함한다. 서버 디바이스(500)는 또한, 네트워크 엔진(510), 및 미디어 애플리케이션(512)을 포함하며, 이들은 메모리(506) 내에 저장될 수 있거나 또는 임의의 다른 적절한 저장 위치나 비일시적 컴퓨터-판독가능 매체 상에 저장될 수 있다. 미디어 애플리케이션(512)은 프로세서(502)로 하여금 본원에서 설명되는 기능들 및 다른 기능들을 수행할 수 있게 하는 명령들을 제공한다.
[0092] "프로세서(processor)", 이를 테면 프로세서(502)는 데이터, 신호들 또는 다른 정보를 프로세싱하는 임의의 적절한 하드웨어 및/또는 소프트웨어 시스템, 메커니즘, 또는 컴포넌트를 포함한다. 프로세서는 범용 중앙 프로세싱 유닛을 갖는 시스템, 다수의 프로세싱 유닛들을 갖는 시스템, 기능 달성을 위한 전용 회로를 갖는 시스템, 또는 다른 시스템들을 포함할 수 있다. 프로세싱은 지리적 위치에 한정될 필요는 없으며, 또는 시간적 제약들을 가질 필요도 없다. 예를 들어, 프로세서는 "실시간(real-time)"으로, "오프라인(offline)"으로, "일괄 모드(batch mode)" 등으로 프로세서의 기능들을 수행할 수 있다. 프로세싱의 일부분들은 상이한 시간들에 상이한 위치들에서 상이한(또는 동일한) 프로세싱 시스템들에 의해 수행될 수 있다. 컴퓨터는 메모리와 통신하는 임의의 프로세서일 수 있다. 메모리는 임의의 적절한 데이터 저장소, 메모리 및/또는 비일시적 컴퓨터 판독가능 저장 매체, 및/또는 전자 저장 디바이스들, 이를 테면, RAM(Random-Access Memory), ROM(Read-Only Memory), 자기 저장 디스크(하드 디스크 드라이브 또는 이와 유사한 것), 플래시, 광학 저장 디바이스(CD, DVD 또는 이와 유사한 것), 자기 또는 광학 디스크를 포함하는 비일시적 유형 매체들, 또는 프로세서에 의한 실행을 위한 명령들(예를 들어, 프로그램 또는 소프트웨어 명령들)을 저장하는데 적합한 다른 유형 매체들일 수 있다. 예를 들어, 유형 매체들, 이를 테면, 하드웨어 저장 디바이스는, 실행가능한 명령들을 포함할 수 있는 제어 논리를 저장하기 위해 사용될 수 있다. 명령들은 또한, 예를 들어, 서버(예를 들어, 분산형 시스템 및/또는 클라우드 컴퓨팅 시스템)로부터 전달되는 SaaS(software as a service)의 형태로 전자 신호에 포함되고 전자 신호로서 제공될 수 있다.
[0093] 예시의 편의를 위해, 도 5는 프로세서(502), 운영 시스템(504), 메모리(506), I/O 인터페이스(508), 네트워크 엔진(510) 및 미디어 애플리케이션(512) 각각을 하나의 블록으로 도시한다. 이러한 블록들(502, 504, 506, 508, 510, 및 512)은 다수의 프로세서들, 운영 시스템들, 메모리들, I/O 인터페이스들, 네트워크 엔진들, 및 애플리케이션들을 나타낼 수 있다. 다른 구현예들에서, 컴퓨팅 디바이스(500)는 도시된 컴포넌트들을 모두 구비하지 않을 수 있고, 그리고/또는 본원에서 도시된 것들 대신에 또는 이에 추가하여 다른 타입들의 엘리먼트들을 포함하는 다른 엘리먼트들을 구비할 수 있다.
[0094] 본 설명이 본 설명의 특정 실시예들과 관련하여 설명되었지만, 이러한 특정 실시예들은 단지 예시적인 것이며 제한하려는 것은 아니다. 이러한 예들에서 제시되는 개념들은 다른 예들 및 구현예들에 적용될 수 있다. 예를 들어, 일부 구현예들은 소셜 네트워크 시스템의 맥락에서 본원에 설명된다. 그러나, 본원에 설명된 구현예들은 소셜 네트워크가 아닌 상황들에서 적용될 수 있다. 예를 들어, 구현예들은 개별 사용자에 대해 로컬로 적용될 수 있다.
[0095] 본 개시내용에서 설명되는 기능적 블록들, 방법들, 디바이스들, 및 시스템들은 당업자에게 알려져 있는 바와 같이, 통합될 수 있거나 또는, 시스템들, 디바이스들, 및 기능적 블록들의 다양한 조합들로 분할될 수 있다는 것을 주목한다.
[0096] 특정 실시예들의 루틴(routine)들을 구현하기 위해 임의의 적절한 프로그래밍 언어들 및 프로그래밍 기술들이 사용될 수 있다. 절차형 또는 오브젝트-지향형과 같은 상이한 프로그래밍 기술들이 사용될 수 있다. 루틴들은 단일 프로세싱 디바이스 상에서 실행될 수 있거나 또는 다수의 프로세서들 상에서 실행될 수 있다. 단계들, 동작들, 또는 컴퓨테이션들이 특정 순서로 제시될 수 있지만, 순서는 상이한 특정 실시예들에서 변경될 수 있다. 일부 특정 실시예들에서, 본 명세서에서 순차적으로 나타내어지는 다수의 단계들이 동시에 수행될 수 있다.

Claims (20)

  1. 비디오를 프로세싱하기 위한 컴퓨터 구현 방법으로서,
    상기 비디오의 복수의 프레임들 내의 하나 또는 그 초과의 오브젝트들을 분류하는 단계;
    상기 하나 또는 그 초과의 오브젝트들의 분류에 기초하여, 상기 하나 또는 그 초과의 오브젝트들 각각에 대해 필터의 하나 또는 그 초과의 필터 파라미터들을 결정하는 단계;
    상기 복수의 프레임들 및 상기 복수의 프레임들에 인접한 프레임들에 대해 상기 하나 또는 그 초과의 필터 파라미터들의 하나 또는 그 초과의 값들을 조정하는 것을 포함하는, 하나 또는 그 초과의 결정된 필터 파라미터들을 평탄화하는 단계; 및
    상기 비디오의 복수의 프레임들의 하나 또는 그 초과의 픽셀들을 변경하기 위해서 상기 비디오의 복수의 프레임들에 필터를 적용하는 단계를 포함하고,
    상기 필터를 적용하는 단계는 하나 또는 그 초과의 평탄화된 필터 파라미터들을 상기 필터에 제공하는 단계 및 상기 필터의 출력에 기초하여 픽셀 값들을 결정하는 단계를 포함하는, 비디오를 프로세싱하기 위한 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 비디오의 상기 복수의 프레임들에 걸쳐서 상기 하나 또는 그 초과의 오브젝트들의 프레임 내 위치들을 추적하는 단계를 더 포함하며,
    상기 하나 또는 그 초과의 필터 파라미터들을 결정하는 단계는 상기 위치들의 추적에 기초하는, 비디오를 프로세싱하기 위한 컴퓨터 구현 방법.
  3. 제 1 항에 있어서,
    상기 하나 또는 그 초과의 값들을 조정하는 것은 상기 하나 또는 그 초과의 값들을 결정하기 위해 사용되는 하나 또는 그 초과의 임계치들을 조정하는 것을 포함하는, 비디오를 프로세싱하기 위한 컴퓨터 구현 방법.
  4. 제 1 항에 있어서,
    상기 필터는 밝기 필터, 콘트라스트 필터, 채도 필터, 색조 구조 필터, 컬러 필터, 및 비네트(vignette) 필터 중 하나를 포함하는, 비디오를 프로세싱하기 위한 컴퓨터 구현 방법.
  5. 제 1 항에 있어서,
    상기 분류하는 단계에서 사용되는 적어도 하나의 신뢰도 임계치를 조정함으로써 상기 분류를 평탄화하는 단계를 더 포함하는, 비디오를 프로세싱하기 위한 컴퓨터 구현 방법.
  6. 제 1 항에 있어서,
    상기 분류하는 단계는 하나 또는 그 초과의 분류 동작들에 기초하고, 상기 하나 또는 그 초과의 결정된 필터 파라미터들을 평탄화하는 단계는 상기 하나 또는 그 초과의 분류 동작들을 평탄화하는 단계를 포함하고, 상기 하나 또는 그 초과의 분류 동작들을 평탄화하는 단계는 다수의 프레임들에 걸쳐 분류 신뢰도 레벨을 평탄화하는 단계를 포함하며,
    상기 다수의 프레임들은 상기 복수의 프레임들을 포함하고, 상기 분류 신뢰도 레벨은 상기 다수의 프레임들 중 연관된 프레임에 존재하는 상기 하나 또는 그 초과의 오브젝트들 중 적어도 하나의 신뢰도를 나타내는, 비디오를 프로세싱하기 위한 컴퓨터 구현 방법.
  7. 제 1 항에 있어서,
    상기 하나 또는 그 초과의 오브젝트들의 랭킹을 결정하는 단계를 더 포함하고, 상기 하나 또는 그 초과의 필터 파라미터들을 결정하는 단계는 상기 랭킹에 기초하는, 비디오를 프로세싱하기 위한 컴퓨터 구현 방법.
  8. 제 1 항에 있어서,
    상기 비디오의 다수의 프레임들에 걸친 출력들의 평균에 기초하여 상기 필터의 복수의 출력들을 평탄화하는 단계를 더 포함하는, 비디오를 프로세싱하기 위한 컴퓨터 구현 방법.
  9. 비디오를 프로세싱하기 위한 프로그램 명령들을 보유하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 하나 또는 그 초과의 프로세서들에 의해 실행될 경우, 상기 하나 또는 그 초과의 프로세서들로 하여금,
    비디오에 대한 오브젝트 검출에 사용되는 신뢰도 임계치를 결정하는 것;
    상기 비디오의 복수의 프레임들 내의 오브젝트를, 상기 신뢰도 임계치에 관한 신뢰도 레벨을 사용하여 상기 오브젝트를 검출하는 것에 기초하여 하나 또는 그 초과의 분류들로 분류하는 것 ―상기 신뢰도 레벨은 상기 오브젝트가 상기 복수의 프레임들 각각에 존재할 가능성을 나타냄―;
    상기 프레임에 대해 인접한 프레임들에 대한 신뢰도 레벨들에 기초하여 상기 복수의 프레임들 중 각각의 프레임에 대한 상기 신뢰도 레벨을 조정함으로써 상기 오브젝트의 분류를 평탄화하는 것;
    상기 오브젝트의 분류에 기초하여, 상기 오브젝트에 대해 필터의 하나 또는 그 초과의 필터 파라미터들을 결정하는 것;
    상기 하나 또는 그 초과의 필터 파라미터들을 갖는 상기 필터를 상기 비디오의 상기 복수의 프레임들에 적용하게 하는 것을
    포함하는 동작들을 수행하게 하는, 비디오를 프로세싱하기 위한 프로그램 명령들을 보유하는 비일시적 컴퓨터 판독가능 저장 매체.
  10. 제 9 항에 있어서,
    상기 분류를 평탄화하는 것은 상기 신뢰도 임계치를 조정하는 것을 포함하는, 비디오를 프로세싱하기 위한 프로그램 명령들을 보유하는 비일시적 컴퓨터 판독가능 저장 매체.
  11. 제 9 항에 있어서,
    상기 필터는 밝기 필터, 콘트라스트 필터, 채도 필터, 색조 구조 필터, 컬러 필터, 및 비네트 필터 중 하나를 포함하는, 비디오를 프로세싱하기 위한 프로그램 명령들을 보유하는 비일시적 컴퓨터 판독가능 저장 매체.
  12. 제 9 항에 있어서,
    상기 명령들은, 상기 하나 또는 그 초과의 프로세서들로 하여금, 상기 오브젝트를 분류하는 것에 기초하여 상기 하나 또는 그 초과의 결정된 필터 파라미터들을 평탄화하는 것을 포함하는 동작들을 추가로 수행하게 하고,
    상기 하나 또는 그 초과의 결정된 필터 파라미터들을 평탄화하는 것은, 상기 복수의 프레임들 및 상기 복수의 프레임들에 인접한 프레임들에 대해 상기 하나 또는 그 초과의 필터 파라미터들 중 하나 또는 그 초과의 값들을 조정하는 것을 포함하는, 비디오를 프로세싱하기 위한 프로그램 명령들을 보유하는 비일시적 컴퓨터 판독가능 저장 매체.
  13. 제 9 항에 있어서,
    상기 명령들은, 상기 하나 또는 그 초과의 프로세서들로 하여금, 상기 비디오의 상기 복수의 프레임들에 걸쳐 상기 오브젝트의 프레임 내 위치를 추적하는 것을 포함하는 동작들을 추가로 수행하게 하고,
    상기 하나 또는 그 초과의 필터 파라미터들을 결정하는 것은 상기 위치를 추적하는 것에 기초하는, 비디오를 프로세싱하기 위한 프로그램 명령들을 보유하는 비일시적 컴퓨터 판독가능 저장 매체.
  14. 제 9 항에 있어서,
    상기 명령들은, 상기 하나 또는 그 초과의 프로세서들로 하여금, 상기 비디오의 다수의 프레임들에 걸친 출력들의 평균치에 기초하여 상기 필터의 복수의 출력들을 평탄화하는 것을 포함하는 동작들을 추가로 수행하게 하는, 비디오를 프로세싱하기 위한 프로그램 명령들을 보유하는 비일시적 컴퓨터 판독가능 저장 매체.
  15. 비디오를 프로세싱하기 위한 시스템으로서,
    하나 또는 그 초과의 프로세서들; 및
    상기 하나 또는 그 초과의 프로세서들에 의한 실행을 위해 하나 또는 그 초과의 비일시적인 유형 매체에 인코딩된 로직을 포함하고,
    상기 로직은, 실행될 경우:
    상기 비디오의 복수의 프레임들 내의 하나 또는 그 초과의 오브젝트들을 분류하는 것;
    상기 하나 또는 그 초과의 오브젝트들을 분류하는 것에 기초하여, 상기 하나 또는 그 초과의 오브젝트들 각각에 대해 필터의 하나 또는 그 초과의 필터 파라미터들을 결정하는 것;
    상기 복수의 프레임들 및 상기 복수의 프레임들에 인접한 프레임들에 대해 상기 하나 또는 그 초과의 결정된 필터 파라미터들의 하나 또는 그 초과의 값들을 조정하는 것을 포함하는, 하나 또는 그 초과의 결정된 필터 파라미터들을 평탄화하는 것; 및
    상기 비디오의 복수의 프레임들의 하나 또는 그 초과의 픽셀들을 변경하기 위해서 상기 비디오의 복수의 프레임들에 필터를 적용하는 것을 포함하는 동작들 수행하도록 동작가능하고,
    상기 필터를 적용하는 것은 상기 하나 또는 그 초과의 평탄화된 필터 파라미터들을 상기 필터에 제공하는 것 및 상기 필터의 출력에 기초하여 픽셀 값들을 결정하는 것을 포함하는, 비디오를 프로세싱하기 위한 시스템.
  16. 제 15 항에 있어서,
    상기 로직은, 실행될 경우, 상기 분류에 사용되는 적어도 하나의 신뢰도 임계치를 조정함으로써 상기 분류를 평탄화하는 것을 포함하는 동작들을 수행하도록 추가로 동작가능한, 비디오를 프로세싱하기 위한 시스템.
  17. 제 15 항에 있어서,
    상기 복수의 프레임들 및 상기 복수의 프레임들에 인접한 프레임들에 대해 상기 하나 또는 그 초과의 결정된 필터 파라미터들의 하나 또는 그 초과의 값들을 조정하는 것은 상기 하나 또는 그 초과의 값들을 결정하기 위해 사용되는 하나 또는 그 초과의 임계치들을 조정하는 것을 포함하는, 비디오를 프로세싱하기 위한 시스템.
  18. 제 15 항에 있어서,
    상기 필터는 밝기 필터, 콘트라스트 필터, 채도 필터, 색조 구조 필터, 컬러 필터, 및 비네트 필터 중 하나를 포함하는, 비디오를 프로세싱하기 위한 시스템.
  19. 제 15 항에 있어서,
    상기 로직은, 실행될 경우, 상기 하나 또는 그 초과의 오브젝트들의 랭킹을 결정하는 것을 포함하는 동작들을 수행하도록 추가로 동작가능하고,
    상기 하나 또는 그 초과의 필터 파라미터들을 결정하는 것은 상기 랭킹에 기초하는, 비디오를 프로세싱하기 위한 시스템.
  20. 제 15 항에 있어서,
    상기 로직은, 실행될 경우, 상기 비디오의 다수의 프레임들에 걸친 필터 출력 값들의 평균치에 기초하여 복수의 필터 출력들을 평탄화하는 것을 포함하는 동작들을 수행하도록 추가로 동작가능한, 비디오를 프로세싱하기 위한 시스템.
KR1020177031687A 2015-07-24 2016-07-12 비디오 향상의 시간적 평탄화 KR102008437B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/808,208 2015-07-24
US14/808,208 US9582860B2 (en) 2015-07-24 2015-07-24 Temporally smooth video enhancement
PCT/US2016/041943 WO2017019295A1 (en) 2015-07-24 2016-07-12 Temporally smooth video enhancement

Publications (2)

Publication Number Publication Date
KR20170133468A KR20170133468A (ko) 2017-12-05
KR102008437B1 true KR102008437B1 (ko) 2019-08-07

Family

ID=56555781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031687A KR102008437B1 (ko) 2015-07-24 2016-07-12 비디오 향상의 시간적 평탄화

Country Status (5)

Country Link
US (1) US9582860B2 (ko)
EP (1) EP3326151B1 (ko)
KR (1) KR102008437B1 (ko)
CN (1) CN107533758B (ko)
WO (1) WO2017019295A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10264231B2 (en) * 2017-03-31 2019-04-16 The Directv Group, Inc. Dynamically scaling the color temperature and luminance of a display output
CN108235118A (zh) * 2018-01-29 2018-06-29 北京奇虎科技有限公司 一种视频调色处理方法和装置
CN108898118B (zh) * 2018-07-04 2023-04-18 腾讯科技(深圳)有限公司 一种视频数据处理方法、装置和存储介质
CN110602527B (zh) 2019-09-12 2022-04-08 北京小米移动软件有限公司 视频处理方法、装置及存储介质
CN111988595A (zh) * 2020-07-27 2020-11-24 北京小米移动软件有限公司 色温调节方法、装置及存储介质
CN111738964A (zh) * 2020-08-17 2020-10-02 成都中轨轨道设备有限公司 一种基于建模的图像数据增强的方法
US11954894B2 (en) * 2021-04-08 2024-04-09 Rivian Ip Holdings, Llc Systems and methods for determining camera blockage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070189627A1 (en) 2006-02-14 2007-08-16 Microsoft Corporation Automated face enhancement
US20120250988A1 (en) 2011-03-29 2012-10-04 Ya-Ti Peng Adaptive contrast adjustment techniques

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7227893B1 (en) * 2002-08-22 2007-06-05 Xlabs Holdings, Llc Application-specific object-based segmentation and recognition system
US9154732B2 (en) * 2012-04-09 2015-10-06 Futurewei Technologies, Inc. Visual conditioning for augmented-reality-assisted video conferencing
US9317908B2 (en) * 2012-06-29 2016-04-19 Behavioral Recognition System, Inc. Automatic gain control filter in a video analysis system
US10127448B2 (en) * 2014-08-27 2018-11-13 Bae Systems Information And Electronic Systems Integration Inc. Method and system for dismount detection in low-resolution UAV imagery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070189627A1 (en) 2006-02-14 2007-08-16 Microsoft Corporation Automated face enhancement
US20120250988A1 (en) 2011-03-29 2012-10-04 Ya-Ti Peng Adaptive contrast adjustment techniques

Also Published As

Publication number Publication date
CN107533758A (zh) 2018-01-02
KR20170133468A (ko) 2017-12-05
CN107533758B (zh) 2021-04-20
US20170024858A1 (en) 2017-01-26
US9582860B2 (en) 2017-02-28
WO2017019295A1 (en) 2017-02-02
EP3326151A1 (en) 2018-05-30
EP3326151B1 (en) 2022-05-25

Similar Documents

Publication Publication Date Title
KR102008437B1 (ko) 비디오 향상의 시간적 평탄화
WO2020034896A1 (en) Method and apparatus for image processing, and mobile terminal
US10977809B2 (en) Detecting motion dragging artifacts for dynamic adjustment of frame rate conversion settings
US9042662B2 (en) Method and system for segmenting an image
US10026160B2 (en) Systems and techniques for automatic image haze removal across multiple video frames
WO2018099136A1 (zh) 一种低照度图像降噪方法、装置及存储介质
US10528820B2 (en) Colour look-up table for background segmentation of sport video
US9020243B2 (en) Image adjustment
US20130336590A1 (en) Method and apparatus for generating a visual story board in real time
US7974470B2 (en) Method and apparatus for processing an image
WO2015005196A1 (ja) 画像処理装置及び画像処理方法
US11776129B2 (en) Semantic refinement of image regions
US20180082429A1 (en) Dynamic adjustment of frame rate conversion settings
KR101833943B1 (ko) 동영상의 주요 장면을 추출 및 탐색하는 방법 및 시스템
CN106604057A (zh) 视频处理方法及装置
Feng et al. Low-light image enhancement by refining illumination map with self-guided filtering
Fan et al. Haze editing with natural transmission
KR20140138046A (ko) 픽처를 처리하기 위한 방법 및 디바이스
CN116917954A (zh) 图像检测方法、装置和电子设备
Chuang et al. A novel video summarization method for multi-intensity illuminated infrared videos
Wang et al. Illumination-guided video composition via gradient consistency optimization
Zahi et al. Adaptive intensity transformation for preserving and recovering details in low light images
US20120218280A1 (en) Method, apparatus and system for modifying quality of an image
US20230281823A1 (en) Method and electronic device for on-device lifestyle recommendations
JP2005286437A (ja) 画像群のダイジェストの作成

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant