(57)【要約】【課題】  被写体を撮影した際に、照明等の光源による反射部分が含まれている場合、後段の処理（例えば、文字認識処理）に悪影響を及ぼす可能性がある。【解決手段】  本発明によれば、撮影した画像内に、光源による反射部分が含まれるか判定し、前記画像内に強い反射部分が含まれると判定した場合、ユーザに撮影方法の変更を促すためのメッセージを表示する。【選択図】  図５
2019109624.tif 000002
【特許請求の範囲】
【請求項１】
撮影した画像内に、光源による反射部分が含まれるか判定する第１の判定手段と、
前記第１の判定手段において前記画像内に強い反射部分が含まれると判定した場合、ユーザに撮影方法の変更を促すためのメッセージを表示する表示手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記第１の判定手段において前記画像内に反射部分が含まれないと判定した場合、前記撮影した画像に対して後段の処理を実行するように制御する制御手段を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の判定手段において前記画像内に反射部分が含まれないと判定した場合、その時点で新たに撮影した画像に対して後段の処理を実行するように制御する制御手段を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記後段の処理は、文字認識処理であることを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記表示手段は、前記第１の判定手段において前記画像内に反射部分が含まれると判定した場合、ユーザに撮影方法の変更を促すためのメッセージと、当該強い反射部分の位置を示すガイドとを表示することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記撮影した画像内に強い反射部分が含まれる場合、前記第１の判定手段は、被写体における処理対象領域を予め定義したレイアウト情報に基づいて、前記反射部分の位置が前記処理対象領域の位置に重なっているか判断し、重なっていれば、前記撮影した画像内に反射部分が含まれると判定し、重なっていなければ、前記撮影した画像内に後段の処理に影響を及ぼす反射部分が含まれないと判定する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記第１の判定手段は、撮影した画像内に反射部分が含まれる場合、強い反射部分の位置が異なる複数の画像を取得し、当該取得した複数の画像それぞれについて文字列領域の位置を検出し、前記複数の画像間で当該検出した文字列領域の位置が変わっている場合は、前記撮影した画像内に反射部分が含まれると判定し、前記複数の画像間で当該検出した文字列領域の位置が変わっていない場合は、前記撮影した画像内に後段の処理に影響を及ぼす反射部分が含まれないと判定する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記第１の判定手段において前記画像内に反射部分が含まれると判定した場合に、前記反射部分について画像補正で対応可能か判定する第２の判定手段を更に有し、
前記表示手段は、前記第２の判定手段において前記画像補正で対応できないと判定した場合に、ユーザに撮影方法の変更を促すためのメッセージを表示する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記第２の判定手段において前記画像補正で対応可能と判定した場合に、画像に対して画像補正処理を実行する画像補正手段と、
前記画像補正手段で画像補正された画像に対して、後段の処理を実行するように制御する制御手段と、
を有することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
コンピュータを、請求項１乃至９のいずれか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【請求項１１】
請求項１０に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【請求項１２】
情報処理装置の判定手段が、撮影した画像内に、光源による反射部分が含まれるか判定する判定ステップと、
前記情報処理装置の表示手段が、前記判定ステップで前記画像内に強い反射部分が含まれると判定した場合に、ユーザに撮影方法の変更を促すためのメッセージを表示する表示ステップと、
を有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
カメラ付きモバイル端末は一般的なものになってきた。これに伴い、保険会社などの営業担当者が、顧客が所持する保険証書や運転免許証等の文書やカードを被写体として、カメラ付きモバイル端末を用いて撮影し、当該撮影した画像データを使用する業務が考えられている。例えば、この撮影された画像データに対し文字認識処理（ＯＣＲ処理）を行って文字データを抽出し、該文字データをデータベースへ登録したり、該文字データを解析してソリューションの提案に用いたりする。そのため、カメラ付きモバイル端末を用いて撮影される文書画像データは、文字認識処理に適した画質であることが望ましい。
【０００３】
一方で、光沢のある被写体（例えば日本の運転免許証など）を撮影した場合、照明光の反射の写り込みが発生しやすい。そして、その反射部分ではカメラの画像センサーの露光が飽和状態（いわゆる、白飛び）に近くなり、その反射部分に記載されている文字と背景の輝度差が小さくなるので、文字と背景を判別しにくい画像（すなわち、文字認識処理に適さない画像）となってしまう。
【０００４】
特許文献１では、ホワイトボードを撮影した際に、輝度分布ヒストグラムを作成し、このヒストグラムに基づいて反射部を判断し、さらに、その反射部分のヒストグラム中で閾値を設定して文字部分と背景部分とを特定する。そして、その反射部分内の背景部分をホワイトボードの背景色に変換し、その反射部分内の文字部分をホワイトボードの背景色よりも輝度の低い所定の色に変換する、という技術を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−０７９２５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、照明光が非常に強く反射している反射部分においては文字と背景の輝度が非常に近くなるので、特許文献１のような技術を用いたとしても、画素レベルで見ると、反射部分における文字画素と背景画素との一部は誤判定する可能性がある。このような文字画素と背景画素を一部誤判定した画像に対して文字認識処理を実行した場合、文字認識結果の精度の悪化につながる。すなわち、照明光の反射部分を含む撮影画像データに対して、特許文献１のような技術を用いて人間が文字を判別できる程度に画像補正できたとしても、文字認識処理の精度には悪影響を及ぼす可能性が高い。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の情報処理装置は、撮影した画像内に、光源による反射部分が含まれるか判定する第１の判定手段と、前記第１の判定手段において前記画像内に強い反射部分が含まれると判定した場合、ユーザに撮影方法の変更を促すためのメッセージを表示する表示手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明では、文書等の被写体を撮影する際に、照明光などの光源の強い反射部分があるかを判定し、強い反射部分がある場合は自動撮影を行わずに、撮影方法の変更をユーザに促すメッセージを表示することにより、後段の処理（文字認識処理）に適した画像を取得できているか判別できるようにする。
【図面の簡単な説明】
【０００９】
【図１】モバイル端末の外観の一例を示す図である。
【図２】モバイル端末のハードウェア構成の一例を示す図である。
【図３】モバイル端末のソフトウェア構成の一例を示す図である。
【図４】モバイルアプリのＵＩの一例を示す図である。
【図５】実施例１における処理フローを示す図である。
【図６】四辺検出処理を示す図である。
【図７】メッセージ表示の例を示す図である。
【図８】歪み補正処理の例を示す図である。
【図９】ＯＣＲ結果を表示するＵＩの一例を示す図である。
【図１０】実施例１のテカリ検出処理フローを説明する図である。
【図１１】テカリ検出時の二値化処理の例を説明する図である。
【図１２】テンプレートにする文字領域設定を説明する図である。
【図１３】実施例２のテカリ検出処理フローを説明する図である。
【図１４】異なる位置にテカリ領域がある場合に抽出した文字領域の例である。
【図１５】実施例３のテカリ検出処理フローを説明する図である。
【図１６】実施例４における処理フローを示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面などを参照して説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【実施例１】
【００１１】
本実施形態に係る情報処理装置の一例として、カメラ機能を備えたモバイル端末（携帯端末）を例に説明する。モバイル端末は、スマートフォンやタブレット端末などの無線通信機能を有する端末であってもよく、その場合は無線通信機能を介して撮影した画像データを外部サーバ等に送信することも可能である。
【００１２】
図１は、モバイル端末の外観の一例を示す図であり、モバイル端末１００の前面１０１からの外観と、背面１０３からの外観とをそれぞれ示している。モバイル端末の前面１０１には、タッチパネルディスプレイ（表示部）１０２が備えられ、撮影中の画像の表示と、ユーザからの操作指示の入力との２つの機能を備えている。モバイル端末の背面１０３には、動画及び静止画を取り込むためのカメラ１０４が備えられている。本実施形態では、モバイル端末１００のユーザは、後述のモバイルアプリ（モバイルアプリケーション）において、カメラ１０４を用いて被写体（帳票等の文書）１０５を撮影することによって処理を開始することができる。被写体１０５は、Ａ４，Ａ３等の定形サイズの紙文書に限るものではなく、非定形サイズの紙文書であってもよいし、さらに、帳票等の紙文書だけに限らず、様々なサイズの被写体（免許証、名刺、写真、カードなど）であってもよい。後述のモバイルアプリは、被写体１０５の画像を、カメラ１０４を使用して取り込み、タッチパネル１０２にその画像を出力することができる。
【００１３】
［ハードウェア構成］
図２は、モバイル端末１００のハードウェアの構成の一例を示す図であり、各種のユニット（２０１〜２０７）を含む。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１は、各種のプログラムを実行することにより、後述するフローチャートの各処理を実現するための処理部として機能するプロセッサである。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２は、各種の情報を記憶するユニットである。また、ＲＡＭ２０２は、各種の情報を記憶し、また、ＣＰＵ２０１の一時的な作業記憶領域としても利用される。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３は、各種のプログラム等を記憶する記憶部である。ＣＰＵ２０１は、ＲＯＭ２０３に記憶されているプログラムをＲＡＭ２０２にロードしてプログラムを実行する。なお、本発明を実現するためのプログラムが格納される記憶媒体は、ＲＯＭ２０３に限るものではなく、ＵＳＢメモリ等のフラッシュメモリや、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などのコンピュータ読み取り可能な記憶媒体であっても構わない。また、該プログラムは、モバイル端末１００の記憶媒体に格納されているものに限るものではなく、実行時に無線ネットワークを介してダウンロードするものであってもよいし、Ｗｅｂブラウザ上で実行されるＷｅｂアプリケーションであってもよい。なお、モバイル端末１００の機能及び後述するシーケンスに係る処理の全部又は一部については専用のハードウェアを用いて実現してもよい。
【００１４】
Ｉｎｐｕｔ／Ｏｕｔｐｕｔインターフェース２０４は、タッチパネル１０２との間で通信を行い、表示データの送信やユーザからの操作指示データの受信等を行う。ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２０５は、モバイル端末１００を無線通信等を介してネットワーク（不図示）に接続するためのユニットである。
【００１５】
カメラインターフェース２０６は、カメラ１０４で撮影した被写体１０５の画像データ（動画、静止画）を取り込むインターフェースである。上述した各ユニットは、バス２０７を介してデータの送受信を行うことが可能に構成されている。
【００１６】
［ソフトウェア構成］
次に、モバイル端末１００におけるソフトウェア（モバイルアプリケーション）の機能モジュール構成の一例について説明する。図３に示される各処理部を実現するプログラムは、上述したようにＲＯＭ２０３等に記憶されている。
【００１７】
モバイル端末１００のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）（不図示）は、データ管理部３０１を有する。データ管理部３０１は、画像やアプリケーションデータを管理する。ＯＳは、データ管理部３０１を利用するための制御ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を提供している。各アプリはその制御ＡＰＩを利用することでデータ管理部３０１で管理される画像やアプリケーションデータの取得や保存を行う。
【００１８】
モバイルアプリ３０２は、モバイル端末１００にて実行可能なアプリケーションである。モバイルアプリ３０２は、カメラユニット２０６を介して取り込んだ被写体１０５の画像データに対する各種のデータ処理を行う。
【００１９】
メイン制御部３０３は、モバイルアプリ３０２を構成する各モジュール部（３０４〜３１３）の制御を行う。
【００２０】
情報表示部３０４は、メイン制御部３０３からの指示に従い、モバイルアプリ３０２のユーザインタフェース（ＵＩ）をユーザに提供する。図４の画面４０１は、モバイルアプリ３０２により提供されるＵＩ画面の一例を示す図である。モバイル端末の画面４０１は、モバイル端末１００のタッチパネル１０２に表示されるものであり、カメラ１０４を介して取り込んだ画像が表示され、該表示された画像等に対するユーザによる操作（ユーザ操作）を、表示されたＵＩを介して受け付ける。なお、モバイルアプリ３０２のＵＩ画面の形態（撮影画像や操作ボタン等の表示位置、大きさ、範囲、配置、表示内容など）は、図４に示す形態に限定されるものではなく、モバイルアプリケーション３０２の機能を実現することができる適宜の構成を採用することができる。
【００２１】
操作情報取得部３０５は、情報表示部３０４により表示されたＵＩ画面上で為されたユーザの操作に関する情報を取得し、当該取得した操作情報をメイン制御部３０３に通知する。例えば、ＵＩ画面をユーザが手で触れると、操作情報取得部３０５は、当該触れられた画面上の位置の情報を感知し、感知した位置の情報をメイン制御部３０３に送信する。
【００２２】
撮影画像取得部３０６は、メイン制御部３０３の指示によりカメラインターフェース２０６およびカメラ１０４を介して撮影された撮影画像を取得し、記憶部３０７に記憶する。なお、撮影画像をすぐに処理する場合は、撮影画像取得部３０６は、メイン制御部３０３や四辺検出部３０８にダイレクトに送信しても構わない。また、撮影画像取得部３０６は、撮影時における画像解像度を取得し、メイン制御部３０３に送信する。
【００２３】
記憶部３０７は、撮影画像取得部３０６により取得された撮影画像を記憶する。またメイン制御部３０３の指示により記憶している撮影画像の削除を行うことができる。
【００２４】
四辺検出部３０８は、撮影画像取得部３０６によって取得され、記憶部３０７に記憶された画像に対して、エッジ検出処理等を実行することにより、画像中の文書の四辺（紙端）情報を取得する。四辺情報は、撮影画像中の文書と背景との境界線により構成される四辺形の４つの頂点についての、撮影画像上における位置座標を含んでいる。四辺情報の検出には、ハフ（Ｈｏｕｇｈ）変換やＣａｎｎｙアルゴリズムなどのエッジ検出手法等を組みあわせて検出することが考えられるが、様々な環境下で撮影されることを考慮し、文書の背景によるノイズなどに検出結果が左右されにくい検出手法が好ましい。
【００２５】
歪み補正処理部３０９は、四辺検出部３０８で検出された四辺情報と、被写体の文書の形状情報（各辺の長さや縦横比の情報）とに基づいて、当該検出された四辺形が被写体の形状（縦横比の矩形）に合うように歪み補正するための歪み補正情報（歪み補正パラメータ）を求め、その歪み補正情報を使って撮影画像に対して歪み補正を行う。被写体の文書の形状情報は、被写体が、Ａ４やＡ５などの定形サイズの紙文書であったり免許証などの既知のサイズの被写体であったりする場合は、その既知のサイズを使用する。なお、被写体の形状が未知である場合は、四辺検出部３０８で検出された四辺情報に基づいて、被写体文書のサイズを推定するようにしてもよい。なお、本実施例では、文書と背景との境界である四辺情報を使い歪み補正パラメータを求めて歪み補正するものとするが、文書内の記載されているオブジェクト（罫線や文字のベースラインなどの情報）に基づき歪み補正を行う構成であってもよい。
【００２６】
自動撮影処理部３１０は、後述するテカリ処理部で撮影画像内に光源（照明光など）による強い反射部分がないと判断され、かつ、四辺検出部３０８で検出された四辺情報に基づき被写体がＯＣＲ可能な画像サイズで撮影されている（所定以上の大きさで撮影されていると判断した時点で、当該撮影中の画像が文字認識処理に適した画像であるとして、その撮影画像を記憶部３０７へ保存する。
【００２７】
テカリ処理部３１１は、撮影画像内に、照明光などの光源による反射部分があるかどうか判断し、反射部分がある場合は、その反射部分の位置とその反射光の強度とを検出する。以下では、照明光などの光源による強い反射部分を「テカリ」と呼ぶこととし、反射部分の位置と強度の検出処理を「テカリ検出処理」と呼ぶこととする。
【００２８】
ガイドＵＩ指示部３１２は、テカリ処理部３１１でのテカリ検出処理の結果に応じたガイドＵＩを表示するように、メイン制御部３０３を介して情報表示部３０４に指示する。
【００２９】
ＯＣＲ部３１３は、歪み補正処理部３０９で歪み補正した画像に対して文字認識処理（ＯＣＲ処理）を行い、テキスト情報を抽出する。
【００３０】
［処理フロー］
図５を用いて、モバイル端末１００のＣＰＵ２０１が、モバイルアプリ３０２を実行することにより実現する本発明の処理フローについて説明する。本フローは、ユーザの操作によりモバイル端末１００におけるモバイルアプリ３０２が起動されることをトリガーに開始する。
【００３１】
ステップＳ５０１で、撮影画像取得部３０６は、カメラユニット２０６を介して撮影された撮影画像を取得する。カメラユニット２０６は、例えば、毎秒３０コマで動画撮影することが可能であるものとし、ステップＳ５０１で取得される撮影画像は、その動画を構成する撮影画像の１つである。
【００３２】
ステップＳ５０２で、四辺検出部３０８は、撮影画像内に含まれる被写体原稿（文書やカード）の四辺を検出して、四辺情報を得る。四辺検出処理の詳細について図６を用いて説明する。まず、四辺検出部３０８は、撮影画像に対してハフ変換等を適用して直線（原稿のエッジ）を検出し、原稿の四辺の候補である候補線分群を特定する。図６（ａ）は、撮影画像６００であり、この撮影画像内に原稿（文書や免許証などの被写体）の領域６０１が含まれている。図６（ｂ）は、撮影画像６００からハフ変換等を用いて検出した候補線分群を、撮影画像に重ねて表示した場合の図である。撮影画像６００には、原稿自体に記載されている直線や、原稿以外の背景（原稿を置いているテーブルの模様など）も写っているため、撮影画像から検出された候補線分群には、原稿の四辺（原稿の紙端）以外の線分（例えば候補線分６０２）も含まれる。この中から、原稿領域の上辺、右辺、下辺、左辺のそれぞれに対して各辺を構成する可能性が最も高いと判断される候補線分６０３、６０４、６０５、６０６を特定する。候補線分群の中から原稿領域の各辺を構成する可能性が高い候補線分を特定する手法としては、例えば、候補線分群のうちの任意の４本の候補線分で構成される四辺形それぞれに対して評価を行うことで特定する。任意の４本の候補線分で構成される四辺形の評価は、例えば、対辺の長さの比や内角の大きさ、アスペクト比などの幾何学的な情報に基づいて行われてもよい。または、四辺形を構成する線分について、内側と外側の色味や分散を比較するなどの画像内容に基づいて行われてもよい。図６（ｃ）は、候補線分群の中から特定された原稿の四辺で構成される四辺形領域６０７を、撮影画像６００上に表示した画像である。四辺形領域６０７は、候補線分６０３〜６０６が原稿の四辺として特定された場合、各候補線分の延長線の交点を、頂点６０８、６０９、６１０、６１１として特定し、頂点６０８〜６１１（以下、四辺情報と呼ぶ）を結ぶ線分によって囲まれた四辺形領域である。
【００３３】
ステップＳ５０３で、モバイルアプリ３０２のメイン制御部３０３は、ステップＳ５０２で原稿の四辺情報の検出が成功したか判断し、原稿の四辺情報を特定できたと判断した場合（Ｙｅｓ）は、ステップＳ５０４へ遷移する。一方、原稿の四辺情報を特定できなかったと判断した場合（Ｎｏ）は、ステップＳ５０１に遷移する。
【００３４】
ステップＳ５０４で、モバイルアプリ３０２の情報表示部３０４は、ステップＳ５０２で取得した四辺情報を用いて、撮影画像に当該検出された四辺を表す線（例えば赤色の線）をオーバーレイした画像を画面４００に表示する。
【００３５】
ステップＳ５０５で、テカリ処理部３１１は、Ｓ５０２で検出された四辺によって囲まれる原稿領域に対してテカリ検出処理を実行することによって、原稿領域内からテカリ（強い反射部分）を検出し、テカリがある場合はそのテカリの位置を取得する。テカリ検出処理の詳細は、図１０を用いて後述する。
【００３６】
ステップＳ５０６で、モバイルアプリ３０２のメイン制御部３０３は、ステップＳ５０５でテカリ（光源の強い反射部分）が検出されたかどうか判断し、テカリがあると判断した場合（Ｙｅｓ）は、ステップＳ５０７へ遷移する。一方、テカリがないと判断した場合（Ｎｏ）は、ステップＳ５０９に遷移する。
【００３７】
ステップＳ５０７で、モバイルアプリ３０２のガイドＵＩ指示部３１２は、ステップＳ５０５で検出したテカリの位置情報を用いて、撮影画像にテカリの位置を示すガイドをオーバーレイして、画面４００に表示する。
【００３８】
さらに、ステップＳ５０８で、モバイルアプリ３０２のガイドＵＩ指示部３１２は、撮影画像内にテカリが写り込んでいるため、撮影方法を変更するようユーザに促すメッセージを画面に表示する。図７は、撮影ガイドＵＩを表示したモバイル端末１００の画面７００の一例である。情報表示部３０４は、撮影画像取得部３０６で取得した撮影画像を画面７００の全面に表示し、その上に撮影ガイドＵＩ（７０１〜７０３）が表示されている。ガイドＵＩ７０１は、ステップＳ５０４の処理により表示される原稿の四辺を構成する頂点の表示例である。ガイドＵＩ７０２は、ステップＳ５０７の処理によって表示されるテカリの位置を示すガイドの一例である。ガイドＵＩ７０３は、ステップＳ５０８の処理によって表示されるメッセージの一例であり、「テカっています。撮影角度を変えてください」とメッセージ表示している。なお、メッセージとしては、「反射している部分があるので、撮影方法（撮影角度や撮影場所）を変えてください」というような主旨であれば、どのようなものであってもよい。
【００３９】
ステップＳ５０９で、モバイルアプリ３０２のメイン制御部３０３は、所定の撮影条件を満たすか判定する。所定の撮影条件を満たすと判定した場合はステップＳ５１０へ遷移し、所定の撮影条件を満たさないと判定した場合はステップＳ５０１へ遷移する。Ｓ５０９の所定の撮影条件を満たすかどうかの判定は、例えば、携帯端末が静止しているかどうかの判定である。携帯端末が動いていると、処理対象の撮影画像が手ブレした撮影画像になりやすく、文字認識処理の精度低下につながる。携帯端末が静止しているときに取得した撮影画像は手ブレのない撮影画像となるので、その時点での撮影画像を自動的に保存して文字認識処理を行うようにする。なお、携帯端末が静止しているかどうかの判定は、携帯端末が有するジャイロセンサー（不図示）などからの情報を用いて判定することができる。また、撮影中の動画像における現在の撮影画像と１コマ前の撮影画像との間で特徴点を比較することにより撮影画像内の特徴点が動いているかどうかに基づいて、携帯端末が動いているか静止しているか判定するようにしてもよい。また、所定の撮影条件としては、その他の条件（例えば、シャッタースピードが所定以上であるか、など）も併せて判定するようにしてもよい。
【００４０】
ステップＳ５１０で、メイン制御部３０３は、自動撮影処理部３１０に対して、自動的に撮影画像を取得して記憶部３０７に保存するように指示する。なお、Ｓ５１０において保存する撮影画像は、Ｓ５０２〜Ｓ５０９で処理対象にした撮影画像（動画像として入力されてくる画像）をそのまま保存するようにしてもよいし、Ｓ５０９で所定の撮影条件を満たすと判断した時点で、撮影画像取得部３０６とカメラ１０４とを介して静止画を撮影するように指示し、その静止画を文字認識処理対象の撮影画像として保存するようにしてもよい。
【００４１】
ステップＳ５１１で、歪み補正処理部３０９は、四辺検出部３０８で検出された四辺情報に基づいて歪み補正情報（歪み補正パラメータ）を算出し、この歪み補正情報を用いて、撮影画像における原稿領域内の画像の補正処理を行う。この歪み補正情報は、四辺形領域が台形に歪んでいる場合も考慮し、射影変換行列になる。この射影変換行列は、四辺検出部３０８で検出された四辺情報と、補正後に出力したい文書画像の縦横比（被写体となる文書の縦横のサイズ）とに基づいて、公知の方法により算出することが可能である。なお、処理速度を優先する場合には、アフィン変換行列や単純な変倍率を歪み補正情報として用いて算出しても良い。歪み補正情報が決定すると、歪み補正処理部３０９は、撮影画像の四辺形領域内に歪み補正処理を施すことで、撮影画像内から四辺形領域を抽出して補正した画像を出力することができる。例えば、図８（ａ）の撮影画像内の四辺形領域８０１の画像（頂点８０２、８０３、８０４、８０５で囲まれる画像）は、出力画像の縦横のサイズ（頂点８０６、８０７、８０８、８０９で定義される矩形サイズ）となるように歪み補正情報を算出し、当該算出した歪み補正情報を用いて、図８（ｂ）のような補正後画像に歪み補正される。
【００４２】
ステップＳ５１２で、ＯＣＲ部３１３は、ステップＳ５１１で歪み補正処理された補正画像に対して、文字認識処理（ＯＣＲ処理）を実行し、文字認識結果のテキスト情報を取得する。
【００４３】
ステップＳ５１３で、情報表示部３０４は、メイン制御部３０３からの指示に従い、ステップＳ５１１の歪み補正処理で得た補正後画像と、ステップＳ５１２で取得した文字認識結果とを表示する。図９は、文字認識結果を表示する際の携帯端末１００の画面４００の一例である。領域９０１には、文字認識結果のうちの氏名と判断された文字列が表示され、領域９０２には、文字認識結果のうちの住所と判断された文字列が表示される。
【００４４】
［テカリ検出処理の詳細フロー］
次に、ステップＳ５０５のテカリ検出処理の詳細について、図１０を用いて説明する。
【００４５】
ステップＳ１００１で、テカリ処理部３１１は、Ｓ５０２で得た四辺情報に基づいて歪み補正処理を行うように歪み補正処理部３０９に指示する。歪み補正のアルゴリズムは、ステップＳ５１１で説明したアルゴリズムと同様のアルゴリズムを用いればよい。例えば、図１１（ａ）のような撮影画像内の原稿領域に対して歪み補正処理を実行すると、図１１（ｂ）のような補正後の画像が得られる。
【００４６】
ステップＳ１００２で、テカリ処理部３１１は、Ｓ１００１で歪み補正した画像に対して、所定の閾値で二値化を行う。所定の閾値は、高輝度の画素を判別するための閾値にする。例えば、輝度値が８ビット（０〜２５５）で表される場合、所定の閾値を２５５とし、その閾値以上の輝度値を有する画素を白とし、その閾値より低い輝度値を有する画素を黒として二値画像に変換すればよい。この場合、カメラの画像センサーにおける露光が完全に飽和している画素（いわゆる白飛びした画素）だけを白画素とした二値画像を得ることができる。なお、所定の閾値は、２５５に限るものではない。例えば、露光が飽和に近い画素も含めて検出するのであれば、所定の閾値を２５５より低めの値（例えば２４０）に設定してもよい。
【００４７】
ステップＳ１００３で、テカリ処理部３１１は、Ｓ１００２で変換された二値画像において、所定の面積以上の白画素の連結領域（高輝度の画素が連結する領域）を検出した場合、その白画素連結領域をテカリ領域（強い反射部分の領域）として判定する。また、所定の面積より小さい白画素の領域はノイズであると判定する。図１１（ｂ）の画像に対して、ステップＳ１１０２の２値化処理を行うと、図１１（ｃ）のような二値画像が得られ、図１１（ｃ）の二値画像に対してＳ１００３の処理を行うと、テカリ領域１１０１が検出される。
【００４８】
なお、テカリを含まない状態で原稿を撮影した場合、撮影時のホワイトバランス等の状況によっては、原稿内部の白の背景（原稿の白の下地部分）が高輝度の画素となるケースがありうる。この場合に備えて、白画素の連結領域の外接矩形のサイズが、Ｓ１００１で歪み補正した画像サイズに近い場合はテカリを含まない、と判定するように構成してもよい。
【００４９】
ステップＳ１００４で、テカリ処理部３１１は、当該テカリと判定された領域（テカリ部分）の位置情報を記憶部３０７に記憶する。図１１（ｃ）の例では、テカリ領域１１０１の位置情報が記憶部に記憶される。
【００５０】
以上のように、実施例１によれば、撮影画像の原稿領域内に、テカリ（光源の強い反射部分）があるかを判定し、テカリがないと判定した場合は自動的に撮影画像を保存して所定の処理（文字認識処理等）を実行させることができる。一方、テカリがあると判定した場合は、メッセージ表示を行って、ユーザに撮影方法の変更（撮影角度や撮影場所の変更）を促すことにより、高画質な画像を得ることができる。
【００５１】
なお、Ｓ５０８でメッセージを表示した後に、Ｓ５０１に遷移するときにカメラの露出設定値を変更するようなカメラ調整ステップがあってもよい。
【実施例２】
【００５２】
被写体の原稿のレイアウトが既知である場合（すなわち、被写体において、文字等のオブジェクトが記載される位置と、何も記載されない空白領域の位置とが予め分かっている場合）、空白領域にテカリがあったとしても、文字を認識できる場合が多い。そこで、本実施例２では、レイアウトが既知の原稿を撮影する場合に、検出したテカリ領域の位置が、文字等のオブジェクトが記載されうる位置に重なっているか判断し、重なっていなければ、テカリ領域があったとしても、文字認識等の後段の処理を実行する。
【００５３】
予め、被写体のどの部分を文字認識処理等の処理対象領域とするかを設定し、被写体のテンプレート（被写体におけるレイアウト情報）として保持しておく。図１２は、テンプレート１２００の一例である。領域１２０１は、氏名が記載される領域であり、領域１２０２は、住所が記載される領域であり、これらの領域を文字認識処理すべき処理対象領域として、各領域の位置座標をテンプレート内に定義しておく。
【００５４】
図１３を用いて、実施例２のテカリ検出処理について説明する。図１３のテカリ検出処理は、図１０を用いて実施例１で説明したテカリ検出処理の代わりとなるものであり、Ｓ１００１〜Ｓ１００３の処理は実施例１と同様であるので、詳細な説明は省略する。
【００５５】
ステップＳ１３０１で、モバイルアプリ３０２のテカリ処理部３１１は、Ｓ１００３で検出されたテカリ領域の位置座標と、撮影対象の被写体のテンプレートで予め定義された処理対象領域の位置座標とを比較する。Ｓ１００３で検出されたテカリ領域が、処理対象領域（領域１２０１、領域１２０２）のいずれかと重なっている場合は、ステップＳ１３０２で、そのテカリ領域の位置情報を記憶部に記憶する。
【００５６】
一方、Ｓ１００３で検出されたテカリ領域が、処理対象領域のいずれにも重なっていないと判定した場合は、そのテカリ領域は後段の処理に影響を及ぼさないとして、Ｓ１３０２でテカリ領域の位置情報を記憶しない。その結果、Ｓ５０６のテカリの有無の判定処理においては、後段の文字認識処理に影響を及ぼすテカリ領域無しと判定してＳ５０９に進むことになる。
【００５７】
本実施例２によれば、処理対象領域が予めテンプレートとして定義されている被写体を撮影する場合、撮影画像内にテカリがあったとしても、そのテカリ領域が処理対象領域に重ならなければ、撮影画像を自動的に取得して、後段の処理に進むことが可能となる。また、検出されたテカリ領域が処理対象領域に重なる場合は、Ｓ５０８でメッセージを表示して、撮影方法の変更をユーザに促すことができる。
【実施例３】
【００５８】
実施例２では、被写体原稿のテンプレートを予め設定している場合に、テカリ領域が後段の処理に影響を及ぼす位置にあるかどうかを判定した。本実施例３では、被写体原稿のテンプレートを予め設定していない場合に、テカリ領域の位置が異なる複数の撮影画像を使って、テカリ領域の位置が後段の処理に影響を及ぼすかどうか判断する。本実施例３は、特に、天井等に照明が複数あり、撮影角度を変えてもいずれかの照明の反射光によるテカリ領域が写ってしまう場合に好適である。
【００５９】
図１５を用いて、実施例３のテカリ検出処理について説明する。図１５のテカリ検出処理は、図１０を用いて実施例１で説明したテカリ検出処理の代わりとなるものであり、Ｓ１００１〜Ｓ１００３の処理は実施例１と同様であるので、詳細な説明は省略する。
【００６０】
ステップＳ１５０１で、テカリ処理部３１１は、Ｓ１００３でテカリ領域を検出したか判断し、テカリ領域がある場合はＳ１５０２に遷移し、テカリ領域が無い場合はテカリ領域無しとして処理を終了する。
【００６１】
ステップＳ１５０２で、テカリ処理部３１１は、テカリ領域の位置が完全に異なる別の撮影画像（すなわち、テカリ領域の位置が重ならない別の撮影画像）を処理したか判定する。テカリ領域の位置が異なる別の撮影画像を処理していないと判定した場合は、ステップＳ１５０３に遷移して、別フレームの撮影画像を取得する。この際、ユーザが携帯端末を少し傾ければ、撮影角度が変わりテカリ領域の位置もずれる。そして、当該取得した別の撮影画像に対してＳ１００１〜Ｓ１００３の処理を行って、テカリ領域の位置を判定する。Ｓ１５０２で、テカリ領域の位置が異なる別の撮影画像を処理したと判定した場合は、ステップＳ１５０４に遷移する。
【００６２】
ステップＳ１５０４で、テカリ処理部３１１は、テカリ領域の位置が完全に異なる複数の撮影画像それぞれについて、公知の二値化処理（例えば、大津の二値化手法）を行うことにより、文字列を検出可能な複数の二値画像を得る。そして、その複数の二値画像それぞれにおいて、文字列領域を検出する。文字列領域を検出する方法は、公知の方法を用いることが可能である。例えば、各二値画像において、連結している黒画素の塊を検出し、当該検出した黒画素塊の大きさが、想定される文字サイズに近い場合、その黒画素塊の外接矩形を１文字を構成する文字領域と判断し、さらに、一定距離内のある文字領域を連結したものを文字列領域として抽出する方法などがある。また、文字列領域を検出する別の方法としては、各二値画像において、水平方向と垂直方向ヒストグラムを取り、ヒストグラムの形状に基づいて文字列領域を特定する方法であってもよい。
【００６３】
ステップＳ１５０５で、テカリ処理部３１１は、テカリ領域の位置が異なる複数の撮影画像それぞれから検出した文字列領域の位置や個数が変わっているかどうかを判定する。文字列領域の位置や個数が変わっていると判定した場合は、テカリ領域が文字列に重なっているために正確な文字列領域が検出できなかったと考えられるので、当該撮影画像に含まれるテカリ領域は後段の文字認識処理に影響を及ぼすものと考えられる。したがって、文字列領域の位置が変わっていると判定した場合は、ステップＳ１５０６に進んで、テカリ領域の位置情報を保存することで、図５のＳ５０７〜Ｓ５０８でテカリ領域とメッセージとを表示するようにする。
【００６４】
一方、テカリ領域の位置が異なる複数の撮影画像それぞれから検出した文字列領域の位置や個数が変わっていないと判定した場合は、当該撮影画像に含まれるテカリ領域は文字列に重なっておらず、その撮影画像に含まれるテカリ領域は後段の文字認識処理に影響を及ぼさないと考えられる。したがって、その場合は、テカリ領域の位置情報を保存しないようにする。その結果、Ｓ５０６のテカリの有無の判定処理においては、後段の文字認識処理に影響を及ぼすテカリ領域無しと判定してＳ５０９に進むことになる。
【００６５】
図１４（ａ）は、被写体１０５を撮影した際にテカリ領域がない場合に文字列領域を検出した例であり、検出された複数の文字列領域を破線の矩形で示す。図１４（ｂ）、（ｃ）は、被写体１０５を撮影した際にテカリ領域がある場合に文字列領域を検出した例であり、図１４（ｂ）と（ｃ）のテカリ領域の位置は重なっていないものとする。図１４（ａ）で検出される文字列領域１４０１は、図１４（ｂ）と（ｃ）においてはテカリ領域の影響により、文字列領域１４０２、１４０３のようになっている。図１４（ｂ）と（ｃ）のように、テカリ領域の異なる複数の撮影画像それぞれにおいて検出される文字列領域１４０２と１４０３は、位置およびサイズが異なっているので、図１４（ｂ）と（ｃ）で検出されるテカリ領域は文字列に重なっていることが分かる。
【００６６】
以上述べたように、実施例３では、テカリ領域の位置が異なる複数の撮影画像から抽出した文字列領域の位置や個数が同じであるか判定し、同じであると判定した場合は、その撮影画像に含まれるテカリ領域は後段の処理に影響を及ぼさないと判断して、後段の処理に進むことが可能となる。また、検出されたテカリ領域が文字列領域に重なる場合は、Ｓ５０８でメッセージを表示して、テカリ領域が文字列領域に重ならないように撮影方法の変更をユーザに促すことができる。
【実施例４】
【００６７】
本実施例４では、テカリ領域を検出した場合でも、テカリの強度がそこまで強くなく、画像補正で文字列を検出できるのであれば、メッセージを表示せずに、画像補正した後に後段の文字認識処理に進むようにする。
【００６８】
図１６を用いて実施例４の処理フローを説明するが、実施例１の図５の処理フローと同様のステップについては詳細な説明を省略する。
【００６９】
ステップＳ５０６でテカリ領域があると判定した場合、ステップＳ１６０１で、テカリ処理部３１１は、当該検出したテカリ領域について、画像補正で対応可能かどうかの評価を行う。例えば、撮影画像から、Ｓ５０５で検出したテカリ領域の位置に対応する部分の画像を評価対象とする。そして、その評価対象の部分画像から抽出した輝度ヒストグラムに基づいて二値化閾値を求め、その二値化閾値を用いて評価対象の部分画像の二値化を実行して、想定される文字サイズと同程度のサイズの黒画素塊を抽出できるか判定する。文字を構成する黒画素塊を抽出できた場合は、ステップＳ１６０２で、テカリ処理部３１１は、画像補正で対応可能と判定してステップＳ５０９に進む。一方、文字を構成する黒画素塊を抽出できなかった場合は、ステップＳ５０７およびＳ５０８に進んでテカリ領域とメッセージとを表示する。なお、上述したステップＳ１６０１のテカリ領域の評価では、黒画素塊を抽出できたかどうかで評価を行ったがこれに限るものではない。例えば、更に、当該抽出した黒画素塊に基づいて文字認識処理を実行して、信頼度が所定の閾値以上である文字認識結果候補を得られた場合に、画像補正で対応可能と判定し、信頼度が閾値より低い場合は画像補正で対応できないと判定するようにしてもよい。
【００７０】
ステップＳ１６０３で、モバイルアプリ３０２は、テカリ領域があるか（テカリ領域の位置情報が保存されているか）を判断し、テカリ領域がある場合は、Ｓ１６０２でＹｅｓと判定された画像であるので、Ｓ１６０４に進む。テカリ領域が無い場合はＳ５１２に進む。
【００７１】
ステップＳ１６０４では、撮影画像内のテカリ領域に対してＳ１６０１で求めた二値化閾値を用いて二値化を行うことにより画像補正処理を実行し、Ｓ５１２に進む。
【００７２】
以上述べたように、本実施例４によれば、撮影画像内にテカリ領域がある場合でも、画像補正で対応可能な程度のテカリ強度であれば、メッセージを表示せずに後段の処理に進むように構成することができる。
【００７３】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７４】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2019109624.tif 000003
【図２】
2019109624.tif 000004
【図３】
2019109624.tif 000005
【図４】
2019109624.tif 000006
【図５】
2019109624.tif 000007
【図６】
2019109624.tif 000008
【図７】
2019109624.tif 000009
【図８】
2019109624.tif 000010
【図９】
2019109624.tif 000011
【図１０】
2019109624.tif 000012
【図１１】
2019109624.tif 000013
【図１２】
2019109624.tif 000014
【図１３】
2019109624.tif 000015
【図１４】
2019109624.tif 000016
【図１５】
2019109624.tif 000017
【図１６】
2019109624.tif 000018