(57)【要約】      （修正有）【課題】原稿コンテンツの歪みを補正する機能を備え、ユーザがスキャン画像を得るまでの時間を短縮する原稿読取装置を提供する。【解決手段】カメラスキャナのＣＰＵが、距離画像取得部により、原稿が載置されている領域の距離画像を取得しＳ５０５、浮き領域検出部により、距離画像に基づいて原稿画像における浮き領域を検出しＳ５０６，Ｓ５０７、コンテンツ有無判定部により、浮き領域にコンテンツが含まれるか判定しＳ５０８、浮き領域にコンテンツが含まれる場合には三次元補正処理を行いＳ５０９、浮き領域にコンテンツが含まれない場合には三次元補正処理を行わない。【選択図】図５
2019016843.tif 000002
【特許請求の範囲】
【請求項１】
原稿画像を撮像する撮像手段と、
前記原稿画像の各画素に対応する距離情報を取得する取得手段と、
前記原稿画像の三次元的な歪みを補正するための補正手段と、
前記距離情報に基づいて前記原稿画像における三次元的な歪みの存在する浮き領域を検出する検出手段と、
前記検出手段で検出された浮き領域にコンテンツが含まれるか否かを判定する判定手段と、
前記判定手段により前記浮き領域にコンテンツが含まれると判定された場合には前記補正手段による前記原稿画像の補正を行い、前記浮き領域にコンテンツが含まれていないと判定された場合には前記補正手段による補正を行わないように制御する制御手段と、
を有することを特徴とする原稿読取装置。
【請求項２】
前記コンテンツは、文字が含まれるコンテンツであることを特徴とする請求項１に記載の原稿読取装置。
【請求項３】
前記補正の対象となるコンテンツを文字に限定する設定が可能な設定手段を有し、
前記設定手段により前記設定がなされている場合、前記判定手段は、前記コンテンツを文字が含まれるコンテンツに限定して前記判定を行うことを特徴とする請求項１に記載の原稿読取装置。
【請求項４】
前記検出手段は、隣接画素との前記距離情報の差分が所定値より大きい画素に対応する領域は前記浮き領域に含めないことを特徴とする請求項１〜３のいずれか１項に記載の原稿読取装置。
【請求項５】
前記原稿画像からサムネイル画像を生成する生成手段を有し、
前記判定手段は、前記サムネイル画像を用い、前記浮き領域にコンテンツが含まれるか否かを判定することを特徴とする請求項１〜４のいずれか１項に記載の原稿読取装置。
【請求項６】
原稿画像を撮像する撮像手段と、前記原稿画像の各画素に対応する距離情報を取得する取得手段と、前記原稿画像の三次元的な歪みを補正するための補正手段と、を有する原稿読取装置の制御方法であって、
前記距離情報に基づいて前記原稿画像における三次元的な歪みの存在する浮き領域を検出する検出ステップと、
前記検出ステップで検出された浮き領域にコンテンツが含まれるか否かを判定する判定ステップと、
前記判定ステップで前記浮き領域にコンテンツが含まれると判定された場合には前記補正手段による前記原稿画像の補正を行い、前記浮き領域にコンテンツが含まれていないと判定された場合には前記補正手段による補正を行わないように制御する制御ステップと、
を有することを特徴とする原稿読取装置の制御方法。
【請求項７】
コンピュータに、請求項６に記載の制御方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スタンド型スキャナで浮きのある原稿を読み取る技術に関する。
【背景技術】
【０００２】
原稿に記された内容をデータとして記録するためにドキュメントスキャナが装置として知られている。ドキュメントスキャナの中ではフラッドベッド型、シートフィード型、スタンド型スキャナ（カメラスキャナ）などが知られている。
【０００３】
カメラスキャナでは、原稿の上方からのカメラスキャンによって、原稿を置くだけで原稿内のコンテンツの読み取りが可能となる。しかし、カメラスキャナでは圧板などで紙面を抑えるわけではないため、例えば紙面形状に折れや曲がりが生じている場合には、折れや曲がりが撮影画像上の原稿コンテンツの歪みとして表れてしまう。このため、視認性が下がる他、後段でＯＣＲをかける場合には精度が下がってしまう。
【０００４】
特許文献１には、このような原稿コンテンツの歪みを補正するために、原稿の形状を計測して、原稿が平面に展開されたような画像を生成する技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−１６５０８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、原稿コンテンツの歪みを補正する技術は一般的に処理に時間がかかる。このため、原稿コンテンツの歪み補正処理を行う場合には、スキャン画像をユーザに提供するまでの時間が長くなってしまうといった課題があった。
【０００７】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、原稿コンテンツの歪みを補正する機能を備える原稿読取装置でユーザがスキャン画像を得るまでの時間を短縮することができる仕組みを提供することである。
【課題を解決するための手段】
【０００８】
本発明は、原稿画像を撮像する撮像手段と、前記原稿画像の各画素に対応する距離情報を取得する取得手段と、前記原稿画像の三次元的な歪みを補正するための補正手段と、前記距離情報に基づいて前記原稿画像における三次元的な歪みの存在する浮き領域を検出する検出手段と、前記検出手段で検出された浮き領域にコンテンツが含まれるか否かを判定する判定手段と、前記判定手段により前記浮き領域にコンテンツが含まれると判定された場合には前記補正手段による前記原稿画像の補正を行い、前記浮き領域にコンテンツが含まれていないと判定された場合には前記補正手段による補正を行わないように制御する制御手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、原稿コンテンツの歪みを補正する機能を備える原稿読取装置でユーザがスキャン画像を得るまでの時間を短縮することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施例の原稿読取装置を含むネットワーク構成図
【図２】本実施例の原稿読取装置の構成の一例を説明する図
【図３】本実施例の原稿読取装置のコントローラ部のハードウェア構成図
【図４】本実施例の原稿読取装置の制御用プログラムの機能構成図
【図５】本実施例の原稿読取装置のスキャン処理の一例を説明するフローチャート
【図６】本実施例の原稿読取装置の書画台に置かれる原稿の一例を示す図
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を参照して説明する。
図１は、本発明の原稿読取装置の一実施形態を示すスタンド型スキャナを含むネットワーク構成の一例を示す図である。
カメラスキャナ101は、本実施形態のスタンド型スキャナである。カメラスキャナ101は、イーサネット（登録商標）等のネットワーク104を介して、ホストコンピュータ102およびプリンタ103と通信可能に接続されている。
【００１２】
カメラスキャナ101は、ホストコンピュータ102からの指示により、カメラスキャナ101から画像を読み取るスキャン機能や、スキャンデータをプリンタ103により出力するプリント機能の実行が可能である。また、カメラスキャナ101は、ホストコンピュータ102を介さず、カメラスキャナ101への直接の指示により、スキャン機能、プリント機能の実行も可能である。
【００１３】
＜カメラスキャナ101の構成＞
図２は、カメラスキャナ101の構成の一例を説明する図である。
図２（ａ）に示すように、カメラスキャナ101は、コントローラ部201、カメラ部202、腕部203、短焦点プロジェクタ207、距離画像センサ部208を含む。
【００１４】
カメラスキャナの本体であるコントローラ部201と、撮像を行うためのカメラ部202、短焦点プロジェクタ207および距離画像センサ部208は、腕部203により連結されている。腕部203は、関節を用いて曲げ伸ばしが可能である。
【００１５】
また、図２（ａ）には、カメラスキャナ101が設置されている書画台204も示している。カメラスキャナ101のカメラ部202および距離画像センサ部208のレンズは、書画台204方向に向けられている。カメラスキャナ101は、破線で囲まれた読み取り領域205内の画像を読み取り可能である。図２（ａ）の例では、読み取り領域205内に原稿206が置かれており、カメラスキャナ101により、この原稿206を読み取り可能である。
【００１６】
また、書画台204内にはターンテーブル209が設けられている。ターンテーブル209は、コントローラ部201からの指示によって回転することが可能である。ターンテーブル209を回転することにより、ターンテーブル209上に置かれた物体とカメラ部202との角度を変えることができる。
【００１７】
なお、カメラ部202は、単一解像度で画像を撮像するものとしてもよいが、高解像度画像撮像と低解像度画像撮像が可能なものとすることが好ましい。
また、図２には示していないが、カメラスキャナ101は、図３に示すように、ＬＣＤタッチパネル330およびスピーカ340をさらに備えることもできる。
【００１８】
図２（ｂ）は、カメラスキャナ101における座標系について表している。
カメラスキャナ101では、各ハードウェアデバイスに対して、「カメラ座標系」、「距離画像センサ座標系」、「プロジェクタ座標系」という座標系が定義されている。これらの座標系は、カメラ部202および距離画像センサ部208のＲＧＢカメラ363が撮像する画像平面、あるいはプロジェクタ207が投影する画像平面をＸＹ平面とし、画像平面に直交する方向をＺ方向として定義したものである。
【００１９】
さらに、本実施形態では、これらの独立した座標系の３次元データを統一的に扱えるようにするために「直交座標系」が定義されている。直交座標系では、書画台204を含む平面をＸＹ平面とし、このＸＹ平面から上方に垂直な向きをＺ軸とする。
【００２０】
以下、座標系を変換する場合の例を、図２（ｃ）を用いて説明する。
図２（ｃ）は、直交座標系とカメラ座標系とを用いて表現された空間と、カメラ部202が撮像する画像平面との関係を示す。
直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］は、（１）式によって、カメラ座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換できる。
【００２１】
【数１】
2019016843.tif 000003
【００２２】
ここで、Ｒｃおよびｔｃは、直交座標系に対するカメラの姿勢（回転）と位置（並進）によって求まる外部パラメータによって構成され、Ｒｃを３×３の回転行列、ｔｃを並進ベクトルと呼ぶ。
【００２３】
逆に、カメラ座標系で定義された３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］は（２）式によって、直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］への変換することができる
【００２４】
【数２】
2019016843.tif 000004
【００２５】
さらに、カメラ部202で撮影される２次元のカメラ画像平面は、カメラ部202によって３次元空間中の３次元情報が２次元情報に変換されたものである。すなわち、カメラ座標系上での３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］を、（３）式によってカメラ画像平面での２次元座標ｐｃ［ｘｐ，ｙｐ］に透視投影変換することによって変換することができる。
【００２６】
【数３】
2019016843.tif 000005
【００２７】
ここで、Ａは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心などで表現される３×３の行列である。
【００２８】
以上のように、（１）式と（３）式を用いることで、直交座標系で表された３次元点群を、カメラ座標系での３次元点群座標やカメラ画像平面に変換することができる。なお、各ハードウェアデバイスの内部パラメータおよび直交座標系に対する位置姿勢（外部パラメータ）は、公知のキャリブレーション手法により予めキャリブレーションされているものとする。以後、特に断りがなく３次元点群と表記した場合は、直交座標系における３次元データを表しているものとする。
【００２９】
＜カメラスキャナ101のコントローラ部201のハードウェア構成＞
図３は、カメラスキャナ101の本体であるコントローラ部201のハードウェア構成の一例を示す図である。
【００３０】
図３に示すように、コントローラ部201は、システムバス301に接続されたＣＰＵ302、ＲＡＭ303、ＲＯＭ304、ＨＤＤ305及びネットワークＩ／Ｆ306を有する。さらに、コントローラ部201は、画像処理プロセッサ307、カメラＩ／Ｆ308、ディスプレイコントローラ309、シリアルＩ／Ｆ310、オーディオコントローラ311及びＵＳＢコントローラ312を有する。
【００３１】
ＣＰＵ302は、コントローラ部201全体の動作を制御する中央演算装置である。ＲＡＭ303は揮発性メモリである。ＲＯＭ304は不揮発性メモリであり、ＣＰＵ302の起動用プログラム等が格納されている。ＨＤＤ305は、ＲＡＭ303と比較して大容量なハードディスクドライブ（ＨＤＤ）である。ＨＤＤ305には、コントローラ部201の実行する、カメラスキャナ101の制御用プログラム等が格納されている。
【００３２】
ＣＰＵ302は、電源ＯＮ等の起動時、ＲＯＭ304に格納されている起動用プログラムを実行する。この起動用プログラムは、ＨＤＤ305に格納されている制御用プログラムを読み出し、ＲＡＭ303上に展開するためのものである。ＣＰＵ302は、起動用プログラムを実行すると、続けてＲＡＭ303上に展開した制御用プログラムを実行し、制御を行う。また、ＣＰＵ302は、制御用プログラムによる動作に用いるデータもＲＡＭ303上に格納して読み書きを行う。ＨＤＤ305には、さらに制御用プログラムによる動作に必要な各種設定や、カメラ入力によって生成された画像データ等を格納することができる。ＨＤＤ305は、ＣＰＵ302によって読み書き可能である。ＣＰＵ302は、ネットワークＩ／Ｆ306を介してネットワーク104上の他の機器との通信を行う。
【００３３】
画像処理プロセッサ307は、ＲＡＭ303に格納された画像データを読み出して処理し、またＲＡＭ303へ書き戻す。なお、画像処理プロセッサ307が実行する画像処理は、回転、変倍、色変換等を含む。
【００３４】
カメラＩ／Ｆ308は、カメラ部202および距離画像センサ部208と接続される。カメラＩ／Ｆ308は、ＣＰＵ302からの指示に応じて、カメラ部202から画像データを、距離画像センサ部208から距離画像データ（距離情報）を取得して、ＲＡＭ303へ書き込む。また、カメラＩ／Ｆ308は、ＣＰＵ302からの制御コマンドを、カメラ部202及び距離画像センサ部208へ送信し、カメラ部202及び距離画像センサ部208の設定を行う。
【００３５】
距離画像センサ部208は、赤外線によるパターン投射方式の距離画像センサである。図３に示すように、距離画像センサ部208は、赤外線パターン投射部361、赤外線カメラ362、ＲＧＢカメラ363を有する。
【００３６】
赤外線パターン投射部361は、対象物に対して、人の目には不可視である赤外線によって３次元測定パターンを投射する。赤外線カメラ362は、対象物に投射した３次元測定パターンを読みとるカメラである。ＲＧＢカメラ363は、人の目に見える可視光をＲＧＢ信号で撮影するカメラである。
【００３７】
なお、本実施形態では上述したように、距離画像センサ部208として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、距離画像センサ部208として、２つのＲＧＢカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するＴＯＦ（Time of Flight）方式を用いてもよい。
【００３８】
なお、コントローラ部201は、ディスプレイコントローラ309、シリアルＩ／Ｆ310、オーディオコントローラ311およびＵＳＢコントローラ312のうち少なくとも１つを備える。
【００３９】
ディスプレイコントローラ309は、ＣＰＵ302の指示に応じて、ディスプレイへの画像データの表示を制御する。ここで、ディスプレイコントローラ309は、短焦点プロジェクタ207およびＬＣＤタッチパネル330に接続されており、これらの表示を制御する。
【００４０】
シリアルＩ／Ｆ310は、シリアル信号の入出力を行う。ここでは、シリアルＩ／Ｆ310はターンテーブル209に接続され、ＣＰＵ302の回転開始・終了および回転角度の指示をターンテーブル209へ送信する。また、シリアルＩ／Ｆ310はＬＣＤタッチパネル330に接続され、ＣＰＵ302はＬＣＤタッチパネル330が押下されたときに、シリアルＩ／Ｆ310を介して押下された座標を取得する。
【００４１】
オーディオコントローラ311はスピーカ340に接続され、ＣＰＵ302の指示に応じて音声データをアナログ音声信号に変換し、スピーカ340を通じて音声を出力する。
ＵＳＢコントローラ312は、ＣＰＵ302の指示に応じて外付けのＵＳＢデバイスの制御を行う。ここでは、ＵＳＢコントローラ312は、ＵＳＢメモリやＳＤカードなどの外部メモリ350と接続され、外部メモリ350へのデータの読み書きを行う。
【００４２】
＜カメラスキャナ101の制御用プログラムの機能構成＞
図４は、ＣＰＵ302が実行するカメラスキャナ101の制御用プログラムの機能構成401の一例を示す図である。カメラスキャナ101の制御用プログラムは前述のようにＨＤＤ305に格納され、ＣＰＵ302が起動時にＲＡＭ303上に展開して実行する。すなわち、図４に示す機能構成401は、ＣＰＵ302がＨＤＤ305に格納されるカメラスキャナ101の制御用プログラムをＲＡＭ303にロードして実行することにより実現される。
【００４３】
機能構成401において、メイン制御部402は制御の中心であり、機能構成401内の他の各モジュールを制御する。
画像取得部416は、画像入力処理を行うモジュールである。画像取得部416は、カメラ画像取得部407、距離画像取得部408を有する。
【００４４】
カメラ画像取得部407は、カメラＩ／Ｆ308を介してカメラ部202が出力する画像データを取得し、ＲＡＭ303へ格納する。
距離画像取得部408は、カメラＩ／Ｆ308を介して距離画像センサ部208が出力する距離画像データを取得し、ＲＡＭ303へ格納する。なお、距離画像センサ部208が出力する距離画像データは、原稿画像の各画素に対応する距離情報を含むデータである。
【００４５】
認識処理部417は、カメラ画像取得部407、距離画像取得部408が取得する画像データから書画台204上の物体の動きを検知して認識するモジュールである。認識処理部417は、ジェスチャ認識部409、物体検知部410を有する。
【００４６】
ジェスチャ認識部409は、画像取得部416から書画台204上の画像を取得し続け、タッチなどのジェスチャを検知するとメイン制御部402へ通知する。ジェスチャ認識部409の処理の詳細は後述する。
【００４７】
物体検知部410は、メイン制御部402から物体載置待ち処理あるいは物体除去待ち処理の通知を受けると、画像取得部416から書画台204を撮像した画像を取得する。また、物体検知部410は、書画台204上に物体が置かれて静止するタイミングあるいは物体が取り除かれるタイミングを検知する処理を行う。
【００４８】
スキャン処理部418は、実際に対象物のスキャンを行うモジュールである。スキャン処理部418は、サムネイル画像生成部411、画像処理部412、三次元幾何補正処理部452、浮き領域検出部450、コンテンツ有無判定部451を有する。
【００４９】
サムネイル画像生成部411は、カメラ画像取得部407から取得される画像データを縮小することで低解像度の画像であるサムネイル画像を生成する。
画像処理部412は、カメラ画像取得部407から取得される画像データに対して色味など見栄えが良くなるよう調整した色調整済み画像を生成する。
【００５０】
三次元幾何補正処理部452は、例えば原稿の三次元的な歪みに起因する、三次元的に歪んだ画像を歪んでいない状態に補正した画像を生成する（三次元幾何補正）。具体的には、三次元幾何補正処理部452は、まず原稿の立体形状を取得する。立体形状の取得は、プロジェクタ107によって投影線を投影し、その様子をカメラ103で撮影した画像を用い、光切断法により行う。そして、三次元幾何補正処理部452は、上述のように取得した立体形状を基にカメラ画像を平面展開した画像を生成する。この三次元幾何補正は公知の技術であるため（例えば特開２００２−１６５０８３号公報）、より詳細な説明は省略する。
【００５１】
浮き領域検出部450は、距離画像取得部408が取得する距離画像から原稿画像における三次元的な歪みの存在する浮き領域を検出して取得する。浮き領域検出部450の処理の詳細は後述する図５のフローチャート内で説明する。
【００５２】
コンテンツ有無判定部451は、指定された画像の指定された領域にコンテンツが存在するか否かの判定を行う（コンテンツ有無判定）。このコンテンツ有無判定は、以下のように行う。まず、コンテンツ有無判定部451は、指定された画像から、指定された領域以外をマスクする。続いて、コンテンツ有無判定部451は、キャニー法によるエッジ検出を行う。続いて、コンテンツ有無判定部451は、エッジとして検出された画素数の、指定された領域の画素数に対する割合を調べる。さらに、コンテンツ有無判定部451は、該割合が所定値より大きい場合にはコンテンツが存在すると判定し、該割合が所定値より小さい場合にはコンテンツが存在しないと判定する。なお、コンテンツの対象を文字のみと限定してもよい。その場合、コンテンツ有無判定部451は、公知の属性判定技術（例えば特開２００７−１０４４８６号公報）を適用し、文字が含まれればコンテンツが存在すると判定する。もし、画像のみである場合は、コンテンツ有無判定部451は、コンテンツが存在しはいと判定する。コンテンツの対象を文字のみに限定することは、視認性の低下を容認できてもＯＣＲの精度低下を防ぐ必要がある場合に有用である。
【００５３】
ユーザインターフェイス部403は、ＧＵＩ部品生成表示部414、投射領域検出部415を有する。
ＧＵＩ部品生成表示部414は、メイン制御部402からの要求を受け、メッセージやボタン等のＧＵＩ部品を生成し、生成したＧＵＩ部品の表示を表示部406へ要求する。なお、書画台204上のＧＵＩ部品の表示場所は、投射領域検出部415により検出される。
【００５４】
表示部406は、ディスプレイコントローラ309を介して、短焦点プロジェクタ207もしくはＬＣＤタッチパネル330へ要求されたＧＵＩ部品の表示を行う。プロジェクタ207は、書画台204に向けて設置されているため、書画台204上にＧＵＩ部品を投射することが可能となっている。
【００５５】
また、ユーザインターフェイス部403は、ジェスチャ認識部409が認識したタッチ等のジェスチャ操作、あるいはシリアルＩ／Ｆ310を介したＬＣＤタッチパネル330からの入力操作、そしてさらにそれらの座標を受信する。そして、ユーザインターフェイス部403は、描画中の操作画面の内容と操作座標を対応させて操作内容（押下されたボタン等）を判定する。ユーザインターフェイス部403は、この操作内容をメイン制御部402へ通知することにより、操作者の操作を受け付ける。例えば、ユーザインターフェイス部403は、三次元スキャンモードの設定を受け付ける。三次元スキャンモードとして、ＯＮ／ＯＦＦ／ＡＵＴＯから選択指定可能とする。なお、三次元スキャンモード＝ＯＮは、三次元補正処理を実行するモードに対応する。また、三次元スキャンモード＝ＯＦＦは、三次元補正処理を実行しないモードに対応する。また、三次元スキャンモード＝ＡＵＴＯは、原稿画像の浮き領域にコンテンツが存在する場合にのみ三次元補正処理が実行されるモードに対応する。なお、設定された三次元スキャンモードは、例えばＨＤＤ305に保存される。
【００５６】
ネットワーク通信部404は、ネットワークＩ／Ｆ306を介して、ネットワーク104上の他の機器とＴＣＰ／ＩＰ等による通信を行う。
データ管理部405は、制御用プログラム401の実行において生成した作業データなど様々なデータをＨＤＤ305上の所定の領域へ保存し、管理する。
【００５７】
＜ジェスチャ認識部409の説明＞
ジェスチャ認識部409の処理の詳細を説明する。
ジェスチャ認識部409は、距離画像取得部408から距離画像と３次元点群を取得する。続いて、ジェスチャ認識部409は、書画台204を含む平面から所定の高さ以上にある、肌色の３次元点群を抽出することで、手の３次元点群を得る。続いて、ジェスチャ認識部409は、抽出した手の３次元点群を、書画台204の平面に射影した２次元画像を生成して、その手の外形を検出する。この時、手の３次元点群の各点が、書画台204の平面に投影した２次元画像の各座標のどれに対応するかの対応関係を記憶しておくものとする。続いて、ジェスチャ認識部409は、検出した手の外形上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より小さい点を指先として検出する。続いて、ジェスチャ認識部409は、それぞれの指先検出した指先の書画台204を含む平面との距離を、先の対応関係を用いて３次元点群から算出する。ジェスチャ認識部409は、算出した距離が微小な所定値以下である場合、タッチジェスチャありと判定し、メイン制御部402へ通知する。
【００５８】
なお、指先検出について、ここでは３次元点群から２次元画像に投影した画像から指先を検出する方法を説明したが、指先検出の対象とする画像は、これに限定されるものではない。例えば、距離画像の背景差分や、ＲＧＢ画像の肌色領域から手の領域を抽出し、上に述べたのと同様の方法（外形の曲率計算等）で、手領域のうちの指先を検出してもよい。
【００５９】
＜スキャン処理＞
図５は、本実施形態におけるスキャン処理の一例を説明するフローチャートである。図５のフローチャートに示す処理は、ユーザによってスキャンが指示されたとき、カメラスキャナ101のＣＰＵ302により実行される。すなわち、図５に示す処理は、ＣＰＵ302がＨＤＤ305に格納されるカメラスキャナ101の制御用プログラムをＲＡＭ303にロードして実行することにより実現される。
【００６０】
S501において、ＣＰＵ302は、カメラ画像取得部407により、カメラ部202で撮影された画像データを取得する。
次に、S502において、ＣＰＵ302は、サムネイル画像生成部411により、上記S501で取得された画像データをもとにサムネイル画像を生成する。なお、ここでサムネイル画像を生成するのは、これを表示することで、少しでも早くユーザに撮影した画像の概要を伝えることができるためであり、この段階でサムネイル画像を表示部406に表示してもよい。また、このサムネイル画像は、後述するS508においても利用される。
【００６１】
次に、S503において、ＣＰＵ302は、画像処理部412により、上記S501で取得した画像データに対して画像処理を施す。
次に、S504において、ＣＰＵ302は、三次元スキャンモードとしてユーザから何が指定されているかを判定する。三次元スキャンモードはユーザが指定可能なモードで、ＯＮ／ＯＦＦ／ＡＵＴＯから選択指定可能である。
【００６２】
上記S504において、ＣＰＵ302は、ＯＦＦが指定されていると判定した場合、上記S503で画像処理を施した画像データをスキャン画像としてＨＤＤ305に保存し、本フローチャートの処理を終了する。
【００６３】
また、上記S504において、ＣＰＵ302は、ＯＮが指定されていると判定した場合、S509に処理を進める。S509の三次元補正処理については後述する。
【００６４】
また、上記S504において、ＣＰＵ302は、ＡＵＴＯが指定されていると判定した場合、S505に処理を進める。
S505において、ＣＰＵ302は、距離画像取得部408により、距離画像を取得する。
【００６５】
次に、S506において、ＣＰＵ302は、浮き領域検出部450により、上記S505で取得した距離画像を用いて浮き領域を検出して取得する。浮き領域の検出は以下のようにして行う。浮き領域検出部450は、まず上記S505で得た距離画像と、事前に取得されている書画台204に何も置かれていない状態の距離画像（例えばＨＤＤ305に保存されている）との差分画像を取得する。続いて浮き領域検出部450は、差分画像を事前に決定した所定値を閾値として２値化する。結果として、原稿台から所定距離離れた領域が白画素となる。距離センサの多くは距離画像の画素値が時間的に変動するため、上記閾値としては、距離画像の変動幅より少し大きい程度が好ましい。続いて浮き領域検出部450は、２値化画像に膨張処理をかける。これは、少し浮いているにも関わらず上記閾値以下になってしまう領域が浮いていると判定された領域の付近に残存する可能性が高く、それらが除外されてしまう悪影響を緩和させるための施策である。続いて浮き領域検出部450は、上記S505で得た距離画像において、隣接画素の差分が所定値より大きい画素及びその周辺所定数の画素を、膨張処理後の画像から除外する。これは、距離画像において急峻な変動がある領域を除外することを意味する。すなわち紙の端や影といった本来コンテンツでない内容のものが、のちに判定するコンテンツ有無判定に悪影響を及ぼすことを防ぐ目的の施策である。上記のような処理によって得られた画像のうち、白画素部分が浮き領域として検出され、取得される。この浮き領域は、上述したように急峻な変動がある領域が除外されてたものであり、後述するS508でコンテンツの有無を判定する際に対象となる領域である。
【００６６】
次に、S507において、ＣＰＵ302は、上記S506で浮き領域が得られたか否かを判定する。ＣＰＵ302は、浮き領域が得られなかったと判定した場合（S507でNoの場合）、例えば後述する図６（ａ），（ｃ）の場合、上記S503で画像処理を施した画像をスキャン画像としてＨＤＤ305に保存し、本フローチャートの処理を終了する。
【００６７】
一方、上記S507において、ＣＰＵ302は、浮き領域が得られたと判定した場合（S507でYesの場合）、例えば後述する図６（ｂ），（ｄ）の場合、S508に処理を進める。
【００６８】
S508において、ＣＰＵ302は、コンテンツ有無判定部451によって、上記S502で生成したサムネイル画像における浮き領域に、コンテンツが存在するか否か判定する。例えば、コンテンツ有無判定部451は、上記浮き領域に対してエッジ抽出を行ってエッジとして検出された素数の割合が閾値より大きいか否かを判定する。エッジとして検出された画素数の割合が閾値より大きい場合には、コンテンツ有無判定部451はコンテンツが存在すると判定する。一方、エッジとして検出された画素数の割合が閾値より小さい場合には、コンテンツ有無判定部451はコンテンツが存在しないと判定する。また、上述したように、コンテンツの対象を文字のみと限定してもよい。その場合、コンテンツ有無判定部451は、公知の属性判定技術を適用し、文字が含まれればコンテンツが存在すると判定する。もし、画像のみである場合は、コンテンツ有無判定部451はコンテンツが存在しないと判定する。なお、サムネイル画像を用いることにより、コンテンツ有無の判定処理速度を向上することが可能となる。このように、三次元幾何補正の対象となるコンテンツを文字のみに限定するか、画像も含めるかをユーザ設定可能にしてもよい。そして、この設定に応じて、コンテンツ有無判定部451がコンテンツの有無を判定するようにしてもよい。
【００６９】
上記S508において、ＣＰＵ302は、浮き領域にコンテンツが存在しないと判定した場合（S508でNoの場合）、例えば図６（ｂ）の場合、上記S503で画像処理を施した画像をデータスキャン画像としてＨＤＤ305に保存する。そして、本フローチャートの処理を終了する。
【００７０】
一方、上記S508において、ＣＰＵ302は、浮き領域にコンテンツが存在すると判定した場合（S508でYesの場合）、例えば図６（ｄ）の場合、S509に処理を進める。
【００７１】
S509において、ＣＰＵ302は、三次元幾何補正処理部452よって、上記S503で画像処理を施した画像データに対して三次元的な歪み補正を行い、該補正の結果として得られた画像データをスキャン画像としてＨＤＤ305に保存する。そして、本フローチャートの処理を終了する。
【００７２】
図６は、書画台204に置かれる原稿の一例を示す図である。なお、原稿上に図示される線分はコンテンツ（例えば文字）を表すものとする。
図６（ａ）は、コンテンツが下部までなく、浮きもない原稿を表す。
図６（ｂ）は、コンテンツが下部までないが、原稿右手前（右下）に浮きのある原稿を表す。
図６（ｃ）は、コンテンツが下部まであり、浮きのない原稿を表す。
図６（ｄ）は、コンテンツが下部まであり、原稿右手前（右下）に浮きのある原稿を表す。
【００７３】
これらの原稿に対してスキャン処理を、三次元スキャンモードにＡＵＴＯを指定した状態で行った場合、次のような結果となる。
まず、図６（ａ）及び図６（ｃ）は浮き領域がないため、図５のS507でNoと判定され、三次元補正処理が行われることなくスキャン処理は終了される。
【００７４】
図６（ｂ）は浮き領域があるが、浮き領域にコンテンツが存在しないため、図５のS508でNoと判定され、三次元補正処理が行われることなくスキャン処理は終了される。
【００７５】
図６（ｄ）は浮き領域が存在し、さらに浮き領域にコンテンツが存在するため、図５のS507でYes且つS508でYesと判定され、三次元補正処理（図５のS509）が行われた後にスキャン処理は終了される。
【００７６】
以上のように、ユーザが三次元スキャンモードＡＵＴＯでスキャン処理を行った場合、浮き領域にコンテンツが含まれる場合にのみ三次元幾何補正処理が実施される。逆に浮きが無い場合や浮き部分にコンテンツが存在しない場合には三次元幾何補正処理が実施されない。浮きが存在しない場合、そもそも三次元的な歪みは発生しないため、三次元幾何補正処理は必要ない。また、浮きがあってもそこにコンテンツが含まれない場合、結果には影響はない（コンテンツがなければ、歪んでも見た目にはわからず影響がない）。
【００７７】
なお、コンテンツの有無を判定するのにかかるオーバーヘッドであるが、これも無視できる程度である。なぜなら三次元幾何補正処理が最終出力画像である高解像度の画像を使用する必要があるため時間がかかるのに対し、浮き領域の判定やコンテンツの有無判定は低解像度の画像（距離画像やサムネイル画像）を用いて判定される。これにより非常に短い時間で実施できる。上記を鑑みると、本実施形態の構成により、必要な場合にのみ三次元幾何補正処理を実行して、総合的にスキャン処理時間を短縮化できる。すなわち原稿読取画像の品質の維持と、読取時間の短縮の双方を両立することができる。
【００７８】
上述したように、カメラスキャナで浮きのある原稿コンテンツを補正する三次元幾何補正（原稿コンテンツの歪み補正処理）を行うと時間がかかってしまう。このため、三次元幾何補正を常に実施するような構成では、ユーザがスキャン画像を得るまでの時間が長くなってしまう。本実施例では、距離画像センサから取得した距離画像を用いて原稿中の浮きの存在する部分を判定し、さらに浮き領域にコンテンツが含まれるか否かを調べる。そして、コンテンツがある場合に三次元幾何補正を実行し、コンテンツが存在しない場合には三次元幾何補正を実行しないように構成する。このような構成により、原稿コンテンツの歪み補正処理を行うべきか否かを自動で判断でき、原稿コンテンツの歪みを補正する機能を備える原稿読取装置でユーザがスキャン画像を得るまでの時間を短縮することができる。
【００７９】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
【００８０】
（その他の実施形態）
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【００８１】
101    カメラスキャナ
201    コントローラ部
202    カメラ部
204    書画台
207    プロジェクタ
208    距離画像センサ部
【図１】
2019016843.tif 000006
【図２】
2019016843.tif 000007
【図３】
2019016843.tif 000008
【図４】
2019016843.tif 000009
【図５】
2019016843.tif 000010
【図６】
2019016843.tif 000011