KR20130060274A - 효과적인 비디오 분류 및 검색을 위한 대표 모션 플로우 추출 - Google Patents

효과적인 비디오 분류 및 검색을 위한 대표 모션 플로우 추출 Download PDF

Info

Publication number
KR20130060274A
KR20130060274A KR1020137005049A KR20137005049A KR20130060274A KR 20130060274 A KR20130060274 A KR 20130060274A KR 1020137005049 A KR1020137005049 A KR 1020137005049A KR 20137005049 A KR20137005049 A KR 20137005049A KR 20130060274 A KR20130060274 A KR 20130060274A
Authority
KR
South Korea
Prior art keywords
motion
computer
flows
clusters
frames
Prior art date
Application number
KR1020137005049A
Other languages
English (en)
Other versions
KR101436342B1 (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 KR20130060274A publication Critical patent/KR20130060274A/ko
Application granted granted Critical
Publication of KR101436342B1 publication Critical patent/KR101436342B1/ko

Links

Images

Classifications

    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • 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/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/12Classification; Matching
    • G06F2218/16Classification; Matching by matching signal segments
    • 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/20021Dividing image into blocks, subimages or windows

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)

Abstract

비디오로부터 대표 모션 플로우를 추출하기 위한 기술이 여기에서 일반적으로 설명된다. 또한 대표 모션 플로우를 이용하여 비디오를 검색하기 위한 기술이 여기에서 일반적으로 설명된다. 대표 모션 플로우는 관심 모션 플로우들을 생성하기 위한 슬라이딩 윈도우 접근법을 이용하여 추출될 수 있다. 대표 모션 플로우는 관심 모션 플로우들에 기초하여 생성될 수 있다.

Description

