(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【0018】
(実施の形態)
図1〜
図21を用いて、本発明の実施の形態の画像処理装置について説明する。
【0019】
[画像処理装置(1)]
図1は、実施の形態の画像処理装置を含む、システムの構成を示す。実施の形態の画像処理装置は、OCR装置1として構成されている。このシステムは、OCR装置1、カメラ2を有する。ユーザは、OCR装置1、カメラ2を使用する。ユーザは、健康保険証等の本人確認証のカード3を所持している。なお、OCR装置1及びカメラ2の2つの装置を使用するユーザは、同一ユーザでも別ユーザでもよい。例えば、住民が自分のカード3をカメラ2で撮像し、行政機関の職員がその撮像画像データをOCR装置1に入力してもよい。
【0020】
OCR装置1は、スキャナ機能やOCR機能を備える専用の装置であり、更に特有の画像処理機能を備える画像処理装置である。スキャナ機能やOCR機能については、公知技術が適用可能であり、説明を省略する。
【0021】
ユーザは、カード3の表面をカメラ2によって撮像する。カメラ2は、デジタルカメラでもよいし、タブレット端末やスマートフォン等に備えるカメラ機能を用いてもよい。カメラ2は、カード3の撮像画像データを取得し、記憶し、出力が可能である。ユーザは、カメラ2によって得たカード3の画像データ4Aを、OCR装置1に入力する。OCR装置1は、その画像データ4Aを、任意手段によって入力する。例えば、OCR装置1は、カメラ2と通信接続され、カメラ2から通信で画像データ4Aを入力してもよい。あるいは、OCR装置1は、通信網を介してPC等と接続され、カメラ2の画像データ4Aが格納されたそのPC等からその画像データ4Aを入力してもよい。あるいは、OCR装置1は、カメラ2の画像データ4Aが格納されたメモリカードが接続され、そのメモリカードから画像データ4Aを読み出して入力してもよい。
【0022】
OCR装置1は、入力された画像データ4A(記憶装置102の画像データ122)に対して、補正処理を含む画像処理を行う。この補正処理は、拡大/縮小、位置シフト、回転等の公知の処理の他に、特有の歪み補正処理を含む。この歪み補正処理は、画像内のカード領域の台形状の歪みを、直角四角形の俯瞰画像になるように変換する処理である。これにより、補正後画像データとして、OCR処理や人の視認に適した画像データが得られる。OCR装置1は、補正後画像データに対してOCR処理を行い、その結果の文字データ123を得る。
【0023】
OCR装置1は、演算装置101、記憶装置102、スキャナ装置103、通信インタフェース装置104、入出力インタフェース装置105、入力装置106、表示装置107、外部記憶装置108等を有し、それらがバスを介して接続されている。
【0024】
演算装置101は、CPU、RAM、ROM等を含み、CPU等によるソフトウェアプログラム処理に基づいて、画像処理機能を実現する。詳しくは、CPUは、記憶装置102内の画像処理プログラム121をメモリに読み出して、画像処理プログラム121に従って処理を実行する。これにより、画像処理機能を構成する画像読み取り部11等の各部が実現される。演算装置101の画像処理機能は、各部として、画像読み取り部11、画像データ入力部12、画像補正部13、光学文字認識部14、文字データ出力部15、画像データ出力部16、設定部17等を含む。
【0025】
記憶装置102には、画像処理プログラム121、画像データ122、文字データ123、設定情報124等が記憶されている。画像処理プログラム121は、予めOCR装置1内に格納、実装されていてもよいし、通信網上のサーバ等からダウンロードされてインストールされてもよい。画像データ122は、カメラ2によりカード3の表面が撮像された画像データ4Aの入力に基づいた画像データであり、補正前後の各画像データを含む。文字データ123は、画像データ122に基づいてOCR処理によって抽出された文字情報を含むデータである。設定情報124は、画像処理機能に係わる設定情報である。
【0026】
画像読み取り部11は、スキャナ装置103を制御して、用紙から画像を読み取る。スキャナ装置103は、公知の機構を有する。実施の形態では、用紙からの画像ではなく、カメラ3の画像データ4Aを用いる。
【0027】
画像処理装置としては、上記専用のOCR装置1に限らずに可能である。変形例として、PCとOCRソフトウェアで構成される形態でもよい。そのOCRソフトウェアは、前述のOCR機能及び画像処理機能を備える画像処理プログラムに相当する。PCは、CPU等によって、ストレージ等に格納されている画像処理プログラムを読み出して実行し、
図1の画像補正部13等を同様に実現する。
【0028】
[画像処理装置(2)]
実施の形態の画像処理装置は、カード3の画像データにおいて、背景領域とカード領域との間に色の差があることに着目する。画像処理装置は、背景領域とカード領域との境界線(四角形の4つの辺)を探索、推定することで、画像内のカード領域の位置を検出する。画像処理装置は、画像の枠の端点と中心点とを結ぶ探索線上で、色の差の境界点である色境界点を探索する。画像処理装置は、探索で得た複数の色境界点を集めてグループ化する。画像処理装置は、グループ毎に、カード領域の辺に対応付けられる近似直線を引く。画像処理装置は、4つの近似直線を用いて、カード領域の4つの角点を検出する。画像処理装置は、検出したカード領域の4つの角点に基づいて、公知の射影変換を行うことで、カード領域の台形状の歪みが直角四角形になるように変換する。これにより、高精度の俯瞰画像、即ちカード表面に対して垂直方向から撮像したような画像が得られる。
【0029】
画像処理装置は、その直角四角形を含む補正後画像から、必要に応じて、拡大/縮小、位置シフト、回転、切り出し等の公知の処理を行って、正立した状態のカード領域を含む、最終的な俯瞰画像を得る。例えば、画像処理装置は、補正後画像が、そのカードの規定の縦横比を持つ画像になるように、拡大/縮小を行う。最終的な俯瞰画像では、カード領域が、所定の好適なサイズ、比率、位置、向き等を持つ直角四角形として得られる。
【0030】
実施の形態の画像処理装置は、カード撮像画像における矩形枠の中心点と、枠線上の複数の各々の端点とを結ぶ、放射状に拡がる線を、探索線(放射線)として設定する。画像処理装置は、その探索線上で、背景領域の色とカード領域の色との境界点である色境界点を探索する。画像処理装置は、探索で得られた複数の色境界点について、色境界点同士のベクトルを計算する。画像処理装置は、そのベクトルの向きを表す角度の類似性に基づいて、複数の色境界点を、4つのグループに分ける。グループは、カード領域の辺に対応付けられる。画像処理装置は、グループ毎の色境界点を用いて近似直線を引くことで、カード領域の4つの辺を検出する。画像処理装置は、4つの辺における4つの交点として、カード領域の4つの角点を検出する。画像処理装置は、4つの角点に基づいて、台形状の歪みが直角四角形になるように射影変換を行う。
【0031】
実施の形態の画像処理装置は、健康保険証等のカード3のカメラ2による撮像画像データに関する画像処理によって、カード領域の検出精度を向上でき、正確な俯瞰画像を得ることができる。特に、カメラ2によるカード3の撮影時の方向や照明状態等が適切ではなく、台形状の歪みがある画像の場合でも、カード領域の検出精度、及び歪み補正の精度を高くできる。また、特に、レイアウトにおける特徴情報が少ない種類のカード3で、台形状の歪みがある画像の場合でも、カード領域の検出精度、及び歪み補正の精度を高くできる。
【0032】
[本人確認証カード]
図2は、対象のカード3の表面のレイアウトの構成例として、健康保険証の場合を示す。なお、
図2では、レイアウトをモノクロで簡略化して示しているが、実際のカードでは、所定のカラーのデザインを有する。このカード3では、文字項目が多く、罫線、マーク、写真等の特徴情報が少ない。カード3は、表面において直角四角形であり、規定のサイズを有し、縦の長さV0、横の長さH0、厚さを有し、4つの角点はアール加工で丸くなっている。
【0033】
[画像処理装置(3)]
図3は、実施の形態の画像処理装置を含むシステムにおける利用概要を示す。
図3の(A)は、ユーザがカメラ2によってカード3を撮像する例を示す。カードとして、例えば運転免許証の場合、カード面内に、罫線等の特徴情報が多い。カード3として、例えば
図2のように健康保険証の場合、カード3の表面内に、罫線等の特徴情報が少ない。実施の形態では、このような特徴情報が少ない種類のカード3の場合にも、有効な画像補正を実現する。
【0034】
図3の(B)は、画像データ入力の例を示す。入力の画像データ4Aは、背景領域の上にカード領域を有する。この例では、カード領域に、台形状の歪みがある。これは、撮像時の撮像方向のズレによって生じている。また、この例では、背景領域とカード領域との間で、明るさの差、即ち色の差が小さく、カード領域の4つの辺の境界線が不鮮明になっている。
【0035】
図3の(C)は、画像補正により得られた補正後画像データの例を示す。この補正後画像データでは、カード領域が、正確な俯瞰画像として取得されている。正確な俯瞰画像とは、カード領域が直角四角形となっている画像である。この俯瞰画像では、カード面内の記載文字情報を人が視認することがしやすくなっている。また、この俯瞰画像では、OCR処理によってカード面内の記載文字情報を認識しやすくなっている。なお、補正後画像データとしては、背景領域を切り落としてカード領域のみを切り出した画像としてもよい。補整後画像データ及びOCRによる文字情報は、所定の用途に利用できる。例えば、行政機関等において提出する書類に利用できる。
【0036】
[画像処理装置(4)]
図4は、実施の形態の画像処理装置であるOCR装置1における画像処理機能の各部の処理の概要を示す。画像データ入力部12は、ユーザ操作に基づいて、画像処理の対象となる画像データ4Aを入力する。例えば、画像データ入力部12は、カメラ2の画像データ4Aを、通信インタフェース装置104や入出力インタフェース装置105を通じて入力し、記憶装置102に画像データ122、特に補正前画像データ4Bとして格納する。画像データ入力部12は、記憶装置102の画像データ122から必要に応じて補正前画像データ4Bを読み出し、画像補正部13に入力する。
【0037】
画像補正部13は、入力画像データである補正前画像データ4Bに対し、所定の補正処理を含む画像処理を行う。画像補正部13は、設定部17による設定情報124に基づいて、画像処理を行う。画像補正部13は、補正後画像データ4Cを出力し、記憶装置102内に格納する。
【0038】
光学文字認識部(OCR部)14は、入力画像データである補正後画像データ4Cに対し、公知の光学文字認識処理(OCR処理)を行い、その結果である文字データ123を得る。光学文字認識部14は、文字データ123を出力し、記憶装置102内に格納する。
【0039】
文字データ出力部15は、ユーザ操作に基づいて、文字データ123をユーザや外部装置に対して出力する。例えば、文字データ出力部15は、表示装置107の画面に文字データ123の内容を表示する。例えば、文字データ出力部15は、文字データ123を、通信インタフェース装置104を通じて、外部装置に送信する。
【0040】
画像データ出力部16は、ユーザ操作に基づいて、補正後画像データ4Cをユーザや外部装置に対して出力する。例えば、画像データ出力部16は、表示装置107の画面に補正後画像データ4Cの内容を表示する。例えば、画像データ出力部16は、補正後画像データ4Cを、通信インタフェース装置104を通じて、外部装置に送信する。
【0041】
設定部17は、ユーザに対して設定画面を提供し、ユーザ操作に基づいて、画像処理機能に係わるユーザ設定を行う。設定部17は、設定情報124を記憶装置102に保存する。
【0042】
[画像処理フロー]
図5は、OCR装置1における画像処理のフローを示す。本フローは、画像補正処理後にOCR処理を行って文字データを出力する場合の流れを示す。
図5は、ステップS1〜S5を有する。ステップS2は、ステップS2A〜S2Cを含む。ステップS2Aは、ステップS21〜S27を含む。以下、ステップの順に説明する。
【0043】
(S1)
図4のように、OCR装置1の画像データ入力部12は、カメラ2からの画像データ4Aを補正前画像データ4Bとして入力する。
【0044】
(S2) OCR装置1の画像補正部13は、入力の補正前画像データ4Bに対して、画像補正処理を行い、補正後画像データ4Cを得る。S2の画像補正処理は、特有の歪み補正処理を行うステップS2A、拡大/縮小等の処理を行うステップS2B、位置シフト、回転、切り出し等の処理を行うステップS2Cを含む。S2BやS2Cは、公知の処理である。
【0045】
(S2A) 画像補正部13は、S2Aで、特有の歪み補正処理を行う。この歪み補正処理は、カード領域及び位置を検出し、カード領域の台形状の歪みを直角四角形になるように補正する処理である。
【0046】
(S21) 画像補正部13は、S2Aの歪み補正処理の際、まず、S21で、補正前画像データ4Bの画像における複数の端点を計算する。画像補正部13は、画像の中心点と複数の各々の端点とを結ぶ各々の線を、探索線(放射線)として設定する。詳しくは、後述の
図9等で示す。
【0047】
(S22) 画像補正部13は、S21の探索線に基づいて、複数の各々の探索線上で、背景領域とカード領域との色の差の境界点である色境界点を探索する。画像補正部13は、ある探索線から順に、同様にその処理を繰り返す。これにより、複数の色境界点が得られる。詳しくは、後述の
図11等で示す。
【0048】
(S23) 画像補正部13は、S22の色境界点に基づいて、色境界点同士のベクトルを計算する。詳しくは、後述の
図12等で示す。
【0049】
(S24) 画像補正部13は、S23のベクトルに基づいて、色境界点をグループ化する。グループは、カード領域の四角形の辺に対応付けられる。詳しくは、後述の
図13等で示す。
【0050】
(S25) 画像補正部13は、S24のグループに基づいて、近似直線を計算する。近似直線は、カード領域の四角形の辺に対応付けられる。詳しくは、後述の
図14等で示す。
【0051】
(S26) 画像補正部13は、S25の近似直線に基づいて、交点を計算することで、カード領域の四角形の4つの角点を計算する。詳しくは、後述の
図14等で示す。
【0052】
(S27) 画像補正部13は、S26の4つの角点に基づいて、公知の射影変換処理により、カード領域の四角形の台形状の歪みが直角四角形になるように補正する。詳しくは、後述の
図15で示す。
【0053】
(S2B) 画像補正部13は、S2Aで得た射影変換後の画像及び4つの角点に基づいて、S2Bで、カード領域の四角形が、規定の縦横比を持ち好適なサイズの四角形となるように、画像の拡大/縮小処理等を行う。
【0054】
(S2C) 画像補正部13は、S2Bで得た画像に基づいて、S2Cで、画像内のカード領域の四角形の位置が好適な位置となるように位置シフト処理を行う。また、画像補正部13は、画像内のカード領域の向きが好適な向きとなるように、面内での回転処理を行う。また、画像補正部13は、画像内からカード領域のみを切り出す場合には、そのカード領域を切り出す処理を行う。なお、S2B,S2Cの処理は、適宜省略可能である。
【0055】
(S3) OCR部14は、S2で得られた補正後画像データ4Cに基づいて、まず、OCRのための読み取り位置及び領域を検出する。この読み取り位置及び領域は、例えばユーザ設定によって設定される。例えば、入力画像の原点を、矩形の左上の点とする。所定の位置座標の点(x1,y1)が読み取り開始位置(読み取り領域の左上の点)として設定される。所定の位置座標の点(x2,y2)が読み取り終了位置(読み取り領域の右下の点)として設定される。
【0056】
(S4) OCR部14は、補正後画像データ4Cの読み取り領域に対し、OCR処理を行って文字を抽出し、結果である文字データ123を得る。
【0057】
(S5) OCR部14は、S4で得た文字データ123に基づいて、OCRの後処理を行う。文字データ出力部15は、結果である文字情報を表示装置107の画面に表示する。ユーザは、画面に表示された文字情報を確認、チェックし、問題がある場合には修正する。
【0058】
[入力画像例(1)]
図6は、S21に係わる、入力の画像データ4A(補正前画像データ4B)に対応する画像5の例を示す。画像5は、矩形を有し、左上の点を、位置座標の原点(0,0)とする。画像5内の画素の位置座標を(x,y)で表す。X方向は面内水平方向(横方向)、Y方向は面内垂直方向(縦方向)である。画像の横の長さX1、縦の長さY1とする。右上の角点の位置座標が(X1,0)、左下の角点が(0,Y1)、右下の角点が(X1,Y1)である。画像5の中心点を点G0とし、位置座標が(X1/2,Y1/2)である。また、説明上、画像5内でのカード領域7の中心点を点C0とする。画像5内には、背景領域6とカード領域7とがある。画像5は、説明のためモノクロで簡略化して示しているが、実際にはフルカラーであり、撮像時の照明等の状況に応じて、グラデーションやムラも有する。
【0059】
図6の例では、画像5は、撮像方向として、カード表面に対する垂直方向に対し、ある程度の傾き角度があることで、カード領域7が台形状に歪んでいる場合を示す。また、本例では、カード領域7の縦横比は、規定の縦横比とは異なっており、X方向がやや拡大されている場合を示す。また、本例では、画像5内のカード領域7の配置の位置が、画像5の中心点G0に対して少しずれて配置されている場合を示す。
【0060】
[入力画像例(2)]
図7は、他の画像5の例を示す。本例では、画像5内で、背景領域6とカード領域7との境界線、即ちカード3の表面の縁である4つの辺が、不鮮明になっている部分が多い場合を示す。例えば、カード領域7の上辺や下辺は、殆ど映っていない。このような画像の場合、従来技術では、カード領域7の正確な検出が難しい。
【0061】
[入力画像例(3)]
図8は、他の画像5の例を示す。本例では、画像5内で、カード領域7の台形状の歪みは小さいが、カード領域7が左上寄りの位置で、面内で斜めに回転した状態で配置されており、画像5のサイズに対してカード領域7のサイズが比較的小さい。このような画像5の場合、補正処理として、拡大、位置シフト、回転等の処理を行う必要がある。
【0062】
[画像処理(1)−S21]
図9は、S21の画像端点計算処理に係わる画像5の状態として、端点及び探索線を設定した状態を示す。画像補正部13は、画像5の矩形枠の4つの枠線上に、所定の端点(画像端点ともいう)を設定する。端点をpiで表し、小さい四角で示す。本例では、座標系において、画像5の右辺中間点を端点p1(位置座標としては(X1,Y1/2))とし、その点から上に4つの辺上を反時計周りに進んで、各々の端点を設定してゆく。画像補正部13は、各端点の位置座標を計算する。本例では、合計32個の端点p1〜p32が設定される場合を示すが、これに限らず可能である。例えば、原点(0,0)の付近に第1の端点p1が設定されてもよい。
【0063】
画像5の右辺では、右上の角点(端点p5)と右下の角点(端点p29)との間で、角点を含め、9個の端点{p1〜p5,p29〜p32}が等間隔(縦の長さY1の8分の1)で設定されている。上辺では、右上の角点(端点p5)と左上の角点(端点p13)との間で、角点を含め、9個の端点{p5〜p13}が等間隔(横の長さX1の8分の1)で設定されている。右辺の等間隔と上辺の等間隔とが異なる場合を示すが、これに限らず設定可能である。同様に、左辺に9個の端点{p13〜p21}が設定されており、下辺に9個の端点{p21〜p29}が設定されている。
【0064】
画像補正部13は、探索線の設定にあたり、画像5の中心点G0を用いる。画像補正部13は、中心点G0と、複数の各々の端点とを結ぶ線を、探索線(放射線)として設定する。中心点G0から周りに放射状に探索線が延びている。探索線(放射線)をLiで表し、破線で示す。本例では、探索線L1〜L32が設定されている。探索線Liの一方端が中心点G0であり、他方端が端点piである。本例では、画像5の矩形枠の角点にも端点が設定されている。
【0065】
図10は、画像5の端点及び探索線の他の設定例を示す。中心点G0の周りに、一定の角度α(例えば約11度)の間隔で探索線を設定する場合を示す。これにより、画像5の矩形枠の枠線上において、複数の端点(合計32個)が設定されている。本例では、画像5の矩形枠の角点には端点が設定されていない。
【0066】
[画像処理(2)−S22]
図11は、S22の色境界点探索処理に係わる画像5の状態を示す。各々の探索線上で、端点から中心点G0への方向で、色境界点を探索する様子を示す。背景領域6とカード領域7との色境界点をqiで表し、小さい菱形で示す。中心点G0と端点piとの間の探索線Li上における色境界点qiとする。端点p1の探索線L1から順に、反時計回りで端点p32の探索線L32まで、探索が行われる。32本の探索線L1〜L32において、色境界点q1〜q32が得られている。本例では、32個の色境界点がうまく検出できた場合を示すが、一部の色境界点がうまく検出できない場合もあり得る。
【0067】
[画像処理(3)−S23]
図12は、S23のベクトル計算処理に係わる画像5の状態として、ベクトル等を示す。複数の色境界点{q1〜q32}における、位置が近い隣り合う色境界点同士の間が、ベクトルで接続されている。色境界点間のベクトルを、ベクトルv1〜v32で示す。本例では、32個のベクトルがうまく検出できた場合を示す。例えば、ベクトルv1は、色境界点q1を始点とし、色境界点q2を終点とするベクトルであり、面内での角度の情報を持つ。
【0068】
本例では、32個の色境界点の間で、隣り合う色境界点同士でベクトルを設定することで、色境界点と同じ数の32個のベクトルが設定される場合である。これに限らず可能である。後述の変形例では、例えば1個ずつ色境界点を飛ばしてベクトルを設定することで、色境界点の数よりも少ない数のベクトルを設定することも可能である。
【0069】
[画像処理(4)−S24]
図13は、S24のグループ化処理に係わる画像5の状態として、グループ等を示す。4つのグループをg1〜g4で示す。本例では、カード領域7の右辺の付近において、6個の色境界点q1〜q4,q31,q32を有し、それらを結ぶ5個のベクトルv1〜v3,v31,v32を有する。5個のベクトルv1〜v3,v31,v32は、角度が類似である(言い換えると角度の差が所定値未満である)。そのため、それらに対応する6個の色境界点が、1つのグループg1としてグループ化されている。同様に、カード領域7の上辺の付近では、9個の色境界点q5〜q13を有し、それらを結ぶ8個のベクトルv5〜v12を有し、それらの9個の色境界点が1つのグループg2としてグループ化されている。カード領域7の左辺の付近では、6個の色境界点q14〜q19を有し、それらを結ぶ5個のベクトルv14〜v18を有し、それらの6個の色境界点が1つのグループg3としてグループ化されている。カード領域7の下辺の付近では、10個の色境界点q20〜q30を有し、それらを結ぶ9個のベクトルv20〜v29を有し、それらの10個の色境界点が1つのグループg4としてグループ化されている。
【0070】
なお、カード領域7の角点の付近にあるベクトルv4,v13,v19,v30は、他のベクトルとは角度が非類似(言い換えると角度の差が所定値以上である)となっている。そのため、グループ化の際に、それらのベクトルに関する色境界点は、考慮から除外している。
【0071】
[画像処理(5)−S25]
図14は、S25の近似直線計算処理、及びS26の交点計算処理に係わる画像5の状態として、近似直線及び交点等を示す。画像補正部13は、グループ毎の色境界点を用いて近似直線を引く。
図14では、画像5内で、グループg1の色境界点を用いて、近似直線M1が設定されている。同様に、グループg2の色境界点を用いて、近似直線M2が設定されている。グループg3の色境界点を用いて、近似直線M3が設定されている。グループg4の色境界点を用いて、近似直線M4が設定されている。近似直線は、例えば公知の最小二乗法(残差の二乗和を最小とする方法)を用いて計算できる。
【0072】
[画像処理(6)−S26]
画像補正部13は、近似直線の交点を計算する。
図14の画像5では、4つの近似直線M1〜M4を用いて、それらの4つの交点Q1〜Q4が計算されている。例えば、近似直線M1と近似直線M2との交点Q1等である。交点を二重丸で示す。これらの4つの交点Q1〜Q4が、カード領域7の4つの角点として推定される点である。
【0073】
[画像処理(7)−S27]
図15は、S27の射影変換に係わる画像5の状態を示す。画像補正部13は、4つの交点Q1〜Q4を用いて、公知の射影変換を行う。変換前の4点で示される台形は、変換後の4点で示される直角四角形になる。
図15の(A)は、射影変換前の画像5における4つの交点Q1〜Q4を示す。点C0aは、変換前のカード領域7の交点Q1〜Q4に対する中心点を示す。
【0074】
図15の(B)は、射影変換後の画像5における4つの交点Q1b〜Q4bを示す。なお、点C0bは、変換後のカード領域7bの交点Q1b〜Q4bに対する中心点を示す。カード領域7bは、変換後の交点Q1b〜Q4bで規定される直角四角形内の領域を示す。背景領域6bは、カード領域7b以外の領域を示す。
【0075】
その後、適宜、画像補正部13は、前述のS2Bの拡大/縮小やS2Cの処理を行う。画像補正部13は、補正後画像データ4Cとして、
図15の(B)の画像5、あるいはその中から切り出したカード領域7bの画像を出力する。
【0076】
[S22−詳細]
各ステップの処理の詳細について説明する。
【0077】
図16は、S22の色境界点探索処理の詳細についての説明図である。画像5のうちの右上の一部領域を拡大で示す。S22で、画像補正部13は、画像5内のブロック単位で大まかに色の変化度合いが大きい箇所を特定し、その後、画素単位で詳しく色境界点を探索する。S22の処理は、以下のようなステップS22a〜S22fを有する。
【0078】
(S22a) 画像補正部13は、前述の探索線(
図11)の上を通るブロックをつくる。
図16では、例として1つの探索線Liを示す。探索線Liに対応する端点piや色境界点qiを示す。画像5の上辺で右上の角点の近くにある端点piの場合を示す。ブロックは、例えば所定のサイズの正方形の画素領域とする。ブロックの例をブロックb1〜b6等で示す。例えば、ブロックb1は、端点piを対角点とする。ブロックb1の他方の対角点の付近で探索線Liが通る画素位置が、次のブロックb2の対角点(点r1)である。ブロックb2の他方の対角点の付近で探索線Liが通る画素位置が、次のブロックb3の対角点(点r2)である。同様に、順に、ブロックb4〜b6等が設定されている。また、結果から見て、色境界点qiを含んだブロックb3を、n番目(#n)のブロックとして示す。このn番目のブロックに対し、ブロックb1はn−2番目(#n−2)、ブロックb2はn−1番目(#n−1)、ブロックb4はn+1番目(#n+1)、ブロックb5はn+2番目(#n+2)である。探索範囲160は、ブロックb2,b3,b4の部分を示し、n番目のブロックb3の前後のブロックb2,b4を含む部分である。
【0079】
ブロックは、上記構成に限らず可能であり、例えば斜めの状態(探索線の方向に対して直交する辺を持つ形状)としてもよいし、長方形や他の形状としてもよい。
【0080】
(S22b) 画像補正部13は、探索線Li上のブロック毎に順次に、ブロック内の画素値を用いて、ブロックの代表色(ciとする)を計算する。代表色は、例えば、ブロック内の全画素値の統計値として、平均値、最頻値等を用いることができる。本例では、ブロックb1の代表色c1等を示す。
【0081】
(S22c) 画像補正部13は、探索線Li上で順次に、ブロック間で代表色を比較し、注目したブロック(例えば#n,b3)の代表色(c3)が、1つ前のブロック(#n−1,b2)の代表色(c2)から大きく変化したかどうかを判断する。その判断では、例えば、所定の閾値を用いる。画像補正部13は、前後のブロックの代表色の差分値が、その閾値以上かどうかを判断する。画像補正部13は、注目したブロックの代表色が1つ前のブロックの代表色から大きく変化した場合、即ち差分値が閾値以上である場合、1つ前のブロック(#n−1,b2)から1つ後のブロック(#n+1,b4)までを、次の探索範囲160として設定する。S22cまでの処理は、探索線Li上で色境界点qiがありそうな箇所を大まかに特定している処理であり、おそらくn番目のブロック(#n)内であると推定される。推定したn番目のブロックに対して前後のブロックを含む範囲を探索範囲160として、次のS22d以降の処理で詳しく探索される。
【0082】
(S22d) 画像補正部13は、探索範囲160のブロック(例えばb2,b3,b4)について、色境界点qiを探索するため、以下の処理を行う。画像補正部13は、まず、n−1番目(あるいはn−2番目としてもよい)のブロック(#n−1,b2)の代表色(c2)を、背景色CB(背景領域6の代表色)として一時的に設定する。
【0083】
(S22e) 画像補正部13は、n+1番目(あるいはn+2番目としてもよい)のブロック(#n+1,b4)内で、画素値を用いて、背景色と文字成分の黒色(規定の色)とを除いた色を、カード色CC(カード領域7の代表色)として一時的に設定する。このカード色CCは、実際のカード3の表面の基本色に対応している。ここで除く規定の色とは、カード3の表面において規定のレイアウトとして記載される文字情報、マーク、その他の項目に関するすべての色である。例えば、赤色のマークがある場合、その赤色も除かれる。
【0084】
(S22f) 画像補正部13は、探索範囲160のブロック(b2,b3,b4)を通る探索線Li上の全画素について、探索開始点(点r1)から探索終了点(点r4)まで探索を行う。画像補正部13は、探索範囲160内において、着目の画素の色と背景色CBとの色差SB、及び着目の画素の色とカード色CCとの色差SCを計算し、それらのデータ値をメモリに一時的に保持する。
【0085】
図17は、色差SB及び色差SCのデータ値をプロットしたグラフを示す。横軸は探索範囲160内の放射線Li上の画素(点r1から点r4まで)、縦軸は色差の値を示す。曲線171は背景色CBとの色差SBを示し、曲線172はカード色CCとの色差SCを示す。点173は、色差SBの曲線171と色差SCの曲線172との交点を示す。点173に対応する画素が、色境界点qiとして決定される。点173は、背景色CBから遠くなり、カード色CCに近付いた点である。
【0086】
なお、S22fの処理としては、基本的に、確実性を優先する場合、探索開始点(点r1)から順に探索終了点(点r4)まで画素値を調べるが、処理高速性を優先する場合、点173が得られた時点でその画素を色境界点qiとして決定し、処理を終了としてもよい。
【0087】
画像補正部13は、上記のような処理を、複数の各々の探索線について同様に繰り返す。なお、上記処理例では、端点piから中心点G0に向かって探索したが、変形例としては、同様に、中心点G0から端点piに向かって探索してもよい。また、複数の探索線の探索に関して、演算装置101の構成(例えば並列演算が可能な場合)によっては、順次ではなく、同時並列で探索処理を進めてもよい。
【0088】
補足説明として、色差(S22の色差SB,SC)の定義は以下である。画素毎に、R(赤),G(緑),B(青)の各色の階調値(例えば256階調)を有する。前述の背景色CBやカード色CCも、それぞれ、R,G,Bの階調値を有する。前述の処理の際、注目画素値と背景色CBの画素値との間で、色差SBとして、ユークリッド距離が計算される。同様に、注目画素値とカード色CCの画素値との間で、色差SCとして、ユークリッド距離が計算される。例えば、色差SBであるユークリッド距離は、以下の式で表すことができる。注目画素値を{Kr,Kg,Kb}で表す。Kr等は階調値を示す。背景色CBの画素値を{K1r,K1g,K1b}で表す。式として、√{(Kr−K1r)^2+(Kg−K1g)^2+(Kb−K1b)^2}である。なお、明るさは、例えば、画素のR,G,Bの階調値のうちの最大値を用いて規定される。
【0089】
[S23−詳細]
図18は、S23のベクトル計算処理の詳細についての説明図である。以下では、変形例を含め、いくつかの可能な処理例を示す。
【0090】
図18の(A)は、第1処理例を示す。第1処理例は、
図12と同様の基本処理であるが、画像5内で一番近い位置にある隣り合う色境界点同士でベクトルを設定する処理である。本例では、
図12の画像5のうち上半分の領域を示す。カード領域7の上辺の付近に、9個の色境界点q5〜q13が並んでいる。隣り合う色境界点q5〜q13の間で、8個のベクトルv5〜v12が設定されている。例えば、
図11のように反時計周りに調べてゆく場合において、色境界点q5に対し、左側にある一番近い色境界点は、色境界点q6である。そのため、色境界点q5から色境界点q6へのベクトルv5が設定される。次に、色境界点q6から、左側にある一番近い色境界点q7へ、同様にベクトルv6が設定される。
【0091】
図18の(B)は、変形例として、第2処理例を示す。第2処理例は、並んでいる複数の色境界点について、N個(例えば1個)ずつ飛ばす方式で、色境界点を選択して、選択した色境界点の間にベクトルを設定する処理である。この第2処理例によれば、計算する対象となる色境界点及びベクトルを削減して、処理時間を短縮できる。本例では、色境界点q5から、1つ隣の色境界点q6を飛ばして、次の色境界点q7を選択し、色境界点q5から色境界点q7へのベクトルva1が設定されている。次に、色境界点q7から、1つ隣の色境界点q8を飛ばして、次の色境界点q9を選択し、色境界点q7から色境界点q9へのベクトルva2が設定されている。同様に、ベクトルva3,va4が設定されている。この場合、得られるベクトルは約半数となっている。
【0092】
図18の(C)は、変形例として、第3処理例を示す。第3処理例は、並んでいる複数の色境界点について、順次に1個ずつ飛ばす方式で色境界点を選択し、選択した隣り合う色境界点の間にベクトルを設定する。更に、選択した隣り合う色境界点の中間点を、新たな色境界点として置き換えるように設定する。この処理の目的は、ベクトルに関する角度計算を平均化させて、色境界点が密の場合のベクトルのグループ化の精度を向上させることである。中間点である新色境界点を黒丸点で示す。本例では、まず、色境界点q5の次の色境界点q6に着目すると、その前後の色境界点q5,q7の間にベクトルvb1が設定されると共に、色境界点q5,q7の間の中間点が、色境界点q6に代わる新色境界点q6bとして設定される(なお、重なるのでずらして図示している)。次に、色境界点q6の次の色境界点q7に着目すると、その前後の色境界点q6,q8の間にベクトルvb2が設定されると共に、色境界点q6,q8の間の中間点が、色境界点q7に代わる新色境界点q7bとして設定される。同様に、各ベクトルvb3〜vb7及び新色境界点q8b〜q12bが得られる。この場合、以降の処理では、新色境界点q6b〜q12b等が使用される。
【0093】
図19は、第3処理例の詳細を示す。
図19の(A)は、前述の
図10の設定例に対応した画像5の下半分の領域を示す。領域191は、複数の色境界点が相対的に密に配置されている領域の例を示す。領域192は、複数の色境界点が相対的に疎に配置されている領域の例を示す。例えば、領域191は、カード領域7の下辺の中間付近であり、5個の色境界点が含まれている。それに対し、領域192は、領域191と同じような横幅で、カード領域7の下辺の右端付近であり、2個の色境界点が含まれている。
図11のように、中心点G0から放射状に探索を行うことから、このように画像5内で色境界点が密な領域と疎な領域とが生じる。
【0094】
図19の(B)は、色境界点が密な領域の例に関して、画素レベルで拡大したマトリクスで示す。
図19の(B)は、第1処理例で、隣り合う色境界点同士でベクトルを計算する場合を示す。探索された色境界点に対応する画素を、画素px1〜px6で示す。色境界点の画素px1〜px6の間のベクトルを、ベクトルvc1〜vc5で示す。本例では、複数の色境界点の画素の位置に関してY方向でずれがある。画素px4は、他の画素に比べてY方向で上にずれている。画素px1,px2の間のベクトルvc1は、その向きを表す角度が180である(ベクトルvc2,vc5も同じ)。なお、ここでは、角度の基準として、面内のX軸の右を0度とし、反時計周りに360度まで角度をとるとする。一方、ずれがある色境界点の画素px4に関して、ベクトルvc3では角度が153度であり、ベクトルvc4では角度が207度である。
【0095】
S21で画像端点及び探索線の数を多く設定した場合、色境界点の数が多くなり、色境界点同士の距離がとても小さくなる場合がある。上記例のように、色境界点が密な領域では、色境界点の位置の1画素の差でも、ベクトルの角度が急激に変化する場合がある。この場合、S24でベクトルをグループ化する際の判定の条件を、例えば角度差が10度以内とした場合、1画素の差で、例えばベクトルvc1とベクトルvc3とが異なるグループに分類されることになる。これは、分類の精度が低くなるので望ましくない。
【0096】
そこで、第3処理例では、ベクトルのグループ化の精度を高める。
図19の(C)は、(B)と同様の色境界点が密な領域の例に関して、第3処理例を適用してベクトルを計算し、新色境界点を設定する場合を示す。新色境界点に対応する画素を、画素px2b〜px5bで示す。1つ飛ばしで設定されるベクトルを、ベクトルvd1〜vd4で示す。例えば、画素px1から画素px3へのベクトルvd1は、角度が180度であり、画素px2は、新色境界点の画素px2bになっている。画素px2から画素px4へのベクトルvd2は、角度が170度であり、画素px3は、新色境界点の画素px3bになっている。画素px3から画素px5へのベクトルvd3は、角度が180度であり、画素px4は、新色境界点の画素px4bになっている。画素px4から画素px6へのベクトルvd4は、角度が190度であり、画素px5は、新色境界点の画素px5bになっている。
【0097】
このように、色境界点が密な領域を考慮して、第3処理例を適用し、前後の色境界点を用いて色境界点同士の距離を確保する。これにより、(B)の第1処理例の場合よりも、ベクトルの角度の変化の差が小さくなっており、ベクトルvc3のように角度が急に変化することを抑えられる。得られた複数の新色境界点においては、位置のずれが小さくなっている。
【0098】
第3処理例の計算方法は、画像5内のすべての色境界点について行ってもよいし、例えば、所定の閾値を用いて色境界点同士の距離が近いと判断した場合の該当する色境界点のみについて行ってもよい。第3処理例を適用する場合、より精度を高めることができる。
【0099】
[S24−詳細]
図20は、S24のグループ化処理の詳細についての説明図である。画像補正部13は、前述の
図13の例のように得られた複数のベクトルを用いて、ベクトルに対応付けられた色境界点を、ベクトルの角度の類似性に基づいて、グループに分類する。分類されたグループが、カード領域7の辺に対応付けられる。
図20では、ある画像の例(多数の色境界点を含む場合)におけるベクトルの角度のヒストグラムを示す。横軸はベクトルの角度(0〜360度)を示す。縦軸は頻度値を示す。破線円は、ベクトルの角度に関するグループとして、グループ201〜204を示す。グループ201は、角度が90度付近であるベクトルを含むグループであり、
図13のカード領域7の右辺のグループg1に対応する。グループ202は、角度が180度付近であるベクトルを含むグループであり、上辺のグループg2に対応する。グループ203は、角度が270度付近であるベクトルを含むグループであり、左辺のグループg3に対応する。グループ204は、角度が360度(0度)付近であるベクトルを含むグループであり、下辺のグループg4に対応する。
【0100】
S24の処理は、例えば以下のような処理を含む。(S24a)画像補正部13は、ベクトルの角度を用いて、
図20のようなヒストグラムを作成する。(S24b)画像補正部13は、ヒストグラムから、角度及び頻度値に関する4つのピーク部分を探す。(S24c)画像補正部13は、4つのピーク部分に対応付けられる4つのベクトルを、4つのグループg1〜g4に分類する。(S24d)画像補正部13は、それぞれのグループで、ピーク部分に対応するベクトルの付近にある複数のベクトルを、そのグループに属するものとして分類する。画像補正部13は、グループ内のベクトルに対応付けられる色境界点を、そのグループに属するものとして分類する。
【0101】
カード領域7の一辺における複数の色境界点間の複数のベクトルは、角度が概ね類似となる。そのため、その類似性に基づいてグループに分けることができる。通常、処理がうまくいった場合、カード領域7の上下左右の4つの辺に対応して、4つのグループが検出できる。
【0102】
なお、S24の処理に関する変形例としては、ベクトルの角度ではなく、色境界点の画素の位置座標を用いてグループ化を行う処理としてもよい。あるいは、ベクトルの角度と色境界点の画素の位置座標との両方を用いてグループ化を行う処理としてもよい。
【0103】
[ノイズ低減処理]
図21は、更に、ノイズ低減のための処理例についての説明図を示す。実施の形態の画像処理装置は、この処理を行うことにより、画像5内のノイズを低減し、より精度を高めることができる。
図21の(A)は、画像5の一部における明るさムラやノイズの例を示す。本例では、画像5内のX方向で明るさにムラがある場合を簡略的な表現で示す(カード領域7でのムラは省略する)。X方向右側の領域ほど明るく(即ち色が白に近い)、左側の領域ほど暗い(即ち色が黒に近い)。また、本例では、画像5内にノイズが含まれている。ノイズ箇所を白や黒の点で示す。
【0104】
図21の(B)は、ノイズ低減のために画像5に適用するフィルタの例として、公知のぼかしフィルタを示す。画像補正部13は、入力の画像5を処理する際に、画素毎に、ぼかしフィルタを適用する。左側は、ある画素(pix5)とその周辺の画素を含む9個の画素を示す。右側は、ぼかしフィルタであるガウシアンフィルタの構成を示す。画素毎にフィルタの係数を示す。例えば、中心の画素(pix5)については、その画素値の16分の4の値を使用することを示す。上下左右にある画素(pix2,pix4,pix6,pix8)については、画素値の16分の2の値を使用することを示す。斜めの角点にある画素(pix1,pix3,pix7,pix9)については、画素値の16分の1の値を使用することを示す。各画素値に係数を乗算した値の総和値が、中心の画素(pix5)の新たな画素値として適用される。
【0105】
ぼかしフィルタの適用によって、画像5内のノイズが低減される。画像補正部13は、その画像5を用いて、前述の色境界点の探索等の処理を行う。これにより、カード領域7の検出等の精度を高めることができる。
【0106】
実施の形態の画像処理の方式では、従来技術とは異なり、画像5内の背景領域6とカード領域7との色の差を用いて境界線を検出している。そのため、実施の形態の画像処理の方式は、画像5内の背景領域6の色とカード領域7の色との組み合わせのバリエーションに関して有効である。ただし、カメラ2による撮像画像は、上記例のように明るさムラやノイズを含む場合があり、画素レベルでみると、その画素の色が、背景領域6の色なのか、カード領域7の色なのか、ノイズその他なのか、判断が難しい場合がある。言い換えると、画素間の色の変化が、背景領域6からカード領域7への変化に対応するのか、それ以外の要因による変化に対応するのか、判断が難しい場合がある。
【0107】
そこで、実施の形態では、まず、前述のように、ブロック単位で色の変化を調べる処理を行うことで、明るさムラやノイズによる影響を少なくしている。更に、上記のようにフィルタを用いたノイズ低減の処理を適用することで、明るさムラやノイズによる影響を少なくしている。
【0108】
[効果等]
上記のように、実施の形態の画像処理装置によれば、本人確認証のカード3の撮像画像データに関する画像処理に関して、カード領域7に対する正確な俯瞰画像が得られるように高精度の補正処理ができる。特に、カメラ2によるカード3の撮像時の方向や照明状態等が適切ではなく、カード領域7に台形状の歪みがある画像の場合でも、カード領域7の検出精度を高くでき、歪み補正処理の精度を高くできる。特に、レイアウトにおける特徴情報が少ない種類のカード3の場合でも、カード領域7の検出精度及び歪み補正処理の精度を高くできる。実施の形態の画像処理装置によれば、カード3の表面のレイアウトや色、撮影時の背景の色等に関して、バリエーションが多い場合や、明るさにムラがある画像の場合でも、俯瞰画像への補正の精度を従来技術よりも高くすることができる。
【0109】
[比較例]
実施の形態の画像処理装置に対する比較例として、従来例の画像処理装置では、画像からカード領域の4つの辺を検出する場合、以下のような処理を行う。その画像処理装置は、入力画像であるフルカラー画像から、二値画像(画素値を白黒の二値に変換した画像)を生成する。その画像処理装置は、二値画像から、カード領域の4つの辺の直線部分を検出し、それらの直線の交点を、カード領域の4つの角点として検出する。その画像処理装置は、それらの4つの角点を用いて、射影変換を行うことで、カード領域の形状が直角四角形になるように補正する。しかしながら、二値画像においてカード領域の4つの辺が明瞭に写っていない場合、その補正ができない、または精度が低下する。例えば、カード領域と背景領域との明るさの差が小さい場合や明るさにムラがある場合、4つの辺の直線が写った二値画像が生成できない。
【0110】
また、特許文献1のような技術の場合には、カード領域内の顔写真領域を特徴として利用し、その顔写真領域の形状、大きさや比率を用いて、カード領域の形状、大きさや比率を補正することができる。しかしながら、顔写真領域をうまく検出できない場合、その補正ができない、または精度が低下する。
【0111】
[変形例]
実施の形態の画像処理装置の変形例として以下が挙げられる。
図5のS2B,S2Cの公知の処理は、必要に応じて、S2Aの処理よりも前に行ってもよい。
【0112】
実施の形態では、画像5の中心点G0から探索線を設定した。変形例として、画像5内のカード領域7に対応する台形状の領域の中心点(
図6の点C0)を、概略位置座標でよいので任意の手法によって検出し設定する。そして、その台形状の領域の中心点C0から、同様に探索線Li及び端点piが設定される。
【0113】
探索線Li及び端点piの設定数は、任意でよく、精度と処理速度とのバランス等を考慮して適宜設定すればよい。各種の設定は、実装上の設計事項としてもよいし、ユーザ設定を可能としてもよい。設定部17は、各種の設定の設定情報124を管理する。
【0114】
実施の形態では、S22の色境界点qiの探索の際、複数の各々の探索線Liについて、判定用の閾値として、一律に固定の設定値を用いた。これに限らず、変形例では、探索線Li毎に、異なる閾値を適用してもよい。設定情報124にその閾値が含まれている。また、ある探索線Li上で、ある閾値を用いて判定した結果、色境界点qiが検出できなかったとする。その場合に、その閾値を他の値に変更し、その探索線Li上での探索を再試行させてもよい。例えば、最初は一律に基準の閾値を適用する。再試行時には、基準の閾値から、正負の各方向に、所定値で増減させることで、変更後の閾値を決めて適用する。
【0115】
S22の探索で、複数の探索線のうち一部の探索線で色境界点が検出できなくても、十分な数の色境界点が検出できた場合には、S23以降の処理を成立とする。即ち、ある程度以上の精度で、S25の4つの近似直線、S26の4つの角点が得られる。精度を考慮し、この十分な数の色境界点に関する最低数が設定されてもよい。例えば、画像5の辺毎に、その最低数として2とする。辺で2つの色境界点が検出できた場合、その2点を結ぶ近似直線をひくことができる。
【0116】
また、S22の探索で、端点及び探索線の全数のうち、辺に対応付けられるグループ毎に、所定率(%)の数以上で色境界点が検出できた場合には、成立と判定してもよい。成立の場合、それらの色境界点を用いて、4つの近似直線及び角点が計算される。また、辺のグループ毎に所定数以上の色境界点が検出できずに不成立となった場合に、閾値を変更して再試行を行うようにしてもよい。
【0117】
以上、本発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されず、その要旨を逸脱しない範囲で種々変更可能である。