以下、コード読取装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態におけるコード読取装置1の構成の一例を説明するための模式図(図1(a))、およびコード読取装置1による読取対象となるコード50の一例を示す図(図1(b))である。図1(a)においては、物体5およびコード50が一つの場合を示しているが、コード50は、2以上であっても良い。
コード読取装置1は、撮影部101、取得部102、格納部103、順番管理情報格納部104、判断部105、プロジェクタ106、ハーフミラー107を備える。
コード50は、コード読取装置1の読取対象となるものである。コード50とは、例えば、識別子と対応付けられた画像や図柄である。この識別子は、コード50に対応した識別子であり、以下、コード識別子と呼ぶ。なお、このような画像や図柄が配置されたシール等のシート状のものやプレート状のものやマーカー等をコード50と考えてもよい。コード50からは、例えば、対応付けられたコード識別子を読み取ることができる。コード50に対応付けられたコード識別子は、光学的な機器等を用いて読取ることができる。例えば、コード識別子は、コード50から、コード読取装置1により読取ることができる。コード識別子は、例えば、コード50に対応した文字列や、数字列や、文字列と数字列との組合わせ等である。
コード50とは、例えば、一次元バーコード、二次元バーコード、QRコード(登録商標)、カラーコード等のいわゆる図柄のコードである。図柄コードは、例えば、文字列および数字列を除いた図形の形状や色やパターンやこれらの組合わせによりコード識別子を取得可能なコードである。ただし、コード50は、例えば、文字列、数字列等であってもよい。コード50は、色の配列により、対応する識別子を示す二次元コードであるカラーコードであることは好適である。カラーコードは、例えば、カメレオンコードやカラーバーコード、カラー二次元コードとも呼ばれる場合がある。
1または2以上のコード50は、それぞれ、物体5に対応付けて配置されている。物体5は、例えば、商品や製品等であっても良く、商品や製品等が収納された箱やパッケージ等であっても良い。また、物体5は、メニュー等の印刷物や標示物等であってもよい。コード50が物体5と対応付けて配置されているということは、例えば、コード50が物体5と対応付けばよく、コード50が配置される位置は問わない。コード50が物体5と対応付けて配置されているということは、例えば、コード50が、物体5の表面に配置されていることである。ここでの配置は、例えば、貼付や印刷等である。また、コード50が物体5と対応付けて配置されているということは、コード50が、このコード50に対応づけられた物体が配置されている位置の近傍に配置されていることであっても良い。例えば、コード50は、このコード50に対応づけられた物体5が配置されている棚やパレットや、物体を仕切っている仕切板等に配置(例えば貼付や載置)されたコードであってもよい。異なる物体5には、例えば、異なるコード識別子と対応付けられたコード50が対応付けて配置される。同じ種類の物体5(例えば、同じ製品や商品等)の異なる個体は、例えば、異なる物体5と考えても良く、同じ物体5と考えてもよい。なお、一の物体に対して、同じ複数のコード50が対応付けて配置されていても良い。また、一の物体に対して、異なる複数のコード50が対応付けて配置されていても良い。
コード読取装置1は、コード50を読取るための装置である。コード読取装置1は、コード50を読取るための専用の装置であっても良く、他の機能を有する汎用の装置等であっても良い。コード読取装置1は、可搬性を有する装置であることが好ましいが、可搬性を有していなくても良い。例えば、コード読取装置1は、プロジェクタとカメラ等を備えたいわゆるスマートフォン等の多機能携帯電話や、タブレット型端末や、携帯電話であってもよく、プロジェクタを備えたカメラ等であってもよい。
撮影部101は、1または2以上の物体5と、この1または2以上の物体に対応付けて配置されたコード50とが配置された領域を撮影する。撮影部101は、撮影を行なって画像を取得する。コード50が物体5と対応付けて配置されているということは、上述したように、例えば、コード50が、物体5の表面に配置されていることであってもよく、コード50が、物体5が配置されている位置の近傍に配置されていることであっても良い。撮影部101は、例えば、一の画像において、二以上のコード50を含む領域を撮影した画像を取得してもよい。
撮影部101は、例えば、CCDやCMOS等の撮像素子を備えたカメラである。撮影部101は、ビデオカメラであっても良く、デジタルスチルカメラであっても良い。撮影部101が撮影により取得する画像は、静止画像であっても良く、動画像であっても良く、予め指定された時間間隔を隔てて撮影された一連の複数の静止画像等であっても良い。また、撮影画像は、動画像を構成する一または二以上のフレーム画像と考えてもよい。二以上のフレーム画像は、連続していてもよく、連続していなくても良い。例えば、二以上のフレーム画像は、予め指定された数のフレーム画像を隔てて取得された二以上のフレーム画像であっても良い。また、撮影部101が撮影する撮影画像の画素数や、撮影部101が送信する撮影画像のファイル形式や、圧縮方式等は問わない。また、撮影部101が撮影画像を撮影するタイミング等は問わない。また、撮影部101の画角は問わない。撮影部101の画角は、プロジェクタ106の画角と略同一であることが好ましい。なお、撮影部101は、外部のカメラ(図示せず)等を制御するドライバー等と考えてもよい。
撮影部101は、いわゆるスマートフォン等の多機能携帯電話や、タブレット型端末や、
携帯電話等のカメラ等と考えてもよい。
撮影部101は、例えば、プロジェクタ106が投影する領域(以下、投影領域と称す)を含む領域を撮影する。例えば、撮影部101は、プロジェクタ106の投影領域を含む領域を、コード50を検出するための領域として撮影する。例えば、撮影部101は、プロジェクタ106が投影する領域の少なくとも一部を含む領域を撮影する。また、撮影部101は、プロジェクタ106の投影領域の全てのを含む領域を撮影してもよい。また、撮影部101は、プロジェクタ106の投影領域と略同一の領域を撮影しても良い。なお、撮影部101は、プロジェクタ106の投影中に撮影を行なう必要はない。
なお、撮影部101が撮影する1以上の物体5とこの1以上の物体に対応付けて配置されたコード50とが配置された領域が、プロジェクタ106が投影する領域を含む領域とは異なる場合(例えば、重ならない場合)、撮影部101は、上記の物体5とコード50が配置された領域の撮影に加えて、プロジェクタ106が投影する領域を含む領域を撮影するようにしてもよい。この場合、例えば、撮影部101は、上記の物体5とコード50とが配置された領域の撮影に用いる図示しないレンズや撮像素子等に加えて、プロジェクタ106が投影する領域を撮影するための図示しないレンズや撮像素子等を更に有するようにしてもよい。
撮影部101は、例えば、ハーフミラー107を介して、1以上の物体5と、この1以上の物体に対応付けて配置されたコード50とが配置された領域を撮影する。ハーフミラー107等に関する説明や、ハーフミラー107を介して撮影を行なう場合の撮影部101の配置等については、後述する。
取得部102は、撮影部101が撮影した画像からコード50を検出する。そして、取得部102は、検出したコード50に対応する付加情報を取得する。
付加情報は、例えば、コード50に対応付けられた1または2以上の情報である。付加情報は、例えば、コード50から読取られる情報である。付加情報は、例えば、コードから読取られるコード識別子またはその一部(例えば、コード識別子内の特定の箇所の文字列等)を有する情報である。付加情報は、例えば、コード50に対応するコード識別子と対応付けられた情報を有する情報であってもよい。付加情報は、例えば、コード識別子(またはその一部)と、このコード識別子と対応付けられた情報とを有する情報であっても良い。
一の物体5と対応付けて配置されたコード50に対応する付加情報は、例えば、この一の物体5に関する1または2以上の物体関連情報を有する情報であってもよい。物体関連情報は、物体5に関する情報である。物体関連情報は、例えば、物体5に関する属性値である。物体関連情報は、例えば、物体5の名称や、物体5の管理に用いられる製品識別子や、商品識別子や、物体5のシリアル番号等の、物体5の識別子である。また、物体関連情報は、物体5に対して行なわれる処理を示す情報(例えば、処理の識別子等)であっても良く、物体5の移動先を示す情報であっても良い。また、物体関連情報は、物体5に対して行なわれる処理の順番を示す情報であっても良い。また、物体関連情報は、物体5について説明するための情報であってもよい。また、物体関連情報は、物体5の製造者、または販売者の情報であっても良い。また、物体関連情報は、物体5の価格等であっても良い。また、物体関連情報は、物体5の製造日、搬入日、搬出予定日等の日時の情報であっても良い。また、物体関連情報は、上記の情報の2以上の組合わせであっても良い。なお、後述する格納部103に一のコード識別子と対応付けて格納されている付加情報は、この一のコード識別子が示すコード5に対応する付加情報の一部であっても良い。付加情報は、例えば、コード識別子と物体関連情報との少なくとも一方を有する情報である。
取得部102が、撮影部101が撮影した画像からコード50を検出するということは、例えば、撮影した画像からコード50の画像、あるいはコード50の画像の領域を検出することである。例えば、取得部102は、撮影部101が撮影した画像からコード50の画像の領域を検出する。取得部102は、例えば、検出したコード50を読取ってコード50の画像に対応するコード識別子を取得する。取得部102が取得する付加情報が、コード識別子を含む場合、ここで取得するコード識別子が、付加情報の一部となる。取得部102が取得する付加情報が、コード識別子のみ、あるいはコード識別子の一部である場合、ここで取得するコード識別子あるいはこのコード識別子から取得部102が取得する一部が、付加情報となる。なお、コード50を検出する際に、撮影部101が撮影した画像の色や、形状等を適宜補正しても良い。また、コード50の画像の領域を検出した後、適宜このコード50の画像の領域の形状や色等の補正等を行なっても良い。図柄のコード等のコード50が撮影された画像から、コード50の画像の領域を検出し、検出したコードの画像を読取ってコード識別子を取得する技術等については、コードを読取る技術として公知であるため、ここでは、詳細な説明は省略する。なお、コード50の画像からコード識別子を取得するために用いられる情報等は、コード読取装置1の図示しない格納部等に予め格納されているようにし、取得部102が適宜この格納部にアクセスするようにすればよい。
また、取得部102は、付加情報の少なくとも一部として、上記で取得したコード識別子に対応する物体関連情報を取得しても良い。例えば、取得部102は、格納部103に格納されている1または2以上のコード管理情報から、検索等により、一のコード50から読取られるコード識別子に対応付けられた物体関連情報を取得する。コード管理情報は、コード識別子と物体関連情報と有する情報であり、コード識別子と、物体関連情報との対応関係を示す情報である。一のコード50に対応する付加情報は、例えば、このコード50から読取られるコード識別子を有するコード管理情報の、物体関連情報、またはコード識別子と物体関連情報との組、のいずれかであってもよい。なお、取得部102は、コード識別子に対応する物体関連情報の全ての取得しても良く、一部だけを取得しても良い。
なお、取得部102は、上記のように格納部103から物体関連情報を取得する代わりに、図示しないサーバの格納部等に格納されているコード管理情報を用いて、コード識別子に対応する物体関連情報を取得しても良い。例えば、取得部102は、図示しない通信手段等を用いて、コード管理情報を有するサーバにアクセスすることで、コード識別子に対応する物体関連情報を取得しても良い。例えば、取得部102は、通信手段等を介してサーバにコード識別子を送信し、サーバがこのコード識別子を用いて検索して取得した物体関連情報を、通信手段等を介してサーバから受信するようにしても良い。かかることは、取得部102がコード50の画像からコード識別子を取得するために用いられる情報についても同様である。
取得部102は、例えば、撮影部101が撮影した画像に複数のコード50が含まれる場合に、複数のコード50を検出し、検出した各コード50について付加情報を取得しても良い。例えば、撮影された画像を走査して一のコード50の画像の領域を検出した後、更に、他のコード50の画像の検出を行なう。そして、取得部102は、例えば、このように検出される各コードに対応する付加情報を取得する。なお、取得部102は、例えば、一のコード50の画像の領域を検出する毎に、コード50の画像に対応する付加情報を取得してもよく、一の画像内の全てのコード50の画像の領域を検出した後、各コード50の画像毎に、付加情報を取得するようにしても良い。取得部102は、例えば、一のコード50の画像の領域を検出する毎に、コード50の画像に対応するコード識別子を取得し、このコード識別子に対応する物体関連情報を取得してもよく、一の画像内の全てのコード50の画像の領域を検出した後、各コード50の画像毎に、コード識別子を取得して、このコード識別子に対応する物体関連情報を取得するようにしても良い。複数のコード50が含まれる画像から、複数のコード50を検出してコード識別子を取得する処理や、検出した各コード識別子に対応する物体関連情報を取得する処理等は、カラーコードの読取りの処理等において公知の技術であるため、ここでは詳細な説明は省略する。
取得部102は、例えば、撮影部101が撮影した画像におけるコード50が検出された領域の位置を示す情報を取得することが好ましい。例えば、位置を示す情報は座標である。例えば、検出した領域の位置を示す情報は、検出した領域の輪郭等を指定する複数の座標や、検出した領域の中心や重心や、輪郭の一点(例えば、コーナーの1点等)の座標である。また、取得部102は、例えば、色や輝度等を利用した画像認識処理やパターンマッチングを利用した画像認識処理等を行なうことで、検出したコード50と対応付けて配置されている物体の、撮影画像内における領域の位置を示す情報を取得しても良い。例えば、撮影された画像内におけるコード50が配置されている物体の領域の位置を示す情報を取得しても良い。物体の領域の位置を示す情報は、コード50が検出された領域の位置を示す情報と同様の情報である。例えば、コード50が、単色の箱等に貼付されている場合、コード50の周辺の同じ色や輝度の領域を検出することで、コード50が配置されている領域を検出することが可能である。物体を検出するために用いられる色や輝度や、パターンマッチングに用いられる特徴量等の情報は、予め図示しない格納部等に蓄積しておくようにすればよい。
付加情報は、この付加情報に対応するコード50に対応付けられた物体5の処理順番と対応付けられていても良い。付加情報に対応するコード50とは、例えば、取得部102が取得する付加情報に対応するコード50であり、撮影部101が撮影した画像から検出したコード50である。コード50に対応付けられた物体5とは、コード50と対応付けて配置された物体5である。物体5の処理順番とは、物体5に対して行なわれる処理の順番である。物体5に対して行なわれる処理は、例えば、予め決められた処理である。この処理は、例えば、図示しない処理部等が行なう処理であっても良く、ユーザが行なう処理であっても良い。例えば、予め決められた処理は、例えば、物体5を移動や搬送する処理や、物体5を仕分けする処理等である。ただし、予め決められた処理は、物体5に対して行なわれる処理であればどのような処理であってもよい。
付加情報が、この付加情報に対応するコード50に対応付けられた物体5(以下、付加情報に対応する物体5と称す)の処理順番と対応付けられているということは、付加情報が、付加情報に対応する物体5の処理順番を示す情報を有することであっても良く、付加情報が有する情報が、対応する物体5の処理順番を示す情報と対応付けられていることであってもよい。例えば、付加情報が、物体関連情報の一つ、またはその一部として、処理順番を示す情報を有していても良い。処理順番を示す情報は、例えば、処理順番を示す連番、連続した文字、または、処理順番に応じて値が増加あるいは減少する数字であってもよく、これらの2以上の組合わせ等であってもよい。また、例えば、付加情報は、処理順番を示す情報を、コード識別子の一部として有していても良い。例えば、付加情報が有するコード識別子が、付加情報に対応する物体5の処理順番を示す連番、連続した文字、または、処理順番に応じて値が増加あるいは減少する数字等を有する場合等においては、付加情報が有する物体の処理順番を示す情報は、付加情報が有するコード識別子と考えても良い。
付加情報が、この付加情報に対応する物体5の処理順番と対応付けられているということは、付加情報に対応する物体5の処理順番を示す情報が、後述する順番管理情報格納部104等に格納されていることであっても良い。付加情報に対応する物体5の処理順番を示す情報は、例えば、処理の対象となる1または2以上の物体5に対応する付加情報と、処理順番を示す情報とを対応付けた情報であっても良く、処理の対象となる1または2以上の物体5に対応する付加情報が、処理順番に沿って配列された情報であっても良い。この場合の付加情報は、例えば、付加情報の一部であっても良い。例えば、付加情報が有する物体関連情報の一つまたはその一部と、対応する物体5の処理順番を示す情報とを対応付けて有する1または2以上の情報を、付加情報に対応する物体5の処理順番を示す情報と考えても良い。例えば、付加情報が有するコード識別子と、対応する物体5の処理順番を示す情報とを対応付けて有する1または2以上の情報を、付加情報に対応する物体5の処理順番を示す情報と考えても良い。また、例えば、付加情報が有するコード識別子が、対応する物体5の処理順番に沿って配列されている情報を、付加情報に対応する物体5の処理順番を示す情報と考えても良い。このような付加情報に対応する物体5の処理順番を示す情報を、ここでは順番管理情報と呼ぶ。
また、付加情報が、この付加情報に対応する物体5に対して行なわれる処理の識別子等を有する場合において、このような付加情報が有する処理の識別子に、処理が行なわれる処理順番を示す情報を対応付けた情報、または、このような付加情報が有する処理の識別子を、処理の処理順番に沿って配列した情報を、順番管理情報として用いても良い。処理の識別子等は、例えば、付加情報の物体関連情報が有していても良い。
格納部103には、コード識別子と、物体関連情報とを有する1または2以上のコード管理情報が格納される。格納部103は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。かかることは、他の格納部についても同様である。
順番管理情報格納部104には、順番管理情報が格納される。順番管理情報は、上述したように、1または2以上の付加情報に対応する物体5の処理順番を示す情報である。順番管理情報格納部104に格納される順番管理情報は、例えば、付加情報に含まれるコード識別子と、処理順番を示す情報と、を有する情報である。処理順番を示す情報とは、コード50と対応付けて配置された物体に対して行なわれる処理の順番を示す情報である。処理順番を示す情報は、例えば、処理順番を示す連番や配列順序を有する文字等である。物体に対して行なわれる処理については、後述する。
なお、順番管理情報は、例えば、コード識別子等の付加情報を配列した情報であっても良い。例えば、順番管理情報は、コード識別子等の付加情報を、この付加情報に対応する物体5の処理順番に従って配列した情報であっても良い。この場合、例えば、各コード識別子の配列順番が、各コード識別子に対応する物体5の処理順番に対応すると考えてもよい。
判断部105は、取得部102が取得した付加情報が、特定の付加情報であるか否かを判断する。特定の付加情報とは、例えば、付加情報に対応するコード50に対応する物体5に対して行なわれる処理の順番が、次の順番であることを示す付加情報である。特定の付加情報は、付加情報に対応する物体5が、特定の処理や任意の処理についての処理対象であることを示す付加情報であっても良く、処理対象でないことを示す付加情報であっても良く、付加情報の取得対象から除外された付加情報であっても良い。判断対象となる付加情報は、一部の付加情報(例えば、特定の一つの付加情報)であってもよく、全ての付加情報であっても良い。
例えば、取得部102が取得した付加情報が、この付加情報に対応する物体5の処理順番と対応付けられている場合において、判断部105は、取得部102が取得した付加情報が次の処理順番の物体5の付加情報であるか否かを判断する。例えば、付加情報が、処理順番を示す情報を有する場合、判断部105は、この付加情報が有する処理順番を示す情報を用いて取得部102が取得した付加情報が次の処理順番に対応する付加情報であるか否かを判断する。取得部102が取得した付加情報が、特定の付加情報であるか否かを判断することは、取得部102が取得した付加情報に対応するコード50や、コード50が対応付けられた物体5が、特定のコード50や、特定の物体5であるか否かを判断することと考えてもよい。
例えば、判断部105は、順番管理情報格納部104に格納されているコード識別子と処理順番を示す情報とを有する順番管理情報、または、コード識別子を配列した情報である順番管理情報を用いて、取得部102が撮影画像から取得した付加情報が有するコード識別子と対応付けられた処理順番を示す情報を取得する。そして、取得した処理順番を示す情報が次の処理順番を示しているか否かを判断する。例えば、判断部105は、取得した処理順番を示す情報が次の処理順番を示す情報と一致しているか否かを判断する。次の処理順番を示している場合、判断部105は、取得した付加情報が、次の処理順番であることを示す特定の付加情報であると判断する。また、次の処理順番を示していない場合、特定の付加情報でないと判断する。なお、次の処理順番を示しているという判断結果を、特定の付加情報であるという判断結果と考えるようにしてもよい。
例えば、判断部105は、取得部102が撮影画像から取得した付加情報が有するコード識別子が、次の処理順番を示す情報を有している場合、この付加情報が特定の付加情報であると判断してもよい。例えば、コード識別子を構成する特定の数字(例えば、全ての数字や、後ろの1以上の文字の数字等)が、コード識別子が示すコード50に対応付けて配置された物体5の処理順番を示す数字である場合において、一のコード識別子が有するこの数字が、次の処理順番に対応した数字である場合に、判断部105は、このコード識別子を有する付加情報を、次の処理順番の付加情報であると判断してもよい。また、後述する順番管理情報格納部104に格納されている順番管理情報が、1または2以上のコード識別子を、この1または2以上のコード識別子が示すコード50に対応付けられた物体5の処理順番に沿って配列した情報や、1または2以上のコード識別子と処理順番とを対応付けた情報等である場合、取得部102が取得した一の付加情報が有するコード識別子の処理順番を、順番管理情報から取得して、この処理順番が、次の処理順番であるか否かを判断し、次の処理順番である場合に、この付加情報が、特定の付加情報、ここでは、次の処理順番に対応した付加情報であると判断してもよい。
また、取得部105は、付加情報が、予め決められた情報(例えば、特定の処理を示す識別子等)を含む場合において、撮影画像から取得した付加情報が、次に行なわれる処理の識別子と一致する処理の識別子を有する場合、この付加情報が特定の付加情報であると判断してもよい。
判断部105は、現在の処理順番や次の処理順番等を示す情報を、どのように取得しても良い。例えば、処理を開始した時点で、処理順番を示す数値を「1」等に設定し、ユーザが一の物体に対して処理を行なったことを示す情報を、図示しない受付部等を介して入力する毎に、判断部105は、処理順番を示す数値を1インクリメントするようにしても良い。そして、インクリメントする毎に得られた数値を、次の処理順番を示す情報(即ち、数値)として取得するようにしても良い。また、図示しない処理部等が一の物体に対して処理を行なったことを示す情報を出力する毎に、判断部105は、処理順番を示す数値を1インクリメントするようにしても良い。そして、インクリメントする毎に得られた数値を、次の処理順番を示す情報(即ち、数値)として取得するようにしても良い。また、例えば、処理を開始した時点で、処理順番を示す数値を「1」等にセットし、取得部102が、次の処理順番に対応するコード50を検出する毎に、処理順番を示す数値を1インクリメントし、インクリメントする毎に得られた数値を、次の処理順番を示す情報として取得するようにしても良い。次の処理順番等は、例えば、図示しないカウンター等を用いてカウント可能である。
なお、図示しないサーバ装置に格納されたコード管理情報を取得部102が用いる場合と同様に、判断部105は、順番管理情報格納部104に格納されている順番管理情報を用いる代わりに、図示しないサーバ装置の格納部等に格納されている順番管理情報を用いるようにしてもよい。
プロジェクタ106は、取得部102が取得した付加情報に応じた情報を投影する。プロジェクタ106は、例えば、画像を投影して表示する装置である。プロジェクタ106は、例えば、投影に用いられる画像(以下、投影用の画像と称す)を作成し、作成した画像を投影する。例えば、プロジェクタ106は、付加情報に応じた情報を示す画像を投影して表示する装置である。付加情報に応じた情報は、付加情報であってもよく、付加情報に応じて取得した情報(例えば、付加情報を変換して取得した情報や付加情報に対応する情報)であっても良く、後述するように、判断部105等による付加情報を用いた判断結果に応じた情報(例えば、判断結果に応じて取得された情報)を投影することであっても良い。判断部105の判断結果に応じた投影とは、例えば、判断部104が次の処理順番に対応すると判断した付加情報に応じた情報を投影することであってもよい。
プロジェクタ106がどこに付加情報を投影するかは問わない。プロジェクタ106は、例えば、取得部102が取得した付加情報を、投影領域の予め決められた位置(例えば、左右や、上下等)に表示してもよい。プロジェクタ106は、例えば、撮影部101が撮影した領域(以下、撮影領域と称す)と少なくとも一部が重なる領域に、取得部102が取得した付加情報を投影する。プロジェクタ106は、例えば、投影する領域が、撮影部101の投影領域と、少なくとも一部が重なるよう投影を行なう。例えば、プロジェクタ106の投影領域が、例えば、撮影部101の撮影領域と同じであってもよく、撮影領域全体を含んでいてもよく、撮影領域に投影領域全体が含まれていても良い。取得部102が複数の付加情報を取得した場合、プロジェクタ106は、例えば、取得した複数の付加情報を投影してもよく、一部だけを投影しても良い。プロジェクタ106が投影する付加情報が文字列の情報等である場合、この文字列を投影する際のフォントやサイズ、色等は、問わない。プロジェクタ106が画像等を投影する構成については、公知技術であるため、ここでは詳細な説明は省略する。
プロジェクタ106は、例えば、取得部102が取得した付加情報を、付加情報に対応するコード50に対応付けられた物体5に対応する位置に投影する。ここで投影する付加情報は、取得した付加情報の全てであっても良く一部であっても良い。例えば、取得部102が取得した付加情報が、コード識別子と物体関連情報とを有する情報である場合に、プロジェクタ106は、付加情報の物体関連情報を選択的に投影するようにしてもよい。プロジェクタ106は、例えば、取得部102が取得した付加情報が有する物体関連情報を、付加情報に対応するコード50に対応付けられた物体5に対応する位置に投影する。
付加情報をコード50に対応付けられた物体5に対応する位置に投影するということは、例えば、コード50に対応付けられた物体に重ねて投影することであっても良く、コード50に重ねて投影することであっても良く、コード50またはコード50に対応付けられた物体に関連づけて投影することであっても良い。各コード50は、物体に対応付けて配置されているため、コード50に重ねて、あるいは関連付けて付加情報を表示することは、コード50に対応する物体に対応付けて投影することの一態様と考えてもよい。物体またはコード50に重ねて付加情報を投影することは、付加情報の少なくとも一部が、物体またはコード50に重なるよう投影することである。物体に重ねて付加情報を投影することは、例えば、物体の表面に収まるよう付加情報を投影することであってもよい。付加情報をコード50や物体に関連付けて投影することは、例えば、付加情報を、コード50や物体に隣接した位置に配置して表示することや、付加情報をコード50や物体に対して線等の図形で繋いで表示することであってもよい。また、各付加情報に異なる符号を付して予め決められた位置に投影するとともに、各付加情報に対応する物体やコード50に重ねて、各付加情報に付した符号と同じ符号を配置することであってもよい。
撮影領域と投影領域との対応関係が略一定の関係に保たれている場合、プロジェクタ106は、例えば、撮影領域と投影領域との対応関係を用いて、取得部102が取得した付加情報を、付加情報に対応するコード50に対応付けられた物体に対応する位置に表示する。撮影領域と投影領域との対応関係とは、例えば、撮影領域内の座標と投影領域内の座標との対応関係や、撮影領域と投影領域とのサイズや配置の対応関係である。撮影領域と投影領域とのサイズや配置の対応関係は、例えば、撮影領域と投影領域との重なり方である。例えば、プロジェクタ106は、撮影領域と投影領域との対応関係を示す情報、具体的には、撮影領域内の座標と投影領域内の座標との対応関係を示す情報を用いて、取得部102が取得した付加情報に応じた情報を、付加情報に対応するコード50に対応付けられた物体に対応する位置に表示する。例えば、撮影領域内の座標と、投影領域内の座標との対応関係を示す情報とは、例えば、撮影領域内の座標を、投影領域内の座標に変換するための変換式や変換表等である。なお、略一定とは、一定である場合も含む概念である。
なお、撮影領域と投影領域との対応関係は、撮影領域を撮影した撮影画像と、投影領域に投影するために用いられる画像との対応関係と考えてもよい。例えば、プロジェクタ106は、撮影画像内における取得部102が取得した付加情報に対応するコード50の画像の位置を、この撮影画像と投影画像との対応関係を示す変換式や変換表等を用いて、投影用の画像の位置に変換して、投影用の画像の、この変換した位置に対応する位置に取得した付加情報等を配置することで、取得部102が取得した付加情報に対応するコード50に対応付けられた物体に対応する位置に付加情報を投影するようにしても良い。
例えば、プロジェクタ106は、撮影領域内の座標と投影領域内の座標との対応関係を示す情報を用いて、取得部102が取得した付加情報に応じた情報を、付加情報に対応するコード50に対応付けられた物体に重ねて投影してもよく、付加情報に対応するコード50に重ねて投影してもよく、物体やコード50に関連付けて投影してもよい。
例えば、プロジェクタ106は、上述したように、付加情報を取得する際に取得部102が取得した撮影領域内における付加情報に対応するコード50の位置を示す情報、または、コード50に対応する物体の位置を示す情報、あるいはその両方と、撮影領域と投影領域との対応関係を示す情報を用いて、取得部102が取得した付加情報に対応するコード50、または、物体、あるいはその両方、の投影領域内における位置を示す情報を取得する。例えば、プロジェクタ106は、上述したように、付加情報を取得する際に取得部102が取得した撮影領域内における付加情報に対応するコード50の位置を示す座標、または、撮影領域内におけるコード50に対応する物体の位置を示す座標、あるいはその両方と、撮影領域内の座標と投影領域内の座標との対応関係を示す情報を用いて、取得部102が取得した付加情報に対応するコード50の位置を示す投影領域内における座標、または、このコード50に対応付けられた物体の位置を示す投影領域内における座標、あるいはその両方を取得する。そして、プロジェクタ106は、取得した位置を示す情報が示す位置(例えば、取得した座標が示す位置)に、取得部102が取得した付加情報を配置した投影用の画像を作成し、作成した投影用の画像を投影する。複数の付加情報を投影する場合、上記と同様の処理を繰り返して、それぞれの付加情報を配置した投影用の画像を作成し、投影すればよい。
なお、撮影領域および投影領域とコード読取装置1との距離に関係なく、上記のような撮影領域と、投影領域との座標の対応関係、あるいはサイズや配置等の対応関係が略一定の関係に保たれるようにするためには、撮影部101とプロジェクタ106との光軸が略一致するようにすることが好ましい。光軸が略一致するということは、光軸を略同軸とすることである。ここでの光軸は、撮影領域側および投影領域側における光軸である。撮影部101の光軸1011およびプロジェクタ106の光軸1061を略一致とするためには、例えば、撮影部101の光を受光するレンズ(図示せず)と、プロジェクタ106の光を出射するレンズ(図示せず)とを、光軸が略平行となるよう近接して配置するようにしてもよい。また、撮影部101の光軸およびプロジェクタ106の光軸の少なくとも一方を1以上のミラーでそれぞれ反射させることで、撮影部101の光軸と、プロジェクタ106の光軸とが略平行に近接させて配置されるようにしてもよい。また、後述するように、ハーフミラー107等を用いて、撮影部101とプロジェクタ106との光軸が略同一となるよう、好ましくは一致するようにしてもよい。
以下、本実施の形態においては、ハーフミラー107を用いて、コード読取装置1に対して入出射される光の光軸である撮影部101の撮影領域側の光軸とプロジェクタ106の投影領域側の光軸が略同一となるようにした場合を例に挙げて説明する。
また、撮影部101とプロジェクタ106との画角を略同一、好ましくは同一とすることが好ましい。画角を略同一とすることで、撮影領域と投影領域とのサイズを略同一とすることができる。例えば、撮影部101とプロジェクタ106との光軸を略一致させるとともに、撮影部101とプロジェクタ106との画角を略同一とすることで、撮影領域と投影領域との座標を略一致させることが可能となり、撮影した画像と、投影用の画像との座標を略一致させることが可能となる。
なお、コード50およびコード50に対応する物体5を撮影する際の、コード50およびコード50に対応する物体と、コード読取装置1との距離に、予め制約を設けておくようにし、この制約を満たすよう撮影等が行なわれる場合に、撮影対象となるコード50等の近傍における撮影部101の光軸と、プロジェクタ106の光軸と、が略同一となるよう、撮影部101とプロジェクタ106とを予め配置してもよく、これらの光軸の向きをミラー等で変更しておくようにしてもよい。距離の制約とは、例えば、撮影する物体5までの距離を所望の範囲に限定する制約である。この場合、コード読取装置1が撮影する際の光軸、つまり、撮影部101の光軸のうちのコード読取装置1の外側の部分、と、コード読取装置1が投影する際の光軸、つまり、プロジェクタ106の光軸のうちのコード読取装置1の外側の部分、とを、必ずしも上記のようなハーフミラー107を設けて一致させなくても良い場合がある。また、例えば、ユーザが撮影する際の撮影対象のコード50および物体とコード読取装置1との距離を、十分に長い距離、例えば、1m以上の距離等に制限することで、コード読取装置1における撮影部101に入射される光の受光位置と、コード読取装置1におけるプロジェクタ106が投影する光が出射される出射位置とが数センチ程度離れていても、コード読取装置1が撮影する際の光軸と、コード読取装置1から投影の際の光軸とを略平行となるようにそれぞれを配置することで、撮影領域と、投影領域との対応関係が略一定の関係に保たれるようにすることが可能となる。
撮影部101がプロジェクタ106が投影する領域を含む領域を撮影する場合、プロジェクタ106は、例えば、撮影部101が撮影した画像に応じて投影領域に含まれる模様を打ち消すための画像と、上述した付加情報との投影とを行なうようにしてもよい。例えば、撮影部101は、模様を打ち消すための画像と、付加情報を配置した画像とを重ねた画像を生成し、生成した重ねた画像を投影するようにしても良い。重ねた画像とは、例えば、重ねて合成した画像である。例えば、撮影部101は、撮影画像内における投影領域に対応する領域内の画像から、この画像に含まれる模様を打ち消すための画像を生成し、生成した画像に、取得部102が取得した付加情報を配置した画像を重ねた画像を生成し、生成した重ねた画像を投影する。撮影画像内における投影領域に対応する領域は、上述したような撮影画像と投影画像との対応関係を示す情報から取得可能である。投影領域に含まれる模様とは、例えば、投影領域に含まれる文字や図柄やパターン画像や背景等である。なお、一の画像に含まれる模様を打ち消すための画像を生成して、一の画像上に投影することで、模様を打ち消す技術は、以下の文献等により公知であるため、ここでは詳細な説明は省略する「文献:天野敏之,加藤博一,モデル予測制御を用いたプロジェクタカメラ系による見かけの制御,電子情報通信学会論文誌 D,Vol.J94−D,No.8,pp.1368−1375,2011.8」。
プロジェクタ106は、例えば、判断部105の判断結果に応じた投影を行なうようにしてもよい。判断結果に応じて投影を行なうことは、判断結果によっては、投影を行なわないことも含むと考えてもよい。また、判断結果に応じて投影を行なうことは、判断結果に応じて異なる態様の投影を行なうことであっても良い。また、判断結果によって、投影を行なう場合と投影を行なわない場合とがあり、投影を行なう場合は、判断結果に関係なく同じ態様の投影を行なうことであっても良い。
プロジェクタ106は、例えば、判断部105が特定の付加情報であると判断した場合に、この付加情報に応じた情報を投影するようにしても良い。例えば、この特定の付加情報に対応するコード50(例えば、特定の付加情報が有するコード識別子が示すコード50)に対応付けられた物体5に対応する位置に、このコード50に対応する付加情報を投影しても良い。また、プロジェクタ106は、例えば、コード50に対応する付加情報に応じた情報として、付加情報の代わりに、あるいは付加情報に加えて、予め決められた画像や文字等を表示するようにしてもよい。予め決められた画像や文字は、例えば、特定のコード50であると判断されたことを示す画像や文字である。予め決められた画像は、例えば、予め決められた色の画像であっても良い。また、この場合の付加情報に応じた情報は、コード50やコード50に対応付けられた物体を強調表示する情報(例えば、色や、画像等)であっても良い。
プロジェクタ106は、例えば、判断部105が次の処理順番に対応すると判断した付加情報に応じた情報を投影するようにしてもよい。この場合、次の処理順番に対応すると判断されなかった付加情報に応じた情報は投影しないようにしても良い。ここでの付加情報に応じた情報の投影は、例えば、上記と同様の画像や文字等の投影や、物体を強調表示する情報の投影である。この場合に、プロジェクタ106が投影する付加情報に応じた情報は、例えば、付加情報であっても良く、付加情報に対応するコード50に対応付けられた物体5を次に処理する物体として示す情報であってもよく、その両方であっても良い。つまり、プロジェクタ106が投影する付加情報に応じた情報は、付加情報と、付加情報に対応するコード50に対応付けられた物体5を次に処理する物体として示す情報と、の少なくとも一方であってもよい。
プロジェクタ106は、例えば、撮影画像に複数のコード50が含まれる場合において、判断部105が次の処理順番と判断した付加情報に対応付けられた物体5を、次に処理する物体5として示す情報を投影するようにしてもよい。ここでの次の処理順番と判断した付加情報に対応付けられた物体5を次に処理する物体5として示す情報の投影は、付加情報に応じた情報の投影と考えてよい。例えば、プロジェクタ106は、撮影画像に複数のコード50が含まれているか否かを、取得部102によるコード50の検出結果から判断し、複数のコード50が含まれている場合において、判断部105が一のコード50に対応する付加情報を次の処理順番と判断した場合に、この付加情報に対応するコード50と対応付けられた物体を、次に処理する物体として示す情報を投影するようにしてもよい。コード50と対応付けられた物体を次に処理する物体として示す情報を投影することは、例えば、取得部102が取得したコード50と対応付けられた物体に重ねて、あるいは、関連付けて予め決められた画像を投影することである。また、コード50と対応付けられた物体を次に処理する物体として示す情報を投影することは、例えば、取得部102が取得したコード50に重ねて、あるいは、関連付けて予め決められた画像を投影することである。次に処理する物体として示す情報を物体やコード50に重ねて投影したり、物体やコード50に関連付けて投影する処理は、上記の付加情報を物体やコード50に重ねて投影したり、関連付けて投影する処理と同様であるため、ここでは、詳細な説明は省略する。なお、撮影画像に複数のコード50が含まれていない場合、判断部105が、取得部102が取得した一のコード50の付加情報を次の処理順番と判断した場合であっても、上記のような、付加情報に対応するコード50と対応付けて配置された物体5を、次に処理する物体5として示す情報の投影は、行なわないようにしてもよい。
プロジェクタ106が投影する次に処理する物体として示す情報は、例えば、予め決められた色や図柄等を有する画像である。例えば、プロジェクタ106は、予め決められた形状を有する予め決められた色の画像、または、次に処理する物体やこの物体に対応するコード50と略同形状の予め指定された色の画像を投影してもよい。予め決められた色の画像を投影することは、予め決められた色やパターンの光を投影することと考えてもよい。例えば、プロジェクタ106は、処理順番が次であると判断された付加情報に対応するコード50に対応付けられた物体5に対して、次に処理する物体として示す情報として、予め決められた色の光(例えば、青色の光)等を投影しても良い。次に処理する物体として示す情報は、正しい処理順番の物体であることを示す情報と考えてもよい。処理順番が次でないと判断された付加情報に対応するコード50に対応付けられた物体5に対して、次に処理する物体でないことを示す情報やエラーであることを示す情報として、上記と異なる予め決められた色の光(例えば、赤色の光)等を投影しても良い。また次に処理する物体として示す情報は、例えば、矢印や、星印等の予め決められた形状の画像であってもよい。また、ここで投影する画像は静止画像であっても、点滅する画像等の動画像であってもよい。また、次に処理する物体として示す情報は、処理順番を示す数字等を有する画像であっても良い。処理順場を示す数字等は、例えば、取得部102が取得した付加情報が有するコード識別子に対応付けられた処理順番に応じて取得可能である。
また、プロジェクタ106は、例えば、判断部105が撮影画像内において次の処理順番の付加情報を検出できなかった場合に、エラーを示す情報を投影するようにしてもよい。例えば、プロジェクタ106は、エラーを示す情報は、エラーを示す文字列であっても良く、エラーを示す画像であっても良い。エラーを示す文字列は、例えば、次の処理順番の物体が検出されなかった旨を示す文字列である。
なお、撮影部101が撮影する撮影画像が複数のコード50を撮影した画像であることが、予め決められている場合等においては、例えば、プロジェクタ106は、上記のように、撮影画像に複数のコード50が含まれているか否かを判断しないようにして、判断部105が一のコード50に対応するコード識別子を次の処理順番と判断した場合に、このコード識別子に対応するコード50と対応付けられた物体を、次に処理する物体として示す情報を投影するようにしてもよい。
なお、プロジェクタ106は、撮影画像に複数のコードが含まれているか否かの判断処理や、判断部105の判断結果に応じた出力等を行なうための処理を行なうためのMPUやメモリ等を有していても良い。また、これらの処理手順は、例えば、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ハーフミラー107は、撮影部101およびプロジェクタ106の光軸上に配置されている。図1(a)においては、ハーフミラー107は、撮影部101の光軸1011上であって、プロジェクタ106の光軸1061上となる位置に配置されている。撮影部101およびプロジェクタ106は、例えば、それぞれの光軸が、ハーフミラー107を介して、撮影部101の撮影領域側およびプロジェクタ106の投影領域側において略同軸、好ましくは同軸となるよう設置されていることが好ましい。ハーフミラー107は、入射した光の一部を反射し、一部を透過するものであり、反射光と透過光との強さが略1:1のものである。ハーフミラー107は板状の形状を有している。ハーフミラー107は、ビームスプリッタの一種である。なお、ここでは、ハーフミラー107を用いる場合について説明しているが、本発明においては、ハーフミラー107以外のビームスプリッタ(図示せず)を用いるようにしても良い。ハーフミラー107以外のビームスプリッタを用いる場合、例えば、撮影部101の受光感度や、プロジェクタ106の発光強度等は、反射光と透過光との強度に違いに応じて適宜調整しておくことが好ましい。
本実施の形態においては、図1(a)に示すように、ハーフミラー107は、プロジェクタ106の光軸1061に対して45度の角度をなすよう傾斜して配置されており、プロジェクタ106から照射される光が、ハーフミラー107を透過して直進するよう配置されている。撮影部101は、ハーフミラー107の、プロジェクタ106からの光が入射される面とは異なる面で反射された光が入射される位置に配置されている。また、撮影部101の光軸1011の、撮影対象の物体50等が配置されている撮影領域からハーフミラー107までの部分と、プロジェクタ106の光軸1061の、物体50等が配置されている投影領域からハーフミラー107までの部分とが同軸となるよう撮影部101とプロジェクタ106とが配置されている。つまり、コード読取装置1が撮影する際の光軸と、コード読取装置1が投影する際の光軸とが同軸となるよう設定されている。このような配置により、実質的に、撮影部101の光軸1011と、プロジェクタ106の光軸とが、実質的に同軸になっている。これにより、撮影領域の中心と投影領域の中心は、同じ位置となっている。図1(a)においては、説明の便宜上、撮影部101の光軸1011の、撮影領域からハーフミラー107までの部分と、プロジェクタ106の光軸1061の、投影領域からハーフミラー107までの部分とを、少しずらして、平行に表示しているが、実際には、これらの部分は一致している、つまり同軸であるものとする。
なお、撮影部101とプロジェクタ106とハーフミラー107との配置は、撮影領域からの光がハーフミラー107を介して撮影部101に入射され、プロジェクタ106が照射する光がハーフミラー107を介して投影領域に投影され、撮影部101の光軸1011の、撮影領域からハーフミラー107までの部分と、プロジェクタ106の光軸1061の、投影領域からハーフミラー107までの部分とが略同軸(好ましくは同軸)となるような配置であれば、上記以外の配置であっても良い。例えば、上記の図1(a)に示した配置において、プロジェクタ106と、撮影部101との配置を入れ換えても良い。
なお、コード読取装置1は、撮影部101の光軸上や、プロジェクタ106の光軸上に、適宜、1以上のレンズ(図示せず)やプリズム(図示せず)やミラー(図示せず)等の光学系(図示せず)を有していても良い。例えば、撮影領域および投影領域とハーフミラー107との間の光軸上に、1以上のレンズ(図示せず)を有していても良い。また、ハーフミラー107と撮影部101との間の光軸上や、ハーフミラー107とプロジェクタ106との間の光軸上に、1以上のレンズ(図示せず)を有していても良い。例えば、撮影部101とハーフミラー107との間、およびプロジェクタ106とハーフミラー107との間に、それぞれ1以上のミラー(図示せず)およびレンズ(図示せず)等を配置することで、コード読取装置1内における撮影部101の配置、およびプロジェクタ106の配置の自由度を向上させることができる。
次に、コード読取装置1の動作の一例について図2のフローチャートを用いて説明する。なお、ここでは、処理順番を、判断部105がカウントする場合を例に挙げて示してる。また、ここでは、コード50から取得されるコード識別子を、付加情報の一部と考える場合について説明する。また、このコード識別子を用いて、付加情報が特定の付加情報、ここでは、次に処理する物体5に対応する付加情報であるか否かを判断する場合について説明する。
(ステップS101)判断部105は、処理順番のカウンターmに1を代入する。
(ステップS102)撮影部101は、撮影を行なうタイミングであるか否かを判断する。例えば、ユーザから撮影する操作を図示しない受付部等が受け付けた場合に、撮影を行なうタイミングであると判断してもよい。また、予め決められた時間が経過する毎に、撮影を行なうタイミングであると判断してもよく、予め決められたトリガー等に応じて撮影を行なうタイミングであると判断してもよい。例えば、撮影する画像が動画像である場合、次のフレームの画像を撮影するタイミングであるか否かを判断してもよい。撮影するタイミングである場合、ステップS103に進み、撮影するタイミングでない場合、ステップS102に戻る。
(ステップS103)撮影部101は、撮影を行なう。ここで撮影する画像は静止画像であっても動画像であってもよい。
(ステップS104)取得部102は、ステップS103で撮影した画像から、一のコード50を検出する処理を行なう。なお、撮影した画像が動画像である場合、動画像内の一のフレーム画像からコード50を検出しても良い。
(ステップS105)取得部102は、ステップS104において、一のコード50が検出されたか否かを判断する。検出された場合、ステップS106に進み、検出されていない場合、ステップS102に戻る。
(ステップS106)取得部102は、ステップS104において検出したコード50についてコード識別子と、コード50の、撮影した画像内における位置を示す情報とを取得する。コード50の位置を示す情報は、例えば、コード50の輪郭を示す座標群や、コード50の中心の座標である。取得した情報は、図示しない格納部等に蓄積する。
(ステップS107)取得部102は、次のコード50を検出する処理を行なう。
(ステップS108)取得部102は、次のコード50が検出できたか否かを判断する。検出できた場合、ステップS106に戻り、検出できなかった場合、ステップS109に進む。
(ステップS109)判断部105は取得部102が取得して蓄積した1以上のコード識別子の中に、処理順番と対応付けられたコード識別子であって、対応する処理順番がm番目であるコード識別子が有るか否かを判断する。例えば、判断部105は、順番管理情報格納部104に格納されている順番管理情報を用いて、取得部102が取得して蓄積したコード識別子に対応する順番管理情報が有るか否かを判断する。そして、順番管理情報がある場合に、この順番管理情報から処理順番を示す情報を取得し、この情報が示す処理順番がm番目であるコード識別子が有るか否かを判断する。有る場合、ステップS110に進み、ない場合、ステップS117に進む。
(ステップS110)取得部102は、ステップS109で検出したコード識別子に対応する物体関連情報を格納部103から取得する。ここで取得された物体関連情報と、この物体関連情報の取得に用いたコード識別子とが、例えば、一のコードについて取得された付加情報である。
(ステップS111)プロジェクタ106は、撮影部101が撮影した画像から、この画像内の模様を打ち消す画像を生成する。
(ステップS112)取得部102は、撮影した画像から複数のコード50が検出されたか否かを判断する。例えば、取得部102は、ステップS105およびステップS108において検出したコード50の合計が、複数であるか否かを判断し、複数であれば、複数のコード50が検出されたと判断し、複数でなければ、複数のコード50が検出されなかったと判断する。複数のコード50が検出された場合、ステップS113に進み、複数のコード50が検出されなかった場合、ステップS116に進む。
(ステップS113)プロジェクタ106は、ステップS111で生成した模様を打ち消す画像と、ステップS110で取得した付加情報を、この付加情報に対応するコード50が配置されていた位置に対して予め決められた位置に配置した画像と、このコード50に対して予め決められた位置に、次に処理する物体であることを示す情報を配置した画像とを重ねて投影する。例えば、これらを重ねて合成した画像を生成し、投影する。付加情報や、次に処理する物体であることを示す情報を、投影用の画像に配置する際には、例えば、撮影した画像におけるこれらに対応するコード50の位置を示す情報を、予め用意されている撮影領域と投影領域との対応関係を示す情報等を用いて、投影用の画像における位置の情報に変換して配置する。なお、プロジェクタ106は、投影する付加情報として、付加情報のうちの物体関連情報だけを投影しても良い。
(ステップS114)判断部105は、カウンターmの値を1インクリメントする。
(ステップS115)判断部105は、m番目の処理順番のコード識別子が順番管理情報格納部104に格納されているか否かを判断する。格納されている場合、処理を終了し、格納されていない場合、ステップS102に戻る。なお、ステップS102に戻る際には、例えば、ステップS106で取得して蓄積したコード識別子やコード50の位置を示す情報は、削除してよい。かかることは、後述するステップS117や、ステップ118等においても同様である。
(ステップS116)プロジェクタ106は、ステップS111で生成した模様を打ち消す画像と、ステップS110で取得した付加情報を、この付加情報に対応するコード50が配置されていた位置に対して予め決められた位置に配置した画像と、を重ねて投影する。そして、ステップS114に戻る。
(ステップS117)プロジェクタ108は、エラーを示す情報を投影する。そして、ステップS102に戻る。
なお、図2のフローチャートにおいて、撮影部101による撮影が、予め決められた時間間隔毎等により繰返し行なわれる場合等においては、処理順番がm番目のコード50が検出されなくなった場合に、判断部105がカウンターmの値を1インクリメントするようにしても良い。
以下、本実施の形態におけるコード読取装置1の具体的な動作について説明する。
図3は、コード読取装置1の一例を示す概念図である。ここでは、コード読取装置1が携帯型の装置である場合を例に挙げて示している。
図3のコード読取装置1のレンズ108は、撮影部101が撮影するためのレンズと、プロジェクタ106が画像を投影するためのレンズとを兼用したレンズである。撮影部101は、その光軸1011が、コード読取装置1の内部のハーフミラー107で反射されて、レンズ108の光軸と同軸となるように配置されている。また、プロジェクタ106は、その光軸1061が、コード読取装置1の内部のハーフミラー107で反射されて、レンズ108の光軸と同軸となるように配置されている。これにより、コード読取装置1が撮影を行なう際の光軸1011と、コード読取装置1が投影を行なう際の光軸1061とが同軸となっている。また、コード読取装置1は、ここでは、撮影を行なうための指示を受け付けるための撮影ボタン109を有している。
図4は、順番管理情報格納部104に格納されている複数の順番管理情報を管理する順番管理表である。順番管理表は、「コードID」と「順番」という属性を有している。「コードID」は、コード識別子である。「順番」は、処理を行なう順番を示す数値であり、値が小さいものほど処理の順番が早いものとする。順番管理表の各レコード(行)が、それぞれ、順番管理情報であるとする。なお、ここでの処理は、ユーザが物体5を移動させる処理であるとする。
コード読取装置1を携帯したユーザが、1番目に移動させる物体5を探すため、倉庫内を移動し、複数の物体5、つまり複数の箱が積まれている場所に移動し、コード読取装置1を起動し、この複数の物体5を、コード読取装置1で撮影したとする。例えば、撮影ボタン109等を押すことで撮影が行なわれる。撮影する画像は、ここではカラーの静止画像であるとする。ここでは、物体5は、商品が入った箱であるとする。また、物体5である箱の表面には、それぞれカラーコードであるコード50が貼付されているものとする。各コード50の色の配列等は異なるものであるとする。なお、コード読取装置1を起動した時点で、判断部105は、カウンターmの値として1を代入するものとする。
図5は、複数の物体5をコード読取装置1で撮影している状態を示す図(図5(a))、および撮影により得られた画像を示す図(図5(b))である。なお、ここでは、説明の便宜上、撮影された異なるコード50を、コード50a〜50eと呼ぶ。また、コード読取装置1の投影領域300は、撮影領域200内の領域であるとする。
撮影を行なうことにより、撮影部101は、レンズ108を介して撮影領域200の画像を撮影する。これにより、撮影部101は、図5(b)に示すような撮影画像210を取得する。
取得部102は、図5(b)に示した撮影画像において、1つめのコード50の画像の検出を行なう。ここでは、例えば、コード50aの画像が検出されたとする。このため、取得部102は、検出したコード50aを読取って、コード50aに対応するコード識別子を取得する。取得したコード識別子は、「A1002」であったとする。また、取得部102は、取得したコード50aの位置情報を取得する。ここでは、取得部102は、コード50aの中心である対角線の交点の座標を取得する。取得した座標は、(xa1、ya1)であったとする。取得部102は、取得したコード識別子「A1002」と、座標(xa1、ya1)とを対応付けて、図示しない格納部に一時記憶する。
同様に、取得部102は、2つめ以降のコード50の画像の検出を行い、検出されたコード50からコード識別子を読取るとともに、コード50の位置情報を取得し、これらを図示しない格納部に蓄積していく。そして、6つめのコード50が検出されなかったとする。コード50からコード識別子を読取るために用いられる図示しないデータベースや、データベースが格納される格納部(図示せず)等は、ここでは省略する。この格納部は、コード読取装置1が有していても良く、図示しないサーバ等が有していても良い。コード50からコード識別子を読取る処理は、公知技術であるため、ここでは詳細な説明は省略する。なお、ここでは、コード50から読取られるコード識別子も、付加情報の一部であるとする。
図6は、撮影画像において検出した5つのコード50についてそれぞれ取得して蓄積したコード識別子と、位置情報とを管理する取得コード管理表である。取得コード管理表において、「コードID」はコード識別子を示し、「座標」は、コードの位置を示す座標を示している。なお、「座標」の属性値を示しているxa1や、x11や、ya1や、y11等の値は、任意のx座標値やy座標値であるとする。
図7は、格納部103に格納されているコード管理情報を管理するコード管理表を示す図である。コード管理表は、「コードID」と、「物体関連情報」とを有する。「コードID」は、コード識別子である。「物体関連情報」は、物体関連情報であり、例えば、テキストデータであるとする。ここでは、一のコード管理情報が有する物体関連情報は、同じコード管理情報が有するコード識別子に対応するコード50が対応付けられた(ここでは、貼付された)物体5についての物体関連情報である。
判断部105は、図6に蓄積された取得コード管理表の1番上のレコードから、「コードID」の値「A1002」を取得し、図4に示した順番管理表において、「コードID」の値が「A1002」であるレコードを検索する。ここでは一致するレコードがあるため、一致するレコードの「順番」の値である「1」を取得する。そして、この「順番」の値が、上記のカウンターmの値である「1」と一致するか否かを判断する。ここでは一致するため、判断部105は、処理順番がm番目(ここでは、1番目)であるコード識別子が検出されたと判断する。そして、このコード識別子「A1002」を取得して、図示しない格納部等に一時記憶する。なお、取得コード管理表の一のレコードから取得した「コードID」の値に一致する「コードID」の値を有するレコードが、図4に示した順番管理表において検出できなかった場合、取得コード管理表の次のレコードの「コードID」の値について、上記と同様の処理を行なう。また、取得コード管理表の一のレコードから取得した「コードID」の値に一致する「コードID」の値を有するレコードが、図4に示した順番管理表において検出された場合であって、このレコードの「順番」の値がカウンターmの値と一致しない場合も、取得コード管理表の次のレコードの「コードID」の値について、上記と同様の処理を行なう。判断部105は、処理順番がm番目であるコード識別子が検出されたと判断した場合、上記の判断処理を終了する。また、取得コード管理表の全てのレコードについて上記の処理を行なった時点で、処理順番がm番目であるコード識別子が検出されなかった場合も、上記の判断処理を終了する。
判断部105が、処理順番がm番目(ここでは、1番目)であるコード識別子「A1002」を検出したため、取得部102は、このコード識別子「A1002」に対応する物体関連情報を、図7に示したコード管理表から取得する。具体的には、「コードID」の値が「A1002」であるレコードの「物体関連情報」の属性値である「商品名:コンピュータ、移動先:1F301,…」を取得する。取得した物体関連情報は、例えば、図示しない格納部等に一時記憶する。なお、ここでは、コード識別子を用いて取得される物体慣例情報も付加情報の一部であるとする。
図8は、撮影画像210に設定されるxy座標を示す図(図8(a))、投影用の画像310に設定されるXY座標を示す図(図8(b))、および位置関係およびサイズ比が、同じ平面における撮影領域200と投影領域300との位置関係およびサイズ比と同じとなるよう、図8(a)の撮影画像に、投影用の画像を重ねた状態を示す図(図8(c))である。図8(c)は、コード読取装置1からの距離が同じである光軸に垂直な平面における撮影領域200と投影領域300との関係を示す図と考えてもよい。なお、図において、x1,y1,X1,Y1等はそれぞれ任意の座標値を示している。なお、図においては、撮影画像210の中心および投影用の画像310の中心をそれぞれ座標(0,0)としている。ここでは、撮影部101の光軸1011と、プロジェクタ106の光軸1061は、撮影領域200および投影領域300側においては同軸であるため、撮影領域200および投影領域300の中心は一致しているものとする。
図8(b)に示したXY座標における投影用の画像310のX軸方向の値の範囲は、−X1〜X1の範囲であり、Y軸方向の値の範囲は、−Y1〜Y1の範囲であり、図8(c)に示したxy座標における投影用の画像310のx軸方向の値の範囲は、−x1〜x1の範囲であり、Y軸方向の値の範囲は、−y1〜y1の範囲であることから、撮影画像210内の任意の点の座標(x、y)が、図8(c)における投影用の画像内に位置する場合、この座標を、投影用の画像の座標(X,Y)に置き換えると、(x×X1/x1,y×Y1/y1)となる。つまり、このようにして、撮影画像210内の任意の点の座標(x、y)を、投影用の画像内の座標に変換したり、撮影画像210内の任意の領域を、投影用の画像内の領域に変換することができる。
プロジェクタ106は、例えば、撮影画像210内の、図8(c)に示した投影用の画像310と重なる領域の画像を取得し、この画像を、投影用に用いられる投影用の画像のサイズに変換、即ちリサイズする。そして、この変換した画像を用いて、撮影領域200内の投影領域300と重なる部分の模様を打ち消すための画像を生成する。この画像を生成する処理の処理は、ここでは省略する。
また、取得部102は、撮影画像210から複数のコードが検出されたか否かを判断する。ここでは、取得コード管理表に複数のレコードが格納されているため、複数のコードが検出されたと判断する。
プロジェクタ106は、m番目のコード識別子である「A1002」と対応付けられた「座標」の値である(xa1、ya1)を図6に示した取得コード管理表から取得し、この座標を、上述したように、投影用の画像内の座標に変換する。変換後の座標は、(xa1×X1/x1,ya1×Y1/y1)となる。この変換後の座標が、投影領域300におけるm番目(ここでは1番目)のコード50aの位置である。プロジェクタ106は、この変換後の座標の上方に、上記で取得部102がコード管理表を用いて取得した物体関連情報を配置した画像を生成する。これにより、コード50aの上方に付加情報の一部である物体関連情報を投影するための画像が生成されることとなる。
また、プロジェクタ106は、上記において、m番目(ここでは1番目)のコード識別子が検出されており、更に、複数のコードが検出されているため、次に処理する物体であることを示す情報を、上記の変換後の座標(xa1×X1/x1,ya1×Y1/y1)に対して、予め指定された位置に表示する画像を生成する。ここでは、コード50は、いずれも対応する物体5の表面に配置されているため、具体的には、予め図示しない格納部等に格納されていた矢印の画像を読み出し、これを、上記の変換後のコード50aの位置の座標(xa1×X1/x1,ya1×Y1/y1)の左側に隣接した位置に配置した画像を生成する。これにより、コード50aの左側に隣接した位置に、次に処理する物体であることを示す情報を表示するための画像を生成したこととなる。なお、複数のコード50が検出されていない場合、この次に処理する物体であることを示す情報に対応した画像は生成しなくて良い。
そして、プロジェクタ106は、上記で生成した模様を打ち消すための画像と、付加情報のうちの物体関連情報を配置した画像と、次に処理する物体5であることを示す情報を配置した画像と、を重ねて合成して投影用の画像を生成し、この画像を投影する。ここでの、次に処理する物体5であることを示す情報は、判断部105が次の処理順番に対応すると判断した付加情報に応じた情報である。ここでは、例えば、予め図示しない格納部等に格納されている矢印の画像を、付加情報に応じた情報として用いる。
図9は、プロジェクタ106が付加情報が配置された画像を撮影領域200と重なる投影領域300に対して投影している状態を示す図である。
図9に示すように、コード50aの上方の物体5の表面に、この物体5についての付加情報91が投影される。また、コード50aの左側の物体5の表面に、この物体5が次に処理する物体であることを示す情報である矢印の画像92が投影される。ここで投影される付加情報91は、ここでは、取得部102が取得した付加情報のうちの物体関連情報である。
このように付加情報91が投影されることで、ユーザが物体5についての情報を知ることができる。例えば、物体5が箱の中に入っている場合であっても、その物体5がどのようなものであるか等を知ることができる。
また、次に処理する物体5についての付加情報91を投影することで、次に処理する物体5についての情報をユーザが認識することができる。
また、次の処理対象となる物体5についての付加情報91を、この物体5に対応する位置に投影することで、次の処理対象の物体5を容易に認識することができる。
また、付加情報に応じた情報として、次に処理する物体5を示す情報が投影されることで、ユーザが次に処理する物体5を認識することができる。
また、付加情報91および次に処理する物体5を示す情報92が投影されることで、コード読取装置1を操作するユーザ以外のユーザも、物体5についての情報を知ることや、次に処理する物体5を知ることが可能となる。また、物体5に対して付加情報91等が投影されるため、ユーザは、特定のモニタ等を見ることなく、処理対象の物体5を見ながら、付加情報91等を得ることができ、作業性を向上させることができる。
また、プロジェクタ106が模様を打ち消すための投影と、付加情報91、または付加情報91と次に処理する物体5を示す情報92との組合わせの投影とを行なうことで、付加情報91等の周り等の不要な模様等を見えにくくして、付加情報91等を見やすく投影することができる。
プロジェクタ106が上記の投影を行なった後、判断部105は、上記のカウンターmの値を1インクリメントし、処理順番が2番目以降の物体5について、上記と同様の処理が行なわれる。
なお、判断部105が、撮影画像210に処理順番がm番目であるコード識別子と対応付けられたコード50が検出できなかった場合、プロジェクタ106は、予め図示しない格納部に格納されているエラーを示す情報、ここでは、一例として、エラー表示用の画像、を読み出して、読み出したエラー表示用の画像や文字列等を投影する。
図10は、プロジェクタ106がエラー表示用の画像93を投影している状態を示す図である。
また、上記具体例においては、次の処理順番である物体5について付加情報を投影する場合を例に挙げて説明したが、本発明においては、処理順番に関係なく、撮影領域200内に、あるいは、撮影領域200内の投影領域300と重なる領域内に、対応するコード50が配置されている1または2以上の物体5について付加情報を投影するようにしてもよい。また、本発明においては、処理順番が次の処理順番以外の特定の順番である1以上の物体5について付加情報、例えば、付加情報のうちの物体関連情報等を投影するようにしてもよい。
以上、本実施の形態によれば、コード50から取得した情報を適切に表示することができる。例えば、付加情報に応じた情報を投影することで、コード50から取得した情報を、複数人で見ることが可能となる。また、コード読取装置1の近くにいなければ付加情報を見ることができない、という制約が無く、作業性を向上させることができる。
(変形例1)
以下、上記実施の形態のコード読取装置において、撮影部101が撮影する1以上の物体を、1以上の運送対象物および運送手段とし、運送対象物に対応付けて配置されたコードに対応付けられた付加情報を、運送対象物に関する情報とし、運送手段に対応付けて配置されたコードに対応付けられた付加情報を、運送手段に関する情報としたコード読取装置の変形例について説明する。なお、コード読取装置のブロック図等については、図1と同様であるものとする。ただし、この変形例では、格納部103には、後述するように、コード識別子と、付加情報である運送対象物に関する情報と、を対応付けて有する情報、およびコード識別子と、付加情報である運送手段に関する情報と、を対応付けて有する情報が格納されるものとする。また、撮影部101が撮影する運送対象物は、運送対象物に積載された状態であってよく、積載されていない状態であっても良い。
この変形例の撮影部101が撮影する1以上の運送対象物と、運送手段との組合わせは、例えば、1以上の運送対象物と、この運送対象物を運送する運送手段との組合わせである。ここでの運送は、配送等と考えてもよい。運送対象物は、運送が可能なものであればどのようなものであっても良く、その大きさ、形態等は問わない。例えば、運送対象物は、梱包された物体であってもよく、コンテナ等であっても良い。運送手段とは、例えば、運送対象物の運送が可能な移動体である。運送手段は、例えば、自動車や、列車、飛行機や、船舶である。また、フォークリフト、台車等も、運送手段と考えてもよい。また、ベルトコンベア等の搬送機器等も運送手段等と考えてもよい。運送手段は、例えば、運送車両や貨物列車である。運送車両は、トラックや、トレーラー等である。
この変形例においては、1以上のコードは、運送対象物に対応付けて配置される。運送対象物に対応付けて配置されたコードに対応付けられた付加情報は、運送対象物に関する情報(以下、運送対象関連情報と称す)である。運送対象関連情報は、例えば、運送対象物を示す情報である。運送対象物を示す情報は、例えば、運送対象物の種類や名称、運送対象物に割り当てられた文字列等により構成される識別子等である。運送対象物に割り当てられた識別子は、例えば、運送対象物であるコンテナ等に割り当てられた識別子等であっても良い。運送対象物に関する情報は、例えば、後述するような運送対象物を運送する運送手段に関する情報であっても良い。
また、運送対象関連情報は、例えば、運送対象物の積み込み先となる運送手段を示す情報であっても良い。運送対象物の積み込み先となる運送手段とは、例えば、運送対象物の積み込み先として指定されている運送手段と考えても良い。また、運送対象物の積み込み先となる運送手段とは、運送対象物を運送する運送手段と考えてもよい。運送手段を示す情報は、例えば、運送手段を識別する情報であっても良い。運送手段を示す情報は、例えば、運送対象物を運送する業者を識別する情報であってもよく、運送対象物を運送するドライバー名等を示す情報や、運送対象物を運送する車両名や、車両に割り当てられた識別子や、車両ナンバーであっても良い。また、運送手段に割り当てられた便名等であってもよい。
また、運送対象関連情報は、運送対象物の運送先を示す情報であってもよい。運送対象関連情報は、例えば、運送先を特定可能な情報であれば良く、運送先の住所や座標等の、運送先の位置情報であっても良く、運送先の地名や、ランドマーク名、建物名等であってもよい。また運送先となる配送センターや集配センター、倉庫名や、問屋名等の、運送先の名称であっても良い。また、運送対象関連情報は、運送先に対応付けられた文字列やコード等の識別子であっても良い。なお、運送対象関連情報の粒度等は問わない。
また、この変形例においては、運送手段に対応付けてコードが配置される。運送手段に対応付けて配置されたコードに対応付けられた付加情報は、運送手段に関する情報(以下、運送手段関連情報)である。運送手段関連情報は、例えば、上述したような運送手段を示す情報であっても良い。また、運送手段に対応付けて配置されたコードに対応付けられた付加情報は、例えば、上述したような運送手段が運送する運送対象物を示す情報であっても良い。
また、運送手段に関する情報は、例えば、運送手段の運送先を示す情報であってもよい。運送手段の運送先とは、運送手段が運送対象物を運送する運送先である。運送手段の運送先とは、運送手段が運送対象物を運送する予定の運送先と考えても良い。運送手段の運送先は、運送手段の目的地と考えてもよい。運送手段の運送先は、運送手段が運送する運送対象物の運送先と考えてもよい。運送手段関連情報としては、運送対象関連情報において説明した運送対象物の運送先を示す情報と同様の情報が利用可能である。
この変形例では、一例として、格納部103には、コード識別子と、付加情報である運送対象関連情報とを対応付けて有する情報、およびコード識別子と、付加情報である運送手段関連情報とを対応付けて有する情報が格納されるものとする。運送対象関連情報と対応付けられたコード識別子は、例えば、運送対象物に対応付けて配置されるコードのコード識別子である。また、運送手段関連情報と対応付けられたコード識別子は、例えば、運送手段に対応付けて配置されるコードのコード識別子である。コード識別子と、運送対象関連情報とを対応付けて有する情報と、コード識別子と、運送手段関連情報とを対応付けて有する情報として分離して管理されていても良く、コード識別子と、運送対象関連情報および運送手段関連情報とを対応付けて有する情報として、一体化して管理されていてもよく、その管理の仕方は問わない。なお、運送対象関連情報および運送手段関連情報は、例えば、いずれも、上記実施の形態において説明した物体関連情報と考えてもよく、この運送対象関連情報と、運送手段関連情報とを、上述した物体関連情報と考えた場合、この変形例において格納部103に格納された情報は、上記実施の形態において説明したコード管理情報と考えることができる。運送対象関連情報を物体関連情報と考えた場合の物体とは、例えば、運送対象物である。また、運送手段関連情報を物体関連情報と考えた場合の物体とは、例えば、運送手段である。
この変形例においては、例えば、一の運送対象物に対応付けて配置されたコードの運送対象関連情報と、この一の運送対象物の積み込み先となる(言い換えれば運送対象物を運送する)一の運送手段に対応付けて配置されたコードの運送手段関連情報とは、予め指定された対応関係を有するものを用いる。ここでの予め指定された対応関係は、どのような対応関係であっても良い。予め指定された対応関係を有する運送対象関連情報及び運送手段関連情報とは、例えば、運送対象関連情報及び運送手段関連情報が一致することであってもよく、運送対象関連情報及び運送手段関連情報が包含関係にあることであってもよく、予め用意された運送対象関連情報と運送手段関連情報との対応付けを管理する管理表等により対応付けられた運送対象関連情報及び運送手段関連情報であってもよい。ここでの一致は、完全一致であってもよく、部分一致であっても良い。
このような構成において、例えば、撮影部101が1以上の運送対象物および運送手段を撮影し、撮影した画像から取得部102が取得した付加情報である運送対象関連情報および運送手段関連情報に応じた情報を、それぞれ、プロジェクタ106で上記実施の形態のように投影することで、ユーザは、投影された運送対象関連情報および運送手段関連情報に応じた情報が対応しているか否か(例えば、一致しているか否か等)を目視等で判断して、対応している場合に、運送対象物が適切な運送手段に積載されるか否か等を確認することができる。また、運送対象物が既に運送手段に積載されている場合は、運送対象物が適切な運送手段に積載されているか否か等を確認することができる。なお、以下においては、運送対象物が適切な運送手段に積載されるか否かの確認は、運送対象物が既に運送手段に積載されている場合には、運送対象物が適切な運送手段に積載されているか否かの確認と考えてもよい。
例えば、撮影部101が撮影する1以上の物体が、1以上の運送対象物および運送手段である場合であって、1以上の運送対象物に対応付けて配置されたコードの運送対象関連情報が、運送対象物を示す情報であり、運送手段に対応付けて配置されたコードの運送手段関連情報が、運送手段が運送する1または2以上の運送対象物を示す情報である場合において、プロジェクタ106で投影された運送対象関連情報および運送手段関連情報に応じた情報から、運送手段に積載する前や積載後の運送対象物である商品の種類と、運送手段が運送する予定の商品の種類とが一致するか否か等を判断したり、運送対象物を運送する業者名と、運送手段で運送を行なう業者名とが一致するか否か等を目視等で判断して、運送対象物が適切な運送手段に積載されるか否か等を確認することができる。
また、例えば、撮影部101が撮影する1以上の物体を、1以上の運送対象物および運送手段とする場合であって、1以上の運送対象物に対応付けて配置されたコードの運送対象関連情報が、運送対象物の積み込み先の運送手段を示す情報であり、運送手段に対応付けて配置されたコードの運送手段関連情報が、運送手段を示す情報である場合において、撮影部101が撮影した画像から取得部102が取得した付加情報である運送対象関連情報および運送手段関連情報に応じた情報を、それぞれ、プロジェクタ106で上記実施の形態のように投影することで、撮影部101が撮影した運送対象物の積み込み先となる運送手段と、撮影した運送手段を示す情報とを、プロジェクタ106により、上記実施の形態のように投影することができ、ユーザが、撮影された運送対象物の積み込み先である運送手段と、撮影された運送手段とが一致するか否かを目視等で確認して、正しい運送手段に運送対象物が積載されるか否か等を確認することができる。
また、例えば、撮影部101が撮影する1以上の物体を、1以上の運送対象物および運送手段とする場合であって、1以上の運送対象物に対応付けて配置されたコードの運送対象関連情報が、運送対象物の運送先を示す情報であり、運送手段に対応付けて配置されたコードの運送手段関連情報が、運送手段の運送先を示す情報である場合において、撮影部101が撮影した画像から取得部102が取得した付加情報である運送対象関連情報および運送手段関連情報に応じた情報を、それぞれ、プロジェクタ106で上記実施の形態のように投影することで、プロジェクタ106により、撮影した運送対象物の運送先と、運送手段の運送先とを示す情報を、上記実施の形態のように投影することができ、ユーザが、運送対象物の運送先と、運送手段の運送先とが一致するか否かを目視等で確認して、正しい運送手段に運送対象物が積載されるか否か、あるいは積載されているか否か等を確認することができる。
なお、ここでの運送対象関連情報および運送手段関連情報に応じた情報は、運送対象関連情報および運送手段関連情報であってもよく、運送対象関連情報および運送手段関連情報に応じてそれぞれ取得した情報(例えば、運送対象関連情報および運送手段関連情報のそれぞれに対して予め決められた変換を行なって得られた情報や、運送対象関連情報および運送手段関連情報にそれぞれ対応付けられた情報等)であっても良い。かかることは以下においても同様である。
なお、プロジェクタ106は、運送対象関連情報に応じた情報を、この運送対象関連情報が付加情報として対応付けられたコードの近傍に投影することが好ましい。また、運送手段関連情報に応じた情報を、この運送手段関連情報が付加情報として対応付けられたコードの近傍に投影することが好ましい。このようにすることで、どのコードが配置された運送対象物を運送手段に積み込むか否かや、どの運送対象物の積み込みが間違っているか等を、目視により確認したり特定することが可能となる。
以下、本変形例1の主要な動作を具体的な例を挙げて説明する。
図13は、格納部103に格納されている積載管理表の一例を示す図である。積載管理表は、「コードID」と、「運送手段ID」という属性を有する。「コードID」は、コード識別子である。なお、「P」から始まるコードは、運送対象物に添付されるコードから読み取られる「コードID」、「Q」から始まるコードは、運送手段に対応付けられた「コードID」であるとする。「運送手段ID」は運送手段の識別子である。ここでは、運送手段の便名を示している。ここでの「運送手段ID」は、運送対象関連情報および運送手段関連情報に相当するものであり、運送対象物に添付されるコードから読み取られる「コードID」に対応付けられた「運送手段ID」は、運送対象物の積み込み先となる運送手段を示す運送対象関連情報であり、運送手段に添付されるコードから読み取られる「コードID」に対応付けられた「運送手段ID」は、コードが対応付けて配置された運送手段を示す運送手段関連情報である。
なお、コード識別子と、「運送手段ID」とを対応付けた情報の代わりに、コード識別子と運送対象物の積み込み先の運送手段を示す運送対象関連情報とを対応付けた情報、および、コード識別子と運送手段を示す運送手段関連情報とを対応付けた情報とを対応付けた情報を、格納部103に蓄積して、これらを上記の積載管理表の代わりに用いても良い。
撮影部101が、例えば、運送対象物6である2つのコンテナと、運送手段7であるトラックとを撮影して、図14に示すような画像を取得したとする。運送対象物6には、それぞれコード60が添付され、運送手段7には、コード70が添付されていたとする。なお、図14においては、2つの運送対象物6を区別して、運送対象物6a、6bとして表しており、2つの運送対象物6a、6bにそれぞれ添付されたコード60を区別して、それぞれをコード60a、60bとして表している。なお、ここでは、撮影した画像は、一枚の画像である例を示すが、ここで撮影する画像は、連続して撮影した2以上の画像であっても良い。コード60とコード70とは、ここでは、同じ種類のコード、例えばカラーコード等、であるとする。なお、ここでは、運送対象物6が2つである場合について説明するが、運送対象物6の数は問わない。
取得部102は、撮影部101が撮影した画像から、上記実施の形態と同様に、コード50と、コード60とを検出し、各コードに対応する付加情報として、「運送手段ID」を取得する。取得部102は、まず、コード60に対応する「コードID」を取得する。例えば、運送対象物6aに添付されたコード60aから「コードID」として「P101」、運送対象物6bに添付されたコード60bから「コードID」として「P102」をそれぞれ取得したとする。また、運送手段7に添付されたコード70から「コードID」として「Q101」を取得したとする。
次に、取得部102は、取得した「コードID」に対応する「運送手段ID」を、図13に示した積載管理表から取得する。例えば、上記で取得した「P101」については、対応する運送対象関連情報である「ABCD運輸午前便」を取得し、「P102」については、対応する運送対象関連情報である「ABCD運輸午後便」を取得する。また、上記で取得した「Q101」については、対応する運送手段関連情報である「ABCD運輸午前便」を取得する。
そして、プロジェクタ106は、撮影部101が撮影した領域内の、コード60およびコード70が配置されている領域の近傍に、これらのコード60およびコード70について取得した運送対象関連情報に対応する情報と、運送手段関連情報が示す運送先に対応する情報とを投影する。なお、撮影したコード60およびコード70の近傍に、コードについて取得した付加情報を投影する処理については、上記実施の形態と同様であるため、ここでは説明は省略する。
図15は、プロジェクタ106による投影例を示す図である。
このようにして、運送対象物の積み込み先である運送手段を示す運送対象関連情報を運送対象物に投影し、運送手段を示す運送手段関連情報を運送手段に投影することで、ユーザは目視等により、運送対象物に投影された運送手段を示す情報と、運送手段に投影された運送手段を示す情報が一致するか否か(あるいは、予め決められた対応関係にあるか否か)を判断することによって、撮影した運送対象物の積み込む先が、撮影した運送手段であるか否かを確認することが可能となる。これにより、例えば、運送対象物を間違った運送手段に積み込んで、運送対象物を間違った場所に運送すること等を減らすことができる。
なお、ここでは、説明を省略しているが、判断部105が、上記実施の形態と同様の判断を行ない、この判断結果等に応じた情報等を、プロジェクタ106が更に投影するようにしても良いことはいうまでもない。
(変形例2)
なお、上記の変形例において、取得部102が取得した付加情報である運送対象関連情報と運送手段関連情報とを用いて、判断部105が、この取得部102が取得した付加情報である1以上の運送対象関連情報と運送手段関連情報とが予め決められた対応関係にあるものであるか否かを判断するようにし、この判断結果に応じた情報を、プロジェクタ106が、上述した取得部102が取得した付加情報である運送対象関連情報と運送手段関連情報とに対応した情報として投影するようにしても良い。例えば、プロジェクタ106は、運送対象物に対応付けて配置されたコードの近傍、および運送手段に対応付けて配置されたコードの近傍の少なくとも一方に、判断部105の判断結果に応じた情報を投影するようにしてもよい。
ここでの判断部105の判断は、例えば、取得部102が取得した付加情報である運送対象関連情報と運送手段関連情報とが、予め決められた対応関係にある付加情報である、即ち特定の付加情報であるという判断と考えてもよい。ここでの運送対象関連情報と運送手段関連情報とが予め決められた対応関係にあるということは、例えば、運送対象関連情報と運送手段関連情報とが一致することである。例えば、判断部105は、取得部102が取得した運送対象関連情報と運送手段関連情報とが一致するか否かを判断する。ここでの一致とは、完全一致でなくても良く、部分一致であっても良い。例えば、運送対象関連情報と運送手段関連情報とが、住所等のように階層構造を有する情報である場合、ここでの運送先の一致とは、特定の階層までの情報が一致(例えば、都道府県から市町村までが一致)することであっても良い。また、運送対象関連情報と、運送手段関連情報とが、異なる形態の情報である場合(例えば、一方が住所で、他方が座標である場合等)においては、両方が比較可能な情報となるよう、少なくとも一方の情報の形態を変換してもよい。このように変換した場合の一致も、ここでは、運送対象関連情報と運送手段関連情報との一致と考えるようにしてもよい。
また、運送対象関連情報と運送手段関連情報とが予め決められた対応関係にあるということは、例えば、運送対象関連情報と運送手段関連情報とが、予め図示しない格納部等に格納された運送対象関連情報と運送手段関連情報との対応付けを管理する管理表等で対応付けられていることであっても良い。例えば、判断部105は、取得部102が取得した運送対象関連情報と運送手段関連情報とが、予め図示しない格納部等に格納された対応する運送対象関連情報と運送手段関連情報とを同じレコードの情報として有する管理表等の、同じレコードの情報であるか否かを判断し、同じレコードの情報であれば、これらが予め決められた対応関係にあると判断し、同じレコードの情報出なければ、これらが予め決められた対応関係にないと判断する。なお、上記の予め決められ対応関係をどのような対応関係とするかは問わない。また、取得部102がどのように予め決められた対応関係にあるか否かを判断するかは問わない。
なお、判断部105は、取得部102が取得した付加情報である運送対象関連情報が示す情報と運送手段関連情報が示す情報とが、予め決められた対応関係にあるか否かを判断してもよく、このような判断も、運送対象関連情報と運送手段関連情報とが、予め決められた対応関係にあるか否かの判断の一態様と考えてもよい。例えば、判断部105は、運送対象関連情報が示す運送対象物の積み込み先となる運送手段と、運送手段関連情報が示す運送手段とが、一致するか否かを判断し、一致する場合、運送対象関連情報と運送手段関連情報とが、予め決められた対応関係にあると判断してもよい。例えば、運送対象関連情報である運送対象物の積み込み先となる運送手段を示す情報と、運送手段関連情報である運送手段を示す情報とが、異なる情報であっても、これらがいずれも、共通の一の運送手段に対応付けられている場合、や、これらを、予め指定されたルール等に応じて変換した情報が一致する場合等においては、この運送対象関連情報と運送手段関連情報とが、予め決められた対応関係にあると判断してもよい。かかることは、運送対象関連情報が示す運送対象物の運送先と、運送手段関連情報が示す運送手段の運送先とが一致する場合についても同様である。
プロジェクタ106が投影する判断結果に応じた情報は、例えば、判断部105による判断結果を示す情報である。判断結果を示す情報は、例えば、判断部105により予め決められた対応関係にあると判断されたか否かを示す情報である。また、ここで投影する判断結果に応じた情報は、例えば、判断部105の判断結果を、予め決められた情報に置き換えた情報であっても良い。
例えば、運送対象関連情報が、運送対象物の積み込み先の運送手段を示す情報であり、運送手段関連情報が運送手段を示す情報である場合において、判断部105がこれらが対応関係にあるか否か(例えば、一致するか否か)を判断した場合に、プロジェクタ106が投影する判断結果に応じた情報は、積み込み先が正しいか否かを示す情報である。また、例えば、運送対象関連情報が、運送対象物の運送先を示す情報であり、運送手段関連情報が運送手段の運送先示す情報である場合において、判断部105がこれらが対応関係にあるか否か(例えば、一致するか否か)を判断した場合に、プロジェクタ106が投影する判断結果に応じた情報は、運送先が同じか否かを示す情報や、積み込み先が正しいか否かを示す情報である。
また、例えば、運送対象関連情報が、運送対象物を示す情報であり、運送手段関連情報が運送手段が運送する運送対象物を示す情報である場合において、判断部105がこれらが対応関係にあるか否か(例えば、一致するか否か)を判断した場合に、プロジェクタ106が投影する判断結果に応じた情報は、積み込み先が正しいか否かを示す情報である。
また、プロジェクタ106が投影する判断結果に応じた情報は、積み込み先や運送先が異なる運送対象物の数を示す情報であってもよい。また、この情報と上記の情報との2以上の組み合わせ等であっても良い。なお、プロジェクタ106が投影する上記のような判断結果に応じた情報は、判断部105の判断結果を、予め決められた記号や文字列、図形等に置き換えた情報等であってもよい。例えば、プロジェクタ106が投影する判断結果を示す情報は、積み込み先が正しいか否かの記号(例えば、丸やバツ等)やマーク等であっても良く、積み込み先や運送先が異なるものがある場合に投影される上述したようなエラーを示す情報であっても良い。また、積み込み先や運送先が異なるものがあるか否かを示す情報は、積み込み先や運送先を確認するメッセージ等の投影であっても良い。
プロジェクタ106は、例えば、判断部105が、一の運送対象物に対応付けて配置されたコードから取得された運送対象関連情報と、この運送対象物とともに撮影された運送手段に対応付けて配置されたコードから取得された運送手段関連情報とが予め決められた対応関係にないと判断した場合に、この一の運送対象物に対応付けて配置されたコードの近傍に、この判断部105により予め決められた対応関係にないと判断されたものであることを示す情報(例えば、予め決められたマークや文字列や色等)を投影してもよい。例えば、撮影された画像内の一の運送対象物に対応付けられたコードが示す運送対象関連情報が示す積み込み先を示す運送手段を示す情報と、同じ画像内の運送手段に対応付けられたコードが示す運送手段を示す情報とが、予め決められた対応関係にないと判断された場合に、プロジェクタ106は、この一の運送対象物に対応付けて配置されたコードの近傍に、この判断結果を示す情報(例えば、「積み込み先が違います」等の警告のメッセージ等)を投影する。なお、この場合のプロジェクタ106が出力する情報も、取得部102が取得した付加情報に応じた情報と考えてもよい。
なお、プロジェクター106は、上述したような付加情報自身(例えば、コードについて取得した運送対象関連情報および運送対象関連情報)の投影も同時に行なうようにしても良く、付加情報自身の投影は行なわないようにしてもよい。
以下、本変形例2の主要な動作を具体的な例を挙げて説明する。
なお、格納部103に格納されている「運送手段ID」積載管理表は、図13と同様のものであるとする。
例えば、撮影部101が、上記の変形例1の具体例と同様に、運送対象物6である2つのコンテナと、運送手段7であるトラックとを撮影して、図14に示すような画像を取得し、取得部102は、撮影部101が撮影した画像から、上記の変形例1の具体例と同様に、コード60と、コード70とを検出し、図13に示すような積載管理表を用いて、これらにそれぞれ対応する「運送手段ID」を取得したとする。
判断部105は、運送手段に対応付けられて配置されたコード70から取得したコード識別子「Q101」に対応する「運送手段ID」(運送手段関連情報)である「ABCD運輸午前便」と、運送対象物に対応付けられて配置された各コード60から取得したコード識別子に対応する「運送手段ID」(運送対象関連情報)とを比較して、コード60について取得した各「運送手段ID」(運送対象関連情報)の中から、コード70から取得した「運送手段ID」(運送手段関連情報)と一致しないものを検出する。なお、コード70から取得したコード識別子は、例えば、取得部102が取得したコード識別子のうちの、先頭の文字が「Q」であるコード識別子(あるいは、「P」でないコード識別子)を検索することで検出可能である。
ここでは、判断部105により、例えば、コード60bから取得した「運送手段ID」(運送対象関連情報)である「ABCD運輸午後便」が、コード70から取得した「運送手段ID」(運送手段関連情報)である「ABCD運輸午前便」と異なると判断されたとする。
プロジェクター106は、判断部105が運送対象物6bに貼付された配置されたコード60bから取得された運送対象関連情報が示す運送手段を示す情報が、この運送対象物6bとともに撮影された運送手段7に貼付されたコードから取得された運送手段関連情報が示す運送手段を示す情報と異なると判断したため、このコード60bの近傍に、取得した運送対象物の積み込み先が異なる旨の予め決められた文字列「積み込み先が違います!!」と、運送手段関連情報が示す運送手段を示す情報とを投影する。この文字列は、例えば、運送対象物の積み込み先が正しいか否かを示す情報と考えてもよい。
図16は、プロジェクター106による投影例を示す図である。なお、ここでは、運送対象物6の近傍を拡大した図を示している。
このようにして、撮影された画像内の一の運送対象物を運送する運送手段を示す情報運送先が、同じ画像内の運送手段を示す情報と異なる場合に、運送対象物の積み込み先が異なることを示す情報等を一の運送対象物等に投影して、ユーザに認識しやすく警告したり、注意を促したりすることができる。これにより、例えば、運送対象物を間違った運送手段に積み込んで、間違った場所に運送すること等を減らすことができる。
なお、この具体例においては、撮影部101が撮影する1以上の物体が、1以上の運送対象物および運送手段であり、1以上の運送対象物に対応付けて配置されたコードに対応付けられた付加情報である運送対象関連情報が、運送対象物の積み込み先となる運送手段を示す情報であり、運送手段に対応付けて配置されたコードに対応付けられた付加情報である運送手段関連情報が、この運送手段を示す情報であり、取得部102が、撮影部102が撮影した画像からコードを検出し、検出したコードに対応する付加情報である運送対象関連情報と運送手段関連情報とを取得し、判断部105が、取得部102が取得した付加情報である運送対象関連情報が示す運送手段と運送手段関連情報が示す運送手段とが一致するか否かを判断し、プロジェクタ106が、判断部105の判断結果に応じて、運送対象物の積み込み先が正しいか否か等を示す情報を投影する例を示したが、本発明においては、例えば、撮影部101が撮影する1以上の物体が、1以上の運送対象物および運送手段であり、1以上の運送対象物に対応付けて配置されたコードに対応付けられた付加情報である運送対象関連情報が、運送対象物の運送先を示す情報であり、運送手段に対応付けて配置されたコードに対応付けられた付加情報である運送手段関連情報が、この運送手段の運送先を示す情報であり、取得部102が、撮影部102が撮影した画像からコードを検出し、検出したコードに対応する付加情報である運送対象関連情報と運送手段関連情報とを取得し、判断部105が、取得部102が取得した付加情報である運送対象関連情報が示す運送先と運送手段関連情報が示す運送先とが一致するか否かを判断し、プロジェクタ106が、判断部105の判断結果に応じて運送対象物の運送先が正しいか否か等を示す情報、あるいは、運送対象物の積み込み先が正しいか否か等を示す情報を投影するようにしてもよい。
また、上記変形例2おいては、撮影部101が撮影する1以上の物体が、異なる2以上の物体である運送手段および運送対象物であり、判断部105が、運送対象物に対応付けられたコードに対応する付加情報である運送対象関連情報と、運送手段に対応付けられて配置されたコードに対応する付加情報である運送手段関連情報とが、予め決められた対応関係にあるか否かを判断、プロジェクタ106が判断結果に応じた情報を投影する場合について説明したが、本発明においては、撮影部101が撮影する物体が、異なる2以上の物体を含み、判断部105は、取得部102が上記の異なる2以上の物体に対応付けて配置されたコードから取得した付加情報が、予め指定された対応関係にある付加情報であるか否かを判断し、プロジェクタ106が、この判断結果に応じた情報(例えば、予め指定された対応関係にあるか否かを示す情報等)を、例えば、取得部102が取得した付加情報に応じた情報として投影するものであればよい。これにより、撮影した異なる2以上の物体が、予め指定された対応関係にあるか否かを出力することができる。
ここでの予め指定された対応関係とは、上述したような対応関係の他には、例えば、移動先が同じ場合や、用途が同じ場合や、利用者が同じ場合等が挙げられる。予め指定された対応関係であるか否かは、例えば、それぞれの物体から取得されたコードから取得した付加情報が、一致するか否かや、付加情報が予め用意された対応表等により対応付けられているか否かにより判断可能である。
また、ここでの異なる2以上の物体は、例えば、上述した運送手段と、この運送手段の運送先に運ばれる運送対象物との組のように、予め決められた対応関係にある物体であることが好ましい。また、予め決められた対応関係にある異なる2以上の物体にそれぞれ対応付けて配置されたコードに対応する付加情報は、上述したような予め決められた対応関係を有する付加情報とすることが好ましい。判断部105は、例えば、コードから取得した付加情報が一致するか否かを判断して、コードから取得した付加情報が、予め指定された対応関係にある付加情報であるか否かを判断するようにしてもよい。そして、判断部105は、例えば、付加情報が一致する場合、予め指定された対応関係にあると判断してもよい。また、ここでのプロジェクタ106が投影する判断部105の判断結果に応じた情報は、例えば、判断部105の判断結果を示す情報であっても良く、予め指定された対応関係にあるか否かを示す情報であっても良い。
なお、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部(例えば、ハードディスクやメモリ等の記録媒体)にアクセスしながらプログラムを実行してもよい。
なお、上記各実施の形態におけるコード読取装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、1以上の物体と、物体に対応付けて配置されたコードと、が配置された領域を撮影する撮影ステップと、撮影部が撮影した画像からコードを検出し、検出したコードに対応する付加情報を取得する取得ステップと、取得部が取得した付加情報に応じた情報を投影するステップとを実行させるプログラムである。
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図11は、上記プログラムを実行して、上記実施の形態によるコード読取装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図11において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図12は、コンピュータシステム900の内部構成を示す図である。図12において、コンピュータ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がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。