KR102211669B1 - 비디오 전송 - Google Patents

비디오 전송 Download PDF

Info

Publication number
KR102211669B1
KR102211669B1 KR1020167015756A KR20167015756A KR102211669B1 KR 102211669 B1 KR102211669 B1 KR 102211669B1 KR 1020167015756 A KR1020167015756 A KR 1020167015756A KR 20167015756 A KR20167015756 A KR 20167015756A KR 102211669 B1 KR102211669 B1 KR 102211669B1
Authority
KR
South Korea
Prior art keywords
video
features
user device
user
users
Prior art date
Application number
KR1020167015756A
Other languages
English (en)
Other versions
KR20160085877A (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 KR20160085877A publication Critical patent/KR20160085877A/ko
Application granted granted Critical
Publication of KR102211669B1 publication Critical patent/KR102211669B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • G06K9/00369
    • 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
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • 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/103Static body considered as a whole, e.g. static pedestrian or occupant recognition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/601
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Image Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephonic Communication Services (AREA)

Abstract

네트워크를 통해 비디오를 전송하는 방법, 이 방법을 구현하도록 구성된 사용자 디바이스 및 컴퓨터 프로그램 제품이 개시된다. 본 방법은, 이미지 캡처 디바이스로부터 수신된, 하나 이상의 사용자들의 비디오를, 상기 네트워크를 통해 적어도 다른 사용자 디바이스에 전송하는 단계; 상기 사용자 디바이스와 상기 다른 사용자 디바이스 사이의 통신 채널에 관한 정보 및/또는 상기 사용자 디바이스 및/또는 상기 다른 사용자 디바이스의 하나 이상의 자원들에 관한 정보를 수신하는 단계; 상기 수신된 정보에 기초하여 복수의 시각적 사용자 특징들로부터 특징들을 선택하는 단계; 및 상기 선택된 특징들의 검출에 기초하여 상기 비디오를 제어하여 상기 선택된 특징들을 추적하는 단계를 포함한다.

Description

비디오 전송{VIDEO TRANSMISSION}
본 발명은 비디오 전송에 관한 것이다.
통상적인 통신 시스템은 개인 컴퓨터 또는 모바일 디바이스와 같은, 디바이스의 사용자로 하여금 인터넷과 같은 패킷 기반 컴퓨터 네트워크를 통해 음성 또는 비디오 통화(call)들을 수행할 수 있게 해준다. 이러한 통신 시스템들은 VoIP(voice or video over internet protocol) 시스템들을 포함한다. 이러한 시스템들은 종종 통상적인 고정선 또는 모바일 셀룰러 네트워크들보다 비용이 매우 낮기때문에 사용자에게 이롭다. 이것은 장거리 통신인 경우에 특히나 그러할 수 있다. VoIP 시스템을 이용하기 위해, 사용자는 각자의 디바이스 상에 클라이언트 소프트웨어를 설치해서 실행시킨다. 클라이언트 소프트웨어는 VoIP 연결들을 설정할뿐만이 아니라, 등록 및 사용자 인증과 같은 다른 기능들을 제공한다. 음성 통신 이외에도, 클라이언트 소프트웨어는 또한 인스턴트 메시징(instant messaging; "IM"), SMS 메시징, 파일 전송 및 음성메일과 같은 다른 통신 매체를 위한 연결들을 설정할 수 있다.
최근에, 인터넷 능력들과 기능성은 다른 (예컨대, 대형 스크린) 디스플레이 수단의 텔레비젼 세트에 연결되도록 배열된 게임 콘솔들, 텔레비젼 세트 그 자체(이것을 종종 "스마트 TV"라고 부른다), 텔레비젼 세트에 연결되도록 배열된 셋탑 박스들 등과 같은 사용자 디바이스들 내로 통합되었다. 이것은 인터넷과 같은 패킷 기반 컴퓨터 네트워크를 통한 통신을 가능하게 하기 위해 게임 콘솔, 텔레비젼 세트, 셋탑 박스(또는 이와 유사한 것) 내로의 클라이언트 소프트웨어의 통합을 포함한다. 클라이언트 소프트웨어의 이러한 통합은 원단(far-end) 사용자로부터 수신된 비디오 신호들을 근단(near-end) 사용자에게 출력함으로써 비디오 통화를 위해 대형 고해상도 스크린이 활용될 수 있도록 해준다. 또한, 특히 대형 메인 전력 구동 소비자 전자제품 디바이스를 위한 전력 요건은 예컨대, 모바일 디바이스들보다 덜 엄격하기 때문에 상당한 프로세싱 전력이 셋탑 박스, TV 등과 같은 사용자 디바이스들에서 제공될 수 있다. 이것은 사용자 디바이스에 연결된 카메라로부터 또는 다른 유사한 이미지 입력 수단으로부터 수신된 비디오 데이터의 고품질 음성 및 비디오 인코딩과 같은, 피처들의 전체 범위가 임베딩된 통신 클라이언트 내에 포함되도록 해줄 수 있다.
본 요약은 아래의 상세한 설명에서 보다 상세하게 설명되는 개념들의 선택을 단순한 형태로 소개하기 위해 제공된 것이다. 본 요약은 청구된 발명주제의 중요한 특징들 또는 필수적인 특징들을 확인시키려는 의도는 없으며, 또한 청구된 발명주제의 범위를 제한시키려는 의도도 없다.
네트워크 인터페이스, 비디오 제어기 및 자원 관리기를 포함한 사용자 디바이스가 개시된다. 네트워크 인터페이스는 이미지 캡처 디바이스로부터 수신된, 하나 이상의 사용자들의 비디오를, 네트워크를 통해 적어도 다른 사용자 디바이스에 전송하도록 구성된다. 비디오 제어기는 복수의 시각적 사용자 특징(characteristic)들로부터 하나 이상의 특징들을 선택하고 선택된 특징들의 검출에 기초하여 비디오를 제어하여 선택된 특징들을 추적하도록 구성된다. 자원 관리기는 사용자 디바이스와 다른 사용자 디바이스 사이의 통신 채널에 관한 정보 및/또는 사용자 디바이스 및/또는 다른 사용자 디바이스의 하나 이상의 자원들에 관한 정보를 수신하고, 수신된 정보에 기초하여 비디오 제어기에 의한 상기 선택을 제어하도록 구성된다.
또한, 네트워크와 하나 이상의 프로세서들에 연결하기 위한 네트워크 인터페이스를 포함한 사용자 디바이스가 개시된다. 하나 이상의 프로세서들은 이미지 캡처 디바이스로부터 수신된, 하나 이상의 사용자들의 비디오를, 네트워크를 통해 다른 사용자 디바이스에 전송하도록 구성된다. 하나 이상의 프로세서들은 또한 복수의 시각적 사용자 특징들로부터 특징들을 선택하고 제1 및 제2 시간 각각에서 선택된 특징들의 검출에 기초하여 제1 및 제2 경계선 데이터 세트들을 생성하도록 구성된다. 하나 이상의 프로세서들은 또한 제1 및 제2 경계선 데이터 세트들에 기초하여 동적 모델을 이용하여 천이 데이터를 생성하고, 천이 데이터에 기초하여 비디오를 제어하여 선택된 특징들을 추적하도록 구성된다.
또한, 대응하는 방법들, 및 이러한 방법들 각각을 이행하도록 구성된 실행가능한 코드를 포함한 각각의 컴퓨터 프로그램 제품들이 개시된다.
본 발명주제의 이해를 위해, 그리고 본 발명주제가 실시될 수 있는 방법을 보여주기 위해, 다음의 도면들을 예로서 참조할 것이다.
도 1은 통신 시스템의 개략도이다.
도 2는 사용자 디바이스의 개략적인 블록도이다.
도 3은 비디오 제어 기술의 기능도이다.
도 4a와 도 4b는 사용자 디바이스와 상호작용하는 사용자의 개략도들이다.
도 5는 방사선 패턴의 개략도이다.
도 6a, 도 6b, 및 도 6c는 각각 사용자의 개략적인 정면도, 평면도, 및 측면도이다.
도 7a는 사용자의 검출된 골격점(skeletal point)들의 개략도이다.
도 7b는 외삽처리된(extrapolated) 사용자 신체 부분들의 개략도이다.
도 8은 비디오를 제어하는 방법의 흐름도이다.
도 9는 시간이 경과함에 따라 비디오를 제어하는 방법의 흐름도이다.
여기서는, 비디오 통화(1대1 또는 다수 당사자) 동안, 방 안에서의 사용자 위치가 깊이 검출 수단(깊이 검출기 또는 이와 유사한 것)을 이용하여 검출되고, 이러한 검출에 기초하여 사용자를 추적하기 위해 다른 사용자(들)에 전송되는 통화의 비디오가 제어되는 기술이 개시된다. 보다 구체적으로, (해당 사용자의 신체 부분들과 같은) 해당 사용자의 각각의 시각적 특징들이 검출되고, 이 특징들(예컨대, 신체 부분들)(이 특징들 전부가 반드시 필요한 것은 아님) 중의 선택된 특징들을 추적하기 위해 비디오가 제어된다. 특정 시각적 특징이 추적되는지 여부는 통신 채널 조건들(예컨대, 채널 대역폭) 및/또는 원단 및/또는 근단 디바이스 자원들에 의존하며, (예컨대) 보다 낮은 채널 대역폭 및/또는 원단 디바이스의 보다 작은 스크린 크기의 경우 보다 적은 수의 특징들(예컨대, 신체 부분들)이 추적될 수 있고, 보다 높은 채널 대역폭 및/또는 원단 디바이스의 보다 큰 스크린 크기의 경우 보다 많은 특징들(예컨대, 신체 부분들)이 추적될 수 있다.
도 1은 제1 사용자 디바이스(104)와 연관된 제1 사용자(102a)("사용자 A"), 제2 사용자 디바이스(110)와 연관된 제2 사용자(108)("사용자 B"), 제3 사용자 디바이스(114)와 연관된 제3 사용자(112)("사용자 C"), 및 제1 사용자 근처에 있는 제4 사용자(102b)("사용자 D")를 포함한 통신 시스템(100)을 도시한다. 다른 실시예들에서, 통신 시스템(100)은 임의의 개수의 사용자들 및 연관된 사용자 디바이스들을 포함할 수 있다. 사용자 디바이스들(104, 110, 114)은 통신 시스템(100) 내의 네트워크(106)를 통해 통신할 수 있어서, 사용자들(102a, 102b, 108, 112)이 네트워크(106)를 통해 서로 통신할 수 있도록 해줄 수 있다. 도 1에서 도시된 통신 시스템(100)은 패킷 기반 통신 시스템이지만, 다른 유형들의 통신 시스템이 이용될 수 있다. 네트워크(106)는, 예컨대, 인터넷일 수 있다. 사용자 디바이스들(104, 110) 각각은, 예컨대, 모바일 폰, 태블릿, 랩탑, 개인 컴퓨터("PC")(예컨대, Windows™, Mac OS™ 및 Linux™ PC들을 포함함), 게임 콘솔 또는 다른 게이밍 디바이스, 텔레비젼, 개인 보조 단말기("PDA") 또는 네트워크(106)에 연결될 수 있는 다른 임베디드 디바이스일 수 있다. 사용자 디바이스(104)는 사용자들(102a, 102b)로부터 정보를 수신하고 사용자들(102a, 102b)에게 정보를 출력하도록 배열된다. 사용자 디바이스(104)는 디스플레이 및 스피커들과 같은 출력 수단을 포함한다. 사용자 디바이스(104)는 또한 키패드, 터치 스크린, 오디오 신호를 수신하기 위한 마이크로폰 및/또는 비디오 프레임들의 시퀀스(이미지들)로 구성된 비디오 신호의 이미지들을 캡처하기 위한 카메라와 같은 입력 수단을 포함한다. 사용자 디바이스(104)는 네트워크(106)에 연결된다.
사용자 디바이스(104)는 통신 시스템(100)과 연관된 소프트웨어 제공자에 의해 제공된 통신 클라이언트의 인스턴스(instance)를 실행한다. 통신 클라이언트는 사용자 디바이스(104) 내의 로컬 프로세서 상에서 실행되는 소프트웨어 프로그램이다. 클라이언트는, 사용자 디바이스(104)가 통신 시스템(100)을 통해 데이터를 송수신하도록, 사용자 디바이스(104)에서 필요한 프로세싱을 수행한다.
사용자 디바이스(110)는 사용자 디바이스(104)에 대응하며, 로컬 프로세서 상에서, 사용자 디바이스(104)에서 실행되는 통신 클라이언트에 대응하는 통신 클라이언트를 실행한다. 사용자들(102a, 102b)이 네트워크(106)를 통해 통신할 수 있도록 해주기 위해 필요한 프로세싱을 사용자 디바이스(104)에서의 클라이언트가 수행하는 것과 같은 방식으로 사용자 디바이스(110)에서의 클라이언트는 사용자(108)가 네트워크(106)를 통해 통신할 수 있도록 해주기 위해 필요한 프로세싱을 수행한다. 사용자 디바이스(114)는 사용자 디바이스(104)에 대응하며, 로컬 프로세서 상에서, 사용자 디바이스(104)에서 실행되는 통신 클라이언트에 대응하는 통신 클라이언트를 실행한다. 사용자들(102a, 102b)이 네트워크(106)를 통해 통신할 수 있도록 해주기 위해 필요한 프로세싱을 사용자 디바이스(104)에서의 클라이언트가 수행하는 것과 같은 방식으로 사용자 디바이스(110)에서의 클라이언트는 사용자(108)가 네트워크(106)를 통해 통신할 수 있도록 해주기 위해 필요한 프로세싱을 수행한다. 사용자 디바이스들(104, 110, 114)은 통신 시스템(100)에서 최종점들이다. 도 1은 명료화를 위해 네 개의 사용자들(102a, 102b, 108, 112)과 세 개의 사용자 디바이스들(104, 110)만을 도시하지만, 더 많은 사용자들과 사용자 디바이스들이 통신 시스템(100) 내에 포함될 수 있으며, 각각의 사용자 디바이스들 상에서 실행되는 각각의 통신 클라이언트들을 이용하여 통신 시스템(100)을 통해 통신할 수 있다.
도 2는 통신 시스템(100)을 통해 통신하기 위해 통신 클라이언트 인스턴스(206)가 실행되는 사용자 디바이스(104)의 세부도를 나타낸다. 사용자 디바이스(104)는 프로세서 또는 "프로세싱 모듈"(202)을 포함하고, 프로세서는 하나 이상의 중앙 처리 장치("CPU")를 포함하고, 이 중앙 처리 장치에는, 터치 스크린으로서 구현될 수 있는 디스플레이(208)와 같은 출력 디바이스들, 오디오 신호를 출력하기 위한 스피커(또는 "확성기")(210), 및 적외선(IR) 프로젝터와 같은 비가시적 방사선을 출력하기 위한 방사선 프로젝터(224)가 연결되며, 사용자 디바이스(104)는 오디오 신호를 수신하기 위한 마이크로폰(212), 이미지 데이터를 수신하기 위한 카메라(216), 키패드(218) 및 비가시적 방사선 신호의 비가시적 이미지들을 수신하기 위한 방사선 센서 어레이(226), 예컨대 적외선 신호의 이미지들을 수신하기 위한 IR 카메라와 같은 입력 디바이스들; 데이터를 저장하기 위한 메모리(214), 및 네트워크(106)와 통신하기 위한 모뎀과 같은 네트워크 인터페이스(220)를 더 포함한다. 스피커(210)는 오디오 신호 프로세싱 모듈(209)을 통해 프로세서(202)에 연결된다. 사용자 디바이스(104)는 도 2에서 도시된 것과 다른 엘리먼트들을 포함할 수 있다. 디스플레이(208), 스피커(210), 마이크로폰(212), 메모리(214), 카메라(216), 키패드(218) 및 네트워크 인터페이스(220)는 사용자 디바이스(104) 내에 통합될 수 있다. 대안적으로, 디스플레이(208), 스피커(210), 마이크로폰(212), 메모리(214), 카메라(216), 키패드(218) 및 네트워크 인터페이스(220) 중 하나 이상은 사용자 디바이스(104) 내에 통합되지 않을 수 있으며, 각각의 인터페이스들을 통해 프로세서(202)에 연결될 수 있다. 이러한 인터페이스의 일례는 USB 인터페이스이다. 예를 들어, 게임 콘솔 형태의 사용자 디바이스의 경우, 카메라(216), 프로젝터(224), 센서(226), 디스플레이(208), 마이크로폰(212), 키패드(218)(예컨대, 게임 제어기)는 게임 콘솔 내에 통합되지 않을 수 있고, 각각의 인터페이스들을 통해 프로세서(202)에 연결될 수 있는 반면에, 네트워크 인터페이스(220), 메모리(214), 및 프로세서(202)는 게임 콘솔 내에 통합될 수 있다. 네트워크 인터페이스(220)를 통한 네트워크(106)로의 사용자 디바이스(104)의 연결이 무선 연결이면, 네트워크 인터페이스(220)는 신호들을 네트워크(106)에 무선 송신하고 신호들을 네트워크(106)로부터 무선 수신하기 위한 안테나를 포함할 수 있다.
프로젝터(224)와 센서(226)는 비가시적 방사선 데이터를 삼차원("3D")으로 캡처하기 위한 깊이 검출기(222)를 구성한다. 이 실시예에서, 프로젝터(224)는 센서(226)에 의해 검출가능한 방사선 패턴을 센서(226)의 전방에 투사하고, 센서(226)로부터의 센서 데이터는 (도 5, 도 6a~도 6c를 참조하여 보다 자세하게 후술되는 바와 같이) 검출된 방사선 패턴에서의 왜곡들에 기초하여 3D 이미지를 구축하는 데에 이용된다. 깊이 검출기(222) 및 카메라(216)는 사용자 디바이스(104) 외부에 있는 단일 유닛 내에 함께 하우징될 수 있으며, 가능하게는 사용자 디바이스(104)와는 별개의 전원 공급기를 가질 수 있으며, 적절한 인터페이스(예컨대, USB 또는 USB 계열)를 통해 프로세서(202)에 연결된다. 이러한 유닛의 예시는 Microsoft Kinect Sensor™이다.
도 2는 또한 프로세서(202) 상에서 실행되는 운영체제("OS")(204)를 나타낸다. OS(204)의 최상부 상에서는 통신 시스템(100)의 클라이언트 인스턴스(206)의 소프트웨어가 구동 중에 있다. 운영체제(204)는 사용자 디바이스(104)의 하드웨어 자원들을 관리하고, 네트워크 인터페이스(220)를 통해 네트워크(106)에 오고가는 데이터를 처리한다. 클라이언트(206)는 운영체제(204)와 통신하며, 통신 시스템을 통한 연결들을 관리한다. 클라이언트(206)는 사용자(102)에게 정보를 제공하고 사용자(102)로부터 정보를 수신하는 데에 이용되는 클라이언트 사용자 인터페이스를 갖는다. 이러한 방식으로, 클라이언트(206)는 사용자(102)가 통신 시스템(100)을 통해 통신할 수 있도록 해주는 데에 필요한 프로세싱을 수행한다.
도 3을 참조하면, 이제부터는 네트워크를 통해 비디오를 전송하는 방법을 설명할 것이다. 도 3은 사용자 디바이스(104)의 일부의 기능도이다.
도 3에서 도시된 바와 같이, 사용자 디바이스(104)는 인코더(308)(예컨대, H264 인코더)를 포함한다. 이것은 네트워크(106)를 통한 전송 이전에 인코딩을 위해 프로세서(202)에 의해 비디오 데이터가 공급되는 하드웨어 인코더, (예컨대) 프로세서(202) 상에서 실행되는 소프트웨어에 의해 구현되는 소프트웨어 인코더, 또는 이 둘 다의 조합일 수 있다. 사용자 디바이스는 (예컨대, 클라이언트(206)의 소프트웨어의 일부로서 구현된) 제어기(302), 카메라(216), 깊이 검출기(222) 및 깊이 프로세서(310)를 더 포함한다. 제어기(302)는 자원 관리기(306) 및 비디오 신호 프로세서(304)를 포함한다. 카메라(216)는 가시 스펙트럼(즉, 육안으로 보여짐) 내에 있는, 사용자들(102a, 102b)의 비디오(도 3에서 "근단 비디오"로서 라벨표시됨)의 이미지들을 캡처하고, 이 캡처된 이미지들을 비디오 신호 프로세서의 제1 입력에 공급한다. 센서(226)는 비가시 스펙트럼(즉, 육안으로 안보임) 내에 있는 이미지들을 캡처하고, 이 캡처된 이미지들을 깊이 프로세서(310)의 입력에 공급한다. 깊이 프로세서(310)는 비디오 신호 프로세서의 제2 입력에 결합된 출력을 갖는다. 프로젝터(224)는 센서(226)에 의해 검출가능한 비가시적 방사선을 사용자들(102a, 102b)을 향해 센서(226)의 전방에 투사한다. 제어기(302), 인코더(308) 및 센서 프로세서(310)는 비디오 프로세싱 시스템(300)를 구성한다.
자원 관리기(306)는 제1, 제2, 및 제3 입력들과 출력을 갖는다. 자원 관리기(306)의 제1 입력은 사용자 디바이스(104)와 네트워크(106)의 하나 이상의 다른 사용자 디바이스들(예컨대, 참조번호 108, 112) 사이의 하나 이상의 통신 채널들에 관한 정보를 수신하도록 구성된다. 자원 관리기(306)의 제2 입력은 사용자 디바이스(104) 및/또는 하나 이상의 다른 사용자 디바이스들(예컨대, 참조번호 110, 114)의 자원들에 관한 정보를 수신하도록 구성된다. 자원 관리기의 제3 입력은 비디오 신호 프로세서(304)의 출력에 결합된다.
자원 관리기(306)의 출력은 비디오 신호 프로세서(304)의 제3 입력에 결합된다. 비디오 신호 프로세서(304)는 인코더(308)의 입력에 결합된 출력을 갖는다. 인코더는 제2 사용자 디바이스(110)와 제3 사용자 디바이스(114) 중 적어도 하나로의 네트워크(106)를 통한 전송을 위해 네트워크 인터페이스(220)에 공급되기 전에 사용자 디바이스(104)에서의 추가적인 프로세싱(예컨대, 패킷화) 처리를 받을 수 있는 인코딩된 비디오 데이터를 공급하도록 구성된다.
센서 프로세서(310)는 센서(226)의 시야(field of view) 내의 각각의 사용자에 대한 복수의 각각의 시각적 사용자 특징들을 검출하기 위해 센서(226)에 의해 캡처되고, 센서(226)로부터 수신된 센서 데이터를 프로세싱하도록 동작가능하다.
비디오 신호 프로세서(304)는 자원 관리기(306)로부터 출력된 정보에 기초하여 복수의 시각적 사용자 특징들로부터 특징들을 선택하고, 센서 프로세서(310)에 의한 선택된 특징들의 검출에 기초하여 인코딩을 위해 인코더(308)에 공급되는 비디오를 제어하도록 구성되며, 비디오는 선택된 특징들을 추적하도록 제어되며, 즉 비디오가 선택된 특징들을 시간에 걸쳐 추적하여, 종국에는 검출된 특징들이 비디오에서 가시적이 되도록 한다.
이것을 이제 도 4a와 도 4b를 참조하여 설명할 것이다. 도 4a와 도 4b는 사용자 디바이스(104)(이것은 이 실시예에서 게임 콘솔로서 도시됨) 근처에 있는 사용자(102)(예컨대, 참조번호 102a, 102b)를 도시한다. 사용자 디바이스는 디스플레이(208), 카메라(216), 프로젝터(224) 및 센서(226)에 결합되며, 이들 모두는 이 실시예에서 사용자 디바이스(104) 외부에 있다. 도 4a에서, 카메라(216)에 의해 캡처된 제1 가시적 영역(402a)(비제한적인 예로서, 사용자(102)의 상위 부분들(예컨대, 머리, 어깨 등)를 포함하되 사용자(102)의 하위 부분들(예컨대, 발, 다리 등)은 포함하지 않음)의 비디오가 인코딩을 위해 그리고 종국에는 네트워크(106)를 통해 다른 사용자(예컨대, 참조번호 112, 108)로의 전송을 위해 인코더(308)에 공급된다. 도 4에서 도시된 바와 같이, 다른 사용자에게 전송된 영역(402a)의 비디오 버전은 택일적 사항으로서 다른 사용자로부터 수신된 비디오와 오버레이되면서, 디스플레이(208) 상에서도 디스플레이된다. 도 4b에서, 카메라(216)에 의해 캡처된 제2 가시적 영역(402b)(사용자(102)의 상위 부분들 및 사용자(102)의 하위 부분들을 포함함)의 비디오가 인코딩을 위해 그리고 종국에는 네트워크(106)를 통해 다른 사용자로의 전송을 위해 인코더(308)에 공급된다. 도 4에서 도시된 바와 같이, 다른 사용자에게 전송된 제2 영역(402b)의 비디오 버전은 택일적 사항으로서 다른 사용자로부터 수신된 비디오와 오버레이되면서, 디스플레이(208) 상에서도 디스플레이된다.
제1 및 제2 가시적 영역(402a, 402b)은 후술하는 바와 같이 자원 관리기(306)로부터 수신된 데이터 및 센서 프로세서(310)로부터 수신된 데이터에 기초하여 비디오 제어 모듈에 의해 결정된 각각의 크기 및 위치를 갖는다.
도 5는 프로젝터(224)에 의해 방출된 방사선 패턴을 도시한다. 도 5에서 도시된 바와 같이, 방사선 패턴은 비균질적인 체계를 갖고, 교호하는 세기로 체계적으로 배치된 복수의 영역들을 포함한다. 구체적으로, 도 5의 방사선 패턴은 실질적으로 균일한 방사선 도트(dot)들의 어레이를 포함한다. 방사선 패턴은 이 실시예에서 적외선(IR) 방사선 패턴이며, 추가로 센서(226)에 의해 검출가능하다. 도 5의 방사선 패턴은 예시적이며, 다른 방사선 패턴들의 이용이 구상가능하다.
이 방사선 패턴(500)은 프로젝터(224)에 의해 센서(226)의 전방에 투사된다. 센서(226)는 자신의 시야 내에 투사된 비가시적 방사선 패턴의 이미지들을 캡처한다. 이 이미지들은 센서(226)의 시야 내에서의 사용자들의 깊이들을 계산함으로써(사용자의 삼차원 표현을 효과적으로 구축함) 상이한 사용자들 및 이들의 상이한 각각의 신체 부분들의 인식을 가능하게 하기 위해 센서 프로세서(310)에 의해 프로세싱된다.
도 6b는 사용자 디바이스(104) 근처에 있는 사용자(102)의 평면도를 도시하며, 도 6a는 이에 대응하는 (카메라(216) 및 검출기(222)의 센서(226)에 의해 바라본) 정면도이며, 도 6c는 이에 대응하는 측면도이다. 도시된 바와 같이, 사용자(102)는 자신의 좌측 손을 검출기(222) 쪽으로 내뻗고 있는 자세를 취하고 있다(물론 사용자는 다른 방식으로 자세를 취할 수 있다). 사용자의 머리는 사용자의 몸통 너머로 돌출해 있고, 몸통은 사용자의 우측 팔 앞쪽에 있다. 방사선 패턴(500)이 프로젝터(224)에 의해 사용자 상에 투사된다.
도 6a에서 도시된 바와 같이, 이에 따라 사용자(102)는, 프로젝터로부터의 이격도에 따른 신장 스케일링의 양을 가지면서, 프로젝터로부터 더욱 더 멀리 있는 사용자의 부분들 상에 투사된 방사선 패턴의 부분들(즉, 이 경우에는 방사선 패턴의 도트들이 보다 많이 이격됨)이 프로젝터에 보다 더 가까이에 있는 사용자의 부분들 상에 투사된 방사선의 부분들(즉, 이 경우에서는 방사선 패턴의 도트들이 보다 덜 이격됨)에 비해 효과적으로 신장되도록 센서(224)에 의해 검출된 투사된 방사선 패턴을 왜곡시키는 작용을 하는 폼을 가지며, 사용자의 상당한 후방에서 객체들 상에 투사된 방사선의 부분들은 센서(226)에 대해 종국에는 비가시적이 된다. 방사선 패턴(500)은 비균질적인 체계를 갖기 때문에, 사용자의 폼에 의한 방사선 패턴의 왜곡들은, 센서 프로세서(310)가 센서(226)에 의해 캡처된 왜곡된 방사선 패턴의 이미지들을 프로세싱함으로써 해당 폼을 식별하는 데에(사용자의 머리, 좌측 손, 우측 팔, 몸통 등을 식별하기 위해) 이용될 수 있다. 예를 들어, 센서로부터의 사용자의 영역의 이격은 사용자의 영역 내의 검출된 방사선 패턴의 도트들의 이격을 측정함으로써 결정될 수 있다.
도 5와 도 6a에서 방사선 패턴은 육안으로 보여지는 것으로서 도시되었지만, 이것은 단순히 이해를 돕기 위한 것일 뿐이며, 사용자(102) 상에 투사되는 방사선 패턴은 실제로는 육안으로 보여지지 않을 것이다.
이제부터는 도 7a와 도 7b를 참조하여 설명할 것이며, 센서(226)에 의해 캡처된 비가시적 방사선 패턴(500)의 이미지들(센서 데이터)이 센서 프로세서(310)에 의해 프로세싱된다. 이 프로세싱은 골격 검출 프로세싱을 포함한다. 골격 검출 프로세싱은 업계에서 공지된 것이며, 현재에는, 예컨대, Microsoft Xbox 360™(이것은 때때로 Microsoft Kinect Sensor™과 함께 이용된다)에서 구현되고 있으며, 그 결과물들은 소프트웨어 개발자들에 의한 이용을 위해 API(Application Programming Interface)를 통해 이용가능하다.
센서 검출기(310)는 센서(226)로부터 센서 데이터를 수신하고, 이것을 프로세싱하여 센서(226)의 시야 내에서의 사용자들의 수를 결정하며, 업계에서 알려져 있는 골격 검출 기술들을 이용하여 각각의 사용자에 대한 복수의 각각의 골격점들을 식별한다. 각각의 골격점은 비디오 내에서의 대응하는 사람 관절의 근사 위치를 나타낸다.
구체적으로, 이 실시예에서, 센서 검출기(310)는 센서(226)의 시야 내에서 각각의 사용자마다 20개의 각각의 골격점들을 검출한다. 각각의 골격점은 인식된 20개의 사람 관절들 중 하나에 대응하며, 이 골격점 각각은 센서(226)의 시야 내에서 사용자가 움직임에 따라 시공간적으로 변화한다. 임의의 순간에서의 이러한 관절들의 위치는 센서(226)에 의해 검출된 사용자의 (또는 사용자 각각의) 삼차원 형태에 기초하여 계산된다. 골격점은 또한 추적 상태를 갖는데, 명백히 보이는 관절에 대해서는 골격점이 "추적"될 수 있고, 관절이 명백히 보여지지는 않지만 센서 프로세서(310)가 그 위치를 추론하는 경우는 골격점은 "추론"될 수 있으며, 또는 예컨대 착석 모드 추적에서의 하위 관절에 대해서는 "추적 불가능"할 수 있다(즉, 사용자가 착석해 있는 것이 검출된 경우 하위 관절들은 센서 프로세서(310)에 의해 추적되지 않음).
각각의 골격점들에는 대응하는 관절이 정확히 검출되었을 가능성을 표시하는 각각의 신뢰도값이 제공될 수 있다. 일정한 문턱값 아래의 신뢰도값들을 갖는 점들은 비디오 모듈(304)에 의한 프로세싱으로부터 배제될 수 있다.
이러한 20개의 골격점들이 표 1에서 도시된 대응하는 사람 관절과 함께 도 7a에서 나타난다.
골격점 명칭 대응하는 사람 관절 라벨번호
AnkleLeft 좌측 발목 722b
AnkleRight 우측 발목 722a
ElbowLeft 좌측 팔꿈치 706b
ElbowRight 우측 팔꿈치 706a
FootLeft 좌측 발 724b
FootRight 우측 발 724a
HandLeft 좌측 손 702b
HandRight 우측 손 702a
Head 머리 710
HipCenter 엉덩이 중심 716
HipLeft 좌측 엉덩이 718b
HipRight 우측 엉덩이 718a
KneeLeft 좌측 무릎 720b
KneeRight 우측 무릎 720a
ShoulderCenter 어깨중심 712
ShoulderLeft 좌측 어깨 708b
ShoulderRight 우측 어깨 708a
Spine 척추 714
WristLeft 좌측 손목 704b
WristRight 우측 손목 704a
< 골격점들 >
특정 시간에 센서 프로세서에 의해 보고된 골격점의 위치가 그 시간에서의 비디오의 프레임(이미지) 내의 대응하는 사람 관절의 위치에 대응하도록 골격점들 및 카메라(216)로부터의 비디오는 상관된다. 센서 검출기(310)는 이러한 검출된 골격점들을 골격점 데이터로서 사용을 위해 비디오 제어기(304)에 공급한다. 비디오 데이터의 각각의 프레임마다, 센서 프로세서(310)에 의해 공급된 골격점 데이터는 예컨대, 비디오 프레임 크기에 대해 경계지어진 좌표 시스템의 데카르트 좌표들 (x,y)로서 표현된, 해당 프레임 내에서의 골격점들의 위치들을 포함한다.
비디오 제어기(304)는 하나 이상의 사용자들(102a, 102b)에 대한 검출된 골격점들을 수신하고, 이로부터 해당 사용자의 복수의 시각적 특징들(또는 이러한 사용자들의 각각의 복수의 시각적 특징)을 결정하도록 구성된다. 이 실시예에서, 시각적 사용자 특징들은 사람 신체 부분들의 형태를 취한다. 신체 부분들은 비디오 제어기에 의해 검출되고, 이 신체 부분들 각각은 비디오 프로세서(310)에 의해 제공된 하나 이상의 골격점들로부터 외삽법에 의해 검출되며, 카메라(216)로부터의 비디오의 대응하는 비디오 프레임 내의 영역에 대응한다(즉, 앞서 언급한 좌표 시스템 내 영역으로서 정의된다). 도 7b는 도 7a의 골격점들에 기초하여 검출된 신체 부분들을 나타낸다.
신체 부분의 명칭 (시각적 특징) 도 7b에서 검출된 해당 특징의 참조번호
머리 750
어깨 752
중간척추 (척추의 상위 부분) 756
하부척추 (척추의 하위 부분) 758
전체척추 (척추 전체) 760
엉덩이 762
팔꿈치 754a, 754b
다리 764a, 764b
766a, 766b
<신체 부분들(시각적 특징들)>
이러한 시각적 특징은 실제적으로 보여지고 식별될 수 있는 사용자의 신체의 특징들을 나타낸다는 점에서 시각적이지만, 이 실시예에서, 이 시각적 특징은 비디오 제어기에 의해 "보여지지 않으며"(예컨대, 시각적 특징은 카메라(216)에 의해 캡처된 비디오 데이터 내에서 검출되지 않는다), 이보다는, 비디오 제어기는 예컨대, 각각의 신체 부분을, 해당 신체 부분과 관련이 있는 골격점들의 검출된 배열들로부터 계산된 위치 및 크기(및 택일적으로는 배향)를 갖는 직사각형(또는 이와 유사한 것)으로서 근사화함으로써, 센서 프로세서(310)에 의해 제공된 20개의 골격점들의 배열로부터 (그리고, 예컨대 해당 프레임의 프로세싱에 기초하지 않고서) 카메라(216)로부터의 비디오의 프레임 내의 이러한 특징들의 (근사적) 상대적 위치, 형상 및 크기를 외삽처리한다라는 것을 유념해야 한다.
이제부터 검출된 사용자 특징들(이 실시예에서는 신체 부분들)에 기초하여 네트워크를 통해 전송될 비디오를 제어하는 방법(800)을 도 8을 참조하여 설명할 것이다. 도 8은 좌측 상에 방법(800)의 흐름도를 도시하고, 우측 상에 각각의 방법 단계의 대응하는 시각적 표현을 도시한다.
이 실시예에서, 본 방법은 클라이언트의 소프트웨어(106)의 일부로서 알고리즘적으로, 구체적으로는 제어기(302)에 의해 구현된다.
본 방법(800)은 제1 사용자(근단) 디바이스(104)와 제2 사용자(원단) 디바이스(110)를 이용하여 이들 사용자들 사이에서 수행되는 실시간 비디오 통화의 상황에서 설명될 것이다.
본 방법은 다음의 신체 영역들을 고려한다.
- 영역 1: 머리, 어깨
- 영역 2: 머리, 어깨, 중간척추, 팔꿈치
- 영역 3: 머리, 어깨, 중간척추, 팔꿈치, 하부척추, 엉덩이
- 영역 4: 머리, 어깨, 전체척추, 팔꿈치, 엉덩이, 다리, 발
비디오 통화의 시작시, 근단 디바이스(104)의 클라이언트(106)의 자원 관리기(306)는 수신된 정보에 기초하여 (원단 디바이스(110)에 전송된 비디오를 위해 이용될) 비디오 해상도를 결정한다. 예를 들어, 이 정보는 다음 중 하나 이상에 관한 정보를 포함할 수 있다:
- 근단 디바이스와 원단 디바이스 사이의 통신 채널의 채널 대역폭과 같은 네트워크 자원들(이 채널에 의해 비디오는 근단 디바이스로부터 원단 디바이스로 전송된다);
- 원단 디바이스로부터 수신된 원단 디바이스(110)의 자원들, 예컨대, 스크린 크기(보다 많은 픽셀들을 갖는 스크린은 보다 적은 수의 픽셀들을 갖는 스크린보다 많은 스크린 자원들을 갖는다); 스크린의 수직 길이에 대한 스크린의 수평 길이의 비인 원단 디바이스의 스크린의 종횡비(예컨대, 4:3, 16:9 등); 원단 디바이스의 하나 이상의 프로세서들의 프로세싱 자원들(예컨대, 메가헤르쯔, 기가헤르쯔 등의 이용가능한 프로세서 싸이클들); 원단 디바이스의 메모리 자원들(예컨대, 메가바이트, 기가바이트 등의 이용가능한 메모리); 비디오 디코딩 능력들;
- 근단 디바이스의 자원들, 예컨대 근단 디바이스의 하나 이상의 프로세서들의 프로세싱 자원들(예컨대, 메가헤르쯔, 기가헤르쯔 등의 이용가능한 프로세서 싸이클들); 원단 디바이스의 메모리 자원들(예컨대, 메가바이트, 기가바이트 등의 이용가능한 메모리); 비디오 인코딩 능력들.
비디오 해상도는, 적어도 부분적으로, 원단 디바이스(110)와의 협상에 의해 결정될 수 있다(예컨대, 근단 자원 관리기(306)는 원단 디바이스의 자원들에 관한 정보를 이 디바이스로부터 요청한다).
통화 동안, 근단 디바이스(104)의 자원 관리기(306)는 이용가능한 자원들(예컨대, 이용가능한 대역폭)을 모니터링하고, 원단 디바이스(108)로 보내지는 비디오에 대한 해상도를 증가시킬 것인지 또는 감소시킬 것인지를 결정하며, 이러한 결정을 비디오 제어기(304)에 전달한다. 이에 따라, 비디오 해상도는 예컨대, 말하자면, 비신뢰적인 무선, 예컨대, WiFi 연결을 통해 네트워크(106)에 연결된 근단 디바이스와 원단 디바이스 둘 다 또는 이 중 하나로부터 발생하는 채널 대역폭 요동으로 인해, 통화 동안 동적으로 변할 수 있다.
특징들의 선택은, 수신된 정보가 양호한 채널 퀄리티 및/또는 보다 많은 디바이스 자원들을 표시하면 보다 많은 특징들을 선택하고, 수신된 정보가 불량한 채널 퀄리티 및/또는 보다 적은 디바이스 자원들을 표시하면 보다 적은 특징들을 선택하는 것을 포함한다. 예를 들어, 보다 낮은 대역폭 및/또는 보다 작은 스크린 크기의 경우에는 보다 낮은 해상도가 자원 관리기(306)에 의해 결정되고(보다 적은 신체 부분들을 갖는 영역의 선택을 일으킴), 보다 높은 대역폭 및/또는 보다 큰 스크린 크기의 경우에는 상기 보다 낮은 대역폭 및/또는 상기 보다 작은 스크린 크기의 경우에서 결정된 것보다 높은 해상도가 자원 관리기(306)에 의해 결정된다(보다 많은 신체 부분들을 갖는 영역의 선택을 일으킴).
이 실시예에서, 비디오는 1920x1080 픽셀들의 고정 해상도로 카메라(216)로부터 캡처된다. 하지만, 후술하는 바와 같이, 캡처된 비디오는 전송 전에 잘라내기(cropping)될 수 있다(잘라내기는 비디오의 이미지들의 외각 부분들의 제거이다). 즉, 선택된 가시적 영역으로부터 캡처된 비디오 데이터의 선택적인 부분들만이 인코딩 및 원단 디바이스로의 후속 전송을 위해 인코더(308)에 공급된다. 이에 따라, 정의된 영역 밖에 있는 비디오 데이터는 인코더에 공급되지 않으므로, 잘라내기된 비디오 데이터를 공급하는 것은 인코더(308)에 비디오 데이터를 덜 공급하는 것을 의미한다.
단계 S802에서 골격점 데이터가 센서 프로세서(310)로부터 비디오 제어기에 의해 수신된다. 도 8의 우측 상에서의 예시적인 도해에서, 병치된 사용자들(102a, 102b)(둘 다 센서(226)의 시야 내에 있다)에 대한 골격 데이터가 도시된다. 하지만, 방법(800)은 명백한 바와 같이 임의의 수(하나 이상)의 사용자들에 대한 골격 데이터를 수신하는 것에 적용될 수 있다.
단계 S804에서, 비디오 제어기(304)는 자원 관리기(306)로부터 수신된 결정된 해상도에 기초하여 센서(216)의 시야 내에 있는 각각의 사용자에 대한 각각의 신체 영역들을 선택한다. 이 비디오 해상도에 의존하여, 비디오 제어기는 아래와 같은, 표 2의 복수의 가능한 신체 영역들 중에서 신체 영역들을 선택한다:
- 해상도 1920x1080: 영역 4
- 1280x1024 이상의 해상도: 영역 3
- 640x480 이상의 해상도: 영역 2
- 다른 해상도들: 영역 1
또는 이와 달리, 다음과 같이 신체 영역들을 선택한다:
- 해상도 폭 1920: 영역 4
- 1280 이상의 해상도 폭: 영역 3
- 640 이상의 해상도 폭: 영역 2
- 다른 해상도들: 영역 1
특징들의 선택은, 보다 높은 해상도들(보다 양호한 채널 조건들 및/또는 보다 큰 디바이스 자원들)에 대해서 보다 많은 특징들을 선택하고, 보다 낮은 해상도들(보다 불량한 채널 조건들 및/또는 보다 적은 디바이스 자원들)에 대해서 보다 적은 특징들을 선택하는 것을 포함한다.
센서(226)의 시야 내에 있는 각각의 사용자(102a, 102b)에 대해, 선택된 영역은 수신된 골격 데이터에 기초하여 검출된다(즉, 선택된 영역의 각각의 신체 부분들이 검출된다). 그런 후, 비디오는, 인코딩되고 전송되기 전에, (후술하는 바와 같이) 검출된 신체 부분들에 기초하여 잘라내기된다(예컨대, 영역 1의 경우, 머리와 어깨만이 영역 1 내에 포함되기 때문에, 비디오는, 사용자(102a)의 머리, 사용자(102b)의 머리, 사용자(102a)의 어깨, 및 사용자(102b)의 어깨의 검출에 기초하여 잘라내기되지만, 이들 사용자들의 임의의 다른 신체 부분들에 기초해서는 잘라내기되지 않는다). 따라서, 모든 골격점들이 반드시 잘라내기에 기여할 필요는 없는 것이다(일부 골격점들은 선택된 영역의 부분이 아닌 신체 부분들을 정의하는 역할을 할 뿐이다). 즉, 비디오의 제어는 복수의 검출된 골격점들의 골격점들의 선택에 기초하지만 복수의 검출된 골격점들의 다른 골격점들에는 기초하지 않을 수 있다.
예를 들어, 도 8의 우측 상에서의 예시적인 도시에서, 영역 2(머리, 어깨, 중간척추, 팔꿈치)가 선택되고, 이에 따라 비디오 제어는 사용자(102a)(도 8에서의 참조번호 550a)와 사용자(102b)(도 8에서의 참조번호 550b) 둘 다에 대한 검출된 영역 2 특징에 기초한다.
(이 실시예에서 결정된 해상도에 따라 비디오를 선택적으로 잘라내기하는 것을 포함하는) 비디오 제어의 일부로서, 단계 S806에서, 비디오 제어기는 선택된 영역의 신체 부분들의 검출에 기초하여 경계선 데이터를 생성한다. 경계선 데이터는 직사각형 경계선(552)(잘라내기 직사각형)을 정의한다. 잘라내기 직사각형은 추적된 모든 사용자들에 대한 각각의 검출된 영역들의 결합으로부터 형성된다.
단계 S808에서, 비디오 제어기(304)는 미리 결정된 종횡비(예컨대, 4:3, 16:9 등과 같은, 원단 디바이스(110)의 디스플레이의 종횡비)에 기초하여 상기 생성된 경계선 데이터를 수정하며, 이로써 잘라내기 직사각형은 미리 결정된 종횡비에 맞춰 조정된다. 조정된 잘라내기 직사각형(경계 직사각형)(이 실시예에서는 16:9의 종횡비를 갖는다)이 도 8의 우측 상에 참조번호 554로서 도시된다.
단계 S810에서, 아래에서 보다 자세하게 설명되는 바와 같이 비디오는 조정된 직사각형에 기초하여 잘라내기된다. 그런 후, 잘라내기된 비디오는, 인코더(308)에 의해 인코딩되기 전에, 출력 해상도에 맞춰 스케일링된다(예컨대, 전송 대상의 원단 디바이스의 스크린의 해상도에 정합시킴).
방법(800)은 비디오 데이터의 각각의 프레임에 대해 수행된다. 경계 직사각형들은, 프레임들 사이에서, 사용자가 이리저리 움직임으로써 움직일 수 있거나, 또는 예컨대 두 명의 사용자들이 떨어짐으로써 이격될 수 있는 사용자의 특징들을 추적하기 때문에, 잘라내기 직사각형들은 이리저리 움직인다.
하지만, 해당 프레임에 대해 결정된 조정된 직사각형에 맞춰 비디오 데이터의 각각의 프레임을 단순히 잘라내기하는 것(즉, 조정된 직사각형에 의해 정의된 해당 프레임의 부분으로부터의 비디오 데이터만을 공급하기)보다는, 하나 이상의 이전 프레임들에 대해 계산된 각각의 조정된 직사각형들 및 현재 프레임에 대해 계산된 조정된 직사각형에 기초하여 천이 데이터가 생성된다. 천이 데이터는 탄성 스프링 모델에 기초하여 생성된다.
실시예들에서, 탄성 스프링 모델은 다음과 같이 정의될 수 있다:
Figure 112016056842129-pct00001
여기서, m("질량"), k("강도") 및 D("감쇠율")은 구성가능한 상수들이며, x(변위)와 t(시간)은 변수들이다. 즉, 천이 가속도가 변위와 해당 천이의 속도의 가중화된 합에 비례하는 모델이 된다.
잘라내기 직사각형들은 탄성 스프링 모델에 따라 이리저리 움직인다. 프레임들 간의 이러한 부드러운 천이들은 비디오 버벅거림을 방지시킨다. 또한 다음과 같은 이유로 인코딩의 효율성을 증가시킨다. 탄성 모델은 잘라내기 직사각형들의 움직임을 효율적으로 '약화'시키기 때문에, 인접한 프레임들 간의 차이들을 감소시킴으로써, 분명하게도, 보다 효율적인 미분 인코딩을 초래시킨다.
이것을 이제 도 9를 참조하여 설명할 것이다. 도 9는 시간이 경과함에 따라 원단 사용자에 전송될 비디오를 제어하는 방법(900)의 흐름도 및 방법(900)의 예시적인 도해를 우측 상에 도시한다.
단계 S902에서, 캡처된 비디오의 비디오 프레임들의 시퀀스에서의 현재 비디오 프레임(956)에 대해, 비디오 제어기는 제1 시간 및 하나 이상의 제2 시간들 각각에서, 선택된 시각적 사용자 특징들(이 실시예에서 신체 부분들)의 검출에 기초하여 (예컨대, 상술한 미리 결정된 종횡비들을 갖는 경계 직사각형들을 계산함으로써) 제1 경계선 데이터 세트 및 하나 이상의 제2 경계선 데이터 세트들을 생성하며, 제1 시간은 현재 프레임(956)의 시간이며, 제2 시간(들)은 이전 프레임들의 시간(들)이다. 이전 프레임들에 대한 경계선 데이터는 이후의 프레임들에 대한 경계선 데이터에 앞서 (예컨대, 프레임별로) 생성될 수 있다. 그러므로, 단계 S902는 여러 비디오 프레임들에 걸친 기간 동안에 일어날 수 있다.
도 9의 우측 상에서는 각각의 제1 시간(t1)과 제2 시간(t2)에서의 두 개의 예시적인 경계 직사각형들(950, 952)이 도시된다. t2에 대한 직사각형은 t1에 대한 직사각형보다 큰 것으로서 도시되는데, 그 이유는, 예컨대, 두 명의 사용자들(102a, 102b)이 추적 중에 있고 이들 사용자들이 더욱 더 멀리 떨어지고 있기 때문이거나, 또는 이용가능한 자원들에서의 변동(예컨대, 채널 대역폭의 증가)이 자원 관리기(306)로 하여금, 결정된 종횡비를 증가시키게 하여, 보다 많은 신체 부분들을 갖는 영역이 선택되고(예컨대, 영역 1에서 영역 2로의 스위치) 이에 따라 경계 직사각형이 비디오 제어기(304)에 의해 자동적으로 조정되는 것을 야기시키기 때문이다.
단계 S904에서, 비디오 모듈(304)은 상술한 동적 모델을 이용하여 제1 및 제2 경계선 데이터 세트들에 기초하여 천이 데이터를 생성한다. 생성된 천이 데이터는 이전 프레임들의 경계 직사각형들로부터 현재 프레임(956)의 경계 직사각형으로의 천이를 나타내는 천이 경계 직사각형(954)(도 9에서 도시됨)을 효과적으로 정의한다.
예를 들어, 상기 탄성 스프링 모델에 따라, 경계 직사각형들은 상이한 위치들의 하나 이상의 점들(한 형태의 경계선 데이터)에 의해 파라미터화될 수 있다. 점은 시간(t2)에서의 제2 위치("desiredPosition")(직사각형(952)의 파라미터임)와 시간(t1)에서의 제1 위치("currentPosition")(직사각형(950)의 파라미터임)를 가질 수 있다. 이 경우, 천이 데이터는 아래와 같이, "currentPosition"를 천이 경계 직사각형(954)의 파라미터인 업데이트된 "currentPosition"로 업데이트함으로써 생성될 수 있다:
Figure 112016056842129-pct00002
단계 S908에서, 비디오 제어기는 선택된 특징들을 추적하기 위해 천이 데이터에 기초하여 비디오를 제어한다. 여기서, 이것은 인코딩 및 원단 사용자(108)로의 전송을 위해 (경계 직사각형(954) 밖에 있는 프레임(956)의 이미지 데이터가 아닌) 경계 직사각형(954) 내에 있는 프레임(956)의 이미지 데이터만이 인코더(308)에 공급되도록 비디오를 잘라내기하는 것을 수반한다.
검출기(222) 및 센서 프로세서(310)는, 검출기(222)로부터 대략 1미터보다 많이 이격되어 있는(즉, 센서의 시야 밖에 있는) 사용자들이 추적되지 않도록 하여, 이 사용자들이 잘라내기 직사각형에 영향을 미치지 않도록 구성된다. 따라서, 예컨대, 초기에 두 명의 사용자들이 추적되고 그 중 한 명이 시야 밖으로 움직이면, 방법들(800, 900)에 따라, 그 후에 계산된 잘라내기 직사각형들은 남아있는 사용자의 특징들에만 기초할 것이며, 이에 따라 남아있는 사용자에 자동적으로 '줌 인'할 것이다(탄성 모델은 이 줌에 대해 부드러운 천이를 보장한다).
실시예들에서, 1920x1080 비디오에 대해 대역폭이 충분하지만, 추적될 신체가 적어도 하나 있다고 자원 관리기가 고려하는 경우에 비디오 전송 해상도가 1280x720로 스위칭되어 동적 추적이 가능하게 하도록, 비디오 제어기(304)는 자원 관리기(306) 내로 피드백될 수 있다(비디오 전송 해상도가 캡처 당시의 해상도와 같으면, '조종할 여지'가 없으며, 각각의 프레임에 대해, 잘라내기 직사각형은 해당 프레임 전체를 효과적으로 망라하며, 이 내용은 예컨대, 업 스케일링이 활용되지 않는 경우에 통한다).
언급한 바와 같이, 센서 프로세서(310)는 각각의 검출된 골격점을 식별하는 정보뿐만이 아니라, 센서(226)의 시야 내의 하나 이상의 사용자들 중 어느 사용자가 이러한 골격점들에 대응하는지를 식별하는 정보를 공급한다. 따라서, 설명한 방법(800)은 (센서 검출기(226)가 사용자들을 구별할 수 있는 상태로 남아있는 한) 임의의 수의 사용자들로 구현될 수 있으며, 선택된 영역 내의 각각의 특징에 대해, 각각의 영역에 대한 이러한 특징들을 추적할 것이다. 따라서, 방법(800)은 다중 사용자들이 프레임 내로 걸어들어올 때 (비디오 내 선택된 영역에 대해 해당 사용자의 임의의 신체 부분들을 포함하도록 효과적으로 줌 아웃시킴으로써) 신규 사용자들을 수용하고, 사용자들이 프레임 밖으로 걸어나갈 때 (남아있는 사용자들의 선택된 영역에 대한 신체 부분들만이 비디오 내에서 유지되도록 선택된 영역에 대해 해당 사용자의 신체 부분들에 의해 이전에 점유된 임의의 영역들을 배제하도록 효과적으로 줌 인함으로써) 조정되도록 경계 직사각형들이 (탄성 모델로 인해) 부드러운 방식으로 자동적으로 천이하면서, 다중 사용자들이 프레임 안팎으로 걸어들어오고 걸어나갈 때에 자동적으로 적응된다.
제어기(302)에 의해 구현되는 방법들(800, 900)은, (사용자들(102a, 102b, 108, 112) 사이에서), 예컨대 사용자 디바이스들(104, 110, 114)을 이용하여, 네트워크(106)를 통해 다수당사자 통화가 수행되는 동안에, 각각의 원단 디바이스(110)(제2 디바이스) 및 디바이스(114)(제3 디바이스)에 대해 개별적인 경계 직사각형들이 근단 사용자(104)(제1 디바이스)에 의해 결정되도록 구현될 수 있다.
즉, 상기 내용에 더하여, 자원 관리기는, (제2 디바이스(110)에 대해 마찬가지의 정보와 같은 상술한 정보를 수신하는 것에 더하여) 사용자 디바이스(104)와 제3 사용자 디바이스(114) 사이의 통신 채널, 및 추가적인 사용자 디바이스의 자원들 중 적어도 하나에 관한 추가적인 정보를 수신할 수 있다. 그런 후, 자원 관리기는 (제2 사용자 디바이스(110)에 전송될 비디오를 제어하기 위해 앞서 언급한 특징들을 선택하는 것에 더하여) 제3 사용자 디바이스(114)에 전송될 비디오를 제어하기 위해 상기 수신된 추가적인 정보에 기초하여 복수의 시각적 사용자 특징들(예컨대, 신체 부분들)로부터 선택된 추가적인 특징들을 선택한다.
그런 후, 비디오 제어기(304)는 (제3 디바이스 비디오 내의 상기 선택된 추가적인 특징들을 추적하기 위해) 제3 디바이스(114)에 대해 선택된 상기 선택된 추가적인 특징들의 검출에 기초하여 제3 사용자 디바이스(114)에 전송될 비디오를 제어하면서, 제2 디바이스(110)에 대해 선택된 특징들의 검출에 기초하여 제2 사용자 디바이스(110)에 전송될 비디오를 제어한다.
제3 사용자 디바이스에 대한 특징들의 추가적인 선택은 제2 사용자 디바이스에 대한 특징들의 선택과는 독립적이고 이와 상이할 수 있다. 따라서, 제2 사용자 디바이스에 전송된 추가적인 비디오는 제2 사용자 디바이스에 전송된 비디오와는 상이할 수 있고, 제3 사용자 디바이스에 전송된 추가적인 비디오는 제2 사용자 디바이스에 전송된 비디오보다 많거나 또는 적은 사용자 특징들을 추적한다.
제2 사용자 디바이스 비디오에 대한 특징들의 선택은 제3 사용자 비디오에 대한 특징의 선택과는 독립적이다. (제1 사용자 디바이스(104)가 저속 연결을 통해 네트워크(106)에 연결된 것과 같은) 조건이 둘 다에 대해 마찬가지의 잘라내기를 일으킬 수 있는 반면에, (제2 사용자 디바이스와 제3 사용자 디바이스 중 하나가 저속 연결을 통해 네트워크(106)에 연결되거나, 또는 이 디바이스들 중 하나가 제한된 자원들을 갖는 것과 같은) 다른 조건들은 상이한 잘라내기를 일으킬 수 있다.
예를 들어, 제3 사용자 디바이스(114)는 소형 스크린(예컨대, 스마트폰 스크린)을 가질 수 있고/있거나 저속 연결을 통해 네트워크(106)에 연결될 수 있는 반면에, 제2 사용자 디바이스(110)는 대형 스크린(예컨대, TV 스크린에 연결됨)을 가질 수 있고/있거나 고속 연결을 통해 네트워크(106)에 연결될 수 있다. 이 경우, 사용자(108)가 사용자들(102a, 102b)을 머리에서 발끝까지 보여주는 비디오를 수신하도록 제2 사용자 디바이스에 전송된 비디오는 "영역 4" 잘라내기(표 2 참조바람)를 겪을 수 있다. 이와 대비되어, 사용자(112)가 사용자들(102a, 102b)의 각각의 머리와 어깨만을 보여주는 비디오를 수신하도록 사용자 디바이스(114)에 전송된 비디오는 "영역 1" 잘라내기(표 2 참조바람)를 겪을 수 있다.
상기 내용에서, 네트워크를 통해 전송될 비디오는 비디오 신호 프로세싱에 의해 제어되지만, 이와 달리 또는 추가적으로, 비디오는 선택된 특징들의 검출에 기초하여 카메라 자체를 조작함으로써 (제어기(302)의) 비디오 제어기(304)에 의해 제어될 수 있으며, 이러한 조작은 팬 동작, 줌 동작, 및 틸트 동작 중 적어도 하나를 수행하기 위해 카메라의 메카닉들을 조작하는 것을 포함한다. 예를 들어, 다수당사자 통화의 경우, 광학적 줌 및 디지털 줌(잘라내기)이 예컨대, 최고 개수의 선택된 사용자 특징들을 보여주는 비디오를 캡처하는 데에 이용되는 메카닉 줌(예컨대, 메카닉 줌은 상기 예시에서 제2 사용자 디바이스(110)에게 보여질 영역을 선택하는 데에 이용될 수 있다)과 함께 이용될 수 있고, 이 때 보다 적은 사용자 특징들을 갖는 비디오가 전송될 사용자들(예컨대, 상기 예시에서 제3 디바이스(114))에 대한 비디오를 제어하기 위해 해당 비디오의 잘라내기가 이용된다.
또한, 상기 내용에서는 탄성 모델이 활용되었지만, 대안책으로서, (예컨대, 하나 이상의 시간 미분 방정식들에 기초한) 임의의 동적 모델이 천이 데이터를 생성하는 데에 이용될 수 있다.
또한, 상기 내용에서는, 해당 패턴을 검출하도록 구성된 센서의 전방에 비가시적 방사선 패턴을 투사하는 깊이 검출기에 의해 공급된 센서 데이터에 기초하여, 선택된 시각적 특징(다리, 팔 등)이 검출되지만, 대안적인 검출들이 구상가능하다. 예를 들어, 깊이 검출은 깊이를 측정하는 데에 방사선 전파 시간이 이용되는 TOF(time-of-flight) 기반 검출일 수 있다. 대안적으로, (다수의 이차원 이미지들로부터) 3D 이미지를 구축하기 위해 상이한 경사들을 갖는 (3D 이미지 인식 알고리즘과 함께 이용되는 플렌옵틱(plenoptic) 카메라 또는 이와 유사한 카메라와 같은) 카메라들의 어레이가 이용될 수 있으며, 이 경우 시각적 특징은 3D 이미지로부터 검출된다.
일반적으로, 여기서 설명된 기능들 중 임의의 기능(예컨대, 도 3에서 도시된 기능 모듈들 및 도 8과 도 9에서 도시된 기능 단계들)은 소프트웨어, 펌웨어, 하드웨어(예컨대, 고정된 로직 회로), 또는 이러한 구현예들의 조합을 이용하여 구현될 수 있다. 도 3에서 개별적으로 도시된 모듈들(비디오 프로세싱 시스템(300), 제어기(302), 비디오 신호 프로세서(304), 자원 관리기(306), 인코더(308) 등) 및 도 8과 도 9에서 개별적으로 도시된 단계들은 개별적인 모듈들 또는 단계들로서 구현될 수 있거나 또는 그렇지 않을 수 있다. 여기서 이용된 "모듈", "기능성", "컴포넌트" 및 "로직" 용어들은 일반적으로 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합을 나타낸다. 소프트웨어 구현예의 경우, 모듈, 기능성, 또는 로직은 프로세서(예컨대, CPU 또는 CPU들) 상에서 실행될 때 특정 태스크들을 수행하는 프로그램 코드를 나타낸다. 프로그램 코드는 하나 이상의 컴퓨터로 판독가능한 메모리 디바이스들 내에 저장될 수 있다. 여기서 설명되는 기술들의 특징들은 플랫폼 독립적인데, 이것은 본 기술들이 다양한 프로세서들을 갖는 다양한 상용 컴퓨팅 플랫폼들 상에서 구현될 수 있다는 것을 의미한다. 예를 들어, 사용자 디바이스들은 또한 사용자 디바이스들의 하드웨어가 연산들, 예컨대 프로세서 기능 블록들 등을 수행하게 하는 엔티티(예컨대, 소프트웨어)를 포함할 수 있다. 예를 들어, 사용자 디바이스들은 사용자 디바이스들, 및 보다 구체적으로는 사용자 디바이스들의 운영체제 및 이와 연관된 하드웨어가 연산들을 수행하게 하는 명령어들을 유지하도록 구성될 수 있는 컴퓨터로 판독가능한 매체를 포함할 수 있다. 예를 들어, 도 3의 모듈들 모두 또는 일부는 하나 이상의 프로세서들 상에서 실행되는 클라이언트 애플리케이션의 소프트웨어에 의해 구현될 수 있다. 따라서, 명령어들은 운영체제 및 이와 연관된 하드웨어가 연산들을 수행하도록 구성시키는 기능을 하며, 이렇게 해서, 기능들을 수행하는 운영체제 및 이와 연관된 하드웨어의 변환을 초래시킨다. 명령어들은 다양한 상이한 구성들을 통해서 컴퓨터로 판독가능한 매체에 의해 사용자 디바이스들에게 제공될 수 있다.
컴퓨터로 판독가능한 매체의 이러한 한가지 구성은 신호 베어링 매체이며, 이에 따라 네트워크를 통해서와 같이, 명령어들(예컨대, 반송파)을 컴퓨팅 디바이스에게 전송하도록 구성된다. 컴퓨터로 판독가능한 매체는 또한 컴퓨터로 판독가능한 저장 매체로서 구성될 수 있으며, 이에 따라 신호 베어링 매체는 아니다. 컴퓨터로 판독가능한 저장 매체의 예시들에는 RAM(random-access memory), ROM(read-only memory), 광학 디스크, 플래시 메모리, 하드 디스크 메모리, 및 명령어들과 다른 데이터를 저장하기 위한 자기적, 광학적, 및 다른 기술들을 이용할 수 있는 다른 메모리 디바이스들이 포함된다.
본 발명내용은 구조적 특징들 및/또는 방법론적 동작들에 특유적인 용어로 기술되었지만, 첨부된 청구항들에서 정의된 발명내용은 위에서 설명된 이러한 특정한 특징들 또는 동작들로 반드시 제한될 필요는 없다는 것을 이해하여야 한다. 이보다는, 위에서 설명된 특정한 특징들 및 동작들은 청구항들을 구현하는 예시 형태들로서 개시된 것이다.

Claims (28)

  1. 사용자 디바이스에 있어서,
    이미지 캡처 디바이스로부터 수신된, 하나 이상의 사용자들의 비디오를, 네트워크를 통해 적어도 다른 사용자 디바이스에 전송하도록 구성된 네트워크 인터페이스;
    복수의 시각적 사용자 특징(characteristic)들로부터 하나 이상의 특징들을 선택하고, 상기 선택된 특징들을 추적하기 위해 상기 선택된 특징들의 검출에 기초하여 상기 비디오를 제어하도록 구성된 비디오 제어기 - 상기 선택된 특징들의 검출은 상기 사용자들 중 적어도 하나의 사용자에 대한, 해당 사용자의 복수의 검출된 골격점(skeletal point)들을 수신하는 것을 포함하며, 상기 비디오는 상기 검출된 골격점들에 기초하여 제어됨 -; 및
    상기 사용자 디바이스와 상기 다른 사용자 디바이스 중 적어도 하나의 것의 하나 이상의 자원들에 관한 정보와, 상기 사용자 디바이스와 상기 다른 사용자 디바이스 사이의 통신 채널에 관한 정보 중 적어도 하나의 정보를 수신하고, 상기 수신된 정보에 기초하여, 상기 비디오 제어기에 의한 상기 선택을 제어하도록 구성된 자원 관리기
    를 포함하는 사용자 디바이스.
  2. 제1항에 있어서,
    상기 복수의 시각적 사용자 특징들은 복수의 사용자 신체 부분들인 것인, 사용자 디바이스.
  3. 제2항에 있어서,
    상기 복수의 사용자 신체 부분들은, 머리, 어깨, 중간척추, 하부척추, 전체척추, 팔꿈치, 엉덩이, 다리, 및 발 중 적어도 하나를 포함한 것인, 사용자 디바이스.
  4. 제3항에 있어서,
    상기 특징들의 선택은 네 개의 신체 영역들 중에서의 하나의 신체 영역의 선택이고, 상기 네 개의 신체 영역들 중 첫번째 영역은 머리와 어깨를 포함하고, 상기 네 개의 신체 영역들 중 두번째 영역은 머리, 어깨, 중간척추 및 팔꿈치를 포함하고, 상기 네 개의 신체 영역들 중 세번째 영역은 머리, 어깨, 중간척추, 팔꿈치, 하부척추 및 엉덩이를 포함하며, 상기 네 개의 신체 영역들 중 네번째 영역은 머리, 어깨, 전체척추, 팔꿈치, 엉덩이, 다리 및 발을 포함한 것인, 사용자 디바이스.
  5. 제1항에 있어서,
    상기 비디오는 복수의 사용자들의 것이고, 상기 비디오 제어기는 또한 상기 사용자들 각각에 대한 상기 선택된 특징들을 추적하기 위해 상기 사용자들 각각에 대한 상기 선택된 특징들의 검출에 기초하여 상기 비디오를 제어하도록 구성된 것인, 사용자 디바이스.
  6. 제1항에 있어서,
    상기 자원 관리기는 또한 상기 수신된 정보에 기초하여 비디오 해상도를 결정하도록 구성되며, 상기 비디오 제어기에 의한 상기 특징들의 선택은 상기 결정된 비디오 해상도에 기초한 것인, 사용자 디바이스.
  7. 제6항에 있어서,
    상기 특징들의 선택은, 상기 수신된 정보가 양호한 채널 퀄리티와 더 많은 디바이스 자원들 중 적어도 하나를 표시하면 더 많은 수의 특징들을 선택하는 것, 그리고 상기 수신된 정보가 불량한 채널 퀄리티와 더 적은 디바이스 자원들 중 적어도 하나를 표시하면 더 적은 수의 특징들을 선택하는 것을 포함한 것인, 사용자 디바이스.
  8. 제1항에 있어서,
    상기 네트워크 인터페이스는 또한 상기 이미지 캡처 디바이스로부터 수신된, 상기 하나 이상의 사용자들의 추가적인 비디오를, 설정된 네트워크를 통해 추가적인 사용자 디바이스에 전송하도록 구성되고,
    상기 비디오 제어기는 또한 상기 복수의 시각적 사용자 특징들로부터 하나 이상의 특징들의 추가적인 선택을 수행하고, 상기 선택된 추가적인 특징들을 추적하기 위해 상기 선택된 추가적인 특징들의 검출에 기초하여 상기 추가적인 비디오를 제어하도록 구성되며,
    상기 자원 관리기는 또한 상기 사용자 디바이스와 상기 추가적인 사용자 디바이스 사이의 통신 채널과, 상기 추가적인 사용자 디바이스의 하나 이상의 자원들 중 적어도 하나의 것에 관한 추가적인 정보를 수신하고, 상기 수신된 추가적인 정보에 기초하여, 상기 비디오 제어기에 의한 상기 선택을 제어하도록 구성된 것인, 사용자 디바이스.
  9. 제1항에 있어서,
    상기 비디오의 제어는 상기 복수의 검출된 골격점들 중에서의 골격점들의 선택에 기초하되, 상기 복수의 검출된 골격점들 외의 다른 골격점들에는 기초하지 않은 것인, 사용자 디바이스.
  10. 제9항에 있어서,
    상기 비디오 제어기는 또한 경계선 데이터를 생성하도록 구성되고, 상기 경계선 데이터를 생성하는 것은 상기 선택된 특징들 각각에 대한 각각의 개별 경계선 데이터를 생성하는 것을 포함하며, 상기 경계선 데이터는 각각의 선택된 특징에 대한 각각의 개별 경계선 데이터에 기초한 것인, 사용자 디바이스.
  11. 제10항에 있어서,
    상기 경계선 데이터는 상기 다른 사용자 디바이스로부터 수신된 종횡비를 갖는 경계선을 정의하는 것인, 사용자 디바이스.
  12. 제1항에 있어서,
    상기 비디오의 제어는 상기 선택된 특징들의 검출에 기초하여 경계선 데이터를 생성하는 것을 포함한 것인, 사용자 디바이스.
  13. 제12항에 있어서,
    상기 비디오의 제어는, 상기 생성된 경계선 데이터에 기초하여 상기 이미지 캡처 디바이스로부터 수신된 비디오 데이터를 프로세싱하는 것과, 상기 생성된 경계선 데이터에 기초하여 상기 이미지 캡처 디바이스의 메카닉(mechanic)들을 조작하는 것 중 적어도 하나를 포함한 것인, 사용자 디바이스.
  14. 제13항에 있어서,
    상기 비디오 데이터의 프로세싱은, 상기 생성된 경계선 데이터에 기초하여 상기 비디오 데이터를 잘라내기(crop)하는 것을 포함하며, 상기 전송은 상기 잘라내기된 비디오 데이터의 전송인 것인, 사용자 디바이스.
  15. 제14항에 있어서,
    비디오 데이터를 인코딩하도록 구성된 인코더를 더 포함하고, 상기 비디오 제어기는 또한 상기 잘라내기된 비디오 데이터를 상기 인코더에 공급하도록 구성되며, 상기 인코더는 또한 상기 인코딩된 비디오 데이터를 상기 전송을 위해 상기 네트워크 인터페이스에 공급하도록 구성된 것인, 사용자 디바이스.
  16. 제1항에 있어서,
    깊이 검출 디바이스를 더 포함하고, 상기 비디오 제어기에 의한 상기 선택된 특징들의 검출은 상기 깊이 검출 디바이스에 의해 상기 비디오 제어기에 공급된 센서 데이터에 기초한 것인, 사용자 디바이스.
  17. 시스템에 있어서,
    이미지 캡처 디바이스;
    상기 이미지 캡처 디바이스에 결합된 하나 이상의 프로세서들; 및
    상기 시스템으로 하여금 방법을 수행하게 하도록 구성된, 상기 하나 이상의 프로세서들에 의해 실행가능한 명령어들을 포함한 하나 이상의 메모리 디바이스들
    을 포함하고, 상기 방법은,
    상기 이미지 캡처 디바이스로부터 수신된, 하나 이상의 사용자들의 비디오를, 네트워크를 통해 적어도 다른 사용자 디바이스에 전송하는 단계;
    사용자 디바이스와 상기 다른 사용자 디바이스 중 적어도 하나의 것의 하나 이상의 자원들에 관한 정보와, 상기 사용자 디바이스와 상기 다른 사용자 디바이스 사이의 통신 채널에 관한 정보 중 적어도 하나의 정보를 수신하는 단계;
    상기 수신된 정보에 기초하여 복수의 시각적 사용자 특징들로부터 특징들을 선택하는 단계; 및
    상기 선택된 특징들을 추적하기 위해 상기 선택된 특징들의 검출에 기초하여 상기 비디오를 제어하는 단계
    를 포함하며,
    상기 선택된 특징들의 검출은 상기 사용자들 중 적어도 하나의 사용자에 대한, 해당 사용자의 복수의 검출된 골격점들을 수신하는 것을 포함하며, 상기 비디오는 상기 검출된 골격점들에 기초하여 제어되는 것인, 시스템.
  18. 사용자 디바이스에 있어서,
    네트워크에 연결하기 위한 네트워크 인터페이스;
    하나 이상의 프로세서들
    을 포함하고, 상기 하나 이상의 프로세서들은,
    이미지 캡처 디바이스로부터 수신된, 하나 이상의 사용자들의 비디오를, 상기 네트워크를 통해 다른 사용자 디바이스에 전송하고,
    복수의 시각적 사용자 특징들로부터 특징들을 선택하고,
    제1 시간과 제2 시간 각각에서 상기 선택된 특징들의 검출에 기초하여 제1 경계선 데이터 세트와 제2 경계선 데이터 세트를 생성하고,
    동적 모델을 사용하여 상기 제1 경계선 데이터 세트와 상기 제2 경계선 데이터 세트에 기초하여 천이 데이터를 생성하며,
    상기 선택된 특징들을 추적하기 위해 상기 천이 데이터에 기초하여 상기 비디오를 제어하도록 구성된 것인, 사용자 디바이스.
  19. 제18항에 있어서,
    상기 동적 모델은 탄성 스프링 모델을 포함한 것인, 사용자 디바이스.
  20. 제18항에 있어서,
    상기 비디오의 제어는 상기 선택된 특징들의 검출에 기초하여 경계선 데이터를 생성하는 것을 포함한 것인, 사용자 디바이스.
  21. 사용자 디바이스로부터 다른 사용자 디바이스에게, 하나 이상의 사용자들의 비디오를 전송하는 방법에 있어서,
    상기 비디오를 이미지 캡처 디바이스로부터 수신하는 단계;
    상기 사용자 디바이스와 상기 다른 사용자 디바이스 중 적어도 하나의 것의 하나 이상의 자원들에 관한 정보와, 상기 사용자 디바이스와 상기 다른 사용자 디바이스 사이의 통신 채널에 관한 정보 중 적어도 하나의 정보를 수신하는 단계;
    상기 수신된 정보에 기초하여, 상기 수신된 비디오에서의 복수의 시각적 사용자 특징들로부터 하나 이상의 선택된 특징들을 검출하는 단계;
    상기 선택된 특징들을 추적하기 위해 상기 선택된 특징들을 검출한 것에 기초하여 상기 비디오를 제어하는 단계 - 상기 선택된 특징들의 검출은 상기 사용자들 중 적어도 하나의 사용자에 대한, 해당 사용자의 복수의 검출된 골격점들을 수신하는 것을 포함하며, 상기 비디오는 상기 검출된 골격점들에 기초하여 제어됨 -; 및
    상기 비디오를 상기 통신 채널을 통해 상기 다른 사용자 디바이스에 전송하는 단계
    를 포함하는 하나 이상의 사용자들의 비디오를 전송하는 방법.
  22. 제21항에 있어서,
    상기 복수의 시각적 사용자 특징들은 복수의 사용자 신체 부분들이고, 상기 복수의 사용자 신체 부분들은, 머리, 어깨, 중간척추, 하부척추, 전체척추, 팔꿈치, 엉덩이, 다리, 및 발 중 적어도 하나를 포함한 것인, 하나 이상의 사용자들의 비디오를 전송하는 방법.
  23. 제22항에 있어서,
    상기 특징들의 선택은 네 개의 신체 영역들 중에서의 하나의 신체 영역의 선택이고, 상기 네 개의 신체 영역들 중 첫번째 영역은 머리와 어깨를 포함하고, 상기 네 개의 신체 영역들 중 두번째 영역은 머리, 어깨, 중간척추 및 팔꿈치를 포함하고, 상기 네 개의 신체 영역들 중 세번째 영역은 머리, 어깨, 중간척추, 팔꿈치, 하부척추 및 엉덩이를 포함하며, 상기 네 개의 신체 영역들 중 네번째 영역은 머리, 어깨, 전체척추, 팔꿈치, 엉덩이, 다리 및 발을 포함한 것인, 하나 이상의 사용자들의 비디오를 전송하는 방법.
  24. 제21항에 있어서,
    상기 비디오는 복수의 사용자들의 것이고, 상기 비디오를 제어하는 단계는 상기 사용자들 각각에 대한 상기 선택된 특징들을 추적하기 위해 상기 사용자들 각각에 대한 상기 선택된 특징들을 검출하는 것에 기초한 것인, 하나 이상의 사용자들의 비디오를 전송하는 방법.
  25. 제21항에 있어서,
    상기 방법은 상기 수신된 정보에 기초하여 비디오 해상도를 결정하는 단계를 더 포함하며, 상기 특징들의 선택은 상기 결정된 비디오 해상도에 기초한 것인, 하나 이상의 사용자들의 비디오를 전송하는 방법.
  26. 제25항에 있어서,
    상기 특징들의 선택은, 상기 수신된 정보가 양호한 채널 퀄리티와 더 많은 디바이스 자원들 중 적어도 하나를 표시하면 더 많은 수의 특징들을 선택하는 것, 그리고 상기 수신된 정보가 불량한 채널 퀄리티와 더 적은 디바이스 자원들 중 적어도 하나를 표시하면 더 적은 수의 특징들을 선택하는 것을 포함한 것인, 하나 이상의 사용자들의 비디오를 전송하는 방법.
  27. 사용자 디바이스로부터 네트워크를 통해 다른 사용자 디바이스에게, 하나 이상의 사용자들의 비디오를 전송하는 방법에 있어서,
    상기 비디오를 이미지 캡처 디바이스로부터 수신하는 단계;
    복수의 시각적 사용자 특징들로부터 특징들을 선택하는 단계;
    제1 시간과 제2 시간 각각에서 상기 선택된 특징들을 검출한 것에 기초하여 제1 경계선 데이터 세트와 제2 경계선 데이터 세트를 생성하는 단계;
    동적 모델을 사용하여 상기 제1 경계선 데이터 세트와 상기 제2 경계선 데이터 세트에 기초하여 천이 데이터를 생성하는 단계;
    상기 선택된 특징들을 추적하기 위해 상기 천이 데이터에 기초하여 상기 비디오를 제어하는 단계; 및
    상기 비디오를 상기 네트워크를 통해 상기 다른 사용자 디바이스에 전송하는 단계
    를 포함하는 하나 이상의 사용자들의 비디오를 전송하는 방법.
  28. 제27항에 있어서,
    상기 동적 모델은 탄성 스프링 모델을 포함한 것인, 하나 이상의 사용자들의 비디오를 전송하는 방법.
KR1020167015756A 2013-11-19 2014-11-17 비디오 전송 KR102211669B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/084,090 US9307191B2 (en) 2013-11-19 2013-11-19 Video transmission
US14/084,090 2013-11-19
PCT/US2014/065855 WO2015077159A1 (en) 2013-11-19 2014-11-17 Video transmission

Publications (2)

Publication Number Publication Date
KR20160085877A KR20160085877A (ko) 2016-07-18
KR102211669B1 true KR102211669B1 (ko) 2021-02-02

Family

ID=51999571

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167015756A KR102211669B1 (ko) 2013-11-19 2014-11-17 비디오 전송

Country Status (11)

Country Link
US (1) US9307191B2 (ko)
EP (1) EP3072291B1 (ko)
JP (1) JP6486377B2 (ko)
KR (1) KR102211669B1 (ko)
CN (1) CN105745920B (ko)
AU (1) AU2014353251B2 (ko)
BR (1) BR112016010408B1 (ko)
CA (1) CA2928601C (ko)
MX (1) MX359852B (ko)
RU (1) RU2660816C2 (ko)
WO (1) WO2015077159A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11736756B2 (en) * 2016-02-10 2023-08-22 Nitin Vats Producing realistic body movement using body images
US9743042B1 (en) 2016-02-19 2017-08-22 Microsoft Technology Licensing, Llc Communication event
US10356341B2 (en) 2017-10-13 2019-07-16 Fyusion, Inc. Skeleton-based effects and background replacement
US10951859B2 (en) 2018-05-30 2021-03-16 Microsoft Technology Licensing, Llc Videoconferencing device and method
US10972744B2 (en) 2018-11-12 2021-04-06 Analog Devices International Unlimited Company Image scaling
CN109948494B (zh) * 2019-03-11 2020-12-29 深圳市商汤科技有限公司 图像处理方法及装置、电子设备和存储介质
WO2020230335A1 (ja) * 2019-05-16 2020-11-19 日本電信電話株式会社 骨格情報判定装置、骨格情報判定方法及びコンピュータプログラム
US10972655B1 (en) * 2020-03-30 2021-04-06 Logitech Europe S.A. Advanced video conferencing systems and methods
US10904446B1 (en) 2020-03-30 2021-01-26 Logitech Europe S.A. Advanced video conferencing systems and methods
US10951858B1 (en) 2020-03-30 2021-03-16 Logitech Europe S.A. Advanced video conferencing systems and methods
US10965908B1 (en) 2020-03-30 2021-03-30 Logitech Europe S.A. Advanced video conferencing systems and methods

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006128997A (ja) 2004-10-28 2006-05-18 Sharp Corp 映像送信装置、映像受信装置、映像送信方法及び映像伝送システム
JP2011238222A (ja) 2010-04-30 2011-11-24 Liberovision Ag 多関節オブジェクトモデルのポーズを推定するためのコンピュータ実行方法、仮想画像をレンダリングするためのコンピュータ実行方法、およびソース画像セグメントのセグメント化を決定するためのコンピュータ実行方法
US20120092445A1 (en) 2010-10-14 2012-04-19 Microsoft Corporation Automatically tracking user movement in a video chat application

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4307499A (en) 1998-05-03 1999-11-23 John Karl Myers Videophone with enhanced user defined imaging system
US20080250458A1 (en) * 1998-12-21 2008-10-09 Roman Kendyl A Media exchange for handheld wireless receivers and other media user devices
US7051357B2 (en) * 1999-05-28 2006-05-23 Intel Corporation Communicating ancillary information associated with a plurality of audio/video programs
US6611281B2 (en) 2001-11-13 2003-08-26 Koninklijke Philips Electronics N.V. System and method for providing an awareness of remote people in the room during a videoconference
GB2395853A (en) 2002-11-29 2004-06-02 Sony Uk Ltd Association of metadata derived from facial images
KR100596945B1 (ko) * 2003-10-30 2006-07-04 (주)씨앤에스 테크놀로지 영상 송수신 대역폭 및 화질 조절기능을 갖는 아이피 영상단말기 및 이의 제어방법
US7583287B2 (en) * 2005-03-22 2009-09-01 Microsoft Corp. System and method for very low frame rate video streaming for face-to-face video conferencing
US7878907B2 (en) 2005-05-13 2011-02-01 Microsoft Corporation Real-time HD TV/video IP streaming to a game console
US20080151786A1 (en) 2006-12-21 2008-06-26 Motorola, Inc. Method and apparatus for hybrid audio-visual communication
CN101755461B (zh) * 2007-07-20 2012-06-13 富士胶片株式会社 图像处理设备、图像处理方法
US20090079840A1 (en) 2007-09-25 2009-03-26 Motorola, Inc. Method for intelligently creating, consuming, and sharing video content on mobile devices
CN101141608B (zh) * 2007-09-28 2011-05-11 腾讯科技(深圳)有限公司 一种视频即时通讯系统及方法
KR100982607B1 (ko) * 2009-02-18 2010-09-15 장태환 영상처리시스템 및 영상처리방법
WO2011041903A1 (en) 2009-10-07 2011-04-14 Telewatch Inc. Video analytics with pre-processing at the source end
NO332204B1 (no) 2009-12-16 2012-07-30 Cisco Systems Int Sarl Fremgangsmate og anordning for automatisk kamerastyring i et videokonferanseendepunkt
US8744420B2 (en) * 2010-04-07 2014-06-03 Apple Inc. Establishing a video conference during a phone call
US8395653B2 (en) 2010-05-18 2013-03-12 Polycom, Inc. Videoconferencing endpoint having multiple voice-tracking cameras
US8902244B2 (en) 2010-11-15 2014-12-02 Cisco Technology, Inc. System and method for providing enhanced graphics in a video environment
US8898310B2 (en) 2010-12-15 2014-11-25 Microsoft Corporation Enhanced content consumption
US9049447B2 (en) 2010-12-30 2015-06-02 Pelco, Inc. Video coding
US8725680B2 (en) 2011-02-08 2014-05-13 Microsoft Corporation Media content location awareness and decision making
US8970704B2 (en) * 2011-06-07 2015-03-03 Verizon Patent And Licensing Inc. Network synchronized camera settings
US8832193B1 (en) * 2011-06-16 2014-09-09 Google Inc. Adjusting a media stream in a video communication system
US20120327176A1 (en) 2011-06-21 2012-12-27 Broadcom Corporation Video Call Privacy Control
US8773499B2 (en) * 2011-06-24 2014-07-08 Microsoft Corporation Automatic video framing
US9118801B2 (en) * 2011-10-24 2015-08-25 T-Mobile Usa, Inc. Optimizing video-call quality of service
US20140198838A1 (en) * 2013-01-15 2014-07-17 Nathan R. Andrysco Techniques for managing video streaming

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006128997A (ja) 2004-10-28 2006-05-18 Sharp Corp 映像送信装置、映像受信装置、映像送信方法及び映像伝送システム
JP2011238222A (ja) 2010-04-30 2011-11-24 Liberovision Ag 多関節オブジェクトモデルのポーズを推定するためのコンピュータ実行方法、仮想画像をレンダリングするためのコンピュータ実行方法、およびソース画像セグメントのセグメント化を決定するためのコンピュータ実行方法
US20120092445A1 (en) 2010-10-14 2012-04-19 Microsoft Corporation Automatically tracking user movement in a video chat application

Also Published As

Publication number Publication date
RU2016119109A (ru) 2017-11-23
US9307191B2 (en) 2016-04-05
BR112016010408A8 (pt) 2020-04-22
MX2016006443A (es) 2016-12-09
US20150138308A1 (en) 2015-05-21
BR112016010408B1 (pt) 2023-05-02
CN105745920A (zh) 2016-07-06
EP3072291B1 (en) 2018-07-11
CA2928601A1 (en) 2015-05-28
AU2014353251B2 (en) 2018-05-17
CN105745920B (zh) 2019-06-25
AU2014353251A1 (en) 2016-05-19
EP3072291A1 (en) 2016-09-28
CA2928601C (en) 2022-08-30
KR20160085877A (ko) 2016-07-18
WO2015077159A1 (en) 2015-05-28
RU2660816C2 (ru) 2018-07-10
JP2017503442A (ja) 2017-01-26
JP6486377B2 (ja) 2019-03-20
MX359852B (es) 2018-10-12
RU2016119109A3 (ko) 2018-05-03

Similar Documents

Publication Publication Date Title
KR102211669B1 (ko) 비디오 전송
US10210629B2 (en) Information processor and information processing method
US9542755B2 (en) Image processor and image processing method
US9628755B2 (en) Automatically tracking user movement in a video chat application
JP6548518B2 (ja) 情報処理装置および情報処理方法
US10469829B2 (en) Information processor and information processing method
US9348422B2 (en) Method for recognizing gestures and gesture detector
US9787943B2 (en) Natural user interface having video conference controls
US20160100166A1 (en) Adapting Quantization
CN110178158B (zh) 信息处理装置、信息处理方法和记录介质
US20150172634A1 (en) Dynamic POV Composite 3D Video System
US20140152761A1 (en) Information processing apparatus, information processing system and program
US10986401B2 (en) Image processing apparatus, image processing system, and image processing method
US20240015264A1 (en) System for broadcasting volumetric videoconferences in 3d animated virtual environment with audio information, and procedure for operating said device
CN103593050B (zh) 通过移动终端选取新闻屏幕并传递画面的方法及系统
US20240144530A1 (en) Method, program, and system for 3d scanning
US9176603B2 (en) Interactive pointing device capable of switching capture ranges and method for switching capture ranges
JPWO2017098999A1 (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法、及び、コンピュータープログラム
US20140375774A1 (en) Generation device and generation method

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