(57)【特許請求の範囲】
【請求項１】
画像中の被写体の距離画像情報に基づいて、前記被写体の輪郭の候補である複数の候補点を検出し、前記候補点に基づいて前記画像中の検査対象領域を決定する決定手段と、
前記決定手段により決定された前記検査対象領域の中に存在する線分を前記検査対象領域の輝度情報に基づいて検出し、前記線分から前記候補点に基づいて前記被写体の輪郭である線分を特定する特定手段と、
を有する画像処理装置。
【請求項２】
撮影手段から、撮影された画像を取得する第１の取得手段と、
距離測定手段から、測定された距離画像情報を取得する第２の取得手段と、
前記決定手段は、前記第１の取得手段により取得された画像中の被写体についての前記第２の取得手段により取得された距離画像情報に基づいて、前記被写体の輪郭の候補である候補点を検出し、前記候補点に基づいて前記画像中の検査対象領域を決定する請求項１記載の画像処理装置。
【請求項３】
前記決定手段は、前記距離画像情報から取得した前記被写体を含む領域の上に設定された分割線上の距離情報に基づいて、前記被写体の前記分割線上の輪郭の候補である候補点を検出する請求項１又は２記載の画像処理装置。
【請求項４】
前記決定手段は、前記分割線上に設定された範囲の距離情報に基づいて前記候補点を検出する請求項３記載の画像処理装置。
【請求項５】
前記決定手段は、前記距離画像情報を、前記被写体を俯瞰から写した画像となるように、変換して俯瞰距離画像を生成し、前記俯瞰距離画像の中の前記被写体を含む領域の中に設定された分割線上の距離情報に基づいて、前記被写体の前記分割線上の輪郭の候補である候補点を検出する請求項３又は４記載の画像処理装置。
【請求項６】
前記決定手段は、前記分割線上に開始点と開始点から設定された距離だけ離れた終了点１と第１の終了点から設定された距離だけ離れた第２の終了点とを設定し、前記第１の終了点と開始点とから求まる距離情報の傾きと前記第２の終了点と前記第１の終了点とから求まる傾きとの差分が閾値以上である場合、前記第１の終了点を前記候補点として検出する請求項３乃至５何れか１項記載の画像処理装置。
【請求項７】
前記決定手段は、検出した複数の前記候補点から生成した線分と前記距離測定手段の測定誤差とに基づいて検査対象領域を決定する請求項２乃至６何れか１項記載の画像処理装置。
【請求項８】
前記決定手段は、検出した複数の前記候補点からの距離の合計が最小となる線分を取得し、距離測定手段の測定誤差に基づいて誤差幅を取得し、前記線分に前記誤差幅だけ幅を持たせた領域を検査対象領域として決定する請求項２乃至７何れか１項記載の画像処理装置。
【請求項９】
前記特定手段は、検出された前記線分ごとに前記決定手段により検出された前記候補点から前記線分までの距離の合計を取得し、前記合計が最小となる線分を前記被写体の輪郭である線分として特定する請求項１乃至８何れか１項記載の画像処理装置。
【請求項１０】
前記決定手段は、検出した前記候補点を前記分割線上における前記候補点の位置に基づいて複数の集合に分類し、分類された前記候補点の集合の中から、前記被写体の中央に最も近い集合を取得し、前記取得した集合ごとに前記集合に含まれる複数の候補点に基づいて前記画像中の検査対象領域を取得し、前記画像から前記検査対象領域を決定する請求項３乃至９何れか１項記載の画像処理装置。
【請求項１１】
前記決定手段は、検出した前記候補点を前記分割線上における前記候補点の位置に基づいて複数の集合に分類し、分類された前記候補点の集合ごとに、前記集合に含まれる複数の候補点に基づいて前記画像中の検査対象領域を取得し、前記画像から前記検査対象領域を決定し、
前記特定手段は、前記集合ごとに特定された線分の中から、前記分割線の中央に最も近い線分を前記被写体の輪郭である線分として特定する請求項３乃至９何れか１項記載の画像処理装置。
【請求項１２】
前記特定手段により複数の輪郭の候補となる線分が特定された場合、前記複数の線分を含む画面を表示する表示手段と、
前記表示手段により表示される前記画面を介した選択操作に基づいて、前記複数の線分の中の１つを前記被写体の輪郭である線分として選択する選択手段を更に有する請求項１乃至９何れか１項記載の画像処理装置。
【請求項１３】
前記決定手段は、検出した前記候補点を前記分割線上における前記候補点の位置に基づいて複数の集合に分類し、分類された前記候補点の集合ごとに、前記集合に含まれる複数の候補点に基づいて前記画像中の検査対象領域を取得し、前記画像から前記検査対象領域を決定し、
前記特定手段により特定された複数の線分を含む画面を表示する表示手段と、
前記表示手段により表示される前記画面を介した選択操作に基づいて、前記複数の線分の中の１つを前記被写体の輪郭である線分として選択する選択手段を更に有する請求項３乃至９何れか１項記載の画像処理装置。
【請求項１４】
画像処理装置が実行する画像処理方法であって、
画像中の被写体の距離画像情報に基づいて、前記被写体の輪郭の候補である複数の候補点を検出し、前記候補点に基づいて前記画像中の検査対象領域を決定する決定ステップと、
前記決定ステップにより決定された前記検査対象領域の中に存在する線分を前記検査対象領域の輝度情報に基づいて検出し、前記線分から前記候補点に基づいて前記被写体の輪郭である線分を特定する特定ステップと、
を含む画像処理方法。
【請求項１５】
コンピュータに
画像中の被写体の距離画像情報に基づいて、前記被写体の輪郭の候補である複数の候補点を検出し、前記候補点に基づいて前記画像中の検査対象領域を決定する決定ステップと、
前記決定ステップにより決定された前記検査対象領域の中に存在する線分を前記検査対象領域の輝度情報に基づいて検出し、前記線分から前記候補点に基づいて前記被写体の輪郭である線分を特定する特定ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
書籍に記された内容を手軽にデータとして記録するための装置として、ブックスキャナがある。ブックスキャナの中でも、特に書籍を破壊せずにページをめくるだけでスキャンを可能とするスタンド型ブックスキャナが知られている。スタンド型ブックスキャナは、書籍の上方からのカメラによる撮影を行い書籍の画像を取得する。
使用者が求める書籍の画像は、見開きページ内に記された文字や図等の内容である。例えば書籍の小口のようにページ端が積み重なった箇所や書籍の背景画像は、ほとんどの場合、使用者が欲しない画像情報である。しかし、カメラにより撮影された画像から、使用者が欲しない不要な画像情報を自動的に判別することは、難しい。従来のブックスキャナを用いた際、多くの場合スキャン結果が不要な画像情報を含むことになり、使用者は人手で画像を修正する必要があり手間がかかる。
したがって、書籍の見開きページ端の輪郭取得を自動的に行い、人手による画像修正を必要としないことは、ブックスキャナにとって重要な要件である。対象の輪郭を取得する手段としては、前記対象の輝度画像情報からだけでなく距離センサから前記対象の距離画像情報を取得して前記対象の輪郭を検出する手段が挙げられる。距離画像情報は、環境光の変化に対して頑健であり、輝度画像情報に基づいた検出が難しい輪郭であっても距離画像情報に基づいて検出することが可能である。しかし、特に安価な距離センサの場合、高精度の輪郭情報の取得は、難しい。したがって、距離情報から得られた輪郭を手掛かりに輝度画像情報に基づいて、輪郭を検出する方法が従来行われている。対象の輪郭を距離情報と輝度画像情報とに基づいて取得する従来技術には、特許文献１の技術がある。特許文献１の技術では、距離画像を格子状に分割し、隣接する格子の距離差が予め定められた閾値よりも大きい格子を背景と対象との境界が存在する格子であるとして絞り込み、前記絞り込んだ格子領域内で輝度画像によって背景と対象との境界を判定する。特許文献１の技術により、軽処理でありながら照明変化に対して頑健な輪郭検出が可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１１７４０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の技術には、距離画像情報によって対象と背景が存在する範囲を絞りこみ、絞りこんだ範囲内で輝度画像情報によって境界を取得するために、書籍に対しては見開きページ端ではなく書籍全体の輪郭が取得されてしまうという問題がある。また、見開きページ端付近には、書籍の小口のようにページが積み重なった箇所によって複数の輪郭が生じるが、特許文献１の技術では、複数生じた輪郭の中からどの輪郭を検出すべきかを特定することは難しい。
そこで、本発明は、撮影対象の輪郭の周りに複数の輪郭の候補が生じた場合でも、検出すべき輪郭を特定することを目的とする。
【課題を解決するための手段】
【０００５】
そこで、本発明の画像処理装置は、画像中の被写体の距離画像情報に基づいて、前記被写体の輪郭の候補である複数の候補点を検出し、前記候補点に基づいて前記画像中の検査対象領域を決定する決定手段と、前記決定手段により決定された前記検査対象領域の中に存在する線分を前記検査対象領域の輝度情報に基づいて検出し、前記線分から前記候補点に基づいて前記被写体の輪郭である線分を特定する特定手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、撮影対象の輪郭の周りに複数の輪郭の候補が生じた場合でも、検出すべき輪郭を特定することができる。
【図面の簡単な説明】
【０００７】
【図１】カメラスキャナの構成と座標系の一例を示す図である。
【図２】コントローラ部等のハードウェア構成の一例を示す図である。
【図３】カメラスキャナのソフトウェア構成の一例を示す図である。
【図４】距離画像取得部が実行する距離画像取得処理のフローチャートである。
【図５】距離画像取得部の計測原理の説明を示す図である。
【図６】書籍の見開きページ端を示す図である。
【図７】ページ端検出処理全体のフローチャートである。
【図８】輪郭候補点群検出処理のフローチャートである。
【図９】輪郭候補点群検出処理についての説明を示す図である。
【図１０】分割線上のページ候補点検出の処理のフローチャートである。
【図１１】割線上のページ候補点検出についての説明を示す図である。
【図１２】領域決定処理のフローチャートである。
【図１３】線分検出処理のフローチャートである。
【図１４】線分特定処理の説明を示す図である。
【図１５】線分特定処理のフローチャートである。
【図１６】書籍のページ端に段差が生じた状況の説明を示す図である。
【図１７】領域決定処理のフローチャートである。
【図１８】ページ端検出処理全体のフローチャートである。
【図１９】領域決定処理のフローチャートである。
【図２０】処理全体の説明を示す図である。
【図２１】使用者によるページ端選択処理のフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
［カメラスキャナの構成］
図１は、カメラスキャナ１０１の構成と座標系の一例を示す図である。
図１（ａ）に示すように、カメラスキャナ１０１は、コントローラ部１０２、カメラ部１０３、腕部１０４、プロジェクタ１０７、距離画像センサ部１０８を含む。カメラスキャナ１０１の本体であるコントローラ部１０２と撮像を行うためのカメラ部１０３とプロジェクタ１０７と距離画像センサ部１０８とは、腕部１０４により連結されている。腕部１０４は、関節を用いて曲げ伸ばしができる。
書画台１０５は、カメラスキャナ１０１が設置されている書画台である。書画台１０５は、カメラスキャナ１０１の構成に含まれていてもよい。カメラ部１０３及び距離画像センサ部１０８のレンズは、書画台１０５方向に向けられており、破線で囲まれた読み取り領域１０６内の画像を読み取り可能である。図１（ａ）において、書籍１１０は、読み取り領域１０６内に置かれており、カメラ部１０３及び距離画像センサ部１０８により読み取り可能となっている。カメラ部１０３は、単一解像度で画像を撮像するものとしてもよいし、高解像度画像撮像と低解像度画像撮像が可能なものとしてもよい。書籍１１０は、被写体の一例である。
カメラスキャナ１０１は、ＬＣＤタッチパネル２３０、スピーカ２４０等を更に含むことができる。
【００１０】
図１（ｂ）は、カメラスキャナ１０１における座標系を表している図である。カメラスキャナ１０１では、カメラ部１０３、距離画像センサ部１０８、プロジェクタ１０７等のハードウェアデバイスに対して、それぞれカメラ座標系、距離画像座標系、プロジェクタ座標系等の独立した複数の座標系が定義される。前記複数の座標系は、カメラ部１０３及び図２で後述する距離画像センサ部１０８のＲＧＢカメラ２６３が撮像する画像平面（プロジェクタ１０７が投影する画像平面でもある）をＸＹ平面とし、前記画像平面に直交した方向をＺ方向として定義したものである。更に、直交座標系は、独立した座標系の３次元データを統一的に扱えるようにするために、書画台１０５を含む平面をＸＹ平面とし、前記ＸＹ平面から上方に垂直な向きをＺ軸として定義された座標系である。距離画像センサ部１０８は、距離測定装置、距離測定手段の一例である。
【００１１】
図１（ｃ）は、直交座標系と、カメラ部１０３を中心としたカメラ座標系を用いて表現された空間と、カメラ部１０３が撮像する画像平面との関係を示す図である。座標系を変換する場合の例として、直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］をカメラ座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換する処理を示す。直交座標系における３次元点Ｐ［Ｘ，Ｙ，Ｚ］は、（１）式によって、カメラ座標系における３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］へ変換できる。
【数１】
0006399840.tif 000002
Ｒｃ及びｔｃは、直交座標系に対するカメラの姿勢（回転）と位置（並進）によって求まる外部パラメータによって構成され、Ｒｃを３×３の回転行列、ｔｃを並進ベクトルと呼ぶ。逆に、カメラ座標系で定義された３次元点は、（２）式によって、直交座標系への変換することができる。
【数２】
0006399840.tif 000003
カメラ部１０３で撮影される２次元のカメラ画像平面は、カメラ部１０３によって３次元空間中の３次元情報が２次元情報に変換されたものである。即ち、カメラ座標系上での３次元点Ｐｃ［Ｘｃ，Ｙｃ，Ｚｃ］は、（３）式によって透視投影変換することでカメラ画像平面での２次元座標ｐｃ［ｘｐ，ｙｐ］に変換することができる。
【数３】
0006399840.tif 000004
（３）式のＡは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心などで表現される３×３の行列である。
以上のように、直交座標系で表された３次元点群は、（１）式と（３）式とを用いることで、カメラ座標系での３次元点群座標やカメラ画像平面上での座標に変換できる。なお、各ハードウェアデバイスの内部パラメータ及び直交座標系に対する位置姿勢（外部パラメータ）は、公知のキャリブレーション手法により、予めキャリブレーションされているものとする。以下、特に断りがなく３次元点群と表記した場合は、前記表記は、直交座標系における３次元データを表しているものとする。
【００１２】
［カメラスキャナのコントローラのハードウェア構成］
図２は、コントローラ部１０２等のハードウェア構成の一例を示す図である。
コントローラ部１０２は、システムバス２０１に接続されたＣＰＵ２０２、ＲＡＭ２０３、ＲＯＭ２０４、ＨＤＤ２０５、画像処理プロセッサ２０７、カメラＩ／Ｆ２０８、ディスプレイコントローラ２０９、を含む。コントローラ部１０２は、更に、シリアルＩ／Ｆ２１０、オーディオコントローラ２１１及びＵＳＢコントローラ２１２を含む。
ＣＰＵ２０２は、コントローラ部１０２全体の動作を制御する中央演算装置である。ＲＡＭ２０３は、揮発性メモリである。ＲＯＭ２０４は不揮発性メモリであり、ＣＰＵ２０２の起動用プログラムが格納されている。ＨＤＤ２０５は、ＲＡＭ２０３と比較して大容量なハードディスクドライブ（ＨＤＤ）である。ＨＤＤ２０５にはコントローラ部１０２の実行する、カメラスキャナ１０１の制御用プログラム等が格納されている。
【００１３】
ＣＰＵ２０２は、電源がＯＮされた場合等の起動時、ＲＯＭ２０４に格納されている起動用プログラムを実行する。ＣＰＵ２０２は、前記起動用プログラムの実行により実現される機能を介して、ＨＤＤ２０５に格納されている制御用プログラムを読み出し、ＲＡＭ２０３上に展開する。ＣＰＵ２０２は、起動用プログラムを実行すると、続けてＲＡＭ２０３上に展開した制御用プログラムを実行する。また、ＣＰＵ２０２は、制御用プログラムの実行により実現される機能による動作に用いるデータもＲＡＭ２０３上に格納して読み書きを行う。ＣＰＵ２０２は、更に、ＨＤＤ２０５に対して制御用プログラムの動作に必要な各種設定や、カメラ入力によって生成した画像データ等を格納することができ、読み込むこともできる。
画像処理プロセッサ２０７は、ＲＡＭ２０３に格納された画像データを読み出して処理し、ＲＡＭ２０３へ書き戻す。画像処理プロセッサ２０７が実行する画像処理は、画像の回転、変倍、色変換等である。
カメラＩ／Ｆ２０８は、カメラ部１０３及び距離画像センサ部１０８と接続される。ＣＰＵ２０２は、カメラＩ／Ｆ２０８を介して、カメラ部１０３から画像データと、距離画像センサ部１０８から距離画像データと、を取得してＲＡＭ２０３へ書き込む。また、ＣＰＵ２０２は、カメラＩ／Ｆ２０８を介して、制御コマンドをカメラ部１０３及び距離画像センサ部１０８へ送信し、カメラ部１０３及び距離画像センサ部１０８の設定を行う。
また、コントローラ部１０２は、ディスプレイコントローラ２０９、シリアルＩ／Ｆ２１０、オーディオコントローラ２１１及びＵＳＢコントローラ２１２等を更に含むことができる。
【００１４】
ＣＰＵ２０２は、ディスプレイコントローラ２０９を介して、ディスプレイへの画像データの表示を制御する。ディスプレイコントローラ２０９は、プロジェクタ１０７及びＬＣＤタッチパネル２３０に接続されていてもよい。
ＣＰＵ２０２は、シリアルＩ／Ｆ２１０を介して、シリアル信号の入出力を行う。シリアルＩ／Ｆ２１０は、ＬＣＤタッチパネル２３０に接続され、ＣＰＵ２０２は、ＬＣＤタッチパネル２３０が使用者により押下されたときに、シリアルＩ／Ｆ２１０を介して押下されたＬＣＤタッチパネル２３０上の座標を取得する。
オーディオコントローラ２１１は、スピーカ２４０に接続される。ＣＰＵ２０２は、オーディオコントローラ２１１を介して、音声データをアナログ音声信号に変換し、スピーカ２４０を通じて音声を出力する。
ＣＰＵ２０２は、ＵＳＢコントローラ２１２を介して、外付けのＵＳＢデバイスの制御を行う。ここでは、ＵＳＢコントローラ２１２は、ＵＳＢメモリやＳＤカードなどの外部メモリ２５０に接続され、ＣＰＵ２０２による外部メモリ２５０へのデータの読み書きに利用される。
ＣＰＵ２０２が、ＲＯＭ２０４又はＨＤＤ２０５に記憶されたプログラムに基づき処理を実行することによって、後述するカメラスキャナのソフトウェア構成及び後述するフローチャートの処理が実現される。
【００１５】
［カメラスキャナのソフトウェア構成］
図３は、カメラスキャナ１０１のソフトウェア構成の一例を示す図である。
メイン制御部３０２は、制御の中心であり、ソフトウェア３０１の構成内の他の各モジュールを制御する。画像取得部３１６は、画像入力処理を行うモジュールであり、カメラ画像取得部３０７、距離画像取得部３０８等を含む。カメラ画像取得部３０７は、カメラＩ／Ｆ２０８を介してカメラ部１０３が出力する画像データを取得し、ＲＡＭ２０３へ格納する。距離画像取得部３０８は、カメラＩ／Ｆ２０８を介して距離画像センサ部１０８が出力する距離画像データを取得し、ＲＡＭ２０３へ格納する。距離画像取得部３０８の処理の詳細は、図４、５を用いて後述する。
【００１６】
認識処理部３１７は、カメラ画像取得部３０７、距離画像取得部３０８が取得する画像データから書画台１０５上の物体の動きを検知して認識するモジュールであり、ジェスチャ認識部３０９、物体検知部３１０等を含む。ジェスチャ認識部３０９は、画像取得部３１６から書画台１０５上の画像を取得し続け、使用者によるタッチ等のジェスチャを検知するとメイン制御部３０２へ通知する。物体検知部３１０は、メイン制御部３０２から物体載置待ち処理又は物体除去待ち処理の通知を受けると、画像取得部３１６から書画台１０５がカメラ部１０３により撮像された画像を取得する。そして、物体検知部３１０は、書画台１０５上に物体が置かれて静止するタイミング又は物体が取り除かれるタイミングを検知する処理を行う。
スキャン処理部３１８は、書籍のスキャンを行うモジュールであり、書籍形状取得部３１１、書籍画像取得部３１２等を含む。書籍形状取得部３１１は、距離画像情報と輝度画像情報とを用いてページ端などの輪郭を特定する処理を行う。書籍画像取得部３１２は、書籍形状取得部３１１で取得した輪郭を基に書籍の厚みによる歪みを補正した画像を作成する。距離画像とは、画素ごとにカメラ等の入力装置から対象物までの距離の値を持った画像である。輝度画像とは、画素ごとの値に輝度値を持った画像である。輝度画像情報は、輝度情報の一例である。
【００１７】
ユーザーインターフェイス部３０３は、ＧＵＩ部品生成表示部３１４、投射領域検出部３１５等を含む。ＧＵＩ部品生成表示部３１４は、メイン制御部３０２からの要求を受け、メッセージやボタン等のＧＵＩ部品を生成する。そして、ＧＵＩ部品生成表示部３１４は、表示部３０６へ生成したＧＵＩ部品の表示を要求する。なお、投射領域検出部３１５は、書画台１０５上のＧＵＩ部品の表示場所を検出する。表示部３０６は、ディスプレイコントローラ２０９を介して、プロジェクタ１０７又はＬＣＤタッチパネル２３０に対してＧＵＩ部品生成表示部３１４により要求されたＧＵＩ部品の表示を行う。プロジェクタ１０７は、書画台１０５に向けて設置されているため、書画台１０５上にＧＵＩ部品を投射することができる。また、ユーザーインターフェイス部３０３は、ジェスチャ認識部３０９により認識されたタッチ等のジェスチャ操作、又はシリアルＩ／Ｆ２１０を介したＬＣＤタッチパネル２３０からの入力操作、前記ジェスチャ操作及び前記入力操作の座標を受信する。そして、ユーザーインターフェイス部３０３は、表示部３０６に表示されている操作画面の内容と操作が行われた座標とを対応させて、ボタンの押下等の操作内容を判定する。ユーザーインターフェイス部３０３は、前記操作内容をメイン制御部３０２へ通知することにより、操作者の操作を受け付ける。
データ管理部３０５は、ソフトウェア３０１の処理において生成された作業データ等の様々なデータをＨＤＤ２０５上に予め定められた領域へ保存し、管理する。データ管理部３０５は、例えば、カメラ画像取得部３０７、距離画像取得部３０８で取得した画像や、書籍形状取得部３１１で取得したページ端の輪郭等のデータをＨＤＤ２０５上に予め定められた領域へ保存し、管理する。前記領域は、ＲＯＭ２０４、ＨＤＤ２０５等の記憶部に予め設定されていてもよい。また、データ管理部３０５は、使用者によるＬＣＤタッチパネル２３０等の操作部への前記領域の指定操作に基づいて、前記記憶部に前記領域を設定してもよいし、前記記憶部に予め定められている領域を変更してもよい。
【００１８】
［距離画像センサ及び距離画像取得部の説明］
図２に距離画像センサ部１０８の構成を示している。距離画像センサ部１０８は、赤外線によるパターン投射方式の距離画像センサである。赤外線パターン投射部２６１は、対象物に、人の目には不可視である赤外線を用いて３次元測定パターンを投射する。赤外線カメラ２６２は、前記対象物に投射した前記３次元測定パターンを読みとるカメラである。ＲＧＢカメラ２６３は、人の目に見える可視光をＲＧＢ信号で撮影するカメラである。
距離画像取得部３０８の処理を図４のフローチャートを用いて説明する。また、図５（ａ）〜（ｃ）は距離画像取得部３０８の計測原理の説明を示す図である。
距離画像取得部３０８が処理を開始すると、図４のフローチャートの処理が開始される。
Ｓ４０１において、距離画像取得部３０８は、赤外線パターン投射部２６１を介して、図５（ａ）に示すように赤外線による３次元形状測定パターン５２２を対象物５２１に投射する。
Ｓ４０２において、距離画像取得部３０８は、ＲＧＢカメラ２６３を介して対象物を撮影したＲＧＢカメラ画像５２３と、赤外線カメラ２６２を介してＳ４０１で投射した３次元形状測定パターン５２２を撮影した赤外線カメラ画像５２４と、を取得する。なお、赤外線カメラ２６２とＲＧＢカメラ２６３とでは、設置位置が異なるため、図５（ｃ）に示すようにそれぞれで撮影される２つのＲＧＢカメラ画像５２３及び赤外線カメラ画像５２４の撮影領域が異なる。
【００１９】
Ｓ４０３において、距離画像取得部３０８は、赤外線カメラ２６２の座標系からＲＧＢカメラ２６３の座標系への座標系変換を用いて赤外線カメラ画像５２４の座標系をＲＧＢカメラ画像５２３の座標系に合わせる。なお、赤外線カメラ２６２とＲＧＢカメラ２６３との相対位置や、赤外線カメラ２６２、ＲＧＢカメラ２６３のそれぞれの内部パラメータは、事前のキャリブレーション処理により距離画像取得部３０８にとって既知であるとする。
Ｓ４０４において、距離画像取得部３０８は、図５（ｃ）に示すように、３次元形状測定パターン５２２とＳ４０３で座標変換を行った赤外線カメラ画像５２４との間での対応点を抽出する。距離画像取得部３０８は、例えば、赤外線カメラ画像５２４上の１点を３次元形状測定パターン５２２上から探索して、同一の点が検出された場合に対応付けを行う。また、距離画像取得部３０８は、例えば、赤外線カメラ画像５２４の画素の周辺のパターンを３次元形状測定パターン５２２上から探索し、一番類似度が高い部分と対応付けてもよい。
Ｓ４０５において、距離画像取得部３０８は、赤外線パターン投射部２６１と赤外線カメラ２６２とを結ぶ線分を基線５２５として三角測量の原理を用いて計算を行うことにより、赤外線カメラ２６２からの距離を算出する。距離画像取得部３０８は、Ｓ４０４で対応付けが出来た画素については、赤外線カメラ２６２からの距離を算出して画素値とし、対応付けが出来なかった画素については、距離の計測が出来なかった部分として無効値とする処理を行う。距離画像取得部３０８は、前記処理をＳ４０３で座標変換を行った赤外線カメラ画像５２４の全画素に対して行うことで、各画素に距離値が入った距離画像を生成する。
【００２０】
Ｓ４０６において、距離画像取得部３０８は、Ｓ４０５で生成された前記距離画像の各画素にＲＧＢカメラ画像５２３のＲＧＢ値を保存することにより、１画素につきＲ、Ｇ、Ｂ、距離の４つの値を持つ距離画像を生成する。前記生成された距離画像は、距離画像センサ部１０８のＲＧＢカメラ２６３で定義された距離画像センサ座標系が基準となっている。
Ｓ４０７において、距離画像取得部３０８は、図１（ｂ）で上述したように、距離画像センサ座標系として得られた距離データを直交座標系における３次元点群に変換する。以後、特に指定がなく３次元点群と表記した場合は、直交座標系における３次元点群を示すものとする。
なお、本実施形態では、距離画像センサ部１０８は、赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、距離画像センサ部１０８は、２つのＲＧＢカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するＴＯＦ（Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ）方式を用いてもよい。
【００２１】
続いて、書籍の見開きページ端検出の処理についての詳細を説明する。書籍の見開きページ端は、図６の境界６０１に示すような見開き書籍の最表面にある１ページの境界を示す。本実施形態では、図６の境界６０２に示すような本全体と背景との境界を検出するのではなく、前記書籍の見開きページ端を検出する技術を示す。
図７は、ページ端検出処理全体のフローチャートである。
Ｓ７０１において、距離画像取得部３０８は、背景の距離画像を算出する。Ｓ７０１１において、距離画像取得部３０８は、書籍の存在しない書画台１０５の距離画像を予め定められたフレーム数だけ取得し、ＲＡＭ２０３に記録する。次に、Ｓ７０１２において、距離画像取得部３０８は、予め定められたフレーム数の平均となる距離画像を算出しＲＡＭ２０３上に記録する。Ｓ７０１２で算出された前記距離画像を、本実施形態では背景距離画像とする。前記フレーム数は、ＲＯＭ２０４、ＨＤＤ２０５等の記憶部に記憶されているとする。距離画像取得部３０８は、前記記憶部から読み込むことで、前記フレーム数を取得してもよい。また、距離画像取得部３０８は、使用者によるＬＣＤタッチパネル２３０等の操作部への前記フレーム数の指定操作に基づいて、前記フレーム数を取得してもよいし、前記記憶部に記憶されているフレーム数を変更してもよい。
Ｓ７０２において、書籍形状取得部３１１は、書籍のみの距離画像情報の算出を行う。Ｓ７０２では、書籍形状取得部３１１は、物体検知部３１０により書籍が書画台に置かれたことが検知されたか否かの情報を検出する。書籍形状取得部３１１は、前記情報を検出した場合、距離画像取得部３０８から書籍が置かれた書画台１０５の距離画像を入力距離画像として取得する。前景と背景とを画像情報から分離する方法としては、背景差分法等が周知の技術として知られている。本実施形態では、書籍形状取得部３１１は、前記距離画像に対して背景差分法を行い、入力距離画像と背景距離画像との差分が予め定められた閾値以上の箇所だけを残す処理を行う。また、書籍形状取得部３１１は、距離差が予め定められた閾値よりも小さい箇所は黒く塗りつぶし、距離情報がないものとして扱う。書籍形状取得部３１１は、例えばＳ７０２の処理によって背景距離画像と入力距離画像の距離差が閾値より大きい箇所を書籍領域全体の距離画像として算出し、ＲＡＭ２０３に記録する。前記閾値は、ＲＯＭ２０４、ＨＤＤ２０５等の記憶部に記憶されているとする。書籍形状取得部３１１は、前記記憶部から読み込むことで、前記閾値を取得してもよい。また、書籍形状取得部３１１は、使用者によるＬＣＤタッチパネル２３０等の操作部への前記閾値の指定操作に基づいて、前記閾値を取得してもよいし、前記記憶部に記憶されている閾値を変更してもよい。
【００２２】
Ｓ７０３において、書籍形状取得部３１１は、書籍領域全体の距離画像から輪郭候補点群の検出を行う。前記輪郭候補点群は、対象が書籍の場合、見開きページ端であり、説明のために以降は輪郭候補点群をページ端候補点群と表現する。Ｓ７０３における輪郭候補点群検出の処理の詳細については、図８で後述する。
Ｓ７０６において、書籍形状取得部３１１は、ページ端候補点群に基づいて、Ｓ７０８の線分検出処理を適用するための領域である線分検出適用領域を決定する。Ｓ７０６の処理の詳細は、図１２で後述する。
Ｓ７０８において、書籍形状取得部３１１は、Ｓ７０６で決定された線分検出適用領域内の輝度画像情報から複数の線分を検出する。Ｓ７０８の処理の詳細は、図１３で後述する。
Ｓ７０９において、書籍形状取得部３１１は、Ｓ７０８で検出された複数の線分の中から一つの線分をページ端として特定する。Ｓ７０９の処理の詳細については、図１５で後述する。
【００２３】
図８は、輪郭候補点群検出処理のフローチャートである。書籍形状取得部３１１により処理されるＳ７０３の輪郭候補点群検出処理についての詳細について図８を用いて示す。
Ｓ８０１において、書籍形状取得部３１１は、距離画像情報を直交座標系の３次元点群に変換する。
Ｓ８０２において、書籍形状取得部３１１は、直交座標系でのＸ、Ｙ方向を画像中のＸ、Ｙ方向として１ｐｉｘｅｌ内の輝度をＺ方向の値に応じて表現した画像を生成する。以下、前記画像は、俯瞰距離画像とする。俯瞰距離画像の例を図９（ａ）に示す。Ｓ８０２の処理によって、書籍形状取得部３１１は、距離センサが書籍を斜めから撮影したとしても、真上から俯瞰したような書籍の距離画像情報を取得することができる。また、背景差分法による処理と同様に書籍の距離情報がない箇所は黒く塗りつぶされ、黒く塗りつぶされた箇所は、距離情報が存在しないものとしている。
Ｓ８０３において、書籍形状取得部３１１は、図９（ｂ）の矩形９０１に示すように俯瞰距離画像に存在する距離情報を全て包含する矩形領域を決定する。前記距離情報全てを包含する矩形領域を決定する方法としては、例えばＯｐｅｎＣＶ内の関数であるｃｖ：：ｍｉｎＡｒｅａＲｅｃｔ関数の利用等が周知の技術である。
【００２４】
Ｓ８０４において、書籍形状取得部３１１は、図９（ｃ）の分割線９０２に示すように、Ｓ８０３で決定された矩形領域中の短軸に対して予め定められた数の分割線を作成する。前記分割線の数は、ＲＯＭ２０４、ＨＤＤ２０５等の記憶部に記憶されているとする。書籍形状取得部３１１は、前記記憶部から読み込むことで、前記分割線の数を取得してもよい。また、書籍形状取得部３１１は、使用者によるＬＣＤタッチパネル２３０等の操作部への前記分割線の数の指定操作に基づいて、前記分割線の数を取得してもよいし、前記記憶部に記憶されている分割線の数を変更してもよい。
Ｓ８０５において、書籍形状取得部３１１は、Ｓ８０４で作成した分割線上の距離情報を取得する。書籍形状取得部３１１は、例えば、予め定められた間隔に従って、各分割線の開始点から終了点までの距離画像情報を取得することで分割線上の距離情報を取得することができる。Ｓ８０５で取得した分割線上の距離情報の結果の一例を図９（ｄ）に示す。書籍形状取得部３１１は、図９（ｄ）のように、書籍の表面形状をグラフとして取得することができる。以降、特に断りがなく表面形状と表記した場合は、Ｓ８０５までのステップで取得した図９（ｄ）のようなグラフを示すものとする。前記間隔は、ＲＯＭ２０４、ＨＤＤ２０５等の記憶部に記憶されているとする。書籍形状取得部３１１は、前記記憶部から読み込むことで、前記間隔を取得してもよい。また、書籍形状取得部３１１は、使用者によるＬＣＤタッチパネル２３０等の操作部への前記間隔の指定操作に基づいて、前記間隔を取得してもよいし、前記記憶部に記憶されている間隔を変更してもよい。
Ｓ８０６において、書籍形状取得部３１１は、Ｓ８０５で取得した分割線上の距離情報に基づいて、ページ端候補点検出の処理を行う。Ｓ８０６の処理の詳細について、図１０を用いて示す。
【００２５】
図１０は、分割線上のページ候補点検出の処理のフローチャートである。また、図１０は、Ｓ８０６の処理の詳細を示したフローチャートでもある。なお、分割線上のページ端候補点検出の説明を図１１に示す。図１１は、割線上のページ候補点検出についての説明を示す図である。図１１において、ページ端候補点検出の処理は、書籍中央から書籍端に向けて行うものとして示されているが、書籍端から書籍中央に向けて検出を行うものとしてもよい。また、本実施形態及び実施形態２、３において、図１０、図１１の前記分割線上のページ端候補点検出の処理は、一度の処理で書籍の片端のページ端候補点の検出を行うものとして説明する。しかし、一度のページ端候補点検出の処理で、書籍の両端のページ端候補点の検出が行われるものとしてもよい。
図１１（ａ）は、図９（ｄ）の書籍の片端部分を拡大したものを示し、以降のＳ８０６及び図１０のフローチャートの説明において、図１１（ａ）に対しての例を示す。また、以降では開始点、終了点１及び終了点２を用いて説明するが、特に指定のない限り全て表面形状上にあるものとする。
Ｓ１００１において、書籍形状取得部３１１は、分割線上のページ端候補点検出を行うための開始点の設定を行う。本実施形態では、前記分割線上の予め定められた箇所を開始点とする。前記開始点は、ＲＯＭ２０４、ＨＤＤ２０５等の記憶部に記憶されているとする。書籍形状取得部３１１は、前記記憶部から読み込むことで、前記開始点を取得してもよい。また、書籍形状取得部３１１は、使用者によるＬＣＤタッチパネル２３０等の操作部への前記開始点の指定操作に基づいて、前記開始点を取得してもよいし、前記記憶部に記憶されている開始点を変更してもよい。
【００２６】
Ｓ１００２において、書籍形状取得部３１１は、図１１（ｂ）のように前記分割線上の開始点から予め定められた区間に対して終了点１を設ける。前記区間は、ＲＯＭ２０４、ＨＤＤ２０５等の記憶部に記憶されているとする。書籍形状取得部３１１は、前記記憶部から読み込むことで、前記区間を取得してもよい。また、書籍形状取得部３１１は、使用者によるＬＣＤタッチパネル２３０等の操作部への前記区間の指定操作に基づいて、前記区間を取得してもよいし、前記記憶部に記憶されている区間を変更してもよい。
Ｓ１００３において、書籍形状取得部３１１は、開始点から終了点１を線分でつないだ場合の傾き１を導出する。傾き１の算出方法であるが、図１１（ａ）のように（ＰＸ，ＰＹ）の二軸があり、開始点を（Ｘ１，Ｙ１），終了点１を（Ｘ２，Ｙ２）とすると、次の式で導出できる。
傾き１＝ａｒｃｔａｎ（（Ｙ２−Ｙ１）／（Ｘ２−Ｘ１））
Ｓ１００４において、書籍形状取得部３１１は、図１１（ｃ）のように終了点１から予め定められた区間に対して終了点２を設ける。前記区間は、ＲＯＭ２０４、ＨＤＤ２０５等の記憶部に記憶されているとする。書籍形状取得部３１１は、前記記憶部から読み込むことで、前記区間を取得してもよい。また、書籍形状取得部３１１は、使用者によるＬＣＤタッチパネル２３０等の操作部への前記区間の指定操作に基づいて、前記区間を取得してもよいし、前記記憶部に記憶されている区間を変更してもよい。
Ｓ１００５において、書籍形状取得部３１１は、終了点１と終了点２の傾きを傾き２として導出する。傾き２の導出方法は、前記傾き１の導出方法と同様である。
【００２７】
Ｓ１００６において、書籍形状取得部３１１は、前記傾き１と前記傾き２の差分が閾値以上であるか否かの判定を行う。書籍形状取得部３１１は、前記傾き１と前記傾き２の差分が閾値以上と判定した場合（図１１（ｅ））、Ｓ１００９の処理へ進む。書籍形状取得部３１１は、前記傾き１と前記傾き２の差分が閾値未満と判定した場合、Ｓ１００７の処理へ進む。前記閾値は、ＲＯＭ２０４、ＨＤＤ２０５等の記憶部に記憶されているとする。書籍形状取得部３１１は、前記記憶部から読み込むことで、前記閾値を取得してもよい。また、書籍形状取得部３１１は、使用者によるＬＣＤタッチパネル２３０等の操作部への前記閾値の指定操作に基づいて、前記閾値を取得してもよいし、前記記憶部に記憶されている閾値を変更してもよい。
Ｓ１００７において、書籍形状取得部３１１は、終了点２の座標を終了点１に代入する。
Ｓ１００８において、書籍形状取得部３１１は、Ｓ１００７で終了点２の座標が代入された後の終了点１の座標が書籍の範囲外であるか否かの判定を行う。書籍形状取得部３１１は、終了点１の座標が書籍の範囲外である場合、分割線上のページ端候補点検出の処理を終了する。書籍形状取得部３１１は、終了点１の座標が書籍の範囲内である場合、Ｓ１００３の処理へ進み、図１１（ｄ）のように、開始点から終了点２の座標が代入された終了点１に対しての傾きを傾き１として求める。
Ｓ１００９において、書籍形状取得部３１１は、終了点１をページ端候補点として記録する。
Ｓ１０１０において、書籍形状取得部３１１は、図１１（ｆ）のように終了点１の座標を開始点に代入する。
Ｓ１０１１において、書籍形状取得部３１１は、終了点２の座標を終了点１に代入する。
書籍形状取得部３１１は、Ｓ１０１０とＳ１０１１との処理によってページ端候補点として検出された箇所を開始点として、Ｓ１００３から同様に終了点１が書籍の範囲外であるまで探索を行う。本実施形態では、書籍形状取得部３１１は、分割線上の候補点を最も傾きの差が最大になった箇所や最も書籍中央部に近いもの一つを限定して取得するものとして説明する。
【００２８】
次に、書籍形状取得部３１１により実行されるＳ７０６の領域決定処理を示す。Ｓ７０６の領域決定処理についての詳細を図１２に示す。図１２は、領域決定処理のフローチャートである。
Ｓ１６０１において、書籍形状取得部３１１は、ページ端候補点群との誤差を最小とする線分を最小二乗法によって生成する。最小二乗法による線分は、例えばＯｐｅｎＣＶ内の関数であるｃｖＦｉｔＬｉｎｅ関数の利用等の周知の技術で生成することができる。
Ｓ１６０２において、書籍形状取得部３１１は、距離画像センサ部１０８の測定性能から最大誤差を算出する。前記最大誤差は、距離画像センサ部１０８の測定誤差の一例である。
Ｓ１６０３において、書籍形状取得部３１１は、Ｓ１６０１で生成された線分にＳ１６０２で得られた誤差から算出される幅を設けて決定した矩形領域を、線分検出適用領域として決定する。Ｓ１６０２で得られた誤差から算出される幅は、誤差幅の一例である。本実施形態では、前記幅は、Ｓ１６０２で距離画像センサ部１０８の最大誤差に基づいて算出される値とした。しかし、書籍形状取得部３１１は、前記幅を、例えば予め使用者により設定された固定値、書籍の幅に応じて決定される値、カメラの解像度、キャリブレーションの誤差、書籍の厚み等に応じて決定してもよい。線分検出適用領域は、検査対象領域の一例である。
【００２９】
次に、書籍形状取得部３１１により実行されるＳ７０８の線分検出処理についての詳細を、図１３を用いて示す。図１３は、線分検出処理のフローチャートである。以降の処理において、本実施形態ではＳ７０６の処理で決定される線分検出適用領域は一つとしているが、複数の線分検出適用領域が存在する場合には各線分検出適用領域に対してそれぞれ処理を行うものとする。
Ｓ１２０１において、書籍形状取得部３１１は、カメラ画像取得部３０７から取得した輝度画像情報から、Ｓ７０６で決定された線分検出適用領域内の輝度画像情報を抽出する。
Ｓ１２０２において、書籍形状取得部３１１は、前記線分検出適用領域中の前記輝度画像情報に対してエッジ検出を行う。より具体的には、書籍形状取得部３１１は、前記線分検出適用領域中の前記輝度画像情報に対して１次微分フィルタをかけて輝度差が周囲に比べて大きい箇所を強調した結果の画像データを取得する。本実施形態では、書籍形状取得部３１１は、一次微分フィルタを利用してエッジ検出を行っているが、ラプラシアンなどの二次微分フィルタを利用してエッジ検出を行ってもよい。
Ｓ１２０３において、書籍形状取得部３１１は、Ｓ１２０２でエッジ検出された画像に対してＨｏｕｇｈ変換を用いて予め定められた数だけ線分検出を行う。線分検出の方法としては、例えばＯｐｅｎＣＶ内にあるｃｖＨｏｕｇｈＬｉｎｅｓ２関数のようなＨｏｕｇｈ変換等が周知の技術として知られている。前記検出を行う線分の数は、ＲＯＭ２０４、ＨＤＤ２０５等の記憶部に記憶されているとする。書籍形状取得部３１１は、前記記憶部から読み込むことで、前記検出を行う線分の数を取得してもよい。また、書籍形状取得部３１１は、使用者によるＬＣＤタッチパネル２３０等の操作部への前記検出を行う線分の数の指定操作に基づいて、前記検出を行う線分の数を取得するようにしてもよいし、前記記憶部に記憶されている検出を行う線分の数を変更してもよい。
【００３０】
次に、書籍形状取得部３１１により実行されるＳ７０９の線分特定処理についての詳細を、図１４及び図１５を用いて示す。図１４は、線分特定処理の説明を示す図である。図１５は、線分特定処理のフローチャートである。以下の説明の中で特に指定のない限り、Ｓ７０９でのページ端候補点群は、線分検出適用領域を決定するために用いられたページ端候補点群とする。また、書籍形状取得部３１１は、複数の線分検出適用領域が存在する場合には各線分検出適用領域に対して、それぞれ処理を行うものとする。
図１４（ａ）の点群１３０１がページ端候補点群であるとし、図１４（ｂ）の線分１３０２、１３０３がＳ７０８で検出された複数の線分として以下の例を説明する。
Ｓ１４０１において、書籍形状取得部３１１は、Ｓ７０８で検出した複数の線分の中から一つの線分を線分Ｌ１として選択する。図１４（ｃ）、（ｄ）では線分１３０３が線分Ｌ１として選択された例を説明する。
Ｓ１４０２において、書籍形状取得部３１１は、ＲＡＭ２０３等のメモリ上に存在する総合距離差の値を０にする。前記総合距離差には、ページ端候補点群の中のページ端候補点と線分Ｌ１との距離の合計が格納される。
Ｓ１４０３において、書籍形状取得部３１１は、点群１３０１の中から、一つの点を点Ｐとして選択する。
【００３１】
Ｓ１４０４において、書籍形状取得部３１１は、図１４（ｄ）に示すように、点Ｐを通り線分Ｌ１と垂直な傾きである線分Ｌ２を求める。
Ｓ１４０５において、書籍形状取得部３１１は、線分Ｌ１と線分Ｌ２との交点を交点Ｃとして求める。
Ｓ１４０６において、書籍形状取得部３１１は、交点Ｃと点Ｐとの距離差Ｄを導出する。ここで距離差Ｄは、点Ｐと線分Ｌ１との距離となる。
Ｓ１４０７において、書籍形状取得部３１１は、総合距離差に距離差Ｄを加算する。
Ｓ１４０８において、書籍形状取得部３１１は、点群１３０１内の全ての点に対して処理が終了したかを判定し、全て終了していないならば、Ｓ１４０３〜Ｓ１４０７までの処理をまだ処理が終了していない点に対して行う。
Ｓ１４０９において、書籍形状取得部３１１は、総合距離差が図１５のフローチャート開始時から最小であるかの判定を行う。より具体的には、書籍形状取得部３１１は、総合距離差と最小総合距離差として保持されている値を比較し、前記総合距離差が最小総合距離差未満であった場合、総合距離差が最小であるとして最小総合距離差に前記総合距離差の値を代入する。書籍形状取得部３１１は、総合距離差が最小であるならば、Ｓ１４１０の処理へ進み、総合距離差が最小でないならばＳ１４１１に進む。
Ｓ１４１０において、書籍形状取得部３１１は、線分Ｌ１を検出すべきページ端としてＲＡＭ２０３に記録する。
Ｓ１４１１において、書籍形状取得部３１１は、Ｓ１４０１〜Ｓ１４１０の処理が全ての線分に対して終了したか否かを判定する。書籍形状取得部３１１は、全ての線分に対して前記処理が終了した場合Ｓ７０９の処理を終了し、全ての線分に対して処理が終了していない場合、Ｓ１４０１の処理へ進む。
【００３２】
上述のＳ７０９の線分特定処理の結果の一例を図１４（ｅ）、（ｆ）に示す。
例えば、図１４（ｅ）の線分１３０２のように見開きページ端と線分がほぼ一致する場合には、ページ端の候補点群との距離差は、前記線分が見開きページ端とずれている場合に比べて小さくなる。逆に図１４（ｆ）の線分１３０３のように線分が書籍全体の輪郭部分と一致する場合には、ページ端の候補点群との距離差は、前記線分が見開きページ端とほぼ一致する場合に比べて大きくなる。本実施形態では、書籍形状取得部３１１は、Ｓ７０９の線分特定処理を実行することによって、前記ページ端の候補点群との距離差に基づいて、検出すべきページ端を特定する。
本実施形態の処理によって、書籍形状取得部３１１は、以下の処理が可能となる。即ち、書籍形状取得部３１１は、図１４（ｂ）の線分１３０２、１３０３のように輪郭の候補となる複数の線分が生じた場合でも、Ｓ７０３の処理によって取得したページ端の候補点群との距離差を最小とするものを検出すべき線分として特定できる。
【００３３】
＜実施形態２＞
実施形態１では、俯瞰距離画像に存在する距離情報を全て包含する矩形領域の分割線上のページ端候補点を一つだけ検出することを例としてＳ７０３からの説明を行った。しかし、例えば図１６（ａ）のように書籍が分厚いためにページ端に複数の段差が生じた場合、前記分割線上のページ端候補点は、前記分割線上で複数存在することがある。前記分割線上のページ端候補点が前記分割線上で複数存在する場合、図１６（ｂ）のようにページ端候補点群から複数の矩形領域が作成される。しかし、実施形態１では、書籍形状取得部３１１は、どちらの領域に対して線分検出を適用するべきかの判定ができない。本実施形態では、ページ端に複数の段差が生じた場合に最も書籍中央部に近い領域を線分検出適用領域として選択する処理について説明する。本実施形態における書籍形状取得部３１１の処理は、実施形態１と同じく、図７のフローチャートで表現される。ただし、Ｓ７０６の領域決定処理は、図１７のフローチャートで表現される。
Ｓ１７０１において、書籍形状取得部３１１は、Ｓ７０３の輪郭候補点群検出処理で検出したページ端候補点群のクラスタリングを行う。クラスタリング方法としては、例えば自動的にクラスタ数を決定して、クラスタリングを行うことが可能であるＭｅａｎＳｈｉｆｔ法が例として挙げられる。図１６（ｂ）のように複数の段差上にページ端の候補点群が生じた場合、例えばＭｅａｎＳｈｉｆｔ法では、Ｓ７０６で矩形を決定するために用いる幅に基づいて点群をクラスタリングすることができる。しかし、クラスタリングの方法としては特に上記方法に限定するものではなく、段差ごとに点群がクラス分けされればよい。前記クラス分けされた点群は、同じクラスに属するページ端候補点の集合である。
Ｓ１７０２において、書籍形状取得部３１１は、Ｓ１７０１で分類されたクラスの中から、一つのクラスに属する点群を選択する。
【００３４】
Ｓ１７０５〜Ｓ１７０７において、書籍形状取得部３１１は、前記一つのクラスに属する点群に対して、点群との誤差を最小とする線分を生成し、前記線分に幅を持たせて矩形領域を決定する。Ｓ１７０５の処理内容については、Ｓ１６０１と同じ処理内容である。Ｓ１７０６の処理内容については、Ｓ１６０２と同じ処理内容である。Ｓ１７０７の処理内容については、Ｓ１６０３と同じ処理内容である。
Ｓ１７０３において、書籍形状取得部３１１は、Ｓ１７０１で分類された全てのクラスに対して処理が終了したか否かを判定する。書籍形状取得部３１１は、全てのクラスの処理が終了していない場合、まだ終了していないクラスの点群をＳ１７０２で選択し、同様にＳ１７０２〜Ｓ１７０３までの処理を行う。書籍形状取得部３１１は、前記全てのクラスに対して処理が終了した場合、Ｓ１７０４の処理へ進む。
Ｓ１７０４において、書籍形状取得部３１１は、前記書籍の中央部に最も近い領域を線分検出適用領域として決定する。書籍形状取得部３１１は、Ｓ１７０４で選択された線分検出適用領域に対して図７のＳ７０８〜Ｓ７０９までの処理を行い、ページ端を特定する。
例えば図１６（ｂ）のように段差状にページ端の候補点群が生じた場合、矩形領域１５０１、１５０２のように矩形領域が複数生じる。しかし、本実施形態記載の処理によって、書籍形状取得部３１１は、段差状にページ端の候補点群が生じた場合でも前記書籍の中央部に近い領域である矩形領域１５０１を線分検出適用領域として判定し、ページ端を特定することができる。
【００３５】
＜実施形態３＞
実施形態２と同様の状況においての別の処理を実施形態３に記載する。図１８は、ページ端検出処理全体のフローチャートである。図１８のフローチャートは、実施形態３全体のページ端検出処理のフローチャートである。
Ｓ１９０１において、距離画像取得部３０８は、背景距離画像を取得する。Ｓ１９０１の処理は、Ｓ７０１と同じ処理である。
Ｓ１９０２において、書籍形状取得部３１１は、背景差分法によって、書籍全体の距離情報を取得する。Ｓ１９０２の処理は、Ｓ７０２と同じ処理である。
Ｓ１９０３において、書籍形状取得部３１１は、ページ端の候補点群を書籍全体の距離情報から取得する。Ｓ１９０３の処理はＳ７０３と同じ処理である。
Ｓ１９０４において、書籍形状取得部３１１は、線分検出適用領域を決定する。Ｓ１９０４の処理は、本実施形態における領域決定処理である。
【００３６】
Ｓ１９０４の処理のフローチャートを図１９に示す。Ｓ１８０１の処理は、Ｓ１７０１の処理と同じ処理である。Ｓ１８０２の処理は、Ｓ１７０２の処理と同じ処理である。Ｓ１８０５の処理は、Ｓ１７０５の処理と同じ処理である。Ｓ１８０６の処理は、Ｓ１７０６の処理と同じ処理である。Ｓ１８０７の処理は、Ｓ１７０７の処理と同じ処理である。
Ｓ１８０３の処理は、Ｓ１７０３の処理と同じ処理である。
図１９のフローチャートによる領域決定処理によって、ページ端候補点群がクラスタリングされ、複数の矩形領域が決定される。
Ｓ１９０５〜Ｓ１９０６において、書籍形状取得部３１１は、Ｓ１９０４で決定された各矩形領域に対して各矩形領域から一つの線分をページ端として特定しＲＡＭ２０３に記録する。
Ｓ１９０５において、書籍形状取得部３１１は、Ｓ１９０４で決定された各矩形領域内の輝度画像情報から複数の線分を検出する。Ｓ１９０５の処理は、Ｓ７０８の処理と同じ処理である。
【００３７】
Ｓ１９０６において、書籍形状取得部３１１は、Ｓ１９０４で決定された矩形領域ごとにＳ１９０５で検出された複数の線分の中から一つの線分をページ端として特定する。Ｓ１９０６の処理は、Ｓ７０９の処理と同じ処理である。
Ｓ１９０７において、書籍形状取得部３１１は、Ｓ１９０５〜Ｓ１９０６でページ端として特定されＲＡＭ２０３に記録された各線分の中で、最も書籍中央部に近い線分を選択し処理を終了する。
本実施形態記載の処理によって、書籍形状取得部３１１は、以下の処理が可能となる。即ち、書籍形状取得部３１１は、図１６のような状況において、線分１５０３、１５０４のように複数の線分をページ端として取得した場合でも、線分１５０３のように最も書籍の中央に近い線分をページ端として選択することができる。
【００３８】
＜実施形態４＞
実施形態２、３では、複数の領域が生じた場合、書籍の見開きページ端は段差中で最も書籍中央部に近くにあるとしてページ端を取得する処理について示した。しかし、必ずしも線分検出すべき領域が内側に生じるとは限らない。本実施形態における説明図を図２０に示す。図２０は、本実施形態の処理全体の説明を示す図である。本実施形態が想定する状況には、例えば図２０（ａ）に示すようなＺ折が例として挙げられる。図２０（ａ）のようにＺ折が書籍内に存在する場合、ページ端の候補点から決定される領域は、複数生じるが、書籍形状取得部３１１は、実施形態２、３では最も書籍中央部に近いものだけを選択する。しかし、Ｚ折のような例に対して、書籍形状取得部３１１は、書籍中央部に近いものを選択するべきではない。上述の問題に鑑みて、本実施形態では使用者の指示に基づいて輪郭を選択する方法について示す。
本実施形態において書籍形状取得部３１１により実行される、使用者による選択操作に基づくページ端選択のフローチャートについて図２１に示す。図２１は、使用者によるページ端選択処理のフローチャートである。
Ｓ２１０１において、書籍形状取得部３１１は、カメラ画像取得部３０７により取得された書籍の外観画像をプロジェクタ１０７で書画台１０５に投射し、表示する。本実施形態では、書籍形状取得部３１１は、例えば図２０（ｂ）の輪郭２００１のように実施形態２、３の処理で検出したページ端から得られる輪郭を書籍に重畳させた画像を作成し、プロジェクタ１０７を介し、前記画像を書画台１０５に投射し、表示している。また、書籍形状取得部３１１は、ボタン２００２のように"修正"ボタンを表示する等して、使用者に輪郭の候補が複数存在する旨を示してもよい。"修正"ボタンとして本実施形態では示しているが、ボタンに特に限定するものではなく、輪郭の候補が複数存在する旨が使用者に伝わればよい。
【００３９】
Ｓ２１０３において、書籍形状取得部３１１は、ジェスチャ認識部３０９により使用者による修正ボタンの押下の操作が認識されたか否かを判定する。ジェスチャの認識技術については、例えば指先による平面タッチの検出技術等が知られている。書籍形状取得部３１１は、前記技術によって、平面へのタッチを検出することができる。ただし、使用する技術は、使用者の指先による平面タッチの検出が可能であれば特に上記技術に限定されない。書籍形状取得部３１１は、ジェスチャ認識部３０９により図２０(ｃ)のように使用者による修正ボタンの押下の操作が認識されたと判定すると、Ｓ２１０４の処理へ進む。また、書籍形状取得部３１１は、ジェスチャ認識部３０９により使用者による修正ボタンの押下の操作が認識されないと判定するとＳ２１０３の処理へ進む。
Ｓ２１０４において、書籍形状取得部３１１は、Ｓ７０９でＲＡＭ２０３上に記録した線分を書籍に重畳させた画像を作成し、プロジェクタ１０７を介して、図２０（ｄ）のように前記画像を書画台１０５に投射し、表示する。図２０（ｄ）の線分２００４、２００５は、Ｓ７０９でＲＡＭ２０３に記録された各矩形領域からページ端として特定された線分をそれぞれ示すものとする。また、書籍形状取得部３１１は、使用者に前記各矩形領域からページ端として特定した線分を選択させる意図を示すメッセージ２００３を表示する。
【００４０】
Ｓ２１０５において、書籍形状取得部３１１は、ジェスチャ認識部３０９により使用者による線分の選択の操作が認識されたか否かを判定する。図２０（ｅ）は、使用者により線分２００５が選択された例を示す。書籍形状取得部３１１は、使用者により線分の選択がなされた場合、Ｓ２１０６の処理へ進み、使用者により線分の選択がなされなかった場合、Ｓ２１０５の処理へ進む。
Ｓ２１０６において、書籍形状取得部３１１は、図２０（ｆ）の輪郭２００６に示すようにＳ２１０５で使用者により選択された線分をページ端として最終決定する。
本実施形態の処理によって、書籍形状取得部３１１は、Ｚ折等の複数のページ端の候補点から決定される領域が複数生じる場合でも、使用者による線分の選択の操作を検知することで、ページ端とする線分を決定することができる。
【００４１】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４２】
１０１  カメラスキャナ、１０２  コントローラ部、１０３  カメラ部、１０７  プロジェクタ、１０８  距離画像センサ部、２０２  ＣＰＵ
【図１】
0006399840.tif 000005
【図２】
0006399840.tif 000006
【図３】
0006399840.tif 000007
【図４】
0006399840.tif 000008
【図５】
0006399840.tif 000009
【図６】
0006399840.tif 000010
【図７】
0006399840.tif 000011
【図８】
0006399840.tif 000012
【図９】
0006399840.tif 000013
【図１０】
0006399840.tif 000014
【図１１】
0006399840.tif 000015
【図１２】
0006399840.tif 000016
【図１３】
0006399840.tif 000017
【図１４】
0006399840.tif 000018
【図１５】
0006399840.tif 000019
【図１６】
0006399840.tif 000020
【図１７】
0006399840.tif 000021
【図１８】
0006399840.tif 000022
【図１９】
0006399840.tif 000023
【図２０】
0006399840.tif 000024
【図２１】
0006399840.tif 000025