こんにちは、2回目の投稿です。
私はスーパーマーケットで惣菜部門のチーフとして働いている27歳男性です。
毎日の業務
スーパーでは商品が売れ残って、廃棄にならないために 値引き を実施しています。
お惣菜はその日で消費期限が切れる商品がほとんどのため、毎日、値引きの作業をしています。
値引きは 担当のパートさん が基本的には マニュアル通りの値引き を実施してくれています。
値引きにおける課題
マニュアルで 値引きの時間帯 や 何%オフにするか はおおよそ決まっていますが、
気温、天気 などの外的要因(雨であればおおよそ客数が2割減します)や 発注過多、製造過多 による内的要因により、
マニュアル通りやると、廃棄が 千円単位 で多く出てしまうことがあります。
チーフがいれば逐一値引き変更の指示をしていますが、 不在時はそうはいきません。
チーフ不在時の値引き方法による廃棄過多。
これが今、職場で抱えている課題の一つです。
まずは 廃棄率を0.5%削減 を一つの目標とし、
日々、パートの教育など、課題解決に奮闘しています。
今回は課題解決の一つの手段として、機械学習の画像認識 を用いて、
自動的に売り場の残り具合から、値引きの割合を判断するという方法を試してみました。
使用するツール
・Teachable Machine
・Node-RED
・OpenWeatherMap
・LINE Notify
作り方
完成した模様はこちらからご覧ください。
まず最初に Teachable Machine で画像判定をします。
今回は売り場に商品が多ければ 半額 、少なければ 30%オフ で判定させました。
次にNode-REDでTeachable Machineで得られた画像判定の結果に
天気の良し悪し を加味し、最終的な値引き判断をLINEに送るという仕組みを作ります。
カメラノードのボタンから写真を撮り、Teachable Machineノードで画像判定をします。
次にswitchノードで判定によって次のアクションを変えていきます。
半額であれば line notify ノードに情報を送ります。
情報を送ると、このようにLINE上で結果が得られます。
判定が30%オフの場合は天気によって値引きを変えたいので、
open weather mapノード に情報を送ります。
情報を送るとデバックメッセージに選択した地点の現在の気象情報が表示されます。
open weather mapノードの設定はこのようにしました。
事前にopen weather mapのサイトからAPIキーを取得する必要があります。
次にデバックメッセージに表示されている気象情報の中から、天気の情報だけを抽出したいので、
templateノードの中の「payload」の後に「weather」を入れます。
Clear(晴れ)、Clouds(曇り)、Rain(雨)などの天気の情報を抽出できたので、
さらに天気によって値引きの割合を変えていきます。
今回は
晴れ=30%オフのまま
曇り=30%オフのまま
雨=半額に変更
と決めました。
雨だと客数が減り、これ以上の集客が見込めず、早めに半額にしないと廃棄に繋がります。
changeノード で天気の情報から値引きの情報に変え、line notifyノードに送ります。
結果、画像判定で、30%オフだった場合、天気によって値引きを変えるという仕組みができました。
最後に値引きの判定の流れを図にまとめました。
今後の展望
今回は売り場の商品の残り具合と天気という二つの要因で値引きの判断をしましたが、
今後は曜日、気温、特売日、など、いろいろの内的要因、外的要因を加味した精度の高い
AIを作っていき、 よりチーフの判断に近いツール を目指していきたいと考えています。