(57)【要約】【課題】結合に有効な特徴点が少ない画像や繰り返しパターンを多く含む画像であっても、ユーザの操作性を損なわずに、結合に有効な特徴点を生成する仕組みを提供する。【解決手段】本画像読取装置は、載置台に載置された原稿を複数の部分画像に分けて撮影し、撮影した前記複数の部分画像を結合する。具体的には、本画像読取装置は、載置台上での原稿の操作をユーザに指示する指示情報を投影し、載置台上に載置された原稿を撮影して部分画像を取得し、当該部分画像に、他の部分画像と結合するのに有効な特徴点が存在するか否かを判定する。また、本画像読取装置は、有効な特徴点が存在しないと判定されると、ユーザに対して原稿上に手を置くように指示する指示情報を原稿上に投影し、原稿上に置かれたユーザの手を含む原稿の画像を取得して、有効な特徴点を生成する。【選択図】  図９
2019146127.tif 000002
【特許請求の範囲】
【請求項１】
原稿を複数の部分画像に分けて撮影し、撮影した前記複数の部分画像を結合する画像読取装置であって、
原稿を載置する載置台と、
前記載置台上での原稿の操作をユーザに指示する指示情報を投影する投影手段と、
前記載置台上に載置された原稿を撮影して前記部分画像を取得する画像取得手段と、
前記画像取得手段によって取得された前記部分画像に、他の部分画像と結合するのに有効な特徴点が存在するか否かを判定する判定手段と、
前記判定手段によって前記有効な特徴点が存在しないと判定されると、前記投影手段によって前記ユーザに対して原稿上に手を置くように指示する指示情報を原稿上に投影し、原稿上に置かれた前記ユーザの手を含む原稿の画像を前記画像取得手段によって取得して、前記有効な特徴点を生成する制御手段と
を備えることを特徴とする画像読取装置。
【請求項２】
前記制御手段は、さらに、
前記画像取得手段によって次の部分画像を取得するために、原稿の移動をガイドするためのガイド表示を前記投影手段によって投影させることを特徴とする請求項１に記載の画像読取装置。
【請求項３】
前記制御手段は、さらに、
前記ガイド表示に従って原稿が移動されると、ユーザに手を原稿上から取り除くよう指示するメッセージを前記投影手段によって投影させ、手が取り除かれると、前記画像取得手段によって移動された原稿における前記部分画像を取得させることを特徴とする請求項２に記載の画像読取装置。
【請求項４】
前記制御手段は、
原稿の第１位置において、ユーザの手を含まない第１部分画像と、ユーザの手を含む第２部分画像とを前記画像取得手段によって取得させ、
原稿の第１位置の次に取得する位置となる第２位置において、ユーザの手を含まない第３部分画像と、ユーザの手を含む第４部分画像とを前記画像取得手段によって取得させ、
前記第２部分画像と前記第４部分画像とに含まれる前記有効な特徴点における対応点群の位置関係に基づいて、前記第１部分画像と前記第３部分画像とを結合することを特徴とする請求項３に記載の画像読取装置。
【請求項５】
前記制御手段は、さらに、
原稿の移動に追従して前記画像取得手段によって原稿の画像を撮影し、撮影した部分画像に含まれる前記有効な特徴点から原稿の移動を検出し、取得した原稿の移動に従って前記ガイド表示を更新することを特徴とする請求項２乃至４の何れか１項に記載の画像読取装置。
【請求項６】
前記投影手段は、前記指示情報として、手を置く原稿上の位置を示す手形を少なくとも投影することを特徴とする請求項２乃至５の何れか１項に記載の画像読取装置。
【請求項７】
前記投影手段は、原稿を手で押さえたまま該原稿を移動させる旨のメッセージと、前記ガイド表示として、原稿の移動方向及び移動距離を示す表示とを少なくとも投影することを特徴とする請求項２乃至６の何れか１項に記載の画像読取装置。
【請求項８】
前記制御手段は、前記投影手段によって投影された前記ガイド表示を、原稿の移動に追従して更新させることを特徴とする請求項７に記載の画像読取装置。
【請求項９】
前記ガイド表示は、矢印であることを特徴とする請求項７又は８に記載の画像読取装置。
【請求項１０】
前記投影手段は、さらに、原稿の移動が完了するとユーザの手が重なるように表示される手形を投影することを特徴とする請求項７乃至９の何れか１項に記載の画像読取装置。
【請求項１１】
前記有効な特徴点とは、ユーザの手の画像の特徴点であることを特徴とする請求項１乃至１０の何れか１項に記載の画像読取装置。
【請求項１２】
前記有効な特徴点とは、ユーザの原稿に触れている指先の画像の特徴点であることを特徴とする請求項１乃至１０の何れか１項に記載の画像読取装置。
【請求項１３】
前記制御手段は、前記画像取得手段によって取得された前記部分画像の特徴点が少ない場合に、前記有効な特徴点がないと判断することを特徴とする請求項１乃至１２の何れか１項に記載の画像読取装置。
【請求項１４】
前記制御手段は、前記画像取得手段によって取得された前記部分画像の特徴点に繰り返しパターンが存在する場合に、前記有効な特徴点がないと判断することを特徴とする請求項１乃至１３の何れか１項に記載の画像読取装置。
【請求項１５】
原稿を載置する載置台を備え、原稿を複数の部分画像に分けて撮影し、撮影した前記複数の部分画像を結合する画像読取装置の制御方法であって、
投影手段が、前記載置台上での原稿の操作をユーザに指示する指示情報を投影する投影工程と、
画像取得手段が、前記載置台上に載置された原稿を撮影して前記部分画像を取得する画像取得工程と、
判定手段が、前記画像取得工程で取得された前記部分画像に、他の部分画像と結合するのに有効な特徴点が存在するか否かを判定する判定工程と、
制御手段が、前記判定工程で前記有効な特徴点が存在しないと判定されると、前記投影手段によって前記ユーザに対して原稿上に手を置くように指示する指示情報を原稿上に投影し、原稿上に置かれた前記ユーザの手を含む原稿の画像を前記画像取得手段によって取得して、前記有効な特徴点を生成する制御工程と
を含むことを特徴とする画像読取装置の制御方法。
【請求項１６】
原稿を載置する載置台を備え、原稿を複数の部分画像に分けて撮影し、撮影した前記複数の部分画像を結合する画像読取装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
投影手段が、前記載置台上での原稿の操作をユーザに指示する指示情報を投影する投影工程と、
画像取得手段が、前記載置台上に載置された原稿を撮影して前記部分画像を取得する画像取得工程と、
判定手段が、前記画像取得工程で取得された前記部分画像に、他の部分画像と結合するのに有効な特徴点が存在するか否かを判定する判定工程と、
制御手段が、前記判定工程で前記有効な特徴点が存在しないと判定されると、前記投影手段によって前記ユーザに対して原稿上に手を置くように指示する指示情報を原稿上に投影し、原稿上に置かれた前記ユーザの手を含む原稿の画像を前記画像取得手段によって取得して、前記有効な特徴点を生成する制御工程と
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読取装置の読取範囲より大きい大判原稿をスキャンする際に、読取範囲の一部分が相互に重なり合った複数の部分画像を撮影して結合する画像読取装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
建築図面のような大判原稿をスキャンする方法として、ユーザが複写機の天板読取部に原稿の一部分（例えば、右半分）を載置してスキャンした後、もう一部分（例えば、左半分）を載置し直して再スキャンし、それらの部分画像群を合成する方法がある。この方法におけるユーザの作業は、天板部を開けて原稿を載置し、天板部を閉めて載置した部分をスキャンした後、もう一部分をスキャンするために同様の手順を繰り返すというものであり、煩雑である。
【０００３】
そこで、原稿載置部の上部に撮像装置を設置する上面読取装置を用いてスキャンする方法がある。この方法は、ユーザが上面読取装置の原稿載置部に原稿の一部分を載置して上部の撮像装置で撮影（スキャン）した後、原稿をずらして（例えば、横に平行移動して）もう一部分を原稿載置部に載置し直して再撮影し、それら分割して撮影した部分画像群を合成する方法である。複写機によるスキャンと違い、ユーザは原稿をずらすだけで原稿の再載置が完了するため、複写機によるスキャンよりも作業が簡略である。
【０００４】
上記方法に見られる、本来一枚である画像を部分毎に分割して取得し、それら部分画像群を合成する技術はスティッチングと呼ばれる。スティッチングは、各部分画像間の対応する特徴点を検出し、その対応関係を用いて各部分画像をホモグラフィ変換（平面上の点を別の点に射影）して重ね合わせる技術である。即ち、各部分画像間の重複している領域を重ね合わせる技術である。そのため、各部分画像には他の部分画像と重複する領域が映っている必要があり、ユーザは原稿の一部分を載置して撮影した後、その画像との重複領域が映るように次の一部分を載置し直して再撮影する必要がある。
【０００５】
このような上面読取装置では、重複領域に、結合に有効な特徴点が存在しない場合は正確な結合を行うことができなかった。結合に有効な特徴点が存在しない場合とは、そもそも特徴点が少ない画像や、繰り返しパターンを多く含む場合である。上記特許文献１では、カラー画像だけで特徴点が取得できない場合に、同じ画角の赤外画像を取得することで、結合に有効な特徴点を取得する方法が考案されている。なお、非特許文献１には、繰り返しパターンの要素に関する特徴量空間を利用し、それぞれの部分空間を検出することで繰り返しパターン領域を検出する技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−４４３３９号公報
【非特許文献】
【０００７】
【非特許文献１】坂本  大樹、外２名、「特徴量空間を用いた繰り返しパターンを含む画像間の対応付け」、画像の認識・理解シンポジウム（ＭＩＲＵ２０１１）、２０１１年７月２０日、ＩＳ４−４６：１５８９−１５９６
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来技術には以下に記載する課題がある。例えば、上記従来技術では、別構成の赤外カメラ、又は赤外画像とカラー画像の両方を取得可能な構成を用意しなければならず、装置の製造コストが増大するという課題がある。また、赤外画像を用いたところで、図面原稿に対しては結合に有効な特徴点を得ることができないという課題がある。
【０００９】
本発明は、上述の問題の少なくとも一つに鑑みて成されたものであり、結合に有効な特徴点が少ない画像や繰り返しパターンを多く含む画像であっても、ユーザの操作性を損なわずに、結合に有効な特徴点を生成する仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、例えば、原稿を複数の部分画像に分けて撮影し、撮影した前記複数の部分画像を結合する画像読取装置であって、原稿を載置する載置台と、前記載置台上での原稿の操作をユーザに指示する指示情報を投影する投影手段と、前記載置台上に載置された原稿を撮影して前記部分画像を取得する画像取得手段と、前記画像取得手段によって取得された前記部分画像に、他の部分画像と結合するのに有効な特徴点が存在するか否かを判定する判定手段と、前記判定手段によって前記有効な特徴点が存在しないと判定されると、前記投影手段によって前記ユーザに対して原稿上に手を置くように指示する指示情報を原稿上に投影し、原稿上に置かれた前記ユーザの手を含む原稿の画像を前記画像取得手段によって取得して、前記有効な特徴点を生成する制御手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、結合に有効な特徴点が少ない画像や繰り返しパターンを多く含む画像であっても、ユーザの操作性を損なわずに、結合に有効な特徴点を生成することができる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に係る大判原稿スキャンシステム１０１のネットワーク構成を示す図。
【図２】一実施形態に係る大判原稿スキャンシステム１０１の外観を示す図。
【図３】一実施形態に係るコントローラ部２０１のハードウェア構成図。
【図４】一実施形態に係る大判原稿スキャンシステム１０１の制御用プログラムの機能構成図の一例及びシーケンス図。
【図５】一実施形態に係る距離画像取得部４０８が実行する処理のフローチャート及び説明図。
【図６Ａ】一実施形態に係るジェスチャー検知部４０９が実行する処理のフローチャート。
【図６Ｂ】一実施形態に係るジェスチャー検知部４０９が実行する処理の説明図。
【図７】一実施形態に係る物体検知部４１０が実行する処理のフローチャート。
【図８】一実施形態に係る大判原稿スキャンシステム１０１の利用シーンを示す図。
【図９】一実施形態に係るＵＩ画面及び操作の様子を示す図。
【図１０】一実施形態に係るメイン制御部４０２が実行する処理のフローチャート。
【図１１】一実施形態に係る図面とスキャン領域２０５の位置関係、及び特徴点の様子を模式的に表す図。
【図１２】一実施形態に係る繰り返しパターンを多く含む図面とスキャン領域２０５の位置関係、及び特徴点の様子を模式的に表す図。
【発明を実施するための形態】
【００１３】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確立されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１４】
＜第１の実施形態＞
＜システム構成＞
以下では、本発明の第１の実施形態について説明する。まず、図１を参照して、一実施形態に係る大判原稿スキャンシステム１０１が含まれるネットワーク構成を説明する。
【００１５】
図１に示すように、大判原稿スキャンシステム１０１は、画像読取装置の一例であり、イーサネット（登録商標）等のネットワーク１０４を介して、ホストコンピュータ１０２及びプリンタ１０３に接続されている。図１のネットワーク構成においては、ホストコンピュータ１０２からの指示により、大判原稿スキャンシステム１０１による大判原稿スキャン機能や、そのスキャンデータ等をプリンタ１０３により出力するプリント機能の実行が可能である。また、ホストコンピュータ１０２を介さず、大判原稿スキャンシステム１０１へ直接指示することにより、大判原稿スキャン機能、及びプリント機能を実行することも可能である。
【００１６】
＜大判原稿スキャンシステムの構成＞
次に、図２を参照して、一実施形態に係る大判原稿スキャンシステム１０１の構成例を説明する。図２（ａ）に示すように、大判原稿スキャンシステム１０１は、コントローラ部２０１、カメラ部２０２、腕部２０３、プロジェクタ２０７、及び距離画像センサ２０８を備える。大判原稿スキャンシステム１０１の本体であるコントローラ部２０１、撮像を行うためのカメラ部２０２、プロジェクタ２０７及び距離画像センサ２０８は、腕部２０３により連結されている。腕部２０３は関節を用いて曲げ伸ばしが可能である。
【００１７】
図２（ａ）には、大判原稿スキャンシステム１０１が設置されている載置台２０４も示している。カメラ部２０２及び距離画像センサ２０８のレンズは、載置台２０４方向に向けられており、破線で囲まれたスキャン領域２０５内の画像を読取可能である。図２（ａ）の例では、原稿２０６はスキャン領域２０５内に置かれているので、大判原稿スキャンシステム１０１で読取可能となっている。
【００１８】
カメラ部２０２は単一解像度で画像を撮像するものとしてもよいが、高解像度画像撮像と低解像度画像撮像が可能なものとすることが望ましい。載置台２０４内にはターンテーブル２０９を設けてもよい。ターンテーブル２０９はコントローラ部２０１からの指示によって回転することが可能であり、ターンテーブル２０９上に置かれた原稿２０６とカメラ部２０２との角度を変えることができる。
【００１９】
また、図２に示されていないが、大判原稿スキャンシステム１０１は、ＬＣＤタッチパネル３３０及びスピーカ３４０をさらに備えてもよい。さらに、周囲の環境情報を収集するための人感センサ、照度センサ、及び加速度センサなどの各種センサデバイスを含むこともできる。
【００２０】
図２（ｂ）は、大判原稿スキャンシステム１０１における座標系について表している。大判原稿スキャンシステム１０１では各ハードウェアデバイスに対して、カメラ座標系、距離画像座標系、及びプロジェクタ座標系という座標系が定義される。これらはカメラ部２０２及び距離画像センサ２０８が撮像する画像平面、又はプロジェクタ２０７が投影する画像平面をそれぞれＸＹ平面とし、各画像平面に直交した方向をＺ方向として定義したものである。さらに、これらの独立した座標系の３次元データを統一的に扱えるようにするために、載置台２０４を含む平面をＸＹ平面とし、このＸＹ平面から上方に垂直な向きをＺ軸とする直交座標系を定義する。
【００２１】
座標系を変換する場合の例として、図２（ｃ）に直交座標系と、カメラ部２０２を中心としたカメラ座標系を用いて表現された空間と、カメラ部２０２が撮像する画像平面との関係を示す。直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］は、（１）式によって、カメラ座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換できる。
【００２２】
【数１】
2019146127.tif 000003
【００２３】
ここで、Ｒｃ及びｔｃは、直交座標系に対するカメラの姿勢（回転）と位置（並進）によって求まる外部パラメータによって構成される。Ｒｃを３×３の回転行列と称し、ｔｃを並進ベクトルと称する。逆に、カメラ座標系で定義された３次元点は（２）式によって、直交座標系へ変換することができる。
【００２４】
【数２】
2019146127.tif 000004
【００２５】
さらに、カメラ部２０２で撮影される２次元のカメラ画像平面は、カメラ部２０２によって３次元空間中の３次元情報が２次元情報に変換されたものである。即ち、カメラ座標系上での３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］を、（３）式によってカメラ画像平面での２次元座標ｐｃ［ｘｐ，ｙｐ］に透視投影変換することによって変換することができる。
【００２６】
【数３】
2019146127.tif 000005
【００２７】
ここで、Ａは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心などで表現される３×３の行列である。
【００２８】
以上のように、（１）式と（３）式を用いることで、直交座標系で表された３次元点群を、カメラ座標系での３次元点群座標やカメラ画像平面に変換することができる。なお、各ハードウェアデバイスの内部パラメータ及び直交座標系に対する位置姿勢（外部パラメータ）は、公知のキャリブレーション手法により予めキャリブレーションされているものとする。以後、特に言及しない限り、３次元点群と表記した場合は、直交座標系における３次元データを表しているものとする。
【００２９】
＜コントローラ部のハードウェア構成＞
次に、図３を参照して、大判原稿スキャンシステム１０１の本体であるコントローラ部２０１のハードウェア構成例を説明する。図３に示すように、コントローラ部２０１は、システムバス３０１に接続されたＣＰＵ３０２、ＲＡＭ３０３、ＲＯＭ３０４、ＨＤＤ３０５、ネットワークＩ／Ｆ３０６、画像処理プロセッサ３０７、及びカメラＩ／Ｆ３０８を含む。
【００３０】
ＣＰＵ３０２は、コントローラ部２０１全体の動作を制御する中央演算装置である。ＲＡＭ３０３は揮発性メモリである。ＲＯＭ３０４は不揮発性メモリであり、ＣＰＵ３０２の起動用プログラムが格納されている。ＨＤＤ３０５はＲＡＭ３０３と比較して大容量なハードディスクドライブ（ＨＤＤ）である。ＨＤＤ３０５にはコントローラ部２０１の実行する、大判原稿スキャンシステム１０１の制御用プログラムが格納されている。
【００３１】
ＣＰＵ３０２は、電源ＯＮ等の起動時、ＲＯＭ３０４に格納されている起動用プログラムを実行する。この起動用プログラムは、ＨＤＤ３０５に格納されている制御用プログラムを読み出し、ＲＡＭ３０３上に展開するためのものである。ＣＰＵ３０２は起動用プログラムを実行すると、続けてＲＡＭ３０３上に展開した制御用プログラムを実行し、制御を行う。また、ＣＰＵ３０２は制御用プログラムによる動作に用いるデータもＲＡＭ３０３上に格納して読み書きを行う。ＨＤＤ３０５上にはさらに、制御用プログラムによる動作に必要な各種設定や、また、カメラ入力によって生成した各画像を格納することができ、ＣＰＵ３０２によって読み書きされる。ＣＰＵ３０２は、ネットワークＩ／Ｆ３０６を介してネットワーク１０４上の他の機器との通信を行う。
【００３２】
画像処理プロセッサ３０７は、ＲＡＭ３０３に格納された各画像を読み出して処理し、処理後のデータをＲＡＭ３０３へ書き戻す。なお、画像処理プロセッサ３０７が実行する画像処理は、回転、変倍、色変換等である。
【００３３】
カメラＩ／Ｆ３０８は、カメラ部２０２及び距離画像センサ２０８と接続され、ＣＰＵ３０２からの指示に応じてカメラ部２０２から画像を、距離画像センサ２０８から距離画像を取得してＲＡＭ３０３へ書き込む。また、ＣＰＵ３０２からの制御コマンドをカメラ部２０２及び距離画像センサ２０８へ送信し、カメラ部２０２及び距離画像センサ２０８の設定を行う。
【００３４】
また、コントローラ部２０１は、ディスプレイコントローラ３０９、シリアルＩ／Ｆ３１０、オーディオコントローラ３１１及びＵＳＢコントローラ３１２のうち少なくとも１つをさらに含むことができる。ディスプレイコントローラ３０９は、ＣＰＵ３０２の指示に応じて出力する表示を制御する。ここでは、ディスプレイコントローラ３０９は、プロジェクタ２０７及びＬＣＤタッチパネル３３０に接続され、それぞれの出力表示を制御する。
【００３５】
シリアルＩ／Ｆ３１０はシリアル信号の入出力を行う。ここでは、シリアルＩ／Ｆ３１０はターンテーブル２０９に接続され、ＣＰＵ３０２の回転開始・終了及び回転角度の指示をターンテーブル２０９へ送信する。また、シリアルＩ／Ｆ３１０はＬＣＤタッチパネル３３０に接続され、ＣＰＵ３０２はＬＣＤタッチパネル３３０が押下されたときに、シリアルＩ／Ｆ３１０を介して押下された座標を取得する。
【００３６】
オーディオコントローラ３１１はスピーカ３４０に接続され、ＣＰＵ３０２の指示に応じて音声データをアナログ音声信号に変換し、スピーカ３４０を通じて音声を出力する。ＵＳＢコントローラ３１２はＣＰＵ３０２の指示に応じて外付けのＵＳＢデバイスの制御を行う。ここでは、ＵＳＢコントローラ３１２は、ＵＳＢメモリやＳＤカードなどの外部メモリ３５０に接続され、外部メモリ３５０へのデータの読み書きを行う。
【００３７】
＜制御用プログラムの機能構成＞
次に、図４を参照して、本実施形態に係る大判原稿スキャンシステム１０１の制御プログラムの機能構成について説明する。図４（ａ）は、ＣＰＵ３０２が実行する大判原稿スキャンシステム１０１の制御用プログラムの機能構成４０１を示す図である。図４（ｂ）は、機能構成４０１の各モジュールの関係をシーケンス図として示したものである。大判原稿スキャンシステム１０１の制御用プログラムは前述のようにＨＤＤ３０５に格納され、ＣＰＵ３０２が起動時にＲＡＭ３０３上に展開して実行する。大判原稿スキャンシステム１０１は、機能構成として、メイン制御部４０２、ユーザインターフェイス部４０３、ネットワーク通信部４０４、データ管理部４０５、表示部４０６、画像取得部４１６、認識処理部４１７、及び画像処理部４１８を含む。
【００３８】
メイン制御部４０２は制御の中心であり、機能構成４０１内の他の各モジュールを図４（ｂ）に示すように制御する。画像取得部４１６は画像入力処理を行うモジュールであり、カメラ画像取得部４０７及び距離画像取得部４０８から構成される。カメラ画像取得部４０７は、カメラ部２０２が出力する画像をカメラＩ／Ｆ３０８を介して取得し、ＲＡＭ３０３へ格納する。距離画像取得部４０８は距離画像センサ２０８が出力する距離画像をカメラＩ／Ｆ３０８を介して取得し、ＲＡＭ３０３へ格納する。距離画像取得部４０８の処理の詳細は図５を用いて後述する。
【００３９】
認識処理部４１７は、カメラ画像取得部４０７及び距離画像取得部４０８が取得する各画像から載置台２０４上の物体の動きを検知して認識するモジュールであり、ジェスチャー検知部４０９及び物体検知部４１０から構成される。ジェスチャー検知部４０９は、画像取得部４１６から載置台２０４上の画像を取得し続け、ユーザによるタッチなどのジェスチャーを検知するとメイン制御部４０２へ通知する。物体検知部４１０は、画像取得部４１６から載置台２０４を撮像した画像を取得し続け、載置台２０４上に物体が置かれるタイミング、物体が置かれて静止するタイミング、或いは物体が取り除かれるタイミングなどを検知する検知処理を実行する。ジェスチャー検知部の処理の詳細は図６を用いて後述する。画像処理部４１８は、カメラ画像取得部４０７及び距離画像取得部４０８が取得する各画像を画像処理プロセッサ３０７で解析するために用いられ、大判原稿スキャン部４１１や各種画像処理モジュールで構成される。大判原稿スキャン部４１１は、載置台２０４上に載置された原稿を部分毎に分割して撮影し、それら複数の部分画像を合成するモジュールである。また、前述のジェスチャー検知部４０９や大判原稿スキャン部４１１は、画像処理部４１８の各種画像処理モジュールを利用して実行される。
【００４０】
ユーザインターフェイス部４０３は、メイン制御部４０２からの要求を受け、メッセージやボタン等のＧＵＩ部品を生成する。そして、表示部４０６へ生成したＧＵＩ部品の表示を要求する。表示部４０６はディスプレイコントローラ３０９を介して、プロジェクタ２０７又はＬＣＤタッチパネル３３０へ要求されたＧＵＩ部品の表示を行う。プロジェクタ２０７は載置台２０４に向けて設置されているため、載置台２０４上にＧＵＩ部品を投射することが可能となっている。また、ユーザインターフェイス部４０３は、ジェスチャー検知部４０９が認識したタッチ等のジェスチャー操作、又はシリアルＩ／Ｆ３１０を介したＬＣＤタッチパネル３３０からの入力操作、そしてさらにそれらの座標を受信する。そして、ユーザインターフェイス部４０３は描画中の操作画面の内容と操作座標を対応させて操作内容（押下されたボタン等）を判定する。この操作内容をメイン制御部４０２へ通知することにより、操作者の操作を受け付ける。
【００４１】
ネットワーク通信部４０４は、ネットワークＩ／Ｆ３０６を介して、ネットワーク１０４上の他の機器とＴＣＰ／ＩＰによる通信を行う。データ管理部４０５は、制御用プログラムの実行において生成した作業データなど様々なデータをＨＤＤ３０５上の所定の領域へ保存し、管理する。
【００４２】
ここで、図４（ｂ）を参照して、大判原稿をスキャンする際の各モジュールのシーケンスの一例を説明する。まずメイン制御部４０２は、物体検知部４１０に対して物体検知の開始を指示する。物体検知部４１０は、画像取得部４１６のカメラ画像取得部４０７及び距離画像取得部４０８から各画像を取得し、物体の静止検知処理を実行する。物体検知部４１０は、物体の静止を検知すると、その旨をメイン制御部４０２へ通知する。メイン制御部４０２は、物体の静止検知通知を受信すると、ユーザインターフェイス部４０３に指示して、ＧＵＩ部品の更新処理を実行させる。その後、当該更新したＧＵＩ部品に対してユーザによるジェスチャー操作が行われると、当該ジェスチャーをジェスチャー検知部４０９が検知し、メイン制御部４０２へジェスチャー検知通知が行われる。
【００４３】
ジェスチャー検知通知を受けると、メイン制御部４０２は、大判原稿スキャン部４１１に対して大判原稿のスキャン処理の開始を通知する。大判原稿スキャン部４１１は、画像取得部４１６のカメラ画像取得部４０７及び距離画像取得部４０８からの各画像を取得し、載置された原稿の一部を読み取る。
【００４４】
さらに、メイン制御部４０２は、物体検知部４１０に対して物体検知の開始を指示する。物体検知部４１０は、画像取得部４１６のカメラ画像取得部４０７及び距離画像取得部４０８から各画像を取得し、物体の除去検知処理を実行する。物体検知部４１０は、物体の除去を検知すると、その旨をメイン制御部４０２へ通知する。メイン制御部４０２は、物体の除去検知通知を受信すると、ユーザインターフェイス部４０３に指示して、ＧＵＩ部品の更新処理を実行させ、処理を終了する。
【００４５】
＜距離画像センサ及び距離画像取得部の説明＞
次に、図５を参照して、本実施形態に係る距離画像センサ２０８の構成及び距離画像取得部４０８の処理手順について説明する。距離画像センサ２０８は、赤外線によるパターン投射方式の距離画像センサである。赤外線パターン投射部３６１は対象物に、人の目には不可視である赤外線によって３次元形状測定パターンを投射する。赤外線カメラ３６２は対象物に投射した３次元形状測定パターンを読み取るカメラである。ＲＧＢカメラ３６３は人の目に見える可視光をＲＧＢ信号で撮影するカメラである。
【００４６】
距離画像取得部４０８の処理手順を図５（ａ）のフローチャートを用いて説明する。また、図５（ｂ）乃至図５（ｄ）はパターン投射方式による距離画像の計測原理を説明するための図である。以下で説明する処理は、コントローラ部２０１のＣＰＵ３０２がＲＯＭ３０４やＨＤＤ３０５に格納された制御プログラムをＲＡＭ３０３に読み出して実行することにより実現される。
【００４７】
まず、Ｓ５０１で、距離画像取得部４０８は、図５（ｂ）に示すように、赤外線パターン投射部３６１を用いて赤外線による３次元形状測定パターン５２２を対象物５２１に投射する。Ｓ５０２で、距離画像取得部４０８は、ＲＧＢカメラ３６３を用いて対象物を撮影したＲＧＢ画像５２３、及び赤外線カメラ３６２を用いてＳ５０１で投射した３次元形状測定パターン５２２を撮影した赤外線画像５２４を取得する。
【００４８】
なお、赤外線カメラ３６２とＲＧＢカメラ３６３とでは設置位置が異なるため、図５（ｃ）に示すように、それぞれで撮影される２つのＲＧＢ画像５２３及び赤外線画像５２４の撮影領域が異なる。そこで、Ｓ５０３で、距離画像取得部４０８は、赤外線カメラ３６２の座標系からＲＧＢカメラ３６３の座標系への座標系変換を用いて赤外線画像５２４をＲＧＢ画像５２３の座標系に合わせる。なお、赤外線カメラ３６２とＲＧＢカメラ３６３の相対位置や、それぞれの内部パラメータは事前のキャリブレーション処理により既知であるとする。
【００４９】
次に、Ｓ５０４で、距離画像取得部４０８は、図５（ｄ）に示すように、３次元形状測定パターン５２２とＳ５０３で座標変換を行った赤外線画像５２４との間の対応点を抽出する。例えば、距離画像取得部４０８は、赤外線画像５２４上の１点を３次元形状測定パターン５２２上から探索して、同一の点が検出された場合に対応付けを行う。或いは、距離画像取得部４０８は、赤外線画像５２４の画素の周辺のパターンを３次元形状測定パターン５２２上から探索し、最も類似度が高い部分と対応付けてもよい。Ｓ５０５で、距離画像取得部４０８は、赤外線パターン投射部３６１と赤外線カメラ３６２とを結ぶ直線を基線５２５として三角測量の原理を用いて計算を行うことにより、赤外線カメラ３６２からの距離を取得する。Ｓ５０４で対応付けができた画素については、赤外線カメラ３６２からの距離を算出して画素値として保存し、対応付けができなかった画素については、距離の計測ができなかった部分として無効値を保存する。これをＳ５０３で座標変換を行った赤外線画像５２４の全画素に対して行うことで、各画素に距離値が入った距離画像を生成する。
【００５０】
Ｓ５０６で、距離画像取得部４０８は、距離画像の各画素にＲＧＢ画像５２３のＲＧＢ値を保存することにより、１画素につきＲ、Ｇ、Ｂと、距離との４つの値を持つ距離画像を生成する。ここで、取得した距離画像は距離画像センサ２０８のＲＧＢカメラ３６３で定義された距離画像センサ座標系が基準となっている。そこで、Ｓ５０７で、距離画像取得部４０８は、図２（ｂ）を用いて上述したように、距離画像センサ座標系として得られた距離データを直交座標系における３次元点群に変換し、処理を終了する。以下では、特に言及しない限り、３次元点群と表記した場合は、直交座標系における３次元点群を示すものとする。
【００５１】
なお、本実施形態では、上述したように、距離画像センサ２０８として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、２つのＲＧＢカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するＴＯＦ（Ｔｉｍe  ｏｆ  Ｆｌｉｇｈｔ）方式など、他の計測方式を用いてもよい。
【００５２】
＜ジェスチャー検知処理＞
次に、図６Ａ及び図６Ｂを参照して、本実施形態に係るジェスチャー検知部４０９の処理手順を説明する。以下で説明する処理は、例えばコントローラ部２０１のＣＰＵ３０２がＲＯＭ３０４やＨＤＤ３０５に格納された制御プログラムをＲＡＭ３０３に読み出して実行することにより実現される。
【００５３】
Ｓ６０１で、ジェスチャー検知部４０９は、開始されると、初期化処理を実行する。当該初期化処理において、ジェスチャー検知部４０９は、距離画像取得部４０８から距離画像を１フレーム取得する。ここで、ジェスチャー検知部４０９の開始時は載置台２０４上に対象物が置かれていない状態であるため、ジェスチャー検知部４０９は、初期状態として載置台２０４の平面の認識を行う。より具体的には、ジェスチャー検知部４０９は、取得した距離画像から最も広い平面を抽出し、その位置と法線ベクトル（以下では、載置台２０４の平面パラメータと称する。）を算出し、ＲＡＭ３０３に保存する。
【００５４】
次に、Ｓ６０２で、ジェスチャー検知部４０９は、Ｓ６２１及びＳ６２２で示す、載置台２０４上に存在する物体の３次元点群を取得する処理を実行する。その際、Ｓ６２１で、ジェスチャー検知部４０９は、距離画像取得部４０８から距離画像と３次元点群を１フレーム取得する。続いて、Ｓ６２２で、ジェスチャー検知部４０９は、載置台２０４の平面パラメータを用いて、取得した３次元点群から載置台２０４を含む平面にある点群を除去する。
【００５５】
次に、Ｓ６０３で、ジェスチャー検知部４０９は、Ｓ６３１乃至Ｓ６３４で示す、取得した３次元点群から操作者の手の形状及び指先を検出する処理を実行する。ここで、図６Ｂに示す表示６２０、６３０、６４０も参照して、指先検出処理の方法を説明する。Ｓ６３１で、ジェスチャー検知部４０９は、Ｓ６０２で取得した３次元点群から、載置台２０４を含む平面から所定の高さ以上にある、肌色の３次元点群を抽出することで、ユーザの手の３次元点群を取得する。表示６２０の６６１は抽出した手の３次元点群を表している。
【００５６】
続いて、Ｓ６３２で、ジェスチャー検知部４０９は、抽出した手の３次元点群を載置台２０４の平面に射影した２次元画像を生成して、その手の外形を検出する。表示６２０の６６２は、抽出した手の３次元点群の各座標を、載置台２０４の平面パラメータを用いて載置台２０４の平面に投影した３次元点群を表している。また、表示６３０に示すように、投影した３次元点群から、ｘｙ座標の値だけを取り出せば、ｚ軸方向から見た２次元画像６６３として扱うことができる。このとき、手の３次元点群の各点が、載置台２０４の平面に投影した２次元画像の各座標のどれに対応するかを、記憶しておくものとする。
【００５７】
続いて、Ｓ６３３で、ジェスチャー検知部４０９は、検出した手の外形上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より小さい点を指先として検出する。表示６４０は、外形の曲率から指先を検出する方法を模式的に表したものである。６６４は、載置台２０４の平面に投影された２次元画像６６３の外形を表す点の一部を表している。ここで、６６４のような、外形を表す点のうち、隣り合う５個の点を含むように円を描くことを考える。円６６５、６６７が、その例である。この円を、全ての外形の点に対して順に描き、その直径（例えば６６６、６６８）が所定の値より小さい（曲率が小さい）ことを以て、指先とする。この例では隣り合う５個の点としたが、本発明を限定する意図はなく、その数を限定するものではない。また、ここでは曲率を用いたが、外形に対して楕円フィッティングを行うことで、指先を検出してもよい。
【００５８】
続いて、Ｓ６３４で、ジェスチャー検知部４０９は、検出した指先の個数及び各指先の座標を算出する。このとき、前述したように、載置台２０４に投影した２次元画像６６３の各点と、手の３次元点群の各点の対応関係を記憶しているため、各指先の３次元座標を得ることができる。今回は、３次元点群から２次元画像に投影した画像から指先を検出する方法を説明したが、指先検出の対象とする画像は、これに限定されるものではない。例えば、距離画像の背景差分や、ＲＧＢ画像の肌色領域から手の領域を抽出し、上に述べたのと同様の方法（外形の曲率計算等）で、手領域のうちの指先を検出してもよい。この場合、検出した指先の座標はＲＧＢ画像や距離画像といった２次元画像上の座標であるため、その座標における距離画像の距離情報を用いて、直交座標系の３次元座標に変換する必要がある。このとき、指先点となる外形上の点ではなく、指先を検出するときに用いた、曲率円の中心を指先点としてもよい。
【００５９】
次に、Ｓ６０４で、ジェスチャー検知部４０９は、Ｓ６４１乃至Ｓ６４６で示す、検出した手の形状及び指先からのジェスチャー判定処理を実行する。Ｓ６４１で、ジェスチャー検知部４０９は、Ｓ６０３で検出した指先が１つかどうか判定する。指先が１つでなければＳ６４６へ進み、ジェスチャー検知部４０９は、ジェスチャーなしと判定し、Ｓ６０５に進む。一方、Ｓ６４１で検出した指先が１つであればＳ６４２へ進み、ジェスチャー検知部４０９は、検出した指先と載置台２０４を含む平面との距離を算出する。続いて、Ｓ６４３で、ジェスチャー検知部４０９は、Ｓ６４２で算出した距離が微小な所定値以下であるかどうかを判定し、所定値以下であればＳ６４４へ進み、指先が載置台２０４へタッチした、タッチジェスチャーありと判定し、Ｓ６０５に進む。一方、所定値以下でなければＳ６４５へ進み、ジェスチャー検知部４０９は、指先が移動したジェスチャー（タッチはしていないが、指先が載置台２０４上に存在するジェスチャー）と判定し、Ｓ６０５に進む。
【００６０】
次に、Ｓ６０５で、ジェスチャー検知部４０９は、判定したジェスチャーをメイン制御部４０２へ通知し、Ｓ６０２へ処理を戻し、ジェスチャー検知処理を繰り返す。なお、ここでは一本指でのジェスチャー検知について説明を行ったが、複数の指又は複数の手でのジェスチャー検知に応用することも可能である。メイン制御部４０２は、通知されたジェスチャーと、載置台上に投影している選択表示とに基づいて、検出されたジェスチャーをユーザ入力として受け付ける。
【００６１】
＜物体検知部の処理＞
次に、図７を参照して、本実施形態に係る物体検知部４１０の処理手順を説明する。以下で説明する処理は、例えばコントローラ部２０１のＣＰＵ３０２がＲＯＭ３０４やＨＤＤ３０５に格納された制御プログラムをＲＡＭ３０３に読み出して実行することにより実現される。
【００６２】
図７（ａ）のＳ７０１で、物体検知部４１０は、処理を開始すると、Ｓ７１１〜Ｓ７１３に示す初期化処理を実行する。Ｓ７１１で、物体検知部４１０は、カメラ画像取得部４０７からカメラ画像を、距離画像取得部４０８から距離画像をそれぞれ１フレーム取得する。これらの画像は、それぞれカメラ画像取得部４０７及び距離画像取得部４０８によって撮影された載置台（書画台）２０４の画像、即ち、原稿が載置されていない状態の背景画像となる。Ｓ７１２で、物体検知部４１０は、取得したカメラ画像を前フレームカメラ画像としてＲＡＭ３０３又はＨＤＤ３０５に保存する。Ｓ７１３で、物体検知部４１０は、取得したカメラ画像及び距離画像を書画台カメラ画像及び書画台距離画像として、ＲＡＭ３０３又はＨＤＤ３０５にそれぞれ保存する。以下では、「書画台カメラ画像」及び「書画台距離画像」と記載した場合は、ここで取得した載置台２０４のカメラ画像及び距離画像のことを示す。
【００６３】
Ｓ７０２で、物体検知部４１０は、物体が載置台２０４上に置かれたことを検知する載置検知処理を実行する。処理の詳細は図７（ｂ）を用いて後述する。続いて、Ｓ７０３で、物体検知部４１０は、Ｓ７０２で載置を検知した載置台２０４上の物体が除去されることを検知する除去検知処理を実行し、処理を終了する。処理の詳細は図７（ｃ）を用いて後述する。
【００６４】
図７（ｂ）はＳ７０２の載置検知処理の詳細である。載置検知処理を開始すると、Ｓ７２１で、物体検知部４１０は、カメラ画像取得部４０７からカメラ画像を１フレーム取得する。続いて、Ｓ７２２で、物体検知部４１０は、取得したカメラ画像と書画台カメラ画像との差分を計算してその絶対値を合計した差分値（第１差分値）を算出する。Ｓ７２３で、物体検知部４１０は、算出した差分値（第１差分値）が予め決めておいた所定値以上かどうかを判定する。算出した差分値（第１差分値）が所定値未満であれば載置台２０４上には物体が無いと判断してＳ７２８へ進み、物体検知部４１０は、現フレームのカメラ画像を前フレームカメラ画像として保存してからＳ７２１へ戻って処理を続ける。
【００６５】
一方、Ｓ７２３で差分値（第１差分値）が所定値以上であればＳ７２４へ進み、物体検知部４１０は、Ｓ７２１で取得したカメラ画像と前フレームカメラ画像との差分値（第２差分値）を、Ｓ７２２と同様に算出する。続いて、Ｓ７２５で、物体検知部４１０は、算出した差分値（第２差分値）が予め決めておいた所定値以下であるかどうかを判定する。Ｓ７２５で算出した差分値（第２差分値）が所定値よりも大きければ載置台２０４上の物体が動いていると判断し、Ｓ７２８へ進んで現フレームのカメラ画像を前フレームカメラ画像として保存してから、Ｓ７２１へ戻り処理を続ける。
【００６６】
一方、Ｓ７２５で算出した差分値（第２差分値）が所定値以下であればＳ７２６へ進む。Ｓ７２６で、物体検知部４１０は、Ｓ７２５が連続してＹＥＳとなった回数から、差分値（第２差分値）が所定値以下、即ち、載置台２０４上の物体が静止した状態が予め決めておいたフレーム数続いたかどうかを判定する。Ｓ７２６で載置台２０４上の物体が静止した状態が予め決めておいたフレーム数続いていないと判定すると、Ｓ７２８へ進み、物体検知部４１０は、現フレームのカメラ画像を前フレームカメラ画像として保存し、Ｓ７２１へ戻って処理を続ける。一方、Ｓ７２６で載置台２０４上の物体が静止した状態が予め決めておいたフレーム数続いたと判定すると、Ｓ７２７へ進み、物体検知部４１０は、物体が置かれたことをメイン制御部４０２へ通知し、載置検知処理を終了する。
【００６７】
図７（ｃ）はＳ７０３の除去検知処理の詳細フローチャートである。除去検知処理を開始すると、Ｓ７３１で、物体検知部４１０は、カメラ画像取得部４０７からカメラ画像を１フレーム取得する。続いて、Ｓ７３２で、物体検知部４１０は、取得したカメラ画像と書画台カメラ画像との差分値を算出する。続いて、Ｓ７３３で、物体検知部４１０は、算出した差分値が予め決めておいた所定値以下かどうかを判定する。Ｓ７３３で算出した差分値が予め決めておいた所定値よりも大きければ載置台２０４上にまだ物体が存在するため、Ｓ７３１へ戻って処理を続ける。一方、Ｓ７３３で算出した差分値が予め決めておいた所定値以下であれば載置台２０４上の物体が無くなったと判断し、物体検知部４１０は、物体が除去されたことをメイン制御部４０２へ通知し、除去検知処理を終了する。
【００６８】
＜メイン制御部の説明＞
次に、図８乃至図１２を参照して、メイン制御部４０２が実行する大判原稿スキャン処理について説明する。処理の流れを説明する前に、本実施形態における課題を再度説明する。
【００６９】
大判原稿スキャンでは、撮影領域に収まりきらない大きな原稿をスキャンする。そのため、原稿を動かしながら何度も撮影し、撮影領域で切り取られた部分画像を結合して１枚のスキャン結果を得る（スティッチング）。原稿を動かす際は、ｎ番目の撮影とｎ＋１番目の撮影で部分的に重複して撮影する領域を設けておき、その領域内の画像の特徴点をマッチングすることにより、重複して撮影した領域を重ねることで結合する。
【００７０】
（スティッチング）
図１１に画像を結合する様子を模式的に表している。図１１（ａ）は、図面コンテンツを含む原稿８０２と、スキャン領域２０５の位置関係を表す。図１１（ｂ）は、図１１（ａ）の状態でスキャン領域２０５において切り取って撮影された部分画像１１０１を表している。部分画像１１０１中の黒丸は、画像中の特徴点を示している。同様に、図１１（ｃ）は、図１１（ａ）の状態から、原稿８０２を載置台２０４上で左に移動させた場合のスキャン領域２０５の位置を表している。図１１（ｄ）は、図１１（ｃ）の状態でスキャン領域２０５において切り取って撮影した部分画像１１０２である。図１１（ｆ）では、部分画像１１０１と部分画像１１０２中の特徴点を表す黒丸で対応する点を点線で結んでいる。この対応が見つかる領域は重複して撮影された領域である。特徴点の対応が見つかれば、図１１（ｅ）の結合画像１１０３のように、重複する領域を重ねて部分画像同士を結合することが可能である。これらの詳細な処理の方法は後述する。
【００７１】
図１２は、図１１とは異なる原稿１２０１を用いた場合において画像を結合する様子を模式的に表している。図１２（ａ）〜（ｄ）、（ｉ）は、図１１（ａ）〜（ｆ）にそれぞれ対応する様子を示す。図１２に示すように、原稿１２０１内の図面は繰り返しパターンを多く含んだ画像となる。例えば、スキャン領域２０５で切り取って撮影された部分画像１２０２中の領域１２０４に含まれるパターンは、同じ部分画像１２０２の領域１２０５に含まれるパターンと同じである。このような繰り返しパターンがある場合、原稿を移動させても、撮影領域内に、同じパターンが複数存在してしまうことがある。例えば、原稿１２０１を移動させた場合にスキャン領域２０５で切り取って撮影された部分画像１２０３中には、領域１２０４中のパターンと同じパターンが、領域１２０６、１２０７の両方に存在する。このような場合、画像処理を用いて重複する領域、つまり、領域１２０４と同じ特徴点のパターンを含む領域を一意に特定することが難しい。そのため、正確に結合画像を生成することができないという課題がある。
【００７２】
そこで、本実施形態では、画像処理で一意に特定可能な特徴点のパターンを原稿を動かすユーザの手を原稿と同時に撮影することによって生成する。図１２（ｅ）〜（ｈ）、（ｊ）が、その解決方法を模式的に表している。図１２（ｅ）は、手を入れて原稿１２０１を押さえた状態を表している。図１２（ｇ）は、手で押さえたままで（原稿と手の相対位置を変化させずに）原稿１２０１を移動させた状態を表している。手を入れることで、それぞれの部分画像１２０８、１２０９の間で、一意に対応する特徴点のペアを発見することが可能となる。その手順を以下に示す。
（１）手で原稿を押さえない状態で部分画像（第１部分画像）１２０２を撮影。
（２）原稿を動かさないように注意しつつ部分画像（第２部分画像）１２０８を撮影。
（３）手で原稿を押さえたまま原稿を動かし、移動後、手を入れたままで、部分画像（第４部分画像）１２０９を撮影。
（４）原稿を動かさないように注意しつつ、手をどけて部分画像（第３部分画像）１２０３を撮影。
上記順序で撮影した後、部分画像１２０８と１２０９の対応点群の位置関係を用いて、把握した位置関係で部分画像１２０２と１２０３を結合すれば、一意に部分画像を結合することが可能となる。以下で詳細な処理の流れを説明する。
【００７３】
（利用シーン）
図８は大判原稿スキャンシステム１０１の本実施形態における利用シーンについて説明する図である。原稿をスキャンしたいユーザ８０１は、まず、ＵＩ画面をジェスチャーによって操作して大判原稿スキャン処理を実行する。次に、図８（ａ）に示すように、ユーザ８０１は載置台２０４上に投影表示されたスキャン範囲を表すスキャン領域２０５に、図８（ｂ）に示すようなコンテンツを含んでいる原稿８０２の一部分がスキャン領域に入るように置き、スキャンを開始する。そして大判原稿スキャンシステムの投影表示に従って、スキャン領域２０５を原稿８０２の全領域が通り抜けるようにずらしていく。なお、以下の説明を簡単にするため、プロジェクタ２０７による投影可能範囲を表す投影領域８０３を破線で示すが、これは実際にはユーザ８０１に見えているものではない。また、図８（ｂ）の原稿８０２の横向きの端部（上端部及び下端部）を横方向端部８０４、縦向きの端部（左端部及び右端部）を縦方向端部８０５と称する。
【００７４】
（処理手順）
図９及び図１０を参照して、本実施形態に係る大判原稿スキャン処理の処理手順を説明する。図９は本実施形態におけるスキャンを実行する際のＵＩ表示とユーザ８０１の操作の様子の一例を示す。以下の説明では、ＵＩ画面はプロジェクタ２０７によって載置台２０４に投影されるものとして記述するが、ＬＣＤタッチパネル３３０や、その他の出力装置上に表示しても構わない。図１０は、本実施形態におけるメイン制御部４０２においてＣＰＵ３０２実行する大判原稿スキャン処理フローを示す。以下で説明する処理は、例えばコントローラ部２０１のＣＰＵ３０２がＲＯＭ３０４やＨＤＤ３０５に格納された制御プログラムをＲＡＭ３０３に読み出して実行することにより実現される。
【００７５】
Ｓ１００１で、ＣＰＵ３０２は、ユーザがスキャン開始ボタンを押下するのを待つ。図９（ａ）に、大判原稿スキャン処理の開始時におけるＵＩ画面の一例を示す。ＵＩ画面には操作指示メッセージ９０１、大判原稿スキャン機能の実行開始ボタン９０２、及び大判原稿スキャン機能の終了ボタン９０３がプロジェクタ２０７によって投影表示されている。また、以下の説明を簡単にするため、プロジェクタ２０７による投影領域８０３を破線で示す。ただし、投影領域８０３の破線はユーザ８０１に見えているものではない。
【００７６】
図９（ｂ）に示すように、ユーザがスキャン開始ボタンを押下するとＳ１００２に移行する。Ｓ１００２で、ＣＰＵ３０２は、前述の画像取得部４１６の処理を開始する。Ｓ１００３で、ＣＰＵ３０２は、ユーザに紙（原稿）を載置台２０４に載置するよう、指示する表示（指示情報）を行う。図９（ｃ）はユーザへ指示するための画面表示を表している。当該画面では、指示情報として、操作指示メッセージ９０１を更新するとともに、原稿を載置するためのスキャン領域２０５を投影表示する。ここで、スキャン領域２０５は、より広い範囲を撮影できるようカメラ部２０２を最も広角にしているが、撮影した原稿の解像度を上げるためズーム撮影するようにしてもよい。つまり、スキャン領域２０５のサイズはカメラのズームに応じてそのサイズが変更される。また、図９のスキャン領域２０５は投影領域８０３より小さい範囲として描写しているが、スキャン領域２０５が投影領域８０３と同じ大きさ、或いは、それ以上の大きさになるようなカメラ部２０２を選択してもよく、これに限るものではない。
【００７７】
ユーザ８０１は、図９（ｄ）に示すように、操作指示メッセージ９０１に従って、スキャン領域２０５に原稿８０２の左上が来るように原稿８０２を載置する。Ｓ１００４で、ＣＰＵ３０２は、静止検知処理を行う。静止検知処理は、図８（ｂ）で説明した、物体検知部４１０の載置検知処理により、メイン制御部に通知される。静止を検知した場合は、Ｓ１００５へ進み、検知しなかった場合は、Ｓ１００３へ戻る。図９（ｄ）には、特徴点中に繰り返しパターンを有さない原稿８０２が載置台２０４に載置された例を示す。
【００７８】
Ｓ１００５で、ＣＰＵ３０２は、カメラ部２０２を駆動してカメラ画像取得部４０７がスキャン領域２０５の画像を取得し、原稿の１番目の手を含まない部分画像としてＲＡＭ３０３に記録する。この１番目の手無し部分画像が画像の結合に用いる最初の画像である。なお、カメラ部２０２による撮影のタイミングは認識処理部４１７がスキャン領域２０５にユーザ８０１の手・腕が重なっていないと認識したタイミングが好ましい。続いて、Ｓ１００６で、ＣＰＵ３０２は、Ｓ１００５で取得したＮ＝１番目の手無し部分画像の特徴点を取得する。手無し部分画像とは、撮影領域（スキャン領域２０５）内にユーザの手が入っていない状態で撮影した原稿の部分画像のことである。一方、手が入っている状態で撮影した部分画像を、手有部分画像と称する。
【００７９】
次に、Ｓ１００７で、ＣＰＵ３０２は、Ｎ番目の手無し部分画像（Ｎ＝１以上の整数）の特徴点中に繰り返しのパターンがあるか否かを判定する。即ち、ここでは、Ｓ１００６で取得した特徴点が、複数の部分画像を結合するのに有効な特徴点であるか否かを判定している。Ｎ＞１の手無し部分画像に関しては、後述のＳ１０２５Ａで取得する。ここで、Ｎ番目の手無し部分画像を、ＩＮ（Ｎ＝１，２，・・・）と表すことにする。上述したように、図１１に示す原稿８０２では特徴点の繰り返しパターンが存在せず、図１２に示す原稿１２０１には特徴点の繰り返しパターンが存在する。従って、ＣＰＵ３０２は、原稿８０２の場合は繰り返しパターンが存在しないと判断してＳ１０１９Ａに進み、原稿１２０１の場合は繰り返しパターンが存在すると判断してＳ１００８に進む。このような繰り返しパターンの検出には、上述した非特許文献１のような既存技術を用いればよい。また、繰り返しパターンの有無は、ユーザインターフェイスを通じて手動で設定するようにしてもよい。
【００８０】
繰り返しパターンが存在する場合、Ｓ１００８で、ＣＰＵ３０２は、ユーザに対し、スキャン領域２０５内に手を入れて静止するよう指示する表示を行う。図９（ｅ）は、原稿１２０１上にユーザが手を置くべき位置を重畳投影している様子を模式的に表している。ここで、ユーザは、投影された手の表示部分に自身の手を置いて静止させる。このとき、手を表示する位置は、原稿をユーザから見て左向きに送って動かしていく場合は右側に、右向きに動かす場合は左側に表示するようにする。また、下側に動かす場合は上に、上側に動かす場合は下に表示する。より具体的な表示位置は、スキャン領域２０５の大きさにも依存するが、例えば右に表示する場合は、スキャン領域２０５を縦に三等分した一番右側に表示するようにすればよい。
【００８１】
ここで、原稿をどちら向きに動かすべきかの判断方法について説明する。上記Ｓ１００３において、ユーザに対し、紙の左上の角をスキャン領域２０５内に入れるように指示するため、最初の移動指示では紙をユーザから見て左側又は上に移動させることになる。ここでは左に移動させるものとする。なお、ＣＰＵ３０２は、取得した毎回の部分画像に対して、端部、及び、隅のエッジ検出を行う。原稿のエッジ検出については、公知の技術であるためここでの詳細な説明は割愛するが、これにより原稿の上端部や右端部などの４辺と、左下隅などの４隅をそれぞれ検出できる。また、ここでの検出結果はスキャン終了時まで保持しておくこととする。
【００８２】
図９（ｆ）は、原稿に対して、スキャン領域２０５をどのように移動させればよいかを模式的に表している。丸印１〜９がスキャン領域２０５の中心に来るように原稿を移動すれば、原稿の全体を網羅して撮影することができる。従って、ユーザは、丸印１〜９を繋ぐ矢印の向きの逆向きに原稿を移動させればよい。また、左上の隅が検出されたときは下へ、左下の隅が検出された場合は左へ、右下の隅が検出された場合は右へ動かすルールにしておけばよい。さらに、全ての隅が検出された時点で全領域をスキャンできたものと判断してもよい。
【００８３】
図１０の説明に戻る。Ｓ１００９で、ＣＰＵ３０２は、前ステップで指定した位置に手が静止したかどうかを検知する。図９（ｇ）は、ユーザが指定の位置に手を入れて静止している様子を表している。ユーザの手が指定の位置に入って静止したかどうかは、前述の静止検知処理と、ジェスチャー検知部４０９のイベント情報を用いて検知することができる。ここで、手の静止を検知した場合はＳ１０１０へ進み、検知しなかった場合はＳ１００８へ戻る。
【００８４】
Ｓ１０１０乃至Ｓ１０１５の処理において、原稿の移動量を表すホモグラフィ変換行列を求めていく。Ｓ１０１０で、ＣＰＵ３０２は、手を含めたスキャン領域２０５の画像をＭ＝１番目の手有部分画像として、ＲＡＭ３０３へ保存する。図１２（ｆ）の部分画像１２０８は、手有部分画像を模式的に表している。部分画像１２０８中の黒丸は、手の特徴点を表している。ここで、手を含む部分画像を、部分画像ＩＨ，Ｍ（Ｍ番目：Ｍ＝１、２、・・・）と表現する。ここで記録する画像は大判原稿スキャン処理において初めて記録する、手を含む部分画像であるため、Ｍ＝１の部分画像ＩＨ，１となる。
【００８５】
次に、Ｓ１０１１で、ＣＰＵ３０２は、図９（ｈ）のように、ユーザに対し、原稿の移動量と、原稿を手で押さえたまま所定方向に移動する旨のメッセージを通知する。図９（ｈ）では、移動後に手があるべき位置に手形画像９１０と、どちら向き（移動方向）にどれくらい（移動距離）原稿を動かせばよいかを示すガイド表示９１１を表示している。ガイド表示は現在のユーザの手の位置、手を動かす向きの矢印、どこまで動かせばよいかを示す目印、の三つで構成されている。手形画像の表示位置は、原稿をユーザから見て右から左に動かしてほしい場合は、例えばスキャン領域２０５を縦に三等分した左側に表示するようにすればよい。
【００８６】
Ｓ１０１２〜Ｓ１０１６において、ＣＰＵ３０２は、Ｍ＝１番目からＭ番目（現在）の部分画像への移動量を表すホモグラフィ変換行列を逐次更新する。また同時に、カメラ画像取得部４０７の画像を毎フレーム処理し、ガイド表示の追従処理を行う。これにより、図９（ｈ）→図９（ｉ）→図９（ｊ）の順で、手と原稿の移動に追従してガイド表示を逐次更新し、ユーザがどこまで原稿を動かせばよいかという情報を適切にフィードバックすることが可能となる。
【００８７】
まず、Ｓ１０１２で、ＣＰＵ３０２は、カメラ画像取得部４０７からＭ番目（現在）の手有部分画像を１フレーム取得する。続いて、Ｓ１０１３で、ＣＰＵ３０２は、Ｓ１０１０で取得した１番目の手有部分画像１２０８（部分画像ＩＨ，１）とＭ番目（現在）の手有部分画像（部分画像ＩＨ，Ｍ）の特徴点マッチングを行う。特徴点マッチングとは、例えば部分画像１２０８と、最新の部分画像間で、対応する特徴点群を発見する処理を示す。特徴点及び対応点検出方法としては、照明の変化や回転、拡大縮小に比較的強い耐性をもつ特徴量算出手法であるＳＩＦＴやＯＲＢなど、様々な方法が提案されているため、ここでの詳細説明は割愛する。ここで図１２（ｇ）及び図１２（ｈ）は、移動中乃至移動後の原稿１２０１の様子とその時の部分画像１２０９を表している。図１２（ｊ）の部分画像１２０８と部分画像１２０９の特徴点を表す黒丸同士を結ぶ点線は、特徴点マッチングを行った結果を模式的に表している。ただし、簡単のため全ての特徴点間を点線でつないではいない。
【００８８】
次に、Ｓ１０１４で、ＣＰＵ３０２は、前述の対応する特徴点群同士を用いて、ホモグラフィ変換行列を算出し、現在の部分画像に紐づけてＲＡＭ３０３上に記録する。
【００８９】
ここで、ＲＡＭ３０３に記録した部分画像ＩＨ，１の対応点群（Ｘ１、Ｙ１）を部分画像ＩＨ，Ｍ対応点群（ＸＭ、ＹＭ）にホモグラフィ変換するホモグラフィ変換行列ＨＭは、（４）式で表される。
【００９０】
【数４】
2019146127.tif 000006
【００９１】
上記（４）式をホモグラフィ変換行列ＨＭについて解くことで、ホモグラフィ変換行列ＨＭを算出する。
【００９２】
次に、Ｓ１０１５で、ＣＰＵ３０２は、ホモグラフィ変換行列ＨＭを用いてガイド表示を変更する。Ｍ＝１ときの現在の手の位置を表す線の座標に、Ｍのとき（現在）のホモグラフィ変換行列ＨＭをかけ、現在の手の位置を表す線の座標を算出する。この座標を元に現在の手の位置を表す線を描画し、移動先の目印となる線と新たな矢印で結ぶことで、毎フレームガイド表示を更新することが可能となる。
【００９３】
Ｓ１０１６で、ＣＰＵ３０２は、静止検知処理を実行する。処理の内容は、Ｓ１００４及びＳ１００９と同様であるため、詳細は割愛する。静止を検知した場合は、Ｓ１０１７へ移行し、検知しなかった場合はＳ１０１２に戻る。以上のＳ１０１２〜Ｓ１０１６を繰り返し、ガイド表示をユーザの手と原稿の動きに合わせて追従するように変更することが可能になる。
【００９４】
Ｓ１０１７で、ＣＰＵ３０２は、操作指示メッセージ９０１の領域に、ユーザに対し手を取り除くよう指示する表示を行う。続いて、Ｓ１０１８で、ＣＰＵ３０２は、ユーザの手が取り除かれたかどうかを判定する。この判定は、物体検知部４１０とジェスチャー検知部４０９により判断することが可能である。手が取り除かれた場合は、Ｓ１０２５Ａへ移行し、取り除かれていない場合は、Ｓ１０１７へ戻る。
【００９５】
Ｓ１０１９Ａ〜Ｓ１０２４の処理は、Ｓ１０１１〜Ｓ１０１６までの処理の手が存在しない場合の処理であり、それぞれのステップは対応している。Ｓ１０１１〜Ｓ１０１６は手を用いてランダムな特徴点を作り出した後の処理であったのに対し、Ｓ１０１９Ａ〜Ｓ１０２４はもともとランダムな特徴点が存在する場合の処理である。そのため、新たに特記する内容がないので、詳細な説明は割愛する。
【００９６】
Ｓ１０２５Ａで、ＣＰＵ３０２は、カメラ画像取得部４０７から、手が取り除かれたあとの現在の部分画像、即ち、Ｎ番目の手無し部分画像ＩＮ（Ｎ＞１の整数）を取得する。続いて、Ｓ１０２５Ｂで、ＣＰＵ３０２は、Ｓ１０１０〜Ｓ１０１５のループ又はＳ１０１９Ａ〜Ｓ１０２３の最後のホモグラフィ変換行列であるＨＭを、部分画像ＩＮに対応するホモグラフィ変換行列ＨＮとして、対応付けてＲＡＭ３０３に保存する。なぜならば、１番目の手有部分画像ＩＨ，１とＭ番目の手有部分画像ＩＨ，Ｍの移動量を表すホモグラフィ変換行列は、そのまま、Ｎ−１番目の手無し部分画像ＩＮ−１とＮ番目の手無し部分画像ＩＮの移動量を表すからである。この対応付けにより、Ｎが隣り合う手無し部分画像同士の移動量が明らかになり、Ｓ１０２７で後述するスティッチング処理で、全ての手無し部分画像を繋ぎ合わせることが可能となる。
【００９７】
次に、Ｓ１０２６で、ＣＰＵ３０２は、スキャン終了ボタン９０５が押下されたかどうかを確認する。押下された場合はＳ１０２７へ移行し、押下されなかった場合はＳ１００７へ処理を戻す。このループで原稿の移動ごとに撮影を繰り返す作業が可能となる。また、ここではスキャン終了ボタン９０５をユーザに押下させるようにしたが、前述した原稿の四隅を全てスキャンし終えたことをもって、自動でスキャンを終了するようにしてもよい。
【００９８】
Ｓ１０２７で、ＣＰＵ３０２は、Ｓ１０２５でＲＡＭ３０３に保存した部分画像とホモグラフィ変換行列の組を用いてスティッチング処理（各画像同士の結合処理）を実行する。スティッチング処理はＯｐｅｎＣＶ等の画像処理オープンソースにも実装されている公知技術であるため、詳細な説明は割愛する。Ｎ−１番目とＮ番目（Ｎ＞２）の結合画像は、例えば図１１（ｂ）の１１０１をＮ−１番目の画像、図１１（ｄ）の１１０２をＮ番目の画像とすると、Ｎ−１番目とＮ番目の画像の結合結果は、図１１（ｅ）の画像１１０３のようになる。
【００９９】
Ｓ１０２８で、ＣＰＵ３０２は、図９（ｋ）のようにスティッチング結果の表示９０７を行う。Ｓ１０２９で、ＣＰＵ３０２は、ユーザが大判原稿のスキャン終了ボタン９０５を押下したかどうかを確認する。ここでボタンが押下された場合は、スキャン結果を保存する画面（不図示）に画面遷移し、ユーザ指定の領域に結果を保存した後、メイン制御部４０２の処理を終了する。やり直しボタン９０８が押下された場合はスキャン結果を破棄し、Ｓ１００１へ戻る。
【０１００】
以上説明したように、本実施形態に係る画像読取装置は、載置台に載置された原稿を複数の部分画像に分けて撮影し、撮影した前記複数の部分画像を結合する。具体的には、本画像読取装置は、載置台上での原稿の操作をユーザに指示する指示情報を投影し、載置台上に載置された原稿を撮影して部分画像を取得し、当該部分画像に、他の部分画像と結合するのに有効な特徴点が存在するか否かを判定する。また、本画像読取装置は、有効な特徴点が存在しないと判定されると、ユーザに対して原稿上に手を置くように指示する指示情報を原稿上に投影し、原稿上に置かれたユーザの手を含む原稿の画像を取得して、有効な特徴点を生成する。これにより、大判原稿に繰り返しパターンが多く含まれなど、結合に有効な特徴点が存在しない場合において、正しく結合を行い、大判原稿をスキャンすることが可能になる。即ち、本実施形態によれば、結合に有効な特徴点が少ない画像や繰り返しパターンを多く含む画像であっても、ユーザの操作性を損なわずに、結合に有効な特徴点を生成する。
【０１０１】
また、本発明は上記実施形態に限らず様々な変形が可能である。上記実施形態では、コンテンツ中に繰り返しパターンが多く含まれる場合を例にして説明してきたが、特徴点が取得できないような画像の場合でも同様の課題が発生する。具体的には、余白が多い原稿や、グラデーションが多い原稿などである。この場合は、特徴点自体が存在しない。そのため、上記処理と全く同じ方法で解決することが可能である。図１０のフローチャートで言えば、Ｓ１００７で、部分画像中に特徴点の繰り返しパターンがあるかないかを判断する代わりに、部分画像中に特徴点が存在するかどうかを調べればよい。所定の閾値以下の特徴点しか見つからなかった場合は、Ｓ１００８へ移行し、所定値より多く特徴点が見つかった場合は、Ｓ１０１９へ移行するようにすればよい。
【０１０２】
さらに、手の特徴点を使う場合、手の形状は立体的で、更に移動中に載置台に対して若干上下する可能性もあるため、原稿の移動の前後で、取得される特徴点の位置が正確に対応しない可能性がある。この場合を考慮して、Ｓ１０１３で手の指先の特徴点のみを特徴点マッチングに用いるようにしてもよい。なぜなら指先は、常に原稿と接触しているからである。その場合、指先を原稿から離さないようにする旨をメッセージ表示してもよい。指先の検出は、前述のジェスチャー検知部４０９で検知可能である。
【０１０３】
また、繰り返しパターンが含まれる原稿の場合に限られるが、手の輪郭の周りの原稿上に特徴点がある場合は、それをマッチングに用いてもよい。
【０１０４】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０５】
１０１：大判原稿スキャンシステム、２０４：載置台、４０２：メイン制御部、４０７：カメラ画像取得部、４０８：距離画像取得部、４１１：大判原稿スキャン部
【図１】
2019146127.tif 000007
【図２】
2019146127.tif 000008
【図３】
2019146127.tif 000009
【図４】
2019146127.tif 000010
【図５】
2019146127.tif 000011
【図６Ａ】
2019146127.tif 000012
【図６Ｂ】
2019146127.tif 000013
【図７】
2019146127.tif 000014
【図８】
2019146127.tif 000015
【図９】
2019146127.tif 000016
【図１０】
2019146127.tif 000017
【図１１】
2019146127.tif 000018
【図１２】
2019146127.tif 000019