(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023152431
(43)【公開日】2023-10-17
(54)【発明の名称】飲食店の客数算出システムならびに方法およびプログラム
(51)【国際特許分類】
G06Q 50/12 20120101AFI20231010BHJP
【FI】
G06Q50/12
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022062450
(22)【出願日】2022-04-04
(71)【出願人】
【識別番号】522135592
【氏名又は名称】藤 友哉
(71)【出願人】
【識別番号】522135606
【氏名又は名称】加藤 徹哉
(74)【代理人】
【識別番号】110001830
【氏名又は名称】弁理士法人東京UIT国際特許
(72)【発明者】
【氏名】藤 友哉
(72)【発明者】
【氏名】加藤 徹哉
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC24
(57)【要約】
【課題】コストをかけずに飲食店のお客の数を算出することを目的とする。
【解決手段】
飲食店の出入口5を出入りする客を撮影して得られる画像から飲食店10に入店した客および飲食店10から退店した客の数が算出される。入店した客の数が算出されたときには飲食店10にいる客の数に入店した客の数が加算され、退店した客の数が算出されたときには飲食店10にいる客の数から退店した客の数が減算されて、飲食店10にいる客の数が更新される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
飲食店の店内にいる客の数を記憶する記憶手段、
上記飲食店の出入口を出入りする客を、撮影装置が周期的に撮影して得られる画像データによって表される撮影画像を用いて、上記飲食店に入店した客の数と上記飲食店から退店する客の数とをそれぞれ算出する第1の算出手段、および
上記第1の算出手段によって上記飲食店に入店した客の数が算出されたときには上記記憶手段に記憶されている上記飲食店の店内にいる客の数に入店した客の数を加算し、上記第1の算出手段によって上記飲食店から退店する客の数が算出されたときには上記飲食店の店内にいる客の数から退店する客の数を減算して、上記記憶手段に記憶されている上記飲食店の店内にいる客の数を更新する第1の更新手段、
を備えた飲食店の客数算出システム。
【請求項2】
上記第1の更新手段により更新された、上記飲食店の店内にいる客の数と上記飲食店内の座席に座れる収容人数とから上記飲食店の混雑率または空席率を算出する第2の算出手段、
をさらに備えた飲食店の客数算出システム。
【請求項3】
上記第1の算出手段によって算出された、上記飲食店に入店した客の数が一人または偶数の人数のときには、上記記憶手段に記憶されている上記飲食店の店内にいる客の数に入店した客の数を加算し、上記第1の算出手段によって算出された、上記飲食店から退店する客の数が一人または偶数の人数のときには、上記記憶手段に記憶されている上記飲食店の店内にいる客の数から退店する客の数を減算し、上記第1の算出手段によって算出された、上記飲食店に入店した客の数が3人以上の奇数の人数のときには、上記記憶手段に記憶されている上記飲食店の店内にいる客の数に、入店した数に1を加えた数を加算し、上記第1の算出手段によって算出された、上記飲食店から退店する客の数が3人以上の奇数の人数のときには、上記記憶手段に記憶されている上記飲食店の店内にいる客の数から、退店する数に1を加えた数を減算して上記記憶手段に記憶されている上記飲食店の店内にいる客の数を更新する第2の更新手段、および
上記第2の更新手段により更新された、上記飲食店の店内にいる客の数と上記飲食店の座席に座れる収容人数とから上記飲食店の混雑率または上記飲食店の空席率を算出する第3の算出手段、
をさらに備えた請求項2に記載の飲食店の客数算出システム。
【請求項4】
上記第3の算出手段によって算出された混雑率または空席率と上記第2の算出手段によって算出された混雑率または空席率との差異が所定の範囲内にあるときには、第3の算出手段において算出された混雑率または空席率を上記飲食店の混雑率または空席率と決定し、上記差異が上記所定の範囲内にないときには、上記第2の算出手段において算出された混雑率または空席率を上記飲食店の混雑率または空席率と決定する混雑率/空席率決定手段、
をさらに備えた請求項3に記載の飲食店の客数算出システム。
【請求項5】
上記第2の算出手段によって算出された上記飲食店の混雑率、上記第3の算出手段によって算出された上記飲食店の混雑率、もしくは上記決定手段によって決定された上記飲食店の混雑率が低いほど高くなる、または上記第2の算出手段によって算出された上記飲食店の空席率、上記第3の算出手段によって算出された上記飲食店の空席率、もしくは上記決定手段によって決定された上記飲食店の空席率が高いほど高くなるおすすめ率であって、上記飲食店への来店を促すおすすめ率を算出するおすすめ率算出手段、
をさらに備えた請求項4に記載の飲食店の客数算出システム。
【請求項6】
上記第2の算出手段によって算出された上記飲食店の混雑率、上記第3の算出手段によって算出された上記飲食店の混雑率、もしくは上記決定手段によって決定された上記飲食店の混雑率のうちのいずれかの混雑率が第1のしきい値よりも低い場合に、上記いずれかの混雑率が低いほど上記飲食店の代金を割り引くように、上記飲食店の割引率を決定する、または上記第2の算出手段によって算出された上記飲食店の空席率、上記第3の算出手段によって算出された上記飲食店の空席率、または上記決定手段によって決定された上記飲食店のいずれかの空席率が第2のしきい値よりも高い場合に、上記いずれかの空席率が高いほど上記飲食店の代金を割り引くように、上記飲食店の割引率を決定する割引率決定手段、
をさらに備えた請求項5に記載の飲食店の客数算出システム。
【請求項7】
ユーザの端末装置から送信される、上記飲食店の割引率のリクエストおよびユーザの端末装置の位置を表すデータを受信する第1の受信手段、
上記第1の受信手段において割引率のリクエストおよびユーザの端末装置の位置を表すデータを受信したことに応じて、上記ユーザの端末装置の位置から上記飲食店までの移動に必要な時間を検出する移動時間検出手段、
上記移動時間検出手段によって検出された移動に必要な時間を表す移動時間データ、および上記割引率決定手段によって決定した割引率を、上記ユーザの端末装置に送信する第1の送信手段、
ユーザが上記飲食店に到着したことに応じて、ユーザの上記端末装置から送信される到着データを受信する第2の受信手段、ならびに
上記第1の受信手段における割引率のリクエストおよびユーザの端末装置の位置を表すデータの受信から上記第2の受信手段における到着データの受信までの時間が、上記移動に必要な時間以内のときに、上記移動に必要な時間以内に、ユーザが上記飲食店に到着したことを示すクリア指令をユーザの端末装置に送信する第2の送信手段、
をさらに備えた請求項6に記載の飲食店の客数算出システム。
【請求項8】
上記第2の送信手段は、
上記第1の受信手段において割引率のリクエストおよびユーザの端末装置の位置を表すデータの受信から上記第2の受信手段における到着時刻データの受信までの時間が、上記移動時間に必要な時間以内のときに、上記クリア指令をユーザの端末装置に送信し、かつユーザの端末装置に飲食時間の計測開始指令を送信するものであり、
ユーザが上記飲食店において飲食が終了したことに応じてユーザの端末装置から送信される飲食終了データを受信する第3の受信手段、および
上記第2の受信手段における到着データの受信から上記第3の受信手段における飲食終了データの受信までの時間が、上記飲食店における飲食に必要な時間と決められた時間以内のときに、上記割引率を有効とする有効指令をユーザの端末装置に送信する第3の送信手段、
をさらに備えた請求項7に記載の飲食店の客数算出システム。
【請求項9】
記憶手段が、飲食店の店内にいる客の数を記憶し、
第1の算出手段が、上記飲食店の出入口を出入りする客を、撮影装置が周期的に撮影して得られる画像データによって表される撮影画像を用いて、上記飲食店に入店した客の数と上記飲食店から退店する客の数とをそれぞれ算出し、
第1の更新手段が、上記第1の算出手段によって上記飲食店に入店した客の数が算出されたときには上記記憶手段に記憶されている上記飲食店の店内にいる客の数に入店した客の数を加算し、上記第1の算出手段によって上記飲食店から退店する客の数が算出されたときには上記飲食店の店内にいる客の数から退店する客の数を減算して、上記記憶手段に記憶されている上記飲食店の店内にいる客の数を更新する、
飲食店の混雑率または空席率算出方法。
【請求項10】
飲食店の客数算出システムのコンピュータを制御し、コンピュータが読み取り可能なプログラムであって、
飲食店の出入口を出入りする客を撮影するように配置され、周期的に撮影して得られる撮影画像を表す画像データを出力する撮影装置から出力される画像データによって表される撮影画像を用いて上記飲食店に入店した客の数と上記飲食店から退店する客の数とをそれぞれ算出させ、
上記飲食店に入店した客の数が算出されたときには記憶手段に記憶されている上記飲食店の店内にいる客の数に入店した客の数を加算し、上記飲食店から退店する客の数が算出されたときには上記記憶手段に記憶されている上記飲食店の店内にいる客の数から退店する客の数を減算して、上記記憶手段に記憶されている上記飲食店の店内にいる客の数を更新させるように飲食店の客数算出システムのコンピュータを制御するプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、飲食店の客数算出システムならびに方法およびプログラムに関する。
【背景技術】
【0002】
飲食店などに飲食に行く場合に、その飲食店にどの程度のお客がいるかどうかを示す混雑率または空席率は、お客にとって重要なことである。このため、飲食店内の天井にカメラを設置し、飲食店内のお客の人数などを把握することなどが考えられている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、飲食店内の天井にカメラを設置し、飲食店内にいるお客の人数を把握する場合、カメラの柱の陰などのテーブルにいるお客も撮影しなければ飲食店内にあるお客の人数を把握できない。このために、死角ができないように多くのカメラを飲食店内に設置しなければならない。多くのカメラを設置すると、カメラ自体の費用もかかるし、それらのカメラの管理にも費用がかかるので、コストが高くなる。また、カメラの撮影範囲が重複しないように店舗ごとにカスタマイズする必要があるのでコストがかかる。
【0005】
この発明は、比較的コストがかからないで飲食店にいるお客の数を算出することを目的とする。
【課題を解決するための手段】
【0006】
この発明による飲食店の客数算出システムは、飲食店の店内にいる客の数を記憶する記憶手段、上記飲食店の出入口を出入りする客を、撮影装置が周期的に撮影して得られる画像データ(動画データ)によって表される撮影画像(動画、1または複数の撮影画像)を用いて、上記飲食店に入店した客の数と上記飲食店から退店する客の数とをそれぞれ算出する第1の算出手段、上記第1の算出手段によって上記飲食店に入店した客の数が算出されたときには上記記憶手段に記憶されている上記飲食店の店内にいる客の数に入店した客の数を加算し、上記第1の算出手段によって上記飲食店から退店する客の数が算出されたときには上記飲食店の店内にいる客の数から退店する客の数を減算して、上記記憶手段に記憶されている上記飲食店の店内にいる客の数を更新する第1の更新手段を備えていることを特徴とする。
【0007】
この発明は、飲食店の客数算出システムに適した算出方法も提供している。すなわち、記憶手段が、飲食店の店内にいる客の数を記憶し、第1の算出手段が、上記飲食店の出入口を出入りする客を、撮影装置が周期的に撮影して得られる画像データによって表される撮影画像を用いて、上記飲食店に入店した客の数と上記飲食店から退店する客の数とをそれぞれ算出し、第1の更新手段が、上記第1の算出手段によって上記飲食店に入店した客の数が算出されたときには上記記憶手段に記憶されている上記飲食店の店内にいる客の数に入店した客の数を加算し、上記第1の算出手段によって上記飲食店から退店する客の数が算出されたときには上記飲食店の店内にいる客の数から退店する客の数を減算して、上記記憶手段に記憶されている上記飲食店の店内にいる客の数を更新することを特徴とする。
【0008】
さらに、この発明は、飲食店の客数算出システムのコンピュータを制御するプログラムも提供している。このようなプログラムを格納した記録媒体も提供してもよい。
【0009】
上記第1の更新手段により更新された、上記飲食店の店内にいる客の数と上記飲食店内の座席に座れる収容人数とから上記飲食店の混雑率または空席率を算出する第2の算出手段をさらに備えてもよい。
【0010】
また、上記第1の算出手段によって算出された、上記飲食店に入店した客の数が一人または偶数の人数のときには、上記記憶手段に記憶されている上記飲食店の店内にいる客の数に入店した客の数を加算し、上記第1の算出手段によって算出された、上記飲食店から退店する客の数が一人または偶数の人数のときには、上記記憶手段に記憶されている上記飲食店の店内にいる客の数から退店する客の数を減算し、上記第1の算出手段によって算出された、上記飲食店に入店した客の数が3人以上の奇数の人数のときには、上記記憶手段に記憶されている上記飲食店の店内にいる客の数に、入店した数に1を加えた数を加算し、上記第1の算出手段によって算出された、上記飲食店から退店する客の数が3人以上の奇数の人数のときには、上記記憶手段に記憶されている上記飲食店の店内にいる客の数から、退店する数に1を加えた数を減算して上記記憶手段に記憶されている上記飲食店の店内にいる客の数を更新する第2の更新手段、および上記第2の更新手段により更新された、上記飲食店の店内にいる客の数と上記飲食店の座席に座れる収容人数とから上記飲食店の混雑率または上記飲食店の空席率を算出する第3の算出手段をさらに備えてもよい。
【0011】
さらに、上記第3の算出手段によって算出された混雑率または空席率と上記第2の算出手段によって算出された混雑率または空席率との差異が所定の範囲内にあるときには、第3の算出手段において算出された混雑率または空席率を上記飲食店の混雑率または空席率と決定し、上記差異が上記所定の範囲内にないときには、上記第2の算出手段において算出された混雑率または空席率を上記飲食店の混雑率または空席率と決定する混雑率/空席率決定手段を備えてもよい。
【0012】
また、上記第2の算出手段によって算出された上記飲食店の混雑率、上記第3の算出手段によって算出された上記飲食店の混雑率、もしくは上記決定手段によって決定された上記飲食店の混雑率が低いほど高くなる、または上記第2の算出手段によって算出された上記飲食店の空席率、上記第3の算出手段によって算出された上記飲食店の空席率、もしくは上記決定手段によって決定された上記飲食店の空席率が高いほど高くなるおすすめ率であって、上記飲食店への来店を促すおすすめ率を算出するおすすめ率算出手段をさらに備えてもよい。
【0013】
上記第2の算出手段によって算出された上記飲食店の混雑率、上記第3の算出手段によって算出された上記飲食店の混雑率、もしくは上記決定手段によって決定された上記飲食店の混雑率のうちのいずれかの混雑率が第1のしきい値よりも低い場合に、上記いずれかの混雑率が低いほど上記飲食店の代金を割り引くように、上記飲食店の割引率を決定する、または上記第2の算出手段によって算出された上記飲食店の空席率、上記第3の算出手段によって算出された上記飲食店の空席率、または上記決定手段によって決定された上記飲食店のいずれかの空席率が第2のしきい値よりも高い場合に、上記いずれかの空席率が高いほど上記飲食店の代金を割り引くように、上記飲食店の割引率を決定する割引率決定手段をさらに備えてもよい。
【0014】
また、ユーザの端末装置から送信される、上記飲食店の割引率のリクエストおよびユーザの端末装置の位置を表すデータを受信する第1の受信手段、上記第1の受信手段において割引率のリクエストおよびユーザの端末装置の位置を表すデータを受信したことに応じて、上記ユーザの端末装置の位置から上記飲食店までの移動に必要な時間を検出する移動時間検出手段、上記移動時間検出手段によって検出された移動に必要な時間を表す移動時間データ、および上記割引率決定手段によって決定した割引率を、上記ユーザの端末装置に送信する第1の送信手段、ユーザが上記飲食店に到着したことに応じて、ユーザの上記端末装置から送信される到着データを受信する第2の受信手段、ならびに上記第1の受信手段における割引率のリクエストおよびユーザの端末装置の位置を表すデータの受信から上記第2の受信手段における到着時刻データの受信までの時間が、上記移動に必要な時間以内のときに、上記移動に必要な時間以内に、ユーザが上記飲食店に到着したことを示すクリア指令をユーザの端末装置に送信する第2の送信手段をさらに備えてもよい。
【0015】
また、上記第2の送信手段は、上記第1の受信手段において割引率のリクエストおよびユーザの端末装置の位置を表すデータの受信から上記第2の受信手段における到着時刻データの受信までの時間が、上記移動時間に必要な時間以内のときに、上記クリア指令をユーザの端末装置に送信し、かつユーザの端末装置に飲食時間の計測開始指令を送信するものでもよい。この場合、ユーザが上記飲食店において飲食が終了したことに応じてユーザの端末装置から送信される飲食終了データを受信する第3の受信手段、および上記第2の受信手段における到着データの受信から上記第3の受信手段における飲食終了データの受信までの時間が、上記飲食店における飲食に必要な時間と決められた時間以内のときに、上記割引率を有効とする有効指令をユーザの端末装置に送信する第3の送信手段をさらに備えることが好ましい。
【発明の効果】
【0016】
この発明によると、飲食店の出入口を撮影するように撮影装置を配置することで飲食店のお客の数を算出できる。比較的低コストで飲食店のお客の数を算出できるようになる。
【図面の簡単な説明】
【0017】
【
図3】飲食店システムの概要を示すブロック図である。
【
図4】飲食店用PCの電気的構成を示すブロック図である。
【
図5】処理サーバの電気的構成を示すブロック図である。
【
図6】飲食店用PCの処理手順を示すフローチャートである。
【
図10】飲食店用PCの処理手順を示すフローチャートである。
【
図11】処理サーバの処理手順を示すフローチャートである。
【
図12】スマートフォンの表示画面に表示される画像の一例である。
【
図15】スマートフォンと処理サーバとの処理手順を示すフローチャートである。
【
図16】処理サーバの処理手順を示すフローチャートである。
【
図18】スマートフォンの処理手順を示すフローチャートである。
【
図19】スマートフォンの処理手順を示すフローチャートである。
【
図20】スマートフォンの処理手順を示すフローチャートである。
【
図21】処理サーバの処理手順を示すフローチャートである。
【
図22】処理サーバの処理手順を示すフローチャートである。
【
図23】処理サーバの処理手順を示すフローチャートである。
【
図24】処理サーバの処理手順を示すフローチャートである。
【
図26】スマートフォンの表示画面に表示される画像の一例である。
【
図27】スマートフォンの表示画面に表示される画像の一例である。
【
図28】スマートフォンの表示画面に表示される画像の一例である。
【
図29】スマートフォンの表示画面に表示される画像の一例である。
【
図30】スマートフォンの表示画面に表示される画像の一例である。
【発明を実施するための形態】
【0018】
図1は、この発明の実施例を示すもので、飲食店の店内の平面図を示している。
【0019】
飲食店10の店内には、お客が座り飲食するエリア7と厨房などのエリア8とが含まれている。エリア7には、原則として一人のお客が座る一人席1aから1h、原則として二人のお客が座る二人席2aから2cおよび原則として三人または四人のお客が座る四人席4aから4hがある。五人席またはそれ以上の席が設定されていてもよい。飲食店10の出入口5にはドア6が設けられており、お客は出入口5から飲食店10に入店し、かつ出入口5を通って飲食店10から退店する。
【0020】
出入口5を飲食店10の内部から出入口5の方向(矢印Eの方向)に向かって見た図が
図2である。
【0021】
図2を参照して、上述したように出入口5にはドア6が設けられており、ドア6を開閉してお客は出入口5を通って飲食店10に入店し、かつ退店する。
【0022】
出入口5の店内の上部には出入口5を出入り(入店、退店)するお客を撮影できるように(出入口5の店内の前方または出入口5の店外に向かって前方を撮影できるように)カメラ9が配置されている。カメラ9によって出入口5を通って入店するお客の後ろ姿を撮影でき、かつ出入口5を通って退店するお客の正面の姿を撮影できる。カメラ9が飲食店10の店外の出入口5の上部に配置される場合には、カメラ9によって出入口5を通って退店するお客の後ろ姿を撮影でき、かつ出入口5を通って入店するお客の正面の姿を撮影できる。出入口5を出入りするお客を撮影できる場所にカメラ9が配置されればよく、出入口5の上部でなく、左側または右側に配置されていても良く、出入口5を撮影することで出入口5を出入りするお客を撮影できるように上述のように飲食店10の店内または店外に配置されていてもよい。2つ以上の出入口5がある場合には、それそれの出入口5にカメラ9が設けられる。
【0023】
図3は、この発明の実施例による飲食店システムの構成を示すブロック図である。
【0024】
飲食店10には、上述したカメラ9(撮影装置の一例である)が設けられており、そのカメラ9は飲食店用PC(パーソナル・コンピュータ)(コンピュータであれば、パーソナル・コンピュータに限らない)11と接続されている。カメラ9によって周期的に撮影(動画撮影)され、周期的に撮影された画像を表す画像データ(動画データ)が出力され
、飲食店用PC11に入力する。飲食店用PC11は、ルータ12に接続され、モデム13を介してインターネット30に接続できる。
【0025】
インターネット30には処理サーバ40および携帯電話(スマートフォン)の基地局が接続され、スマートフォン31は基地局32にアクセスすることでインターネットに接続できる。
【0026】
図4は、飲食店用PC11の電気的構成を示すブロック図である。
【0027】
飲食店用PC11(飲食店の客数算出システムの一例である)の全体の動作はCPU(Central Processing Unit)20によって統括される。
【0028】
飲食店用PC11には、表示装置21、時計22、画像I/F(インターフェイス)23、メモリ24が含まれている。また、飲食店用PC11には、キーボード25、HD(ハードディスク)27、HDD(ハードディスク・ドライブ)26および通信I/F28も含まれている。
【0029】
通信I/F28によって上述したルータ12と飲食店用PC11とが接続され、飲食店用PC11がインターネット30に接続される。また、カメラ9が画像I/F23に接続され、カメラ9によって周期的に撮影して得られる撮影画像を表す画像データが飲食店用PC11に入力する。
【0030】
後述する飲食店用PC11の処理を制御するコンピュータ・プログラムは、インターネットから通信I/F28を介して飲食店用PC11にダウンロードされて飲食店用PC11にインストールされる。そのようなコンピュータ・プログラムが格納されている記録媒体からコンピュータ・プログラムを読み取り、飲食店用PC11にインストールされるようにしてもよい。
【0031】
図5は、処理サーバ40の電気的構成を示すブロック図である。
【0032】
処理サーバ40の全体の動作はCPU41において統括される。
【0033】
処理サーバ40には、時計42、メモリ43、キーボードなどの入力装置44が含まれている。さらに、処理サーバ40には、HD(ハードディスク)46、HDD(ハードディスク・ドライブ)45および通信I/F(インターフェイス)47も含まれている。通信I/F47を介して処理サーバ40とインターネット30とが通信可能に接続される。
【0034】
後述する処理サーバ40の処理を制御するコンピュータ・プログラムは、インターネットから通信I/F47を介して処理サーバ40にダウンロードされて処理サーバ40にインストールされる。そのようなコンピュータ・プログラムが格納されている記録媒体からコンピュータ・プログラムを読み取り、処理サーバ40にインストールされるようにしてもよい。
【0035】
図6は、飲食店用PC11の処理手順を示すフローチャートである。
図6に示すフローチャートは、飲食店用PC11を用いて飲食店10の空席率(飲食店10に座れる収容人数に対して、どのくらい空いている席があるかの割合)を算出するものである。
図7は、飲食店用PC11のメモリ24(HD27でもよい)(記憶手段の一例である)に記憶されている店内人数テーブルの一例である。
図7に示す店内人数テーブルは、時刻とその時刻のときの店内人数(店内にいる客の数、この処理により算出された店内にいるとみなされる客の数)とを対応して格納している。
【0036】
飲食店10のその日の営業を開始する前に、
図6に示す処理が開始する。飲食店10において、たとえば、営業を開始するときに店内人数をリセットするコマンドがキーボード25を用いて飲食店用PC11に入力すると店内人数テーブルの店内人数がリセットされる(ステップ51)。たとえば、午前11時ちょうどに店内人数がリセットされると、
図7に示すように11時の時刻に対応して店内人数が0にセットされる。
【0037】
カメラ9による周期的な撮影が行われ、得られた撮影画像から飲食店10へのお客の入店人数および退店人数が飲食店用PC11のCPU20(第1の算出手段の一例である)によって算出される(ステップ52)。
【0038】
図8は、カメラ9の撮影によって得られた撮影画像の一例である。撮影画像F1の後に撮影画像F1nが撮影されている。
【0039】
撮影画像F1およびF1nのいずれにも、ほぼ中央に水平方向に渡ってラインLが表示されている。このラインLは撮影画像F1およびF1nに実際に表示されていてもよいし、実際には表示させずに仮想的に設けられていてもよい。
【0040】
撮影画像F1には、人物画像P1およびP2が含まれており、撮影画像F1の後に撮影された撮影画像F1nにも人物画像P1およびP2が含まれている。撮影画像F1と撮影画像F1nとの類似度がしきい値以上であると撮影画像F1に含まれている人物画像P1およびP2と撮影画像F1nに含まれている人物画像P1およびP2とは同一人物の画像と判定される。これらの人物画像P1およびP2は撮影画像F1のときにはラインL上にあり、撮影画像F1の後に撮影された撮影画像F1nにおいてはラインLよりも下にあるから、これらの人物画像P1およびP2の人物は飲食店10の出入口5に向かっていると判断される。このため、人物画像P1およびP2の人物は飲食店10から退店するものと考えられる。退店人数は2人となる。
【0041】
このような処理は飲食店用PC11のCPU20において、撮影画像F1およびF1n(カメラ9から周期的に出力される撮影画像)から人物画像(人物全体の画像でもよいし、人物の上半身の画像、人物の下半身の画像のように人物の一部の画像でもよい)を検出する処理を行い、検出された人物画像がラインLの上から下に向かって通過したかどうかを確認することにより実現できる。同一人物が含まれており、時間的に異なるタイミングで撮影された少なくとも2つの撮影画像において、先に撮影された画像に含まれる人物画像が後に撮影された画像に含まれる人物画像ではラインLを上から下に通過したことを表していたら、その人物画像の人物が退店したものと判断し、その人物画像の人数が退店人数と判断すればよい。
【0042】
図9も、カメラ9の撮影によって得られた撮影画像の一例である。撮影画像F2の後に撮影画像F2nが撮影されている。
【0043】
撮影画像F2およびF2nのいずれにおいても、ほぼ中央に水平方向に渡ってラインLが表示されている。このラインLも撮影画像F2およびF2nに実際に表示されていてもよいし、実際には表示させずに仮想的に設けられていてもよい。
【0044】
撮影画像F2には、人物画像P11、P12およびP13が含まれており、撮影画像F2の後に撮影された撮影画像F2nにも人物画像P11、P12およびP13が含まれている。撮影画像F2と撮影画像F2nとの類似度がしきい値以上であると撮影画像F2に含まれている人物画像P11、P12およびP13と撮影画像F2nに含まれている人物画像P11、P12およびP13とは同一人物の画像と判定される。これらの人物画像P11、P12およびP13は撮影画像F2のときにはラインLより下にあり、撮影画像F2よりも後に撮影された撮影画像F2nにおいてはラインL上にあるから、これらの人物画像P11、P12およびP13の人物は飲食店10の出入口5から店内に入ったものと考えられる。入店人数は3人と考えられる。
【0045】
このような処理は飲食店用PC11のCPU20において、撮影画像F2およびF2nから人物画像を検出し、検出した人物画像がラインLの下から上に向かって通過したかどうかを確認することにより実現できる。同一人物が含まれており、時間的に異なるタイミングで撮影された少なくとも2つの撮影画像において、先に撮影された画像に含まれる人物画像が後に撮影された画像に含まれる人物画像ではラインLを下から上に通過していることを表していたら、その人物画像の人物が入店したものと判断し、その人物画像の人数が入店人数と判断すればよい。
【0046】
図8に示す例では、人物画像P1およびP2の上半身(人物画像の一部)がラインLを上から下に通過することにより、それらの人物画像P1およびP2の人物が退店したと判定し、
図9に示す例では、人物画像P11、P12およびP13の上半身がラインLを下から上に通過することにより、それらの人物画像P11、P12およびP13の人物が入店したと判定している。しかしながら、人物画像の下半身または人物画像の全体(人物であることがわかる部分であれば人物画像の上半身、下半身でなくとも人物画像の一部でもよい)がラインLを上から下に通過することにより退店と判断してもよいし、人物画像の下半身または人物画像の全体がラインLを下から上に通過することにより入店と判断してもよい。
【0047】
さらに、人物画像の一部として顔画像を検出し、検出された顔画像がラインLを上から下に通過した場合に、その顔画像の人物が退店したと判断してもよいし、人物画像の後頭部の画像を検出し、検出された後頭部の画像がラインLを下から上に通過した場合に、その後頭部の人物が入店したと判断してもよい。
【0048】
図8および
図9においては、いずれも2枚の撮影画像(複数の撮影画像)を用いて入店人数および退店人数を算出しているが、それぞれ1枚の撮影画像を用いて入店人数および退店人数を算出してもよい。たとえば、顔画像がカメラ9に向いており、かつラインLと重畳している場合に退店すると判断し、退店人数を算出し、後頭部の画像がカメラ9に向いており、かつラインLと重畳している場合に入店したと判断し、入店人数を算出する。複数の撮影画像において、同一人物についての顔画像または後頭部の画像がラインLと重畳していても、その場合は一人と考える。
【0049】
カメラ9は、飲食店の出入口5の上部から店内に向かって撮影しているから、撮影画像に含まれている人物画像(人物の全体の画像、人物の上半身の画像、人物の下半身の画像、人物の一部の画像など)が上から下に向かってラインLを超える場合には、その人物画像のお客は退店するとみなし、撮影画像に含まれている人物画像が下から上に向かってラインLを超える場合には、その人物画像のお客は入店したとみなしている。しかしながら、カメラ9が飲食店の出入口5の上部から店外に向かって撮影する場合には、撮影画像に含まれる人物画像が上から下に向かってラインLを超えるときには、その人物画像のお客は入店するとみなし、撮影画像に含まれる人物画像が下から上に向かってラインLを超えるときには、その人物画像のお客は退店するとみなしてもよい。また、カメラ9が飲食店の出入口5の上部から店外に向かって撮影する場合に、1枚の撮影画像を用いて入店人数および退店人数を算出ときには、たとえば、顔画像がカメラ9に向いており、かつラインLと重畳している場合に入店すると判断して入店人数を算出し、後頭部の画像がカメラ9に向いており、かつラインLと重畳している場合に退店したと判断して退店人数を算出してもよい。
【0050】
図6にもどって、算出された人数(入店人数、退店人数)が、1人、偶数、3人以上の奇数のうちのどれかが判断される(ステップ53)。
【0051】
算出された人数が1人または偶数の場合であり、かつ入店のときには(ステップ54)、店内人数テーブルに格納されている最新の店内人数に算出された人数がCPU20(第1の更新手段の一例である)によって加算される(ステップ55)。この加算により、入店した人数が店内にいる人数に加算されることとなるので店内人数テーブルの店内人数が更新される(ステップ57)。店内にいる人数が低コストで比較的正確に把握されることとなる。
【0052】
算出された人数が1人または偶数の場合であり、かつ退店のときには(ステップ54)、店内人数テーブルに格納されている最新の店内人数から算出された人数がCPU20(第1の更新手段の一例である)によって減算される(ステップ56)。この減算により、店内にいる人数から退店した人数が減算されることとなり店内人数テーブルの店内人数がCPI20(第1の更新手段の一例である)によって更新される(ステップ57)。
【0053】
算出された人数が3人以上の奇数の場合であり、かつ入店のときには(ステップ58)、店内人数に、入店した人数に最適な座席数分の人数(入店した人数+1、たとえば、入店人数が3人なら4人)がCPU20(第2の更新手段の一例である)によって加算される(ステップ59)。入店人数が3人以上の奇数の場合には、偶数人数で座れる席が用意されることが多い。たとえば、入店人数が3人なら、4人席が用意され、入店人数が5人なら6人席(4人席と2人席とが合わせられる)が用意されることが多い。このために入店人数が3人以上の奇数の場合には、店内人数に、入店人数に最適な座席数の人数(入店した人数+1)がCPU20(第2の更新手段の一例である)によって加算される(ステップ59)。この加算により、入店した人数が使用する席の数だけ、店内にいる人数に加算されて店内人数テーブルの店内人数がCPU20(第2の更新手段の一例である)更新される(ステップ57)。
【0054】
算出された人数が3人以上の奇数の場合であり、かつ退店のときには(ステップ58)、店内人数から、退店した人数に最適な座席数分の人数(退店人数+1、たとえば、入店人数が3人なら4人)がCPU20(第2の更新手段の一例である)によって減算される(ステップ60)。退店人数が3人以上の奇数の場合には、偶数人数で座れる席を利用していたことが多い。たとえば、入店の場合と同様に、退店人数が3人なら、4人席を使用しており、退店人数が5人なら6人席(4人席と2人席とが合わせられる)を使用していることが多い。このために退店人数が3人以上の奇数の場合には、店内人数から、退店人数に最適な座席数の人数(退店人数+1)がCPU20(第2の更新手段の一例である)によって減算される(ステップ60)。この減算により、退店した人数が使用していた席の数だけ、店内にいる人数から減算されて店内人数テーブルの店内人数がCPU20(第2の更新手段の一例である)によって更新される(ステップ57)。
【0055】
店内人数が更新されると、CPU20(第3の算出手段の一例である)によって、飲食店10の収容人数から店内人数を減算した数を飲食店10の収容人数で除して空席率が算出される(ステップ61)。たとえば、
図1に示すように飲食店の収容人数が46人(4人席が8つ、2人席が3つ、1人席が8つ)であり、店内人数が15人であったとすると、(収容人数-店内人数)/(収容人数)=(46-15)/46=67%の空席率となる。
【0056】
空席率の送信から一定時間(たとえば、30秒)が経過していなければ(ステップ62でNO)、ステップ52からの処理が繰り返される。空席率の送信から一定時間が経過していると(ステップ62でYES)、算出された空席率を表すデータが飲食店用PC11から処理サーバ40に送信される(ステップ63)。
【0057】
入店人数または退店人数が3人以上の奇数の場合には、実際に席に座ったときに使用される席の数を考慮して空席率を算出しているので、低コストで比較的正確な空席率が算出される。
【0058】
このようにして、
図7に示すように、たとえば、午前11時30分には店内人数が2人、12時には店内人数が15人、12時45分には店内人数が46人、13時には店内人数が31人、14時15分には店内人数が5人とそれぞれ算出される。
【0059】
上述した実施例では、空席率を算出しているが、空席率の代わりに(店内人数)/(収容人数)を用いてCPU20(第2の算出手段、第3の算出手段の一例である)によって混雑率を算出してもよい。
【0060】
図10は、飲食店用PC11の処理手順を示すもので、飲食店10の空席率を算出する処理手順を示すフローチャートである。
図10に示す処理は、
図6に示す処理に対応している。
図6に示す処理では、入店または退店した人数が1人か、偶数か、3人以上の奇数かによって処理が変更されているが、
図10に示す処理では、入店または退店した人数が1人か、偶数か、3人以上の奇数かによって処理が変更されずに空席率が算出される。
図10に示す処理は、
図6のステップ51、52、54-57、61、62および63の処理に対応する。
【0061】
店内人数データ・ベースに格納されている店内人数がリセットされ(ステップ71)、撮影画像から上述したように入店人数、退店人数がCPU20(第1の算出手段の一例である)によって算出される(ステップ72)。お客が入店した場合には(ステップ73)、店内人数に算出された人数がCPU20(第1の更新手段の一例である)によって加算され(ステップ74)、お客が退店した場合には(ステップ73)、店内人数に算出された人数がCPU20(第1の更新手段の一例である)によって減算される(ステップ75)。
【0062】
店内人数データ・ベースに格納されている店内人数が更新され(ステップ76)、CPU20(第2の算出手段の一例である)によって収容人数から店内人数を減算して得られた値が収容人数で除されることで空席率が算出される(ステップ76)。空席率の送信から一定時間が経過していなければ(ステップ78でNO)、ステップ72からの処理が繰り返される。空席率の送信から一定時間が経過していると(ステップ78でYES)、算出された空席率を表すデータが飲食店用PC11から処理サーバ40に送信される(ステップ79)。
【0063】
図6に示す処理を行うか、
図10に示す処理を行うかは、店舗ごとにあらかじめ設定することが好ましい。たとえば、飲食が主体のバー、スナック、軽食が主体の牛丼屋、カレー屋、立ち食いそば屋などのように主にカウンター席の飲食店は、
図10に示す処理を行ない、和食料理店、中華料理店、ファミリー・レストラン、洋食店や、焼き肉、すき焼きなどの専業店のように食事を主体とする飲食店は、
図6に示す処理を行うように飲食店用PC11を設定するようにしてもよい。また、
図6に示す処理と
図10に示す処理とを切り替えることができるように飲食店用PC11を設定してもよい。さらに、
図6に示す処理と
図10に示す処理との両方の処理ができるようにして
図6に示す処理により算出された空席率(第1の空席率とする)または混雑率(第1の混雑率とする)と
図10に示す処理により算出された空席率(第2の空席率とする)または混雑率(第2の混雑率とする)とを算出してもよい。
【0064】
上述の実施例においては、飲食店用PC11において、店内人数テーブルが記憶され、飲食店10の入退店した客の数が算出され、店内人数テーブルに記憶されている店内人数が更新され、かつ混雑率または空席率が算出されているが、カメラ9から出力された画像データを処理サーバ40に送信し、処理サーバ40において、店内人数テーブルが記憶され、飲食店10の入退店した客の数が算出され、店内人数テーブルに記憶されている店内人数が更新され、かつ混雑率または空席率が算出されてもよい。また、飲食店用PC11において、店内人数テーブルが記憶され、かつ飲食店10の入退店した客の数が算出され、算出された客の数を表すデータが処理サーバ40に送信され、処理サーバ40において、店内人数テーブルに記憶されている店内人数を更新する指令を飲食店用PC11に与え、かつ混雑率または空席率が算出されてもよい。さらに、飲食店用PC11において、店内人数テーブルが記憶され、飲食店10の入退店した客の数が算出され、かつ店内人数テーブルが更新され、飲食店にいる客の数と収容人数とをそれぞれ表すデータを飲食店用PC11から処理サーバ40に送信し、処理サーバ40において、混雑率または空席率が算出されてもよい。
【0065】
図11は、処理サーバ40の処理手順を示すフローチャートである。
図11は、
図6に示す処理と
図10に示す処理との両方の処理が行われ、第1の空席率と第2の空席率とが飲食店用PC11から処理サーバ40に送信された場合の処理サーバ40の処理手順を示している。処理サーバ40において第1の空席率と第2の空席率とを算出した場合も同様の処理ができる。
【0066】
処理サーバ40が飲食店用PC11から送信された第1の空席率を表すデータおよび第2の空席率を表すデータを受信すると(ステップ81でYES)、第1の空席率と第2の空席率との差異が所定の範囲内かどうかが確認される(ステップ82)。たとえば、第2の空席率のプラスマイナス10%以内に、第1の空席率が含まれていれば、第1空席率と第2の空席率との差異が所定の範囲内と判定される。第2の空席率が40%であったとしたら、第1の空席率が36%から44%の間に含まれれば、第1の空席率と第2の空席率との差異が所定の範囲内と判定され(ステップ82でYES)、第1の空席率が飲食店10の空席率と決定される(ステップ83)。第1の空席率と第2の空席率との差異が所定の範囲以内に無ければ(ステップ82でNO)、第2の空席率が飲食店10の空席率と処理サーバ40のCPU41(混雑率/空席率決定手段の一例である)によって決定される(ステップ84)。
【0067】
後述する飲食店テーブル(
図13参照)に格納されている空席率が、このようにして決定された空席率に書き換えられる。
図6に示す処理または
図11に示す処理のいずれかの処理が行われる場合も、飲食店テーブルに格納されている空席率が、飲食店用PC11から送信される空席率を表すデータによって表される空席率に書き換えられる。
【0068】
図11に示す処理では、空席率が決定されるが同様にして混雑率が決定されてもよい。また、
図11に示す処理は処理サーバ40において行われているが、飲食店用PC11のCPU20(混雑率/空席率決定手段の一例である)において同様にして空席率または混雑率が決定されるようにしてもよい。
【0069】
図12は、スマートフォン31の表示画面31Aに表示されるおすすめ飲食店サイトの画像90である。
【0070】
スマートフォン31には、あらかじめおすすめ飲食店サイトを表示するためのアプリケーションがインターネットを介してダウンロードされ、かつインストールされている。そのアプリケーションを立ち上げると
図12に示す画像90がスマートフォン31の表示画面31Aに表示される。
【0071】
画像90には、店名入力枠91、エリア入力枠92、割引率入力枠93、検索ボタン94、現在地で検索ボタン95およびおすすめ率で検索ボタン96が表示されている。
【0072】
店名入力枠91に具体的な店名を入れることでこのアプリケーションに登録されている飲食店の中から所望の飲食店を見つけることができる。エリア入力枠92に所望のエリアを入力することでこのアプリケーションに登録されている飲食店の中から所望のエリア内に登録されている飲食店を見つけることができる。割引率入力枠93に割引率を入力することでこのアプリケーションに登録されている飲食店の中から所望の割引率で割り引く飲食店を見つけることができる。検索ボタン94を押すことで、店名入力枠91に入力された店名、エリア入力枠92に入力されたエリアまたは割引率入力枠93に入力された割引率にそれぞれ対応する飲食店の検索指令がスマートフォン31に与えられ、後述のように所望の飲食店が見つけられる。現在地で検索ボタン95が押されると、後述のようにスマートフォン31のある位置の近くの飲食店が見つけられ、おすすめ率で検索ボタン96が押されると、後述のようにおすすめ率の高い飲食店が見つけられる。
【0073】
検索結果表示領域100には、検索により見つけられた第1の飲食店についての情報などが表示されている。飲食店名表示領域101には、見つけられた飲食店の店名が表示されている。オフクーポン表示領域102には、見つけられた飲食店での代金の割引率が表示されている。空席率表示領域103には、見つけられた飲食店の空席率が表示されている。おすすめ率表示領域104には、見つけられた飲食店のおすすめ率が表示されている。予約・メニュー・ボタン105は、予約をしたり、メニューを確認したりするときに押されるボタンである。検索結果表示領域110も同様である。
【0074】
図12においては、2つの検索結果表示領域100、110が表示されているが、検索結果に応じた数の検索結果表示領域が表示画面31Aに表示される。検索前には検索結果表示領域100、110は表示されないが、領域101、102、103、104などの枠だけが表示されてもよいし、それらの領域101、102、103、104などにサンプルが表示されてもよい。。
【0075】
図13は、処理サーバ40のハードディスク46に記録されている飲食店テーブルの一例である。
【0076】
飲食店テーブルには、このシステム(アプリケーション)に登録されている店舗についての情報が格納されている。店舗の情報としては、飲食店を識別するための店コード、飲食店名、飲食店の住所、後述するようにクーポンを利用するために飲食店で飲食するときの制限時間である食事タイム・リミット、飲食店が対象と考えているお客の対象年齢、性別、シチュエーション情報、その飲食店の評価点数、その飲食店の空席率、その飲食店の割引率、その飲食店のおすすめ率などがある。
【0077】
シチュエーション情報は、その飲食店をユーザが利用する場合に飲食店が考えている形態であり、たとえば、一人で利用するのか、カップルで利用するのか、家族で利用するのか、ランチ向けか、ディナー向けかなどである。評価点数は、処理サーバ40のオペレータが評価した点数でもよいし、その飲食店に行ったことがあるお客などにより評価された点数、その他の点数でもよい。空席率は、その飲食店の空席率であり、上述したようにして算出、または決定される。割引率は、その飲食店を利用した場合の代金の割引率であり、後述するようにして(
図16参照)空席率から決定されるが、その他の方法により決定されてもよい。食事タイム・リミットは、飲食店ごとに飲食店によってあらかじめ決められている。
【0078】
上述したように飲食店10の飲食店用PC11から飲食店ごとに送信される飲食店ごとの空席率を表すデータは処理サーバ40において適宜受信され、飲食店ごとに空席率が飲食店テーブルに順次書き換えられる。
【0079】
図14は、処理サーバ40のハードディスク46に記録されているユーザ・テーブルの一例である。
【0080】
ユーザ・テーブルには、このアプリケーションのユーザについての情報が格納されている。ユーザについての情報には、ユーザを識別するためのユーザID、アクセス権限を確認するためのパスワード、ユーザの氏名、ユーザの住所(たとえば、市区町村まで)、ユーザの年齢、ユーザの性別、ユーザの電話番号などである。これらのユーザについての情報は、あらかじめユーザによってスマートフォン31から入力され、処理サーバ40に送信されることにより処理サーバ40によってユーザ・テーブルに格納されている。
【0081】
図15は、スマートフォン31と処理サーバ40との間の処理手順を示すフローチャートである。
【0082】
スマートフォン31のユーザがおすすめ飲食店サイトのアプリケーションを立ち上げると(ステップ121)、おすすめ飲食店サイトのリクエスト・ボタン(図示略)が表示される。そのリクエスト・ボタンをユーザが押すと、シチュエーション情報を入力するためのポップアップ・ウインドウが表示される(ステップ122)。ユーザは、そのポップ・ウインドウに、自分が利用するシチュエーションを入力する。また、店名入力枠91への飲食店名の入力、エリア入力枠92へのエリアの入力、割引率入力枠への割引率の入力などが行われ、検索ボタン94が押されると、入力された情報(検索条件)と検索指令がスマートフォン31から処理サーバ40に送信される。現在地で検索ボタン95が押されるとスマートフォン31がある位置情報(検索条件)および検索指令が、おすすめ率で検索ボタン96が押されるとおすすめ率のプルダウン・メニューが現れ所望のおすすめ率がスマートフォン31のユーザによって選択され選択されたおすすめ率(検索条件)および検索指令がスマートフォン31から処理サーバ40に送信される。さらに、スマートフォン31は、処理サーバ40に接続して所定のURL(Uniform Resource Locator)にアクセスする。このとき、スマートフォン31から処理サーバ40に、おすすめ飲食店サイトのアプリケーションに関連づけられてスマートフォン31に記録されているユーザID、ユーザの氏名、電話番号、シチュエーション情報などのユーザ情報が送信される。
【0083】
スマートフォン31から送信されたユーザ情報が処理サーバ40において受信されると、その受信されたユーザ情報と処理サーバ40のハードディスク46に格納されているユーザ・テーブルに記録されているユーザ情報とが一致しているかどうかのユーザ認証が行われる(ステップ131)。権限のあるユーザからのアクセスであることが認証されると、検索指令
したがって検索条件に合った飲食店が飲食店テーブルから見つけられ、見つけられた飲食店に対応した空席率が読み取られ(ステップ132)、かつ割引率も読み取られる(ステップ133)。読み取られた空席率および割引率を表すデータが飲食店の店コードおよび飲食店名に関連づけられてスマートフォン31に送信される。
【0084】
処理サーバ40においては、さらに、ユーザ・テーブルからアクセスしたユーザの年齢、性別が読み取られ(ステップ134)、飲食店テーブルから飲食店の評価点数がそれぞれ読み取られる(ステップ135)。
【0085】
スマートフォン31において、飲食店の店コードおよび飲食店名に関連付けられた空席率および割引率を表すデータが受信されると、スマートフォン31の表示画面31Aの検索結果表示領域100、110などの飲食店名表示領域101に飲食店の店名が、オフクーポン表示領域102に割引率が、空席率表示領域103に空席率が、それぞれ表示される(
図12参照)(ステップ124)。
【0086】
スマートフォン31において得られる位置情報(スマートフォン31がある現在位置の情報、GPS(Global Positioning System)情報)がスマートフォン31から処理サーバ40に送信される(ステップ125)。
【0087】
スマートフォン31から送信された位置情報が処理サーバ40において受信されると(ステップ136)、処理サーバ40とは別の経路時間算出サーバ(図示略)に処理サーバ40によって位置情報が送信される(ステップ137)。
【0088】
スマートフォン31の現在位置から、飲食店テーブルに格納されている、それぞれの飲食店まで徒歩で移動する場合に必要な時間を表す徒歩経路時間(必ずしも徒歩での移動でなくともよい。公共交通機関、自家用車、自転車での移動した場合の時間でもよい)が、経路時間算出サーバにおいて算出される。算出された徒歩経路時間を表すデータが経路時間算出サーバから処理サーバ40に送信され、処理サーバ40において受信される(ステップ138)。このようにして得られた空席率、割引率、ユーザの年齢、性別、シチュエーション情報、徒歩経路時間を用いて100点満点とするおすすめ度が処理サーバ40において算出される(ステップ139)。たとえば、空席率については、空席率の割合がそのまま空席率についての点数となる。割引率が0%の場合は点数が1点、割引率が0%より大きく5%未満の場合は点数が70点、割引率が5%以上10%未満の場合は点数が80点、割引率が10%以上20%未満の場合は点数が90点、割引率が20%以上の場合は割引率についての点数が100点となる。また、ユーザ・テーブルから読み取られた年齢が飲食店テーブルに格納されている対象年齢に含まれている場合は年齢についての点数は100点となり、その対象年齢に含まれない場合は年齢についての点数は70点となる。ユーザ・テーブルから読み取られた性別が飲食店テーブルに格納されている対象の性別に合致する場合は性別についての点数は100点となり、合致しない場合は性別についての点数は70点となる。スマートフォン31から送信されシチュエーション情報が、飲食店テーブルに格納されているシチュエーション情報に合致する場合にはシチュエーション情報についての点数は100点、合致しない場合にはシチュエーション情報についての点数は70点となる。また、徒歩経路時間についての点数は、徒歩経路時間が0分から3分未満の場合には100点、3分以上から5分未満の場合には95点、5分以上7分未満の場合には90点、7分以上10分未満の場合には85点、10分以上15分未満の場合には80点、15分以上20分未満の場合には75点、20分以上25分未満の場合には70点、30分以上の場合には65点となる。
【0089】
このようにして得られた、空席率についての点数をP1、割引率についての点数をP2、年齢についての点数をP3、性別についての点数をP4、シチュエーション情報についての点数をP5、評価点数をP6、徒歩経路時間についての点数をP7とすると、(P1×P2×P3×P4×P5×P6×P7)/(10-5)が、飲食店への来店を促すおすすめ度の点数となり、おすすめ度の点数/100がおすすめ率となり、処理サーバ40のCPU41(おすすめ率算出手段の一例である)によって算出される。年齢について、飲食店の対象年齢が、たとえば、全世代となっている場合には、対象年齢の点数P3を1とし、(P1×P2×P3×P4×P5×P6×P7)/(10-4)をおすすめ度の点数としてもよい。
【0090】
このようにして登録されている飲食店のそれぞれについて、おすすめ率が算出されると、飲食店テーブルのおすすめ率が処理サーバ40のCPU41によって書き換えられる(ステップ140)。また、算出されたおすすめ率を表すデータが処理サーバ40からスマートフォン31に送信され、
図12に示すおすすめ飲食店サイトの画像90のおすすめ率表示領域104に、対応する飲食店のおすすめ率が表示されるように、スマートフォン31の表示画面31Aに表示される画像90が更新される(ステップ126)。
【0091】
上述の実施例においては、飲食店の空席率が高いほどおすすめ率が高くなるが、飲食店の混雑率を算出し、飲食店テーブルに混雑率を記録し、混雑率が低いほどおすすめ率が高くなるようにしてもよい。
【0092】
図16は、処理サーバ40の処理手順を示すフローチャートであり、
図17は空席率/割引率テーブルの一例である。
【0093】
図16に示す処理手順は
図15ステップ133で割引率を読み取るときに行われてもよいし、適宜行われ、得られた割引率が飲食店テーブルに書き込まれてもよい。
【0094】
飲食店テーブルから空席率が飲食店ごとに読み取られる(ステップ151)。読み取られた空席率があらかじめ定められているしきい値(たとえば、20%)未満かどうかが確認される(ステップ152)。空席率がしきい値(第2のしきい値)未満ならば(ステップ152でYES)、その飲食店は比較的混んでいるので割引をする必要が無いと考えられる。このために割引率は0となる(ステップ153)。しきい値以上ならば(ステップ152でNO)、空席率に応じて代金が割り引かれるような割引率が処理サーバ40のCPU41(割引率決定手段の一例である)によって決定される(ステップ154)。
図17に示すように、たとえば、空席率が80%以上ならば割引率は20%、空席率が60%以上80%未満ならば割引率は15%、空席率が40%以上60%未満ならば割引率は10%、空席率が20%以上40%未満ならば割引率は5%となる。空席率と割引率との関係は
図17に示したもの以外でもよいのはいうまでもない。また、空席率がしきい値未満かどうかの判断をしないで、
図17に示すような空席率/割引率テーブルにおいて閾値未満の空席率の割引率を0に設定してもよい。
【0095】
上述の実施例においては、空席率から割引率が決定されているが、処理サーバ40のCPU41(割引率決定手段の一例である)において混雑率から割引率が決定されてもよい。その場合は、空席率とは逆に混雑率がしきい値(第1のしきい値)よりも低い場合に混雑率が低い(混雑していない)ほど代金を割引くように段階的に割引率が高くなる。
【0096】
図18から
図30は、ユーザが飲食店10の割引クーポンを受け取るまでの実施例を示すものである。この実施例では、後述するように到着タイム・リミット時間内にユーザが飲食店に到着し、かつ食事タイム・リミット内に飲食店での食事が終了すると割引のクーポンが有効となる。しかしながら、到着タイム・リミット時間内にユーザが飲食店に到着するだけで割引のクーポンが有効となってもよいし、食事タイム・リミット内に飲食店での食事が終了するだけで割引のクーポンが有効となってもよい。
【0097】
図18から
図20はスマートフォン31の処理手順を示すフローチャート、
図21から
図24は処理サーバ40の処理手順を示すフローチャートである。
図25は、処理サーバ40のメモリ43に一時的に記憶されるテンポラリ・テーブル、
図26から
図30はスマートフォン31の表示画面31Aの一例を示している。
【0098】
図18の処理は、
図15ステップ126のスマートフォン31の処理の後から続くものであり、
図21の処理は、
図15ステップ140の処理サーバ40の処理の後から続くものである。
【0099】
スマートフォン31のユーザは、検索により飲食に行きたい飲食店を見つけ、その飲食店についての検索結果表示領域190が
図26に示すようにスマートフォン31の表示画面31Aに表示されているものとする。
【0100】
図26を参照して、スマートフォン31の表示画面31Aに表示されている検索結果表示領域190にはユーザが見つけた飲食店名が、飲食店名表示領域101に表示されており、上述したようにオフクーポン表示領域102、空席率表示領域103、おすすめ率表示領域104および予約メニュー・ボタン105も表示されている。
【0101】
スマートフォン31のユーザがオフクーポン表示領域102をタッチすると、飲食店名表示領域101に表示されている飲食店の店コードが第1の店コードとして飲食店のクーポン取得指令(割引率のリクエスト)およびスマートフォン31の位置情報(端末装置の位置を表すデータ)と一緒にスマートフォン31から処理サーバ40に送信される(
図18ステップ162)。
【0102】
スマートフォン31から送信された第1の店コード、位置情報およびクーポン取得指令が処理サーバ40の通信I/F28(第1の受信手段の一例である)において受信されると(
図21ステップ182)、飲食店テーブル(
図13参照)に格納されている割引率のうち、受信した第1の店コードに対応する飲食店の割引率を示すクーポン・コードがCPU41(第1の送信手段の一例である)によって処理サーバ40からスマートフォン31に送信される(
図21ステップ183)。たとえば、
図26に示す例ではオフクーポン表示領域102に表示されている割引率は10%であるから10%の割引率を示すクーポン・コードが処理サーバ40からスマートフォン31に送信される。
【0103】
クーポン・コードがスマートフォン31に送信されると、クーポン・コードの送信時刻がクーポン取得時刻として、
図25に示すテンポラリ・テーブルにユーザIDに対応づけられてユーザIDおよび第1の店コードとともに記録される。ユーザIDは、処理サーバ40にアクセスしたときにスマートフォン31から送信されているので(
図15ステップ123)、テンポラリ・テーブルに記録できる。
【0104】
第1の店コードによって特定される飲食店の住所が飲食店テーブル(
図13参照)から読み取られ、スマートフォン31から送信された位置情報とともに、処理サーバ40から経路時間算出サーバに送信される。経路時間算出サーバにおいて、スマートフォンの位置情報と飲食店の住所から、スマートフォン31のユーザが、その飲食店に徒歩で行く時間を表す徒歩経路時間(移動に必要な時間)が算出される。徒歩経路時間を表すデータは、経路時間算出サーバから処理サーバ40に送信されて、処理サーバ40において受信され(
図21ステップ186)、CPU41(移動時間検出手段の一例である)において徒歩経路時間が検出される。処理サーバ40において、ユーザが飲食店に到着するまでの到着タイム・リミット(移動に必要な時間、徒歩経路時間プラスアルファの時間、たとえば、徒歩経路時間に徒歩経路時間の10%の時間)が、徒歩経路時間(徒歩経路時間そのものを到着タイム・リミットとしてもよい)から算出される。到着タイム・リミットは第1の店コードに対応してテンポラリ・テーブルに格納される。また、到着タイム・リミットを表すデータが、受信した経路時間を表すデータが処理サーバ40のCPU41よって通信I/F47(第1の送信手段の一例である)からスマートフォン31に送信される(
図21ステップ187)。
【0105】
処理サーバ40から送信された到着タイム・リミットを表すデータがスマートフォン31において受信されると(
図18ステップ163でYES)、スマートフォン31において、ユーザがその飲食店に到着するまでの到着タイム・リミットの計測が開始される(
図18ステップ164)。
【0106】
図27は、スマートフォン31の表示画面31Aを示している。
【0107】
到着タイム・リミットの計測が開始されると、スマートフォン31の表示画面31Aには、取得中クーポン画像220が表示される。取得中クーポン画像220には、クーポン取得中であることを報知する取得中クーポン表示領域221、クーポンを取得している飲食店名を表示する領域222、到着タイム・リミットを表示する到着タイム・リミット表示領域223、食事制限時間表示領域224、割引率表示領域225および到着ボタン225Aが表示されている。食事制限時間表示領域224は、ユーザが飲食店に着いてから会計するまでの時間を示すもので、飲食店ごとにあらかじめ決められており、スマートフォン31に記憶されている。飲食店テーブルに格納されている食事タイム・リミットを処理サーバ40から送信して、受信してもよい。到着ボタン225Aは、ユーザが飲食店に到着したときにタッチされるボタンである。
【0108】
スマートフォン31のユーザが飲食店に到着すると、到着ボタン225Aが押される。すると、
図28に示すようにスマートフォン31の表示画面31Aに表示されている取得中クーポン画像220に、スキャン準備ウインドウ226がポップ・アップ表示される。
【0109】
図28を参照して、スキャン準備ウインドウ226には、「NFCカードをスキャンして下さい」という文字列とキャンセル・ボタン227とが表示されている。ユーザは、スマートフォン31を飲食店の店員に見せ、飲食店の店員が持っているNFC(Near field communication)カードをスキャン準備ウインドウ226にかざしてもらう(
図18ステップ165でYES)。NFCカードには、その飲食店の店コードが記録されており、スマートフォン31によってNFCカードに記録されている店コードが読み取られる。NFCカードに記録されている店コードの読み取りをキャンセルする場合にはキャンセル・ボタン227がタッチされる。スマートフォン31には、NFCカードの読み取り機能が付いているのはいうまでもない。
【0110】
NFCカードから店コードが読み取られると、読み取られた店コードが第2の店コードとして飲食店10に到着したことを示す到着データがスマートフォン31から処理サーバ40に送信される(
図18ステップ166)。
【0111】
スマートフォン31から第2の店コードとして送信された店コードおよび到着データが通信I/F47(第2の受信手段の一例である)処理サーバ40において受信されると(
図22ステップ188でYES)、受信した第2の店コードとテンポラリ・テーブルに格納されている第1の店コードとが一致したかどうかが処理サーバ40において確認される(
図22ステップ189)。一致すると(
図22ステップ189でYES)、照合OKの旨のデータが処理サーバ40からスマートフォン31に送信される(
図22ステップ190)。一致しなければ、所定のエラー処理、たとえば、不一致を示すエラー・コードが処理サーバ40からスマートフォン31に送信される。また、第1の店コードと第2の店コードとが一致すると(
図22ステップ189でYES)、受信した到着データによってあらわされる到着時刻がテンポラリ・テーブルに到着時刻として記録される(
図22ステップ191)。クーポン取得時刻と到着時刻との差分の時間が到着タイム・リミット内なら(
図22ステップ192でYES)、到着タイム・リミット内にユーザが飲食店に到着したとされ、到着タイム・リミット内にユーザが飲食店に到着したことを示すクリア指令が通信I/F47(第2の送信手段の一例である)によって処理サーバ40からスマートフォン31に送信される(
図22ステップ193)。また、テンポラリ・テーブルの第1の店コードに対応して食事開始時刻が記録される(
図22ステップ194)。
【0112】
一定時間内にスマートフォン31が処理サーバ40から送信された照合OKの旨のデータを受信しないと(
図19ステップ167でYES)、たとえば、NFCカードをスマートフォン31に再度かざすようにスマートフォン31によって警告が行われる。一定時間内にスマートフォン31が処理サーバ40から送信された照合OKの旨のデータを受信すると(
図19ステップ167でYES)、到着タイム・リミット内に到着したことを示すクリア指令を受信したかどうかが確認される(
図19ステップ168)。
【0113】
到着タイム・リミット内に到着した旨のクリア指令がスマートフォン31において受信されないと、たとえば、エラー・コードを受信すると(
図19ステップ128でNO)、クーポンが成立しない旨がスマートフォン31の表示画面31Aに表示される(
図19ステップ169)。ユーザは、到着タイム・リミット内に飲食店に到着しなかったのであるから、クーポンをもらえないこととなる。
【0114】
到着タイム・リミット内に到着した旨のクリア指令がスマートフォン31において受信されると(
図19ステップ168でYES)、スマートフォン31において食事時間タイム・リミットの計測が開始される(
図19ステップ170)。ユーザは飲食店において食事を開始することとなる。
【0115】
ユーザは飲食が終わると、飲食店の会計場所に行き、飲食店の店員によって再びNFCカードをスマートフォン31のスキャン準備ウインドウ226にかざしてもらう(
図19ステップ171でYES)。すると、ユーザIDおよび飲食終了データとともにNFCカードに記録されている店コードが第2の店コードとしてスマートフォン31から処理サーバ40に送信される(
図19ステップ172)。
【0116】
スマートフォン31から送信されたユーザID、飲食終了データおよび第2の店コードが処理サーバ40において受信され(
図23ステップ195でYES)、かつテンポラリ・テーブルにユーザIDに対応して格納されている第1の店コードと受信した第2の店コードとが一致すると(
図23ステップ196でYES)、照合OKの旨のデータが処理サーバ40からスマートフォン31に送信される(
図23ステップ197)。
【0117】
また、処理サーバ40において、ユーザIDおよび第1の店コードに対応して照合OKとなった時間が会計時刻としてテンポラリ・テーブルに記録される(
図23ステップ198)。食事開始時刻と会計時刻とから食事時間が算出され、その飲食店における食事タイム・リミットが飲食店テーブルから読み取られる。読み取られた食事タイム・リミット内に食事が終了したかどうかが処理サーバ40において確認される(
図23ステップ199)。
【0118】
食事タイム・リミット内に食事が終了しないと(
図23ステップ199でNO)、エラー処理が行われ、たとえば、クーポンが成立しない旨のデータが処理サーバ40からスマートフォン31に送信される。食事タイム・リミット内に食事が終了すると(
図23ステップ199でYES)、食事タイム・リミット内に食事が終了したのでクーポンの割引率を有効とする有効指令が通信I/F47(第3の送信手段の一例である)によって処理サーバ40からスマートフォン31に送信される(
図23ステップ200)。また、食事タイム・リミット内に食事が終了した場合には(
図23ステップ199でYES)、食事代金の割引前の入力ウインドウを表示させるコマンドも処理サーバ40からスマートフォン31に送信される(
図24ステップ201)。
【0119】
処理サーバ40から送信された照合OKの旨のデータをスマートフォン31が受信すると(
図20ステップ173でYES)、クーポンの有効指令をスマートフォン31が受信したかどうかが確認される(
図20ステップ174)。
【0120】
一定時間内に、クーポンの有効指令をスマートフォン31が受信しないと、たとえば、一定時間内にエラー・コードを受信すると(
図20ステップ174でNO)、クーポンは成立しない旨がスマートフォン31の表示画面31Aに表示される(
図20ステップ175)。一定時間内に、クーポンの有効指令をスマートフォン31が受信し(
図20ステップ174でYES)、かつ食事代金の割引前の入力ウインドウを表示させるコマンドも受信すると(
図20ステップ176でYES)、スマートフォン31の表示画面31Aには、食事代金の割引前の代金の入力ウインドウが表示される(
図20ステップ177)。
【0121】
図29は、食事代金の割引前の代金の入力ウインドウ228の一例である。
【0122】
スマートフォン31の表示画面31Aに表示される入力ウインドウ228には、「飲食代金を入力して下さい」の文字列の他に、入力された代金が表示される表示枠229、入力された代金を取り消すときにユーザによってタッチされる取消ボタン230および入力された代金で合っているときにユーザによってタッチされるOKボタン231が含まれている。
【0123】
スマートフォン31のユーザは、スマートフォン31の表示画面31Aに表示されている入力ウインドウ228に飲食店での食事代金の割引前の代金を入力する(
図20ステップ178)。入力された代金が合っているとユーザはOKボタン231をタッチする。すると、入力された割引前の代金を表すデータがユーザIDとともにスマートフォン31から処理サーバ40に送信される(
図20ステップ179)。
【0124】
スマートフォン31から送信された割引前の代金を表すデータおよびユーザIDが処理サーバ40において受信されると(
図24ステップ202)、
図25に示すテンポラリ・テーブルを参照してユーザIDに対応する第1の店コードが読み取られる。読み取られた第1の店コードに対応する店コードに対応して記録されている割引率が、
図13に示す飲食店テーブルから読み取られる。割引率もテンポラリ・テーブルに記録しておき、テンポラリ・テーブルに記録されている割引率を読み取ってもよい。読み取られた割引率を用いて、割引前の代金から割引後の代金が算出される。算出された割引後の代金を表すデータおよび割引率を表すデータが処理サーバ40からスマートフォン31に送信される(
図24ステップ203)。
【0125】
処理サーバ40から送信された割引後の代金を表すデータおよび割引率を表すデータをスマートフォン31において受信されると(
図20ステップ180でYES)、スマートフォン31の表示画面31Aにはクーポン成立ウインドウ240が約10分の間表示される(
図20ステップ181)。
【0126】
図30は、スマートフォン31の表示画面31Aの一例である。
【0127】
表示画面31Aに表示されるクーポン成立ウインドウ240には、割引率(10%)および割引後の代金が表示されている。ユーザは、クーポン成立ウインドウ240に表示されている内容を確認することで、クーポンが成立して割引されたこと、およびその割引率が分かる。クーポン成立ウインドウ240は表示から10分経過することで消えるようにスマートフォン31にインストールされているアプリケーションによって制御される。
【0128】
上述の実施例においては、到着タイム・リミットと食事タイム・リミットとの両方をクリアした場合にクーポンを成立させているが、到着タイム・リミットまたは食事タイム・リミットのいずれか一方をクリアした場合クーポンを成立させてもよいし、いずれか一方をクリアした場合には両方をクリアした場合に比べて割引率を小さくしてもよい。たとえば、到着タイム・リミットと食事タイム・リミットとの一方をクリアした場合の割引率を、到着タイム・リミットと食事タイム・リミットとの両方をクリアした場合の割引率(たとえば10%)の半分(たとえば5%)とする。
【0129】
上述の実施例においては、飲食店10の出入口は出入口5の一つであるが、複数の出入口がある飲食店においては、それぞれの出入口5の上部に上述したカメラ9を設ける。その場合、複数のカメラ9のそれぞれのカメラと店舗用PC11とを有線接続し、店舗用PC9において、それぞれのカメラ9ごとの撮影画像にもとづいて得られる総入店人数と総退店人数とを算出することで、飲食店10から退店した人数、飲食店10に入店した人数が分かり、飲食店10の混雑率、空席率が分かる。また、複数のカメラ9を設けた場合に、それぞれのカメラ9に対応して飲食店用PC10をそれぞれ接続し、それぞれの店舗用PC10においてそれぞれのカメラ9の撮影画像にもとづいて飲食店10から退店した人数、飲食店10に入店した人数をそれぞれ算出し、退店した人数を合計した人数を総退店人数、入店した人数を合計した人数を総入店人数としてもよい。そのようにして得られた総退店人数、総入店人数を用いて上述のように飲食店10の混雑率、空席率を算出できる。
【符号の説明】
【0130】
1a-1h:一人席、2a-2c:二人席、4a-4h:四人席、5:出入口、6:ドア、7-8:エリア、9:カメラ、10:飲食店、11:飲食店用PC、12:ルータ、13:モデム、20:CPU、21:表示装置、22:時計、23:画像I/F、24:メモリ、25:キーボード、28:通信I/F、30:インターネット、31:スマートフォン、31A:表示画面、32:基地局、40:処理サーバ、41:CPU、42:時計、43:メモリ、44:入力装置、46:ハードディスク、47:通信I/F、90:画像、91:店名入力枠、92:エリア入力枠、93:割引率入力枠、94-96:検索ボタン、100:検索結果表示領域、101:飲食店名表示領域、102:オフクーポン表示領域、103:空席率表示領域、104:おすすめ率表示領域、105:予約・メニュー・ボタン、110:検索結果表示領域、190:飲食店表示領域、220:取得中クーポン画像、221:取得中クーポン表示領域、222:領域、223:リミット表示領域、224:食事制限時間表示領域、225:割引率表示領域、225A:到着ボタン、226:スキャン準備ウインドウ、227:キャンセル・ボタン、228:入力ウインドウ、229:表示枠、230:取消ボタン、231:OKボタン、240:クーポン成立ウインドウ、E:矢印、F1:撮影画像、F1n:撮影画像、F2:撮影画像、F2n:撮影画像、L:ライン、P1:人物画像、P11:人物画像、P12:人物画像