【文献】
直接的な手書き入力による画面隠れを軽減させる半透明提示手法,ヒューマンインタフェース学会研究報告集,特定非営利活動法人ヒューマンインタフェース学会,2009年11月12日,Vol.11 No.5,pp.47-52
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0030】
以下で、本願の図面及び例示的な実装をより詳細に説明する。説明を明確にするため、複数の図面で重複する構成要素の参照符号及び説明は省略する。説明を通して使用される用語は例示であり、限定を意図していない。例えば、用語「自動的」は、全自動または、実装のある局面においてユーザまたはオペレータの制御が関与する半自動の実装を含む。
【0031】
本願の例示的な実装において、ドキュメント上をホバリングする、スピーカによって制御されるオブジェクト(例えば、手、ペン、ポインタスティック、または、指し示すために使用することができる任意の他のオブジェクト)は、部分的に透過するように、表示されてもよい。透過レベルは、ドキュメントへの近さに依存してもよい。このオプションの効果は、ドキュメントに近いスピーカによって制御されるオブジェクトが、議論への追従を支援するために、議論されているドキュメントのピンポイント領域に対して、あまり透過せずに表示されることである。さらに、ドキュメントから離れたオブジェクトの部分はより透過して表示されることで、ドキュメントの隠れを低減する。以下で、より詳細に説明するように、例示的な実装のいくつかでは、オブジェクトの位置は3次元空間でモデリングされ、ドキュメントの意味的に有意な部分(例えば、ワード、テキスト行、段落、図)が、オブジェクトとドキュメントとの間の相対位置に基づいて、強調されてもよい。
【0032】
図1は、本願の第1の例示的な実装による遠隔同時会議システム100でドキュメントを共有する装置105を例示する。装置105は、ドキュメント支持面120から、z軸方向に離隔して配置される画像取得デバイス110を含む。例示的な実装において、画像取得デバイス110は深度カメラであってよく、深度カメラは、カラー画像データ及び深度画像データを取得する複数のチャネルを有する。使用可能な深度カメラの例は、INTEL REALSENSE F200カメラ及びMICROSOFT KNECTデバイスを含む。
図2を使用して以下で説明するように、本願の例示的な実装のいくつかは、深度カメラを使用せず、深度情報を決定する他の技術を使用する。例示的な実装において、画像取得デバイスは、デジタルカメラ、ビデオカメラ、ウェブカメラ、または任意の他の画像取得デバイスであってよい。
【0033】
画像取得デバイス110は、ドキュメント支持面120に置かれたドキュメント115の画像データを取得する。例示的な実装のいくつかでは、ドキュメント115は紙または任意の他の印刷可能マテリアルに印刷が施された印刷ドキュメントであってよい。他の例示的な実装において、ドキュメント115はタブレットまたは他の計算処理デバイスに表示された電子ドキュメントであってもよい。例示的な実装において、画像取得デバイス110は、オブジェクト認識、テキスト認識、パターン認識、または他の画像認識技術を使用して、ドキュメントのコンテンツまたはドキュメントのコンテンツの部分を検出してもよい。
【0034】
オブジェクト125が画像取得デバイス110とドキュメント支持面120との間で検出されると、画像取得デバイス110は、オブジェクト125(例えば、ドキュメント115を指し示すために使用される手、ペン、ポインタスティック、または任意の他のオブジェクト)を表す画像データ即ち画像信号を取得する。ドキュメント支持面120は、テーブル面、カウンター面、机面、床、棚、またはドキュメントまたはドキュメント表示デバイスを置くことができる任意の他の面であってよいが、これらに限定されない。
【0035】
画像取得デバイス110は、オブジェクト125とドキュメント115との間の相対位置を検出してもよい。例えば、画像取得デバイス110は、オブジェクト追跡技術を使用して、カメラの視野内の(例えば、x軸及びy軸に沿った)相対位置を検出及び/または計算してもよい。また、画像取得デバイスとして深度カメラを使用する例示的な実装では、画像取得デバイス110はz軸に沿ったオブジェクトの相対位置を追跡してもよい。
【0036】
ドキュメントを共有する装置105は、画像取得デバイス110に接続された計算処理デバイス130を含み、ドキュメント115の取得された画像データ、オブジェクト125の取得された画像データ、及びオブジェクト125の検出された、または、計算された相対位置を処理する。例えば、計算処理デバイス130は、オブジェクト認識、テキスト認識、パターン認識、または他の画像認識技術を実行して、ドキュメント115のコンテンツを検出してもよい。計算処理デバイス130はオブジェクト追跡技術を実行して、相対位置を検出及び/または計算してもよい。例示的な実装のいくつかにおいて、計算処理デバイス130は、計算処理デバイス(例えば、以下で説明する
図10の計算処理環境1000の計算処理デバイス1005)であってよい。
【0037】
以下で詳細に説明するように、例示的な実装のいくつかにおいて、計算処理デバイス130は、ドキュメント115の取得された画像データ、オブジェクト125の取得された画像データ、及びオブジェクト125の検出された、または計算された相対位置に基づく結合画像データを生成してもよい。例示的な実装のいくつかにおいて、計算処理デバイス130は、(例えば、有線接続及び/または無線接続された)ネットワーク135を介して、相互に、通信可能に接続された複数のデバイス140〜170に、結合画像データを伝送するようにしてもよい。
【0038】
複数のデバイス140〜170は、コンピュータ140(例えば、ラップトップ計算処理デバイス)、モバイルデバイス145(例えば、スマートフォンまたはタブレット)、ウェアラブルデバイス160(例えば、スマートウォッチ)、ストレージデバイス155に接続されたサーバコンピュータ150及び他の計算処理デバイス165〜170を含んでいてもよいが、これらに限定されない。デバイス140〜170は、
図10に示されるように計算処理環境1000を有していてもよい。
【0039】
例示的な実装のいくつかにおいて、複数のデバイス140〜170に結合画像データを伝送する前に、計算処理デバイス130は、結合画像データを生成してもよいが、例示的な実装はこれに限定されない。例えば、計算処理デバイス130は、ドキュメント115の取得された画像データ、オブジェクト125の取得された画像データ及びオブジェクト125の検出された、または計算された相対位置を組み合わせ、以下で説明する処理またはアルゴリズムを使用して結合画像データを生成してもよい。
【0040】
反対に、他の例示的な実装において、計算処理デバイス130は、ドキュメント115の取得した画像データ、オブジェクト125の取得した画像データ及びオブジェクト125の検出された、または計算された相対位置を、別個のデータとして、複数のデバイス140〜170の一つまたは複数に伝送してもよい。別個のデータが受信されると、複数のデバイス140〜170の各々は、以下で説明する処理またはアルゴリズムを使用して、別個のデータを組み合わせ、結合画像データを生成してもよい。
【0041】
計算処理デバイス130は、遠隔同時会議の初期設定で、組み合わせられた画像データを伝送するか、ドキュメント115の取得した画像データ、オブジェクト125の取得した画像データ、及びオブジェクト125の検出されたまたは計算された相対位置を表すデータに対応する別個のデータを伝送するか判断してもよい。結合画像データを伝送するか、または別個のデータを伝送するかを判断することは、複数のデバイス140〜170の各々への問い合わせに基づいていてもよく、問い合わせにより、複数のデバイス140〜170の各々の性能及び複数のデバイス140〜170の各々にデータを伝送するために利用可能な帯域幅を判定する。
【0042】
図2は、遠隔同時会議システム200において、ドキュメントを共有する他の装置205を例示する。装置205は、上記装置105と類似しているが、以下で説明する構成要素及び機能が追加されている。装置205は、z軸に沿って、ドキュメント支持面220から離隔されて配置される画像取得デバイス210を含む。例示的な実装のいくつかにおいて、画像取得デバイス210は、深度カメラであってよく、深度カメラは、カラー画像データ及び深度画像データを取得する複数のチャネルを有する。他の例示的な実装において、画像取得デバイス210は、深度画像を取得しないウェブカメラまたは他のカメラであってよい。
【0043】
画像取得デバイス210は、ドキュメント支持面220に配置されたドキュメント215の画像データを取得してもよい。例示的な実装のいくつかにおいて、ドキュメント215は、紙または他の印刷可能なマテリアルに印刷された印刷ドキュメントであってよい。他の例示的な実装において、ドキュメント215はタブレットまたは他の計算処理デバイスに表示される電子ドキュメントであってよい。例示的な実装のいくつかにおいて、画像取得デバイス210は、オブジェクト認識、テキスト認識、パターン認識または他の画像認識技術を使用して、ドキュメントのコンテンツまたはコンテンツの部分を検出してもよい。
【0044】
画像取得デバイス210は、オブジェクト225(例えば、ドキュメント215を指し示すために使用される手、ペン、ポインタスティックまたは任意の他のオブジェクト)が画像取得デバイス210とドキュメント支持面220との間に検出された場合に、画像データを取得してもよいし、オブジェクト225を表す画像データを取得してもよい。ドキュメント支持面220は、テーブル面、カウンター面、デスク面、床、棚またはドキュメントまたはドキュメント表示デバイスを置くことができる任意の他の面であってよいが、これらに限定されない。
【0045】
画像取得デバイス210は、オブジェクト225とドキュメント215との間の相対位置を検出してもよい。例えば、画像取得デバイス210は、オブジェクト追跡技術を使用して、カメラの視野内の(例えば、x軸及びy軸に沿った)相対位置を検出し、及び/または計算してもよい。画像取得デバイス210として深度カメラを使用する例示的な実装において、画像取得デバイス210は、オブジェクト225のz軸に沿った相対位置を追跡してもよい。
【0046】
装置205は、オブジェクト225と画像取得デバイス210及び/またはドキュメント支持面220との間の距離を検出するセンサ部275を含んでいてもよい。センサ部275は、静電容量センサまたはオブジェクト225と画像取得デバイス210またはドキュメント支持面220との間の距離を検出することができる何れか他のセンサであってよい。センサ部275は、オブジェクト225のz軸に沿った相対距離を追跡するために使用されてもよい。
【0047】
ドキュメントを共有する装置205は、画像取得デバイス210に接続され、取得したドキュメント215の画像データ、取得したオブジェクト225の画像情報及び検出または算出したオブジェクト225の相対位置を処理する計算処理デバイス230を含んでいてもよい。例えば、計算処理デバイス230は、オブジェクト認識、テキスト認識、パターン認識、または他の画像認識技術を実行して、ドキュメントの内容を検出してもよい。計算処理デバイス230は、オブジェクト追跡技術を実行し、相対位置を検出及び/または算出してもよい。例示的な実装のいくつかにおいて、計算処理デバイス230は計算処理デバイス(例えば、後述する
図10の計算処理環境1000の1005)であってよい。
【0048】
例示的な実装のいくつかにおいて、以下で詳細に説明するように、計算処理デバイス230は、取得したドキュメント215の画像データ、取得したオブジェクト225の画像情報及び検出または算出したオブジェクト225の相対位置に基づいて、結合画像データを生成してもよい。例示的な実装のいくつかにおいて、計算処理デバイス230は、例えば、(有線接続及び/または無線接続で)ネットワーク235を介して、相互に、通信可能に接続された複数のデバイスに結合画像データを伝送してもよい。
【0049】
複数のデバイス240〜270は、コンピュータ240(例えば、ラップトップ計算処理デバイス)、モバイルコンピュータ250(例えば、スマートフォンまたはタブレット)、ウェアラブルデバイス260(例えば、スマートウォッチ)、ストレージデバイス255に接続されたサーバコンピュータ250及び他の計算処理デバイス265〜270を含んでいてよいが、これらに限定されるものではない。デバイス240〜270は、後述する
図10で例示されるように、計算処理環境を有していてもよい。
【0050】
例示的な実装のいくつかにおいて、計算処理デバイス230は、結合画像データを複数のデバイス240〜270に送信する前に、結合画像データを生成してもよいが、本開示の例示的な実装はこれに限定されない。例えば、計算処理デバイス230は、ドキュメント215の取得した画像データ、オブジェクト225の取得した画像データ、及びオブジェクト225の検出または算出した相対位置を表すデータを結合し、後述する処理またはアルゴリズムを使用して、結合画像データを生成してもよい。
【0051】
反対に、他の例示的な実装では、計算処理デバイス230は、ドキュメント215の取得した画像データ、オブジェクト225の取得した画像情報、オブジェクト225の検出または算出した相対位置を、別個のデータとして、複数のデバイス240〜270の1つもしくは複数に送信してもよい。別個のデータを受信すると、複数のデバイス240〜270の各々は、後述するプロセスまたはアルゴリズムを使用して、結合画像データを生成してもよい。
【0052】
計算処理デバイス230は、遠隔同時会議の初期設定において、ドキュメント215の取得した画像データ、オブジェクト225の取得した画像データ、及び、オブジェクト225の検出または算出した相対位置を表すデータに対応する結合画像データを送信するか、別個のデータを送信するか設定されていてもよい。結合画像データを送信するか、別個のデータを送信するかを決定することは、複数のデバイス240〜270の各々の能力及び複数のデバイス240〜270の各々へのデータ送信に利用できる帯域幅を判定するために、複数のデバイス240〜270の各々に問い合わせを行うことに基づいていてもよい。
【0053】
図3は、本開示の例示的な実装によるドキュメント共有のプロセス300のフローチャートを例示する。例示的な実装のいくつかにおいて、プロセス300の全てまたは部分は、遠隔同時会議システム(例えば、
図1の遠隔同時会議システム100、
図2の遠隔同時会議システム200)内のドキュメント共有装置(例えば、
図1の装置105、
図2の装置205)によって実行されてもよい。他の例示的な実装において、プロセス300の全てまたは部分は、ドキュメント共有装置と通信を行う他の計算処理デバイス(例えば、
図1のデバイス140〜170、
図2のデバイス240〜270)によって実行されてもよい。プロセス300は、何れか他の装置によって実行されてもよい。
【0054】
プロセス300において、ドキュメントと関連付けられる第1画像データが305で取得される。例示的な実装のいくつかでは、第1画像データは、ウェブカメラ、深度カメラ、ビデオカメラ、デジタル画像カメラ、または何れか他の撮像デバイスなどの撮像デバイスによって取得されてもよい。
【0055】
しかしながら、例示的な実装はこれらに限定されない。他の例示的な実装では、第1画像データは、撮像デバイスを使用せずに取得されてもよい。例えば、ドキュメントと関連付けられる第1画像データは、ドキュメント共有装置と接続されている計算処理デバイス(例えば、スマートフォン、タブレット、ラップトップ、または何れか他の計算処理デバイス)に記憶されたデータファイルからデジタル的に抽出されてもよい。ドキュメントと関連付けられる第1画像データは、何れか他の機構を使用して取得されてもよい。
【0056】
第1画像データを取得すると、310で、第1画像データから、ドキュメントのコンテンツを検出する。ドキュメントのコンテンツは、オブジェクト認識、文字認識、パターン認識または何れか他の画像認識技術の1つもしくは複数を、取得した第1画像データに適用することで検出されてもよい。例示的な実装のいくつかにおいて、ドキュメントコンテンツ検出は、画像データから、ワード、フレーズまたは画像コンテンツを識別することを含んでいてもよい(例えば、画像データに認識技術を適用することで、ワード、フレーズ、または画像コンテンツが識別されてもよい。)。
【0057】
他の例示的な実装において、ドキュメントコンテンツ検出は書式(例えば、行、段落、欄、または何れか他のドキュメント構造)を認識することを含んでいてもよい。例えば、XYカットアルゴリズム(XY-cutting algorithms)を使用して、ドキュメントは二値化され、抽出された構成要素が結合され、ワードまたは行にグループ化され、領域にセグメント化されてもよい。コンテンツ検出の結果は、ワード、行、段落、表、図領域のセットを含んでいてもよい。
【0058】
315で、ドキュメントと相対的に位置付けられまたは移動するオブジェクトと関連付けられる第2画像データを取得する。第2画像データは、ウェブカメラ、深度カメラ、ビデオカメラ、デジタルカメラ、または何れか他の撮像デバイスなどの撮像デバイスによって取得されてもよい。例示的な実装のいくつかにおいて、オブジェクトはプレゼンタの手または腕であってよく、第2画像データは手または腕のジェスチャの検出を含んでいてもよい。例えば、検出されたジェスチャは、「サムズアップ」ジェスチャ、「OK]ジェスチャ、「サムズダウン」ジェスチャ、または何れか他のジェスチャであってよい。
【0059】
例示的な実装のいくつかにおいて、第2画像データを取得する間、320で、ドキュメントと相対的に移動するオブジェクトと、ドキュメントと、の間の相対位置が決定される。他の例示的な実装において、ドキュメントとオブジェクトとの間の相対位置は、第2画像データが取得される前に決定されてもよいし、後に決定されてもよい。
【0060】
ドキュメントとオブジェクトとの間の相対位置は、深度カメラで取得された画像データ及び深度データを使用して決定されてもよい。代替的に、ドキュメントとオブジェクトとの間の相対位置は、3次元でオブジェクトの位置をマッピングする静電容量センサまたは他のセンサを使用して決定されてもよい。
【0061】
ドキュメントとオブジェクトとの間の相対位置が決定されると、325で、第1画像データ及び第2画像データは、オブジェクトとドキュメントとの間の決定された相対位置に基づいて結合され、結合画像データを生成してもよい。例示的な実装のいくつかにおいて、第2画像データは、オブジェクトとドキュメントとの間の相対位置が、オブジェクトがドキュメントに近い(例えば、オブジェクトとドキュメントとの間の相対的な距離が短い)ことを示す領域で第1画像データの上に追加されてもよいし、重畳されてもよい。例示的な実装において、第2画像データに関連付けられた画像値は、オブジェクトとドキュメントとの間の相対的な距離の関数として低減されてもよい(例えば、オブジェクトがドキュメントから遠ざかるように移動すると、第2画像データの画像値は0に低減される)。第1画像データと第2画像データとを結合するアルゴリズムについては
図4を使用して後述する。結合画像データの例示的な実装については、
図5A〜
図6Bを使用して例示する。
【0062】
結合画像データが生成されると、330で、結合画像データをユーザに対して表示してもよい。例示的な実装のいくつかにおいて、結合画像データは、画像取得デバイスと離隔して配置された計算処理デバイスに表示されてもよい。例えば、画像取得デバイスは、結合画像データを他のデバイス(例えば、
図1のデバイス140〜170、
図2のデバイス240〜270)に、ネットワーク(例えば、有線ネットワークまたは無線ネットワーク)を経由して、送信するドキュメント共有装置(例えば、
図1の装置105、
図2の装置205)と関連付けられていてもよい。他の例示的な実装において、結合画像データは、画像取得デバイスに直接接続されている計算処理デバイスにおいて、ユーザに対して、表示されてもよい。
【0063】
例示的な実装のいくつかにおいて、結合画像データは、表示デバイスに送信される前に生成されてもよい。例示的な実装では、表示デバイスによる処理パワー要求を低減してもよい。他の例示的な実装において、第1画像データ、第2画像データ、及びオブジェクトとドキュメントとの間の相対位置は、別個に表示デバイスに送信され、表示デバイスによって結合画像データが生成されてもよい。例示的な実装は、伝送帯域幅要求を低減してもよい。
【0064】
結合画像データを表示している間、検出されたコンテンツの部分は、オブジェクトとドキュメントとの間の決定された相対位置に基づいて強調されてもよい。例えば、オブジェクトの近くのコンテンツの部分(例えば、オブジェクトに対する相対的な距離が短いコンテンツ)は、強調されてもよいし、オブジェクトに近いコンテンツの部分にアイコンが配置されてもよい。例示的な実装のいくつかにおいて、強調することは、決定された相対位置及び第2画像で検出されたジェスチャに基づいて、アイコンを配置することを含んでいてもよい。他の機構によって、オブジェクトとドキュメントとの間の決定された相対位置に基づいてドキュメントコンテンツの部分を強調してもよい。オブジェクトとドキュメントとの間の相対位置に基づいて検出されたコンテンツの部分を強調する例示的な実装については、
図7A〜
図9Bに関連して後述する。検出されたコンテンツの部分を強調した後、プロセス300は終了してもよい。
【0065】
図4は、本開示の例示的な実装によるプロセス(例えば、
図3のプロセス300)の間ドキュメントを共有するアルゴリズムのフローチャート400を例示する。例示的な実装のいくつかにおいて、アルゴリズム400の全てまたは部分は、遠隔同時会議システム(例えば、
図1の遠隔同時会議システム100、
図2の遠隔同時会議システム200)内のドキュメント共有装置(例えば、
図1の装置105、
図2の装置205)によって実行されてもよい。他の例示的な実装において、アルゴリズム400の全てまたは部分は、ドキュメント共有装置と通信を行う他の計算処理デバイス(例えば、
図1のデバイス140〜170、
図2のデバイス240〜270)によって実行されてもよい。
【0066】
図4の例示的な実装において、画像取得デバイス(例えば、深度カメラ、ウェブカメラ、ビデオカメラまたは他の画像取得デバイス)を使用して、第1画像及び第2画像の双方を取得し、後述するように、画像取得装置から取得されたフレームを背景画像(例えば、第1画像データ)またはマスク画像(例えば、第2画像データ)に分類してもよい。背景画像及びマスク画像は、次に、結合され、後述するように結合画像データを生成してもよい。本開示の例示的な実装はアルゴリズム400に限定されず、代替的なアルゴリズムを使用してもよい。
【0067】
例示するように、405で、新しいフレームI(例えば、カラー及び深度画像)を画像取得デバイスによって取得してもよい。例示的な実装のいくつかにおいて、画像取得デバイスは深度カメラ(例えば、RGB−Dカメラ)であってよい。他の例示的な実装では、他のタイプの画像取得デバイスを使用してもよい。
【0068】
フレームIが取得されると、410で、フレームIをさらに処理する前に、自動的に、フレームIをクロッピングし、ドキュメント領域の周囲の領域の何れかを取り除いてもよいが、この処理は必須ではない。自動的なクロッピングは、ドキュメントエッジ検出技術または何れか他の自動クロッピング技術を使用して実行されてもよい。
【0069】
フレームIが背景フレーム(例えば、第1画像データ)であるか、マスクフレーム(例えば、第2画像データ)であるか判定するために、415で、オブジェクト(例えば、プレゼンタの手または腕、ペン、ポインタ、または何れか他のポインティングオブジェクト)が存在しているか否か、フレームIを分析してもよい。例示的な実装のいくつかにおいて、オブジェクトの検出は、画像取得デバイス(例えば、深度カメラまたは他の画像取得デバイス)によって提供される既存の機能またはアルゴリズムを使用して実行されてもよい。
【0070】
オブジェクトが検出されない場合(例えば、415でNOの場合)、420で、ドキュメント領域のコンテンツが検出される。例示的な実装のいくつかにおいて、ドキュメントコンテンツ検出は、ワード、フレーズまたは画像コンテンツを、フレームIから識別することを含んでいてもよい(例えば、ワード、フレーズまたは画像コンテンツが、フレームIに認識技術を適用することで識別されてもよい。)。例示的な実装のいくつかにおいて、ドキュメント領域のコンテンツは、オブジェクト認識、文字認識、パターン認識、または何れか他の画像認識技術の一つもしくは複数を適用することで検出されてもよい。
【0071】
他の例示的な実装において、ドキュメントコンテンツ検出は、ドキュメントと共に書式(例えば、行、段落、欄、または何れか他のドキュメント構造)を認識することを含む。例えば、ドキュメントを二値化し、抽出した構成要素を接続し、ワード、行にグループ化し、XYカットアルゴリズムを使用して領域にセグメント化してもよい。検出の結果は、ワード、行、段落、表及び図領域のセットを含んでいてもよい。
【0072】
ドキュメント領域のコンテンツが検出されると、425で、フレームIは背景画像フレームBとして保存される。背景画像フレームBを使用して、後述するように、結合画像データを生成する。
【0073】
430で、フレームIをユーザに対して表示してもよい。例示的な実装のいくつかにおいて、フレームIは画像取得デバイスから離隔して配置された計算処理デバイスで遠隔ユーザに対して表示されてもよい。例えば、画像取得デバイスは、結合画像データを他のデバイス(例えば、
図1のデバイス140〜170、
図2のデバイス240〜270)に、ネットワーク(例えば、有線ネットワークまたは無線ネットワーク)を介して、送信するドキュメント共有装置(例えば、
図1の装置105、
図2の装置205)と関連付けられていてもよい。他の例示的な実装において、フレームIは画像取得デバイスに直接接続されている計算処理デバイスでユーザに対して表示されてもよい。フレームIがユーザに対して表示された後、プレゼンテーションが終了したか否かについて判定が行われる。プレゼンテーションが終了した場合(460でYESの場合)、アルゴリズム400は終了する。プレゼンテーションが終了していない場合(460でNOの場合)、アルゴリズム400は405に戻り、新しいフレームIを取得する。
【0074】
アルゴリズム 400が415に戻り、フレームIでオブジェクトが検出された場合(415でYESの場合)、435で、フレームIは、オブジェクトの前景マスク画像M(例えば、第2画像データ)として保存される。
【0075】
フレームIが前景マスク画像Mとして保存された後、画素(x,y)のフレームIの深度値を正規化することで、440で、画素を範囲[0.0,1.0]に収める。この範囲は、画像取得デバイス及びドキュメントの検出によって画定される物理世界座標の範囲に対応してもよい。後述するように、背景画像BとフレームIとを混合させるために、例示的な実装のいくつかにおいて、マスク画像M内の画素だけが必要とされる。マスク画像M内の画素は深度値に設定されてもよい。
M(x,y)=depth(I(x,y)) (1)
【0076】
マスク画像M内の画素が正規化された後、445で、背景画像B及びフレームIを混合し、結合または混合画像J(例えば、結合画像データ)を生成してもよい。マスク画像内の混合画像Jを取得するためにフレーム画像Iを背景画像Bと混合することは、マスクM内の画素の各々の値を式(2)で設定することで実行されてもよい。
J(x,y)=M(x,y)*I(x,y)+(1.0-M(x,y))*B(x,y) (2)
【0077】
マスク画像M内に存在しない混合画像Jの画素の値は、背景画像Bの値に設定されてもよい。
J(x, y) = B(x, y) (3)
【0078】
フレームIと背景画像Bとの結合または混合の例示的な実装については、
図5A〜
図6Bを使用して後述する。
【0079】
結合または混合画像Jが生成された後、結合画像Jはユーザに対して表示されてもよい。例示的な実装のいくつかにおいて、結合画像Jは、画像取得デバイスから離隔して配置された計算処理デバイスで遠隔ユーザに対して表示されてもよい。例えば、画像取得デバイスは、結合画像を他のデバイス(例えば、
図1のデバイス140〜170、
図2のデバイス240〜270)に、ネットワーク(例えば、有線ネットワークまたは無線ネットワーク)を介して、送信するドキュメント共有装置(例えば、
図1の装置105、
図2の装置205)に関連付けられていてもよい。他の例示的な実装において、結合画像Jは、画像取得デバイスに直接接続されている計算処理デバイスでユーザに対して表示されてもよい。
【0080】
例示的な実装のいくつかにおいて、混合画像Jが計算処理デバイスに送信され、ユーザに対して表示されてもよい。他の例示的な実装において、フレームI、背景画像B、マスク画像Mが計算処理デバイスに別個に送信されてもよい。計算処理デバイスは、ユーザに対して混合画像を表示する前に画像の混合を行ってもよい。例示的な実装によれば、伝送帯域幅に基づいて、低いフレームレートで、高解像度のドキュメント(即ち、背景画像B)を送信し、一方、高いフレームレートかつ低解像度で、移動するオブジェクト(即ち、前景マスク画像M)を送信してもよい。
【0081】
結合画像Jを表示する間、検出されたコンテンツ領域の部分は、オブジェクトのマスク画像Mの深度値に基づいて強調されてもよい。例えば、オブジェクトに近いコンテンツの部分(例えば、オブジェクトに対するコンテンツの相対距離が短い)は、強調されてもよく、オブジェクトに近いコンテンツの部分にアイコンが配置されてもよい。例示的な実装のいくつかにおいて、強調は、決定された相対位置及びマスク画像で検出されたジェスチャに基づくアイコンの配置を含んでいてもよい。オブジェクトとドキュメントとの間の決定した相対位置に基づいてドキュメントコンテンツの部分を強調するために他の機構を使用してもよい。オブジェクトとドキュメントとの間の決定した相対位置に基づいて検出したコンテンツの部分を強調する例示的な実装については、
図7A〜
図9Bを使用して後述する。
【0082】
結合画像Jがユーザに対して表示され、検出したコンテンツの部分が強調された後、プレゼンテーションが終了したか否か判定される。プレゼンテーションが終了した場合(460でYESの場合)、アルゴリズム400は終了する。プレゼンテーションが終了していない場合(460でNOの場合)、アルゴリズム400は405に戻り、新しいフレームIを取得する。
【0083】
図5A〜
図5Cは、本開示の例示的な実装によるドキュメント共有の画面500〜510を例示する。
図5Aは、画像取得デバイスによって取得されたドキュメント515の背景画像500(例えば、第1画像データ)を例示する。背景画像500はクロッピングされ、ドキュメントコンテンツ530の領域の外側は取り除かれる。例示するように、ドキュメント515は、計算処理デバイス535(例えば、タブレット、スマートフォン、または他の計算処理デバイス)で表示される電子ドキュメントである。
【0084】
図5Bは、オブジェクト525のマスク画像M(第2画像データ)を生成するために使用されるフレーム画像505(例えば、フレームI)を例示する。フレーム画像505内で、計算処理デバイス535のドキュメント515が、オブジェクト525の背後に、表示されている。フレーム画像505は、オブジェクト525とドキュメント515との間の横方向及び縦方向の相対位置(例えば、画像内の位置)を判定するために使用されてもよい。
【0085】
上記したように、ドキュメントコンテンツ530が検出される例示的な実装において、オブジェクト525とドキュメント530との間の横方向及び縦方向の相対位置(例えば、画像内の位置)が判定されてもよい。フレーム画像505が深度カメラで取得される場合、フレーム画像505は、相対的深度(例えば、オブジェクト525と画像取得デバイスまたはドキュメント515との間の距離)を判定するために使用される深度情報を含んでいてもよい。例示的な実装のいくつかにおいて、オブジェクト525の深度情報は、深度または距離センサ(例えば、
図2のセンサユニット275)を使用して検出されてもよい。
【0086】
図5Cは、ユーザに対して表示される結合または混合画像510(例えば、混合画像J)を例示する。例示されるように、ドキュメント515の背景画像は、オブジェクト525が検出されない領域でドキュメントコンテンツ530を描画するために使用される。また、フレーム画像505は、背景画像500に重畳されるオブジェクト525のマスク画像を生成するために使用される。
図5B及び
図5Cにおいて、オブジェクト525の領域540は、オブジェクト525の領域545よりもドキュメント515に近い(例えば、オブジェクト525の領域540は、領域545より画像取得デバイスに近い)。深度情報に基づいて、オブジェクト525のマスク画像は、オブジェクト525がドキュメント515からより離れている(例えば、画像取得デバイスにより近い)、混合画像510の領域で、より透過するように描画される。例示されるように、
図5Cにおいて、オブジェクト525の領域545は、オブジェクト525の領域540よりも透過するように描画される。
【0087】
図6A〜
図6Eは、本開示の他の例示的な実装によるドキュメント共有の画面600、605〜608を例示する。
図6Aは、画像取得デバイスによって取得されるドキュメント610の背景画像600(例えば、第1画像データ)を例示する。例示されるように、ドキュメント610は、紙に印刷され、画像取得デバイスの下の面620に配置されている。例示的な実装のいくつかにおいて、ドキュメントコンテンツ625は、上記した認識技術を使用してドキュメント610から検出されてもよい。
【0088】
図6Bは、オブジェクト615のマスク画像607(
図6Dを使用して後述する)を生成するために使用されるフレーム画像605(例えば、フレームI)を例示する。フレーム画像605は、オブジェクト615とドキュメント610との間の横方向及び縦方向の相対位置(例えば、画像内の位置)を判定するために使用されてもよい。上記したように、ドキュメントコンテンツ625が検出される例示的な実装において、オブジェクト615とドキュメントコンテンツ625との間の横方向及び縦方向の相対位置(例えば、画像内の位置)が判定されてもよい。
【0089】
図6B(及び後述する
図6C〜
図6E)において、オブジェクト615の領域630は、オブジェクト615の領域635よりも、ドキュメント610に近い(例えば、オブジェクト615の領域635は領域630よりも画像取得デバイスに近い)。フレーム画像605が深度カメラで取得された場合、フレーム画像605は、相対的深度(例えば、オブジェクト615と画像取得デバイスまたはドキュメント610との間の距離)を判定するために使用される深度情報606(
図6Cで例示される)を含んでいてもよい。オブジェクト615の深度情報606は、例示的な実装のいくつかにおいて、深度または距離センサ(例えば、
図2のセンサユニット275)を使用して検出されてもよい。
【0090】
図6Cは、フレーム画像605(例えば、フレームI)から抽出される深度情報606を例示する。深度画像606は、グレイスケール画像であり、深度カメラに近いポイントほど濃いグレイで表されている(画像を処理する際、無視してよい雑音領域は黒で表されている)。上記したように、オブジェクト615の領域630は、オブジェクト615の領域635よりもドキュメント610に近い(例えば、オブジェクト615の領域635は領域630よりも画像取得デバイスに近い)。すなわち、オブジェクト615の領域630は、領域640において相対的に薄いグレイ値を有し、オブジェクト615の領域635は、領域645において相対的に濃いグレイ値を有する。深度情報606は、
図6Eの混合画像608を生成するために、
図6Dのマスク画像607と
図6Bのフレーム画像605との結合または混合のために使用されてもよい。
【0091】
図6Dは、フレーム画像605(例えば、フレームI)から抽出されるオブジェクト615のマスク画像607を例示する。オブジェクト615の領域630は、オブジェクト615の領域635よりドキュメント610に近い(例えば、オブジェクト615の領域635は、領域630よりも画像取得デバイスに近い)。マスク画像607は他の背景情報を全て取り除いてオブジェクト615を例示する。
【0092】
図6Eは、ユーザに対して表示される結合または混合画像608(例えば、混合画像J)を例示する。例示されるように、ドキュメント610の背景画像600(
図6Aに例示される)は、オブジェクト615が検出されないドキュメントコンテンツ625の領域を描画するために使用される。また、フレーム画像605は、背景画像600に重畳されるオブジェクト615のマスク画像607(
図6Dに例示される)を作成するために使用される。深度情報606(
図6Cに例示される)に基づいて、オブジェクト615を作り出すマスク画像607(
図6Dに例示される)内のフレーム画像(例えば、フレームI)の画素は、オブジェクトがドキュメント610から離れているほど(例えば、画像取得デバイスに近いほど)混合画像608の領域でより透過するように描画される。例示されるように、
図6Eにおいて、オブジェクト615の領域635は、オブジェクト615の領域630よりも透過するように描画される。
【0093】
図7A及び
図7Bは、本開示によるドキュメントコンテンツ上のアイコンを表示する例示的な実装を示す。
図7Aは、オブジェクト710に最も近いポイントでドキュメント705に配置されたアイコン715の第1実装700を例示する。アイコン715は、ドット、ボックス、矢印、または何れか他のアイコンであってよいが、これらに限定されない。
【0094】
例示的な実装のいくつかにおいて、アイコン715は、オブジェクト710とドキュメント705との間の横方向の相対位置(画像内の位置)にだけ基づいて配置されてもよい。
【0095】
例えば、オブジェクト認識アルゴリズムが、オブジェクト710がどの方向を指し示しているかを判定するために使用され、アイコン715は、ドキュメント705で、オブジェクト710が指し示している位置に最も近いポイントに配置されてもよい。アイコン715は、横方向の相対位置(例えば、画像内の位置)だけに基づいて配置されてもよいので、深度カメラまたはセンサからの相対的な深度位置情報はなくてもよい。したがって、アイコン715の配置は単純化されてもよい。
【0096】
図7Bは、ドキュメント725で、オブジェクト730の向き及び位置に基づいて推測されるポイントに、アイコン740が配置される第2実装720を例示する。アイコン740は、ドット、ボックス、矢印、何れか他のアイコンを含んでいてもよいが、これらに限定されない。
【0097】
例示的な実装のいくつかにおいて、アイコン740は、オブジェクト730とドキュメント725との間の横方向の相対位置(例えば、画像内の位置)と縦方向の相対位置(例えば、画像取得デバイスまたはドキュメントからの深度または距離)の双方に基づいて配置されてもよい。
図8A及び
図8Bを使用して後述するように、オブジェクト730の向きは、オブジェクト730の横方向及び縦方向の検出した相対位置に基づいて判定されてもよい。検出した向きに基づいて、オブジェクト730が指し示しているドキュメント725のポイントを抽出し、アイコン740を抽出したポイントに配置してもよい。
【0098】
図8A及び
図8Bは、本開示の例示的な実装によるオブジェクト810が指し示しているドキュメント805の領域845の抽出を例示する。
図8Aは、ドキュメント805の上で検出されるオブジェクト810と、支持面802に配置されているドキュメント805と、を側面から見た図である。
図8Bは、ドキュメント805の上で検出されるオブジェクト810を上から見た図である。例示的な実装において、深度情報は、支持面802の上の空間の3次元幾何モデルを生成するために使用され、オブジェクトに沿った線及び、線とドキュメント面との交差位置を推測し、カーソルまたはアイコンの混合画像での配置を決定する。
【0099】
例えば、オブジェクト810の最も低いポイント820(例えば、ドキュメント805に最も近いオブジェクト810のポイント)は、深度カメラまたは他の深度センサからの深度情報に基づいて識別されてもよい。オブジェクトの識別された最も低いポイント820に基づいて、オブジェクト810が最も低いポイント820を通る向きの面825が、オブジェクト追跡アルゴリズムを使用して識別されてもよい。オブジェクトの向きの面825が識別されると、識別した面825とドキュメント805の面815との間の交差線830が判定されてもよい。
【0100】
交差線830を使用して、上から見て(画像取得デバイスから見て)、交差線830に最も近いオブジェクト810のポイント835を識別する。オブジェクト810の識別したポイント835に基づいて、オブジェクト810の指示方向ベクトル840を、マッピング及びオブジェクト認識アルゴリズムを使用して決定してもよい。指示方向ベクトル840と交差線830との間の交差点をドキュメント805上で識別し、
図7Bを使用して上記したように、カーソルまたはアイコンの配置に使用してもよい。
【0101】
上記オブジェクト位置追跡を使用して、例示的な実装は、オブジェクト(例えば、手、指、または腕)の動きを、ハイライト、ズーム、ぼかし/鮮鋭化、注釈の付加などの特定のアクションにマッピングしてもよい。例えば、オブジェクト(例えば、手、指または腕)の動きをマッピングすることで、ユーザがコンテンツ(例えば、ワード及びテキスト行)の意味論的意味の部分と相互関与することができる。コンテンツのこれらの部分は、ストレージデバイスに記憶されるドキュメント(例えば、ドキュメントファイル)の電子版の符号化に基づいて、利用可能であってよい。代替的に、コンテンツのこれらの部分は、ドキュメントコンテンツ分析アルゴリズムによって決定されてもよい。また、レイアウト分析をドキュメントに対して実行し、ワードまたはテキスト行、欄、画像領域及びこれらの境界ボックスを識別してもよい。
【0102】
また、オブジェクトが指し示している場所を判定し(例えば、
図8A及び
図8Bを使用して上記した3次元モデリングを使用して)、指し示されているワードまたは行をハイライトして(例えば、ボックスを使用して)描画することによって、指し示されているものに基づいて、コンテンツとの様々な相互関与が可能となってもよい。例えば、
図9A及び
図9Bは、本開示の例示的な実装に基づくドキュメントコンテンツとの様々な相互関与を例示する。
【0103】
図9Aは、ドキュメントコンテンツ915との第1の相互関与で表示される画像900を例示する。例示されるように、オブジェクト910(例えば、手、腕、指または他のポインティングオブジェクト)が、コンテンツ915の部分(例えば、ワード)の近くで、ドキュメント上に例示される。コンテンツ915の部分(例えば、ワード)の近くでオブジェクト910を検出すると、コンテンツ915のコンテンツの部分(例えば、ワード)をハイライトするボックス920を表示画像900に追加する。
【0104】
図9Bは、ドキュメントコンテンツ940との第2の相互関与の表示画像925を例示する。例示されるように、オブジェクト935(例えば、手、腕、指または他のポインティングオブジェクト)がコンテンツ940の大きい部分(例えば、行)の近くのドキュメント930の端部950の近くに例示される。コンテンツ940の大きい部分(例えば、行)の近くのドキュメント930の端部950の近くのオブジェクト935を検出することに基づいて、コンテンツ940のコンテンツの大きい部分(例えば、行)をハイライトするボックス945が表示画像925に追加される。ドキュメントコンテンツ940との相互関与の他の例示的な実装については後述する。
【0105】
例示的な実装のいくつかにおいて、ドキュメントの上で検出されたオブジェクトは、ユーザの手または腕であってよく、ドキュメントコンテンツの領域の上のユーザの手または腕の位置によって、ドキュメントへの重畳またはドキュメントの拡大が行われてもよい。例を以下に示す。
●テキストハイライト:テキストラインを指し示している間、ユーザが指または腕を横方向に動かすと、関心領域を遠隔ユーザが理解する支援となるように、テキストを一時的にハイライトしてもよい。
●領域の拡大:ドキュメントの部分の上でユーザが数回タップすると、ドキュメントの部分を拡大してもよい。
●領域の鮮鋭化/領域以外のぼかし:段落領域の近くでユーザが指または腕を縦方向に動かすと、注釈を生成し、必須ではないが、ドキュメントページの段落領域以外をぼかし、及び/または選択された段落領域の解像度を増大して表示する。
●クロッピング:ユーザは領域を「クロッピング」するために手または腕の双方を使用してもよい。
●欄のハイライト:表欄上でユーザが指を縦方向に動かすと、欄全体をハイライトする。
【0106】
また、ドキュメントの部分を指し示している間に、プレゼンタはジェスチャを行ってもよい(例えば、サムズアップ(「良い」)、サムズダウン(「悪い」)、手を振る(「わからない」)、開いた手を置く(「これは何?」))。例示的な実装のいくつかにおいて、これらのジェスチャは、画像取得デバイスによって認識されてもよく、ジェスチャによって表されることが、プレゼンタが指し示している位置に隣接して、ドキュメント上に表示されてもよい。これにより、遠隔に存在する参加者は、ドキュメントの詳細と共に、プレゼンテーションに付随するジェスチャを見ることができる。例えば、認識されたジェスチャは、そのまま表示されてもよいし、より抽象的なグラフィック表示(例えば、サムズアップアイコン、クエスチョンマークアイコンなど)に置き替えられてもよい。例示的な実装のいくつかにおいて、共有または提示ドキュメントは、アーカイブするために取得されてもよい。例えば、プレゼンタは、リアルタイムでは遠隔会議に参加することができない他のユーザとドキュメントについて議論し、そのドキュメントを当該他のユーザと共有する。共有したドキュメントは取得され、その他のユーザが後で見ることができるように保存される。ユーザがアーカイブした共有ドキュメントを再生すると、以前のプレゼンテーションで行われた重要なジェスチャが再生を見ているユーザに提示されてもよい。即ち、注釈を生成するジェスチャが取得され、著者が意図するページに配置されてもよい。
【0107】
「評価」
インテルF200RGB−Dカメラを使用して、評価用プロトタイプを構築した。評価のために、カラー及び深度画像を60fps(フレーム毎秒)で取得し、画像処理(即ち、背景分離、アルファブレンディング)は速度を落とし45fpsで行った。これらの速度は、標準的なビデオ速度30fpsよりも好ましい結果を産む。別個のモジュールをつくり、遠隔クライアントへの混合画像の送信を評価した。フレーム画像は、非圧縮でLAN上を送信され、画像データは速度120fpsで送信可能であり、画像を受信デバイスのウィンドウで表示する場合でも、50fpsで送信することができた。
【0108】
「環境例」
図10は、例示的な実装のいくつかにおける使用に適した例示的な計算処理デバイス1005によって遠隔同時会議で使用され得る計算処理環境1000を例示する。計算処理環境1000の計算処理装置1005は、1つもしくは複数の処理ユニット、コアまたはプロセッサ1010、メモリ1015(例えば、RAM、ROMなど)、内部ストレージ1020(例えば、磁気、光、ソリッドステート及び/または有機)、及び/または、I/Oインターフェイス1025を含み、これらの何れかは通信機構またはバス1030と接続され、情報を伝達してもよいし、計算処理デバイス1005に埋め込まれていてもよい。
【0109】
計算処理デバイス1005は、入力/ユーザインターフェイス1035及び出力デバイス/インターフェイス1040に、通信可能に接続されていてもよい。入力/ユーザインターフェイス1035及び出力デバイス/インターフェイス1040の一方または双方は、有線または無線インターフェイスであってよく、取り外し可能であってよい。入力/ユーザインターフェイス1035は、何れかのデバイス、コンポーネント、センサ、またはインターフェイスであってよく、物理的または仮想的であってよく、入力(例えば、ボタン、タッチスクリーンインターフェイス、キーボード、ポインティング/カーソル制御、マイクロフォン、カメラ、点字器、モーションセンサ、オプティカルリーダーなど)を提供するために使用されてもよい。出力デバイス/インターフェイス1040は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字器などを含んでいてもよい。例示的な実装のいくつかにおいて、入力/ユーザインターフェイス1035及び出力デバイス/インターフェイス1040は、計算処理デバイス1005に埋め込まれていてもよいし、計算処理デバイス1005と物理的に接続されていてもよい。他の例示的な実装において、他の計算処理デバイスが、入力/ユーザインターフェイス1035及び出力デバイス/インターフェイス1040として機能してもよいし、これらの機能を計算処理デバイス1005に提供してもよい。
【0110】
計算処理デバイス1005の例は、高機能モバイルデバイス(例えば、スマートフォン、車及び他のマシンの搭載デバイス、人または動物によって搬送されるデバイスなど)、モバイルデバイス(例えば、タブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビ、ラジオなど)、固定デバイス(例えば、デスクトップコンピュータ、サーバデバイス、他のコンピュータ、情報キオスク、1つもしくは複数のプロセッサが埋め込まれているか接続されているテレビ、ラジオなど)を含んでいてもよいが、これらに限定されない。
【0111】
計算処理デバイス1005は、何れかの複数のネットワークコンポーネントデバイス、及び、同じまたは異なる構成を有する1つもしくは複数の計算処理デバイスを含むシステムと通信するネットワーク1050及び外部ストレージ1045に、通信可能に(例えば、I/Oインターフェイス1025を介して)接続されていてもよい。計算処理デバイス1005または何れかの接続計算処理デバイスは、サーバ、クライアント、シンサーバ、汎用マシン、特定用途マシン、または他のものとして機能してもよいし、これらのサービスを提供してもよいし、これらを参照してもよい。
【0112】
I/Oインターフェイス1025は、計算処理環境1000内の少なくとも全ての接続されたコンポーネント、デバイス、及びネットワークへ通信を送るための、及び/または、これらからの通信を受け取るための、通信またはI/Oプロトコル、または標準(例えば、イーサネット(登録商標)、802.11x、USB(Universal System Bus)、WiMAX、モデム、携帯電話ネットワークプロトコルなど)の何れかを使用した有線及び/または無線インターフェイスを含んでいてもよいが、これらに限定されない。ネットワーク1050は、ネットワークまたはネットワークの組み合わせ(例えば、インターネット、LAN(local area network)、WAN(wide area network)、電話ネットワーク、携帯電話ネットワーク、衛星ネットワークなど)の何れかであってよい。
【0113】
計算処理デバイス1005は、一時的媒体及び非一時的媒体を含むコンピュータ使用可能またはコンピュータ読み取り可能媒体を使用し、及び/または、これらを使用した通信を行ってもよい。一時的媒体は、伝送媒体(例えば、金属ケーブル、光ファイバー)、データ、搬送波などを含む。非一時的媒体は、磁気媒体(例えば、ディスク及びテープ)、光媒体(例えば、CD ROM、デジタルビデオディスク、ブルーレイディスク)、ソリッドステート媒体(例えば、RAM、ROM、フラッシュメモリ、ソリッドステートストレージ)、及び他の不揮発性ストレージまたはメモリを含む。
【0114】
計算処理デバイス1005は、例示的な計算処理環境のいくつかにおいて、技術、方法、アプリケーション、プロセス、または、コンピュータ実行可能命令を実装するために使用されてもよい。コンピュータ実行可能命令は、一時的媒体から取り出され、非一時的媒体に記憶され、非一時的媒体から取り出されてもよい。実行可能命令は、プログラミング、スクリプト、及びマシン言語(例えば、C、C++、C#、Java(登録商標)、Visual Basic、Python、Perl、JavaScript(登録商標)など)の何れか1つもしくは複数から生成されてもよい。
【0115】
プロセッサ1010は、物理的または仮想的な環境において、何れかの(図示しない)オペレーティングシステムの下で稼動してもよい。1つもしくは複数のアプリケーションは、論理ユニット1055、API(application programming interface)ユニット1060、入力ユニット1065、出力ユニット1070、画像データ取得ユニット1075、コンテンツ検出ユニット1080、相対位置検出ユニット1085、画像データ結合ユニット1090、及び、異なるユニットが相互に通信を行うためのユニット間通信機構1095を含み、オペレーティングシステム、及び他のアプリケーション(図示しない)と共に、展開されてもよい。例えば、画像データ取得ユニット1075、コンテンツ検出ユニット1080、相対位置検出ユニット1085、及び画像データ結合ユニット1090は、
図3及び
図4に示される1つもしくは複数のプロセスを実装してもよい。上記ユニット及び要素は設計、機能、構成、または実装において変更可能であり、上記に限定されない。
【0116】
例示的な実装のいくつかにおいて、情報または実行命令がAPIユニット1060によって受信されると、1つもしくは複数の他のユニット(例えば、論理ユニット1055、入力ユニット1065、出力ユニット1070、画像データ取得ユニット1075、コンテンツ検出ユニット1080、相対位置決定ユニット1085、及び画像データ結合ユニット1090)に情報または実行命令を伝達してもよい。例えば、画像データ取得ユニット1075がドキュメントの画像データを取得すると、画像データは、コンテンツ検出ユニット1080に送信され、ドキュメントのコンテンツが検出されてもよい。また、相対位置決定ユニット1085は、ドキュメントに対するオブジェクトの相対位置を決定し、画像データ結合ユニット1090に相対位置情報を提供してもよい。さらに、画像データ結合ユニット1090は、画像データ取得ユニット1075及び相対位置決定ユニット1085によって取得された第1及び第2画像データに基づいて結合画像データを生成してもよい。
【0117】
上記例示的な実装のいくつかによる例のいくつかにおいて、論理ユニット1055は、ユニット間の情報フローを制御し、APIユニット1060、入力ユニット1065、出力ユニット1070、画像データ取得ユニット1075、コンテンツ検出ユニット1080、相対位置決定ユニット1085、及び画像データ結合ユニット1090によって提供されるサービスを指示する。例えば、1つもしくは複数のプロセスまたは実装の流れは、論理ユニット1055単独で制御されてもよいし、論理ユニット1055とAPIユニット1060とによって制御されてもよい。
【0118】
いくつかの例示的な実装について記載したが、これらの例示的な実装に限定されることなく、例示的な実装によって説明した内容については様々な実装が可能である。当該内容は、上記定義または説明された詳細がなくても、また、説明されていない他のまたは異なる要素によっても実行可能である。また、当該内容から乖離することなく例示的な実装に変更を加えることも可能である。