(57)【要約】【課題】ユーザが原稿の浮きに対して適切な押さえ方を容易に把握することできる画像読取装置、その制御方法、並びにプログラムを提供する。【解決手段】カメラスキャナ１００は、書画台２０４の読み取り領域２０５に載置される原稿２０６の撮像画像を生成するカメラ部と、書画台２０４の方向に向けられる赤外線パターン投射部３６１及び赤外線カメラ３６２を用いて原稿２０６の距離画像を取得する距離画像センサ部２０８とを備える。取得した距離画像を用いて検出された原稿２０６の浮き領域の浮きの種類が浮き領域の重心の原稿２０６における位置に応じて特定され、特定された浮きの種類に応じたユーザの手による前記原稿の押さえ方がガイド表示される。【選択図】  図７
2018207342.tif 000002
【特許請求の範囲】
【請求項１】
載置部の読み取り領域に載置される原稿の撮像画像を生成する撮像部を有する画像読取装置において、
前記載置部の方向に向けられる赤外線投射部及び赤外線読取部を用いて前記載置される原稿の距離画像を取得する第１の取得手段と、
前記取得した距離画像を用いて前記原稿の浮き領域を検出する第１の検出手段と、
前記検出された浮き領域の浮きの種類を前記浮き領域の重心の前記原稿における位置に応じて特定する特定手段と、
前記特定された浮きの種類に応じたユーザの手による前記原稿の押さえ方をガイド表示する表示手段とを備えることを特徴とする画像読取装置。
【請求項２】
ユーザの手領域の状態を取得する取得手段と、
前記取得された手領域の状態に応じて前記ガイド表示する必要があるかないかを決定する第１の決定手段とをさらに備え、
前記第１の決定手段により前記ガイド表示する必要があると決定された場合、前記ガイド表示された前記原稿の押さえ方がされた状態で、予め設定された時間以上、前記ユーザの手が静止していることが検知されたときに、前記撮像部による前記原稿の撮像画像の生成を開始することを特徴とする請求項１記載の画像読取装置。
【請求項３】
前記読み取り領域における前記ユーザの手領域の座標を取得する第２の取得手段と、
前記第１の決定手段により前記ガイド表示する必要がないと決定された場合、前記第２の取得手段で取得した座標に基づき、前記原稿が前記ユーザの両手で押さえられているか否かを判定する判定手段とをさらに備え、
前記判定手段が前記原稿が前記ユーザの両手で押さえられていないと判定した場合、前記撮像部による前記原稿の撮像画像の生成を開始するためのボタンを予め定めた位置に表示し、前記判定手段が前記原稿が前記ユーザの両手で押さえられていると判定した場合、前記ボタンの表示位置を前記第２の取得手段で取得した座標に基づいて変更することを特徴とする請求項２記載の画像読取装置。
【請求項４】
前記第１の検出手段が前記原稿の浮き領域を２つより多く検出した場合、前記検出された浮き領域のそれぞれに含まれるコンテンツの有無及び浮きの大きさに基づき、前記ガイド表示すべき浮き領域として選択される優先度を決定する第２の決定手段をさらに備えることを特徴とする請求項１乃至３のいずれか１項に記載の画像読取装置。
【請求項５】
前記画像読取装置に対する前記ユーザの位置を検出する第２の検出手段をさらに備え、
前記表示手段は、前記第２の検出手段により検出された位置に応じて、前記ガイド表示することを特徴とする請求項１乃至４のいずれか１項に記載の画像読取装置。
【請求項６】
載置部の読み取り領域に載置される原稿の撮像画像を生成する撮像部を有する画像読取装置の制御方法において、
前記載置部の方向に向けられる赤外線投射部及び赤外線読取部を用いて前記載置される原稿の距離画像を取得する第１の取得ステップと、
前記取得した距離画像を用いて前記原稿の浮き領域を検出する第１の検出ステップと、
前記検出された浮き領域の浮きの種類を前記浮き領域の重心の前記原稿における位置に応じて特定する特定ステップと、
前記特定された浮きの種類に応じたユーザの手による前記原稿の押さえ方をガイド表示する表示ステップとを有することを特徴とする制御方法。
【請求項７】
請求項６記載の制御方法を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置、その制御方法、並びにプログラムに関し、特に、カメラスキャナで原稿を読み取る画像読取装置、その制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、載置台に載せられたＡ４用紙のような一枚の紙（以降、原稿と表現する）や書籍等を下向きに置いてそれらの画像のスキャンを行うフラットベット型スキャナが知られている。フラットベット型スキャナで書籍の見開きページをスキャンする際、書籍の綴じ部付近が載置台から浮き上がる場合がある。この場合、スキャンにより得られた画像データは、綴じ部付近の画像が暗くなったり、歪んだり、ぼけたりし、品質が十分でなくなる。これを防ぐため、ユーザは原稿カバーの上から載置台に対して書籍を押さえ付けてスキャンするか、書籍を載置台に対して直接手で押さえ付けながらスキャンすることが考えられる。
【０００３】
特許文献１では、上述のように書籍の綴じ部付近が載置台から浮き上がった状態でスキャンが行われた場合、得られたスキャンデータに基づいて、書籍の載置台から浮いた部分（以下「浮き部分」という）の位置が判断され、その位置がユーザに通知される。これにより、ユーザが書籍の浮き部分の位置を知り、書籍の適切な押さえ方を容易に把握することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１６０８９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、スタンド型スキャナ（カメラスキャナ）のように、書画台に原稿を上向きに置き、書画台上方に配置されたカメラにより撮像し、原稿をスキャンする場合は考慮されていない。
【０００６】
例えば、スタンド型スキャナで原稿を読み取る際、フラットベット型スキャナと異なり、原稿を原稿カバーで押さえることはできないため、原稿の辺や角が載置台から浮き上がることがある。このような浮き部分の位置は特許文献１の技術では判断することができない。
【０００７】
さらには、スタンド型スキャナを用いた場合のスキャンは、フラットベット型スキャナを用いた場合と異なり、ユーザの影や照明などに影響を受けやすいため、エッジベースの四辺検出手法を用いることによって原稿や書籍のページ領域のみが切り出される。このように、スキャン時、エッジベースの四辺検出手法で原稿の四辺を切り出す際、原稿のみを過不足なく抽出するためには、ユーザは原稿のエッジがなるべく手や指で隠れないように押さえる必要がある。一方、特許文献１は、フラットベット型スキャナを用いた場合のスキャンに関する技術であり、このような四辺検出手法を考慮した原稿の浮きに対する適切な押さえ方をユーザに提供することはできない。
【０００８】
このような課題を鑑みて本発明は、ユーザが原稿の浮きに対して適切な押さえ方を容易に把握することできる画像読取装置、その制御方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の請求項１に係る画像読取装置は、載置部の読み取り領域に載置される原稿の撮像画像を生成する撮像部を有する画像読取装置において、前記載置部の方向に向けられる赤外線投射部及び赤外線読取部を用いて前記載置される原稿の距離画像を取得する第１の取得手段と、前記取得した距離画像を用いて前記原稿の浮き領域を検出する第１の検出手段と、前記検出された浮き領域の浮きの種類を前記浮き領域の重心の前記原稿における位置に応じて特定する特定手段と、前記特定された浮きの種類に応じたユーザの手による前記原稿の押さえ方をガイド表示する表示手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ユーザが原稿の浮きに対して適切な押さえ方を容易に把握することできる。
【図面の簡単な説明】
【００１１】
【図１】実施例１に係る画像読取装置としてのカメラスキャナの構成を概略的に示す図である。
【図２】カメラスキャナのコントローラ部のハードウェア構成を示す図である。
【図３】カメラスキャナの制御用プログラムの機能構成を示す図である。
【図４】図３の制御用プログラムの各機能が行う処理の流れを示す図である。
【図５】図３の制御用プログラムの機能の１つであるメイン制御部が実行するスキャン処理の手順を示すフローチャートである。
【図６】図３の制御用プログラムの機能の１つであるユーザインターフェイス部を介してプロジェクタにより投射される画面を示す図である。
【図７】実施例１におけるガイド表示処理の手順を示すフローチャートである。
【図８】浮き領域を検出する処理を説明するための図である。
【図９】浮きの種類を特定する処理を説明するための図である。
【図１０】図１におけるプロジェクタにより投射される、書画台上に角が浮いた原稿を置いた場合の原稿の押さえ方を表示する画像を示す図である。
【図１１】実施例２におけるガイド表示処理の手順を示すフローチャートである。
【図１２】実施例２における、複数の浮き領域が検出された場合に、検出された各浮き領域に対して優先度を付与する方法を説明するための図である。
【図１３】カメラスキャナとユーザの位置関係を説明するための図である。
【図１４】実施例３におけるガイド表示処理の手順を示すフローチャートである。
【図１５】実施例１における角が浮いた原稿の押さえ方の表示例を示す図である。
【図１６】図１５の続きである。
【図１７】実施例１における辺が浮いた原稿の押さえ方の表示例を示す図である。
【図１８】実施例１における中央が浮いた原稿の押さえ方の表示例を示す図である。
【図１９】図５のステップＳ５４３のスキャン開始判定処理の手順を示すフローチャートである。
【図２０】実施例３における辺が浮いた原稿の押さえ方の表示例を示す図である。
【図２１】図２０の続きである。
【図２２】実施例３における中央が浮いた原稿の押さえ方の表示例を示す図である。
【図２３】実施例３における中央が浮いた原稿の押さえ方の表示例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための最良の形態について図面を参照して説明する。
【００１３】
（実施例１）
図１は、本実施例に係る画像読取装置としてのカメラスキャナ１００の構成例を示す図である。
【００１４】
図１（ａ）に示すように、カメラスキャナ１００は、コントローラ部２０１、カメラ部（撮像部）２０２、腕部２０３、短焦点プロジェクタ（以下、単に「プロジェクタ」という）２０７、距離画像センサ部（第１の取得手段）２０８を含む。カメラスキャナ１００の本体であるコントローラ部２０１、撮像画像を生成するカメラ部２０２、画像を投射するプロジェクタ２０７、及び撮像して距離画像を生成する距離画像センサ部２０８は、腕部２０３により連結されている。腕部２０３は関節を用いて曲げ伸ばしが可能である。
【００１５】
図１（ａ）には、カメラスキャナ１００の前方（図１（ａ）手前）に設置されている書画台（載置部）２０４も示している。カメラ部２０２及び距離画像センサ部２０８のレンズは書画台２０４方向に向けられており、書画台２０４にある破線で囲まれた読み取り領域２０５内の画像を読み取り可能である。図１（ａ）では、原稿２０６は読み取り領域２０５内に載置されているので、カメラスキャナ１００はその画像を読み取り可能である。また、書画台２０４内にはターンテーブル２０９が設けられている。ターンテーブル２０９はコントローラ部２０１からの指示によって回転することが可能であり、ターンテーブル２０９上に載置される原稿等の物体は、カメラ部２０２に対する向きを変えることができる。
【００１６】
カメラ部２０２は単一解像度で読み取り領域２０５内の画像を撮像するものとしてもよいが、高解像度画像の撮像と低解像度画像の撮像が可能なものとすることが好ましい。
【００１７】
なお、図１に示されていないが、後述する図２に示すように、カメラスキャナ１００は、ＬＣＤタッチパネル３３０及びスピーカ３４０をさらに含むこともできる。
【００１８】
図１（ｂ）は、カメラスキャナ１００における座標系について表している。カメラスキャナ１００では、カメラ部２０２、距離画像センサ部２０８、及びプロジェクタ２０７のそれぞれに対して、カメラ座標系、距離画像座標系、及びプロジェクタ座標系という座標系が定義される。これらはカメラ部２０２及び距離画像センサ部２０８のＲＧＢカメラ３６３が撮像する画像平面、あるいはプロジェクタ２０７が投射する画像平面をＸＹ平面とし、画像平面に直交した方向をＺ方向として定義したものである。さらに、これらの独立した座標系の３次元データを統一的に扱えるようにするために、書画台２０４を含む平面をＸＹ平面とし、このＸＹ平面から上方に垂直な向きをＺ軸とする直交座標系を定義する。
【００１９】
座標系を変換する場合の例として、図１（ｃ）に直交座標系と、カメラ部２０２を中心としたカメラ座標系を用いて表現された空間と、カメラ部２０２が撮像する画像平面との関係を示す。直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］は、（１）式によって、カメラ座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換できる。
【００２０】
【数１】
2018207342.tif 000003
【００２１】
ここで、Ｒｃ及びｔｃは、直交座標系に対するカメラの姿勢（回転）と位置（並進）によって求まる外部パラメータによって構成され、Ｒｃを３×３の回転行列、ｔｃを並進ベクトルと呼ぶ。逆に、カメラ座標系で定義された３次元点は（２）式によって、直交座標系への変換することができる。
【００２２】
【数２】
2018207342.tif 000004
【００２３】
さらに、カメラ部２０２で撮影される２次元のカメラ画像平面は、カメラ部２０２によって３次元空間中の３次元情報が２次元情報に変換されたものである。すなわち、カメラ座標系上での３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］を、（３）式によってカメラ画像平面での２次元座標ｐｃ［ｘｐ，ｙｐ］に透視投影変換することによって変換することが出来る。
【００２４】
【数３】
2018207342.tif 000005
【００２５】
ここで、Ａは、カメラ部２０２の内部パラメータと呼ばれ、焦点距離と画像中心などで表現される３×３の行列である。
【００２６】
以上のように、（１）式と（３）式を用いることで、直交座標系で表された３次元点群を、カメラ座標系での３次元点群座標やカメラ画像平面に変換することが出来る。なお、カメラ部２０２、距離画像センサ部２０８、及びプロジェクタ２０７のそれぞれの内部パラメータ及び直交座標系に対する位置姿勢（外部パラメータ）は、公知のキャリブレーション手法によりあらかじめキャリブレーションされているものとする。以後、特に断りがなく３次元点群と表記した場合は、直交座標系における３次元データを表しているものとする。
【００２７】
図２は、カメラスキャナ１００のコントローラ部２０１及び距離画像センサ部２０８のハードウェア構成を示す図である。
【００２８】
図２に示すように、コントローラ部２０１は、システムバス３０１に接続されたＣＰＵ３０２、ＲＡＭ３０３、ＲＯＭ３０４、ハードディスクドライブ（以下、「ＨＤＤ」という）３０５、ネットワークＩ／Ｆ３０６を備える。さらに、コントローラ部２０１には、画像処理プロセッサ３０７、カメラＩ／Ｆ３０８、ディスプレイコントローラ３０９、シリアルＩ／Ｆ３１０、オーディオコントローラ３１１、及びＵＳＢコントローラ３１２が含まれる。
【００２９】
ＣＰＵ３０２はコントローラ部２０１全体の動作を制御する中央演算装置である。ＲＡＭ３０３は揮発性メモリである。ＲＯＭ３０４は不揮発性メモリであり、ＣＰＵ３０２の起動用プログラムが格納されている。ＨＤＤ３０５はＲＡＭ３０３と比較して大容量なメモリである。ＨＤＤ３０５にはコントローラ部２０１の実行する、カメラスキャナ１００の制御用プログラムが格納されている。
【００３０】
ＣＰＵ３０２は電源ＯＮ等の起動時、ＲＯＭ３０４に格納されている起動用プログラムを実行する。この起動用プログラムは、ＨＤＤ３０５に格納されている制御用プログラムを読み出し、ＲＡＭ３０３上に展開するためのものである。ＣＰＵ３０２は起動用プログラムを実行すると、続けてＲＡＭ３０３上に展開した制御用プログラムを実行し、コントローラ部２０１全体の動作の制御を行う。また、ＣＰＵ３０２は制御用プログラムを実行する際に用いるデータもＲＡＭ３０３上に格納して読み書きを行う。ＨＤＤ３０５上にはさらに、制御用プログラムを実行する際に必要な各種設定や、また、カメラ部２０２で生成された撮像画像を格納することができ、ＣＰＵ３０２によって読み書きされる。
【００３１】
画像処理プロセッサ３０７はＨＤＤ３０５上に格納された撮像画像を読み出して処理し、またＨＤＤ３０５上へ書き戻す。なお、画像処理プロセッサ３０７が実行する画像処理は、回転、変倍、色変換等である。
【００３２】
カメラＩ／Ｆ３０８はカメラ部２０２及び距離画像センサ部２０８と接続され、ＣＰＵ３０２からの指示に応じてカメラ部２０２から撮像画像を、距離画像センサ部２０８から距離画像を取得してＲＡＭ３０３へ書き込む。また、ＣＰＵ３０２からの制御コマンドをカメラ部２０２及び距離画像センサ部２０８へ送信し、カメラ部２０２及び距離画像センサ部２０８の設定を行う。
【００３３】
コントローラ部２０１は、ディスプレイコントローラ３０９、シリアルＩ／Ｆ３１０、オーディオコントローラ３１１、及びＵＳＢコントローラ３１２をさらに備える。
【００３４】
ディスプレイコントローラ３０９はＣＰＵ３０２の指示に応じてディスプレイ（表示手段）への画像表示を制御する。本実施例では、ディスプレイコントローラ３０９はプロジェクタ２０７及びＬＣＤタッチパネル３３０に接続されているため、制御されるディスプレイは、プロジェクタ２０７による投射面やＬＣＤタッチパネル３３０の画面となる。尚、本実施例は、ディスプレイが少なくとも一つあればよいため、カメラスキャナ１００にＬＣＤタッチパネル３３０は接続されない構成であってもよく、その場合はディスプレイコントローラ３０９はプロジェクタ２０７のみと接続される。
【００３５】
シリアルＩ／Ｆ３１０はシリアル信号の入出力を行う。ここでは、シリアルＩ／Ｆ３１０はターンテーブル２０９に接続され、ＣＰＵ３０２の回転開始・終了及び回転角度の指示をターンテーブル２０９へ送信する。また、シリアルＩ／Ｆ３１０はＬＣＤタッチパネル３３０に接続され、ＣＰＵ３０２はＬＣＤタッチパネル３３０が押下されたときに、シリアルＩ／Ｆ３１０を介して押下された座標を取得する。尚、ターンテーブル２０９は手動で回転させることもできる。
【００３６】
オーディオコントローラ３１１はスピーカ３４０に接続され、ＣＰＵ３０２の指示に応じて音声データをアナログ音声信号に変換し、スピーカ３４０を通じて音声を出力する。尚、本実施例は、カメラスキャナ１００にスピーカ３４０は接続されない構成であってもよく、その場合はオーディオコントローラ３１１をコントローラ部２０１に設けなくてもよい。
【００３７】
ＵＳＢコントローラ３１２はＣＰＵ３０２の指示に応じて外付けのＵＳＢデバイスの制御を行う。ここでは、ＵＳＢコントローラ３１２はＵＳＢメモリやＳＤカードなどの外部メモリ３５０に接続され、外部メモリ３５０へのデータの読み書きを行う。
【００３８】
距離画像センサ部２０８は、書画台２０４の方向に向けられる赤外線パターン投射部（赤外線投射部）３６１、赤外線カメラ(赤外線読取部）３６２、及びＲＧＢカメラ３６３を備える。
【００３９】
赤外線パターン投射部３６１は、書画台２０４又は書画台２０４に載置される原稿等の対象物に対し赤外線パターンを投射する。赤外線カメラ３６２は書画台２０４又は対象物上で反射した赤外線パターンを撮像することにより書画台２０４又は対象物の距離画像を生成し、カメラＩ／Ｆ３０８を介して距離画像取得部４０８に出力する。
【００４０】
ＲＧＢカメラ３６３は、後述する図１４のステップＳ１４００においてカメラスキャナ１００に対するユーザの位置を取得すべく、書画台２０４及びその近傍を撮像する人物検出用のカメラである。
【００４１】
図３は、カメラスキャナ１００の制御用プログラムの機能構成４０１を示す図である。また、図４は、図３の制御用プログラムの各機能が行う処理の流れを示す図である。カメラスキャナ１００の制御用プログラムは前述のようにＨＤＤ３０５に格納され、ＣＰＵ３０２が起動時にＲＡＭ３０３上に展開して実行する。
【００４２】
画像取得部４１６は画像入力処理を行うモジュールであり、カメラ画像取得部４０７、距離画像取得部４０８から構成される。カメラ画像取得部４０７はカメラＩ／Ｆ３０８を介してカメラ部２０２が出力する撮像画像を取得し、ＲＡＭ３０３へ格納する。距離画像取得部４０８はカメラＩ／Ｆ３０８を介して距離画像センサ部２０８が出力する距離画像を取得し、ＲＡＭ３０３へ格納する。
【００４３】
認識処理部４１７はカメラ画像取得部４０７が取得する撮像画像及び距離画像取得部４０８が取得する距離画像から書画台２０４上の物体の動きを検知して認識するモジュールであり、ジェスチャ認識部４０９、物体検知部４１０から構成される。ジェスチャ認識部４０９は、画像取得部４１６から書画台２０４上の画像を取得し続け、タッチなどのジェスチャを検知するとメイン制御部４０２へ通知する。物体検知部４１０は、メイン制御部４０２から図４に示す物体載置待ち処理あるいは物体除去待ち処理の通知を受けると起動し、画像取得部４１６からカメラ部２０２による書画台２０４の撮像画像を取得する。取得した撮像画像から、書画台２０４上に物体が置かれて静止する（載置された）ことを検知した場合、その旨を通知する物体載置通知をメイン制御部４０２に行う。また、取得した撮像画像から、書画台２０４から物体が取り除かれた（除去された）ことを検知した場合、その旨を通知する物体除去通知をメイン制御部４０２に行う。尚、物体載置待ち処理、及び物体除去待ち処理については図５において詳述する。
【００４４】
スキャン処理部４１８は実際に対象物のスキャンを行うモジュールであり、平面原稿画像撮影部４１１、書籍画像撮影部４１２、立体形状測定部４１３、浮き領域検出部（第１の検出手段・特定手段）４１９、コンテンツ有無判定部４２０から構成される。
【００４５】
平面原稿画像撮影部４１１は平面原稿、書籍画像撮影部４１２は書籍、立体形状測定部４１３は立体物に、それぞれ適した処理を実行し、それぞれに応じた形式のスキャンデータを出力する。
【００４６】
浮き領域検出部４１９は、スキャン時における原稿の書画台２０４からの浮きの種類を特定し、浮きの種類に合わせたガイド表示方法を判定する。コンテンツ有無判定部４２０は指定された撮像画像における指定された領域にコンテンツが存在するか否かの判定を行う。コンテンツ有無判定は、以下のように行う。まず、指定された撮像画像の指定された領域以外の領域をマスクする。続いてキャニー法によるエッジ検出を行う。続いてエッジとして検出された画素数の、指定された領域の画素数に対する割合を調べ、それが所定値より大きい場合、コンテンツが存在すると判定し、所定値より小さい場合コンテンツが存在しないと判定する。
【００４７】
なお、コンテンツの対象を文字のみと限定してもよい、その場合、公知の属性判定技術を適用し、指定された領域に文字が含まれればコンテンツが存在すると判定する。もし、指定された領域に文字が含まれず、絵・図形等のみが含まれる場合はコンテンツが存在しないと判断する。このように、コンテンツの対象を文字のみに絞ることにより、視認性の低下を容認しつつ、ＯＣＲの精度低下を防ぐことができる。
【００４８】
ユーザインターフェイス部４０３は、ＧＵＩ部品生成表示部４１４と投射領域検出部４１５から構成される。ＧＵＩ部品生成表示部４１４は、メイン制御部４０２からの要求を受け、メッセージやボタン等のＧＵＩ部品を生成する。そして、表示部４０６へ生成したＧＵＩ部品の表示を要求する。なお、書画台２０４上のＧＵＩ部品の表示場所は、投射領域検出部４１５により検出される。
【００４９】
表示部４０６はディスプレイコントローラ３０９を介して、プロジェクタ２０７もしくはＬＣＤタッチパネル３３０へ要求されたＧＵＩ部品の表示を行う。プロジェクタ２０７は書画台２０４に向けて設置されているため、書画台２０４上にＧＵＩ部品を投射することが可能となっている。
【００５０】
また、ユーザインターフェイス部４０３は、ジェスチャ認識部４０９が認識したタッチ等のジェスチャ操作、あるいはシリアルＩ／Ｆ３１０を介したＬＣＤタッチパネル３３０からの入力操作、そしてさらにそれらの座標を受信する。そして、ユーザインターフェイス部４０３は描画中の操作画面の内容と操作座標を対応させて操作内容（押下されたボタン等）を判定する。この操作内容をメイン制御部４０２へ通知することにより、ユーザの操作を受け付ける。
【００５１】
ネットワーク通信部４０４は、ネットワークＩ／Ｆ３０６を介して、ネットワーク１０４上の他の機器とＴＣＰ／ＩＰによる通信を行う。
【００５２】
データ管理部４０５は、制御用プログラムの実行において生成した作業データなど様々なデータをＨＤＤ３０５上の所定の領域へ保存し、管理する。例えば平面原稿画像撮影部４１１、書籍画像撮影部４１２、立体形状測定部４１３が生成したスキャンデータなどである。
【００５３】
距離画像取得部４０８、ジェスチャ認識部４０９、物体検知部４１０、平面原稿画像撮影部４１１、書籍画像撮影部４１２、及び立体形状測定部４１３における処理は従来技術である。例えば“特開２０１５−２１２８９２”に記載される処理が行なわれる。このため詳細な処理については省略する。
【００５４】
次に、図５のフローチャートを用いてメイン制御部４０２が実行するスキャン処理について説明する。
【００５５】
図５において、まず、メイン制御部４０２は書画台２０４にスキャンの対象物が載置されるのを待つ物体載置待ち処理を行う（ステップＳ５０１）。
【００５６】
この対象物載置待ち処理は具体的には、まず、ステップＳ５１１において、ユーザインターフェイス部４０３を介して、書画台２０４にプロジェクタ２０７によって図６（ａ）の初期画面を投射する。図６（ａ）の初期画面では、書画台２０４上に対象物を置くことをユーザに促すメッセージ６０１を投射する。
【００５７】
次に、ステップＳ５１２で物体載置待ち処理の通知を行うことにより物体検知部４１０を起動し、ステップＳ５１３では、物体検知部４１０からの物体載置通知を待つ。物体検知部４１０が物体載置をメイン制御部４０２へ通知すると、ステップＳ５１３において物体載置通知ありと判断し、物体載置待ち処理を終了する。
【００５８】
ステップＳ５０１の物体載置待ち処理を終了すると、メイン制御部４０２は続いてステップＳ５０２のスキャン実行処理を行う。
【００５９】
このスキャン実行処理は具体的には、まず、ステップＳ５３１において、図６（ｂ）に示すスキャン開始画面を、ユーザインターフェイス部４０３を介して書画台２０４に投射する。図６（ｂ）において、対象物６１１がユーザによって載置されたスキャン対象物体である。２Ｄスキャンボタン６１２は平面原稿の撮影指示を受け付けるボタンである。ブックスキャンボタン６１３は書籍原稿の撮影指示を受け付けるボタンである。３Ｄスキャンボタン６１４は立体形状の測定指示を受け付けるボタンである。スキャン開始ボタン６１５は選択したスキャンの実行開始指示を受け付けるボタンである。
【００６０】
ユーザインターフェイス部４０３は、前述したようにジェスチャ認識部４０９から通知されるタッチジェスチャの座標とこれらのボタンを表示している座標から、図６（ｂ）に示すいずれかのボタンがユーザによって押下されたことを検知する。以降、ユーザインターフェイス部４０３による検知の説明を省略して「ボタンへのタッチを検知する」と記載する。また、ユーザインターフェイス部４０３は、２Ｄスキャンボタン６１２、ブックスキャンボタン６１３、及び３Ｄスキャンボタン６１４のそれぞれを排他的に選択できるようにしている。ユーザのいずれかのボタンへのタッチを検知すると、タッチされたボタンを選択状態とし、他のボタンの選択を解除する。
【００６１】
次にステップＳ５３９では、ユーザに対する浮きの生じた原稿の押さえ方のガイド表示あり・なしを決定する。
【００６２】
このステップＳ５３９ではまず、ジェスチャ認識部４０９はユーザの手領域の状態を取得する。ここでの手領域の状態の取得は例えば“特開２０１５−２１２８９２”に記載される手の３次元点群及び指先の検出処理の結果を用いればよく、従来技術であるため詳細な処理については省略する。
【００６３】
次に、取得されたユーザの手領域の状態から、メイン制御部４０２は原稿が既にユーザの手によって押さえられている状態であるかを判定する。本実施例では、例えば取得した手の３次元点群や指先検出結果の３次元座標Ｚ値が、書画台２０４から所定の閾値以内にある場合に、原稿がユーザの手によって押さえられている状態であると判定される。
【００６４】
原稿が既にユーザの手によって押さえられていると判定された場合、ユーザに押さえ方をガイド表示する必要がないために、ガイド表示なしと決定し、ステップＳ５４０に進む。一方、原稿はまだユーザの手によって押さえられていないと判定された場合、さらに、原稿に浮きが生じているかを判定する。本実施例では、例えば書画台２０４上の３次元点群の座標Ｚ値が所定の閾値以内である場合に原稿に浮きが生じていると判定される。
【００６５】
上記判定の結果、原稿に浮きが生じていると判定された場合、ガイド表示ありと決定し、ステップＳ５４０に進む。原稿に浮きが無いと判定された場合には、ユーザに原稿を押さえさせる必要がないために、ガイド表示なしと決定して、ステップＳ５４０に進む。尚、予めユーザがガイド表示なしの設定を行っていた場合など、上記各種判定をせずともガイド表示なしと決定しえるような場合、ステップＳ５３９において上記各種判定を行うことなくガイド表示なしと決定してステップＳ５４０に進んでもよい。
【００６６】
次にステップＳ５４０ではガイド表示ありと決定されているかを判定する。この判定の結果、ガイド表示なしと決定されている場合にはガイド表示を行わずステップＳ５４３のスキャン開始判定処理に進む。一方、ステップＳ５４０でガイド表示ありと決定されている場合にはステップＳ５４１のガイド表示処理を実行する。尚、図６（ｂ）の３Ｄスキャンボタン６１４が選択された場合など、物体の種類からガイド表示が不要であると予め判別可能な場合がある。この場合は、ステップＳ５４０でガイド表示ありと決定されている場合であっても、ステップＳ５４１のガイド表示処理を実行せずステップＳ５４３のスキャン開始判定処理に進んでも良い。
【００６７】
浮き領域検出部４１９が行うステップＳ５４１のガイド表示処理の詳細については図７のフローチャートと図８を用いて説明する。図８は浮き領域を検出する処理を説明するための図である。図８（ａ）は浮きのない原稿である。図８（ｂ）は角が浮いている原稿である。図８（ｃ）は辺が浮いている原稿である。図８（ｄ）は中央が浮いている原稿である。
【００６８】
図７（ａ）のステップＳ７００において、距離画像取得部４０８によって距離画像を取得する。例えば図８（ａ）から図８（ｄ）の原稿８００，８０１，８０２，８０３を書画台２０４にそれぞれ置いた場合、取得される距離画像はそれぞれ図８（ｅ）から図８（ｈ）の距離画像８０４，８０５，８０６，８０７となる。
【００６９】
続いてステップＳ７０１において、ステップＳ７００で得た距離画像を用いて浮き領域を検出する。浮き領域の検出は以下のようにして行う。まず、ステップＳ７００で得た距離画像と、事前に取得された書画台２０４に何も置かれていない状態の距離画像との差分画像を取得する。続いて差分画像において事前に決定した所定値を閾値とし、閾値以上の値を持つピクセルを特定し、ピクセルが連続している領域の外接矩形を検出する。検出された外接矩形を原稿における浮き領域とする。原稿の複数箇所に浮きがある場合、互いに隣接しない複数の外接矩形がそれぞれ浮き領域として検出される。
【００７０】
浮き領域の検出について、図８（ｆ）の角が浮いた原稿の距離画像８０５から図８（ｉ）の浮き領域８０８を検出するまでの具体例を、図９の浮きの種類を特定する処理を説明するための図を用いて説明する。
【００７１】
図９（ａ）は、図８（ｆ）の角が浮いた原稿の距離画像８０５における座標系を示す図である。距離画像８０５はＸＹ座標系で表され、画像サイズは６４０×４８０ピクセルである。図８（ｆ）の距離画像８０５に対してステップＳ７０１を実行すると、図９（ａ）のような浮き領域８０８が検出される。浮き領域８０８の座標は、領域の左上の座標から幅ｗ、高さｈの矩形で検出される。具体的には領域の左上の座標が（５００，４００）、幅５０、高さ５０の矩形として検出される。以上のように、図８（ｆ）の角が浮いた原稿の距離画像８０５から図８（ｉ）の浮き領域８０８を検出する。
【００７２】
同様に、図８（ｇ）、図８（ｈ）の距離画像８０６，８０７において、ステップＳ７０１でそれぞれ浮き領域を検出すると、図８（ｊ）、図８（ｋ）の浮き領域８０９，８１０，８１１が検出され、それぞれ浮き領域の座標と幅高が算出される。図８（ａ）のように原稿に浮きがない場合、図８（ｅ）に示す距離画像８０４から浮き領域は検出されない。また、図８（ｃ）のように原稿に複数の浮きがある場合、図８（ｇ）に示す距離画像から図８（ｊ）のように複数の浮き領域８０９，８１０が検出される。
【００７３】
次に、図７（ａ）のフローチャートに戻り、ステップＳ７０２において、浮きの種類を特定していない浮き領域を一つ取得する。次にステップＳ７０３において、ステップＳ７０２で取得した浮き領域における浮きの種類を特定する浮きの種類特定処理を行なう。この浮きの種類特定処理の詳細については図７（ｂ）を用いて説明する。
【００７４】
図７（ｂ）では、まず、ステップＳ７０９において、浮き領域における重心位置を特定する。重心位置は、浮き領域内で特に浮いている箇所を特定するために用いる。浮き領域の各画素の座標を(x,y)、浮き領域における全画素数をＭとすると、重心位置(X,Y)は以下の（４）式を用いて算出される。
【００７５】
【数４】
2018207342.tif 000006
【００７６】
重心位置によって浮き領域内で特に浮いている箇所を特定するため、重心位置を特定する際に用いる閾値は、ステップＳ７０１で用いた閾値よりも大きい閾値を用いるのが望ましい。
【００７７】
続いてステップＳ７１０において、浮き領域を複数の領域に分割する。例えば、浮き領域の幅高をそれぞれ３等分することによって、浮き領域を９つの領域に分割する。
【００７８】
次に、ステップＳ７１１において、重心が分割した領域の辺に含まれるか否か判定する。含まれる場合、ステップＳ７１５に進み、浮きの種類を辺として本処理を終了する。含まれない場合、ステップＳ７１２へ進む。
【００７９】
ステップＳ７１２において、重心が分割した領域の角に含まれるか否か判定する。含まれる場合、ステップＳ７１４に進み、浮きの種類を角として本処理を終了する。含まれない場合、ステップＳ７１３に進み、浮きの種類を中央として本処理を終了する。
【００８０】
この浮きの種類特定処理について、図８（ｉ）の浮き領域８０８から浮きの種類を特定するまでの具体例を、図９（ｂ）と図９（ｃ）を用いて説明する。
【００８１】
図９（ｂ）は、浮き領域８０８を示す図である。上述のステップＳ７０９の説明にある（４）式を用いることによって、重心位置が（ｘ、ｙ）＝（５４８，４４８）と算出されている。その後、上述のステップＳ７１０で説明したように、浮き領域８０８が複数の領域に分割される。図９（ｃ）では、浮き領域８０８を９つの領域に分割した例を示す。分割した領域はそれぞれ角、辺、中央に分類する。浮き領域８０８における重心位置は、分割した領域の内、右下の角の領域に含まれる。
【００８２】
続いてステップＳ７１１における重心が分割した領域の辺に含まれるか否かの判定が行われる。図９（ｃ）の場合、重心は分割した領域の辺に含まれていないため、ステップＳ７１２に進み、重心が分割した領域の角に含まれるか否かの判定が行われる。図９（ｃ）の場合、重心は分割した領域の角に含まれているため、ステップＳ７１４に進み、浮き領域８０８における浮きの種類は「角」と判定される。
【００８３】
以上のように、図８（ｉ）の浮き領域８０８から浮きの種類が特定される。
【００８４】
同様に、図８（ｊ），（ｋ）の浮き領域８０９，８１０，８１１は、図９（ｄ）と図９（ｅ）のようにそれぞれ領域が分割され、浮き領域８０９，８１０における浮きの種類は「辺」となる。また、浮き領域８１１の浮きの種類は「中央」となる。
【００８５】
ステップＳ７０８では全ての浮き領域に対して種類を特定したかを判定する。全ての浮き領域に対して種類を特定していないのであれば、ステップＳ７０２に戻る。全ての浮き領域に対して特定した場合はステップＳ７１６に進む。
【００８６】
ステップＳ７１６では、ステップＳ７０３で特定した浮きの種類に従って、浮きの種類を修正する。例えば図８（ｌ）の原稿８１２のように原稿中央部に折れが生じているような原稿であると、図８（ｍ），（ｎ）のように距離画像８１３と、複数の浮き領域８１４，８１５が得られる。ここで、浮き領域８１４，８１５であるが、ステップＳ７０３の浮き特定処理では中央が浮いた状態として判定される。しかしながら、図８（ｌ）のような浮きが生じている原稿の場合、その中央部分が押さえられるのではなく、原稿の辺を引き延ばすように押さえられることが望ましい。そのために、ステップＳ７１６では、全ての浮き領域の浮きの種類の特定結果から、修正が必要な種類の組み合わせが存在しないかを確認し、浮きの種類について修正する処理を実行する。修正方法についてであるが、例えば浮き領域８１４，８１５のように浮きの種類が中央である領域が連続して生じているかなどを判定し、連続して生じている場合には辺の押さえ方として修正するなどしても良い。また、ここでの修正については種類についてだけでなく押さえる座標についても修正しても良い。当然浮きの種類の修正については上記に限定されるものでなく、複数の浮きの種類や座標に基づいて修正できれば良い。
【００８７】
ステップＳ７１７においてガイド表示されていない浮き領域を一つ取得し、ステップＳ７０４に進む。ステップＳ７０４において、ステップＳ７０７で取得した浮き領域における浮きの種類を判定する。浮きの種類が辺である場合、ステップＳ７０５に進む。浮きの種類が角である場合、ステップＳ７０６に進む。浮きの種類が中央である場合、ステップＳ７０７に進む。
【００８８】
ステップＳ７０５において、辺を指で押さえるために適切な押さえ方をプロジェクタ２０７によって書画台２０４に表示し、その後ステップＳ７１８に進む。ステップＳ７０６において、角を指で押さえるために適切な押さえ方をプロジェクタ２０７によって書画台２０４に表示し、その後ステップＳ７１８に進む。ステップＳ７０７において、中央を指で押さえるために適切な押さえ方をプロジェクタ２０７によって書画台２０４に表示し、その後ステップＳ７１８に進む。
【００８９】
以下、原稿の押さえ方の表示について、図１０を用いて説明する。
【００９０】
図１０は、プロジェクタ２０７により投射される、書画台２０４上に図８（ｂ）の角が浮いた原稿８０１を置いた場合の原稿の押さえ方を表示する画像を示す図である。
【００９１】
書画台２０４は、ＸＹ座標系で左上を原点として幅６４０、高さ４８０とする。書画台２０４の幅や高さはこの値に限定せず、別の値を用いてもよい。押さえ方の表示例として、メッセージ１０００やアイコン１００１を表示する。メッセージ１０００は、原稿８０１の角の辺りを隠さないよう促す文言を書画台２０４の上側に表示する。メッセージ１０００の表示位置はこれに限定せず、例えば書画台２０４の下側や左側、右側等でもよい。またアイコン１００１は、ユーザが実際の押さえ方をイメージしやすい指アイコンである。この指アイコンは、浮き領域の位置に応じて、右手を示す指アイコンと左手を示す指アイコンの一方に切替えて表示してもよい。例えば図１０では、原稿８０１の右下の角が浮いているため、右手の指アイコンを表示する。
【００９２】
アイコン１００１の表示位置は図１０のように、ステップＳ７０９で求めた重心位置に、アイコン１００１の表示範囲を示す点線の矩形の頂点が一致するように表示する。アイコン１００１の表示位置はこれに限定せず、例えば重心位置から所定距離以上離れた位置に表示したり、浮き領域の近辺に表示したりしてもよい。また、アイコン１００１が指アイコンの場合、その表示範囲を示す点線の矩形内における指アイコンの指先部分の座標を予め取得し、指先部分の座標と重心位置が一致するように表示してもよい。以上のように、本実施例では、書画台２０４に置かれた原稿８０１に対して押さえ方が表示される。
【００９３】
原稿の角や辺、中央がそれぞれ浮いた場合の表示のバリエーションについて、図１５から図１８を用いて説明する。図１５、図１６は角が浮いた原稿に対する押さえ方の表示の一覧を示す図である。図１７は辺が浮いた原稿に対する押さえ方の表示の一覧を示す図である。図１８は中央が浮いた原稿に対する押さえ方の表示の一覧を示す図である。
【００９４】
図１５（ａ）から図１５（ｄ）は、原稿の角のうち１箇所だけが浮いている場合の表示例を示す図である。図１５（ａ），（ｃ）のように、浮き領域が左側にある場合は、左手を示す指アイコンをアイコン１００１として表示し、図１５（ｂ）、（ｄ）のように、浮き猟奇が右側にある場合は、右手を示す指アイコンをアイコン１００１として表示するように切替える。また、重心位置に指アイコンで示す指先部分が一致するようにそれぞれアイコン１００１を表示する。
【００９５】
図１６（ｅ）〜（ｊ）は、原稿の角のうち２箇所が浮いている場合の表示例を示す図である。この場合浮き領域は複数検出されるため、浮き領域毎にそれぞれアイコン１００１が、角が１箇所だけが浮いている場合と同様の処理で表示される。例えば、図１６（ｇ）のように、原稿の左上と左下の２箇所の角で浮き領域が検出された場合、左上の角に左手の指アイコンであるアイコン１００１ａ、左下の角に右手の指アイコンであるアイコン１００１ｂを表示する。また、図１６（ｈ）のように、原稿の右上と右下の２箇所の角で浮き領域が検出された場合、右上の角に右手の指アイコンであるアイコン１００１ｂ、右下の角に左手の指アイコンであるアイコン１００１ａを表示する。このように原稿に対する押さえ方を表示することで、ユーザの影が原稿にかかることを防止し、エッジベースの四辺検出手法で確実に原稿の四辺を切り出すことができる。
【００９６】
図１７（ａ）〜（ｄ）は、原稿の辺のうち１箇所だけが浮いている場合の表示例を示す図である。図１７（ａ）〜（ｄ）は、浮いている辺に含まれる２箇所の角も浮いている場合にプロジェクタ２０７で投射される画面であり、図１６（ｅ）〜（ｈ）と同様のメッセージ１０００及びアイコン１００１ａ，１００１ｂが表示される。また、指アイコンであるアイコン１００１ａ，１００１ｂのそれぞれの指先部分の表示位置は、点線で示す浮き領域の短辺の近傍とする。
【００９７】
図１７（ｅ），（ｆ）は、原稿の辺のうち２箇所が浮いている場合の表示例を示す図である。図１７（ｅ）のように原稿の左右両側の辺が浮いている場合、浮いている辺のそれぞれの中央を押さえるよう促すメッセージ１０００とアイコン１００１ａ，１００１ｂを表示する。図１７（ｆ）のように原稿の上下両側の辺が浮いている場合、ユーザの位置からは押さえづらいため、原稿を９０度回転後、浮いている辺のそれぞれの中央を押さえるよう促すメッセージ１０００を表示する。その際のアイコン１００１ａ，１００１ｂは、図１７（ｆ）に示すように、ターンテーブル２０９をユーザが回転させやすい位置である、浮き領域から所定以上離れた、書画台２０４の辺に近い位置にそれぞれ表示することが好ましい。
【００９８】
図１８（ａ）〜（ｃ）は、原稿の中央が浮いている場合の表示例を示す図である。図１８（ａ）のように原稿の中央が縦長に浮いている場合、原稿を伸ばしながら辺の中央を押さえるよう促すメッセージ１０００を表示する。また、図１８（ｂ）のように原稿を９０度回転後、辺の中央を押さえるよう促すメッセージ１０００を表示してもよい。図１７（ｆ）と同様、その際のアイコン１００１ａ，１００１ｂは、浮き領域から所定以上離れた、書画台２０４の辺に近い位置にそれぞれ表示する。図１８（ｃ）のように原稿の中央が横長に浮いている場合、辺の中央を押さえるよう促すメッセージ１０００を表示する。指アイコンであるアイコン１００１ａ，１００１ｂのそれぞれの指先部分の表示位置は、点線で示す浮き領域の短辺の近傍とする。
【００９９】
図７に戻り、ステップＳ７１８では全ての浮き領域についてガイド表示をしたかを判定する。この判定の結果、全ての浮き領域についてガイド表示が終了していない場合、ステップＳ７１７に戻る。一方、全ての浮き領域についてガイド表示を終了した場合、ステップＳ５４１のガイド表示処理を終了する。
【０１００】
次に、図５のステップＳ５４３に進み、スキャン開始判定処理を実行する。このメイン制御部４０２が実行するスキャン開始判定処理の詳細を図１９のフローチャートに示す。
【０１０１】
まず、ステップＳ１９００でユーザの手領域の状態を取得する。ユーザの手領域の状態の取得方法については、ステップＳ１７０１と同じであるために詳細な説明は省略する。
【０１０２】
次にステップＳ１９０１でステップＳ５３９でガイド表示ありと決定されたかを判定する。ステップＳ５３９でガイド表示なしと決定されたと判定した場合には、ステップＳ１９０７〜Ｓ１９１０，Ｓ１９０６の、ユーザがスキャン開始ボタン６１５を押した場合にスキャンを開始する手動スキャン処理を実行する。ここで、図６（ｄ）に示すようにユーザが両手６１７で原稿を押さえているような場合には、ユーザはスキャン開始ボタン６１５をタッチすることができない。そのために、ステップＳ１９０７からの処理ではユーザの手領域の状態に応じてスキャン開始ボタン６１５の表示位置を変更する。
【０１０３】
具体的には、ステップＳ１９０７で、ステップＳ１９００で取得したユーザの手領域の状態から原稿が両手で押さえられた状態であるかを判定する。例えば、ジェスチャ認識部４０９から通知される手領域の個数が二つ以上であり、且つそれぞれの手領域における指先検出結果の３次元座標Ｚ値が書画台２０４から所定の閾値以内にある場合、原稿が両手で押さえられた状態であると判定する。ステップＳ１９０７で原稿が両手で押さえられていると判定した場合、ステップＳ１９０８に進み、ユーザの手領域の座標に従って、スキャン開始ボタン６１５の表示位置を変更する。表示位置の変更については、例えば図６（ｅ）に示すように右手の手領域のうち、３次元座標Ｘ値が最も小さい位置６１８から、所定のオフセットをかけた位置をスキャン開始ボタン６１５の表示位置に変更すれば良い。ここで、表示位置の変更方法については上記に限定するものではなく、ユーザの手の位置に従ってユーザがスキャン開始ボタン６１５に対してタッチしやすい位置にスキャン開始ボタン６１５の表示位置を変更できれば良い。
【０１０４】
一方、ステップＳ１９０７で、ユーザの両手で原稿が押さえられていない状態であると判定した場合には、ステップＳ１９０９に進み、図６（ｂ）のように予め定めた座標にスキャン開始ボタン６１５を表示する。
【０１０５】
次にステップＳ１９１０ではユーザがスキャン開始ボタン６１５へタッチしたかを検知する。ここで、スキャン開始ボタン６１５に対してのタッチが検知された場合、ステップＳ１９０６に進みスキャン開始と判定し、本処理を終了する。一方、ステップＳ１９１０でタッチが検出されなかった場合には、スキャン開始しないと判定し、そのまま本処理を終了する。
【０１０６】
ステップＳ１９０１に戻って、ステップＳ５３９でガイド表示ありと決定されたと判定した場合には、ステップＳ１９０２に進み、自動スキャンを実行するか否か判定する。例えば、この判定は、自動スキャンを行うかを予めユーザに設定させておき、その設定結果を用いて行われる。ステップＳ１９０２で自動スキャンを行わないと判定した場合、ステップＳ１９０７からの上記手動スキャン処理を実行する。一方、自動スキャンを行うと判定した場合には、ステップＳ１９０４に進み、ステップＳ１９００で取得されたユーザの手領域に基づき、ガイド（例えば、図１５（ａ）のアイコン１００１）に合わせてユーザの手が配置されたか否かを判定する。例えば、ステップＳ１９００で得られたユーザの手領域とアイコン１００１とのＸ、Ｙ座標の差分値が閾値以内である場合、ガイドに合わせてユーザの手が配置されたと判定される。
【０１０７】
ここでガイドに合わせてユーザの手が正しく配置された事を示すために、アイコン１００１やメッセージ１０００の表示変更を行ってもよい。例えば、正しく配置された場合に、図１５（ａ）のアイコン１００１の色を変更することなどが例として挙げられるが、ユーザが自分の手を正しく配置したか否かがわかるような表示変更であれば、かかる例に限定されない。
【０１０８】
ステップＳ１９０４でガイドに合わせてユーザの手が配置されないと判定した場合は自動スキャンを開始せず、そのまま本処理を終了する。一方、ステップＳ１９０４でガイドに合わせてユーザの手が配置されたと判定した場合はステップＳ１９０５に進み、所定の秒数、ユーザの手が静止したままであるか否かを検知する。例えば、物体検知部４１０の物体裁置検知処理で記述した手段を用いてこの検知は行われる。尚、ステップＳ１９０５は、予め設定された時間以上ユーザの手が静止したままであるか否か検知できればよく、その時間は特に限定されるものではない。
【０１０９】
ステップＳ１９０５で所定の秒数以上静止していると検知した場合は、ステップＳ１９０６に進み、スキャン開始と判定し、本処理を終了する。尚、このスキャン開始の判定がされた後、図６（ｂ）に示すような、２Ｄスキャンボタン６１２、ブックスキャンボタン６１３、及び３Ｄスキャンボタン６１４のそれぞれが排他的に選択できる形で、プロジェクタ２０７により書画台２０４に表示される。
【０１１０】
一方、ステップＳ１９０５で所定の秒数静止しなかったと検知した場合は、自動スキャンを開始せず、そのまま本処理を終了する。
【０１１１】
ステップＳ５４４では、上記図１９に示すステップＳ５４３のスキャン開始判定処理の結果から、スキャン開始と判定されなかった場合にはステップＳ５４０に戻る。一方、スキャン開始と判定された場合はステップＳ５３３に進む。
【０１１２】
ステップＳ５３３で２Ｄスキャンボタン６１２が選択状態であればステップＳ５３４へ進んで平面原稿画像撮影部４１１がスキャンデータを出力して、スキャン実行処理を終了する。ステップＳ５３３で２Ｄスキャンボタン６１２が選択状態でなければステップＳ５３５へ進んでブックスキャンボタン６１３が選択状態かどうかを判定する。ステップＳ５３５でブックスキャンボタン６１３が選択状態であればステップＳ５３４へ進んで書籍画像撮影部４１２がスキャンデータを出力して、スキャン実行処理を終了する。ステップＳ５３５でブックスキャンボタン６１３が選択状態で無ければステップＳ５３７へ進んで３Ｄスキャンボタン６１４が選択状態かどうかを判定する。ステップＳ５３７で３Ｄスキャンボタン６１４が選択状態であればステップＳ５３８へ進んで立体形状測定部４１３がスキャンデータを出力して、スキャン実行処理を終了する。ステップＳ５３７で３Ｄスキャンボタン６１４が選択状態で無ければ２Ｄスキャンボタン６１２、ブックスキャンボタン６１３、及び３Ｄスキャンボタン６１４のいずれも選択状態でないということである。そこで、ステップＳ５４３へ戻り、いずれかのボタンが選択状態になってからスキャン開始ボタン６１５へのタッチを検知するのを待つ。
【０１１３】
尚、本実施例では、ユーザが原稿を両手で押さえつつステップＳ１９０８で位置変更されたスキャン開始ボタン６１５を押下する場合や、図１６（ｅ）のようなガイド表示に従ってユーザが両手で原稿を押さえている状態で自動スキャンが行われる場合がある。このような場合、その後、２Ｄスキャンボタン６１２、ブックスキャンボタン６１３、及び３Ｄスキャンボタン６１４のいずれかをユーザが手で押下することにより選択することは困難である。よって、このような場合は、ステップＳ１９０８で変更されたスキャン開始ボタン６１５の位置に（不図示の）選択ボタンを表示すると共に、２Ｄスキャンボタン６１２、ブックスキャンボタン６１３、及び３Ｄスキャンボタン６１４を順次点滅させる。ユーザは選択したいボタンの点滅中に選択ボタンをタッチすることで、２Ｄスキャンボタン６１２、ブックスキャンボタン６１３、及び３Ｄスキャンボタン６１４のいずれかを選択状態とする。
【０１１４】
ステップＳ５０２のスキャン実行処理を終了すると、メイン制御部４０２は続いてステップＳ５０３の物体除去待ち処理を行う。
【０１１５】
この物体除去待ち処理は具体的には、まず、ステップＳ５２１において、図６（ｃ）に示すスキャン終了画面を、ユーザインターフェイス部４０３を介して書画台２０４に投射する。図６（ｃ）のスキャン終了画面では、スキャンした原稿を除去する旨をユーザに通知するメッセージ６２１と、メイン制御部４０２の処理終了指示を受け付ける終了ボタン６２２が表示される。
【０１１６】
その後、ステップＳ５２２で物体除去待ち処理の通知を行うことにより物体検知部４１０を起動し、物体検知部４１０からの物体除去通知を受信するのを待つ。ステップＳ５２２で物体除去通知があると、本処理を終了する。
【０１１７】
ステップＳ５０３の物体除去待ち処理を終了すると、ステップＳ５０４では、ステップＳ５０３の物体除去待ち処理の実行中に、終了ボタン６２２がタッチされていたかどうかを判定する。ステップＳ５０４で終了ボタン６２２がタッチされていたと判定した場合、メイン制御部４０２は、スキャン処理を終了する。一方、ステップＳ５０４で終了ボタン６２２がタッチされていないと判定した場合、ステップＳ５０１の物体載置待ち処理へ戻り、図６（ａ）の初期画面を表示して書画台２０４への物体載置を待つ。このようにすることで、ユーザが複数の原稿をスキャンしたい場合に、書画台２０４上の原稿を取り換えたことを検知することができ、複数の原稿のスキャンを連続して実行できる。
【０１１８】
以上のように、本実施例によれば、浮き領域を特定し、特定した浮き領域に応じて異なる押さえ方をユーザに対して提示する。これによりユーザは原稿をスキャンする際、その原稿を浮き領域に応じて適切に押さえることが出来る。
【０１１９】
なお、本実施例では、スキャンのモードとして、２Ｄスキャンボタン６１２、ブックスキャンボタン６１３、及び３Ｄスキャンボタン６１４の３種類の１つが選択される例を説明したが、すべて必要無い場合も考えられる。例えば、ユーザの設定等により平面原稿のスキャンと厚みのある書籍のスキャンの２種類を実行すれば良い場合である。このような場合、実行する２つのスキャンを選択できるように表示を行えばよい。具体的には、図６（ｂ）において２Ｄスキャンボタン６１２、ブックスキャンボタン６１３、スキャン開始ボタン６１５のみを投射することにより、２種類のスキャンを選択するユーザの入力を受け付けることができる。また、スキャンのモードが１種類のみであればよい場合、例えば、ユーザの設定等により平面原稿のスキャンのみ、あるいは、書籍のスキャンのみを実行すれば良い場合も考えられる。その場合、図６（ｂ）においてはスキャン開始ボタン６１５のみを投射し、ユーザのスキャン種類の選択を受け付けることなく、スキャン開始ボタン６１５へのタッチを検知したときにスキャンを実行すれば良い。また、このようにスキャンのモードが１種類のみである場合、書画台２０４への物体の載置を検知したとき、図６（ｂ）のようなスキャン操作画面を投射せず、すぐにスキャンを実行しても良い。
【０１２０】
（実施例２）
本実施例では、原稿に対して所定数、例えば２か所より多くの浮き領域が検出され、ユーザの両手では押さえきれないような場合、浮き領域毎に優先度を決定し、優先度の高い浮き領域のみ押さえ方を表示する仕組みを提供する。
【０１２１】
図１１は、本実施例におけるガイド表示処理の手順を示すフローチャートである。本処理は、図７と同様、浮き領域検出部４１９により実行される。なお、図７と同じ処理を行なうステップについては同じステップ番号を付与し、詳細な説明は省略する。
【０１２２】
ステップＳ１１００において、まず、ステップＳ７００で取得した距離画像に基づいてステップＳ７０１で検出された浮き領域が所定数より多いか否か判定する。所定数より多い場合、ステップＳ１１０１に進む。一方、所定数以下の場合、ステップＳ７０２に進む。本実施例においては、所定数は２として説明する。ステップＳ１１０１において、検出された浮き領域毎に優先度を付与する。優先度は、浮き領域内のコンテンツの有無や浮き領域内の浮きの大きさによって決定する。優先度を決定する際、コンテンツのある浮き領域がユーザの手で押さえられることなくそのまま撮像すると、コンテンツが歪んでしまうため、浮きの大きさよりもコンテンツの有無を優先する。浮き領域内のコンテンツの有無は、コンテンツ有無判定部４２０によっておこなう。また、浮き領域内の浮きの大きさは、事前に取得された書画台２０４に何も置かれていない状態の距離画像との差分画像における差分の最大値を用いる。続いてステップＳ１１０２において、優先度の高い浮き領域を所定数分だけ取得する。ステップＳ１１０２で取得した浮き領域にのみ浮きの種類が特定され、押さえ方が表示される。
【０１２３】
図１２（ａ）は、複数検出された浮き領域それぞれの特性を示す図である。また、図１２（ｂ）は、検出された浮き領域を示す図である。図１２（ｂ）における浮き領域１２００、浮き領域１２０１、浮き領域１２０２は、図１２（ａ）における浮き領域１、浮き領域２、浮き領域３とそれぞれ対応している。ステップＳ１１０１において、まずコンテンツの有無を比較し、コンテンツが含まれる浮き領域１を最も高い優先度を設定する。次に浮き領域２と浮き領域３を浮きの大きさで比較し、浮きの大きい浮き領域２を２番目に高い優先度を設定する。最後に残った浮き領域３を３番目に高い優先度を設定する。ステップＳ１１０２において、優先度の高い浮き領域１と浮き領域２が取得される。その後、ステップＳ７０３において、取得した浮き領域における浮きの種類を特定し、ステップＳ７０５からステップＳ７０７において、図１２（ｃ）のように優先度の高い浮き領域１２００と浮き領域１２０１に対する押さえ方のみが表示される。
【０１２４】
以上、実施例２によれば、浮き領域毎に優先度を付与し、優先度の高い浮き領域のみ押さえ方を提示する。これによりユーザは原稿をスキャンする際、複数の浮きのある原稿の中でも特に押さえた方が良い個所を押さえながらスキャンすることが出来る。
【０１２５】
（実施例３）
実施例１において、ユーザがカメラスキャナ１００で原稿をスキャンする場合、図１３（ａ）のユーザ１３００のように、ユーザはカメラスキャナ１００に対して正面にいることを想定としていた。しかし、図１３（ｂ）のユーザ１３００のように、ユーザはカメラスキャナ１００に対して横にいる場合がある。この場合、ユーザ１３００が原稿１３０１の辺が隠れないように一本の指で押さえたとしても、図１３（ｂ）のようにカメラスキャナ１００と原稿１３０１の間にあるユーザの左手で撮像時に原稿が遮られる場合がある。この状態で、カメラ部２０２で書画台２０４の原稿１３０１を撮像すると、図１３（ｃ）のように、ユーザの左手により原稿の辺が大きく隠れる撮像画像１３０２が得られる。このようになる理由として、カメラ部２０２がユーザの視点とは異なる方向から原稿を撮像しているためである。
【０１２６】
そこで、本実施例では、カメラスキャナ１００と原稿の間に手や指が入らないよう、カメラスキャナ１００に対するユーザの位置を検出し、ユーザの位置と浮きの種類に応じて浮き領域の押さえ方を表示する仕組みを提供する。
【０１２７】
図１４は、実施例３におけるガイド表示処理の手順を示すフローチャートである。本処理は、図７と同様、浮き領域検出部４１９により実行される。なお、図７と同じ処理を行なうステップについては同じステップ番号を付与し、詳細な説明は省略する。
【０１２８】
ステップＳ１４００において、カメラスキャナ１００に対するユーザの位置を取得する。取得するユーザの位置として、図１３（ａ）や図１３（ｂ）のように正面か横にいるかを取得する。ユーザの位置は以下のように判定する。まず、人物検出用のＲＧＢカメラ３６３で撮像画像を取得する。続いて、撮像画像に対して公知の顔検出技術を適用する。検出された顔の位置が画像の中央の領域など、所定の領域に含まれている場合、ユーザの位置を正面と判定する。それ以外の領域であれば、ユーザの位置を横と判定する。
【０１２９】
次に、ステップＳ７００〜Ｓ７１７の処理を行ない、ステップＳ７０４において、浮きの種類が辺である場合、ステップＳ１４０１に進む。浮きの種類が角である場合、ステップＳ１４０２に進む。浮きの種類が中央である場合、ステップＳ１４０３に進む。
【０１３０】
ステップＳ１４０１において、ユーザの位置に応じた辺の押さえ方をプロジェクタ２０７によって書画台２０４に表示する。ステップＳ１４０２において、ユーザの位置に応じた角の押さえ方をプロジェクタ２０７によって書画台２０４に表示する。ステップＳ１４０３において、ユーザの位置に応じた中央の押さえ方をプロジェクタ２０７によって書画台２０４に表示する。
【０１３１】
表示する押さえ方の具体例として、ユーザが正面にいる場合は実施例１と同様の表示をするため説明は省略し、本実施例ではユーザが横にいる場合の具体例を説明する。
【０１３２】
図２０〜２３は、本実施例のようにユーザが横にいる場合における、原稿の角、辺、中央それぞれの押さえ方の表示例を示す図である。表示例はすべてカメラスキャナ１００から見て右側にユーザがいる場合、つまり図１３（ｂ）のようにユーザから見て左側にカメラスキャナ１００がある場合であり、ユーザから見たときの書画台２０４における表示である。
【０１３３】
図２０（ａ）〜（ｄ）は、原稿の角のうち１箇所だけが浮いている場合の表示例を示す図である。図２０（ａ）のように原稿の左上の角が浮いている場合のみ、ユーザに対して正面に移動してから角を押さえるよう促すメッセージ１０００を表示する。図２０（ａ）のアイコン１００１は、ユーザが移動した後の押さえ方を表示するため、図１５（ａ）のアイコン１００１と同様の表示となる。
【０１３４】
図２１（ｅ）〜（ｊ）は、原稿の角のうち２箇所が浮いている場合の表示例を示す図である。図２１（ｆ），（ｇ），（ｊ）のように２か所の浮いている角に左上の角が含まれる場合のみ、ユーザに対して正面に移動してから角を押さえるよう促すメッセージ１０００を表示する。図２１（ｆ），（ｇ），（ｊ）のアイコン１００１ａは、ユーザが移動した後の押さえ方を表示するため、それぞれ図１６（ｆ），（ｇ），（ｉ）のアイコン１００１ａと同様の表示となる。
【０１３５】
図２２（ａ）〜（ｄ）は、原稿の辺のうち１箇所だけが浮いている場合の表示例を示す図である。図２２（ａ），（ｃ）のように浮いている辺に左上の角が含まれる場合のみ、ユーザに対して正面に移動してから角を押さえるよう促すメッセージ１０００を表示する。図２２（ａ），（ｃ）のアイコン１００１ａは、ユーザが移動した後の押さえ方を表示するため、それぞれ図１７（ａ）、（ｃ）のアイコン１００１ａと同様の表示となる。
【０１３６】
図２２（ｅ），（ｆ）は、原稿の辺のうち２箇所が浮いている場合の表示例を示す図である。図２２（ｅ）では、ユーザに対して正面に移動したのち、原稿を９０度回転させて辺の中央を押さえるよう促すメッセージ１０００を表示する。アイコン１００１ａ，１００１ｂは、ユーザが移動した後の押さえ方を表示するため、図１７（ｅ）のアイコン１００１ａ，１００１ｂと同様の表示となる。また、図２２（ｆ）では、ユーザに対して正面に移動したのち、辺の中央を押さえるよう促すメッセージ１０００を表示する。アイコン１００１ａ，１００１ｂは、ユーザが移動した後の押さえ方を表示するため、図１７（ｆ）のアイコン１００１ａ，１００１ｂと同様の表示となる。
【０１３７】
図２３（ａ），（ｂ）は、原稿の中央が浮いている場合の表示例を示す図である。図２３（ａ）のように原稿の中央が縦長に浮いている場合、ユーザに対して正面に移動してから、原稿を９０度回転後、辺の中央を押さえるよう促すメッセージ１０００を表示する。アイコン１００１ａ，１００１ｂは、ユーザが移動した後の押さえ方を表示するため、図１８（ｂ）と同様の表示となる。また、図２３（ｂ）のように原稿の中央が横長に浮いている場合、ユーザに対して正面に移動し、辺の中央を押さえるよう促すメッセージ１０００を表示する。アイコン１００１は、ユーザが移動した後の押さえ方を表示するため、図１８（ｃ）と同様の表示となる。
【０１３８】
以上、実施例３によれば、ユーザの位置に応じて浮き領域毎に適切な押さえ方をユーザに対して提示する。これによりユーザは原稿をスキャンする際、カメラスキャナ１００と原稿の間に手が入らない押さえ方をすることが出来る。
【０１３９】
（その他の実施形態）
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体（記録媒体）等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１４０】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１４１】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１４２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１４３】
プログラムを供給するための記録媒体としては、例えば、以下のようなものがある。フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）。
【０１４４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。すなわち、ホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１４５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布する。そして、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１４６】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他にも、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１４７】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後にも前述した実施形態の機能が実現される。すなわち、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行うことによっても前述した実施形態の機能が実現される。
【符号の説明】
【０１４８】
１００  カメラスキャナ
２０１  コントローラ部
２０２  カメラ部
２０４  書画台
２０７  プロジェクタ
２０８  距離画像センサ部
３０７  画像処理プロセッサ
３６１  赤外線パターン投射部
３６２  赤外線カメラ
３６３  ＲＧＢカメラ
【図１】
2018207342.tif 000007
【図２】
2018207342.tif 000008
【図３】
2018207342.tif 000009
【図４】
2018207342.tif 000010
【図５】
2018207342.tif 000011
【図６】
2018207342.tif 000012
【図７】
2018207342.tif 000013
【図８】
2018207342.tif 000014
【図９】
2018207342.tif 000015
【図１０】
2018207342.tif 000016
【図１１】
2018207342.tif 000017
【図１２】
2018207342.tif 000018
【図１３】
2018207342.tif 000019
【図１４】
2018207342.tif 000020
【図１５】
2018207342.tif 000021
【図１６】
2018207342.tif 000022
【図１７】
2018207342.tif 000023
【図１８】
2018207342.tif 000024
【図１９】
2018207342.tif 000025
【図２０】
2018207342.tif 000026
【図２１】
2018207342.tif 000027
【図２２】
2018207342.tif 000028
【図２３】
2018207342.tif 000029