(57)【要約】      （修正有）【課題】処理開始要求から処理が開始されるまでの時間を短縮することができる画像処理装置および方法を提供する。【解決手段】書画台２０４に載置された読み取り対象原稿の形状を検知し、書籍原稿か平面原稿化を判定して、その判定結果に応じてＦＰＧＡに画像処理回路を再構成し、読み取った画像データを再構成した回路で処理する。【選択図】図２
2015228187.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能回路に回路を再構成するための再構成手段と、
読み取り対象物のタイプを検知する検知手段と、
検知した前記対象物のタイプに応じて、当該対象物から読み取った画像データの処理に適した回路を前記再構成手段に再構成させる再構成制御手段と、
前記対象物から画像データを取得する画像取得手段と、
前記画像取得手段により取得した画像データを、前記再構成手段に再構成させた回路により処理させる処理制御手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記検知手段は、前記対象物の厚みを検知した場合には前記対象物が書籍原稿であると判定し、厚みを検知しない場合には前記対象物が平面原稿であると判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記再構成制御手段は、前記対象物が書籍原稿である場合には、前記再構成手段に、書籍画像の歪み補正のための回路を含む回路を再構成させることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記再構成制御手段は、前記対象物が平面原稿である場合には、前記再構成手段に、射影変換のための回路を含む回路を再構成させることを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記再構成制御手段は、書籍原稿と平面原稿とに共通に用いられる回路は再構成しないことを特徴とする請求項２乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記再構成制御手段は、書籍原稿と平面原稿とに共通に用いられる回路については、前記検知手段により前記対象物のタイプを検知する前に、再構成を開始することを特徴とする請求項２乃至４のいずれか一項に記載の画像処理装置。
【請求項７】
前記共通に用いられる回路には、ダイレクトメモリアクセス、階調補正、圧縮、フォーマット変換の少なくともいずれかを含むことを特徴とする請求項５又は６に記載の画像処理装置。
【請求項８】
前記再構成可能回路は、部分的に再構成可能なフィールドプログラマブルゲートアレイであることを特徴とする請求項１乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
画像取得手段はカメラであることを特徴とする請求項１乃至８のいずれか一項に記載の画像処理装置。
【請求項１０】
前記検知手段は前記対象物そのものをさらに検知し、該対象物の検知をトリガとしてそのタイプの検知を開始することを特徴とする請求項１乃至９のいずれか一項に記載の画像処理装置。
【請求項１１】
再構成可能回路に回路を再構成するための再構成手段を有する画像処理装置における方法であって、
読み取り対象物のタイプを検知する検知工程と、
検知した前記対象物のタイプに応じて、当該対象物から読み取った画像データの処理に適した回路を前記再構成手段に再構成させる再構成制御工程と、
前記対象物から画像データを取得する画像取得工程と、
前記画像取得工程により取得した画像データを、前記再構成手段に再構成させた回路により処理させる処理制御工程と
を有することを特徴とする方法。
【請求項１２】
再構成可能回路に回路を再構成するための再構成手段と、
読み取り対象物のタイプを検知する検知手段と、
検知した前記対象物のタイプに応じて、当該対象物から読み取った画像データの処理に適した回路を前記再構成部に再構成させる再構成制御手段と、
前記対象物から画像データを取得する画像取得手段と、
前記画像取得手段により取得した画像データを、前記再構成手段に再構成させた回路により処理させる処理制御手段と
してコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばカメラスキャナを利用して平面物および立体物の両方のデータ化を行い、保存するための画像処理装置及び回路を再構成するための方法に関する。
【背景技術】
【０００２】
書画台の上方にカメラを配置し、原稿を上向きに書画台に置いて撮像するカメラスキャナは、１枚の原稿であれば置くだけで素早くスキャンすることができるとともに、本のように厚みのある原稿も容易に書画台に置いてスキャンすることができる。さらに、紙や本のような文書だけでなく、立体物を書画台上に置いて立体形状をスキャンするカメラスキャナが特許文献１で開示されている。特許文献１のカメラスキャナは、撮像するためのカメラとともに投光部を備え、投光部から投光する計測パターンをカメラで撮像し、三角測量の原理により立体形状を測定する。そして、書画台上の置かれた物体の立体形状を算出して平面原稿か書籍か立体物かを判別し、それぞれに応じて適切な撮影モードで撮影を行う。また、特許文献２で開示されているカメラスキャナは、同様の構成を備えるとともに、書画台に物体が置かれていないときから常時投光部により計測パターンを投光し、立体形状を測定し続けることにより、物体が書画台に置かれたことを検知する。
【０００３】
撮影した画像データに対しては、例えば画質改善等のための画像処理が施されるが、その画像処理を高速に行うためにしばしば専用のハードウェアが用いられ、そのハードウェアはＰＬＤやＦＰＧＡといったプログラマブルなデバイスで実現できる。一般的に、ＰＬＤやＦＰＧＡは起動時に不揮発性メモリへ格納された論理コンフィグデータ（以下、コンフィグデータ）を内部の揮発性メモリであるコンフィギュレーションメモリへ書き込み、内部論理ブロックの機能を切り替えることで再構成が実現される。また、ＦＰＧＡには、チップ全体ではなく特定の領域だけを書き換えることが可能なものがあり、このような書き換えを部分再構成という。このため、限られた計算資源により多くの機能を実現できる。ただし、回路構成の変更（書き換え）に要する時間は長いため、再構成の完了を前倒しすべく、画像データブロックの処理中に次のブロックについて実行する可能性の高い処理を予測し、予測した処理を実現するためのコンフィグデータを高速なコンフィギュレーションメモリに先行してロードして再構成を行う技術が開示されている（例えば、特許文献３参照。）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許０４０１２７１０号明細書
【特許文献２】特許０３９５４４３６号明細書
【特許文献３】特開２０１２−２３４３３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献３によれば、このコンフィグデータの書き換えは、そのユーザからの処理開始要求後に、次に処理される画像データブロックの解析結果を取得し、解析結果を基にして開始される。このため、処理開始の指示から解析および再構成処理のための遅延が避けられないという課題があった。
【０００６】
本発明は、このような問題に鑑みてなされたものであり、取得対象の画像データを取得するまでのコンテキストから処理内容を先取りして再構成を行うことで、明示的な処理開始の指示がなくとも再構成でき、処理開始要求から処理が開始されるまでの時間を短縮することができる画像処理装置および方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は以下の構成を有する。すなわち、本発明の一側面によれば、再構成可能回路に回路を再構成するための再構成手段と、
読み取り対象物のタイプを検知する検知手段と、
検知した前記対象物のタイプに応じて、当該対象物から読み取った画像データの処理に適した回路を前記再構成部に再構成させる再構成制御手段と、
前記対象物から画像データを取得する画像取得手段と、
前記画像取得手段により取得した画像データを、前記再構成手段に再構成させた回路により処理させる処理制御手段と
を有する。
【発明の効果】
【０００８】
本発明によれば、カメラからの情報を元に処理開始要求の前に、必要となる画像処理機能の再構成を完了させておくことにより、再構成可能な回路を有する画像処理装置においても、処理開始までの待ち時間を短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】カメラスキャナ１０１のネットワーク構成を示す図である。
【図２】カメラスキャナ１０１の外観を示す図である。
【図３】コントローラ部２０１のハードウェア構成図である。
【図４】カメラスキャナ１０１の制御用プログラムの機能構成図およびシーケンス図である。
【図５】距離画像取得部４０８が実行する処理のフローチャートおよび説明図である。
【図６】実施形態１のメイン制御部４０２が実行する処理のフローチャートである。
【図７】ＦＰＧＡ３１３のハードウェア構成図である。
【図８】物体検知部４１０が実行する処理のフローチャートである。
【図９】平面原稿撮影部４１１が実行する処理のフローチャートである。
【図１０】平面原稿撮影部４１１が実行する処理の説明図である。
【図１１】書籍画像撮影部４１２が実行する処理のフローチャートである。
【図１２】書籍画像撮影部４１２が実行する処理の説明図である。
【図１３】再構成部７０１に構成される画像処理機能を説明する図である。
【図１４】実施形態２のメイン制御部４０２が実行する処理のフローチャートである。
【図１５】実施形態２における再構成部７０１に構成される処理機能の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を参照して説明する。
［実施形態１］
図１は、一実施形態に係るカメラスキャナ１０１が含まれるネットワーク構成を示す図である。図１に示すように、カメラスキャナ１０１はイーサネット（登録商標）等のネットワーク１０４にてホストコンピュータ１０２およびプリンタ１０３に接続されている。図１のネットワーク構成において、ホストコンピュータ１０２からの指示により、カメラスキャナ１０１から画像を読み取るスキャン機能や、スキャンデータをプリンタ１０３により出力するプリント機能の実行が可能である。また、ホストコンピュータ１０２を介さず、カメラスキャナ１０１への直接の指示により、スキャン機能、プリント機能の実行も可能である。
【００１１】
＜カメラスキャナの構成＞
図２は、一実施形態に係るカメラスキャナ１０１の構成例を示す図である。図２（ａ）に示すように、カメラスキャナ１０１は、コントローラ部２０１、カメラ部２０２、腕部２０３、短焦点プロジェクタ２０７、距離画像センサ部２０８を含む。カメラスキャナの本体であるコントローラ部２０１と、撮像を行うためのカメラ部２０２、短焦点プロジェクタ２０７および距離画像センサ部２０８は、腕部２０３により連結されている。腕部２０３は関節を用いて曲げ伸ばしが可能である。図２（ａ）には、カメラスキャナ１０１が設置されている書画台２０４も示している。カメラ部２０２および距離画像センサ部２０８のレンズは書画台２０４方向に向けられており、破線で囲まれた読み取り領域２０５内の画像を読み取り可能である。図２（ａ）の例では、原稿２０６は読み取り領域２０５内に置かれているので、カメラスキャナ１０１に読み取り可能となっている。また、書画台２０４内にはターンテーブル２０９が設けられている。ターンテーブル２０９はコントローラ部２０１からの指示によって回転することが可能であり、ターンテーブル２０９上に置かれた物体とカメラ部２０２との角度を変えることができる。カメラ部２０２は単一解像度で画像を撮像するものとしてもよいが、高解像度画像撮像と低解像度画像撮像が可能なものとすることが好ましい。なお、図２に示されていないが、カメラスキャナ１０１は、ＬＣＤタッチパネル３３０およびスピーカ３４０をさらに含むこともできる。
【００１２】
図２（ｂ）は、カメラスキャナ１０１における座標系について表している。カメラスキャナ１０１では各ハードウェアデバイスに対して、カメラ座標系、距離画像座標系、プロジェクタ座標系という座標系が定義される。これらは、カメラ部２０２および距離画像センサ部２０７のＲＧＢカメラ部５０３が撮像する画像平面、あるいはプロジェクタ２０７が投影する画像平面をＸＹ平面とし、画像平面に直交した方向をＺ方向として定義したものである。さらに、これらの独立した座標系の３次元データを統一的に扱えるようにするために、書画台２０４を含む平面をＸＹ平面とし、このＸＹ平面から上方に垂直な向きをＺ軸とする直交座標系を定義する。
【００１３】
座標系を変換する場合の例として、図２（ｃ）に直交座標系と、カメラ部２０２を中心としたカメラ座標系を用いて表現された空間と、カメラ部２０２が撮像する画像平面との関係を示す。直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］は、（１）式によって、カメラ座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換できる。
[Xc,Yc,Zc]T = [Rc|tc][X,Y,Z,1]T    ...  （１）
ここで、Ｒｃおよびｔｃは、直交座標系に対するカメラの姿勢（回転）と位置（並進）によって求まる外部パラメータによって構成され、Ｒｃを３×３の回転行列、ｔｃを並進ベクトルと呼ぶ。逆に、カメラ座標系で定義された３次元点は（２）式によって、直交座標系への変換することができる。
[X,Y,Z]T = [Rc-1|-Rc-1tc] [Xc,Yc,Zc,1]T    ...  （２）
さらに、カメラ部２０２で撮影される２次元のカメラ画像平面は、カメラ部２０２によって３次元空間中の３次元情報が２次元情報に変換されたものである。すなわち、カメラ座標系上での３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］を、（３）式によってカメラ画像平面での２次元座標ｐｃ［ｘｐ，ｙｐ］に透視投影変換することによって変換することが出来る。
λ[xp,yp,1]T =A [Xc,Yc,Zc]T    ...  （３）
ここで、Ａは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心などで表現される３×３の行列である。
【００１４】
以上のように、（１）式と（３）式を用いることで、直交座標系で表された３次元点群を、カメラ座標系での３次元点群座標やカメラ画像平面に変換することが出来る。なお、各ハードウェアデバイスの内部パラメータおよび直交座標系に対する位置姿勢（外部パラメータ）は、公知のキャリブレーション手法によりあらかじめキャリブレーションされているものとする。以後、特に断りがなく３次元点群と表記した場合は、直交座標系における３次元データを表しているものとする。
【００１５】
＜カメラスキャナのコントローラのハードウェア構成＞
図３は、カメラスキャナ１０１の本体であるコントローラ部２０１のハードウェア構成例を示す図である。図３に示すように、コントローラ部２０１は、システムバス３０１に接続されたＣＰＵ３０２、ＲＡＭ３０３、ＲＯＭ３０４、ＨＤＤ３０５、ネットワークＩ／Ｆ３０６、画像処理プロセッサ３０７、カメラＩ／Ｆ３０８、ディスプレイコントローラ３０９、シリアルＩ／Ｆ３１０、オーディオコントローラ３１１およびＵＳＢコントローラ３１２、再構成可能回路であるＦＰＧＡ（フィールドプログラマブルゲートアレイ）３１３を含む。
【００１６】
ＣＰＵ３０２はコントローラ部２０１全体の動作を制御する中央演算装置である。ＲＡＭ３０３は揮発性メモリである。ＲＯＭ３０４は不揮発性メモリであり、ＣＰＵ３０２の起動用プログラムが格納されている。またこのＲＯＭ３０４は後述するＦＰＧＡ３１３の再構成部７０１をコンフィギュレーションする為のコンフィグデータが格納されている。ＨＤＤ３０５はＲＡＭ３０３と比較して大容量なハードディスクドライブ（ＨＤＤ）である。ＨＤＤ３０５にはコントローラ部２０１の実行する、カメラスキャナ１０１の制御用プログラムが格納されている。
【００１７】
ＣＰＵ３０２は電源ＯＮ等の起動時、ＲＯＭ３０４に格納されている起動用プログラムを実行する。この起動用プログラムは、ＨＤＤ３０５に格納されている制御用プログラムを読み出し、ＲＡＭ３０３上に展開するためのものである。ＣＰＵ３０２は起動用プログラムを実行すると、続けてＲＡＭ３０３上に展開した制御用プログラムを実行し、制御を行う。また、ＣＰＵ３０２は制御用プログラムによる動作に用いるデータもＲＡＭ３０３上に格納して読み書きを行う。ＨＤＤ３０５上にはさらに、制御用プログラムによる動作に必要な各種設定や、また、カメラ入力によって生成した画像データを格納することができ、ＣＰＵ３０２によって読み書きされる。ＣＰＵ３０２はネットワークＩ／Ｆ３０６を介してネットワーク１０４上の他の機器との通信を行う。
【００１８】
画像処理プロセッサ３０７はＲＡＭ３０３に格納された画像データを読み出して処理し、またＲＡＭ３０３へ書き戻す。なお、画像処理プロセッサ３０７が実行する画像処理は、変倍、色変換等である。
【００１９】
カメラＩ／Ｆ３０８はカメラ部２０２および距離画像センサ２０８と接続され、ＣＰＵ３０２からの指示に応じてカメラ部２０２から画像データを、距離画像センサ部２０８から距離画像データを取得してＲＡＭ３０３へ書き込む。また、ＣＰＵ３０２からの制御コマンドをカメラ部２０２および距離画像センサ２０８へ送信し、カメラ部２０２および距離画像センサ２０８の設定を行う。距離画像センサ２０８には赤外線パターン投射部３６１、赤外線カメラ３６２、ＲＧＢカメラ３６３が含まれる。これについては後述する。
【００２０】
また、コントローラ部２０２は、ディスプレイコントローラ３０９、シリアルＩ／Ｆ３１０、オーディオコントローラ３１１およびＵＳＢコントローラ３１２のうち少なくとも１つをさらに含むことができる。
【００２１】
ディスプレイコントローラ３０９はＣＰＵ３０２の指示に応じてディスプレイへの画像データの表示を制御する。ここでは、ディスプレイコントローラ３０９は短焦点プロジェクタ２０７およびＬＣＤタッチパネル３３０に接続されている。
【００２２】
シリアルＩ／Ｆ３１０はシリアル信号の入出力を行う。ここでは、シリアルＩ／Ｆ３１０はターンテーブル２１０に接続され、ＣＰＵ３０２の回転開始・終了および回転角度の指示をターンテーブル２０９へ送信する。また、シリアルＩ／Ｆ３１０はＬＣＤタッチパネル３３０に接続され、ＣＰＵ３０２はＬＣＤタッチパネル３３０が押下されたときに、シリアルＩ／Ｆ３１０を介して押下された座標を取得する。
【００２３】
オーディオコントローラ３１１はスピーカ３４０に接続され、ＣＰＵ３０２の指示に応じて音声データをアナログ音声信号に変換し、スピーカ３４０を通じて音声を出力する。
【００２４】
ＵＳＢコントローラ３１２はＣＰＵ３０２の指示に応じて外付けのＵＳＢデバイスの制御を行う。ここでは、ＵＳＢコントローラ３１２はＵＳＢメモリやＳＤカードなどの外部メモリ３５０に接続され、外部メモリ３５０へのデータの読み書きを行う。
【００２５】
また、画像処理の処理制御としても機能するコントローラ部２０１は、画像処理のための回路が構成されたＦＰＧＡ３１３によってＲＡＭ３０３もしくはＨＤＤ３０５に格納された画像データを読み出して処理し、またＲＡＭ３０３もしくはＨＤＤに書き戻す。もしくはネットワークＩ／Ｆ３０６を用いて外部に送信する。詳細は後述する。
【００２６】
＜カメラスキャナの制御用プログラムの機能構成＞
図４（ａ）は、ＣＰＵ３０２が実行するカメラスキャナ１０１の制御用プログラムの機能構成４０１を示す図である。また、図４（ｂ）は、機能構成４０１の各モジュールの関係をシーケンス図として示したものである。
【００２７】
カメラスキャナ１０１の制御用プログラムは前述のようにＨＤＤ３０５に格納され、ＣＰＵ３０２が起動時にＲＡＭ３０３上に展開して実行する。メイン制御部４０２は制御の中心であり、機能構成４０１内の他の各モジュールを図４（ｂ）に示すように制御する。
【００２８】
画像取得部４１３は画像入力処理を行うモジュールであり、カメラ画像取得部４０７、距離画像取得部４０８から構成される。カメラ画像取得部４０７はカメラＩ／Ｆ３０８を介してカメラ部２０２が出力する画像データを取得し、ＲＡＭ３０３へ格納する。距離画像取得部４０８はカメラＩ／Ｆ３０８を介して距離センサ部２０８が出力する距離画像データを取得し、ＲＡＭ３０３へ格納する。距離画像取得部４０８の処理の詳細は図５を用いて後述する。
【００２９】
物体検知部４０９はカメラ画像取得部４０７、距離画像取得部４０８が取得する画像データから書画台２０４上の物体の動きを検知して認識するモジュールである。物体検知部４０９は、メイン制御部４０２から物体載置待ち処理あるいは物体除去待ち処理の通知を受けると（Ｓ４５１）、画像取得部４１３から書画台２０４を撮像した画像を取得し（Ｓ４５３）、書画台２０４上に物体が置かれて静止するタイミングあるいは物体が取り除かれるタイミングを検知する処理を行う。検知結果はメイン制御部４０２に通知される（Ｓ４５５）。物体検知部４０９の処理の詳細は図８を用いてそれぞれ後述する。
【００３０】
スキャン処理部４１２は実際に対象物のスキャンを行うモジュールであり、平面原稿画像撮影部４１０、書籍画像撮影部４１１から構成される。メイン制御部４０２からの指示に応じて（Ｓ４６５）、平面原稿画像撮影部４１０は平面原稿、書籍画像撮影部４１１は書籍に、それぞれ適した処理を、画像取得部４１３により取得した画像に対して実行し、それぞれに応じた形式のデータを出力する（Ｓ４６７）。またこれらの処理の一部をＦＰＧＡ３１３で行う場合には、メイン制御部４０２を介してコンフィグ管理部４１４からコンフィグレーションの完了を確認してから処理の実行を行う。これらのモジュールの処理の詳細は図９〜図１２を用いてそれぞれ後述する。
【００３１】
コンフィグ管理部４１４は、再構成制御を行うメイン制御部４０２が画像取得部４１３からの情報を元に決定したスキャン実行処理の処理内容を受信し（Ｓ４５７）、その処理内容に該当する回路を再構成部７０１（図７で後述）に構成する。構成が終了するとその情報をメイン制御部４０２に通知する（Ｓ４５９）。
【００３２】
ユーザインターフェイス部４０３は、メイン制御部４０２からの要求を受け（Ｓ４６１）、メッセージやボタン等のＧＵＩ部品を生成する。そして、表示部４０６へ生成したＧＵＩ部品の表示を要求する。なお、書画台２０４上のＧＵＩ部品の表示場所は、表示部４０６はディスプレイコントローラ３０９を介して、短焦点プロジェクタ２０７もしくはＬＣＤタッチパネル３３０へ要求されたＧＵＩ部品の表示を行う。プロジェクタ２０７は書画台２０４に向けて設置されているため、書画台２０４上にＧＵＩ部品を投射することが可能となっている。また、ユーザインターフェイス部４０３は、シリアルＩ／Ｆ３１０を介したＬＣＤタッチパネル３３０からの入力操作、そしてさらにそれらの座標を受信する。そして、ユーザインターフェイス部４０３は描画中の操作画面の内容と操作座標を対応させて操作内容（押下されたボタン等）を判定する。この操作内容をメイン制御部４０２へ通知することにより、操作者の操作を受け付ける（Ｓ４６３）。
【００３３】
ネットワーク通信部４０４は、ネットワークＩ／Ｆ３０６を介して、ネットワーク１０４上の他の機器とＴＣＰ／ＩＰによる通信を行う。データ管理部４０５は、制御用プログラム４０１の実行において生成した作業データなど様々なデータをＨＤＤ３０５上の所定の領域へ保存し、管理する。例えば平面原稿画像撮影部４１０、書籍画像撮影部４１１が生成したスキャンデータなどである。
【００３４】
＜距離画像センサおよび距離画像取得部の説明＞
図３に距離画像センサ２０８の構成を示している。距離画像センサ２０８は赤外線によるパターン投射方式の距離画像センサである。赤外線パターン投射部３６１は対象物に、人の目には不可視である赤外線によって３次元測定パターンを投射する。赤外線カメラ３６２は対象物に投射した３次元測定パターンを読みとるカメラである。ＲＧＢカメラ３６３は人の目に見える可視光をＲＧＢ信号で撮影するカメラである。
【００３５】
距離画像取得部４０８の処理を図５（ａ）のフローチャートを用いて説明する。また、図５（ｂ）〜（ｄ）はパターン投射方式による距離画像の計測原理を説明するための図面である。距離画像取得部４０８が処理を開始すると、ステップＳ５０１では、図５（ｂ）に示すように赤外線パターン投射部３６１を用いて赤外線による３次元形状測定パターン５２２を対象物５２１に投射する。ステップＳ５０２では、ＲＧＢカメラ３６３を用いて対象物を撮影したＲＧＢ画像５２３および、赤外線カメラ３６２を用いてステップＳ５０１で投射した３次元測定パターン５２２を撮影した赤外線カメラ画像５２４を取得する。なお、赤外線カメラ３６２とＲＧＢカメラ３６３とでは設置位置が異なるため、図５（ｃ）に示すようにそれぞれで撮影される２つのＲＧＢカメラ画像５２３および赤外線カメラ画像５２４の撮影領域が異なる。そこでステップＳ５０３では、赤外線カメラ３６２の座標系からＲＧＢカメラ３６３の座標系への座標系変換を用いて赤外線カメラ画像５２４をＲＧＢカメラ画像５２３の座標系に合わせる。なお、赤外線カメラ３６２とＲＧＢカメラ３６３の相対位置や、それぞれの内部パラメータは事前のキャリブレーション処理により既知であるとする。
【００３６】
ステップＳ５０４では、図５（ｃ）に示すように、３次元測定パターン５２２とステップＳ５０３で座標変換を行った赤外線カメラ画像５２４間での対応点を抽出する。例えば、赤外線カメラ画像５２４上の１点を３次元形状測定パターン５２２上から探索して、同一の点が検出された場合に対応付けを行う。あるいは、赤外線カメラ画像５２４の画素の周辺のパターンを３次元形状測定パターン５２２上から探索し、一番類似度が高い部分と対応付けてもよい。ステップＳ５０５では、赤外線パターン投射部３６１と赤外線カメラ３６２を結ぶ直線を基線５２５として三角測量の原理を用いて計算を行うことにより、赤外線カメラ３６２からの距離を算出する。ステップＳ５０４で対応付けが出来た画素については、赤外線カメラ３６２からの距離を算出して画素値として保存し、対応付けが出来なかった画素については、距離の計測が出来なかった部分として無効値を保存する。これをステップＳ５０３で座標変換を行った赤外線カメラ画像５２４の全画素に対して行うことで、各画素に距離値が入った距離画像を生成する。ステップＳ５０６では、距離画像の各画素にＲＧＢカメラ画像５２５のＲＧＢ値を保存することにより、１画素につきＲ、Ｇ、Ｂ、距離の４つの値を持つ距離画像を生成する。ここで取得した距離画像は距離画像センサ２０８のＲＧＢカメラ３６３で定義された距離画像センサ座標系が基準となっている。そこでステップＳ５０７では、図２（ｂ）を用いて上述したように、距離画像センサ座標系として得られた距離データを直交座標系における３次元点群に変換する。（以後、特に指定がなく３次元点群と表記した場合は、直交座標系における３次元点群を示すものとする。）このようにして、測定した物体の形状を示す３次元点群を取得できる。
【００３７】
なお、本実施例では上述したように、距離画像センサ２０８として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、２つのＲＧＢカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するＴＯＦ（Ｔｉｍe  ｏｆ  Ｆｌｉｇｈｔ）方式を用いても構わない。また撮像対象物が人体などの赤外線を発するような場合は、焦電型赤外線センサを用いて対象物の認識と距離の測定を行っても良い。
【００３８】
＜メイン制御部の説明＞
図６のフローチャートを用いてメイン制御部４０２が実行するスキャンアプリケーションの処理について説明する。メイン制御部４０２が処理を開始すると、図６のステップＳ６０１では書画台２０４にスキャンの対象物が載置されるのを待つ。対象物載置待ち処理を開始すると、ステップＳ６１１ではユーザインターフェイス部４０３のＧＵＩ部品生成表示部４１４を介して、書画台２０４にプロジェクタ２０７によって初期画面を投射表示する。ステップＳ６１２では物体検知部４１０の処理を起動する。物体検知部４１０は図８のフローチャートで説明した処理の実行を開始する。ステップＳ６１３では、物体検知部４１０からの物体載置通知を待つ。物体検知部４１０が図８のステップＳ８２７の処理を実行して物体載置をメイン制御部４０２へ通知すると、ステップＳ６１３において物体載置通知ありと判断し、物体載置待ち処理を終了する。
【００３９】
ステップＳ６０１の物体載置待ち処理を終了すると、メイン制御部４０２は続いてステップＳ６０２において、対象物の積載を認識した事を知らせるためのＧＵＩ部品を表示するための処理を行う。
【００４０】
ＧＵＩ部品更新処理が終了すると、Ｓ６０３においてスキャン処理の実行を行うかどうかの判断を行う。ここで処理を開始するとの判断は、例えば画像取得部４１３からの情報を元に動く対象物の検知後に当該対象物が静止した事の判断に基づいても良いし、もしくはユーザがユーザインターフェイス部４０３上で行った処理の開始の指示に基づいてもよい。対象物の動きは、所定時間間隔おいて取得した距離画像等により検知可能である。フレーム処理開始の決定がされたタイミングで、スキャン処理の開始が指示される。Ｓ６０３においてスキャン処理の実行のトリガ（対象物の静止或いはユーザ指示等）が無い場合には実行トリガがあるまで待つ。スキャン処理の実行開始の判断がされるとＳ６０４においてスキャン実行処理を行う。
【００４１】
スキャン実行処理開始時には、Ｓ６４１において積載物の内容に応じてどの処理内容を適用するかの判断を行う。この判断はメイン制御部４０２において画像取得部４１３からの情報を元に判断が行われる。本実施例では一例として距離画像センサ部２０８とカメラ部２０２の情報を元に手領域以外の物体の高さが一定値以下かどうかで適用する処理の判断を行う。より具体的な一例としてはカメラ部から肌色領域を検出し、その肌色領域を手領域と見なし、その部分以外の領域が所定の高さ以下にある場合は載置された物体が平面原稿であると判断し、平面原稿撮影部の処理に進む。一方、所定の高さ以上の場合には載置された物体が厚みのある原稿であると判断し、書籍画像撮影部の処理を実行する。なお肌色領域は、例えば予め操作者の肌の色のサンプルを取得し、それと比較することなどで判定できる。Ｓ６４１において実行すべき処理が決定すると、メイン制御部４０２は決定した処理内容をコンフィグ管理部４１４に伝える。処理が伝えられるとＳ６０７においてコンフィグ実行処理が開始される。
【００４２】
コンフィグ実行処理においては、図７で後述するように、決定した処理内容に対応する回路情報を再構成部７０１に構成する。実行する処理が平面原稿撮影部処理の場合はＳ６７１において平面原稿回路のコンフィグレーションを行なう。実行する処理が書籍画像撮影部処理の場合にはＳ６７２において書籍画像回路のコンフィグレーションを実行する。それぞれのコンフィグレーションにより、ロードされたコンフィグデータに応じた回路がＦＰＧＡ３１３に形成される。本例では、平面原稿と書籍原稿とで共通に用いられる回路については再構成の対象とせず、それぞれのタイプの原稿において固有に用いられる回路を、再構成の対象（すなわち不要であれば、必要なものに置換される回路）としてもよい。その場合、たとえば、ホワイトバランス補正、画面むら補正、逆フィルタ、幾何補正、平滑化、補間など処理回路は原稿タイプによらず共通に用いられるものとして再構成の対象としない。書籍の綴じに起因する歪みを補正するブック伸ばし補正、書籍の「のど」を補正するのど補正、原稿とともに撮影された指等を除去する指除去補正の回路は、書籍原稿と判断された場合に再構成し、回転や切り出の回路は平面原稿に固有の回路として再構成する。原稿タイプごとの回路は、他の原稿タイプの回路と共存しなくともよい。また、例示した回路の分類は一例であって、回路規模等に応じて原稿タイプごとに再構成売る回路や、再構成対象としない回路を適宜決めることができる。
【００４３】
このコンフィグレーションが完了すると、コンフィグ管理部４１４は完了した旨をメイン制御部４０２に通知する。このコンフィグ実行処理が終了するとスキャン実行処理を継続し、平面原稿撮影部処理の場合にはステップＳ６４２へ進み平面原稿撮影部４１０の処理を実行する。書籍画像撮影部の場合にはＳ６４３へ進み書籍画像撮影部４１１の処理を実行する。そしてステップＳ６４２〜ステップＳ６４３のいずれかによる処理が終了すると、スキャン実行処理を終了する。
【００４４】
ステップＳ６０４のスキャン実行処理を終了すると、メイン制御部４０２は続いてステップＳ６０５の物体除去待ち処理を行う。物体除去待ち処理を開始すると、ステップＳ６５１ではＧＵＩ部品生成表部４１４は図示しないスキャン終了画面を表示する。ステップＳ６５２では、物体検知部４１０からの物体除去通知を受信するのを待つ。ここで、物体除去通知は、物体検知部４１０が図８のステップＳ８３４で通知するものである。ステップＳ６４２で物体除去通知があると、物体除去待ち処理を終了する。
【００４５】
ステップＳ６０５の物体除去待ち処理を終了すると、メイン制御部４０２はＳ６０６へ進み、スキャン終了判定処理を行う。スキャン終了判定は、ネットワークＩ／Ｆ３０６を介してホストコンピュータ１０２から送信されるスキャン終了命令や、ＬＣＤタッチパネル３３０から入力される終了命令、あるいはタイマー設定（図示なし）などにより行われるものとする。スキャン終了命令を受信した場合はスキャン処理を終了する。スキャン処理を継続する場合にはＳ６０１へ戻り、書画台２０４への物体載置を待つ。このようにすることで、ユーザが複数の原稿をスキャンしたい場合に、書画台２０４上の原稿を取り換えたことを検知することができ、複数の原稿のスキャンを連続して実行できる。
【００４６】
＜ＦＰＧＡの構成＞
図７はＦＰＧＡ３１３の内部を示す図である。ＦＰＧＡ３１３は、再構成部７０１と、再構成部７０１に構成される回路の情報であるコンフィグデータを制御するコンフィグコントローラ７０６とを有する。再構成部７０１は、書き換え可能な論理回路であり、動的書き換え可能かつ部分書き換え可能なものである。すなわち、再構成部７０１の一部に再構成された回路が動作している間に、その回路が占める部分とは重ならない別の部分に別の回路を再構成することができる。図７の例では、再構成部７０１には、各種画像処理を行うための論理回路が部分的に再構成できる画像処理部Ａ７０２、画像処理部Ｂ７０３、および画像処理部Ｃ７０４を有する。なお、本実施形態では再構成部７０１に構成される画像処理部の数が３つの場合の形態を示しているが、画像処理部の数は３つに限定されるものではない。メモリコントローラ７０７は、システムバス３０１および画像バス７０５に接続され、画像バス７０５に接続されたバスマスタのＲＡＭ３０３へのアクセスと、システムバス１２０に接続されたバスマスタのＲＡＭ３０３アクセスとを、排他的に切り替える。またコンフィグコントローラ７０６及びメモリコントローラ７０７はＦＰＧＡ３１３内部でなく、ＦＰＧＡの外部にシステムバス３０１を介してＦＰＧＡと接続されても良い。図６のコンフィグ実行処理Ｓ６０７によりＦＰＧＡ３１３の再構成部７０１に、画像処理回路が構成される。そしてその画像処理回路により、スキャンした画像に対する種々の画像処理を実行する。
【００４７】
＜物体検知部の処理＞
図８のフローチャートを用いて物体検知部４１０の処理の説明を行う。図６のステップＳ６１２等で起動された物体検知部４１０が処理を開始すると、図８（ａ）のステップＳ８０１では、ステップＳ８１１〜Ｓ８１３に示す初期化処理を行う。ステップＳ８１１では、カメラ画像取得部４０７からカメラ画像を、距離画像取得部４０８から距離画像をそれぞれ１フレーム取得する。ステップＳ８１２では、取得したカメラ画像を前フレームカメラ画像として保存する。ステップＳ８１３では、取得したカメラ画像および距離画像を書画台背景カメラ画像および書画台背景距離画像としてそれぞれ保存する。（以降、「書画台背景カメラ画像」および「書画台背景距離画像」と記載した場合は、ここで取得したカメラ画像および距離画像のことを指す。）
ステップＳ８０２では、物体が書画台２０４上に置かれたことの検知（物体載置検知処理）を行う。処理の詳細は図８（ｂ）を用いて後述する。ステップＳ８０３では、ステップＳ８０２で載置を検知した書画台２０４上の物体が除去されることの検知（物体除去検知処理）を行う。処理の詳細は図８（ｃ）を用いて後述する。
【００４８】
図８（ｂ）はステップＳ８０２の物体載置検知処理の詳細である。物体載置検知処理を開始すると、ステップＳ８２１ではカメラ画像取得部４０７からカメラ画像を１フレーム取得する。ステップＳ８２２では取得したカメラ画像と前フレームカメラ画像との差分を計算してその絶対値を合計した差分値を算出する。ステップＳ８２３では算出した差分値があらかじめ決めておいた所定値以上かどうかを判定する。算出した差分値が所定値未満であれば書画台２０４上には物体が無いと判断し、ステップＳ８２８へ進んで現フレームのカメラ画像を前フレームカメラ画像として保存してからステップＳ８２１へ戻って処理を続ける。ステップＳ８２３において差分値が所定値以上であればステップＳ８２４へ進み、ステップＳ８２１で取得したカメラ画像と前フレームカメラ画像との差分値を、ステップＳ８２２と同様に算出する。ステップＳ８２５では算出した差分値があらかじめ決めておいた所定値以下であるかどうかを判定する。ステップＳ８２５において算出した差分値が所定値よりも大きければ書画台２０４上の物体が動いていると判断し、ステップＳ８２８へ進んで現フレームのカメラ画像を前フレームカメラ画像として保存してから、ステップＳ８２１へ戻り処理を続ける。ステップＳ８２５において算出した差分値が所定値以下であればステップＳ８２６へ進む。ステップＳ８２６では、ステップＳ８２５が連続してＹＥＳとなった回数から、差分値が所定値以下、つまり書画台２０４上の物体が静止した状態があらかじめ決めておいたフレーム数続いたかどうかを判定する。ステップＳ８２６において書画台２０４上の物体が静止した状態があらかじめ決めておいたフレーム数続いていないと判定したら、ステップＳ８２８へ進んで現フレームのカメラ画像を前フレームカメラ画像として保存し、ステップＳ８２１へ戻って処理を続ける。ステップＳ８２６において画台２０４上の物体が静止した状態があらかじめ決めておいたフレーム数続いたと判定したら、ステップＳ８２７へ進んで物体が置かれたことをメイン制御部４０２へ通知し、物体載置検知処理を終了する。
【００４９】
図８（ｃ）はステップＳ８０３の物体除去検知処理の詳細フローチャートである。物体除去検知処理を開始するとステップＳ８３１ではカメラ画像取得部４０７からカメラ画像を１フレーム取得する。ステップＳ８３２では取得したカメラ画像と書画台背景カメラ画像との差分値を算出する。ステップＳ８３３では算出した差分値が予め決めておいた所定値以下かどうかを判定する。ステップＳ８３３において算出した差分値が予め決めておいた所定値よりも大きければ書画台２０４上にまだ物体が存在するため、ステップＳ８３１へ戻って処理を続ける。ステップＳ８３３において算出した差分値が予め決めておいた所定値以下であれば書画台２０４上の物体が無くなったため、物体除去をメイン制御部４０２へ通知し、物体除去検知処理を終了する。
【００５０】
＜平面原稿画像撮影部の説明＞
図９のフローチャートを用いて、平面原稿画像撮影部４１１が図６のステップＳ６４２で実行する処理を説明する。図１０は平面原稿画像撮影部４１１の処理を説明するための模式図である。平面原稿画像撮影部４１１は処理を開始すると、ステップＳ９０１ではカメラ画像取得部４０７を介してカメラ部２０２からの画像を１フレーム取得する。ここで、カメラ部２０２の座標系は図２（ｂ）で示したように書画台２０４に正対していないため、このときの撮影画像は図１０（ａ）に示すように対象物１００１、書画台２０４ともに歪んでいる。ステップＳ９０２では、書画台背景カメラ画像とステップＳ９０１で取得したカメラ画像との画素毎の差分を算出し、差分画像を生成した上で、差分のある画素が黒、差分の無い画素が白となるように二値化する。したがって、ここで生成した差分画像は、図１０（ｂ）の領域１００２のように、対象物１００１の領域が黒色である（差分がある）画像となる。ステップＳ９０３では差分領域１００２を用いて、図１０（ｃ）のように対象物１００１のみの画像を抽出する。対象物のみの画像が検出されるとＳ９０８において、その画像に対する画像処理を行う。この画像処理はＦＰＧＡ３１３、もしくはＣＰＵ３０２、画像処理プロセッサ３０７のどれで実行しても良い。しかし、ＦＰＧＡ３１３に専用回路が構成されている処理であれば、ＦＰＧＡ３１３の回路を用いるのが望ましいし、図６のステップＳ６７１により平面原稿用の画像処理回路のコンフィグレーションを行うことで、全ての画像処理をＦＰＧＡ３１３により実行することも可能である。ステップＳ９０４では、抽出した原稿領域画像に対して階調補正を行う。ステップＳ９０５では、抽出した原稿領域画像に対してカメラ座標系から書画台２０４への射影変換を行い、図１０（ｄ）のように書画台２０４の真上から見た画像１００３に変換する。ここで用いる射影変換パラメータは、平面パラメータとカメラ座標系から求めることができる。なお、図１０（ｄ）に示したように、書画台２０４上への原稿の置き方により、ここで得られる画像１００３は傾いていることがある。そこで、ステップＳ９０６では、画像１００３を矩形近似してからその矩形が水平になるように回転し、図９（ｅ）で示した画像１００４のように傾きの無い画像を得る。図１０（ｆ）に示すように、基準ラインに対しての矩形の傾きθ１およびθ２を算出し、傾きが小さい方（ここではθ１）を画像１００３の回転角度として決定する。あるいは、図１０（ｇ）および図１０（ｈ）に示すように、画像１００３中に含まれる文字列に対してＯＣＲ処理を行い、文字列の傾きから画像１００３の回転角度の算出および天地判定処理をしてもよい。ステップＳ９０７では抽出した画像１００４に対して、あらかじめ決めておいた画像フォーマット（例えばＪＰＥＧ、ＴＩＦＦ、ＰＤＦ等）に合わせて圧縮およびファイルフォーマット変換を行う。そして、データ管理部４０５を介してＨＤＤ３０５の所定の領域へファイルとして保存し、平面原稿画像撮影部４１１の処理を終了する。
【００５１】
＜書籍画像撮影部の処理＞
図１１のフローチャートを用いて、書籍画像撮影部４１２が図６のステップＳ６４３で実行する処理について説明する。図１２は書籍画像撮影部４１２の処理を説明するための模式図である。図１１（ａ）のフローチャートで、書籍画像撮影部４１２は処理を開始すると、ステップＳ１１０１ではカメラ画像取得部４０７、距離画像取得部４０８を用いて、カメラ部２０２からカメラ画像を、距離画像センサ部２０８から距離画像を、それぞれ１フレームずつ取得する。ここで得られるカメラ画像の例を図１２（ａ）に示す。図１２（ａ）では、書画台２０４と撮影対象書籍１２１１を含むカメラ画像１２０１が得られている。図１２（ｂ）はここで得られた距離画像の例である。図１２（ｂ）では、距離画像センサ部２０８に近い方が濃い色であらわされており、距離画像センサ部２０８から対象物体１２１２上の各画素への距離が含まれる距離画像１２０２が得られている。また、図１２（ｂ）において、距離画像センサ部２０８からの距離が書画台２０４よりも遠い画素については白であらわされており、対象物体１２１２の書画台２０４に接している部分（対象物体１２１２では右側のページ）も同じく白色となる。
【００５２】
ステップＳ１１０２では、ステップＳ１１１１〜Ｓ１１１６に示す、取得したカメラ画像と距離画像から書画台２０４上に載置された書籍物体の３次元点群を算出する処理を行う。ステップＳ１１１１ではカメラ画像１２０２と書画台背景カメラ画像との画素毎の差分を算出して二値化を行い、図１２（ｃ）のように物体領域１２１３が黒で示されるカメラ差分画像１２０３を生成する。ステップＳ１１１２ではカメラ差分画像１２０３を、カメラ座標系から距離画像センサ座標系への変換を行い、図１２（ｄ）のように距離画像センサ部２０８からみた物体領域１２１４を含むカメラ差分画像１２０４を生成する。ステップＳ１１１３では距離画像と書画台背景距離画像との画素毎の差分を算出して二値化を行い、図１２（ｅ）のように物体領域１２１５が黒で示される距離差分画像１２０５を生成する。ここで、対象物体１２１１の書画台２０４と同じ色で有る部分については、画素値の差が小さくなるためカメラ差分画像１２０３中の物体領域１２１３に含まれなくなる場合がある。また、対象物体１２１２の書画台２０４と高さが変わらない部分については距離センサ部２０８からの距離値が書画台２０４と差が小さいため、距離差分画像１２０５中の物体領域１２１５には含まれない場合がある。そこで、ステップＳ１１１４ではカメラ差分画像１２０３と距離差分画像１２０５の和をとって図１２（ｆ）に示す物体領域画像１２０６を生成し、物体領域１２１６を得る。ここで物体領域１２１６は書画台２０４と比べて色が異なるかまたは高さが異なる領域となり、カメラ差分画像１２０３中の物体領域１２１３か距離差分画像１２０５中の物体領域１２１５のいずれか片方のみを使った場合よりも、より正確に物体領域を表している。物体領域画像１２０６は距離画像センサ座標系であるため、ステップＳ１１１５では距離画像１２０２から物体領域画像１２０６中の物体領域１２１６のみを抽出することが可能である。ステップＳ１１１６ではステップＳ１１１５で抽出した距離画像を直交座標系に変換することにより図１２（ｆ）に示した３次元点群１２１７を生成する。この３次元点群１２１７が書籍物体の３次元点群である。物体領域画像及び３次元点群が取得されるとＳ１１０７において書籍画像に対する画像処理を行う。この画像処理はＦＰＧＡ３１３、もしくはＣＰＵ３０２、画像処理プロセッサ３０７のどれで実行しても良い。しかし、ＦＰＧＡ３１３に書籍原稿の原稿画像処理の専用回路が構成されている処理であれば、ＦＰＧＡ３１３の回路を用いるのが望ましいし、図６のステップＳ６７２により書籍原稿用の画像処理回路のコンフィグレーションを行うことで、全ての画像処理をＦＰＧＡ３１３により実行することも可能である。
【００５３】
ステップＳ１１０３では取得したカメラ画像と、算出した３次元点群から、書籍画像のゆがみ補正処理を行い、２次元の書籍画像を生成する。ステップＳ１１０３の処理を詳しく説明する。書籍画像ゆがみ補正処理を開始すると、まず物体領域画像１２０６を距離センサ画像座標系からカメラ座標系に変換する。次にカメラ画像１２０１から物体領域画像１２０６中の物体領域１２１６をカメラ座標系に変換したものを用いて物体領域を抽出する。抽出した物体領域画像を書画台平面へ射影変換する。射影変換した物体領域画像を矩形近似し、その矩形が水平になるように回転することによって、図１２（ｇ）の書籍画像１２０８を生成する。書籍画像１２０８は近似矩形の片方の編がＸ軸に平行となっているため、以降、書籍画像１２０８に対してＸ軸方向へのゆがみ補正処理を行う。そのためまず書籍画像１２０８の最も左端の点をＰとする（図１２（ｇ）の点Ｐ）。書籍物体の３次元点群１２１７から点Ｐの高さ（図１２（ｇ）のｈ１）を取得する。書籍画像１２０８の点Ｐに対してＸ軸方向に所定の距離（図１２（ｇ）のｘ１）離れた点をＱとする（図１２（ｇ）の点Ｑ）。３次元点群１２１７から点Ｑの高さ（図１２（ｇ）のｈ２）を取得する。点Ｐと点Ｑの書籍物体上での距離（図１２（ｇ）のｌ１）を直線近似で式（４）により算出する。
l1 = √(x12+(h1-h2)2)    ...  （４）
算出した距離ｌ１でＰＱ間の距離を補正し、図１２（ｇ）における画像１２１９上の点Ｐ'と点Ｑ' の位置に対応する画素をコピーする。処理を行った点Ｑを新たな点Ｐとし、３次元点群１２１７から点Ｑの高さ（図１２（ｇ）のｈ２）を取得する処理に戻って同じ処理を行うことによって図１２（ｇ）の点Ｑと点Ｒの間の補正を実行することができ、画像１２１９上の点Ｑ'と点Ｒ'の画素とする。この処理を全画素について繰り返すことにより、画像１２１９はゆがみ補正後の画像となる。最後にゆがみ補正処理を全ての点について終えたかどうかを判断し、終えていれば書籍物体のゆがみ補正処理を終了する。以上のようにして、ステップＳ１１０２、ステップＳ１１０３の処理を行ってゆがみ補正を行った書籍画像を生成することができる。
【００５４】
ゆがみ補正を行った書籍画像の生成後、ステップＳ１１０４では生成した書籍画像に階調補正を行う。ステップＳ１１０５では生成した書籍画像に対して、あらかじめ決めておいた画像フォーマット（例えばＪＰＥＧ、ＴＩＦＦ、ＰＤＦ等）に合わせて圧縮およびファイルフォーマット変換を行う。ステップＳ１１０６では生成した画像データを、データ管理部４０５を介してＨＤＤ３０５の所定の領域へファイルとして保存し、書籍画像撮影部４１２の処理を終了する。
【００５５】
＜再構成部に構成される画像処理回路の構成例＞
次に、図１３を用いて、本実施例における、再構成部７０１に構成される処理回路の例とコンフィグデータの関係について説明する。図６のメイン制御部４０２の処理におけるＳ６３１において平面原稿撮影部処理を行うか、書籍画像撮影部処理実行を行うかの選択が画像取得部４１３からの情報を元にメイン制御部４０２によって決定される。その選択結果に応じてコンフィグコントローラ７０６は再構成部７０１で実施される処理回路をＲＯＭ３０４もしくはＲＡＭ３０３より読み出し、再構成部７０１にコンフィグレーションする。
【００５６】
図１３（ａ）はＳ６３１の判断において、平面原稿画像撮影部処理が選択され、図９の平面原稿撮影部フローの中のＳ９０８を再構成部７０１で実施する場合に再構成部７０１に構成される画像処理機能を示した説明図である。平面原稿撮影用画像処理構成は、システムバス３０１を介してＲＡＭ３０３から画像を読み出すリードＤＭＡＣ（ダイレクトメモリアクセス制御部）１３０１（ａ）と、ＲＡＭ１１１に画像を書き込むためのライトＤＭＡＣ１３０６（ａ）を含む。平面原稿撮影用画像処理構成はさらに、図９で説明した階調補正１３０２（ａ）、斜影変換１３０３、回転処理１３０４（ａ）とネットワークＩ／Ｆ３０６を介して外部の図示しない汎用コンピュータへ効率よく画像データを送信するために圧縮、ファイルフォーマット変換１３０５（ａ）を含む。
【００５７】
図１３（ｂ）はＳ６３１の判断において、書籍画像撮影部処理が選択され、図１１の書籍画像撮影部フローの中のＳ１１０７を再構成部７０１で実施する場合に再構成部７０１に構成される画像処理機能を示した説明図である。書籍画像用画像処理構成は、システムバス３０１を介してＲＡＭ３０３から画像を読み出すリードＤＭＡＣ１３０１（ｂ）と、ＲＡＭ１１１に画像を書き込むためのライトＤＭＡＣ１３０６（ｂ）を含む。書籍画像用画像処理構成はさらに、図１１で説明した書籍画像ゆがみ補正１３０７、階調補正１３０２（ｂ）、回転処理１３０４（ｂ）とネットワークＩ／Ｆ３０６を介して外部の図示しない汎用コンピュータへ効率よく画像データを送信するために圧縮、ファイルフォーマット変換１３０５（ｂ）を含む。
【００５８】
図６のコンフィグ実行処理（Ｓ６０７）では、原稿タイプの判定結果に応じて、図１３（ａ）、図１３（ｂ）のいずれかの回路をＦＰＧＡ３１３に構成する。もちろん、上述したフロー（回路）は一例であり、他の画像処理機能を再構成部１３１に構成して処理を実施することも可能である。
【００５９】
本実施形態においては、図２を用いて説明した画像処理機能を再構成部に適宜構成することにより画像処理を実施することとなる。なお、画像処理装置１００が処理することのできるジョブは、図２に示すものに限定されるわけではない。また、画像処理の単位に関しても、図２に示すものに限定されるわけではなく、各画像処理に含まれている処理を、さらに細かい粒度に分割することも可能である。
【００６０】
ここで、コンフィグデータは、図２（ａ）から（ｂ）に記載した各処理単位で構成する事が可能である。例えば、各リードＤＭＡＣ１３０１、各種画像処理部（１３０２〜１３０５）、各ライトＤＭＡＣ１３０６をすべて含んで１つのコンフィグデータとして用意する事もできる。また、データ転送に係るＤＭＡＣ１３０１、１３０６、画像処理部１３０２〜１３０５をそれぞれ別のコンフィグデータとして用意する事もできる。
【００６１】
以上の構成及び制御により本実施形態では、読み取り対象物が原稿台に載置された段階で、原稿画像を読み取るまでもなくその原稿タイプを判断して、当該タイプの原稿の画像処理のために必要な回路をＦＰＧＡに構成する。このため、特にスキャン開始の明示的な指示がなくとも原稿に適した画像処理回路を構成でき、迅速にスキャン処理を開始できる。さらに、原稿から読み取った画像データを解析することなしに画像処理回路を構成でき、迅速にスキャン処理を開始できる。
【００６２】
［実施形態２］
実施形態１では、再構成部７０１のコンフィグレーションを行うべき処理が確定した段階で１度にコンフィグレーションする場合について述べた。実施形態２では再構成部７０１においてコンフィグレーションを行ってから処理を開始するまでの時間を更に短縮したい場合について説明する。即ち図６のフローの物体検知（Ｓ６１３）から処理開始（Ｓ６０３）を行うまでの間にも、部分的にコンフィグレーションを行っていく事で処理開始までの時間の短縮を図る。
【００６３】
以下、実施形態２について図１４を元に説明する。メイン制御部４０２の処理フローにおいて、実施形態１の図６と同様の処理をＳ６０１、Ｓ６０２をまで行う。Ｓ６１３で動体を検知すると、Ｓ１５０２に移行する。Ｓ１５０２においては平面原稿処理もしくは書籍画像処理が行われる事を想定して、再構成部７０１で行われる処理の共通回路のコンフィグレーションが開始される。本実施例では共通の回路のコンフィグレーションの開始を動体が検知されたタイミングとしているが、それより前のシステムの立ち上がりタイミング等にしてもよい。本実施例では図１６に示すように共通回路はリードＤＭＡＣ１３０１、ライトＤＭＡＣ１３０６，階調補正１３０２、圧縮、ファイルフォーマット変換１３０５、回転処理１３０４である。
【００６４】
次にＳ１５０３において、メイン制御部４０２では物体を検知した後に処理開始の判断の前から手領域以外の高さが所定値以下かどうかの判断を行う。これは実施例１と同様の手法で平面原稿画像撮影処理か書籍画像撮影処理を行うかの判断を行う。手領域以外の物体の高さが所定値以下の場合はＳ１５０４において平面原稿回路のコンフィグレーションを開始する。この実施例における平面原稿用の回路は射影変換である。次にＳ１５０５において実施例１と同様にカメラ部２０２からの情報を元に動体の静止を検知するとＳ１５０６に移行し、原稿の位置検出を行う。Ｓ１５０５において静止を検知しない場合はＳ１５０５の処理を繰り返す。Ｓ１５０６で原稿の位置検出を行った後には実施例１で説明した正確な回転処理の角度が判明するため、Ｓ１５０７においてここまでコンフィグレーションを行った回路の再構成が必要かどうかの判断が行われる。再構成が必要であると判断された場合はＳ１５１１において再構成が必要な部分の回路構成の変更が行われる。尚、本実施例では回転処理を共通回路としてコンフィグレーションを行っているが、平面原稿用回路のコンフィグレーションの回数を複数回に分割して、静止を検知した後に回転処理のコンフィグレーションを行っても良い。一方、Ｓ１５０３において、手領域以外の高さが所定値以上の場合にはＳ１５０８において書籍画像のコンフィグレーションを開始する。
【００６５】
本実施例では書籍画像回路とは書籍画像ゆがみ補正である。次にＳ１５０９において実施例１と同様にカメラ部２０２からの情報を元に動体の静止を検知するとＳ１５１０に移行し、原稿の位置検出を行う。Ｓ１５０９において静止を検知しない場合はＳ１５０９の処理を繰り返す。Ｓ１５１０で原稿の位置検出や本のゆがみの大きさを検出した後には実施例１で説明した正確な回転処理の角度やゆがみ補正処理の内容が判明するため、同じくＳ１５０７においてここまでコンフィグレーションを行った回路の再構成が必要かどうかの判断が行われる。再構成が必要であると判断された場合はＳ１５１１において再構成が必要な部分の回路構成の変更が行われる。ここでＳ１５０５やＳ１５０９の静止を検知した後にＳ１５０７の再構成が必要かどうかの判断の際に、手領域以外の物体の高さに変更がある場合はＳ１５０３の処理に戻る事も可能である。再構成が終了すると、処理を開始する。この処理以降は実施例１の図６のＳ６０５からのフローと同様の処理が行われる。原稿タイプに対応する回路の例を図１５に示した。
【００６６】
以上のように、本発明を適用することにより、ユーザからの処理開始要求が無くとも、カメラ部２０２もしくは距離画像センサ部２０８からの情報によりコンフィグレーションを行う事が可能になる。また、以上のように、本発明を適用することにより、カメラ部２０２もしくは距離画像センサ部２０８からの情報により随時コンフィグレーションを行う事で処理開始要求から処理を実行するまでの時間の短縮が可能になる。
【００６７】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００６８】
１０１  カメラスキャナ、２０１  コントローラ部、２０２  カメラ部、２０４  書画台、２０７  プロジェクタ、２０８  距離画像センサ部
【図１】
2015228187.tif 000003
【図２】
2015228187.tif 000004
【図３】
2015228187.tif 000005
【図４】
2015228187.tif 000006
【図５】
2015228187.tif 000007
【図６】
2015228187.tif 000008
【図７】
2015228187.tif 000009
【図８】
2015228187.tif 000010
【図９】
2015228187.tif 000011
【図１０】
2015228187.tif 000012
【図１１】
2015228187.tif 000013
【図１２】
2015228187.tif 000014
【図１３】
2015228187.tif 000015
【図１４】
2015228187.tif 000016
【図１５】
2015228187.tif 000017