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