(57)【特許請求の範囲】
【請求項１】
画像の不特定の領域に含まれる複数の対象文字列を抽出するための文字列抽出サーバであって、
前記画像の二値化画像から余白に囲まれた領域である閉域を複数検出し、それぞれの閉域に関する矩形を検出する矩形検出手段と、
前記検出されたそれぞれの矩形内部の文字列のスキュー角度を検出するスキュー角度検出手段と、
それぞれの矩形についてスキュー角度に応じた回転画像の矩形を検出するスキュー補正手段と、
前記矩形及び／又は前記回転画像の矩形の内部領域の文字列を認識するための文字列認識手段と、を備え、
前記認識された文字列が前記複数の対象文字列を含み、
前記二値化画像が、前記画像のグレースケール画像に含まれる所定の輝度値未満の画素の頻度を計算し、前記グレースケール画像に含まれる前記所定の輝度値以上の画素について近傍の画素との輝度値の差の絶対値を中間値から減算し頻度を計算して全ての画素の輝度値が中間値以下となるヒストグラムを作成し、該ヒストグラムに基づいて閾値を決定することにより生成される、
文字列抽出サーバ。
【請求項２】
前記文字列認識手段が、前記矩形及び／又は前記回転画像の矩形の縦横比に基づいてそれぞれの矩形内部の文字列が前記対象文字列を含むか否か判定し、前記対象文字列を含むと判定した矩形の内部領域の文字列を認識する、請求項１に記載された文字列抽出サーバ。
【請求項３】
前記対象文字列が、数字、アルファベット、仮名文字、記号を含む文字の組合せから成る、周囲に余白を持つ文字列である、請求項１に記載された文字列抽出サーバ。
【請求項４】
前記矩形及び／又は前記回転画像の矩形が、上下左右に近接する複数の矩形が合成された矩形を含む、請求項１に記載された文字列抽出サーバ。
【請求項５】
前記回転画像の矩形が、前記矩形検出手段により検出された矩形の決定に関連する座標を線分補間テーブルに基づいて回転変換した座標に基づいて検出される、請求項１又は２に記載された文字列抽出サーバ。
【請求項６】
画像の不特定の領域に含まれる複数の対象文字列を抽出するための文字列抽出方法であって、
前記画像の二値化画像から余白に囲まれた領域である閉域を複数検出し、それぞれの閉域に関する矩形を検出する矩形検出ステップと、
前記検出されたそれぞれの矩形のスキュー角度を検出するスキュー角度検出手段と、
それぞれの矩形について前記スキュー角度に応じた回転画像の矩形を検出するスキュー補正ステップと、
前記矩形の領域及び／又は前記回転画像の矩形の内部領域の文字列を認識する文字認識ステップと、を含み、
前記認識された文字列が前記複数の対象文字列を含み、
前記二値化画像が、前記画像のグレースケール画像に含まれる所定の輝度値未満の画素の頻度を計算し、前記グレースケール画像に含まれる前記所定の輝度値以上の画素について近傍の画素との輝度値の差の絶対値を中間値から減算し頻度を計算して全ての画素の輝度値が中間値以下となるヒストグラムを作成し、該ヒストグラムに基づいて閾値を決定することにより生成される、
文字列抽出方法。
【請求項７】
請求項６に記載された文字抽出方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列抽出システムに関する。特に、不定形のフォーマットからシリアルナンバー等の対象文字列を抽出するためのサーバ、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、コードを端末から送信する応募方法又はコードを所定の用紙に付加して郵送する応募方法のいずれかにより応募可能であるキャンペーンの応募を管理するキャンペーン応募管理システムにおいて、データ抽出部が画像読み取り部が取得した応募用紙画像から、画像認識によりシリアル番号を示すコードを読み込み、読み込んだコードの画像データをデコードして、テキストデータによって表される郵送シリアル番号を抽出することが提案された（特開２０１６−０９１１１３公報：特許文献１）。
【０００３】
画像データにシリアルコード以外の数字や文字等が混じり込んでいても、シリアルコードを適切に抽出可能な移動端末装置として、シリアルコード及びシリアルコード周辺の文字、数字等の各種記号が映り込んだ画像データから、情報記憶部が記憶しているフォーマット情報に合致する部分を、シリアルコードとして抽出することが提案された（特開２０１８−１３６８３０公報：特許文献２）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−０９１１１３公報
【特許文献２】特開２０１８−１３６８３０公報
【特許文献３】特許第５９４０６１５号明細書
【特許文献４】特許第６３５３８９３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
販売促進等を目的とするキャンペーンの形態は多様化しており、商品（の包装）に付された応募券（ポイント毎のユニークなシリアルナンバーが印刷されたシール等紙片）を複数集め、所定ポイントに達すると景品（の抽選資格）を与えるキャンペーン形態や、順次集めた応募券のポイントを順次加算し期日にポイントを消化して抽選するようなキャンペーン形態もある。そのようなキャンペーン形態は消費者の購買意欲によく働きかけ得る一方、ポイントの集計が煩雑になりやすい。目視チェックや手入力等の手動による作業を軽減させるためＯＣＲ（Ｏｐｔｉｃａｌ Ｃｈａｒａｃｔｅｒ Ｒｅｃｏｇｎｉｔｉｏｎ：光学文字認識）エンジンをウェブアプリケーションに組み込みシリアルコードを認識させること等が考えられるが、概して成功裏の認識が困難であったりフォーマットが限定されやすく実効性に乏しい。
【０００６】
従って、さまざまなキャンペーンの形態に応じて、応募する側にとっても応募を受付する側にとっても手間がかからないように構成されたキャンペーン支援システムが望ましい。
【０００７】
上記に鑑みて本発明は、商品の購入者がキャンペーンに係る応募券を撮影した画像からシリアルナンバー等の文字列を抽出するシステムを提供することを目的とする。特に、画像に含まれる応募券の枚数が一枚乃至複数枚（任意）であってよく、フォーマットに関わらず対象文字列を抽出することができるサーバ、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するための本発明の一つの態様は、画像の不特定の領域に含まれる複数の対象文字列を抽出するための文字列抽出サーバであって、画像の二値化画像から余白に囲まれた領域である閉域を複数検出し、それぞれの閉域に関する矩形を検出する矩形検出手段と、検出されたそれぞれの矩形内部の文字列のスキュー角度を検出するスキュー角度検出手段と、それぞれの矩形についてスキュー角度に応じた回転画像の矩形を検出するスキュー補正手段と、矩形及び／又は回転画像の矩形の内部領域の文字列を認識する文字列認識手段と、を備え、認識された文字列が複数の対象文字列を含むことを特徴とする。
【０００９】
本発明によれば、シリアルナンバー等の対象文字列が周囲に余白を持つという特徴を用いて、画像の特定されない部分にある対象文字列の領域を検出することができる。また、余白等に基づいて文字列の傾きが検出されて補正される。このことにより、個別に集められた複数の応募券を任意に並べて撮影したような画像からでも成功裏の文字認識を行うことができる。このことにより複数の応募券を用いるキャンペーンを、フォーマットを限定したり集計の手間をかけることなく容易に実施することができる。応募する側もキャンペーンサイトから応募台紙をダウンロードしたりすることなく、任意枚数の応募券をスマートフォン等で撮影するだけで複数のシリアルナンバーをキャンペーンサイトに登録することができ、容易にキャンペーンに参加できる。
【００１０】
好適に、文字列認識手段は、矩形及び／又は回転画像の矩形の縦横比に基づいてそれぞれの矩形内部の文字列が対象文字列を含むか否か判定し、対象文字列を含むと判定した矩形の内部領域の文字列を認識する。本発明によれば、シリアルナンバー等の対象文字列を含む矩形の領域の形状が、スキュー補正等により概ね画一的に抽出される。従って矩形の縦横比に基づいて対象文字列を含む領域のみを抽出し得る。このようにすることでフォーマット情報に依らずＯＣＲ処理範囲を限定することができ、効率的に対象文字列を抽出することができる。
【００１１】
対象文字列は、数字、アルファベット、仮名文字、記号を含む文字の組合せから成る、周囲に余白を持つ文字列であってよい。文字列は一行（一列）であってよく、二行（二列）以上であってもよく、書式に合わせて文字列の上下の余白や行間からスキュー角度が検出される。
【００１２】
二値化画像は、画像のグレースケール画像に含まれる所定の輝度値未満の画素の頻度を計算し、グレースケール画像に含まれる所定の輝度値以上の画素について近傍の画素との輝度値の差の絶対値を中間値から減算し頻度を計算して全ての画素の輝度値が中間値以下となるヒストグラムを作成し、該ヒストグラムに基づいて閾値を決定して生成され得る。
【００１３】
このようにすることで、撮影条件が不十分な画像からでも本発明に係る解析に適した解析用二値化画像が生成され、最終的に成功裏の文字認識がされやすくなり、実効性の高いシステムとすることができる。
【００１４】
矩形及び／又は前記回転画像の矩形は、上下左右に近接する複数の矩形が合成された矩形を含んでよい。
【００１５】
シリアルナンバー等は周囲から十分な余白を持って記載されていると考えられ（罫線によって区分される場合もあるが、罫線を除去して余白としてもよい）、検出される矩形は対象文字列のみを含むケースが多い。不要な文字列を含む矩形は、対象文字列を含まないケースが多い。シリアルナンバーが複数行に渡る応募シールを近接して撮影した場合などは、各行を含む矩形がそれぞれ検出されて、矩形はシリアルナンバーの一部を含む場合がある。シリアルナンバーが複数桁に渡る場合、各桁の数字を含む各矩形が検出される場合がある。シリアルナンバーを構成する文字列は互いに近接していると考えられることから、十分に近接した矩形を合成することで、シリアルナンバー全体から成る矩形を合成し得る。
【００１６】
好適に、回転画像の矩形は、矩形検出手段により検出された矩形の決定に関連する座標を線分補間テーブルに基づいて回転変換した座標に基づいて検出される。このようにすることで、ごく少ない計算量でＯＣＲの処理範囲を検出することができる。
【００１７】
本発明のもう一つの態様は、画像の不特定の領域に含まれる複数の対象文字列を抽出するための文字列抽出方法であって、画像の二値化画像から余白に囲まれた領域である閉域を複数検出し、それぞれの閉域に関する矩形を検出する矩形検出ステップと、検出されたそれぞれの矩形内部の文字列のスキュー角度を検出するスキュー角度検出ステップと、それぞれの矩形についてスキュー角度に応じた回転画像の矩形を検出するスキュー補正ステップと、矩形及び／又は回転画像の矩形の内部領域の文字列を認識する文字認識ステップと、を含み、認識された文字列が複数の対象文字列を含むことを特徴とする。
【００１８】
本発明のさらに他の態様は、上記文字抽出方法をコンピュータに実行させるプログラムである。
【発明の効果】
【００１９】
本発明によれば、さまざまな形態のキャンペーン等に対応可能な汎用性の高い文字列抽出サーバ、方法、プログラムが提供される。複数の応募券の集計が必要なキャンペーンであっても、任意の枚数の応募券の撮影画像からシリアルコード等を自動で抽出することができる。このことにより応募を受ける側はキャンペーンを容易に実施することができ、応募する側も容易に参加することができる。
【００２０】
また、本発明によれば、一般的なユーザにより撮影された画像の状態に応じて、成功裏に文字が認識されるように一連の処理が行われる。このことにより、任意枚数の応募券を任意に並べただけの画像からでも高い精度でシリアルナンバー等対象文字列を抽出することができ、実質的にキャンペーンを支援することができる。
【図面の簡単な説明】
【００２１】
【図１】図１は本発明に係るキャンペーン支援システムを概略的に示す。
【図２】図２は本発明に係る文字列抽出サーバの機能ブロック図である。
【図３】図３はユーザ端末により撮影された画像の例である。
【図４Ａ】図４Ａは比較例の二値化画像である。
【図４Ｂ】図４Ｂは本発明に係る実施例の二値化画像である。
【図５】図５は本発明に係る二値化方法に用いられるヒストグラムの実施例である。
【図６Ａ】図６Ａは二値化画像を模式的に示す。
【図６Ｂ】図６Ｂは二値化画像の水平ブロック化を模式的に示す。
【図６Ｃ】図６Ｃは白地レクタングルの検出を模式的に示す。
【図６Ｄ】図６Ｄは閉域の検出を模式的に示す。
【図６Ｅ】図６Ｅは矩形の検出を模式的に示す。
【図７】図７は他の閉域及び矩形の検出を模式的に示す。
【図８】図８はＯＣＲ方向に対する文字列の傾き（スキュー）を概略的に説明する図である。
【図９】図９は線分補間アルゴリズムにより決定された複数のスキャン画素領域を模式的に示す図である。
【図１０】図１０はスキャン画素領域のスキャンによるスキュー角度の検出を概略的に説明する図である。
【図１１】図１１（ａ）はスキュー角度に応じた回転画像の生成を概略的に説明する図である。図１１（ｂ）は回転画像における矩形の検出を模式的に示す。
【図１２】図１２（ａ）及び図１２（ｂ）は線分補間テーブルに基づく回転画像の生成及び矩形の検出を説明するための図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照しながら、本発明のさまざまな特徴が、本発明の限定を意図しない好適な実施例とともに説明される。図面は説明の目的で単純化、概略化されている。
【００２３】
図１を参照し、キャンペーン支援システム１は、本発明に係る文字列抽出サーバ１００、キャンペーンサーバ２００、及び１つ以上のユーザ端末３００を含む。ユーザ端末３００は、キャンペーンの応募のために応募券を含む画像Ｉを撮影することができる。インターネット等の通信ネットワーク２を介して、キャンペーンサーバ２００はユーザ端末３００と通信することができ、文字列抽出サーバ１００はキャンペーンサーバ２００と通信することができる。
【００２４】
文字列抽出サーバ１００は、中央処理装置（ＣＰＵ）、ＲＡＭ、ＲＯＭ、ハードディスクなどを実装し、適切なオペレーティングシステム（ＯＳ）の制御の下でプログラミング言語を実行し、各種処理を実行するための機能手段を提供する。サーバに格納されるプログラムは、ＨＴＭＬ、ＪａｖａＳｃｒｉｐｔ（登録商標）、ネイティブプログラム（オブジェクトコード）等で構築される。サーバ１００はＡＳＰとして提供されてよく、利用者はＷｅｂブラウザや専用のクライアントソフト等を通じてサーバ１００にアクセスし、これを利用することができる。あるいは本発明は、文字列抽出ライブラリとしてキャンペーン支援システム１に組み込むことができる。
【００２５】
キャンペーンサーバ２００はキャンペーンに関連する各種情報を管理する、公知のサーバ装置から成る外部サーバであってよい。キャンペーンサーバ２００は、ユーザ端末３００からのキャンペーンサイトへのアクセスに応じてユーザＩＤやパスコードを発行し、ユーザ端末のカメラで撮影した画像Ｉを取得してよい。あるいは、はがきに貼った応募シールを受付したキャンペーンの運用者がはがきを撮影することにより画像Ｉを取得してもよい。キャンペーンサーバ２００は、画像Ｉを文字列抽出サーバ１００に送信し、解析結果を受信することができる。また、適宜データべース（図示せず）に格納された正規のシリアルナンバーリストと照合したり、応募の重複をチェックしたり、シリアルナンバーに紐づけられたポイントリスト等を用いてユーザ毎に応募に係るポイントを集計し景品の抽選等を行うことができる。外部サーバはキャンペーンサーバに限らず、本発明に係る文字列抽出サーバ１００と通信する任意のコンピュータ装置であってよい。
【００２６】
ユーザ端末３００は、カメラデバイスやブラウザソフトウェアを搭載する公知のスマートフォン等の高機能端末やタブレット型高機能端末であってよい。
【００２７】
図２に、文字列抽出サーバ１００において実装される文字列抽出ロジックの機能ブロック図が示される。文字列抽出サーバ１００は、二値化手段１０、閉域・矩形検出手段２０、スキュー角度検出手段３０、スキュー補正手段４０、対象文字列抽出手段５０、記憶手段６０を備え、キャンペーンサーバ２００から（あるいは、ユーザ端末３００から直接）受信した一枚乃至複数枚（任意の枚数）の応募券を撮影した画像Ｉから、各応募券に印刷されたシリアルナンバー等の対象文字列を抽出した結果（複数の文字列セット）を出力し、キャンペーンサーバ２００に返すことができる。文字列抽出サーバ１００の各手段１０乃至６０は、ソフトウェア、ファームウェア、ハードウェア、又はあらゆるそれらの組み合わせにおいて実装することができる。
【００２８】
本発明が想定するキャンペーンにおいて、応募券等の枚数は概して任意（一枚乃至複数枚）でありそれらの画像中の配置も任意であり得る。例えばユーザは、スマートフォン等のユーザ端末３００でキャンペーンサイト２００にアクセスし、画面の指示に従って集めた応募券を撮影した画像Ｉをキャンペーンサイトへ送信することができる。図３に、ユーザ端末３００のカメラにより撮影された例示的な画像が示される。この例では、ユーザは白っぽい台（テーブルや広告の裏等）に１０枚の応募券を縦二列に並べて（貼って）撮影している。画像においてユーザ端末の影が左隅中心に写りこみ、応募券の中には画像の縦横方向に対して傾いているものが見られる。ユーザがスマートフォン等携帯端末で撮影した画像においてこのような例は珍しくないと考えられる。この画像を従来どおり二値化しＯＣＲ処理してもシリアルナンバーの成功裏の抽出は望めない。頻繁に認識エラーとなったり、結局目視チェックや手入力を要したり、ＯＣＲ処理できるまで繰り返しユーザに画像の送信を要求したりすることになりかねず、そのようなシステムは不便であり望ましくない。
【００２９】
二値化手段１０は図３のような画像（Ｉ）からでも最終的に必要な文字を精度よく認識するために、二値化を含む前処理を実行する。例えば二値化手段１０は、画像Ｉを適宜スケーリングし、必要に応じて所定のブロックサイズで割り切れるようにトリミングし、適宜フィルタを実行して解析用二値化画像を生成する。
【００３０】
従来の二値化を説明するために、図３の画像を大津式により二値化した場合、図４Ａのように、影の部分に含まれる応募券が黒く塗りつぶされてしまう。このとき閾値を暗い方へ補正したとしても、影が薄くなる代わりに明るい部分にある文字が薄くなり過ぎる。大津式の他にもさまざまな二値化方法が存在するが、例えば、画像を分割してそれぞれの閾値を求める動的閾値法等では、分割の大きさ等によって境目でずれが生じ、図（前景）が正確に検出できない場合がある。
【００３１】
本発明に係る発明者は、影を含む画像であっても地（背景）と図（前景）を容易に区別することができる二値化方法を考案した。当該二値化方法によれば、図４Ｂに示されるように、影の中のシリアルナンバーが黒く塗りつぶされることはない。
【００３２】
図５を用いて、本発明に係る二値化が説明される。初めに、画像Ｉのグレースケール画像（２５６諧調）を構成する画素から所定の輝度値未満（例えば、１６未満、３２未満等）の画素（黒）を抽出する。このようにすることで、影の中でも黒い部分（黒く印字されたシリアルナンバー等）が抽出され得る。所定の輝度値は、図３のようなサンプル画像を用いて黒として残したい画素の明度の閾値を予め測定することにより決定されてよい。所定の輝度値以上（例えば、１６以上、３２以上等）の画素（ｐ）について、例えば、左上の画素（ｓ）を用いて、「ｐ＝中間値−｜−ｓ＋ｐ｜」を計算すると、画素同士の明度の差が小さいほど計算結果は中間値（例えば、１２８）に近づき、明度の差が大きいと０に近づく（０未満は０に補正される）。図５は上記のようにして計算されたヒストグラム（横軸が輝度値、縦軸が頻度）であり、全ての画素が中間値（１２８）以下に分布する。当該ヒストグラムに基づいて、例えば、大津式で閾値を求め二値化画像を生成することで、暗い所の黒い画素も明るい所の黒い画素も抽出することができる。
【００３３】
二値化のための適切なエンボスフィルタは左上の画素（ｓ）を用いるものに限られない。近傍数が多いと輪郭（エッジ）が強調され、少ないと弱くなることから、例えば、後述するスキュー角度の検出に適するように、上下左右の４画素の二次微分を取ることができる（４近傍）。あるいは、後述する閉域の検出に適するように、右上と左下の２近傍を用いることができる。その他、３×３等のサイズのマトリックスの４隅の４画素や、８近傍全ての画素等の二値化エンボスタイプを適宜ヒストグラムの生成に用いることができる。
【００３４】
閉域・矩形検出手段２０は、解析用二値化画像を一定のブロックサイズにブロック化して閉域を検出し、閉域に基づいて矩形を検出する。閉域の検出には以下のような利点がある。公知のＯＣＲエンジンは概して、画像のどこを読むのかフォーマットごとにその範囲を設定する。画像全体をＯＣＲの処理範囲とすると、不要な文字や模様まで文字として処理し解読可能な文字数を超えてしまいエラーを起こす場合があり好ましくない。画像に含まれる応募券の枚数や位置を任意とすると予めＯＣＲ処理範囲を設定できない。本発明は、印字される文字（シリアルナンバー等）が周囲に余白を有するという特徴を用いて、画像からＯＣＲの処理範囲を検出することができる。本明細書において、余白に囲まれた閉じた領域を「閉域」という場合がある。
【００３５】
図６Ａ〜図６Ｅを用いて、閉域及び矩形の検出が説明される。図６Ａは解析用二値化画像Ｉａの二枚の応募券が含まれる部分を示す。図示の例では二値化の結果、応募券内の七桁二段書きのシリアルナンバーやその上下の枠、及び自動音声受付番号等シリアルナンバー以外の文字が黒画素となっており、他の部分は白画素となっている。
【００３６】
図６Ｂは、画像Ｉａを水平（幅Ｗ）方向について、数画素（２画素、３画素、４画素、５画素、６画素、あるいはそれ以上の任意の整数の画素）のブロックサイズ（Δｗ）でブロック化した水平ブロック化を示す。水平方向のブロックサイズの画素全てが白画素であるときに白地ブランクとして検出することにより、文字列等の傾きを（部分的に）含む画像であっても水平方向に伸長する特徴（余白や行間等）を検出しやすくなる。各ブロック（Ｂ１〜Ｂ１４）内で白地ブランクが連続する部分はそれぞれ白地レクタングルとして検出される。
【００３７】
図６Ｃの白抜きの多数の矩形はそれぞれ検出された白地レクタングルＲを示す。グレーの色塗り部分は、ブロックサイズが一以上の黒画素を含むことにより白地ブランクとして抽出されなかった部分を示す。各レクタングルＲは、画像の左上を原点とし、それぞれ左上及び右下の座標（ラスタデータ）をメモリ等記憶手段６０に記憶され得る。
【００３８】
隣り合うブロック間のレクタングルの連結を調べることで、閉域が検出される。レクタングルの連結は、一つのブロックのレクタングルが、隣り合うブロックのレクタングルに接するときに、連結するとみなされ得る。ブロック間のレクタングルが接していない場合も、所定の条件を満たせば連結すると見なされてよい。所定の条件は、連結誤差として予め設定することができる。
【００３９】
図６Ｄに閉域を表す一連のレクタングルの例がグレーの色塗り部分で示される。閉域とは、白地で囲まれた閉じた領域であり、例えば、あるブロックのひとつのレクタングルが、後続のブロックで複数（例えば、二つ）のレクタングルに連結し、それらが後続のブロックにかけて連結が途切れることなく、最終的に一つの共通するレクタングルに連結するとき、それら一連のレクタングルは内部に閉じた領域を持つ。閉域検出ロジックとして、例えば、特許文献４に記載のものを用いることができるが、これは本発明に係るプログラムロジックが公知であることを述べるものではない。
【００４０】
図６Ｅに、検出されたそれぞれの閉域に基づいて検出される矩形（破線部分）が模式的に示される。矩形の上辺と下辺のｙ座標、左辺と右辺のｘ座標が記憶手段６０に格納される。水平ブロック化による検出の場合、例えば、左辺のｘ座標は左側のレクタングルの右下端のｘ座標、右辺のｘ座標は右側のレクタングルの左上端のｘ座標、上辺のｙ座標は上側の一連のレクタングルの右下端ｙ座標の最小値、下辺のｙ座標は下側の一連のレクタングルの左上端のｙ座標の最大値であってよい。このように検出された矩形の内部領域をＯＣＲの処理対象とすることができる。
【００４１】
上記は画像Ｉａの水平ブロック化に基づく閉域及び矩形の検出の説明であり、好適に、画像Ｉａはさらに、垂直（高さＨ）方向について所定のブロックサイズΔｈでブロック化され、閉域及び矩形が検出される（図示せず）。垂直ブロック化による検出の場合、例えば、左辺のｘ座標は左側の一連のレクタングルの右下端のｘ座標の最小値、右辺のｘ座標は右側の一連のレクタングルの左上端のｘ座標の最大値、上辺のｙ座標は上側のレクタングルの右下端のｙ座標、下辺のｙ座標は下側のレクタングルの左上端のｙ座標であってよい。水平ブロック化で検出された矩形と、垂直ブロック化で検出された矩形がそれぞれＯＣＲ処理されてよい。または、水平ブロック化により検出された矩形と垂直ブロック化により検出された矩形が重なっているかどうか判断し、重なっている場合、重なっている矩形の左右のｘ座標の最小値・最大値と、上下のｙ座標の最小値・最大値により一つの矩形を合成し、合成した矩形がＯＣＲ処理等されてよい。
【００４２】
上記のような閉域及び矩形の検出によれば、複数の応募券の背景がテーブルの木目等の模様を含むものであっても、ＯＣＲの処理範囲を適切に検出することができる。
【００４３】
図７にグレーの色塗り部分及び破線で示されるように、対象文字列を含まない閉域及び矩形も検出され得る。後述するように、回転画像の矩形を検出することで、対象文字列に関する矩形は対象文字列に応じた縦横比を持ちやすい。そのような縦横比（範囲であってよい）を予め設定することで、対象文字列を含む矩形のみをＯＣＲ処理することもできる。
【００４４】
例えば、シリアルナンバーが７桁、２行の数字からなる場合、７桁、２行の周囲の余白により画成される矩形は所定の縦横比を持つ。例えば、ＯＣＲ方向に平行な幅（wide：Ｗ）とＯＣＲ方向に垂直な高さ（high：Ｈ）の比が、１．３〜１．８の所定の範囲にある。シリアルナンバーを含む応募券が画像内で幅（高さ）方向に対し傾いている場合、シリアルナンバーの周囲の余白により検出される矩形は必ずしも所定の範囲にない。後述するように、本発明においては、シリアルナンバーの周囲の余白や行間により傾きが検出され補正されるので、シリアルナンバーを含む矩形の縦横比は所定の範囲に入ることになる。なお、傾きが検出されない矩形はスキュー補正することができないが、それは本発明に係るシリアルナンバーのスキューの検出用の検出に適さない部分、すなわち対象文字列を含まない部分であり、概してシリアルナンバー等対象文字列の抽出を妨げないと考えられる。
【００４５】
図８に示されるように、矩形の領域３１、３２に含まれる文字列は、矢印で示されるＯＣＲ方向（画像の左から右方向／上から下方向等）に対して正立している場合もあれば傾いている場合もある。所定方向に対して文字列が傾いている（正立していない）場合は、概して、文字を正しく認識することができない。任意に並べられた複数の応募券を画像が含む場合、複数の文字列の傾き（スキュー）が互いに異なることが考えられる。本明細書において、画像の法線ベクトルを中心軸として文字列が基準方向（ＯＣＲ方向）から回転した傾きをスキューという場合がある。
【００４６】
文字列のスキュー量は、文字列の余白や行間に基づいて検出することができる。画像に含まれる文字列に係る行間（余白）の向きを検出するために、画像の横方向または縦方向のヒストグラムを計算する方法が公知である。横方向または縦方向に限定されない任意の方向のヒストグラムを生成するには、画像を順次回転させながら一定方向にスキャンしてヒストグラムを生成する方法が考えられるが、このようにすると計算量が多くなりＣＰＵに負荷がかかりやすい。ＣＰＵに負荷をかけることなく、画像に含まれる複数の領域のスキュー角度を瞬時に検出できるロジックが好ましい。
【００４７】
このために、検出された矩形の中心を中心画素とする全方位のスキャン画素が予め決定される。このようなスキャン画素は、特許文献３に記載された線分補間方式により決定することができるが、これは本発明に係るプログラムロジックが公知であることを述べるものではない。
【００４８】
具体的に、検出された矩形の中心画素が求められ、該中心画素ｏを有し一対の対辺の画素数がＬ1、他の一対の対辺の画素数がＬ2である矩形の画素領域であって、前記中心画素ｏの周りに−９０度ないし９０度の範囲で所定角度（θ）ずつ回転させた複数の矩形のスキャン画素領域が線分補間により求められ、記憶手段６０に記憶される。線分補間アルゴリズムにより、中心画素ｏを含み、基準方向に位置する所定の画素数から成る一連の画素に対して任意の角度θだけ傾いた一連の画素が、正弦余弦テーブル（三角関数表）を用いた加算減算のみで決定され、少ない計算量で実質的に全方向のスキャン位置を決定することができる。
【００４９】
図９は、検出された矩形（グレーの色塗り部分）の中心画素ｏを有し、基準方向（矢印）からそれぞれ０度、−１５度、−３０度回転させた例示的なスキャン画素領域Ｓ１、Ｓ２、Ｓ３をそれぞれ点線で示す。
【００５０】
このような矩形のスキャン領域の各々についてヒストグラムが計算される。図１０は、スキャンにより作成されたヒストグラムに基づくスキュー角度の検出を模式的に示す。ヒストグラム（下図）は、それぞれのスキャン画素領域について横軸にＬ2、縦軸にヒストグラム値（黒画素の個数）を棒グラフで表したものであってよく、ヒストグラムにおいて黒画素が存在しない一連の画素が存在する場合、その角度は行間の角度を表し得る。図示の例では、矩形３１（破線）について、スキャン画素領域Ｓ１´に対応する角度α1＝０度がスキュー角度に決定され、矩形３２（破線）について、スキャン画素領域Ｓ２に対応する角度α2＝−１５度がスキュー角度に決定される。
【００５１】
検出されたスキュー角度がＯＣＲ処理の許容範囲内（例えば、５度以下、３度以下等）にある矩形３１は、公知のＯＣＲエンジンを備える対象文字列抽出手段５０によりそのままＯＣＲ処理されてよい。ＯＣＲで成功裏の文字読取が期待できないスキュー角度を有する矩形３２は、スキュー補正手段４０によりスキュー補正される。
【００５２】
矩形領域３２をスキュー補正するために、矩形領域３２に関する回転画像が生成される。このとき矩形領域３２の入力点（ｘ，ｙ）を、原点ｏを回転の中心として（−α2）度回転させて回転画像の出力点（ｘ’，ｙ’）を求めると、該当しない画素が抜けて画像が薄くなり、ＯＣＲ処理の精度が低下する恐れがある。従って、ＯＣＲ処理における精度が低下しないように、矩形領域３２の入力点（ｘ’，ｙ’）から回転画像の出力点の座標（ｘ，ｙ）を求めることが好ましい。
【００５３】
図１１（ａ）に回転画像の生成が模式的に示される。スキュー補正手段４０は、中心画素ｏを有し、四辺の画素数が、例えば、検出された矩形３２の外接円の直径２ｒである矩形の画素領域であって、中心画素ｏの周りに、基準方向（回転画像Ｃの領域）についてスキュー角度（α2）だけ回転させた矩形の画素領域Ｃ´を線分補間方式により求めることができる。該画素領域Ｃ´の対応する画素をコピーすることにより回転画像の矩形３３を検出することができる（図１１（ｂ））。
【００５４】
回転画像の矩形３３において文字列はＯＣＲ方向に対して正立し、対象文字列であるシリアルナンバーを認識することができる。
【００５５】
図１２を用いて、回転画像の矩形３３の座標の検出が説明される。図１２において、多数の小さな矩形はそれぞれ画素を表す。図１２（ａ）は、矩形３２を含む領域Ｃ（矩形の外枠で示される部分）と、該領域Ｃに対してα2＝−１５度回転した領域Ｃ´（グレーの濃淡で示される部分）と、矩形３２の座標の決定に関する各座標（ｘ’，ｙ’）を示す。矩形３２の座標の決定に関する各座標（ｘ’，ｙ’）は、閉域を画成する各レクタングルの座標である。領域Ｃ´は線分補間テーブルの画素の桁上がりに基づいて生成され得る。すなわち、中心画素ｏ（１番目の画素）から角度α2方向に位置する２番目の画素のＸ成分を、中心画素ｏのＸ成分である初期値＝０．５に、角度α2方向に伸長する２番目の画素の斜辺のＸ方向の増分、すなわちΔｘ（ｃｏｓα2）を加算した値とし、Ｙ成分を、中心画素ｏのＹ成分である初期値＝０．５に、角度α2方向に伸長する２番目の画素の斜辺のＹ方向の増分、すなわちΔｙ（ｓｉｎα2）を加算した値とし、各々の値を整数に切り捨てて、そこから直前の画素の桁上がり値（直前の画素が中心画素である場合、桁上がり値は０）を減算することにより、２番目の画素の直前の画素からのＸ方向の桁上がり、及びＹ方向の桁上がりが判定される。
【００５６】
図１２（ｂ）は、線分補間テーブルに基づいてスキュー補正された画像（回転画像）と回転変換された各座標（ｘ，ｙ）等を示す。もとの矩形に関する座標を回転変換し、同様にＸ座標、Ｙ座標の最小値、最大値を取ることにより回転画像の矩形３３が検出され、該矩形３３の内部領域がＯＣＲ処理される。
【００５７】
実施例において、各処理にかかった時間は、１画像のフィルタ処理と閉域検出に２５０ｍｓ、約３０矩形の検出とスキュー角度解析に３５０ｍｓ（１矩形あたり約１２ｍｓ）、１矩形のスキュー補正（回転）に２．０〜３．０ｍｓであり、各シリアルナンバーが精度よく抽出された。
【００５８】
上記のように、本発明によれば、複数（種類）の応募券を用いるキャンペーンでも応募が簡単であり、集計も容易になる。高い精度で瞬時にキャンペーンに必要な文字列を抽出することができ、実効性の高いシステムとすることができる。
【００５９】
本発明の思想及び態様から離れることなく多くのさまざまな修正が可能であることは当業者の知るところである。したがって、言うまでもなく、本発明の態様は例示に過ぎず、本発明の範囲を限定するものではない。
【符号の説明】
【００６０】
１００  文字列抽出サーバ
１０    二値化手段
２０    閉域・矩形検出手段
３０    スキュー角度検出手段
４０    スキュー補正手段
５０    対象文字列抽出手段
６０    記憶手段
【要約】
【課題】不定形のフォーマットからシリアルナンバー等の対象文字列を抽出するためのサーバ、方法及びプログラムを提供する。
【解決手段】画像の不特定の領域に含まれる複数の対象文字列を抽出するための文字列抽出サーバであって、画像の二値化画像から余白に囲まれた領域である閉域を複数検出し、それぞれの閉域に関する矩形を検出する矩形検出手段と、検出されたそれぞれの矩形内部の文字列のスキュー角度を検出するスキュー角度検出手段と、それぞれの矩形についてスキュー角度に応じた回転画像の矩形を検出するスキュー補正手段と、矩形及び／又は回転画像の矩形の内部領域の文字列を認識する文字認識手段と、を備え、認識された文字列が複数の対象文字列を含む。
【選択図】図２【図１】
0006878739.tif 000002
【図２】
0006878739.tif 000003
【図３】
0006878739.tif 000004
【図４Ａ】
0006878739.tif 000005
【図４Ｂ】
0006878739.tif 000006
【図５】
0006878739.tif 000007
【図６Ａ】
0006878739.tif 000008
【図６Ｂ】
0006878739.tif 000009
【図６Ｃ】
0006878739.tif 000010
【図６Ｄ】
0006878739.tif 000011
【図６Ｅ】
0006878739.tif 000012
【図７】
0006878739.tif 000013
【図８】
0006878739.tif 000014
【図９】
0006878739.tif 000015
【図１０】
0006878739.tif 000016
【図１１】
0006878739.tif 000017
【図１２】
0006878739.tif 000018