以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態における情報処理装置1のブロック図である。
情報処理装置1は、撮影画像受付部101、撮影装置102、取得部103、格納部104、及び出力部105を備える。
撮影画像受付部101は、撮影画像を受け付ける。撮影画像は、一または二以上のコードと、コード以外の認識対象とが撮影された画像である。
コードとは、例えば、バーコード等の一次元コードや、QRコード(登録商標)等の二次元コードや、カラーコード等である。カラーコードとは、例えば、複数の色の配列が任意の情報と対応づけられたコードである。カラーコードは、例えば、カラーバーコードやカメレオンコード等とも呼ばれる場合がある。コードは、例えば、情報を表現するパターン画像と考えてもよい。コードからは、コードに対応付けられた情報が読み取り可能である。コードと対応づけられた情報は、例えば、コードの識別子である。コードの識別子は、コードに埋め込まれた情報と考えてもよい。コードの識別子は、例えば、予め決められた処理等を行なうことでコードから読み取られる。コードの識別子は、例えば、一以上の文字で構成される。ここでの文字は、数字や、記号等も含むと考えてもよい。なお、カラーコードについては、公知技術であるため、ここでは詳細な説明は省略する。カラーコードについては、例えば、以下の特許文献2を参照されたい。特許文献2:特開2010−033034号公報(第1頁、第1図等)。
コードは、通常、物体等に配置されている。ここでの物体は、どのような物体であってもよい。例えば、物体は物品である。例えば、物体は、商品や製品である。物体は、例えば、書籍や、商品の箱等である。コードが物体に配置されるということは、例えば、コードが物体に貼付されることや、コードが物体に印刷、あるいは描画されていることである。コードが物体に貼付されるということは、例えば、コードが印刷されたシールやシートが、物体に貼付されることであっても良い。コードが物体に配置されるということは、物体にコードが印刷あるいは記載されたシートやプレート等の表示物が架けられていることであってもよく、物体に近接した位置、例えば物体の手前等にコードが印刷あるいは記載されたシートやプレート等の表示物が配置されていることであってもよい。
コード以外の認識対象とは、例えば、画像認識処理や、文字認識処理の認識処理の対象となるものであって、コード以外のものである。なお、以下、説明の便宜上、コード以外の認識対象を単に認識対象と呼ぶ。認識対象は、例えば、この認識対象を撮影した画像に対して画像認識処理や文字認識処理等の認識処理を行なうことで、認識対象に対応した情報を取得可能なものであってもよい。ここでの画像認識処理は、例えば、画像に対応する情報、例えば文字列の情報等を取得する処理であり、例えばパターンマッチング等である。文字列は一以上の文字で構成される。文字列を構成する文字は、数字や記号等も含む概念である。文字列は、例えばテキストである。文字列の情報(以下、文字列情報と称す)は、例えば、文字列を構成する一文字以上の文字の文字コード群や、テキストデータである。文字認識処理は、文字列の画像から、この文字列情報を取得する処理である。文字列情報を取得する処理は、例えば、文字列を構成する一以上の文字の文字コードを取得する処理や、文字列を示すテキストデータを取得する処理である。文字認識処理としては、OCR等が知られている。
認識対象は、例えば、物体である。認識対象は、例えば、コードに対して予め決められた位置関係となる位置に配置された物体である。認識対象は、例えば、上述したようなコードが配置された物体である。撮影画像内の物体の画像は、例えば、パターンマッチング等により画像認識可能である。例えば、撮影画像内のコードが配置された物体の画像について、画像認識処理を行なうことにより、この画像が表す物体の識別子を取得することができる。物体の識別子は、例えば物体の名前や名称、物体に割り当てられた製造番号や、商品番号や製品番号等の文字列である。撮影画像内の物体の画像は、例えば、画像の類似度を用いて認識してもよい。例えば、見本画像と、物体の識別子とを対応付けて有する一または二以上の情報を、予め用意しておくようにし、撮影画像内において、領域検出等により物体の画像を検出し、検出した物体の画像と、一の見本画像との類似度を判断し、類似度が閾値以上である場合、この物体の識別子として、一の見本画像と対応付けられた物体の識別子を取得するようにしてもよい。
認識対象は、例えば、文字列であってもよい。認識対象は、例えば、コードに対して予め決められた位置関係となる位置に配置された文字列である。認識対象は、例えば、コードが配置された物体に配置された文字列であってもよい。認識対象は、例えば、物体に配置された文字列であって、この物体に関する文字列である。物体に関する文字列は、例えば、この物体の識別子である。例えば、物体が、商品である場合、物体に関する文字列は、商品名や、商品を提供する企業名等であってもよく、物体に割り当てられた商品番号等の文字列であってもよい。特に、物体が、本や、映像や音楽が記録された記録媒体等の商品である場合、物体に関する文字列は、例えば、物体のタイトルや、サブタイトル等や、アーティスト名等であってもよい。認識対象が文字列等である場合、認識対象は、OCR等の文字認識処理等により認識可能である。認識処理を行なうことで、例えば、文字列情報が取得される。なお、ここでの文字列の物体への配置とは、上記のコードの物体への配置と同様の概念である。
撮影画像受付部101が受け付ける撮影画像は、例えば、一または二以上のコードと、これらの各コードが配置された一または二以上の物体の少なくとも一部(好ましくは全体)とが配置された領域を撮影した画像や、一以上のコードと、これらのコードが配置された一以上の物体に配置された文字列とが配置された領域を撮影した画像である。ここでの文字列は、例えば、認識対象となる文字列である。
撮影画像受付部101は、例えば、情報処理装置1が有している撮影装置102が撮影した撮影画像を受け付ける。撮影画像受付部101は、例えば、撮影装置102が撮影した撮影画像を受け付ける処理や、撮影画像を受け付けて、受け付けた画像を図示しない記憶媒体等に一時記憶する処理を行なう。撮影画像受付部101は、撮影画像を受け付けるインターフェースや、コネクタ等であってもよい。なお、撮影画像受付部101は、情報処理装置1の外部に設けられた撮影装置102と同様の撮影装置(図示せず)や、撮影装置を備えた情報処理装置(図示せず)等が撮影して送信した撮影画像を受信してもよい。また、撮影画像受付部101は、図示しない撮影装置等で撮影されて記憶媒体等に蓄積された撮影画像の受け付け等であっても良い。撮影画像は、例えば、一または二以上のコードと、コード以外の認識対象とを、撮影装置102等で撮影することで取得された画像と考えてもよい。なお、以下、本実施の形態においては、撮影画像受付部101が、撮影装置102が撮影した撮影画像を受け付ける場合を例に挙げて説明する。
撮影画像受付部101が受け付ける一の撮影画像は、静止画像であっても良く、動画像であっても良い。また、一の撮影画像は、動画像を構成する一または二以上のフレーム画像であっても良い。撮影画像受付部101が受け付ける一の撮影画像は、カラー画像であっても良く、グレースケール画像であっても良く、二値画像であっても良い。ただし、コードがカラーコードである場合、通常、撮影画像はカラー画像である必要がある。
ここでの受け付けとは、撮影装置102等から入力された撮影画像の受け付けや、図示しない撮影装置等からの有線もしくは無線の通信回線を介して送信された撮影画像の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された撮影画像の受け付けなどを含む概念である。撮影画像受付部101は、入力手段や受信手段や読み出し手段等のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
撮影装置102は、撮影画像を撮影する。撮影装置102は、CCDやCMOS等の撮像素子を備えたスチルカメラやビデオカメラ等のカメラやカメラモジュール、ラインセンサ等を備えたスキャナである。撮影装置102は、例えば、取得した撮影画像を、撮影画像受付部101に対して出力する。なお、撮影画像受付部101が、撮影装置102以外の装置等で撮影された撮影画像を受け付ける場合、撮影装置102は省略してもよい。
取得部103は、撮影画像受付部101が受け付けた撮影画像内の一または二以上のコードを認識してコードに対応する情報を取得する。コードに対応する情報とは、例えば上述したようなコードの識別子である。コードに対応する情報を取得することは、コードを読み取って、コードに対応する情報を取得することと考えてもよい。例えば、取得部103は、撮影画像受付部101が受け付けた撮影画像内において、一または二以上のコードを検出し、検出した各コードについてコードを認識する処理を行なって、各コードに対応付けられた情報を取得する。コードの検出とは、コードの画像の検出と考えてもよい。なお、撮影画像内において、一または二以上のコードを検出する処理や、検出したコードからコードに対応付けられた情報を取得する処理については、上述した特許文献2にも示されているように公知の技術であるため、ここでは詳細な説明は省略する。
また、取得部103は、撮影画像内の一または二以上の認識対象を認識して認識対象に対応する一または二以上の情報を取得する。例えば、取得部103は、撮影画像内において一または二以上の認識対象を検出し、検出した各認識対象を認識する処理を行なって、各認識対象に対応する情報を取得する。認識対象に対応する情報は、例えば、認識対象に対応する文字列情報や、認識対象に対応する識別子である。認識対象が物体である場合、認識対象に対応する情報は、例えば、この物体に関する文字列情報や識別子等の情報である。また、認識対象が物体に配置された文字列である場合、認識対象に対応する情報は、例えば、この文字列が配置された物体に関する文字列の情報である。物体に関する文字列については、上述しているため、ここでは説明を省略する。物体に関する文字列の情報は、例えば、物体に関する文字列のテキストデータや、物体に関する文字列を構成する各文字の文字コード等である。
例えば、取得部103は、撮影画像内の一または二以上の認識対象である物体の画像について画像認識を行なって、一または二以上の認識対象にそれぞれ対応する情報を取得する。この処理は、例えば、認識対象が物体である場合に行なわれる。画像認識により認識する物体は、通常、予め決められた一以上の物体である。例えば、予め決められた一以上の物体のそれぞれについて、物体の画像についての一または二以上の特徴量や特徴点と、物体に対応する情報(例えば文字列情報や識別子)と、を有する情報を用意し、図示しない格納部等に蓄積しておく。そして、蓄積された一以上の物体の画像の特徴量や特徴点を用いてパターンマッチング等を行なって適合する画像を検出し、適合すると判断された特徴量や特徴点に対応する情報(例えば文字列情報や識別子)を取得する。適合する画像の検出は適合する画像の領域の検出であってもよい。物体の画像の特徴量や特徴点は、例えば、物体の画像の形状や、色、パターン等についての特徴量や特徴点である。なお、画像内において一または二以上の物体を検出する処理は、公知技術であるため、ここでは詳細な説明は省略する。なお、画像において特定の一以上の物体を認識する処理等については、以下の文献を参照されたい。「特許文献3:特開2014−134856号公報(第1頁、第1図等)」、「非特許文献1:森 武俊、外4名、"画像処理を用いたID判別による家庭内物品認識システム"、[online]、平成20年6月、Proceedings of the 2008 JSME Conference on Robotics and Mechatronics, Nagano Japan、[平成27年11月24日検索]、インターネット<URL:http://www.miubiq.cs.titech.ac.jp/wp/wp-content/publication/pdf/proceedings/icsAll200804-200812/mori2008Robomec3.pdf>」、「非特許文献2:望月 宏史、外1名、"物体認識技術を用いたモバイル物品管理システム"、[online]、平成24年、DEIM Forum 2012、[平成27年11月24日検索]、インターネット<URL:http://mm.cs.uec.ac.jp/pub/conf11/120303mochizuki_9.pdf>」
また、取得部103は、例えば、撮影画像内の一または二以上の認識対象であるの画像について文字認識を行なって、一または二以上の認識対象にそれぞれ対応する情報である文字列情報を取得する。この処理は、例えば、認識対象が文字列である場合に行なわれる。取得部103は、撮影画像内において、一または二以上の文字列の画像を検出し、検出した文字列の画像について文字認識を行なって、認識対象に対応する文字列情報を取得する。文字列の画像の検出は、文字列の画像の領域の検出と考えてもよい。なお、一以上の文字列の画像を検出して検出した文字列の画像に対して文字認識を行なって文字列情報を取得する処理については、OCR等の技術として公知であるため、ここでは、詳細な説明は省略する。
なお、取得部103は、コードを認識してコードに対応する情報を取得する処理と、認識対象を認識して、認識対象に対応する情報を取得する処理とを、行なう順番等は問わない。
取得部103は、例えば、撮影画像内の、一のコードと、一のコードに対応する位置に配置された一以上の認識対象とで構成される一または二以上の組毎に、コードに対応する情報と認識対象に対応する情報とを取得してもよい。ただし、ここでの組毎にコードに対応する情報と認識対象に対応する情報とを取得する処理においては、コードと認識対象の組を検出する処理と、コードに対応する情報と認識対象に対応する情報とを取得する処理とを行なう順番等は問わない。例えば、撮影画像内において、複数のコードに対応する情報と、複数の認識対象に対応する情報とをそれぞれ取得したあと、コードと認識対象との複数の組を検出して、この組毎に、取得したコードに対応する情報と、認識対象に対応する情報とを分別してもよい。また、撮影画像内において、コードと認識対象の複数の組を検出した後、撮影画像内において、複数のコードに対応する情報と、複数の認識対象に対応する情報とをそれぞれ取得して、上記で取得した組毎に、取得したコードに対応する情報と、認識対象に対応する情報とを分別してもよい。また、撮影画像内において、コードと認識対象の複数の組を検出して、各組毎に、コードに対応する情報と、認識対象に対応する情報とをそれぞれ取得していくようにしてもよい。なお、上記におけるコードの認識対象の組を検出する処理は、例えば、撮影画像内の一または二以上のコードと、一または二以上のコードを、一のコードと、この一のコードに対応する位置に配置された認識対象とを有する一または二以上の組に組分けする処理と考えてもよい。
一のコードに対応する位置に配置された認識対象とは、例えば、撮影画像内において、一のコードが配置されている位置に対して、予め決められた方向や領域に配置された一以上の認識対象である。この場合の認識対象は、文字列であることが好ましいが、物体であってもよい。例えば、一のコードが配置されている位置に対して、予め決められた方向に配置された認識対象とは、例えば、撮影画像内において、一のコードが配置されている位置に対して、上側に配置された認識対象や、下側に配置された認識対象である。例えば、一のコードに対して、一の方向に配置された認識対象とは、例えば、一のコードを一の方向に平行移動させた場合に少なくとも一部が重なる位置に配置された認識対象である。一のコードが配置されている位置に対して、予め決められた領域に配置された認識対象とは、一のコードが配置されている位置に対して、予め決められた位置関係にある領域に配置された認識対象である。例えば、一のコードが配置されている位置に対して、予め決められた領域に配置された認識対象とは、一のコードが配置されている位置に対して予め決められた方向に、予め決められた距離だけ隔てて配置される所定の大きさ及び形状を有する領域内に配置された認識対象である。
例えば、取得部103は、撮影画像内において、一または二以上のコードと、一または二以上の認識対象をそれぞれ検出し、検出した各コードに対して、予め決められた方向に位置する認識対象を検出した認識対象の中から検出する。そして、取得部103は、このようにして検出した各コードと各コードについて検出された認識対象との組毎に、コードに対応する情報と認識対象に対応する情報とを取得する。
また、一のコードに対応する位置に配置された認識対象とは、例えば、一のコードが配置された物体であってもよい。例えば、一のコードに対応する位置に配置された認識対象とは、撮影画像内において検出された一以上の物体うちの、一のコードが配置されている領域を含むよう配置された物体である。一のコードが配置されている領域を含むよう配置された物体とは、例えば、一のコードが配置されている領域が、物体が配置されている領域内に含まれている物体である。なお、撮影画像内の物体やコードは、ここでは撮影画像内の物体の画像やコードの画像と考えてもよい。かかることは、以下においても同様である。
例えば、取得部103は、撮影画像内において、一以上のコードと、一以上の認識対象である物体とをそれぞれ検出する。そして、検出した各コードについて、各コードが配置されている領域を含むよう配置されている物体を検出する。そして、取得部103は、例えば、このようにして検出した各コードと各コードについて検出された物体の組毎に、コードに対応する情報と物体に対応する情報とを取得する。
画像内における物体の検出とは、例えば、物体の輪郭を検出することや、物体内に位置する全ての画素を検出すること等も含む概念である。なお、画像内における物品の検出は、例えば、上述したような特許文献3や、非特許文献1、2の技術を利用することで実現可能である。また、画像内における物品の検出処理については、以下に示す文献も参照されたい。「特許文献4:特開2007−140729号公報(第1頁、第1図等)」、「非特許文献3:平 英二、外3名、"動的計画法による書棚画像からの書籍境界検出"、[online]、[平成27年11月24日検索]、インターネット<URL:http://human.ait.kyushu-u.ac.jp/~uchida/Papers/taira-pr.pdf>」
また、一のコードに対応する位置に配置された認識対象とは、例えば、一のコードと同じ物品に配置された一以上の認識対象であってもよい。この場合の認識対象は、例えば文字列である。例えば、一のコードに対応する位置に配置された認識対象とは、撮影画像内において、一のコードが配置されている領域を含むよう配置された一の物体が配置されている領域内に配置されている認識対象である。例えば、ここでの一のコードと、このコードに対応する位置に配置された認識対象の組とは、同じ物体に配置されているコードと認識対象の組であり、具体的には、撮影画像内に検出された一の物体が配置されている領域に配置されているコードと認識対象との組である。なお、ここでは撮影画像内の認識対象は、認識対象の画像と考えてもよい。かかることは、以下においても同様である。
例えば、取得部103は、撮影画像内において、一以上のコードと、一以上の認識対象(例えば文字列)と、一以上の物体とを検出する。そして、検出した各コードについて、各コードが配置されている領域を含むよう配置されている物体を検出し、更に、検出した物体が配置されている領域に配置されている認識対象を検出する。そして、取得部103は、例えば、このようにして検出した各コードと認識対象との組毎に、コードに対応する情報と認識対象に対応する情報とを取得する。
なお、取得部103は、一のコードに最も近い距離に位置する認識対象を、一のコードに対応する位置に配置された認識対象と判断してもよい。この場合のコードや認識対象の距離の基準となる地点はどのような点であってもよく、例えば、コードや認識対象の中心であっても重心であってもよく、コードや認識対象の周囲上の、最も両者間の距離が近くなる点であってもよい。
なお、上記においては、取得部103は、検出した各コードについて、対応する位置に配置された認識対象を検出するようにしたが、検出した各認識対象について、対応する位置に配置されたコードを検出して、コードと認識対象との組を取得するようにしても良い。
格納部104には、コードに対応する情報と、認識対象に対応する情報とが対応付けて格納される。例えば、格納部104には、コードに対応する情報と、認識対象に対応する情報とを有する一以上の情報が格納される。認識対象に対応する情報は、例えば文字列情報である。格納部104には、例えば、後述する出力部105が対応付けて出力するコードに対応する情報と認識対象に対応する情報とが格納される。
格納部104は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。かかることは、他の格納部等においても同様である。
出力部105は、取得部103が取得したコードに対応する情報と、認識対象に対応する情報と、を対応付けて出力する。例えば、出力部105は、取得部103が取得したコードに対応する情報と、認識対象に対応する情報と、を有する情報を出力する。
出力部105は、例えば、取得部103が一以上の組毎に取得したコードに対応する情報と、認識対象に対応する情報と、を対応付けて出力する。例えば、出力部105は、取得部103が一以上の組毎に取得したコードに対応する情報と、認識対象に対応する情報と、を有する情報を出力する。
出力部105は、例えば、取得部103が取得したコードに対応する情報と、認識対象に対応する情報と、を対応付けて、格納部104に蓄積する。格納部104に蓄積することは、例えば、コードに対応する情報と、認識対象に対応する情報とを対応付けてデータベースに登録することも含む概念である。
ここでの出力は、通常、記録媒体等への蓄積であるが、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置への送信、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
なお、出力部105は、ユーザ等の指示に応じて、格納部104に対応付けて蓄積されたコードに対応する情報と、認識対象に対応する情報と、を出力してもよい。
出力部105は、蓄積等の出力を行なう出力デバイスを含むと考えても含まないと考えても良い。出力部105は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置1の動作の一例について図2のフローチャートを用いて説明する。なお、ここでは、認識対象が文字列である場合を例に挙げて説明する。
(ステップS101)撮影装置102は、コードと認識対象とが配置された領域等の撮影を行なうか否かを判断する。例えば、撮影装置102は、図示しない受付部等が、入力デバイス等を介して撮影を行なう指示をユーザ等から受け付けた場合に、撮影を行なうことを決定する。また、撮影を行なう指示を受け付けた後、予め決められた時間間隔ごとに、撮影を行なうことを決定してもよい。撮影を行なう場合、撮影装置102は、撮影を行なって撮影画像を取得し、取得した撮影画像を撮影画像受付部101に出力して、ステップS102に進む。撮影を行なわない場合、ステップS101に戻る。
(ステップS102)撮影画像受付部101は、ステップS101で取得した撮影画像を受け付ける。
(ステップS103)取得部103は、ステップS102で受け付けた撮影画像において、一以上のコードを検出し、検出した各コードから、コードに対応付けられた情報、例えば、コード識別子を取得する。取得部103は、一のコードについて取得した情報を、この一のコードが検出された撮影画像内の位置や領域の情報等と対応付けて、図示しない格納部等に蓄積する。
(ステップS104)取得部103は、ステップS102で受け付けた撮影画像において、一以上の認識対象を検出し、検出した各認識対象から、認識対象に対応付けられた情報、例えば文字列情報を取得する。取得部103は、一の認識対象について取得した情報を、この一の認識対象が検出された撮影画像内の位置や領域の情報等と対応付けて、図示しない格納部等に蓄積する。
(ステップS105)取得部103は、ステップS102で受け付けた撮影画像において、一以上の物体を検出し、撮影画像内における検出した各物体の輪郭の情報(例えば、輪郭を構成する複数の点の座標等)を、物体毎に、図示しない格納部等に蓄積する。
(ステップS106)取得部103は、カウンターmの値として1を代入する。
(ステップS107)取得部103は、ステップS103で検出したm番目のコードが配置されている一の物体を、ステップS105で検出した物体から検出し、検出した物体に配置されている一以上の認識対象を、ステップS104で検出した認識対象の中から検出する。例えば、S105で取得して蓄積した一以上の物体の輪郭の情報の中から、m番目のコードが配置されている領域を含む一の輪郭の情報を検出し、更にステップS104で検出した認識対象の中から、認識対象が配置されている領域が、この一の輪郭が示す領域内に位置する認識対象を検出する。そして、取得部103は、ステップS104で取得した情報から、検出した認識対象に対応する情報(例えば、文字列情報)を取得する。また、ステップS103で取得した情報から、m番目のコードに対応する情報を取得する。
(ステップS108)出力部105は、ステップS107で取得したm番目のコードに対応する情報と、認識対象に対応する情報と、を対応付けて、格納部104に蓄積する。なお、重複するデータが既に格納されている場合、データの格納は行なわなくて良い。
(ステップS109)取得部105は、カウンターmの値を1インクリメントする。
(ステップS110)取得部105は、ステップS103で検出したコードの中に、m番目のコードがあるか否かを判断する。ある場合、ステップS107に進み、ない場合、ステップS101に戻る。
なお、図2においては、出力部105が、m番目のコードに対応する情報と、認識対象に対応する情報と、を対応付けて蓄積する場合について説明したが、出力部105は、蓄積以外の出力を行なっても良い。また、出力部105は、格納部104に対応付けて蓄積されたコードに対応する情報と、認識対象に対応する情報と、のうちの少なくとも一以上を出力するようにしてもよい。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報処理装置1の具体的な動作について説明する。
(具体例1)
この具体例においては、認識対象が文字列であり、コードがカラーコードである場合の例について説明する。
図3は、情報処理装置1の具体例の動作を説明するための、複数の物体である複数の書籍31が収納されている書棚30の一部を示す模式図(図3(a))、及びカラーコード301の一例を示す図(図3(b))である。
各書籍31の背表紙には、カラーコード301が印刷されたシール(図示せず)がそれぞれ貼付されているものとする。カラーコード301としては、ここでは、図3(b)に示すようなカラーコードが用いられる。このカラーコードは、複数の色が、マトリクス上に配列されたコードである。例えば、このカラーコードは、カメレオンコードとも呼ばれる。ここでは、コード301から読み出される情報は、カラーコードの識別子(以下、コード識別子と称す)であるとする。ここでは、一例として、各書籍31にそれぞれ貼付されているカラーコード301は、色の配列等が異なるカラーコードであり、互いに異なるコード識別子が対応付けられているものとする。
各書籍31の背表紙には、各書籍31のタイトルである文字列302が印刷されているものとする。ここでは、このタイトルである文字列302が認識対象であるとする
ユーザが、情報処理装置1の撮影装置102を用いて、図3(a)に示した書棚30の一部を、前面側から撮影したとする。撮影した画像は、カラーの静止画像であるとする。
図4は、撮影装置102が、撮影して取得した撮影画像40を示す図(図4(a))、及び撮影画像において検出されたコード301、撮影画像において検出された文字列の画像302、及び撮影画像において検出された物体である書籍31がそれぞれ配置されている一以上の領域を示す図(図4(b))である。
撮影装置102が図4(a)に示すような撮影画像40を取得すると、撮影画像受付部101は、この撮影画像を撮影装置102から受け付ける。
取得部103は、撮影画像受付部101が受け付けた撮影画像40、即ち、図4(a)に示した撮影画像40において、カラーコード301の画像を検出する。カラーコード301の画像の検出は、カラーコード301の画像領域のここでは、図4(b)に示すように、複数のカラーコードの画像301a〜301gが検出されたとする。
取得部103は、検出した各カラーコードの画像301a〜301gをそれぞれ読み取って、コード識別子を取得する。取得したコード識別子を、各カラーコードの画像301a〜301gの領域、つまり各カラーコードの画像301a〜301gの輪郭を示す情報と対応付けて、図示しない格納部に蓄積する。各カラーコードの画像301a〜301gの輪郭は、カラーコードの画像が配置されている領域を示すじょうおうほう一の画像から複数のカラーコードを検出し、カラーコードからコード識別子を読み取る処理等は、上述した特許文献2等に開示されているように公知の技術であるため、ここでは詳細な説明は省略する。
図5は、取得部103が撮影画像40から取得したコード識別子と、コード識別子に対応するカラーコードの画像の輪郭を示す情報とを対応付けて管理するコード管理表である。コード管理表は、「コードID」と、「コード輪郭」という属性を有している。「コードID」は、カラーコード301から読み取ったコード識別子である。「コード輪郭」は、カラーコードの輪郭を示す情報であり、ここでは輪郭を構成する複数の点の座標であるとする。なお、座標(x101,y101)、(x102,y102)等は撮影画像40内の任意の座標であるとする。かかることは以下においても同様である。
また、取得部103は、撮影画像受付部101が受け付けた撮影画像40において、認識対象である文字列302の画像を検出する。ここでは、図4(b)に示すように、複数の文字列の画像302a〜302gが検出されたとする。検出された文字列の画像302a〜302gは、上述した各書籍31の背表紙のタイトル部分の画像である。なお、文字列の画像は、例えば、文字列を含む画像であればよく、例えば、文字列の周囲の余白等を含んでいてもよい。ここでは、一例として、文字列の画像302a〜302gとして、文字列302を含む矩形領域を検出する。この矩形領域は最小矩形であることが好ましい。
そして、取得部103は、検出した各文字列の画像302a〜302gに対してOCR等の文字認識を行なって、文字列の画像302a〜302gに対応する文字列情報、具体的にはテキストデータを取得する。そして、取得した文字列情報を、各文字列の画像302a〜302gの輪郭を示す情報と対応付けて、図示しない格納部に蓄積する。一の画像から複数の文字列の画像を検出し、文字列の画像から文字列情報を取得する処理は、OCRの処理等として公知であるため、ここでは詳細な説明は省略する。
図6は、取得部103が撮影画像40から取得した文字列情報と、文字列の画像の輪郭を示す情報とを対応付けて管理する文字列管理表である。文字列管理表は、「文字列」と、「文字列輪郭」という属性を有している。「文字列」は、文字列の画像から文字認識により取得した文字列情報である。「文字列輪郭」は、文字列の画像の輪郭、ここでは、文字列を含む最小矩形の輪郭を示す情報であり、ここでは輪郭を構成する複数の点の座標であるとする。
また、取得部103は、撮影画像受付部101が受け付けた撮影画像40において、予め決められた一以上の物体を検出する。例えば、予め決められた物体の検出として、書籍の検出を行なったとし、図4(b)に示すように、複数の書籍の画像31a〜31gが検出されたとする。そして、取得部103は、検出した各書籍の画像31a〜31gについて、それぞれの輪郭を示す情報を取得して、図示しない格納部に蓄積する。一の画像から複数の書籍の画像、例えば書籍の画像の輪郭等を検出する処理は、上述した非特許文献3に示すように、公知の技術であるため、ここでは詳細な説明は省略する。
図7は、取得部103が撮影画像40において検出した物体である書籍31の画像の輪郭を示す情報を管理する物体管理表である。物体管理表は、「物体ID」と、「物体輪郭」という属性を有している。「物体ID」は、検出された物体、ここでは書籍、を識別するための識別子であり、例えば、予め決められたルール(例えば、連番を付与するルール)等に従って自動的に蓄積される。「物体輪郭」は、撮影画像40内の物体の画像の輪郭を示す情報であり、ここでは輪郭を構成する複数の点の座標であるとする。なお、輪郭を示す情報は、書籍31の画像の最小矩形の頂点の座標等であってもよい。
次に、取得部103は、撮影画像40において検出したコードのうちの一番目のコードについて、コード識別子と、認識対象に対応する文字列情報との組を取得する処理を以下のように行なう。
取得部103は、撮影画像40において検出したコードのうちの一番目のコードの輪郭の情報を取得する。ここでは、例えば、図5に示したコード管理表の上から一番目のレコードの「コード輪郭」の属性値を取得する。この上から一番目のレコードは、図4(b)のコード301aについて取得された「コードID」と、「コード輪郭」とを有するレコードであるとする。
そして、取得部103は、図7に示した物体管理表において、上記で取得した一番目のコードの輪郭の情報が示す領域を含む領域を示す「物体輪郭」を有するレコード(行)を検出する。ここでは、「物体ID」が「A100」であるレコードの「物体輪郭」が示す領域が、上記で取得した一番目のコードの輪郭の情報が示す領域を全て含む領域であると判断され、このレコードが検出されたとする。このレコードは、図4(b)で検出された書籍31aの画像の輪郭の情報が蓄積されたレコードであるとする。
更に、取得部103は、この「物体ID」が「A100」であるレコードの「物体輪郭」が示す領域に含まれる領域を示す「文字列輪郭」を有するレコード(行)を、図6に示した文字列管理表において検出する。そして、検出されたレコードの「文字列」の属性値を取得する。例えば、図6に示す文字列管理表の「文字列」の属性値が「赤い靴」であるレコード(行)の「文字列輪郭」の属性値が示す領域が、図7に示した物体管理表の「物体ID」が「A100」であるレコードの「物体輪郭」が示す領域に含まれたとすると、取得部103は、この文字列管理表のレコードの「文字列」の属性値である「赤い靴」を取得する。なお、図6に示す文字列管理表の「文字列」の属性値が「赤い靴」であるレコードは、図4(b)の文字列の画像302aについて取得された情報を有するレコードであるとする。
また、取得部103は、上記の一番目のコードについて取得されたコード識別子を図5に示したコード管理表から取得する。具体的には、図5に示したコード管理表の上から一番目のレコードの「コードID」の属性値である「10000」を取得する。
出力部105は、取得部103が、上記の一番目のコードについて取得したコード識別子「10000」と、文字列情報「赤い靴」との組を、対応付けて格納部104に蓄積する。例えば、出力部105は、取得部103が取得したコード識別子「10000」と、文字列情報「赤い靴」とを有するレコードを格納部104に蓄積する。
取得部103は、撮影画像40において検出したコードのうちの二番目以降のコードについても同様の処理を行なって、コード識別子と、認識対象に対応する文字列情報との組を取得する処理を行ない、出力部105は、取得部103が取得したコード識別子と文字列情報との組を、格納部104に蓄積する。
図8は、格納部104に蓄積されたコード識別子と文字列情報との組を管理するコード文字列管理表の一例を示す図である。コード文字列管理表は、「コードID」と、「文字列」という属性を有している。「コードID」は、書籍31に貼付されたカラーコードのコード識別子である。「文字列」は、書籍31のタイトルを示す文字列情報である。コード文字列管理表の一のレコードの「文字列」と「コードID」との組は、一の書籍31のタイトルを表す文字列情報と、この一の書籍31に貼付されたカラーコードのコード識別子とを示す情報である。
このようにして、この具体例においては、一の書籍31のタイトルを示す文字列情報と、この一の書籍31に貼付されたカラーコード301のコード識別子とを対応付けて管理する管理表を、書棚30を撮影した撮影画像40から容易に取得することができる。
(具体例2)
この具体例においては、コードがカラーコードであり、認識対象がカラーコードが貼付された物体である場合の例について説明する。
図9は、情報処理装置1の具体例の動作を説明するための、複数の物体である複数の玩具51が収納されている陳列棚60の一部を示す模式図である。
図10は、撮影装置102が、撮影して取得した撮影画像50を示す図(図10(a))、及び撮影画像において検出されたコード501及び撮影画像において検出された物体である玩具51がそれぞれ配置されている一以上の領域を示す図(図10(b))である。
図11は、図示しない格納部に予め格納されている玩具の画像を検出するために用いられる特徴量の情報を管理する特徴量管理表である。特徴量管理表は、「物体ID」と、「特徴量」という属性を有している。「物体ID」は、物体の識別子であり、ここでは、玩具名であるとする。なお、「物体ID」として、玩具の商品番号等を用いてもよい。「特徴量」は、玩具を正面から撮影した画像から取得した玩具の特徴量の情報であり、ここでは、特徴量の情報のファイル名を示すものとする。一のレコード(行)の「特徴量」の属性値は、同じレコードの「物体ID」の属性値が示す玩具の特徴量の情報である。特徴量についてはパターンマッチングの技術等において、公知であるため、詳細な説明は省略する。
ユーザが、情報処理装置1の撮影装置102を用いて、図9に示した陳列棚60の一部を、前面側から撮影したとする。撮影した画像は、カラーの静止画像であるとする。これにより、図10(a)に示すような撮影画像50が取得されたとする。
撮影装置102が撮影画像40を取得すると、撮影画像受付部101は、この撮影画像50を撮影装置102から受け付ける。
取得部103は、撮影画像受付部101が受け付けた撮影画像50、即ち、図10(a)に示した撮影画像50において、上記具体例1と同様に、カラーコード501の画像を検出する。ここでは、図10(b)に示すように、複数のカラーコードの画像501a及び501bが検出されたとする。なお、カラーコード501は、上述したカラーコード301と同様のカラーコードであるとする。
取得部103は、検出した各カラーコードの画像501a及び501bをそれぞれ読み取って、コード識別子を取得する。取得したコード識別子を、各カラーコードの画像501a及び501bの輪郭を示す情報と対応付けて、図示しない格納部に蓄積する。
図12は、取得部103が撮影画像50から取得したコード識別子と、コード識別子に対応するカラーコードの画像の輪郭を示す情報とを対応付けて管理するコード管理表である。このコード管理表は、図5と同様のものであるとする。なお、コードID「20000」は、カラーコードの画像501aから取得されたコード識別子であり、コードID「20001」は、カラーコードの画像501bから取得されたコード識別子であるとする。
また、取得部103は、撮影画像50において、予め決められた一以上の物体である玩具51の画像を検出し、検出した玩具51に対応する玩具名と、玩具51の画像の領域を示す情報とを取得し、これらを対応付けて、図示しない格納部に蓄積する。
具体的には、取得部103は、図11に示した特徴量管理表を用いて、玩具の画像を検出する。例えば、取得部103は、まず、図11の特徴量管理表の上から1行目のレコード(行)の「特徴量」の属性値が示すファイル名の特徴量の情報を、予め決められた図示しない格納部等から読み出し、この特徴量を用いて、撮影画像内においてパターンマッチングを行なう。そして、適合する画像が検出された場合、検出された玩具の画像が配置されている領域の情報、例えば、検出された玩具の画像の輪郭の情報と、パターンマッチングに用いた特徴量の情報に対応する物体の識別子、即ち、特徴量管理表の1行目のレコードの「物体ID」の属性値である玩具名と、を取得して、これらを対応付けて図示しない格納部に蓄積する。適合する画像が検出されない場合は、領域の輪郭の情報や、玩具名は取得しない。
取得部103は、同様の処理を、図11に示した特徴量管理表の2行目以下のレコードについても行なう。
これにより取得部103が撮影画像50内において検出した玩具の画像は、画像51a及び51bであったとする。また、玩具の画像51aについて取得された玩具名は「ロボットX」であり、玩具の画像51bについて取得された玩具名は、「ファミリーカー」であったとする。
図13は、取得部103が撮影画像50において取得して図示しない格納部に蓄積した玩具の輪郭を示す情報と、玩具名とを管理する物体管理表である。この物体管理表は、図7に示した物体管理表と同様のものである。ただし、「物体ID」は、取得部103が玩具の画像から取得した玩具名である点が、図7とは異なる。
次に、取得部103は、撮影画像40において検出したコードのうちの一番目のコードについて、このコードのコード識別子と、このコードが配置された認識対象である玩具の玩具名との組を取得する処理を以下のように行なう。
取得部103は、撮影画像50において検出したコードのうちの一番目のコードの輪郭の情報を取得する。ここでは、例えば、図12に示したコード管理表の上から一番目のレコードの「コード輪郭」の属性値を取得する。
そして、取得部103は、図13に示した物体管理表において、上記で取得した一番目のコードの輪郭の情報が示す領域を含む領域を示す「物体輪郭」を有するレコード(行)を検出し、このレコードの「物体ID」の属性値を取得する。ここでは、「物体ID」が「ロボットX」であるレコードの「物体輪郭」が示す領域が、上記で取得した一番目のコードの輪郭の情報が示す領域を全て含む領域であると判断され、このレコード「物体ID」の属性値、即ち文字列情報である玩具名「ロボットX」が取得される。
また、取得部103は、一番目のコードのコード識別子である「20000」を、図12に示した管理表の上から一番目のレコードから取得する。
そして、取得部103は、上記で取得した文字列情報である玩具名「ロボットX」と、コード識別子「20000」との組を、格納部104に蓄積する。
取得部103は、撮影画像50において検出したコードのうちの二番目以降のコードについても同様の処理を行なって、コード識別子と、玩具名との組を取得する処理を行ない、出力部105は、取得部103が取得したコード識別子と文字列情報である玩具名との組を、格納部104に蓄積する。
図14は、格納部104に蓄積されたコード識別子と、文字列情報である玩具名とを対応付けて管理するコード文字列管理表の一例を示す図である。コード文字列管理表は、「コードID」と、「文字列」という属性を有している。「コードID」は、物体である玩具51に貼付されたカラーコードのコード識別子である。「文字列」は、認識対象である玩具の玩具名を示す文字列情報であり、図13の「物体ID」の属性値に相当する値である。コード文字列管理表の一のレコードの「文字列」と「コードID」との組は、一の玩具51の玩具名を表す文字列情報と、この一の玩具51に貼付されたカラーコードのコード識別子とを示す情報である。
このようにして、この具体例においては、一の玩具51の玩具名を示す文字列情報と、この一の玩具51に貼付されたカラーコード501のコード識別子とを対応付けて管理する管理表を、陳列棚60を撮影した撮影画像から容易に取得することができる。
以上、本実施の形態によれば、コードに対応する情報と、コードが配置された物体に対応付けられた情報とを容易にかつ短時間で対応付けることができる。
なお、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記各実施の形態では、情報処理装置がスタンドアロンである場合について説明したが、情報処理装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部(例えば、ハードディスクやメモリ等の記録媒体)にアクセスしながらプログラムを実行してもよい。
なお、上記各実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、一以上のコードと、コード以外の認識対象とが撮影された画像である撮影画像を受け付ける撮影画像受付部と、撮影画像受付部が受け付けた撮影画像内の一以上のコードを認識してコードに対応する一以上の情報を取得し、撮影画像内の一以上の認識対象を認識して認識対象に対応する一以上の情報を取得する取得部と、取得部が取得したコードに対応する情報と、認識対象に対応する情報とを対応付けて出力する出力部として機能させるプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図15は、上記プログラムを実行して、上記実施の形態による情報処理装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図15において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図16は、コンピュータシステム900の内部構成を示す図である。図16において、コンピュータ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がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。