IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ワム・グランド・デザイン株式会社の特許一覧

特許7427851コード処理装置、コード処理方法、およびプログラム
<>
  • 特許-コード処理装置、コード処理方法、およびプログラム 図1
  • 特許-コード処理装置、コード処理方法、およびプログラム 図2
  • 特許-コード処理装置、コード処理方法、およびプログラム 図3
  • 特許-コード処理装置、コード処理方法、およびプログラム 図4
  • 特許-コード処理装置、コード処理方法、およびプログラム 図5
  • 特許-コード処理装置、コード処理方法、およびプログラム 図6
  • 特許-コード処理装置、コード処理方法、およびプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-29
(45)【発行日】2024-02-06
(54)【発明の名称】コード処理装置、コード処理方法、およびプログラム
(51)【国際特許分類】
   G06K 7/14 20060101AFI20240130BHJP
   G06K 7/10 20060101ALI20240130BHJP
【FI】
G06K7/14 039
G06K7/10 372
【請求項の数】 3
(21)【出願番号】P 2019232632
(22)【出願日】2019-12-24
(65)【公開番号】P2021101284
(43)【公開日】2021-07-08
【審査請求日】2022-11-17
(73)【特許権者】
【識別番号】523325406
【氏名又は名称】ワム・グランド・デザイン株式会社
(74)【代理人】
【識別番号】100115749
【弁理士】
【氏名又は名称】谷川 英和
(72)【発明者】
【氏名】上野 潔
(72)【発明者】
【氏名】加藤 昌宏
【審査官】田中 啓介
(56)【参考文献】
【文献】特開2010-231369(JP,A)
【文献】国際公開第2018/037666(WO,A1)
【文献】特開2017-097622(JP,A)
【文献】国際公開第2011/021608(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A63F9/24、13/00-13/98
B65G1/137
G06F3/01、3/048-3/04895
G06K1/00-7/14
G06K17/00-19/18
G06Q10/00-99/00
G06T7/00-7/90
G06V10/00-20/90
G06V30/418
G06V40/16、40/20
G16Z99/00
(57)【特許請求の範囲】
【請求項1】
第一のコードが配置された2以上の第一のカードと、第二のコードが配置された1以上の第二のカードとを撮影した撮影画像を受け付ける画像受付部と、
前記画像受付部が受け付けた撮影画像からコードを検出するコード検出部と、
前記コード検出部が検出したコードを読み取って、コードに対応する情報を取得するコード読取部と、
前記コード検出部が検出したコードのうちの、第一のコードのそれぞれと、当該第一のコードのそれぞれと対応付けて配置されている1以上の第二のコードとをグループ化するグループ化部と、
前記グループ化部がグループ化したグループに関する情報を出力する出力部と、を備え
前記グループ化部は、撮影画像が示す2以上の第一のコード上にそれぞれ配置された2以上の四角形の領域を、右辺方向および下辺方向に拡大される速度が左辺方向および上辺方向に拡大される速度よりも速くなるよう、異なる領域の辺の各部分が互いに突き当たるまで連続的に拡大した場合の、辺同士が突き当たった部分が境界線となるような異なる2以上の領域を設定し、当該設定された2以上の領域にそれぞれ配置された第一のコードと第二のコードとを、領域毎にグループ化するコード処理装置。
【請求項2】
画像受付部と、コード検出部と、コード読取部と、グループ化部と、出力部とを用いて行われるコード処理方法であって、
前記画像受付部が、第一のコードが配置された2以上の第一のカードと、第二のコードが配置された1以上の第二のカードとを撮影した撮影画像を受け付ける画像受付ステップと、
前記コード検出部が、前記画像受付ステップで受け付けた撮影画像からコードを検出するコード検出ステップと、
前記コード読取部が、前記コード検出ステップで検出したコードを読み取って、コードに対応する情報を取得するコード読取ステップと、
前記グループ化部が、前記コード検出ステップで検出したコードのうちの、第一のコードのそれぞれと、当該第一のコードのそれぞれと対応付けて配置されている1以上の第二のコードとをグループ化するグループ化ステップと、
前記出力部が、前記グループ化ステップでグループ化したグループに関する情報を出力する出力ステップと、を備え
前記グループ化ステップは、撮影画像が示す2以上の第一のコード上にそれぞれ配置された2以上の四角形の領域を、右辺方向および下辺方向に拡大される速度が左辺方向および上辺方向に拡大される速度よりも速くなるよう、異なる領域の辺の各部分が互いに突き当たるまで連続的に拡大した場合の、辺同士が突き当たった部分が境界線となるような異なる2以上の領域を設定し、当該設定された2以上の領域にそれぞれ配置された第一のコードと第二のコードとを、領域毎にグループ化するコード処理方法。
【請求項3】
コンピュータを、
第一のコードが配置された2以上の第一のカードと、第二のコードが配置された1以上の第二のカードとを撮影した撮影画像を受け付ける画像受付部と、
前記画像受付部が受け付けた撮影画像からコードを検出するコード検出部と、
前記コード検出部が検出したコードを読み取って、コードに対応する情報を取得するコード読取部と、
前記コード検出部が検出したコードのうちの、第一のコードのそれぞれと、当該第一のコードのそれぞれと対応付けて配置されている1以上の第二のコードとをグループ化するグループ化部と、
前記グループ化部がグループ化したグループに関する情報を出力する出力部と、して機能させ
前記グループ化部は、撮影画像が示す2以上の第一のコード上にそれぞれ配置された2以上の四角形の領域を、右辺方向および下辺方向に拡大される速度が左辺方向および上辺方向に拡大される速度よりも速くなるよう、異なる領域の辺の各部分が互いに突き当たるまで連続的に拡大した場合の、辺同士が突き当たった部分が境界線となるような異なる2以上の領域を設定し、当該設定された2以上の領域にそれぞれ配置された第一のコードと第二のコードとを、領域毎にグループ化するプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コードを処理する装置等に関するものである。
【背景技術】
【0002】
従来の技術として、画像から2次元コードの領域を特定し、その2次元コードによってコード化された情報を識別する技術が知られていた(例えば、特許文献1参照)。
(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2001-195536号公報(第1頁、第1図等)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のコード処理装置においては、撮影した複数のコードを適切にグループ化することができない、という課題があった。
【0005】
本発明は、上記のような課題を解消するためになされたものであり、撮影された複数のコードを適切にグループ化できるコード処理装置等を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明のコード処理装置は、第一のコードが配置された2以上の第一のカードと、第二のコードが配置された1以上の第二のカードとを撮影した撮影画像を受け付ける画像受付部と、画像受付部が受け付けた撮影画像からコードを検出するコード検出部と、コード検出部が検出したコードを読み取って、コードに対応する情報を取得するコード読取部と、コード検出部が検出したコードのうちの、第一のコードのそれぞれと、第一のコードのそれぞれと対応付けて配置されている1以上の第二のコードとをグループ化するグループ化部と、グループ化部がグループ化したグループに関する情報を出力する出力部と、を備えたコード処理装置である。
【0007】
かかる構成により、撮影された複数のコードを適切にグループ化することができる。
【0008】
また、本発明のコード処理装置は、前記コード処理装置において、グループ化部は、撮影画像が示す2以上の第一のコードの配置から、第一のコードのそれぞれに対応する異なる領域を設定し、設定された異なる領域にそれぞれ配置された第二のコードを、各領域に対応する第一のコードとグループ化するようにしてもよい。
【0009】
かかる構成により、第一のコードの配置に応じて設定される領域を用いて、撮影された複数のコードを適切にグループ化することができる。
【0010】
また、本発明のコード処理装置は、前記コード処理装置において、グループ化部は、2以上の第一のコード上にそれぞれ配置された2以上の四角形の領域を、右辺方向および下辺方向に拡大される速度が左辺方向および上辺方向に拡大される速度よりも速くなるよう、異なる領域の辺の各部分が互いに突き当たるまで連続的に拡大した場合の、辺同士が突き当たった部分が境界線となるような2以上の領域を設定し、2以上の領域にそれぞれ配置された第一のコードと第二のコードとを、領域毎にグループ化するようにしてもよい。
【0011】
かかる構成により、第一のコードの右側および下側に配置されている第二のコードを、第一のコードの左側および上側に配置されている第二のコードよりも優先的に、第一のコードとグループ化することができる。
【発明の効果】
【0012】
本発明によるコード処理装置等によれば、撮影された複数のコードを適切にグループ化することができる。
【図面の簡単な説明】
【0013】
図1】本発明の実施の形態におけるコード処理装置のブロック図
図2】同コード処理装置のグループ化を説明するための撮影画像を示す図(図2(a)および図2(b))
図3】同コード処理装置のグループ化を説明するための撮影画像を示す図(図3(a)~図3(c))
図4】同コード処理装置の動作について説明するフローチャート
図5】同コード処理装置の動作を説明するための、コード処理装置と撮影対象となるホワイトボードとを示す図
図6】同コード処理装置の動作を説明するためのグループ管理表を示す図
図7】本発明の実施の形態におけるコンピュータシステムの構成の一例を示す図
【発明を実施するための形態】
【0014】
以下、コード処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【0015】
(実施の形態)
図1は、本実施の形態におけるコード処理装置1のブロック図である。
【0016】
コード処理装置1は、画像受付部100、撮影部101、コード検出部102、コード読取部103、グループ化部104、出力部105を備える。
【0017】
画像受付部100は、1または2以上の撮影画像を受け付ける。撮影画像は、2以上の第一のカードと、1または2以上の第二のカードとを撮影した得られた画像である。第一のカードは、第一のコードが配置されたカードである。第二のカードは、第二のコードが配置されたカードである。以下、第一のコードと第二のコードとを区別せずに呼ぶ場合等に、単にコードと呼ぶ場合がある。また、第一のカードと第二のカードとを区別せずに呼ぶ場合に、単にカードと呼ぶ場合がある。
【0018】
カードは、通常、紙や樹脂、金属等の材質で構成された板状やシート状のものである。ただし、カードの材質や、厚さや、積層構造等の構造は問わない。また、カードの平面形状は、通常、矩形形状または角丸矩形形状であり、サイズは、手に持つことが可能なサイズであるが、カードの平面形状およびサイズは問わない。カードの色や模様等は問わない。ここでのカードとは、札やプレート等も含む概念である。カードの裏面等には、安全ピンやクリップ等の留め具が取り付けられていてもよい。例えば、名札等もここでは、カードの一種と考えてもよい。また、カードには、穴等が設けられていてもよい。第一のカードと第二のカードとは、配置されているコードや、表面に配置されている情報等以外が同じカードであってもよく、異なるカードであってもよい。例えば、第一のカードと第二のカードとは、材質や形状やサイズ、色等が同じカードであってもよく、異なるカードであってもよい。第一のカードおよび第二のカードの少なくとも一方は裏面に接着剤等が配置された接着面を有するシールであってもよい。
【0019】
第一のカードおよび第二のカードの少なくとも一方、好ましくは両方は、ユーザが所望の面に着脱可能に取り付けられるカードであることが好ましい。第一のカードおよび第二のカードは、例えば、ボードやシート等の表面に着脱可能に取り付けられるカードであることが好ましい。例えば、第一のカードおよび第二のカードは、磁性体を有するボードやシート等に、着脱可能に取り付けられるマグネットシート製のカードや、磁石等が取り付けられたカードであってもよい。また、第一のカードおよび第二のカードは、裏面等に吸盤や、粘着剤や、面ファスナー等を有するカードであってもよい。
【0020】
第一のコードおよび第二のコードは、情報が読み取り可能なコードであり、例えば、撮影画像から、コードを検出し、対応する情報を読み取り可能なコードである。コードは、例えば、文字列以外の画像等で表されるコードである。例えば、コードは、カメレオンコード(登録商標)などのカラーコードであってもよく、QRコード(登録商標)等の二次元コードであってもよく、バーコードであってもよく、その他のコードであってもよい。ここでのコードは、撮影画像を用いて同時に複数のコードが読み取り可能なコードである。以下、本実施の形態では、第一のコードおよび第二のコードがカラーコードである場合について説明する。
【0021】
第一のコードおよび第二のコードは、コード自身の向きが特定可能なコードであることが好ましい。向きが特定可能なコードとは、コード自身の上下左右の方向や長手方向や短手方向等が特定可能なコードである。上記のカラーコードや二次元コード等の通常の多くのコードにおいては、コードの読み取りを可能とするために、コードの向きが特定可能となっている。
【0022】
コードは、通常、カードの表面に配置される。カードの、コードが配置される位置は問わない。コードは、カードの表面に取り付けられていることが好ましい。第一のコードおよび第二のコードは、例えば、カードに印刷されたコードや、貼付されたコードである。ただし、コードがカードにどのように配置されるかは問わない。カードの表面の、コードが配置されている領域以外の場所や、裏面には、文字列や画像等が配置されていてもよい。この文字列や画像は、同じカードに配置されたコードから読み取られる情報を表す文字列や画像であってもよく、コードから読み取られる情報を表さない文字列や画像であってもよい。この文字列や画像は、カードが、第一のカードと第二のカードとのいずれであるかを示す文字列や画像であってもよい。
【0023】
撮影画像は、静止画像であっても、動画像であってもよく、連続した静止画像であってもよい。撮影画像の画素数等は問わない。撮影画像のデータ形式や、ファイル形式等は問わない。また、撮影画像は、カラー画像であっても良く、モノクローム画像であってもよい。ただし、撮影画像内のコードとしてカラーコードを用いる場合、撮影画像は通常、カラー画像である必要がある。
【0024】
撮影画像は、第一のカードおよび第二のカードを配置した面を撮影した画像であることが好ましい。この面は、例えば、第一のカードおよび第二のカードを取り付けたボードやシートの表面であってもよく、第一のカードおよび第二のカードが配置された机やテーブルや床の表面や、壁面等であってもよい。
【0025】
第一のコードは、例えば、グループ化のキーや中心となるコードである。例えば、グループ化は、例えば、各第一のコード毎に行われる。第二のコードは、例えば、第一のコードのもとにグループ化されるコードである。例えば、一のグループを構成するコードのうちの、第一のコードは、複数のユーザで構成されるグループのリーダーに対応するコードであり、第二のコードは、このグループのリーダー以外の構成員に対応するコードである。
【0026】
第一のコードと第二のコードとは識別可能なコードである。識別可能なコードとは、例えば、コードから読み取られる情報により第一のコードと第二のコードとのいずれであるかが識別可能なコードである。例えば、第一のコードは、コードから読み取った情報が、第一のコードであることを示す識別子やフラグ等の情報を含むコードや、予め用意された1以上の第一のコードから読み取られる情報のいずれか一つと一致するコードであってもよく、コードから読み取った情報を用いて取得されるハッシュ値等の情報が、第一のコードであることを示す情報となるコードであってもよい。この場合、第一のコードでないと判断されたコードを第二のコードと判断するようにしてもよい。また、第二のコードが、コードから読み取った情報が、第二のコードであることを示す情報を含むコードや、予め用意された1以上の第二のコードから読み取られる情報のいずれか一つと一致するコードであってもよく、コードから読み取った情報を用いて取得した情報が、第二のコードであることを示す情報となるコードであってもよい。また、第一のコードと第二のコードとの両方が上記のようなコードであってもよい。また、第一のコードと第二のコードとは、種類やコード体系が異なるコードであってもよい。また、第一のコードおよび第二のコードの少なくとも一方が、第一のコードまたは第二のコードのいずれであるかを示す特定の1以上のドットやバーの配置や、1以上の特定の色のセルの配置を有するコードであってもよい。
【0027】
例えば、一の群に属する複数人のメンバーの名前がそれぞれ読み取り可能な複数のコードが一の撮影画像内に配置されていた場合において、このメンバーの内の複数のリーダの名前が、予め登録されていたとすると、撮影画像内の複数のコードのうちの、コードから読み取った名前が、予め登録されたリーダの一人の名前と一致する場合、このコードを第一のコードと判断し、コードから読み取った名前が、予め登録されたリーダの誰とも一致しない名前であった場合、このコードを第二のコードと判断してもよい。ただし、第一のコードと第二のコードとがどのように識別されるかは問わない。
【0028】
なお、通常、複数の第一のコードとしては、同じ種類やコード体系のコードを利用するが、異なる種類やコード体系のコードを用いてもよい。かかることは第二のコードについても同様である。
【0029】
第一のカードと第二のカードとは、ユーザが目視や手触り等によって識別可能な態様のカードであることが好ましい。例えば、第一のカードと第二のカードとは表面の色が異なるカードや、表面に配置されている文字やマークが異なるカードであることが好ましい。
【0030】
撮影画像は、第一のカードおよび第二のカードが配置された領域の上側が、画像の上側となるように撮影された画像であることが好ましい。例えば、撮影画像が、壁面等に配置された第一のカードおよび第二のカードを撮影した画像である場合、画像の上側が、壁面の天井側となるように、第一のカードおよび第二のカードが配置された領域を撮影した画像であることが好ましい。また、撮影画像は、例えば、予め決められた方向を上方向として配置した第一のカードと第二のカードとを、この上方向が撮影画像の上方向となるように撮影した画像であってもよい。
【0031】
ここでの撮影画像の受け付けとは、後述する撮影部101が撮影した撮影情報の受け付けであってもよく、コード処理装置1の外部に設けられた後述する撮影部101と同様の撮影部を有する撮影装置(図示せず)等から有線もしくは無線の通信回線を介して送信された撮影画像の受信であってもよく、光ディスクや磁気ディスク、半導体メモリなどの記録媒体(図示せず)から読み出された撮影画像の受け付け等であってもよい。画像受付部100が、どのように撮影画像を受け付けるかについては、上記に限定されるものではない。
【0032】
なお、本実施の形態においては、一例として、コード処理装置1が撮影部101を備えており、この撮影部101が撮影した撮影画像を画像受付部100が受け付ける場合について説明するが、画像受付部100が、外部等に設けられた撮影部等から撮影画像を受け付ける場合、コード処理装置1は、後述するカメラ等の撮影部101を有していなくてもよい。例えば、いわゆるスマートフォン等が有するカメラで撮影され、このスマートフォンから送信された撮影画像を画像受付部100が受け付ける場合、後述する撮影部101は省略してもよい。
【0033】
画像受付部100は、撮影画像を受け付けるためのインターフェース等と考えてもよい。画像受付部100は、例えば、撮影画像を受信したり読み出したりするためのデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現される。
【0034】
撮影部101は、撮影画像を取得する。例えば、撮影部101は、2以上の第一のカードと、1または2以上の第二のカードとが配置された領域を撮影して撮影画像を取得する。撮影部101が撮影する画像は、上記において画像受付部100に関連して説明したような撮影画像である。なお、撮影部101は、上記の第一のカードおよび第二のカードに加えて、第一のコードと第二のコードとのいずれとも異なるコードが配置された1または2以上のカードが更に配置された領域を撮影してもよい。
【0035】
撮影部101は、通常、デジタルカメラや、光学式スキャナや、ラインセンサ等で実現される。
【0036】
コード検出部102は、画像受付部100が受け付けた撮影画像からコードを検出する。撮影画像からコードを検出するということは、例えば、撮影画像内において、コードの画像を検出することや、コードの領域や輪郭を検出することであってもよい。コード検出部102が撮影画像から検出するコードは、例えば、第一のコードおよび第二のコードである。コード検出部102は、通常、撮影画像内の全てのコードを検出するが、一部のコードのみを検出してもよい。第一のコードと第二のコードとのコードの種類が異なる場合等においては、コード検出部102は、コードを検出する際に、検出した各コードが、第一のコードと第二のコードとのいずれのコードであるかを示す情報も取得しても良い。撮影画像から1または2以上のコードを検出する処理は公知技術であるため、ここでは詳細な説明は省略する。
【0037】
コード読取部103は、コード検出部102が検出した各コードを読み取って、コードに対応する情報を取得する。ここでの読み取るコードは、第一のコードおよび第二のコードである。コード読取部103がコードを読み取って取得する情報(以下、読取情報と称す)は、例えば、コードから直接読み取られる識別子等の情報であってもよく、コードから読み取られる識別子等の情報と対応付けられて図示しない格納部に格納されている情報であってもよい。コード検出部102が検出したコードが第一のコードおよび第二のコード以外のコードを含む場合、第一のコードおよび第二のコード以外のコードも読み取るようにしてもよい。読取情報は、どのような情報であってもよい。以下においては、コード読取部103が、第一のコードおよび第二のコードをそれぞれ直接読み取って取得した識別子等の情報を読取情報として取得する場合を例に挙げて説明する。なお、コードを読み取る処理については、公知技術であるため、ここでは詳細な説明は省略する。
【0038】
コード読取部103は、例えば、コードから読み取った情報を用いて、読み取ったコードが第一のコードと第二のコードとのいずれのコードであるかを判断してもよい。例えば、コードから読み取った情報が、第一のコードであることを示す情報を有する場合や、予め図示しない格納部等に格納された1以上の第一のコードから読み取られる情報の一つと一致する場合に、読み取ったコードを第一のコードであると判断してもよい。また、コードから読み取った情報を用いて取得したハッシュ値等の情報が、第一のコードに対応する値である場合に、第一のコードと判断してもよい。また、これら以外の情報が得られるコードは、第二のコードと判断してもよい。また、コード読取部103は、コードから読み取った情報を用いて、同様の処理を行なって、第二のコードであるか否かの判断を行なっても良い。
【0039】
なお、コード検出部102が検出した各コードから、第一のコードおよび第二のコードを検出する処理は、コード読取部103以外の、コード検出部102や、グループ化部104が行なうようにしても良い。
【0040】
グループ化部104は、コード検出部102が検出した複数のコードのうちの、第一のコードのそれぞれと、第一のコードのそれぞれと対応付けて配置されている1以上の第二のコードとをグループ化する。グループ化部104によるグループ化は、例えば、第一のコードを基準や、中心、核としたグループ化である。グループ化部104によるグループ化は、第一のコードをいわゆるキーとしたグループと考えてもよい。グループ化部104によりグループ化された各グループは、少なくとも一つの第一のコードを有するグループである。ここでの配置は、撮影画像内の配置と考えてもよく、実空間における配置と考えてもよい。コードのグループ化は、コードが配置されたカードのグループ化と考えてもよいことはいうまでもない。
【0041】
第一のコードと第二のコードとのグループ化するということは、例えば、第一のコードの読取情報と、第二のコードの読取情報とを対応付けることと考えても良い。第一のコードの読取情報と、第二のコードの読取情報とをグループ化することは、第一のコードの読取情報と、第二のコードの読取情報とを有する情報を取得することや、第一のコードの読取情報と、第二のコードの読取情報とのそれぞれに同じグループであることを示すグループの識別子等を付与することであってもよい。
【0042】
グループ化部104は、第一のコードに対してどのような配置関係にある第二のコードを、第一のコードと対応付けて配置されている第二のコードと判断してもよい。以下、このグループ化の処理として、(1)コード間の距離によるグループ化、および(2)コードが配置される領域によるグループ化について例を挙げて説明する。
【0043】
(1)コード間の距離によるグループ化
図2(a)は、グループ化部104が行なうコード間の距離によるグループ化について説明するための、画像受付部100が受け付けた撮影画像200の一例を示す図である。撮影画像200内には、3つの第一のコード201a~201cと、5つの第二のコード202a~202eが配置されている。なお、第一のコード201a~201cを区別しない場合、単に第一のコード201と呼ぶ。また、第二のコード202a~202eを区別しない場合、単に第二のコード202と呼ぶ。第一のコード201および第二のコード202は、ここでは、いずれも外径が矩形形状のカラーコードであるとする。第一のコード201a~201cおよび第二のコード202a~202eは、対応する読取情報が異なるコードである。なお、かかることは、以下の他のグループ化の説明においても同様である。第一のコード201は、第一のカード211に配置されている。第二のコード202は、第二のカード212に配置されている。
【0044】
グループ化部104は、コード検出部102が撮影画像200において検出したコードのうちの、コード読取部103が第一のコードであると判断したコード201a~201cの位置情報と、第二のコードであると判断したコード202a~202eの位置情報とを取得する。そして、取得したコードの位置情報を用いて、第二のコード202のそれぞれについて、コード間の距離が最も近い第一のコード201を検出する。そして、各第二のコードを、それぞれに距離が最も近い第一のコード201とグループ化する。例えば、第二のコード202aと、第一のコード201a~201cのそれぞれとの距離を、各コードの位置情報を用いて算出し、距離が最も近い第一のコード201aを検出し、検出した第一のコード201aと、第二のコード202aとをグループ化する。例えば、第二のコード202aの読取情報を、第一のコード201aの読取情報と対応付けて図示しない格納部等に蓄積する。ここでの読取情報は、例えば、コードの識別子である。ここでの蓄積は一時記憶であってもよい。同様に、第二のコード202bと、第一のコード201a~201cのそれぞれとの距離を、各コードの位置情報を用いて算出し、距離が最も近い第一のコード201bを検出し、検出した第一のコード201bと、第二のコード202bとをグループ化する。同様の処理は、他の第二のコード202c~202eについても行なう。これにより、第一のコード201と第二のコード202とをグループ化することができる。
【0045】
なお、コードの位置情報は、撮影画像200内の各コードの領域の中心の座標や、重心、四隅の一つ等の、各コードの代表点等の特定の位置の座標等である。ここでは、位置情報として、コードの中心の座標を用いた例について説明している。コードの領域とは、例えば、コードの画像が配置されている領域である。なお、コード検出部102が、画像認識処理等により、カードを検出するようにするようにし、グループ化部104が、コードの位置情報として、コードが配置されているカードの位置情報(例えば、コードの代表点の座標等)を取得するようにしてもよい。コードの位置情報は、コード検出部102やコード読取部103等が取得してもよい。かかることは、以下の他のグループ化についても同様である。
【0046】
(2)コードが配置される領域によるグループ化
グループ化部104は、撮影画像が示す2以上の第一のコードの配置から、第一のコードのそれぞれに対応する異なる領域を設定し、設定された異なる領域にそれぞれ配置された第二のコードを、各領域に対応する第一のコードとグループ化する。第一のコードのそれぞれに対応する異なる領域は、通常、重ならない領域であり、一の領域に配置される第一のコードが一つだけである領域である。第一のコードのそれぞれに対応する異なる領域とは、例えば、異なる第一のコードがそれぞれ配置される異なる領域である。各領域に対応する第一のコードとは、例えば、各領域に配置される第一のコードである。
【0047】
グループ化部104が、撮影画像が示す2以上の第一のコードの配置から、第一のコードのそれぞれに対応する異なる領域をどのように設定するかは問わない。ここでは、(2-1)ボロノイ図を用いたグループ化を行なう例と、(2-2)第一のコードに対応する四角形を連続的に拡大して得られた領域を用いたグループ化を行なう例と、(2-3)複数の第一のカードのそれぞれの左上を頂点とする右向きの半直線と下向きの半直線とで区切られる領域を用いてグループ化を行う例について説明する。
【0048】
(2-1)ボロノイ領域を用いたグループ化
図2(b)は、グループ化部104が行なうボロノイ図を用いたグループ化について説明するための、画像受付部100が受け付けた撮影画像200の一例を示す図であり、図において、図2(a)と同一符号は同一または相当する部分を示している。図において、中心点210は、各第一のコード201の中心点である。ここでは、撮影画像200は、図2(a)と同じ撮影画像であり、撮影画像200内の図2と同様の位置に、第一のコード201および第二のコード202が配置されているものとする。また、ここでは、説明の便宜上、コードが配置されているカードの図示は省略している。
【0049】
グループ化部104は、コード検出部102が撮影画像200において検出したコードのうちの、コード読取部103が第一のコードであると判断した第一のコード201a~201cのそれぞれについて、中心点210を検出し、中心点210の位置情報を取得する。そして、これらの中心点210を母点として用いて、撮影画像を、複数のボロノイ領域に分割する。ボロノイ領域とは、各母点までの距離が最短となる点の集合で構成される領域である。具体的には、例えば、隣り合う母点である中心点210間を結ぶ直線2101のそれぞれから垂直二等分線2102を引き、垂直二等分線同士が交わる点2103で結合する。そして、撮影画像を、この結合した垂直二等分線で分割してボロノイ領域2104a~2014cを得る。グループ化部104は、このようにして分割されたボロノイ領域2104a~2014cのそれぞれに含まれる第一のコード201と、第二のコード202とをグループ化する。例えば、同じボロノイ領域2104a内の第一のコード201aの読取情報と第二のコード202aおよび202bの読取情報とを、対応付けて図示しない格納部等に蓄積する。ここでの読取情報は、例えば、コードの識別子である。ここでの蓄積は一時記憶であってもよい。なお、分割された領域内に各コードが配置されているか否かは、コードの位置情報や、コードが配置されているカードの位置情報を用いて判断してもよく、コードやコードが配置されたカードが領域内に位置する面積が、コードやカードの過半数以上であるか否か等により判断してもよい。かかることは以下においても同様である。
【0050】
なお、ボロノイ領域で分割する処理については、公知技術であるため、詳細な処理は省略する。また、ボロノイ領域を分割する処理として、上記以外の処理を用いてもよい。
【0051】
また、ここでは、第一のコード201の中心点を母点として用いて撮影画像を複数のボロノイ領域に分割する場合について説明したが、第一のコード201の中心点の代わりに、上述したような第一のコード201の中心点以外の代表点や第一のカード211の中心点等の代表点を用いて、撮影画像をボロノイ領域に分割するようにしてもよい。
【0052】
(2-2)拡大した領域を用いたグループ化
図3(a)および図3(b)は、グループ化部104が行なう各コードに対応する四角形の領域をそれぞれ拡大した領域を用いたグループ化について説明するための、画像受付部100が受け付けた撮影画像200の一例を示す図であり、図において、図2(a)と同一符号は同一または相当する部分を示している。ここでは、撮影画像200は、図2(a)と同じ撮影画像であり、撮影画像200内の図2と同様の位置に、第一のコード201および第二のコード202が配置されているものとする。説明の便宜上、コードが配置されているカードの図示は省略している。また、ここでは、第一のコード201の輪郭が矩形である場合について説明する。
【0053】
ここでは、グループ化部104が、2以上の第一のコード上にそれぞれ配置された2以上の四角形の領域を、右辺方向および下辺方向に拡大される速度が左辺方向および上辺方向に拡大される速度よりも速くなるよう、異なる領域の辺の各部分が互いに突き当たるまで連続的に拡大した場合の、辺同士が突き当たった部分が境界線となるような2以上の領域を設定し、これらの2以上の領域にそれぞれ配置された第一のコードと第二のコードとを、領域毎にグループ化する場合について説明する。
【0054】
グループ化部104は、図3(a)に示すように、コード検出部102が撮影画像200において検出したコードのうちの、コード読取部103が第一のコードであると判断した複数の第一のコード201a~201c上に、それぞれ四角形の領域301a~301cを配置する。なお、四角形の領域301a~301cを区別しない場合、単に四角形の領域301と呼ぶ場合がある。この四角形の領域301a~301cは、例えば、撮影画像200内の、それぞれの配置先となる第一のコード201a~201cの輪郭と同じ輪郭を持つ四角形の領域であり、それぞれの配置先となる第一のコード201aから201cと重ね合わされるよう配置する。ただし、図3(a)においては、説明の便宜上、四角形の領域301のサイズを、第一のコード201よりも若干大きく図示している。四角形の領域301a~301cのそれぞれの、撮影画像200の右側に位置する辺を右辺、撮影画像200の左側に位置する辺を左辺、撮影画像200の上側に位置する辺を上辺、撮影画像200の下側に位置する辺を下辺、とする。四角形の領域301の各辺は、領域301の輪郭の一部と考えても良い。
【0055】
そして、この四角形の領域301a~301cを、それぞれ、第一のコード201a~201c上に重ねたまま、連続的に拡大していく。このとき、各四角形の領域301の、右辺方向および下辺方向に拡大される速度が、左辺方向および上辺方向に拡大される速度よりも速くなるようにする。例えば、速度比が5対1となるようにする。なお、異なる領域301a~301cの、右辺方向および下辺方向に拡大される速度は同じとすることが好ましいが、異なっていてもよい。また、異なる領域301a~301cの、左辺方向および上辺方向に拡大される速度についても同じとすることが好ましいが、異なっていてもよい。
【0056】
また、四角形の領域301a~301cのそれぞれを、異なる領域301a~301cの辺の各部分が互いに突き当たるまで連続的に拡大し、辺同士が突き当たった部分が境界線となるような2以上の領域を設定する。異なる領域301a~301cの辺の各部分が互いに突き当たるまで連続的に拡大する、ということは、例えば、連続的に拡大していく過程において、領域301a~301cの、辺同士が突き当たった部分については、突き当たった以降は、拡大を停止し、突き当たっていない部分については、突き当たるまで、あるいは、辺が撮影画像の外周に突き当たるまで拡大を続けることである。辺同士が突き当たった部分が境界線となるような2以上の領域とは、例えば、辺同士が突き当たった部分が示す線で区切られた2以上の領域や、辺同士が突き当たった部分が輪郭となるような2以上の領域である。ここでの辺は、四角形の領域301a~301cの辺であり、四角形の領域301aの輪郭や、その輪郭の一部と考えてもよい。なお、四角形の領域301a~301cのそれぞれを、異なる領域301a~301cの辺の各部分が互いに突き当たるまで連続的に拡大することによって得られる辺同士が突き当たった部分が境界線となるような2以上の領域とは、異なる四角形の領域301a~301cを互いに重ならないよう連続的に拡大した場合に得られるような2以上の領域の一態様と考えてもよい。
【0057】
図3(b)は連続的に拡大していく四角形の領域301a~301cの、拡大途中の状態を示す模式図である。なお、四角形の領域301a~301c間においては、右辺方向および下辺方向に拡大される速度は同じであり、左辺方向および上辺方向に拡大される速度も同じであるとする。そして、連続して拡大する途中で、異なる四角形の領域301の辺同士が突き当たった部分については、それ以降の拡大を中止する。図3(b)において点線302は、四角形の領域301同士が連続して拡大される過程で突き当たった部分を示している。突き当たった部分の情報としては、例えば、突き当たっている部分の座標等の位置の情報が取得される。
【0058】
四角形の領域301の拡大は、少なくとも、拡大した四角形の領域301が、撮影画像の領域をすべて覆うまで行われる。そして、拡大が終了した後、図3(c)が示すように、拡大された四角形の領域301の辺同士の突き当たった部分が描く線を境界線303とした複数の領域304a~304cを撮影画像200に対して設定する。そして、設定した領域304a~304cにそれぞれ配置されている第一のコード201と、第二のコード202とを、領域304a~304c毎にグループ化する。例えば、同じ領域304a内の第一のコード201aの読取情報と第二のコード202aおよび202cの読取情報とを、対応付けて図示しない格納部等に蓄積する。また、同じ領域304b内の第一のコード201bの読取情報と第二のコード202bおよび202dの読取情報とを、対応付けて図示しない格納部等に蓄積する。また、同じ領域304c内の第一のコード201cの読取情報と第二のコード202eの読取情報とを、対応付けて図示しない格納部等に蓄積する。ここでの読取情報は、例えば、コードの識別子である。ここでの蓄積は一時記憶であってもよい。
【0059】
通常、ユーザが、カード等をグループ化する作業等において、一の第一のカード211の近くに、この第一のカード211と同じグループにグループ化したい第二のカード212を配置する場合、第二のカード212を、この一の第一のカード211の右側または下側に配置することが多い。このため、上記のように、第一のコード201上に配置された四角形の領域301を、右辺方向および下辺方向の拡大される速度が、左辺方向および上辺方向の拡大される速度よりも速くなるように連続的に拡大して複数の領域を設定することで、第一のコード201および第二のコード202を適切にグループ化することができる。
【0060】
なお、上記の四角形の領域301の各辺を拡大する速度は、各辺を平行移動させる速度と考えてもよい。また、四角形の領域301の、右辺方向および下辺方向に拡大される速度とは、例えば四角形の右辺および下辺が外側に向かって平行移動する方向である。また、四角形の領域301の、左辺方向および上辺方向に拡大される速度とは、例えば、四角形の左辺および上辺が外側に向かって平行移動する方向である。
【0061】
また、ここでは、右辺方向および下辺方向に拡大される速度と、左辺方向および上辺方向に拡大される速度との速度比が5対1である例について説明したが、右辺方向および下辺方向に拡大される速度が左辺方向および上辺方向に拡大される速度よりも速ければ、速度比は、これ以外の比であってもよい。ただし、速度比は、3対1~8対1の範囲であることが好ましく、5対1であることが最も好ましい。
【0062】
第一のコード201上に最初に配置される領域、すなわち、拡大が行われる前の四角形の領域は、配置先となる第一のコード201の輪郭と同じ形状およびサイズの四角形の領域であることが好ましいが、異なる形状およびサイズの四角形であってもよい。例えば、配置先のコードよりも小さいサイズの四角形や大きいサイズの四角形であってもよく、配置先のコードと縦横比や1以上の辺の長さが異なる四角形であっても良い。また、第一のコード201の輪郭が矩形でない場合において、第一のコード201上に最初に配置される領域は、矩形の領域(例えば、正方形)であってもよい。また、第一のコード201上に最初に配置される四角形の四つの辺は、配置先となる第一のコード201の各辺と平行であることが好ましいが、少なくとも1以上が平行でなくてもよい。例えば、最初に配置される四角形の領域は、撮影画像の四辺に平行な四辺で構成される四角形の領域であってもよい。なお、第一のコード201が配置された第一のカード211上に配置される四角形を、第一のコード201上に最初に配置される四角形として扱うようにしてもよい。例えば、第一のコード201上に最初に配置される四角形は、第一のコード201が配置されている第一のカード211の輪郭と同じ形状の四角形であってもよい。なお、上記で拡大する第一のコード201上に配置される四角形の領域は、第一のコード201が配置されている四角形の領域と考えてもよい。また、第一のコード201の領域として、第一のコード201が配置されている第一のカード211が配置されている四角形の領域等を用いてもよい。
【0063】
なお、ここでは、グループ化部104が、撮影画像の2以上の第一のコード201上に四角形の領域301を配置し、各四角形の領域301を、右辺方向および下辺方向に拡大される速度が左辺方向および上辺方向に拡大される速度よりも速くなるよう、異なる領域301の辺の各部分が互いに突き当たるまで連続的に拡大して、辺同士が突き当たった部分が境界線となるような2以上の領域を設定する場合について説明したが、グループ化部104は、結果的に、2以上の第一のコード上にそれぞれ配置された2以上の四角形の領域を、右辺方向および下辺方向に拡大される速度が左辺方向および上辺方向に拡大される速度よりも速くなるよう、異なる領域の辺の各部分が互いに突き当たるまで連続的に拡大した場合の、辺同士が突き当たった部分が境界線となるような2以上の領域を設定するものであれば、実際に撮影画像に対して四角形の領域301等を配置したり拡大したりする処理等を行って、グループ化に利用される複数の領域を設定しなくてもよい。例えば、第一のコード201の位置情報等を用いて演算等を行なうことによって、2以上の第一のコード上にそれぞれ配置された2以上の四角形の領域を、右辺方向および下辺方向に拡大される速度が左辺方向および上辺方向に拡大される速度よりも速くなるよう、異なる領域の辺の各部分が互いに突き当たるまで連続的に拡大した場合の、辺同士が突き当たった部分が境界線となるような2以上の領域を設定し、設定した各領域に配置される第一のコードおよび第二のコードをグループ化するようにしてもよい。
【0064】
(2-3)右向きと下向きの半直線とで区切られる領域を用いたグループ化
グループ化部104は、例えば、複数の第一のカードのそれぞれの左上を頂点とする右向きの半直線と下向きの半直線とで区切られる領域であって、一の第一のカードをそれぞれ有する領域を、各第一のカードに対応する領域として設定し、設定した領域に対応する第一のカードと、この領域に配置される1または2以上の第二のカードとをグループ化する。第一のカードに対応する領域同士は重ならない領域となるように設定する。半直線が、撮影画像の左辺や下辺に突き当たる場合には、この左辺や下辺を、第一のカードに対応する領域の左辺や下辺と考えても良い。また、ここでの一の第一のカードについて設定される右向きの半直線および下向きの半直線が、他の第一のカードや、他の第一のカードについて右向きまたは下向きの半直線に突き当たる場合は、この右向きの半直線および下向きの半直線は、この突き当たる位置まで伸びている線分とする。一の第一のカードに対応する領域は、例えば、1以上の第一のカードの左上を頂点とする右向きの半直線または線分と、および下向きの半直線または線分と、撮影画像の左辺と、撮影画像の下辺とのうちの4以上の組み合わせによって囲まれた、一の第一のカードを有する連続した領域であって、他の領域とは重ならない領域である。連続した領域とは、例えば、線分や半直線等で区切られていない領域である。なお、第一のカードの代わりに第一のコードを用いてもよい。また、第二のカードの代わりに第二のコードを用いてもよい。
【0065】
上記の(1)および(2)においては、撮影画像200が3つの第一のカード211と5つの第二のカード212とを撮影した画像である場合について説明したが、撮影画像200に配置される第一のカードは2以上であればよく、第二のカードは1以上であればよい。
【0066】
なお、グループ化部104は、画像受付部100が受け付けた撮影画像を、第一のコード等が、本来の第一のコード等の縦横比となるように、射影変換等を行なって補正し、この補正した撮影画像を用いて、グループ化を行なうようにしても良い。なお、このような補正は、画像受付部100や、コード検出部102や、コード読取部103等が行なうようにしても良い。
【0067】
出力部105は、グループ化部104がグループ化したグループに関する情報を出力する。グループに関する情報とは、例えば、各グループを構成する第一のコードと、第二のコードとを対応付けた情報である。グループに関する情報とは、例えば、各グループを構成する第一のコードと第二のコードとを有する情報であってもよい。また、グループに関する情報は、例えば、1以上の第一のコードおよび1以上の第二のコードに、それぞれのコードが属するグループのグループ識別子を対応付けた情報であってもよい。ここで説明する第一のコードとは、第一のコードから読み取られた識別子等の読取情報と考えてもよい。同様に、ここで説明する第二のコードとは、第一のコードから読み取られた識別子等の読取情報と考えてもよい。例えば、上記の各グループを構成する第一のコードと、第二のコードとを対応付けた情報は、各グループを構成する第一のコードから読み取られた読取情報と、第二のコードから読み取られた読取情報とを対応付けた情報と考えても良い。
【0068】
ここでの出力とは、モニタへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
【0069】
出力部105は、モニタやスピーカー、通信デバイス等の出力デバイスを含むと考えても含まないと考えても良い。出力部105は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【0070】
次に、コード処理装置1の動作の一例について図4のフローチャートを用いて説明する。
【0071】
(ステップS101)撮影部101は、2以上の第一のコードと、1以上の第二のコードとが配置された領域の撮影を行うか否かを判断する。例えば、図示しない受付部等が、上記のような撮影を行う操作を受け付けた場合に、撮影部101は、撮影を行うと判断する。撮影を行う場合、ステップS102に進み、行わない場合、ステップS101に戻る。
【0072】
(ステップS102)撮影部101は、2以上の第一のコードと、1以上の第二のコードとが配置された領域の撮影を行って、撮影画像を取得する。
【0073】
(ステップS103)画像受付部100は、ステップS102で取得された撮影画像を受け付ける。
【0074】
(ステップS104)コード検出部102は、画像受付部100が受け付けた撮影画像において、複数のコードを検出する。例えば、コード検出部102は、検出した各コードの輪郭の情報を取得する。
【0075】
(ステップS105)コード読取部103は、ステップS104で検出された各コードを読み取って、コードに対応する情報を取得する。
【0076】
(ステップS106)コード読取部103は、ステップS105で読み取った情報を用いて、ステップS104で検出された各コードから、第一のコードと第二のコードとを検出する。この処理は、ステップS104で検出された各コードが、第一のコードであるか第二のコードであるか判断する処理と考えても良い。なお、ステップS104でコードを検出する際に、各コードが第一のコードであるか第二のコードであるかが判断できる場合は、この処理は省略してもよい。
【0077】
(ステップS107)グループ化部104は、ステップS106で検出された各第一のコード毎に、一の第一のコードと1以上の第二のコードとをグループ化する。このグループ化は、例えば、上述したようなコード間の距離や、コードが配置される領域によるグループ化である。グループ化部104は、例えば、同じグループに属する一の第一のコードと1以上の第二のコードとを対応付けた情報を取得する。
【0078】
(ステップS108)出力部105は、ステップS107でグループ化した各グループに関する情報を出力する。例えば、各グループに含まれる一の第一のコードと1以上の第二のコードとを対応付けた情報を出力する。一のグループに含まれる一の第一のコードと1以上の第二のコードとを対応付けた情報は、例えば、一の第一のコードの読取情報と1以上の第二のコードの読取情報とを対応付けた情報である。ここでの出力は、例えば、送信や蓄積である。例えば、一のグループに含まれる一の第一のコードと1以上の第二のコードとを対応付けた情報のデータベース等への蓄積であってもよい。そして、処理を終了する。
【0079】
なお、図4に示したフローチャートにおいては、撮影画像において、コード検出部102が複数のコードを検出した後、コード読取部103が各コードを読み取る例について説明したが、コード検出部102が1つのコードを検出するごとに、コード読取部103が、この検出されたコードを読み取るようにしてもよい。かかることは、第一のコード等を判断する処理においても同様である。
【0080】
以下、本実施の形態におけるコード処理装置1の具体的な動作について一例を挙げて説明する。
【0081】
まず、一の組織に属する8人のユーザを、管理者が、グループ分けするために、8人のユーザのうちのあらかじめ決められた3人のグループリーダのそれぞれに対応する第一のコードが個別に配置された3つの第一のカードを用意したとする。各第一のコードは、読取情報が、グループリーダのユーザ識別子であるコードであるとする。この3人のグループリーダのユーザ識別子は、あらかじめ図示しない格納部等に蓄積されているものとする。3人のグループリーダのユーザ識別子は、「L1001」、「L1002」、および「L1003」であるとする。
【0082】
また、3人のグループリーダ以外の残りの5人のユーザのそれぞれに対しては、5人のユーザにそれぞれ対応する第二のコードが個別に配置された5つの第二のカードを用意したとする。ここでは、残りのユーザを説明の便宜上、一般ユーザと呼ぶ。各第二のコードは、読取情報が、5人のユーザのそれぞれに対応するユーザ識別子であるとする。
【0083】
なお、第一のコードおよび第二のコードは、いずれもカラーコードであるとする。第一のカードの表面の色は、第二のカードに対して目視等によって識別可能となるように、第二のカードの表面の色とは異なる色となっている。第一のカードと第二のカードとには、いずれも、対応するユーザの氏名がコードに隣接して配置されているものとする。第一のコードおよび第二のコードにそれぞれ対応付けられたユーザ識別子は、例えば、ユーザに割り当てられた社員番号や会員番号等の文字列であるとする。第一のカードおよび第二のカードは、磁性体を内部に有するホワイトボードに着脱可能に取り付けられるマグネットシート製のカードであるとする。
【0084】
まず、グループ分けを行うために、グループ分けを行う管理者が、3人のグループリーダに対応する第一のカードを、壁にかけられたホワイトボードの表面に広めの間隔をあけて配置する。そして、管理者が、各グループリーダと同じグループに配属したい一般ユーザの第二のカードを、各グループリーダの第一のカードに近接して配置していく。
【0085】
図5は、このようにして第一のカードと第二のカードとが配置されたホワイトボード等を示す図である。ホワイトボード300に配置された3つの第一のカード211には、第一のコード201a~201cがそれぞれ配置され、5つの第二のカード212には、第二のコード202a~202eが配置されているものとする。
【0086】
そして、グループ分けを行った管理者が、3つの第一のカード211と5つの第二のカード212とが配置されたホワイトボード300を、コード処理装置1の撮影部101により撮影したとする。ここでは、コード処理装置1が、いわゆるスマートフォンであり、撮影部101が、スマートフォンが有するカメラであるとする。
【0087】
ここで撮影部101が撮影して取得した撮影画像は、上記で図2(a)に示した撮影画像200において、第一のカードと第二のカードとの色を異なる色とし、それぞれのコードに隣接する位置にユーザの氏名を配置した撮影画像200であるとし、この撮影画像における第一のコード201a~201cと第二のコード202a~202eの配置は、図2(a)および図3(a)~図3(c)と同様であるとする。
【0088】
画像受付部100が、撮影部101により撮影された撮影画像200を受け付けると、コード検出部102は、撮影画像200において第一のコード201a~201cと第二のコードa~202eとをそれぞれ検出し、コード読取部103は、検出されたコードを読み取る。そして、読み取った情報が、上述したあらかじめ図示しない格納部に格納されている3人のグループリーダのユーザ識別子のいずれか一つと一致するか否かを判断する。一致した場合、検出されたコードを、第一のコードと判断し、一致しない場合、検出されたコードを第二のコードと判断する。この判断の結果、第一のコード201a~201cが撮影画像内において検出されることとなる。
【0089】
グループ化部104は、検出された第一のコード201a~201cを用いて、グループ化を行う。ここでは、上記の(2-2)において図3(a)~図3(c)を用いて説明したように、第一のコード201a~201cに対応する四角形の領域を、右辺方向および下辺方向に拡大される速度が左辺方向および上辺方向に拡大される速度よりも速くなるよう、連続的に拡大した場合に得られるような2以上の領域を撮影画像200に対して設定し、設定したそれぞれの領域に配置された第一のコード201a~201cと第二のコード202a~202eとのグループ化を行う。
【0090】
ここでは、撮影画像200が、上記においてグループ化の説明に用いた撮影画像200と同じであるため、撮影画像200のコードが配置されている領域は、図3(c)に示すような第一のコード201a~201cがそれぞれ配置される3つの領域304a~304cに分割される。
【0091】
グループ化部104は、領域304aに配置された第一のコード201aからコード読取部103が読み取ったユーザ識別子「L1001」と、同じ領域304aに配置された第二のコード202aおよび202cからコード読取部103がそれぞれ読み取ったユーザ識別子「U0001」および「U0003」とを対応付けた情報を取得する。また、領域304bに配置された第一のコード201bからコード読取部103が読み取ったユーザ識別子「L1002」と、同じ領域304bに配置された第二のコード202bおよび202dからコード読取部103がそれぞれ読み取ったユーザ識別子「U0002」および「U0004」とを対応付けた情報を取得する。また、領域304cに配置された第一のコード201cからコード読取部103が読み取ったユーザ識別子「L1003」と、同じ領域304cに配置された第二のコード202eからコード読取部103が読み取ったユーザ識別子「U0005」とを対応付けた情報を取得する。
【0092】
そして、出力部105は、グループ化部104が各グループに属する第一のコードおよび第二のコードについて取得したユーザ識別子を出力する。ここでは、グループ毎に取得したユーザ識別子を、グループ毎に図示しない格納部に蓄積する。
【0093】
図6は、出力部105が図示しない格納部に蓄積した、グループ化されたコードから取得したユーザ識別子をグループ毎に対応付けて管理するグループ管理表である。グループ管理表は、「リーダID」と「一般ID」という属性を有している。「リーダID」は、第一のコード201a~201cのいずれかから読み取られグループリーダのユーザ識別子である。「一般ID」は、第二のコード202a~202eのいずれかから読み取られる一般ユーザのユーザ識別子である。同じレコード(行)の「リーダID」の属性値と、「一般ID」の属性値は、同じグループに属するグループリーダのユーザ識別子と、一般ユーザのユーザ識別子とを示している。また、「リーダID」の属性値が同じである異なるレコード(行)の「一般ID」の属性値は、同じグループに属する一般ユーザのユーザ識別子を示している。
【0094】
出力部105が出力する図6に示すようなグループ管理表を、例えば、図示しないモニタ等に表示することにより、各ユーザがどのグループに属しているかを知ることができる。
【0095】
このように、この具体例においては、ユーザに対応する第一のコードおよび第二のコードをグループごとに配置して撮影することにより、撮影された複数のコードを適切にグループ化することができ、容易にユーザのグループ分けを管理する情報を取得することができる。
【0096】
以上、本実施の形態によれば、撮影された複数のコードを適切にグループ化することができる。これにより、例えば、ユーザがグループ分けして配置した複数のコードにそれぞれ対応する読取情報を、適切にグループ化して出力することができる。
【0097】
なお、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【0098】
また、上記各実施の形態では、コード処理装置がスタンドアロンである場合について説明したが、コード処理装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
【0099】
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部(例えば、ハードディスクやメモリ等の記録媒体)にアクセスしながらプログラムを実行してもよい。
【0100】
なお、上記各実施の形態におけるコード処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、第一のコードが配置された2以上の第一のカードと、第二のコードが配置された1以上の第二のカードとを撮影した撮影画像を受け付ける画像受付部と、画像受付部が受け付けた撮影画像からコードを検出するコード検出部と、コード検出部が検出したコードを読み取って、コードに対応する情報を取得するコード読取部と、コード検出部が検出したコードのうちの、第一のコードのそれぞれと、第一のコードのそれぞれと対応付けて配置されている1以上の第二のコードとをグループ化するグループ化部と、グループ化部がグループ化したグループに関する情報を出力する出力部と、して機能させるためのプログラムである。
【0101】
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
【0102】
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0103】
図7は、上記プログラムを実行して、上記実施の形態によるコード処理装置を実現するコンピュータシステム900の一例を示す図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
【0104】
図7において、コンピュータシステム900は、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムや、アプリケーションプログラム、システムプログラム、及びデータが記憶されるフラッシュメモリ等のROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM913と、タッチパネル914と、無線通信モジュール915と、MPU911、ROM912等を相互に接続するバス916とを備える。なお、無線通信モジュール915に代えて、有線通信モジュールを備えていてもよい。また、タッチパネル914に代えて、ディスプレイと、マウスやキーボード等の入力デバイスとを備えていてもよい。
【0105】
コンピュータシステム900に、上記実施の形態によるコード処理装置の機能を実行させるプログラムは、無線通信モジュール915を介してROM912に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、ネットワークから直接、ロードされてもよい。
【0106】
プログラムは、コンピュータシステム900に、上記実施の形態によるコード処理装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能やモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
【0107】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【0108】
以上のように、本発明にかかるコード処理装置等は、コードを処理する装置等として適しており、特に、コードをグループ化する装置等として有用である。
【符号の説明】
【0109】
1 コード処理装置
100 画像受付部
101 撮影部
102 コード検出部
103 コード読取部
104 グループ化部
105 出力部
図1
図2
図3
図4
図5
図6
図7