효과적인 비디오 분류 및 검색을 위한 대표 모션 플로우 추출{REPRESENTATIVE MOTION FLOW EXTRACTION FOR EFFECTIVE VIDEO CLASSIFICATION AND RETRIEVAL}
여기에서 달리 언급하지 않으면, 본 섹션에서 기술된 내용은 본 출원에서의 청구항의 선행 기술이 아니며 본 섹션에 포함한 것에 의해 선행 기술로서 인정된 것이 아니다.
일부 콘텐츠 기반 비디오 검색 시스템(content-based video retrieval(CBVR) system)은 비디오를 특징짓기 위하여 비디오로부터 콘텐츠 특성을 추출할 수 있다. 사용자가 희망하는 특성을 포함하는 쿼리(query)를 제출하면, CBVR 시스템은 사용자가 제출한 희망하는 특성과 매칭하는 추출된 콘텐츠 특성을 가지는 관련 비디오를 검색할 수 있다. 이러한 추출된 콘텐츠 특성은 비디오 내 하나 이상의 프레임들로부터 추출되는 낮은 수준의 정적(static) 특성을 포함할 수 있다. 낮은 수준의 정적 특성의 일부 예시는 비디오 내의 대상의 모양, 텍스쳐 및 색상을 포함할 수 있다. 낮은 수준의 정적 특성에 더하여, 추출된 콘텐츠 특성은 비디오 내 대상의 움직임을 기술하는 모션(motion) 특성을 또한 포함할 수 있다. 그러나, 모션 특성을 추출하기 위한 종래의 접근법은 비디오 검색 어플리케이션에 대하여 효과적이지 않거나 효율적이지 않을 수 있다.
본 개시는 일반적으로 대표 모션 플로우(representative motion flow)를 비디오로부터 추출하기 위한 컴퓨터 구현 방법을 설명한다. 일부 예시적인 방법에 따르면, 프로세서 및 메모리를 가지는 컴퓨팅 장치는 다음의 동작들 중 하나 이상을 수행하도록 구성될 수 있다. 컴퓨팅 장치는 다수의 프레임(frame)들을 포함하는 비디오 파일을 수신하도록 구성된다. 컴퓨팅 장치는 비디오 파일을 다수의 슬라이딩 윈도우(sliding window)들로 분할하도록 구성된다. 슬라이딩 윈도우들 각각은 적어도 2개의 프레임들을 포함할 수 있다. 슬라이딩 윈도우들 각각에 대하여, 컴퓨팅 장치는 모션 플로우들을 생성하고, 유사한 특징들을 가지는 모션 플로우들을 제1의 다수의 클러스터(cluster)들로 클러스터링(clustering)하고, 제1의 다수의 클러스터들로부터 제1의 유의미 클러스터(meaningful cluster)들을 추출하며, 다수의 슬라이딩 윈도우들 중 현재 슬라이딩 윈도우의 제1의 유의미 클러스터들 내 모션 플로우들을 다수의 슬라이딩 윈도우들 중 이전의 슬라이딩 윈도우들의 제1의 유의미 클러스터들 내 모션 플로우들과 매칭(matching)하여 관심 모션 플로우(interesting motion flow)들을 생성하도록 구성된다. 컴퓨팅 장치는 관심 모션 플로우들에 기초하여 대표 모션 플로우들을 결정하도록 구성된다.
본 개시는 일반적으로 일부 컴퓨터 저장 매체를 기술한다. 일부 예시적인 컴퓨터 저장 매체는 컴퓨터에 의하여 실행되면, 컴퓨터가 대표 모션 플로우를 비디오로부터 추출하도록 구성하는 방법에 대한 저장된 컴퓨터 실행 가능 명령어를 포함할 수 있다. 일부 예시적인 방법에 따르면, 컴퓨터는 다음의 동작들 중 하나 이상을 수행하도록 구성될 수 있다. 컴퓨터는 다수의 프레임들을 포함하는 비디오 파일을 수신하도록 구성된다. 컴퓨터는 글로벌 모션 벡터(global motion vector)들을 다수의 프레임들로부터 추출하도록 구성된다. 컴퓨터는 다수의 프레임들 내 코너 포인트(corner point)들을 검출하도록 구성된다. 컴퓨터는 글로벌 모션 벡터들에 기초하여 로컬 모션 벡터(local motion vector)들을 추출하도록 구성된다. 컴퓨터는 비디오 파일을 다수의 슬라이딩 윈도우들로 분할하도록 구성된다. 슬라이딩 윈도우들 각각은 다수의 프레임들 중 적어도 2개를 포함할 수 있다. 슬라이딩 윈도우들 각각에 대하여, 컴퓨터는 로컬 모션 벡터들 및 코너 포인트들에 기초하여 모션 플로우들을 생성하고, 유사한 특징들을 가지는 모션 플로우들을 제1의 다수의 클러스터들로 클러스터링하고, 제1의 다수의 클러스터들로부터 제1의 유의미 클러스터들을 추출하며, 다수의 슬라이딩 윈도우들 중 현재 슬라이딩 윈도우의 제1의 유의미 클러스터들 내 모션 플로우들을 다수의 슬라이딩 윈도우들 중 이전의 슬라이딩 윈도우들의 제1의 유의미 클러스터들 내 모션 플로우들과 매칭하여 관심 모션 플로우들을 생성하도록 구성된다. 컴퓨터는 유사한 특징들을 가지는 관심 모션 플로우들을 제2의 다수의 클러스터들로 클러스터링하도록 구성된다. 컴퓨터는 제2의 유의미 클러스터들을 제2의 다수의 클러스터들로부터 추출하도록 구성된다. 컴퓨터는 제2의 유의미 클러스터들 내 모션 플로우들을 병합하여 대표 모션 플로우들을 생성하도록 구성된다.
본 개시는 일반적으로 비디오를 검색하도록 구성되는 일부 컴퓨터 시스템을 기술한다. 일부 예시적인 컴퓨터 시스템은 프로세서, 프로세서에 결합된 메모리 및 비디오 검색 어플리케이션을 포함하도록 구성될 수 있다. 비디오 검색 어플리케이션은 프로세서에서 메모리로부터 실행하고, 프로세서에 의하여 실행되면, 컴퓨터 시스템으로 하여금 다음의 동작들 중 하나 이상을 수행함으로써 비디오를 검색하도록 구성될 수 있다. 컴퓨터 시스템은 쿼리 비디오 파일(query video file)을 수신하도록 구성된다. 컴퓨터 시스템은 대표 모션 플로우를 쿼리 비디오 파일로부터 추출하도록 구성된다. 컴퓨터 시스템은 대표 모션 플로우를 다수의 세그먼트(segment)들로 분할하도록 구성된다. 컴퓨터 시스템은 심볼(symbol)들의 세트를 다수의 세그먼트들 각각에 매핑(mapping)하여 대표 모션 플로우의 쿼리 심볼 표현을 생성하도록 구성된다. 심볼들의 세트 내 각각의 심볼은 대응하는 세그먼트의 방향을 나타낼 수 있다. 심볼들의 세트 내 심볼들의 수는 세그먼트의 길이를 나타낼 수 있다. 컴퓨터 시스템은 쿼리 심볼 표현와 유사한 후보 심볼 표현들을 가지는 대응하는 후보 모션 플로우들로 후보 비디오 파일들을 검색하도록 구성된다.
전술한 요약은 예시적인 것일 뿐이고, 어떤 방식으로든 제한을 의도한 것은 아니다. 상술한 예시적인 태양, 실시예 및 특징들에 더하여, 추가의 태양, 실시예 및 특징들이 도면과 이하의 상세한 설명을 참조함으로써 분명하게 될 것이다.
본 개시의 전술한 특징들 및 기타 특징들은, 첨부 도면을 참조하여 이하의 설명 및 첨부된 청구항으로부터 충분히 분명해질 것이다. 이러한 도면들은 본 개시에 따르는 단지 몇 가지의 실시예만을 도시한 것이고, 따라서 그 범위를 제한하는 것으로 간주되어서는 안되며, 본 개시는 첨부된 도면의 사용을 통하여, 더 구체적이고 상세하게 기술될 것이다.
도 1은 대표 모션 플로우들을 비디오들로부터 추출하고 유사한 모션 플로우들을 가지는 비디오들을 검색하기 위한 예시적인 운용 환경을 도시하는 기능 블록도이고;
도 2a 및 도 2b는 대표 모션 플로우를 비디오로부터 추출하기 위한 예시적인 프로세스를 도시하는 흐름도이고;
도 3은 비디오를 검색하기 위한 예시적인 프로세스를 도시하는 흐름도이고;
도 4a-4c는 예시적인 비디오 파일의 예시적인 3 프레임 시퀀스를 도시하고;
도 4d는 도 4a-4c내 시퀀스에 기초하여 추출되는 예시적인 대표 모션 플로우를 도시하고;
도 5a-5c는 예시적인 비디오의 예시적인 3 프레임 시퀀스를 도시하고;
도 5d는 도 5a-5c 내 시퀀스에 기초하여 추출되는 예시적인 대표 모션 플로우를 도시하고;
도 6은 예시적인 컴퓨팅 시스템을 도시하는 블록도이며;
도 7a-7c는 컴퓨터 프로그램 제품을 예시하는 개략도이고, 모두 제시된 적어도 일부 실시예에 따라 배열된다.
이하의 상세한 설명에서, 여기의 일부를 구성하는 첨부 도면에 대한 참조가 이루어진다. 도면에서, 유사한 부호는, 문맥에서 다른 지시가 없다면, 일반적으로 유사한 구성요소를 식별한다. 상세한 설명, 도면, 및 청구항에서 기술된 실시예들은 제한하는 것으로 의미되지 않는다. 여기에 제시된 대상의 범위와 사상을 벗어나지 않고, 다른 실시예가 이용될 수 있고, 다른 변형이 이루어질 수 있다. 여기에서 일반적으로 기술되고 도면에서 도시된 바와 같은 본 개시의 태양들이 다양한 다른 구성으로 배열, 대체, 조합, 분리, 및 설계될 수 있음과, 이 모두가 여기에서 명확히 고려됨이 쉽게 이해될 것이다.
본 개시는, 그 중에서도, 비디오 분류 프로세스 및 비디오 검색 프로세스에 관련된다. 예시적인 구현예에서, 비디오 서치 어플리케이션은 비디오 분류 프로세스를 실행하여 하나 이상의 대표 모션 플로우들을 비디오로부터 추출할 수 있다. 각각의 대표 모션 플로우는 비디오의 다수의 프레임들을 통하여 객체의 모션을 정확하게 보여줄(illustrate) 수 있다. 비디오 서치 어플리케이션은 비디오 분류 프로세스를 실행하여 대응하는 대표 모션 플로우들에 따라 비디오 저장소 내 후보 비디오들을 분류할 수 있다.
비디오 서치 어플리케이션은 쿼리 비디오를 포함하는 쿼리를 수신하도록 구성될 수 있다. 비디오 서치 어플리케이션은 비디오 분류 프로세스를 더 실행하여 하나 이상의 대표 모션 플로우들을 쿼리 비디오로부터 추출할 수 있다. 비디오 서치 어플리케이션은 이후 비디오 검색 프로세스를 실행하여 쿼리 비디오와 유사한 대표 모션 플로우들을 가지는 비디오 저장소로부터의 임의의 후보 비디오들을 검색할 수 있다. 비디오 서치 어플리케이션은 쿼리에 응답하여 유사한 후보 비디오들을 반환할 수 있다.
도 1을 참조하면, 기능 블록도는 여기에서 제시된 적어도 일부의 실시예에 따라, 비디오들로부터 대표 모션 플로우들을 추출하고 유사한 모션 플로우들을 가지는 비디오들을 검색하기 위한 예시적인 운용 환경(100)을 도시한다. 운용 환경(100)은 서버 컴퓨터(102) 및 클라이언트 컴퓨터(104)를 포함할 수 있다. 서버 컴퓨터(102) 및 클라이언트 컴퓨터(104)는 근거리 통신망(local area network(LAN)), 광역 통신망(wide area network(WAN)), 인터넷 등과 같은 네트워크(106)를 통하여 결합될 수 있다. 서버 컴퓨터(102)는 웹 서버(108), 추출 모듈(110), 검색 모듈(112) 및 비디오 저장소(114)를 포함할 수 있다. 클라이언트 컴퓨터(104)는 웹 브라우저(web browser)(116)를 포함할 수 있다.
웹 서버(108)는 비디오 검색 웹사이트(118)를 제공하도록 구성될 수 있다. 사용자 또는 비인적(non-human) 프로세스가 클라이언트 컴퓨터(104) 상의 웹 브라우저(116)를 이용하여 비디오 검색 웹사이트(118)에 액세스(access)할 수 있다. 비디오 검색 웹사이트(118)는 쿼리 제출 인터페이스(도시되지 않음)로 구성될 수 있으며, 이에 따라 사용자가 쿼리 비디오 파일(120)을 제출할 수 있다. 서버 컴퓨터(102)가 쿼리 비디오 파일(120)을 수신하면, 추출 모듈(110)은 쿼리 비디오 파일(120)에 기초하여 적어도 하나의 쿼리 대표 모션 플로우(122)를 추출하도록 구성될 수 있다. 쿼리 대표 모션 플로우(122)는 쿼리 비디오 파일(120) 내의 순차적인 프레임들을 통하여 하나 이상의 객체들의 궤적(trajectory)을 묘사할 수 있다.
추출 모듈(110)이 쿼리 대표 모션 플로우(122)를 추출하면, 검색 모듈(112)은 유사한 대표 모션 플로우들을 가지는 다른 비디오 파일들을 검색하도록 구성될 수 있다. 비디오 저장소(114)는 비디오 파일들(124) 및 대응하는 후보 대표 모션 플로우들(126)을 저장하도록 구성될 수 있다. 비디오 파일들(124) 각각은 후보 대표 모션 플로우들(126) 중 하나 이상에 대응할 수 있다. 추출 모듈(110)은 비디오 파일들(124)에 기초하여 후보 대표 모션 플로우들(126)을 사전에 추출했을 수 있다.
검색 모듈(112)은 쿼리 대표 모션 플로우(122)와 유사한 후보 대표 모션 플로우들(126)을 가지는 유사한 비디오 파일들(128)을 검색하도록 구성될 수 있다. 검색 모듈(112)은 이후 유사한 비디오 파일들(128) 또는 유사한 비디오 파일들(128)로의 하이퍼링크들(링크들)을 비디오 검색 웹사이트(118)를 통하여 사용자에게 반환할 수 있다. 비디오 검색 웹사이트(118)는 유사한 비디오 파일들(128)을 임의의 적절한 포맷 및/또는 레이아웃(layout)으로 디스플레이할 수 있다. 예컨대, 비디오 검색 웹사이트(118)는 유사한 비디오 파일들(128)로의 링크들의 순위 목록 및 유사한 비디오 파일들(128) 각각을 설명하는 짧은 표제(caption)들을 포함하는 서치 엔진 결과 페이지(search engine results page(SERP))에 유사한 비디오 파일들(128)을 디스플레이할 수 있다.
이제 도 2a-2b를 참조하면, 흐름도는 여기에서 설명된 적어도 일부 실시예에 따라, 비디오로부터 대표 모션 플로우를 추출하기 위한 예시적인 프로세스(200A-200B)를 도시한다. 일부 실시예에서, 추출 모듈(110)은 프로세스(200A-200B)를 이용하여 쿼리 비디오 파일(120)에 기초하여 쿼리 대표 모션 플로우(122)를 추출할 수 있다. 일부 다른 실시예에서, 추출 모듈(110)은 프로세스(200A-200B)를 이용하여 비디오 파일들(124)에 기초하여 후보 대표 모션 플로우들(126)을 추출할 수 있다.
프로세스(200A-200B)는 블록들(202-226) 중 하나 이상에 의하여 예시되는 다양한 동작, 기능 또는 작용을 포함할 수 있다. 프로세스(200A-200B)는 블록(202)(비디오 파일을 수신)에서 시작할 수 있으며, 여기서 추출 모듈(110) 및/또는 검색 모듈(112)과 같은 프로그램 모듈이 쿼리 비디오 파일(120) 및/또는 비디오 파일들(124)과 같은 비디오 파일을 수신하도록 구성될 수 있다. 비디오 파일은 다수의 프레임들을 포함할 수 있다. 비디오 렌더링 어플리케이션(도시되지 않음)은 소정의 순서로 프레임들을 렌더링(rendering)함으로써 비디오를 디스플레이하도록 구성될 수 있다. 이용되는 특정 인코딩 및/또는 압축 방법에 따라, 비디오 파일은 상이한 유형의 프레임들을 또한 포함할 수 있다. 예컨대, MPEG(Moving Picture Experts Group) 비디오 파일은 I-프레임, P-프레임 및/또는 B-프레임을 포함할 수 있다. 비디오 파일은 MPEG, AVI(Audio Video Interleave), 퀵타임(QUICKTIME) 파일 포맷, 리얼미디어(REALMEDIA) 파일 포맷 또는 비디오를 생성하도록 구성되는 기타 적절한 비디오 코딩 기술을 포함하는 임의 적절한 비디오 코딩 기술로 구현될 수 있다. 블록(202)은 블록(204)으로 이어질 수 있다.
블록(204)(글로벌 모션 벡터들을 추출)에서, 프로그램 모듈은 비디오 파일 내 프레임들로부터 글로벌 모션 벡터들을 추출하도록 구성될 수 있다. 글로벌 모션 벡터들은 프레임들 내의 객체들이 하나의 프레임에서 다른 프레임으로 이동되는 방향 및 거리를 특정할 수 있다. 비디오 파일 내 프레임들 중 하나 이상은 글로벌 모션 벡터들을 포함할 수 있다. 일 예시에서, MPEG 비디오 파일은 B-프레임, P-프레임 및/또는 I-프레임을 포함할 수 있다. I-프레임은 이미지를 완전히 특정하도록 구성될 수 있다. I-프레임은 소정의 프레임 내 다양한 객체들에 관한 색상, 모양, 크기, 위치, 배향(orientation) 및/또는 기타 적절한 정보에 관한 완전한 이미지 정보를 포함할 수 있다. 비디오 파일의 크기를 축소시키기 위하여, P-프레임은 이전의 프레임들로부터의 데이터를 이용하도록 구성될 수 있으며, B-프레임은 이전의 및 앞으로의 프레임들로부터의 정보를 이용하도록 구성될 수 있다.
이 예시를 계속하여, I-프레임 및 P-프레임은 비디오 파일에서 2개의 연이은 프레임들일 수 있다. I-프레임은 배경에 위치한 자동차를 보여주는 이미지 정보를 포함할 수 있다. 비디오 파일에서, 자동차가 I-프레임 내 제1 위치로부터 P-프레임 내 제2 위치로 이동할 수 있는 한편, 배경은 고정적으로 남아있고 자동차가 동일한 모양, 크기 및 색상으로 남을 수 있다. 이러한 경우에, P-프레임은 단순히 제1 위치에서 제2 위치로의 자동차의 이동을 나타내는 하나 이상의 벡터들을 포함할 수 있다. 자동차의 모양, 크기 및 색상이 동일하게 남아 있고, 배경이 고정적으로 남아 있으므로, 비디오 렌더링 어플리케이션은 P-프레임을 렌더링할 때 I-프레임으로부터의 이미지 정보 중 많은 것을 이용할 수 있다. P-프레임이 I-프레임에 포함된 유사한 이미지 정보를 반복하지 않으므로, 비디오 파일의 크기가 상당히 축소될 수 있다.
프로그램 모듈은 B-프레임 및 P-프레임으로부터 (여기서, 글로벌 모션 벡터들로 지칭되는) 이러한 벡터들을 추출하도록 구성될 수 있다. 일부 다른 비디오 코딩 기술들은 또한 다수의 이미지들에 걸쳐 객체들의 이동을 나타내는 벡터들을 포함할 수 있다. 비디오 코딩 기술이 벡터들을 원래 포함하지 않더라도, 프로그램 모듈은 광학 플로우 추출 기법(optical flow extraction technique) 또는 모션 벡터들을 비디오 파일들로부터 추출하도록 구성되는 기타 적절한 기술을 통하여 모션 벡터들을 획득하도록 구성될 수 있다. 블록(204)은 블록(206)으로 이어질 수 있다.
블록(206)(코너 포인트들을 검출)에서, 프로그램 모듈은 프레임들에서 코너 포인트들을 검출하도록 구성될 수 있다. 코너 포인트는 적어도 2개의 비평행 모서리가 만나는 점으로 정의될 수 있다. 코너 포인트들은 프레임들 내의 다양한 객체들을 식별할 수 있다. 일부 실시예에서, 프로그램 모듈은 코너 포인트들을 검출하기 위하여 해리스 코너 검출 기법(Harris corner detection technique)을 이용하도록 구성될 수 있다. 일부 다른 실시예에서, 프로그램 모듈은 프레임들 내의 코너 포인트들을 검출하도록 구성되는 다른 적절한 기법을 이용하도록 구성될 수 있다.
해리스 코너 검출 기법은 로컬 관심 포인트(local interest point(LIP)) 또는 키 포인트 검출 기법의 예시를 의미할 수 있다. 해리스 코너 검출 기법에 더하여, LIP들 또는 키 포인트들을 검출하고 추적하기 위한 다른 기법은 스케일 불변 특성 변환(scale-invariant feature transform(SIFT)) 기법을 포함한다. SIFT 기법은 스케일 공간에서 불변하는 특성을 포함하는 키 포인트들을 검출하도록 구성될 수 있다. SIFT 기법은 ("SIFT 특성"이라고 또한 지칭되는) 불변 특성을 이용하여 키 포인트를 기술하도록 더 구성될 수 있다. SIFT 기법은 이미지 처리 연산에서 구현될 수 있다. 그러나, SIFT 기법은 해리스 코너 포인트 기법보다 더 복잡하고 시간 소비적일 수 있다. 블록(206)은 블록(208)으로 이어질 수 있다.
블록(208)(로컬 모션 벡터들을 추출)에서, 프로그램 모듈은 글로벌 모션 벡터들에 기초하여 로컬 모션 벡터들을 추출하도록 구성될 수 있다. 사용자가 비디오 카메라를 통하여 이동하는 객체를 녹화할 때, 사용자는 그에 맞춰 이동하는 객체가 지속적으로 녹화되는 프레임들의 중앙이나 중앙 가까이에 있도록 비디오 카메라의 위치를 조정할 수 있다. 예컨대, 사용자는 비디오 카메라를 이용하여 트랙(track)에서 단거리 경기(sprint)를 달리는 운동 선수를 녹화할 수 있다. 운동 선수가 트랙을 따라 달림에 따라, 사용자는 비디오 카메라의 위치를 운동 선수를 따라가도록 조정할 수 있다. 이러한 경우, 비디오 카메라가 운동 선수를 따라가므로, 대응하는 글로벌 모션 벡터들은 의도된 객체(예컨대, 운동 선수)보다는 배경 객체들(예컨대, 트랙)의 이동을 나타낼 수 있다. 그러나, 사용자가 비디오 카메라를 삼각대 또는 고정된 위치에 비디오 카메라를 고정하는 일부 다른 장치에 비디오 카메라를 두면, 배경 객체들은 일정하게 남는 반면, 의도된 객체가 프레임들에 걸쳐 이동할 수 있다. 비디오 카메라가 이동하지 않으면, 글로벌 모션 벡터들은 의도된 객체의 이동을 적절히 나타낼 수 있다.
일부 실시예에서, 프로그램 모듈은 4 파라미터 추정 모델(four-parameter estimation model)로 훈련(train)되는 서포트 벡터 머신(support vector machine(SVM))을 이용하여 카메라 모션을 검출하도록 구성될 수 있다. 일부 다른 실시예에서, 프로그램 모듈은 글로벌 모션 벡터들에서 카메라 모션의 존재를 검출하도록 구성된, 이하 설명된 제1, 제2, 및 제3의 추가 기법을 포함하는 다른 적절한 기법을 이용하여 카메라 모션을 검출하도록 구성될 수 있다. 프로그램 모듈이 카메라 모션을 검출하면, 프로그램 모듈은 로컬 모션 벡터들을 생성하도록 글로벌 모션 벡터들에서의 카메라 모션을 보상하도록 구성될 수 있다. 프로그램 모듈이 아무런 카메라 모션도 검출하지 않으면, 프로그램 모듈은 글로벌 모션 벡터들을 로컬 모션 벡터들로서 이용할 수 있다.
제1의 추가 기법에서, 프로그램 모듈은 각각의 프레임 내 코너 포인트들의 수에 기초하여 카메라 모션을 검출하도록 구성될 수 있다. 프로그램 모듈은 각각의 프레임 내 코너 포인트들의 수가 프레임들 중 하나 이상에서 상당히 감소(예컨대, 임계값보다 큰 양 만큼 감소)하는지를 결정하도록 구성될 수 있다. 프로그램 모듈이 각각의 프레임 내 코너 포인트들의 수가 프레임들 중 하나 이상에서 상당히 감소한다고 결정하면, 프로그램 모듈은 글로벌 모션 벡터들이 카메라 모션을 포함한다고 결정하도록 구성될 수 있다. 프로그램 모듈이 각각의 프레임 내 코너 포인트들의 수가 프레임들 중 하나 이상에서 상당히 감소하지 않는다고 결정하면, 프로그램 모듈은 글로벌 모션 벡터들이 카메라 모션을 포함하지 않는다고 결정하도록 구성될 수 있다. 예컨대, 비디오 카메라가 초점을 잡을 수 있기 전에 카메라 모션은 프레임들 중 하나 이상에서 왜곡(예컨대, 번짐(blur))을 일으킬 수 있으므로, 코너 포인트들의 수는 카메라 모션 중 프레임들 사이에서 감소할 수 있다. 프로그램 모듈은 이러한 왜곡된 프레임들에서, 더 초점이 잡힌 프레임들(즉, 무왜곡의 프레임들)에 비하여 더 적은 코너 포인트들을 검출할 수 있다.
제2의 추가 기법에서, 프로그램 모듈은 글로벌 모션 벡터들에 대응하는 코너 포인트들의 수에 기초하여 카메라 모션을 검출하도록 구성될 수 있다. 프로그램 모듈은 글로벌 모션 벡터들에 대응하는 코너 포인트들의 수가 임계값을 초과하는지를 결정하도록 구성될 수 있다. 프로그램 모듈이 글로벌 모션 벡터들에 대응하는 코너 포인트들의 수가 임계값을 초과한다고 결정하면, 프로그램 모듈은 글로벌 모션 벡터들이 카메라 모션을 포함한다고 결정하도록 구성될 수 있다. 프로그램 모듈이 글로벌 모션 벡터들에 대응하는 코너 포인트들의 수가 임계값을 초과하지 않는다고 결정하면, 프로그램 모듈은 글로벌 모션 벡터들이 카메라 모션을 포함하지 않는다고 결정하도록 구성될 수 있다. 예컨대, 글로벌 모션 벡터들에 대응하는 높은 수의 코너 포인트들은 의도된 객체보다는 배경 객체들에서의 이동을 나타낼 수 있다. 카메라 모션이 없으면, 배경 객체들이 고정적으로 남아 있는 한편 의도된 객체가 이동할 수 있으며, 이에 따라 글로벌 모션 벡터들에 대응하는 코너 포인트들의 수가 감소한다.
제3의 추가 기법에서, 프로그램 모듈은 글로벌 모션 벡터들에 기초한 평균 모션 벡터(mean motion vector)에 기초하여 카메라 모션을 검출하도록 구성될 수 있다. 프로그램 모듈은 글로벌 모션 벡터들의 합에 기초하여 평균 모션 벡터를 연산하도록 구성될 수 있다. 프로그램 모듈은 평균 모션 벡터가 임계값을 초과하는지 결정하도록 구성될 수 있다. 프로그램 모듈이 평균 모션 벡터가 임계값을 초과한다고 결정하면, 프로그램 모듈은 글로벌 모션 벡터들이 카메라 모션을 포함한다고 결정하도록 구성될 수 있다. 프로그램 모듈이 평균 모션 벡터가 임계값을 초과하지 않는다고 결정하면, 프로그램 모듈은 글로벌 모션 벡터들이 카메라 모션을 포함하지 않는다고 결정하도록 구성될 수 있다. 예컨대, 카메라 모션은 카메라 지터(jitter)를 나타내는 다수의 방향들을 가지는 글로벌 모션 벡터들을 생성할 수 있다. 이러한 카메라 지터는 또한 평균 모션 벡터가 카메라 모션이 없을 때보다 더 커지도록 할 수 있다. 제1, 제2, 제3의 추가 기법은 개별적으로, 서로 함께, 또는 카메라 모션을 검출하도록 구성된 기타 적절한 기법과 함께 이용될 수 있다.
제1, 제2 및 제3의 추가 기법에서 상술한 3개의 임계값은 SVM을 이용하여 결정될 수 있다. 예시적인 구현예에서, 카메라 모션의 존재 또는 부존재가 알려지는 훈련 세트(training set)가 이용될 수 있다. 3개의 임계값이 훈련 세트 내에서 각각의 프레임에 대하여 결정될 수 있으며 각각의 프레임 내 블록들의 수를 분할함으로써 0-1 스케일로 정규화될 수 있다. 각각의 프레임에 대하여, 3개의 값은 3차원 벡터로 표현될 수 있다. 3차원 벡터들이 다수의 프레임들에 대하여 결정된 이후에, 3차원 벡터들 및 카메라 모션이 존재하는지에 대하여 알려진 결과는 SVM을 훈련하는 데에 이용될 수 있다. SVM이 훈련되었으면, SVM은 3개의 임계값들 중 하나 이상이 제공된 경우의 카메라 모션을 예측하도록 구성될 수 있다. 임계값들은 SVM의 상이한 "커널(kernel)들"에 기초하여 고차원 벡터의 형태로 있을 수 있다. 카메라 모션을 결정하는 데 이용되는 이러한 벡터는 상이한 훈련 세트에 기초한 임의의 값일 수 있는, 커널 공간 내 초평면(hyper-plain)을 나타낼 수 있다. 블록(208)은 블록(210)으로 이어질 수 있다.
블록(210)(비디오 파일을 슬라이딩 윈도우들로 분할)에서, 프로그램 모듈은 비디오 파일을 다수의 슬라이딩 윈도우들로 분할하도록 구성될 수 있다. 각각의 슬라이딩 윈도우는 2개 이상의 프레임들을 포함할 수 있다. 일부 실시예에서, 슬라이딩 윈도우들 각각은 동일한 수의 프레임들을 포함하는 고정된 크기를 가진다. 일부 다른 실시예에서, 슬라이딩 윈도우들은, 하나 이상의 슬라이딩 윈도우들이 상이한 수의 프레임들을 포함할 수 있는 가변의 크기를 가질 수 있다. 프로세스(200A)에서의 블록(210)은 프로세스(200B)에서의 블록들(212-220)으로 이어질 수 있다. 블록들(212-220)은 슬라이딩 윈도우들이 평가되는 때까지 각각의 연이은 슬라이딩 윈도우에 대하여 수행될 수 있다.
블록(212)(모션 플로우들을 생성)에서, 프로그램 모듈은, 소정의 슬라이딩 윈도우에 대하여 로컬 벡터들 및 코너 포인트들에 기초하여 모션 플로우들을 생성하도록 구성될 수 있다. 각각의 프레임은 다수의 동일 크기의 블록들로 분할될 수 있다. 예컨대, 각각의 프레임은 3x5 블록, 5x5 블록, 5x7 블록, 7x7 블록, 8x8 블록 또는 기타 적절한 구성으로 분할될 수 있다. 슬라이딩 윈도우의 인접한 프레임들 내 동일한 블록들이 동일한 코너 포인트들을 가지며 각각의 블록이 모션 벡터에 대응하면, 프로그램 모듈은 모션 플로우들을 생성하기 위해 블록들 내 로컬 모션 벡터들을 매칭하고 연결하도록 구성될 수 있다. 블록(212)은 블록(214)으로 이어질 수 있다.
블록(214)(모션 플로우들을 클러스터링)에서, 프로그램 모듈은, 소정의 슬라이딩 윈도우에 대하여 유사한 특징들을 가지는 모션 플로우들을 제1의 다수의 클러스터들로 클러스터링하도록 구성될 수 있다. 프로그램 모듈은 모션 플로우들을 표준의 단위 길이로 정규화하도록 구성될 수 있다. 프로그램 모듈이 모션 플로우들을 단위 길이로 정규화하면, 프로그램 모듈은 이산 코사인 변환(discrete cosine transformation(DCT))을 모션 플로우들에 적용하도록 구성될 수 있다. 프로그램 모듈이 DCT를 적용하면, 프로그램 모듈은 다차원 벡터들을 모션 플로우들로부터 추출하도록 구성될 수 있다. 각각의 다차원 벡터는 대응하는 모션 플로우에 대한 패턴 및 위치를 나타낼 수 있다. 프로그램 모듈은 유사한 패턴들 및/또는 위치들을 가지는 다차원 벡터들을 가지는 모션 플로우들을 제1의 다수의 클러스터들로 클러스터링하도록 구성될 수 있다. 블록(214)은 블록(216)으로 이어질 수 있다.
블록(216)(유의미 클러스터들을 추출)에서, 프로그램 모듈은, 소정의 슬라이딩 윈도우에 대하여 제1의 다수의 클러스터들로부터 제1의 유의미 클러스터들을 추출하도록 구성될 수 있다. 프로그램 모듈은 제1의 유의미 클러스터들을 식별하기 위하여 노이즈를 나타내는 클러스터들을 제1의 다수의 클러스터들로부터 제거하도록 구성될 수 있다. 노이즈를 나타내는 클러스터들은 더 적은 수의 모션 플로우들을 가질 수 있다. 결과적으로, 프로그램 모듈은 제1의 유의미 클러스터들을 식별하기 위하여 소정의 임계값보다 낮은 수의 모션 플로우들을 가지는 클러스터들을 걸러 낼 수 있다. 블록(216)은 블록(218)으로 이어질 수 있다.
블록(218)(현재 유의미 클러스터들을 이전의 유의미 클러스터들과 매칭)에서, 프로그램 모듈은, 소정의 슬라이딩 윈도우에 대하여 현재 슬라이딩 윈도우의 유의미 클러스터들 내 모션 플로우들을 이전의 슬라이딩 윈도우들의 유의미 클러스터들 내 모션 플로우들과 매칭하고 연결하여 관심 모션 플로우들을 생성하도록 구성될 수 있다. 이러한 관심 모션 플로우들은, 모션 플로우들을 클러스터링, 유의미 클러스터들을 추출(예컨대, 노이즈를 필터링), 및/또는 슬라이딩 윈도우들 간에 유의미 클러스터들을 매칭한 이후의 모션 플로우들을 나타낼 수 있으므로, 여기에서 "관심있는" 것으로 지칭될 수 있다. 프로그램 모듈은 매칭하는 클러스터들 간에 모션 플로우들을 매칭하고 연결하도록 구성될 수 있다. 대응하는 모션 플로우들이 유사한 패턴들 및/또는 위치들이 있는 다차원 벡터들을 가지는 경우 클러스터들은 매칭할 수 있다. 관심 모션 플로우들은 다수의 슬라이딩 윈도우들에 대하여 블록들(212-220)의 반복을 통하여 계속적으로 확장될 수 있다. 블록(218)은 블록(220)으로 이어질 수 있다.
블록(220)(추가적인 슬라이딩 윈도우들이 아직 평가되지 않았는지 결정)에서, 프로그램 모듈은 임의의 추가적인 슬라이딩 윈도우들이 아직 평가되지 않았는지를 결정하도록 구성될 수 있다. 프로그램 모듈이 추가적인 슬라이딩 윈도우가 아직 평가되지 않았다고 결정하면, 블록(220)은 추가적인 슬라이딩 윈도우를 평가하기 위하여 블록(212)으로 돌아갈 수 있다. 프로그램 모듈이 슬라이딩 윈도우들 각각이 평가되었다고 결정하면, 블록(220)은 블록(222)으로 이어질 수 있다.
블록(222)(관심 모션 플로우들을 클러스터링)에서, 프로그램 모듈은 유사한 특징들을 가지는 관심 모션 플로우들을 제2의 다수의 클러스터들로 클러스터링하도록 구성될 수 있다. 프로그램 모듈은 유사한 패턴들 및/또는 위치들이 있는 다차원 벡터들을 가지는 관심 모션 플로우들을 클러스터링하도록 구성될 수 있다. 블록(222)은 블록(224)으로 이어질 수 있다.
블록(224)(제2의 유의미 클러스터들을 추출)에서, 프로그램 모듈은 제2의 다수의 클러스터들로부터 제2의 유의미 클러스터들을 추출하도록 구성될 수 있다. 프로그램 모듈은 제2의 다수의 클러스터들로부터 노이즈를 나타내는 클러스터들을 제거하여 제2의 유의미 클러스터들을 식별하도록 구성될 수 있다. 프로그램 모듈은 제2의 유의미 클러스터들을 식별하기 위하여 소정의 임계값보다 낮은 수의 모션 플로우들을 가지는 클러스터들을 걸러내도록 구성될 수 있다. 블록(224)에서의 임계값은 블록(216)에서의 임계값과 동일할 수 있거나 동일하지 않을 수 있다. 블록(224)은 블록(226)으로 이어질 수 있다.
블록(226)(관심 모션 플로우들을 병합하여 대표 모션 플로우들을 생성)에서, 프로그램 모듈은 제2의 유의미 클러스터들 내 관심 모션 플로우들을 병합하여 대표 모션 플로우들을 생성하도록 구성될 수 있다. 프로그램 모듈은 중복되는(redundant) 관심 모션 플로우들을 삭제함으로써 관심 모션 플로우들을 병합하여 대표 모션 플로우들을 생성하도록 구성될 수 있다. 예컨대, 단거리 경기를 달리는 운동 선수의 녹화를 포함하는 비디오 파일에서, 프로그램 모듈은 운동 선수의 이동에 대응하는 다수의 관심 모션 플로우들을 추출할 수 있다. 제1의 예시적인 관심 모션 플로우는 단거리 경기 동안의 운동 선수의 머리의 이동을 나타낼 수 있다. 제2의 예시적인 관심 모션 플로우는 단거리 경기 동안의 운동 선수의 흉부의 이동을 나타낼 수 있다. 제3의 예시적인 관심 모션 플로우는 단거리 경기 동안의 운동 선수의 발의 이동을 나타낼 수 있다. 이러한 3개의 관심 모션 플로우들이 동일한 운동 선수에 대응하는 동일한 이동을 나타내므로, 프로그램 모듈은 3개의 중복되는 관심 모션 플로우들 중 2개를 삭제하도록 구성될 수 있다. 이러한 경우에, 나머지 관심 모션 플로우는 단거리 경기 동안 운동 선수의 이동을 나타내는 대표 모션 플로우가 될 수 있다. 블록(226) 이후에, 프로세스(200A-200B)는 (예컨대, 주기적으로, 연속적으로 또는 필요에 따라) 반복되거나 종료될 수 있다.
도 3을 참조하면, 흐름도는 여기에서 기술된 적어도 일부 실시예에 따라, 비디오를 검색하기 위한 예시적인 프로세스(300)를 도시한다. 프로세스(300)는 블록들(302-312) 중 하나 이상에 의해 예시되는 다양한 동작, 기능 또는 작용을 포함할 수 있다. 프로세스(300)는 블록(302)(쿼리 비디오 파일을 수신)에서 시작할 수 있으며, 여기서 추출 모듈(110) 및/또는 검색 모듈(112)과 같은 프로그램 모듈이 쿼리 비디오 파일(120)과 같은 비디오 파일을 사용자로부터 수신하도록 구성될 수 있다. 예컨대, 사용자는 쿼리 비디오 파일(120)을 비디오 검색 웹사이트(118)를 통하여 업로드할 수 있다. 블록(302)은 블록(304)으로 이어질 수 있다.
블록(304)(쿼리 대표 모션 플로우를 추출)에서, 프로그램 모듈은 쿼리 비디오 파일(120)로부터 쿼리 대표 모션 플로우(122)와 같은 대표 모션 플로우를 추출할 수 있다. 프로그램 모듈은 전술한 바와 같은 프로세스(200A-200B)를 수행함으로써 쿼리 대표 모션 플로우(122)를 추출하도록 구성될 수 있다. 대표 모션 플로우는 궤적 S로 표현될 수 있다. 궤적 S는 S=[(t1, s1), (t2, s2), ..., (tn, sn)]인 2차원 시계열(time series)일 수 있다. 각 쌍 (t, s)은 궤적 S의 구성요소(element)를 나타낼 수 있으며, 여기서 t는 시간을 나타낼 수 있으며 s는 이동 방향 및 거리를 나타내는 벡터를 나타낼 수 있다. 블록(304)은 블록(306)으로 이어질 수 있다.
블록(306)(쿼리 대표 모션 플로우를 세그먼트들로 분할)에서, 프로그램 모듈은 쿼리 대표 모션 플로우(122)를 다수의 세그먼트들로 분할하도록 구성될 수 있다. 프로그램 모듈은 쿼리 대표 모션 플로우(122)를 상향 세그먼트화(bottom-up segmentation) 기법을 이용하여 다수의 세그먼트들로 분할하도록 구성될 수 있다. 각각의 세그먼트는 궤적 S의 구성요소 중 적어도 하나에 대응할 수 있다. 블록(306)은 블록(308)으로 이어질 수 있다.
블록(308)(심볼들의 세트를 각각의 세그먼트로 매핑하여 쿼리 심볼 표현을 생성)에서, 프로그램 모듈은 하나 이상의 심볼들의 세트를 각각의 세그먼트로 매핑하여 쿼리 대표 모션 플로우(122)의 쿼리 심볼 표현을 생성하도록 구성될 수 있다. 전술한 바와 같이, 각각의 세그먼트는 구성요소 (t, s)에 대응할 수 있으며, 여기서 s는 이동 방향 및 거리를 나타내는 벡터이다. 다수의 세그먼트들 내 각각의 벡터는 심볼들의 세트로 매핑할 수 있다. 세트 내 심볼들의 내용은 이동 방향을 나타낼 수 있다. 세트 내 심볼들의 수는 이동의 길이를 나타낼 수 있다. 일부 다른 접근법은 또한 이동의 길이를 나타내기 위하여 심볼의 내용을 이용할 수 있다. 그러나, 심볼들의 내용보다는 세트 내 심볼들의 수를 통하여 이동의 길이를 나타냄으로써, 벡터들의 각각의 가능한 치환(permutation)으로 매핑하는 데 이용되는 심볼들(예컨대, 심볼들의 알파벳)의 전체 수가 상당히 감소될 수 있다. 블록(308)은 블록(310)으로 이어질 수 있다.
블록(310)(쿼리 심볼 표현과 유사한 후보 심볼 표현들을 가지는 비디오 파일들을 검색)에서, 프로그램 모듈은 쿼리 심볼 표현과 유사한 대응하는 심볼 표현들을 가지는, 비디오 파일들(128)과 같은 비디오 파일들을 검색하도록 구성될 수 있다. 프로그램 모듈은 소정의 후보 심볼 표현이 임의의 적절한 수준의 매칭(예컨대, 완전한 매칭, 실질적 매칭, 부분 매칭 등)에 따라 쿼리 심볼 표현과 유사한지 결정하도록 구성될 수 있다. 유사한 비디오 파일들(128)은 비디오 파일들(124)과 같은 후보 비디오 파일들을 포함하는 데이터베이스로부터 검색될 수 있다. 비디오 파일들(124)은 후보 대표 모션 플로우들(126)과 같은 대표 모션 플로우들에 대응할 수 있다. 후보 대표 모션 플로우들(126) 각각은 후보 심볼 표현에 대응할 수 있다. 블록(310)은 블록(312)으로 이어질 수 있다.
블록(312)에서, 프로그램 모듈은 유사한 비디오 파일들(128)을 사용자에게 반환하도록 구성될 수 있다. 예컨대, 프로그램 모듈은 유사한 비디오 파일들(128)을 비디오 검색 웹사이트(118)를 통하여 사용자에게 반환하도록 구성될 수 있다. 블록(312) 이후에, 프로세스(300)는 (예컨대, 주기적으로, 연속적으로 또는 필요에 따라) 반복 또는 종료될 수 있다.
도 4a-4d 및 도 5a-5d를 참조하면, 일부 예시적인 비디오 프레임들 및 그 대응하는 대표 모션 플로우들이 도시된다. 도 4a-4c는 여기에서 설명되는 적어도 일부 실시예에 따른 예시적인 비디오 파일의 예시적인 3 프레임 시퀀스(400A-400C)를 도시한다. 도 4는 여기에서 설명되는 적어도 일부 실시예에 따른 시퀀스(400A-400C)에 기초하여 추출되는 예시적인 대표 모션 플로우(402)를 도시한다. 도 5a-5c는 여기에서 설명되는 적어도 일부 실시예에 따른 다른 예시적인 비디오 파일의 예시적인 3 프레임 시퀀스(500A-500C)를 도시한다. 도 5d는 여기에서 설명되는 적어도 일부 실시예에 따른 시퀀스(500A-500C)에 기초하여 추출되는 예시적인 대표 모션 플로우(502)를 도시한다.
도 4a-4d에서, 제1 프레임(400A)은 농구 골대를 향하여 농구공을 드리블하는 운동 선수를 나타낸다. 제2 프레임(400B)은 농구 골대에서 농구공을 덩크하기 위해 점프하는 운동 선수를 나타낸다. 제3 프레임(400C)은 덩크를 완료한 후에 착지하는 운동 선수를 나타낸다. 대표 모션 플로우(402)는 농구 골대를 향하여 이동하고, 위로 점프하며, 이후 아래로 돌아오는 운동 선수의 대응하는 궤적을 나타낸다.
도 5a-5d에서, 제1 프레임(500A)은 장애물에 접근하는 말을 나타낸다. 제2 프레임(500B)은 장애물을 뛰어넘기 시작하는 말을 나타낸다. 제3 프레임(500C)은 장애물 뛰어넘기를 마치는 말을 나타낸다. 대표 모션 플로우(502)는 장애물을 향하여 이동하고, 장애물을 뛰어넘기 시작하며, 장애물 뛰어넘기를 마치는 말의 대응하는 궤적을 나타낸다.
도 6은 여기에서 제시된 적어도 일부 실시예를 구현할 수 있는 예시적인 컴퓨팅 시스템에 대한 예시적인 컴퓨터 하드웨어 아키텍처(architecture)를 도시하는 컴퓨터 아키텍처도이다. 도 6은 프로세서(610), 메모리(620) 및 하나 이상의 드라이브(630)를 포함하는 컴퓨터(600)를 포함한다. 컴퓨터(600)는 종래의 컴퓨터 시스템, 임베디드 컨트롤 컴퓨터(embedded control computer), 랩탑 또는 서버 컴퓨터, 모바일 장치, 셋탑 박스(set-top box), 키오스크(kiosk), 차량 정보 시스템, 모바일 전화, 맞춤화된 머신 또는 기타 하드웨어 플랫폼으로 구현될 수 있다.
드라이브(630) 및 그 연관된 컴퓨터 저장 매체는 컴퓨터(600)를 위한 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 드라이브(630)는 운영 체제(640), 어플리케이션 프로그램(650), 프로그램 모듈(660) 및 데이터베이스(680)를 포함할 수 있다. 프로그램 모듈(660)은 추출 모듈(110) 및/또는 검색 모듈(112)을 포함할 수 있다. 추출 모듈(110) 및/또는 검색 모듈(112)은 도 2a-2b를 참조하여 위에서 더 상세히 설명된 바와 같이 대표 모션 플로우를 비디오로부터 추출하기 위한 프로세스(200A-200B)를 실행하도록 구성될 수 있다. 또한, 추출 모듈(110) 및/또는 검색 모듈(112)은 도 3을 참조하여 위에서 더 상세히 설명된 바와 같이 비디오를 검색하기 위한 프로세스(300)를 실행하도록 구성될 수 있다. 컴퓨터(600)는 사용자가 명령 및 데이터를 입력할 수 있는 사용자 입력 장치(690)를 더 포함할 수 있다. 입력 장치는 전자 디지타이저(digitizer), 마이크, 키보드 및 보통 마우스, 트랙볼 또는 터치 패드로 지칭되는 포인팅 장치를 포함할 수 있다. 기타 입력 장치는 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다.
이러한 입력 장치 및 기타 입력 장치는 시스템 버스에 결합되는 사용자 입력 인터페이스를 통하여 프로세서(610)에 결합될 수 있지만, 병렬 포트, 게임 포트 또는 범용 직렬 버스(universal serial bus(USB))와 같은 기타 인터페이스 및 버스 구조에 의하여 결합될 수 있다. 컴퓨터(600)와 같은 컴퓨터는 또한 출력 주변 인터페이스(694) 등을 통하여 결합될 수 있는 스피커와 같은 기타 주변 출력 장치를 포함할 수 있다.
컴퓨터(600)는 네트워크 인터페이스(696)에 결합된 원격 컴퓨터와 같은 하나 이상의 컴퓨터로의 논리적 연결을 이용하여 네트워크화된 환경에서 작동할 수 있다. 원격 컴퓨터는 개인용 컴퓨터, 서버, 라우터(router), 네트워크 PC, 피어 장치 또는 기타 공통 네트워크 노드일 수 있으며, 컴퓨터(600)에 관하여 상술한 요소들 중 다수 또는 전부를 포함할 수 있다. 네트워킹 환경은 사무실, 기업 광역 통신망(WAN), 근거리 통신망(LAN), 인트라넷 및 인터넷에서 흔하다.
LAN 또는 WLAN 네트워킹 환경에서 이용되는 경우, 컴퓨터(600)는 네트워크 인터페이스(696) 또는 어댑터를 통하여 LAN에 결합될 수 있다. WAN 네트워킹 환경에서 이용되면, 컴퓨터(600)는 보통 인터넷 또는 네트워크(608)와 같이 WAN에 걸쳐 통신을 수립하기 위한 모뎀 또는 기타 수단을 포함한다. WAN은 인터넷, 예시된 네트워크(608), 다양한 다른 네트워크 또는 그들의 임의의 조합을 포함할 수 있다. 컴퓨터 간의 통신 링크, 링(ring), 메시(mesh), 버스, 클라우드(cloud) 또는 네트워크를 수립하는 다른 메커니즘이 이용될 수 있다는 것이 인정될 것이다.
일부 실시예에 따르면, 컴퓨터(600)는 네트워킹 환경에 결합될 수 있다. 컴퓨터(600)는 드라이브(630) 또는 기타 저장 장치와 연관되는 물리적 컴퓨터 판독 가능 저장 매체의 하나 이상의 예시를 포함할 수 있다. 시스템 버스는 프로세서(610)가 코드 및/또는 데이터를 컴퓨터 판독 가능 저장 매체로/로부터 판독할 수 있도록 할 수 있다. 매체는 임의의 적절한 기술을 이용하여 구현되는 저장 요소의 형태의 장치를 나타낼 수 있으며, 반도체, 자기성 재료, 광학 매체, 전기 저장장치, 전기 화학 저장장치 또는 그러한 임의의 기타 저장 기술을 포함할 수 있으나 이에 제한되지는 않는다. 매체는 RAM, ROM, 플래시 또는 기타 유형의 휘발성 또는 비휘발성 메모리 기술로서 특징지어지든 아니든 메모리(620)와 연관된 구성을 나타낼 수 있다. 매체는 또한 저장 드라이브(630)로 구현되든지 아니든지 2차적인 저장장치를 나타낼 수 있다. 하드 드라이브 구현예는 고체 상태에 특징이 있을 수 있거나 자기적으로 인코딩된 정보를 저장하는 회전 매체를 포함할 수 있다.
저장 매체는 하나 이상의 프로그램 모듈(660)을 포함할 수 있다. 프로그램 모듈(660)은 프로세서(610)로 로딩되고 실행되면, 범용 컴퓨팅 시스템을 특수 목적 컴퓨팅 시스템으로 변환하는 소프트웨어 명령어를 포함할 수 있다. 본 개시를 통하여 상세하게 설명한 바와 같이, 프로그램 모듈(660)은 컴퓨터(600)가 여기에서 논의된 컴포넌트, 논리 흐름 및/또는 데이터 구조를 이용하여 전체적인 시스템 또는 운용 환경 내에서 참여할 수 있는 다양한 도구 또는 기법을 제공할 수 있다.
프로세서(610)는 개별적으로 또는 집합적으로 임의의 수의 상태를 가정할 수 있는, 임의의 수의 트랜지스터 또는 기타 회로 요소로부터 구성될 수 있다. 더 구체적으로, 프로세서(610)는 상태 머신 또는 유한 상태 머신으로 동작할 수 있다. 그러한 머신은 프로그램 모듈(660) 내에 포함된 실행 가능 명령어를 로딩함으로써 특정 머신 또는 제2 머신으로 변환될 수 있다. 이러한 컴퓨터 판독 가능 명령어는 프로세서(610)가 상태들 간에 어떻게 전환하는지를 지정함으로써 프로세서를 변환할 수 있으며, 이에 따라 프로세서(610)를 구성하는 트랜지스터 또는 기타 회로 요소를 제1 머신으로부터 제2 머신으로 변환할 수 있다. 각 머신의 상태는 또한 하나 이상의 사용자 입력 장치(690), 네트워크 인터페이스(696), 기타의 주변 장치, 기타의 인터페이스 또는 하나 이상의 사용자 또는 기타 행위자로부터 입력을 수신함으로써 변환될 수 있다. 각 머신은 또한 프린터, 스피커, 비디오 디스플레이 등과 같은 다양한 출력 장치의 다양한 물리적 특징 또는 상태를 변환할 수 있다.
프로그램 모듈(660)을 인코딩하는 것은 저장 매체의 물리적 구조를 또한 변환할 수 있다. 본 개시의 상이한 구현예에서, 물리적 구조의 특정 변환은 다양한 요소에 의존할 수 있다. 그러한 요소의 예시는 저장 매체를 구현하는데 사용되는 기술, 저장 매체가 주 저장장치로 특징지어지는지 또는 2차적인 저장장치로 특징지어지는지 여부 등을 포함할 수 있으나 이에 제한되지는 않는다. 예컨대, 저장 매체가 반도체 기반 메모리로 구현되면, 프로그램 모듈(660)은 소프트웨어가 거기에 인코딩되면 반도체 메모리(620)의 물리적 상태를 변환할 수 있다. 예컨대, 소프트웨어는 반도체 메모리(620)를 구성하는 트랜지스터, 커패시터 또는 기타 이산 회로 요소의 상태를 변환할 수 있다.
다른 예시로서, 저장 매체는 드라이브(630)와 같은 자기 또는 광학 기술을 이용하여 구현될 수 있다. 그러한 구현예에서, 프로그램 모듈(660)은 소프트웨어가 거기에 인코딩되면, 자기 또는 광학 매체의 물리적 상태를 변환할 수 있다. 이러한 변환은 소정의 자기 매체 내에서 특정 위치의 자기적 특징을 변경하는 것을 포함할 수 있다. 이러한 변환은 또한 소정의 광학 매체 내에서 특정 위치의 물리적 특성 또는 특징을 바꾸어 그 위치의 광학적인 특징을 변경하는 것을 포함할 수 있다. 본 설명의 범위 또는 본질을 벗어나지 않으면서 물리적 매체의 다양한 다른 변환이 가능하다는 것이 인정되어야 한다.
도 7a-7c를 참조하면, 개략도는 여기에서 제시된 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치 상의 컴퓨터 프로세스를 실행하기 위한 컴퓨터 프로그램을 포함하는 컴퓨터 프로그램 제품(700)의 부분도를 도시한다. 예시적인 컴퓨터 프로그램 제품(700)의 예시적인 실시예가 신호 포함 매체(702)를 이용하여 제공되며, 704A 중 적어도 하나의 명령어 및/또는 704B 중 적어도 하나의 명령어를 포함할 수 있다. 도 7b에 도시된 바와 같은 명령어(704A)는, 복수의 프레임들을 포함하는 비디오 파일을 수신하기 위한 하나 이상의 명령어; 글로벌 모션 벡터들을 복수의 프레임들로부터 추출하기 위한 하나 이상의 명령어; 복수의 프레임들에서 코너 포인트들을 검출하기 위한 하나 이상의 명령어; 글로벌 모션 벡터들에 기초하여 로컬 모션 벡터들을 추출하기 위한 하나 이상의 명령어; 비디오 파일을 복수의 슬라이딩 윈도우들로 분할하기 위한 하나 이상의 명령어 - 복수의 슬라이딩 윈도우들 각각은 복수의 프레임들 중 적어도 2개를 포함함-; 복수의 슬라이딩 윈도우들 각각에 대하여, 로컬 모션 벡터들 및 코너 포인트들에 기초하여 모션 플로우들을 생성하기 위한 하나 이상의 명령어, 유사한 특징들을 가지는 모션 플로우들을 제1의 복수의 클러스터들로 클러스터링하기 위한 하나 이상의 명령어, 제1의 복수의 클러스터들로부터 제1의 유의미 클러스터들을 추출하기 위한 하나 이상의 명령어, 또는 복수의 슬라이딩 윈도우들 중 현재 슬라이딩 윈도우의 제1의 유의미 클러스터들 내 모션 플로우들을 복수의 슬라이딩 윈도우들 중 이전의 슬라이딩 윈도우들의 제1의 유의미 클러스터들 내 모션 플로우들과 매칭하여 관심 모션 플로우들을 생성하기 위한 하나 이상의 명령어; 유사한 특징들을 가지는 관심 모션 플로우들을 제2의 복수의 클러스터들로 클러스터링하기 위한 하나 이상의 명령어; 제2의 유의미 클러스터들을 제2의 복수의 클러스터들로부터 추출하기 위한 하나 이상의 명령어; 또는 제2의 유의미 클러스터들 내 모션 플로우들을 병합하여 대표 모션 플로우들을 생성하기 위한 하나 이상의 명령어를 포함할 수 있다.
도 7c에서 도시된 바와 같은 명령어(704B)는, 쿼리 비디오 파일을 수신하기 위한 하나 이상의 명령어; 대표 모션 플로우를 쿼리 비디오 파일로부터 추출하기 위한 하나 이상의 명령어; 대표 모션 플로우를 복수의 세그먼트들로 분할하기 위한 하나 이상의 명령어; 심볼들의 세트를 복수의 세그먼트들 각각에 매핑하여 대표 모션 플로우의 쿼리 심볼 표현을 생성하기 위한 하나 이상의 명령어 - 심볼들의 세트 내 각각의 심볼은 대응하는 세그먼트의 방향을 나타내며, 심볼들의 세트 내 심볼들의 수는 세그먼트의 길이를 나타냄 -; 또는 쿼리 심볼 표현과 유사한 후보 심볼 표현들을 가지는 대응하는 후보 모션 플로우들로 후보 비디오 파일들을 검색하기 위한 하나 이상의 명령어를 포함할 수 있다. 예컨대, 하나 이상의 명령어는 컴퓨터 실행 가능 및/또는 로직 구현의 명령어일 수 있다. 일부 실시예에서, 하나 이상의 컴퓨터 프로그램 제품(700)의 신호 포함 매체(702)는 컴퓨터 판독 가능 매체(706), 기록 가능 매체(708) 및/또는 통신 매체(710)를 포함한다.
여기에서 설명된 대상이 컴퓨터 시스템에서의 운영 체제 및 어플리케이션 프로그램의 실행과 함께 실행하는 프로그램 모듈의 일반적인 맥락에서 제시되고 있으나, 당업자는 다른 구현예가 다른 유형의 프로그램 모듈과 조합하여 수행될 수 있다는 것을 인식할 것이다. 일반적으로, 프로그램 모듈은, 루틴, 프로그램, 컴포넌트, 데이터 구조 및 특정 태스크를 수행하거나 특정한 추상 데이터 유형(abstract data type)을 구현하는 기타 유형의 구조를 포함한다. 또한, 당업자는 여기에서 설명된 대상이 휴대용 장치, 다중 코어 프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능한 가전, 미니 컴퓨터, 메인 프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 것을 인정할 것이다.
본 개시는 다양한 태양의 예시로서 의도된 본 출원에 기술된 특정 실시예들에 제한되지 않을 것이다. 당업자에게 명백할 바와 같이, 많은 수정과 변형들이 그 사상과 범위를 벗어나지 않으면서 이루어질 수 있다. 여기에 열거된 것들에 더하여, 본 개시의 범위 안에서 기능적으로 균등한 방법과 장치가 위의 설명으로부터 당업자에게 명백할 것이다. 그러한 수정과 변형들은 첨부된 청구항의 범위에 들어가도록 의도된 것이다. 본 개시는 첨부된 청구항과 그러한 청구항에 부여된 균등물의 전 범위에 의해서만 제한될 것이다. 본 개시가 물론 다양할 수 있는 특정 방법, 시약, 합성 구성 또는 생물학적 시스템에 제한되지 않는 것으로 이해될 것이다. 또한, 여기에서 사용된 용어는 특정 실시예를 기술하기 위한 목적이고, 제한하는 것으로 의도되지 않음이 이해될 것이다.
여기에서 실질적으로 임의의 복수 및/또는 단수의 용어의 사용에 대하여, 당업자는 맥락 및/또는 응용에 적절하도록, 복수를 단수로 및/또는 단수를 복수로 해석할 수 있다. 다양한 단수/복수의 치환은 명확성을 위해 여기에서 명시적으로 기재될 수 있다.
당업자라면, 일반적으로 본 개시에 사용되며 특히 첨부된 청구범위(예를 들어, 첨부된 청구범위)에 사용된 용어들이 일반적으로 "개방적(open)" 용어(예를 들어, 용어 "포함하는"은 "포함하지만 이에 제한되지 않는"으로, 용어 "갖는"는 "적어도 갖는"으로, 용어 "포함하다"는 "포함하지만 이에 한정되지 않는" 등으로 해석되어야 함)로 의도되었음을 이해할 것이다. 또한, 당업자라면, 도입된 청구항의 기재사항의 특정 수가 의도된 경우, 그러한 의도가 청구항에 명시적으로 기재될 것이며, 그러한 기재사항이 없는 경우, 그러한 의도가 없음을 또한 이해할 것이다. 예를 들어, 이해를 돕기 위해, 이하의 첨부 청구범위는 "적어도 하나" 및 "하나 이상" 등의 도입 구절의 사용을 포함하여 청구항 기재사항을 도입할 수 있다. 그러나, 그러한 구절의 사용이, 부정관사 "하나"("a" 또는 "an")에 의한 청구항 기재사항의 도입이, 그러한 하나의 기재사항을 포함하는 실시예로, 그러한 도입된 청구항 기재사항을 포함하는 특정 청구항을 제한함을 암시하는 것으로 해석되어서는 안되며, 동일한 청구항이 도입 구절인 "하나 이상" 또는 "적어도 하나" 및 "하나"("a" 또는 "an")과 같은 부정관사(예를 들어, "하나"는 "적어도 하나" 또는 "하나 이상"을 의미하는 것으로 일반적으로 해석되어야 함)를 포함하는 경우에도 마찬가지로 해석되어야 한다. 이는 청구항 기재사항을 도입하기 위해 사용된 정관사의 경우에도 적용된다. 또한, 도입된 청구항 기재사항의 특정 수가 명시적으로 기재되는 경우에도, 당업자라면 그러한 기재가 일반적으로 적어도 기재된 수(예를 들어, 다른 수식어가 없는 "두 개의 기재사항"을 단순히 기재한 것은, 일반적으로 적어도 두 개의 기재사항 또는 두 개 이상의 기재사항을 의미함)를 의미하도록 해석되어야 함을 이해할 것이다. 또한, "A, B 및 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 및 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템을 포함하지만 이에 제한되지 않음). "A, B 또는 C 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 또는 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템을 포함하지만 이에 제한되지 않음). 또한 당업자라면, 실질적으로 어떠한 이접 접속어(disjunctive word) 및/또는 두 개 이상의 대안적인 용어들을 나타내는 구절은, 그것이 상세한 설명, 청구범위 또는 도면에 있는지와 상관없이, 그 용어들 중의 하나, 그 용어들 중의 어느 하나, 또는 그 용어들 두 개 모두를 포함하는 가능성을 고려했음을 이해할 것이다. 예를 들어, "A 또는 B"라는 구절은 "A" 또는 "B" 또는 "A 및 B"의 가능성을 포함하는 것으로 이해될 것이다.
또한, 마쿠쉬 그룹을 이용하여 본 개시의 특징 또는 양상이 기술될 때는, 당업자라면 본 개시가 또한 마쿠쉬 그룹의 임의의 개별 구성원 또는 구성원의 서브그룹을 이용하여 기술됨을 이해할 것이다.
서면의 기재를 제공하는 것과 같은 어떠한 그리고 모든 목적을 위해서, 본 개시에 기재된 모든 범위는 모든 어떠한 가능한 하위범위 및 그 하위범위의 조합을 또한 포괄함이 이해 되어야 한다. 임의의 나열된 범위는, 그 동일한 범위가 적어도 동일한 이분 범위, 삼분 범위, 사분 범위, 오분 범위, 십분 범위 등으로 분할될 수 있으며, 그러한 동일 범위를 충분히 기술하는 것으로 용이하게 인식될 수 있다. 제한되지 않은 예로서, 본 개시에 기재된 각 범위는, 하위 삼분, 중간 삼분, 상위 삼분 등으로 용이하게 분할될 수 있다. 또한, "까지(up to)," "적어도(at least)," "더 큰(greater than)," "더 적은(less than)" 등과 같은 모든 언어는 인용된 수를 포함하며, 상술한 바와 같은 하위 범위로 분할될 수 있는 범위들을 나타냄이 이해되어야 한다. 마지막으로, 범위는 각 개별 구성요소를 포함됨이 이해되어야 한다. 따라서, 예를 들어, 1 내지 3 셀(cell)을 가지는 그룹은 1, 2 또는 3 셀을 가지는 그룹을 나타낸다. 유사하게, 1 내지 5 셀을 가지는 그룹은 1, 2, 3, 4 또는 5 셀을 가지는 그룹을 나타내는 등이다.
다양한 양상 및 실시예들이 본 개시에서 기술되었지만, 다른 양상 및 실시예들이 당업자에게 명확할 것이다. 본 개시에 기재된 다양한 양상 및 실시예는 예시의 목적으로 제시된 것이고, 제한하려고 의도된 것은 아니며, 진정한 범위 및 사상은 이하 청구범위에 의해 나타낸다.

