(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
(第1実施形態)
以下、本発明を実施するための形態について図面等を参照して説明する。
図1は、一実施形態に係るカメラスキャナ101が含まれるネットワーク構成を示す図である。
図1に示すように、カメラスキャナ101はイーサネット(登録商標)等のネットワーク104にてホストコンピュータ102およびプリンタ103に接続されている。
図1のネットワーク構成において、ホストコンピュータ102からの指示により、カメラスキャナ101から画像を読み取るスキャン機能や、スキャンデータをプリンタ103により出力するプリント機能の実行が可能である。また、ホストコンピュータ102を介さず、カメラスキャナ101への直接の指示により、スキャン機能、プリント機能の実行も可能である。
【0009】
<カメラスキャナの構成>
図2は、一実施形態に係るカメラスキャナ101の構成例を示す図である。
図2(A)に示すように、カメラスキャナ101は、コントローラ部201、カメラ部202、腕部203、プロジェクタ207、距離画像センサ部208を含む。カメラスキャナの本体であるコントローラ部201と、撮像を行うためのカメラ部202、プロジェクタ207および距離画像センサ部208は、腕部203により連結されている。腕部203は関節を用いて曲げ伸ばしが可能である。
【0010】
図2(A)には、カメラスキャナ101が設置されている書画台204も示している。カメラ部202および距離画像センサ部208のレンズは書画台204方向に向けられており、破線で囲まれた読み取り領域205内の画像を読み取り可能である。
図2の例では、原稿206は読み取り領域205内に載置されているので、カメラスキャナ101に読み取り可能となっている。
カメラ部202は単一解像度で画像を撮像するものとしてもよいが、高解像度画像撮像と低解像度画像撮像が可能なものとすることが好ましい。
【0011】
書画台204内にはターンテーブル209を設けてもよい。ターンテーブル209はコントローラ部201からの指示によって回転することが可能であり、ターンテーブル209上に置かれた物体とカメラ部202との角度を変えることができる。
また、
図2に示されていないが、カメラスキャナ101は、LCDタッチパネル330およびスピーカ340をさらに含むこともできる。さらに、周囲の環境情報を収集するための人感センサ、照度センサ、加速度センサなどの各種センサデバイスを含むこともできる。
【0012】
図2(B)は、カメラスキャナ101における座標系を示す図である。カメラスキャナ101では各ハードウェアデバイスに対して、カメラ座標系、距離画像座標系、プロジェクタ座標系という座標系が定義される。これらはカメラ部202および距離画像センサ部208が撮像する画像平面、あるいはプロジェクタ207が投影する画像平面をそれぞれXY平面とし、各画像平面に直交した方向をZ方向として定義したものである。さらに、これらの独立した座標系の3次元データを統一的に扱えるようにするために、書画台204を含む平面をXY平面とし、このXY平面から上方に垂直な向きをZ軸とする直交座標系を定義する。
【0013】
図2(C)は、座標系を変換する場合の例として、直交座標系と、カメラ部202を中心としたカメラ座標系を用いて表現された空間と、カメラ部202が撮像する画像平面との関係を示す図である。直交座標系における3次元点P[X,Y,Z]は、(1)式によって、カメラ座標系における3次元点Pc[Xc,Yc,Zc]へ変換できる。
【数1】
ここで、Rcおよびtcは、直交座標系に対するカメラの姿勢(回転)と位置(並進)によって求まる外部パラメータによって構成され、Rcを3×3の回転行列、tcを並進ベクトルと呼ぶ。逆に、カメラ座標系で定義された3次元点は(2)式によって、直交座標系への変換することができる。
【数2】
【0014】
さらに、カメラ部202で撮影される2次元のカメラ画像平面は、カメラ部202によって3次元空間中の3次元情報が2次元情報に変換されたものである。すなわち、カメラ座標系上での3次元点Pc[Xc,Yc,Zc]を、(3)式によってカメラ画像平面での2次元座標pc[xp,yp]に透視投影変換することによって変換することが出来る。
【数3】
ここで、Aは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心などで表現される3×3の行列である。
【0015】
以上のように、(1)式と(3)式を用いることで、直交座標系で表された3次元点群を、カメラ座標系での3次元点群座標やカメラ画像平面に変換することが出来る。なお、各ハードウェアデバイスの内部パラメータおよび直交座標系に対する位置姿勢(外部パラメータ)は、公知のキャリブレーション手法によりあらかじめキャリブレーションされているものとする。以後、特に断りがなく3次元点群と表記した場合は、直交座標系における3次元データを表しているものとする。
【0016】
<カメラスキャナのコントローラのハードウェア構成>
図3は、カメラスキャナ101の本体であるコントローラ部201のハードウェア構成例を示す図である。
図3に示すように、コントローラ部201は、システムバス301に接続されたCPU302、RAM303、ROM304、HDD305、ネットワークI/F306、画像処理プロセッサ307、カメラI/F308を含む。さらに、コントローラ部201は、ディスプレイコントローラ309、シリアルI/F310、オーディオコントローラ311およびUSBコントローラ312を含む。
【0017】
CPU302はコントローラ部201全体の動作を制御する中央演算装置である。RAM303は揮発性メモリである。ROM304は不揮発性メモリであり、CPU302の起動用プログラムが格納されている。HDD305はRAM303と比較して大容量なハードディスクドライブ(HDD)である。HDD305にはコントローラ部201の実行する、カメラスキャナ101の制御用プログラムが格納されている。
【0018】
CPU302は電源ON等の起動時、ROM304に格納されている起動用プログラムを実行する。この起動用プログラムは、HDD305に格納されている制御用プログラムを読み出し、RAM303上に展開するためのものである。CPU302は起動用プログラムを実行すると、続けてRAM303上に展開した制御用プログラムを実行し、制御を行う。また、CPU302は制御用プログラムによる動作に用いるデータもRAM303上に格納して読み書きを行う。HDD305上にはさらに、制御用プログラムによる動作に必要な各種設定や、また、カメラ入力によって生成した画像データを格納することができ、CPU302によって読み書きされる。CPU302はネットワークI/F306を介してネットワーク104上の他の機器との通信を行う。
【0019】
画像処理プロセッサ307はRAM303に格納された画像データを読み出して処理し、またRAM303へ書き戻す。なお、画像処理プロセッサ307が実行する画像処理は、回転、変倍、色変換等である。
カメラI/F308はカメラ部202および距離画像センサ部208と接続され、CPU302からの指示に応じてカメラ部202から画像データを、距離画像センサ部208から距離画像データを取得してRAM303へ書き込む。また、CPU302からの制御コマンドをカメラ部202およびへ送信し、カメラ部202および距離画像センサ部208の設定を行う。
【0020】
コントローラ部201は、ディスプレイコントローラ309、シリアルI/F310、オーディオコントローラ311およびUSBコントローラ312のうち少なくとも1つをさらに含むことができる。
ディスプレイコントローラ309はCPU302の指示に応じてディスプレイへの画像データの表示を制御する。ここでは、ディスプレイコントローラ309はプロジェクタ207およびLCDタッチパネル330に接続されている。
シリアルI/F310はシリアル信号の入出力を行う。ここでは、シリアルI/F310はターンテーブル209に接続され、CPU302の回転開始・終了および回転角度の指示をターンテーブル209へ送信する。また、シリアルI/F310はLCDタッチパネル330に接続され、CPU302はLCDタッチパネル330が押下されたときに、シリアルI/F310を介して押下された座標を取得する。
オーディオコントローラ311はスピーカ340に接続され、CPU302の指示に応じて音声データをアナログ音声信号に変換し、スピーカ340を通じて音声を出力する。
USBコントローラ312はCPU302の指示に応じて外付けのUSBデバイスの制御を行う。ここでは、USBコントローラ312はUSBメモリやSDカードなどの外部メモリ350に接続され、外部メモリ350へのデータの読み書きを行う。
【0021】
<カメラスキャナの制御用プログラムの機能構成>
図4は、CPU302が実行するカメラスキャナ101の制御用プログラム401の機能構成を示す図である。
図5は、制御用プログラム401の各モジュールの関係を示すシーケンス図である。
カメラスキャナ101の制御用プログラムは前述のようにHDD305に格納され、CPU302が起動時にRAM303上に展開して実行する。
メイン制御部402は制御の中心であり、制御用プログラム401内の他の各モジュールを
図5に示すように制御する。
【0022】
ユーザインタフェース部403は、メイン制御部402からの要求を受け、メッセージやボタン等のGUI部品を生成する。そして、表示部406へ生成したGUI部品の表示(操作情報表示)を要求する。表示部406はディスプレイコントローラ309を介して、プロジェクタ207もしくはLCDタッチパネル330へ要求されたGUI部品の表示(操作情報表示)を行う。プロジェクタ207は書画台204に向けて設置されているため、書画台204上にGUI部品を投射することが可能となっている。また、ユーザインタフェース部403は、ジェスチャー認識部409が認識したタッチ等のジェスチャー操作、あるいはシリアルI/F310を介したLCDタッチパネル330からの入力操作、そしてさらにそれらの座標を受信する。そして、ユーザインタフェース部403は描画中の操作画面の内容と操作座標を対応させて操作内容(押下されたボタン等)を判定する。この操作内容をメイン制御部402へ通知することにより、操作者の操作を受け付ける。
【0023】
ネットワーク通信部404は、ネットワークI/F306を介して、ネットワーク104上の他の機器とTCP/IPによる通信を行う。
データ管理部405は、制御用プログラム401の実行において生成した作業データなど様々なデータをHDD305上の所定の領域へ保存し、管理する。例えば、画像取得部416によって撮像され、スキャン処理部411により平面原稿/書籍/立体物に応じた形式で出力されたスキャンデータなどである。
【0024】
画像取得部416は画像入力処理を行うモジュールであり、カメラ画像取得部407、距離画像取得部408から構成される。カメラ画像取得部407はカメラI/F308を介してカメラ部202が出力する画像データを取得し、RAM303へ格納する。距離画像取得部408はカメラI/F308を介して距離画像センサ部208が出力する距離画像データを取得し、RAM303へ格納する。距離画像取得部408の処理の詳細は
図5を用いて後述する。
【0025】
認識処理部417はカメラ画像取得部407、距離画像取得部408が取得する画像データから書画台204上の物体の動きを検知して認識するモジュールであり、ジェスチャー認識部409、物体検知部410から構成される。ジェスチャー認識部409は、画像取得部416から書画台204上の画像を取得し続け、タッチなどのジェスチャーを検知するとメイン制御部402へ通知する。物体検知部410は、画像取得部416から書画台204を撮像した画像を取得し、書画台204上に物体が置かれるタイミング、物体が置かれて静止するタイミング、あるいは物体が取り除かれるタイミングなどを検知する処理を行う。それぞれの処理の詳細は
図6および
図7を用いて後述する。
【0026】
画像処理部418は、カメラ部202および距離画像センサ部208から取得した画像を画像処理プロセッサ307で解析するために用いられ、スキャン処理部411や各種画像処理モジュールで構成される。スキャン処理部411は、対象物のスキャンを行うモジュールであり、平面原稿/書籍/立体物にそれぞれ適した処理を実行し、それぞれに応じた形式のデータを出力する。スキャン処理部411で実行される処理の1つである平面原稿スキャン処理の詳細については
図8を用いて後述する。また、前述のジェスチャー認識部409やスキャン処理部411は画像処理部418の各種画像処理モジュールを利用して実行される。
【0027】
<距離画像センサおよび距離画像取得部の説明>
図6(A)は、距離画像取得部408の処理を示すフローチャートである。また、
図6(B)〜(D)は、パターン投射方式による距離画像の計測原理を説明するための図である。
図6(B)に距離画像センサ部208の構成を示している。距離画像センサ部208は赤外線によるパターン投射方式の距離画像センサである。赤外線パターン投射部361は対象物に、人の目には不可視である赤外線によって3次元測定パターンを投射する。赤外線カメラ362は対象物に投射した3次元測定パターンを読み取るカメラである。RGBカメラ363は人の目に見える可視光をRGB信号で撮影するカメラである。
【0028】
距離画像取得部408が処理を開始すると、ステップS601では、
図6(B)に示すように赤外線パターン投射部361を用いて赤外線による3次元形状測定パターン622を対象物621に投射する。
ステップS602では、RGBカメラ363を用いて対象物を撮影したRGBカメラ画像623および、赤外線カメラ362を用いてステップS601で投射した3次元形状測定パターン622を撮影した赤外線カメラ画像624を取得する。なお、赤外線カメラ362とRGBカメラ363とでは設置位置が異なるため、
図6(C)に示すように、それぞれで撮影される2つのRGBカメラ画像623および赤外線カメラ画像624の撮影領域が異なる。
【0029】
そこでステップS603では、赤外線カメラ362の座標系からRGBカメラ363の座標系への座標系変換を用いて赤外線カメラ画像624をRGBカメラ画像623の座標系に合わせる。なお、赤外線カメラ362とRGBカメラ363の相対位置や、それぞれの内部パラメータは事前のキャリブレーション処理により既知である。
ステップS604では、
図6(D)に示すように、3次元形状測定パターン622とステップS603で座標変換を行った赤外線カメラ画像624間での対応点を抽出する。例えば、赤外線カメラ画像624上の1点を3次元形状測定パターン622上から探索して、同一の点が検出された場合に対応付けを行う。あるいは、赤外線カメラ画像624の画素の周辺のパターンを3次元形状測定パターン622上から探索し、一番類似度が高い部分と対応付けてもよい。
【0030】
ステップS605では、赤外線パターン投射部361と赤外線カメラ362を結ぶ直線を基線625として三角測量の原理を用いて計算を行うことにより、各画素ごとの赤外線カメラ362からの距離を算出する。ステップS604で対応付けが出来た画素については、赤外線カメラ362からの距離を算出して画素値として保存し、対応付けが出来なかった画素については、距離の計測が出来なかった部分として無効値を保存する。これをステップS603で座標変換を行った赤外線カメラ画像624の全画素に対して行うことで、各画素に距離値が入った距離画像を生成する。
【0031】
ステップS606では、距離画像の各画素にRGBカメラ画像623のRGB値を保存することにより、1画素につきR、G、B、距離の4つの値を持つ距離画像を生成する。ここで取得した距離画像は距離画像センサ部208のRGBカメラ363で定義された距離画像センサ座標系が基準となっている。
そこでステップS607では、
図2(C)で上述したように、距離画像センサ座標系として得られた距離データを直交座標系における3次元点群に変換する。
【0032】
なお、本実施例では上述したように、距離画像センサ部208として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、2つのRGBカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するTOF(Time of Flight)方式など、他の計測手段を用いても構わない。
【0033】
<ジェスチャー認識部の説明>
図7は、ジェスチャー認識部409の処理を示すフローチャートである。
ジェスチャー認識部409が処理を開始すると、ステップS701で初期化処理を行う。初期化処理では、ジェスチャー認識部409は距離画像取得部408から距離画像を1フレーム取得する。ここで、ジェスチャー認識部の開始時は書画台204上に対象物が置かれていない状態であるため、初期状態として書画台204の平面の認識を行う。つまり、取得した距離画像から最も広い平面を抽出し、その位置と法線ベクトル(以降、書画台204の平面パラメータと呼ぶ)を算出し、RAM303に保存する。
【0034】
続いてステップS702では、ステップS721〜722に示すように、書画台204上に存在する物体の3次元点群を取得する。
ステップS721では、距離画像取得部408から距離画像と3次元点群を1フレーム取得する。
ステップS722では、書画台204の平面パラメータを用いて、取得した3次元点群から書画台204を含む平面にある点群を除去する。
【0035】
ステップS703では、ステップS731〜S734に示すように、取得した3次元点群から操作者の手の形状および指先を検出する処理を行う。ここで、
図8に示す、指先検出処理の方法を模式的に表した図を用いて説明する。
ステップS731では、ステップS702で取得した3次元点群から、書画台204を含む平面から所定の高さ以上にある、肌色の3次元点群を抽出することで、手の3次元点群を得る。
図8(A)の801は、抽出した手の3次元点群を表している。
【0036】
ステップS732では、抽出した手の3次元点群を、書画台204の平面に射影した2次元画像を生成して、その手の外形を検出する。
図8(A)の802は、書画台204の平面に投影した3次元点群を表している。投影は、点群の各座標を、書画台204の平面パラメータを用いて投影すればよい。また、
図8(B)に示すように、投影した3次元点群から、xy座標の値だけを取り出せば、z軸方向から見た2次元画像803として扱うことができる。この時、手の3次元点群の各点が、書画台204の平面に投影した2次元画像の各座標のどれに対応するかを、記憶しておくものとする。
【0037】
ステップS733では、検出した手の外形上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より大きい点を指先として検出する。半径rの円周の曲率は逆数1/rであり、曲率が大きいほど曲がり具合がきついことを表している。
図8(C)は、外形の曲率から指先を検出する方法を模式的に表したものである。804は、書画台204の平面に投影された2次元画像803の外形を表す点の一部を表している。ここで、804のような、外形を表す点のうち、隣り合う5個の点を含むように円を描くことを考える。円805、807が、その例である。この円を、全ての外形の点に対して順に描き、その直径(例えば806、808)が所定の値より小さい(曲率が大きい)ことを以て、指先とする。この例では隣り合う5個の点としたが、その数は限定されるものではない。また、ここでは曲率を用いたが、外形に対して楕円フィッティングを行うことで、指先を検出してもよい。
【0038】
ステップS734では、検出した指先の個数および各指先の座標を算出する。この時、前述したように、書画台204に投影した2次元画像の各点と、手の3次元点群の各点の対応関係を記憶しているため、各指先の3次元座標を得ることができる。今回は、3次元点群から2次元画像に投影した画像から指先を検出する方法を説明したが、指先検出の対象とする画像は、これに限定されるものではない。例えば、距離画像の背景差分や、RGB画像の肌色領域から手の領域を抽出し、上に述べたのと同様の方法(外形の曲率計算等)で、手領域のうちの指先を検出してもよい。この場合、検出した指先の座標はRGB画像や距離画像といった、2次元画像上の座標であるため、その座標における距離画像の距離情報を用いて、直交座標系の3次元座標に変換する必要がある。この時、指先点となる外形上の点ではなく、指先を検出するときに用いた、曲率円の中心を指先点としてもよい。
【0039】
ステップS704では、ステップS741〜S746に示すように、検出した手の形状および指先からのジェスチャー判定処理を行う。
ステップS741では、ステップS703で検出した指先が1つかどうか判定する。指先が1つでなければステップS746へ進み、ジェスチャーなしと判定する。一方、検出した指先が1つであればステップS742へ進み、検出した指先と書画台204を含む平面との距離を算出する。
【0040】
ステップS743ではステップS742で算出した距離が微小な所定値以下であるかどうかを判定し、所定値以下であればステップS744へ進んで指先が書画台204へタッチした、タッチジェスチャーありと判定する。一方、所定値以下で無ければステップS745へ進み、指先が移動したジェスチャー(タッチはしていないが指先が書画台204上に存在するジェスチャー)と判定する。
ステップS705では判定したジェスチャーをメイン制御部402へ通知し、ステップS702へ戻ってジェスチャー認識処理を繰り返す。
なお、ここでは一本指でのジェスチャー認識について説明を行ったが、複数の指あるいは複数の手でのジェスチャー認識に応用することも可能である。
【0041】
<物体検知部の処理>
図9は、物体検知部410の処理を示すフローチャートである。
物体検知部410が処理を開始すると、
図9のステップS901の初期化処理において、ステップS911〜S913に示す初期化処理を行う。
ステップS911では、カメラ画像取得部407からカメラ画像を、距離画像取得部408から距離画像をそれぞれ1フレーム取得する。
【0042】
ステップS912では、データ管理部405を介して、取得したカメラ画像を書画台背景カメラ画像/前フレームカメラ画像/直前静止カメラ画像としてHDD305にそれぞれ保存する。また、取得した距離画像も同様に、書画台背景距離画像/前フレーム距離画像/直前静止距離画像としてHDD305に保存する。(以後の説明において、書画台背景画像/前フレーム画像/直前静止画像と記載した場合には、カメラ画像と距離画像の両方を含むものとする。)
【0043】
ステップS913では、状態管理テーブルを初期化し、データ管理部405を介してRAM303へ保存する。
図22(A)〜(G)に示すように、状態管理テーブルは書画台管理テーブルと物体管理テーブルを含む。書画台管理テーブルでは、書画台204上から検知された物体数(objNums)と書画台204上の状態を記録する。また、物体管理テーブルでは、物体の状態(移動中/静止/原稿検出済など)や、物体の位置・大きさを含む情報を管理する。これ以外にも状態管理テーブルには、物体に関連する情報を保持することは可能である。
図22(A)は初期化処理後の状態管理テーブルを示しており、物体数(objNums)に0が設定され、物体管理テーブル内は空欄となっている。
【0044】
続いて、ステップS902の物体検知処理において、ステップS921〜S926に示す処理により、書画台204上での物体の動きを検知する。
ステップS921では、カメラ画像取得部407からカメラ画像を、距離画像取得部408から距離画像をそれぞれ1フレーム取得する。(以後の説明において、現フレーム画像と記載した場合には、本ステップで取得したカメラ画像と距離画像の両方を含むものとする。)
【0045】
ステップS922では、取得したカメラ画像および距離画像を用いて物体検知処理を行う。
図10を用いて物体検知処理について説明する。
図10のステップS1001では、書画台背景画像との差分値を算出する。そこで、カメラ画像および距離画像それぞれにおいて、ステップS712で保存された書画台背景画像と、ステップS721で撮像された現フレーム画像との差分画像を生成し、2値化処理を行う。2値化処理後の背景差分画像中の黒画素部分は画像変化量がない部分、すなわち物体が存在していない部分であることを表している。また、白画素部分は画像変化量がある部分、すなわち物体が存在している部分であることを示している。
【0046】
ステップS1002では、前フレームでの処理において静止物体が検知されているか、あるいはステップS1001で算出した距離背景差分画像での差分値があらかじめ決めておいた所定値以上かどうかに基づき、物体の検知を判定する。書画台204上に物体が存在しないと判断された場合はステップS1003へ進み、存在していると判断された場合はステップS1007へ進む。
【0047】
ステップS1007では、ステップS1001で生成した背景差分画像を基にして物体数の増減の判定を行う。物体数が増減した場合にはステップS1008へ、変わらない場合にはステップS1010へ進む。
ステップS1008では、ステップS1001で検出された書画台背景画像の差分領域が、直前フレームで検出された物体と同一か否かを判定することで、新規物体か否かを判定する。すなわち、直前フレームでは検出されていない領域より検出された物体は、新規に書画台204上にフレームインした物体によるものと判断してステップS1009へ進む。一方で、直前フレームで検知されていた物体が分離・統合したことによる物体数の増減は、書画台204上に物体を載置するために手を放した、あるいは載置されていた物体を掴んだなどの要因によるものであると考えられる。そこで、ステップS1006へ進み、
図22(D)に示すように、分離・統合した物体情報を書き込むことで状態管理テーブルを更新する。
ステップS1009では、ステップS1008のフレームイン判定結果を受け、物体フレームインイベントを発行する。そして、ステップS1006において、
図22(B)に示すように、物体のフレームイン情報および物体の位置情報などを書き込むことで状態管理テーブルを更新して処理を終了する。
【0048】
ステップS1010では、カメラ画像および距離画像それぞれにおいて、ステップS724で保存された前フレーム画像と、ステップS721で撮像された現フレーム画像との差分画像を生成し、所定値によって2値化処理を行うことで差分値を算出する。
ステップS1011では、算出した差分値があらかじめ決めておいた所定値未満かどうかを判定する。算出した差分値が所定値以上であればステップS1006へ進み、
図22(C)に示すように、状態管理テーブルの物体の位置情報などを更新して処理を終了する。一方、差分値が所定値未満であればステップS1012へ進む。
【0049】
ステップS1012では、ステップS1010が連続してYESとなった回数から、差分値が所定値未満つまり書画台204上の物体が静止した状態が、あらかじめ決めておいたフレーム数続いたかどうかを判定する。そして、所定フレーム数続いていない場合は、ステップS1006へ進み、
図22(E)に示すように、状態管理テーブルの物体の位置情報などを更新して処理を終了する。一方、所定フレーム数続いた場合は、書画台204上の物体が静止したと判断し、ステップS1013へ進む。
【0050】
ステップS1013では、カメラ画像および距離画像それぞれにおいて、直前静止画像と現フレーム画像との差分画像を生成し、所定値によって2値化処理を行い、直前静止画像との差分値を算出する。
ステップS1014では、算出した差分値があらかじめ決めておいた所定値以上かどうかを判定する。算出した差分値が所定値未満の場合は、直前の静止状態から変化がないと判断され、ステップS1015へ進み、一方、差分値が所定値以上であればステップS1016へ進む。
【0051】
ステップS1015において、ステップS1012およびステップS1014において、直前の静止状態と同じ状態での物体静止であると判断されたことを受け、物体静止イベントを再発行する。そして、ステップS1006で状態管理テーブルを更新する。
一方で、ステップS1016では、ステップS1012およびステップS1014において、直前の静止状態とは異なる状態での物体静止であると判断されたことを受け、物体静止イベントを発行する。ステップS1017では、データ管理部405を介して、現フレームのカメラ画像および距離画像を、直前静止カメラ画像および直線静止距離画像としてHDD305に保存する。
ステップS1006では、ステップS1015およびステップS1016で発行された物体静止イベントを受け、
図22(F)に示すように状態管理テーブルを更新する。
【0052】
ステップS1002で物体検知がされなかった場合、ステップS1003では、直前のフレームにおいて物体が検知中であったかを確認することで、フレームアウト判定処理を行う。すなわち、直前フレームで物体を検知していなかった場合には、書画台204上に物体が無い状態が続いていると判断して物体検知処理を終了する。一方、物体を検知していた場合には、直前まで検出された物体がフレームアウトしたと判断してステップS1004へ進む。
【0053】
ステップS1004では、ステップS1003のフレームアウト判定結果を受け、物体フレームアウトイベントを発行する。
ステップS1005では、データ管理部405を介して、現フレームのカメラ画像および距離画像を、直前静止カメラ画像および直前静止距離画像としてHDD305にそれぞれ保存する。なお、本ステップにおいて、さらに現フレーム画像を書画台背景画像として更新しても構わない。
ステップS1006では、
図22(G)に示すように、物体のフレームアウト情報を書き込むことで状態管理テーブルを更新する。あるいは、
図22(A)に示すように状態管理テーブルを初期化しても構わない。
【0054】
図9に戻り、ステップS923では、S922で発行されたイベントをメイン制御部402へ通知する。なお、同一フレーム内で複数の物体検知イベントが発行された場合には、すべての物体検知イベントをメイン制御部402へ通知する。
ステップS924では、データ管理部405を介して、S921で取得したカメラ画像および距離画像を前フレームカメラ画像および前フレーム距離画像としてHDD305に保存する。
ステップS925では、物体検知処理の終了判定を行い、終了判定がなされるまでステップS921〜ステップS925の処理を繰り返す。なお、システムの終了はUI画面上に投射表示された終了ボタン(図示なし)の操作、カメラスキャナ101の本体の電源ボタン(図示なし)の押下などにより行われ、メイン制御部402から通知されるものとする。
【0055】
<スキャン処理部の説明>
図11のフローチャートを用いて、スキャン処理部411が実行する平面原稿スキャン処理を説明する。
図12(A)〜(J)は平面原稿スキャン処理を説明するための模式図である。
スキャン処理部411は平面原稿スキャン処理を開始すると、ステップS1101においてカメラ画像取得部407を介してカメラ部202からの画像を1フレーム取得する。ここで、カメラ部202の座標系は
図2(B)で示したように書画台204に正対していないため、このときの撮影画像は
図12(A)に示すように対象物1201、書画台204ともに歪んでいる。
【0056】
ステップS1102では、平面原稿抽出処理をステップS1121〜ステップS1125により実行する。
ステップS1121において書画台背景カメラ画像とステップS1101で取得したカメラ画像との画素毎の差分を算出し、差分画像を生成した上で、差分のある画素が黒、差分の無い画素が白となるように2値化処理を行う。したがって、ここで生成した差分画像は、
図12(B)の差分領域1202のように、対象物1201の領域が黒色である(差分がある)画像となる。
ステップS1122では差分領域1202を用いて、
図12(C)のように対象物1201のみの画像を抽出する。
【0057】
ステップS1123では、抽出した原稿領域画像に対して階調補正を行う。
ステップS1124では、抽出した原稿領域画像に対してカメラ座標系から書画台204への射影変換を行い、
図12(D)のように書画台204の真上から見た画像1203に変換する。ここで用いる射影変換パラメータは、事前のキャリブレーションにより得られたものを利用すればよい。なお、
図12(D)に示したように、書画台204上への原稿の置き方により、ここで得られる画像1203は傾いていることがある。
そこで、ステップS1125では、画像1203を矩形近似してからその矩形が水平になるように回転し、
図12(E)で示した画像1203のように傾きの無い平面原稿画像を得る。
図12(F)に示すように、基準ラインに対しての矩形の傾きθ1およびθ2を算出し、傾きが小さい方(ここではθ1)を画像1203の回転角度として決定する。
図12(G)および
図12(H)に示すように、画像1203中に含まれる文字列に対してOCR(Optical Character Recognition)処理を行い、文字列の傾きから画像1203の回転角度の算出および天地判定処理をしてもよい。
【0058】
ステップS1103では、ステップS1102で抽出した平面原稿画像1204に対して後処理を行う。例えば、領域分割処理を行うことで、
図12(I)に示す画像領域1205と
図12(J)に示すテキスト領域1206に分割され、それぞれのコンテンツの位置・サイズと傾きを算出してもよい。あるいは、平面原稿画像1204に対して下地色除去や色ムラ補正処理、先鋭化処理などの画像補正処理などを行ってもよい。
【0059】
ステップS1104では、抽出した平面原稿画像1204に対して、あらかじめ決めておいた画像フォーマット(例えばJPEG、TIFF、PDF等)に合わせて圧縮およびファイルフォーマット変換を行う。そして、データ管理部405を介してHDD305の所定の領域へファイルとして保存し、スキャン処理部411で実行される平面原稿スキャン処理を終了する。
【0060】
<利用シーンの説明>
図13は操作者1301による平面原稿スキャン操作の様子の一例を示している。
図13(A)は使用開始時の様子、
図13(B)〜
図13(D)はスキャン対象物載置領域枠1303内へ平面原稿1304を載置する様子をそれぞれ示している。また、
図13(E)は静止検知後に平面原稿スキャンが実行されている様子、
図13(F)はスキャン後にプレビュー表示905がされている様子を示している。
【0061】
<メイン制御部の説明>
図13の操作説明図と
図14のシーケンス図を用いて、メイン制御部402が実行するUI表示制御処理について説明する。
メイン制御部402が処理を開始すると、
図14のステップS1401において、メイン制御部402はユーザインタフェース部403に対し初期画面表示指示を行う。ユーザインタフェース部403は、プロジェクタ207によって初期画面を書画台204上へ投影表示させる。
図13(A)にスキャン実行開始時のUI画面である初期画面の一例を示す。UI画面にはメッセージ1302、スキャン対象物載置領域枠1303が投影表示されている。
ステップS1402において、メイン制御部402は、物体検知部410における物体検知処理の開始指示を行う。物体検知部410は
図9、
図10を用いて前述した処理を行い、物体のフレームインや静止時、フレームアウト時にそれぞれのイベントをメイン制御部402へ通知する。
【0062】
図13(B)に示すように、操作者1301が平面原稿1304をスキャン対象物載置領域枠1303内へ載置し始めると、ステップS1403において、物体検知部410から物体フレームインイベントがメイン制御部402へ通知される。ここでは図示はしていないが、物体のフレームインを検知したことを操作者1301へ通知するようにUI画面を更新しても構わない。例えば、スキャン対象物載置領域枠1303の枠の色を変えるなどの表示効果を与えてもよい。
【0063】
図13(D)に示すように操作者1301が平面原稿1304をスキャン対象物載置領域枠1303内へ載置し終わると、ステップS1404において物体検知部410から物体フレームアウトイベント及び物体静止イベントがメイン制御部402へ通知される。
ステップS1405において、メイン制御部402はユーザインタフェース部403に対しスキャン開始画面表示指示を行う。
図13(E)にスキャン実行時のUI画面の一例を示す。メッセージ1302を変更し、スキャン対象物載置領域枠1303表示を変更するなどの表示効果を加えたUI画面を投影表示する。
【0064】
ステップS1406において、メイン制御部402はスキャン処理部411へ平面原稿スキャン開始指示を行う。スキャン処理部411(第2の画像生成手段)では、
図11を用いて前述したステップS1101〜ステップS1104で示す処理により、高解像度の平面原稿画像を生成する。
ステップS1407において、メイン制御部402はユーザインタフェース部403に対し、ステップS1406で得られたスキャン結果を提示するためのプレビュー画像表示指示を行う。
図13(F)にプレビュー画像を表示したUI画面の一例を示す。ここでは、載置された平面原稿1304上に抽出した平面原稿画像1305を実寸サイズで重畳表示している。なお、プレビュー画像表示の仕方はこれに限るものではなく、例えば平面原稿1304以外の領域に表示させても構わない。また、実寸サイズに限らず、縮小・拡大して表示するなども可能である。
【0065】
以上の処理により、平面原稿1304の載置を検知するとスキャン開始画面の表示、平面原稿スキャン処理、抽出された結果のプレビュー画像表示が実行される。しかしながら、スキャン開始画面が表示されてから平面原稿スキャン処理終了後にプレビュー画像が表示されるまでの間はUI画面の更新および操作ができない。これにより、スキャン開始からしばらくの間UIの応答が返ってこないことに対する不安感を操作者に与えてしまう可能性がある。
【0066】
そこで、物体検知部410(第1の画像生成手段)において、ステップS1404で物体静止イベントをメイン制御部402に通知した後、ステップS1408で平面画像抽出処理を実行し、補正画像を生成する。なお、ここでの平面画像抽出処理は、入力画像として距離画像センサ部208のRGBカメラ363で撮像された低解像度画像を用いて、前述した
図11のステップS1102以降の平面原稿抽出処理と同様の処理を実行すればよい。
【0067】
物体検知部410での平面画像抽出処理が終了すると、ステップS1409において、メイン制御部402はユーザインタフェース部403に対しステップS1408で得られたスキャン結果を提示するためのプレビュー画像表示指示を行う。ここで表示されるプレビュー画像は低解像度画像をもとに生成した低解像度の補正画像であるため、ステップS1407で高解像度のプレビュー画像(高解像度の補正画像)に表示を更新すればよい。
【0068】
なお、ここでは、物体検知部410において、ステップS1404での静止検知後にステップS1408の平面原稿抽出処理を実行するという流れで説明を行ったが、処理の順番はこれに限らない。すなわち、物体の静止を検知した後、先にステップS1408の平面原稿抽出処理を行い、ステップS1404の物体静止検知時に物体静止イベントと併せて抽出した平面原稿画像情報を通知しても構わない。
以上により、高解像度のカメラ画像における平面原稿スキャン結果を表示する前に、距離画像センサ部208中のRGBカメラ363で撮像された低解像度画像を利用した平面原稿スキャン結果のプレビュー表示が先行して行われる。これにより、操作者に不安感を抱かせないような即時性の高いUI表示を提供することができる。
【0069】
(第2実施形態)
実施形態1では、物体検知部410においてRGBカメラ画像から平面原稿画像を抽出すると、すぐにプレビュー画像表示を行っていた。その際、カメラの撮影が終わるよりも早く、
図13(F)に示すように、平面原稿1304上にプレビュー画像を重畳表示してしまうと、カメラ画像中にプレビュー画像も映りこんでしまい、平面原稿画像の抽出に影響を及ぼすことがある。本実施形態では、このようなカメラ画像中へのプレビュー画像の映り込みを防止するための仕組みを提供する。
【0070】
図15は、本実施形態におけるメイン制御部402のフローチャートを示している。実施形態1と同じ処理については同じステップ番号を付与し、詳細な説明は省略する。
ステップS1101においてカメラ画像取得処理が実行されると、カメラ画像取得部407においてカメラ画像が撮影される。その際、カメラ部202の内部においては、指定されたシャッタースピードによりカメラ画像を撮像する露光処理を行う。続いてベイヤー配列で記録されたRAW画像をJPEGやTIFFのような画像形式に変換する現像処理を行う。その後、メモリへの記録や転送処理などが行われる。
【0071】
そこで、ステップS1501において、カメラ画像取得部407は、カメラ部202において露光処理が終わった時点でスキャン処理部411を介し、メイン制御部402へカメラ撮像完了通知を送信する。
メイン制御部402は、ステップS1501によりカメラ撮像完了通知を受信したことを受け、S1409においてユーザインタフェース部403へプレビュー画像表示指示を行う。
以上の処理により、カメラ画像の撮像中にステップS1408による平面原稿抽出処理が終了していたとしても、カメラ撮像完了通知を受信するまでプレビュー画像表示指示を遅らせることができる。これにより、カメラ画像中にプレビュー表示が映り込むという事態を防止することができる。
【0072】
(第3実施形態)
実施形態1〜2では、物体検知部410より物体静止イベントを通知すると、自動的に平面原稿スキャンが開始する仕組みを提供した。本実施形態では、平面原稿スキャン開始タイミングを指定するための仕組みを提供する。
図16は、本実施形態におけるメイン制御部402のフローチャートを示している。実施形態1〜2と同じ処理については同じステップ番号を付与し、詳細な説明は省略する。また、
図17(A)〜(D)は、操作者1301による平面原稿スキャン操作の様子および表示画面の一例を示している。
【0073】
図16のステップS1404において、メイン制御部402は、物体検知部410より物体静止イベントを受信すると、ステップS1406において平面原稿スキャン処理を開始する。
そしてステップS1501においてカメラ撮像完了通知を受信すると、ステップS1601で、ユーザインタフェース部403へ、スキャンボタン(操作ボタン)表示指示を行う。
ユーザインタフェース部403は、
図17(A)に示すようにスキャンボタン1701を表示し、スキャンボタンの押下を促すメッセージ1302に変更する。
【0074】
図17(B)に示すように、操作者1301がスキャンボタン1701を押下すると、ジェスチャー認識部409がタッチ操作を認識し、ユーザインタフェース部403がスキャンボタン1701への操作であることを認識する。そして、ステップS1602において、メイン制御部402へスキャンボタン押下通知を送信する。
ステップS1603において、メイン制御部402は、スキャンボタン押下通知を受信すると、ユーザインタフェース部403に対しスキャン開始画面表示指示を行う。スキャン開始画面では、
図17(C)に示すように、スキャンボタン1701を非表示にし、スキャン中であることを示すメッセージ1302を表示すればよい。
【0075】
ステップS1604において、メイン制御部402はユーザインタフェース部に対し、物体検知部410で生成された平面原稿画像を表示するためのプレビュー画像表示指示を行う。プレビュー画像表示画面では、
図17(D)に示すように、平面原稿1304上にステップS1408で得られた平面原稿画像1305を重畳表示させればよい。また、ステップS1602においてメイン制御部がスキャンボタン押下通知を受けるまでに、S1104までの高解像度の平面原稿画像の生成が終了していれば、低解像度の画像を表示する必要はなく、高解像度の画像を表示すればよい。
なお、操作ボタンとしてスキャンボタンだけでなくプレビューボタンを表示し、プレビューボタンの押下により、ステップS1603におけるスキャン開始画面表示指示をせずに、ステップS1604におけるプレビュー画像表示指示のみを行っても構わない。
【0076】
以上のように、操作者1301がスキャンボタンを押下してスキャン処理を実行するUI画面を提供する。この際、スキャンボタン表示までの間にカメラ画像の露光処理を行い、スキャンボタン表示後から押下検知までの間にも平面原稿抽出処理を実行させることができる。これにより、スキャンボタンが押下されてからカメラによる撮影と平面原稿抽出処理を実行する場合に比べて、早いタイミングでプレビュー表示を操作者に提示することが可能となる。
【0077】
(第4実施形態)
実施形態3では、スキャンボタンを押下後に平面原稿スキャンが実行され、プレビュー表示されるように見せかけることで、平面原稿スキャン処理が高速に行われているかのような効果を与える仕組みを提供した。本実施系では、スキャンボタン押下前に平面原稿を動かしたり、取り除いたりした場合への対応する仕組みを提供する。
図18に本実施形態におけるメイン制御部402のフローチャートを示す。実施形態1〜3と同じ処理については同じステップ番号を付与し、詳細な説明は省略する。
【0078】
ステップS1601において、
図17(A)に示すようなスキャンボタン1701を配置したUI画面を表示する。
操作者1301は、スキャンボタン1701を押下する前に、書画台204上の平面原稿1304を取り除いたり、移動させたりするために手を挿入することもある。その際、ステップS1801において、物体検知部410より物体フレームインイベントがメイン制御部402へ通知される。
メイン制御部402は、物体フレームインイベントを受け、ステップS1802においてスキャン処理部411へ平面原稿スキャン中止通知を送信する。スキャン処理部411は、平面原稿スキャン中止通知を受信すると、その後の処理をすべて中止してメイン制御部402へ中止完了通知を送信する。
【0079】
その後、ステップS1401において、ユーザインタフェース部403は、メイン制御部402から初期画面表示指示を受信すると、スキャンボタン1701を非表示にするとともに、
図13(B)に示すような初期画面表示に更新する。
その後、物体検知部410が物体静止を再検知すると、ステップS1404において物体静止検知通知を行い、再び前述した平面原稿スキャン処理やプレビュー画像表示といった処理が実行されることになる。
【0080】
以上の処理により、スキャンボタン押下前に原稿を移動させ、再載置後に平面原稿スキャンを行う場合においても、高解像度のカメラ画像における平面原稿スキャン処理を中断できるため、次の平面原稿に対するスキャン処理をすぐに実行できる。
【0081】
(第5実施形態)
第1〜第4実施形態においては、操作者1301が載置した平面原稿1304をスキャンし、効率よくプレビュー表示をするための仕組みを提供した。本実施形態では、平面原稿1304の一部分に対して処理を行う際の領域指定を行うための仕組みとプレビュー表示の仕組みを提供する。
図19は、本実施形態におけるメイン制御部402のフローチャートを示している。実施形態1〜4と同じ処理については同じステップ番号を付与し、詳細な説明は省略する。
図20(A)〜(F)は、操作者1301が平面原稿1304中の特定領域に対して所定の処理をかける際の処理対象領域の指定操作の様子と、その表示画面の一例を示している。
【0082】
図20(A)に示すように操作者1301が平面原稿1304の載置を終了すると、メイン制御部402は、ステップS1404において物体検知部410より物体静止イベントを受信する。そして、ステップS1406によりスキャン処理部411に平面原稿スキャン処理を指示し、カメラ撮像完了通知イベントを受信するまで待機する。
ステップS1501においてカメラ撮像完了通知を受信すると、メイン制御部402は、ステップS1901において、ユーザインタフェース部403に対して処理対象領域指定画面表示の指示を行う。
【0083】
ユーザインタフェース部403は、
図20(B)に示すようにOCR処理を行う領域を指定するように促すメッセージ1302を表示する。ここでは図示はしていないが、ステップS1408で抽出された低解像度の平面原稿画像のプレビュー画像を表示し、プレビュー画像上を選択するようなUIとしても構わない。
操作者1301は
図20(C)に示すように、OCR対象となる領域2001を指定する。すると、ユーザインタフェース部403は、操作者1301が指定した処理対象領域の位置情報をメイン制御部402へ通知する。
【0084】
ステップS1903において、ユーザインタフェース部403は、メイン制御部402より実行ボタン表示指示を受信すると、
図20(D)に示すように実行ボタン2002と、実行ボタン押下を促すメッセージ1302を表示する。
図20(D)に示すように操作者1301が実行ボタン2002を押下すると、ジェスチャー認識部409がタッチ操作を検知し、ユーザインタフェース部403によって実行ボタンの押下を検知する。そして、ステップS1904において、メイン制御部402へ実行ボタン押下イベントを通知する。そして、
図20(E)に示すように、スキャン処理やOCR処理の実行中であるメッセージ1302を表示し、実行ボタン2002を非表示にする。
【0085】
ステップS1905において、メイン制御部402は、ステップS1902で受信した処理対象領域を、ステップS1408において低解像度のRGBカメラ画像から得られた平面原稿画像上での座標位置に変換する。さらにRGBカメラ画像上からカメラ画像上への座標変換を行うことで、カメラ画像上での処理対象領域が推定できる。なお、ここでの座標変換には、事前のキャリブレーションにより既知である変換パラメータを用いればよい。
ステップS1906では、ステップS1905で算出したカメラ画像上での処理対象領域の位置情報をスキャン処理部411へ通知する。
【0086】
ステップS1907において、S1103によりカメラ画像から得られた平面原稿画像上の指定された処理対象領域を抽出する。そして抽出された処理対象領域をOCR処理部412によりOCR処理を行い、ステップS1104で平面原稿画像と併せて、処理対象領域とOCR結果を保存する。
ステップS1908において、ユーザインタフェース部403は、メイン制御部402より処理結果表示指示を受信すると、
図20(F)に示すように、OCR処理が行われた領域2003をハイライト表示し、OCR処理結果2004を表示する。
【0087】
以上の処理により、低解像度のRGBカメラから抽出された平面原稿画像を用いてOCR処理対象領域を指定し、指定された処理対象領域をカメラ画像上へフィードバックすることができる。これにより、高解像度のカメラ画像による平面原稿スキャン結果を待たずに処理対象領域の指定ができ、かつ、操作者1301による範囲選択が行われている間に平面原稿スキャン処理を実行できることができる。したがって、操作者1301には対象領域指定後すぐにOCR結果を提示できることになり、応答性の高いUIを提供することができるようになる。
なお、ここでは処理対象領域に対してOCR処理を実行する場合を例に説明したが、処理対象領域に対して行う処理はこれに限るものではない。例えば、指定した対象領域に対して、トリミング処理して部分スキャンしたり、マスキング処理により所定の色で塗りつぶしたりするなどを行っても構わない。
【0088】
(第6実施形態)
第5実施形態では、低解像度のスキャン結果を利用して処理対象領域の指定を行う仕組みを提供した。しかしながら、低解像度画像上での処理対象領域を高解像度画像上へ座標変換を行うだけでは、低解像度画像上での範囲指定の精度が低いことや、座標変換時の投影誤差などの影響により、実際の処理対象領域とはずれてしまうことがある。本実施形態では、高解像度画像上において処理対象領域を補正する仕組みを提供する。
図21を用いて、本実施系における処理対象領域補正処理について説明する。
【0089】
図21(A)は、
図19のステップS1902において操作者1301によって指定された処理対象領域を、ステップS1905において低解像度の平面原稿画像2101上(第1の補正画像上)へ変換した様子を示している。
図21(B)は、さらに、高解像度の平面原稿画像2103上(第2の補正画像上)へ変換した様子を示している。このように、低解像度の平面原稿画像2101上で処理対象領域2102を正しく選択したつもりでも、高解像度の平面原稿画像2103では処理対象領域2104が正しい位置に選択されていないという状態が起こりうる。
そこで、ステップS1103において、抽出された平面原稿画像に対する領域分割処理を行い、その結果を基にして処理対象領域を補正する。
【0090】
図21(C)は、高解像度の平面原稿画像2103に対して領域分割処理を行った結果を示している。平面原稿画像2103は、図表領域2111および2131、文章2121〜2123で構成される段落2124、文章2141〜2145で構成される段落2146により構成される。そこで、この領域分割で得られた領域を十分にカバーする範囲を処理対象領域として再設定することで、補正された処理対象領域を生成する。
図21(C)に示すように、文章2141〜2143の少なくとも一部分が処理対象領域2104中に含まれている。文章2141および文章2142は行頭から選択されていて、行末の一部が処理対象領域外に存在する。一方で文章2143は、文頭は処理対象領域外であるが、行末に向かうにつれ、処理対象領域に含まれていくことが分かる。ここで、行頭から選択されている連続した文章については、行末まで処理対象領域として修正する。一方で、連続した文章において行頭が選択されていない文章においては処理対象領域外として設定する。あるいは文章中の文字列が処理対象領域として含まれる割合が閾値以上であるかなどを考慮し、処理対象領域として含めるか否かを決定しても構わない。
このような補正処理を行うことで、
図21(D)に示すように補正された処理対象領域2105を得ることができる。なお、文章に関してはさらに形態素解析を行い、文/文節/単語といった構造まで分析し、補正処理に利用してもよい。
【0091】
以上の処理により、低解像度の平面原稿画像上で指定する処理対象領域の範囲指定精度が十分高くなくても、高解像度の平面原稿画像上で処理対象領域を補正することで適切な範囲を処理対象領域として設定することが可能となる。
なお、ここでは領域分割の結果を用いた補正方法についての一例で説明を行ったが、補正の方法はこれに限るものではない。
【0092】
(その他の実施形態)
第1〜第6実施形態では、書画台204上に平面原稿が載置されると、平面原稿スキャン処理が実行されプレビュー表示を行う処理について説明したが、スキャン対象は平面原稿に限るものではなく、書籍や立体物などでも構わない。すなわち、スキャン処理部411において、対象物に合わせて平面原稿スキャン処理/書籍スキャン処理/立体物スキャン処理を実行し、同様のプレビュー表示制御を実施すればよい。
【0093】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0094】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。