以下、本発明の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
図1Aは、本発明の実施の形態における画像処理装置の平面図の一例を示す図である。図1Bは、図1Aに示した実施の形態における画像処理装置の側面図を示す図である。図1A及び図1Bに示すように、本実施の形態における画像処理装置100は、例えば、携帯端末等であって、表示部101、操作部102、及び、カメラ等で構成される画像情報取得部103(図示なし)を含む。なお、当該画像処理装置100の外観は一例であって、これに限定されるものではない。
図2は、本発明の実施の形態における画像処理装置の構成について説明するための図である。図2に示すように、本実施の形態における画像処理装置100は、機能的に、例えば、表示部101、操作部102、画像情報取得部103、制御部104、記憶部105、通信部106、傾きセンサ107、及び、画像処理部108を含む。なお、図2に示した構成は一例であって、これに限定されるものではない。
画像情報取得部103は、例えば、CCDイメージセンサ(Charge Coupled Device Image Sensor)等の撮像素子(図示なし)を含むカメラ等で構成され、撮影対象の画像情報(フレーム画像)を取得する。制御部104は、例えば、CPU、MPU等であって、記憶部105に格納されたプログラムに従って動作する。
記憶部105は、例えば、ROMやRAM、ハードディスク等の情報記録媒体で構成され、制御部104によって実行されるプログラムを保持する情報記録媒体である。また、記憶部105は、制御部104のワークメモリとしても動作する。なお、当該プログラムは、例えば、ネットワークを介して、ダウンロードされて提供されてもよいし、または、CD−ROMやDVD−ROM等のコンピュータで読み取り可能な各種の情報記録媒体によって提供されてもよい。通信部106は、当該画像処理装置100を、ネットワークを介して、他の画像処理装置100やパーソナルコンピュータ等と接続する。
操作部102は、例えば、ボタンやタッチパネル等で構成され、ユーザーの指示操作に応じて、当該指示操作の内容を制御部104に出力する。なお、操作部102がタッチパネルで構成される場合は、操作部102は後述する表示部101と一体として構成されてもよいし、操作部102の一部が表示部101と一体として構成されてもよい。
表示部101は、例えば、液晶ディスプレイ、有機ELディスプレイ等であって、制御部104からの指示に従い、情報を表示する。傾きセンサ107は、例えば、加速度センサであって、例えば、1フレーム期間等あらかじめ設定された期間毎に画像情報取得部103に含まれるカメラの傾き等を検出する。
画像処理部108は、制御部104からの指示に従い、画像情報取得部103で取得された画像情報の画像処理を行う。具体的には、図3に示すように、画像処理部108は、機能的に、品質判定部301、位置情報取得部302、パノラマ画像情報生成部303、枠画像情報生成部304、及び、傾き情報生成部305を含む。
品質判定部301は、画像情報取得部103により取得された各画像情報があらかじめ設定された基準に合致しているか否かを判定する。そして、当該基準に合致すると判定した画像情報については、記憶部105に保持する。一方、当該基準に合致しないと判定した画像情報については、記憶部105に保持しない。具体的には、品質判定部301は、例えば、取得された画像情報に含まれる文字が視認可能であるか否か、OCR(Optical Character Reader)で光学的文字認識可能(OCR可能)であるか否か等の文字のサイズ等に基づく基準(目標画質基準)に合致するかについて判定する。なお、上記いずれの基準(例えば、視認可能かまたはOCR可能か)を用いるか、または、複数の基準(例えば、視認可能、かつ、OCR可能か)を用いるか等については、例えば、操作部102を用いてユーザーが指定するように構成してもよい。
図4に示すように、品質判定部301は、具体的には、例えば、傾き判定部401、2値画像部分検出部402、スキュー検出部403、行高さ取得部404、行高さ判定部405を含む。
傾き判定部401は、傾きセンサ107で取得された傾き情報があらかじめ設定される範囲(基準範囲)を超えているか否かを判定する。そして、傾きセンサ107で取得された傾き情報が当該基準範囲を超える場合には、その傾き情報に対応する画像情報は削除する。一方、傾きセンサ107で取得された傾き情報が基準範囲であると判定した場合には、当該判定結果に対応する各画像情報を2値画像部分検出部402に取得させる。
2値画像部分検出部402は、傾きセンサ107で取得された傾き情報があらかじめ設定された範囲であると判定された各画像情報に含まれる2値画像で表される2値画像部分を検出する。なお、傾きセンサ107を用いない場合には、当該2値画像部分検出部402は、画像情報取得部103で取得された各画像情報に含まれる2値画像部分を検出するように構成する。
スキュー検出部403は、各画像が撮影された際のスキューを検出する。具体的には、例えば、各画像が撮影された際のカメラのXY方向の回転角を求める。ここで、XY方向とは、例えば、図1A及び図1Bに示したXY方向に相当する。回転角は、例えば、傾きセンサ107を用いる場合には、傾きセンサ107の出力に基づいて検出してもよいし、傾きセンサ107を用いない場合には、取得された各画像情報で表される各画像の角度を変化させるとともにその投影を求めることにより検出してもよい。
行高さ取得部404は、例えば、検出された回転角の方向に沿って投影を取り、2値画像部分に表された文字列の行が認識できた場合には、その行高さを取得する。行高さ判定部405は、取得された行高さが、上記目標画質基準に基づいて決定される文字高さに応じて求められる基準高さ以上であるか否かを判定する。そして、行高さ判定部405が基準高さ以上である場合には、当該画像情報が目標画質基準に合致しているとして、当該画像情報を、記憶部105に保持する。一方、行高さ判定部405が基準高さに満たないと判定した画像情報については、記憶部105に保持しない。
位置情報取得部302は、取得された画像情報のうち、品質判定部301により目標画質基準に合致すると判定された画像情報の位置を算出し取得する。位置情報取得部302は、更に、拡大率や縮小率を算出・取得するように構成してもよい。そして、パノラマ画像情報生成部303は、上記算出された位置情報に基づいて、品質判定部301により当該目標画質基準に合致すると判定された画像情報からパノラマ画像を表すパノラマ画像情報を生成する。よって、生成されるパノラマ画像のうち目標画質基準基準に合致しないと判断された部分画像に対応する部分については、空白部分となる。
具体的には、例えば、位置情報取得部302が、各画像のいわゆる局所特徴量を算出し、パノラマ画像情報生成部303が、当該局所特徴量間の距離が最小になるように各画像の重ね合わせることにより、各画像の適切な接合位置と拡大縮小率を求め、パノラマ画像を表すパノラマ画像情報を生成する。ここで、例えば、当該局所特徴量の検出には、いわゆるSIFT(Scale‐Invariant Feature Transform)技術を用いてもよい。当該技術によれば、複数の画像から得られたキーポイントと呼ばれる特徴点の128次元の特徴量の近さを比較することで異なるフレーム画像中の対応するキーポイントの位置が求められる。また、複数のキーポイント間の関係から回転角や拡大縮小率についても求められる。ここで、当該特徴点が検出されなかった画像については、パノラマ画像情報の生成には用いないように構成する。
ここで、図5を用いて、パノラマ画像情報生成部303により生成されたパノラマ画像情報で表されるパノラマ画像の一例について説明する。図5に示すように、パノラマ画像500は、品質判定部301により上記目標画質基準に合致すると判定された画像情報から生成されたパノラマ画像部分501(撮影対象において画像が表されている画像部分503と文字が表されている文字部分501)と、パノラマ画像のうち当該目標画質基準に合致しないと判断された部分画像に対応する部分に相当する空白部分502を含む。ユーザーは、当該パノラマ画像500のうちの当該空白部分502の位置等に基づいて、目標画質基準に満たない部分(空白部分502に相当)を視認することにより、撮影対象のうち当該空白部分502に対応する部分の再度の撮影が促され、当該再度の撮影により撮影対象の完全なパノラマ画像を取得する。なお、上記文字部分501が上記2値画像部分検出部402で検出される部分に相当する。また、空白部分502は、目標画質基準に満たなかった部分を示す限り、その他の表示、例えば、警告等の文字等を含む表示等、であってもよい。
枠画像情報生成部304は、指定された目標画質基準に合致する画像情報を得るために最低限必要な文字の大きさに応じた枠を示す枠画像情報を生成する。具体的には、例えば、利用するOCRエンジンの最小文字認識サイズをXポイント、入力解像度をYdpi、画像処理取得部で用いるカメラの撮影モードの解像度をZdpi(Z>Y)とすると、OCR入力時はその文字高さは、Y×X/72pixel以上である必要がある。さらに、当該カメラの解像度がZの時は、OCR入力前にY/Z倍の解像度変換が必要なため、必要ピクセルサイズは、Z/Y× Y×X/72pixel= Z×X/72pixel以上である必要がある。したがって、枠画像情報としては、当該サイズ以上の枠画像を示すように構成すればよい。つまり、例えば、利用するOCRエンジンの最小文字認識サイズを6ポイント、入力解像度を200dpi、カメラの撮影モードの解像度を300dpiとしたときに必要な文字サイズ(文字高さ)は、25pixelであり、当該サイズ以上の枠を表示部101に表示すればよい。また、傾き情報生成部305は、傾きセンサ107からの情報に基づいて、画像情報取得部103に用いるカメラの傾きの程度を示す傾き情報を生成する。
具体的には、例えば、図6に示すように、ユーザーは、本実施の形態における画像処理装置100を、撮影対象である紙媒体に表された文書601上を順次移動させることにより、文書601全体を撮影する。この間、現在撮影されている文書601の一部が、画像情報取得部103により取得され、表示部101に表示される。この際、枠画像情報生成部304により生成された枠画像情報で表される枠画像602も表示部101に表示される。当該枠画像602は、例えば、図6に示すように、2重の枠で構成され、例えば、内側の枠が、視認可能である文字のサイズに対応し、外側の枠がOCR可能である文字のサイズに対応する。なお、文書601は画像として表される画像部分を含んでもよい。
したがって、ユーザーが当該枠画像602を基準に文書601の撮影を行うことにより、目標画質基準を満たすパノラマ画像の取得が確保される。具体的には、例えば、ユーザーの目的が視認可能であるパノラマ画像の取得である場合には、ユーザーは表示部101に表示される文字の大きさが、内側の枠以上となるように、文書601と画像処理装置100の距離を調整等しつつ、撮影する。また、例えば、ユーザーの目的がOCR可能であるパノラマ画像の取得である場合には、ユーザーは表示部101に表示される文字の大きさが、外側の枠以上となるように、文書601と画像処理装置100の距離を調整等しつつ、撮影する。なお、図6においては、上記のように枠画像602として2重の枠が表示される場合について説明したが、ユーザーがいずれかの目標画質基準(例えば、視認可能またはOCR可能)を指定することにより、外側または内側の枠画像602の一方が表示されるように構成してもよい。
また、図6に示すように、傾き情報生成部305により生成された傾き情報は、例えば、撮影されている画像に重ねて表示部101に表示され、それぞれX及びY方向の傾きを示す。具体的には、例えば、表示部101に表示される傾き情報は、図5に示すように、X及びY方向それぞれに棒状部603と、各方向への傾きに応じて移動する移動部604を有する。そして、移動部604は、画像処理装置100の傾きに応じて、棒状部603の中央から移動する。したがって、ユーザーが、各移動部604が棒状部603の中央に位置するようにしつつ、画像処理装置100を移動して文書601全体を撮影すれば、傾きの影響のない画像情報が取得される。なお、図6においては、説明の容易化のために、画像処理装置100を透明にして示した。また、上記X及びY方向は、例えば、図1A及び図1Bに示した方向に相当する。
次に、図7を用いて、本実施の形態における画像処理装置のフローの概要について説明する。図7に示すように、例えば、ユーザーの操作部102への撮影開始指示により画像情報取得部103は、撮影対象を撮影し、その画像情報を取得する(S101)。当該取得された画像情報は、表示部101に表示される。このとき、例えば、上記枠画像や傾き情報が重ねて表示部101に表示されている画像に重ねて表示される。
品質判定部301は、各画像情報が、目標画質基準に合致するか否かを判定する(S102)。そして、当該目標画質基準に合致すると判定した画像情報については、記憶部105に保持する(S103)。一方、当該目標画質基準に合致しないと判定した画像情報については、記憶部105に保持しない。これにより、当該目標画質基準に合致すると判定した画像情報のみが記憶部105に保持される。
撮影の終了が指示されたか否かを判定する(S104)。撮影の終了が指示された場合には、画像情報取得部103は画像情報の取得を終了し、S105に進む。一方、撮影の終了が指示されていない場合には、S101に戻る。なお、当該撮影の終了については、例えば、ユーザーが撮影の終了を、操作部102を介して、指示することにより行われる。
位置情報取得部302は、生成されるパノラマ画像情報における、記憶部105に保持された各画像情報の位置を示す位置情報を取得する(S105)。パノラマ画像情報生成部303は、上記のように目標画質基準を満たすとして記憶部105に保持された画像情報と上記位置情報に基づいて、パノラマ画像情報を生成する(S106)。当該パノラマ画像情報は、例えば、表示部101にパノラマ画像として表示される。なお、パノラマ画像情報の表示は、例えば、ユーザーが操作部102にパノラマ画像の表示を指示することにより行われる。
次に、上記目標画質基準に合致しないと判定された部分(部分画像)があるか否か判定する(S107)。当該部分画像がないと判定した場合には、処理を終了する。一方、当該部分画像があると判定した場合には、S101に戻る。なお、当該判定は、例えば、ユーザーがパノラマ画像を視認することにより判定するように構成してもよいし、画像処理装置100が、例えば、パノラマ画像に所定の大きさ以上の空白部分があると判定した場合に、上記部分画像があると判定するように構成してもよい。
図8は、図7に示したS102に示した処理の詳細の一例を示す図である。図8に示すように、傾き判定部401は、傾きセンサ107で取得された傾き情報があらかじめ設定される範囲(基準範囲)を超えているか否かを判定する(S201)。そして、傾きセンサ107で取得された傾き情報が当該基準範囲を超える場合にはS104に進む。
2値画像部分検出部402は、傾きセンサ107で取得された傾き情報があらかじめ設定された範囲であると判定された各画像情報に含まれる2値画像で表される2値画像部分を検出する(S202)。スキュー検出部403は、各画像が撮影された際のスキューを検出する(S203)。行高さ取得部404は、例えば、検出された回転角の方向に沿って投影を取り、2値画像部分に表された文字列の行が認識できた場合には、その行高さを取得する(S204)。
行高さ判定部405は、取得された行高さが基準高さ以上であるか否かを判定する(S205)。そして、行高さ判定部405が基準高さ以上である場合には、S103に進み、当該画像情報が目標画質基準に合致しているとして当該画像情報を、記憶部105に保持する。一方、行高さ判定部405が基準高さに満たないと判定した場合にはS104に進む。
なお、上記図7及び図8に示した処理のフローは一例にすぎず、上記フローと実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えてもよい。例えば、上記フローにおいては、S102で各画像情報が、あらかじめ設定された基準に合致するか否かを判定し、当該基準に合致すると判定した画像情報を記憶部105等に保持する構成として説明したがが、あらかじめ各画像情報を記憶部105等に保持しておき、当該あらかじめ設定された基準に合致しないと判定した画像情報を削除するように構成してもよい。また、上記図8に示した各画像情報の品質判定フローに代えて、実際に画像処理装置100に設けられた光学的文字認識部(図示なし)が実際にOCRを行うことにより、各画像の品質が目標画質基準(OCR可能であるか否かが指示されている場合)に合致するか否かを判定するように構成してもよい。
本発明は、上記実施の形態に限定されるものではなく、上記実施の形態で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えてもよい。具体的には、例えば、上記においては、主に、傾き情報を表示部101に表示する場合について説明したが、当該傾き情報の表示を行わないように構成してもよいし、更に、画像処理装置100は傾きセンサ107を備えないように構成してもよい。更に、上記においては、画像処理装置100が図1に示すような携帯端末に相当する場合について説明したが、これに限られず、品質判定部301、位置情報取得部302、パノラマ画像情報生成部303等を、例えば、ネットワークを介して接続されたコンピュータ等で実現するように構成してもよい。つまり、カメラ等で構成される画像情報取得部103等とその他の各部等を分離して構成してもよい。