Claims (25)

  1. 비디오로부터 대표 모션 플로우(motion flow)를 추출하기 위한 컴퓨터 구현 방법으로서,
    프로세서 및 메모리를 가지는 컴퓨터를 통하여, 복수의 프레임(frame)들을 포함하는 비디오 파일을 수신하는 단계;
    상기 컴퓨터를 통하여, 상기 비디오 파일을 복수의 슬라이딩 윈도우(sliding window)들로 분할하는 단계 - 상기 복수의 슬라이딩 윈도우들 각각은 상기 복수의 프레임들 중 적어도 2개를 포함함 -;
    상기 복수의 슬라이딩 윈도우들 각각에 대하여,
    상기 컴퓨터를 통하여, 모션 플로우들을 생성하는 단계,
    상기 컴퓨터를 통하여, 유사한 특징들을 가지는 상기 모션 플로우들을 제1의 복수의 클러스터(cluster)들로 클러스터링(clustering)하는 단계,
    상기 컴퓨터를 통하여, 상기 제1의 복수의 클러스터들로부터 제1의 유의미(meaningful) 클러스터들을 추출하는 단계, 및
    상기 컴퓨터를 통하여, 상기 복수의 슬라이딩 윈도우들 중 현재 슬라이딩 윈도우의 상기 제1의 유의미 클러스터들 내 상기 모션 플로우들을 상기 복수의 슬라이딩 윈도우들 중 이전의 슬라이딩 윈도우들의 상기 제1의 유의미 클러스터들 내 상기 모션 플로우들과 매칭하여 관심(interesting) 모션 플로우들을 생성하는 단계; 및
    상기 컴퓨터를 통하여, 상기 관심 모션 플로우들에 기초하여 대표 모션 플로우들을 결정하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 컴퓨터를 통하여, 상기 복수의 프레임들로부터 글로벌 모션 벡터(global motion vector)들을 추출하는 단계;
    상기 컴퓨터를 통하여, 상기 복수의 프레임들 내 코너 포인트(corner point)들을 검출하는 단계; 및
    상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들에 기초하여 로컬 모션 벡터(local motion vector)들을 추출하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 모션 플로우들을 생성하는 단계는, 상기 컴퓨터를 통하여, 상기 로컬 모션 벡터들 및 상기 코너 포인트들에 기초하여 상기 모션 플로우들을 생성하는 단계를 포함하는, 컴퓨터 구현 방법.
  4. 제3항에 있어서,
    상기 복수의 프레임들 각각은 복수의 블록들을 포함하고;
    상기 로컬 모션 벡터들 각각은 상기 복수의 블록들 중 하나에 대응하며;
    상기 로컬 모션 벡터들 및 상기 코너 포인트들에 기초하여 상기 모션 플로우들을 생성하는 단계는, 상기 컴퓨터를 통하여, 상기 복수의 프레임들 중 인접한 프레임들에서의 동일한 코너 포인트들을 포함하는 상기 블록들 내 상기 로컬 모션 벡터들을 매칭하는 단계를 포함하는, 컴퓨터 구현 방법.
  5. 제2항에 있어서,
    상기 비디오 파일은 MPEG(Moving Picture Experts Group) 표준 비디오 파일을 포함하고;
    상기 복수의 프레임들은 B-프레임들 및 P-프레임들을 포함하며;
    상기 복수의 프레임들로부터 상기 글로벌 모션 벡터들을 추출하는 단계는, 상기 컴퓨터를 통하여, 상기 MPEG 표준 비디오 파일 내 상기 B-프레임들 및 상기 P-프레임들로부터 상기 글로벌 모션 벡터들을 추출하는 단계를 포함하는, 컴퓨터 구현 방법.
  6. 제2항에 있어서,
    상기 복수의 프레임들로부터 글로벌 모션 벡터들을 추출하는 단계는, 상기 컴퓨터를 통하여, 상기 비디오 파일로부터 상기 글로벌 모션 벡터들을 광학 플로우 추출 기법(optical flow extraction technique)을 이용하여 추출하는 단계를 포함하는, 컴퓨터 구현 방법.
  7. 제2항에 있어서,
    상기 복수의 프레임들 내 코너 포인트들을 검출하는 단계는, 상기 컴퓨터를 통하여, 해리스 코너 검출 기법(Harris corner detection technique)을 이용하여 상기 복수의 프레임들 내 상기 코너 포인트들을 검출하는 단계를 포함하는, 컴퓨터 구현 방법.
  8. 제2항에 있어서,
    상기 글로벌 모션 벡터들에 기초하여 로컬 모션 벡터들을 추출하는 단계는,
    상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들이 카메라 모션을 포함하는지 결정하는 단계;
    상기 글로벌 모션 벡터들이 상기 카메라 모션을 포함한다는 결정에 응답하여, 상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들 내 상기 카메라 모션을 보상하여 상기 로컬 모션 벡터들을 생성하는 단계; 및
    상기 글로벌 모션 벡터들이 상기 카메라 모션을 포함하지 않는다는 결정에 응답하여, 상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들을 상기 로컬 모션 벡터들로서 이용하는 단계를 포함하는, 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 글로벌 모션 벡터들이 카메라 모션을 포함하는지 결정하는 단계는,
    상기 컴퓨터를 통하여, 복수의 프레임들 내 다수의 프레임들 각각에서의 상기 코너 포인트들의 수를 결정하는 단계;
    상기 컴퓨터를 통하여, 상기 다수의 프레임들 각각에서의 상기 코너 포인트들의 수가 상기 다수의 프레임들 중 하나 이상에서의 상당한 감소를 포함하는지 결정하는 단계;
    상기 다수의 프레임들 각각에서의 상기 코너 포인트들의 수가 상기 다수의 프레임들 중 하나 이상에서의 상당한 감소를 포함한다고 결정하는 것에 응답하여, 상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들이 상기 카메라 모션을 포함한다고 결정하는 단계; 및
    상기 다수의 프레임들 각각에서의 상기 코너 포인트들의 수가 상기 다수의 프레임들 중 하나 이상에서의 상당한 감소를 포함하지 않는다고 결정하는 것에 응답하여, 상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들이 상기 카메라 모션을 포함하지 않는다고 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
  10. 제8항에 있어서
    상기 글로벌 모션 벡터들이 카메라 모션을 포함하는지 결정하는 단계는,
    상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들에 대응하는 상기 코너 포인트들의 수를 결정하는 단계;
    상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들에 대응하는 상기 코너 포인트들의 수가 임계값을 초과하는지 결정하는 단계;
    상기 글로벌 모션 벡터들에 대응하는 상기 코너 포인트들의 수가 상기 임계값을 초과한다고 결정하는 것에 응답하여, 상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들이 상기 카메라 모션을 포함한다고 결정하는 단계; 및
    상기 글로벌 모션 벡터들에 대응하는 상기 코너 포인트들의 수가 상기 임계값을 초과하지 않는다고 결정하는 것에 응답하여, 상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들이 상기 카메라 모션을 포함하지 않는다고 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
  11. 제8항에 있어서,
    상기 글로벌 모션 벡터들이 카메라 모션을 포함하는지 결정하는 단계는,
    상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들에 기초하여 평균 모션 벡터를 결정하는 단계;
    상기 컴퓨터를 통하여, 상기 평균 모션 벡터가 임계값을 초과하는지 결정하는 단계;
    상기 평균 모션 벡터가 상기 임계값을 초과한다고 결정하는 것에 응답하여, 상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들이 상기 카메라 모션을 포함한다고 결정하는 단계; 및
    상기 평균 모션 벡터가 상기 임계값을 초과하지 않는다고 결정하는 것에 응답하여, 상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들이 상기 카메라 모션을 포함하지 않는다고 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
  12. 제8항에 있어서,
    상기 글로벌 모션 벡터들이 카메라 모션을 포함하는지 결정하는 단계는,
    상기 컴퓨터를 통하여, 상기 글로벌 모션 벡터들이 4 파라미터 추정 모델(four-parameter estimation model)로 훈련(train)된 서포트 벡터 머신(support vector machine(SVM))을 이용하여 카메라 모션을 포함하는지 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
  13. 제1항에 있어서,
    상기 복수의 슬라이딩 윈도우들 각각은 상기 복수의 프레임들 중 특정 수의 인접한 프레임들을 포함하는, 컴퓨터 구현 방법.
  14. 제1항에 있어서,
    상기 유사한 특징들을 가지는 모션 플로우들을 제1의 복수의 클러스터들로 클러스터링하는 단계는,
    상기 컴퓨터를 통하여, 상기 모션 플로우들이 단위 길이를 가지도록 상기 모션 플로우들을 정규화하는 단계;
    상기 모션 플로우들이 단위 길이를 가지도록 상기 모션 플로우들을 정규화한 후, 상기 컴퓨터를 통하여, 상기 모션 플로우들에 이산 코사인 변환(discrete cosine transform(DCT))을 적용하는 단계;
    상기 모션 플로우들에 상기 DCT를 적용한 후, 상기 컴퓨터를 통하여, 상기 모션 플로우들로부터 다차원 벡터들을 추출하는 단계 - 상기 다차원 벡터들 각각은 상기 모션 플로우들 중 대응하는 것의 패턴 및 위치를 나타냄; 및
    상기 컴퓨터를 통하여, 상기 대응하는 다차원 벡터들이 유사한 패턴 및 유사한 위치를 가지는 상기 모션 플로우들을 클러스터링하는 단계를 포함하는, 컴퓨터 구현 방법.
  15. 제1항에 있어서,
    상기 관심 모션 플로우들에 기초하여 상기 대표 모션 플로우들을 결정하는 단계는,
    상기 컴퓨터를 통하여, 상기 유사한 특징들을 가지는 상기 관심 모션 플로우들을 제2의 복수의 클러스터들로 클러스터링하는 단계;
    상기 컴퓨터를 통하여, 상기 제2의 복수의 클러스터들로부터 제2의 유의미 클러스터들을 추출하는 단계; 및
    상기 컴퓨터를 통하여, 상기 제2의 유의미 클러스터들 내 상기 모션 플로우들을 병합하여 적어도 상기 대표 모션 플로우를 생성하는 단계를 포함하는, 컴퓨터 구현 방법.
  16. 제15항에 있어서,
    상기 유사한 특징들을 가지는 상기 관심 모션 플로우들을 제2의 복수의 클러스터들로 클러스터링하는 단계는, 상기 컴퓨터를 통하여, 상기 대응하는 다차원 벡터들이 유사한 패턴 및 유사한 위치를 가지는 상기 관심 모션 플로우들을 클러스터링하는 단계를 포함하는, 컴퓨터 구현 방법.
  17. 제15항에 있어서,
    상기 제2의 유의미 클러스터들 내 상기 모션 플로우들을 병합하여 대표 모션 플로우들을 생성하는 단계는, 상기 컴퓨터를 통하여, 상기 제2의 유의미 클러스터들에서 중복되는(redundant) 상기 모션 플로우들을 삭제하여, 상기 대표 모션 플로우들을 생성하는 단계를 포함하는, 컴퓨터 구현 방법.
  18. 제1항에 있어서,
    상기 제1의 복수의 클러스터들로부터 제1의 유의미 클러스터들을 추출하는 단계는, 상기 컴퓨터를 통하여, 노이즈(noise)를 나타내는 클러스터들을 상기 제1의 복수의 클러스터들로부터 필터링(filtering)하는 단계를 포함하는, 컴퓨터 구현 방법.
  19. 제18항에 있어서,
    노이즈를 나타내는 클러스터들을 상기 제1의 복수의 클러스터들로부터 필터링하는 단계는, 상기 컴퓨터를 통하여, 임계값 아래의 크기를 가지는 클러스터들을 상기 복수의 클러스터들로부터 필터링하는 단계를 포함하는, 컴퓨터 구현 방법.
  20. 컴퓨터에 의하여 실행되면, 상기 컴퓨터로 하여금,
    복수의 프레임들을 포함하는 비디오 파일을 수신하고;
    상기 복수의 프레임들로부터 글로벌 모션 벡터들을 추출하고;
    상기 복수의 프레임들 내 코너 포인트들을 검출하고;
    상기 글로벌 모션 벡터들에 기초하여 로컬 모션 벡터들을 추출하고;
    상기 비디오 파일을 복수의 슬라이딩 윈도우들로 분할하고 - 상기 복수의 슬라이딩 윈도우들 각각은 상기 복수의 프레임들 중 적어도 두 개를 포함함-;
    상기 복수의 슬라이딩 윈도우들 각각에 대하여,
    상기 로컬 모션 벡터들 및 상기 코너 포인트들에 기초하여 모션 플로우들을 생성하고,
    유사한 특징들을 가지는 상기 모션 플로우들을 제1의 복수의 클러스터들로 클러스터링하고,
    상기 제1의 복수의 클러스터들로부터 제1의 유의미 클러스터들을 추출하며,
    상기 복수의 슬라이딩 윈도우들 중 현재 슬라이딩 윈도우의 상기 제1의 유의미 클러스터들 내 상기 모션 플로우들을 상기 복수의 슬라이딩 윈도우들 중 이전 슬라이딩 윈도우들의 상기 제1의 유의미 클러스터들 내 상기 모션 플로우들과 매칭하여 관심 모션 플로우들을 생성하고;
    상기 유사한 특징들을 가지는 상기 관심 모션 플로우들을 제2의 복수의 클러스터들로 클러스터링하고;
    상기 제2의 복수의 클러스터들로부터 제2의 유의미 클러스터들을 추출하며;
    상기 제2의 유의미 클러스터들 내 상기 모션 플로우들을 병합하여 대표 모션 플로우들을 생성하도록 하는, 컴퓨터 실행 가능 명령어들이 저장된 컴퓨터 판독 가능 저장 매체.
  21. 컴퓨터 시스템으로서,
    프로세서;
    상기 프로세서에 결합된 메모리; 및
    상기 프로세서에 의하여 실행되면 상기 컴퓨터 시스템으로 하여금,
    쿼리 비디오 파일(query video file)을 수신하는 것;
    상기 쿼리 비디오 파일로부터 대표 모션 플로우를 추출하는 것;
    상기 대표 모션 플로우를 복수의 세그먼트들로 분할하는 것;
    심볼들의 세트를 상기 복수의 세그먼트들 각각에 매핑하여 상기 대표 모션 플로우의 쿼리 심볼 표현을 생성하는 것 - 상기 심볼들의 세트 내 각각의 심볼은 상기 대응하는 세그먼트의 방향을 나타내며, 상기 심볼들의 세트 내 심볼들의 수는 상기 세그먼트의 길이를 나타냄-; 및
    상기 쿼리 심볼 표현과 유사한 후보 심볼 표현들을 가지는 대응하는 후보 모션 플로우들로 후보 비디오 파일들을 검색하는 것에 의하여 비디오를 검색하도록 하는, 상기 프로세서에서 상기 메모리로부터 실행하는 비디오 검색 어플리케이션
    을 포함하는 컴퓨터 시스템.
  22. 제21항에 있어서,
    상기 쿼리 비디오 파일은 복수의 프레임들을 포함하고,
    상기 쿼리 비디오 파일로부터 대표 모션 플로우를 추출하는 것은,
    상기 쿼리 비디오 파일을 복수의 슬라이딩 윈도우들로 분할하는 것 - 상기 복수의 슬라이딩 윈도우들 각각은 상기 복수의 프레임들 중 적어도 두 개를 포함함-;
    상기 복수의 슬라이딩 윈도우들 각각에 대하여,
    모션 플로우들을 생성하고,
    유사한 특징들을 가지는 상기 모션 플로우들을 제1의 복수의 클러스터들로 클러스터링하고,
    상기 제1의 복수의 클러스터들로부터 제1의 유의미 클러스터들을 추출하며,
    상기 복수의 슬라이딩 윈도우들 중 현재 슬라이딩 윈도우의 상기 제1의 유의미 클러스터들 내 상기 모션 플로우들을 상기 복수의 슬라이딩 윈도우들 중 이전의 슬라이딩 윈도우들의 상기 제1의 유의미 클러스터들 내 상기 모션 플로우들과 매칭하여 관심 모션 플로우들을 생성하는 것; 및
    상기 관심 모션 플로우들에 기초하여 적어도 상기 대표 모션 플로우를 결정하는 것을 포함하는, 컴퓨터 시스템.
  23. 제22항에 있어서,
    상기 비디오 검색 어플리케이션은, 상기 프로세서에 의하여 실행되면, 상기 컴퓨터로 하여금,
    상기 복수의 프레임들로부터 글로벌 모션 벡터들을 추출하는 것;
    상기 복수의 프레임들 내 코너 포인트들을 검출하는 것; 및
    상기 글로벌 모션 벡터들에 기초하여 로컬 모션 벡터들을 추출하는 것에 더 의하여 상기 비디오를 검색하도록 하는, 컴퓨터 시스템.
  24. 제23항에 있어서,
    상기 모션 플로우들을 생성하는 것은, 상기 로컬 모션 벡터들 및 상기 코너 포인트들에 기초하여 상기 모션 플로우들을 생성하는 것을 포함하는, 컴퓨터 시스템.
  25. 제22항에 있어서,
    상기 관심 모션 플로우들에 기초하여 적어도 상기 대표 모션 플로우를 결정하는 것은,
    상기 유사한 특징들을 가지는 상기 관심 모션 플로우들을 제2의 복수의 클러스터들로 클러스터링하는 것;
    상기 제2의 복수의 클러스터들로부터 제2의 유의미 클러스터들을 추출하는 것; 및
    상기 제2의 유의미 클러스터들 내 상기 모션 플로우들을 병합하여 적어도 상기 대표 모션 플로우를 생성하는 것을 포함하는, 컴퓨터 시스템.
