(57)【要約】  モジュールが２次元状に配置された２次元コードを撮像した画像に対し、画像内の２次元コード内から走査してコード領域の境界の候補点を検出する候補点検出手段と、候補点を用いて第１境界線を算出する算出手段と、第１境界線からの距離が閾値以内にある候補点を選択する選択手段と、選択手段により選択された候補点を用いて算出した第２境界線を検出する境界線検出手段と、を備える。
2012124123.tif 000002
【特許請求の範囲】
【請求項１】
モジュールが２次元状に配置された２次元コードが撮像された画像に対し、該画像内の２次元コード内から走査してコード領域の境界の候補点を検出する候補点検出手段と、
前記候補点を用いて第１境界線を算出する算出手段と、
前記第１境界線からの距離が閾値以内にある候補点を選択する選択手段と、
前記選択手段により選択された候補点を用いて算出した第２境界線を検出する境界線検出手段と、
を備える画像処理装置。
【請求項２】
前記閾値は、前記モジュールのサイズに基いて決定される請求項１記載の画像処理装置。
【請求項３】
前記候補点検出手段は、
前記２次元コード内から走査する際、検出されるモジュールの間隔に基づき前記モジュールのサイズを推定する請求項２記載の画像処理装置。
【請求項４】
前記算出手段は、
前記候補点の外接直線を算出し、該外接直線を前記第１境界線とし、
前記選択手段は、
前記第１境界線から画像内部方向に対し、前記閾値以内となる候補点を選択する請求項１乃至３いずれか一項に記載の画像処理装置。
【請求項５】
前記第２境界線を用いて前記コード領域の４頂点を検出する頂点検出手段と、
前記頂点検出手段により検出された４頂点から処理対象画像を生成する生成手段と、
前記処理対象画像に対し、明と暗とのモジュールのペアが交互に配列されたパターンを検出する際、前記モジュールのペア長に基づき、欠落した前記モジュールのペアを補正するパターン検出手段と、
をさらに備える請求項１乃至４いずれか一項に記載の画像処理装置。
【請求項６】
前記パターン検出手段は、
前記モジュールのペア長に対し、小さい順に累積移動平均値を算出して該累積移動平均値に基づいて基準となるペア長を決定する決定手段と、
前記決定手段により決定されたペア長に基づく上限値を超えるモジュールのペア長に対し、該モジュールのペア長と、前記決定されたペア長との比率により前記モジュールのペアを補正する補正手段と、
を備える請求項５記載の画像処理装置。
【請求項７】
前記補正手段は、
前記決定手段により決定されたペア長に基づく下限値より小さいモジュールのペア長を削除する請求項６記載の画像処理装置。
【請求項８】
前記生成手段は、
前記処理対象画像の前記モジュール内の画素数を所定の画素数にするよう拡大処理又は縮小処理する処理手段を備える請求項５乃至７いずれか一項に記載の画像処理装置。
【請求項９】
画像処理装置に実行される画像処理方法であって、
モジュールが２次元状に配置された２次元コードが撮像された画像に対し、該画像内の２次元コード内から走査してコード領域の境界の候補点を検出し、
前記候補点を用いて第１境界線を算出し、
前記第１境界線からの距離が閾値以内にある候補点を選択し、
選択された候補点を用いて算出した第２境界線を検出する画像処理方法。
【請求項１０】
モジュールが２次元状に配置された２次元コードが撮像された画像に対し、該画像内の２次元コード内から走査してコード領域の境界の候補点を検出し、
前記候補点を用いて第１境界線を算出し、
前記第１境界線からの距離が閾値以内にある候補点を選択し、
選択された候補点を用いて算出した第２境界線を検出する、
処理をコンピュータに実行させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元コードが撮像された画像を処理する画像処理装置、画像処理方法及び画像処理プログラムに関する。
【背景技術】
【０００２】
２次元コードでは、所定サイズの正方形要素（モジュールともいう）を縦横２次元の格子状に並べ、各モジュールの明暗（白／黒）の配置の組み合わせによってデータが格納されている。２次元コードをデコードするためには、個々のモジュールの撮像画像中の位置を正確に決定し、その位置での白／黒を正確に判定する。【０００３】
２次元コードは、この位置の検出を容易かつ高精度に行うため、予め定められた特定の形状をしたマークを有している。このマークは、例えば、ＱＲコード（登録商標）の位置検出パターンであり、ＤａｔａＭａｔｒｉｘ（登録商標）のファインダパターンである。【０００４】
また、２次元コードは、白又は黒の所定サイズのモジュールが交互に直線状に配置されたパターンを有している。このパターンはタイミングパターンと呼ばれ、モジュールサイズやコードサイズなどの物理特性データを表す。【０００５】
図１は、２次元コードの例を示す図である。図１（Ａ）は、ＤａｔａＭａｔｒｉｘ（登録商標）の一例を示す。図１（Ａ）に示すパターン１１がタイミングパターンであり、図１（Ａ）に示すパターン１２がファインダパターンである。【０００６】
図１（Ｂ）は、ＱＲコード（登録商標）の一例を示す。図１（Ｂ）に示すパターン１３は、図1（Ａ）同様、タイミングパターンを示す。図１（Ｂ）に示すパターン１４は、位置検出パターンである。【０００７】
図１に示すような各パターンを高精度に検出するためには、コードの外周部の境界線の位置を求めることが重要になる。このコード境界を高速に検出するため、コード境界の外側で、白画素が直線状に配置されている位置をコード境界と定める技術がある。【０００８】
図２は、従来技術における境界線検出方法を説明する図である。図２に示すように、コード内部の開始点１５から外側に走査し、白画素が連続して配置されている位置を検出して境界線を検出する。また、２次元コードを読み取るための様々な技術がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１０２９５２号公報
【特許文献２】特開２００２−３２９１６３号公報
【特許文献３】特開平１０−６３７７２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、例えば携帯電話などで使用するような廉価なデジタルカメラでは、そのレンズ特性によるピントのボケの発生、処理能力の限界によって、低画素数・低解像度の撮影画像を用いなければならない場合がある。【００１１】
図３は、従来技術の課題を説明するための図である。図３に示す画像２０は、２次元コードを撮像した画像の一例を示す。図３に示す２次元コードの一部を含む領域を拡大したのが画像２１である。画像２１に示すように、境界線のボケや歪みにより境界線を正確に検出することができなかった。【００１２】
例えば、従来技術により、境界線を算出すると、境界線２６を検出したいが、２次元コードの外接線が境界線２５になり、検出したい境界線２６よりも外側にずれてしまう。【００１３】
よって、従来技術では、２次元コードの外周部の境界がボケたり、歪んだりすることで、境界線の位置を正確に求めることができないという問題点があった。【００１４】
そこで、開示の技術は、上記問題点に鑑みてなされたものであり、２次元コードの境界線の検出精度を向上させることができる画像処理装置、画像処理方法及び画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
開示の一態様の画像処理装置は、モジュールが２次元状に配置された２次元コードを撮像した画像に対し、該画像内の２次元コード内から走査してコード領域の境界の候補点を検出する候補点検出手段と、前記候補点を用いて第１境界線を算出する算出手段と、前記第１境界線からの距離が閾値以内にある候補点を選択する選択手段と、前記選択手段により選択された候補点を用いて算出した第２境界線を検出する境界線検出手段と、を備える。
【発明の効果】
【００１６】
開示の技術によれば、２次元コードの境界線の検出精度を向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】２次元コードの例を示す図。
【図２】従来技術における境界線検出方法を説明する図。
【図３】従来技術の課題を説明するための図。
【図４】実施例における画像処理装置の構成の一例を示すブロック図。
【図５】境界検出手段の構成の一例を示すブロック図。
【図６】境界線検出処理の説明するための図。
【図７】境界候補点のデータテーブルの一例を示す図。
【図８】境界候補点の選択結果のデータテーブルの一例を示す図。
【図９】選択後の境界候補点のデータテーブルの一例を示す図。
【図１０】処理対象画像生成手段の構成の一例を示すブロック図。
【図１１】回転・拡縮処理を説明するための図。
【図１２】タイミングパターン検出手段の構成の一例を示すブロック図。
【図１３】明暗モジュールペア長の例を示す図。
【図１４】算出された明暗モジュールペア長の一例を示す図。
【図１５】並べ替え後の明暗モジュールペア長の一例を示す図。
【図１６】累積移動平均値及び平均値との比の一例を示す図。
【図１７】明暗モジュールペア長、累積移動平均値、上限値、下限値の関係を示す図。
【図１８】実施例における画像処理方法の一例を示すフローチャート。
【図１９】携帯端末装置５００のハードウェアの一例を示すブロック図。
【符号の説明】
【００１８】
１００  撮像手段
１０１  境界検出手段
１０２  頂点検出手段
１０３  処理対象画像生成手段
１０４  タイミングパターン検出手段
１０５  デコード手段
１１０  画像処理装置
２０１  境界候補点検出手段
２０２  境界候補点補間手段
２０３  仮近似直線算出手段
２０４  境界候補点選択手段
２０５  境界線検出手段
３０１  回転角度検出手段
３０２  範囲決定手段
３０３  回転・拡縮処理手段
３３１  撮像解像度検出手段
３３２  補正倍率決定手段
４０１  処理対象画像選択手段
４０２  明暗モジュールペア長検出手段
４０３  基準モジュールペア長決定手段
４０４  モジュールペア補正手段
４０５  コードサイズ決定手段
【発明を実施するための形態】
【００１９】
以下、図面に基づいて、実施例について説明する。
【００２０】
［実施例］
＜構成＞
図４は、実施例における画像処理装置１１０の構成の一例を示すブロック図である。図４に示す画像処理装置１１０は、境界検出手段１０１、頂点検出手段１０２、処理対象画像生成手段１０３、タイミングパターン検出手段１０４を備える。なお、画像処理装置１１０は、撮像手段１００、デコード手段１０５、その他表示部などを備えてもよい。
【００２１】
撮像手段１００は、２次元コードを撮像した画像を生成する。生成された画像は、境界検出手段１０１に出力される。
【００２２】
境界検出手段１０１は、撮像手段１００により撮像された２次元コードを含む画像に対して、２次元コードのコード領域とコード周辺の余白領域との境界線を検出する。余白領域は、クワイエトゾーンと呼ばれる。ここでは、２次元コードが持つ４つの辺の境界線をそれぞれ同じ方法で検出する処理を行う。
【００２３】
頂点検出手段１０２は，境界検出手段１０１から検出した４つの境界線の両端をおのおの延長し、その交点をコード領域の４頂点として検出する。境界線の検出精度が高ければ高い程、４頂点も高精度に検出できる。この４頂点を結ぶ直線が作る四角形の内部にコード領域が含まれており、４頂点位置が以後の処理の基準点となる。
【００２４】
処理対象画像生成手段１０３は、頂点検出手段１０２により検出されたコード境界の回転角度および撮影画像の解像度に基づいて、画像データの一部を処理対象画像データとして抽出する。ここでは、所定サイズのモジュール１辺当りの画素数を基準とする。モジュールは、二次元コードのシンボルを構成する最小の単位のセルである。
【００２５】
処理対象画像生成手段１０３は、処理対象画像が回転していたり、解像度が少なかったりするので、回転角度補正、拡大処理又は縮小処理を行って、処理対象画像データを生成する。拡大率または縮小率は、処理対象画像データの解像度がその後の処理に適した値になるように調整する。
【００２６】
処理対象画像生成手段１０３は、例えば、モジュールの一辺当りの画素数が２〜８画素になるように調整する。モジュールの一辺当りの画素数が２〜８画素であると、一般的に処理がしやすいと言われている。
【００２７】
タイミングパターン検出手段１０４は、処理対象画像生成手段１０３が生成した処理対象画像のうち、タイミングパターンを含む画像を用いて２次元コードのモジュールサイズとコードサイズを検出する。モジュールサイズは、所定サイズのモジュール１辺当りの画素数を表し、コードサイズは、２次元コードの１辺当りのモジュール数を表す。
【００２８】
デコード手段１０５は、ここまでの各処理手段で取得した値を用いて、２次元コードに対するデコード処理を行い、２次元コードに格納されているデータを取り出す。取り出されたデータは、表示部などに出力される。次に、各処理手段の処理内容について順に説明する。
【００２９】
（境界検出処理）
図５は、境界検出手段１０１の構成の一例を示すブロック図である。図５に示す境界検出手段１０１は、境界候補点検出手段２０１、境界候補点補間手段２０２、仮近似直線算出手段２０３、境界候補点選択手段２０４、境界線検出手段２０５を備える。
【００３０】
境界候補点検出手段２０１は、２次元コードの内部から外部へ向けて画像データの画素を走査し、画素が暗（例えば黒）から明（例えば白）に変わる点を境界線の候補点として検出する。境界候補点検出手段２０１は、例えば、特開２００８−１０２９５２号公報に記載されているように、白画素の連続長を見つけることで候補点を検出してもよい。境界線の候補点を境界候補点と呼ぶ。
【００３１】
境界候補点検出手段２０１は、画素を走査する際、モジュールのサイズを推定する。境界候補点検出手段２０１は、例えば、境界候補点を検出する各走査ラインにおいて黒画素と白画素の幅を求め、各走査ラインで最小となる幅の平均値を、１つのモジュールのサイズと推定する。
【００３２】
境界候補点補間手段２０２は、境界候補点検出手段２０１により検出された境界候補点に対して、その隣接画素の階調値に比例するよう位置を補間修正して境界候補点の位置精度を画素単位より高くなるように向上させる。この処理は、必ずしも必要な処理ではない。
【００３３】
仮近似直線算出手段２０３は、境界候補点補間手段２０２による補間後の複数の境界候補点を用いて、仮の近似直線を求める。近似直線の求め方としては、例えば、最小二乗法を用いるのが一般的であるが、ハフ変換や、コード外側の境界候補点の外接直線を用いるなど、他の方式を用いてもよい。仮近似直線算出手段２０３により算出された近似直線を、仮近似直線と呼ぶ。
【００３４】
境界候補点選択手段２０４は、仮近似直線算出手段２０３により算出された仮近似直線からの距離が、所定の閾値以内にある境界候補点を選択する。境界候補点選択手段２０４は、仮近似直線から所定範囲内にある境界候補点を選択するようにしてもよい。仮近似直線からの距離が閾値を超える境界候補点は、ボケや歪みなどの影響で正しく検出されていないものと判断され除外される。
【００３５】
閾値は、例えば、予め決められた基準値であってもよいが、境界候補点検出手段２０１で推定されたモジュールのサイズであってもよい。閾値がモジュールサイズの場合、撮像された２次元コードに応じて適切な境界候補点を選択することができる。
【００３６】
また、仮近似直線を外接直線とする場合、境界候補点選択手段２０４は、仮近似直線から画像内部方向に対し、閾値以内となる境界候補点を選択するようにすればよい。仮近似直線が外接直線である場合、仮近似直線よりも画像外部方向に境界候補点がないからである。これにより、境界候補点の選択処理を効率よく行うことができる。
【００３７】
境界線検出手段２０５は、境界候補点選択手段２０４により選択された複数の境界候補点を用いて再度近似直線を算出し、この近似直線を境界線として検出する。この場合の近似直線の求め方は、最小二乗法などを用いればよい。求めた境界線は、頂点検出手段１０２に出力される。
【００３８】
図６は、境界線検出処理の説明するための図である。図６を用いて、境界線検出処理について具体的に説明する。図６に示す例では、仮近似直線を算出する際には外接直線を用い、境界線を算出する際には最小二乗法を用いる例である。
【００３９】
また、図６に示す例は、カメラの特性や撮像画像の解像度不足によって、ボケや歪みが発生している例である。また、図６に示す例では、２次元コードの撮影時に２次元コードが回転状態で撮影されてしまったため、境界線に擬似輪郭が発生してギザギザになっている場合を示す。
【００４０】
境界候補点算出手段２０１は、２次元コードの内部から、垂直上方向に画素を走査して境界候補点を検出する。図６に示す丸印（白色丸３０、灰色丸３１含む）が検出された境界候補点である。
【００４１】
この検出処理では、本来の境界点ではないコード内部のモジュール境界を検出している。また、本来の境界点であっても、擬似輪郭によって境界点を検出した位置にずれが生じている。
【００４２】
図７は、境界候補点のデータテーブルの一例を示す図である。図７に示すように、各境界候補点には、整理番号が付与され、ｘ座標、ｙ座標が関連付けられている。
【００４３】
仮近似直線算出手段２０３は、検出された複数の境界候補点を用いて、境界候補点の外接直線を仮近似直線３２として算出する。図６に示すように、仮近似直線３２は、擬似輪郭の影響で２次元コードの外側で算出されたため，以降の処理を正確に行うことができない。
【００４４】
境界候補点選択手段２０４は、近似直線３２から所定範囲を規定して候補点の選択を行う。所定範囲は、モジュールの大きさＸｍを基準に設定する。１つのモジュールの大きさＸｍは、２次元コード内部のモジュールの大きさの分布からおおよその大きさを推定することが可能である。
【００４５】
タイミングパターン上は、単位サイズのモジュールが明暗交互に並んでいる形式である。よって、境界候補点の選択には、推定したモジュールサイズの半分である選択基準サイズ範囲（所定範囲）を以下に式（１）により求める。
Ｌｉｍ０＝±Ｘｍ／２  ・・・式（１）
境界候補点選択手段２０４は、仮近似直線から選択基準サイズ範囲に入る境界候補点を選択する。ただし、境界候補点の検出誤差が小さいことが予測されるような場合にはこの範囲Ｌｉｍ０より小さい範囲を用いてもよい。逆に、検出誤差が大きいことが予測される場合には、この範囲Ｌｉｍ０より大きな範囲（±Ｘｍや±Ｘｍ×１．５など）を用いてもよい。
【００４６】
境界候補点の検出誤差が小さいと予測される範囲は、例えば、境界線の中央部であり、境界候補点の現出誤差が大きいと予測される範囲は、境界線の端部である。
【００４７】
また、境界候補点選択手段２０４は、境界候補点の選択を行った後、再度別の方法を用いて選択後の境界候補点に対して仮の近似直線を求めた上で、Ｌｉｍ０（例えば±Ｘｍ／２）の範囲を用いて境界候補点の選択を行ってもよい。
【００４８】
なお、図６に示す例では、仮近似曲線が外接直線を示すため、境界候補点選択手段２０４は、仮近似直線から画像内部方向に対し、例えばＸｍ／２以内にある境界候補点を選択すればよい。
【００４９】
図６に示す白色丸３０が選択された境界候補点を示し、灰色丸３１が選択されなかった境界候補点を示す。
【００５０】
図８は、境界候補点の選択結果のデータテーブルの一例を示す図である。図８に示す例では、Ｘｍ＝３．０、Ｌｉｍ０＝１．５とした場合の例である。図８に示すように、仮近似直線からの距離が１．５以内であれば、境界候補点の選択結果は「○」になる。選択結果「○」は選択されたことを表し、選択結果「×」は選択されなかったことを表す。
【００５１】
図９は、選択後の境界候補点のデータテーブルの一例を示す図である。図９に示す境界候補点は、図８に示す選択結果が「○」のものだけが抽出されている。図９に示す境界候補点が、コード領域と余白領域との境界線算出に用いられる。
【００５２】
境界線検出手段２０５は、境界候補点選択手段２０４により選択された境界候補点を用いて近似直線を算出する。境界線検出手段２０５は、算出された近似直線をコード領域と余白領域との境界線として検出する。
【００５３】
これにより、前述したように境界線を検出することで、カメラの特性や撮像画像の解像度不足によって、ボケや歪みが発生した場合でも、境界線の検出精度を向上させることが可能となる。
【００５４】
（回転・拡縮処理）
次に、タイミングパターン検出の処理対象画像を生成する処理について説明する。図１０は、処理対象画像生成手段１０３の構成の一例を示すブロック図である。図１０に示す処理対象画像生成手段１０３は、回転角度検出手段３０１、範囲決定手段３０２、回転・拡縮処理手段３０３を備える。
【００５５】
回転角度検出手段３０１は、境界線の傾きから、画像データ中の２次元コードの水平／垂直に対する回転角度を求める。
【００５６】
範囲決定手段３０２は、境界線の位置を基準とし、使用する処理方法に対応した画像範囲を決定する。範囲決定手段３０２は、例えば、ＤａｔａＭａｔｒｉｘ（登録商標）のタイミングパターンの処理を行う場合には、タイミングパターンを含む頂点間の境界線に沿って一定の幅の矩形領域を切り出す。
【００５７】
回転・拡縮処理手段３０３は、境界線が画像データ中で水平又は垂直になるように回転補正を行う。回転補正には、アフィン変換処理や射影変換処理などを用いればよい。また、回転・拡縮処理手段３０３は、予め指定した解像度となるように隣接画素間をその階調値に比例して補間することで拡大補正ないし縮小補正を行う。
【００５８】
以上より、回転補正を行いコード領域が画像データ中で正立となるようにすることで、以後の処理での位置検出を容易かつ高精度・高速に行うことが可能となる。また、解像度が低かったり、高かったりする場合には、拡大補正又は縮小補正を行うことで以後の処理での位置検出精度を高めることが可能となる。縮小補正を行う場合、処理する画素数を低減するため、以後の処理の高速化が可能となる。
【００５９】
なお、回転・拡縮処理手段３０３は、撮像解像度検出手段３３１、補正倍率決定手段３３２を備える。
【００６０】
撮像解像度検出手段３３１は、境界線に隣接したモジュールの幅を検出し、検出したモジュールの幅に含まれるおおよその解像度を求める。
【００６１】
補正倍率決定手段３３２は、検出した解像度が予め指定した基準解像度より大きい場合には基準解像度と同等となるように縮小倍率を決定し、検出した解像度がｋ順解像度より小さい場合には基準解像度と同等となるように拡大倍率を決定する。
【００６２】
基準解像度は、使用するカメラの特性や以後のデコード処理アルゴリズムの特性に従って任意に設定される。一般的には、サンプリング定理に従って１モジュール当り２〜３画素が基準解像度として設定される。
【００６３】
しかし、より高精度の検出が必要な場合には、２〜３画素より大きな値（例えば４〜８画素）が設定されてもよい。また、精度を必要とせず処理速度を優先させたい場合には２〜３画素より小さい値（例えば１画素）が設定されてもよい。
【００６４】
これにより、カメラやデコード処理アルゴリズムの特性や用途に対応して、適切な倍率を設定することができ、より高性能なデコード処理を行うことが可能となる。
【００６５】
図１１は、回転・拡縮処理を説明するための図である。図１１を用いて、回転・拡縮処理の具体例について説明する。
【００６６】
境界線の回転角度が検出されると、範囲決定手段３０２により処理対象画像の範囲が決定される。図１１に示す線４０が、境界線を表す。図１１に示すように、タイミングパターンの検出の場合、境界線を基準にタイミングパターン全体を含む矩形領域が、処理対象画像の範囲４１として切り出される。例えば、範囲決定手段３０２は、境界線４０から所定の幅を有する矩形領域を処理対象画像の範囲４１として決定する。
【００６７】
回転・拡縮処理手段３０３は、図１１に示す範囲４１のモジュールの大きさを求める。この大きさは、おおよその値でよいため、回転・拡縮処理手段３０３は、タイミングパターンに沿ったモジュールの大きさを所定個数求めて、その平均値を用いる。ここでは、モジュールの大きさを画素数で表す。
【００６８】
図１１に示す例の場合、モジュール１個当りおよそ２画素の解像度が求められたとする。以降の処理での基準解像度が、１モジュール当り８画素となっている場合、回転・拡縮処理手段３０３は、処理対象画像に対し、８／２＝４倍の拡大補間処理を行う。
【００６９】
また、回転・拡縮処理手段３０３は、処理対象画像に対し、回転補正処理を行い、境界線４０が処理対象画像中で水平となるようにする。
【００７０】
この結果、処理対象画像は、解像度が以降の処理に適切な１モジュール当り８画素に補正され、処理精度が向上する。また、回転補正処理によって境界線の擬似輪郭も補正され、よりきれいな境界線を得られるため、以降の処理の精度が向上する。また、以降の処理で画素走査を行う場合に、水平／垂直方向のインデックスインクリメントだけで済むため、処理速度が向上する。
【００７１】
（タイミングパターン検出処理）
次に、タイミングパターンの検出処理について説明する。図１２は、タイミングパターン検出手段１０４の構成の一例を示すブロック図である。図１２に示すタイミングパターン検出手段１０４は、処理対象画像選択手段４０１、明暗モジュールペア長検出手段４０２、基準モジュールペア長決定手段４０３、モジュールペア補正手段４０４、コードサイズ決定手段４０５を備える。
【００７２】
処理対象画像選択手段４０１は、タイミングパターンが存在する処理対象画像を選択する。２次元コードがＤａｔａＭａｔｒｉｘ（登録商標）の場合、４境界線のうち、２境界線がファインダパターン、残り２境界線がタイミングパターンである。
【００７３】
しかし、連続した黒画素のファインダパターンは検出が容易であるため、処理対象画像選択手段４０１は、ファインダパターン以外の２境界線を含む処理対象画像を選択する。選択された処理対象画像は、以後の処理に用いられる。
【００７４】
明暗モジュールペア長検出手段４０２は、タイミングパターンに含まれる隣接する明１個＋暗１個のモジュールペアの長さを順次求める。このモジュールペアを、明暗モジュールペアと呼ぶ。
【００７５】
明暗モジュールペア長検出手段４０２は、明暗の境界の位置を決定する際に、隣接画素の階調値に比例するよう位置を補間修正して位置精度を画素単位より高くなるように向上させてもよい。
【００７６】
基準モジュールペア長決定手段４０３は、検出された明暗モジュールペア長を小さい方から順に並べ、累積移動平均値を順に算出する。基準モジュールペア長決定手段４０３は、処理中の明暗モジュールペア長が、累積移動平均値に対して予め規定された倍率をかけた上限値より大きいか否かを判定する。
【００７７】
基準モジュールペア長決定手段４０３は、判定結果が「上限値より大きい」を示す場合、何らかの異常が発生したものとして、この明暗モジュールペア長を含むそれより大きな明暗モジュールペア長を破棄する。ここでの異常は、例えば、主にボケ等によるモジュールの欠落である。
【００７８】
基準モジュールペア長決定手段４０３は、例えば、残りの明暗モジュールペア長から求めた累積移動平均値の最大値を、基準モジュールペア長に決定する。なお、基準モジュールペア長決定手段４０３は、予め定められた所定個数の明暗モジュールペアに対して処理した場合に、基準モジュールペア長を決定する。
【００７９】
これは、何らかの異常が発生して明暗モジュールペア長が極度に小さくなっている場合があるからである。何らかの異常とは、主に汚れ等によるモジュールの誤検出や、ボケ等によるモジュール幅の極端な太り／細りなどである。
【００８０】
モジュールペア補正手段４０４は、基準モジュールペア長に対し、予め定められた倍率をかけた閾値を設定する。モジュールペア補正手段４０４は、この閾値に基づく範囲に入らない明暗モジュールペアが存在する場合に、基準モジュールペア長に基づいてモジュールペア数を補正する。補正処理は、タイミングパターンの欠落時と誤検出時などに行われる処理である。
【００８１】
（タイミングパターン欠落時の補正処理）
次に、タイミングパターン欠落時の具体的な補正処理について説明する。モジュールペア補正手段４０４は、基準モジュールペア長に対し、予め定められた倍率を乗算して決定した上限値より大きい明暗モジュールペア長を、モジュールの欠落が発生していると判断する。この倍率は、四捨五入を考慮して、例えば１．４とする。
【００８２】
この場合、モジュールペア補正手段４０４は、基準モジュールペア長とこの明暗モジュールペア長との比率に対応する明暗モジュールペアの個数を追加する。例えば、モジュールペア補正手段４０４は、追加個数分のモジュールがこの明暗モジュールペア長内に均等に配置されているものと仮定して、明または暗モジュールを追加補正する。これにより、モジュールの欠落が発生した場合でも、適切にモジュール数を検出することが可能となる。
【００８３】
（タイミングパターン誤検出時の補正処理）
次に、タイミングパターン誤検出時の具体的な補正処理について説明する。モジュールペア補正手段４０４は、基準モジュールペア長に対し、予め定められた倍率をかけて決定した下限値より小さい明暗モジュールペア長を、モジュールの誤検出が発生していると判断する。この倍率は、四捨五入を考慮して、例えば０．５とする。なお、汚れなどが原因で誤検出が発生する場合がある。
【００８４】
この場合、モジュールペア補正手段４０４は、この明暗モジュールペア長を隣接する明暗モジュールペアのうちペア長が短い方に加算した上で、この明暗モジュールペア長を削除し、明暗モジュールペアの個数を１減算する。これにより、モジュールの誤検出が発生した場合でも、適切にモジュール数を検出することが可能となる。
【００８５】
コードサイズ決定手段４０５は、補正処理後のモジュールペア数の２倍をコードサイズとして決定する。
【００８６】
以上より、基準モジュールペア長を前述した処理で決定することで、タイミングパターンの画像に何らかの異常が発生していたとしても、基準モジュールペア長を適切に決定することが可能となる。また、基準モジュールペア長を用いて、異常が発生した明暗モジュールペアを補間することで、コードサイズを適切に決定することが可能となる。
【００８７】
次に、図１３〜１７を用いて、タイミングパターン検出処理の具体例について説明する。図１３は、明暗モジュールペア長の例を示す図である。図１３に示す例では、タイミングパターンの暗モジュールの１個が欠落している部分５１がある。
【００８８】
明暗モジュール長検出手段４０２は、タイミングパターンを構成するモジュールの中心付近を水平方向に走査し、明（例えば白）、暗（例えば黒）モジュールペア長ａ１〜ａ１４を求める。
【００８９】
なお、図１３に示す例では、ａ１４の右に位置する右端の明暗モジュールペア５０は、明モジュールの検出誤差が大きくなることが予想されるため用いていない。最後の明モジュールは次のモジュールがないため、白画素が連続し、モジュールの境目が判断しにくいからである。
【００９０】
しかし、コード領域と余白領域との境界線が明確に分かっているなどの検出誤差が小さいと予想される場合には、最後の明暗モジュールペア５０を用いてもよい。
【００９１】
図１４は、算出された明暗モジュールペア長の一例を示す図である。図１４に示すように、明暗モジュールペア長を識別するための番号「Ｎｏ」と、明暗モジュールペア長とが対応付けられている。例えば、「ａ１」の明暗モジュールペア長は、「１８」であり、「ａ２」の明暗モジュールペア長は、「１３」である。ペア長は、例えば画素値で表す。
【００９２】
基準モジュールペア長決定手段４０３は、検出された明暗モジュールペア長を小さい（短い）順に並べ替え、小さい方から順に累積移動平均を求める。明暗モジュールペア長は、本来は全て同じとなるはずであるが、解像度やノイズや欠落などにより値が変動する。
【００９３】
図１５は、並べ替え後の明暗モジュールペア長の一例を示す図である。図１５に示す例は、図１４に示す明暗モジュールペア長を小さい順に並べ替えている。並べ替え後の順は以下の通りになる。
ａ９＜ａ２＜ａ３＜ａ１４＜ａ５＜・・・＜ａ１＜ａ１２
基準モジュールペア長決定手段４０３は、異常値を検出するための、基準モジュールペア長に乗算する値として、四捨五入すると値が変わってしまう０．５倍を下限にし、１．５倍を上限にする。
【００９４】
基準モジュールペア長決定手段４０３は、例えば、累積移動平均の０．５倍以上１．４倍以内なら正常値と判断して処理を続行する。なお、カメラの特性や以降の処理アルゴリズムの特性によっては、この倍率と異なる値を用いてもよい。
【００９５】
図１６は、累積移動平均値及び平均値との比の一例を示す図である。図１６に示すように、明暗モジュールペア長、累積移動平均値、平均値との比が対応付けられている。平均値との比は、累積移動平均値から明暗モジュールペア長への比である。
【００９６】
図１７は、明暗モジュールペア長、累積移動平均値、上限値、下限値の関係を示す図である。図１７に示す例では、ａ１２の明暗モジュールペア長で、上限値を上回るため、ａ１２の明暗モジュールペア長は、何らかの異常が発生したものと判断される。
【００９７】
よって、基準モジュールペア長決定手段４０３は、ａ１２以前のａ９からａ１までの累積移動平均値を基準モジュールペア長と決定する。この場合、図１６を参照すると、ａ１までの累積移動平均値は、「１６．０８」であるので、基準モジュールペア長を「１６」とする。
【００９８】
モジュールペア補正手段４０４は、異常値と判断されたａ１２に対応する明暗モジュールペアに対し、以下の式（２）により、補正すべきペア長を算出する。
ａ１２のペア長／基準モジュールペア長＝３４画素／１６画素  ＝２．１…  ≒２（四捨五入）  ・・・式（２）
モジュールペア補正手段４０４は、式（２）により算出された値を四捨五入して求めた値を用いて、ａ１２のペア長は、明暗モジュールペア２個分であったと判断する。
【００９９】
よって、モジュールペア補正手段４０４は、以降の処理のため、欠落している暗モジュール１個を追加する。暗モジュールを１個追加すれば、その両隣に明モジュールができるため、結果的に明暗モジュールペアが２個でき、明暗モジュールペアが１つ追加される。
【０１００】
コードサイズ決定手段４０５は、モジュールサイズと、コードサイズとを以下の式（３）、（４）により求める。
モジュールサイズ＝正常値の累積移動平均値／２  ・・・式（３）
コードサイズ＝補正後のモジュールペア数×２  ・・・式（４）
図１３に示すモジュールサイズは、図１６を参照してａ１までの累積移動平均値（１６．０８）を２で除算して四捨五入し、「８」となる。よって、図１３に示す１つのモジュールの辺当たりの画素数は、８画素である。ａ１までの累積移動平均値は、最終的には、正常値の平均値と同じである。
【０１０１】
図１３に示すコードサイズの場合、以下の式（５）により決定される。
（１４＋１（追加１ペア分）＋１（右端の処理に加えていないペア数））×２（ペアは２モジュール）＝１６×２＝３２  ・・・（５）
よって、図１３に示すコードサイズは、３２モジュールと決定することができる。
【０１０２】
＜動作＞
次に、画像処理装置１１０の動作について説明する。図１８は、実施例における画像処理方法の一例を示すフローチャートである。図１８に示すステップＳ１０１で、境界候補点検出手段２０１は、２次元コードの4境界線のうちの１つの辺に対して、２次元コード内部から外部に走査し、境界候補点を求める。
【０１０３】
ステップＳ１０２で、仮近似直線算出手段２０３は、境界候補点から仮の近似直線を求める。境界候補点選択手段２０４は、仮の近似直線からの距離を選択基準として、候補点の選択を行う。
【０１０４】
ステップＳ１０３で、境界線検出手段２０５は、選択して残った境界候補点を用いて、近似直線を算出する
ステップＳ１０４で、境界線検出手段２０５は、算出した近似直線を境界線として決定する。
【０１０５】
ステップＳ１０５で、境界検出手段１０１は、４境界線に対し、ステップＳ１０１〜Ｓ１０４の処理を行ったかを判定する。４境界線の検出が終了していなければ（ステップＳ１０５−ＮＯ）ステップＳ１０１に戻り、４境界線の検出が終了していれば（ステップＳ１０５−ＹＥＳ）ステップＳ１０６に進む。
【０１０６】
ステップＳ１０６で、頂点検出手段１０２は、４境界線を延長し、その交点から２次元コードのコード領域の４頂点位置を決定する。
【０１０７】
ステップＳ１０７で、範囲決定手段３０２は、タイミングパターンを含む処理対象画像の範囲を決定する。
【０１０８】
ステップＳ１０８で、回転・拡縮処理手段３０３は、処理対象画像の範囲に対し、回転補正および拡大補正／縮小補正を行い、処理対象画像のデータを作成する。
【０１０９】
ステップＳ１０９で、明暗モジュールペア長検出手段４０２は、タイミングパターン中の明暗モジュールペアの長さを求める。
【０１１０】
ステップＳ１１０で、基準モジュールペア長決定手段４０３は、基準モジュールペア長を用いて正常な明暗モジュールペア長を選択する。モジュールペア補正手段４０４は、基準モジュールペア長を用いて明暗モジュールペアの補正を行う。
【０１１１】
ステップＳ１１１で、コードサイズ決定手段４０５は、前述した式（３）及び式（４）により、２次元コードのモジュールサイズとコードサイズを決定する。
【０１１２】
ステップＳ１１２で、デコード手段１０５は、取得された境界線・４頂点、モジュールサイズ、コードサイズに基づいて２次元コードのデコード処理を行う。
【０１１３】
以上、実施例によれば、２次元コードの境界線の検出精度を向上させることができる。また、実施例によれば、境界線を求める際、候補点を補間して求めた上で、候補点の選択処理を行うことで、境界線を高精度に求めることが可能になる。
【０１１４】
また、実施例によれば、境界線を基準にコード領域の画像を補間して回転補正をすることで、明暗モジュールペアの長さ検出などの処理を高精度かつ高速に行うことができる。また、実施例によれば、タイミングパターンの明暗モジュールペアの長さのうち、累積移動平均値との乖離に基づき、正しく検出されているものを選択することで、コードサイズなどを適切に求めることができる。
【０１１５】
よって、実施例によれば、例えば、廉価なデジタルカメラで撮像した２次元コードを含む画像に対して、高性能かつ高速な認識処理を行うことが可能となる。
【０１１６】
次に、画像処理装置１１０が実装された携帯端末装置５００について説明する。図１９は、携帯端末装置５００のハードウェアの一例を示すブロック図である。携帯端末装置５００は、アンテナ５０１、無線部５０２、ベースバンド処理部５０３、制御部５０４、カメラ５０５、表示部５０６、主記憶部５０７、補助記憶部５０８、端末インタフェース部５０９を有する。
【０１１７】
アンテナ５０１は、送信アンプで増幅された無線信号を送信し、また、基地局から無線信号を受信する。無線部５０２は、ベースバンド処理部５０３で拡散された送信信号をＤ／Ａ変換し、直交変調により高周波信号に変換し、その信号を電力増幅器により増幅する。無線部５０２は、受信した無線信号を増幅し、その信号をＡ／Ｄ変換してベースバンド処理部５０３に伝送する。
【０１１８】
ベースバンド部５０３は、送信データの誤り訂正符号の追加、データ変調、拡散変調、受信信号の逆拡散、受信環境の判定、各チャネル信号の閾値判定、誤り訂正復号などのベースバンド処理などを行う。
【０１１９】
制御部５０４は、例えばプロセッサなどであり、制御信号の送受信などの無線制御を行う。また、制御部５０４は、補助記憶部５０８などに記憶されている画像処理プログラムを実行し、実施例において説明した画像処理を行う。
【０１２０】
カメラ５０５は、例えばＣＣＤ（Charge Coupled Device）を有し、２次元コードを含む撮像画像を生成する。
【０１２１】
表示部５０６は、例えば、ＬＣＤ（Liquid Crystal Display）などであり、画像やテキストや２次元コードに格納されたデータを表示する。
【０１２２】
主記憶部５０７は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部５０４が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。例えば、前述した境界候補点や累積移動平均値などは、主記憶部５０７に記憶される。
【０１２３】
補助記憶部５０８は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【０１２４】
端末インタフェース部５０９は、データ用アダプタ処理、ハンドセットおよび外部データ端末とのインタフェース処理を行う。
【０１２５】
図４に示す撮像手段１００は、例えば、カメラ５０５により実現され、画像処理装置１１０、デコード手段１０５は、例えば、制御部５０４により実現されうる。
【０１２６】
これにより、携帯端末装置５００において、２次元コードを撮影して、高速かつ高精度に処理を行うことができる。また、実施例における画像処理装置１１０を１又は複数の半導体集積化回路として、携帯端末装置５００に実装することも可能である。
【０１２７】
また、開示の技術は、携帯端末装置５００に限らず、他の機器にも実装することができる。例えば、前述した画像処理装置１１０、又は前述した画像処理は、２次元コードを読み取る読取装置、コンパクトデジタルカメラ、又はカメラを有する情報処理装置などにも適用可能である。
【０１２８】
また、前述した実施例で説明した画像処理を実現するためのプログラムを記録媒体に記録することで、実施例での画像処理をコンピュータに実施させることができる。
【０１２９】
また、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータや携帯端末装置に読み取らせて、前述した制御処理を実現させることも可能である。なお、記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【０１３０】
以上、実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【図１】
2012124123.tif 000003
【図２】
2012124123.tif 000004
【図３】
2012124123.tif 000005
【図４】
2012124123.tif 000006
【図５】
2012124123.tif 000007
【図６】
2012124123.tif 000008
【図７】
2012124123.tif 000009
【図８】
2012124123.tif 000010
【図９】
2012124123.tif 000011
【図１０】
2012124123.tif 000012
【図１１】
2012124123.tif 000013
【図１２】
2012124123.tif 000014
【図１３】
2012124123.tif 000015
【図１４】
2012124123.tif 000016
【図１５】
2012124123.tif 000017
【図１６】
2012124123.tif 000018
【図１７】
2012124123.tif 000019
【図１８】
2012124123.tif 000020
【図１９】
2012124123.tif 000021
【手続補正書】
【提出日】平成25年8月27日(2013.8.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
モジュールが２次元状に配置された２次元コードが撮像された画像に対し、該画像内の２次元コード内から走査してコード領域の境界の候補点を検出する候補点検出手段と、
前記候補点を用いて第１境界線を算出する算出手段と、
前記第１境界線からの距離が閾値以内にある候補点を選択する選択手段と、
前記選択手段により選択された候補点を用いて算出した第２境界線を検出する境界線検出手段と、
を備える画像処理装置。
【請求項２】
前記閾値は、前記モジュールのサイズに基いて決定される請求項１記載の画像処理装置。
【請求項３】
前記候補点検出手段は、
前記２次元コード内から走査する際、検出されるモジュールの間隔に基づき前記モジュールのサイズを推定する請求項２記載の画像処理装置。
【請求項４】
前記第２境界線を用いて前記コード領域の４頂点を検出する頂点検出手段と、
前記頂点検出手段により検出された４頂点から処理対象画像を生成する生成手段と、
前記処理対象画像に対し、明と暗とのモジュールのペアが交互に配列されたパターンを検出する際、前記モジュールのペア長に基づき、欠落した前記モジュールのペアを補正するパターン検出手段と、
をさらに備える請求項１乃至３いずれか一項に記載の画像処理装置。
【請求項５】
前記パターン検出手段は、
前記モジュールのペア長に対し、小さい順に累積移動平均値を算出して該累積移動平均値に基づいて基準となるペア長を決定する決定手段と、
前記決定手段により決定されたペア長に基づく上限値を超えるモジュールのペア長に対し、該モジュールのペア長と、前記決定されたペア長との比率により前記モジュールのペアを補正する補正手段と、
を備える請求項４記載の画像処理装置。
【請求項６】
前記補正手段は、
前記決定手段により決定されたペア長に基づく下限値より小さいモジュールのペア長を削除する請求項５記載の画像処理装置。
【請求項７】
画像処理装置に実行される画像処理方法であって、
モジュールが２次元状に配置された２次元コードが撮像された画像に対し、該画像内の２次元コード内から走査してコード領域の境界の候補点を検出し、
前記候補点を用いて第１境界線を算出し、
前記第１境界線からの距離が閾値以内にある候補点を選択し、
選択された候補点を用いて算出した第２境界線を検出する画像処理方法。
【請求項８】
モジュールが２次元状に配置された２次元コードが撮像された画像に対し、該画像内の２次元コード内から走査してコード領域の境界の候補点を検出し、
前記候補点を用いて第１境界線を算出し、
前記第１境界線からの距離が閾値以内にある候補点を選択し、
選択された候補点を用いて算出した第２境界線を検出する、
処理をコンピュータに実行させるための画像処理プログラム。
【国際調査報告】
2012124123.tif 000022
2012124123.tif 000023