(57)【要約】【課題】カード番号の背景に模様が入っているカードであっても、カード番号を容易かつ高精度かつ高速に認識することができるカード番号認識装置を提供する。【解決手段】実施形態によれば、カード番号認識装置は、線分群検出部と、第１文字認識部と、第２文字認識部とを具備する。線分群検出部は、第１方向に連続する画素群を含む線形の領域ごとに、第１画素値の画素と第２画素値の画素とが第１方向に所定の比率で出現する領域を検出して、第１方向と直交する第２方向の所定数の線分群を検出する。第１文字認識部は、所定数の線分群の位置に基づき、特定の数字を検出するための領域を設定して文字認識し、カード番号中の特定の数字を検出する。第２文字認識部は、特定の数字の位置に基づき、特定の数字の前後に位置する特定の数字以外の数字を検出するための領域を設定して文字認識し、カード番号中の特定の数字以外の数字を検出する。【選択図】図２
2019220069.tif 000002
【特許請求の範囲】
【請求項１】
カード番号が表記された面が撮像されたカードの画像を取得する画像取得部と、
前記取得された画像を構成する画素の画素値を２値化する２値化部と、
第１方向に連続する画素群を含む線形の領域ごとに、前記取得された画像を前記２値化部によって２値化し、第１画素値の画素と第２画素値の画素とが前記第１方向に所定の比率で出現する領域を検出して、前記取得された画像の中から所定の間隔で並列する前記第１方向と直交する第２方向の所定数の線分群を検出する線分群検出部と、
前記検出された所定数の線分群の位置に基づき、特定の数字を検出するための矩形の領域を前記取得された画像上に設定し、前記設定した領域内の部分画像を前記２値化部によって２値化し、前記第１画素値の画素で表される文字を認識して、前記取得された画像の中から前記カード番号中の前記特定の数字を検出する第１文字認識部と、
前記検出された特定の数字の位置に基づき、前記特定の数字の前記第２方向上の前後に位置する前記特定の数字以外の数字を検出するための矩形の領域を前記取得された画像上に設定し、前記設定した領域内の部分画像を前記２値化部によって２値化し、前記第１画素値の画素で表される文字を認識して、前記取得された画像の中から前記カード番号中の前記特定の数字以外の数字を検出する第２文字認識部と、
を具備するカード番号認識装置。
【請求項２】
前記第２文字認識部は、前記設定した領域内から数字が検出された場合、その領域の位置に基づいて新たな領域を前記取得された画像上に設定し、かつ、前記設定した領域内から数字が検出されなかった場合であって、その領域が、検出された数字の位置に基づいて設定された領域であった場合、その領域の位置に基づいて新たな領域を前記取得された画像上に設定する請求項１に記載のカード番号認識装置。
【請求項３】
前記線分群検出部は、前記取得された画像の解像度または撮像時の焦点距離の少なくとも一方に応じて前記線形の領域の画素数を決定し、前記取得された画像上の前記第１方向の一端から他端まで１画素ずつ基点を移動させながら前記決定した画素数の前記線形の領域を設定していくことを、前記取得された画像上の前記第２方向の一端から他端まで繰り返す請求項１または２に記載のカード番号認識装置。
【請求項４】
前記第１文字認識部は、前記検出された所定数の線分群の位置に対応する複数の前記線形の領域の２値化にそれぞれ用いられた閾値の平均値を用いて、前記特定の数字を検出するための矩形の領域の前記第２方向の範囲を決定する請求項１乃至３のいずれか１項に記載のカード番号認識装置。
【請求項５】
前記線分群検出部は、前記所定数の線分群として３本の線分を検出し、
前記第１文字認識部は、前記特定の数字として２、３または５の少なくとも１つを検出する、
請求項１乃至４のいずれか１項に記載のカード番号認識装置。
【請求項６】
前記第１文字認識部および前記第２文字認識部は、前記設定した領域内の部分画像を上下反転させた画像について前記第１画素値の画素で表される文字をさらに認識する請求項１乃至５のいずれか１項に記載のカード番号認識装置。
【請求項７】
カード番号が表記された面が撮像されたカードの画像を取得する画像取得部と、
前記取得された画像の中から画素値が閾値を超えて変化する画素をエッジとして検出するエッジ検出部と、
前記検出されたエッジをマッピングしたマップ上を第１方向に走査して、前記取得された画像上の所定の間隔で並列する前記第１方向と直交する第２方向の所定数の線分群に対応するエッジを検出する線分群検出部と、
前記検出された所定数の線分群に対応するエッジの位置に基づき、特定の数字を検出するための領域を前記マップ上に設定し、前記設定した領域内のエッジで表される文字を認識して、前記取得された画像の中から前記カード番号中の前記特定の数字を検出する第１文字認識部と、
前記検出された特定の数字の位置に基づき、前記特定の数字の前記第２方向上の前後に位置する前記特定の数字以外の数字を検出するための領域を前記マップ上に設定し、前記設定した領域内のエッジで表される文字を認識して、前記取得された画像の中から前記カード番号中の前記特定の数字以外の数字を検出する第２文字認識部と、
を具備するカード番号認識装置。
【請求項８】
前記第２文字認識部は、前記設定した領域内から数字が検出された場合、その領域の位置に基づいて新たな領域を前記マップ上に設定し、かつ、前記設定した領域内から数字が検出されなかった場合であって、その領域が、検出された数字の位置に基づいて設定された領域であった場合、その領域の位置に基づいて新たな領域を前記マップ上に設定する請求項７に記載のカード番号認識装置。
【請求項９】
前記線分群検出部は、前記所定数の線分群に対応するエッジ群として３本の線分に対応するエッジを検出し、
前記第１文字認識部は、前記特定の数字として２、３または５の少なくとも１つを検出する、
請求項７または８に記載のカード番号認識装置。
【請求項１０】
前記第１文字認識部および前記第２文字認識部は、前記設定した領域内のエッジを上下反転させたエッジで表される文字をさらに認識する請求項７乃至９のいずれか１項に記載のカード番号認識装置。
【請求項１１】
前記カードのレイアウト情報を用いて、前記第１文字認識部および前記第２文字認識部によって検出された前記カード番号の位置に基づき、前記カードに表記される前記カード番号以外の項目に関する文字を認識して検出する第３文字認識部をさらに具備する請求項１乃至１０のいずれか１項に記載のカード番号認識装置。
【請求項１２】
前記カードのレイアウト情報を用いて、前記第１文字認識部および前記第２文字認識部によって検出された前記カード番号の位置に基づき、前記カードが撮像される領域の画像を前記取得された画像から切り出すカード画像切り出し部をさらに具備する請求項１乃至１０のいずれか１項に記載のカード番号認識装置。
【請求項１３】
カード番号が表記された面が撮像されたカードの画像を取得することと、
第１方向に連続する画素群を含む線形の領域ごとに、前記取得された画像を２値化し、第１画素値の画素と第２画素値の画素とが前記第１方向に所定の比率で出現する領域を検出して、前記取得された画像の中から所定の間隔で並列する前記第１方向と直交する第２方向の所定数の線分群を検出することと、
前記検出された所定数の線分群の位置に基づき、特定の数字を検出するための矩形の領域を前記取得された画像上に設定し、前記設定した領域内の部分画像を２値化し、前記第１画素値の画素で表される文字を認識して、前記取得された画像の中から前記カード番号中の前記特定の数字を検出することと、
前記検出された特定の数字の位置に基づき、前記特定の数字の前記第２方向上の前後に位置する前記特定の数字以外の数字を検出するための矩形の領域を前記取得された画像上に設定し、前記設定した領域内の部分画像を２値化し、前記第１画素値の画素で表される文字を認識して、前記取得された画像の中から前記カード番号中の前記特定の数字以外の数字を検出することと、
を具備するカード番号認識方法。
【請求項１４】
カード番号が表記された面が撮像されたカードの画像を取得することと、
前記取得された画像の中から画素値が閾値を超えて変化する画素をエッジとして検出することと、
前記検出されたエッジをマッピングしたマップ上を第１方向に走査して、前記取得された画像上の所定の間隔で並列する前記第１方向と直交する第２方向の所定数の線分群に対応するエッジを検出することと、
前記検出された所定数の線分群に対応するエッジの位置に基づき、特定の数字を検出するための領域を前記マップ上に設定し、前記設定した領域内のエッジで表される文字を認識して、前記取得された画像の中から前記カード番号中の前記特定の数字を検出することと、
前記検出された特定の数字の位置に基づき、前記特定の数字の前記第２方向上の前後に位置する前記特定の数字以外の数字を検出するための領域を前記マップ上に設定し、前記設定した領域内のエッジで表される文字を認識して、前記取得された画像の中から前記カード番号中の前記特定の数字以外の数字を検出することと、
を具備するカード番号認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、カード番号認識装置およびカード番号認識方法に関する。
【背景技術】
【０００２】
近年、スマートフォンやタブレットコンピュータなどといったバッテリ駆動可能で携行容易な電子機器が広く普及している。たとえばスマートフォンは、カメラをいまや標準装備品として備えている。また、スマートフォンには、アプリなどと称される、様々なプログラムをインストールすることができる。
【０００３】
たとえば、クレジットカードを撮像した画像からクレジットカード番号を読み取る機能を提供するプログラムがインストールされたスマートフォンのユーザは、スマートフォンのカメラでクレジットカードを撮影することで、そのカード番号をスマートフォンへ入力することができる。
【０００４】
ＯＣＲ（Optical Character Reader）などにおいて採用される画像から文字を読み取る手法として、画像を２値化して文字を認識する手法が存在する。この手法は、白地の紙面上に黒色で表記された文字を認識するといった、画像内に色彩的に対照的な２色のみ存在する場合には有用である。しかしながら、画像内に多数の色が存在する場合、文字が表記されている箇所か否かを判別するための画像の２値化は簡単ではなく、文字の認識の精度は著しく低下する。
【０００５】
また、画像の２値化によらない他の手法として、画像の中から画素値が急激に変化している画素（エッジ）を検出し、そのエッジの連続する範囲を手掛かりに、文字の範囲を見つけて認識する手法が存在する。この手法は、情景文字認識と称される、写真の中から文字を認識する処理に用いられている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３２９１８７３号公報
【特許文献２】特許第４３０９８８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、情景文字認識においても、エッジとして検出され得る模様などが入った紙面上に表記された文字を認識するような場合、その認識の精度は著しく低下する。したがって、この情景文字認識を採用するプログラムがインストールされたスマートフォンの場合、たとえばカード番号が表記される面に絵柄が入っているなど、カード番号の背景に模様が入っているクレジットカードからカード番号を読み取ることは困難となる。
【０００８】
本発明が解決しようとする課題は、カード番号の背景に模様が入っているカードであっても、カード番号を容易かつ高精度かつ高速に認識することができるカード番号認識装置およびカード番号認識方法を提供することである。
【課題を解決するための手段】
【０００９】
実施形態によれば、カード番号認識装置は、画像取得部と、２値化部と、線分群検出部と、第１文字認識部と、第２文字認識部とを具備する。画像取得部は、カード番号が表記された面が撮像されたカードの画像を取得する。２値化部は、前記取得された画像を構成する画素の画素値を２値化する。線分群検出部は、第１方向に連続する画素群を含む線形の領域ごとに、前記取得された画像を前記２値化部によって２値化し、第１画素値の画素と第２画素値の画素とが前記第１方向に所定の比率で出現する領域を検出して、前記取得された画像の中から所定の間隔で並列する前記第１方向と直交する第２方向の所定数の線分群を検出する。第１文字認識部は、前記検出された所定数の線分群の位置に基づき、特定の数字を検出するための矩形の領域を前記取得された画像上に設定し、前記設定した領域内の部分画像を前記２値化部によって２値化し、前記第１画素値の画素で表される文字を認識して、前記取得された画像の中から前記カード番号中の前記特定の数字を検出する。第２文字認識部は、前記検出された特定の数字の位置に基づき、前記特定の数字の前記第２方向上の前後に位置する前記特定の数字以外の数字を検出するための矩形の領域を前記取得された画像上に設定し、前記設定した領域内の部分画像を前記２値化部によって２値化し、前記第１画素値の画素で表される文字を認識して、前記取得された画像の中から前記カード番号中の前記特定の数字以外の数字を検出する。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態のカード番号認識装置のハードウェア構成例を示す図。
【図２】第１実施形態のカード番号認識装置の機能ブロック例を示す図。
【図３】情景文字認識によってクレジットカード番号を認識する場合における問題点について簡単に説明するための図。
【図４】第１実施形態のカード番号認識装置による特定線分群の検出処理を説明するための図。
【図５】第１実施形態のカード番号認識装置による特定線分群の検出結果の一例を示す図。
【図６】第１実施形態のカード番号認識装置による文字認識範囲の決定処理を説明するための第１図。
【図７】第１実施形態のカード番号認識装置による文字認識範囲の決定処理を説明するための第２図。
【図８】第１実施形態のカード番号認識装置による特定文字の検出結果の一例を示す図。
【図９】第１実施形態のカード番号認識装置による特定文字以外の文字の検出処理を説明するための第１図。
【図１０】第１実施形態のカード番号認識装置による特定文字以外の文字の検出処理を説明するための第２図。
【図１１】第１実施形態のカード番号認識装置による特定文字以外の文字の検出処理を説明するための第３図。
【図１２】第１実施形態のカード番号認識装置による特定文字以外の文字の検出処理を説明するための第４図。
【図１３】第１実施形態のカード番号認識装置によるカード番号の検出結果の一例を示す図。
【図１４】第１実施形態のカード番号認識装置による特定線分群の検出処理の手順を示すフローチャート。
【図１５】第１実施形態のカード番号認識装置による特定文字の検出処理の手順を示すフローチャート。
【図１６】第１実施形態のカード番号認識装置による特定文字以外の文字の検出処理の手順を示すフローチャート。
【図１７】第２実施形態のカード番号認識装置の機能ブロック例を示す図。
【図１８】第２実施形態のカード番号認識装置による特定線分群に対応するエッジの検出処理を説明するための図。
【図１９】第２実施形態のカード番号認識装置による特定文字の検出処理を説明するための図。
【図２０】第１および第２実施形態のカード番号認識装置の一応用例を説明するための図。
【発明を実施するための形態】
【００１１】
以下、実施形態について図面を参照して説明する。
（第１実施形態）
まず、第１実施形態について説明する。
図１は、本実施形態のカード番号認識装置１のハードウェア構成例を示す図である。カード番号認識装置１は、たとえばクレジットカードが撮像された画像からカード番号を読み取る装置である。ここでは、カード番号認識装置１が、カメラ１２を備えるスマートフォンとして実現されていることを想定する。カード番号認識装置１は、カード番号が表記された面が撮像されたカードの画像を取得することのできる電子機器であれば、スマートフォンに限らず、様々な電子機器として実現され得る。画像の取得は、自らが画像を撮像することに限らず、たとえば、外部のカメラを含む他の機器から受信することであってもよいし、外部の記憶媒体から読み出すことであってもよい。カード番号認識装置１は、たとえばネットワークを介してクライアント機器と通信するサーバ、より詳しくは、クライアント機器からの画像のアップロードを受け付けるサーバなどとしても実現され得る。つまり、カード番号認識装置１において、カメラ１２を備えることは必須ではない。
【００１２】
図１に示されるように、カード番号認識装置１は、コントローラ１１、カメラ１２、揮発性メモリ１３、不揮発性メモリ１４、タッチスクリーンディスプレイ１５、通信デバイス１６、ＵＳＢコネクタ１７、スピーカ１８、マイクロフォン１９などを有している。
【００１３】
コントローラ１１は、カード番号認識装置１内の各コンポーネントを制御するデバイスである。コントローラ１１は、不揮発性メモリ１４に格納される各種プログラムを揮発性メモリ１３へロードして実行するプロセッサを備える。各種プログラムの中には、カード番号認識プログラム１００が含まれている。このカード番号認識プログラム１００がコントローラ１１によって不揮発性メモリ１４から揮発性メモリ１３へロードされて実行されることによって、スマートフォンがカード番号認識装置１として動作する。スマートフォンをカード番号認識装置１として動作させる操作、つまり、カード番号認識プログラム１００を起動させる操作としては、たとえば、タッチスクリーンディスプレイ１５上においてカード番号認識プログラム１００を表すアイコンを選択指示するタッチ操作を行うことなどが考えられる。
【００１４】
カメラ１２は、光を電気信号に変換する撮像素子を用いてデジタル画像を生成するデバイスである。カメラ１２は、たとえば、カード番号認識装置１の筐体周壁のタッチスクリーンディスプレイ１５の配置面と対向する面に配置される。カメラ１２による画像の撮像時、タッチスクリーンディスプレイ１５は、被写体像を確認するためのビューファインダーとして機能し得る。撮像された画像は、揮発性メモリ１３へ格納された後、必要に応じて、不揮発性メモリ１４へ格納される。
【００１５】
揮発性メモリ１３は、たとえばＤＲＡＭであり、不揮発性メモリ１４は、たとえばフラッシュメモリである。揮発性メモリ１３は、コントローラ１１によって実行される各種プログラムの作業領域としても利用される。なお、この揮発性メモリ１３の役割を、不揮発性メモリ１４が兼ね備えてもよい。あるいは、揮発性メモリ１３に相当するメモリデバイスをコントローラ１１内に設けてもよい。つまり、カード番号認識装置１のハードウェア構成として、揮発性メモリ１３が存在しない構成も考えられ得る。
【００１６】
タッチスクリーンディスプレイ１５は、カード番号認識装置１のユーザインタフェースを司るデバイスであり、たとえば液晶パネルとタッチパネルとが重なり合った状態で形成されている。
通信デバイス１６は、たとえば、電気通信事業者が設置する基地局との間の通信を実行するデバイスである。なお、図１には、１つの通信デバイス１６のみを示しているが、電気通信事業者が設置する基地局との間の通信を実行するもののほか、たとえば、無線ＬＡＮ規格（IEEE 802.11規格）に準拠した、周辺機器との間の通信を実行するものなどがさらに搭載され得る。
【００１７】
ＵＳＢコネクタ１７は、ＵＳＢデバイスを接続するための端子である。ＵＳＢデバイスの中には、ＡＣアダプタが含まれる。カード番号認識装置１は、ＵＳＢコネクタ１７経由でＡＣアダプタから電力の供給を受けることができ、かつ、その電力によって、図１には示されないバッテリを充電することができる。コントローラ１１には、ＵＳＢデバイスとの間の通信を実行するＵＳＢ制御回路が内蔵されている。
【００１８】
スピーカ１８は、たとえば通話時の相手側の音声を出力するデバイスであり、マイクロフォン１９は、たとえば通話時のユーザ側の音声を入力するデバイスである。なお、スピーカ１８やマイクロフォン１９による音声の出入力は、通話時に限らず、たとえば各種プログラムによって様々なユースケースにおいて発生し得る。
【００１９】
また、図１には示されないが、カード番号認識装置１は、たとえば位置を取得するためのＧＰＳや傾きを取得するための加速度センサなどを有していてもよい。
図２は、以上のような構成を有するカード番号認識装置１上で動作するカード番号認識プログラム１００の機能ブロック例を示す図である。
【００２０】
図２に示されるように、カード番号認識プログラム１００は、画像取得部１０１、２値化部１０２、特定線分群（３線）検出部１０３、特定文字（数字）認識部１０４、前後文字（数字）認識部１０５などを有している。なお、ここでは、各処理部１０１〜１０５がカード番号認識プログラム１００内のモジュール（ソフトウェア）であることを想定しているが、たとえばその一部を、カード番号認識プログラム１００の指示の下、つまりコントローラ１１の制御下において動作させることのできる電子回路（ハードウェア）として設けるようにしてもよい。
【００２１】
画像取得部１０１は、カード番号が表記された面が撮像されたカードの画像を取得するモジュールである。前述のように、ここでは、カード番号認識装置１が、カメラ１２を備えるスマートフォンとして実現されることを想定しているので、画像取得部１０１は、カメラ１２によって撮像された画像を取得する。より詳しくは、画像取得部１０１は、たとえばタッチスクリーンディスプレイ１５上においてレリーズに相当するタッチ操作が行われたタイミングでカメラ１２に画像を撮像させる。画像取得部１０１は、通信デバイス１６またはＵＳＢコネクタ１７経由で画像を取得してもよい。画像取得部１０１によって取得された画像は、カード番号認識プログラム１００の作業領域として確保される揮発性メモリ１３上の記憶領域に格納される。
【００２２】
２値化部１０２は、画像取得部１０１によって取得された画像を構成する画素の画素値を２値化するモジュールである。詳細については後述するが、２値化部１０２は、画像内のすべての画素の画素値から単純に２値化のための閾値を算出するのではなく、特定線分群検出部１０３から指定される画像内の部分画像の画素の画素値のみを対象として２値化のための閾値を算出するなど、特定線分群検出部１０３、特定文字認識部１０４、前後文字認識部１０５からの指示に基づいた、本実施形態のカード番号認識装置１独自の２値化を実行する。
【００２３】
ここで、図３を参照して、本実施形態のカード番号認識装置１について、より理解をしやすくするために、情景文字認識によってクレジットカード番号を認識する場合における問題点について簡単に説明する。
図３中、（Ａ）は、認識しやすいクレジットカード番号の一例を示し、（Ｂ）は、認識が難しいクレジットカード番号の一例を示している。
【００２４】
前述のように、情景文字認識は、エッジを検出し、そのエッジの連続する範囲を手掛かりに、文字の範囲を見つけて認識する手法である。図３（Ａ）に示されるように、クレジットカード番号の背景がほぼ単色のクレジットカードの場合、そのクレジットカード番号を高精度で認識することができる。一方、図３（Ｂ）に示されるように、クレジットカード番号の背景に模様があるクレジットカードの場合、この背景の模様もエッジとして検出されてしまうため、エッジの連続する範囲を手掛かりとして、文字の範囲を見つけることができなくなってしまう。
【００２５】
本実施形態のカード番号認識装置１は、図３（Ｂ）に示されるような、カード番号の背景に模様が入っているカードであっても、カード番号を容易かつ高精度かつ高速に認識することができるものであり、以下、この点について詳述する。
図２に戻り、カード番号認識プログラム１００の各処理部についての説明を続ける。
【００２６】
特定線分群検出部１０３は、２値化部１０２と協働して、画像取得部１０１によって取得された画像の中から特定のパターンの線分群を検出するモジュールである。より詳しくは、クレジットカード番号中の「２」、「３」、「５」の横線（横方向［第２方向］の線分）である可能性がある横線３本を検出する。
【００２７】
クレジットカードのフォントは、JIS X 6302で厳格に定められている。このフォントでは、「２」、「３」、「５」の文字（数字）について、横線３本が等間隔で現れる独特な字体が定義されている。一方、クレジットカード上におけるカード番号の表記位置については、大まかな範囲が定められているのみで、厳格には定められていない。そこで、まず、特定線分群検出部１０３が、画像取得部１０１によって取得された画像の中からクレジットカード番号中の「２」、「３」、「５」の横線である可能性がある等間隔の３本の横線を検出する。図４を参照して、特定線分群検出部１０３による特定線分群（３線）の検出処理について説明する。
【００２８】
特定線分群検出部１０３は、図４（Ａ）に示されるように、画像取得部１０１によって取得された画像を１次元的に走査する。より詳しくは、検出対象の横線と直交する縦方向（第１方向）に走査する。図４（Ａ）中、ａ１は、画像取得部１０１によって取得された画像を示す。ａ２は、画像ａ１上のクレジットカードの撮像領域を示す。ａ３は、クレジットカード上のカード番号の表記領域を示す。ａ４は、特定線分群検出部１０３による画像ａ１の走査方向を示す。画像ａ１上におけるクレジットカードの撮像領域ａ２の位置は不定であり、また、クレジットカードの撮像領域ａ２上におけるカード番号の表記領域ａ３の位置も不定である。さらには、クレジットカードの撮像領域ａ２のサイズが不定であることから、カード番号の表記領域ａ３のサイズも不定となる。特定線分群検出部１０３は、画像取得部１０１から、画像の解像度と撮像時の焦点距離とを取得し、これらの値から画像ａ１をａ４の方向に走査していくにあたっての一走査単位とする画素数を決定する。この画素数は、画像ａ１において、カード番号の各文字（数字）を囲む矩形の縦方向の幅を若干上回る程度の値であることが好ましい。クレジットカードの場合、文字（数字）の縦幅は４．３２ｍｍと定められているので、画像の解像度と撮像時の焦点距離とが分かれば、被写体像の４．３２ｍｍに対応する画素数を算出することができる。なお、画像の解像度と撮像時の焦点距離とを取得することは必須ではなく、その一方だけ取得するようにしてもよいし、両方とも取得しないようにしてもよい。たとえば、クレジットカードを撮像する際、解像度を所定の値に設定し、または、クレジットカードの撮像領域ａ２の画像上に占める割合を所定の範囲に収まるように、つまり、撮像時の焦点距離がほぼ所定値となるように取り決めることによって、画像の解像度または撮像時の焦点距離の一方から画素数を算出することができるし、あるいは、画素数を固定値とすることができる。なお、画像ａ１の長手方向と、クレジットカードの撮像領域ａ２の長手方向とが、ほぼ一致するように撮像することは必須の条件である。
【００２９】
特定線分群検出部１０３は、画素数を決定すると、たとえば画像ａ１の左上端から当該決定した画素数の画素群を含む線形の領域ごとに、画像ａ１の２値化を２値化部１０２に指示する。たとえば画素数として５０画素が算出されたとすると、特定線分群検出部１０３は、たとえば画像ａ１の左上端に位置する画素を基点として、そこから縦に連続する５０画素に着目し、この５０画素の部分画像を対象として２値化部１０２に２値化を行わせる。以降、この線形の部分画像を、着目範囲と称することがある。２値化部１０２は、たとえば、この着目範囲の画素の画素値の平均値を閾値として、それらの画素を黒（第１画素値の画素）と白（第２画素値の画素）とに分ける。２値化については、この手法に限らず、既知の様々な手法を適用可能である。２値化の結果は、たとえば、カード番号認識プログラム１００の作業領域として確保される揮発性メモリ１３上の記憶領域を介して特定線分群検出部１０３に引き渡される。
【００３０】
特定線分群検出部１０３は、２値化部１０２による２値化の結果を受け取ると、着目範囲に黒と白とが特定の比率で出現するか否かを調べる。より詳しくは、前述のように、クレジットカードのフォントでは、「２」、「３」、「５」の文字（数字）の場合、横線３本が等間隔で現れることから、着目範囲が、「２」、「３」、「５」のいずれかを縦に貫く場合、「黒、白、黒、白、黒」の画素が特定の比率で出現する。ここでは、この比率を「ａ：ｂ：ａ：ｂ：ａ」と表記する。特定線分群検出部１０３は、黒と白とが「ａ：ｂ：ａ：ｂ：ａ」の比率で出現することを検出した場合、最上部の黒の画素から最下部の黒の画素までの位置を記録する。また、特定線分群検出部１０３は、その着目範囲について用いた閾値を記録する。これらの情報は、たとえば、カード番号認識プログラム１００の作業領域として確保される揮発性メモリ１３上の記憶領域に格納される。その着目範囲の処理を終えると、特定線分群検出部１０３は、着目範囲を移動させる。
【００３１】
より詳しくは、特定線分群検出部１０３は、基点を１画素分だけ下にずらし、そこから縦に連続する５０画素を着目範囲とする。基点から縦に連続する５０画素目が画像ａ１の左下端に位置する画素に達するまで処理を繰り返したら、特定線分群検出部１０３は、基点を置く列を１画素分だけ右にずらし、その列の上端から処理を繰り返す。特定線分群検出部１０３は、この処理を、基点を置く列が画像ａ１の右端に達するまで繰り返す。
【００３２】
図４（Ｂ）は、着目範囲の例を示し、図４（Ｃ）は、図４（Ｂ）で示される着目範囲の２値化の結果の例を示している。
図４（Ｂ）中、符号ｂ１で示される着目範囲は、「２」、「３」、「５」のいずれにも該当しない。そのため、図４（Ｃ）に示されるように、２値化の結果、黒と白とが「ａ：ｂ：ａ：ｂ：ａ」の比率で出現しない。一方、符号ｂ２で示される着目範囲は、「２」を縦に貫くので、図４（Ｃ）に示されるように、２値化の結果、黒と白とが「ａ：ｂ：ａ：ｂ：ａ」の比率で出現する。当該符号ｂ２で示される着目範囲については、この「２」の最上部の画素から最下部の画素までの位置が記録されることになる。つまり、横線３本の１番目の線の黒画素の中の最上部の画素から３番目の線の黒画素の中の最下部の画素までの位置が記録されることになる。「３」、「５」の場合も同様である。なお、この時点では、縦方向の線形の着目範囲を個々に調べているので、実は横線３本の一部ではなく、たまたま黒と白とが「ａ：ｂ：ａ：ｂ：ａ」の比率で出現する箇所も検出され得るが、このような箇所に関する情報を除去する手法については後述する。
【００３３】
また、着目範囲を１画素分ずつ移動させながら、黒と白とが「ａ：ｂ：ａ：ｂ：ａ」の比率で出現する箇所を検出していくと、同一の箇所が複数回検出され得るが、このような箇所に関する情報は、１つに纏めることが好ましい。たとえば、最初に検出された時の情報を残すようにしてもよいし、閾値については、各回の検出時に用いられた閾値の平均値を算出して記録するようにしてもよい。
【００３４】
特定線分群検出部１０３は、着目範囲ごとに２値化部１０２に２値化を実行させることによって、多数の色が用いられたクレジットカードの場合であっても、たとえば局所的に用いられる色の影響を受けない適切な結果を得ることができる。クレジットカードの撮像領域ａ２以外の画像ａ１上の領域に、２値化に悪影響を及ぼすおそれのある色が存在していたとしても、その影響を排除することができる。
【００３５】
なお、ここでは、着目範囲を１画素分ずつ下に移動させているが、これに限らず、複数画素分ずつ下に移動させていくようにしてもよい。この場合、移動前の着目範囲と移動後の着目範囲との一部が重複することが好ましい。また、ここでは、着目範囲を上から下および左から右へ移動させているが、これに限らず、たとえば各列ごとに並行して処理を行うようにしてもよい。
【００３６】
特定線分群検出部１０３は、画像ａ１全体について処理を終えると、自身が記録した情報を参照して、横方向に一定の幅、たとえば２０〜４０画素以上連続していない箇所に関する情報については削除する。この幅は、画像の解像度や撮像時の焦点距離などに応じて決定される。これにより、実は横線３本の一部ではなく、たまたま黒と白とが「ａ：ｂ：ａ：ｂ：ａ」の比率で出現することによって検出されてしまった箇所に関する情報を除去することができる。
【００３７】
図５は、特定線分群検出部１０３による特定線分群（３線）の検出結果の一例を示す図である。
図５に示される例では、黒と白とが「ａ：ｂ：ａ：ｂ：ａ」の比率で出現するという検出条件を満たす横線３本（ｃ１〜ｃ３：斜めのハッチングが施された箇所）が、検出対象とする「２」、「３」、「５」の横線３本のほか、「Ｅ」の横線３本や、クレジットカードの地紋の一部などの横線３本が検出されている。また、クレジットカードの撮像領域ａ２以外の領域においても、たまたま存在した横線３本が検出されている。これらは、黒と白とが「ａ：ｂ：ａ：ｂ：ａ」の比率で出現するという検出条件を満たす横線３本であったために、特定線分群検出部１０３によって検出されたものである。
【００３８】
以上が特定線分群検出部１０３による特定線分群の検出処理である。図２に戻り、カード番号認識プログラム１００の各処理部についての説明を続ける。
特定線分群検出部１０３による特定線分群の検出処理が終了すると、続いて、特定文字認識部１０４による特定文字（数字）、より詳しくは、「２」、「３」、「５」の検出処理が開始される。
【００３９】
特定文字認識部１０４は、２値化部１０２と協働して、特定線分群検出部１０３によって検出された３線の位置に基づき、カード番号中の「２」、「３」、「５」を検出するモジュールである。
たとえば１６桁のカード番号中に「２」が含まれている場合、その「２」の上下の範囲は特定線分群検出部１０３による横線３本の検出によって明らかになっている。一方、その「２」の左右の範囲は明らかになっていない。なぜなら、特定線分群検出部１０３によって検出された横線３本の左右の両端は、「２」の左右の範囲の両端と一致しているとは限らないからである。そこで、特定文字認識部１０４は、まず、文字認識を施すべき範囲を決定する処理を実行する。この文字認識範囲の決定処理について、図６および図７を参照して説明する。
【００４０】
図６中、符号ｄ１で示される範囲は、特定線分群検出部１０３によって検出された横線３本の左右の範囲である。一方、符号ｄ２で示される範囲は、特定文字認識部１０４が決定する文字認識範囲の左右の範囲である。
特定線分群検出部１０３は、符号ｄ１−１〜ｄ１−ｎで示される各箇所について、その位置と２値化に用いた閾値とを記録している。特定文字認識部１０４は、それらの閾値の平均値を用いた２値化を、符号ｄ１−１の左側に隣接する領域や符号ｄ１−ｎの右側に隣接する領域、さらに、これらに隣接する領域を範囲として２値化部１０２に実行させていきながら、符号ｄ２で示される範囲を求める。
【００４１】
より詳しくは、特定文字認識部１０４は、第１に、図７（Ａ）に示されるように、左辺がすべて白画素となるまで、特定線分群検出部１０３によって検出された横線３本を囲む矩形領域（３線矩形領域）を左側へ拡大していく。また、特定文字認識部１０４は、第２に、図７（Ｂ）に示されるように、右辺がすべて白画素となるまで、３線矩形領域を右側へ拡大していく。特定線分群検出部１０３は、拡大後の矩形範囲を文字認識範囲として決定する。なお、クレジットカードの場合、文字（数字）の間隔、より詳しくは、文字の中心間の距離は３．６３ｍｍと定められているので、文字の左右の幅は３．６３ｍｍを超えることがない。そこで、この値から拡大幅の上限を設定するようにしてもよい。この上限まで拡大しても白画素のみの辺を得られない場合、その時点で拡大を打ち切るようにしてもよい。
【００４２】
特定文字認識部１０４は、文字認識範囲を決定すると、改めて、その文字認識範囲を対象とした２値化を２値化部１０２に実行させて、その文字認識範囲を対象とした文字認識を実行する。この時、２値化部１０２は、文字認識範囲の全画素の画素値の平均値を閾値として使用する。文字認識については、既知の様々な手法を適用可能である。特定文字認識部１０４は、たとえば、「２」、「３」、「５」のみを認識可能な機能のみを備えてもよいし、数字のみを認識可能な機能のみを備えてもよいし、数字や記号を含む汎用的な文字全般を認識可能な機能を備えてもよい。また、特定文字認識部１０４は、文字認識機能を提供するモジュールを、後述する前後文字認識部１０５と共有してもよい。
【００４３】
特定文字認識部１０４は、文字認識の結果、「２」、「３」、「５」のいずれかが検出された場合、その結果（文字コード）と、文字認識範囲（位置）とを記録する。これらの情報は、たとえば、カード番号認識プログラム１００の作業領域として確保される揮発性メモリ１３上の記憶領域に格納される。一方、「２」、「３」、「５」以外の文字が検出された場合またはいずれの文字も検出されなかった場合、特定文字認識部１０４は、その結果を破棄し、また、文字認識範囲（位置）の記録も行わない。
【００４４】
図８は、特定文字認識部１０４による特定文字（「２」、「３」、「５」）の検出結果の一例を示す図である。
図８中、符号ｅ１で示される領域は、特定線分群検出部１０３によって横線３本が検出され、特定文字認識部１０４によって文字認識が施された結果、「２」、「３」、「５」のいずれかが検出された領域を示している。また、符号ｅ２で示される領域は、特定線分群検出部１０３によって横線３本が検出され、特定文字認識部１０４によって文字認識が施された結果、「２」、「３」、「５」以外の文字が検出され、または、いずれの文字も検出されなかった領域を示している。
【００４５】
このように、クレジット番号の「２」、「３」、「５」以外の横線３本が特定線分群検出部１０３によって検出されても、特定文字認識部１０４による文字認識の結果、それらを排除することができる。なお、「２」、「３」、「５」の横線３本が等間隔で現れるという独特の字体は、クレジットカードのフォントならではのものなので、クレジットカードの撮像領域外に「２」、「３」、「５」が写っていたとしても、そもそも特定線分群検出部１０３によって横線３本が検出されることがない。また、たとえば１６桁のカード番号中に「２」、「３」、「５」のいずれも含まれていない確率は極めて低く、カード番号には「２」、「３」、「５」の少なくとも１つが含まれていると考えて差し支えない。
【００４６】
以上が特定文字認識部１０４による特定文字の検出処理である。図２に戻り、カード番号認識プログラム１００の各処理部についての説明を続ける。
特定文字認識部１０４による特定文字の検出処理が終了すると、続いて、前後文字認識部１０５による特定文字以外の文字（数字）の検出処理が開始される。
【００４７】
前後文字認識部１０５は、２値化部１０２と協働して、特定文字認識部１０４によって検出された特定文字の位置に基づき、当該特定文字の前後に位置する文字（数字）を検出するモジュールである。
たとえば、図９に示されるように、特定文字認識部１０４によってクレジット番号中の「３」が検出されており、かつ、その前方には「１」と「４」とが存在し、また、その後方には「４」が存在するものと想定する。この場合、前後文字認識部１０５は、特定文字認識部１０４によって検出された「３」（ｆ１）を着目文字として、まず、その１つ前に存在するかもしれない文字を検出するための文字認識範囲を設定する。
【００４８】
前述したように、クレジットカードの場合、文字（数字）の間隔は３．６３ｍｍと定められているので、着目文字が検出された文字認識範囲の位置に基づき、隣接する文字を検出するための文字認識範囲を設定することができる。より詳しくは、図１０に示されるように、着目文字が検出された文字認識範囲の中心線から３．６３ｍｍ前を中心線とする３．６３ｍｍの範囲を文字認識範囲とすればよい。前後文字認識部１０５は、当該新たに設定した文字認識範囲を対象とした２値化を２値化部１０２に実行させて、その文字認識範囲を対象とした文字認識を実行する。この時も、２値化部１０２は、文字認識範囲の全画素の画素値の平均値を閾値として使用する。また、特定文字認識部１０４と同様、文字認識については、既知の様々な手法を適用可能である。前後文字認識部１０５は、数字のみを認識可能な機能のみを備えてもよいし、数字や記号を含む汎用的な文字全般を認識可能な機能を備えてもよい。また、前後文字認識部１０５は、文字認識機能を提供するモジュールを、前述の特定文字認識部１０４と共有してもよい。
【００４９】
図９の例では、まず、「４」（ｆ２）が検出されることになる。「４」（ｆ２）が検出されたら、前後文字認識部１０５は、この「４」（ｆ２）を着目文字として、さらに、その１つ前に存在するかもしれない文字を検出するための文字認識範囲を設定する。そうすると、今度は、「１」（ｆ３）が検出されることになり、前後文字認識部１０５は、この「１」（ｆ３）を着目文字として、さらに、その１つ前に存在するかもしれない文字を検出するための文字認識範囲を設定する。
【００５０】
「１」（ｆ３）の前方には文字（数字）が存在しないため、設定した文字認識範囲からは文字（数字）は検出されない。ここでは、文字（数字）が検出されない場合、前後文字認識部１０５は、白画素の有無に関わらずに、その文字認識範囲は空白であると判定するものとする。この場合も、前後文字認識部１０５は、その文字認識範囲のさらに１つ前に文字認識範囲を設定し、当該設定した文字認識範囲を対象として文字認識を実行する。もし、何らかの文字（数字）が認識されたならば、前後文字認識部１０５は、前方への文字認識範囲の設定および文字認識を継続する。一方、文字（数字）が検出されない場合、つまり、２文字分の領域において文字が存在しない場合、前方への文字認識範囲の設定および文字認識を終了する。２文字分の領域において文字が存在しないことを、前方への文字認識範囲の設定および文字認識を終了する条件とする理由については後述する。
【００５１】
特定文字認識部１０４によって検出された「３」（ｆ１）を起点した前方への文字認識範囲の設定および文字認識を終了すると、前後文字認識部１０５は、今度は、この「３」（ｆ１）を着目文字として、逆に、その１つ後ろに存在するかもしれない文字を検出するための文字認識範囲を設定する。その結果、「４」（ｆ４）が検出されることになる。後方への文字認識範囲の設定および文字認識も、前方への文字認識範囲の設定および文字認識と同様の処理であるため、その説明は省略する。前後文字認識部１０５は、このように検出した前後の文字（文字コード）と、その文字認識範囲（位置）とを記録する。これらの情報は、たとえば、カード番号認識プログラム１００の作業領域として確保される揮発性メモリ１３上の記憶領域に格納される。
【００５２】
ここでは、まず、前方への文字認識範囲の設定および文字認識を行い、次いで、後方への文字認識範囲の設定および文字認識を行うこととして説明したが、後方への文字認識範囲の設定および文字認識を行ってから、前方への文字認識範囲の設定および文字認識を行うようにしてもよいし、前方への文字認識範囲の設定および文字認識と、後方への文字認識範囲の設定および文字認識とを、並列的に行うようにしてもよい。
【００５３】
ここで、図１１および図１２を参照して、前後文字認識部１０５が、２文字分の領域において文字が存在しないことを、前方または後方への文字認識範囲の設定および文字認識を終了する条件とする理由について説明する。
クレジットカード番号は、目視での読み取りを容易にするために、４〜６文字ごとに、１文字分の空白を設けて、３〜４のブロックに分けて記載される。図１１に示されるように、たとえばカード番号「１４３４２３８９１８４９３５４９」は、「１４３４」、「２３８９」、「１８４９」、「３５４９」といった具合にたとえば４つのブロックに分けて記載される。
【００５４】
このように記載されたカード番号「１４３４２３８９１８４９３５４９」の場合、１つ目のブロック、２つ目のブロック、４つ目のブロックには、「２」、「３」、「５」が存在するので（実線の枠内の文字）、その前後に隣接する文字が巡回的に検出される（破線の枠内の文字）。一方、３つ目のブロック（ｇ１）には、「２」、「３」、「５」が存在しないので、仮に、「２」、「３」、「５」の前後に隣接する文字を巡回的に検出するものとした場合、当該３つ目のブロック（ｇ１）の文字（数字）が欠落する。
【００５５】
そこで、前後文字認識部１０５は、ある文字認識範囲において文字が検出されなかった場合、１文字分飛ばして文字認識範囲を設定し、その文字認識範囲について文字認識を実行する。たとえば、図１２に示されるように、「９」（ｈ１）を着目文字として、その１つ後ろに存在するかもしれない文字を検出するための文字認識範囲を設定したとする。この「９」（ｈ１）は、図１１に示される２つ目のブロック「２３８９」の最後の文字（数字）である。この文字認識範囲は空白（ｈ２）の領域に対応するので、文字（数字）は検出されないこととなる。この時、前後文字認識部１０５は、さらに、その文字認識範囲の１つ後ろに文字認識範囲を設定し、当該設定した文字認識範囲を対象として文字認識を実行する。そうすると、この空白（ｈ２）に後続する「１」（ｈ３）が検出されることになる。この「１」（ｈ３）は、図１１に示される、「２」、「３」、「５」が存在しない３つ目のブロック「１８４９」（ｇ１）の最初の文字（数字）である。「１」（ｈ３）を検出すると、前後文字認識部１０５は、着目文字を後ろに移動させながら文字認識を実行することによって、その他の「８」、「４」、「９」も検出することとなる。
【００５６】
このように、２文字分の領域において文字が存在しない場合に前方または後方への文字認識範囲の設定および文字認識を終了することによって、前後文字認識部１０５は、「１８４９」（ｇ１）のような「２」、「３」、「５」が存在しないブロックの文字（数字）を欠落させることがない。
【００５７】
なお、前後文字認識部１０５は、特定文字認識部１０４によって、クレジット番号中の「２」、「３」、「５」が複数検出された場合、それらすべてについて処理を行ってもよいし、その中の１つについてのみ処理を行ってもよい。それらすべてについて処理を行う場合には、同一の箇所の文字について複数回処理が施され得るが、その文字についての情報が既に得られていたならば、処理結果を破棄するようにしてもよい。また、たとえば着目文字を前後に移動させた場合において、その着目文字に隣接する領域が、特定文字認識部１０４によって（起点の「２」、「３」、「５」とは別の）「２」、「３」、「５」が検出された領域であった場合、その方向についての処理を終了するようにしてもよい。または、着目文字に隣接する領域に設定した文字認識範囲から「２」、「３」、「５」が検出された場合に、その方向についての処理を終了するようにしてもよい。
【００５８】
この前後文字認識部１０５までの処理が終了すると、クレジットカードが取り決め通りに撮像されていたならば、たとえば図１３に示されるように、１５桁または１６桁の文字（数字）である当該クレジットカードのカード番号（ｊ１）が検出されることになる。１５桁または１６桁の文字（数字）が検出されない場合、カード番号認識装置１は、たとえば、ユーザにエラーを通知し、カード番号が表記された面を撮像したカードの画像を再度撮像することを促す。取り決め通りの撮像とは、前述したように、解像度を所定の値に設定したり、撮像時の焦点距離がほぼ所定値となるようにカードの撮像領域の画像上に占める割合を所定の範囲に収まるようにしたり、画像の長手方向とカードの撮像領域の長手方向とをほぼ一致させるようにしたりすることである。
【００５９】
また、クレジットカード番号には、チェックディジットが含まれているので、検出したカード番号の各文字（数字）を用いて所定の計算を行うことにより、カード番号を正しく検出できているか否かを調べることができる。チェックディジットによるチェックでカード番号が正しく検出できていないことが判明した場合も、カード番号認識装置１は、１５桁または１６桁の文字（数字）が検出されない場合と同様、たとえば、ユーザにエラーを通知し、カード番号が表示された面を撮像したカードの画像を再度撮像することを促す。
【００６０】
クレジットカード上には、たとえば有効期限などとして「２」、「３」、「５」が表記され得る。しかしながら、これらが１５桁または１６桁であることはないので、カード番号認識装置１は、これらをカード番号と区別することができる。また、有効期限は、一般にクレジットカード番号とは異なるフォントで印刷され、「２」、「３」、「５」に３本の横線がないことにより、特定文字認識部１０４で区別できる場合が多い。
【００６１】
図１４は、特定線分群検出部１０３の処理手順を示すフローチャートである。
まず、特定線分群検出部１０３は、画像取得部１０１によって取得された画像中の縦方向に連続する５０画素のすべての組み合わせについて、ステップＡ１〜ステップＡ４の処理を実行する。特定線分群検出部１０３は、着目する５０画素を範囲とする２値化を２値化部１０２に実行させる（ステップＡ１〜ステップＡ２）。２値化部１０２は、指定された５０画素の画素値の平均値を計算して閾値Ｔとし（ステップＡ１）、この閾値Ｔより上の画素値は白、閾値Ｔ以下の画素値は黒とする（ステップＡ２）。
【００６２】
この２値化の結果を受けて、特定線分群検出部１０３は、着目する５０画素の範囲に黒白黒白黒がａ：ｂ：ａ：ｂ：ａの比率で出現する領域があるか否かを調べる（ステップＡ３）。該当する領域が存在した場合（ステップＡ３：Ｙｅｓ）、特定線分群検出部１０３は、その該当する領域を、「２」、「３」、「５」の横線３本の一部の候補として記録する（ステップＡ４）。該当する領域が存在しない場合には（ステップＡ３：Ｎｏ）、特定線分群検出部１０３は、特に何も行わない。
【００６３】
ステップＡ１〜ステップＡ４の処理が全通り終了すると、特定線分群検出部１０３は、記録した全領域の中から横方向に２０〜４０画素連続する領域群を検出する（ステップＡ５）。換言すれば、特定線分群検出部１０３は、横方向に２０〜４０画素連続していない領域を削除する。特定線分群検出部１０３は、検出した領域群全体を３線矩形領域として抽出して記録する（ステップＡ６）。また、特定線分群検出部１０３は、当該検出した領域群の２値化に用いられた閾値Ｔの平均値を計算し、抽出した３線矩形領域の閾値ＴＭとして記録する（ステップＡ７）。
【００６４】
図１５は、特定文字認識部１０４の処理手順を示すフローチャートである。
特定文字認識部１０４は、特定線分群検出部１０３によって抽出されたすべての３線矩形領域について、ステップＢ１〜ステップＢ１０の処理を実行する。特定文字認識部１０４は、まず、３線矩形領域の左辺の左の縦１画素のラインに着目し（ステップＢ１）、そのラインの領域を閾値ＴＭで２値化して、黒画素が１画素でもあれば、３線矩形領域を左辺側へ１画素分拡大する（ステップＢ２）。特定文字認識部１０４は、左辺がすべて白画素になるまで３線矩形領域の左辺側への拡大を続ける（ステップＢ３）。換言すれば、特定文字認識部１０４は、左辺がすべて白画素になったら、３線矩形領域の左辺側への拡大を終了する。
【００６５】
続いて、特定文字認識部１０４は、３線矩形領域の右辺の右の縦１画素のラインに着目し（ステップＢ４）、そのラインの領域を閾値ＴＭで２値化して、黒画素が１画素でもあれば、３線矩形領域を右辺側へ１画素分拡大する（ステップＢ５）。特定文字認識部１０４は、右辺がすべて白画素になるまで３線矩形領域の右辺側への拡大を続ける（ステップＢ６）。換言すれば、特定文字認識部１０４は、右辺がすべて白画素になったら、３線矩形領域の右辺側への拡大を終了する。
【００６６】
３線矩形領域の左右への拡大が終了すると、特定文字認識部１０４は、拡大後の３線矩形領域である矩形範囲を文字認識する（ステップＢ７）。「２」、「３」、「５」のいずれかが認識された場合（ステップＢ８：Ｙｅｓ）、特定文字認識部１０４は、その矩形範囲と認識結果とを記録する（ステップＢ９）。一方、「２」、「３」、「５」のいずれも認識されなかった場合（ステップＢ８：Ｎｏ）、特定文字認識部１０４は、その認識結果を破棄する（ステップＢ１０）。
【００６７】
図１６は、前後文字認識部１０５の処理手順を示すフローチャートである。なお、前方への処理と後方への処理とは概念的には同じであるので、図１６には、前方への処理についてのみ示すこととし、後方への処理についての説明を省略する。
前後文字認識部１０５は、特定文字認識部１０４によって記録されたすべての矩形範囲について、ステップＣ１〜ステップＣ６の処理を実行する。前後文字認識部１０５は、たとえばクレジットカードの場合は３．６３ｍｍと定められている１文字前に相当する位置に矩形範囲を設定し、文字認識する（ステップＣ１）。前後文字認識部１０５は、認識結果が空白か否かを調べ（ステップＣ２）、空白ではない場合（ステップＣ２：Ｎｏ）、続いて、その矩形範囲が未記録で、かつ、認識結果が０〜９（数字）か否かを調べる（ステップＣ３）。未記録かつ数字であった場合（ステップＣ３：Ｙｅｓ）、前後文字認識部１０５は、その矩形範囲と認識結果とを記録する（ステップＣ４）。そして、前後文字認識部１０５は、さらに１文字前に相当する位置に矩形範囲を設定して文字認識し（ステップＣ５）、ステップＣ２からの処理を繰り返す。一方、その矩形範囲が記録済みまたは０〜９（数字）以外であった場合（ステップＣ３：Ｎｏ）、前後文字認識部１０５は、認識結果を破棄し（ステップＣ６）。起点とする矩形範囲についての処理を終了する。
【００６８】
認識結果が空白であった場合（ステップＣ２：Ｙｅｓ）、前後文字認識部１０５は、さらに１文字前に相当する位置に矩形範囲を設定して文字認識する（ステップＣ８）。その認識結果も空白の場合（ステップＣ８：Ｙｅｓ）、前後文字認識部１０５は、起点とする矩形範囲についての処理を終了する。空白でない場合（ステップＣ８：Ｎｏ）、前後文字認識部１０５は、ステップＣ３へ進み、ステップＣ３からの処理を実行する。
【００６９】
このように、本実施形態のカード番号認識装置１は、特定線分群検出部１０３によって画像を縦方向に走査してカード番号中の「２」、「３」、「５」の横線３本を検出し、特定文字認識部１０４によって横線３本からカード番号中の「２」、「３」、「５」を検出し、前後文字認識部１０５によって「２」、「３」、「５」からカード番号中の「２」、「３」、「５」以外の文字（数字）を検出する。また、特定線分群検出部１０３による画像の縦方向への走査にあたっては、２値化部１０２による２値化をほぼ１文字分の縦幅に相当する画素数ずつ局所的に行っていくので、たとえばクレジットカードに多数の色が用いられていたり、下地に模様が入っていたりしても、適切な結果を得ることができる。
【００７０】
前述したように、クレジットカード上におけるカード番号の表記領域は厳密には定められていないし、画像上におけるクレジットカードの撮像領域は不定なので、画像上におけるクレジットカード番号の撮像領域も当然ながら不定である。本実施形態のカード番号認識装置１は、このような条件下においても、クレジットカードのフォントでは、「２」、「３」、「５」の文字（数字）について、横線３本が等間隔で現れる独特な字体が定義されている点に着目した特定線分群検出部１０３、特定文字認識部１０４および前後文字認識部１０５の働きにより、カード番号を適切に検出することができる。
【００７１】
ところで、前述したように、スマートフォンは、傾きを取得するための加速度センサなどを有していてもよい。たとえば、加速度センサを有するスマートフォンの中には、傾きに応じて、タッチスクリーンディスプレイ１５へ表示させる画面の向きを自動的に切り替える機能を備えるものも存在する。このような機能を備えるスマートフォンの場合、たとえばテーブルの上などにクレジットカードを置いて撮影を行う際、ユーザが意図しない上下が反転した画像が撮像されてしまう可能性もある。
【００７２】
このような場合を考慮して、本実施形態のカード番号認識装置１は、特定文字認識部１０４および前後文字認識部１０５が、さらに文字認識範囲の画像を上下反転させて文字認識を実行するようにしてもよい。たとえば、想定する向きの処理で１５桁または１６桁の文字（数字）が検出されない場合に、上下反転させた向きの処理を実行するようにしてもよい。そうすれば、ユーザが意図しない上下が反転した画像が撮像されてしまった場合であっても、カード番号を検出することができるので、カードの画像を再度撮像することをユーザに促す必要がなくなる。
【００７３】
このように、本実施形態のカード番号認識装置１は、カード番号の背景に模様が入っているカードであっても、カード番号を容易かつ高精度かつ高速に認識することができる。
（第２実施形態）
次に、第２実施形態について説明する。本実施形態でも、第１実施形態と同様、カメラ１２を備えるスマートフォンとして実現されるカード番号認識装置１−２を想定する。第１実施形態と同一の構成要素については同一の符号を使用し、また、第１実施形態との間で重複する説明については省略する。
【００７４】
図１７は、本実施形態のカード番号認識装置１−２上で動作するカード番号認識プログラム１００−２の機能ブロック例を示す図である。
図１７に示されるように、本実施形態のカード番号認識プログラム１００−２は、第１実施形態における２値化部１０２に代えて、エッジ検出部１０６を備える。エッジ検出部１０６は、画像取得部１０１によって取得された画像中の画素値が急激に変化している画素（エッジ）を検出するモジュールである。つまり、第１実施形態のカード番号認識装置１が、２値化によってカード番号を検出するのに対して、本実施形態のカード番号認識装置１−２は、エッジの検出によってカード番号を検出する。
【００７５】
本実施形態における特定線分群検出部１０３−２は、エッジ検出部１０６によって検出された画像中のエッジの中から、ａ：ｂ：ａ：ｂ：ａの比率の間隔で出現する、たとえば横方向に２０〜４０画素以上連続するエッジを検出する。図１８に、特定線分群検出部１０３−２による横線３本に対応するエッジの検出例を示す。
【００７６】
図１８中、（Ａ）は、画像取得部１０１によって取得された画像（原画像）の一部を示している。ここでは、クレジットカードの背景に、エッジとして検出され得る模様が入っていることを想定する。また、ここに示される「１２３」は、クレジットカード番号中の文字（数字）である。
【００７７】
（Ｂ）は、エッジ検出部１０６によって検出されたエッジがマッピングされたエッジマップの一部を示している。ここに示されるエッジは、（Ａ）の部分画像から検出されたエッジである。特定線分群検出部１０３−２は、（Ｃ）に示されるように、このエッジマップの中から、「２」、「３」の横線３本に対応するエッジ（ｋ１〜ｋ６：斜めのハッチングが施された箇所）を検出する。
【００７８】
図１７に戻り、カード番号認識プログラム１００−２の各処理部についての説明を続ける。
特定線分群検出部１０３−２によって「２」、「３」、「５」の横線３本に対応するエッジの可能性があるエッジが検出されると、本実施形態における特定文字認識部１０４−２は、その横線３本に対応するエッジと一致させて、「２」、「３」、「５」の標準パターンを重ね合わせる。特定文字認識部１０４−２は、いずれかの標準パターンと一致するエッジの存在有無を調べることで、「２」、「３」、「５」を検出する。図１９に、特定文字認識部１０４−２によるカード番号中の「２」の検出例を示す。図１９に示されるように、特定線分群検出部１０３−２によって検出されたエッジｋ１〜ｋ６と一致させて、「２」の標準パターンｍ１を重ね合わせたところ、この標準パターンｍ１と一致するエッジが存在することがわかると、特定文字認識部１０４−２は、この領域から「２」を検出する。
【００７９】
前後文字認識部１０５−２は、特定文字認識部１０４−２によって検出された「２」、「３」、「５」の位置を起点として、第１実施形態の前後文字認識部１０５と同様の方法で、前後に存在するかもしれない文字を検出するための文字認識範囲を設定する。文字認識範囲を設定したら、前後文字認識部１０５−２は、「０〜９」の標準パターンと一致するエッジの存在有無を調べることで、「２」、「３」、「５」以外の文字（数字）を検出する。
【００８０】
本実施形態のカード番号認識装置１−２は、カード番号の背景にエッジとして検出され得る模様が入っていたとしても、「２」、「３」、「５」の横線である可能性がある横線３本に対応するエッジを検出して、「２」、「３」、「５」を検出し、さらに、「２」、「３」、「５」を起点に、「２」、「３」、「５」以外の文字（数字）を検出するという手順を踏むことで、カード番号を検出することができる。
【００８１】
なお、本実施形態のカード番号認識装置１−２においても、第１実施形態のカード番号認識装置１と同様、特定文字認識部１０４−２および前後文字認識部１０５−２が、さらに文字認識範囲の画像を上下反転させて文字認識を実行するようにしてもよい。
また、本実施形態のカード番号認識装置１−２は、エッジの検出によってカード番号を検出するので、２値化によってカード番号を検出する第１実施形態のカード番号認識装置１よりも、エンボス加工された文字（数字）を認識する性能で優れている。
【００８２】
このように、本実施形態のカード番号認識装置１−２も、カード番号の背景に模様が入っているカードであっても、カード番号を容易かつ高精度かつ高速に認識することができる。
ところで、第１実施形態のカード番号認識装置１および第２実施形態のカード番号認識装置１−２は、画像取得部１０１によって取得された画像中のクレジットカード番号が撮像されている領域を検出することができる。そのため、クレジットカードのカードレイアウトを示す帳票定義を用いれば、クレジットカード上に表記されるカード番号以外の情報も検出することができる。そこで、第１実施形態のカード番号認識装置１（カード番号認識プログラム１００）または第２実施形態のカード番号認識装置１−２（カード番号認識プログラム１００−２）は、クレジットカード上に表記されるカード番号以外の情報を検出するためのモジュールをさらに有してもよい。図２０に、クレジットカードのカードレイアウト（Ａ）と、そのカードレイアウトを示す帳票定義（Ｂ）の一例を示す。
【００８３】
帳票定義によって、クレジットカード上における、クレジットカード番号（ｎ１）と口座番号（ｎ２）および氏名（ｎ３）との相対的な位置関係が分かれば、クレジットカード番号の検出後、口座番号および氏名も検出することができる。
たとえば、クレジット番号中の所定の位置の３〜４桁の文字（数字）で複数のカードレイアウトの中から適用すべきカードレイアウトを特定することができる場合、複数の帳票定義を用意することで、複数の種類のクレジットカードに対応することができる。
【００８４】
また、帳票定義を用いることで、画像中におけるクレジットカード全体の撮像領域の位置を検出することができる。したがって、クレジットカードのみが撮像された画像を切り出すことも可能となる。そこで、第１実施形態のカード番号認識装置１（カード番号認識プログラム１００）または第２実施形態のカード番号認識装置１−２（カード番号認識プログラム１００−２）は、クレジットカードのみが撮像された画像を切り出すためのモジュールをさらに有してもよい。
【００８５】
クレジットカードの読み取りを行うアプリの中には、撮像したクレジットカードの画像を訂正画面に表示したり、エビデンスとして表示したりするものがあるが、このようなアプリによるクレジットカードの画像の表示時、クレジットカードと一緒に写り込んだ背景などの余分な部分を除いたクレジットカードだけの画像を表示することができる。
【００８６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８７】
１，１−２…カード番号認識装置、１１…コントローラ、１２…カメラ、１３…揮発性メモリ、１４…不揮発性メモリ、１５…タッチスクリーンディスプレイ、１６…通信デバイス、１７…ＵＳＢコネクタ、１８…スピーカ、１９…マイクロフォン、１００，１００−２…カード番号認識プログラム、１０１…画像取得部、１０２…２値化部、１０３，１０３−２…特定線分群検出部、１０４，１０４−２…特定文字認識部、１０５，１０５−２…前後文字認識部、１０６…エッジ検出部。
【図１】
2019220069.tif 000003
【図２】
2019220069.tif 000004
【図３】
2019220069.tif 000005
【図４】
2019220069.tif 000006
【図５】
2019220069.tif 000007
【図６】
2019220069.tif 000008
【図７】
2019220069.tif 000009
【図８】
2019220069.tif 000010
【図９】
2019220069.tif 000011
【図１０】
2019220069.tif 000012
【図１１】
2019220069.tif 000013
【図１２】
2019220069.tif 000014
【図１３】
2019220069.tif 000015
【図１４】
2019220069.tif 000016
【図１５】
2019220069.tif 000017
【図１６】
2019220069.tif 000018
【図１７】
2019220069.tif 000019
【図１８】
2019220069.tif 000020
【図１９】
2019220069.tif 000021
【図２０】
2019220069.tif 000022