KR1020137005049A 2010-08-02 2010-08-02 효과적인 비디오 분류 및 검색을 위한 대표 모션 플로우 추출 KR101436342B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2010/075631 WO2012016370A1 (en) 2010-08-02 2010-08-02 Representative motion flow extraction for effective video classification and retrieval

Publications (2)

Publication Number Publication Date
KR20130060274A true KR20130060274A (ko) 2013-06-07
KR101436342B1 KR101436342B1 (ko) 2014-09-01

Family

ID=45558901

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137005049A KR101436342B1 (ko) 2010-08-02 2010-08-02 효과적인 비디오 분류 및 검색을 위한 대표 모션 플로우 추출

Country Status (5)

Country Link
US (2) US8995531B2 (ko)
EP (1) EP2601782A4 (ko)
JP (1) JP5746766B2 (ko)
KR (1) KR101436342B1 (ko)
WO (1) WO2012016370A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160074958A (ko) * 2014-12-19 2016-06-29 포항공과대학교 산학협력단 객체의 움직임 분석을 이용한 모션 효과 생성 장치 및 방법
WO2018131729A1 (ko) * 2017-01-11 2018-07-19 전자부품연구원 단일 카메라를 이용한 영상에서 움직이는 객체 검출 방법 및 시스템
US11989931B2 (en) 2021-09-24 2024-05-21 Samsung Electronics Co., Ltd. Method and apparatus with object classification

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130243077A1 (en) * 2012-03-13 2013-09-19 Canon Kabushiki Kaisha Method and apparatus for processing moving image information, and method and apparatus for identifying moving image pattern
US9172875B2 (en) * 2012-10-12 2015-10-27 Arcsoft Hangzhou Co., Ltd. Video processing method and electronic device
US9197861B2 (en) * 2012-11-15 2015-11-24 Avo Usa Holding 2 Corporation Multi-dimensional virtual beam detection for video analytics
US9317770B2 (en) * 2013-04-28 2016-04-19 Tencent Technology (Shenzhen) Co., Ltd. Method, apparatus and terminal for detecting image stability
JP6468703B2 (ja) * 2013-12-20 2019-02-13 キヤノン株式会社 動き検出装置、動き検出方法及びプログラム
US20180336122A1 (en) * 2015-11-30 2018-11-22 Entit Software Llc Generating application flow entities
WO2017123203A1 (en) 2016-01-12 2017-07-20 Entit Software Llc Determining visual testing coverages
US11599253B2 (en) * 2020-10-30 2023-03-07 ROVl GUIDES, INC. System and method for selection of displayed objects by path tracing
US11670030B2 (en) * 2021-07-01 2023-06-06 Electronic Arts Inc. Enhanced animation generation based on video with local phase
US11562523B1 (en) 2021-08-02 2023-01-24 Electronic Arts Inc. Enhanced animation generation based on motion matching using local bone phases
US20240144434A1 (en) * 2022-11-01 2024-05-02 Samsung Electronics Co., Ltd. Semi-global neural image alignment

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392367A (en) * 1991-03-28 1995-02-21 Hsu; Wen H. Automatic planar point pattern matching device and the matching method thereof
US5260793A (en) * 1991-07-18 1993-11-09 Zenith Electronics Corporation Receiver post coder selection circuit
JP3522400B2 (ja) * 1995-08-11 2004-04-26 リーダー電子株式会社 流れ表示式の指示方法及び装置
US5734893A (en) * 1995-09-28 1998-03-31 Ibm Corporation Progressive content-based retrieval of image and video with adaptive and iterative refinement
US6215898B1 (en) * 1997-04-15 2001-04-10 Interval Research Corporation Data processing system and method
US6741655B1 (en) * 1997-05-05 2004-05-25 The Trustees Of Columbia University In The City Of New York Algorithms and system for object-oriented content-based video search
JP3780623B2 (ja) 1997-05-16 2006-05-31 株式会社日立製作所 動画像の記述方法
US6366701B1 (en) * 1999-01-28 2002-04-02 Sarnoff Corporation Apparatus and method for describing the motion parameters of an object in an image sequence
US6643387B1 (en) * 1999-01-28 2003-11-04 Sarnoff Corporation Apparatus and method for context-based indexing and retrieval of image sequences
US7003038B2 (en) * 1999-09-27 2006-02-21 Mitsubishi Electric Research Labs., Inc. Activity descriptor for video sequences
JP4536940B2 (ja) * 2001-01-26 2010-09-01 キヤノン株式会社 画像処理装置、画像処理方法、記憶媒体、及びコンピュータプログラム
US6614466B2 (en) * 2001-02-22 2003-09-02 Texas Instruments Incorporated Telescopic reconstruction of facial features from a speech pattern
US6996254B2 (en) * 2001-06-18 2006-02-07 Microsoft Corporation Incremental motion estimation through local bundle adjustment
US7440504B2 (en) * 2001-09-24 2008-10-21 Broadcom Corporation Method and apparatus for performing deblocking filtering with interlace capability
US6965645B2 (en) * 2001-09-25 2005-11-15 Microsoft Corporation Content-based characterization of video frame sequences
KR100415313B1 (ko) * 2001-12-24 2004-01-16 한국전자통신연구원 동영상에서 상관 정합과 시스템 모델을 이용한 광류와카메라 움직임 산출 장치
JP2004007379A (ja) * 2002-04-10 2004-01-08 Toshiba Corp 動画像符号化方法及び動画像復号化方法
US7672369B2 (en) * 2002-02-13 2010-03-02 Reify Corporation Method and apparatus for acquisition, compression, and characterization of spatiotemporal signals
US7505604B2 (en) * 2002-05-20 2009-03-17 Simmonds Precision Prodcuts, Inc. Method for detection and recognition of fog presence within an aircraft compartment using video images
US7483624B2 (en) * 2002-08-30 2009-01-27 Hewlett-Packard Development Company, L.P. System and method for indexing a video sequence
EP1579311A2 (en) * 2002-12-20 2005-09-28 Koninklijke Philips Electronics N.V. Segment-based motion estimation
US7408986B2 (en) * 2003-06-13 2008-08-05 Microsoft Corporation Increasing motion smoothness using frame interpolation with motion analysis
KR100579493B1 (ko) * 2003-06-16 2006-05-15 삼성전자주식회사 움직임 벡터 생성 장치 및 방법
US20050002904A1 (en) * 2003-07-03 2005-01-06 Wary Kishore K. Uses of vascular endothelial growth factor and type I collagen inducible protein (VCIP)
US7313185B2 (en) * 2003-08-01 2007-12-25 Microsoft Corporation Sequential motion pattern representation
US7490071B2 (en) * 2003-08-29 2009-02-10 Oracle Corporation Support vector machines processing system
US7127083B2 (en) * 2003-11-17 2006-10-24 Vidient Systems, Inc. Video surveillance system with object detection and probability scoring based on object class
US7483596B2 (en) * 2004-01-13 2009-01-27 International Business Machines Corporation Performance digital image sensing
JP2006217046A (ja) 2005-02-01 2006-08-17 Olympus Corp 映像インデックス画像生成装置及び映像のインデックス画像を生成するプログラム
US8363959B2 (en) * 2005-03-21 2013-01-29 Yeda Research & Development Co. Ltd. Detecting irregularities
US7970170B2 (en) * 2005-05-09 2011-06-28 Lockheed Martin Corporation Continuous extended range image processing
WO2007007225A2 (en) * 2005-07-12 2007-01-18 Nxp B.V. Method and device for removing motion blur effects
US20070025442A1 (en) * 2005-07-28 2007-02-01 Sanyo Electric Co., Ltd. Coding method for coding moving images
US7783095B2 (en) * 2005-08-11 2010-08-24 Siemens Medical Solutions Usa, Inc. System and method for fetal biometric measurements from ultrasound data and fusion of same for estimation of fetal gestational age
US7777781B2 (en) * 2005-08-26 2010-08-17 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Method and system for determining the motion of an imaging apparatus
EP1977395B1 (en) * 2006-01-27 2018-10-24 Imax Corporation Methods and systems for digitally re-mastering of 2d and 3d motion pictures for exhibition with enhanced visual quality
US8582660B2 (en) * 2006-04-13 2013-11-12 Qualcomm Incorporated Selective video frame rate upconversion
TW200822751A (en) * 2006-07-14 2008-05-16 Objectvideo Inc Video analytics for retail business process monitoring
EP2049983A2 (en) * 2006-08-07 2009-04-22 Yeda Research And Development Co. Ltd. Data similarity and importance using local and global evidence scores
US20080074496A1 (en) * 2006-09-22 2008-03-27 Object Video, Inc. Video analytics for banking business process monitoring
US8073196B2 (en) * 2006-10-16 2011-12-06 University Of Southern California Detection and tracking of moving objects from a moving platform in presence of strong parallax
KR100790178B1 (ko) * 2006-10-20 2008-01-02 삼성전자주식회사 동영상의 프레임 레이트 변환 방법
JP4919036B2 (ja) * 2007-01-30 2012-04-18 アイシン精機株式会社 移動物体認識装置
DE102007007040A1 (de) * 2007-02-07 2008-08-14 Carl Zeiss Microlmaging Gmbh Messeinrichtung zur optischen und spektroskopischen Untersuchung einer Probe
US8760519B2 (en) * 2007-02-16 2014-06-24 Panasonic Corporation Threat-detection in a distributed multi-camera surveillance system
WO2008103929A2 (en) * 2007-02-23 2008-08-28 Johnson Controls Technology Company Video processing systems and methods
CN101558637B (zh) * 2007-03-20 2011-10-19 松下电器产业株式会社 摄像装置以及摄像方法
US8280539B2 (en) * 2007-04-06 2012-10-02 The Echo Nest Corporation Method and apparatus for automatically segueing between audio tracks
US8558952B2 (en) * 2007-05-25 2013-10-15 Nec Corporation Image-sound segment corresponding apparatus, method and program
US8027542B2 (en) * 2007-06-18 2011-09-27 The Regents Of The University Of California High speed video action recognition and localization
US8358840B2 (en) * 2007-07-16 2013-01-22 Alexander Bronstein Methods and systems for representation and matching of video content
JP4683031B2 (ja) * 2007-10-17 2011-05-11 ソニー株式会社 電子機器、コンテンツ分類方法及びそのプログラム
GB0725094D0 (en) * 2007-12-21 2008-01-30 Univ Liverpool Image processing
US8374247B2 (en) * 2008-01-14 2013-02-12 Broadcom Corporation Method and system for hierarchical motion estimation with multi-layer sub-pixel accuracy and motion vector smoothing
US8275033B2 (en) * 2008-01-15 2012-09-25 Sony Corporation Picture mode selection for video transcoding
JP2009200713A (ja) * 2008-02-20 2009-09-03 Sony Corp 画像処理装置、画像処理方法、プログラム
CN101582063A (zh) 2008-05-13 2009-11-18 华为技术有限公司 视频服务系统、视频服务装置及其关键帧的提取方法
US8373763B2 (en) * 2008-05-22 2013-02-12 GM Global Technology Operations LLC Self calibration of extrinsic camera parameters for a vehicle camera
US20100215104A1 (en) * 2009-02-26 2010-08-26 Akira Osamoto Method and System for Motion Estimation
TWI401972B (zh) * 2009-06-23 2013-07-11 Acer Inc 時間性錯誤隱藏方法
US9877033B2 (en) * 2009-12-21 2018-01-23 Qualcomm Incorporated Temporal and spatial video block reordering in a decoder to improve cache hits
US20110205359A1 (en) * 2010-02-19 2011-08-25 Panasonic Corporation Video surveillance system
JP5509437B2 (ja) * 2010-03-01 2014-06-04 国立大学法人山口大学 超音波診断装置
ES2745739T3 (es) * 2010-09-20 2020-03-03 Qualcomm Inc Un entorno adaptable para realidad aumentada asistida por la nube
US8900145B2 (en) * 2011-03-10 2014-12-02 University Of Washington Through Its Center For Commercialization Ultrasound systems and methods for real-time noninvasive spatial temperature estimation

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160074958A (ko) * 2014-12-19 2016-06-29 포항공과대학교 산학협력단 객체의 움직임 분석을 이용한 모션 효과 생성 장치 및 방법
WO2018131729A1 (ko) * 2017-01-11 2018-07-19 전자부품연구원 단일 카메라를 이용한 영상에서 움직이는 객체 검출 방법 및 시스템
US11989931B2 (en) 2021-09-24 2024-05-21 Samsung Electronics Co., Ltd. Method and apparatus with object classification

