Amazon Web Services ブログ

【開催報告】 オンライン化によって進化する次世代自販機のご紹介

みなさん、こんにちは。流通・小売・消費財業界のお客様を中心に技術支援を行っているソリューションアーキテクトの千代田と吉田です。

AWS Summit Japan が 2024 年 6 月 20 日、21 日の 2 日間、幕張メッセにて開催されました。 今回はその中から、「新価格体験を実現する次世代自販機」というタイトルの展示内容をご紹介します。この展示では、消費財企業にとって重要な D2C (Direct to Consumer) の販売チャンネルである自動販売機 (以下、自販機) をオンライン化することによって進化させて、在庫や周囲環境の状況に合わせて販売価格を最適化するダイナミックプライシングのアイデアを紹介しました。本記事ではその内容を解説させていただきます。

自販機から生まれる新たな価値

全国の自販機は飲料自販機だけでも 220 万台(2023年末時点)で、スーパー 23,000 店や、コンビニ 56,000 店よりはるかに多く、最大の顧客接点と言えます。消費財企業にとって重要な D2C の販売チャンネルである自販機は技術進化して多様化が進み、無人店舗のソリューションとして消費財メーカー、小売業の両方において、いろいろな場所で、いろいろなものを販売する試みがなされています。一方で、自販機は最大の D2C チャネルでありながら、小売店舗での販売よりも収益向上のための施策の実施が困難だと言われてきました。これは、価格が固定のためにキャンペーンなどによる収益向上が難しい、商品販売以外の新しいビジネスモデルが生まれない、補充するために長距離の訪問が必要となり、また訪問計画の最適化も難しいのでコスト負担になりがちといった要因が挙げられます。近年、センサーなどの技術進化とネットワークの充足により、自販機がオンライン化されつつあります。それによって例えばキャッシュレス決済や、在庫のリアルタイム把握など双方向通信などが実現されることによるデジタルサイネージやロイヤルティプログラムの展開などのアイデアが生まれています。

今回展示する自販機では、気温、混雑状況、機内在庫、倉庫在庫に基づき動的に販売価格を決定する、ダイナミックプライシングが実現されています。ダイナミックプライシングにより、例えば、イベント会場ではイベントのある日は価格を上げるがイベントのない日は安くする、寒い日には冷たい飲み物は価格を下げてみるといった販売戦略をとることで収益向上を図ることができます。今回は「自販機」を接点チャネルとして採用しましたが、いわゆる「ダイナミックプライシング」のアイデアは、自販機に限定されるものではありません。店舗内で人の多い・少ないを判断して広告を出し分けるリテールメディアネットワーク、時間帯や温度で値引き品を変えたり特売の判断を行うなど、今回の展示と同様の仕組みでさまざまなアイデアに応用することができます。

展示内容

会場では自販機本体と、各種データを可視化するダッシュボードを展示してお客様にご覧いただきました。

写真のオレンジ色の箱が自販機本体になります。自販機では周辺の気温(展示では温度センサーではなくダミーで生成した値を使用)、混雑状況(カメラ画像で人物の数をカウント)、自販機内の商品在庫数を取得して、インターネット経由でデータを AWS Cloud へ送信しています。これらのデータを元にクラウド側で販売価格を算出し、自販機の販売画面に表示された価格に反映しています。自販機に販売画面を搭載することで、商品価格の変更だけでなく取り扱い商品の変更も柔軟に行うことができ、さらにはデジタルサイネージによる情報発信の媒体としての活用も考えられます。

写真右上のダッシュボードでは、自販機から送信された気温、混雑状況、自販機内の商品在庫数、および算出した販売価格をリアルタイムに表示しています。自販機で商品を購入すると、ダッシュボード上の在庫数が変化するなど、各種値がリアルタイムに変化する様子を確認可能です。実際の運用においては、多数の自販機から得られる情報をダッシュボードで集約し可視化することで、遠隔地の自販機の状況を一元的に把握することが可能になります。

デモ自販機の構成

次に、デモの構成について説明していきます。全体構成図は次のようになっています。

