KR102354692B1 - 규칙 기반 비디오 중요도 분석 - Google Patents

규칙 기반 비디오 중요도 분석 Download PDF

Info

Publication number
KR102354692B1
KR102354692B1 KR1020177000955A KR20177000955A KR102354692B1 KR 102354692 B1 KR102354692 B1 KR 102354692B1 KR 1020177000955 A KR1020177000955 A KR 1020177000955A KR 20177000955 A KR20177000955 A KR 20177000955A KR 102354692 B1 KR102354692 B1 KR 102354692B1
Authority
KR
South Korea
Prior art keywords
video
frame
video frame
importance
file
Prior art date
Application number
KR1020177000955A
Other languages
English (en)
Other versions
KR20170018042A (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 KR20170018042A publication Critical patent/KR20170018042A/ko
Application granted granted Critical
Publication of KR102354692B1 publication Critical patent/KR102354692B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7837Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using objects detected or recognised in the video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7847Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using low-level visual features of the video content
    • G06F16/786Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using low-level visual features of the video content using motion, e.g. object motion or camera motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)
  • Television Signal Processing For Recording (AREA)
  • Picture Signal Circuits (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

비디오 파일의 비디오 섹션들의 중요도가 비디오 파일의 특징들로부터 결정될 수 있다. 비디오 파일은 비디오 프레임들 및 비디오 프레임들과 연관된 오디오 데이터를 획득하기 위해 디코딩될 수 있다. 각각의 비디오 프레임에 대한 특징 점수들은 지역적 규칙, 전역적 규칙, 또는 이 둘 다에 기초하여 비디오 프레임 또는 비디오 프레임과 연관된 오디오 데이터의 특징들을 분석함으로써 획득될 수 있다. 특징 점수들은 또한 비디오 프레임에 대한 프레임 중요도 점수를 도출하기 위해 결합된다. 비디오 파일 내의 비디오 프레임들의 특징 점수들에 기초하여, 비디오 파일은 상이한 섹션 중요도 값들의 비디오 섹션들로 세분화될 수 있다.

Description

규칙 기반 비디오 중요도 분석{RULE-BASED VIDEO IMPORTANCE ANALYSIS}
본 발명은 규칙 기반 비디오 중요도 분석에 관한 것이다.
소비자는 각자의 스마트폰 및 개인용 비디오 레코더를 사용하여 비디오를 자주 캡처한다. 그러나, 이들 소비자들 중 일부만이 비디오를 편집하고 다른 사람들과 각자의 비디오를 공유한다. 또한, 비디오는 일반적으로 많은 계획없이 평범하게 촬영되고, 몇가지 흥미로운 순간만을 포함할 수 있기 때문에, 소비자는 이러한 비디오의 편집이 지루한 과정임을 발견할 수 있다. 시간이 흘러 많은 비디오들이 소비자에 의해 생성되면, 소비자는 비디오들의 콘텐츠를 기억하는 데에 어려움을 가질 수도 있다. 대부분의 비디오 재생 디바이스는 비디오의 섬네일(thumbnail) 이미지 표현을 제공할 수 있지만, 이러한 섬네일 이미지 표현은 비디오의 콘텐츠에 대한 충분한 단서를 제공하지 못할 수 있다.
본 명세서에서는 비디오 파일의 섹션들의 중요도에 기초하여 비디오 파일의 섹션들을 등급화하기(rank) 위해 비디오 파일의 규칙 기반 분석을 수행하는 기술을 설명한다. 이 기술은 또한 비디오 파일들의 중요도에 기초하여 다수의 비디오 파일들을 등급화하기 위해 비디오 파일들의 컬렉션(collection)의 규칙 기반 분석을 수행하는 것을 포함할 수 있다. 비디오 파일 또는 비디오 섹션의 중요도는 비디오 파일 또는 비디오 섹션이 시청자 내에서 생성시킬 것으로 예상되는 관심량과 상관이 있을 수 있다. 다양한 실시예들에서, 규칙 기반 분석은 비디오 파일 또는 비디오 섹션 내의 비디오 프레임들의 주관적인 중요도 및/또는 객관적인 기술적 퀄리티에 기초하여 비디오 파일 또는 비디오 섹션의 중요도를 평가할 수 있다.
본 요약은 아래의 상세한 설명에서 보다 상세하게 설명되는 개념들의 선택을 단순한 형태로 소개하기 위해 제공된 것이다. 본 요약은 청구된 발명내용의 중요한 특징(feature)들 또는 필수적인 특징들을 식별시키려는 의도는 없으며, 또한 청구된 발명내용의 범위를 제한시키려는 의도도 없다.
상세한 설명을 첨부 도면들을 참조하여 설명한다. 도면들에서, 참조번호의 가장 좌측의 숫자(들)은 해당 참조번호가 처음 나타나는 도면을 식별한다. 상이한 도면들에서의 동일한 참조번호의 이용은 유사하거나 또는 동일한 아이템들을 나타낼 수 있다.
도 1은 비디오 파일들 또는 비디오 파일의 비디오 섹션들의 중요도에 기초하여 비디오 파일들의 컬렉션에서 이러한 비디오 파일들 또는 비디오 섹션들을 등급화하기 위해 규칙 기반 비디오 분석 엔진을 사용하는 예시적인 기법을 나타내는 블록도이다.
도 2는 비디오 파일들 또는 비디오 파일의 비디오 섹션들의 중요도에 기초하여 비디오 파일들의 컬렉션에서 이러한 비디오 파일들 또는 비디오 섹션들을 등급화하기 위한 규칙 기반 비디오 분석 엔진의 예시적인 컴포넌트들을 도시하는 예시도이다.
도 3은 다수의 비디오 프레임들에서 예시적인 특징점(feature point)들을 정렬하기 위한 호모그래피 변환(homograph transform)의 사용을 도시하는 예시도이다.
도 4는 비디오 섹션들의 중요도에 기초하여 비디오 파일의 비디오 섹션들을 등급화하기 위해 규칙 기반 비디오 분석을 사용하여 비디오 파일 내 특징들을 분석하기 위한 예시적인 프로세스를 나타내는 흐름도이다.
도 5는 중요도에 기초하여 비디오 파일들을 등급화하기 위해 규칙 기반 비디오 분석을 사용하여 비디오 파일들의 특징들을 분석하기 위한 예시적인 프로세스를 나타내는 흐름도이다.
도 6은 비디오 프레임에 대한 얼굴 중요도 점수를 계산하기 위한 예시적인 프로세스를 나타내는 흐름도이다.
도 7은 특징점들의 움직임(movement)을 분석함으로써 비디오 내의 중요한 비디오 섹션들을 결정하기 위한 예시적인 프로세스를 나타내는 흐름도이다.
본 명세서에서는 비디오 파일의 섹션들의 중요도에 기초하여 비디오 파일의 섹션들을 등급화하기 위해 비디오 파일의 규칙 기반 분석을 수행하는 기술을 설명한다. 이 기술은 또한 비디오 파일들의 중요도에 기초하여 비디오 파일들을 등급화하기 위해 비디오 파일들의 컬렉션의 규칙 기반 분석을 수행하는 것을 포함할 수 있다. 비디오 파일 또는 비디오 섹션의 중요도는 비디오 파일 또는 비디오 섹션이 시청자 내에서 생성시킬 것으로 예상되는 관심량과 상관이 있을 수 있다. 다양한 실시예들에서, 규칙 기반 분석은 비디오 파일 또는 비디오 섹션 내의 비디오 프레임들의 주관적인 중요도 및/또는 객관적인 기술적 퀄리티에 기초하여 비디오 파일 또는 비디오 섹션의 중요도를 평가할 수 있다. 주관적인 중요도의 예는 시청자가 알지 못하는 사람의 얼굴을 묘사하는 비디오 프레임보다 시청자에게 알려진 사람의 얼굴을 묘사하는 비디오 프레임을 더 중요한 것으로서 시청자가 간주할 것이라는 것일 수 있다. 객관적인 기술적 퀄리티의 예는 비디오 프레임의 노출(exposure) 퀄리티일 수 있다.
규칙 기반 분석은 다수의 저레벨 특징들 및 고레벨 특징들을 위해 비디오 파일들의 오디오 콘텐츠 및 비디오 콘텐츠를 프레임 단위로 분석하는 것을 포함한다. 예를 들어, 저레벨 특징들은 비디오 프레임들의 흔들림(shakiness), 노출 퀄리티, 채도(saturation) 퀄리티, 평균 밝기, 색상 엔트로피, 및/또는 인접한 비디오 프레임들 간의 히스토그램 차이들과 같은 특징들을 포함할 수 있다. 고레벨 특징들은 비디오 프레임들에서 검출된 사람 얼굴들의 수량, 위치, 및/또는 얼굴 특징들과 같은 특징들을 포함할 수 있다. 분석에는 지역적 규칙(local rule) 및 전역적 규칙(global rule)의 적용을 포함할 수 있다. 지역적 규칙들은 비디오 프레임에 대한 특징 분석 결과의 생성 동안에 적용될 수 있으며, 전역적 규칙들은 전체 비디오 파일에 대한 특징 분석 결과의 생성 동안에 적용될 수 있다.
규칙들은 중요도 점수를 생성하기 위해 특징 분석으로부터의 결과들을 제공하고 결합할 수 있다. 중요도 점수는 비디오 파일들의 프레임들, 비디오들의 섹션들, 및/또는 비디오 파일들 전체에 대해 생성될 수 있다. 이러한 중요도 점수는 비디오 파일들 및/또는 비디오 파일들의 섹션들을 등급화하기 위해 사용될 수 있다. 중요도 점수는 비디오 파일들의 보기, 편집, 및 공유를 용이하게 하는데 사용될 수 있다. 예를 들어, 소비자는 웹 사이트 상에서의 공유를 위해 가장 높은 중요도 점수를 갖는 비디오 파일들의 세트를 선택할 수 있다. 다른 예에서, 애플리케이션은 하이라이트 비디오 파일을 생성하기 위해 가장 높은 중요도 점수를 갖는 비디오 파일의 섹션들을 함께 스티칭(stitch)할 수 있다.
일부 경우들에서, 비디오 파일은 검출된 카메라 모션(motion)의 양에 기초하여 중요도가 변하는 비디오 섹션들로 세분화(segment)될 수 있다. 카메라 모션은 비디오 파일 내의 비디오 프레임들에서 검출된 특징점들의 움직임을 통해 검출될 수 있다. 일부 경우들에서, 비디오 섹션의 중요도는 비디오 섹션이 시청자들로부터 이끌어낼 것으로 예상되는 관심량과 상관이 있을 수 있다.
본 명세서에서 설명된 기술들의 사용은 사용자에 대한 비디오 파일들의 중요도에 기초하여 사용자가 비디오 파일들을 등급화하는 것을 가능하게 할 수 있다. 이러한 등급화에 기초하여, 사용자는 어느 비디오 파일들을 유지하고 어느 비디오 파일들을 삭제할 것인지를 결정할 수 있다. 일부 경우들에서, 사용자는 또한 비디오 파일들의 등급을 사용하여 특정 비디오 파일들을 온라인 공유 웹사이트 상에 포스팅할지 여부를 결정할 수 있다. 본 명세서에서 설명된 기술들은 또한, 사용자가 비디오 파일의 흥미로운 부분들을 한 눈에 알아볼 수 있도록, 비디오 파일의 중요 섹션들을 나타내는 섬네일(thumbnail) 이미지 표현들을 제공할 수 있다. 이러한 정보는 사용자가 비디오 파일을 편집하여 콘텐츠 퀄리티를 향상시키거나 또는 비디오 파일의 특정 섹션들을 하이라이트화하는 데에 도움을 줄 수 있다. 다양한 실시예들에 따라 비디오 파일들의 규칙 기반 분석을 수행하기 위한 기술들의 예들이 도 1 내지 도 7을 참조하여 아래에서 설명된다.
예시적인 기법
도 1은 비디오 파일들 또는 비디오 파일의 비디오 섹션들의 중요도에 기초하여 비디오 파일들의 컬렉션에서 이러한 비디오 파일들 또는 비디오 섹션들을 등급화하기 위해 규칙 기반 비디오 분석 엔진을 사용하기 위한 예시적인 기법(100)을 나타내는 블록도이다. 예시적인 기법(100)은 비디오 분석 엔진(102)을 포함할 수 있다. 비디오 분석 엔진(102)은 하나 이상의 컴퓨팅 디바이스(104) 상에서 실행될 수 있다. 하나 이상의 컴퓨팅 디바이스(104)는 데스크탑 컴퓨터, 태블릿 컴퓨터, 랩톱 컴퓨터, 서버 등과 같은 범용 컴퓨터를 포함할 수 있다. 그러나, 다른 실시예들에서, 컴퓨팅 디바이스(104)는 스마트폰, 게임 콘솔, 또는 임의의 다른 전자 디바이스를 포함할 수 있다. 다수의 컴퓨팅 디바이스(104)는 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 다른 유형의 프로세서들, 또는 이들 중 임의의 것의 조합과 같은, 다양한 프로세서들을 포함할 수 있다.
비디오 분석 엔진(102)은 비디오 컬렉션(106)의 규칙 기반 분석을 수행할 수 있다. 비디오 컬렉션(106)은 비디오 파일들(108(1)~108(N))과 같은 다수의 비디오 파일들을 포함할 수 있다. 규칙 기반 분석은 다수의 저레벨 특징들(110) 및 다수의 고레벨 특징들(112)을 위해 비디오 파일들(108(1)~108(N))의 오디오 콘텐츠 및 비디오 콘텐츠를 프레임 단위로 분석하는 것을 포함할 수 있다. 예를 들어, 다수의 저레벨 특징들(110)은 비디오 프레임들의 흔들림, 노출 퀄리티, 채도 퀄리티와 같은 특징들을 포함할 수 있다. 다수의 고레벨 특징들(112)은 비디오 프레임들에서 검출된 사람 얼굴들의 수량, 위치, 및/또는 얼굴 특징들과 같은 특징들을 포함할 수 있다.
규칙 기반 분석을 수행함으로써, 비디오 분석 엔진(102)은 비디오(108(1))와 같은 비디오 파일의 섹션들에 대한 중요도 점수들, 및 비디오 컬렉션(106)의 비디오 파일들(108(1)~108(N))과 같은 비디오 파일들의 중요도 점수들을 생성할 수 있다. 따라서, 비디오 분석 엔진(102)은 비디오의 섹션들의 중요도 점수들에 따라 비디오의 섹션들을 등급화할 수 있다. 예를 들어, 비디오 파일(108(1))은 중요도 점수들(118, 120) 각각과 같은, 각자의 중요도 점수들에 따라 등급화된 비디오 섹션(114) 및 비디오 섹션(116)을 포함할 수 있다. 비디오 섹션들이 등급화되면, 비디오 분석 엔진(102)은 비디오 섹션들의 섬네일 이미지 표현들을 디스플레이할 수 있으며, 여기서 섬네일 이미지 표현의 선택은 미디어 플레이어(122)로 하여금 대응하는 비디오 섹션을 재생하게 할 수 있다.
비디오 분석 엔진(102)은 또한, 비디오 파일들의 중요도 점수들에 따라 비디오 컬렉션(106) 내의 비디오 파일들을 등급화할 수 있다. 예를 들어, 비디오 컬렉션(106)의 비디오 파일들(108(1)~108(N))은 이 비디오 파일들의 중요도 점수들(124(1)~124(N)에 따라 등급화될 수 있다. 비디오 파일들이 등급화되면, 비디오 분석 엔진(102)은 비디오 파일들의 섬네일 이미지 표현들을 디스플레이할 수 있으며, 여기서 섬네일 이미지 표현의 선택은 미디어 플레이어(122)로 하여금 대응하는 비디오 파일 또는 대응하는 비디오 파일의 섹션을 재생하게 할 수 있다.
예시적인 컴포넌트들
도 2는 비디오 파일들 또는 비디오 파일의 비디오 섹션들의 중요도에 기초하여 비디오 파일들의 컬렉션에서 이러한 비디오 파일들 또는 비디오 섹션들을 등급화하기 위한 규칙 기반 비디오 분석 엔진(102)의 예시적인 컴포넌트들을 도시하는 예시도이다. 비디오 분석 엔진(102)은 하나 이상의 컴퓨팅 디바이스(104)에 의해 구현될 수 있다. 컴퓨팅 디바이스(104)는 하나 이상의 프로세서(202), 인터페이스(204), 및 메모리(206)를 포함할 수 있다. 각각의 프로세서(202)는 단일 코어 프로세서이거나, 또는 멀티 코어 프로세서일 수 있다. 인터페이스(204)는 사용자 인터페이스 및 네트워크 인터페이스를 포함할 수 있다. 사용자 인터페이스는 데이터 출력 디바이스(예를 들어, 시각적 디스플레이, 오디오 스피커), 및 하나 이상의 데이터 입력 디바이스를 포함할 수 있다. 데이터 입력 디바이스는, 비제한적인 예시로서, 키패드, 키보드, 마우스 디바이스, 제스처들을 수용하는 터치 스크린, 마이크로폰, 음성 또는 목소리 인식 디바이스, 및 임의의 다른 적절한 디바이스들 또는 다른 전자/소프트웨어 선택 방법 중 하나 이상의 조합들을 포함할 수 있다.
네트워크 인터페이스는 컴퓨팅 디바이스(104)가 네트워크를 통해 데이터를 송신 및 수신할 수 있게 하는 유선 및/또는 무선 통신 인터페이스 컴포넌트들을 포함할 수 있다. 다양한 실시예들에서, 무선 인터페이스 컴포넌트는 셀룰러, Wi-Fi, UWB(Ultra Wideband), 개인 영역 네트워크(예컨대, 블루투스), 위성 전송 등을 포함할 수 있지만, 이것으로 제한되지는 않는다. 유선 인터페이스 컴포넌트는 이더넷 인터페이스, 직렬 인터페이스, USB(Universal Serial Bus) 인터페이스 등과 같은 다이렉트 I/O 인터페이스를 포함할 수 있다. 이와 같이, 컴퓨팅 디바이스(104)는 네트워크 능력을 가질 수 있다. 예를 들어, 컴퓨팅 디바이스(104)는 인터넷, 모바일 네트워크, 광역 네트워크, 근거리 네트워크 등과 같은 하나 이상의 네트워크를 통해, 다른 전자 디바이스들(예를 들어, 랩탑 컴퓨터, 데스크탑 컴퓨터, 모바일 폰 서버 등)과 데이터를 교환할 수 있다.
메모리(206)는 컴퓨터 저장 매체와 같은 컴퓨터로 판독가능한 매체를 이용하여 구현될 수 있다. 컴퓨터로 판독가능한 매체는, 적어도, 두 개 유형들의 컴퓨터로 판독가능한 매체, 즉 컴퓨터 저장 매체와 통신 매체를 포함한다. 컴퓨터 저장 매체는 컴퓨터로 판독가능한 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은, 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성의, 탈착가능 및 탈착불가능 매체를 포함한다. 컴퓨터 저장 매체는, 비제한적인 예시로서, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 다른 광학적 저장장치, 자기적 카세트, 자기적 테이프, 자기적 디스크 저장장치 또는 다른 자기적 저장 디바이스들, 또는 컴퓨팅 디바이스에 의한 액세스를 위해 정보를 저장하는 데에 이용될 수 있는 임의의 다른 비전송 매체를 포함한다. 그에 반해서, 통신 매체는 컴퓨터로 판독가능한 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터를 반송파와 같은 변조 데이터 신호 또는 다른 전송 메커니즘 내에 포함시킬 수 있다. 여기서 정의된 바와 같이, 컴퓨터 저장 매체는 통신 매체를 포함하지 않는다.
컴퓨팅 디바이스(104)의 메모리(206)는 운영 체제(208) 및 비디오 분석 엔진(102)을 구현하는 모듈을 저장할 수 있다. 운영 체제(208)는 컴퓨팅 디바이스(104)가 다양한 입력들(예컨대, 사용자 제어, 네트워크 인터페이스, 및/또는 메모리 디바이스)을 거쳐 데이터를 수신할 수 있게 하고, 프로세서(202)를 이용하여 이 데이터를 프로세싱하여 출력을 생성할 수 있게 하는 컴포넌트들을 포함할 수 있다. 운영 체제(208)는 출력을 제공하는(예컨대, 전자 디스플레이 상에 이미지를 디스플레이하기, 데이터를 메모리 내에 저장하기, 데이터를 다른 전자 디바이스에 송신하기 등) 하나 이상의 컴포넌트들을 더 포함할 수 있다. 운영 시스템(208)은 사용자가 인터페이스(204)를 사용하여 비디오 분석 엔진(102)의 모듈들과 상호작용할 수 있게 할 수 있다. 추가적으로, 운영 체제(208)는 운영 체제와 일반적으로 연관된 다양한 다른 기능들을 수행하는 다른 컴포넌트들을 포함할 수 있다.
모듈들은 비디오 디코더 모듈(210), 저레벨 분석 모듈(212), 고레벨 분석 모듈(214), 모션 분석 모듈(216), 중요도 계산 모듈(218), 비디오 세분화 모듈(220), 비디오 등급화 모듈(222), 및 사용자 인터페이스 모듈(224)을 포함할 수 있다. 모듈들 각각은 특정한 태스크들을 수행하거나 특정한 추상적 데이터 유형들을 구현하는, 루틴들, 프로그램들, 명령어들, 오브젝트들, 및/또는 데이터 구조들을 포함할 수 있다. 추가적으로, 데이터 저장소(226)는 메모리(206)에 상주할 수 있다. 저레벨 분석 모듈(212) 및 고레벨 분석 모듈(214) 각각은 지역적 규칙 또는 전역적 규칙을 적용하여 비디오 파일에서 특징 데이터, 즉, 비디오 데이터 및/또는 오디오 데이터의 중요도를 분석할 수 있다. 지역적 규칙은 단일 비디오 프레임 내의 특징 데이터에 기초하여 단일 비디오 프레임에 대한 중요도의 할당에 영향을 줄 수 있다. 반대로, 전역적 규칙은 비디오 파일의 다수의 비디오 프레임들 내의 특징 데이터에 기초하여 전체 비디오 파일에 대한 중요도의 할당에 영향을 주거나, 또는 비디오 프레임들의 세트에 걸쳐 공유되는 특징들에 기초하여 비디오 파일 내의 비디오 프레임들의 세트 각각에 대한 중요도의 할당에 영향을 줄 수 있다.
비디오 디코더 모듈(210)은 비디오 파일(108(1))과 같은 비디오 파일을 디코딩하여, 각각의 비디오 프레임들과 연관된 비디오 프레임들 및/또는 오디오 데이터를 획득할 수 있다. 비디오 디코더 모듈(210)은 H.264, MPEG-2, MPEG-4 등과 같은 비디오 파일들을 디코딩하기 위해 다양한 코덱들을 사용할 수 있다.
저레벨 분석 모듈(212)은 저레벨 특징들에 대한 각각의 디코딩된 비디오 프레임을 분석하여 특징 점수들을 생성할 수 있다. 다양한 실시예들에서, 저레벨 특징들은 노출 퀄리티, 채도 퀄리티, 색조 다양성, 흔들림, 평균 밝기, 색상 엔트로피, 및/또는 인접한 비디오 프레임들 간의 히스토그램 차이들을 포함할 수 있다. 저레벨 분석 모듈(212)은 알고리즘들을 사용하여 비디오 프레임들의 노출, 채도 및 색조를 나타내는 히스토그램들을 도출할 수 있다. 노출 퀄리티의 분석에서, 저레벨 분석 모듈(212)은 비디오 프레임의 노출 밸런스의 노출 히스토그램을 분석할 수 있다. 저레벨 분석 모듈(212)은 지역적 규칙에 따라 노출 밸런스에 기초하여 비디오 프레임에 노출 등급 점수를 할당할 수 있는데, 여기서, 노출 밸런스가 높을수록 노출 등급 점수는 높아질 수 있다. 반대로, 비디오 프레임의 노출 밸런스가 낮을수록 노출 등급 점수는 낮아질 수 있다.
채도 퀄리티의 분석에서, 저레벨 분석 모듈(212)은 HSV 색상 공간에 대한 채도 히스토그램과 같은, 비디오 프레임의 채도 히스토그램을 분석할 수 있다. 이러한 분석에 기초하여, 저레벨 분석 모듈(212)은 지역적 규칙에 따라 채도 히스토그램 내의 중간 세트의 값들로 채도량을 반영하는 채도 점수를 계산할 수 있다. 따라서, 이 중간 범위의 채도가 높으면 비디오 프레임에 대한 채도 점수는 높아진다. 반대로, 이 중간 범위의 채도가 낮으면 비디오 프레임에 대한 채도 점수는 낮아진다.
색조 다양성의 분석에서, 저레벨 분석 모듈(212)은 비디오 프레임에 대한 색조 히스토그램의 밸런스를 평가할 수 있다. 저레벨 분석 모듈(212)은 지역적 규칙에 기초하여 색조 점수를 추가로 할당할 수 있다. 따라서, 저레벨 분석 모듈(212)은 비디오 프레임의 색조들이 잘 밸런스 잡혀있을 때, 즉, 보다 다양한 색상들을 나타내는 경우, 보다 높은 색조 점수를 할당할 수 있다. 반대로, 저레벨 분석 모듈은 비디오 프레임의 색조들이 덜 밸런스 잡혀있을 때, 즉, 색상의 다양성이 적을 때, 낮은 색조 점수를 할당할 수 있다.
흔들림의 분석에서, 저레벨 분석 모듈(212)은 모션 분석 모듈(216)을 사용하여 프레임들 간의 특징점들의 움직임을 추적하고 그 움직임을 모델링하는 변환을 생성할 수 있다. 특징점들은 다수의 비디오 프레임들에 걸쳐 안정적으로 위치할 수 있는 비디오 프레임 내의 관심점(interest point)들이다. 특징점은 2차원(2D) 구조를 포함하고 있다는 점에서 구별되며, 이것은 x 방향 및 y 방향으로 지역화(localize)될 수 있다. 저레벨 분석 모듈(212)은 변환을 사용하여 특징점 모션의 크기 및 방향과 관련된 지역적 및 전역적 경향들을 분석할 수 있다. 지역적 및 전역적 경향들은 비디오 파일에서의 흔들림을 지역적 프레임당 변화의 속성으로서 수량화할 수 있다. 비디오 파일의 흔들림은 모션 카테고리화 분석과 관련하여 후술되는 바와 같이 모션 분석 모듈(216)에 의해 결정될 수 있다. 따라서, 저레벨 분석 모듈(212)은, 흔들림이 클수록 흔들림 점수가 낮아지게끔, 비디오 파일의 흔들림의 양에 반비례하는(또는 이와 반대의) 흔들림 점수를 비디오 파일에 할당하는 전역적 규칙을 적용할 수 있다.
평균 밝기의 분석에서, 저레벨 분석 모듈(212)은 비디오 프레임 내의 모든 픽셀들의 휘도 성분들의 평균을 계산할 수 있다. 다양한 실시예들에서, 저레벨 분석 모듈(212)은 비디오 프레임의 그레이 스케일 이미지 표현 내의 픽셀 값들을 평균화할 수 있다. 예를 들어, 픽셀 값들은 0~255의 범위를 가질 수 있으며, 여기서 0은 검정색에 대응하고 255는 흰색에 대응한다. 일부 실시예들에서, 저레벨 분석 모듈(212)은 매 n번째 픽셀로부터 픽셀 값을 판독하도록 더욱 최적화될 수 있다. 달리 말하면, 저레벨 분석 모듈(212)은 분석을 수행하면서 x 방향 및/또는 y 방향으로 미리 결정된 수의 픽셀들을 건너뛸 수 있다. 비디오 프레임 내의 픽셀들의 픽셀 값들의 평균에 기초하여, 저레벨 분석 모듈(212)은 비디오 프레임의 밝기를 결정할 수 있다. 따라서, 저레벨 분석 모듈(212)은 비디오 프레임의 평균 픽셀 값이 미리 결정된 중간 범위의 밝기에 있을 때 비디오 프레임의 평균 픽셀 값에 비례하는 밝기 점수를 할당하도록 지역적 규칙을 적용할 수 있다. 그러나, 저레벨 분석 모듈(212)은, 평균 픽셀 값이 미리 결정된 중간 범위의 밝기 밖에 있을 때, 즉, 미리 결정된 중간 범위의 밝기보다 높거나 낮을 때, 미리 결정된 중간 범위의 밝기 내에 있는 평균 픽셀 값에 할당된 임의의 밝기 점수보다 낮은 밝기 점수를 할당할 수 있다. 이러한 밝기 점수는 평균 픽셀 값이 미리 결정된 중간 범위의 밝기의 하한보다 낮게 있으면서 감소시에 줄어들 수 있다. 이러한 밝기 점수는 또한 평균 픽셀 값이 미리 결정된 중간 범위의 밝기의 상한보다 높게 있으면서 증가시에 줄어들 수 있다.
색상 엔트로피의 분석에서, 저레벨 분석 모듈(212)은 비디오 프레임에서의 색상 엔트로피의 양을 결정할 수 있다. 색상 엔트로피의 양은 비디오 프레임 내의 색상들 간의 차이의 인디케이터이다. 저레벨 분석 모듈(212)에 의해 할당된 색상 엔트로피 값은, 비디오 프레임에서의 색상 엔트로피의 실제 양에 따라, "0"에서 "1"까지의 범위를 가질 수 있다. 예를 들어, 저레벨 분석 모듈(212)은 비디오 프레임의 픽셀들이 최대 차이량을 가질 때 비디오 프레임에 "1"의 색상 엔트로피 값을 할당할 수 있다. 저레벨 분석 모듈(212)은 비디오 프레임의 픽셀들이 최소 차이량을 가질 때 비디오 프레임에 "0"의 색상 엔트로피 값을 할당할 수 있다. 다양한 실시예들에서, 저레벨 분석 모듈(212)은 색상 공간(예를 들어, RGB 색상 공간 또는 HSV 색상 공간)에 대한 색상 도메인 히스토그램을 계산함으로써 색상 엔트로피 값을 결정할 수 있다.
이러한 실시예들에서, 저레벨 분석 모듈(212)은 초기에 다수의 색상 차원들을 캡처하는 히스토그램을 생성할 수 있다. 예를 들어, RGB 색상 공간에서, R, G 및 B 각각은 256개의 가능한 값들을 가질 수 있으며, 이 경우 히스토그램은 256 x 256 x 256 버킷(bucket)들을 가질 수 있다. 적어도 하나의 실시예에서, 버킷들은, 다수의 색상 값들이 동일한 버킷에 속하도록, 버킷 크기 및/또는 처리 속도를 최적화하기 위해 추가로 양자화될 수 있는데, 예를 들어, 크기가 25 x 25 x 25일 수 있다. 따라서, 일 예시에서, 히스토그램은 코드 내의 다음의 포맷, 즉, int Histogram[256 * 256 * 256]으로 표현될 수 있는데, 이는 히스토그램 어레이가 RGB 색상 공간에서 모든 가능한 색상들에 대한 엘리먼트를 갖는다는 것을 의미한다. 따라서, 저레벨 분석 모듈(212)이 픽셀을 판독할 때, 저레벨 분석 모듈(212)은 다음과 같이 값을 설정할 수 있다:
Figure 112017003789425-pct00001
상기 단계들이 비디오 프레임 내의 각각의 픽셀에 대해 수행되면, 저레벨 분석 모듈(212)은 히스토그램을 정규화할 수 있다. 달리 말하면, 저레벨 분석 모듈(212)은, 히스토그램 내의 값들이 0과 1 사이에 있고, 그 값들이 1까지 가산되도록, 히스토그램의 크기로 각 값을 나눌 수 있다. 결과적으로, 가장 높은 값을 갖는 엘리먼트가 비디오 프레임에서 가장 자주 발생한다.
히스토그램 내의 픽셀 값들에 대한 엔트로피는 다음과 같이 모든 (Histogram[n] * log(Histogram[n]))의 합계로서 공식화될 수 있다:
Figure 112017003789425-pct00002
저레벨 분석 모듈(212)은 히스토그램으로부터의 엔트로피를 최대 가능 엔트로피로 나눔으로써 상대적인 색상 엔트로피(즉, 다른 비디오 프레임들에 대한 비디오 프레임의 색상 엔트로피)를 결정할 수 있다. 최대 가능 엔트로피는 모든 Histogram[n]이 동일한 값을 가질 때, 즉 (1.0/가능한 값들의 수)일 때로서 정의될 수 있다. 비디오 프레임에 대한 상대적 색상 엔트로피 값이 획득되면, 저레벨 분석 모듈(212)은 지역적 규칙을 적용하여 비디오 프레임의 상대적인 색상 엔트로피로부터 비디오 프레임에 대한 엔트로피 점수를 획득할 수 있다. 다양한 실시예들에서, 비디오 프레임의 엔트로피 점수는 비디오 프레임의 상대적인 엔트로피 값에 정비례할 수 있으며, 예를 들어, 상대적 엔트로피 값이 높을수록 엔트로피 점수는 높아지며, 그 반대도 마찬가지다.
히스토그램 차이의 분석에서, 저레벨 분석 모듈(212)은 두 개의 인접한 비디오 프레임들 간의 히스토그램 차이를 결정할 수 있다. 다양한 실시예들에서, 저레벨 분석 모듈(212)은 각각의 비디오 프레임을 다수의 셀들(예를 들어, 10 x 10 셀들)로 나눌 수 있다. 저레벨 분석 모듈(212)은, 비디오 프레임 t 및 인접한 비디오 프레임 t + 1의 각각의 셀에 대해, 색상 히스토그램(예를 들어, RGB 히스토그램)을 계산할 수 있다. 후속하여, 저레벨 분석 모듈(212)은, 비디오 프레임 t 내의 각 셀에 대해, 자신의 히스토그램과 인접한 비디오 프레임 t + 1에서의 대응하는 위치를 갖는 셀의 히스토그램 사이의 차이를 계산할 수 있다. 두 개의 인접한 비디오 프레임들에서의 셀 쌍들의 히스토그램들 간의 차이들은 두 개의 인접한 프레임들에 대한 최종 히스토그램 차이 값을 획득하도록 추가적으로 표준화(예를 들어, 제곱되고, 정규화되고, 및/또는 평균화됨 등)될 수 있고, 여기서 값은 "0"과 "1" 사이의 범위를 가질 수 있다. 두 개의 인접한 비디오 프레임들에 대한 히스토그램 차이 값이 획득되면, 저레벨 분석 모듈(212)은 히스토그램 차이 값으로부터 비디오 프레임 t에 대한 히스토그램 차이 점수를 획득하기 위해 지역적 규칙을 적용할 수 있다. 다양한 실시예들에서, 비디오 프레임의 히스토그램 차이 점수는 히스토그램 차이에 정비례할 수 있으며, 예를 들어, 히스토그램 차이 값이 클수록 히스토그램 차이 점수는 높아지며, 그 반대도 마찬가지다.
적어도 일부 실시예들에서, 저레벨 분석 모듈(212)은 비디오 파일의 처리를 가속화하기 위해 분석의 일부를 최적화할 수 있다. 예를 들어, 저레벨 분석 모듈(212)은 비디오 파일 내의 모든 비디오 프레임들보다는 비디오 파일 내의 비디오 프레임의 서브세트에 대한 분석(예를 들어, 노출 등급 분석, 색조 다양성 분석 등)을 수행할 수 있다. 저레벨 분석 모듈(212)은 또한, 약간의 효율성을 얻기 위해 오리지널 프레임의 스케일 다운된 버전에 대해 하나 이상의 분석들을 수행할 수 있다. 예를 들어, 비디오 프레임에 대한 색조 다양성 분석 및 채도 분석이 비디오 프레임의 다운 샘플링된 버전에 대해서 수행될 수 있다. 다른 예에서, 노출 퀄리티 분석이 비디오 프레임의 단색 및 다운 샘플링된 버전에 대해 수행될 수 있다. 저레벨 분석 모듈(212)은 또한 다수의 분석들을 병렬적으로 또는 실질적으로 병렬적으로 수행할 수 있다. 예를 들어, 채도 퀄리티 분석과 색조 다양성 분석은 병렬적으로 수행될 수 있다.
고레벨 분석 모듈(214)은 고레벨 특징들에 대한 각각의 디코딩된 비디오 프레임을 분석할 수 있다. 적어도 하나의 실시예에서, 고레벨 특징 분석들은 얼굴 검출, 얼굴 추적, 얼굴 인식, 현저성(saliency) 분석, 오디오 전력 분석, 오디오 분류 분석, 음성 분석, 및 모션 분석을 포함할 수 있다.
얼굴 검출에서, 고레벨 분석 모듈(214)은 디코딩된 비디오 프레임을 분석하여 사람의 얼굴이 비디오 프레임 내에서 제공되는지 여부를 검출할 수 있다. 검출된 얼굴은 비디오 프레임을 캡처한 카메라를 향해 있을 수 있거나 또는 카메라에 대해 옆으로 향해 있을 수 있다. 이 검출에 기초하여, 고레벨 분석 모듈(214)은 비디오 프레임 내의 얼굴들의 위치들, 각 얼굴에 의해 커버되는 비디오 프레임의 영역, 및 검출에 대한 신뢰도를 나타내는 각 얼굴에 대한 검출 신뢰도 점수를 갖는, 검출된 얼굴들의 리스트를 생성할 수 있다.
다양한 실시예들에서, 고레벨 분석 모듈(214)은 비디오 프레임의 크기의 백분율로서의 검출된 얼굴의 크기에 기초하여 비디오 프레임에 대한 얼굴 중요도 점수를 계산하기 위해 지역적 규칙을 적용할 수 있다. 두 개의 비디오 프레임들 상에서 동일한 크기로 검출된 얼굴들에는 동일한 얼굴 중요도 점수가 할당될 수 있다. 그러나, 비디오 프레임 t 2 상에서의 얼굴이 비디오 프레임 t 1 상에서의 얼굴보다 큰 경우, 더 큰 얼굴이 더 작은 얼굴보다 더 중요한 것으로 간주되기 때문에, 비디오 프레임 t 2 의 얼굴 중요도 점수는 더 높아질 것이다. 다른 실시예들에서, 고레벨 분석 모듈(214)은 검출된 얼굴의 크기가 최소 크기 임계치와 최대 크기 임계치 사이에 있는 경우에 얼굴 중요도 점수를 계산하도록 구성될 수 있다. 반대로, 크기가 최소 크기 임계치보다 작거나 최대 크기 임계치보다 큰 얼굴들은 고레벨 분석 모듈(214)에 의한 얼굴 중요도 점수 계산에 대해 무효로 간주될 수 있으며, 또는 그러한 발생들의 경우 부정적(negative) 점수 바이어스가 대응하는 비디오 프레임에 할당될 수 있다.
대안적으로 또는 동시에, 비디오 프레임에 대한 얼굴 중요도를 계산하기 위한 지역적 규칙은 비디오 프레임에서 묘사된 각 얼굴의 얼굴 특징들을 고려할 수 있다. 예를 들어, 얼굴 특징들에는 얼굴이 웃고 있는지 아닌지 여부, 눈이 떠 있는지 아닌지 여부 등이 포함될 수 있다. 따라서, 웃고 있는 얼굴에 대해서는 긍정적(positive) 점수 바이어스가 대응하는 비디오 프레임에 할당될 수 있는 반면에, 웃고 있지 않는 얼굴의 경우에는 부정적 점수 바이어스가 할당될 수 있다. 마찬가지로, 눈이 떠있는 얼굴에 대해서는 긍정적 점수 바이어스가 대응하는 비디오 프레임에 할당될 수 있는 반면에, 눈을 감고 있을 때에는 부정적 점수 바이어스가 할당될 수 있다.
얼굴 인식에서, 고레벨 분석 모듈(214)은 얼굴 인식 알고리즘을 이용하여 비디오 프레임 내에서 검출된 각각의 사람 얼굴을 알려진 개인 아이덴티티에 매칭시킬 수 있다. 일부 실시예들에서, 고레벨 분석 모듈(214)은 알려진 얼굴들의 지식 데이터베이스를 사용하여 사람 얼굴을 알려진 개인에 매칭시킬 수 있다. 대안적으로 또는 동시에, 고레벨 분석 모듈(214)은 사용자 인터페이스 모듈(224)을 사용하여 사용자가 하나 이상의 인식된 얼굴들 각각에 아이덴티티, 얼굴의 중요도 등급, 및/또는 시청자와 해당 얼굴과의 인간 관계를 태깅(tag)할 수 있도록 해주는 사용자 인터페이스 제어들을 제공할 수 있다. 적어도 하나의 실시예에서, 얼굴들에 관하여 시청자에 의해 제공된 정보는 지식 데이터베이스에 추가될 수 있다.
얼굴 추적에서, 고레벨 분석 모듈(214)은 다수의 비디오 프레임들에 걸쳐 사람 얼굴들을 추적할 수 있다. 이러한 방식으로, 고레벨 분석 모듈(214)은 비디오 파일에 존재하는 얼굴들의 세트를 확인할 뿐만이 아니라, 각각의 얼굴이 비디오 파일에서 출현하는 빈도를 추적할 수 있다. 또한, 얼굴 그룹화에서, 고레벨 분석 모듈(214)은 추적되는 얼굴들을 그룹화하여, 상이한 비디오 프레임들 상에서 검출된 얼굴들이 동일한 사람에 속하는지 여부를 결정할 수 있다. 다양한 실시예들에서, 고레벨 분석 모듈(214)은 비디오 프레임들 내의 각각의 검출된 얼굴들에 대한 얼굴 특징들의 세트를 획득할 수 있다. 고레벨 분석 모듈(214)은 검출된 얼굴들을 얼굴 특징 유사성에 따라 그룹들로 그룹화하기 위해 검출된 얼굴들에 대한 얼굴 특징들의 세트를 비교할 수 있다. 고레벨 분석 모듈(214)은 각각의 그룹 내의 얼굴들의 수에 따라 얼굴들의 각각의 그룹의 중요도를 평가할 수 있다. 각각의 그룹 내의 얼굴들의 수는 비디오 파일 내의 얼굴의 출현율(prevalence)에 정비례한다. 또한, 출현율이 높다는 것은 해당 얼굴을 가진 사람의 중요도가 높거나, 그 반대일 수 있다는 것을 나타낼 수 있다. 따라서, 얼굴들의 그룹에 대한 그룹 중요도 점수는 그룹 내의 얼굴들의 얼굴 중요도 점수들의 합계일 수 있다. 이와 같이, 고레벨 분석 모듈(214)은 그룹에 대한 그룹 중요도 점수를 계산하기 위해, 다수의 비디오 프레임들에서 묘사된 바와 같이, 그룹 내의 얼굴들의 얼굴 중요도 점수들을 합산할 수 있다.
예를 들어, 그룹 중요도 점수가 가장 높은 그룹에서 얼굴이 나타나는 사람은 주인공으로서 간주될 수 있다. 이러한 정보에 기초하여, 고레벨 분석 모듈(214)은 비디오 프레임들에 전역적 규칙을 적용하여, 주인공을 보여주는 비디오 프레임들의 얼굴 중요도 점수가 더욱 긍정적으로 바이어싱되도록, 즉, 더욱 상승될 수 있다. 다수의 비디오 프레임들에서 캡처되고 그룹 내에 포함된 얼굴들의 위치들은 또한 비디오 프레임들에 할당된 얼굴 중요도 점수를 낮출 수 있다. 예를 들어, 중심에 더 가까이 있는 얼굴이 비디오 프레임에 대해 더 높은 중요도를 초래하도록(그 반대도 마찬가지임), 특정 개인의 얼굴을 나타내는 비디오 프레임의 중요도 점수는 축(예를 들어, x축 또는 y축)을 따라 비디오 프레임의 중심까지의 얼굴의 거리에 따라 바이어싱될 수 있다.
프레임 현저성 분석에서, 고레벨 분석 모듈(214)은 비디오 프레임의 현저한 부분들을 검출할 수 있다. 예를 들어, 비디오 프레임의 현저한 부분은 움직이고 있는 객체를 캡처할 수 있다. 현저성 분석에 기초하여, 고레벨 분석 모듈(214)은 비디오 프레임의 모든 픽셀의 현저성 점수를 디스플레이하는 히트 맵을 생성하기 위해 지역적 규칙을 적용할 수 있다. 히트 맵은 매트릭스로 배열된 데이터의 그래픽 표현이며, 여기서 매트릭스 내의 개별 값들은 색상들을 사용하여 표현된다. 고레벨 분석 모듈(214)은 비디오 프레임 내의 픽셀들의 현저성 점수에 기초하는 비디오 프레임에 대한 프레임 현저성 점수를 더 생성할 수 있다. 예를 들어, 비디오 프레임에 대한 비디오 프레임 현저성 점수는 픽셀 현저성 점수들의 평균일 수 있다.
오디오 전력 분석에서, 고레벨 분석 모듈(214)은 비디오 프레임에 지속 시간 대응하는(예를 들어, 1/30초 또는 1/60초) 오디오 데이터를 평가하고, 오디오 전력의 RMS(root mean square) 값을 계산할 수 있다. 오디오 전력의 더 높은 RMS 값은 대응하는 비디오 프레임의 더 높은 중요도를 나타낼 수 있고, 그 반대일 수도 있다. 따라서, 고레벨 분석 모듈(214)은 지역적 규칙에 따라 오디오 전력 중요도 점수를 대응하는 비디오 프레임에 할당할 수 있다.
오디오 분류 분석에서, 고레벨 분석 모듈(214)은 머신 학습 분류기를 사용하여 비디오 프레임에 지속 시간 대응하는 오디오 데이터가 상이한 유형들의 오디오 데이터(예를 들어, 잡음, 음성, 또는 음악)를 포함하는지 여부를 결정할 수 있다. 상이한 유형들의 오디오 데이터는 대응하는 비디오 프레임의 상이한 중요도를 반영할 수 있다. 지역적 규칙에 기초하여, 고레벨 분석 모듈(214)은 오디오 데이터의 유형에 기초하여 오디오 분류 중요도 점수를 대응하는 비디오 프레임에 할당할 수 있다. 예를 들어, 음성의 존재는 고레벨 분석 모듈(214)로 하여금 대응하는 비디오 프레임에 대해 높은 오디오 분류 중요도를 할당하게 할 수 있다. 이와는 대조적으로, 음악의 존재는 대응하는 비디오 프레임에 대해 중간 오디오 분류 점수의 할당을 야기할 수 있다. 또한, 잡음의 존재는 고레벨 분석 모듈(214)로 하여금 대응하는 비디오 프레임에 대해 낮은 오디오 분류 점수를 할당하게 할 수 있다.
모션 카테고리화 분석에서, 고레벨 분석 모듈(214)은 모션 분석 모듈(216)을 이용하여 비디오 프레임들 간의 특징점들의 움직임을 추적하고 그 움직임을 모델링하는 변환을 생성할 수 있다. 고레벨 분석 모듈(214)은 변환을 사용하여 움직임의 크기 및 방향과 관련된 지역적 및 전역적 경향들을 분석할 수 있다. 이어서, 고레벨 분석 모듈(214)은 비디오 프레임들에서 캡처된 흔들림을 살펴보고, 줌, 패닝 등과 같은 장면에 대한 카메라의 의도적인 움직임을 결정하기 위해 지역적 및 전역적 경향을 사용할 수 있다.
다양한 실시예들에서, 모션 분석 모듈(216)은 두 개의 인접한 프레임들에 대한 특징점들의 위치를 찾음으로써 모션 카테고리화 분석을 개시할 수 있다. 특징점은 이미지의 이차원(2D) 또는 3D 변환의 경우에도 식별가능한 상태로 유지되는 이미지 내의 점일 수 있다. 특징점들을 검출하기 위해, 모션 분석 모듈(216)은 이미지를 다운 샘플링하고 더 작은 치수의 다운 샘플링된 이미지들의 피라미드(pyramid)를 생성할 수 있다. 그 후, 다운 샘플링된 이미지들은 모션 분석 모듈(216)에 의해 비교되어 다운 샘플링된 이미지들 사이의 공통점들(즉, 특징점들)을 결정한다. 다양한 실시예들에서, 모션 분석 모듈(216)은 라플라스 검출 알고리즘, 해리스 검출 알고리즘, 헤시안 검출 알고리즘, 헤시안라플라스(HessianLaplace) 검출 알고리즘, 헤시안어파인(HessianAffine) 검출 알고리즘, 에지포시(EdgeFoci) 검출 알고리즘 등과 같은, 공통점들을 검출하기 위해 하나 이상의 여러 검출 알고리즘들을 이용할 수 있다.
두 개의 인접한 프레임들에 대해 특징점들이 식별되면, 모션 분석 모듈(216)은 최대 개수의 특징점들이 일치하도록 두 개의 인접한 프레임들을 정렬시키는 변환을 결정할 수 있다. 이 변환은 견고한 파라미터 추정의 구현예인 기하학적 일치를 사용하여 수행될 수 있다. 이 변환은 일치된 특징점들로부터 계산된 호모그래피(homography) 변환 매트릭스를 제공할 수 있다. 다양한 실시예들에서, 모션 분석 모듈(216)은 랜덤 샘플링 및 컨센서스(Random Sampling and Consensus; RANSAC) 알고리즘을 사용하여 초기 파라미터 추정치 및 통계적 인라이어(statistical inlier)들의 리스트를 획득할 수 있으며, 여기서 초기 파라미터 추정치는 더 정제된다. 호모그래피 변환에 의해 정렬된 비디오 프레임들에서의 다양한 카메라 모션들이 도 3에서 도시되어 있다.
도 3은 다수의 비디오 프레임들에서 예시적인 특징점들을 정렬하기 위한 호모그래피 변환의 사용을 도시하는 예시도이다. 도시된 바와 같이, 비디오 프레임들(302~312) 각각은 원으로 묘사된 식별된 특징점들의 그룹을 각각 포함할 수 있다. 예를 들어, 비디오 프레임(302) 내의 특징점들의 그룹은 원들(314(1)~314(5))로 묘사된다. 특징점들의 그룹 내의 각각의 특징점은 다수의 비디오 프레임들을 캡쳐한 카메라의 움직임에도 불구하고, 다수의 비디오 프레임들에 걸쳐 서로에 대한 각자의 상대적인 위치들을 유지할 수 있다. 예를 들어, 변환된 비디오 프레임(316)은 비디오 프레임(302)에 대한 후속 비디오 프레임일 수 있고, 이는 카메라의 추적 움직임의 결과이다. 변환된 비디오 프레임(318)은 비디오 프레임(304)에 대한 후속 비디오 프레임일 수 있고, 이는 카메라의 붐(boom)의 결과이다. 변환된 비디오 프레임(320)은 비디오 프레임(306)에 대한 후속 비디오 프레임일 수 있고, 이는 카메라의 줌(zoom)/돌리(boom)의 결과이다. 변환된 비디오 프레임(322)은 비디오 프레임(308)에 대한 후속 비디오 프레임일 수 있고, 이는 카메라의 롤(roll) 움직임의 결과이다. 변환된 비디오 프레임(324)은 비디오 프레임(310)에 대한 후속 비디오 프레임일 수 있고, 이는 카메라의 수직 패닝(pan)/피치(pitch)/틸트(tilt)의 결과이다. 변환된 비디오 프레임(316)은 비디오 프레임(312)에 대한 후속 비디오 프레임일 수 있고, 이는 카메라의 수평 패닝의 결과이다.
그러나, 비디오 프레임들(302~312)로부터 변환된 비디오 프레임들(326~336)을 생성한 카메라에 의한 움직임에 관계없이, 모션 분석 모듈(216)은 호모그래피 변환을 사용하여 비디오 프레임 및 그 대응하는 변환된 비디오 프레임에서 특징점을 정렬시킬 수 있다.
도 2로 돌아가면, RANSAC 알고리즘은 특징점 일치들의 최소 서브세트로부터 변환 매트릭스 파라미터들을 직접 계산할 수 있다. 예를 들어, 유사성 변환(예를 들어, 병진이동, 회전, 또는 스케일링)이 두 개의 프레임들 사이에서 대응하는 두 개의 특징점들로부터 계산될 수 있다. 후보 기하학적 변환이 획득되면, RANSAC 알고리즘은 데이터 세트 내의 모든 다른 특징점 일치들에 대한 변환을 테스트하고, 충분한 정확도로 공간적으로 투사되는 특징점들인 인라이어들의 개수의 카운트를 생성함으로써 변환을 입증할 수 있다. 달리 말하면, RANSAC 알고리즘은 처음에는 무작위적으로 최소 세트의 점 일치들을 고르고, 이 세트로부터 변환 파라미터들을 계산하며, 그 후, 인라이어 일치들의 개수를 카운팅하여 이러한 파라미터들을 입증할 수 있다. 후속하여, RANSAC 알고리즘은 최상의 변환을 기록한다. RANSAC 알고리즘은 데이터 불일치율을 고려하여 양호한 변환 파라미터들의 세트를 발견할 확률이 미리 결정된 확률 임계치에 도달할 때까지 이 프로시저를 여러 번 반복할 수 있다.
일부 실시예들에서, RANSAC 알고리즘은 베이지안(Bayesian) 통계의 보다 나은 사용을 위해 수정될 수 있다. RANSAC 알고리즘은, 변환 파라미터들의 입증 동안에 인라이어들을 카운팅하기보다는, 모든 특징점 일치들로부터 각각의 무작위 변환에 대한 로그 확률 점수를 계산할 수 있다. 이 점수에는 두 부분들, 즉 (1) 파라미터들 및 파라미터들이 통상적으로 예상된 값들로부터 얼마나 멀리 떨어져 있는지에 의존하는 사전 확률 점수, 및 (2) 특징점 일치들의 재투사 거리의 견고한 함수에 기초한 확률 점수가 포함된다. 이러한 점수는 올바른 위치로 투사되지만 아웃라이어(outlier)들을 공존시킬 수 있는 특징점들에 우호적이다.
호모그래피 변환으로부터, 모션 분석 모듈(216)은 다른 종류의 모션들을 무시하면서, 줌 및 수직 병진이동 성분의 크기 및 방향을 추출할 수 있다. 이러한 크기와 방향은 인접한 두 개의 프레임들에서 기록된 카메라의 의도적인 움직임이다. 달리 말하면, 이들 크기와 방향은 첫번째 프레임에서 인접한 두번째 프레임으로의 실제 움직임 변화의 1차 미분이다. 모션 분석 모듈(216)은 비디오 프레임들의 움직임 벡터들의 모션 데이터 이동 평균을 계산함으로써 비디오 프레임들을 기록한 카메라의 흔들림 움직임을 결정할 수 있고, 모션 데이터 이동 평균으로부터 카메라의 의도적인 움직임을 뺄 수 있다. 모션 데이터 이동 평균의 계산은 지역적 분산을 억제하고 의도적인 움직임을 나타내는 장기적 경향을 보존한다. 달리 말하면, 의도적인 움직임과 첫번째 프레임에서 두번째 프레임으로의 전체적인 움직임 변화 사이의 차이는 두 프레임을 기록한 카메라의 흔들림 움직임이다.
프레임들의 세트에서 기록된 줌 및 수직 병진이동 값들의 크기는 해당 프레임들의 중요도에 대한 단서를 제공할 수 있다. 예를 들어, 더 높은 값은 비디오 프레임 내의 하나 이상의 객체들에 대한 카메라 모션의 가속을 나타낼 수 있다. 또한, 보다 높은 가속을 갖는 비디오 프레임의 영역이 더 중요한 것으로서 가정될 수 있는데, 그 이유는 카메라가 어떤 동작을 캡처하기 위해 빠른 모션 변화를 취할 수 있기 때문이다. 따라서, 고레벨 분석 모듈(214)은 모션 가속의 양에 기초하여 각각의 프레임에 모션 중요도 점수를 할당할 수 있다.
모션 분석 모듈(216)은 의도적인 움직임 데이터를 분석하여 줌 및 수직 병진이동 모션들 둘 다에 대한 제로 크로싱(zero crossing) 주위에서 피벗된 지역적 맥시마(maxima) 및 미니마(minima)를 결정할 수 있다. 일부 실시예들에서, 모션 분석 모듈(216)은 지역적 맥시마 및 미니마 위치를 사용하여 데이터를 비디오 섹션들로 세분화시킬 수 있다. 대안적으로 또는 동시에, 모션 분석 모듈(216)은 지역적 맥시마 및 미니마 위치를 사용하여, 줌 아웃(zoom-out)과 쌍을 이루는 줌 인(zoom-in), 패닝 다운(pan-down)과 쌍을 이루는 패닝 업(pan-up) 등과 같이, 쌍을 이루는 변화 방향들을 갖는 비디오 섹션들로 비디오 파일을 세분화할 수 있다.
비디오 파일의 세분화된 비디오 섹션들은 비디오 파일의 장면들에서의 변화와 일치할 수 있다. 따라서, 비디오 파일 내의 섹션 경계들은 비디오 파일을 상이한 중요도의 비디오 섹션들로 나누는 가이드라인들로서 사용될 수 있다. 경계들은 중요/비중요 섹션들의 시작과 끝을 카메라의 움직임에서의 시프트 또는 장면 내 활동의 성질 변화가 있는 시점들과 정렬시킬 수 있다. 또한, 모션 분석 모듈(216)은 섹션에 대한 줌 및 패닝 모션에 대한 크기들을 결합하고 평균화할 수 있다. 비디오 섹션에 대한 줌 및 패닝 모션의 크기들의 평균으로 표현되는 가속량은 모션 분석 모듈(216)에 의해 사용되어, 프레임들에 대해 전술한 것과 동일한 방식으로 비디오 섹션에 모션 중요도 점수를 할당할 수 있다.
적어도 일부 실시예들에서, 고레벨 분석 모듈(214)은 비디오 파일의 처리를 가속화하기 위해 분석의 일부를 최적화할 수 있다. 예를 들어, 고레벨 분석 모듈(214)은 비디오 프레임의 단색 및 다운 샘플링된 버전을 사용하여 각 비디오 프레임 내에서의 하나 이상의 얼굴들에 대한 얼굴 검출, 얼굴 추적, 및/또는 얼굴 인식을 수행할 수 있다. 고레벨 분석 모듈(214)은 또한 다수의 분석들을 병렬적으로 또는 실질적으로 병렬적으로 수행할 수 있다. 예를 들어, 얼굴 추적 및 얼굴 인식은 병렬적으로 수행될 수 있다.
중요도 계산 모듈(218)은 비디오 파일의 비디오 프레임들에 대해 생성된 다양한 특징 점수들을 정규화하고 비디오 파일에 대한 비디오 중요도 값을 계산할 수 있다. 예를 들어, 중요도 계산 모듈(218)은 각각의 비디오 프레임에 대한 프레임 중요도 점수를 획득하기 위해 각각의 비디오 프레임에 대한 정규화된 특징 점수들의 세트(예를 들어, 얼굴 중요도 점수, 모션 중요도 점수, 노출 등급 점수, 채도 점수 등)를 평균화할 수 있다. 비디오 프레임 중요도 점수들은 비디오 파일에 대한 비디오 중요도 값을 도출하기 위해 더 평균화될 수 있다. 일부 실시예들에서, 비디오 파일에 대한 비디오 중요도 값의 계산은 또한 비디오 프레임들과 관련된 하나 이상의 특징 점수들의 바이어싱을 포함할 수 있다. 예를 들어, 중요도 계산 모듈(218)은 비디오 프레임 내의 얼굴의 존재가 비디오 프레임의 색조 다양성 점수보다 더 높은 정도로 해당 프레임의 프레임 중요도 점수에 영향을 미치게끔 긍정적 바이어스를 적용하도록 구성될 수 있다.
다른 예에서, 중요도 계산 모듈(218)은 다음과 같이 비디오 파일에 대한 비디오 중요도 값을 생성할 수 있다:
Figure 112017003789425-pct00003
여기서, w i 는 가중치이고, F i 는 특징들이다. 가중치는 특징들의 중요도를 좌지우지할 수 있다. 예를 들어, 시청자가 밝은 비디오를 선호하고, F 2 가 이 특성과 상관된 특징인 경우, 중요도 계산 모듈(218)은 다른 특징들에 대한 가중치보다 더 높은 값을 w 2 에 할당하도록 구성될 수 있다. 이러한 바이어싱은 다른 시나리오들에서 적용될 수 있다. 추가적인 예에서, 시청자가 특정 개인을 보여주는 비디오 파일들을 우선적으로 선택하기를 원한다면, 시청자는 특정 개인의 얼굴을 보여주는 프레임들을 바이어싱하여 그러한 비디오 프레임들의 비디오 프레임 중요도 점수를 높이도록 중요도 계산 모듈(218)을 구성할 수 있다. 다양한 실시예들에서, 중요도 계산 모듈(218)은 비디오 파일에 대한 특징 값들{F1, F2, Fn }을 데이터 저장소(226) 내에 저장할 수 있다. 비디오 파일에 대한 특징 값들의 저장은 상이한 특징들이 바이어싱되는 시나리오들에서 비디오 파일의 미래의 중복 분석을 제거할 수 있다.
적어도 하나의 다른 실시예에서, 중요도 계산 모듈(218)은 비디오 프레임에서 나타난 특징에 대해 부정적 바이어스를 적용하도록 구성될 수 있다. 예를 들어, 비디오 프레임의 비디오 프레임 중요도 점수를 흔들림에 비례하여 낮추도록 흔들림의 양에 비례하는 부정적 바이어스가 중요도 계산 모듈(218)에 의해 구현될 수 있다.
비디오 세분화 모듈(220)은 중요도에 기초하여 비디오 파일을 다수의 비디오 섹션들로 세분화할 수 있다. 일부 실시예들에서, 비디오 세분화 모듈(220)은 비디오 파일의 지속 시간보다 짧은 지속 시간 t를 갖는 비디오 섹션을 발견할 수 있다. 이러한 실시예들에서, 비디오 세분화 모듈(220)은 비디오 파일의 (t * 프레임율)개의 비디오 프레임들을 갖는 윈도우에서 비디오 프레임들의 프레임 중요도 점수들의 합계인 윈도우 질량을 계산할 수 있다. 이러한 윈도우 질량은 비디오 파일의 모든 비디오 프레임들에 대해 시프트 방식으로 연속적으로 계산될 수 있다. 따라서, 비디오 세분화 모듈(220)은 가장 높은 윈도우 질량을 갖는 비디오 프레임을 길이가 t초인 중요 비디오 섹션의 중심으로서 선택할 수 있다. 다른 실시예들에서, 비디오 세분화 모듈(220)은 모션 데이터에 기초하여 비디오 파일을 비디오 섹션들로 세분화하기 위해 모션 분석 모듈(216)에 의존할 수 있다. 비디오 세분화 모듈(220)이 비디오 파일을 비디오 섹션들로 세분화하면, 중요도 계산 모듈(218)은 전체 비디오 파일들에 대해서와 유사한 방식으로 각각의 비디오 섹션에 대한 섹션 중요도 값을 생성할 수 있다. 달리 말하면, 중요도 계산 모듈(218)은 비디오 섹션 내의 비디오 프레임들의 정규화된 프레임 중요도 점수들에 기초하여 섹션 중요도 값을 생성할 수 있다. 일부 경우들에서, 중요도 계산 모듈(218)은 또한 비디오 섹션들의 섹션 중요도 값들의 생성 동안에 하나 이상의 특징 점수들에 바이어싱을 적용할 수 있다.
다양한 실시예들에서, 저레벨 분석 모듈(212), 고레벨 분석 모듈(214), 및 중요도 계산 모듈(218) 각각은 점수, 값, 및 연관된 메타데이터로서 비디오 섹션들 및/또는 비디오 파일들에 대해 획득되는 다른 정보를 데이터 저장소(226) 내에 저장할 수 있다. 이러한 메타데이터는 날짜, 위치, 온라인 공유 회수 등과 같은 비디오 파일들과 관련된 다른 메타데이터와 결합될 수 있다.
비디오 등급화 모듈(222)은 비디오 섹션들의 섹션 중요도 값들에 기초하여 비디오 파일의 비디오 섹션들을 등급화할 수 있다. 대안적으로 또는 동시에, 비디오 등급화 모듈(222)은 비디오 파일들의 비디오 중요도 값들에 따라 비디오 파일들을 등급화할 수 있다. 등급은 가장 중요한 것에서부터 가장 중요하지 않은 것까지로 취해질 수 있거나, 또는 그 반대일 수 있다. 각각의 등급화된 비디오 파일에 대해, 비디오 등급화 모듈(222)은 또한 등급화된 비디오 파일 내의 비디오 섹션들에 관한 메타데이터를 저장할 수 있다. 이러한 메타데이터는 각각의 비디오 섹션의 등급, 각각의 비디오 섹션의 시작 및 종료 시간, 각각의 비디오 섹션의 지속 시간, 및 각각의 비디오 섹션의 섹션 중요도 값을 포함할 수 있다. 일부 실시예들에서, 비디오 등급화 모듈(222)은 또한 비디오 파일 또는 비디오 섹션에 대한 추가적인 값들을 계산할 수 있다. 이러한 값들은, 비디오 파일 또는 비디오 섹션 내에서의, 중요도 점수 임계치를 초과하는 중요도 점수를 갖는 비디오 프레임들의 백분율을 반영하는 중요도 밀도를 포함할 수 있다. 이러한 값들은, 비디오 파일 또는 비디오 섹션 내에서의, 대응하는 임계치를 초과하는 부정적 또는 긍정적 특징들을 갖는 프레임들의 백분율을 반영할 수 있는 퀄리티 밀도를 포함할 수 있다. 이러한 부정적 또는 긍정적 특징들은 흔들림, 과다 노출, 과소 노출 등을 포함할 수 있다. 비디오 등급화 모듈(222)은 개별 비디오 파일들 및/또는 비디오 섹션들에 대한 등급화를 생성하는데 사용되는 여러 유형들의 점수들 및 다른 계산된 값들을 연관된 메타데이터로서 데이터 저장소(226) 내에 저장할 수 있다.
비디오 파일들 또는 비디오 섹션들의 세트가 등급화되면, 비디오 등급화 모듈(222)은 등급화된 비디오 파일들 또는 비디오 섹션들의 섬네일 이미지 표현들을 디스플레이할 수 있다. 따라서, 섬네일 이미지 표현의 선택은 공유 및/또는 편집을 위한 대응하는 비디오 섹션을 제공하기 위해 미디어 플레이어(122)가 대응하는 비디오 섹션 또는 다른 애플리케이션들을 재생하게 할 수 있다.
사용자 인터페이스 모듈(224)은 인터페이스(204)를 통해 비디오 분석 엔진(102)의 모듈들과의 사용자 상호작용을 가능하게 할 수 있다. 예를 들어, 사용자 인터페이스 모듈(224)은 사용자로 하여금 중요도 분석을 위한 비디오 파일들을 선택하고, 비디오 파일들에서 식별된 사람 얼굴들을 정보로 태그표시하고, 긍정적 특징 점수 바이어싱을 위해 사람의 얼굴들을 하이라이트화하고, 및/또는 섬네일 이미지 표현들을 통해 미디어 플레이어(122)에 의한 재생을 위한 비디오 파일들 및 비디오 섹션들을 선택하게 할 수 있다. 일부 실시예들에서, 사용자는 또한 사용자 인터페이스 모듈(224)을 사용하여 비디오 분석 엔진(102)에 의한 분석을 위한 비디오 파일의 하나 이상의 저레벨 특징들 또는 하나 이상의 고레벨 특징들을 선택할 수 있다.
데이터 저장소(226)는 다양한 모듈들에 의해 사용되는 데이터를 저장할 수 있다. 적어도 일부 실시예들에서, 데이터 저장소(226)는 비디오 파일들(228), 등급화된 비디오 파일들(230), 등급화된 비디오 섹션들(232), 및/또는 등급화된 비디오 파일들(230) 및 등급화된 비디오 섹션들(232)과 연관된 메타데이터(234)를 저장할 수 있다. 다른 실시예들에서, 데이터 저장소(226)는 비디오 파일들 및 비디오 섹션들을 등급화하는데 사용되는 비디오 파일들 또는 비디오 섹션들과 연관된 데이터(예를 들어, 중요도 점수)를 저장할 수 있다. 데이터 저장소(226)는 호모그래피 변환 매트릭스, 특징 점수, 비디오 중요도 값, 섹션 중요도 값 등과 같은, 모듈들에 의해 생성된 추가적인 제품들 및 값들을 더 저장할 수 있다.
일부 실시예들에서, 하나 이상의 추가적인 애플리케이션들이 컴퓨팅 디바이스(104) 상에 설치될 수 있다. 이러한 애플리케이션들은 오리지널 비디오 파일의 선택적 비디오 섹션들로부터 새로운 비디오 파일을 컴파일하는데 사용되는 비디오 편집 애플리케이션을 포함할 수 있다. 예를 들어, 이러한 비디오 편집 애플리케이션은 하이라이트 비디오 파일을 생성하기 위해 특정 점수 임계치를 초과하는 섹션 중요도 값들을 갖는, 디지털 방식으로 함께 결합될 비디오 섹션들을 사용자가 선택할 수 있게 할 수 있다. 애플리케이션들은 또한 사용자가 비디오 파일, 비디오 섹션, 또는 하이라이트 비디오를 온라인 상에 포스팅할 수 있게 하는 온라인 공유 애플리케이션을 포함할 수 있다. 추가적인 실시예들에서, 하나 이상의 다른 애플리케이션들이 컴퓨팅 디바이스(104) 상에 설치되어 애플리케이션 인터페이스를 통해 비디오 파일들 및 비디오 섹션들에 대해 데이터 저장소(226)에 저장된 데이터에 액세스할 수 있다. 이러한 애플리케이션은 다른 방법으로 분석 결과를 사용하기 위해 데이터에 액세스할 수 있다. 달리 말하면, 비디오 분석 엔진(102)은 이들 애플리케이션들에 데이터를 제공하기 위해 저레벨 서비스로서 기능할 수 있다.
예시적인 프로세스들
도 4 내지 도 7은 비디오 파일들의 규칙 기반 중요도 분석을 수행하기 위한 다양한 예시적인 프로세스들을 설명한다. 각각의 예시적인 프로세스에서 동작들을 설명하는 순서는 제한적 사항으로서 해석되고자 하는 의도는 없으며, 각각의 프로세스를 이행하기 위해 설명한 동작들 중의 임의의 개수의 동작들은 임의적인 순서로 및/또는 병렬적으로 결합될 수 있다. 또한, 도 4 내지 도 7 각각에서의 동작들은 하드웨어, 소프트웨어, 및/또는 이들의 조합으로 이행될 수 있다. 소프트웨어의 환경에서, 본 동작들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들이 언급한 동작들을 수행하게 하도록 하는 컴퓨터로 실행가능한 명령어들을 나타낸다. 일반적으로, 컴퓨터로 실행가능한 명령어들은 특정 기능들이 수행되게 하거나 또는 특정 추상적 데이터 유형들이 구현되게 하는, 루틴들, 프로그램들, 오브젝트들, 컴포넌트들, 데이터 구조들 등을 포함한다.
도 4는 비디오 섹션들의 중요도에 기초하여 비디오 파일의 비디오 섹션들을 등급화하기 위해 규칙 기반 비디오 분석을 사용하여 비디오 파일 내 특징들을 분석하기 위한 예시적인 프로세스(400)를 나타내는 흐름도이다. 블록(402)에서, 비디오 분석 엔진(102)은 비디오 프레임 및 비디오 프레임과 관련된 오디오 데이터를 획득하기 위해 비디오 파일(108(1))과 같은 비디오 파일을 디코딩할 수 있다. 비디오 디코더 모듈(210)은 H.264, MPEG-2, MPEG-4 등과 같은 비디오 파일들을 디코딩하기 위해 다양한 코덱들을 사용할 수 있다. 관련 오디오 데이터는 비디오 프레임과 동일한 지속 시간, 예를 들어, 1/30초 또는 1/60초를 가질 수 있다. 그러나, 일부 실시예들에서, 비디오 디코더 모듈(210)은 관련 오디오 데이터를 획득하지 않고서 비디오 프레임을 획득하도록 구성되거나 또는 그 반대로 구성될 수 있다.
블록(404)에서, 비디오 분석 엔진(102)은 비디오 프레임의 비디오 특징들 또는 오디오 데이터의 오디오 특징들 중 적어도 하나를 분석하여 특징 점수들을 획득할 수 있다. 비디오 분석 엔진(102)은 하나 이상의 지역적 규칙들에 기초하여 이러한 분석을 수행할 수 있다. 다양한 실시예들에서, 분석되는 하나 이상의 특징들은 고레벨 특징들 및/또는 저레벨 특징들을 포함할 수 있다. 예를 들어, 저레벨 특징들은 비디오 프레임들의 흔들림, 노출 퀄리티, 채도 퀄리티, 평균 밝기, 색상 엔트로피, 및/또는 비디오 프레임들 간의 히스토그램 차이들과 같은 특징들을 포함할 수 있다. 고레벨 특징들은 비디오 프레임들에서 검출된 얼굴들의 수량, 위치, 및/또는 얼굴 특징들과 같은 특징들을 포함할 수 있다.
블록(406)에서, 비디오 분석 엔진(102)은 비디오 프레임에 대한 특징 점수들을 비디오 프레임에 대한 메타데이터로서 저장할 수 있다. 다양한 실시예들에서, 비디오 분석 엔진(102)은 데이터 저장소(226) 내에 메타데이터를 저장할 수 있다. 그러한 메타데이터는, 동일한 비디오 프레임들을 포함하는 대응하는 비디오 파일들 또는 비디오 섹션들의 중요도의 추후 결정 동안에 비디오 프레임들의 반복적인 분석을 감소시키거나 제거할 수 있다.
결정 블록(408)에서, 비디오 분석 엔진(102)은 분석할 비디오 파일의 추가적인 프레임들이 있는지 여부를 결정할 수 있다. 달리 말하면, 비디오 분석 엔진(102)은 비디오 파일의 모든 비디오 프레임들 및 관련 오디오 데이터가 디코딩되었는지 여부를 결정할 수 있다. 분석할 추가적인 프레임들이 있다고 비디오 분석 엔진(102)이 결정하면(결정 블록(408)에서 "예"), 프로세스(400)는 블록(402)으로 되돌아갈 수 있다. 블록(402)에서, 비디오 분석 엔진(102)은 비디오 파일로부터 후속 비디오 프레임 및 관련 데이터를 획득할 수 있다. 그러나, 결정 블록(408)에서 비디오 파일의 추가적인 비디오 프레임들이 분석되지 않을 것이라고 비디오 분석 엔진(102)이 결정하면(결정 블록(408)에서 "아니오"), 프로세스(400)는 블록(410)으로 진행할 수 있다.
블록(410)에서, 비디오 분석 엔진(102)은 적어도 하나의 전역적 규칙을 하나 이상의 특징 결과에 적용할 수 있다. 예를 들어, 그룹 중요도 점수가 가장 높은 그룹에서 얼굴이 나타나는 사람은 주인공으로서 간주될 수 있다. 이러한 정보에 기초하여, 고레벨 분석 모듈(214)은 비디오 프레임들에 전역적 규칙을 적용하여, 주인공을 보여주는 비디오 프레임들의 얼굴 중요도 점수들을 더 평가할 수 있다.
블록(412)에서, 비디오 분석 엔진(102)은 비디오 파일의 각각의 비디오 프레임에 대한 모든 특징 점수들을 결합하여 각각의 비디오 프레임에 대한 대응하는 프레임 중요도 점수를 도출할 수 있다. 예를 들어, 비디오 분석 엔진(102)은 각각의 비디오 프레임에 대한 프레임 중요도 점수를 획득하기 위해 각각의 비디오 프레임에 대한 정규화된 특징 점수들의 세트를 평균화할 수 있다.
블록(414)에서, 비디오 분석 엔진(102)은 비디오 파일에 대한 메타데이터를 저장할 수 있다. 메타데이터는 비디오 파일의 비디오 프레임들의 비디오 프레임 중요도 점수 및/또는 각각의 비디오 프레임에 대한 특징 점수들을 포함할 수 있다.
블록(416)에서, 비디오 분석 엔진(102)은 비디오 프레임들의 비디오 프레임 중요도 점수들에 기초하여 비디오 파일을 비디오 섹션들로 세분화할 수 있다. 일부 실시예에서, 비디오 분석 엔진(102)은 비디오 파일을 비디오 섹션으로 세분화하기 위해 윈도우 질량의 계산을 사용할 수 있다. 다른 실시예들에서, 비디오 분석 엔진(102)은 비디오 파일을 비디오 섹션들로 세분화하기 위해 비디오 파일에서 캡처된 모션 데이터의 줌 및 수직 병진이동 모션들에 대해 제로 크로싱을 사용할 수 있다.
블록(418)에서, 비디오 분석 엔진(102)은 비디오 파일의 각각의 비디오 섹션에 대한 섹션 중요도 값을 계산할 수 있다. 다양한 실시예들에서, 비디오 분석 엔진(102)은 비디오 섹션 내의 비디오 프레임들의 정규화된 프레임 중요도 점수들에 기초하여 섹션 중요도 값을 생성할 수 있다. 일부 경우들에서, 중요도 계산 모듈(218)은 또한 비디오 섹션들의 섹션 중요도 값들의 생성 동안에 하나 이상의 특징 점수들에 바이어싱을 적용할 수 있다.
블록(420)에서, 비디오 분석 엔진(102)은 비디오 섹션들의 섹션 중요도 값들에 따라 비디오 섹션들을 등급화할 수 있다. 예를 들어, 비디오 섹션들은 중요도가 가장 높은 것부터 중요도가 가장 낮은 것으로, 또는 그 반대로 등급화될 수 있다. 비디오 섹션들이 등급화되면, 비디오 분석 엔진(102)은 비디오 섹션들의 섬네일 이미지 표현들을 디스플레이할 수 있다. 섬네일 이미지 표현의 선택은 공유 및/또는 편집을 위한 대응하는 비디오 섹션을 제공하기 위해 미디어 플레이어(122)가 대응하는 비디오 섹션 또는 다른 애플리케이션들을 재생하게 할 수 있다. 대안적으로, 비디오 분석 엔진(102)은, 애플리케이션이 등급화된 비디오 섹션들의 섬네일 표현들을 디스플레이할 수 있도록, 등급 데이터를 다른 애플리케이션에 제공할 수 있다.
도 5는 비디오 파일들의 중요도에 기초하여 비디오 파일들을 등급화하기 위해 규칙 기반 비디오 분석을 사용하여 비디오 파일들의 특징들을 분석하기 위한 예시적인 프로세스(500)를 나타내는 흐름도이다. 블록(502)에서, 비디오 분석 엔진(102)은 비디오 컬렉션(106)과 같은, 비디오 파일들의 컬렉션으로부터 비디오 파일을 획득할 수 있다. 다양한 실시예들에서, 비디오 분석 엔진(102)은 사용자로부터의 선택 입력에 기초하여 비디오 파일을 획득할 수 있다.
블록(504)에서, 비디오 분석 엔진(102)은 비디오 파일 내의 비디오 프레임들의 비디오 프레임 중요도 점수들에 기초하여 비디오 파일에 대한 비디오 중요도 값을 계산할 수 있다. 비디오 분석 엔진(102)은 도 4에서 도시된 프로세스(400)의 블록들(402~412)에서 설명된 바와 같이 비디오 파일에 대한 각각의 프레임 중요도 점수를 계산할 수 있다. 다양한 실시예들에서, 비디오 분석 엔진(102)은 비디오 프레임 중요도 점수들을 평균화하여 비디오 파일에 대한 비디오 중요도 값을 도출할 수 있다. 대안적인 실시예들에서, 비디오 분석 엔진(102)은 비디오 파일에 대한 중요도 값을 도출하기 위해 가장 높은 중요도를 갖는 비디오 파일의 하나 이상의 비디오 섹션들의 비디오 프레임 중요도 점수들을 평균화하도록 구성될 수 있다. 일부 실시예들에서, 비디오 파일에 대한 비디오 중요도 값의 계산은 또한 프레임들과 관련된 하나 이상의 중요도 점수들의 바이어싱을 포함할 수 있다.
결정 블록(506)에서, 비디오 분석 엔진(102)은 추가적인 비디오 파일들이 분석되어야 하는지를 결정할 수 있다. 비디오 분석 엔진(102)은 사용자로부터 수신된 선택 입력에 기초하여 이러한 결정을 할 수 있다. 분석할 추가적인 비디오 파일들이 있다고 비디오 분석 엔진(102)이 결정하면(결정 블록(506)에서 "예"), 프로세스(500)는 블록(502)으로 되돌아갈 수 있다. 블록(502)에서, 비디오 분석 엔진(102)은 추가적인 분석을 위해 비디오 파일들의 컬렉션으로부터 다른 비디오 파일을 획득할 수 있다.
그러나, 분석할 추가적인 비디오 파일들이 없다고 비디오 분석 엔진(102)이 결정하면(결정 블록(506)에서 "아니오"), 프로세스(500)는 블록(508)으로 진행할 수 있다. 블록(508)에서, 비디오 분석 엔진(102)은 대응하는 비디오 중요도 값들에 기초하여 분석된 비디오 파일을 등급화할 수 있다. 예를 들어, 비디오 파일들은 중요도가 가장 높은 것부터 중요도가 가장 낮은 것으로, 또는 그 반대로 등급화될 수 있다. 비디오 파일들이 등급화되면, 비디오 분석 엔진(102)은 비디오 파일들의 섬네일 이미지 표현들을 디스플레이할 수 있으며, 여기서 섬네일 이미지 표현의 선택은 미디어 플레이어(122)로 하여금, 공유 및/또는 편집을 위한 대응하는 비디오 섹션을 제공하기 위해, 대응하는 비디오 파일, 또는 다른 애플리케이션들을 재생하게 할 수 있다. 대안적으로, 비디오 분석 엔진(102)은, 애플리케이션이 등급화된 비디오 파일들의 섬네일 표현들을 디스플레이할 수 있도록, 등급 데이터를 다른 애플리케이션에 제공할 수 있다.
일부 실시예들에서, 비디오 분석 엔진(102)은 초기에 비디오 프레임들의 고레벨 특징들에 대해 획득된 특징 점수들에 기초하여 비디오 파일들 및/또는 비디오 파일의 비디오 섹션들을 등급화하려고 시도할 수 있다. 이러한 실시예들에서, 비디오 분석 엔진(102)은 비디오 프레임들 내의 고레벨 특징들의 불충분한 존재로 인해 이러한 초기 시도가 실패할 때 등급들을 생성하기 위해 비디오 프레임들의 고레벨 특징들 및 저레벨 특징들 둘 다에 대한 특징 점수들을 획득하는 것에 의존할 수 있다.
도 6은 비디오 프레임에 대한 얼굴 중요도 점수를 계산하기 위한 예시적인 프로세스(600)를 나타내는 흐름도이다. 블록(602)에서, 고레벨 분석 모듈(214)은 비디오 프레임에 대해 얼굴 검출을 실행하여 하나 이상의 얼굴들을 검출할 수 있다. 검출된 얼굴은 비디오 프레임을 캡처한 카메라를 향해 있을 수 있거나 또는 카메라에 대해 옆으로 향해 있을 수 있다. 이 검출에 기초하여, 고레벨 분석 모듈(214)은 비디오 프레임 내의 얼굴들의 위치들, 각 얼굴에 의해 커버되는 비디오 프레임의 영역, 및 검출에 대한 신뢰도를 나타내는 각 얼굴에 대한 검출 신뢰도 점수를 갖는, 검출된 얼굴들의 리스트를 생성할 수 있다.
블록(604)에서, 고레벨 분석 모듈(214)은 하나 이상의 얼굴들을 추적하기 위해 얼굴 추적을 수행할 수 있다. 다양한 실시예들에서, 고레벨 분석 모듈(214)은 다수의 비디오 프레임들에 걸쳐 사람 얼굴들을 추적할 수 있다. 이러한 방식으로, 고레벨 분석 모듈(214)은 비디오 파일에 존재하는 얼굴들의 세트를 확인할 뿐만이 아니라, 각각의 얼굴이 비디오 파일에서 출현하는 빈도를 추적할 수 있다.
블록(606)에서, 고레벨 분석 모듈(214)은 얼굴 특징 기반 점수 바이어스가 비디오 프레임에 할당되어야 하는지 여부를 결정할 수 있다. 다양한 실시예들에서, 이러한 결정은 하나 이상의 얼굴 특징들이 비디오 프레임에서 존재하는지 또는 부재하는지 여부에 기초하여 이루어질 수 있다. 따라서, 얼굴 특징 기반 점수 바이어스가 할당되어야 한다고 고레벨 분석 모듈(214)이 결정하면(결정 블록(606)에서 "예"), 프로세스(600)는 블록(608)으로 진행할 수 있다. 하지만, 얼굴 특징 기반 점수 바이어스가 할당될 필요가 없다고 고레벨 분석 모듈(214)이 결정하면(결정 블록(606)에서 "아니오"), 프로세스(600)는 블록(610)으로 곧바로 진행할 수 있다.
블록(608)에서, 고레벨 분석 모듈(214)은 비디오 프레임 내의 적어도 하나의 얼굴의 얼굴 특징들에 기초하여 비디오 프레임에 점수 바이어스를 할당할 수 있다. 얼굴 특징들은 얼굴 크기, 얼굴 움직임, 및/또는 특정 얼굴 특징들(예를 들어, 웃거나 웃지 않음, 눈을 뜨거나 눈을 감음 등)의 존재 또는 부재를 포함할 수 있다. 예를 들어, 비디오 프레임 내에서 최소 크기 임계치보다 작거나 최대 크기 임계치보다 큰 크기를 갖는 얼굴은 고레벨 분석 모듈(214)에 의한 부정적 점수 바이어스의 할당을 초래할 수 있다. 다른 예에서, 중심에 더 가까이 있는 얼굴이 비디오 프레임에 대해 더 높은 중요도를 초래하도록(그 반대도 마찬가지임), 특정 개인의 얼굴을 보여주는 비디오 프레임의 중요도 점수는 축(예를 들어, x축 또는 y축)을 따라 비디오 프레임의 중심까지의 얼굴의 거리에 따라 긍정적으로 또는 부정적으로 바이어싱될 수 있다. 부정적 점수 바이어스는 비디오 프레임에 대한 얼굴 중요도 점수를 감소시키는 가중 인자일 수 있다. 추가적인 예에서, 고레벨 분석 모듈(214)은 웃고 있는 얼굴 및/또는 눈을 뜨고 있는 얼굴 각각에 대해 긍정적 점수 바이어스를 할당할 수 있다.
블록(610)에서, 고레벨 분석 모듈(214)은 적어도 하나의 얼굴에 대한 얼굴 인식 또는 얼굴 그룹화 중 적어도 하나를 실행할 수 있다. 얼굴 그룹화에서, 고레벨 분석 모듈(214)은 추적되는 얼굴들을 그룹화하여, 상이한 비디오 프레임들 상에서 검출된 얼굴들이 동일한 사람에 속하는지 여부를 결정할 수 있다. 얼굴 인식에서, 고레벨 분석 모듈(214)은 얼굴 인식 알고리즘을 이용하여 비디오 프레임 내에서 검출된 각각의 사람 얼굴을 알려진 개인 아이덴티티에 매칭시킬 수 있다.
블록(612)에서, 고레벨 분석 모듈(214)은 얼굴 추적 데이터 또는 얼굴 인식 데이터 중 적어도 하나에 기초하여 하나 이상의 주인공들을 식별할 수 있다. 예를 들어, 각각의 그룹 내의 얼굴들의 수는 비디오 파일 내의 얼굴의 출현율에 정비례한다. 또한, 출현율이 높다는 것은 해당 얼굴을 가진 사람의 중요도가 높거나, 그 반대일 수 있다는 것을 나타낸다. 따라서, 얼굴 수가 가장 많은 그룹에 속하는 얼굴은 주인공에 속하는 것으로서 고레벨 분석 모듈(214)에 의해 결정될 수 있다. 다른 예에서, 주인공에 속하는 것으로서 지정된 얼굴이 얼굴 인식 알고리즘에 의해 비디오 프레임에서 존재하는 것으로서 검출될 때 주인공이 식별될 수 있다.
블록(614)에서, 고레벨 분석 모듈(214)은 비디오 프레임 내의 주인공의 각각의 존재에 대해 비디오 프레임에 대해 긍정적 점수 바이어스를 할당할 수 있다. 긍정적 특징 점수는 비디오 프레임에 대해 계산된 얼굴 중요도 점수를 상승시킬 수 있다. 긍정적 점수 바이어스는 비디오 프레임에 대한 얼굴 중요도 점수를 증가시키는 가중 인자일 수 있다.
블록(616)에서, 고레벨 분석 모듈(214)은 비디오 프레임에 대한 얼굴 중요도 점수를 계산할 수 있다. 얼굴 중요도 점수는 비디오 프레임 내의 각각의 얼굴의 크기 및/또는 움직임에 비례하여 계산될 수 있다. 얼굴 중요도 점수의 계산은 긍정적 및/또는 부정적 점수 바이어스들에 기초하여 계산될 수 있다.
도 7은 특징점들의 움직임을 분석함으로써 비디오 내의 중요한 섹션들을 결정하기 위한 예시적인 프로세스(700)를 나타내는 흐름도이다. 블록(702)에서, 모션 분석 모듈(216)은 비디오 파일(108(1))과 같은, 비디오 파일의 비디오 프레임을 획득할 수 있다. 비디오 디코더 모듈(210)은 모션 분석 모듈(216)에 의한 분석을 위해 비디오 파일로부터 비디오 프레임을 디코딩할 수 있다.
결정 블록(704)에서, 모션 분석 모듈(216)은 비디오 파일의 끝에 도달했는지의 여부를 결정할 수 있다. 비디오 파일의 끝에 도달되지 않았다고 모션 분석 모듈(216)이 결정하면(결정 블록(704)에서 "아니오"), 프로세스(700)는 블록(706)으로 계속될 수 있다.
블록(706)에서, 모션 분석 모듈(216)은 비디오 프레임 내의 특징점들을 검출할 수 있다. 다양한 실시예들에서, 모션 분석 모듈(216)은 비디오 프레임을 다운 샘플링하고 더 작은 치수의 다운 샘플링된 이미지들의 피라미드를 생성할 수 있다. 그 후, 다운 샘플링된 이미지들은 모션 분석 모듈(216)에 의해 비교되어 다운 샘플링된 이미지들 사이의 공통점들(즉, 특징점들)을 결정한다.
결정 블록(708)에서, 모션 분석 모듈(216)은 비디오 프레임이 비디오 파일의 첫번째 비디오 프레임인지 여부를 결정할 수 있다. 따라서, 비디오 프레임이 첫번째 비디오 프레임이라고 모션 분석 모듈(216)이 결정하면(결정 블록(708)에서 "예"), 프로세스(700)는 블록(702)으로 되돌아갈 수 있다. 블록(702)으로 되돌아가면, 모션 분석 모듈(216)은 비디오 파일의 다른 비디오 프레임을 획득할 수 있다. 그러나, 비디오 프레임이 비디오의 첫번째 비디오 프레임이 아니라고 모션 분석 모듈(216)이 결정하면(결정 블록(708)에서 "아니오"), 프로세스(700)는 블록(710)으로 진행할 수 있다.
블록(710)에서, 모션 분석 모듈(216)은 비디오 프레임 내의 특징점들을 비디오 파일의 선행하는 비디오 프레임 내의 특징점들의 추가적인 세트와 일치시킬 수 있다. 다양한 실시예들에서, 모션 분석 모듈(216)은 최대 개수의 특징점들이 일치되도록 두 개의 인접한 프레임들을 정렬시키는 변환을 결정함으로써 일치를 수행할 수 있다. 적어도 하나의 실시예에서, 이 변환은 견고한 파라미터 추정의 구현예인 기하학적 일치를 사용하여 수행될 수 있다.
블록(712)에서, 모션 분석 모듈(216)은 비디오 프레임들 간의 특징점들의 움직임을 기술하는 호모그래피 변환 매트릭스를 계산할 수 있다. 적어도 일부 실시예들에서, 모션 분석 모듈(216)은 호모그래피 변환 매트릭스를 획득하기 위해 랜덤 샘플링 및 컨센서스(RANSAC) 알고리즘을 사용할 수 있다.
블록(714)에서, 모션 분석 모듈(216)은 호모그래피 변환 매트릭스로부터 비디오 프레임에 대한 모션 데이터를 계산할 수 있다. 다양한 실시예들에서, 모션 분석 모듈(216)은 호모그래피 변환 매트릭스를 사용하여 줌잉 및 수직 병진이동 성분들의 크기 및 방향을 추출할 수 있다. 이러한 크기와 방향은 인접한 두 개의 프레임들에서 기록된 카메라의 의도적인 움직임을 나타낸다. 이어서, 프로세스(700)는 블록(702)으로 되돌아가서, 모션 분석 모듈(216)은 프로세싱을 위해 비디오 파일의 다른 비디오 프레임을 획득할 수 있다.
결정 블록(704)로 돌아가서, 비디오 파일의 끝에 도달하였다고 모션 분석 모듈(216)이 결정하면(결정 블록(704)에서 "예"), 프로세스(700)는 블록(716)으로 계속될 수 있다. 블록(716)에서, 모션 분석 모듈(216)은 비디오 프레임들의 모션 데이터에 대한 이동 평균 및 각각의 비디오 프레임에 대한 프레임 움직임 흔들림을 계산할 수 있다. 비디오 파일의 하나 이상의 비디오 프레임들의 모션 데이터는 이러한 계산 전에 결합될 수 있다. 다양한 실시예들에서, 모션 분석 모듈(216)은 비디오 프레임들의 움직임 벡터들의 모션 데이터 이동 평균을 계산함으로써 비디오 프레임들을 기록한 카메라의 흔들림 움직임을 결정할 수 있고, 모션 데이터 이동 평균으로부터 카메라의 의도적인 움직임을 뺄 수 있다. 모션 데이터 이동 평균의 계산은 지역적 분산을 억제하고 의도적인 움직임을 나타내는 장기적 경향을 보존한다.
블록(718)에서, 모션 분석 모듈(216)은 모션 데이터에 대한 지역적 피크(peak) 및 밸리(valley) 정보, 즉 지역적 맥시마 및 미니마를 찾기 위해 제로 크로싱 구역들을 확인할 수 있다. 지역적 피크 및 밸리 정보는 비디오 파일에 대한 장면 천이점들을 나타낼 수 있다.
블록(720)에서, 모션 분석 모듈(216)은 지역적 피크 및 밸리 정보에 기초하여 비디오 파일을 비디오 섹션들로 세분화할 수 있다. 또한, 모션 분석 모듈(216)은 각각의 비디오 섹션에 대한 줌 및 패닝 모션에 대한 크기들을 결합하고 평균화할 수 있다. 비디오 섹션에 대한 줌 및 패닝 모션의 크기들의 평균으로 표현되는 가속도는 모션 분석 모듈(216)에 의해 사용되어, 비디오 섹션에 모션 중요도 점수를 할당할 수 있다. 이어서, 모션 분석 모듈(216)은 가장 높은 모션 중요도 점수를 갖는 하나 이상의 비디오 섹션들을 비디오 파일의 중요 섹션들로서 지정할 수 있다.
본 명세서에서 설명된 기술들의 사용은 사용자에 대한 비디오 파일들의 중요도에 기초하여 사용자가 비디오 파일들을 등급화하는 것을 가능하게 할 수 있다. 이러한 등급화에 기초하여, 사용자는 어느 비디오 파일들을 유지하고 어느 비디오 파일들을 삭제할 것인지를 결정할 수 있다. 일부 경우들에서, 사용자는 또한 비디오 파일들의 등급을 사용하여 특정 비디오 파일들을 온라인 공유 웹사이트 상에 포스팅할지 여부를 결정할 수 있다. 본 명세서에서 설명된 기술들은 또한, 사용자가 비디오 파일의 흥미로운 부분들을 한 눈에 알아볼 수 있도록, 비디오 파일의 중요 섹션들을 나타내는 섬네일 이미지 표현들을 제공할 수 있다. 이러한 정보는 사용자가 비디오 파일을 편집하여 콘텐츠 퀄리티를 향상시키거나 또는 비디오 파일의 특정 섹션들을 하이라이트화하는 데에 도움을 줄 수 있다.
결론
마무리를 하면, 다양한 실시예들을 구조적 특징들 및/또는 방법론적 동작들에 특유적인 언어로 설명하였지만, 첨부된 표현물들에서 정의된 발명내용은 설명된 특정한 특징들 또는 동작들로 반드시 제한될 필요는 없다는 것을 이해하여야 한다. 이보다는, 이러한 특정한 특징들 및 동작들은 청구된 발명내용을 구현하는 예시적인 형태들로서 개시된 것이다.

Claims (20)

  1. 하나 이상의 프로세서로 하여금 동작들을 수행하게 하도록 실행가능한 컴퓨터 실행가능 명령어들이 저장되어 있는 하나 이상의 컴퓨터 저장 매체에 있어서, 상기 동작들은,
    비디오 프레임 또는 상기 비디오 프레임과 연관된 오디오 데이터 중 적어도 하나를 획득하기 위해 비디오 파일을 디코딩하는 동작;
    상기 비디오 프레임에 대한 하나 이상의 특징(feature) 점수를 획득하기 위해 지역적 규칙(local rule) 또는 전역적 규칙(global rule) 중 적어도 하나에 기초하여 상기 비디오 프레임 또는 상기 비디오 프레임과 연관된 상기 오디오 데이터 중 적어도 하나의 것의 하나 이상의 고레벨(high-level) 특징 - 상기 하나 이상의 고레벨 특징은 상기 비디오 프레임 내의 사람 얼굴의 움직임(movement) 또는 위치와 관련된 적어도 하나의 특징을 포함함 - 을 분석하는 동작;
    상기 비디오 프레임에 대한 프레임 중요도 점수를 도출하기 위해 상기 비디오 프레임의 상기 하나 이상의 특징 점수를 결합하는 동작; 및
    상기 비디오 프레임의 프레임 중요도 점수들 및 상기 비디오 파일의 추가적인 비디오 프레임들의 다른 프레임 중요도 점수들에 적어도 기초하여 상이한 섹션 중요도 값들의 비디오 섹션들로 상기 비디오 파일을 세분화(segment)하는 동작
    을 포함한 것인 하나 이상의 컴퓨터 저장 매체.
  2. 제1항에 있어서,
    상기 동작들은,
    상기 섹션 중요도 값들에 따라 상기 비디오 섹션들을 등급화(rank)하는 동작
    을 더 포함한 것인 하나 이상의 컴퓨터 저장 매체.
  3. 제1항에 있어서,
    상기 동작들은,
    상기 비디오 파일 내의 모든 비디오 프레임들의 프레임 중요도 점수들에 적어도 기초하여 상기 비디오 파일에 대한 비디오 중요도 값을 계산하는 동작; 및
    상기 비디오 파일의 비디오 중요도 값 및 추가적인 비디오 파일들의 다른 비디오 중요도 값들에 적어도 기초하여 상기 비디오 파일을 상기 추가적인 비디오 파일들에 대해 등급화하는 동작
    을 더 포함한 것인 하나 이상의 컴퓨터 저장 매체.
  4. 제3항에 있어서,
    상기 동작들은,
    상기 비디오 파일 내에 하나 이상의 비디오 프레임에 관한 메타데이터를 저장하는 동작
    을 더 포함하며,
    상기 메타데이터는 비디오 프레임의 하나 이상의 특징 점수를 포함한 것인 하나 이상의 컴퓨터 저장 매체.
  5. 제1항에 있어서,
    상기 지역적 규칙은 상기 비디오 프레임에 대한 특징 중요도의 할당에 영향을 미치고,
    상기 전역적 규칙은 상기 비디오 프레임을 포함하는 상기 비디오 파일 내의 다중 비디오 프레임들에 대한 특징 중요도의 할당에 영향을 미치는 것인 하나 이상의 컴퓨터 저장 매체.
  6. 제1항에 있어서,
    상기 하나 이상의 고레벨 특징은, 상기 비디오 프레임 내에서의 사람 얼굴의 위치, 다중 비디오 프레임들에 걸친 상기 사람 얼굴의 출현 빈도, 상기 비디오 프레임의 프레임 현저성(saliency), 상기 비디오 프레임과 연관된 상기 오디오 데이터의 오디오 전력(audio power), 또는 상기 비디오 프레임과 연관된 상기 오디오 데이터의 오디오 유형 중 적어도 하나를 포함한 것인 하나 이상의 컴퓨터 저장 매체.
  7. 제1항에 있어서,
    상기 분석하는 동작은 상기 비디오 프레임의 하나 이상의 저레벨(low-level) 특징을 분석하는 동작을 더 포함하며,
    상기 결합하는 동작은 상기 비디오 프레임에 대한 프레임 중요도 점수를 도출하기 위해 상기 비디오 프레임의 고레벨 특징들과 저레벨 특징들에 대한 특징 점수들을 결합하는 동작을 더 포함한 것인 하나 이상의 컴퓨터 저장 매체.
  8. 제6항에 있어서,
    상기 비디오 프레임의 프레임 현저성의 분석은,
    비디오 프레임들의 모션(motion) 데이터의 이동 평균(running average)을 계산하는 것;
    상기 비디오 프레임들의 흔들림 움직임을 결정하는 것;
    상기 흔들림 움직임을 상기 이동 평균에 포함시키는 것;
    상기 비디오 프레임들의 의도적인(intentional) 움직임을 결정하는 것; 및
    상기 이동 평균으로부터 상기 의도적인 움직임을 감산(subtract)하는 것
    을 포함한 것인 하나 이상의 컴퓨터 저장 매체.
  9. 제7항에 있어서,
    상기 하나 이상의 저레벨 특징은, 상기 비디오 프레임의 프레임 노출 퀄리티, 상기 비디오 프레임의 프레임 채도(saturation) 퀄리티, 상기 비디오 프레임의 프레임 색조(hue) 다양성, 상기 비디오 프레임의 프레임 흔들림(shakiness), 상기 비디오 프레임의 평균 밝기, 상기 비디오 프레임의 색상 엔트로피, 또는 상기 비디오 프레임과 이에 인접한 비디오 프레임 간의 히스토그램 차이 중 적어도 하나를 포함한 것인 하나 이상의 컴퓨터 저장 매체.
  10. 제1항에 있어서,
    상기 분석하는 동작은,
    하나 이상의 사람 얼굴을 검출하기 위해 상기 비디오 프레임에 대해 얼굴 검출을 실행하는 동작;
    상기 하나 이상의 사람 얼굴을 추적하기 위해 얼굴 추적을 실행하는 동작;
    상기 비디오 프레임 내의 적어도 하나의 사람 얼굴의 얼굴 크기, 얼굴 위치, 또는 하나 이상의 얼굴 특징에 적어도 기초하여 상기 비디오 프레임에 부정적 점수 바이어스 또는 긍정적 점수 바이어스를 할당하는 동작 - 상기 하나 이상의 얼굴 특징은 상기 적어도 하나의 사람 얼굴에서의 미소 또는 떠있는 눈 중 적어도 하나의 부재 또는 존재를 포함함 -;
    상기 하나 이상의 사람 얼굴 중 적어도 하나의 사람 얼굴에 대해 얼굴 인식 또는 얼굴 그룹화 중 적어도 하나를 실행하는 동작;
    얼굴 그룹화 데이터 또는 얼굴 인식 데이터 중 적어도 하나에 적어도 기초하여 하나 이상의 주인공을 식별하는 동작;
    상기 비디오 프레임 내의 주인공의 존재에 대해 추가적인 긍정적 점수 바이어스를 상기 비디오 프레임에 할당하는 동작; 및
    상기 부정적 점수 바이어스와 상기 긍정적 점수 바이어스를 고려하는 상기 비디오 프레임에 대한 얼굴 중요도 점수를 컴퓨팅하는 동작
    을 포함한 것인 하나 이상의 컴퓨터 저장 매체.
  11. 컴퓨터 구현 방법에 있어서,
    비디오 프레임 또는 상기 비디오 프레임과 연관된 오디오 데이터 중 적어도 하나를 획득하기 위해 비디오 파일을 디코딩하는 단계;
    상기 비디오 프레임에 대한 하나 이상의 특징 점수를 획득하기 위해 지역적 규칙 또는 전역적 규칙 중 적어도 하나에 기초하여 상기 비디오 프레임 또는 상기 비디오 프레임과 연관된 상기 오디오 데이터 중 적어도 하나의 것의 하나 이상의 특징을 분석하는 단계;
    상기 비디오 프레임에 대한 프레임 중요도 점수를 도출하기 위해 상기 비디오 프레임의 상기 하나 이상의 특징 점수를 결합하는 단계;
    상기 비디오 프레임의 프레임 중요도 점수들 및 상기 비디오 파일의 추가적인 비디오 프레임들의 다른 프레임 중요도 점수들에 적어도 기초하여 상기 비디오 파일에 대한 비디오 중요도 값을 계산하는 단계;
    상기 비디오 파일 내의 복수의 비디오 프레임들과 연관된 비디오 파일 데이터 내의 비디오 프레임들의 프레임 중요도 점수들에 적어도 기초하여 상기 비디오 파일을 상이한 섹션 중요도의 비디오 섹션들로 세분화하는 단계; 및
    상기 비디오 파일의 비디오 중요도 값들 및 추가적인 비디오 파일들의 다른 비디오 중요도 값들에 적어도 기초하여 상기 비디오 파일을 상기 추가적인 비디오 파일들에 대해 등급화하는 단계
    를 포함하는 컴퓨터 구현 방법.
  12. 제11항에 있어서,
    상기 지역적 규칙은 상기 비디오 프레임에 대한 특징 중요도의 할당에 영향을 미치고,
    상기 전역적 규칙은 상기 비디오 프레임을 포함하는 상기 비디오 파일 내의 다중 비디오 프레임들에 대한 특징 중요도의 할당에 영향을 미치는 것인 컴퓨터 구현 방법.
  13. 제11항에 있어서,
    상기 비디오 파일 내의 복수의 비디오 프레임들과 연관된 비디오 파일 데이터 내의 비디오 프레임들의 프레임 중요도 점수들에 적어도 기초하여 상기 비디오 파일을 세분화하는 단계는,
    상기 비디오 프레임의 다중 다운샘플링된 이미지들 사이의 공통점들을 검출함으로써 상기 비디오 파일의 상기 비디오 프레임 내의 특징점들을 검출하는 단계;
    상기 비디오 프레임 내의 특징점들을 상기 비디오 파일의 선행하는 비디오 프레임 내의 특징점들의 추가적인 세트와 일치시키는 단계;
    상기 비디오 프레임들 간의 특징점들의 움직임을 기술하는 호모그래피(homography) 변환 매트릭스를 계산하는 단계;
    상기 호모그래피 변환 매트릭스로부터 상기 비디오 프레임에 대한 모션 데이터 - 상기 모션 데이터는 상기 특징점들의 움직임의 줌잉(zooming) 및 수직 병진이동 성분들의 크기 및 방향을 포함함 - 를 컴퓨팅하는 단계;
    상기 비디오 프레임에 대한 상기 모션 데이터를 상기 비디오 파일 내의 하나 이상의 나머지 프레임에 대한 모션 데이터와 결합하는 단계;
    상기 비디오 파일 내의 상기 비디오 프레임들의 모션 데이터에 대한 이동 평균들을 계산하는 단계;
    상기 이동 평균들에 적어도 기초하여 상기 모션 데이터에 대한 지역적 피크(peak) 및 밸리(valley) 정보를 찾기 위해 제로 크로싱(zero crossing) 구역들을 확인하는 단계; 및
    상기 모션 데이터의 상기 지역적 피크 및 밸리 정보에 적어도 기초하여 상기 비디오 파일의 비디오 섹션들을 결정하는 단계
    를 포함한 것인 컴퓨터 구현 방법.
  14. 제11항에 있어서,
    상기 비디오 섹션들 내의 대응하는 비디오 프레임들의 프레임 중요도 점수들에 적어도 기초하여 상기 비디오 섹션들의 섹션 중요도 값들을 계산하는 단계; 및
    상기 섹션 중요도 값들에 따라 상기 비디오 섹션들을 등급화하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  15. 제11항에 있어서,
    상기 하나 이상의 특징은, 상기 비디오 프레임의 프레임 현저성, 상기 비디오 프레임과 연관된 상기 오디오 데이터의 오디오 전력, 상기 비디오 프레임과 연관된 상기 오디오 데이터의 오디오 유형, 상기 비디오 프레임의 프레임 노출 퀄리티, 상기 비디오 프레임의 프레임 채도 퀄리티, 상기 비디오 프레임의 프레임 색조 다양성, 상기 비디오 프레임의 프레임 흔들림, 상기 비디오 프레임의 평균 밝기, 상기 비디오 프레임의 색상 엔트로피, 또는 상기 비디오 프레임과 이에 인접한 비디오 프레임 간의 히스토그램 차이를 포함한 것인 컴퓨터 구현 방법.
  16. 제11항에 있어서,
    상기 분석하는 단계는,
    하나 이상의 사람 얼굴을 검출하기 위해 비디오 프레임에 대해 얼굴 검출을 실행하는 단계;
    상기 하나 이상의 사람 얼굴을 추적하기 위해 얼굴 추적을 실행하는 단계;
    상기 비디오 프레임 내의 적어도 하나의 사람 얼굴의 얼굴 크기, 얼굴 위치, 또는 하나 이상의 얼굴 특징에 적어도 기초하여 상기 비디오 프레임에 부정적 점수 바이어스 또는 긍정적 점수 바이어스를 할당하는 단계 - 상기 하나 이상의 얼굴 특징은 상기 적어도 하나의 사람 얼굴에서의 미소 또는 떠있는 눈 중 적어도 하나의 부재 또는 존재를 포함함 -;
    상기 하나 이상의 사람 얼굴 중 적어도 하나의 사람 얼굴에 대해 얼굴 인식 또는 얼굴 그룹화 중 적어도 하나를 실행하는 단계;
    적어도 얼굴 그룹화 데이터 또는 얼굴 인식 데이터 중 적어도 하나에 기초하여 하나 이상의 주인공을 식별하는 단계;
    상기 비디오 프레임 내의 주인공의 존재에 대해 긍정적 점수 바이어스를 상기 비디오 프레임에 할당하는 단계; 및
    상기 부정적 점수 바이어스와 상기 긍정적 점수 바이어스를 고려하는 상기 비디오 프레임에 대한 얼굴 중요도 점수를 컴퓨팅하는 단계
    를 포함한 것인 컴퓨터 구현 방법.
  17. 시스템에 있어서,
    하나 이상의 프로세서;
    복수의 동작들을 수행하기 위해 상기 하나 이상의 프로세서에 의해 실행가능한 복수의 컴퓨터 실행가능 컴포넌트들을 포함하는 메모리
    를 포함하고,
    상기 복수의 동작들은,
    비디오 프레임 또는 상기 비디오 프레임과 연관된 오디오 데이터 중 적어도 하나를 획득하기 위해 비디오 파일을 디코딩하는 동작;
    상기 비디오 프레임에 대한 하나 이상의 특징 점수를 획득하기 위해 지역적 규칙 또는 전역적 규칙 중 적어도 하나에 기초하여 상기 비디오 프레임 또는 상기 비디오 프레임과 연관된 상기 오디오 데이터 중 적어도 하나의 것의 하나 이상의 특징을 분석하는 동작 - 상기 지역적 규칙은 상기 비디오 프레임에 대한 특징 중요도의 할당에 영향을 미치고, 상기 전역적 규칙은 상기 비디오 프레임을 포함하는 상기 비디오 파일 내의 다중 비디오 프레임들에 대한 특징 중요도의 할당에 영향을 미침 -;
    상기 비디오 프레임에 대한 프레임 중요도 점수를 도출하기 위해 상기 비디오 프레임의 상기 하나 이상의 특징 점수를 결합하는 동작;
    상기 비디오 파일 내의 복수의 비디오 프레임들과 연관된, 상기 비디오 파일 내의 비디오 프레임들의 프레임 중요도 점수들에 적어도 기초하여 상기 비디오 파일을 상이한 섹션 중요도의 비디오 섹션들로 세분화하는 동작; 및
    상기 비디오 파일 내의 상기 비디오 프레임 및 추가적인 비디오 프레임들의 프레임 중요도 점수들에 적어도 기초하여 계산되는, 상기 비디오 섹션들의 섹션 중요도 값들에 따라 상기 비디오 섹션들을 등급화하는 동작
    을 포함한 것인 시스템.
  18. 제17항에 있어서,
    상기 복수의 동작들은,
    상기 비디오 파일 내의 상기 비디오 프레임들의 프레임 중요도 점수들에 적어도 기초하여 상기 비디오 파일에 대한 비디오 중요도 값을 계산하는 동작; 및
    상기 비디오 파일의 비디오 중요도 값 및 추가적인 비디오 파일들의 다른 비디오 중요도 값들에 적어도 기초하여 상기 비디오 파일을 상기 추가적인 비디오 파일들에 대해 등급화하는 동작
    을 더 포함한 것인 시스템.
  19. 제17항에 있어서,
    상기 비디오 파일을 세분화하는 동작은,
    상기 비디오 프레임의 다중 다운샘플링된 이미지들 사이의 공통점들을 검출함으로써 상기 비디오 파일의 상기 비디오 프레임 내의 특징점들을 검출하는 동작;
    상기 비디오 프레임 내의 특징점들을 상기 비디오 파일의 선행하는 비디오 프레임 내의 특징점들의 추가적인 세트와 일치시키는 동작;
    상기 비디오 프레임들 간의 특징점들의 움직임을 기술하는 호모그래피 변환 매트릭스를 계산하는 동작;
    상기 호모그래피 변환 매트릭스로부터 상기 비디오 프레임에 대한 모션 데이터 - 상기 모션 데이터는 상기 특징점들의 움직임의 줌잉 및 수직 병진이동 성분들의 크기 및 방향을 포함함 - 를 컴퓨팅하는 동작;
    상기 비디오 프레임에 대한 상기 모션 데이터를 상기 비디오 파일 내의 하나 이상의 나머지 프레임에 대한 모션 데이터와 결합하는 동작;
    상기 비디오 파일 내의 상기 비디오 프레임들의 모션 데이터에 대한 이동 평균들을 계산하는 동작;
    상기 이동 평균들에 적어도 기초하여 상기 모션 데이터에 대한 지역적 피크 및 밸리 정보를 찾기 위해 제로 크로싱 구역들을 확인하는 동작; 및
    상기 모션 데이터의 상기 지역적 피크 및 밸리 정보에 적어도 기초하여 상기 비디오 파일의 비디오 섹션들을 결정하는 동작
    을 포함한 것인 시스템.
  20. 제17항에 있어서,
    상기 복수의 동작들은,
    다중 비디오 섹션들을 상기 비디오 파일의 하이라이트(highlight) 비디오 파일로 결합하는 동작
    을 더 포함한 것인 시스템.
KR1020177000955A 2014-06-12 2015-06-10 규칙 기반 비디오 중요도 분석 KR102354692B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/303,466 US10664687B2 (en) 2014-06-12 2014-06-12 Rule-based video importance analysis
US14/303,466 2014-06-12
PCT/US2015/034992 WO2015191650A1 (en) 2014-06-12 2015-06-10 Rule-based video importance analysis

Publications (2)

Publication Number Publication Date
KR20170018042A KR20170018042A (ko) 2017-02-15
KR102354692B1 true KR102354692B1 (ko) 2022-01-21

Family

ID=53488465

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177000955A KR102354692B1 (ko) 2014-06-12 2015-06-10 규칙 기반 비디오 중요도 분석

Country Status (11)

Country Link
US (1) US10664687B2 (ko)
EP (1) EP3155557A1 (ko)
JP (1) JP6694829B2 (ko)
KR (1) KR102354692B1 (ko)
CN (1) CN106462744B (ko)
AU (1) AU2015274708B2 (ko)
BR (1) BR112016028586B1 (ko)
CA (1) CA2948529A1 (ko)
MX (1) MX2016016293A (ko)
RU (1) RU2693906C2 (ko)
WO (1) WO2015191650A1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016081856A1 (en) * 2014-11-21 2016-05-26 Whip Networks, Inc. Media management and sharing system
US9607224B2 (en) * 2015-05-14 2017-03-28 Google Inc. Entity based temporal segmentation of video streams
US9832484B2 (en) * 2015-05-20 2017-11-28 Texas Instruments Incorporated Still block detection in a video sequence
US9911202B2 (en) * 2015-08-24 2018-03-06 Disney Enterprises, Inc. Visual salience of online video as a predictor of success
US10602153B2 (en) 2015-09-11 2020-03-24 Facebook, Inc. Ultra-high video compression
US10499070B2 (en) 2015-09-11 2019-12-03 Facebook, Inc. Key frame placement for distributed video encoding
US10506235B2 (en) 2015-09-11 2019-12-10 Facebook, Inc. Distributed control of video encoding speeds
US10375156B2 (en) 2015-09-11 2019-08-06 Facebook, Inc. Using worker nodes in a distributed video encoding system
US10341561B2 (en) * 2015-09-11 2019-07-02 Facebook, Inc. Distributed image stabilization
US10602157B2 (en) 2015-09-11 2020-03-24 Facebook, Inc. Variable bitrate control for distributed video encoding
US10063872B2 (en) 2015-09-11 2018-08-28 Facebook, Inc. Segment based encoding of video
US10002435B2 (en) 2016-01-29 2018-06-19 Google Llc Detecting motion in images
CN108605092B (zh) * 2016-02-18 2020-06-26 Imint影像智能有限公司 用于视频处理的系统和方法
EP3440838A1 (en) * 2016-04-04 2019-02-13 Twitter, Inc. Live video classification and preview selection
US10402436B2 (en) * 2016-05-12 2019-09-03 Pixel Forensics, Inc. Automated video categorization, value determination and promotion/demotion via multi-attribute feature computation
US10347294B2 (en) 2016-06-30 2019-07-09 Google Llc Generating moving thumbnails for videos
WO2018017836A1 (en) 2016-07-21 2018-01-25 Twitter, Inc. Live video streaming services with machine-learning based highlight replays
JP6948787B2 (ja) * 2016-12-09 2021-10-13 キヤノン株式会社 情報処理装置、方法およびプログラム
JP6866142B2 (ja) * 2016-12-09 2021-04-28 キヤノン株式会社 プログラム、画像処理装置、および画像処理方法
US10734027B2 (en) * 2017-02-16 2020-08-04 Fusit, Inc. System and methods for concatenating video sequences using face detection
EP3396964B1 (en) 2017-04-25 2020-07-22 Accenture Global Solutions Ltd Dynamic content placement in a still image or a video
EP3396963B1 (en) 2017-04-25 2021-04-07 Accenture Global Solutions Limited Dynamic media content rendering
EP3396596B1 (en) * 2017-04-25 2020-08-19 Accenture Global Solutions Limited Heat ranking of media objects
US10409859B2 (en) * 2017-05-15 2019-09-10 Facebook, Inc. Video heat maps personalized for online system users
CN107437083B (zh) * 2017-08-16 2020-09-22 广西荷福智能科技有限公司 一种自适应池化的视频行为识别方法
CN107578000B (zh) * 2017-08-25 2023-10-31 百度在线网络技术(北京)有限公司 用于处理图像的方法及装置
CN110809797B (zh) * 2017-10-03 2022-11-15 谷歌有限责任公司 微视频系统、格式和生成方法
US10628486B2 (en) * 2017-11-15 2020-04-21 Google Llc Partitioning videos
EP3528196A1 (en) 2018-02-16 2019-08-21 Accenture Global Solutions Limited Dynamic content generation
CN108337535B (zh) * 2018-03-21 2020-12-29 广州视源电子科技股份有限公司 客户端视频的转发方法、装置、设备和存储介质
US10942816B1 (en) * 2018-09-06 2021-03-09 NortonLifeLock Inc. Systems and methods for dynamically adjusting a backup policy
EP3672256A1 (en) 2018-12-20 2020-06-24 Accenture Global Solutions Limited Dynamic media placement in video feed
US11514713B2 (en) * 2019-05-31 2022-11-29 Apple Inc. Face quality of captured images
CN110087145B (zh) * 2019-06-06 2020-04-21 北京字节跳动网络技术有限公司 用于处理视频的方法和装置
US11373407B2 (en) * 2019-10-25 2022-06-28 International Business Machines Corporation Attention generation
CN111125022A (zh) * 2019-11-15 2020-05-08 浙江大华技术股份有限公司 录像覆盖权重的确定方法、装置、设备和存储介质
WO2021174118A1 (en) * 2020-02-26 2021-09-02 Nvidia Corporation Object detection using image alignment for autonomous machine applications
CN114697700B (zh) * 2020-12-28 2024-07-16 北京小米移动软件有限公司 视频剪辑方法、视频剪辑装置及存储介质
CN112995676A (zh) * 2021-04-25 2021-06-18 北京金和网络股份有限公司 一种音视频压缩方法、装置、设备、系统及存储介质
US11917206B2 (en) 2021-12-17 2024-02-27 Lenovo (Singapore) Pte. Ltd. Video codec aware radio access network configuration and unequal error protection coding
US11824653B2 (en) 2021-12-17 2023-11-21 Lenovo (Singapore) Pte. Ltd. Radio access network configuration for video approximate semantic communications
US20240096102A1 (en) * 2022-09-17 2024-03-21 Nvidia Corporation Freespace detection using machine learning for autonomous systems and applications
CN115396622B (zh) * 2022-10-28 2023-03-24 广东电网有限责任公司中山供电局 一种低码率视频重构的电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100070523A1 (en) 2008-07-11 2010-03-18 Lior Delgo Apparatus and software system for and method of performing a visual-relevance-rank subsequent search
JP2011040860A (ja) 2009-08-07 2011-02-24 Nikon Corp 画像処理装置及び画像処理プログラム
US20140023348A1 (en) 2012-07-17 2014-01-23 HighlightCam, Inc. Method And System For Content Relevance Score Determination

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001160066A (ja) 1998-12-25 2001-06-12 Matsushita Electric Ind Co Ltd データ処理装置、データ処理方法および記録媒体、並びに該データ処理方法をコンピュータに実行させるためのプログラム
SE9902328A0 (sv) 1999-06-18 2000-12-19 Ericsson Telefon Ab L M Förfarande och system för att alstra sammanfattad video
EP1182584A3 (en) 2000-08-19 2005-12-28 Lg Electronics Inc. Method and apparatus for video skimming
US20020167537A1 (en) 2001-05-11 2002-11-14 Miroslav Trajkovic Motion-based tracking with pan-tilt-zoom camera
US7143352B2 (en) 2002-11-01 2006-11-28 Mitsubishi Electric Research Laboratories, Inc Blind summarization of video content
US7068823B2 (en) 2003-06-23 2006-06-27 Sony Pictures Entertainment Inc. Fingerprinting of data
US7738778B2 (en) 2003-06-30 2010-06-15 Ipg Electronics 503 Limited System and method for generating a multimedia summary of multimedia streams
JP4453976B2 (ja) 2004-03-30 2010-04-21 正彦 谷内田 画像生成装置、画像データ列生成システム、及び画像伝送システム
US9113147B2 (en) 2005-09-27 2015-08-18 Qualcomm Incorporated Scalability techniques based on content information
US20100005485A1 (en) 2005-12-19 2010-01-07 Agency For Science, Technology And Research Annotation of video footage and personalised video generation
US7836050B2 (en) 2006-01-25 2010-11-16 Microsoft Corporation Ranking content based on relevance and quality
KR100749045B1 (ko) * 2006-01-26 2007-08-13 삼성전자주식회사 음악 내용 요약본을 이용한 유사곡 검색 방법 및 그 장치
US7889794B2 (en) 2006-02-03 2011-02-15 Eastman Kodak Company Extracting key frame candidates from video clip
US20080019661A1 (en) 2006-07-18 2008-01-24 Pere Obrador Producing output video from multiple media sources including multiple video sources
US8200063B2 (en) 2007-09-24 2012-06-12 Fuji Xerox Co., Ltd. System and method for video summarization
JP2009118009A (ja) 2007-11-02 2009-05-28 Sony Corp 撮像装置、その制御方法およびプログラム
EP2112619B1 (en) 2008-04-22 2012-07-25 Universität Stuttgart Video data processing
JP4645707B2 (ja) 2008-09-01 2011-03-09 ソニー株式会社 コンテンツデータ処理装置
US8145648B2 (en) 2008-09-03 2012-03-27 Samsung Electronics Co., Ltd. Semantic metadata creation for videos
US8195038B2 (en) 2008-10-24 2012-06-05 At&T Intellectual Property I, L.P. Brief and high-interest video summary generation
JP4623201B2 (ja) 2008-10-27 2011-02-02 ソニー株式会社 画像処理装置、画像処理方法およびプログラム
JP5247356B2 (ja) 2008-10-29 2013-07-24 キヤノン株式会社 情報処理装置およびその制御方法
US8553982B2 (en) * 2009-12-23 2013-10-08 Intel Corporation Model-based play field registration
CN101853286B (zh) 2010-05-20 2016-08-10 上海全土豆网络科技有限公司 视频缩略图智能选取方法
US8619150B2 (en) 2010-05-25 2013-12-31 Intellectual Ventures Fund 83 Llc Ranking key video frames using camera fixation
US8599316B2 (en) 2010-05-25 2013-12-03 Intellectual Ventures Fund 83 Llc Method for determining key video frames
US8665345B2 (en) 2011-05-18 2014-03-04 Intellectual Ventures Fund 83 Llc Video summary including a feature of interest
US8649558B2 (en) * 2011-05-31 2014-02-11 Wisconsin Alumni Research Foundation Video processing with region-based warping
CN102263907B (zh) 2011-08-04 2013-09-18 央视国际网络有限公司 比赛视频的播放控制方法及其片段信息的生成方法和装置
KR20140061481A (ko) 2011-08-31 2014-05-21 록스 인터내셔널 그룹 피티이 엘티디 가상 광고 플랫폼
US8873813B2 (en) 2012-09-17 2014-10-28 Z Advanced Computing, Inc. Application of Z-webs and Z-factors to analytics, search engine, learning, recognition, natural language, and other utilities
US20130179112A1 (en) * 2012-01-09 2013-07-11 Honeywell International Inc. Robust method for signal segmentation for motion classification in personal navigation
WO2013186958A1 (ja) 2012-06-13 2013-12-19 日本電気株式会社 映像重要度算出方法、映像処理装置およびその制御方法と制御プログラムを格納した記憶媒体
US10362977B2 (en) * 2013-10-01 2019-07-30 Sway Operations, Llc System and method for measuring reaction time of a subject

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100070523A1 (en) 2008-07-11 2010-03-18 Lior Delgo Apparatus and software system for and method of performing a visual-relevance-rank subsequent search
JP2011040860A (ja) 2009-08-07 2011-02-24 Nikon Corp 画像処理装置及び画像処理プログラム
US20140023348A1 (en) 2012-07-17 2014-01-23 HighlightCam, Inc. Method And System For Content Relevance Score Determination

Also Published As

Publication number Publication date
MX2016016293A (es) 2017-03-31
CN106462744B (zh) 2019-12-03
US20150363635A1 (en) 2015-12-17
CN106462744A (zh) 2017-02-22
RU2693906C2 (ru) 2019-07-05
BR112016028586A2 (pt) 2017-08-22
US10664687B2 (en) 2020-05-26
JP2017528016A (ja) 2017-09-21
CA2948529A1 (en) 2015-12-17
RU2016148407A3 (ko) 2019-01-22
AU2015274708A1 (en) 2016-11-17
JP6694829B2 (ja) 2020-05-20
AU2015274708B2 (en) 2020-03-26
BR112016028586A8 (pt) 2021-06-08
BR112016028586B1 (pt) 2022-12-20
WO2015191650A1 (en) 2015-12-17
KR20170018042A (ko) 2017-02-15
EP3155557A1 (en) 2017-04-19
RU2016148407A (ru) 2018-06-09

Similar Documents

Publication Publication Date Title
KR102354692B1 (ko) 규칙 기반 비디오 중요도 분석
WO2019218824A1 (zh) 一种移动轨迹获取方法及其设备、存储介质、终端
US20220172476A1 (en) Video similarity detection method, apparatus, and device
US10068616B2 (en) Thumbnail generation for video
CN109871490B (zh) 媒体资源匹配方法、装置、存储介质和计算机设备
US9224211B2 (en) Method and system for motion detection in an image
US9934423B2 (en) Computerized prominent character recognition in videos
WO2014074959A1 (en) Real-time face detection using pixel pairs
CN112954450A (zh) 视频处理方法、装置、电子设备和存储介质
KR101812103B1 (ko) 썸네일이미지 설정방법 및 설정프로그램
CN111724302A (zh) 利用机器学习的纵横比转换
KR101833943B1 (ko) 동영상의 주요 장면을 추출 및 탐색하는 방법 및 시스템
US11647294B2 (en) Panoramic video data process
JP2011250013A (ja) 画質評価方法、画質評価装置、及びプログラム
US11087121B2 (en) High accuracy and volume facial recognition on mobile platforms
Fu et al. Face morphing attacks and face image quality: The effect of morphing and the unsupervised attack detection by quality
Mishra Hybrid feature extraction and optimized deep convolutional neural network based video shot boundary detection
US10282633B2 (en) Cross-asset media analysis and processing
Battiato et al. In-depth DCT coefficient distribution analysis for first quantization Estimation
Tiwari et al. Development of Algorithm for Object Detection & Tracking Using RGB Model
CN115004245A (zh) 目标检测方法、装置、电子设备和计算机存储介质
JP2014229092A (ja) 画像処理装置、画像処理方法、および、そのプログラム
WO2023105635A1 (ja) 判定装置、判定方法、および判定プログラム
CN113117341B (zh) 图片处理方法及装置、计算机可读存储介质、电子设备
Souza et al. Generating an Album with the Best Media Using Computer Vision

Legal Events

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