こんにちは。人工知能研究所の石田です。 この度、富士通が研究開発した先端AI技術を迅速に試すことができるプラットフォームFujitsu Research Portal にて、レジ不正監視を一般公開しました。
※ログイン後、技術一覧からレジ不正監視をご選択ください。
この記事ではレジ不正監視で使用している技術についてご紹介します。
レジ不正監視とは
セルフレジは人手不足やコロナ禍への対策として導入が加速し、国内スーパーマーケットのレジ台数に占めるセルフレジ・セミセルフレジ設置率は2022年時点で49.4%にまで達しています。 *1
セルフレジは便利なこともある反面、お客様が商品のスキャンを忘れてしまう、スキャンに失敗して商品が正しく登録されないといった問題が発生することがあります。
レジ不正監視とは、このようなセルフレジでの会計時に発生する問題(以後、不正と呼びます)を監視するシステムです。
レジ不正監視の機能として、富士通研究所では商品がセルフレジに正しく登録されない不正(スキャン漏れ)の検知、スキャンする商品を偽装する不正の検知、一部の商品をスキャンせずに会計を終える不正の検知などについて研究開発を進めています。 この記事では特にFujitsu Research Portalで公開しているスキャン漏れの検知に関してご説明します。
レジ不正監視(スキャン漏れ検知)の仕組み
ここでは、レジ不正監視の機能のひとつであるスキャン漏れ検知の仕組みについてご説明します。スキャン漏れとは、お客様は商品をセルフレジに登録しようとしたがバーコードが読み取られなかった、などの問題により、商品がレジに正しく登録されないこととします。
スキャン漏れは、セルフレジに持ち込まれた商品の数と、レジに登録された商品の数に、差があることを確認することで検知することができます。 レジに登録された商品の数はレジのシステムを参照することで容易に取得できますので、ここではAI技術を使用してセルフレジに持ち込まれた商品の数をカウントする方法について解説します。
スキャン漏れにもいくつかのパターンがあります。この記事では、次のスキャンの流れで発生するものに関してご説明します。
お客様は、カゴに入れた商品をセルフレジに持ち込み、それを下図のようにスキャン前の商品を置く領域(①の領域)に置き、スキャナに商品のバーコードをかざし、スキャン後の商品を置く領域(②の領域)にあるレジ袋に商品を収納する、という流れです。
この場合では商品は①の領域から②の領域へと移動するため、その領域間を移動した回数をカウントすることで、スキャンが正しく行われたかに関わらず、セルフレジに持ち込まれた商品の数を知ることができます。
レジ不正監視では物体検出器(AI)を使用して画像中のどこに商品があるのかを検出しており、その検出結果をトラッキング技術(時間的に連続する複数枚の画像間で同一物体を特定する技術)で補正することによって、商品が移動する動線を認識しています。 最後にその商品の動線が、事前に設定した①の領域を出て②の領域に入ったことを確認することで、商品が1つセルフレジに持ち込まれた、と判定しています。
このようにしてセルフレジに持ち込まれた商品の数をカウントし、レジに登録された商品の数と差があるか否かを確認することでスキャン漏れ検知を行うことができます。
このシステムの処理は一見して簡単に見えますが、実際はそうではありません。 例えば物体検出器で商品を検出すると一口に言っても、店舗で販売される商品は日々変化します。 一般的にAIは未知の出来事に対応すること(この場合で言えば、AIの学習データには含まれない商品を検出すること)を苦手としており、普通の物体検出器では商品を検出できなくなってしまいます。
このような問題を解決するために富士通研究所では技術開発を行っており「手に持った物体」の検出精度世界一(2023)*2や、セルフレジにおける商品認識の国際学会コンテスト優勝(2023)といった成果を上げています。
レジ不正監視(スキャン漏れ検知)の処理結果の例
ここではスキャン漏れ検知の処理結果の例をご説明します。 Fujitsu Research Portalで公開しているスキャン漏れ検知では、サンプル動画またはご自身で撮影した動画に対して実際に処理を行いその結果を確認することができます。 処理後の動画は以下のようになります。
結果の見方に関しては以下の通りです。
- Number of scanned itemsは、スキャンされた商品の個数を指します。
- Number of items brought in (estimated)は、持ち込んだ商品の個数(レジ不正監視によって推定された数)を指します。
- Judgement of fraudは、スキャン漏れ(不正)の検知結果を指します。
- detected・・・スキャン漏れ(不正)が検知された
- not_detected ・・・スキャン漏れ(不正)が検知されなかった
この動画においてユーザは5点の商品(野菜、粉ミルク、お菓子、かつお節、カップ麺)を持ち込んでいます。 レジ不正監視は不正を検出するために、この5点という商品の数を正しく推定しなくてはなりません。
レジ不正監視が推定した商品の個数であるNumber of items brought in (estimated)を確認するとその数は5となっており、実際に持ち込まれた商品の個数と一致する正しい推定を行えたことが分かります。 またレジに登録された商品の個数はNumber of scanned itemsでその数は3になっています(実運用時にはこの個数はレジのシステムから取得します)。
この2つの数量を比べた時、Number of items brought in (estimated)の方が大きい値なので、ここではレジで不正が起こったと判定し、detectedの表示がされています。
最後に
この記事ではセルフレジでの会計時に発生する不正を監視するシステム「レジ不正監視」の一機能であるスキャン漏れ検知とその処理結果の例をご説明しました。
もしご興味をお持ちになって頂けましたら、ぜひFujitsu Research Portalからアカウントをご登録の上お試しください。
*1:一般社団法人全国スーパーマーケット協会. 2023年版 スーパーマーケット白書. 2023,p.130. https://www.super.or.jp/?p=13198 ,(参照2024-02-15).
*2:HICO-DET Dataset中「手に持った物体」に対する精度 VISAPP 2023にて発表