以下、本発明の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態における情報処理システム1000のブロック図である。なお、図1において、帽子3は、情報処理システム1000が有するカメラ1の撮影対象となる帽子を示している。
情報処理システム1000は、カメラ1及び情報処理装置2を備える。
情報処理装置2は、画像受付部201、コード情報取得部202、コード処理部203、出入管理情報格納部204、出力部205を備える。
図2は、本実施の形態における情報処理システム1000において用いられる帽子3の一例を示す左側面図(図2(a))、右側面図(図2(b))、及び正面図(図2(c))である。
以下、帽子3について説明する。帽子3は、例えば、工場や作業場、研究室等で、業務や作業等を行う際に利用される帽子である。帽子3は、例えば、保護帽または作業帽である。保護帽は、例えば、頭部にかぶって用いられる頭部用の保護具である。保護帽は、例えば、法律等が定める規格を満たすものであることが好ましい。保護帽は、例えば、ヘルメット等である。ヘルメットの材質等は問わない。作業帽は、例えば、機械等に労働者の頭髪等が巻き込まれるのを防止したり、頭髪等が製品等に混入することを防止するための帽子である。作業帽は、例えば、布や不織布、メッシュ素材等で構成される帽子である。なお、図2においては、一例として、帽子3が、ヘルメットである場合を示している。
帽子3には、光学的に読取り可能な互いに異なる二以上のコードが配置されている。光学的に読取り可能なコードとは、例えば、可視光や、赤外線や、紫外線等により認識可能な文字や図柄やパターン等が表面に示されているコードである。光学的に読取り可能なコードとは、例えば、撮像素子を用いて撮影可能なコードである。例えば、光学的に読取り可能なコードとは、コードを撮影した画像から、コードが示す情報を読み取ることが可能なコードや、コードリーダ等で読み取ることが可能なコードである。光学的に読取り可能なコードとは、バーコード、二次元バーコード、QRコード(登録商標)、カメレオンコード、文字列、数字列等、識別できるものであれば何でも良い。コードは、カメレオンコード等の、色の配列を識別に用いられる情報として有する二次元コードであることは好適である。このような色の配列を識別に用いられる情報として有する二次元コードは、例えば、カラーバーコードと呼ばれる。
互いに異なるコードとは、例えば、コードから読み取られるコード情報が互いに異なるコードである。コード情報とは、通常は、コードから読み取られる文字列の情報等である。ここでの文字列は、数字や記号等も含む概念である。コード情報は、後述するような移動方向を示す情報や、ユーザ識別子等を有していてもよい。なお、コード情報の全体や一部が、移動方向を示す情報や、ユーザ識別子等と対応づけられていることも、ここでは、コード情報が、これらの情報を有していると考えてもよい。異なるコード情報は、少なくとも一部が異なるコード情報である。
コードが帽子3に配置されているということは、コードが帽子3に描かれたり印刷され足り転写されたりしていることであってもよく、コードが描かれたり印刷されたシールやシート、布等が帽子3に接着剤等で貼付されたり、縫い付けられているて布等が縫い付けられていることであっても良い。コードがどのように帽子3に配置されているかは問わない。
一の帽子3に配置された互いに異なる二以上のコードは、例えば、一のユーザに対応づけられた互いに異なる二以上のコードであることが好ましい。一の帽子3に配置された互いに異なる二以上のコードは、例えば、一の帽子3を利用するユーザと対応づけられていることが好ましい。一のユーザに対応づけられたコードとは、例えば、一のユーザの一以上のユーザ識別子と対応づけられたコードである。一の帽子3に配置された互いに異なる二以上のコードとは、具体的には、一のユーザを示す一以上のユーザ識別子と対応づけられた互いに異なるコード情報を示すコードである。この場合、互いに異なるコード情報が一のユーザの一のユーザ識別子と対応づけられていても良く、互いに異なるコード情報のそれぞれが、一のユーザの異なる二以上のユーザ識別子と対応づけられていても良い。
コード情報に対応づけられたユーザ識別子は、例えば、コード情報が少なくともその一部として有していても良い。この場合、例えば、ユーザ識別子を有するコード情報が、ユーザ識別子であっても良い。また、コード情報に対応づけられたユーザ識別子は、コード情報の全体またはその一部と対応づけられて図示しない格納部等に予め格納されていても良い。この場合、コード情報の全体またはその一部と対応づけられたユーザ識別子を、図示しない格納部から検索等により取得すればよい。図示しない格納部には、コード情報の全体またはその一部と、ユーザ識別子とを有する一以上の情報を予め格納しておくようにすればよい。
このように、帽子3のコードとユーザとを対応づけておくことにより、一の帽子3に配置された二以上のコードの一つを読み出すことで、帽子3のユーザを特定することが可能となり、移動方向の検出対象となるユーザを特定することができる。
一の帽子3に配置された互いに異なる二以上のコードは、例えば、異なる移動方向と対応づけられたコードである。ここでの移動方向は、例えば、帽子3をかぶったユーザの移動方向である。移動方向は、移動方向を示す情報と考えてもよい。移動方向は、ユーザが移動する方向を特定するものであれば、どのように方向を表すものであっても良い。移動方向は、例えば、右方向、左方向等のユーザの進行方向等を基準とした相対的な方向等であっても良く、東西南北等の方角等の、絶対的な方向であっても良い。また、移動方向は、例えば、予め決められた区域等への出入方向であっても良い。予め決められた区域は、例えば、建造物や、敷地や、部屋等であっても良い。出入方向は、例えば、予め決められた区域へ入る方向や、区域から出る方向である。移動方向と対応づけられたコードとは、例えば、コードから読み取られたコード情報が、移動方向を示す情報を有することであっても良く、コード情報が、移動方向を示す情報と対応づけられていることであっても良い。移動方向を示す情報は、例えば、「右」、「左」、「入」、「出」等の自然言語等で移動方向を示す情報であっても良く、移動方向に割り当てられた文字列や識別子等であっても良い。
帽子3に配置される互いに異なる二以上のコードのうちの、少なくとも2つは、帽子3の左右の側面に配置されていることが好ましい。具体的には、帽子3の左側面と、右側面とにそれぞれ一以上のコードが配置されており、左側面のコードと右側面のコードとが互いに異なるものであることが好ましい。一の帽子3の左右の側面に配置される二以上のコードも、例えば、この帽子3のユーザ等の一のユーザに対応づけられた互いに異なる二以上のコードであってもよい。
例えば、図2(a)−図2(c)に示すように、帽子3に配置される互いに異なる二以上のコードが第一のコード301と第二のコード302とを有しており、この第一のコード301が、帽子3の左側の側面に配置され、第二のコード302が、帽子3の右側の側面に配置されていても良い。つまり、帽子3の左側面に配置される第一のコード301と、右側面に配置される第二のコード302とは、互いに異なるコードである。なお、図2(a)−図2(c)においては、一例として、帽子3に、第一のコード301と、第二のコード302との2つのコードだけが配置されている場合を示している。また、この第一のコード301と第二のコード302とが、カラーバーコードである場合を例に挙げて示しているが、コードはカラーバーコード以外の他のコードであっても良い。なお、第一のコード301と第二のコード302とは、一のユーザに対応づけられたコードであっても良い。
帽子3の左側に配置されるコードと、帽子3の右側に配置されるコードとは、異なる移動方向と対応づけられたコードであってもよい。例えば、右側に配置されるコードと、左側に配置されるコードとは、正反対の移動方向と対応づけられたコードであっても良い。正反対の移動方向とは、例えば、右方向と左方向との組や、前方向と後方向との組や、特定の区域に対して入る方向と出る方向との組である。ここでの移動方向は、例えば、帽子3をかぶったユーザの移動方向である。移動方向については、上記と同様であるため、ここでは説明を省略する。
例えば、図2(a)−図2(c)において、第一のコード301と第二のコード302とが、異なる移動方向に対応づけられたコードであっても良い。例えば、第一のコード301が特定の区域に対して入る方向と対応づけられたコードであり、第二のコード302が、同じ特定の区域にから出る方向と対応づけられたコードであっても良い。例えば、第一のコード301から読み出されるコードが、移動方向を示す情報として「入室」を表す文字列を有しており、第二のコード302から読み出されるコードが、「退室」を表す文字列を有していても良い。あるいは、第一のコード301と第二のコード302とに対応づけられた移動方向が、この逆であっても良い。
なお、帽子3に配置される互いに異なる二以上のコードは、例えば、一のユーザに対応づけられたコードであって、互いに異なる移動方向と対応づけられたコードであっても良い。
カメラ1は、帽子3に配置された少なくとも一のコードを含む領域を撮影して、画像を取得する。カメラ1が撮影を行う領域内に位置する一の帽子3について撮影する少なくとも一のコードは、例えば、一の帽子3に配置された全てのコードではなく、一部のコードである。カメラ1が撮影する画像は、静止画像であっても良く動画像であっても良い。例えば、カメラ1が撮影する画像は、順番に撮影された一連の複数の静止画像で合っても良い。例えば、帽子3の左側と右側とにそれぞれ異なる一以上のコードが配置されている場合、カメラ1は、左側と右側とにそれぞれ配置されたコードを、同時に撮影しないことが好ましい。例えば、カメラ1が撮影により取得した一の静止画像や動画像を構成する一のフレーム画像には、帽子3の左側に配置された一以上のコード(例えば、第一のコード301)と、右側に配置された一以上のコード(例えば、第二のコード302)とのうちの、いずれか一方のみが撮影されているようにすることが好ましい。
カメラ1は、予め指定された方向から通路を撮影してもよい。通路を撮影することは、例えば、通路を通過する1または2以上の帽子3を撮影することと考えてもよい。帽子3を撮影することは、例えば、帽子3をかぶったユーザの少なくとも帽子3を含む領域を撮影することと考えてもよい。例えば、カメラ1は、予め指定された方向から通路を撮影する位置に配置されており、この位置から、帽子3をかぶった一または二以上のユーザの帽子3に配置されたコードを撮影することが好ましい。ここでの通路は、例えば、ユーザによる予め指定された区域への出入りに利用される通路である。また、ここでの予め指定された方向からの撮影とは、例えば、通路を通過するユーザがかぶった帽子3に配置された一以上のコードを撮影可能な方向からの撮影である。ここでの、予め指定された方向は、一以上の帽子3にそれぞれ配置されている二以上のコードの、一部のみが撮影可能な方向であることが好ましい。例えば、帽子3の両側面にコードが配置されている場合、カメラ1は、通路の一方の側面側から、ユーザがかぶった帽子3の一方の側面のコードだけが撮影可能となるよう撮影を行うことが好ましい。なお、予め指定された方向から通路を撮影するということは、通路の予め指定された領域を撮影することと考えてもよい。
また、カメラ1は、コード以外の部分を撮影しても良い。また、カメラ1は、複数の帽子3にそれぞれ配置されたコードを同時に撮影してもよい。例えば、カメラ1は、複数の帽子3を同時に撮影しても良い。例えば、複数の帽子3をそれぞれかぶった複数のユーザを同時に撮影してもよい。例えば、カメラ1は、複数の帽子3が撮影された静止画像やフレーム画像を取得しても良い。
カメラ1は、例えば、CCDやCMOS等の撮像素子を備えている。カメラ1は、ビデオカメラであっても良く、デジタルスチルカメラであっても良い。また、カメラ1が撮影する画像の画素数や、画像のファイル形式や、圧縮方式等は問わない。また、カメラ1が画像を撮像する時期や、時間間隔等は問わない。
画像受付部201は、帽子3に配置された光学的に読み取り可能な互いに異なる二以上のコードのうちの、少なくとも一のコードを含む領域を撮影した画像の入力を受け付ける。ここでの、少なくとも一のコードを含むとは、例えば、一の帽子3に配置された一部のコードのみを撮影することと考えても良く、一の帽子3に配置された全てのコードを同時に撮影することを除くことと考えてもよい。例えば、帽子3の左右の側面にそれぞれ一以上のコードが配置されている場合、画像受付部201は、一の方向から帽子3の側面側を撮影した画像を受け付ける。これにより、画像受付部201が受け付ける一の時点において撮影された画像は、例えば、帽子3の左右の側面のうちの片側に配置されたコードだけが撮影された画像となる。例えば、帽子3の左右の側面に、第一のコード301と、第二のコード302とが配置されている場合、画像受付部201は、第一のコード301を含む領域を撮影した画像、または、第二のコード302を含む領域を撮影した画像を受け付ける。ここでの画像は、静止画像であっても、動画像であっても良い。また、動画像のフレーム画像であっても良い。
画像受付部201は、例えば、カメラ1が撮影した画像を受け付ける。画像受付部201は、例えば、カメラ1が、一の方向から帽子3の側面側を撮影した画像を受け付ける。例えば、画像受付部201は、カメラ1が予め指定された方向から一の通路を撮影した画像を受け付ける。例えば、画像受付部201は、カメラ1が、予め指定された方向から撮影した一の通路を通過する1または2以上の帽子3の少なくとも一のコードを含む領域の画像の入力を受け付ける。ただし、カメラ1以外のカメラや撮像装置(図示せず)が撮影した画像を受け付けても良い。また、画像受付部201は、複数のカメラが撮影した画像を受け付けても良い。
画像受付部201は、カメラ1等が出力する画像の入力を受け付けるインターフェース等と考えてもよい。また、画像受付部201は、カメラ1等が、無線LANや近距離無線通信等の無線通信や有線通信により送信する画像を受信する受信部と考えてもよい。この場合、画像受付部201は、受信のための通信手段等を備えていても良い。
コード情報取得部202は、画像受付部201が受け付けた画像から少なくとも一以上のコードを検出する。そして、検出したコードに対応づけられたコード情報を取得する。
例えば、コード情報取得部202は、画像受付部201が受け付けたコードを含む領域を撮影した画像内において、一または二以上のコードを検出する。ここでのコードの検出とは、コードの画像や、コードの領域を検出することと考えてもよい。例えば、画像受付部201が受け付けた画像が動画像である場合、コード情報取得部202は、このフレーム画像を二値化して、パターンマッチングや特徴量を検出する処理等により、コードの外枠等の形状を認識して、フレーム画像内のコードが配置されている領域を検出する。そして、検出したコードの画像を取得する。画像受付部201が受け付けた画像が静止画像である場合においても同様である。
なお、コード情報取得部202は、画像受付部201が受け付けた一の画像から、複数のコードの画像を検出しても良い。例えば、2以上の帽子3が撮影された一のフレーム画像や一の静止画像から、複数のコードの画像を検出しても良い。例えば、コード情報取得部202は、複数の帽子3が撮影された一のフレーム画像や一の静止画像内において、各帽子3に配置されたコードの画像を検出しても良い。また、コード情報取得部202は、検出したコードの画像の形状を、適宜補正してもよい。例えば、検出したコードの画像の形状を補正することにより得られたコードの画像を後述するコード情報を取得する際に用いるようにしてもよい。なお、これらの画像から、コードを検出する処理等は、公知技術であるため、ここでは詳細な説明は省略する。
次に、コード情報取得部202は、画像から検出した一または二以上のコードから、それぞれ、コードに対応づけられたコード情報を取得する。画像から検出したコードは、画像から検出したコードの画像と考えてもよい。なお、バーコードや、二次元バーコードや、カラーバーコード等のコードからコード情報を取得する処理については、公知技術であるため、ここでは詳細な説明は省略する。
コード処理部203は、コード情報取得部202が取得したコード情報を用いて、ユーザの移動方向を検出する処理を行う。移動方向を検出する処理とは、移動方向を示す情報を取得する処理と考えてもよい。ここでの移動方向とは、上述した移動方向と同様である。
例えば、帽子3に配置された互いに異なる二以上のコードからそれぞれ取得されるコード情報と、ユーザの移動方向を示す情報とを予め対応づけておくことにより、コード処理部203は、コード情報取得部202が取得したコード情報に対応する移動方向を示す情報を取得する。この取得した移動方向を示す情報が示す移動方向が、コード処理部203が検出したユーザの移動方向である。
具体的には、コード情報と、ユーザの移動方向を示す情報とを対応づけて有する情報を、図示しない格納部等に予め格納しておくようにし、コード処理部203は、この情報から、コード情報取得部202が取得したコード情報と一致するコード情報と対応づけられた移動方向を示す情報を取得する。ここでの一致は、通常完全一致であるが、部分一致であっても良い。
また、コード情報全体が一致するか否かを判断せずに、コード情報取得部202が取得したコード情報の予め指定された一部分のみを取り出して、この部分が、予め用意された移動方向を示す情報と対応づけられた一以上の情報と一致するか否かを判断し、一致する情報と対応づけられた移動方向を示す情報を取得するようにしても良い。また、この場合、一致しないと判断された際には、予め指定された移動方向を示す情報を取得するようにしても良い。例えば、コード情報の一部に、予め、移動方向を示すフラグの情報を加えておくようにし、コード情報取得部202が取得したコード情報が有するフラグの情報の値に応じて移動方向を示す情報を取得しても良い。例えば、フラグの値が「1」であれば、第一の方向への移動であることを示す情報を取得し、フラグの値が「0」であれば、第二の方向への移動であることを示す情報を取得するようにしても良い。なお、このようなフラグ等の情報を、そのまま、コード処理部203が検出した移動方向を示す情報として取得しても良い。
また、コード情報が、移動方向を示す情報を有する場合、コード処理部203は、単にこの移動方向を示す情報を取得しても良く、このように移動方向を示す情報を取得することも、移動方向を検出することと考えてもよい。
例えば、上述したように、帽子3の左右の側面に第一のコード301と第二のコード302とが配置されている場合において、画像受付部201が受け付けたこの帽子の左側面の第一のコード301または右側面の第二のコード302を撮影した画像から、コード情報取得部202が、第一のコード301に対応したコード情報、または第二のコード302に対応したコード情報のいずれか一方を取得したとする。この場合、コード処理部203は、例えば、コード情報取得部202が取得したコード情報が第一のコード301に対応したものである場合と第二のコード302に対応したものである場合とに応じたユーザの移動方向を検出する。例えば、予め、第一のコード301のコード情報と、第一の移動方向を示す情報とを対応づけた情報、及び第二のコード302のコード情報と、第二の移動方向を示す情報とを対応づけた情報とを、図示しない格納部等に予め格納しておくようにし、コード処理部203は、この格納部に格納された情報から、コード情報取得部202が取得した第一のコードのコード情報または第二のコードのコード情報に対応した移動方向を示す情報を取得する。
コード処理部203は、移動方向を検出する処理として、ユーザの移動方向が、予め決められた区域に入る方向であるかを検出する処理や、予め決められた区域から出る方向であるかを検出する処理を行っても良い。この処理は、ユーザの出入を検出する処理であると考えてよい。つまり、ユーザのコード処理部203が、ユーザの移動方向を検出する処理として、ユーザの出入を検出する処理を行っても良い。具体的には、コード処理部203は、ユーザの予め決められた区域等への出入を検出する処理を行っても良い。ユーザの出入を検出する処理は、ユーザの出入を示す情報を取得する処理と考えてもよい。つまり、コード処理部203は、ユーザの移動方向を示す情報として、ユーザの出入を示す情報を取得してもよい。
出入を示す情報は、例えば、予め指定された区域等へユーザが入ったことを示す情報、またはユーザが出たことを示す情報、またはその両方を示す情報である。ユーザの出入を示す情報は、例えば、自然言語等でユーザの出入を示す情報であっても良く、予め決められた区域に入ったことや、区域から出たことにに割り当てられた文字列や識別子(例えばフラグ等の情報)であっても良い。また、出入を示す情報は、出入の対象となる区域の識別子、例えば、区域の名称等を示す情報を有していても良い。
例えば、帽子3に配置された互いに異なる二以上のコードからそれぞれ取得されるコード情報と、ユーザの出入を示す情報とを予め対応づけておくことにより、コード処理部203は、コード情報取得部202が取得したコード情報に対応する出入を示す情報を取得する。コード情報と、ユーザの出入を示す情報とを対応づけた情報は、図示しない格納部等に予め蓄積しておくようにすればよい。なお、コード情報に対応づけられた出入を示す情報や、この出入を示す情報を取得する処理等については、移動方向を予め決められた区域等への出入とする点を除けば、上述した移動方向を示す情報や、この移動方向を示す情報を取得する処理等と同様であるため、ここでは、詳細な説明は省略する。
なお、帽子3に配置されたコードが、ユーザと対応づけられている場合、コード処理部203は、コード情報取得部202が取得したコード情報から、更に、ユーザを特定する情報を取得しても良い。例えば、コード処理部203は、コード情報取得部202が取得したコード情報に対応づけられたユーザ識別子を取得しても良い。例えば、コード処理部203は、コード情報取得部202が取得したコード情報が有するユーザ識別子を取得しても良い。また、コード処理部203は、コード情報と対応づけられて図示しない格納部に格納されているユーザ識別子を取得しても良い。例えば、コード情報と、ユーザ識別子とを対応づけて有する情報を、図示しない格納部等に予め格納しておくようにし、コード処理部203は、この情報から、コード情報取得部202が取得したコード情報と一致するコード情報と対応づけられた移動方向を示す情報を取得する。ここでの一致は、通常完全一致であるが、部分一致であっても良い。
また、コード処理部203は、上記のようにして取得したユーザ識別子を用いて、ユーザ認証の処理を行っても良い。また、この場合、更に、ユーザから、図示しない受付部等を介して、暗証番号等の入力を受け付けるようにし、この暗証番号等も認証の処理に用いてもよい。なお、ユーザ識別子を用いたユーザ認証処理については、公知技術であるため、ここでは詳細な説明は省略する。また、ここでの認証処理は、予め決められた区域に、この区域に入ることが許可されていないユーザが入ろうとしていることを検出することも含む概念であると考えてもよい。この場合、例えば、入ることが許可されていない一以上のユーザのユーザ識別子を予め図示しない格納部等に格納しておくようにし、コード処理部は、コード情報から取得したユーザ識別子が、この図示しない格納部に格納されているユーザ識別子のいずれか一つと一致した場合、予め決められた区域に入ることが許可されていないユーザが、この区域に入ろうとしていることを検出しても良い。
出入管理情報格納部204には、ユーザ識別子と、ユーザ識別子が示すユーザの出入に関する情報とを有する一以上の出入管理情報が格納される。ユーザ識別子が示すユーザの出入に関する情報を、以下、出入関連情報と称す。出入関連情報とは、例えば、ユーザが予め決められた区域等の中に対する出入に関する情報である。出入関連情報は、例えば、ユーザが、予め決められた区域内に入ったことを示す情報や、出たことを示す情報や、入った日時や、出た日時等を有する情報である。出入管理情報は、予め決められた区域内に入ったことを示す情報の代わりに、入った日時だけを有していても良い。同様に、予め決められた区域から出たことを示す情報の代わりに、出た日時だけを有していても良い。また、出入関連情報は、予め決められた区域内に入った回数や、一回の出入が行われる間の滞在時間等の情報を有していても良い。ここでの日時は、例えば、日付及び時刻の少なくとも一方を有する情報である。
出入管理情報格納部204は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。かかることは、他の格納部についても同様である。
なお、上述したコード処理部203において、ユーザの予め決められた区域等への出入、あるいは、出入を判断可能な情報等を検出しない場合や、後述する出力部205が、出入関連情報の蓄積を行わない場合等においては、出入管理情報格納部204は省略しても良い。
出力部205は、コード処理部203の処理結果に応じた情報を出力する。例えば、出力部205は、コード処理部203が検出したユーザの移動方向を示す情報を出力する。例えば、出力部205は、コード処理部203が、ユーザの移動方向の検出結果として取得したユーザの移動方向を示す情報を出力する。また、例えば、出力部205は、コード処理部203が移動方向を検出した日付等を、図示しない時計等から取得し、この日付等と対応づけられた移動方向を示す情報を出力しても良い。コード処理部203が移動方向を検出した日付は、コード処理部203が取得した移動方向を示す情報を出力部205が受けとった日付としてもよい。あるいは、出力部205が、移動方向を示す情報を出力する日付を移動方向を検出した日付と考えてもよい。
また、出力部205は、コード処理部203の処理結果に応じた情報として、ユーザの出入に関する情報を出力するようにしても良い。例えば、出力部205は、コード処理部203が処理結果として取得したユーザの出入を示す情報を出力しても良い。
また、出力部205は、コード処理部203がユーザの出入を検出した日付等を、図示しない時計等から取得し、この日付等と出入を示す情報とを対応づけた情報を、出入に関する情報として出力しても良い。出入を検出した日付は、例えば、入ったことを示す日付、または出たことを示す日付、またはその両方である。コード処理部203がユーザの出入を検出した日付は、コード処理部203が取得した出入を示す情報を出力部205が受けとった日付としてもよい。あるいは、出力部205が、出入を示す情報を出力する日付を、出入を検出した日付と考えてもよい。なお、出入を示す情報の代わりに、出入を検出した日付を、出入に関する情報として出力するようにしてもよい。なお、ここでの出入に関する情報は、上述したような出入関連情報と考えてよい。このことは、出力部205が、ユーザの移動方向を示す情報として、コード処理部203が取得したユーザの出入に関する情報を出力することと考えてもよい。
また、出力部205は、処理結果に応じた情報として、コード処理部203がコード情報を用いて取得したユーザ識別子を更に有する情報を出力しても良い。例えば、出力部205は、コード処理部203が取得したユーザ識別子と、ユーザの移動方向に関する情報とを対応づけた情報を出力しても良い。例えば、出力部205は、コード処理部203の処理結果に応じた情報として、コード処理部203が取得したユーザ識別子と、コード処理部203が取得したユーザ識別子が示すユーザの出入に関する情報である出入関連情報とを有する出入管理情報を出力してもよい。例えば、出力部205は、この出入管理情報を出入管理情報格納部204に蓄積しても良い。
なお、出力部205は、コード処理部203が取得したユーザの出入に関する情報を用いて、予め指定された期間内に予め決められた区域に入ったユーザについてのユーザ数等の予め指定された統計値を取得して、この統計値を示す情報を、必要に応じて上記の期間の情報等と対応づけて出力するようにしてもよい。
ここでの出力は、例えば、モニタ等への表示、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
なお、出力部205は、コード処理部203が、コード情報を用いて行った認証処理の結果等に応じた情報を出力してもよい。例えば、出力部205は、認証処理の結果に応じて、適宜、警告等を出力しても良い。例えば、上述したように、予め指定された区域に入ることが許可されていないユーザが、この区域に入ろうとしていることをコード処理部203が検出した場合に、出力部205は、警告等を出力しても良い。警告の出力は、例えば、警告の図示しないモニタへの表示や、警告音のスピーカー等からの出力、警告灯の点灯等である。
出力部205は、モニタ等の出力デバイスを含むと考えても含まないと考えても良い。出力部205は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理システム1000の情報処理装置2の動作の一例について図3のフローチャートを用いて説明する。
(ステップS101)画像受付部201は、画像を受け付けたか否かを判断する。例えば、画像受付部201は、カメラ1が撮影した画像を受け付けたか否かを判断する。受け付けた場合、ステップS102に進み、受け付けていない場合ステップS101に戻る。ここで受け付ける画像は、例えば、静止画像や、動画像のフレーム画像である。
(ステップS102)コード情報取得部202は、ステップS101で受け付けた画像から一以上のコードを検出する。このコードは、帽子3に配置されたコードである。例えば、コード情報取得部202は画像から、コードが配置されている領域等を検出する。コード情報取得部202は、一の画像から、二以上のコードを検出しても良い。なお、前回のステップS102で検出したコードの輪郭を示す座標等の情報や、動き予測等を利用して、前回のステップS102で検出したコードと同じコードは検出しないようにしても良い。
(ステップS103)コード情報取得部202は、カウンターmの値に1を代入する。
(ステップS104)コード情報取得部202は、m番目のコードがステップS102で検出されたか否かを判断する。検出されている場合、ステップS105に進み、検出されていない場合、ステップS101に戻る。
(ステップS105)コード処理部203は、m番目のコードについてコード情報を取得する。例えば、コード処理部203は、m番目のコードからコード情報を読み出す。
(ステップS106)コード処理部203は、ステップS105においてm番目のコードについて取得したコード情報を用いて、ユーザの移動方向を検出する。例えば、コード処理部203は、ユーザの移動方向を示す情報を取得する。例えば、コード処理部203は、ユーザの出入を示す情報を取得する。
(ステップS107)コード処理部203は、ステップS105においてm番目のコードについて取得したコード情報を用いて、コードに対応づけられたユーザ識別子を取得する。
(ステップS108)出力部205は、ステップS106及びステップS107において行われた処理結果に応じた情報を出力する。例えば、出力部205は、ステップS106において取得したユーザの移動方向を示す情報と、ステップS107において取得したユーザ識別子とを対応づけて出力する。例えば、出力部205は、ステップS106の処理に応じて取得したユーザの予め決められた区域への出入に関する情報と、ステップS107の処理において取得したユーザ識別子とを対応づけて有する出入管理情報を、出入管理情報格納部204に蓄積しても良い。
(ステップS109)コード処理部203は、カウンターmの値を1インクリメントする。そして、ステップS104に戻る。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
情報処理システム1000のカメラ1の動作について簡単に説明すると、カメラ1は、、例えば、動画像のフレーム画像を順次を撮影して、撮影したフレーム画像を情報処理装置2の画像受付部201に対して送信する。あるいは、カメラ1は、例えば静止画像を順次撮影して、撮影した静止画像を情報処理装置2の画像受付部201に対して送信する。
以下、本実施の形態の情報処理システム1000により、帽子3をかぶったユーザの移動方向を検出する処理の概略について一例を挙げて説明する。
例えば、カメラ1を、帽子3をかぶったユーザが第一の方向に向かって移動する際には帽子3に配置された互いに異なる二以上のコードのうちの一のコードであるコードAだけを含む領域が撮影可能な位置であって、第二の方向に向かって移動する際にはコードAとは異なるコードBだけを含む領域が撮影可能な位置に予め配置しておく。そして、コードAに対応するコード情報を、移動方向が第一の方向であることを示す情報と対応付け、コードBに対応するコード情報を、移動方向が第二の方向であることを示す情報と対応づけておく。
このような状況下において、ユーザが第一の方向に向かって移動している場合、カメラ1は、コードAだけを含む領域を撮影して画像を取得し、画像受付部201に渡す。これにより、画像受付部201は、帽子3に配置されたコードのうちのコードAだけを含む画像を受け付ける。コード情報取得部202は、このコードAを画像から検出し、コードAのコード情報を取得する。そして、コード処理部203は、このコードAのコード情報に対応する移動方向を示す情報、即ち移動方向が第一の方向であることを示す情報を取得する。そして、出力部205は、移動方向が第一の方向であることを示す情報を出力する。
また、ユーザが第二の方向に向かって移動している場合、カメラ1は、コードBだけを含む領域を撮影して画像を取得するため、上記と同様の処理を行うことにより、出力部205は、第二の方向に向かっていることを示す情報を出力することとなる。
このようにして、情報処理システム1000においては、帽子3をかぶったユーザが、カメラ1の撮影領域を通過することにより、カメラ1で撮影されるコードの違いに応じて、ユーザの移動方向を検出して検出結果を出力することができる。
以下、本実施の形態における情報処理システム1000の具体的な動作について説明する。ここでは、ユーザの予め決められた区域への出入を検出する場合を例に挙げて説明する。帽子3として、図2(a)−図2(c)に示すように、第一のコード301が左側面に配置され、第一のコード301とは異なる第二のコード302が右側面に配置された保護帽を用いる場合を一例に挙げて説明する。また、第一のコード301および第二のコード302が、一例として、カラーバーコードである場合について説明する。このカラーバーコードは、ここでは、一例として、黒い背景に、水色・紫・黄・緑・赤・青・オレンジの最大8色の色を有する矩形の図柄を、3行9列となるよう2次元に配列した構成を有しているものとする。
ここでは、予め決められた区域内のおいては、作業の安全や、衛生等の観点から、各ユーザには各ユーザ専用の帽子3の着用が義務づけられており、各ユーザの帽子3に配置されている第一のコード301と第二のコード302とは、それぞれ、各ユーザのユーザ識別子と対応づけられているものとする。また、一のユーザが利用する帽子の第一のコード301と第二のコード302と、他のユーザが利用する帽子3の第一のコード301と第二のコード302とは、それぞれ異なるコードとなっているものとする
図4は、ユーザの出入を検出する処理を説明するための、ユーザが予め決められた区域に入る状況を示す図(図4(a))、及びユーザが予め決められた区域から出る状況を示す図(図4(b))である。図4(a)及び図4(b)は、情報処理システム1000により出入の検出が行われる予め決められた区域の一例である特定の作業場への出入口50周辺を模式的に表している。作業場への出入口50の手前には、通路40が設けられており、作業者であるユーザは、この通路40を通って、出入口50から作業場内へ入るものとする。
通路40の出入口50に向かって左側の壁面には、通路40を通るユーザの頭部近傍を撮影可能な高さに、通路40の中央側に向かってカメラ1が設置されている。つまりカメラ1は、予め指定された方向である通路40の側面側から、通路を撮影するよう設置されている。これにより、作業場に出入りするために通路40を通るユーザがかぶっている帽子3を、側面側からカメラ1で撮影できるようになっている。カメラ1は、ここでは動画像を撮影するものとする。図において、矢印1aは、カメラ1の撮影方向を示している。なお、ここでは、カメラ1と有線または無線で接続されている情報処理装置2は省略している。
自分専用の帽子3をかぶったユーザ10が、作業場に入るために、通路40を出入口50に向かって移動しており、カメラ1の前を通過したとする。カメラ1は、カメラ1の前方の撮影領域を通過したユーザ10がかぶった帽子3の左側面を含む領域を撮影する。なお、ユーザ10のユーザ識別子は、「PA199623」であるとする。このユーザ識別子は、例えば、社員番号であるとする。
図5は、カメラ1が撮影した動画像の一のフレーム画像を示す図(図5(a))、及びフレーム画像から第一のコード301を検出した状態を示す図(図5(b))であり、ここでは、ユーザ10がかぶった帽子3の左側面が撮影されたフレーム画像を示している。
カメラ1は、撮影したフレーム画像を、画像受付部201に対して出力する。画像受付部201は、図5(a)に示すような、ユーザ10の帽子3の左側面を撮影したフレーム画像を受け付ける。
コード情報取得部202は、画像受付部201が受け付けた図5(a)に示すようなフレーム画像から、コードの画像を検出する。コードの画像を検出する処理については、公知技術であるため、ここでは説明は省略する。
ここでは、例えば、図5(b)に示すように、帽子3の左側面に配置された第一のコード301の画像を示す領域301aが検出されたとする。
コード情報取得部202は、図5(b)に示した上記で検出した領域301a内の第一のコード301の画像からコード情報を読み出す。ここでは、コード情報取得部202が、例えば、「PA19962301」という文字列で構成されるコード情報を読み出したとする。コードの画像から、コード情報を読み出す処理については、公知技術であるため、ここでは詳細な説明は省略する。
コード処理部203は、コード情報取得部202が取得したコード情報を用いて、ユーザのユーザ識別子と、ユーザの作業場への出入を示す情報を取得する。
ここで、本具体例においては、例えば、第一のコード301から読み出されるコード情報は、左から8桁のユーザ識別子と、2桁の出入を示す情報とで構成されているものとする。コード情報に含まれるユーザ識別子は、帽子3を利用するユーザのユーザ識別子であり、ユーザが利用する帽子3に配置されている第一のコード301毎に異なるものとする。また、第一のコード301の出入を示す情報は、ユーザが予め決められた場所、ここでは特定の作業場へ入ることを示す数字列「01」であるとする。この数字列「01」は、全ての第一のコード301に共通の値であるとする。
コード処理部203は、コード情報取得部202が取得したコード情報「PA19962301」の最初の8桁である「PA199623」をユーザ識別子として取得する。また、次の2桁「01」を出入を示す情報として取得する。上記のように、出入を示す情報「01」は、予め決められた区域に入ることを示す情報である。
出力部205は、コード処理部203から、ユーザ識別子「PA199623」と、出入を示す情報「01」とを受け取る。また、図示しない時計から、これらの情報を受け取った時点の日時の情報「10月22日10時25分30秒」を取得する。そして、これらの情報を有する出入管理情報を、出入管理情報格納部204に蓄積する。ここでの蓄積は、例えば、追記である。ただし、同じユーザ識別子を有するレコード(行)の更新等であっても良い。
図6は、出入管理情報格納部204に格納された出入管理情報を示す図である。出入管理情報は、「ユーザID」と、「出入」と、「日時」という属性を有している。「ユーザID」はユーザ識別子、「出入」は、出入を示す情報であり、値「01」は、入ることを示し、値「02」は出ることを示す。
図6に示すように、上記で出力部205が新たに蓄積した情報が、新たなレコード(行)として追記される。
コード情報取得部202が他のコードを、フレーム画像において検出していた場合、残りのコードについても、同様の処理を繰り返して、出入管理情報を蓄積する。ここでは、他のコードが検出されていなかったため、このフレーム画像についての処理は終了し、カメラ1が取得する新たなフレーム画像について同様の処理を繰り返す。
ここで、ユーザ10が、予め決められた区域である作業場から出るために、図5(b)に示すように、出入口50を経て通路40を作業場から離れる方向に移動し、カメラ1の前を通過したとする。カメラ1は、カメラ1の前方の撮影領域を通過したユーザ10がかぶった帽子3を含む領域を撮影する。このとき、上記のように、作業場に入る場合とは逆向きにカメラ1の撮影領域を通過するため、カメラ1は、作業場に入る場合とは異なり、ユーザ10の帽子の右側面を含む領域を撮影することとなる。
図7は、カメラ1が撮影した動画像の一のフレーム画像を示す図(図7(a))、及びフレーム画像から第二のコード302を検出した状態を示す図(図7(b))であり、ここでは、ユーザ10がかぶった帽子3の右側面が撮影されたフレーム画像を示している。
コード情報取得部202は、カメラ1から画像受付部201が受け付けた図7(a)に示すようなフレーム画像から、コードを検出する。ここでは、例えば、図7(b)に示すように、帽子3の右側面に配置された第二のコード302の画像を示す領域302aが検出されたとする。
コード情報取得部202は、図7(b)に示した上記で検出した領域302a内の第二のコード302の画像からコード情報を読み出す。ここでは、コード情報取得部202が、例えば、「PA19962302」という文字列で構成されるコード情報を読み出したとする。このコード情報は、上述した第一のコード301について読み出されたコード情報とは異なるコード情報である。コード処理部203は、コード情報取得部202が取得したコード情報を用いて、ユーザのユーザ識別子と、ユーザの作業場への出入を示す情報を取得する。
ここで、本具体例においては、例えば、第二のコード302から読み出されるコード情報も、第一のコード301から読み出されるコード情報と同様に、左から8桁のユーザ識別子と、2桁の出入を示す情報とで構成されているものとする。ただし、第一のコード301から読み出されるコード情報とは、異なり、出入を示す情報は、予め決められた区域、ここでは特定の作業場から出ることを示す数字列「02」であるとする。この数字列「02」は、全ての第二のコード302に共通の値であるとする。
コード処理部203は、コード情報取得部202が取得したコード情報「PA19962301」の最初の8桁である「PA199623」をユーザ識別子として取得する。また、次の2桁「02」を出入を示す情報として取得する。
出力部205は、コード処理部203から、ユーザ識別子「PA199623」と、出入を示す情報「02」とを受け取る。また、図示しない時計から、これらの情報を受け取った時点の日時の情報「10月22日13時28分10秒」を取得する。そして、これらの情報を有する出入管理情報を、出入管理情報格納部204に蓄積する。ここでの蓄積は、例えば、追記である。ただし、同じユーザ識別子を有するレコード(行)の更新等であっても良い。
図8は、レコードが追記された出入管理情報を示す図である。図8に示すように、上記で出力部205が新たに蓄積した情報が、新たなレコード(行)として追記される。
このように、この具体例においては、ユーザの移動する方向に応じて、ユーザがかぶっている帽子3に配置された互いに異なるコードである第一のコード301と、第二のコード302とのいずれか一方からコード情報が読み出されるため、コード処理部203は、ユーザの移動方向に応じたコード情報を取得することとなる。このため、この具体例のように、第一のコードと第二のコードに対して、カメラ1が撮影を行う方向に応じて、帽子3に配置される各コードにユーザの移動方向を示す情報(ここでは、出入を示す情報)を対応づけておくことにより、容易にユーザの出入を検出することができる。
また、工場や、作業場等においては、元々、作業帽や保護帽の着用が義務づけられているところも多いことから、作業者等のユーザにコードを取り扱うための新たな労力をかけることも少ない。また、コードを出入時に取り外したりする必要がないため、コードが紛失する等の問題も回避できる。
なお、カメラ1の配置する壁面を、作業場に向かって右側の壁面、即ち、現在カメラ一が設けられている壁面に対して向かい合う壁面に変更してもよく、この場合、作業場に入る際には、帽子の右側に配置された第一のコード301のコード情報が読み取られ、作業場から出る際には、帽子の左側に配置された第一のコード301のコード情報が読み取られることから、例えば、第一のコード301に対応づけられた出入を示す情報と、第二のコード302に対応づけられた出入を示す情報とを逆の情報にすればよい。
以上、本実施の形態によれば、ユーザがかぶった帽子3に配置された互いに異なる二以上のコードのうちの少なくとも一のコードを撮影した画像を用いて、ユーザの移動方向を検出するようにしたことにより、手間と時間をかけることなく、ユーザの移動方向を適切に検出することができる。
また、移動の管理に用いられる互いに異なる二以上のコードは、移動方向を検出する際も、作業時においてもユーザがかぶった帽子に配置されているため、ユーザの作業時における作業性や安全性を妨げないようにすることができる。
また、帽子3をかぶった状態で、ユーザの移動方向を検出することができるため、移動方向が検出できるようにコードを取り外したりする手間を減らすことができるとともに、取り外したコードを無くしたりしないようにすることができる。
なお、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりする情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記各実施の形態では、情報処理装置がスタンドアロンである場合について説明したが、情報処理装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部(例えば、ハードディスクやメモリ等の記録媒体)にアクセスしながらプログラムを実行してもよい。
なお、上記各実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、光学的に読み取り可能な互いに異なる2以上のコードが配置された帽子の、少なくとも一のコードを含む領域を撮影した画像の入力を受け付ける画像受付部と、画像受付部が受け付けた画像から少なくとも一以上のコードを検出して、検出したコードに対応づけられた情報であるコード情報を取得するコード情報取得部と、コード情報取得部が取得したコード情報を用いて、ユーザの移動方向を検出する処理を行うコード処理部と、コード処理部の処理結果に応じた情報を出力する出力部として機能させるためのプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図9は、上記プログラムを実行して、上記実施の形態による情報処理装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図9において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図10は、コンピュータシステム900の内部構成を示す図である。図10において、コンピュータ901は、CD−ROMドライブ905に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記実施の形態による情報処理装置等の機能を実行させるプログラムは、CD−ROM921に記憶されて、CD−ROMドライブ905に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態による情報処理装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。