(57)【要約】【課題】認識性を保持しつつ、可及的に縮小化することが可能となる二次元コード、及び二次元コードに関連する技術を提供する。【解決手段】二次元コード１は、黒色又は白色のいずれか一方で塗りつぶされたデータセル１２ｃをマトリクス状に配置したデータマトリクス１２を含み、データマトリクス１２を構成する各行１２ｒ又は各列１２ｌのいずれか一方に含まれるデータセル１２ｃのうち、多くとも１つのデータセル１２ｃのみが黒色で塗りつぶされ、他のデータセル１２ｃはすべて白色で塗りつぶされる。【選択図】  図２
2020201991.tif 000002
【特許請求の範囲】
【請求項１】
第１色及び前記第１色と異なる第２色のいずれか一方で塗りつぶされたデータセルをマトリクス状に配置したデータマトリクスを含み、
前記データマトリクスの各行をそれぞれ構成する複数のデータセルは、前記各行のすべてについて行毎に、多くとも１つのデータセルのみが前記第１色で塗りつぶされ、他のデータセルはすべて前記第２色で塗りつぶされ、
前記データマトリクスに配置される前記データセルにより、Ｎ進数の数値が表現され、
前記Ｎ進数の数値の各桁は、前記データマトリクスの各行に対応付けられ、
前記Ｎ進数の数値を構成する各桁の数値は、前記データマトリクスの各行にそれぞれ配置されたデータセルにより規定される、
二次元コードであって、
矩形平面を備え、
前記矩形平面の各隅に第１〜第４コーナーセルを設け、
少なくとも前記第１コーナーセルは、所定形状をなして、前記データマトリクスの型を規定する役割を果たし、
前記データマトリクスは、前記矩形平面上、前記第１〜第４コーナーセルの内側に形成される、
ことを特徴とする二次元コード。
【請求項２】
第１色及び前記第１色と異なる第２色のいずれか一方で塗りつぶされたデータセルをマトリクス状に配置したデータマトリクスを含み、
前記データマトリクスの各列をそれぞれ構成する複数のデータセルは、前記各列のすべてについて列毎に、多くとも１つのデータセルのみが前記第１色で塗りつぶされ、他のデータセルはすべて前記第２色で塗りつぶされ、
前記データマトリクスに配置される前記データセルにより、Ｎ進数の数値が表現され、
前記Ｎ進数の数値の各桁は、前記データマトリクスの各列に対応付けられ、
前記Ｎ進数の数値を構成する各桁の数値は、前記データマトリクスの各列にそれぞれ配置されたデータセルにより規定される、
二次元コードであって、
矩形平面を備え、
前記矩形平面の各隅に第１〜第４コーナーセルを設け、
少なくとも前記第１コーナーセルは、所定形状をなして、前記データマトリクスの型を規定する役割を果たし、
前記データマトリクスは、前記矩形平面上、前記第１〜第４コーナーセルの内側に形成される、
ことを特徴とする二次元コード。
【請求項３】
前記前記第１コーナーセルは、第１形状をなし、
前記第２〜第４コーナーセルは、前記第１形状とは異なる第２形状をなして、前記データマトリクス及び前記矩形平面の存在位置を規定する、
ことを特徴とする請求項１又は２に記載の二次元コード。
【請求項４】
前記第１色は、撮像画像に含まれる前記二次元コードを２値化した場合に黒色になる色であり、
前記第２色は、前記撮像画像に含まれる前記二次元コードを２値化した場合に白色になる色である、
ことを特徴とする請求項１乃至３のいずれか１項に記載の二次元コード。
【請求項５】
請求項１乃至４のいずれか１項に記載の二次元コードを含む撮像画像から前記二次元コードを検出する検出処理と、
前記検出処理により検出された前記二次元コードから前記データマトリクスを切り出す切出し処理と、
前記切出し処理により切り出された前記データマトリクスから前記データマトリクス上に表現されたＮ進数の数値を認識する認識処理と、
をコンピュータに実行させる認識処理プログラム。
【請求項６】
前記コンピュータにさらに、
前記認識処理により認識された前記Ｎ進数の数値を１０進数の数値に変換する変換処理と、
前記変換処理により変換された前記１０進数の数値を含む送信データを生成する生成処理と、
前記生成処理により生成された前記送信データを管理サーバに送信する送信処理と、
を実行させる
ことを特徴とする請求項５に記載の認識処理プログラム。
【請求項７】
請求項６に記載の認識処理プログラムの前記送信処理により送信された前記送信データを受信する受信処理と、
前記受信処理により受信された前記送信データに含まれる前記１０進数の数値に対応する情報を前記管理サーバのデータベースから取得する取得処理と、
前記取得処理により取得された情報を含む送信データを生成する生成処理と、
前記生成処理により生成された前記送信データを端末装置に送信する送信処理と、
を前記管理サーバに実行させるプログラム。
【請求項８】
前記１０進数の数値に対応する情報は、Ｗｅｂサーバのインターネット上の位置を示す情報と、前記Ｗｅｂサーバに格納された所定データが存在するディレクトリを特定する情報と、前記所定データを表示するファイルを特定する情報とを含む、
ことを特徴とする請求項７に記載のプログラム。
【請求項９】
請求項１乃至４のいずれか１項に記載の二次元コードが形成された物理媒体を撮影する撮影部と、
制御部と、
を備え、
前記制御部は、
前記撮影部により撮影された前記二次元コードを含む撮像画像から前記二次元コードを検出し、
前記検出された前記二次元コードから前記データマトリクスを切り出し、
前記切り出された前記データマトリクスから前記データマトリクス上に表現されたＮ進数の数値を認識する、
ことを特徴とする認識処理装置。
【請求項１０】
請求項１乃至４のいずれか１項に記載の二次元コードを含む撮像画像から前記二次元コードを検出し、
前記検出された前記二次元コードから前記データマトリクスを切り出し、
前記切り出された前記データマトリクスから前記データマトリクス上に表現されたＮ進数の数値を認識する、
ことを特徴とする認識処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、二次元コード、及び二次元コードを認識し、認識した二次元コードに基づいて処理を行う技術に関するものである。
【背景技術】
【０００２】
特許文献１には、マーカーと、マーカーに対して所定の位置に配置され、マトリクス状に配置された２進データセルからなるデータマトリクスとを備えた二次元コードが記載されている。
【０００３】
かかる従来の二次元コードでは、コード全体をコンパクトにして、Ｗｅｂカメラで良好な認識ができるように、データマトリクスとして４×４の２進データセルからなるものを採用している。データマトリクスはさらに、タイミングセル領域とデータセル領域とにより構成されているので、２進データが実質的に割り当てられるセルはデータセル領域内の８個のセルである。したがって、かかる従来の二次元コードでは、最大８ビットの２進データを扱うことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−８４０３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで上記従来の二次元コードでは、データセル領域内の８個のセルは上下左右に隣接し、各セルは白データセル又は黒データセルのいずれも任意に割り当てられるので、黒データセルが上下左右に隣接して配置される場合がある。
【０００６】
このような二次元コードを、さらなるコンパクト化を図るために縮小したとすると、白データセルが黒データセルに比べて特に少ない場合には、Ｗｅｂカメラで撮影して得られた撮像画像において、白データセルが潰れてしまい、二次元コードを正しく認識できない虞がある。
【０００７】
また、よく知られた二次元コードとして、ＱＲコード（登録商標）があるが、ＱＲコードは、白データセルが黒データセルに比べて非常に少ないので、現在のサイズ以上に縮小化した場合、上記従来の二次元コードと同様の理由により、ＱＲコードを正しく認識できない虞がある。
【０００８】
そこで本願は、認識性を保持しつつ、可及的に縮小化することが可能となる二次元コード、及び二次元コードに関連する技術を提供することを目的とする。 
【課題を解決するための手段】
【０００９】
上記目的を達成するため、請求項１に係る二次元コードは、第１色及び第１色と異なる第２色のいずれか一方で塗りつぶされたデータセルをマトリクス状に配置したデータマトリクスを含み、データマトリクスの各行をそれぞれ構成する複数のデータセルは、各行のすべてについて行毎に、多くとも１つのデータセルのみが第１色で塗りつぶされ、他のデータセルはすべて第２色で塗りつぶされ、データマトリクスに配置されるデータセルにより、Ｎ進数の数値が表現され、Ｎ進数の数値の各桁は、データマトリクスの各行に対応付けられ、Ｎ進数の数値を構成する各桁の数値は、データマトリクスの各行にそれぞれ配置されたデータセルにより規定される、二次元コードであって、矩形平面を備え、矩形平面の各隅に第１〜第４コーナーセルを設け、少なくとも第１コーナーセルは、所定形状をなして、データマトリクスの型を規定する役割を果たし、データマトリクスは、矩形平面上、第１〜第４コーナーセルの内側に形成される、ことを特徴とする。
【００１０】
また、上記目的を達成するため、請求項２に係る二次元コードは、第１色及び第１色と異なる第２色のいずれか一方で塗りつぶされたデータセルをマトリクス状に配置したデータマトリクスを含み、データマトリクスの各列をそれぞれ構成する複数のデータセルは、各列のすべてについて列毎に、多くとも１つのデータセルのみが第１色で塗りつぶされ、他のデータセルはすべて第２色で塗りつぶされ、データマトリクスに配置されるデータセルにより、Ｎ進数の数値が表現され、Ｎ進数の数値の各桁は、データマトリクスの各列に対応付けられ、Ｎ進数の数値を構成する各桁の数値は、データマトリクスの各列にそれぞれ配置されたデータセルにより規定される、二次元コードであって、矩形平面を備え、矩形平面の各隅に第１〜第４コーナーセルを設け、少なくとも第１コーナーセルは、所定形状をなして、データマトリクスの型を規定する役割を果たし、データマトリクスは、矩形平面上、第１〜第４コーナーセルの内側に形成される、ことを特徴とする。
【００１１】
請求項３に係る二次元コードは、請求項１又は２の二次元コードにおいて、第１コーナーセルは、第１形状をなし、第２〜第４コーナーセルは、第１形状とは異なる第２形状をなして、データマトリクス及び矩形平面の存在位置を規定する、ことを特徴とする。
【００１２】
請求項４に係る二次元コードは、請求項１〜３の二次元コードにおいて、第１色は、撮像画像に含まれる二次元コードを２値化した場合に黒色になる色であり、第２色は、撮像画像に含まれる二次元コードを２値化した場合に白色になる色である、ことを特徴とする。
【００１３】
上記目的を達成するため、請求項５に係る認識処理プログラムは、請求項１乃至４のいずれか１項に記載の二次元コードを含む撮像画像から二次元コードを検出する検出処理と、検出処理により検出された二次元コードからデータマトリクスを切り出す切出し処理と、切出し処理により切り出されたデータマトリクスからデータマトリクス上に表現されたＮ進数の数値を認識する認識処理と、をコンピュータに実行させることを特徴とする。
【００１４】
請求項６に係る認識処理プログラムは、請求項５の認識処理プログラムにおいて、コンピュータにさらに、認識処理により認識されたＮ進数の数値を１０進数の数値に変換する変換処理と、変換処理により変換された１０進数の数値を含む送信データを生成する生成処理と、生成処理により生成された送信データを管理サーバに送信する送信処理と、を実行させることを特徴とする。
【００１５】
上記目的を達成するため、請求項７に係るプログラムは、請求項６に記載の認識処理プログラムの送信処理により送信された送信データを受信する受信処理と、受信処理により受信された送信データに含まれる１０進数の数値に対応する情報を管理サーバのデータベースから取得する取得処理と、取得処理により取得された情報を含む送信データを生成する生成処理と、生成処理により生成された送信データを端末装置に送信する送信処理と、を管理サーバに実行させることを特徴とする。
【００１６】
請求項８に係るプログラムは、請求項７のプログラムにおいて、１０進数の数値に対応する情報は、Ｗｅｂサーバのインターネット上の位置を示す情報と、Ｗｅｂサーバに格納された所定データが存在するディレクトリを特定する情報と、所定データを表示するファイルを特定する情報とを含む、ことを特徴とする。
【００１７】
上記目的を達成するため、請求項９に係る認識処理装置は、請求項１乃至４のいずれか１項に記載の二次元コードが形成された物理媒体を撮影する撮影部と、制御部と、を備え、制御部は、撮影部により撮影された二次元コードを含む撮像画像から二次元コードを検出し、検出された二次元コードからデータマトリクスを切り出し、切り出されたデータマトリクスからデータマトリクス上に表現されたＮ進数の数値を認識する、ことを特徴とする。
【００１８】
上記目的を達成するため、請求項１０に係る認識処理方法は、請求項１乃至４のいずれか１項に記載の二次元コードを含む撮像画像から二次元コードを検出し、検出された二次元コードからデータマトリクスを切り出し、切り出されたデータマトリクスからデータマトリクス上に表現されたＮ進数の数値を認識する、ことを特徴とする。
【発明の効果】
【００１９】
請求項１又は２に係る二次元コードによれば、認識性を保持しつつ、可及的に縮小化することが可能となる。
【００２０】
請求項１又は２に係る二次元コードによれば、膨大な数の異なる数値をデータマトリクスに割り当てる、つまりコード化することができる。
【００２１】
請求項１又は２に係る二次元コードによれば、第１コーナーセルの形状によってデータマトリクスの型が分かるので、データマトリクスに割り当てられたコードをデコードするのに有用である。
【００２２】
請求項１又は２に係る二次元コードによれば、撮像画像から矩形平面を切り出す際、及び矩形平面からデータマトリクスを切り出す際に、第２〜第４コーナーセルを基準にして行えばよいので、当該切出しを容易化することが可能となる。
【図面の簡単な説明】
【００２３】
【図１】本願の一実施の形態に係る認識処理装置を適用したスマートフォンの概略構成を示すブロック図である。
【図２】二次元コードの構成の一例を示す図である。
【図３】図２（ａ）の二次元コードに含まれるデータマトリクス特有の構成を説明するための図である。
【図４】図３の領域Ｒ１を複数の領域に分割する構成の一例を示す図である。
【図５】コード化の方法の一例を示す図である。
【図６】図１のスマートフォン、特にＣＰＵが実行する制御処理の手順を示すフローチャートである。
【図７】図６の制御処理に含まれるコード検出・デコード処理の詳細な手順を示すフローチャートである。
【図８】管理サーバ、特にＣＰＵが実行する制御処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下、本願の実施の形態を図面に基づいて詳細に説明する。
【００２５】
図１は、本願の一実施の形態に係る認証処理装置を適用したスマートフォン１００の概略構成を示すブロック図である。
【００２６】
同図に示すように、本実施形態のスマートフォン１００は、当該スマートフォン１００全体の制御を司るＣＰＵ（Central Processing Unit）１０１を備えている。ＣＰＵ１０１には、タッチパネル１０２、操作子１０３、各種センサ１０４，メモリ１０５、タイマ１０６、音声入力インタフェース（Ｉ／Ｆ）１０７、通信インタフェース（Ｉ／Ｆ）１１０、サウンドシステム１０８及びカメラ１０９が接続されている。
【００２７】
タッチパネル１０２は、一般的なスマートフォンが備えているものと変わらず、表示デバイスとしての機能と、入力デバイスとしての機能を兼ね備えたものである。
【００２８】
操作子１０３は、タッチパネル１０２上に表示されるアイコンやボタン（ソフトウェアにより生成されて表示されるもの）ではなく、ハードウェアスイッチ（ハードウェアにより形成されるもの）である。その典型例としては、電源スイッチやリセットスイッチ（ともに図示せず）などを挙げることができる。
【００２９】
各種センサ１０４には、地磁気センサ、ＧＰＳ（Global Positioning System）、加速度センサ、超音波センサ、赤外線または可視光を検出する光センサなどが含まれる。
【００３０】
メモリ１０５には、ＣＰＵ１０１によって実行される制御プログラムや各種アプリケーションプログラム、各プログラムによって画面表示に利用される画像データや発音に利用される音声データを含む各種データ等を記憶するＲＯＭ（Read Only Memory）と、上記画像データや音声データを含む各種データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ（Random Access Memory）が含まれている。上記制御プログラムや各種アプリケーションプログラム、各種データ等は、本実施形態では適宜、追加、削除あるいはアップデートできるようにするために、ＲＯＭとして、書き換え可能な不揮発性のもの、具体的にはフラッシュメモリを採用している。
【００３１】
タイマ１０６は、タイマ割込み処理における割込み時間や各種時間を計時する。
【００３２】
音声入力Ｉ／Ｆ１０７は、マイクロフォン（以下「マイク」と略す）１１１を接続し、マイク１１１を介して入力された周囲のアナログ音声信号（典型的には、ユーザが発音した音声）をデジタル音声信号（音声データ）に変換し、バッファ（図示せず）に記憶する。
【００３３】
通信Ｉ／Ｆ１１０は、スマートフォン１００を、例えばインターネットなどの通信ネットワーク２００に接続させ、通信ネットワーク２００に接続された他の機器、本実施形態では、管理サーバ３１０及び多数のＷｅｂサーバ３２０ｎ（ｎ＝１，２，・・）との間で各種データの送受信を行う。上記プログラム等の追加、削除あるいはアップデートは、管理サーバ３１０を介して行うようにしてもよい。この場合、通信Ｉ／Ｆ１１０は、管理サーバ３１０から各種プログラムや各種データをダウンロードするために用いられる。クライアントとなるスマートフォン１００は、通信Ｉ／Ｆ１１０および通信ネットワーク２００を介して管理サーバ３１０へとプログラムやデータのダウンロードを要求するコマンドを送信する。管理サーバ３１０は、このコマンドを受け、要求されたプログラムやデータを、通信ネットワーク２００を介してスマートフォン１００へと配信し、スマートフォン１００が通信Ｉ／Ｆ１１０を介して、これらプログラムやデータを受信してメモリ１０５（のフラッシュメモリ）に蓄積することにより、ダウンロードが完了する。
【００３４】
サウンドシステム１０８は、例えば、ＤＡＣ（Digital-to-Analog Converter）やアンプ、スピーカ等によって構成される。サウンドシステム１０８は、電話の相手方が発音して、通信ネットワーク２００及び通信Ｉ／Ｆ１１０を介して入力された音声信号を音響に変換する。この場合、相手方のスマートフォンあるいは電話機が通信ネットワーク２００に接続されていることは言うまでもない。また、サウンドシステム１０８は、ＣＰＵ１０１が上記制御プログラムや各種アプリケーションプログラムを実行しているときに生成した楽音信号も音響に変換する。楽音信号は、本実施形態では、ＣＰＵ１０１が音源プログラムを実行することによって生成する、いわゆるソフトウェア音源によって生成する。もちろん、ソフトウェア音源を用いて楽音信号を生成する態様に限らず、ハードウェア音源を用いてもよいし、一部をハードウェアで構成し、残りをソフトウェアで構成した音源を用いてもよい。
【００３５】
なお本実施形態では、認証処理装置としてスマートフォン１００を採用したが、これに限らず、タブレット端末や携帯型のノートＰＣ（パーソナルコンピュータ）、ＰＤＡ（personal digital assistant）などを採用してもよい。但し本実施形態では、二次元コードの形成された物理媒体をカメラ１０９で撮影して、撮像画像を取得し、その撮像画像から二次元コードを認識するようにしているので、どの装置を採用したとしても、カメラを備えている必要がある。もちろん、内蔵する必要はなく、外付けできる構成であってもよい。
【００３６】
図２は、本実施形態で用いる二次元コードの一例を示し、図２には、３種類の二次元コード１，５及び１′が例示されている。図２（ａ）の二次元コード１は、１０行×１０列の１００個のデータセル１２ｃからなるデータマトリクス１２を含むコードである。図２（ｂ）の二次元コード５は、４行×４列の１６個のデータセル５２ｃからなるデータマトリクス５２を含むコードである。図２（ｃ）の二次元コード１′は、８行×８列の６４個のデータセル１２ｃからなるデータマトリクス１２′を含むコードである。
【００３７】
二次元コード１は、図２（ａ）に示すように矩形（本実施形態では、正方形）平面１０上に形成されている。そして矩形平面１０の４隅（コーナー）にはそれぞれ、コーナーセル１０ａ〜１０ｄ（以下、左上隅から時計回りに「第１コーナーセル１０ａ」、「第２コーナーセル１０ｂ」、「第３コーナーセル１０ｃ」及び「第４コーナーセル１０ｄ」という）が設けられている。第１〜第４コーナーセル１０ａ〜１０ｄには、特有の役割を持たせている。
【００３８】
具体的には、第１コーナーセル１０ａは、黒色で三角形状に塗りつぶされ、二次元コード１の型（タイプ）を示す役割を果たしている。つまり、第１コーナーセル１０ａの黒三角形は、二次元コード１が１０×１０のデータセル１２ｃからなるデータマトリクス１２を有するタイプ（以下「１０×１０ドットタイプ」という）であることを示している。
【００３９】
一方、第２〜第４コーナーセル１０ｂ〜１０ｄはいずれも、黒色で矩形（本実施形態では、正方形）状に塗りつぶされ、二次元コード１の存在位置、ひいてはデータマトリクス１２の存在位置を示す役割を果たしている。
【００４０】
データマトリクス１２は、矩形平面１０内に、矩形（本実施形態では、正方形）状に形成され、各行１２ｒは、１０個のデータセル１２ｃを有し、各列１２ｌも、１０個のデータセル１２ｃを有している。各データセル１２ｃも、矩形（本実施形態では、正方形）状に形成され、黒色又は白色のいずれか１色で塗りつぶされる。以下、黒色で塗りつぶされたデータセルを「黒データセル」といい、白色で塗りつぶされたデータセルを「白データセル」という。
【００４１】
本発明の特徴の１つは、各行１２ｒ又は各列１２ｌのいずれか一方に、黒データセルは多くて１つのみが割り当てられる点である。この特徴により、二次元コード１の認識性を保持しながら、コード全体のサイズを極めて小さくすることができる。つまり、データマトリクス１２内に黒データセルの密度が高い状態で、全体のサイズを縮小した二次元コードを撮影すると、その撮像画像には、黒データセル間に配置された白データセルが潰れた状態になることがある。この場合、撮影画像内の二次元コードからデコードした結果は、正しいものではないので、撮影位置を変えながら何度も撮影したり、ズームアップして撮影したり等しなければならず、ユーザにとって煩わしい。しかし、黒データセルの密度が極めて低いという、本発明のこの特徴によれば、白データセルが潰れた状態で撮影されることは極めて少ないので、黒データセルの位置は正しく正しく認識される。もちろん、縮小化の程度に限界はあるが、黒データセルの密度が高いものに比べて、極めて高い縮小化率を達成することができる。
【００４２】
なお、黒データセル及び白データセルにおける黒色及び白色は、二次元コード１の撮像画像に対して２値化を行った後の色を意味する。したがって、各データセル１２ｃやコーナーセル１０ａ〜１０ｄの実際の色は、２値化後に黒色及び白色になるような色であれば、黒色及び白色に限られない。この事情は、二次元コード５についても同様である。
【００４３】
二次元コード５も、図２（ｂ）に示すように矩形平面５０上に形成されている。二次元コード５は、二次元コード１に対して、データマトリクス５２を構成するデータセル５２ｃの個数と、第１コーナーセル５０ａの塗りつぶし方とが異なっている。つまり、第１コーナーセル５０ａの三角形は、黒色の三角形の内部を白色の三角形で打ち抜いたような形状となっている。この打抜き三角形が、二次元コード５が４×４のデータセル５２ｃからなるデータマトリクス５２を有するタイプ（以下「４×４ドットタイプ」という）であることを示している。
【００４４】
図２（ｃ）に示す二次元コード１′は、二次元コード１に対して、データマトリクス１２′を構成するデータセル１２ｃの個数と、第１コーナーセル１０ａが無いこととが異なっている。
【００４５】
このように二次元コード１′には、第１コーナーセル１０ａが存在しない。しかし、第２〜第４コーナーセル１０ｂ〜１０ｄのそれぞれの形状及び大きさと、データセル１２ｃの形状及び大きさとが同一であるので、データマトリクス１２′のドットタイプは、第２コーナーセル１０ｂと第３コーナーセル１０ｃとの間隔、及び第３コーナーセル１０ｃと第４コーナーセル１０ｄとの間隔から算出することができる。つまり、二次元コード１′は、本実施形態の二次元コードにおいて、第１コーナーセル１０ａが必須の構成でないことを示している。さらに二次元コード１′は、データマトリクスを構成するデータセルの個数も任意に設定できることも示している。
【００４６】
なお本実施形態では、二次元コード１でも二次元コード５でも、第２〜第４コーナーセル１０ｂ〜１０ｄ，５０ｂ〜５０ｄのそれぞれの形状及び大きさと、データセル１２ｃ，５２ｃの形状及び大きさとは同一である。したがって、二次元コード１でも二次元コード５でも、第１コーナーセル１０ａ，５０ａを無くすことは可能である。しかし、第１コーナーセル１０ａ，５０ａを無くすと、データマトリクス１２，５２のドットタイプを第２〜第４コーナーセル１０ｂ〜１０ｄ，５０ｂ〜５０ｄから算出しなければならず、その算出処理がＣＰＵ１０１に負担をかけることになる。このため、第１コーナーセル１０ａ，５０ａを設け、ＣＰＵ１０１にとって負担となる算出処理を省略して、ＣＰＵ１０１には、その形状により、データマトリクス１２，５２のドットタイプを判断させるようにしている。
【００４７】
図３は、二次元コード１に含まれるデータマトリクス１２特有の構成を説明するための図である。データマトリクス１２特有の構成とは、データマトリクス１２中の第１列、つまり図３における領域Ｒ１には、第１列を除いたデータマトリクス１２の分割態様と、当該データマトリクス１２に割り当てられるコードの種類とを規定する役割を持たせていることである。
【００４８】
具体的には、図３（ａ）に示すように、第１列、つまり領域Ｒ１に含まれるデータセルのうち、第１行目のデータセル（１，１）が黒データセルである場合は、領域Ｒ１を除いたデータマトリクス１２は領域Ｒ１１〜Ｒ１３の３分割にして使用すること、及び二次元コード１がＷｅｂサーバ３２０ｎに格納されているデータの位置を特定する種類のコードであることを示す。
【００４９】
領域Ｒ１１は、１０×４のデータセル１２ｃを含み、領域Ｒ１２は、５×５のデータセル１２ｃを含み、領域Ｒ１３は、５×５のデータセル１２ｃを含んでいる。そして、領域Ｒ１１に割り当てられるコードは、Ｗｅｂサーバ３２０ｎのＵＲＬ（Uniform Resource Locator）を示し、領域Ｒ１２に割り当てられるコードは、当該Ｗｅｂサーバ３２０ｎに格納されたデータが存在するディレクトリ名を示し、領域Ｒ１３に割り当てられるコードは、当該データの表示ファイル名を示している。但し、Ｒ１１〜Ｒ１３に割り当てられるコードが、直接的に上記各情報を示すのではなく、間接的に上記各情報を示している。つまり、Ｒ１１〜Ｒ１３に割り当てられるコードは、後述のようにＮ進数の数値であるのに対して、上記ＵＲＬ、ディレクトリ名及び表示ファイル名は、Ｎ進数の数値ではないからである。しかし、Ｒ１１〜Ｒ１３に割り当てられるコード（厳密には、Ｎ進数の数値を１０進数に変換した後の数値）は、上記ＵＲＬ、ディレクトリ名及び表示ファイル名と１対１に対応付けられているので、前者のコードは、後者の情報を間接的に示すことになる。この事情は、図３（ｂ）及び図３（ｃ）に示す二次元コード１についても同様に適用することができる。
【００５０】
なお、データマトリクス１２内の各データセル１２ｃの位置を示す表記法として、以下（ｒ，ｌ）（但し、ｒ，ｌは整数値）という表記法を用いる。カッコ内の最初の“ｒ”は、第ｒ行を示し、次の“ｌ”は、第ｌ列を示している。
【００５１】
また図３（ｂ）に示すように、データセル（２，１）が黒データセルである場合は、領域Ｒ１を除いたデータマトリクス１２は、分割されずにそのまま１領域の領域Ｒ２１として使用すること、及び二次元コード１がＷｅｂサーバ３２０ｎのインターネット上の位置を特定する種類のコードであることを示す。
【００５２】
領域Ｒ２１は、１０×９のデータセル１２ｃを含んでいる。そして、領域Ｒ２１に割り当てられるコードは、Ｗｅｂサーバ３２０ｎのＵＲＬを示している。
【００５３】
また、データセル（３，１）が黒データセルである場合（図示せず）は、データセル（２，１）が黒データセルである場合と同様に、領域Ｒ１を除いたデータマトリクス１２は、分割されずにそのまま１領域の領域Ｒ２１として使用すること、及び二次元コード１が部品番号を特定する種類のコードであることを示す。
【００５４】
さらに図３（ｃ）に示すように、データセル（４，１）が黒データセルである場合、領域Ｒ１を除いたデータマトリクス１２は、領域Ｒ３１，Ｒ３２の２分割にして使用すること、及び二次元コード１がＷｅｂサーバ３２０ｎに格納されているデータの位置を特定する種類のコードであることを示す。
【００５５】
領域Ｒ３１は、１０×６のデータセル１２ｃを含み、領域Ｒ３２は、１０×３のデータセル１２ｃを含んでいる。そして、領域Ｒ３１に割り当てられるコードは、Ｗｅｂサーバ３２０ｎのＵＲＬを示し、領域Ｒ３２に割り当てられるコードは、当該Ｗｅｂサーバ３２０ｎに格納されたデータが存在するディレクトリ名を示している。
【００５６】
同様にして、データセル（５，１）〜（１０，１）が黒データセルである場合毎に、領域Ｒ１を除いたデータマトリクス１２の分割態様と、当該データマトリクス１２に割り当てられるコードの種類とを規定することができる。このように規定された二次元コード１を、データセル（１，１）が黒データセルである場合から順に、Ａ〜Ｋタイプの二次元コード１という。
【００５７】
なお、図３（ａ）に示す二次元コード１は、この１つのコードのみで、スマートフォン１００は、Ｗｅｂサーバ３２０ｎに格納された目的のデータに到達することができる。これに対し、図３（ｃ）に示す二次元コード１は、この１つのコードのみでは、スマートフォン１００は、Ｗｅｂサーバ３２０ｎに格納された目的のデータに到達することができない。このため、二次元コード１が形成された物理媒体に、二次元コード５を追加して形成し、不足している情報を二次元コード５から取得するようにする。具体的には、図３（ｃ）に示す二次元コード１には、Ｗｅｂサーバ３２０ｎに格納された目的のデータのファイル名の情報が不足しているので、二次元コード５に、このファイル名の情報を割り当てておく。そして、二次元コード１のデコード結果に、二次元コード５のデコード結果を加えることで、スマートフォン１００は、撮像画像から、Ｗｅｂサーバ３２０ｎに格納された目的のデータに到達することができる。
【００５８】
図４は、図３の領域Ｒ１を複数の領域に分割する構成の一例を示している。
【００５９】
上述のように、本発明の特徴の１つは、各行１２ｒ又は各列１２ｌのいずれか一方に、黒データセルは多くて１つのみが割り当てられる点である。しかし、二次元コード１は、各行１２ｒも各列１２ｌも、１０個のデータセル１２ｃからなるので、いずれか１行又は１列に、黒データセルが２個割り当てられたとしても、白データセルに対する黒データセルの密度が高くなったとは言えない。このため、いずれか１行又は１列に、黒データセルが２個程度割り当てられることは、許容される。
【００６０】
領域Ｒ１に黒データセルを１つのみ割り当てた場合、領域Ｒ１を除いたデータマトリクス１２の使用態様及びコードの種類は、１０種類に限定される。これに対して、２つの領域Ｒ２，Ｒ３にそれぞれ黒データセルを１つずつ割り当てた場合には、領域Ｒ１を除いたデータマトリクス１２の使用態様及びコードの種類は、２５種類に増加する。１行又は１列における黒データセルの密度の増加より、使用態様の増加の方が効果が大きいため、いずれか１行又は１列に、黒データセルが２個程度割り当てられることは、十分許容される。
【００６１】
次に、データマトリクスへのコードの割り当て方法について説明する。説明を簡単化するため、４×４のデータセル５２ｃからなるデータマトリクス５２へのコードの割り当てを例に挙げて、その割り当て方法を説明する。
【００６２】
図５（ａ）は、データマトリクス５２に４進数を割り当てる方法を説明するための図である。図示例は、黒データセルを各行に多くとも１つ割り当てる例を示している。
【００６３】
図５（ａ）において、コード３ａ：１、コード３ｂ：２、コード３ｃ：３、コード３ｄ：１０、コード３ｅ：１１、コード３ｆ：１２、コード３ｇ：１３、コード３ｈ：２０、コード３ｉ：２１、コード３ｊ：２２、コード３ｋ：２３、コード３ｌ：３０、コード３ｍ：３３、コード３ｎ：１００、である。但し、“：”の右側の数値は、４進数を示している。つまりデータマトリクス５２において、第１行が４進数の第１桁を示し、第２行が４進数の第２桁を示し、第３行が４進数の第３桁を示し、第４行が４進数の第４桁を示している。
【００６４】
図５（ｂ）は、データマトリクス５２に５進数を割り当てる方法を説明するための図である。
【００６５】
図５（ｂ）において、コード４ａ：１、コード４ｂ：２、コード４ｃ：３、コード４ｄ：４、コード４ｅ：１０、コード４ｆ：１１、コード４ｇ：１２、コード４ｈ：２０、コード４ｉ：２１、コード４ｊ：４４、コード４ｋ：３０、コード４ｌ：３１、コード４ｍ：４４４、コード４ｎ：１０００、である。但し、“：”の右側の数値は、５進数を示している。つまりデータマトリクス５２、第１行が５進数の第１桁を示し、第２行が５進数の第２桁を示し、第３行が５進数の第３桁を示し、第４行が５進数の第４桁を示している。
【００６６】
このように１行のデータセルが同数（図示例では、４つ）であっても、割り当て方法を変更すれば、異なった進数を割り当てることができる。
【００６７】
以上のように構成されたスマートフォン１００が実行する制御処理を、図６及び図７を参照して詳細に説明する。以下、各処理の手順の説明において、ステップを「Ｓ」と表記する。
【００６８】
図６は、スマートフォン１００、特にＣＰＵ１０１が実行する制御処理の手順を示している。
【００６９】
図６において、まずＣＰＵ１０１は、撮像画像の画像処理を実行する（Ｓ１０）。撮像画像とは、二次元コード１を含む物理媒体を、例えば上記カメラ１０９により撮影して生成した画像である。物理媒体は、例えば印刷物であるが、二次元コード１が形成されるものであれば、印刷物に限らない。なお以下の説明では、二次元コード１を中心に説明する。二次元コード１の方が二次元コード５より複雑であるので、二次元コード５の認識処理は、二次元コード１の認識処理を簡単に類推適用できるからである。
【００７０】
画像処理には、撮像画像のノイズを除去するノイズ除去処理、ノイズ除去後の撮像画像を２値化する２値化処理、及び２値化後の撮像画像から二次元コード１を切り出す切出し処理などが含まれる。
【００７１】
切出し処理では、ＣＰＵ１０１は、第２〜第４コーナーセル１０ｂ〜１０ｄに基づいて二次元コード１の矩形平面１０を特定し、特定した矩形平面１０を撮像画像から切り出す。このとき、撮像画像内に、第２〜第４コーナーセル１０ｂ〜１０ｄと同様の３つのコーナーセルがある場合がある。上述のように被撮影媒体に、二次元コード１と二次元コード５とが形成される場合があるからである。この場合には、ＣＰＵ１０１は、撮像画像において２つの矩形平面１０及び矩形平面５０を特定し、当該撮像画像から特定した矩形平面１０及び矩形平面５０を切り出す。
【００７２】
次にＣＰＵ１０１は、コード検出・デコード処理を実行する（Ｓ１２）。
【００７３】
図７は、コード検出・デコード処理の詳細な手順を示している。図７において、まずＣＰＵ１０１は、ドットタイプを特定する（Ｓ４０）。ドットタイプは、第１コーナーセルの三角形に基づいて特定されるので、ＣＰＵ１０１は、第１コーナーセルの三角形が黒色で塗りつぶされているか否かを判断する。この判断で、第１コーナーセルの三角形が黒色で塗りつぶされていると判断される場合、ＣＰＵ１０１は、切り出された二次元コードを１０×１０ドットタイプの二次元コード１と特定する。一方、第１コーナーセルの三角形が上記打抜き三角形であると判断される場合、ＣＰＵ１０１は、切り出された二次元コードを４×４ドットタイプの二次元コード５と特定する。
【００７４】
次にＣＰＵ１０１は、データマトリクスを切り出す（Ｓ４２）。データマトリクス１２，５２は、矩形平面１０，５０の内部に形成されているので、ＣＰＵ１０１は、第２〜第４コーナーセル１０ｂ〜１０ｄ，５０ｂ〜５０ｄに基づいて、データマトリクス１２，５２を特定し、特定したデータマトリクス１２，５２を矩形平面１０，５０から切り出す。
【００７５】
次にＣＰＵ１０１は、二次元コードのタイプを特定する（Ｓ４４）。本実施形態では上述のように、二次元コード１を説明の中心にしているので、Ｓ４２で切り出されるデータマトリクスは、二次元コード１に含まれるデータマトリクス１２である。したがって、データマトリクス１２には領域Ｒ１が含まれるため、Ｓ４４の処理は意味を持つ。しかし、Ｓ４２で切り出されるデータマトリクスが二次元コード５に含まれるデータマトリクス５２である場合には、データマトリクス５２には領域Ｒ１が含まれないため、Ｓ４４の処理は意味を持たない。この場合、ＣＰＵ１０１は、Ｓ４４の処理をスキップする。
【００７６】
Ｓ４４では、ＣＰＵ１０１は、二次元コード１が上記Ａ〜Ｋタイプのいずれであるかを、領域Ｒ１における黒データセルの位置に基づいて特定する。
【００７７】
次にＣＰＵ１０１は、デコードする（Ｓ４６）。具体的には、デコード対象がＡタイプの二次元コード１である場合、つまり上記図３（ａ）の二次元コード１である場合、ＣＰＵ１０１は、領域Ｒ１１〜Ｒ１３毎にデコードする。例えば、領域Ｒ１１には、４進数の数値が割り当てられ、領域Ｒ１２及び領域Ｒ１３にはそれぞれ、５進数の数値が割り当てられているとすると、ＣＰＵ１０１は、領域Ｒ１１のコードから４進数の数値をデコードし、領域Ｒ１２及び領域Ｒ１３の各コードからそれぞれ、５進数の数値をデコードする。なお、各領域Ｒ１１〜Ｒ１３にそれぞれ割り当てられる数値の進数が何進数であるかは、二次元コード１のタイプと対応付けるようにしておけばよい。
【００７８】
一方、デコード対象がＤタイプの二次元コード１である場合、つまり上記図３（ｃ）の二次元コード１である場合、ＣＰＵ１０１は、領域Ｒ３１，Ｒ３２毎にデコードする。上述のように、Ｄタイプの二次元コード１は、Ａタイプの二次元コード１と同様に、Ｗｅｂサーバ３２０ｎに格納されているデータを取得する種類のものであるが、Ａタイプの二次元コード１と異なり、Ｄタイプの二次元コード１だけでは、取得対象のデータに到達できない。このため、不足している情報を二次元コード５から取得する必要がある。この場合、上述したように既にＣＰＵ１０１が、Ｓ４２の処理によって二次元コード５のデータマトリクス５２を切り出しているのであれば、切り出したデータマトリクス５２をデコードすればよい。しかし媒体上、二次元コード５が二次元コード１と離れて形成されているなどの事情により、撮像画像内に二次元コード１のみが含まれ、二次元コード５が含まれていない場合には、ＣＰＵ１０１は、二次元コード１のデコード後、「情報が不足しているので、別の二次元コードも撮影してください」という警告メッセージをタッチパネル１０２に表示する。これに応じてユーザが別の二次元コード５を撮影すると、ＣＰＵ１０１は、上記Ｓ１０，Ｓ４０，Ｓ４２，Ｓ４６の各処理を行って、二次元コード５に含まれるデータマトリクス５２をデコードし、情報不足を解消させる。
【００７９】
次にＣＰＵ１０１は、送信データを生成する（Ｓ４８）。なお、処理がＳ４８に進んだ時点では、上記情報不足は解消されているものとする。ここで送信データとは、上記管理サーバ３１０に送信するデータである。本実施形態では、ＣＰＵ１０１は、デコード結果をそのまま送信するのではなく、１０進数以外の進数の数値にデコードされたものを１０進数に変換した後、変換された１０進数の数値を含む送信データを生成して、管理サーバ３１０に送信する。Ｓ４８の処理は、１０進数への変換と、変換後の１０進数の数値を含む送信データの生成とを含んでいる。
【００８０】
具体的には、上述のようにＡタイプの二次元コード１がデコードされ、デコード結果として、４進数の数値と、２つの５進数の数値とが取得された場合、ＣＰＵ１０１は、これら３つの数値をそれぞれ１０進数の数値に変換する。この変換方法は、公知の方法を用いればよいので、その説明は省略する。そしてＣＰＵ１０１は、変換後の３つの数値を含む送信データを生成する。
【００８１】
送信データには通常、ヘッダが付加される。ヘッダには、送信データの送信先や送信データのデータ構造など、受信側の管理サーバ３１０が必要な情報が記載される。デコード結果には、この具体例のような３つの数値や、１つだけの数値、２つの数値、さらに４つ以上の数値など、数値の個数はバラバラであるので、送信データ内に何個の数値が含まれるかをヘッダに記載しておく必要がある。さらにヘッダには、Ａ〜Ｋタイプのいずれの二次元コード１がデコードされたかを示す情報も記載しておく必要がある。これにより、管理サーバ３１０は、スマートフォン１００からの送信データに応答してどのようなデータを送信するかを知ることができるからである。
【００８２】
ＣＰＵ１０１は、Ｓ４８の処理を実行後、コード検出・デコード処理を終了（リターン）する。
【００８３】
図６に戻り、ＣＰＵ１０１は、Ｓ４８で生成した送信データを通信Ｉ／Ｆ１１０から管理サーバ３１０へ送信する（Ｓ１４）。
【００８４】
図８は、管理サーバ３１０、特にＣＰＵ（図示せず）が実行する制御処理の手順を示している。
【００８５】
図８において、まずＣＰＵは、スマートフォン１００からの送信データを受信するまで待機し（Ｓ１００：ＮＯ）、スマートフォン１００からの送信データを受信すると（Ｓ１００：ＹＥＳ）、処理をＳ１１０に進める。
【００８６】
Ｓ１１０では、ＣＰＵは、受信データ、つまりスマートフォン１００からの送信データを解析する。具体的には、ＣＰＵは、受信データのヘッダを解析し、受信データの種類を取得する。つまり本実施形態では、受信データの種類は、ＵＲＬ＋ディレクトリ名＋表示ファイル名である（以下「第１種類の受信データ」という）か、部品番号である（以下「第２種類の受信データ」という）かのいずれかである。管理サーバ３１０は、例えば、第１種類の受信データに対して、応答データとして部品名を示す送信データを生成して、スマートフォン１００に送信することがないように、ヘッダから受信データの種類を取得するようにしている。
【００８７】
そしてＣＰＵは、受信データが第１種類の受信データであれば、３つの数値のそれぞれと対応付けられた情報を、管理サーバ３１０内のデータベース（図示せず）から取得する。つまりＣＰＵは、Ｗｅｂサーバ３２０ｎのＵＲＬと、当該Ｗｅｂサーバ３２０ｎに格納された目的のデータが存在するディレクトリ名と、当該データの表示ファイル名とをデータベースから取得する。
【００８８】
一方、受信データが第２種類の受信データであれば、ＣＰＵは、１つの数値と対応付けられた情報を、管理サーバ３１０内の上記データベースとは異なるデータベース（図示せず）から取得する。つまりＣＰＵは、部品番号に対応する部品名や部品画像等の情報をデータベースから取得する。
【００８９】
次にＣＰＵは、解析結果に応じてデータを生成する（Ｓ１２０）。具体的には、ＣＰＵは、データベースから取得した情報を含むデータを生成する。さらにＣＰＵは、生成したヘッダにも、データの種類を示す情報を記載しておく。このデータを受信したスマートフォン１００がどの種類のデータか分かるようにするためである。
【００９０】
次にＣＰＵは、生成したデータをスマートフォン１００に送信した（Ｓ１３０）後、処理を上記Ｓ１００に戻す。
【００９１】
図６に戻り、ＣＰＵ１０１は、管理サーバ３１０からの送信データを受信するまで待機し（Ｓ１６：ＮＯ）、管理サーバ３１０からの送信データを受信すると（Ｓ１６：ＹＥＳ）、処理をＳ１８に進める。
【００９２】
Ｓ１８では、ＣＰＵ１０１は、受信データ、つまり管理サーバ３１０からの送信データを解析する。具体的には、ＣＰＵ１０１は、受信データのヘッダを解析し、受信データの種類を取得する。
【００９３】
受信データが第１種類の受信データである場合は、受信データには、ＵＲＬ＋ディレクトリ名＋表示ファイル名が含まれている。但し、この場合の第１種類の受信データは、上記Ｓ１１０で説明した第１種類の受信データと、種類は同じでも、データ内容は異なっている。つまり、前者の第１種類の受信データは、管理サーバ３１０のデータベースから取得した情報を含むものであるのに対して、後者の第１種類の受信データは、データベースから取得する前の数値情報を含むものであるからである。
【００９４】
一方、受信データが第２種類の受信データである場合は、部品名や部品画像等である。但し、この場合の第２種類の受信データも、上記Ｓ１１０で説明した第２種類の受信データと、種類は同じでも、データ内容は異なっている。
【００９５】
次にＣＰＵ１０１は、受信データがＷｅｂサーバ３２０ｎにデータ送信する種のデータであるか否かを判断する（Ｓ２０）。この判断において、受信データがＷｅｂサーバ３２０ｎにデータ送信する種のデータであると判断される場合（Ｓ２０：ＹＥＳ）、ＣＰＵ１０１は、受信データに基づいて送信データを生成し、生成した送信データを通信Ｉ／Ｆ１１０からＷｅｂサーバ３２０ｎに送信する（Ｓ２２）。
【００９６】
次にＣＰＵ１０１は、Ｗｅｂサーバ３２０ｎからの送信データを受信するまで待機し（Ｓ２４：ＮＯ）、Ｗｅｂサーバ３２０ｎからの送信データを受信すると（Ｓ２４：ＹＥＳ）、処理をＳ２６に進める。
【００９７】
Ｓ２６では、ＣＰＵ１０１は、受信データに基づいて表示画面を生成し、生成した表示画面をタッチパネル１０２上に表示させた（Ｓ２６）後、制御処理を終了する。Ｓ２６の処理によれば、Ｗｅｂサーバ３２０ｎ内に格納された表示データがタッチパネル１０２上に表示される。表示データが、例えば、Ｗｅｂサーバ３２０ｎ内に格納された複数の電子カタログのうち、特定のカタログの特定のページのデータであるとすると、そのカタログのそのページがタッチパネル１０２上に表示される。
【００９８】
一方、上記Ｓ２０の判断において、受信データがＷｅｂサーバ３２０ｎにデータ送信する種のデータでないと判断される場合（Ｓ２０：ＮＯ）、ＣＰＵ１０１は、処理をＳ２０から上記Ｓ２６に進める。Ｓ２６の処理は、上述したので、その説明は省略するが、処理がＳ２０からＳ２６に進む場合と、処理がＳ２４からＳ２６に進む場合では、表示対象の受信データは異なっている。つまり、前者の受信データは、管理サーバ３１０が送信したものであるのに対して、後者の受信データは、Ｗｅｂサーバ３２０ｎが送信したものだからである。
【００９９】
以上説明したように、本実施形態の二次元コード１は、黒色又は白色のいずれか一方で塗りつぶされたデータセル１２ｃをマトリクス状に配置したデータマトリクス１２を含み、データマトリクス１２を構成する各行１２ｒ又は各列１２ｌのいずれか一方に含まれるデータセル１２ｃのうち、多くとも１つのデータセル１２ｃのみが黒色で塗りつぶされ、他のデータセル１２ｃはすべて白色で塗りつぶされる。
【０１００】
このように、本実施形態の二次元コード１では、認識性を保持しつつ、可及的に縮小化することが可能となる。
【０１０１】
ちなみに、本実施形態において、黒色は、「第１色」の一例である。白色は、「第２色」の一例である。
【０１０２】
また、データマトリクス１２に配置されるデータセル１２ｃにより、Ｎ進数の数値が表現される。
【０１０３】
これにより、膨大な数の異なる数値をデータマトリクス１２に割り当てる、つまりコード化することができる。具体的には、図３（ａ）の二次元コード１では、領域Ｒ１１に1,048,576個の数値を割り当てることができ、領域Ｒ１２と領域Ｒ１３にそれぞれ、3,125個の数値を割り当てることができる。また図３（ｂ）の二次元コード１では、領域Ｒ２１に3,486,784,401個の数値を割り当てることができる。さらに図３（ｃ）の二次元コード１では、領域Ｒ３１に60,466,176個の数値を割り当てることができ、領域Ｒ３２に59,049個の数値を割り当てることができる。
【０１０４】
また、黒色は、二次元コード１を含む撮像画像を２値化した場合に黒色になる色であり、白色は、二次元コード１を含む撮像画像を２値化した場合に白色になる色である。
【０１０５】
また、二次元コード１は、矩形平面１０を備え、矩形平面１０の各隅に第１〜第４コーナーセル１０ａ〜１０ｄを設け、少なくとも第１コーナーセル１０ａは、三角形状をなして、データマトリクス１２の種類を規定する役割を果たし、データマトリクス１２は、矩形平面１０上、第１〜第４コーナーセル１０ａ〜１０ｄの内側に形成される。
【０１０６】
これにより、第１コーナーセル１０ａの形状によってデータマトリクス１２の種類が分かるので、データマトリクス１２に割り当てられたコードをデコードするのに有用である。
【０１０７】
ちなみに、三角形は、「所定形状」の一例である。
【０１０８】
また、第１コーナーセル１０ａは、三角形状をなし、第２〜第４コーナーセル１０ｂ〜１０ｄは、三角形状とは異なる矩形状をなして、データマトリクス１２及び矩形平面１０の存在位置を規定する。
【０１０９】
これにより、撮像画像から矩形平面１０を切り出す際、及び矩形平面１０からデータマトリクス１２を切り出す際に、第２〜第４コーナーセル１０ｂ〜１０ｄを基準にして行えばよいので、当該切出しを容易化することが可能となる。
【０１１０】
ちなみに、三角形は、「第１形状」の一例である。矩形は、「第２形状」の一例である。
【０１１１】
また、データマトリクス１２を構成する各行１２ｒ又は各列１２ｌのいずれか一方に含まれるいずれか１行１２ｒ又は１列１２ｌは、１行１２ｒ又は１列１２ｌを除く、データマトリクス１２の使用態様を決定する役割を果たす。
【０１１２】
これにより、同形同サイズのデータマトリクス１２でも、別の使用態様で使用することができ、用途の幅を拡大させることができる。
【０１１３】
使用態様は、１行１２ｒ又は１列１２ｌを除く、データマトリクス１２を１又は２以上に分割して使用することである。
【０１１４】
さらに、本実施形態のスマートフォン１００は、二次元コード１が形成された印刷物を撮影するカメラ１０９と、ＣＰＵ１０１と、を備え、ＣＰＵ１０１は、カメラ１０９により撮影された二次元コード１を含む撮像画像から二次元コード１を検出し（Ｓ１０）、検出された二次元コード１からデータマトリクス１２を切り出し（Ｓ４２）、切り出されたデータマトリクス１２からデータマトリクス１２上に表現されたＮ進数の数値を認識する（Ｓ４６）。
【０１１５】
このように、本実施形態のスマートフォン１００では、認識性を保持しつつ、可及的に縮小化することが可能となる二次元コードからＮ進数の数値を認識することが可能となる。
【０１１６】
ちなみに、本実施形態において、スマートフォン１００は、「認識処理装置」の一例である。印刷物は、「物理媒体」の一例である。カメラ１０９は、「撮影部」の一例である。ＣＰＵ１０１は、「制御部」の一例である。
【０１１７】
なお、本発明は上記実施形態に限定されるものでなく、その趣旨を逸脱しない範囲で様々な変更が可能である。
【０１１８】
（１）上記実施形態では、被写体である物理媒体上に、二次元コード１と二次元コード５とが形成される例は挙げたが、同じ種類の二次元コード１や二次元コード５が複数形成されるようにしてもよい。
【０１１９】
（２）上記実施形態では、二次元コードの種類として、二次元コード１と二次元コード５の２種類を挙げたが、これに限らず、３種類以上設けるようにしてもよい。この場合、各種類の二次元コードにおいて、データマトリクスのドットタイプを異ならせることが考えられるが、この他に、データマトリクスのドットタイプは同じでも、データマトリクスに割り当てるコードの種類を異ならせるようにしてもよい。
【０１２０】
（３）上記実施形態では、データマトリクス１２，５２の形状も、データセル１２ｃ，５２ｃの形状も、ともに矩形状、特に正方形状としたが、これに限らず、楕円形状等、認識可能な形状であればよい。但し、認識を容易化するため、矩形状に近い形状であることが望ましい。
【０１２１】
（４）上記実施形態では、第１コーナーセル１０ａ,５０ａ、つまり二次元コード１，５のドットタイプを示す役割を果たす三角形状のセルは、矩形平面１０，５０の左上隅としたが、位置は、これに限らず、右上隅、右下隅、及び左下隅のいずれであってもよい。また形状も、三角形状に限らない。
【０１２２】
（５）上記実施形態では、図３における領域Ｒ１に、領域Ｒ１を除いたデータマトリクス１２の分割態様と、当該データマトリクス１２に割り当てられるコードの種類との両方を規定する役割を持たせるようにしたが、いずれか一方の役割だけ持たせるようにしてもよい。また領域Ｒ１として、データマトリクス１２の第１列を採用したが、これに限らず、第１行であってもよい。さらに領域Ｒ１として、第２列以降又は第２行以降の１列又は１行であってもよい。
【０１２３】
（６）上記実施形態では、データマトリクス１２，１２′，５２にＮ進数の数値をそのままコード化して割り当てるようにしたが、これに限らず、割り当てたいＮ進数の数値を暗号化し、暗号化後の数値をコード化して割り当てるようにしてもよい。この場合、Ｎ進数の数値を暗号化するのではなく、その基になる１０進数の数値を暗号化し、暗号化後の１０進数の数値をＮ進数に変換し、変換後の数値をそのままコード化してデータマトリクス１２，１２′，５２に割り当てるようにしてもよい。
【符号の説明】
【０１２４】
１，１′，５  二次元コード
１０，５０  矩形平面
１０ａ，５０ａ  第１コーナーセル
１０ｂ，５０ｂ  第２コーナーセル
１０ｃ，５０ｃ  第３コーナーセル
１０ｄ，５０ｄ  第４コーナーセル
１２，１２′，５２  データマトリクス
１２ｃ，５２ｃ  データセル
１００  スマートフォン
１０１  ＣＰＵ
１０２  タッチパネル
１１０  通信Ｉ／Ｆ
２００  通信ネットワーク
３１０  管理サーバ
３２０ｎ  Ｗｅｂサーバ
【図１】
2020201991.tif 000003
【図２】
2020201991.tif 000004
【図３】
2020201991.tif 000005
【図４】
2020201991.tif 000006
【図５】
2020201991.tif 000007
【図６】
2020201991.tif 000008
【図７】
2020201991.tif 000009
【図８】
2020201991.tif 000010