構成は、大きく分けると 1) 自販機側の処理と、2) AWS Cloud 側での処理に大別されます。以降ではそれぞれについて説明していきます。

1) 自販機内のエッジデバイスによる処理

まず、図の左側のグレー枠で囲われた「1) 自販機」と書かれている部分が、自販機およびその中に構成されたエッジデバイスを表しています。今回のデモでは自販機の中に、AWS IoT Greengrass をインストールした Raspberry Pi を配置し、自販機内の在庫管理、センサーデータの収集やクラウドへの送信、表示価格の更新を行うようなカスタムコンポーネントを実行しています。 また、自販機の設置された現場に行かずともコンポーネントのログ収集や、デバイスへの SSH ログインができるように、あらかじめ用意されたパブリックコンポーネントである、ログマネージャーコンポーネントや、セキュアトンネリングコンポーネントを合わせてデプロイしています。

自販機からクラウドに送信されるデータには、自販機の周囲の気温、カメラで撮影された混雑状況、そして自販機内の現在の商品在庫数、それぞれの商品の現在の販売価格が含まれています。

自販機の周囲の気温
一般的に、気温によって売れる飲料の種類は異なります。例えば、炭酸飲料は気温が低い時より高い時の方が売れ行きは良くなります。今回のデモでは、果汁飲料、お茶、炭酸飲料などそれぞれの飲料タイプ毎に、気温に対する需要の分布を仮定し、価格に反映しています。今回の会場では気温が大きく変わることはないため、デモでは三角関数で模擬しました。

カメラで撮影された混雑状況
自販機の周辺に人が多ければ、それだけ購買の機会が増加します。そのためカメラで撮影した画像の中にたくさんの人が写っていれば、需要が高まっているとみなし価格に反映しています。画像中にどれだけの人が写っているか判定する処理には、オープンソースの物体検出モデルを使用しました。なお、画像からの混雑度推定処理をエッジデバイス上で行うことで、クラウドへの画像送信や画像保存を行わず、通信量の削減だけでなく個人情報取扱いへの配慮も実現しています。

自販機内の商品在庫数
商品在庫数は最大個数を 12 個とし、購入ボタンが押される毎に減算しています。在庫数が少なくなったものは需要が高まっていると判断し、価格に反映しています。今回のデモでは、商品を出すコントローラーデバイス (図中上部) にて在庫数管理を行い、センサーロジックデバイス (図中下部) にてその他の処理を行いました。

表示価格の更新
後述する処理でクラウド側から通知された新しい販売価格は、自販機の画面に反映されます。ただし、実際のシチュエーションを考慮すると、いつでも画面を更新して良いわけではないでしょう。例えば、自販機の前でどの飲料を買おうか迷っている人がいる場合や、コインが投入され今まさに買おうとしているシーンでは、価格が更新されるとユーザ体験がよくありません。 そこで今回のデモでは、先述したカメラでの人検出を利用し、カメラの前に規定以上の大きさで人が写っている場合には価格更新を行わないガード処理を実装しています。この仕組みは、人が自販機の前にいない場合は商品画面ではなく広告表示するなどデジタルサイネージのコントロールにも応用が考えられます。

2) クラウドでの処理

図の右側の黒枠で囲まれた「2) AWS Cloud」と書かれている部分がクラウド上での構成を表しています。クラウドの構成は大きく3つのパートに分けることができます。a. 可視化、b. ダイナミックプライシング、c. 商品画像生成です。

a. 可視化
自販機から送信されたデータは、AWS IoT Core で mqtt メッセージとして受信します。このメッセージを AWS IoT Rules を使用して AWS Lambda に渡し、時系列データベースである Amazon Timestream に格納します。今回のデモでは、同じタイミングで取得された複数のセンサーデータを一つのテーブルに書き込む方針を取りました。そのため AWS Lambda では、受信したデータをマルチメジャーレコードに変換して、Amazon Timestream に格納しています。シングルメジャーレコードで格納したい場合には AWS IoT Rules から直接 Amazon Timestream に格納することも可能です。Amazon Timestream のデータモデルについて詳細はこちらをご参照ください。