Also Published As

Publication number Publication date
KR101436342B1 (ko) 2014-09-01
EP2601782A1 (en) 2013-06-12
US8995531B2 (en) 2015-03-31
JP2013540377A (ja) 2013-10-31
US20150131863A1 (en) 2015-05-14
US9268794B2 (en) 2016-02-23
WO2012016370A1 (en) 2012-02-09
US20120275521A1 (en) 2012-11-01
EP2601782A4 (en) 2016-09-28
JP5746766B2 (ja) 2015-07-08

Similar Documents

Publication Publication Date Title
KR101436342B1 (ko) 효과적인 비디오 분류 및 검색을 위한 대표 모션 플로우 추출
Zhou et al. Violence detection in surveillance video using low-level features
US10867183B2 (en) Selecting and presenting representative frames for video previews
CN107430687B (zh) 视频流的基于实体的时间分割
Yang et al. Exploiting web images for semantic video indexing via robust sample-specific loss
US9177208B2 (en) Determining feature vectors for video volumes
US9177207B2 (en) Image cropping using supervised learning
US9373040B2 (en) Image matching using motion manifolds
Zhang et al. Action recognition based on overcomplete independent components analysis
Sumbul et al. Informative and representative triplet selection for multilabel remote sensing image retrieval
Yang et al. STA-TSN: Spatial-temporal attention temporal segment network for action recognition in video
Zheng et al. A feature-adaptive semi-supervised framework for co-saliency detection
Han et al. Class-aware feature aggregation network for video object detection
Ming et al. Uniform local binary pattern based texture-edge feature for 3D human behavior recognition
Kanagaraj et al. Curvelet transform based feature extraction and selection for multimedia event classification
Cao et al. Mining spatiotemporal video patterns towards robust action retrieval
Khattak et al. AMF-MSPF: A retrospective analysis with online object tracking algorithms
Kamishima et al. Event detection in consumer videos using GMM supervectors and SVMs
Chiang et al. Learning component-level sparse representation for image and video categorization
Ganesh et al. A New Ontology Convolutional Neural Network for Extorting Essential Elements in Video Mining
Bekhet et al. Video similarity measurement and search
Guo et al. A study on the optimization simulation of big data video image keyframes in motion models
Apostolidis et al. Video fragmentation and reverse search on the web
Pingping et al. Shot boundary detection with sparse presentation
Lassoued et al. Human actions recognition: an approach based on stable motion boundary fields

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
FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180730

Year of fee payment: 5