(本開示の一形態を得るに至った経緯)
近年、オンラインショッピング等の普及に伴って宅配サービスにおける宅配量が増加しているが、宅配量がいくら多くても、荷物は、決められた時間までに配送しなければならないという決まりがある。このため、配送時間および宅配量に見合った配送車両(例えば、配送用の小型のトラック)の台数およびドライバーの人数を確保する必要がある。
しかし、多くの営業所では、トラックの台数およびドライバーの人数は、現状において豊富でなく、事前に確保しておく必要がある場合も多い。仮に、確実に荷物を配送できるように、多めにトラックの台数を用意すると、コストが増える。一方、コストを抑えるために少なめにトラックの台数を用意すると、トラックの台数が足りなくなり、配送が間に合わなくなる可能性がある。
上述した特許文献1では、車両が燃料を配送する配送先は予め決められた個々の需要設備であり、個々の需要設備ごとの燃料の消費量から燃料の需要予測が可能となる。つまり、燃料の需要予測値を燃料の配送量とみなせる。この特許文献1の構成を、例えば宅配のように配送先が都度異なる個々の個宅であるユースケースに適用しようとすると、次の課題が生じる。具体的には、宅配のように個別の配送先(つまり、個宅)ごとの注文回数が少なく、個々の配送先における注文の需要を予測するための十分な学習用のデータ(言い換えると、配送実績)が収集できないので、個々の配送先における注文の需要予測が困難になる。従って、特許文献1の構成を用いても、複数ある配送先に荷物等を配送する配送車両の台数を予測する(言い換えると、配送車両の台数の最適解を解く)ことは困難であるという課題があった。
そこで、以下の実施の形態では、配送先の多寡および荷物量によることなく、荷物を配送する配送車両の台数を予測し、効率的な配送計画の実現を支援する需要予測装置の例を説明する。
(実施の形態1)
以下、適宜図面を参照しながら、本開示に係る需要予測装置および需要予測方法を具体的に開示した実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
図1は、実施の形態1に係る需要予測装置5の内部構成の一例を詳細に示すブロック図である。需要予測装置5は、プロセッサ10と、メモリ(図示略)と、ストレージ30と、入力部50と、出力部60と、通信部70とを含む構成である。
プロセッサ10は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)またはFPGA(Field-Programmable Gate Array)を用いて構成される。
プロセッサ10は、情報取得部11、荷物量学習部12、荷物量予測部13および第1台数予測部14を含む機能的構成を有する。また、プロセッサ10は、ヒートマップ作成部15、ヒートマップ学習部16およびヒートマップ予測部17を含む機能的構成を有する。また、プロセッサ10は、最少台数決定部18、最少台数学習部19、第2台数予測部20および台数決定部21を含む機能的構成を有する。これらの機能的構成の各部は、プロセッサ10がそれぞれの各部に対応するプログラムおよびデータをメモリ(図示略)から読み込んで実行することで実現される。これらの機能的構成の各部の詳細については後述する。
メモリ(図示略)は、例えばRAM(Random Access Memory)とROM(Read Only Memory)を用いて構成され、需要予測装置5の動作の実行に必要なプログラムおよびデータ、更には、動作中に生成されたデータもしくは情報等を一時的に保存する。RAMは、例えばプロセッサ10の動作時に使用されるワークメモリである。ROMは、例えばプロセッサ10を制御するためのプログラムおよびデータを予め記憶する。
ストレージ30は、例えばフラッシュメモリ、HDD(Hard Disk Drive)またはSSD(Solid State Drive)を用いて構成される。ストレージ30は、外部情報保存部31、配送実績保存部32、荷物量学習モデル保存部33、ヒートマップ学習モデル保存部34および最少台数学習モデル保存部35を有する。
外部情報保存部31は、過去に配送対象エリア内で配送が行われた時の天候、年月日時、曜日、イベント等の過去の外部情報を関連付けて保存する。イベント情報は、イベント日時、内容等を含む。イベント情報は、例えば、商品のキャンペーン、配送先付近で行われる運動会もしくはコンサート、道路工事等の情報が挙げられる。これらのイベント有無は、荷物量の増加や配送ルートの変更等に影響を及ぼす。なお、商品のキャンペーンの情報は、商品の価格の情報であってもよい。例えば、キャンペーン期間中、商品は安価になるため、荷物量の増減に影響を及ぼす。例えば、キャンペーン期間直前は、荷物量が通常より減少し、キャンペーン期間中は荷物量が通常より増加し、キャンペーン期間直後は荷物量が減少する等が考えられる。また、価格が通常の半額かあるいは通常の30%OFFか等でも荷物量が変化する。
配送実績保存部32は、過去の配送対象エリア内での配送実績の情報を保存する。過去の配送実績の情報は、過去に荷物が配送された個々の配送先の住所、荷物量、配送ルート等の情報を含む。外部情報保存部31に保存される過去の外部情報と配送実績保存部32に保存される過去の配送実績とは同一の配送に関連する外部情報と配送実績とが切り分けられて保存されている。なお、外部情報保存部31に保存される過去の外部情報と配送実績保存部32に保存される過去の配送実績とは、同一の配送ではなく、それぞれ異なる過去の配送に関連する外部情報、配送実績であってもよい。
なお、外部情報保存部31および配送実績保存部32は、配送実績保存部32として一体的に構成されてもよい。この場合、配送実績保存部32は、過去に配送が行われた時の外部情報(例えば、天候、年月日時、曜日、イベント等)と、過去に配送が行われた配送実績の情報(例えば、個々の配送先の住所、荷物量、配送ルート等)とを関連付けて記憶していればよい。
荷物量学習モデル保存部33は、荷物量学習部12の学習処理(例えば機械学習処理)によって生成された荷物量学習モデルmd1を保存する。
ヒートマップ学習モデル保存部34は、ヒートマップ学習部16の学習処理(例えば機械学習処理)によって生成されたヒートマップ学習モデルmd2を保存する。
最少台数学習モデル保存部35は、最少台数学習部19の学習処理(例えば機械学習処理)によって生成された最少台数学習モデルmd3を保存する。
入力部50は、需要予測装置5の利用者(ユーザ)の入力操作を受け付ける、キーボード、マウス等の入力デバイスを用いて構成され、入力デバイスを介して、利用者により設定された将来(言い換えると、予測対象となる今後または未来)の入力変数を入力する。将来の入力変数は、年月日時、曜日、天気予報、イベント等の情報である。
出力部60は、液晶表示装置(LCD:Liquid Crystal Display)もしくは有機EL(Electroluminescence)等の表示デバイスを有し、予測されたトラック(配送車両の一例)の台数、および複数のトラックを用いた配送計画を出力する。
通信部70は、ネットワークNWを介してサーバ80と通信可能に接続される。
サーバ80は、需要予測装置5の要求に従って、例えば天候情報およびイベント情報等の各種情報のうち少なくとも1つを提供する。
情報取得部11は、外部情報保存部31に保存されている過去の外部情報を取得する。外部情報は、過去に配送が行われた時の天候、年月日時、曜日、イベント等の情報を含む。情報取得部11は、配送実績保存部32に保存されている過去の配送実績の情報に含まれる荷物量を取得する。情報取得部11は、配送実績保存部32に保存されている過去の配送実績の情報に含まれる配送先の住所および配送ルートを取得する。
また、情報取得部11は、利用者の入力部50を用いた操作によって入力された、将来の入力変数(例えば、年月日時、曜日、天候、イベントの名称)を取得する。なお、情報取得部11は、入力部50の情報に基づいて、天候等の将来の入力変数をサーバから取得してもよい。
荷物量学習部12は、例えばAI(Artificial Intelligent)を用いたプログラムにより構成され、情報取得部11により取得された過去の配送実績の荷物量とその配送当時の外部情報との組を複数用いた荷物量予測エンジンの学習処理(例えば、機械学習処理)により、荷物量学習モデルmd1を生成する。荷物量学習モデルmd1は、入力された外部情報を条件として、その条件の下で予測される荷物量を演算して出力するためのプログラムの一例である。
荷物量予測部13は、情報取得部11により取得された将来の入力変数と、荷物量学習モデル保存部33に保存されている荷物量学習モデルmd1とを用いて、将来の入力変数に対応する(つまり、将来の入力変数の条件下で)、配送対象エリア内での配送される荷物量を予測する。
第1台数予測部14は、荷物量予測部13によって予測された荷物量をトラック1台の積載量(言い換えると、積載可能量)で除算することで、荷物量予測部13によって予測された荷物量の荷物を配送するために必要なトラック台数を演算(予測)する。なお、実施の形態1において、それぞれの荷物の配送に用いられる1台以上のトラックの積載量はいずれも同じであると想定する。実際、多くの配送営業所(つまり、荷物を配送する拠点となる営業所のことで、以下では「営業所」と略記する)では、荷物の配送において、同一の車種の車両を利用していることが多い。なお、複数のトラックの積載量は必ずしも同一でなく、多少異なってもよい。その場合、予測された荷物量を除算する際、分母として、複数のトラックの積載量の平均値を用いてよい。
ヒートマップ作成部15は、配送実績保存部32に保存されている過去の配送実績ごとに、情報取得部11により取得された複数の配送先の住所と営業所の住所とを基に、過去の配送実績に対応するヒートマップhpを作成する。なお、営業所の住所は、過去の配送実績に含まれてもよいし、メモリ(図示略)に予め登録されてもよい。実施の形態1において、ヒートマップとは、例えば営業所が管轄する配送対象エリアをm*n(m,n:1以上の整数だが、(m,n)=(1,1)とはならない)個のセグメントに区画し、セグメントごとに分布する配送先の軒数、あるいは軒数および荷物量を示す定量的マップとして表したものである。ヒートマップの具体例の詳細については、後述する。
ヒートマップ学習部16は、例えばAIを用いたプログラムにより構成され、過去の外部情報に対応する配送実績に基づいてヒートマップ作成部15により作成されたヒートマップhpを複数用いて、ヒートマップhpと外部情報との関連性を規定するヒートマップ予測エンジンの学習処理(例えば、機械学習処理)を行い、ヒートマップ学習モデルmd2を生成する。ヒートマップ学習モデルmd2は、入力された外部情報を条件として、その条件の下で予測されるヒートマップhpを演算して出力するためのプログラムの一例である。
ヒートマップ予測部17は、情報取得部11により取得された将来の入力変数と、ヒートマップ学習モデル保存部34に保存されているヒートマップ学習モデルmd2とを用いて、将来の入力変数に対応する(つまり、将来の入力変数の条件下で)、配送対象エリア内を構成するセグメントごとに配送される荷物量の分布数を示すヒートマップを予測する。ここで、ヒートマップ予測部17により予測されたヒートマップを便宜的に「予測ヒートマップphp」と称し、ヒートマップ学習部16により学習時に過去の実績に基づいて作成される「ヒートマップhp」と区別する。
最少台数決定部18は、配送実績保存部32に保存されている過去の配送実績を基に、その配送実績に含まれる荷物量の配送に必要なトラックの理論的な最少台数を決定する。なお、最少台数の決定は、既存の公知技術であり、詳細な説明は省略する。例えば、最少台数は、配送コストが最も下がるように決定されてよい。配送コストは、例えば複数のトラックで配送する場合、配送ルートの状況に応じて、配送先の荷物を置換したり、交換したり、あるいは移管することによって下げることができるパラメータである。ここで、置換は、配送先の順序を入れ替えることを表す。交換は、複数の配送ルートの間で配送先を入れ替えることを表す。移管は、別の配送ルートに配送先を移すことを表す。
また、最少台数は、配送条件(例えば、顧客により予め指定された配送枠(午前中等)に届ける等)を満たすように決定されてよい。また、最少台数は、営業所の規則等によっても決定されてもよい。例えば、配送予定の総荷物量に対し、トラックの移動距離、配送先の軒数、トラックの積載量等を目安に、営業所ごとに決定されてもよい。
最少台数学習部19は、例えばAIを用いたプログラムにより構成され、最少台数決定部18により決定された過去の配送実績に基づく最少台数と、ヒートマップ作成部15により作成された過去の配送実績に基づくヒートマップhpとの組を複数用いて、最少台数とヒートマップhpとの関連性を規定する最少台数予測エンジンの学習処理(例えば、機械学習処理)を行い、最少台数学習モデルmd3を生成する。最少台数学習モデルmd3は、入力された予測ヒートマップphpを条件として、その条件の下で使用されるトラックの最少台数を演算して出力するためのプログラムの一例である。
第2台数予測部20は、最少台数学習モデル保存部35に保存されている最少台数学習モデルmd3と、ヒートマップ予測部17で予測された予測ヒートマップphpとを用いて、予測ヒートマップphpのセグメントに分布している1つ以上の配送先に荷物を配送するために必要なトラックの最少台数を予測する。
台数決定部21は、第1台数予測部14によって予測されたトラックの最少台数の予測値と、第2台数予測部20によって予測されたトラックの最少台数の予測値とを比較する。台数決定部21は、この比較により、入力部50から入力された将来の入力変数に対応するトラックの使用台数として、予測値の数が大きい(つまり、配送台数が多い)方をトラックの台数の予測値に決定する。これは、将来の入力変数に対応する使用台数として、予測値の数が小さい(つまり、配送台数が少ない)方の予測値を用いると、配送要件(時間内に全ての配送を終える)を満たさなくなる可能性が高くなるためである。
なお、上記の配送要件を満たさないリスクを負ってもよく、最少のトラック台数で配送することが営業所の方針等である場合、将来の入力変数に対応する使用台数として、少ない方の最少台数の予測値を決定してもよい。
次に、上述した実施の形態1に係る需要予測装置5の動作概要の一例について、図2を参照して説明する。
図2を参照して、営業所からトラックで荷物を配送する場合の需要予測の動作概要の一例を示す。図2は、需要予測装置5の動作概要例を説明する図である。
図2において、マップmp1は、営業所が管轄する配送対象エリアを示し、例えば4行*7列(上述した、m=4、n=7の例に対応)で表される複数のセグメントに区画される。*(アスタリスク)は乗算の演算子を示し、以下同様である。
ヒートマップ作成部15は、例えば過去の配送実績の一つを配送実績保存部32から読み出し、その配送実績の情報に含まれる営業所oおよび配送先p1,p2,p3,p4,p5,p6,p7,p8,p9のそれぞれの住所の情報を、マップmp1の対応するセグメント内に分布するように割り当てる。各セグメントは、例えば数学的には、行列の要素で表すことが可能である。また、マップmp1には、過去の配送実績に基づき、1台のトラックで配送された配送先が丸い枠w1,w2,w3でそれぞれ囲まれている。枠w1は、A行2列のセグメント内に分布(位置)する2軒の配送先p1,p2と、B行2列のセグメント内に分布(位置)する1軒の配送先p3を囲む。同様に、枠w2は、D行3列のセグメント内に分布(位置)する3軒の配送先p4,p5,p6を囲む。枠w3は、B行4列のセグメント内に分布(位置)する1軒の配送先p7と、B行6列のセグメント内に分布(位置)する1軒の配送先p8と、D行6列のセグメント内に分布(位置)する1軒の配送先p9を囲む。
ヒートマップ作成部15は、過去の配送実績に基づいて、マップmp1のようにそれぞれのセグメントに配送先をプロット(割り当て)した上で、紙面中央のヒートマップhpを作成する。ヒートマップhpは、セグメントごとに、セグメント内に分布する配送先(軒)の分布数を定量的に示す。図2では、一例として、軒数が1軒分布しているB行2列,B行4列,B行6列,D行6列の各セグメントは、黄色(図中、粗いハッチ)で描画される。軒数が2軒分布しているA行2列のセグメントは、オレンジ色(図中、黄色を示す粗いハッチより細かいハッチ)で描画される。軒数が3軒分布しているD行3列のセグメントは、濃い赤色(図中、オレンジ色を示すハッチよりさらに細かいハッチ)で描画される。
マップmp3は、最少台数決定部18が最少台数を決定する際に生成され、マップmp1と同様の配送対象エリアを示す。なお、マップmp3では、説明を簡単にするために、マップmp1のセグメント内に分布(位置)する配送先p1~p9と同じ配送先p1~p9が同じセグメント内に分布(位置)するようにしている。マップmp3には、マップmp1のセグメント内に分布(位置)する配送先p1~p9に対し、最少台数決定部18を用いて決定されたトラックの台数に基づき、各トラックが配送する配送先を囲む枠w4,w5が示される。枠w4は、配送先p1~p3,p7,p8を囲む。枠w5は、配送先p4~p6,p9を囲む。
次に、実施の形態1に係る需要予測装置5の行うそれぞれの動作手順について、図3~図8を参照して説明する。図3~図8のそれぞれのフローチャートにおいて、各処理は、需要予測装置5のプロセッサPRC1(図1参照)により実行される。
図3は、過去の外部情報および配送実績に基づいて荷物量を学習する動作手順の一例を示すフローチャートである。図3において、情報取得部11は、外部情報保存部31に保存されている過去の外部情報を取得する(S1)。また、情報取得部11は、配送実績保存部32に保存されている過去の配送実績を取得する(S2)。
荷物量学習部12は、ステップS1において取得された過去の外部情報と、その外部情報に対応した、ステップS2において取得された配送実績(例えば、配送された荷物量)との関連性に基づき、入力変数(例えば、年月日時、曜日、天気予報、イベントの名称等)に対する荷物量を予測するための荷物量予測エンジンを学習する(S3)。上述したように、このステップS3の学習には、荷物量学習部12による機械学習処理が実行される。荷物量学習部12は、ステップS3による学習処理の結果として荷物量学習モデルmd1を生成し、その荷物量学習モデルmd1を荷物量学習モデル保存部33に保存する(S4)。この後、プロセッサ10による図3の動作手順で規定される一連の処理が終了する。
図4は、将来の入力変数と荷物量学習モデルとに基づいて予測された荷物量の配送に用いる配送車両の台数を予測する動作手順の一例を示すフローチャートである。図4において、入力部50は、利用者の操作によって入力された将来の入力変数を受け付けて取得する(S11)。将来の入力変数は、トラックによる荷物の配送に影響があると考えられる年月日時、曜日、天気予報、イベントの名称等を含む。荷物量予測部13は、荷物量学習モデル保存部33に保存されている荷物量学習モデルmd1を読み込む(S12)。
荷物量予測部13は、ステップS12において読み出された荷物量学習モデルmd1とステップS11において入力された将来の入力変数とを用いて、入力された入力変数を満たす(つまり、将来の入力変数の条件下で)配送される荷物量を予測する(S13)。
第1台数予測部14は、ステップS13において予測された荷物量を、トラック1台の積載量(言い換えると、積載可能量)で除算する(S14)。第1台数予測部14は、この除算の結果、トラック台数の予測値として、除算結果に相当する第1予測台数値をプロセッサ10内のメモリ(図示略)に一時記憶する(S15)。この後、プロセッサ10による図4の動作手順で規定される一連の処理が終了する。
図5は、ヒートマップhpを予測するためのヒートマップ予測エンジンを学習する動作手順の一例を示すフローチャートである。図5において、情報取得部11は、外部情報保存部31に保存されている過去の外部情報を取得する(S21)。また、情報取得部11は、配送実績保存部32に保存されている過去の配送実績の情報の中から、当時の配送先である顧客の位置情報(例えば、顧客の住所または居所の情報)を取得する(S22)。また、情報取得部11は、メモリ(図示略)から営業所の位置情報(例えば、営業所の居所の情報)を取得する。
ヒートマップ作成部15は、ステップS22において取得された顧客および営業所のそれぞれの位置情報を用いて、過去の配送実績に対応するヒートマップhp(図2参照)を作成する(S23)。過去の配送実績に対応するヒートマップhpは、過去の配送実績の情報に含まれる1つ以上の配送先が、配送対象エリアを構成する複数のセグメント(小エリア)のうちいずれに何個分布するかを定量的に示す指標である。
ヒートマップ学習部16は、ステップS21において取得された過去の外部情報と、ステップS23において作成されたヒートマップhpとの関連性に基づき、入力変数(例えば、年月日時、曜日、天気予報、イベントの名称等)に対応するヒートマップを予測するためのヒートマップ予測エンジンを学習する(S24)。上述したように、このステップS24の学習には、ヒートマップ学習部16による機械学習処理が実行される。ヒートマップ学習部16は、ステップS24による学習処理の結果としてヒートマップ学習モデルmd2を生成し、そのヒートマップ学習モデルmd2をヒートマップ学習モデル保存部34に保存する(S25)。この後、プロセッサ10による図5の動作手順で規定される一連の処理が終了する。
図6は、ヒートマップに基づく最少台数を予測するための最少台数予測エンジンを学習する動作手順の一例を示すフローチャートである。図6において、情報取得部11は、配送実績保存部32に保存されている過去の配送実績を取得する(S31)。最少台数決定部18は、ステップS31において取得された配送実績の情報に含まれる配送条件(後述参照)の下で、顧客の住所または居所に荷物を配送するためのトラックの理論的な最少台数を演算し、この演算結果として得られた最少台数を決定する(S32)。
ここで、配送条件は、例えば、午前中(10:00~12:00)の配送枠、12:00~14:00の配送枠、14:00~16:00の配送枠、16:00~18:00の配送枠、18:00~20:00の配送枠のうちいずれかに荷物を届けることが挙げられる。また、配送条件には、例えば、配送先である顧客の住所または居所と他の顧客の住所または居所との間の距離が一定値以上離れた場合には、複数のトラックを使用することが含まれてもよい。また、配送条件には、例えば、上述した配送枠の時間帯内に1台のトラックで配送可能な最大の顧客数が含まれてもよい。
最少台数学習部19は、ステップS31において取得された過去の配送実績に基づく最少台数の演算結果と、同一の過去の配送実績に基づくヒートマップhpとの関連性に基づき、ヒートマップhpに対する最少台数を予測するための最少台数予測エンジンを学習する(S33)。上述したように、このステップS33の学習には、最少台数学習部19による機械学習処理が実行される。最少台数学習部19は、ステップS33による学習処理の結果として最少台数学習モデルmd3を生成し、その最少台数学習モデルmd3を最少台数学習モデル保存部35に保存する(S34)。この後、プロセッサ10による図7の動作手順で規定される一連の処理が終了する。
図7は、将来の入力変数とヒートマップ学習モデルと最少台数学習モデルとに基づいてトラックの最少台数を予測する動作手順の一例を示すフローチャートである。図7において、入力部50は、利用者の操作によって入力された将来の入力変数を受け付けて取得する(S41)。ヒートマップ予測部17は、ヒートマップ学習モデル保存部34に保存されているヒートマップ学習モデルmd2を読み込む(S42)。ヒートマップ予測部17は、ステップS42において読み出されたヒートマップ学習モデルmd2とステップS41において取得された将来の入力変数とを用いて、その入力変数を満たす予測ヒートマップphpを生成する(S43)。
第2台数予測部20は、最少台数学習モデル保存部35に保存されている最少台数学習モデルmd3を読み込む(S44)。第2台数予測部20は、ステップS44において読み出された予測ヒートマップphpと、最少台数学習モデルmd3とを用いて、予測ヒートマップphpにより規定(言い換えると、ステップS41において取得された入力変数に対応して分布すると予測)される1つ以上の配送先への配送に必要なトラックの最少台数を予測して演算する(S45)。第2台数予測部20は、ステップS45の演算結果を第2予測台数値として、プロセッサ10内のメモリ(図示略)に一時記憶する(S46)。この後、プロセッサ10による図7の動作手順で規定される一連の処理が終了する。
図8は、トラックの最少台数を決定する動作手順の一例を示すフローチャートである。図8において、台数決定部21は、プロセッサ10のメモリ(図示略)に一時記憶された第1予測台数値および第2予測台数値を読み出す(S51)。台数決定部21は、ステップS51において読み出された第1予測台数値と第2予測台数値のうち、値が大きい方を選択する(S52)。台数決定部21は、ステップS52において選択された予測台数値を、利用者の操作により入力部50から入力された将来の入力変数に対するトラックの使用台数として決定する(S53)。この後、プロセッサ10による図8の動作手順で規定される一連の処理が終了する。
次に、最少台数学習モデルmd3に将来の入力変数とともに入力され、トラックの最少台数を予測するために用いられる予測ヒートマップphpを、ヒートマップ学習モデルmd2を用いて取得する動作の具体例を説明する。
(トラック1台で配送する例)
図9は、トラック1台で配送した過去の配送実績の一例を示す説明図である。マップmp11は、営業所が管轄する配送対象エリアを表しており、例えば5行*5列(上述した、m=n=5の例に対応)で表される複数のセグメントに区画される。ここでは、便宜的に、マップmp11の各行をA~Eで表し、各列を1~5で表し、各セグメントを行列の要素A1~E5で表す。
過去の配送実績(配送情報の一例)は、配送日時:2018年5月28日(月) 10:00~12:00、トラック積載量:12個、営業所の住所:o、および配送先情報を含む。配送先情報は、配送先:1軒目、荷物量:3個、住所:x1、配送先:2軒目、荷物量:3個、住所:x2、配送先:3軒目、荷物量:3個、住所:x3、配送先:4軒目、荷物量:3個、住所:x4を含む。
マップmp11には、営業所o、配送先の住所x1~x4、配送時刻[10:00]~[12:00]、および配送ルートrtが描画される。ここでは、1台のトラックが、営業所oを時刻10:00に出発し、時刻10:30に1軒目の配送を行い、時刻11:00に2軒目の配送を行い、時刻11:30に3軒目の配送を行い、時刻12:00に4軒目の配送を行ったことが示される。
図10は、図9に示す過去の配送実績に基づいて作成されたヒートマップhp1およびその行列の一例を示す説明図である。このヒートマップhp1は、一例として、ヒートマップ作成部15によって作成され、学習時(図5のステップS24参照)に入力される。ヒートマップhp1では、C行2列およびD行3列の各セグメントは、黄色(図中、粗いハッチ)で描画される。D行2列のセグメントは、オレンジ色(図中、黄色を示す粗いハッチより細かいハッチ)で描画される。
ここで、ヒートマップhp1を、軒数を示す行列で表した場合、行列の要素C2で表されるセグメントには、1軒の配送先があるので、行列の要素C2には、値1が登録される。同様に、行列の要素D2で表されるセグメントには、2軒の配送先があるので、行列の要素D2には、値2が登録される。行列の要素D3で表されるセグメントには、1軒の配送先があるので、行列の要素D3には、値1が登録される。また、行列の要素C3で表されるセグメントには、営業所oがあるので、行列の要素C3には、値1が登録される。
また、ヒートマップhp1を、軒数と荷物量とを示す行列で表した場合、行列の要素C2で表されるセグメントには、3個の荷物があるので、行列の要素C2には、値3が登録される。同様に、行列の要素D2で表されるセグメントには、6個の荷物があるので、行列の要素D2には、値6が登録される。行列の要素D3で表されるセグメントには、3個の荷物があるので、行列の要素D3には、値3が登録される。その他の行列には、荷物量が無いので、その他の要素には、値0が登録される。これにより、軒数だけでなく荷物量を追加した行列によるヒートマップhp1を学習に用いることで、トラック台数の予測に荷物量を加味することができる。
図11は、将来の入力変数を用いてヒートマップ学習モデルmd2から出力される予測ヒートマップphp1の一例を示す図である。ここでは、予測ヒートマップphpの一例として、予測ヒートマップphp1は、図10に示した過去の配送実績を基に作成されたヒートマップhp1と同じ分布に生成されているが、異なる分布に生成されてよい。予測ヒートマップphp1は、図10に示した過去の配送実績に基づいて作成され、図10に示すヒートマップ行列の要素C2に対応するセグメント内に1軒、同ヒートマップ行列の要素D2に対応するセグメント内に2軒、同ヒートマップ行列の要素D3に対応するセグメント内に1軒の配送先がそれぞれ分布することを定量的に示す。
(荷物量によってトラック2台で配送する例)
図12は、荷物量が多いためにトラック2台で配送した過去の配送実績の一例を示す図である。マップmp12は、マップmp11と同様、営業所が管轄する配送対象エリアを示しており、例えば5行*5列(上述した、m=n=5の例に対応)で表される複数のセグメントに区画される。
過去の配送実績(配送情報の一例)は、配送日時:2018年5月29日(火) 10:00~12:00、トラック積載量:12個、営業所の住所:o、および配送先情報を含む。配送先情報は、配送先:1軒目、荷物量:6個、住所:x1、配送先:2軒目、荷物量:6個、住所:x2、配送先:3軒目、荷物量:6個、住所:x3、配送先:4軒目、荷物量:6個、住所:x4を含む。
マップmp12には、営業所o、配送先の住所x1~x4、配送時刻[10:00]~[12:00]、および配送ルートrt1,rt2が描画される。ここでは、1台目のトラックは、営業所oを時刻10:00に出発し、配送ルートrt1に従い、時刻10:30に1軒目の配送を行い、時刻11:00に2軒目の配送を行う。2台目のトラックは、営業所oを時刻10:00に出発し、配送ルートrt2に従い、時刻11:30に3軒目の配送を行い、時刻12:00に4軒目の配送を行う。つまり、図9に示す配送実績の例と比べて、配送される荷物量が多いため、図12では、理論的な最少台数として2台と決定された例が示されている。
(距離によってトラック2台で配送する例)
図13は、営業所からの距離が離れているためにトラック2台で配送した過去の配送実績の一例を示す説明図である。マップmp21は、マップmp11と同様、営業所が管轄する配送対象エリアを示しており、5行*5列(上述した、m=n=5の例に対応)で表される複数のセグメントに区画される。
過去の配送実績(配送情報の一例)は、配送日時:2018年5月30日(水) 10:00~12:00、トラック積載量:12個、営業所の住所:o、および配送先情報を含む。配送先情報は、配送先:1軒目、荷物量:3個、住所:y1、配送先:2軒目、荷物量:3個、住所:y2、配送先:3軒目、荷物量:3個、住所:y3、配送先:4軒目、荷物量:3個、住所:y4を含む。
マップmp21には、営業所o、配送先の住所y1~y4、配送時刻[10:00]~[12:00]、および配送ルートrt3,rt4が描画される。ここでは、1台目のトラックは、営業所oを時刻10:00に出発し、配送ルートrt3に従い、時刻11:00に1軒目の住所y1で配送を行い、時刻11:30に2軒目の住所y2で配送を行う。2台目のトラックは、営業所oを時刻10:00に出発し、配送ルートrt4に従い、時刻11:00に3軒目の住所y3で配送を行い、時刻11:30に4軒目の住所y4で配送を行う。つまり、図9に示す配送実績の例と比べて、それぞれの配送先の位置情報(つまり、顧客の住所または居所)と営業所との距離が離れているために、図13では、理論的な最少台数として2台と決定された例が示されている。
図14は、図13に示す過去の配送実績に基づいて学習時に作成されるヒートマップhp3およびその行列の一例を示す説明図である。ヒートマップhp3は、一例として、ヒートマップ作成部15によって作成され、学習時(図5のステップS24参照)に入力される。ヒートマップhp3では、行列の要素E4,E5でそれぞれ表されるセグメントは、黄色(図中、粗いハッチ)で描画される。行列の要素A2で表されるセグメントは、オレンジ色(図中、黄色を示す粗いハッチより細かいハッチ)で描画される。
ここで、ヒートマップhp3を、軒数を示す行列で表した場合、行列の要素A2で表されるセグメントには、2軒の配送先があるので、行列の要素A2には、値2が登録される。同様に、行列の要素E4,E5でそれぞれ表されるセグメントには、1軒の配送先があるので、行列の要素E4,E5には、それぞれ値1が登録される。また、行列の要素C3で表されるセグメントには、営業所oがあるので、行列の要素C3には、値1が登録される。
また、ヒートマップhp3を、軒数と荷物量とを示す行列で表した場合、行列の要素A2で表されるセグメントには、6個の荷物があるので、行列の要素A2には、値6が登録される。同様に、行列の要素E4,E5でそれぞれ表されるセグメントには、3個の荷物があるので、行列の要素E4,E5には、それぞれ値3が登録される。その他の行列には、荷物量が無いので、値0が登録される。これにより、軒数だけでなく荷物量を追加した行列によるヒートマップhp3を学習に用いることで、トラック台数の予測に荷物量を加味することができる。
図15は、将来の入力変数を用いてヒートマップ学習モデルmd2から出力される予測ヒートマップphp3の一例を示す説明図である。ここでは、予測ヒートマップphp3は、図14に示した過去の配送実績を基に作成されたヒートマップhp3と同じ分布に生成されているが、異なる分布に生成されてよい。予測ヒートマップphp3は、図13に示した過去の配送実績に基づいて作成され、図14に示すヒートマップ行列の要素A2に対応するセグメント内に2軒、同ヒートマップ行列の要素E4に対応するセグメント内に1軒、同ヒートマップ行列の要素E5に対応するセグメント内に1軒の配送先がそれぞれ分布することを定量的に示す。
(軒数によってトラック2台で配送する例)
図16は、軒数が多いためにトラック2台で配送した過去の配送実績の一例を示す説明図である。マップmp31は、マップmp11と同様、営業所が管轄する配送対象エリアを示しており、5行*5列(上述した、m=n=5の例に対応)で表される複数のセグメントに区画される。
過去の配送実績(配送情報の一例)は、配送日時:2018年5月31日(木) 10:00~12:00、トラック積載量:12個、営業所の住所:o、および配送先情報を含む。配送先情報は、配送先:1軒目、荷物量:2個、住所:x1、配送先:2軒目、荷物量:2個、住所:x2、配送先:3軒目、荷物量:2個、住所:x3、配送先:4軒目、荷物量:2個、住所:x4、配送先:5軒目、荷物量:2個、住所:x5、配送先:6軒目、荷物量:2個、住所:x6を含む。
マップmp31には、営業所o、配送先の住所x1~x6、配送時刻[10:00]~[12:00]、および配送ルートrt5,rt6が描画される。ここでは、1台目のトラックは、営業所oを時刻10:00に出発し、配送ルートrt5に従い、時刻10:30に1軒目の住所x1で配送を行い、時刻11:00に2軒目の住所x2で配送を行い、時刻11:30に3軒目の住所x3で配送を行い、時刻12:00に4軒目の住所x4で配送を行う。2台目のトラックは、営業所oを時刻10:00に出発し、配送ルートrt6に従い、時刻10:30に5軒目の住所x5で配送を行い、時刻11:00に6軒目の住所x6で配送を行う。つまり、図9に示す配送実績の例と比べて、配送される配送先の数(つまり、軒数)が多いため、図16では、理論的な最少台数として2台と決定された例が示されている。
図17は、図16に示す過去の配送実績に基づいて学習時に作成されるヒートマップhp5およびその行列の一例を示す説明図である。ヒートマップhp5は、一例として、ヒートマップ作成部15によって作成され、学習時(図5のステップS24参照)に入力される。ヒートマップhp5では、行列の要素C2,D3でそれぞれ表されるセグメントは、黄色(図中、粗いハッチ)で描画される。行列の要素D2,D4でそれぞれ表されるセグメントは、オレンジ色(図中、黄色を示す粗いハッチより細かいハッチ)で描画される。
ここで、ヒートマップhp5を、軒数を示す行列で表した場合、行列の要素C2,D3でそれぞれ表されるセグメントには、1軒の配送先があるので、行列の要素C2,D3には、それぞれ値1が登録される。同様に、行列の要素D2,D4で表されるセグメントには、2軒の配送先があるので、行列の要素D2,D4には、値2が登録される。また、行列の要素C3で表されるセグメントには、営業所oがあるので、行列の要素C3には、値1が登録される。
また、ヒートマップhp5を、軒数と荷物量とを示す行列で表した場合、行列の要素C2,D3でそれぞれ表されるセグメントには、1個の荷物があるので、行列の要素C2,D3には、それぞれ値2が登録される。同様に、行列の要素D2,D4で表されるセグメントには、それぞれ2個の荷物があるので、行列の要素D2,D4には、それぞれ値4が登録される。その他の行列には、荷物量が無いので、値0が登録される。これにより、軒数だけでなく荷物量を追加した行列によるヒートマップhp5を学習に用いることで、トラック台数の予測に荷物量を加味することができる。
図18は、将来の入力変数を用いてヒートマップ学習モデルmd2から出力される予測ヒートマップphp5の一例を示す説明図である。ここでは、予測ヒートマップphp5は、図17に示した過去の配送実績を基に作成されたヒートマップhp5と同じ分布に生成されているが、異なる分布に生成されてよい。予測ヒートマップphp5は、図16に示した過去の配送実績に基づいて作成され、図17に示すヒートマップ行列の要素C2に対応するセグメント内に1軒、同ヒートマップ行列の要素D2に対応するセグメント内に2軒、同ヒートマップ行列の要素D3に対応するセグメント内に1軒、同ヒートマップ行列の要素D4に対応するセグメント内に2軒の配送先がそれぞれ分布することを定量的に示す。
以上により、実施の形態1に係る需要予測装置5では、入力部50(入力変数取得部の一例)は、利用者の操作によって入力された、配送日時を含む入力変数を取得する。ヒートマップ予測部17は、配送対象エリアを構成する複数個のセグメントのうち少なくとも1つのセグメントに分布する配送先の軒数(分布数の一例)をセグメントごとに示すヒートマップhpを予測するためのヒートマップ学習モデルmd2(ヒートマップ予測モデルの一例)を用いて、入力変数に対応する予測ヒートマップphpを予測する。第2台数予測部20(最少台数予測部の一例)は、配送先に荷物を配送するためのトラック(配送車両の一例)の最少台数を予測するための最少台数学習モデルmd3(最少台数予測モデルの一例)を用いて、予測ヒートマップphp(予測されたヒートマップの一例)に対応するトラックの最少台数を予測する。台数決定部21は、予測された最少台数を、入力変数に含まれる配送日時におけるトラックの使用台数として決定する。
これにより、需要予測装置5は、物流(例えば、荷物の配送)において、個宅等の宅配に必要なトラックの台数を予測できるので、効率的な配送計画の実現を支援できる。また、需要予測装置5は、配送先の軒数を個々の配送先の住所ではなくセグメント化して定量的に示したヒートマップで表すことで、入力された入力変数に対応する配送先の軒数を予測するためのヒートマップ学習モデルmd2および最少台数学習モデルmd3をそれぞれ生成するための学習用データ量を増やすことができ、学習精度を高めることができる。
また、需要予測装置5では、情報取得部11(配送実績取得部の一例)は、配送日時と複数の配送先のそれぞれの位置情報とを含む過去の配送実績情報を取得する。ヒートマップ作成部15は、複数の配送先のそれぞれの住所(位置情報の一例)を用いて、複数の配送先のそれぞれが分布するセグメントを決定し、複数の配送先のそれぞれに対応するヒートマップhpを、過去の配送実績情報ごとに作成する。ヒートマップ学習部16は、過去の外部情報(配送実績情報の一例)と過去の外部情報ごとに作成されたヒートマップhpとの関連性の学習に基づいて、ヒートマップ学習モデルmd2を生成する。これにより、需要予測装置5は、過去の配送日時および配送先の位置情報に基づいて配送対象エリア内の配送先の数(つまり、軒数)を予測可能なヒートマップ学習モデルmd2を用いて、将来の入力変数に対応した信頼性の高い予測ヒートマップphpを容易に作成でき、ヒートマップの予測精度を向上できる。
また、需要予測装置5では、情報取得部11(配送実績取得部の一例)は、配送日時と複数の配送先のそれぞれの住所とを含むヒートマップhp(過去の配送実績情報の一例)を取得する。最少台数決定部18は、複数の配送先のそれぞれの住所を用いて、複数の配送先のそれぞれに荷物を配送するためのトラックの最少台数を決定する。最少台数学習部19は、ヒートマップhp(配送実績情報の一例)と過去の配送実績情報に対応して決定された最少台数との関連性の学習に基づいて、最少台数学習モデルmd3(最少台数予測モデルの一例)を生成する。これにより、需要予測装置5は、過去の配送実績に基づいてその配送実績の情報に含まれる配送先の数(つまり、軒数)に対応して配送可能なトラックの最少台数を予測可能な最少台数学習モデルmd3を生成できるので、将来の入力変数に対応した信頼性の高い最少台数の予測を容易に行え、最少台数の予測精度を向上できる。
また、需要予測装置5では、情報取得部11(配送実績取得部の一例)は、配送日時と配送された荷物量とを含む過去の配送実績情報を取得する。荷物量学習部12は、配送日時と配送された荷物量との関連性の学習に基づいて、配送される荷物量を予測するための荷物量学習モデルmd1(荷物量予測モデルの一例)を生成する。これにより、需要予測装置5は、過去の配送日時と配送実績とに基づいて配送される荷物量を予測可能な荷物量学習モデルmd1を生成でき、荷物量の予測精度を向上できる。
また、需要予測装置5では、荷物量予測部13は、荷物量学習モデルmd1を用いて、将来の入力変数に対応する荷物量を予測する。これにより、需要予測装置5は、荷物量学習モデルmd1を用いることで、将来の入力変数に対応した信頼性の高い荷物量の予測を容易に行える。
また、需要予測装置5では、第1台数予測部14(台数予測部の一例)は、予測された荷物量とトラックの積載量とに基づいて、予測された荷物量の荷物を配送するトラックの台数を予測する。台数決定部21は、予測された荷物量に基づくトラックの台数の予測値と、予測ヒートマップphpに基づくトラックの台数の予測値とのうち数が大きい方を、入力変数に含まれる配送日時における配送車両の使用台数として決定する。これにより、需要予測装置5は、将来の入力変数に対応するトラックの使用台数として、数が大きい方の最少台数を決定することで、配送要件(時間内に全ての配送を終える)を満たさなくなるリスクを減少させることができる。
また、需要予測装置5では、台数決定部21は、決定されたトラックの使用台数に関する情報を出力部60に出力する。これにより、利用者は、トラックの使用台数を把握し、必要なトラックの台数をいち早く確保するように努めるようになる。また、トラックの配送計画の策定に貢献できる。
また、需要予測装置5では、将来の入力変数は、配送日時、曜日、天気予報、イベントの情報を含む。これにより、需要予測装置5は、荷物の配送に影響する種々の要因(つまり、配送日時、曜日、天気予報、イベント名等)を考慮して、トラックの台数を的確に予測できる。特にイベントの情報、例えば荷物である商品のキャンペーン、配送先付近で行われる運動会やコンサート、道路工事等の情報によって、トラックの台数を予測する精度が高まる。
以上、図面を参照しながら各種の実施の形態について説明したが、本開示はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例、修正例、置換例、付加例、削除例、均等例に想到し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。また、発明の趣旨を逸脱しない範囲において、上述した各種の実施の形態における各構成要素を任意に組み合わせてもよい。
上述した実施の形態では、例えば、運送事業者が個人宅もしくは会社等に荷物を配送するユースケースを例示して説明したが、商品等の販売店が自店の扱う商品を個人宅もしくは会社等に配送するユースケースにも同様に適用可能である。
上述した実施の形態では、配送車両として、トラックを例示して説明したが、軽乗用車、ワンボックスカー、バイク等の車両であってもよい。
上述した実施の形態では、配送日時を年月日時として説明したが、日付のみ、曜日のみ等、ユースケースに応じて設定してもよい。
(実施の形態2)
実施の形態1では、宅配のように個別の配送先(つまり、個宅)に荷物を配送するユースケースについて示した。実施の形態2では、実施の形態1を拡張し、商品等を、倉庫あるいは生産拠点からその商品を消費者に提供する店舗等にトラックで運搬するユースケースについて説明する。なお、実施の形態1は、実施の形態2から完全に独立した内容(言い換えると、実施の形態2の内容とは切り離された内容)となっているが、実施の形態2は実施の形態1に係る構成をベースにしてその内容を発展的に拡張したものである。
図19は、実施の形態2に係る需要予測システムのハードウェア構成例を示すブロック図である。実施の形態2に係る需要予測システムは、実施の形態1に係る需要予測装置5を含んで構成される。実施の形態1と同一の構成要素については同一の符号を用いることで、その説明を省略する。
需要予測システムは、物流センター100と、店舗200と、需要予測装置5と、出力部60と、サーバ80と、を含んで構成される。なお、物流センター100は、例えば倉庫、生産拠点等の商品(荷物)の配送にあたって拠点となる施設である。図19に示されるように、倉庫および/または生産拠点および/または物流センター100には、消費者あるいは店舗のそれぞれが注文した商品(荷物)を仕分けるためのシステム101が設けられる。
また、店舗200には、棚に陳列された商品の在庫量に関する棚在庫状況あるいは商品の欠品を検知する欠品検知システム201と、店舗内を移動する消費者の動線を分析するための動線分析システム202とが設けられる。なお、店舗200に設けられる動線分析システム202は、必須の構成でなく、省略されてよい。
実施の形態2に係る出力部60は、実施の形態1とは異なる場所に設けられてよい。需要予測装置5以外に複数備えられていてもよい。これにより、プロセッサ10によって決定されたトラックの必要台数は、倉庫および/または生産拠点および/または物流センター100、または店舗200に速やかに通知される。よって、利用者は、必要なトラックの台数をいち早く確保するように努めるようになるため、トラックの配送計画の策定に貢献できる。また、出力部60の設置場所は、倉庫および/または生産拠点および/または物流センター100、または店舗200以外であってもよく、例えばトラックを所有あるいは管理するような会社、部門等でもよい。
実施の形態2において、プロセッサ10は、仕分けシステム101から直接的または間接的に荷物の荷物体積データを受信し、荷物体積データに基づいて、配送する荷物の体積を計算してもよい。これにより、利用者は、仕分けシステム101から得られるリアルタイムに近い実測データを使用でき、必要な台数のトラックを手配する際に、より短時間でより精度の高い必要トラック数を算出できる。なお、この荷物体積データは、後述する、ラベルリーダ110が読み込んだラベル記録情報から取得した荷物の特定が可能な荷物特定情報と、距離画像センサ22が生成した荷物の体積またはサイズ等を示す距離画像とを含む。
また、プロセッサ10は、配送する荷物量を予測するために、店舗の欠品検知システム201の欠品情報に基づいた商品需要予測情報を直接的または間接的に受信し、その情報を使用しても良い。欠品情報とは、後述する欠品検知システム201において検知された、店舗内に設置された棚の商品(在庫)に関する情報(例えば、特定の商品、あるいは特定の商品が配置された在庫において、欠品が生じた状態(つまり既定の陳列数に足りてない状態)を意味する情報)である。これにより、仕分けシステム101は、検知システム201から得られるリアルタイムに近い実測データを使用できるため、より精度の高い計算ができる。なお、この欠品情報とは、例えば、商品情報、欠品検出部223による検出結果、および/または、検出結果に基づく情報を含む通知情報を含む。欠品情報は、一例として、商品270の欠品検知を通知する情報(「通知情報」、「欠品情報」、または、「アラート情報」と称されてもよい)である。
さらに、欠品情報としては、欠品検出部223による検出結果および棚札検出部221による検出結果のいずれか一方または双方と、棚割情報400と、が関連付けられた情報に基づいて生成された通知情報としてもよい。この場合の欠品情報は、例えば、欠品検出部223による検出結果と棚割情報400とが関連付けられた情報に基づく、商品270の欠品検知に係る場所(欠品エリア)、および/または、欠品検知した商品270の商品名を含む通知情報とする。
なお、実施の形態2に係る情報取得部11は、外部情報保存部31に保存されている過去の外部情報と、配送実績保存部32に保存されている過去の配送実績の情報に含まれる荷物量、過去の配送実績の情報に含まれる配送先の住所および配送ルートとを取得するとともに、上記で説明した仕分けシステム101からの荷物体積データと、欠品検知システム201からの欠品情報および/または商品需要予測情報とを受信する。商品需要予測情報は、情報取得部11が欠品情報を受信した後に需要予測装置5内で生成されてもよいし、欠品検知システム201内で生成されて情報取得部11に取得されても良い。
また、実施の形態2において、荷物体積データおよび/または商品需要予測情報は、実施の形態1で説明された外部情報および/または配送実績の一部として扱われ、第1予測台数値および/または第2予測台数値を算出する際に利用される。詳細に言えば、荷物体積データおよび/または商品需要予測情報は、実施の形態1に係る荷物量学習モデルmd1、ヒートマップ学習モデルmd2、最少台数学習モデルmd3のうち少なくとも一つを生成することに利用されても良く、荷物量の予測、ヒートマップhpの演算あるいはトラックの最小台数予測等に利用されても良い。なお、商品需要予測情報は、欠品情報を使って生成され、対象店舗における対象商品の需要の程度、数または量等を表す。このようにして、荷物体積データおよび/または商品需要予測情報は、トラックの使用台数を決定するために利用される。
なお、実施の形態2におけるプロセッサ10は、必ずしも第1予測台数値および第2予測台数値の双方を算出する必要はない。プロセッサ10は、一方の算出結果を使って、トラックの使用台数を決定しても良い。
実施の形態2における入力部50は、将来(言い換えると、予測対象となる今後または未来)の入力変数を需要予測装置5の利用者(ユーザ)の入力操作を受け付けるが、入力変数の入力はユーザの入力に限らない。入力部50は、需要予測装置5によって自動的に入力されても良い。
実施の形態2における荷物量学習部12は、例えばAI(Artificial Intelligent)を用いたプログラムにより構成されるが、必ずしもAIを用いなくてもよい。また、実施の形態2における需要予測装置5は、必ずしもヒートマップを使用しなくてもよく、需要予測装置5が管理するサプライチェーン全体が含まれるエリアを個のセグメントに区画し、セグメント単位で配送量あるいは配送先の件数等を計算してもよい。なお、サプライチェーンとは、実施の形態2においては、少なくとも、倉庫および/または生産拠点および/または物流センター、店舗を含む。
次に、図20を参照して仕分けシステム101について説明する。図20は、実施の形態に係る荷物仕分けシステムの構成例を示すブロック図である。図20に示す荷物仕分けシステム100は、例えば工場等の生産拠点、倉庫または物流センターに設置される。荷物仕分けシステム101は、ラベルリーダ110と、画像センサ120と、投影指示装置130と、プロジェクタ140と、を備える。
荷物仕分けシステム101は、搬送コンベヤにより搬送される荷物を仕分ける作業員の作業を支援するシステムである。荷物仕分けシステム101は、例えば小売業者、卸売業者、インターネット流通業者等が所有する物流センターに設置される。仕分け対象の荷物は、一般的には略直方体の形状を有するものであるが、その外形は特に限定はされず、荷物の種類も特に限定されない。なお、荷物仕分けシステムの構成は図20に記載したものに限定されない。例えば、一台のラベルリーダ110に複数の画像センサ120と、投影指示装置130と、プロジェクタ140を接続させる等、各構成要素の数量は目的に応じて適宜変更させることができる。
読取装置としてのラベルリーダ110は、図示しないレンズ、イメージセンサ等の各種の要素を含む装置である。ラベルリーダ110を用いることで、作業員は、搬送コンベヤにより搬送されてくる荷物に貼付されたラベルから当該荷物に関する各種の情報を記録したラベル記録情報を読み取ることができる。これにより、作業員は、読み取られたラベル記録情報を用いて、当該荷物を特定できる。ラベルリーダ110は、読み取られた情報に基づいて荷物特定情報を定義づける。
画像センサ120は、図示しないレンズ、イメージセンサ等の各種の要素を含む撮像装置である。画像センサ120は、一般的には撮像カメラとして構成される。撮像カメラは3次元カメラ、複数台の2次元カメラ等である。画像センサ120は、距離画像センサ122と色画像センサ124とを含む。
距離画像センサ122は、搬送コンベヤにより搬送されてくる荷物を撮像し、距離画像を生成する。生成された距離画像は、荷物の位置、荷物までの距離、荷物の体積あるいはサイズ等を示す情報として荷物の位置を特定するために使用される。なお、距離画像とは、撮像位置から各画素が示す位置(荷物の表面を含む)までの距離を示す距離情報を収容した画像のことをいう(つまり、本開示において「画像」の語は距離画像を含む)。また、「距離画像」という文言には、距離を示す数値を列挙したテーブル等、人の目で画像として認識できないものも含まれる。すなわち「距離画像」は、撮像した領域内における座標と距離との関係を示す情報であればよく、そのデータ構造は問わない。よって、距離画像センサ122は、他のセンシングデバイス(例えば超音波センサ、赤外線センサ、ステレオカメラ、単眼ビデオカメラ等)によって代替されてよい。
色画像センサ124は、距離画像が生成された荷物を撮像し、色画像を生成する。「色画像」とは、荷物の表面の色を所定の階調で表現した画像のことをいい、「階調」にはRGBの256階調のみならず、グレースケール等あらゆるものが含まれる。本開示において色画像センサ124は、距離画像センサ122が特定した各荷物を追跡するために用いられる。色画像センサ124は、他のセンシングデバイス(例えば超音波センサ、赤外線センサ、ステレオカメラ、単眼ビデオカメラなど)によって代替されてよい。
つまり、本開示において「画像」の語は、距離画像と色画像の少なくとも一方もしくは双方を含む。また、センシング情報は、距離画像センサおよび色画像センサを含むセンシングデバイスとしての画像センサから出力される情報である。
よって、実施の形態2に係る距離画像センサ122および色画像センサ124は、センシングデバイスの一例として画像センサ120(距離画像センサ122および色画像センサ124を含む)を用いて説明を行う。また、実施の形態2に係る画像センサ120は、距離画像センサ122の出力結果である距離画像と、色画像センサ124の出力結果である色画像とをセンシング情報の例として用いて説明を行う。
図21は、実施の形態2に係る投影支持装置の構成例を示すブロック図である。投影指示装置130は、荷物仕分けシステム101における演算装置としての役割を果たす。図21に示すように、投影指示装置130は、バスを介して接続された入力部132と、プロセッサ134と、メモリ136と、出力部138と、を含んで構成される。
入力部132は、ラベルリーダ110が読み込んだラベル記録情報から取得した荷物の特定が可能な荷物特定情報、距離画像センサ22が生成した距離画像、色画像センサ124が生成した色画像の入力を受け付ける。
プロセッサ134は、一般的な演算装置によって構成され、荷物特定情報、距離画像および色画像に基づいて、荷物に投影する投影画像を生成する。なお、本開示において「プロセッサ」は単一のプロセッサのみを意味するものではない。「プロセッサ」は、複数の同一目的のプロセッサおよび目的の異なるプロセッサ(例えば、汎用CPU(Central Processing Unit)に限らず、GPU(Graphic Processing Unit))が共同して処理を行う場合の動作主体を意味する語としても使用される。
記憶装置の一例としてのメモリ136は、プロセッサ134が各種処理に必要な制御プログラムの読み込み、データの退避等の操作を行う。すなわち、プロセッサ134とメモリ136とは、協働して投影指示装置130による各種処理を制御する。
出力部138は、プロセッサ134によって生成された投影画像をプロジェクタ140に出力する。
プロジェクタ140は、一般的な投影装置により構成され、投影指示装置130から受信した投影画像を含む投影光を荷物に投影し、荷物上に表示する。
荷物仕分けシステム101は、ラベルリーダ110と、画像センサ120(距離画像センサ122および色画像センサ124)と、投影指示装置130と、プロジェクタ140とを有線通信または無線通信可能に接続して構築される。また、荷物仕分けシステム101は、ラベルリーダ110と、画像センサ120と、投影指示装置130と、プロジェクタ140のうちいずれかの2台以上の装置を一体型の装置として構築することもできる。例えば、荷物仕分けシステム101は、画像センサ120とプロジェクタ140とを合わせて、一体型の撮像投影装置として構築できる(図22A参照)。
[システムの概要]
図22Aは、荷物仕分けシステム101の稼働例を示す概念図である。図22Bは、荷物Pに対する投影例を示す図である。以下、図22Aおよび図22Bを参照して、荷物仕分けシステム101が物流センターに設置され、稼働している状況について説明する。なお、投影支持装置130は、図22Aおよび図22Bにおいて図を省略している。
従来の方法によれば、各搬送コンベヤ150に配置された作業者Mは、搬送コンベヤ150により矢印X方向に搬送されてくる各荷物Pに貼付されたラベルのそれぞれを目視によってチェックしていた。さらに作業者Mは、配送を担当する荷物が到着すると、当該荷物を拾い上げて(ピックアップ)、作業者M自身の足元、かごまたはトラックの荷台等の近傍に一旦置く必要があった。しかしながら、作業者Mが各荷物Pのそれぞれに対して目視による仕分けを行う場合、作業者Mの作業効率には限界があるため、搬送コンベヤ150の搬送速度を所定の速度以下に抑える必要があった。結果として、従来の方法では、作業者Mが単位時間内に仕分け可能な荷物量の限界値(つまり、作業者Mの作業効率)は低かった。また、従来の方法は、作業者Mがラベルの目視に際して誤認を行うため、誤った仕分けを引き起こす可能性があった。近年、荷物の流通量は増大しており、これらの問題はより注目されつつある。
実施の形態2に示す荷物仕分けシステム101は、図22Aに示すように、搬送コンベヤ150の上方に配置されたラベルリーダ110が、搬送コンベヤ150により搬送されてくる各荷物Pのそれぞれに貼付されたラベルを読み取る。ラベルには、当該荷物に関する各種の情報を含むラベル記録情報が含まれている。ラベル記録情報は、当該荷物に個別に付与される荷物特定番号、発送人の氏名、住所、電話番号、受取人の氏名、住所、電話番号、荷物の種類等に関する情報を含む。なお、ラベルの読み込み処理は、担当の作業者Mによって行われ、ラベルリーダ110としてのバーコードリーダをラベル内のバーコードに手作業で当てて読み込んでも良い。これにより、実施の形態2に示す荷物仕分けシステム101は、作業者Mの目視による仕分け作業が不要となり、作業者Mの作業効率(つまり、仕分け可能な荷物量の限界値)を向上させることができる。
画像センサ120は、搬送コンベヤ150により搬送されてくる荷物Pの画像(距離画像および色画像)を撮像し、荷物Pの位置、荷物Pまでの距離、荷物Pの体積やサイズ(荷物Pが直方体の場合は3辺の長さ)、荷物Pの色、荷物Pの模様等の情報を取得する。尚、ラベルリーダ110、画像センサ120の配置位置、またはセンシングデバイスの種類、処理の順序は特に図示した形態に限定されない。上述した様に、実施の形態2では、画像センサ120とプロジェクタ140が一体型の撮像投影装置160として構築され、搬送コンベヤ150の上方に配置されている。
なお、投影支持装置130(図示略)は、例えば搬送コンベヤ150の近傍、あるいは別の部屋に配置されたコンピュータにより構成される。投影支持装置130は、ラベルリーダ110が獲得した荷物を特定する情報と、画像センサ120が生成した距離画像と、色画像とに基づいて、荷物P(荷物Pが直方体の場合は、例えば上面)に表示する投影画像を生成する。投影指示装置130は、荷物Pに投影する投影画像の投影指示をプロジェクタ140に出力する。
投影指示を受けた、画像投影装置の一例としてのプロジェクタ140は、投影指示装置130によって生成された投影画像を含む投影光を荷物Pに投影し、荷物P上に投影画像を表示する。ここで荷物Pに表示される投影画像は、例えば、当該荷物Pの配送先住所に対応した仕分け場所を示す色を有する文字XA,XBのそれぞれの画像である(図22B参照)。なお、投影画像は、例えば、仕分けられた荷物Pを運ぶトラックの番号(トラック自体の番号や駐車場番号等)、あるいは当該トラック等に搬入されるべき棚または箱等の番号等に対応していてもよい。また、投影画像は、直接的に棚や箱等の番号に対応させたものに限らず、ピックアップした荷物を他の場所またはトラック等へ移動させるシューターの番号等に対応していてもよい。
また、トラック等の配送車両の駐車位置は、交通状況等に応じて頻繁に変わるため、搬送コンベヤ150周辺から見た仕分け先を随時対応させることは難しい場合がある。そのため、プロジェクタ140は、搬送コンベヤ150と搬送トラック等の配送車両との間にシューターを備え、搬送コンベヤ150周辺では荷物Pにシューターの番号を投影してもよい。これにより、作業者Mは、搬送コンベヤ150周辺の構成を随時変えることなく、シューターの出口の配置換え等で仕分け先の変化に対応することが出来る。
プロジェクタ140は、状況に応じて、様々な種類の投影画像を投影する。数字を表示する場合の他の例として、投影画像は、配送先住所に対応した郵便番号あるいは荷物Pをピックアップすべき作業者M1を識別可能な番号等であってもよい。さらに他の例としてプロジェクタ140は、仕分け方向を示す矢印(搬送コンベヤ150の搬送方向に対して右または左等)または文字(「左」「右」等)を投影してもよい。
なお、本開示において「画像投影装置」とは光線を直接荷物に投影するものに限定されない。本開示において「画像投影装置」には画像を表示可能な眼鏡も含む。つまり、本開示において、荷物に投影光を投影する、荷物に画像を表示する、荷物に画像を投影する、等と表現した場合、その表現は、画像を表示可能な眼鏡を介して、擬似的に、荷物に投影光が投影されているかのように作業者に認識させることも含む。つまり、投影光は、作業者が画像を表示可能な特殊な眼鏡を装着している場合、眼鏡を介して視認される荷物Pの像に投影画像を重ねあわせても投影されてよい。
図22Aにおいて、荷物を拾い上げる担当の作業者M(他の作業者は省略)は、搬送コンベヤ150の近傍に立っており、それぞれの担当の領域に到達した荷物を、文字XA,XB,XC,XD,XEのそれぞれ等で示すように搬送コンベヤ150から拾い上げる。
例えば荷物P1は、ラベルに「AAA111」で示された荷物特定情報を有している。ここで、「AAA111」で示された荷物特定情報は、領域Aで仕分けの対象になる旨が特定されているとする。この場合プロセッサ134は、荷物P1が特定領域に到着すると、図22Bに示すように生成した投影画像をプロジェクタ140に出力する。プロジェクタ140は、入力された投影画像を荷物P1に投影する。よって、当該領域の作業者Mは、自身が担当する特定領域に到着した、自身が拾い上げるべき荷物P1に容易に着目することが可能となり、結果的に荷物の仕分けをより効率的かつ正確に行うことが可能となる。
実施の形態2では、図22Aに示すように1台のプロジェクタ140に対して、複数の特定領域の投影の有無を切り替えさせてもよく、複数台のプロジェクタ140のそれぞれに対して、それぞれ担当の特定領域における投影の有無を切り替えさせてもよい。
以下、実施の形態2に係る荷物仕分けシステム101において、投影指示装置130が行う荷物仕分けの動作の概要を説明する。
[動作の概要]
図23は、実施の形態2に係る投影指示装置130の動作手順例を示すフローチャートである。
まず、作業者は、ラベルリーダ110を用いて荷物のラベルのラベル記録情報を読み取る。入力部132は、ラベルリーダ110によって読み取られたラベル記録情報に対応した荷物特定情報を取得する(S101)。ここで、荷物特定情報とは、当該荷物に個別に付与される荷物特定番号、発送人の氏名,住所,電話番号、受取人の氏名,住所,電話番号、荷物の種類、等に類似する情報の少なくとも一つ含む情報である。
プロセッサ134は、当該荷物特定情報に対応する当該荷物を特定するための荷物特定番号としてのIDを付与し、IDを付与した時刻に対応する時刻情報とともにメモリ136に記録する(S102)。なお、メモリ136に記録するIDは、荷物特定情報に元から記録されていた荷物特定番号でもよいし、投影指示装置130が新しいIDを生成して付与してもよい。
一方、ステップS101およびステップS102の処理と並行して、入力部132は、画像センサ120における距離画像センサ122によって荷物の距離画像を撮像した後、距離画像センサ122からセンシング情報としての距離画像を取得する(S120)。
プロセッサ134は、取得された距離画像に存在する荷物に対応するIDがメモリ136に存在するか否かを判定する(S130)。なお、距離画像に存在する荷物に対応するIDがメモリ136に存在するか否かを判定する手法の一例としては、次のような手順によることが挙げられる。
プロセッサ134は、ラベルリーダ110と距離画像センサ122との間の距離(既知とする)、および搬送コンベヤ150の速度に基づいて、荷物がラベルリーダ110と距離画像センサ122との間を移動するために要する時間を算出する。そして、プロセッサ134は、距離画像を取得した時刻から算出された時間を引くことにより、距離画像に存在する荷物がラベルリーダ110(およびプロセッサ134)によりIDを付与された時刻を推定する。これにより、プロセッサ134は、推定された時刻に近接して付与されたIDが取得された距離画像に存在する荷物に対応するIDであるか否かを推定できる。
また、上述したステップS130の処理における判定手法はこれに限らず、ラベルリーダ110の近辺に他の距離画像センサを設置する手法でもよい。この手法においてプロセッサ134は、ラベルリーダ110(およびプロセッサ134)がIDを付与した時から、ラベルリーダ110の近辺に設置した他の距離画像センサを用いて当該IDが付与された荷物を追跡することで、時刻毎に当該荷物(およびID)とラベルリーダ110との距離を計測する。これにより、プロセッサ134は、計測された荷物(およびID)とラベルリーダ110との距離と、ステップS120で取得された距離画像における荷物の距離と、2つの距離画像センサとの距離(既知とする)から所定のステップS120で取得された距離画像における荷物のIDを推定することができる。
このようにして、プロセッサ134は、当該距離画像に含まれる荷物に対応するIDがメモリ136に存在するか否かを判定する(S130)。すなわち、ステップS102の処理の説明で述べたように、メモリ136は、荷物特定情報,ID,IDを付与した時刻に対応する時刻情報等を予め記録している。一方、プロセッサ134は、例えば上述したように、距離画像を取得した時刻から荷物がラベルリーダ110と距離画像センサ122の間を移動するまでに要した時間を引くことによって、距離画像に存在する荷物がラベルリーダ110(およびプロセッサ134)によりIDを付与された時刻が推定できる。プロセッサ134は、予めメモリ136に記録された時刻情報と推定した時刻とを比較し、これらの値が近い場合は(例えば、時間差が所定の閾値時間以下の場合等)、距離画像に含まれる荷物に対応するIDがメモリ136に存在すると判定することができる。メモリ136に荷物に対応するIDが存在すると判定した場合(S130,Yes)、ステップS160以降の処理に進む。
一方、ステップS130の処理において、メモリ136に荷物に対応するIDが存在しないと判定した場合(S130,No)、プロセッサ134は、当該荷物にIDが付与されていないことを前提として、当該荷物の位置を改めて特定する(S140)。プロセッサ134は、特定された荷物にIDを付与する(S150)。
また、上述のステップと並行して、色画像センサ124は、距離画像を取得した各荷物の色画像を生成する。プロセッサ134は、入力部132が取得する色画像センサ124からの色画像に基づき、搬送コンベヤ150により搬送されて移動するID付きの荷物を追跡する(S160)。
プロセッサ134は、ステップS160の処理と同様に、色画像に基づき、追跡していた荷物が作業者により拾い上げられたか否かを判定する(S170)。
プロセッサ134は、ステップS170の処理において、荷物が作業者により拾い上げられていないと判定した場合(S170,No)、荷物が述する特定領域(その荷物が拾い上げられるべき所定の仕分けエリア)に存在するか否かを判定する(S180)。
プロセッサ134は、ステップS180の処理において、荷物が特定領域に存在する(到達した)と判定した場合(S180,Yes)、投影画像を生成し、プロジェクタ140に送信する(S190)。
プロセッサ134は、ステップS180の処理において、荷物が特定領域に存在する(到達した)と判定しない場合(S180,No)、ステップS160に戻り、プロセッサ134は、荷物の追跡を続行する。
また、プロセッサ134は、ステップS170の処理において、荷物が作業者により拾い上げられたと判定した場合(S170,Yes)、荷物の詳細情報をメモリ36から読み出す(S175)。
投影指示装置130(またはプロセッサ134)は、メモリ36から読み出された荷物の詳細情報を含む投影画像を生成し、出力部138によって生成された投影画像をプロジェクタ140に出力する(S190)。プロジェクタ140は、投影指示装置130から取得された当該投影画像を対応する荷物に投影する。
以上は、実施の形態2に係る投影指示装置130のプロセッサ134等が行う動作手順例である。なお、図23に示す投影支持装置130の動作手順例は、上述したものには限定されない。例えば、ステップS170における判定処理等は省略することも可能である。また、ステップS170の処理における判定手法は、作業者の手と荷物との接触判定、色画像または距離画像等を利用することも可能である。
次に、図24~図31を参照して、欠品検知システム201について説明する。
[システム構成例]
図24は、実施の形態2に係る在庫管理システムの構成例を示すブロック図である。図1に示す在庫管理システム201は、例えば、カメラ210と、コンピュータ220と、を備えてよい。なお、「在庫管理システム」は、「在庫監視システム」と言い換えられてもよい。
カメラ210は、例えば、商品を販売する店舗内に設置されて、商品が陳列されるエリア(例えば、商品の陳列棚250が設置されたエリア)を撮影する。陳列棚250が設置される店舗の業種または業態、店舗が扱う商品の種類は限定されない。
陳列棚250は、例えばスーパーマーケット、コンビニエンスストア、百貨店、量販店、ディスカウントストア、あるいは各種施設に設置された売店や販売ブース(又は販売コーナー)に設けられてよい。また、陳列棚250は、屋内に限らず屋外に設けられてもよい。
カメラ210は、陳列棚250が含まれるエリアを撮影する専用のカメラであってもよいし、防犯カメラのように他の目的あるいは用途で利用されるカメラと兼用であってもよい。また、カメラ210は、在庫管理システム201に、複数台設けられてもよい。
カメラ210による撮影対象(「監視対象」と言い換えてもよい)と陳列棚250とは、1対1に対応付けられてもよいし、1対多あるいは多対1に対応付けられてもよい。例えば、1つのカメラ210で1つの陳列棚250を撮影対象としてもよいし、1つのカメラ210で複数の陳列棚250のそれぞれを撮影対象としてもよい。
例えば、カメラ210は、PTZ(Pan Tilt Zoom)カメラのような撮影方向および/または画角が可変のカメラを用いてもよい。これによりPTZカメラ210は、1台のPTZカメラ210で、異なる複数の陳列棚250のそれぞれを撮影対象に含めることができる。あるいは、1台のPTZカメラ210で、1つの陳列棚250の異なる領域または空間を撮影対象に含めることができる。
カメラ210は、例えば1つの陳列棚250の幅方向または高さ方向を1台のカメラ210ではカメラ映像に収めることが困難な場合、1台以上のPTZカメラ210の撮影方向を可変制御することで、幅方向または高さ方向の異なる複数の領域または空間をカメラ映像に収めることができる。
このように、カメラ210にPTZカメラを用いることで、陳列棚250毎に、あるいは、陳列棚250の異なる領域又は空間毎に、カメラ210を設置しなくてよいため、在庫管理システム201におけるカメラ210の設置台数を削減できる。
図24に例示したコンピュータ220は、情報処理装置の一例であって、パーソナルコンピュータ(PC)でもよいし、サーバでもよい。サーバには、クラウドサーバが含まれてよい。コンピュータ220とカメラ210とは、例えば、有線または無線によって接続されて、互いに通信する。また、コンピュータ220とカメラ210とは、ネットワークを介して接続されてもよい。
なお、「ネットワーク」は、有線ネットワークでもよいし、無線ネットワークでもよい。有線ネットワークの一例としては、イントラネット、インターネット、および有線LAN(Local Area Network)が挙げられる。無線ネットワークの一例としては、無線LANが挙げられる。
コンピュータ220は、例えば、カメラ210で撮影された映像データ(以下「カメラ映像」と略称することがある)を受信し、受信したカメラ映像を解析する。例えば、コンピュータ220は、陳列棚250のカメラ映像を映像認識することによって、陳列棚250における商品の在庫を監視し、商品の不足あるいは欠品を検知する。
なお、「映像認識」は、「画像認識」と言い換えられてもよい。また、商品の不足あるいは欠品を検知することを、便宜的に、「欠品検知」と総称することがある。「検知」は、「検出」に言い換えられてもよい。また、カメラ映像の受信元は、カメラ210でもよいし、例えば、カメラ210で撮影された映像データを録画する録画装置でもよい。
商品の在庫を監視することには、陳列棚250に付された棚札の位置を検知することが含まれてよい。棚札には、例えば、商品名および/または価格といった、商品に関する情報(以下「商品情報」と称する)が示されてよい。棚札は、紙棚札であってもよいし、電子棚札であってもよい。電子棚札は、液晶ディスプレイ等で構成されていてもよいし、電子ペーパー等で構成されていてもよい。また、電子棚札は、無線通信機能等を備えており、提示する情報を遠隔で書き換えられるものであってもよい。なお、「棚札」は、棚タグ、棚カードまたは棚ラベルといった別の呼称で呼ばれてもよい。
コンピュータ220は、例えば、カメラ映像の映像認識によって、陳列棚250に付された棚札の位置を検知し、検知した棚札位置に基づいて、陳列棚250において在庫を監視する対象の領域または空間を設定してよい。
以下において、商品の在庫を監視する対象の領域または空間は、「監視エリア」または「監視範囲」と総称されることがある。陳列棚250における監視エリアの設定例は、映像認識によって検知された棚札251の位置に基づいて行われ、詳細については後述する。
図25は、棚札251が付された陳列棚250の模式的な正面図である。図26は、図25に示された陳列棚250の正面図である。図26には、図25に示された陳列棚250の正面図が部分的に拡大されて示されている。非限定的な一例として、図25および図26に示される陳列棚250の陳列スペースは、3つの棚板252によって、陳列棚250の高さ方向に4つの空間に区分された態様が示されている。また、図25および図26において、点線枠で囲んだ領域は、商品270の欠品が生じた状況を表している。
また、図26には、陳列棚250をカメラ210で撮影した映像データをコンピュータ220において映像認識し、検出された棚札251の位置に基づいて設定された監視エリアにおいて商品の不足または欠品を検出した場合に、その情報を出力する例が併記されている。
陳列棚250において高さ方向に区分された陳列スペースは、「棚段」と称されてもよい。図25には、2つの棚段に着目した例が示されている。なお、1つの陳列棚250における陳列スペースの区分方法は図25に示す例に限定されず、例えば陳列棚250は、陳列棚250の高さ方向に限らず、陳列棚250の幅方向に陳列スペースが区分されてもよい。
棚札251は、陳列される商品270との対応関係を視認可能な、陳列棚250のいずれかの位置に付されてよい。例えば、棚札251は、棚板252に付されてよい。商品270は、例えば、陳列スペースのそれぞれにおいて、対応する棚札251の位置に対応した領域または空間(図25および図26の例では、棚札251の上部空間)に陳列される。
監視エリアの設定および/または在庫の監視には、検知された棚札251の位置情報に加えて、棚割に関する情報(以下「棚割情報」と称する)が用いられてよい。「棚割」とは、例えば、陳列棚250のどの陳列スペースに、どのような商品を幾つ陳列するか(または、割り当てる)を計画することを表す。
図27は、棚割情報400の一例を示す図である。図27に示すように、棚割情報400には、例えば、商品270が陳列される位置を示す情報と、その位置に陳列される商品270に関する情報と、が含まれてよい。なお、以下において、商品270が陳列される位置を示す情報を「陳列位置情報」と称することがあり、商品270に関する情報を「商品情報」と称することがある。
非限定的な一例として、陳列位置情報には、店舗番号、階数、通路番号、棚番号、棚段番号、および棚段における陳列位置のいずれか1つ以上を示す情報が含まれてよい。
商品情報には、例えば、商品270の種類または内容といった個々の商品270を特定または識別可能な情報が含まれてよい。商品270を特定または識別可能な情報の非限定的な一例としては、「XXXパスタ」または「YYYカレー」といった商品名、あるいは、商品コードが挙げられる。
なお、商品情報は、例えば、商品270のサイズ(幅、高さ、及び、奥行きの少なくとも1つ)を示す情報が含まれてもよいし、陳列する商品270の個数を示す情報、別言すると、陳列数を示す情報が含まれてもよい。また、商品情報には、商品270の価格を示す情報が含まれてもよい。
「陳列数」は、例えば、棚段の幅方向、高さ方向、および奥行き方向の1つ以上についての、商品270の陳列数を示してよい。商品270のサイズを示す情報と、商品270の陳列数を示す情報と、の一方または双方を基に、例えば、棚段において複数の商品270が占める空間または領域を特定する精度を向上することが可能である。
したがって、コンピュータ220は、棚割情報400を参照することで、棚札位置に基づく監視エリアの設定精度を向上でき、その結果、商品270の欠品検知精度を向上できる。
また、コンピュータ220は、陳列棚250に付された棚札251の、映像認識に基づく検知結果(例えば、棚札位置)を、棚割情報400に基づいて補正してもよい。棚札位置を補正することには、例えば映像認識による棚札251の検知漏れを、棚割情報400に基づいて訂正することが含まれてよい。棚割情報400を用いた監視エリアの設定例および棚札位置の補正例については、後述する。
[コンピュータ220の構成例]
次に、図28を参照して、コンピュータ220の構成例について説明する。図28は、コンピュータ220の構成例を示す図である。図28に示すように、コンピュータ220は、例示的に、プロセッサ201と、入力装置202と、出力装置203と、メモリ204と、ストレージ205と、通信部206と、を備えてよい。
プロセッサ211は、コンピュータ220の動作を制御する。プロセッサ211は、演算能力を備えた回路またはデバイスの一例である。プロセッサ211には、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)の少なくとも1つが用いられてよい。
入力装置212は、例えば、キーボードや、マウス、操作ボタン、およびマイクロフォンの少なくとも1つを含んでよい。入力装置212を通じて、プロセッサ211にデータまたは情報が入力されてよい。
出力装置213は、例えば、ディスプレイ(またはモニタ)、プリンタ、およびスピーカの少なくも1つを含んでよい。ディスプレイは、例示的に、タッチパネル式のディスプレイであってもよい。タッチパネル式のディスプレイは、入力装置212および出力装置213の双方に該当すると捉えてよい。
メモリ213は、例えば、プロセッサ211によって実行されるプログラム、およびプログラムの実行に応じて処理されるデータまたは情報を記憶する。メモリ213には、RAM(Random Access Memory)およびROM(Read Only Memory)が含まれてよい。RAMは、プロセッサ211のワークメモリに用いられてよい。「プログラム」は、「ソフトウェア」あるいは「アプリケーション」と称されてもよい。
ストレージ215は、プロセッサ211によって実行されるプログラム、および、プログラムの実行に応じて処理されるデータまたは情報を記憶する。ストレージ215に、既述の棚割情報400が記憶されてよい。なお、棚割情報400は、予めストレージ215に記憶されてもよいし、例えば、棚割情報400を管理する棚割システム(不図示)から提供されてストレージ215に記憶されてもよい。
ストレージ215は、ハードディスクドライブ(HDD)、またはソリッドステートドライブ(SSD)といった半導体ドライブ装置を含んでよい。半導体ドライブ装置の追加でまたは代替で、フラッシュメモリのような不揮発性メモリが、ストレージ215に含まれてもよい。
プログラムには、上述したように映像認識によって商品170の在庫を監視する在庫監視プログラムが含まれてよい。在庫監視プログラムを成すプログラムコードの全部または一部は、メモリ214および/またはストレージ215に記憶されてもよいし、オペレーティングシステム(OS)の一部に組み込まれてよい。
プログラムおよび/またはデータは、コンピュータ220が読取可能な記録媒体に記録された形態で提供されてよい。記録媒体の一例としては、フレキシブルディスク,CD-ROM,CD-R,CD-RW,MO,DVD,ブルーレイディスク,ポータブルハードディスク等が上げられる。また、USB(Universal Serial Bus)メモリ等の半導体メモリも記録媒体の一例である。
また、プログラムおよび/またはデータは、例えば、サーバ(不図示)から通信回線を介してコンピュータ220に提供(ダウンロード)されてもよい。例えば、通信部206を通じてプログラムおよび/またはデータがコンピュータ220に提供されて、メモリ214および/またはストレージ215に記憶されてよい。また、プログラムおよび/またはデータは、入力装置212を通じてコンピュータ220に提供されて、メモリ214および/またはストレージ215に記憶されてもよい。
通信部206は、例えば、カメラ210と通信するための通信インタフェース(IF)261を備える。通信IF261は、有線インタフェースおよび無線インタフェースのいずれであってもよい。
例えば、通信IF261は、カメラ210で撮影された映像データを受信する。受信した映像データは、例えば、プロセッサ211を介して、メモリ214および/またはストレージ215に記憶される。カメラ210がPTZカメラである場合、通信部206は、例えば、プロセッサ211からの指示に応じてPTZカメラ220と通信することで、PTZカメラ220の撮影方向および/または画角を制御してよい。
また、通信部216は、コンピュータ220とは異なる「他のコンピュータ」(不図示)と通信するための通信IF262を備えてもよい。「他のコンピュータ」は、例えば、有線または無線のネットワークに接続されたサーバでもよいし、有線または無線のネットワークに接続されたユーザ端末でもよい。「他のコンピュータ」が、既述の棚割システムにおけるコンピュータに該当してもよい。
ユーザ端末は、例えば、商品270の在庫管理者に所持されてよい。ユーザ端末の非限定的な一例としては、PC、携帯電話(スマートフォンを含む)、およびタブレット端末が挙げられる。ユーザ端末に、商品の在庫管理または在庫監視に係る情報が提供されてよい。
プロセッサ211が、例えば、メモリ214および/またはストレージ215に記憶された在庫監視プログラムを読み出して実行することにより、コンピュータ220を、映像認識によって商品270の在庫を監視する在庫監視装置として機能させることができる。
例えば、プロセッサ211が在庫監視プログラムを実行することによって、図28に例示する、棚札検出部221、監視エリア設定部222、欠品検出部223、および出力部224を含む在庫監視装置220が具現される。オプションとして、在庫監視装置220において、棚札関連付け部225、および検出棚札補正部226の一方または双方が、在庫監視プログラムの実行に応じて具現されてもよい。
棚札検出部221は、例えば、陳列棚250の全部または一部が含まれるカメラ映像の映像認識によって、カメラ映像に含まれる棚札251を検出する。例えば、棚札検出部221は、棚札251の形状および/または色に対応したテンプレート画像を用いて、カメラ映像に対してパターンマッチングを行うことにより、棚札251を検出してよい。
監視エリア設定部222は、例えば、棚札検出部221によって検出された棚札251の位置に基づいて、陳列棚250における監視エリアを設定する。
欠品検出部223は、監視部の一例であって、例えば、監視エリア設定部222によって設定された監視エリアにおける商品の有無に対応した映像変化に基づいて、陳列棚250における商品270の在庫(または「陳列状況」と称してもよい)を監視する。
例えば、欠品検出部223は、商品270が不足または欠品した場合に監視エリアに現れる背景映像をテンプレート画像に用いて、監視エリアのカメラ映像に対してパターンマッチングを行うことにより、商品270の不足または欠品を検出してよい。
なお、カメラ210の設置位置および/または撮影方向によって、カメラ映像において棚札251の形状が変わり得る。例えば、陳列棚250を正面から捉えたカメラ映像と、陳列棚250を正面からずれた斜め方向から捉えたカメラ映像とでは、棚札251の形状が異なる。
また、カメラ210の設置位置および/または撮影方向(以下、便宜的に「カメラ位置」と総称することがある)によって、商品270が不足または欠品した場合にカメラ映像に現れる背景映像も変わり得る。
例えば、陳列棚250を正面から捉えたカメラ映像では、陳列棚250の背面に位置する背板の正面方向の画像が背景映像に相当し得る。また、陳列棚250を斜め上方から捉えたカメラ映像では、例えば、棚板252の商品270が陳列される面が背景映像に相当し得る。陳列棚250を斜め側方から捉えたカメラ映像では、例えば、棚段を左右方向に仕切る仕切り板(図示せず)の表面が背景映像に相当し得る。
このように、カメラ位置によって棚札251の形状および/または背景映像が変わるため、映像認識のパターンマッチングに用いるテンプレート画像(「認識モデル」と言い換えてもよい)は、カメラ位置に対応して用意されてよい。なお、実施の形態2では、認識モデルはテンプレート画像であり、パターンマッチングによって棚札の形状および/または背景映像を認識するものとして説明するが、他の実装方法も可能である。例えば、棚札および/または背景映像それぞれについて機械学習を行うことにより生成した学習済モデルを認識モデルとして用いて、棚札および/または背景映像を認識してもよい。
例えば、カメラ210が複数の場所に設置されている場合、および/または、PTZカメラ210のように撮影方向が可変である場合には、複数のテンプレート画像が用意されてよい。テンプレート画像は、例えば、ストレージ215に記憶され、プロセッサ211によって適時に読み出される。
出力部224は、例えば在庫管理者に提示(例えば、通知)する情報を生成して出力する通知情報生成部の一例である。出力部224は、例えば、欠品検出部223による検出結果、および/または、検出結果に基づく情報を含む通知情報を生成して出力装置213および/または通信部216へ出力する。
非限定的な一例として、商品270の欠品検知を通知する情報(「通知情報」、「欠品情報」、または「アラート情報」と称されてもよい)が、出力装置213の一例であるディスプレイおよび/またはプリンタへ出力されてよい。
なお、出力部224は、欠品検出部223による検出結果および棚札検出部221による検出結果のいずれか一方または双方と、棚割情報400と、が関連付けられた情報に基づいて、通知情報を生成してもよい。
例えば、欠品検出部223による検出結果と棚割情報400とが関連付けられた情報を基に、出力部224は、商品270の欠品検知に係る場所(欠品エリア)、および/または、欠品検知した商品270の商品名を含む通知情報を生成できる。
なお、通知情報は、例えば、通信部216を介して「他のコンピュータ」へ送信されてもよい。通信部216を介した通知情報の送信には、電子メールが利用されてもよい。
棚札関連付け部225は、例えば、棚札検出部221によって検出された棚札251のそれぞれに対して、棚割情報400(例えば、商品情報)を関連付ける。
検出棚札補正部226は、例えば、棚割情報400に商品情報の一例として商品270のサイズおよび陳列数に関する情報が含まれる場合に、棚札検出部221によって検出された棚札位置を商品情報に基づいて補正してよい。
なお、図28に例示したコンピュータ(在庫監視装置)220の構成は、あくまでも例示である。在庫監視装置220においてハードウェアおよび/または機能ブロックの増減が適宜に行なわれてよい。例えば、ハードウェアおよび/または機能ブロックの追加、削除、分割、または、統合が、在庫監視装置220において、適宜に行なわれてよい。
[動作例]
次に、図29を参照して、在庫監視装置220の動作例について説明する。図29は、実施の形態2に係る在庫監視装置220の動作手順例を示すフローチャートである。
図29に示すように、在庫監視装置220は、例えば、カメラ映像を取得し(S211)、取得したカメラ映像を、例えば棚札検出部221において解析することによって、カメラ映像に含まれる棚札251を検出する(S212a)。例えば、図30において太枠500を付して示すように、映像認識によって8個の棚札251が検出される。
図30の例では、下からm段目の棚板252において2つの棚札251が検出され、その上段に位置する(下からm+1段目の)棚板252、および、更に上段に位置する(下からm+2段目)の棚板252において、それぞれ、3つの棚札251が検出されている。なお、mは1以上の整数である。
下からm段目の棚板252において検出された2つの棚札251の位置は、例えば左から順に、n番目およびn+1番目(nは1以上の整数)の位置である。同様に、下からm+1番目の棚板252において検出された3つの棚札251の位置は、例えば左から順に、n番目、n+1番目、および、n+2番目の位置である。下からm+2番目の棚板252において検出された3つの棚札251の位置は、例えば左から順に、n番目、n+1番目、および、n+2番目の位置である。なお、「m段目およびn番目」の位置を、「m段n番」または「m段n列」の位置と表記することがある。
在庫管理システム201に複数台のカメラ210が備えられている場合、あるいは、カメラ210にPTZカメラが用いられる場合、在庫監視装置220は、例えば、カメラ位置を示す情報を取得して棚札検出部221に与えてよい(図29のS211a)。
カメラ位置を示す情報は、例えば、棚割情報400と予め関連付けられていてよい。棚札検出部221は、例えば、カメラ位置を示す情報と棚割情報400に基づいて、いずれのカメラ210のいずれの撮影方向のカメラ映像であるかを識別して、映像認識による棚札251の検出に適した認識モデルを設定してよい。なお、カメラ位置を示す情報と棚割情報400との関連付けの一例については後述する。
棚札251の検出(図29のS212)に応じて、在庫監視装置220は、例えば監視エリア設定部222によって、商品270の在庫を監視する監視エリアを設定する(図29のS213)。例えば、監視エリア設定部222は、検出された棚札251のうちの1つを基準棚札251に設定する。非限定的な一例として、図30には、左下(1段1番)の棚札251が基準棚札251に設定される態様が示されている。
基準棚札251は、在庫監視装置220(例えば、監視エリア設定部222)が自律的に設定してもよいし、在庫監視装置220のユーザ(例えば、在庫管理者)によって指定(マニュアル指定)されてもよい。
例えば、基準棚札251の色(例えば、フレームカラー)および/または形状といった外観を他の棚札251の外観とは異ならせておくことで、映像認識によって基準棚札251を自律的に設定可能である。
あるいは、「○段△番」の棚札251といった情報が、基準棚札251を指定する情報として入力装置212を通じて監視エリア設定部222に入力されてもよい。また、マニュアル指定は、自律的な設定の補完に用いられてもよい。
基準棚札251の設定に応じて、監視エリア設定部222は、例えば、図27に例示した棚割情報400(例えば、陳列位置情報)を基に、基準棚札251に対して上下方向および/または左右方向に隣り合う棚札251を検出してよい。
なお、上下方向および/または左右方向に隣り合う棚札251を、便宜的に、「隣接棚札251」と称することがある。隣接棚札251の「検出」は、隣接棚札251の「検索」または「探索」と言い換えられてもよい。
監視エリア設定部222は、検出した棚札251間の距離に基づいて、監視エリアを設定してよい。監視エリアの設定例を図31に示す。
図31は、監視エリアの設定例を示す図である。図31において、例えば、m(=1)段n(=1)番の棚札251を基準棚札に設定した場合、監視エリア設定部223は、基準棚札251と隣接棚札251との間の距離を求める。
例えば、m段n番の基準棚札251と、右方向のm段n+1番の棚札251と、の間の距離Rxが検出され、また、基準棚札251と、上方向のm+1段n番の棚札251と、の間の距離Ryが検出される。
監視エリア設定部222は、例えば、距離RxおよびRxによって定まるサイズおよび形状の監視エリアMA(点線枠参照)を、1段1番の棚札251についての監視エリアに設定する。監視エリア設定部222は、他の棚札251についても、隣接棚札251との間の距離RxおよびRyを検出することで、映像認識によって検出された棚札251のそれぞれについて監視エリアMAを設定する。
なお、監視エリアMAの形状は、矩形でもよいし楕円形のような円形でもよい。また、棚札251間の距離に基づいて監視エリアMAが設定されるため、棚札251は、一定のルール(例えば、商品270の左下に棚札251を設置するといったルール)に従って設置されることが好ましい。一定のルールが定められていれば、各棚札251の位置とこのルールに基づいて正確な監視エリアMAを設定することができる。例えば、商品270の左下に棚札251が配置されるのであれば、監視エリアは当該棚札251の右側に存在することが分かる。
また、棚札251が設置されない棚段(例えば、最上段の棚段)が存在する場合、ダミーの棚札251を設置することで、ダミーの棚札251を含む棚札251間の距離が求められてよい。なお、ダミーの棚札251を使って最上段の棚段より上の距離Ryを求める場合には、例えば棚に設置するPOPにダミーの棚段251を設置する等としてもよい。あるいは、棚札251が設置されない棚段における距離Ryについては、他の棚段(例えば、下段の棚段)との距離に基づいて、棚札251間の距離が求められてもよい。具体的には、パースの歪みの少ない直下の棚段のRyを再利用したり、あるいは、カメラのパラメータを踏まえて他の棚段のRyを変換してRyを推定したりしてもよい。あるいは、棚札251が設置されない棚段については、手動で棚札251間の距離が設定されてもよい。
また、棚段の右端に位置する棚札251については、隣り合う別の陳列棚250が存在すれば、その陳列棚250に付された棚札251との間の距離として棚札251間の距離が求められてよい。あるいは、棚段の右端に位置する棚札251については、カメラ映像の画像端との距離が棚札251間の距離として設定されてもよい。
なお、棚割情報400には、例えば、監視対象である商品270の幅、高さ、奥行き、および、陳列数の1つ以上に関する情報が含まれてよい。この場合、当該情報を基に、検出棚札補正部226において、棚札検出部221によって検出された棚札位置が補正されてよい。
別言すると、棚割情報400は、映像認識による棚札251の検出結果の精度確認および/または補正に用いられてよい。棚札251棚札位置の補正によって、監視対象である商品270の欠品検出精度を高めることができる。
監視エリアMAの設定後、在庫監視装置220は、欠品検出部223にて、例えば、個々の監視エリアMAのカメラ映像と背景映像とのパターンマッチングによって、監視エリアMAにおいて商品270が不足または欠品している領域を検出する(図29のS214)。
例えば図31において、m段n列の棚札251に対しては、3つの商品270を陳列できるスペースに、2つの商品270しか陳列されていない。そのため、監視エリアMAのカメラ映像において、商品270の1つ分に相当する背景映像が現れる。
また、図29に示すように、在庫監視装置220は、例えば、監視エリアMAにおいて検出された商品270が不足または欠品している領域と、その領域あるいは商品270に関する棚割情報400とを関連付ける(S214a)。
欠品検出部223は、監視エリアMAに現れた背景映像とテンプレート画像とがパターンマッチングにおいて一致することによって、背景映像の現れた領域に商品270が陳列されていないことを検出する。別言すると、棚札251に対応する商品270の不足または欠品が検出される。
商品270の不足または欠品の検出に応じて、在庫監視装置220は、例えば出力部224によって、商品270の欠品検知を通知する情報を生成して出力する(図29のS215)。商品270の欠品検知を通知する情報には、文字情報および/または音声情報が含まれてもよいし、例えばカメラ映像が表示されるディスプレイにおいて、欠品検知に係る領域を強調表示するための情報が含まれてもよい。
強調表示の非限定的な態様の一例としては、以下が挙げられる。以下の強調表示態様は、適宜に、組み合わされてもよい。
・カメラ映像において、欠品検知に係る領域(以下、便宜的に「欠品エリア」と総称することがある)の色を、他の領域の色よりも目立つ色(強調色)に変更する。
・欠品エリアを点滅表示する。
・欠品エリアを、実線枠または点線枠を付して表示する。実線枠または点線枠には、色(強調色)が付されてもよい。
・欠品エリアに付した実線枠または点線枠を点滅表示する。
以上のように、上述した在庫監視装置220によれば、陳列棚250が含まれるカメラ映像の映像認識によって検出した棚札251の位置に基づいて、カメラ映像における陳列棚250に対して監視エリアを設定するので、例えばマニュアル操作によらずに、陳列棚250が含まれるカメラ映像に対して監視エリアを適切に設定できる。なお、基準棚札をマニュアル指定する場合は、監視エリアの設定にあたってマニュアル操作を完全に排除することはできないが、監視エリアの設定の大部分を自動化でき、また、正確な基準棚札を設定できるため、従来と比べて精度よく、かつ、素早く監視エリアを設定することができる。
別言すると、陳列棚250において監視対象とする陳列スペースの設定を自動化できる。したがって、例えば、陳列棚250とカメラ210との相対的な位置関係が、振動等の外的要因で変動しても、映像認識による棚札251の検出によって、適切な監視エリアの再設定が可能である。
そして、在庫監視装置220は、設定した監視エリアにおける商品270の有無に対応した映像変化に基づいて、陳列棚250における商品270の在庫を監視し、監視結果を例えば在庫管理者に通知するので、特定の商品が欠品した状態で放置されるケースを抑制できる。したがって、商品販売の機会が喪失することを抑制でき、顧客に対するイメージアップにもつながる。
なお、本出願は、2018年6月7日出願の日本特許出願(特願2018-109251)に基づくものであり、その内容は本出願の中に参照として援用される。