可視化のダッシュボードには、Amazon Managed Grafana を使用しました。これはオープンソースの分析プラットフォームである Grafana 向けのフルマネージドサービスで、サーバーを意識することなく簡単に始めることが可能です。Amazon Managed Grafana には Amazon Timestream と接続するためのプラグインが用意されており、Amazon Timestream のデータを簡単にクエリ、可視化することができます。

実際にデモで使用した自販機 VM001 号機のダッシュボードを示します。図中の各パネルは、次の 4 つの情報を表示しています。

① 気温の推移と現在の値
② 自販機前の混雑度の推移と現在の値
③ 自販機内の商品在庫推移と現在の個数
④ 販売商品の価格推移と現在の価格

b. ダイナミックプライシング
動的な価格の計算には、上述した Amazon Timestream に格納されている情報とは別に、倉庫在庫情報に見立てた Amazon DynamoDB のテーブルデータを使用します。従ってエッジデバイスから通知された、気温、混雑状況、自販機内在庫情報に加えて、倉庫内在庫情報をもとに新しい価格を計算しています。ここには様々なアルゴリズムを適用する余地がありますが、今回のデモではシンプルに加重平均で計算しました。 この計算は AWS Lambda 上に実装され、今回のデモでは 2 分おきに Amazon EventBridge Scheduler をトリガーに実行されます。算出された価格は、AWS IoT Device Shadow に登録され、エッジデバイスに反映されます。実際のユースケースでは、日次や月次などより長い間隔での価格算出や、何かのイベントをトリガーに算出することが想定されますが、こうした場合にも Amazon EventBridge は対応が可能です。

c. 商品画像生成
今回のデモを作成するにあたり、手作りの自販機を一目で自販機だとわかってもらう必要がありました。そこで、少しでもリアルに見せるため、Amazon Bedrock 上から画像生成 AI の Amazon Titan Image Generator G1 モデルを呼び出し、商品の缶画像を生成しています。 生成された缶画像の例を示します。

この時、全て同じ形、大きさの缶として画像を生成する必要があったので、初めに基準となる無地の缶画像を生成しています。その無地の缶画像からマスク画像を作成し、缶のラベル領域に対して Titan Image Generator のインペイント機能を使って、それぞれの商品画像を生成しています。例えば、左の緑の缶画像は下記のプロントで生成しました。

A beverage can of green tea, the majority label color of the can is light green.

まとめ

本記事では、2024 年 6 月 20 日、21 日 に開催された AWS Summit Japan の、流通・小売・消費財業界ブースにて展示を行ったダイナミックプライシングを実現する次世代自販機の詳細についてご説明いたしました。 デモは非常に好評で、お客様と多くの可能性について議論することができました。今回のデモではダイナミックプライシングのロジックとしてシンプルに加重平均での価格算出を行いましたが、売り上げデータに基づく AI/ML モデルを活用するアイデアや、クラウドと連携したデジタルサイネージのアイデア、在庫情報と組み合わせた AI/ML による在庫補充計画の最適化アイデアなどが考えられます。こうした取り組みについてご興味がありましたら、AWS からご支援させていただくことが可能ですので、「AWS に問い合わせする」までご連絡ください。

また、本記事に関連するブログをご紹介いたします。ご興味ありましたらこちらもぜひ併せてご覧ください。

著者

千代田

千代田 真吾は、アマゾンウェブサービスのソリューションアーキテクトです。現在は、エンタープライズの小売・消費財業界のお客様が AWS を用いてビジネスを拡大するのを支援しています。特に AI/ML 領域に関心があり、お客様のビジネスにおける AI/ML 活用を積極的に支援しています。

吉田

吉田 英史は、東海地方を中心に小売・消費財業界のお客様を支援しているアマゾンウェブサービスのソリューションアーキテクトです。 かつては製造業で製品の組み込みソフトウェア開発や工場 IoT 構築などに従事してきました。身の回りの生活に欠かせない様々なビジネスをクラウドで加速するお手伝いができることを、何より嬉しく感じています。