JP6486377B2 - ビデオ送信 - Google Patents

ビデオ送信 Download PDF

Info

Publication number
JP6486377B2
JP6486377B2 JP2016554533A JP2016554533A JP6486377B2 JP 6486377 B2 JP6486377 B2 JP 6486377B2 JP 2016554533 A JP2016554533 A JP 2016554533A JP 2016554533 A JP2016554533 A JP 2016554533A JP 6486377 B2 JP6486377 B2 JP 6486377B2
Authority
JP
Japan
Prior art keywords
video
user device
user
features
users
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2016554533A
Other languages
English (en)
Other versions
JP2017503442A5 (ja
JP2017503442A (ja
Inventor
ディー. ベレット,ダグラス
ディー. ベレット,ダグラス
ドラーニュ,ルシアン
イー. コレンカーク,ショーン
イー. コレンカーク,ショーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2017503442A publication Critical patent/JP2017503442A/ja
Publication of JP2017503442A5 publication Critical patent/JP2017503442A5/ja
Application granted granted Critical
Publication of JP6486377B2 publication Critical patent/JP6486377B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • 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)
  • User Interface Of Digital Computer (AREA)
  • Telephonic Communication Services (AREA)
  • Image Processing (AREA)
  • Information Transfer Between Computers (AREA)

Description

従来の通信システムは、パーソナルコンピュータやモバイルデバイス等といったデバイスのユーザが、インターネット等のパケットベースのコンピュータネットワークを介して音声通話又はビデオ通話を行うことを可能にしている。そのような通信システムは、ボイスオーバーインターネットプロトコル(VoIP)システム又はビデオオーバーインターネットプロトコル(VoIP)システムを含む。これらのシステムは、従来の固定回線網又はモバイルセルラネットワークよりも、しばしば著しく低コストであるため、ユーザにとって有益である。これは、特に長距離通信の場合に当てはまり得る。VoIPシステムを使用するために、ユーザは、自分のデバイスにクライアントソフトウェアをインストールして実行する。クライアントソフトウェアは、VoIP接続をセットアップするだけでなく、登録及びユーザ認証等の他の機能も提供する。音声通信に加えて、クライアントは、インスタントメッセージング(「IM」)、SMSメッセージング、ファイル転送、及びボイスメール等の他の通信メディアのための接続もセットアップする。
最近では、ネットワーク間(internet)能力及び機能が、テレビジョンセットの他の(例えば大型スクリーンの)表示手段に接続されるよう構成されているゲームコンソール、テレビジョンセット自体(「スマートTV」としばしば呼ばれる)、テレビジョンセットに接続されるよう構成されているセットトップボックス等といったユーザデバイスに統合されている。これは、インターネット等のパケットベースのコンピュータネットワークを介する通信を可能にするための、ゲームコンソール、テレビジョンセット、セットトップボックス(又は同様のもの)へのクライアントソフトウェアの統合を含む。クライアントソフトウェアのこの統合は、遠端ユーザから受信されるビデオ信号を近端ユーザに出力することにより、ビデオ通話のために大型の高解像度スクリーンを利用することを可能にしている。さらに、特に、電気幹線により電力供給される大型のコンシューマ電子デバイスに対する電力要件は、例えばモバイルデバイスよりも厳格ではないので、大きな処理能力が、セットトップボックスやTV等といったユーザデバイス内に提供され得る。これは、ユーザデバイスに接続されているカメラ又は他の同様の画像入力手段から受信されるビデオデータの高品質音声・ビデオ符号化等といったフルレンジの機能を、組み込まれた通信クライアントに含めることを可能にすることができる。
この発明の概要は、発明を実施するための形態において以下でさらに説明されるコンセプトのうち選択したものを簡略化した形で紹介するために提供される。この発明の概要は、特許請求される主題の主要な特徴又は必要不可欠な特徴を特定することを意図するものではないし、特許請求される主題の範囲を限定するために使用されることを意図するものでもない。
ネットワークインタフェース、ビデオコントローラ、及びリソースマネージャを備えたユーザデバイスが開示される。ネットワークインタフェースは、画像キャプチャデバイスから受信された、1人以上のユーザのビデオを、ネットワークを介して、少なくとも別のユーザデバイスに送信するよう構成されている。ビデオコントローラは、複数の視覚的なユーザ特徴から1以上の特徴を選択し、選択された特徴を追跡するために、選択された特徴の検出に基づいてビデオを制御するよう構成されている。リソースマネージャは、ユーザデバイスと別のユーザデバイスとの間の通信チャネル、並びに/又は、ユーザデバイス及び/若しくは別のユーザデバイスの1以上のリソース、に関する情報を受信し、受信された情報に基づいて、ビデオコントローラによる上記選択を制御するよう構成されている。
ネットワークに接続するためのネットワークインタフェース及び1以上のプロセッサを備えたユーザデバイスも開示される。1以上のプロセッサは、画像キャプチャデバイスから受信された、1人以上のユーザのビデオを、ネットワークを介して、別のユーザデバイスに送信するよう構成されている。1以上のプロセッサは、複数の視覚的なユーザ特徴から特徴を選択し、第1の時間及び第2の時間のそれぞれにおいて、選択された特徴の検出に基づいて、第1のセットの境界データ及び第2のセットの境界データを生成するようさらに構成されている。1以上のプロセッサは、動的モデルを使用して、第1のセットの境界データ及び第2のセットの境界データに基づいて過渡データ(transition data)を生成し、選択された特徴を追跡するために、過渡データに基づいてビデオを制御するようさらに構成されている。
これらに対応する方法、及び、これらに対応する方法の各々に合わせて構成されている実行可能なコードを含むそれぞれのコンピュータプログラム製品も開示される。
本主題の理解のために、且つ、同主題がどのように実施され得るかを示すために、例として図面が参照される。
通信システムの概略図。 ユーザデバイスの概略ブロック図。 ビデオ制御技術の機能図。 ユーザデバイスとインタラクトしているユーザの概略図。 ユーザデバイスとインタラクトしているユーザの概略図。 放射線パターンの概略図。 ユーザの概略正面図。 ユーザの概略見下げ図。 ユーザの概略側面図。 ユーザの検出された骨格ポイントの概略図。 ユーザの推定された身体パーツの概略図。 ビデオを制御する方法のフローチャート。 時間の経過に伴ってビデオを制御する方法のフローチャート。
ビデオ通話(1対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(登録商標) PC、Mac OS(登録商標) PC、及びLinux(登録商標) PCを含む)、ゲームコンソール若しくは他のゲームデバイス、テレビジョン、携帯情報端末(「PDA」)、又はネットワーク106に接続することができる他の組み込みデバイスであり得る。ユーザデバイス104は、ユーザ102a、102bから情報を受け取り、ユーザ102a、102bに情報を出力するよう構成されている。ユーザデバイス104は、ディスプレイ及びスピーカ等の出力手段を備える。ユーザデバイス104は、キーパッド、タッチスクリーン、オーディオ信号を受信するためのマイクロフォン、及び/又は、一連のビデオフレーム(画像)から構成されるビデオ信号の画像をキャプチャするためのカメラ等の入力手段も備える。ユーザデバイス104は、ネットワーク106に接続されている。
ユーザデバイス104は、通信システム100に関連付けられているソフトウェアプロバイダにより提供された通信クライアントのインスタンスを実行する。通信クライアントは、ユーザデバイス104内のローカルプロセッサ上で実行されるソフトウェアプログラムである。通信クライアントは、ユーザデバイス104が通信システム100を介してデータを送受信するためにユーザデバイス104において必要とされる処理を実行する。
ユーザデバイス110は、ユーザデバイス104に対応するものであり、ユーザデバイス104において実行される通信クライアントに対応する通信クライアントを、ローカルプロセッサ上で実行する。ユーザデバイス110における通信クライアントは、ユーザデバイス104における通信クライアントが、ユーザ102a及び102bがネットワーク106を介して通信することを可能にするために必要とされる処理を実行するのと同様に、ユーザ108がネットワーク106を介して通信することを可能にするために必要とされる処理を実行する。ユーザデバイス114は、ユーザデバイス104に対応するものであり、ユーザデバイス104において実行される通信クライアントに対応する通信クライアントを、ローカルプロセッサ上で実行する。ユーザデバイス114における通信クライアントは、ユーザデバイス104における通信クライアントが、ユーザ102a及び102bがネットワーク106を介して通信することを可能にするために必要とされる処理を実行するのと同様に、ユーザ112がネットワーク106を介して通信することを可能にするために必要とされる処理を実行する。ユーザデバイス104、110、及び114は、通信システム100におけるエンドポイントである。図1は、明瞭さのために、4人のユーザ(102a、102b、108、及び112)及び3つのユーザデバイス(104、110、及び114)しか示していないが、より多くのユーザ及びユーザデバイスが、通信システム100に含まれてもよく、それぞれのユーザデバイス上で実行されるそれぞれの通信クライアントを使用して、通信システム100を介して通信してもよい。
図2は、通信システム100を介して通信するための通信クライアントインスタンス206が実行されるユーザデバイス104の詳細な図を示している。ユーザデバイス104は、プロセッサすなわち「処理モジュール」202を備える。プロセッサ202は、1以上の中央処理装置(「CPU」)を含む。プロセッサ202には、タッチスクリーンとして実装され得るディスプレイ208、オーディオ信号を出力するためのスピーカ(又は「ラウドスピーカ」)210、及び、赤外線(IR)プロジェクタ等の、非可視放射線を出力するための放射線プロジェクタ224といった出力デバイス;オーディオ信号を受信するためのマイクロフォン212、画像データを受信するためのカメラ216、キーパッド218、及び、例えば、赤外線信号の画像を受信するためのIRカメラといった、非可視放射線信号の非可視画像を受信するための放射線センサアレイ226といった入力デバイス;データを記憶するためのメモリ214;及び、ネットワーク106と通信するためのモデムといったネットワークインタフェース220が接続される。スピーカ210は、オーディオ信号処理モジュール209を介してプロセッサ202に接続される。ユーザデバイス104は、図2に示される要素以外の他の要素を備えてもよい。ディスプレイ208、スピーカ210、マイクロフォン212、メモリ214、カメラ216、キーパッド218、及びネットワークインタフェース220は、ユーザデバイス104に統合され得る。代替的に、ディスプレイ208、スピーカ210、マイクロフォン212、メモリ214、カメラ216、キーパッド218、及びネットワークインタフェース220のうちの1以上は、ユーザデバイス104に統合されなくてもよく、それぞれのインタフェースを介してプロセッサ202に接続されてもよい。そのようなインタフェースの一例がUSBインタフェースである。例えば、ゲームコンソールの形態のユーザデバイスの場合、カメラ216、プロジェクタ224、センサ226、ディスプレイ208、マイクロフォン212、キーパッド218(例えばゲームコントローラ)は、ゲームコンソールに統合されず、それぞれのインタフェースを介してプロセッサ202に接続され得るのに対し、ネットワークインタフェース220、メモリ214、及びプロセッサ202は、ゲームコンソールに統合され得る。ネットワークインタフェース220を介するネットワーク106へのユーザデバイス104の接続が、無線接続である場合、ネットワークインタフェース220は、ネットワーク106に信号を無線で送信するとともにネットワーク106から信号を無線で受信するためのアンテナを含み得る。
プロジェクタ224及びセンサ226は、3次元(「3D」)の非可視放射線データをキャプチャするための奥行き検出器222を構成する。この実施形態では、プロジェクタ224は、センサ226の前方に、センサ226により検出可能な放射線パターンを投射する。センサ226からのセンサデータは、(図5及び図6A〜図6Cを参照して以下でより詳細に説明するように)検出された放射線パターンにおける歪みに基づいて3D画像を構築するために使用される。奥行き検出器222及びカメラ216は、可能であればユーザデバイス104とは別の電源を有する、ユーザデバイス104に外付けされる1つのユニット内に一緒に収容され、適切なインタフェース(例えば、USB又はUSBベース)を介してプロセッサ202に接続され得る。そのようなユニットの一例が、Microsoft Kinect Sensor(登録商標)である。
図2はまた、プロセッサ202上で実行されるオペレーティングシステム(「OS」)204も示している。OS204の上で、通信システム100のクライアントインスタンス206のソフトウェアが実行される。オペレーティングシステム204は、ユーザデバイス104のハードウェアリソースを管理し、ネットワークインタフェース220を介してネットワーク106との間で通信されるデータを処理する。クライアント206は、オペレーティングシステム204と通信し、通信システム上の接続を管理する。クライアント206は、情報をユーザに102に提示するとともに情報をユーザ102から受け取るために使用されるクライアントユーザインタフェースを有する。このように、クライアント206は、ユーザ102が通信システム100を介して通信することを可能にするために必要とされる処理を実行する。
次に図3を参照して、ネットワークを介してビデオを送信する方法について説明する。図3は、ユーザデバイス104の一部の機能図である。
図3に示されるように、ユーザデバイス104は、エンコーダ308(例えば、H264エンコーダ)を備える。これは、ネットワーク106を介する送信に先立って符号化するためにプロセッサ202によりビデオデータが供給されるハードウェアエンコーダであってもよいし、(例えば)プロセッサ202上で実行されるソフトウェアにより実装されるソフトウェアエンコーダであってもよいし、これらの組合せであってもよい。ユーザデバイスは、コントローラ302(例えば、クライアント106のソフトウェアの一部として実装される)、カメラ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の1以上の他のユーザデバイス(例えば、110、114)との間の1以上の通信チャネルに関する情報を受信するよう構成されている。リソースマネージャ306の第2の入力部は、ユーザデバイス104及び/又は1以上の他のユーザデバイス(例えば、110、114)のリソースに関する情報を受信するよう構成されている。リソースマネージャ306の第3の入力部は、ビデオ信号プロセッサ304の出力部に接続されている。
リソースマネージャ306の出力部は、ビデオ信号プロセッサ304の第3の入力部に接続されている。ビデオ信号プロセッサ304は、エンコーダ308の入力部に接続されている出力部を有する。エンコーダは、ネットワーク106を介して第2のユーザデバイス110及び第3のユーザデバイスのうちの少なくとも1つに送信するためにネットワークインタフェース220に供給される前にユーザデバイス104においてさらなる処理(例えばパケット化)が実行され得る符号化されたビデオデータを供給するよう構成されている。
センサプロセッサ310は、センサ226によりキャプチャされセンサ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に供給される。図4Aに示されるように、領域402aのビデオのバージョンは、別のユーザに送信され、任意的に、別のユーザから受信されたビデオの上に重ねられてディスプレイ208上に表示される。図4Bにおいて、カメラ216によりキャプチャされた、第2の可視領域402bのビデオ−ユーザ102の上側部分及びユーザ102の下側部分の両方を含む−が、符号化して最終的にネットワーク106を介して別のユーザに送信するために、エンコーダ308に供給される。図4Bに示されるように、第2の領域402bのビデオのバージョンは、別のユーザに送信され、任意的に、別のユーザから受信されたビデオの上に重ねられてディスプレイ208上に表示される。
第1の可視領域402a及び第2の可視領域402bは、以下で説明するように、リソースマネージャ306から受信されたデータとセンサプロセッサ310から受信されたデータとに基づいてビデオ制御モジュールにより決定されたそれぞれのサイズ及び位置を有する。
図5は、プロジェクタ224により放射された放射線パターンを示している。図5に示されるように、放射線パターンは、系統的に不均質であり、交互強度(alternating intensity)を有する複数の系統的に配された領域を含む。詳細には、図5の放射線パターンは、放射線ドットの実質的に一様なアレイを含む。放射線パターンは、この実施形態では赤外線(IR)放射線パターンであり、さらに、センサ226により検出可能である。図5の放射線パターンは、例示的なものであり、他の放射線パターンの使用も想定されている。
この放射線パターン500は、プロジェクタ224により、センサ226の前方に投射される。センサ226は、センサ226の視野内に投射されたその非可視放射線パターンの画像をキャプチャする。これらの画像は、センサ226の視野内のユーザの奥行きを算出する(ユーザの3次元表現を実効的に構築する)ためにセンサプロセッサ310により処理され、これにより、異なるユーザと、それらの異なるそれぞれの身体パーツと、の認識が可能になる。
図6Bは、ユーザデバイス104の近くにいるユーザ102の見下げ図を示しており、図6Aは、(カメラ216及び検出器222のセンサ226により確認される)対応する正面図であり、図6Cは、対応する側面図である。図示されるように、ユーザ102は、左手を検出器222に向けて伸ばしている姿勢をとっている(もちろん、ユーザは他の形の姿勢をとることもできる)。ユーザの頭が、ユーザの胴の上に突出しており、ユーザの胴は、ユーザの右腕の前にある。放射線パターン500が、プロジェクタ224により、ユーザ上に投射されている。
図6Aに示されるように、ユーザ102は、したがって、センサ226により検出される投射された放射線パターンを歪めるように作用する形状を有する。ここで、プロジェクタからより遠くにあるユーザのパーツ上に投射された放射線パターンの部分(すなわち、この場合には、放射線パターンのドットが、より離れるようになる)は、プロジェクタからより近くにあるユーザのパーツ上に投射された放射線パターンの部分(すなわち、この場合には、放射線パターンのドットが、より離れないようになる)と比べて、実効的に広げられる。広がりのスケーリングの程度は、プロジェクタからの距離に応じ、ユーザのかなり後ろのオブジェクト上に投射された放射線の部分は、センサ226にとって実効的に不可視である。放射線パターン500は、系統的に不均質であるので、ユーザの形状による放射線パターンの歪みを使用して、センサプロセッサ310が、センサ226によりキャプチャされた歪んだ放射線パターンの画像を処理することにより、その形状を識別することができる(例えば、ユーザの頭、左手、右腕、胴等を識別することができる)。例えば、センサからユーザのある領域までの距離は、ユーザのその領域内における検出された放射線パターンのドット群の距離を測定することにより求めることができる。
図5及び図6Aにおいては、放射線パターンが、人間の目に見えるものとして示されているが、これは理解を助けるために過ぎず、ユーザ102上に投射される放射線パターンは、実際には人間の目に見えない。
次に図7A及び図7Bを参照して説明するように、センサ226によりキャプチャされた非可視放射線パターン500の画像(センサデータ)は、センサプロセッサ310により処理される。この処理は、骨格検出処理を含む。骨格検出処理は、当技術分野において知られており、例えば、Microsoft Xbox 360(登録商標)(時として、Microsoft Kinect Sensor(登録商標)とともに使用される)において現在実装されており、その結果が、ソフトウェア開発者による使用のために、アプリケーションプログラミングインタフェース(API)を介して利用可能になっている。
センサプロセッサ310は、センサ226からセンサデータを受信し、センサデータを処理して、センサ226の視野内の複数のユーザ(例えば、102a、102b)を判別し、当技術分野において知られている骨格検出技術を使用して、各ユーザについて、それぞれの複数の骨格ポイントを識別する。各骨格ポイントは、ビデオ内の対応する人間の関節のおおよその位置を表す。
詳細には、この実施形態では、センサプロセッサ310は、センサ226の視野内の各ユーザについて、20個のそれぞれの骨格ポイントを検出する。各骨格ポイントは、人間の20個の認識される関節のうちの1つに対応するものであり、1人以上のユーザは、センサ226の視野内で移動するので、これらの認識される関節の各々は、空間及び時間において変化する。任意の瞬間時におけるこれらの関節の位置が、センサ226により検出された、1以上のユーザのそれぞれの3次元形状に基づいて算出される。骨格ポイントはまた、追跡状態(tracking state)を有する。この状態は、関節がはっきりと可視である場合には「追跡されている」であり、関節がはっきりとは可視ではないがセンサプロセッサ310がその位置を推測している場合には「推定されている」であり、例えば、座位モード追跡(seated-mode tracking)における下側関節の場合には(すなわち、ユーザが座っていると検出され、下側関節はセンサプロセッサ310により追跡されていない場合には)「追跡されていない」であり得る。
各骨格ポイントは、対応する関節が正しく検出されている尤度を示すそれぞれの信頼値とともに提供され得る。所定の閾値未満の信頼値を有するポイントは、ビデオモジュール304による処理から除外され得る。
これらの20個の骨格ポイントが図7Aに示されており、対応する人間の関節が表1に示されている。
Figure 0006486377
特定の時間における、センサプロセッサによりレポートされた骨格ポイントの位置が、その特定の時間における、ビデオのフレーム(画像)内での対応する人間の関節の位置に対応するように、カメラ216からのビデオと骨格ポイントとが関連付けられる。センサプロセッサ310は、これらの検出された骨格ポイントを、骨格ポイントデータとして、ビデオコントローラ304による使用のためにビデオコントローラ304に供給する。ビデオデータのフレームごとに、センサプロセッサ310により供給される骨格ポイントデータは、例えば、ビデオフレームサイズの点で制限される座標系のデカルト座標(x,y)として表現される位置等の、そのフレーム内での骨格ポイントの位置を含む。
ビデオコントローラ304は、1人以上のユーザ(102a、102b)に関する検出された骨格ポイントを受信し、それらの骨格ポイントから、そのユーザの複数の視覚的な特徴(又は、それらのユーザのそれぞれの複数の視覚的な特徴)を判別するよう構成されている。この実施形態では、視覚的なユーザ特徴は、人間の身体パーツの形態をとる。身体パーツは、ビデオコントローラにより検出される。身体パーツの各々は、ビデオプロセッサ310により提供された1以上の骨格ポイントから推定することを介して検出され、身体パーツの各々は、カメラ216からのビデオの対応するビデオフレーム内の領域に対応する(すなわち、前述した座標系内の領域として規定される)。図7Bは、図7Aの骨格ポイントに基づいて検出された身体パーツを示している。
Figure 0006486377
これらの視覚的な特徴は、実際に見ることができ識別することができる、ユーザの身体の特徴を表すという意味で視覚的であるということに留意されたい。しかしながら、この実施形態では、これらの視覚的な特徴は、ビデオコントローラによっては「確認されない」(例えば、これらの視覚的な特徴は、カメラ216によりキャプチャされたビデオデータ内では検出されない)。そうではなく、ビデオコントローラは、(例えばカメラ216からのビデオのフレームの処理に基づいてではなく、)センサプロセッサ310により提供された20個の骨格ポイントの配置から、カメラ216からのビデオのフレーム内のこれらの特徴の(おおよその)相対位置、形状、及びサイズを推定する(例えば、各身体パーツを、その身体パーツに関連する骨格ポイントの検出された配置から算出される位置及びサイズ(並びに任意的に向き)を有する矩形(又は同様の形状)として近似することにより)。
次に図8を参照して、検出されたユーザ特徴(この実施形態では身体パーツ)に基づいて、ネットワークを介して送信されるビデオを制御する方法800について説明する。図8は、方法800のフローチャートを左側に示し、各方法ステップの対応する視覚的な表現を右側に示している。
この実施形態では、方法800は、クライアント106の一部として−具体的にはコントローラ302により−アルゴリズム的に実施される。
方法800は、第1のユーザデバイス(近端デバイス)104及び第2のユーザデバイス(遠端デバイス)110を使用して、これらのユーザデバイスのユーザの間で行われるリアルタイムビデオ通話のコンテキストにおいて説明される。
方法800は、以下の身体領域を考慮する:
−領域1:頭、肩
−領域2:頭、肩、脊柱中心部、肘
−領域3:頭、肩、脊柱中心部、肘、脊柱下部、臀部
−領域4:頭、肩、脊柱全体、肘、臀部、脚、足
ビデオ通話の開始時に、近端デバイス104のクライアント106のリソースマネージャ306は、近端デバイス104により受信された情報に基づいて、(遠端デバイス110に送信されるビデオのために使用される)ビデオ解像度を決定する。例えば、この情報は、以下のうちの1以上に関する情報を含み得る:
−近端デバイスと遠端デバイスとの間の通信チャネルのチャネル帯域幅といったネットワークリソース(ビデオは、近端デバイスから、そのチャネルを介して、遠端デバイスに送信される)
−例えば、スクリーンサイズ(より多くの画素を有するスクリーンは、より少ない画素を有するスクリーンよりも多くのスクリーンリソースを有する);遠端デバイスのスクリーンの横方向の長さと遠端デバイスのスクリーンの縦方向の長さとの比である、遠端デバイスのスクリーンのアスペクト比(例えば、4:3、16:9等);遠端デバイスの1以上のプロセッサの処理リソース(例えば、メガヘルツ、ギガヘルツ等を単位とする利用可能なプロセッササイクル);遠端デバイスのメモリリソース(例えば、メガバイト、ギガバイト等を単位とする利用可能なメモリ);ビデオ復号能力といった、遠端デバイスから受信される遠端デバイスのリソース
−例えば、近端デバイスの1以上のプロセッサの処理リソース(例えば、メガヘルツ、ギガヘルツ等を単位とする利用可能なプロセッササイクル);近端デバイスのメモリリソース(例えば、メガバイト、ギガバイト等を単位とする利用可能なメモリ);ビデオ符号化能力といった、近端デバイスのリソース
ビデオ解像度は、遠端デバイス110とのネゴシエーションを介して少なくとも部分的に決定され得る(例えば、近端デバイス104のリソースマネージャ306が、遠端デバイスに対して、遠端デバイスのリソースに関する情報を要求することにより)。
ビデオ通話中、近端デバイス104のリソースマネージャ306は、利用可能なリソース(例えば利用可能な帯域幅)をモニタリングし、遠端デバイス110に送信されているビデオのための解像度を増大又は低減させる決定を行い、その決定をビデオコントローラ304に通信する。したがって、例えば、チャネル帯域幅の変動が生じていることに起因して、すなわち、近端デバイス及び遠端デバイスのうちの一方又は双方が、信頼できない無線接続(例えばWiFi(登録商標)接続)を介してネットワーク106に接続されていることから、ビデオ解像度はビデオ通話中に動的に変わり得る。
特徴を選択することには、受信された情報により、より良いチャネル品質及び/又はより多くのデバイスリソースが示されている場合には、より多くの特徴を選択すること、及び、受信された情報により、より悪いチャネル品質及び/又はより少ないデバイスリソースが示されている場合には、より少ない特徴を選択することが含まれる。例えば、より低い帯域幅及び/又はより小さなスクリーンサイズの場合には、より低い解像度が、リソースマネージャ306により決定される(これは、より少ない身体パーツを含む領域の選択をもたらす)。より高い帯域幅及び/又はより大きなスクリーンサイズの場合には、上記のより低い帯域幅及び/又はより小さなスクリーンサイズの場合に決定される解像度よりも高い解像度が、リソースマネージャ306により決定される(これは、より多くの身体パーツを含む領域の選択をもたらす)。
この実施形態では、ビデオは、1920×1080画像という固定解像度でカメラ216からキャプチャされる。しかしながら、以下で説明するように、キャプチャされたビデオは、送信の前にクロップされ得る(クロッピングにより、ビデオの外側部分の画像が除去される)。すなわち、キャプチャされたビデオデータのうち選択された部分のみ(選択された可視領域からキャプチャされる)が、符号化してその後に遠端デバイスに送信するためにエンコーダ308に供給される。したがって、クロップされたビデオデータを供給することは、規定された領域の外側のビデオデータはエンコーダ308に供給されないので、より少ないビデオデータをエンコーダ308に供給することを意味する。
ステップS802において、骨格ポイントデータが、センサプロセッサ310から、ビデオコントローラにより受信される。図8の右側の例示図において、位置しているユーザ102a及び102b(センサ226の視野内の両者)に関する骨格データが示されている。しかしながら、方法800は、明らかなように、任意の数のユーザ(1人以上)に関する骨格データの受信に適用することができる。
ステップS804において、ビデオコントローラ304は、リソースマネージャ306から受信された決定された解像度に基づいて、センサ216の視野内の各ユーザについて、それぞれの身体領域を選択する。ビデオコントローラは、このビデオ解像度に応じて、以下のように、表2の可能な複数の身体領域から、それぞれの身体領域を選択する:
−1920×1080の解像度:領域4
−1280×1024以上の解像度:領域3
−640×480以上の解像度:領域2
−他の解像度:領域1
代替的に以下のようであってもよい:
−1920の幅の解像度:領域4
−1280以上の幅の解像度:領域3
−640以上の幅の解像度:領域2
−他の解像度:領域1
特徴を選択することには、より高い解像度(より良いチャネル状態及び/又はより多くのデバイスリソース)の場合には、より多くの特徴を選択すること、及び、より低い解像度(より悪いチャネル状態及び/又はより少ないデバイスリソース)の場合には、より少ない特徴を選択することが含まれる。
センサ226の視野内の各ユーザ102a、102bについて、選択された領域が、受信された骨格データに基づいて検出される(すなわち、選択された領域のそれぞれの身体パーツが検出される)。次いで、ビデオが、符号化されて送信される前に、(以下で説明するように)検出された身体パーツに基づいてクロップされる(例えば、領域1に関しては、ビデオは、ユーザ102aの頭、ユーザ102bの頭、ユーザ102aの肩、及びユーザ102bの肩(領域1内には頭及び肩だけが含まれるので、他の身体パーツではない)の検出に基づいてクロップされる。したがって、全ての骨格ポイントが、クロッピングに必ずしも寄与するわけではない(なぜならば、これらの一部は、選択された領域の部分ではない身体パーツを規定することだけに役立ち得るからである)。すなわち、ビデオの制御は、複数の検出された骨格ポイントから選択された骨格ポイントに基づき得るものであり、複数の検出された骨格ポイントのうちの他の骨格ポイントには基づかない。
例えば、図8の右側の例示図において、領域2(頭、肩、脊柱中心部、肘)が選択されており、したがって、ビデオ制御は、ユーザ102aに関する、領域2における検出された特徴(図8の550a)と、ユーザ102bに関する、領域2における検出された特徴(図8の550b)と、の両方に基づく。
(この実施形態では、決定された解像度に従ってビデオを選択的にクロップすることを含む)ビデオ制御の一部として、ステップS806において、ビデオコントローラは、選択された領域の身体パーツの検出に基づいて、境界データを生成する。境界データは、矩形境界552(クロッピング矩形)を規定する。クロッピング矩形は、全ての追跡されるユーザに関するそれぞれの検出された領域の和集合(union)から形成される。
ステップS808において、ビデオコントローラ304は、予め定められたアスペクト比(例えば、4:3、16:9等といった、遠端デバイス110のディスプレイのアスペクト比)に基づいて、生成された境界データを変更する。これにより、クロッピング矩形が、予め定められたアスペクト比に合わせて調整される。調整されたクロッピング矩形(外接矩形)が、図8の右側に554として示されている(この実施形態では、16:9のアスペクト比を有する)。
ステップS810において、ビデオが、以下でより詳細に説明するように、調整された矩形に基づいてクロップされる。次いで、クロップされたビデオが、エンコーダ308により符号化される前に、出力解像度にスケーリングされる(例えば、送信先の遠端デバイスのスクリーンの解像度に合わせられる)。
方法800は、ビデオデータのフレームごとに実行される。外接矩形により、フレーム間でユーザ特徴が追跡されるので(ユーザ特徴は、ユーザが移動するにつれて移動し得る、あるいは、ユーザ特徴は、例えば2人のユーザが離れるにつれ離れ得る)、クロッピング矩形も移動する。
しかしながら、ビデオデータの各フレームを、そのフレームに関して決定された調整された矩形に合わせて単純にクロップする(すなわち、そのフレームのうち、調整された矩形により規定される部分からのビデオデータのみを供給する)以外に、過渡データが、1以上の以前のフレームに関して算出されたそれぞれの調整された矩形と、現フレームに関して算出された調整された矩形と、に基づいて、生成される。過渡データは、弾性バネモデルに基づいて生成される。
諸実施形態において、弾性バネモデルは、以下のように定義され得る:
Figure 0006486377
ここで、m(「質量」)、k(「剛性(stiffness)」)、及びD(「減衰(damping)」)は、設定可能な定数であり、x(変位)及びt(時間)は、変数である。すなわち、このモデルでは、遷移の加速度が、その遷移の変位と速度との重み付け和に比例する。
クロッピング矩形は、弾性バネモデルに従って移動する。これは、フレーム間の遷移を平滑化させ、ぎくしゃくしたビデオを防ぐ。これはまた、次の理由から符号化の効率を増大させる。弾性モデルは、クロッピング矩形の移動を実効的に「抑制させる(dampen)」ので、弾性モデルは、隣接フレーム間の差を少なくさせ、これは、明らかなように、より効率的な差分符号化をもたらす。
次に、これについて図9を参照して説明する。図9は、時間の経過に伴って、遠端ユーザに送信されるビデオを制御する方法900のフローチャートと、右側に方法900の例示的な付随表現と、を示している。
ステップS902において、キャプチャされたビデオの一連のビデオフレームにおける現ビデオフレーム956に関して、ビデオコントローラは、第1の時間及び1以上の第2の時間のそれぞれにおいて、選択された視覚的なユーザ特徴(この実施形態では身体パーツ)の検出に基づいて、(例えば、上述したように、予め定められたアスペクト比を有する外接矩形を算出することにより)第1のセットの境界データ及び1以上の第2のセットの境界データを生成する。第1の時間は、現フレーム956の時間であり、1以上の第2の時間は、以前のフレームの1以上の時間である。以前のフレームに関する境界データは、後のフレームに関する境界データの前に生成され得る(例えば、フレーム単位で)。したがって、ステップS902は、複数のビデオフレームに及ぶ期間にわたって生じ得る。
第1の時間t1及び第2の時間t2それぞれにおける2つの例示的な外接矩形950、952が、図9の右側に示されている。t2の矩形は、t1の矩形よりも大きく示されている。これは、例えば、2人のユーザ(102a、102b)が追跡されており、これらのユーザが離れるように移動した結果として、又は、利用可能なリソースの変化(例えば、チャネル帯域幅の増加)が、リソースマネージャ306に、決定されたアスペクト比を増大させた結果として、より多くの身体パーツを含む領域の選択(例えば、領域1から領域2への切り替え)がもたらされ、外接矩形が、それに応じてビデオコントローラ304により自動的に調整されたことに起因し得る。
ステップS904において、ビデオモジュール304は、上述した動的モデルを使用して、第1のセットの境界データ及び第2のセットの境界データに基づいて、過渡データを生成する。生成された過渡データは、以前のフレームの外接矩形から現フレーム956の外接矩形への過渡を表す過渡外接矩形954(図9に示されている)を実効的に規定する。
例えば、上記弾性バネモデルに従って、外接矩形は、異なる位置における1以上のポイント(境界データの一形態)によりパラメータ化され得る。ポイントは、矩形952のパラメータである、時間t2における第2の位置(「desiredPosition」)と、矩形950のパラメータである、時間t1における第1の位置(「currentPosition」)と、を有し得る。この場合、過渡データは、以下のように「currentPosition」を更新することにより生成され得る(更新された「currentPosition」が、過渡外接矩形954のパラメータである):
velocity=0
previousTime=0
currentPosition=<some_constant_initial_value>

UpdatePosition(desiredPosition,time)
{
x=currentPosition-desiredPosition;
force=-stiffness*x-damping*m_velicity;
acceleration=force/mass;
dt=time-previousTime;
velocity+=acceleration*dt;
currentPosition+=velocity*dt;
previousTime=time;
}
ステップS908において、ビデオコントローラは、選択された特徴を追跡するために、過渡データに基づいてビデオを制御する。ここで、これは、フレーム956のうち外接矩形954内の画像データのみが、符号化して遠端ユーザ108に送信するためにエンコーダ308に供給される(フレーム956のうち外接矩形954外の画像データは供給されない)ように、ビデオをクロップすることを含む。
検出器222及びセンサプロセッサ310は、検出器222から約1メートル以上離れているユーザ(すなわち、センサの視野外にいるユーザ)は追跡されないように構成されているので、そのようなユーザはクロッピング矩形に影響を及ぼさない。したがって、例えば、2人のユーザが、最初には追跡されていたが、1人のユーザが、視野外に移動した場合、方法800及び900に従って、以後に算出されるクロッピング矩形は、残っているユーザの特徴のみに基づくようになり、したがって、残っているユーザに自動的に「ズームインする」ようになる(弾性モデルは、このズームに関して滑らかな遷移を確実にする)。
諸実施形態において、1920×1080のビデオに十分な帯域幅があるが、追跡されるべき少なくとも1つの身体があることをリソースマネージャ306が考慮する場合には、動的な追跡を可能にするために、送信されるビデオの解像度が1280×720に切り替えられるように、ビデオコントローラ304は、リソースマネージャ306にフィードバックすることができる(送信されるビデオの解像度が、キャプチャされた時点の解像度と等しい場合には、クロッピング矩形は、各フレームについて、そのフレームの全体を実効的に包含するので、「操作(manoeuvre)の余地」はない−これは、例えば、アップスケーリングが用いられない場合に当てはまる)。
示されているように、センサプロセッサ310は、検出された骨格ポイントの各々を識別する情報を供給するだけでなく、センサ226の視野内の1人以上のユーザのうちどのユーザが、それらの骨格ポイントに対応しているかを識別する情報も供給する。したがって、説明した方法800は、(センサ検出器226がユーザを識別することができる限り)任意の数のユーザに対して実施することができ、選択された領域内の特徴ごとに、各領域について特徴を追跡する。したがって、方法800は、外接矩形が、新たなユーザがフレームに入ったときに新たなユーザに対応するために、(弾性モデルにより)滑らかに自動的に遷移する(ビデオ内の選択された領域に関してそのユーザの身体パーツを含むように実効的にズームアウトすることにより)とともに、ユーザがフレームから出たときに調整するために、(弾性モデルにより)滑らかに自動的に遷移する(残っているユーザの、選択された領域に関する身体パーツのみが、ビデオ内に保たれるように、選択された領域に関するそのユーザの身体パーツにより以前に占められていた領域を除外するように実効的にズームインすることにより)ことで、複数のユーザがフレームに入ったとき及びフレームから出たときに自動的に適応する。
コントローラ302により実行される方法800、900は、例えば、ユーザデバイス104、110、及び114を使用して(ユーザ102a、102b、108、及び112の間で)、ネットワーク106を介して行われるマルチパーティ通話中に実行されてもよい。この場合、近端デバイス104(第1のユーザデバイス)により、遠端デバイス110(第2のユーザデバイス)及び遠端デバイス114(第3のユーザデバイス)の各々について、個々の外接矩形が決定される。
すなわち、上記に加えて、リソースマネージャは、ユーザデバイス104と第3のユーザデバイス114との間の通信チャネルと、さらなる第3のユーザデバイス114のリソースと、のうちの少なくとも1つに関するさらなる情報を受信することができる(第2のユーザデバイス110に関する同様の情報等の上述した情報を受信することに加えて)。次いで、リソースマネージャは、第3のユーザデバイス114に送信されるビデオを制御するために、受信されたさらなる情報に基づいて、複数の視覚的なユーザ特徴(例えば身体パーツ)からさらなる特徴を選択する(第2のユーザデバイス110に送信されるビデオを制御するために、前述した特徴を選択することに加えて)。
次いで、ビデオコントローラ304は、第2のユーザデバイス110に関して選択された特徴の検出に基づいて、第2のユーザデバイス110に送信されるビデオを制御するとともに、(第3のユーザデバイス114のビデオ内の選択されたさらなる特徴を追跡するために、)第3のユーザデバイス114に関して選択されたさらなる特徴の検出に基づいて、第3のユーザデバイス114に送信されるビデオを制御する。
第3のユーザデバイスに関するさらなる特徴の選択は、第2のユーザデバイスに関する特徴の選択とは独立した異なるものであり得る。したがって、第3のユーザデバイスに送信されるさらなるビデオは、第2のユーザデバイスに送信されるビデオとは異なるものであり得、第3のユーザデバイスに送信されるさらなるビデオにより、第2のユーザデバイスに送信されるビデオよりも多い又は少ないユーザ特徴が追跡され得る。
第2のユーザデバイスのビデオに関する特徴の選択は、第3のユーザデバイスのビデオに関する特徴の選択とは独立したものである。(第1のユーザデバイス104が遅い接続を介してネットワーク106に接続されている等の)状態は、両方に関して同様のクロッピングをもたらし得るのに対し、(第2のユーザデバイス及び第3のユーザデバイスのうちの一方が、遅い接続を介してネットワーク106に接続されている、あるいは、第2のユーザデバイス及び第3のユーザデバイスのうちの一方が、制限されたリソースを有する等の)他の状態は、異なるクロッピングをもたらし得る。
例えば、第3のユーザデバイス114は、小型スクリーン(例えばスマートフォンスクリーン)を有し得る、且つ/又は、遅い接続を介してネットワーク106に接続され得る。一方、第2のユーザデバイス110は、大型スクリーンを有し得る(例えば、TVスクリーンに接続され得る)、且つ/又は、速い接続を介してネットワーク106に接続され得る。この場合、第2のユーザデバイス110に送信されるビデオは、ユーザ108が、ユーザ102a及び102bの全身を表示するビデオを受信するように、「領域4」のクロッピング(表2参照)が適用され得る。一方、第3のユーザデバイス114に送信されるビデオは、ユーザ102a、102bのそれぞれの頭及び肩だけを表示するビデオを受信するように、「領域1」のクロッピング(表2参照)が適用され得る。
上記において、ネットワークを介して送信されるビデオは、ビデオ信号処理を介して制御されるが、代替的又は追加的に、ビデオは、選択された特徴の検出に基づいてカメラ自体を操作することにより、(コントローラ302の)ビデオコントローラ304によって制御されてもよい。例えば、そのような操作には、パン操作、ズーム操作、及びティルト操作のうちの少なくとも1つを実行するようにカメラの機構(mechanics)を操作することが含まれる。例えばマルチパーティ通話の場合、光学的ズーム及びデジタルズーム(クロッピング)が、例えば、最高選択数のユーザ特徴を表示するビデオをキャプチャするために使用される機械的ズーム(例えば、機械的ズームは、上記の例においては第2のユーザデバイス110に対して表示される領域を選択するために使用され得る)とともに使用され得、そのビデオのクロッピングは、より少ないユーザ特徴を含むビデオが送信されるべきユーザ(例えば、上記の例においては第3のユーザデバイス114)のためのビデオを制御するために使用され得る。
さらに、上記において、弾性モデルが使用されるが、代替として、過渡データを生成するために、(例えば、1以上の時間に関する微分方程式(differential equations in time)に基づく)任意の動的モデルが使用されてもよい。
さらに、上記において、選択された視覚的な特徴(脚、腕等)は、非可視放射線パターンを、当該パターンを検出するよう構成されているセンサの前方に投射する奥行き検出器により供給されたセンサデータに基づいて検出されるが、代替の検出も想定されている。例えば、奥行き検出は、奥行きを測定するために放射線伝搬時間が使用される検出に基づく飛行時間型(time-of-flight)であってもよい。あるいは、(複数の2次元画像から)異なる勾配(inclination)を有するカメラ(3D画像認識アルゴリズムとともに使用されるプレノプティックカメラ又は同様のカメラ等)のアレイを使用して3D画像を構築すし、この3D画像から視覚的な特徴が検出されてもよい。
一般に、本明細書で説明した機能(例えば、図3に示される機能モジュール及び図8と図9とに示される機能ステップ)のいずれも、ソフトウェア、ファームウェア、ハードウェア(例えば固定論理回路)、又はこれらの組合せを用いて実装することができる。図3において別個に示されているモジュール(ビデオ処理システム300、コントローラ302、ビデオ信号プロセッサ304、リソースマネージャ306、エンコーダ308等)及び図8と図9とにおいて別個に示されているステップは、別個のモジュール及び別個のステップとして実装されてもよいし、そうでなくてもよい。本明細書で使用されている「モジュール」、「機能」、「コンポーネント」、及び「論理」という用語は、一般に、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せを表す。ソフトウェア実装の場合、モジュール、機能、又は論理は、プロセッサ(例えば1以上のCPU)上で実行されたときに指定されたタスクを実行するプログラムコードを表す。プログラムコードは、1以上のコンピュータ読み取り可能なメモリデバイスに記憶することができる。本明細書で説明した技術の特徴は、プラットフォーム非依存であり、これは、本技術が、多様なプロセッサを有する多様な商用コンピューティングプラットフォーム上で実装され得ることを意味する。例えば、ユーザデバイスは、例えば、プロセッサや機能ブロック等といった、ユーザデバイスのハードウェアに処理を実行させるエンティティ(例えばソフトウェア)も含み得る。例えば、ユーザデバイスは、ユーザデバイス(より詳細には、ユーザデバイスのオペレーティングシステム及び関連ハードウェア)に処理を実行させる命令を保持するよう構成され得るコンピュータ読み取り可能な媒体を含み得る。例えば、図3のモジュールの一部又は全ては、1以上のプロセッサ上で実行されるクライアントアプリケーションのソフトウェアにより実装され得る。したがって、命令は、処理を実行するようオペレーティングシステム及び関連ハードウェアを構成するように機能し、そのようにして、機能を実行するオペレーティングシステム及び関連ハードウェアの変換をもたらす。命令は、多種多様な構成を通じて、コンピュータ読み取り可能な媒体により、ユーザデバイスに提供され得る。
コンピュータ読み取り可能な媒体の1つのそのような構成は、信号担持媒体であり、したがって、ネットワークを介して等、(例えば搬送波として)命令を伝送するよう構成される。コンピュータ読み取り可能な媒体はまた、コンピュータ読み取り可能な記憶媒体として構成され得、したがって、信号担持媒体ではない。コンピュータ読み取り可能な記憶媒体の例は、ランダムアクセスメモリ(RAM)と、読み取り専用メモリ(ROM)と、光ディスクと、フラッシュメモリと、ハードディスクメモリと、磁気技術、光技術、及び他の技術を使用して命令及び他のデータを記憶することができる他のメモリデバイスと、を含む。
構造的特徴及び/又は方法的動作に特有の言葉で主題について説明したが、添付の特許請求の範囲において定められる主題は、上述した特定の特徴又は動作に必ずしも限定されるものではないことを理解されたい。そうではなく、上述した特定の特徴及び動作は、請求項を実施する例示的な形態として開示されている。

Claims (10)

  1. ユーザデバイスであって、
    画像キャプチャデバイスから受信された、1人以上のユーザのビデオを、ネットワークを介して、少なくとも別のユーザデバイスに送信するよう構成されているネットワークインタフェースと、
    複数の視覚的なユーザ特徴から1以上の特徴を選択し、前記の選択された1以上の特徴を追跡するために、前記の選択された1以上の特徴の検出に基づいて、前記ビデオを制御するよう構成されているビデオコントローラであって、前記の選択された1以上の特徴の前記検出は、前記1人以上のユーザのうちの少なくとも1人のユーザに関して、前記少なくとも1人のユーザの複数の検出された骨格ポイントを受信することを含み、前記ビデオは、前記複数の検出された骨格ポイントに基づいて制御される、ビデオコントローラと、
    前記ユーザデバイスと前記別のユーザデバイスとの間の通信チャネルと、前記ユーザデバイス及び/又は前記別のユーザデバイスの1以上のリソースと、のうちの少なくとも一方に関する情報を受信し、前記の受信された情報に基づいて、前記ビデオコントローラによる該選択を制御するよう構成されているリソースマネージャと、
    を備えたユーザデバイス。
  2. 前記複数の視覚的なユーザ特徴は、ユーザの複数の身体パーツである、請求項1記載のユーザデバイス。
  3. 前記ビデオは、複数のユーザのものであり、前記ビデオコントローラは、前記複数のユーザの各々に関する選択された特徴を追跡するために、前記複数のユーザの各々に関する前記選択された特徴の検出に基づいて、前記ビデオを制御するようさらに構成されている、請求項1記載のユーザデバイス。
  4. 前記ネットワークインタフェースは、前記画像キャプチャデバイスから受信された、前記1人以上のユーザのさらなるビデオを、前記ネットワークを介して、さらなるユーザデバイスに送信するようさらに構成されており、
    前記ビデオコントローラは、前記複数の視覚的なユーザ特徴から1以上のさらなる特徴を選択し、前記の選択された1以上のさらなる特徴を追跡するために、前記の選択された1以上のさらなる特徴の検出に基づいて、前記さらなるビデオを制御するようさらに構成されており、
    前記リソースマネージャは、前記ユーザデバイスと前記さらなるユーザデバイスとの間の通信チャネルと、前記さらなるユーザデバイスの1以上のリソースと、のうちの少なくとも一方に関するさらなる情報を受信し、前記の受信されたさらなる情報に基づいて、前記ビデオコントローラによる該選択を制御するようさらに構成されている、請求項1記載のユーザデバイス。
  5. 前記制御は、前記の選択された1以上の特徴の前記検出に基づいて境界データを生成することを含む、請求項1記載のユーザデバイス。
  6. 前記制御は、前記の生成された境界データに基づいて、前記画像キャプチャデバイスから受信されたビデオデータを処理することを含む、請求項5記載のユーザデバイス。
  7. 前記ビデオデータを処理することは、前記の生成された境界データに基づいて、前記ビデオデータをクロップすることを含む、請求項6記載のユーザデバイス。
  8. ユーザデバイスから別のユーザデバイスに1人以上のユーザのビデオを送信する方法であって、
    画像キャプチャデバイスから前記ビデオを受信するステップと、
    前記ユーザデバイスと前記別のユーザデバイスとの間の通信チャネルと、前記ユーザデバイス及び/又は前記別のユーザデバイスの1以上のリソースと、のうちの少なくとも一方に関する情報を受信するステップと、
    前記の受信された情報に基づいて、複数の視覚的なユーザ特徴から1以上の特徴を選択するステップと、
    前記の受信されたビデオにおいて、前記の選択された1以上の特徴を検出するステップと、
    前記選択された1以上の特徴を追跡するために、前記選択された1以上の特徴の前記検出に基づいて、前記ビデオを制御するステップであって、前記選択された1以上の特徴の前記検出は、前記1人以上のユーザのうちの少なくとも1人のユーザに関して、前記少なくとも1人のユーザの複数の検出された骨格ポイントを受信することを含み、前記ビデオは、前記複数の検出された骨格ポイントに基づいて制御される、ステップと、
    前記ビデオを前記別のユーザデバイスに送信するステップと、
    を含む方法。
  9. ユーザデバイスであって、
    ネットワークに接続するためのネットワークインタフェースと、
    1以上のプロセッサであって、
    画像キャプチャデバイスから受信された、1人以上のユーザのビデオを、前記ネットワークを介して、別のユーザデバイスに送信し、
    複数の視覚的なユーザ特徴から特徴を選択し、
    第1の時間及び第2の時間のそれぞれにおいて、前記の選択された特徴の検出に基づいて、第1のセットの境界データ及び第2のセットの境界データを生成し、
    動的モデルを使用して、前記第1のセットの境界データ及び前記第2のセットの境界データに基づいて、過渡データを生成し、
    前記の選択された特徴を追跡するために、前記過渡データに基づいて前記ビデオを制御する
    よう構成されている1以上のプロセッサと、
    を備えたユーザデバイス。
  10. ユーザデバイスからネットワークを介して別のユーザデバイスに1人以上のユーザのビデオを送信する方法であって、
    画像キャプチャデバイスから前記ビデオを受信するステップと、
    複数の視覚的なユーザ特徴から特徴を選択するステップと、
    第1の時間及び第2の時間のそれぞれにおいて、前記の選択された特徴の検出に基づいて、第1のセットの境界データ及び第2のセットの境界データを生成するステップと、
    動的モデルを使用して、前記第1のセットの境界データ及び前記第2のセットの境界データに基づいて、過渡データを生成するステップと、
    前記の選択された特徴を追跡するために、前記過渡データに基づいて前記ビデオを制御するステップと、
    前記ネットワークを介して前記別のユーザデバイスに前記ビデオを送信するステップと、
    を含む方法。
JP2016554533A 2013-11-19 2014-11-17 ビデオ送信 Active JP6486377B2 (ja)

Applications Claiming Priority (3)

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

Publications (3)

Publication Number Publication Date
JP2017503442A JP2017503442A (ja) 2017-01-26
JP2017503442A5 JP2017503442A5 (ja) 2017-11-30
JP6486377B2 true JP6486377B2 (ja) 2019-03-20

Family

ID=51999571

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016554533A Active JP6486377B2 (ja) 2013-11-19 2014-11-17 ビデオ送信

Country Status (11)

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

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017137948A1 (en) * 2016-02-10 2017-08-17 Vats Nitin Producing realistic body movement using body images
US9743042B1 (en) 2016-02-19 2017-08-22 Microsoft Technology Licensing, Llc Communication event
US10469768B2 (en) 2017-10-13 2019-11-05 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 深圳市商汤科技有限公司 图像处理方法及装置、电子设备和存储介质
JP7201946B2 (ja) * 2019-05-16 2023-01-11 日本電信電話株式会社 骨格情報判定装置、骨格情報判定方法及びコンピュータプログラム
US10972655B1 (en) 2020-03-30 2021-04-06 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
US10904446B1 (en) 2020-03-30 2021-01-26 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

Family Cites Families (30)

* 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 (주)씨앤에스 테크놀로지 영상 송수신 대역폭 및 화질 조절기능을 갖는 아이피 영상단말기 및 이의 제어방법
JP4768250B2 (ja) * 2004-10-28 2011-09-07 シャープ株式会社 送信装置、受信装置、送受信装置、送信方法及び伝送システム
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
US8941706B2 (en) * 2010-04-07 2015-01-27 Apple Inc. Image processing for a dual camera mobile device
EP2383696A1 (en) 2010-04-30 2011-11-02 LiberoVision AG Method for estimating a pose of an articulated object model
US8395653B2 (en) 2010-05-18 2013-03-12 Polycom, Inc. Videoconferencing endpoint having multiple voice-tracking cameras
US9628755B2 (en) * 2010-10-14 2017-04-18 Microsoft Technology Licensing, Llc Automatically tracking user movement in a video chat application
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6486377B2 (ja) ビデオ送信
TWI803590B (zh) 藉由所關注區域之制定的異步時間及空間翹曲
CN105247881B (zh) 信息处理设备、显示控制方法以及程序
US9491357B2 (en) Image-processing system and image-processing method in which a size of a viewing angle and a position of a viewing point are changed for zooming
WO2019184889A1 (zh) 增强现实模型的调整方法、装置、存储介质和电子设备
US9348422B2 (en) Method for recognizing gestures and gesture detector
CN108702454B (zh) 用于视频显示的方法、系统和计算设备
JP5450739B2 (ja) 画像処理装置及び画像表示装置
US11736801B2 (en) Merging webcam signals from multiple cameras
US10365874B2 (en) Information processing for band control of a communication stream
CN112671996A (zh) 视频通话期间实现的方法、用户终端及可读存储介质
US20150172634A1 (en) Dynamic POV Composite 3D Video System
CN105939497B (zh) 媒体串流系统及媒体串流方法
JP6505327B2 (ja) ビデオデータを取得するための方法、装置、及びシステム並びにコンピュータ可読記憶媒体
KR101914206B1 (ko) 360도 영상 기반의 클라우드 오디오 렌더링 서버
JP5987899B2 (ja) 生成装置、生成プログラムおよび生成方法
JP2023161493A (ja) 表示システム、表示方法、及び表示プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171020

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171020

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190219

R150 Certificate of patent or registration of utility model

Ref document number: 6486377

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250