(57)【要約】【課題】商品コードの認識精度を向上することが可能なプログラム等を提供すること。【解決手段】一つの側面に係るプログラムは、撮影した値札の商品コードを含む画像を取得し、取得した前記画像を入力した場合に商品コードの認識結果を出力する深層学習モデルを用いて、商品コードを認識し、認識した商品コードと、商品マスタデータベースに記憶された商品コードとの相関を示す距離を算出する処理をコンピュータに実行させる。これにより、商品コードの認識精度を向上することが可能となる。【選択図】図１
2020198054.tif 000002
【特許請求の範囲】
【請求項１】
撮影した値札の商品コードを含む画像を取得し、
取得した前記画像を入力した場合に商品コードの認識結果を出力する深層学習モデルを用いて、商品コードを認識し、
認識した商品コードと、商品マスタデータベースに記憶された商品コードとの相関を示す距離を算出する
処理をコンピュータに実行させるプログラム。
【請求項２】
認識した商品コードと、商品マスタデータベースに記憶されたそれぞれの商品コードとの距離を算出した場合、算出した複数の距離から最短距離を取得し、
取得した最短距離に対応する商品マスタデータベースに記憶された商品コードを選択する
処理を実行させる請求項１に記載のプログラム。
【請求項３】
認識した商品コードと、商品マスタデータベースに記憶されたそれぞれの商品コードとの距離を算出した場合、算出した複数の距離から最短距離を取得し、
取得した最短距離が所定閾値未満である場合、該最短距離に対応する商品マスタデータベースに記憶された商品コードを選択する
処理を実行させる請求項１又は２に記載のプログラム。
【請求項４】
前記閾値の設定を受け付ける
処理を実行させる請求項３に記載のプログラム。
【請求項５】
前記画像から認識した商品コードに対し、商品マスタデータベースに記憶された商品コードと一致させるために文字ごとに置換、挿入または削除を含む操作処理を実行し、
前記操作処理の内容に応じて、距離を算出する
処理を実行させる請求項１から４までのいずれかひとつに記載のプログラム。
【請求項６】
前記商品コード中の文字に対する置換操作処理に対し、置換元の文字と置換後の文字とが指定された文字セットに該当する場合、距離を割り引く
処理を実行させる請求項１から５までのいずれかひとつに記載のプログラム。
【請求項７】
前記商品コード中相互に隣接する文字同士の間隔に応じて、離れた文字同士の間に補完するための文字数を算出し、
算出した文字数に応じて、距離を算出する
処理を実行させる請求項１から６までのいずれかひとつに記載のプログラム。
【請求項８】
前記値札の撮影画像から前記商品コードに対応するバーコードの認識処理に失敗した場合、または認識したバーコードに対応する商品コードが前記商品マスタデータベースに存在しない場合、前記撮影画像から認識した商品コードによる商品コードの選択処理を行う
処理を実行させる請求項２から７までのいずれかひとつに記載のプログラム。
【請求項９】
同一値札の商品コードを含む画像を複数取得し、
前記商品コードの選択に成功した回数をカウントし、
カウントした選択成功の回数が所定閾値以上である場合、選択した商品コードを出力する
処理を実行させる請求項２から８までのいずれかひとつに記載のプログラム。
【請求項１０】
前記値札の商品コードに対応する商品の価格を含む画像を取得し、
取得した前記商品の価格を含む画像を入力した場合に商品の価格を認識した認識結果を出力する第２深層学習モデルを用いて、商品の価格を認識し、
前記商品コード及び認識した前記商品の価格と、商品マスタデータベースに記憶された商品コード及び該商品コードに対応する商品の価格とが、一致するか否かを判定し、
判定した判定結果を出力する
処理を実行させる請求項１から９までのいずれかひとつに記載のプログラム。
【請求項１１】
情報処理装置と、表示装置とを有し、
前記情報処理装置は、
撮影した値札の商品コードを含む画像を取得する取得部と、
取得した前記画像を入力した場合に商品コードの認識結果を出力する深層学習モデルを用いて、商品コードを認識する認識部と、
認識した商品コードと、商品マスタデータベースに記憶された商品コードとの相関を示す距離を算出する算出部と
前記算出部が算出した距離に応じて、前記商品マスタデータベースから該当する商品コードを選択する選択部とを備え、
前記表示装置は、
前記取得部により取得した前記値札の撮影画像、前記値札の撮影画像を含む棚画像、前記棚画像中の前記値札の位置を示すバウンディングボックス、および、前記選択部が商品コードを選択した選択結果に対し、前記選択結果の正誤に関する操作を受け付けるオブジェクトを表示する第１表示部
を備える情報処理システム。
【請求項１２】
前記表示装置は、前記値札の撮影画像、または前記棚画像に対する操作に応じて、前記商品コードに対応する商品の場所を示すマップを表示する第２表示部
を備える前記請求項１１に記載の情報処理システム。
【請求項１３】
撮影した値札の商品コードを含む画像を取得する取得部と、
取得した前記画像を入力した場合に商品コードの認識結果を出力する深層学習モデルを用いて、商品コードを認識する認識部と、
認識した商品コードと、商品マスタデータベースに記憶された商品コードとの相関を示す距離を算出する算出部と
を備える情報処理装置。
【請求項１４】
実空間内で前記情報処理装置を移動させる移動機構
を備える前記請求項１３に記載の情報処理装置。
【請求項１５】
撮影した値札の商品コードを含む画像を取得し、
取得した前記画像を入力した場合に商品コードの認識結果を出力する深層学習モデルを用いて、商品コードを認識し、
認識した商品コードと、商品マスタデータベースに記憶された商品コードとの相関を示す距離を算出する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理システム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
特許文献１には、バーコードから商品コードを認識することにより、重量チェック処理を提供するセルフチェックアウト端末が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１０１７０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に係る発明は、バーコードスキャナによって商品コードを認識できない場合に、商品コードを特定することができない恐れがある。
【０００５】
一つの側面では、商品コードの認識精度を向上することが可能なプログラム等を提供することにある。
【課題を解決するための手段】
【０００６】
一つの側面に係るプログラムは、撮影した値札の商品コードを含む画像を取得し、取得した前記画像を入力した場合に商品コードの認識結果を出力する深層学習モデルを用いて、商品コードを認識し、認識した商品コードと、商品マスタデータベースに記憶された商品コードとの相関を示す距離を算出する処理をコンピュータに実行させる。
【発明の効果】
【０００７】
一つの側面では、商品コードの認識精度を向上することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】商品コード選択システムの概要を示す説明図である。
【図２】サーバの構成例を示すブロック図である。
【図３】商品マスタＤＢのレコードレイアウトの一例を示す説明図である。
【図４】選択結果ＤＢのレコードレイアウトの一例を示す説明図である。
【図５】ロボットの構成例を示すブロック図である。
【図６】画像ＤＢのレコードレイアウトの一例を示す説明図である。
【図７】閾値ＤＢのレコードレイアウトの一例を示す説明図である。
【図８】距離ＤＢのレコードレイアウトの一例を示す説明図である。
【図９】端末の構成例を示すブロック図である。
【図１０】値札画像から認識された商品コードに基づいて商品コードを選択する動作を説明する説明図である。
【図１１】商品コード認識モデルを説明する説明図である。
【図１２】距離算出処理を示す動作を説明する説明図である。
【図１３】値札画像から認識された商品コードに基づいて商品コードを選択する際の処理手順を示すフローチャートである。
【図１４】最短距離算出のサブルーチンの処理手順を示すフローチャートである。
【図１５】実施形態２のロボットの構成例を示すブロック図である。
【図１６】文字セットＤＢのレコードレイアウトの一例を示す説明図である。
【図１７】文字セットによる最短距離算出のサブルーチンの処理手順を示すフローチャートである。
【図１８】文字補完による最短距離算出のサブルーチンの処理手順を示すフローチャートである。
【図１９】実施形態３の商品コードを選択する際の処理手順を示すフローチャートである。
【図２０】選択成功の回数に応じた商品コードを特定する際の処理手順を示すフローチャートである。
【図２１】実施形態５のロボットの構成例を示すブロック図である。
【図２２】売価チェック結果ＤＢのレコードレイアウトの一例を示す説明図である。
【図２３】商品コード及び商品の価格両方により売価をチェックする際の処理手順を示すフローチャートである。
【図２４】実施形態６のサーバの構成例を示すブロック図である。
【図２５】マップＤＢのレコードレイアウトの一例を示す説明図である。
【図２６】実施形態６の選択結果ＤＢのレコードレイアウトの一例を示す説明図である。
【図２７】商品コードを選択した選択結果を表示する画面の一例である。
【図２８】施設でカテゴリごとに商品が置かれた場所を示すマップ画面の一例である。
【図２９】画面操作を受け付ける際の処理手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明をその実施形態を示す図面に基づいて詳述する。
【００１０】
（実施形態１）
実施形態１は、撮影した値札の商品コードを含む画像から該商品コードを認識し、認識した商品コードによる商品コードの選択処理を行う形態に関する。
【００１１】
図１は、商品コード選択システムの概要を示す説明図である。本実施形態のシステムは、情報処理装置１、情報処理装置２及び情報処理端末３を含み、各装置はインターネット等のネットワークＮを介して情報の送受信を行う。
【００１２】
本実施形態のシステムは、撮影した値札の商品コードを含む画像から商品コードを認識し、認識した商品コードと、商品マスタデータベースに記憶された商品コードとの相関を示す距離を算出する。算出された距離に応じて、商品コードの選択処理が行われる。
【００１３】
情報処理装置１は、種々の情報に対する処理、記憶及び送受信を行う情報処理装置である。情報処理装置１は、例えばサーバ装置、パーソナルコンピュータ等である。本実施形態において、情報処理装置１はサーバ装置であるものとし、以下では簡潔のためサーバ１と読み替える。
【００１４】
情報処理装置２は、実空間内で移動させる移動機構が設置され、値札の撮影、商品コードの認識、及び商品コードの選択等を行う情報処理装置である。情報処理装置２は、例えば移動型の棚監視ロボット、空撮用のドローン等であっても良い。例えば店舗の営業終了後２２時から翌日の開店前５時の間に、カメラ等のセンサを備えた棚監視ロボットが店舗内を自動で巡回する。棚監視ロボットが、商品棚に掲載されている商品コード、及び商品価格等を認識し、売価チェック等を自動的に行っても良い。以下では簡潔のため、情報処理装置２をロボット２と読み替える。
【００１５】
情報処理端末３は、商品コードの選択結果等を表示する端末装置である。情報処理端末３は、例えばスマートフォン、携帯電話、アップルウォッチ（Apple Watch:登録商標）等のウェアラブルデバイス、タブレット、パーソナルコンピュータ端末等の情報処理機器である。以下では簡潔のため、情報処理端末３を端末３と読み替える。
【００１６】
続けて、値札画像から認識された商品コードに基づいて商品コードを選択する処理の流れを説明する。ロボット２は、撮影した値札の商品コードを含む値札画像を取得して記憶する。ロボット２は、取得した値札画像に基づき、該値札画像中のバーコード（縞模様状の線）の下側に記された商品コードを認識する。
【００１７】
商品コードは、商品用の流通コードであり、数字、文字、記号等を含んでも良い。商品コードは、例えばＪＡＮ（Japanese Article Number）コード、ＥＡＮ（European Article Number）コード、ＵＰＣ（Universal Product Code）コード等であっても良い。なお、本実施形態では、数字形式の商品コードの例を説明する。本実施形態での商品コードは、国コード、商品メーカーコード、商品アイテムコード、チェックデジット等それぞれを示す数字から構成される。
【００１８】
ロボット２は、認識した商品コードと、商品マスタデータベースに記憶された各々の商品コードとの相関を示す距離（距離値）を算出する。ロボット２は、算出した複数の距離から最短距離を取得し、取得した最短距離により商品コードを選択する。ロボット２は、商品コードを選択した選択結果をサーバ１または端末３に送信する。
【００１９】
図２は、サーバ１の構成例を示すブロック図である。サーバ１は、制御部１１、記憶部１２、通信部１３、入力部１４、表示部１５、読取部１６及び大容量記憶部１７を含む。各構成はバスＢで接続されている。
【００２０】
制御部１１はＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）、ＧＰＵ（Graphics Processing Unit）等の演算処理装置を含み、記憶部１２に記憶された制御プログラム１Ｐを読み出して実行することにより、サーバ１に係る種々の情報処理、制御処理等を行う。なお、図２では制御部１１を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
【００２１】
記憶部１２はＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ素子を含み、制御部１１が処理を実行するために必要な制御プログラム１Ｐ又はデータ等を記憶している。また、記憶部１２は、制御部１１が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部１３は通信に関する処理を行うための通信モジュールであり、ネットワークＮを介して、ロボット２、端末３との間で情報の送受信を行う。
【００２２】
入力部１４は、マウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報を制御部１１へ出力する。表示部１５は、液晶ディスプレイ又は有機ＥＬ（electroluminescence）ディスプレイ等であり、制御部１１の指示に従い各種情報を表示する。
【００２３】
読取部１６は、ＣＤ（Compact Disc）−ＲＯＭ又はＤＶＤ（Digital Versatile Disc）−ＲＯＭを含む可搬型記憶媒体１ａを読み取る。制御部１１が読取部１６を介して、制御プログラム１Ｐを可搬型記憶媒体１ａより読み取り、大容量記憶部１７に記憶しても良い。また、ネットワークＮ等を介して他のコンピュータから制御部１１が制御プログラム１Ｐをダウンロードし、大容量記憶部１７に記憶しても良い。さらにまた、半導体メモリ１ｂから、制御部１１が制御プログラム１Ｐを読み込んでも良い。
【００２４】
大容量記憶部１７は、例えばＨＤＤ（Hard disk drive:ハードディスク）、ＳＳＤ(Solid State Drive:ソリッドステートドライブ)等の記録媒体を備える。大容量記憶部１７は、商品マスタＤＢ１７１及び選択結果ＤＢ１７２を含む。商品マスタＤＢ１７１は、商品コード、価格、品名等の商品に関する情報を記憶している。選択結果ＤＢ１７２は、商品コードの選択結果を記憶している。選択結果は、認識された商品コード、選択された商品コード、選択処理の成否情報等を含む。
【００２５】
なお、本実施形態において記憶部１２及び大容量記憶部１７は一体の記憶装置として構成されていても良い。また、大容量記憶部１７は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部１７はサーバ１に接続された外部記憶装置であっても良い。
【００２６】
なお、本実施形態では、サーバ１は一台の情報処理装置であるものとして説明するが、複数台により分散して処理させても良く、または仮想マシンにより構成されていても良い。
【００２７】
図３は、商品マスタＤＢ１７１のレコードレイアウトの一例を示す説明図である。商品マスタＤＢ１７１は、商品ＩＤ列、分類列、品名列、商品コード列及び単価列を含む。商品ＩＤ列は、各商品を識別するために、一意に特定される商品のＩＤを記憶している。分類列は、商品の分類情報を記憶している。品名列は、商品の品名を記憶している。商品コード列は、商品用の流通コードを記憶している。単価列は、商品の価格を記憶している。
【００２８】
図４は、選択結果ＤＢ１７２のレコードレイアウトの一例を示す説明図である。選択結果ＤＢ１７２は、結果ＩＤ列、認識商品コード列、選択商品コード列、結果列及び選択日時列を含む。結果ＩＤ列は、各選択結果を識別するために、一意に特定される選択結果を記憶している。認識商品コード列は、認識された商品コードを記憶している。選択商品コード列は、選択された商品コードを記憶している。結果列は、商品コードの選択結果（例えば、成功または失敗）を記憶している。選択日時列は、商品コードが選択された日時情報を記憶している。
【００２９】
図５は、ロボット２の構成例を示すブロック図である。ロボット２は、制御部２１、記憶部２２、無線通信部２３、撮影部２４、自律移動部２５、移動機構２６、読取部２７及び大容量記憶部２８を含む。各ハードウェアはバスＢで接続されている。
【００３０】
制御部２１はＣＰＵ、ＭＰＵ、ＧＰＵ等の演算処理装置を含み、記憶部２２に記憶された制御プログラム２Ｐを読み出して実行することにより、ロボット２に係る種々の情報処理、制御処理及び推定処理等を行う。なお、推定処理はサーバ１側で行われても良い。なお、図５では制御部２１を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。記憶部２２はＲＡＭ、ＲＯＭ等のメモリ素子を含み、制御部２１が処理を実行するために必要な制御プログラム２Ｐ又はデータ等を記憶している。また、記憶部２２は、制御部２１が演算処理を実行するために必要なデータ等を一時的に記憶する。
【００３１】
無線通信部２３は通信に関する処理を行うための無線通信モジュールであり、ネットワークＮを介して、サーバ１及び端末３等と情報の送受信を行う。撮影部２４は、例えばＣＣＤ(Charge Coupled Device)カメラ、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）カメラ等の撮影装置である。なお、撮影部２４は、複数の撮影装置により構成されても良い。なお、撮影部２４はロボット２の中に内蔵せず、外部で直接にロボット２と接続し、撮影可能な構成としても良い。
【００３２】
自律移動部２５は、環境地図データ及び撮影部２４から取得した画像データ等を参照し、バッテリー（図示せず）からの電力供給を得て自律移動制御を実行する。移動機構２６は、車輪２６１及び車輪２６１を駆動するモータ２６２を含み、自律移動部２５により駆動される。また、車輪２６１は複数であっても良い。すなわち、車輪型の移動型ロボットにおいて、自律移動部２５と移動機構２６とにより、自律的移動手段が構成される。なお、施設に設置された磁気テープに従い移動するロボットであっても良い。
【００３３】
読取部２７は、ＣＤ−ＲＯＭ又はＤＶＤ−ＲＯＭを含む可搬型記憶媒体２ａを読み取る。制御部２１が読取部２７を介して、制御プログラム２Ｐを可搬型記憶媒体２ａより読み取り、大容量記憶部２８に記憶しても良い。また、ネットワークＮ等を介して他のコンピュータから制御部２１が制御プログラム２Ｐをダウンロードし、大容量記憶部２８に記憶しても良い。さらにまた、半導体メモリ２ｂから、制御部２１が制御プログラム２Ｐを読み込んでも良い。
【００３４】
大容量記憶部２８は、例えばＨＤＤ、ＳＳＤ等の記録媒体を備える。大容量記憶部２８には、画像ＤＢ２８１、閾値ＤＢ２８２、商品コード認識モデル２８３及び距離ＤＢ２８４が記憶されている。画像ＤＢ２８１は、撮影した値札の商品コードを含む画像を記憶している。閾値ＤＢ２８２は、各種の閾値を記憶している。商品コード認識モデル２８３は、商品コードを認識する認識器であり、機械学習により生成された学習済みモデルである。距離ＤＢ２８４は、値札画像から認識された商品コードと、商品マスタデータベースに記憶された商品コードとの相関を示す距離（距離値）を記憶している。
【００３５】
なお、本実施形態において記憶部２２及び大容量記憶部２８は一体の記憶装置として構成されていても良い。また、大容量記憶部２８は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部２８はロボット２に接続された外部記憶装置であっても良い。
【００３６】
図６は、画像ＤＢ２８１のレコードレイアウトの一例を示す説明図である。画像ＤＢ２８１は、画像ＩＤ列、値札画像列、棚画像列及び棚画像撮影日時列を含む。画像ＩＤ列は、各画像を識別するために、一意に特定される画像のＩＤを記憶している。値札画像列は、商品コードを含む値札画像を記憶している。棚画像列は、当該値札画像を含む棚の画像を記憶している。棚画像撮影日時列は、棚画像の撮影日時情報を記憶している。
【００３７】
図７は、閾値ＤＢ２８２のレコードレイアウトの一例を示す説明図である。閾値ＤＢ２８２は、閾値ＩＤ列、名称列及び閾値列を含む。閾値ＩＤ列は、各閾値を識別するために、一意に特定される閾値のＩＤを記憶している。名称列は、閾値の名称を記憶している。閾値列は、各種の判定処理用の閾値を記憶している。なお、閾値列に記憶された閾値を変更することができる。例えば、ロボット２の制御部２１は、変更の閾値を無線通信部２３により受け付け、受け付けた閾値で閾値ＤＢ２８２の閾値列を更新しても良い。
【００３８】
図８は、距離ＤＢ２８４のレコードレイアウトの一例を示す説明図である。距離ＤＢ２８４は、第１商品コード列、第２商品コード列及び距離列を含む。第１商品コード列は、値札画像から認識された商品コードを記憶している。第２商品コード列は、商品マスタデータベースに記憶された商品コードを記憶している。距離列は、算出された第１商品コードと第２商品コードとの距離を記憶している。
【００３９】
図９は、端末３の構成例を示すブロック図である。端末３は、制御部３１、記憶部３２、通信部３３、入力部３４及び表示部３５を含む。各構成はバスＢで接続されている。
【００４０】
制御部３１はＣＰＵ、ＭＰＵ等の演算処理装置を含み、記憶部３２に記憶された制御プログラム３Ｐを読み出して実行することにより、端末３に係る種々の情報処理、制御処理等を行う。なお、図９では制御部３１を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。記憶部３２はＲＡＭ、ＲＯＭ等のメモリ素子を含み、制御部３１が処理を実行するために必要な制御プログラム３Ｐ又はデータ等を記憶している。また、記憶部３２は、制御部３１が演算処理を実行するために必要なデータ等を一時的に記憶する。
【００４１】
通信部３３は通信に関する処理を行うための通信モジュールであり、ネットワークＮを介して、サーバ１及びロボット２等と情報の送受信を行う。入力部３４は、キーボード、マウスまたは表示部３５と一体化したタッチパネルでも良い。表示部３５は、液晶ディスプレイ又は有機ＥＬディスプレイ等であり、制御部３１の指示に従い各種情報を表示する。
【００４２】
図１０は、値札画像から認識された商品コードに基づいて商品コードを選択する動作を説明する説明図である。
【００４３】
ロボット２の制御部２１は、撮影した値札の商品コードを含む値札画像を取得する。値札画像の取得処理に関しては、例えば制御部２１は、物体検出技術を用いて、撮影部２４により撮影した棚画像から値札画像を抽出しても良い。物体検出技術は、例えば、パターンマッチングの他、Ａ−ＫＡＺＥ（Accelerated KAZE）、ＳＩＦＴ（Scale Invariant Feature Transform）等であり、局所特徴量抽出方法を用いて特徴量を抽出することにより、物体を検出する。また、制御部２１は、棚画像を深層学習の物体検出モデルに入力し、物体検出モデルを用いて、棚画像から値札領域の特徴量を抽出することで値札画像を検出した検出結果を出力しても良い。
【００４４】
制御部２１は、取得した値札画像を大容量記憶部２８の画像ＤＢ２８１に記憶する。具体的には、制御部２１は、画像ＩＤを割り振って、値札画像、該値札画像を含む棚画像、及び棚画像の撮影日時を一つのレコードとして画像ＤＢ２８１に記憶する。
【００４５】
制御部２１は、取得した値札画像中のバーコードの下側に記された商品コード（数字）を認識する。制御部２１は、値札画像を商品コード認識モデル２８３に入力し、商品コード認識モデル２８３を用いて、商品コード中の数字を認識した認識結果を出力する。なお、商品コードの認識処理に関しては後述する。
【００４６】
制御部２１は、認識した商品コードと、商品マスタＤＢ１７１に記憶された各々の商品コードとの相関を示す距離を算出する。なお、距離算出処理に関して後述する。制御部２１は、算出した複数の距離から最短距離を取得し、取得した最短距離に対応する商品マスタＤＢ１７１に記憶された商品コードを選択する。
【００４７】
また、取得した最短距離による商品マスタＤＢ１７１に記憶された商品コードの選択処理の他に、最短距離の閾値により商品コードを選択することができる。制御部２１は、大容量記憶部２８の閾値ＤＢ２８２から最短距離の閾値を取得し、取得した最短距離と最短距離の閾値とを比較する。制御部２１は、最短距離が閾値未満であると判定した場合、該最短距離に対応する商品マスタＤＢ１７１に記憶された商品コードを選択する。
【００４８】
なお、最短距離の閾値が予め閾値ＤＢ２８２に記憶されても良く、または無線通信部２３によりサーバ１若しくは外部装置から受け付けられても良い。制御部２１は、最短距離の閾値を受け付けた場合、閾値ＩＤを割り振って、名称及び閾値を一つのレコードとして大容量記憶部２８の閾値ＤＢ２８２に記憶する。制御部２１は、商品コードを選択した選択結果を無線通信部２３によりサーバ１に送信する。なお、本実施形態では、選択結果をサーバ１に送信する例を示したが、これに限るものではない。例えば、端末３に選択結果を送信しても良い。
【００４９】
サーバ１の制御部１１は、通信部１３を介して、ロボット２から送信された選択結果を受信し、受信した選択結果を大容量記憶部１７の選択結果ＤＢ１７２に記憶する。具体的には、制御部１１は、結果ＩＤを割り振って、認識された商品コード、選択された商品コード、選択結果及び選択日時を一つのレコードとして選択結果ＤＢ１７２に記憶する。なお、本実施形態では、選択結果をサーバ１に記憶する例を示したが、これに限るものではない。例えばロボット２に選択結果を記憶しても良い。
【００５０】
図１１は、商品コード認識モデル２８３を説明する説明図である。商品コード認識モデル２８３は、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。なお、説明を容易にするため、商品コード認識モデル２８３に入力する値札画像に対するバーコードと商品コードとの画像領域のみを図示している。商品コード認識モデル２８３は、撮影した値札画像中の商品コード画像を入力とし、該値札画像中のバーコードの下側に記された商品コードを認識した認識結果を出力とするニューラルネットワークを構築（生成）済みの認識器である。ニューラルネットワークは、例えばＣＮＮ（Convolutional Neural Network）であり、撮影画像の入力を受け付ける入力層と、商品コードを認識した認識結果を出力する出力層と、バックプロパゲーションにより学習済の中間層とを有する。本実施形態では、認識した１つの数字の画像を商品コード認識モデル２８３に入力し、１つ目の数字の認識結果を出力する例を示す。制御部２１は、全ての桁の数字画像について認識処理を順次行う。
【００５１】
入力層は、撮影画像に含まれる各画素の画素値の入力を受け付ける複数のニューロンを有し、入力された画素値を中間層に受け渡す。中間層は、撮影画像の画像特徴量を抽出する複数のニューロンを有し、抽出した画像特徴量を出力層に受け渡す。例えば商品コード認識モデル２８３がＣＮＮである場合を例にして説明する。中間層は、入力層から入力された各画素の画素値を畳み込むコンボリューション層と、コンボリューション層で畳み込んだ画素値をマッピングするプーリング層とが交互に連結された構成により、撮影画像の画素情報を圧縮しながら最終的に画像の特徴量を抽出する。その後中間層は、バックプロパゲーションによりパラメータが学習された全結合層により、商品コード中の各数字が「０」〜「９」それぞれに当たる確率を予測する。予測結果は、複数のニューロンを有する出力層に出力される。
【００５２】
なお、撮影画像は、交互に連結されたコンボリューション層とプーリング層とを通過して特徴量が抽出された後に、入力層に入力されても良い。
【００５３】
ロボット２の制御部２１は、上述した各数字の予想結果に応じて、出力層から出力した複数の確率から、所定の閾値（例えば、８０％）よりも高い確率に対応する数字を特定することにより、商品コードを取得する。
【００５４】
なお、上述した機械学習により商品コードを識別する処理に限るものではない。例えば、ロボット２の制御部２１は、Ｆａｓｔ ＲＣＮＮ、ＹＯＬＯ（You Look Only Once）、ＳＳＤ（Single Shot MultiBox Detector）を用いて値札画像中の商品コードを認識しても良い。
【００５５】
図１２は、距離算出処理を示す動作を説明する説明図である。以下では簡潔のため、値札画像から認識された商品コードは第１商品コードと読み替え、商品マスタＤＢ１７１に記憶された各々の商品コードは第２商品コードと読み替える。
【００５６】
制御部２１は、無線通信部２３を介して、サーバ１の大容量記憶部１７の商品マスタＤＢ１７１から第２商品コードを取得する。なお、商品マスタＤＢ１７１が予めロボット２に記憶されても良い。制御部２１は、第１商品コードと、第２商品コードとを比較する。制御部２１は、両者が一致していないと判定した場合、第２商品コードと照合し、第２商品コードと一致させるように、第１商品コードに対する数字（文字）操作を実行して距離を算出する。
【００５７】
数字操作は、例えば数字に対する置換、挿入、削除等の操作である。数字操作ごとに所定ルールによる距離を算出することができる。例えば、制御部２１は予め定められたルールにより、数字ごとの置換、挿入または削除等のいずれかの操作を実行した場合、距離に１を加算しても良い。
【００５８】
図１２Ａは、挿入操作に応じた距離を算出する例を示す。制御部２１は、第１商品コードの桁数と、第２商品コードの桁数とを比較する。制御部２１は、第１商品コードの桁数と第２商品コードの桁数とが一致し、かつ、各桁の数字が完全に一致すると判定した場合、距離を０とする。制御部２１は、第１商品コードの桁数が第２商品コードの桁数未満であると判定した場合、第１商品コードに対する数字の挿入操作を実行する。
【００５９】
図示のように、第１商品コードが「９８５４」であり、第２商品コードが「９８７５４」である場合、制御部２１は、第１商品コードの桁数と、第２商品コードの桁数とを比較する。制御部２１は、第１商品コードの桁数（４桁）が第２商品コードの桁数（５桁）未満であると判定した場合、第２商品コードと照合し、第１商品コード中の漏れた桁を判定する。制御部２１は、第１商品コードにおける「８」と「５」との間に「７」を漏れたと判定した場合、「７」を挿入する。制御部２１は、該挿入操作を実行した後に、距離に１を加算する。
【００６０】
図１２Ｂは、削除操作に応じた距離を算出する例を示す。制御部２１は、第１商品コードの桁数と、第２商品コードの桁数とを比較する。制御部２１は、第１商品コードの桁数が第２商品コードの桁数以上であると判定した場合、第１商品コードに対する数字の削除操作を実行する。
【００６１】
図示のように、第１商品コードが「９８７５４」であり、第２商品コードが「９８５４」である場合、制御部２１は、第１商品コードの桁数と、第２商品コードの桁数とを比較する。制御部２１は、第１商品コードの桁数（５桁）が第２商品コードの桁数（４桁）以上であると判定した場合、第２商品コードと照合し、第１商品コード中の余計な桁を判定する。制御部２１は、第１商品コードにおける「８」と「５」との間に「７」が不要と判定した場合、「７」を削除する。制御部２１は、該削除操作を実行した後に、距離に１を加算する。
【００６２】
図１２Ｃは、置換操作に応じた距離を算出する例を示す。制御部２１は、第１商品コードの桁数と、第２商品コードの桁数とが一致すると判定した場合、桁ごとの数字が一致するか否かを判定する。制御部２１は、桁ごとの数字が一致していないと判定した場合、第２商品コードと照合し、第１商品コードにおける該桁の数字に対して置換操作を実行する。
【００６３】
図示のように、第１商品コードが「９８６５４」であり、第２商品コードが「９８７５４」である場合、制御部２１は、第１商品コードの桁数と、第２商品コードの桁数とを比較する。制御部２１は、第１商品コードの桁数（５桁）と第２商品コードの桁数（５桁）とが一致すると判定した場合、先頭から順次に第１商品コードの数字と、第２商品コードの数字とを比較する。制御部２１は、第１商品コードの３桁の数字「６」と、第２商品コードの３桁の数字「７」とが一致していないと判定した場合、第１商品コードにおける「６」に「７」を置換する。制御部２１は、該置換操作を実行した後に、距離に１を加算する。
【００６４】
図１３は、値札画像から認識された商品コードに基づいて商品コードを選択する際の処理手順を示すフローチャートである。サーバ１の制御部１１は、大容量記憶部１７の商品マスタＤＢ１７１から商品マスタ情報を取得する（ステップＳ１０１）。制御部１１は、通信部１３を介して、取得した商品マスタ情報をロボット２に送信する（ステップＳ１０２）。ロボット２の制御部２１は、無線通信部２３を介して、サーバ１から送信された商品マスタ情報を受信する（ステップＳ２０１）。なお、本実施形態では、商品マスタ情報をサーバ１に記憶する例を示したが、これに限るものではない。ロボット２の大容量記憶部２８に商品マスタ情報を記憶しても良い。
【００６５】
制御部２１は、撮影した値札の商品コードを含む値札画像を取得する（ステップＳ２０２）。なお、値札画像の取得処理に関しては、上述した物体検出技術を用いて取得しても良い。制御部２１は、取得した値札画像を大容量記憶部２８の画像ＤＢ２８１に記憶する（ステップＳ２０３）。
【００６６】
制御部２１は、取得した値札画像を商品コード認識モデル２８３に入力し、商品コード認識モデル２８３を用いて商品コードを認識した認識結果を出力することで、商品コードを認識する（ステップＳ２０４）。制御部２１は、認識した商品コードと、商品マスタデータベースに記憶された商品コードとの最短距離を算出する（ステップＳ２０５）。なお、最短距離算出処理をサーバ１で行っても良い。なお、最短距離算出のサブルーチンに関しては後述する。
【００６７】
制御部２１は、大容量記憶部２８の閾値ＤＢ２８２から、最短距離の閾値を取得する（ステップＳ２０６）。制御部２１は、取得した最短距離と閾値とを比較し、取得した最短距離が閾値未満であるか否かを判定する（ステップＳ２０７）。制御部２１は、取得した最短距離が閾値未満であると判定した場合（ステップＳ２０７でＹＥＳ）、該最短距離に対応する第２商品コードを選択する（ステップＳ２０８）。
【００６８】
制御部２１は、商品コードの選択結果を無線通信部２３によりサーバ１に送信する（ステップＳ２０９）。サーバ１の制御部１１は、通信部１３を介して、ロボット２から送信された選択結果を受信する（ステップＳ１０３）。制御部１１は、受信した選択結果を大容量記憶部１７の選択結果ＤＢ１７２に記憶する（ステップＳ１０４）。制御部２１は、取得した最短距離が閾値未満でないと判定した場合（ステップＳ２０７でＮＯ）、ステップＳ２０９に遷移する。
【００６９】
図１４は、最短距離算出のサブルーチンの処理手順を示すフローチャートである。ロボット２の制御部２１は、サーバ１から送信された複数の第２商品コードから一つの第２商品コードを取得する（ステップＳ２２１）。制御部２１は、抽出した第１商品コードと、取得した第２商品コードとの距離を算出する（ステップＳ２２２）。
【００７０】
距離は、２つの文字列の間で、それぞれ一文字の挿入、削除、置換することによって、一方の文字列を、もう一方の文字列に変形するのに必要な手順を数値化するものである。つまり、距離は、二つの文字列がどの程度異なっているかを示す。距離の値が小さければ小さいほど、文字列と、比較対象の文字列との類似度が高いことを示している。距離の算出処理に関しては、例えば文字列同士の距離を計算する尺度であるレーベンシュタイン距離（Levenshtein Distance）等を利用しても良い。
【００７１】
制御部２１は、算出した距離を大容量記憶部２８の距離ＤＢ２８４に記憶する（ステップＳ２２３）。具体的には、制御部２１は、第１商品コード、第２商品コード及び算出した距離を一つのレコードとして距離ＤＢ２８４に記憶する。制御部２１は、該第２商品コードが商品マスタＤＢ１７１から取得された複数の商品コード中の最後の商品コードであるか否かを判定する（ステップＳ２２４）。
【００７２】
制御部２１は、該第２商品コードが最後の商品コードでないと判定した場合（ステップＳ２２４でＮＯ）、ステップＳ２２１に戻り、複数の第２商品コードから次の第２商品コードを取得する。制御部２１は、該第２商品コードが最後の商品コードであると判定した場合（ステップＳ２２４でＹＥＳ）、距離ＤＢ２８４に記憶した第１商品コードと、各々の第２商品コードとの距離から、最短距離を取得する（ステップＳ２２５）。制御部２１は、処理を終了する。
【００７３】
本実施形態によると、撮影した値札画像から認識された商品コードと、商品マスタデータベースに記憶された商品コードとの距離を算出することができる。算出された最短距離による商品コードの選択処理を実行することにより、商品コード選択の精度を向上することが可能となる。
【００７４】
（実施形態２）
実施形態２は、商品コードの操作処理に対し、距離を割り引く形態に関する。なお、実施形態１と重複する内容については説明を省略する。
【００７５】
数字には誤認識しやすい文字があり、例えば「１」と「７」、「３」と「２」等がある。深層学習による文字認識モデルにおいて、例えばＣＮＮの畳み込みフィルタにも誤認識の恐れがある。この場合、実施形態１での商品コードの選択処理に対し、商品コード選択の精度に影響を与えるため、距離を割り引いて算出する。
【００７６】
図１５は、実施形態２のロボット２の構成例を示すブロック図である。なお、図５と重複する内容については同一の符号を付して説明を省略する。大容量記憶部２８には、文字セットＤＢ２８５が記憶されている。文字セットＤＢ２８５は、誤認識しやすい文字セット情報を記憶している。
【００７７】
図１６は、文字セットＤＢ２８５のレコードレイアウトの一例を示す説明図である。文字セットＤＢ２８５は、文字１列、文字２列及び割引ルール列を含む。文字１列及び文字２列は、それぞれに置換元、置換先の文字を記憶している。割引ルール列は、距離を割り引く基準を記憶している。置換元の文字と置換後の文字とが文字セットＤＢ２８５に記憶した組み合わせのいずれかに該当する場合、距離が所定の割引ルールで割り引かれる。例えば、置換元の文字と置換後の文字とが文字セットＤＢ２８５に記憶した組み合わせのいずれかに該当する場合、該文字セットに対応する割引ルール（例えば、５０％割引等）に応じて、算出した距離を割り引いても良い。
【００７８】
図１７は、文字セットによる最短距離算出のサブルーチンの処理手順を示すフローチャートである。なお、図１４と重複する内容については同一の符号を付して説明を省略する。制御部２１は、大容量記憶部２８の文字セットＤＢ２８５から文字セット情報を取得する（ステップＳ２４１）。制御部２１は、ステップＳ２２１〜Ｓ２２２を実行し、距離を算出する。制御部２１は、置換元の文字と置換後の文字とが文字セットＤＢ２８５に記憶した組み合わせのいずれかに該当するか否かを判定する（ステップＳ２４２）。
【００７９】
制御部２１は、置換元の文字と置換後の文字とが文字セット情報に該当すると判定した場合（ステップＳ２４２でＹＥＳ）、該文字セットに対応する割引ルール（例えば、５０％割引等）に応じて、算出した距離を割り引く（ステップＳ２４３）。制御部２１は、置換元の文字と置換後の文字とが文字セット情報に該当しないと判定した場合（ステップＳ２４２でＮＯ）、ステップＳ２２３に遷移する。
【００８０】
なお、本実施形態では、文字セットＤＢ２８５を用いて距離を割り引く処理が行われたが、これに限るものではない。例えば、商品コード認識モデル２８３の学習時の誤認識実績を基に自動抽出した文字セットを用いて、割り引く処理を行っても良い。
【００８１】
続けて、商品コード中の相互に隣接する文字同士の間に補完した文字数に応じて、距離を割り引く処理を説明する。商品コード中の相互に隣接する文字同士が離れたことがある。その他、撮影された値札画像が不鮮明であるため、商品コード中の一部文字を認識することができない場合がある。これにより、離れた文字同士の間に、該文字と異なる文字（例えば、ダミー文字等）を補完（挿入）する。
【００８２】
具体的には、制御部２１は、商品コード中の相互に隣接する文字同士の間隔に応じて、離れた文字同士の間に補完するための文字数を算出する。例えば制御部２１は、商品コードから認識した１文字ごとの座標データに基づき、お互いに隣接する文字同士の間隔が所定間隔以上であるか否かを判定する。制御部２１は、文字同士の間隔が所定間隔以上であると判定した場合、商品コードの文字サイズに応じて、離れた文字同士の間に補完するための文字数を算出しても良い。
【００８３】
制御部２１は、離れた文字同士の間に、算出した文字数で該文字と異なる文字を補完する。制御部２１は、補完した文字における置換または削除操作処理に対し、距離を算出する。制御部２１は所定割引ルールに応じて、算出した距離を割り引く。
【００８４】
図１８は、文字補完による最短距離算出のサブルーチンの処理手順を示すフローチャートである。なお、図１７と重複する内容については同一の符号を付して説明を省略する。制御部２１は、商品コード中の相互に隣接する文字同士の間隔を取得する（ステップＳ２５１）。制御部２１は、お互いに隣接する文字同士の間隔が所定間隔以上であるか否かを判定する（ステップＳ２５２）。
【００８５】
制御部２１は、文字同士の間隔が所定間隔以上であると判定した場合（ステップＳ２５２でＹＥＳ）、取得した文字同士の間隔に応じて、離れた文字同士の間に補完するための文字数を算出する（ステップＳ２５３）。制御部２１は、離れた文字同士の間に、算出した文字数で前記文字と異なる文字を補完する（ステップＳ２５４）。制御部２１は、ステップＳ２４１及びステップＳ２２１〜Ｓ２２２を実行する。制御部２１は、文字同士の間隔が所定間隔以上でないと判定した場合（ステップＳ２５２でＮＯ）、ステップＳ２４１に遷移する。
【００８６】
制御部２１は、ステップＳ２５４での文字補完処理に基づき、補完対象文字であるか否かを判定する（ステップＳ２５５）。制御部２１は、補完対象文字であると判定した場合（ステップＳ２５５でＹＥＳ）、算出した距離を所定の割引ルールで割り引く（ステップＳ２５６）。制御部２１は、補完対象文字でないと判定した場合（ステップＳ２５５でＮＯ）、ステップＳ２４２に遷移する。
【００８７】
本実施形態によると、誤認識しやすい文字で置換元の文字を置換した場合、距離を割り引くことにより、商品コードの選択処理におけるミスを防止することが可能となる。
【００８８】
本実施形態によると、商品コード中の離れた文字同士の間に補完された文字に対する文字操作に応じて、距離を割り引くことができる。よって、商品コードの選択処理におけるミスを防止することが可能となる。
【００８９】
（実施形態３）
実施形態３は、商品コードに対応するバーコードの認識処理に失敗した場合、該商品コードによる商品コードの選択処理を行う形態に関する。なお、実施形態１と重複する内容については説明を省略する。
【００９０】
制御部２１は、撮影した値札画像から商品コードに対応するバーコードを認識する。制御部２１は、バーコードの認識処理に失敗し、または認識したバーコードに対応する商品コードが商品マスタＤＢ１７１に存在しないと判定した場合、値札画像から認識した商品コードによる商品コードの選択処理を実行する。
【００９１】
図１９は、実施形態３の商品コードを選択する際の処理手順を示すフローチャートである。ロボット２の制御部２１は、撮影した値札画像に基づいて取得したバーコードから、商品コードを抽出する（ステップＳ２６１）。例えば、制御部２１は、バーコード読み取りライブラリ（アルゴリズム）を利用し、商品コードを抽出しても良い。制御部２１は、商品コードの抽出処理に成功したか否かを判定する（ステップＳ２６２）。
【００９２】
制御部２１は、商品コードの抽出処理に成功していないと判定した場合（ステップＳ２６２でＮＯ）、商品コードを認識し（ステップＳ２６３）、実施の形態１及び２で示した商品コードの選択処理を行う（ステップＳ２６４）。なお、商品コードの認識処理及び商品コードの選択処理に関しては、実施形態１と同様であるため、説明を省略する。
【００９３】
制御部２１は、商品コードの抽出処理に成功したと判定した場合（ステップＳ２６２でＹＥＳ）、抽出した商品コードが商品マスタＤＢ１７１に存在するか否かを判定する（ステップＳ２６５）。制御部２１は、抽出した商品コードが商品マスタＤＢ１７１に存在していると判定した場合（ステップＳ２６５でＹＥＳ）、処理を終了する。制御部２１は、抽出した商品コードが商品マスタＤＢ１７１に存在していないと判定した場合（ステップＳ２６５でＮＯ）、ステップＳ２６３に遷移する。
【００９４】
本実施形態によると、商品コードに対応するバーコードの認識処理に失敗した場合、該商品コードによる商品コードの選択処理を実行することにより、商品コードの選択処理における成功率を高めることが可能となる。
【００９５】
（実施形態４）
実施形態４は、商品コードの選択に成功した回数に応じて、商品コードを特定する形態に関する。なお、実施形態１〜３と重複する内容については説明を省略する。商品コードの選択処理を複数回実行し、商品コードの選択に成功した回数が所定回数（閾値）以上である場合、該商品コードを出力する。
【００９６】
具体的には、ロボット２の制御部２１は、移動しながら同じエリアに対する複数の棚画像を撮影部２４により撮影し、撮影した複数の棚画像の枚数に応じた回数の商品コードの選択処理を実行する。制御部２１は、商品コードの選択に成功した回数が所定回数以上であると判定した場合、該商品コードを出力する。なお、上述した処理に限るものではない。例えば、ロボット２の巡回の回数ごとに商品コードの選択処理を実行しても良い。
【００９７】
図２０は、選択成功の回数に応じた商品コードを特定する際の処理手順を示すフローチャートである。なお、図１３と重複する内容については同一の符号を付して説明を省略する。ロボット２の制御部２１は、取得した最短距離が閾値未満でないと判定した場合（ステップＳ２０７でＮＯ）、ステップＳ２０２に戻る。制御部２１は、取得した最短距離が閾値未満であると判定した場合（ステップＳ２０７でＹＥＳ）、ステップＳ２０８を実行し、商品コードの選択に成功した回数をカウントする（ステップＳ２７１）。
【００９８】
制御部２１は、カウントした成功回数が所定回数以上であるか否かを判定する（ステップＳ２７２）。所定回数は、例えば予め大容量記憶部２８の閾値ＤＢ２８２に記憶されても良い。制御部２１は、カウントした成功回数が所定回数以上であると判定した場合（ステップＳ２７２でＹＥＳ）、該商品コードを特定する（ステップＳ２７３）。制御部２１は、該商品コードを出力し（ステップＳ２７４）、処理を終了する。制御部２１は、カウントした成功回数が所定回数以上でないと判定した場合（ステップＳ２７２でＮＯ）、ステップＳ２０２に戻る。なお、ステップＳ２０７の閾値もオペレータにより変更することが可能である。
【００９９】
本実施形態によると、商品コードを選択する処理を複数回に実行し、成功回数が所定回数上である場合、該商品コードを特定することにより、高い精度を確保することが可能となる。
【０１００】
（実施形態５）
実施形態５は、商品コード及び商品の価格両方により売価をチェックする形態に関する。なお、実施形態１〜４と重複する内容については説明を省略する。売価チェックは、売価登録ミス、売価変更等に対する商品コード及び価格等の情報をチェックする作業である。値札の売価と、商品マスタＤＢ１７１の売価との不一致は主に以下の２つのパターンで生じる。一つは、値札の売価の印刷ミスにより生じる。もう一つは、適切に売価が値札に印刷されていたものの、キャンペーン終了後、キャンペーン前の売価に戻し損ねた場合に生じる。例えば、キャンペーンにより売価を半額の５００円としていたところ、キャンペーンが終了したとする。本来であればキャンペーン後は、元の１０００円に戻した値札を配置すべきであったのに、これを失念していた場合である。なお、本実施形態では、売価チェックの例を説明するが、これに限らず、例えば在庫チェック等の処理にも適用しても良い。
【０１０１】
売価チェックを行った場合、選択された商品コード及び該商品コードに対応する商品の価格と、商品マスタＤＢ１７１に記憶された商品コード及び該商品コードに対応する商品の価格とが、一致するか否かを判定する。判定された判定結果が出力される。なお、実施形態４のように、撮影された複数の棚画像中の商品コード及び価格と、商品マスタＤＢ１７１に記憶された商品コード及び価格とが、一致した回数が所定回数（例えば、１回）以上である場合、該商品コードに対応する商品の価格が商品マスタＤＢ１７１と一致したとみなしても良い。
【０１０２】
図２１は、実施形態５のロボット２の構成例を示すブロック図である。なお、図１５と重複する内容については同一の符号を付して説明を省略する。大容量記憶部２８には、売価チェック結果ＤＢ２８６が記憶されている。売価チェック結果ＤＢ２８６は、商品コード及び商品の価格両方により売価をチェックした結果情報を記憶している。
【０１０３】
図２２は、売価チェック結果ＤＢ２８６のレコードレイアウトの一例を示す説明図である。売価チェック結果ＤＢ２８６は、結果ＩＤ列、認識商品コード列、認識商品価格列、マスタ商品コード列、マスタ商品価格列、チェック結果列及びチェック日時列を含む。結果ＩＤ列は、各売価チェックの結果を識別するために、一意に特定される売価チェックの結果を記憶している。認識商品コード列は、認識された商品コードを記憶している。認識商品価格列は、認識された商品の価格を記憶している。
【０１０４】
マスタ商品コード列は、商品マスタデータベースに記憶された商品コードを記憶している。マスタ商品価格列は、商品マスタデータベースに記憶された商品の価格を記憶している。チェック結果列は、認識された商品コード及び商品の価格と、商品マスタデータベースに記憶された商品コード及び商品の価格とが一致するか否かを判定したチェック結果を記憶している。チェック日時列は、売価をチェックした日時情報を記憶している。
【０１０５】
図２３は、商品コード及び商品の価格両方により売価をチェックする際の処理手順を示すフローチャートである。なお、図１３と重複する内容については同一の符号を付して説明を省略する。ロボット２の制御部２１は、ステップＳ２０８を実行した後、ステップＳ２０２で取得した値札画像から商品の価格を認識する（ステップＳ２８１）。
【０１０６】
具体的には、制御部２１は、値札画像を学習済みの深層学習による価格認識モデルに入力し、価格認識モデルを用いて、価格を認識した認識結果を出力する。価格認識モデルは、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。価格認識モデルは、値札画像を入力とし、商品の価格を認識した結果を出力とするニューラルネットワークを構築（生成）済みの認識器である。
【０１０７】
なお、本実施形態では、価格認識モデルを用いて、商品の価格を認識した例を説明したが、これに限るものではない。例えば、Ａ−ＫＡＺＥ等の物体検出技術を用いて、商品の価格を認識しても良い。
【０１０８】
制御部２１は、選択した商品コード及び認識した商品の価格と、商品マスタＤＢ１７１に記憶された商品コード及び該商品コードに対応する商品の価格とが、一致するか否かを判定する（ステップＳ２８２）。制御部２１は、判定した判定結果を大容量記憶部２８の売価チェック結果ＤＢ２８６に記憶する（ステップＳ２８３）。具体的には、制御部２１は、結果ＩＤを割り振って、認識された商品コード及び商品の価格、マスタデータベースに記憶された商品コード及び商品の価格、チェック結果及びチェック日時情報を一つのレコードとして売価チェック結果ＤＢ２８６に記憶する。制御部２１は、判定した判定結果を出力し（ステップＳ２８４）、処理を終了する。
【０１０９】
本実施形態によると、商品コード及び商品の価格の両者に基づいて、売価チェックを行うことにより、業務効率化を実現することが可能となる。
【０１１０】
（実施形態６）
実施形態６は、商品コードを選択した選択結果を表示する形態に関する。なお、実施形態１〜５と重複する内容については説明を省略する。
【０１１１】
図２４は、実施形態６のサーバ１の構成例を示すブロック図である。なお、図２と重複する内容については同一の符号を付して説明を省略する。大容量記憶部１７には、マップＤＢ１７３が記憶される。マップＤＢ１７３は、施設でカテゴリごとに商品が置かれた場所を示す情報を記憶している。
【０１１２】
図２５は、マップＤＢ１７３のレコードレイアウトの一例を示す説明図である。マップＤＢ１７３は、施設ＩＤ列、棚１列及び棚２列を含む。施設ＩＤ列は、各施設を識別するために、一意に特定される施設のＩＤを記憶している。棚１列は、カテゴリ列及びアイコン列を含む。カテゴリ列は、棚１に置かれた商品のカテゴリを記憶している。アイコン列は、棚１に置かれた商品のカテゴリを示すアイコンを記憶している。棚２列は、棚１列の構成と同様であるため、説明を省略する。なお、本実施形態では、棚１列及び棚２列の例を説明したが、棚列の数量は特に制限されない。
【０１１３】
図２６は、実施形態６の選択結果ＤＢ１７２のレコードレイアウトの一例を示す説明図である。なお、図４と重複する内容については同一の符号を付して説明を省略する。選択結果ＤＢ１７２は、位置情報列、座標列、値札画像列及び棚画像列を含む。位置情報列は、商品が棚に置かれた位置を記憶している。座標列は、商品が棚に置かれた位置の座標情報を記憶している。なお、座標はディスプレイ上の絶対座標であっても良く、または後述するマップにおける相対座標であっても良い。値札画像列は、商品コードを含む値札の撮影画像を記憶している。棚画像列は、商品が施設に置かれた位置を示す棚画像を記憶している。
【０１１４】
図２７は、商品コードを選択した選択結果を表示する画面の一例である。なお、選択結果がサーバ１の表示部１５により表示されても良く、または端末３の表示部３５により表示されても良い。更にまた、選択結果がロボット２に接続された表示装置により表示されても良い。以下では、選択結果を端末３で表示する例を説明する。
【０１１５】
端末３の制御部３１は、通信部３３を介して、サーバ１の大容量記憶部１７の選択結果ＤＢ１７２から商品コードの選択結果を取得する。なお、端末３の制御部３１は、通信部３３を介して、商品コードの選択結果をロボット２から取得しても良い。制御部３１は、取得した選択結果を表示部３５により表示する。
【０１１６】
選択結果は、例えば、結果ＩＤ、商品コードを含む値札画像、該値札画像を含む棚画像（商品が施設に置かれた棚画像）、棚画像中の該値札画像の位置情報（例えば、座標等）、選択日時及び選択結果の正誤情報を含む。図示のように、２６ａは、商品コードの選択結果ＩＤを示す。２６ｂは、商品コードを含む値札画像を示す。２６ｃは、商品マスタデータベースに記憶された価格を示す。
【０１１７】
２６ｄは、「完了」ボタンであり、店員の人目でチェックし売価に誤りがある場合にフィードバックするためのボタンである。端末３の制御部３１は、店員から「完了」ボタン２６ｄのタッチ操作を入力部３４により受け付けた場合、通信部３３を介して、店員により現場対応を終了した旨をサーバ１またはロボット２に送信する。２６ｅは、「適正」ボタンであり、店員の人目でチェックし売価に誤りがない場合にフィードバックするためのボタンである。端末３の制御部３１は、店員から「適正」ボタン２６ｅのタッチ操作を入力部３４により受け付けた場合、売価に誤りがない旨を通信部３３によりサーバ１またはロボット２に送信する。
【０１１８】
２６ｆは、２６ｂで示された値札画像に対応する商品が、施設に置かれた棚画像を示す。２６ｇは、２６ｂで示された値札画像の表示領域を結果ＩＤに対応付けて、棚画像中の値札の位置を示すバウンディングボックスである。
【０１１９】
なお、上述した画面の表示形式は一例として説明したが、これに限るものではない。例えば、認識された商品の価格及び商品コードと、商品マスタＤＢ１７１に記憶された商品の価格及び商品コードとが一致していない場合、「売価違い」ボタンを画面に表示しても良い。制御部３１は、「売価違い」ボタンのタッチ操作を入力部３４により受け付けた場合、商品マスタＤＢ１７１における該商品の価格をチェックする旨を通信部３３によりサーバ１またはロボット２に送信する。
【０１２０】
図２８は、施設でカテゴリごとに商品が置かれた場所を示すマップ画面の一例である。端末３の制御部３１は、通信部３３を介して、サーバ１の大容量記憶部１７のマップＤＢ１７３から商品が施設に置かれた場所を示すマップ情報を取得する。制御部３１は、入力部３４を介して、値札画像、または位置画像のタップ操作を受け付けた場合、取得したマップ情報に基づいてマップを生成する。
【０１２１】
なお、上述した方式に限らず、例えば、制御部３１は商品が施設に置かれた場所を示すマップボタンを画面に表示し、該マップボタンのタップ操作を入力部３４により受け付けた場合、マップを生成しても良い。
【０１２２】
制御部２１は、マップ情報に基づいて生成したマップを表示部３５により表示する。マップ情報は、施設ＩＤ、各棚に置かれた商品のカテゴリ、及び各棚を区別するためのアイコン等を含む。図示のように、施設の各棚と一致する商品のカテゴリ、カテゴリを示すアイコン等が表示される。２７ａは、例えば適正の対象商品が置かれた場所を示すマークである。制御部３１は、マークのタッチ操作を入力部３４により受け付けた場合、該商品の棚画像または値札画像の表示画面に戻り、該商品に対応する棚画像または値札画像を表示しても良い。
【０１２３】
図２９は、画面操作を受け付ける際の処理手順を示すフローチャートである。端末３の制御部３１は、通信部３３を介して、サーバ１の大容量記憶部１７の選択結果ＤＢ１７２から選択結果を取得する（ステップＳ２０ａ）。制御部３１は、取得した選択結果を表示部３５により表示する（ステップＳ２０ｂ）。制御部３１は、「完了」ボタンのタッチ操作を受け付けるか否かを判定する（ステップＳ２０ｃ）。
【０１２４】
制御部３１は、「完了」ボタンのタッチ操作を受け付けたと判定した場合（ステップＳ２０ｃでＹＥＳ）、店員により現場対応を終了した旨を含む情報を送信する（ステップＳ２０ｊ）。制御部３１は、「完了」ボタンのタッチ操作を受付けていないと判定した場合（ステップＳ２０ｃでＮＯ）、制御部３１は、「適正」ボタンのタッチ操作を受け付けるか否かを判定する（ステップＳ２０ｄ）。
【０１２５】
制御部３１は、「適正」ボタンのタッチ操作を受け付けたと判定した場合（ステップＳ２０ｄでＹＥＳ）、ステップＳ２０ｊに遷移し、売価に誤りがない旨を含む情報を送信する。制御部３１は、「適正」ボタンのタッチ操作を受付けていないと判定した場合（ステップＳ２０ｄでＮＯ）、制御部３１は、「マップ」を表示させる操作を受け付けるか否かを判定する（ステップＳ２０ｅ）。
【０１２６】
制御部３１は、「マップ」を表示させる操作を受け付けたと判定した場合（ステップＳ２０ｅでＹＥＳ）、通信部３３を介して、サーバ１からマップ情報を取得する（ステップＳ２０ｆ）。なお、「マップ」を表示させる操作は、例えば値札画像、若しくは棚画像のタップ操作であっても良く、または「マップ」へ遷移するためのボタンのタッチ操作であっても良い。制御部３１は、取得したマップ情報に基づき、マップを生成する（ステップＳ２０ｇ）。
【０１２７】
制御部３１は、適正等の対象商品が置かれた場所を示すマークを、ステップＳ２０ｇで生成したマップ上で表示する場所情報を取得する（ステップＳ２０ｈ）。具体的には、制御部３１は、選択結果ＤＢ１７２からマークを表示するための座標を取得し、取得した座標を基づいてマークを生成する。制御部３１は、表示部３５を介して、座標情報に合わせて、生成したマークをマップに重ねて表示し（ステップＳ２０ｉ）、処理を終了する。制御部３１は、「マップ」を表示させる操作を受付けていないと判定した場合（ステップＳ２０ｅでＮＯ）、処理を終了する。
【０１２８】
本実施形態によると、商品コードの選択結果、及び該商品コードに対応する商品が施設に置かれた位置を表示することにより、売価チェック等の業務を支えることが可能となる。
【０１２９】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３０】
１        情報処理装置（サーバ）
１１      制御部
１２      記憶部
１３      通信部
１４      入力部
１５      表示部
１６      読取部
１７      大容量記憶部
１７１    商品マスタＤＢ
１７２    選択結果ＤＢ
１７３    マップＤＢ
１ａ      可搬型記憶媒体
１ｂ      半導体メモリ
１Ｐ      制御プログラム
２        情報処理装置（ロボット）
２１      制御部
２２      記憶部
２３      無線通信部
２４      撮影部
２５      自律移動部
２６      移動機構
２６１    車輪
２６２    モータ
２７      読取部
２８      大容量記憶部
２８１    画像ＤＢ
２８２    閾値ＤＢ
２８３    商品コード認識モデル
２８４    距離ＤＢ
２８５    文字セットＤＢ
２８６    売価チェック結果ＤＢ
２ａ      可搬型記憶媒体
２ｂ      半導体メモリ
２Ｐ      制御プログラム
３        情報処理端末（端末）
３１      制御部
３２      記憶部
３３      通信部
３４      入力部
３５      表示部
３Ｐ      制御プログラム
【図１】
2020198054.tif 000003
【図２】
2020198054.tif 000004
【図３】
2020198054.tif 000005
【図４】
2020198054.tif 000006
【図５】
2020198054.tif 000007
【図６】
2020198054.tif 000008
【図７】
2020198054.tif 000009
【図８】
2020198054.tif 000010
【図９】
2020198054.tif 000011
【図１０】
2020198054.tif 000012
【図１１】
2020198054.tif 000013
【図１２】
2020198054.tif 000014
【図１３】
2020198054.tif 000015
【図１４】
2020198054.tif 000016
【図１５】
2020198054.tif 000017
【図１６】
2020198054.tif 000018
【図１７】
2020198054.tif 000019
【図１８】
2020198054.tif 000020
【図１９】
2020198054.tif 000021
【図２０】
2020198054.tif 000022
【図２１】
2020198054.tif 000023
【図２２】
2020198054.tif 000024
【図２３】
2020198054.tif 000025
【図２４】
2020198054.tif 000026
【図２５】
2020198054.tif 000027
【図２６】
2020198054.tif 000028
【図２７】
2020198054.tif 000029
【図２８】
2020198054.tif 000030
【図２９】
2020198054.tif 000031