IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 楽天株式会社の特許一覧

特許7054760物体認識システム、位置情報取得方法、及びプログラム
<>
  • 特許-物体認識システム、位置情報取得方法、及びプログラム 図1
  • 特許-物体認識システム、位置情報取得方法、及びプログラム 図2
  • 特許-物体認識システム、位置情報取得方法、及びプログラム 図3
  • 特許-物体認識システム、位置情報取得方法、及びプログラム 図4
  • 特許-物体認識システム、位置情報取得方法、及びプログラム 図5
  • 特許-物体認識システム、位置情報取得方法、及びプログラム 図6
  • 特許-物体認識システム、位置情報取得方法、及びプログラム 図7
  • 特許-物体認識システム、位置情報取得方法、及びプログラム 図8
  • 特許-物体認識システム、位置情報取得方法、及びプログラム 図9
  • 特許-物体認識システム、位置情報取得方法、及びプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-06
(45)【発行日】2022-04-14
(54)【発明の名称】物体認識システム、位置情報取得方法、及びプログラム
(51)【国際特許分類】
   G06T 7/70 20170101AFI20220407BHJP
【FI】
G06T7/70 A
【請求項の数】 18
(21)【出願番号】P 2021531732
(86)(22)【出願日】2020-01-29
(86)【国際出願番号】 JP2020003188
(87)【国際公開番号】W WO2021152727
(87)【国際公開日】2021-08-05
【審査請求日】2021-06-03
【早期審査対象出願】
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】特許業務法人はるか国際特許事務所
(72)【発明者】
【氏名】金 美廷
(72)【発明者】
【氏名】蔡 永男
【審査官】板垣 有紀
(56)【参考文献】
【文献】特開2020-008896(JP,A)
【文献】特開2019-101535(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/70 - 7/90
(57)【特許請求の範囲】
【請求項1】
物体を認識する学習モデルに、入力画像を入力する入力手段と、
前記入力画像が入力された前記学習モデルによる認識の根拠となった位置に関する第1情報を取得する第1取得手段と、
前記入力画像に含まれる動体又は前景の位置に関する第2情報を取得する第2取得手段と、
記第2情報を利用して、前記第1情報に示された部分を拡張することによって、前記入力画像に含まれる前記物体の位置に関する位置情報を取得する位置情報取得手段と、
を含む物体認識システム。
【請求項2】
物体を認識する学習モデルに、入力画像を入力する入力手段と、
前記入力画像が入力された前記学習モデルによる認識の根拠となった位置に関する第1情報を取得する第1取得手段と、
前記入力画像に含まれる動体又は前景の位置に関する第2情報を取得する第2取得手段と、
前記入力画像に含まれる前記物体を把持する他の物体の位置に関する第3情報を取得する第3取得手段と、
前記第1情報、前記第2情報、及び前記第3情報に基づいて、前記入力画像に含まれる前記物体の位置に関する位置情報を取得する位置情報取得手段と、
を含む物体認識システム。
【請求項3】
前記第1情報は、前記学習モデルによる認識の根拠としての強さを示す値を前記入力画像の画素ごとに特定可能な情報であり、
前記第2情報は、前記動体又は前記前景としての強さを示す値を前記入力画像の画素ごとに特定可能な情報である、
請求項1又は2に記載の物体認識システム。
【請求項4】
前記位置情報取得手段は、前記第1情報から特定される前記入力画像における各画素に対応する値と、前記第2情報から特定される前記入力画像における各画素に対応する値と、を所定の数式で足し合わせた結果に基づいて、前記位置情報を取得する、
請求項3に記載の物体認識システム。
【請求項5】
前記第1情報は、前記学習モデルによる認識の根拠としての強さを示す値を前記入力画像の画素ごとに特定可能な情報であり、
前記第2情報は、前記動体又は前記前景としての強さを示す値を前記入力画像の画素ごとに特定可能な情報であり、
前記第3情報は、前記他の物体の位置としての強さを示す値を前記入力画像の画素ごとに特定可能な情報である、
請求項に記載の物体認識システム。
【請求項6】
前記位置情報取得手段は、前記第1情報から特定される前記入力画像における各画素に対応する値と、前記第2情報から特定される前記入力画像における各画素に対応する値と、を所定の数式で足し合わせ、前記第3情報から特定される前記入力画像における各画素に対応する値を所定の数式で差し引いた結果に基づいて、前記位置情報を取得する、
請求項に記載の物体認識システム。
【請求項7】
前記位置情報取得手段は、前記第1情報に応じた重み付けに更に基づいて、前記位置情報を取得する、
請求項1~の何れかに記載の物体認識システム。
【請求項8】
前記位置情報は、前記物体を含む領域を示し、
前記位置情報取得手段は、前記領域の候補を複数取得し、複数の当該候補のうち最もサイズが大きい候補に基づいて、前記位置情報を取得する、
請求項1~の何れかに記載の物体認識システム。
【請求項9】
前記入力画像には、複数の種類の前記物体が含まれており、
前記位置情報取得手段は、前記入力画像に含まれる前記物体の種類ごとに、前記位置情報を取得する、
請求項1~の何れかに記載の物体認識システム。
【請求項10】
前記物体認識システムは、前記入力画像と前記位置情報とに基づいて生成された教師データに基づいて、前記物体の位置を認識する他の学習モデルの学習処理を実行する学習手段、
を更に含む請求項1~の何れかに記載の物体認識システム。
【請求項11】
前記入力画像は、動画におけるフレームであり、
前記位置情報取得手段は、前記フレームごとに前記位置情報を取得し、
前記学習手段は、前記動画から生成された複数の前記教師データを含む教師データセットに基づいて、前記学習処理を実行する、
請求項1に記載の物体認識システム。
【請求項12】
前記入力画像は、動画におけるフレームであり、
前記物体認識システムは、前記位置情報に基づいて、前記動画に含まれる前記物体を追跡する追跡手段を更に含む、
請求項1~1の何れかに記載の物体認識システム。
【請求項13】
前記学習モデルは、前記物体の種類を分類する分類器、又は、前記物体の有無を判定する判定器である、
請求項1~1の何れかに記載の物体認識システム。
【請求項14】
前記位置情報は、前記物体を含むバウンディングボックスに関する情報である、
請求項1~1の何れかに記載の物体認識システム。
【請求項15】
物体を認識する学習モデルに、入力画像を入力する入力ステップと、
前記入力画像が入力された前記学習モデルによる認識の根拠となった位置に関する第1情報を取得する第1取得ステップと、
前記入力画像に含まれる動体又は前景の位置に関する第2情報を取得する第2取得ステップと、
記第2情報を利用して、前記第1情報に示された部分を拡張することによって、前記入力画像に含まれる前記物体の位置に関する位置情報を取得する位置情報取得ステップと、
を含む位置情報取得方法。
【請求項16】
物体を認識する学習モデルに、入力画像を入力する入力ステップと、
前記入力画像が入力された前記学習モデルによる認識の根拠となった位置に関する第1情報を取得する第1取得ステップと、
前記入力画像に含まれる動体又は前景の位置に関する第2情報を取得する第2取得ステップと、
前記入力画像に含まれる前記物体を把持する他の物体の位置に関する第3情報を取得する第3取得ステップと、
前記第1情報、前記第2情報、及び前記第3情報に基づいて、前記入力画像に含まれる前記物体の位置に関する位置情報を取得する位置情報取得ステップと、
を含む位置情報取得方法。
【請求項17】
物体を認識する学習モデルに、入力画像を入力する入力手段、
前記入力画像が入力された前記学習モデルによる認識の根拠となった位置に関する第1情報を取得する第1取得手段、
前記入力画像に含まれる動体又は前景の位置に関する第2情報を取得する第2取得手段、
記第2情報を利用して、前記第1情報に示された部分を拡張することによって、前記入力画像に含まれる前記物体の位置に関する位置情報を取得する位置情報取得手段、
としてコンピュータを機能させるためのプログラム。
【請求項18】
物体を認識する学習モデルに、入力画像を入力する入力手段、
前記入力画像が入力された前記学習モデルによる認識の根拠となった位置に関する第1情報を取得する第1取得手段、
前記入力画像に含まれる動体又は前景の位置に関する第2情報を取得する第2取得手段、
前記入力画像に含まれる前記物体を把持する他の物体の位置に関する第3情報を取得する第3取得手段、
前記第1情報、前記第2情報、及び前記第3情報に基づいて、前記入力画像に含まれる前記物体の位置に関する位置情報を取得する位置情報取得手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、物体認識システム、位置情報取得方法、及びプログラムに関する。
【背景技術】
【0002】
従来、画像に含まれる物体を認識する技術が知られている。例えば、特許文献1には、動画における最初のフレームでユーザが指定した範囲をテンプレート画像としてテンプレートマッチングを実行し、それ以降のフレームで当該範囲内の物体を認識して追跡する技術が記載されている。また例えば、特許文献2には、追跡対象となる範囲を正例とし、追跡対象ではない範囲を負例とする教師データにより学習された学習モデルに基づいて、物体を認識して追跡する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2011-40993号公報
【文献】特開2017-33175号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、認識の対象となる範囲をユーザが指定する必要があるので、ユーザに負担がかかっていた。例えば、複数の種類の物体を認識しようとすると、その種類の数だけユーザが範囲を指定する必要があるので、特に負担がかかる。
【0005】
本開示の目的の1つは、物体認識におけるユーザの負担を軽減することである。
【課題を解決するための手段】
【0006】
本開示に係る物体認識システムは、物体を認識する学習モデルに、入力画像を入力する入力手段と、前記入力画像が入力された前記学習モデルによる認識の根拠となった位置に関する第1情報を取得する第1取得手段と、前記入力画像に含まれる動体又は前景の位置に関する第2情報を取得する第2取得手段と、前記第1情報と前記第2情報とに基づいて、前記入力画像に含まれる前記物体の位置に関する位置情報を取得する位置情報取得手段と、を含む。
【0007】
本開示に係る位置情報取得方法は、物体を認識する学習モデルに、入力画像を入力する入力ステップと、前記入力画像が入力された前記学習モデルによる認識の根拠となった位置に関する第1情報を取得する第1取得ステップと、前記入力画像に含まれる動体又は前景の位置に関する第2情報を取得する第2取得ステップと、前記第1情報と前記第2情報とに基づいて、前記入力画像に含まれる前記物体の位置に関する位置情報を取得する位置情報取得ステップと、を含む。
【0008】
本開示に係るプログラムは、物体を認識する学習モデルに、入力画像を入力する入力手段、前記入力画像が入力された前記学習モデルによる認識の根拠となった位置に関する第1情報を取得する第1取得手段、前記入力画像に含まれる動体又は前景の位置に関する第2情報を取得する第2取得手段、前記第1情報と前記第2情報とに基づいて、前記入力画像に含まれる前記物体の位置に関する位置情報を取得する位置情報取得手段、としてコンピュータを機能させる。
【0009】
本開示の一態様によれば、前記第1情報は、前記学習モデルによる認識の根拠としての強さを示す値を前記入力画像の画素ごとに特定可能な情報であり、前記第2情報は、前記動体又は前記前景としての強さを示す値を前記入力画像の画素ごとに特定可能な情報である。
【0010】
本開示の一態様によれば、前記位置情報取得手段は、前記第1情報から特定される前記入力画像における各画素に対応する値と、前記第2情報から特定される前記入力画像における各画素に対応する値と、を所定の数式で足し合わせた結果に基づいて、前記位置情報を取得する。
【0011】
本開示の一態様によれば、前記物体認識システムは、前記入力画像に含まれる前記物体を把持する他の物体の位置に関する第3情報を取得する第3取得手段を更に含み、前記位置情報取得手段は、前記第3情報に更に基づいて、前記位置情報を取得する。
【0012】
本開示の一態様によれば、前記第1情報は、前記学習モデルによる認識の根拠としての強さを示す値を前記入力画像の画素ごとに特定可能な情報であり、前記第2情報は、前記動体又は前記前景としての強さを示す値を前記入力画像の画素ごとに特定可能な情報であり、前記第3情報は、前記他の物体の位置としての強さを示す値を前記入力画像の画素ごとに特定可能な情報である。
【0013】
本開示の一態様によれば、前記位置情報取得手段は、前記第1情報から特定される前記入力画像における各画素に対応する値と、前記第2情報から特定される前記入力画像における各画素に対応する値と、を所定の数式で足し合わせ、前記第3情報から特定される前記入力画像における各画素に対応する値を所定の数式で差し引いた結果に基づいて、前記位置情報を取得する。
【0014】
本開示の一態様によれば、前記位置情報取得手段は、前記第1情報に応じた重み付けに更に基づいて、前記位置情報を取得する。
【0015】
本開示の一態様によれば、前記位置情報は、前記物体を含む領域を示し、前記位置情報取得手段は、前記領域の候補を複数取得し、複数の当該候補のうち最もサイズが大きい候補に基づいて、前記位置情報を取得する。
【0016】
本開示の一態様によれば、前記入力画像には、複数の種類の前記物体が含まれており、前記位置情報取得手段は、前記入力画像に含まれる前記物体の種類ごとに、前記位置情報を取得する。
【0017】
本開示の一態様によれば、前記物体認識システムは、前記入力画像と前記位置情報とに基づいて生成された教師データに基づいて、前記物体の位置を認識する他の学習モデルの学習処理を実行する学習手段、を更に含む。
【0018】
本開示の一態様によれば、前記入力画像は、動画におけるフレームであり、前記位置情報取得手段は、前記フレームごとに前記位置情報を取得し、前記学習手段は、前記動画から生成された複数の前記教師データを含む教師データセットに基づいて、前記学習処理を実行する。
【0019】
本開示の一態様によれば、前記入力画像は、動画におけるフレームであり、前記物体認識システムは、前記位置情報に基づいて、前記動画に含まれる前記物体を追跡する追跡手段を更に含む。
【0020】
本開示の一態様によれば、前記学習モデルは、前記物体の種類を分類する分類器、又は、前記物体の有無を判定する判定器である。
【0021】
本開示の一態様によれば、前記位置情報は、前記物体を含むバウンディングボックスに関する情報である。
【発明の効果】
【0022】
本開示によれば、物体認識におけるユーザの負担を軽減できる。
【図面の簡単な説明】
【0023】
図1】物体認識システムの全体構成を示す図である。
図2】自動販売機の一例を示す図である。
図3】学習装置が実行する処理の流れを示す図である。
図4】物体認識システムで実現される機能の一例を示す機能ブロック図である。
図5】教師データセットのデータ格納例を示す図である。
図6】買い物かごデータのデータ格納例を示す図である。
図7】利用者データベースのデータ格納例を示す図である。
図8】学習処理の一例を示すフロー図である。
図9】販売処理の一例を示すフロー図である。
図10】変形例(2)における機能ブロック図である。
【発明を実施するための形態】
【0024】
[1.物体認識システムの全体構成]
以下、物体認識システムの実施形態の例を説明する。図1は、物体認識システムの全体構成を示す図である。図1に示すように、物体認識システムSは、学習装置10、自動販売機20、及びサーバ30を含み、これらは、インターネットなどのネットワークNに接続可能である。なお、図1では、学習装置10、自動販売機20、及びサーバ30の各々を1台ずつ示しているが、これらは複数台あってもよい。
【0025】
学習装置10は、管理者が操作するコンピュータである。例えば、学習装置10は、パーソナルコンピュータ、携帯情報端末(タブレット型コンピュータを含む)、又は携帯電話機(スマートフォンを含む)等である。学習装置10は、制御部11、記憶部12、通信部13、操作部14、表示部15、及び撮影部16を含む。
【0026】
制御部11は、少なくとも1つのプロセッサを含む。制御部11は、記憶部12に記憶されたプログラム及びデータに従って処理を実行する。記憶部12は、主記憶部及び補助記憶部を含む。主記憶部は、RAMなどの揮発性メモリである。補助記憶部は、ROM、EEPROM、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。通信部13は、有線通信又は無線通信用の通信インタフェースである。通信部13は、ネットワークNを介してデータ通信を行う。
【0027】
操作部14は、入力デバイスである。例えば、操作部14は、タッチパネルやマウス等のポインティングデバイス、キーボード、又はボタンである。操作部14は、利用者による操作内容を制御部11に伝達する。表示部15は、液晶表示部又は有機EL表示部等である。表示部15は、制御部11の指示に従って画像を表示する。
【0028】
撮影部16は、少なくとも1つのカメラを含む。例えば、撮影部16は、センサCCD又はSMOSセンサの検出信号に基づいて、画像を生成する。撮影部16は、静止画を生成してもよいし、所定のフレームレートに基づいて動画を生成してもよい。撮影部16は、深度カメラ又は赤外線カメラを含んでもよい。
【0029】
自動販売機20は、無人で商品を販売する装置である。自動販売機20は、屋内に配置されてもよいし、屋外に配置されてもよい。自動販売機20は、所定の位置に固定されていてもよいし、人手で又は自律的に移動可能であってもよい。例えば、自動販売機20は、制御部21、記憶部22、通信部23、操作部24、表示部25、及び撮影部26を含む。制御部21、記憶部22、通信部23、操作部24、表示部25、及び撮影部26の物理的構成は、それぞれ制御部11、記憶部12、通信部13、操作部14、表示部15、及び撮影部16と同様であってよい。
【0030】
サーバ30は、サーバコンピュータである。例えば、サーバ30は、制御部31、記憶部32、及び通信部33を含む。制御部31、記憶部32、及び通信部33の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
【0031】
なお、記憶部12,22,32に記憶されるものとして説明するプログラム及びデータは、ネットワークNを介して供給されてもよい。また、学習装置10、自動販売機20、及びサーバ30の各々のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器とデータの入出力をするための入出力部(例えば、USBポート)が含まれていてもよい。例えば、情報記憶媒体に記憶されたプログラムやデータが、読取部や入出力部を介して供給されてもよい。
【0032】
[2.物体認識システムの概要]
本実施形態では、自動販売機20が商品を販売する場面を例に挙げて、物体認識システムSが実行する処理を説明する。自動販売機20は、任意の商品を販売可能であり、例えば、食料品、飲料、文房具、日用品、又は雑貨を販売する。自動販売機20は、少なくとも1つの種類の商品を販売する。商品は、その種類に応じた外観を有する。外観とは、商品の見た目であり、例えば、形状、サイズ、色、及び模様の少なくとも1つである。商品には、その種類に応じた価格が設定される。
【0033】
図2は、自動販売機20の一例を示す図である。図2に示すように、本実施形態では、複数の種類の商品が自動販売機20の中に陳列されている。例えば、自動販売機20は、扉を有しており、利用者は外から商品を視認できる。自動販売機20の扉は、公知のロック機構によりロックされている。自動販売機20の前に移動した利用者が認証されると、扉のロックが解除される。
【0034】
利用者は、事前に利用登録を済ませており、認証に必要な情報は、サーバ30に予め登録されている。本実施形態では、顔認証を例に挙げて説明するが、任意の種類の認証を適用可能である。例えば、指紋認証などの他の生体認証、利用者の端末を利用した認証、ICカードを利用した認証、パスコード認証、又はパスワード認証が適用されてもよい。また例えば、複数の認証を組み合わせた多段階認証であってもよい。
【0035】
図2に示すように、撮影部26は、扉の正面を向くように配置される。図2の例では、撮影部26が扉の上に配置されているが、撮影部26は、利用者が商品を手に取る様子を撮影可能な位置であれば、他の位置に配置可能である。本実施形態では、撮影部26が固定されており、撮影部26の位置及び向きが変化しない。このため、撮影部26により生成される撮影画像が示す背景は、原則として変わらない。なお、撮影部26は、位置及び向きの少なくとも一方が変化してもよい。また、自動販売機20は、互いに異なる場所を撮影可能な複数の撮影部26を含んでもよい。
【0036】
例えば、表示部25には、商品を購入するための操作手順が表示される。利用者は、表示部25に表示された操作手順を確認し、操作部24を操作してボタンを選択する。撮影部26は、所定のフレームレートに基づいて連続的に撮影し、撮影画像を生成する。以降、連続的に撮影された個々の撮影画像をフレームと記載する。動画に含まれる個々の静止画(コマ)もフレームである。利用者は、撮影部26の前に移動して自身の顔を撮影させる。自動販売機20は、サーバ30に対し、連続的にフレームを送信する。
【0037】
サーバ30は、フレームを受信すると、公知の顔認証アルゴリズムに基づいて、利用者の顔認証を実行する。サーバ30は、自動販売機20に対し、顔認証が成功したか否かを示す認証結果を送信する。自動販売機20は、認証結果を受信し、認証結果が失敗を示す場合には、扉のロックを解除せず、所定のエラーメッセージを表示部25に表示させる。この場合、再び顔認証が実行されてもよいし、指紋認証又はパスワード認証などの他の認証が実行されてもよい。
【0038】
自動販売機20は、認証結果が成功を示す場合には、扉のロックを解除し、顔認証が成功したことを示すメッセージを表示部25に表示させる。扉のロックが解除されると、利用者は、扉を開けて商品を取り出すことができる。利用者は、扉を開けてから閉じるまでの間、自動販売機20の庫内から任意の商品を取り出すことができる。利用者は、一度取り出した商品を庫内に戻すこともできる。
【0039】
例えば、利用者が扉を閉じた場合に、予め登録されたクレジットカード情報に基づいて、取り出された商品の決済が実行される。このため、自動販売機20は、利用者が扉を閉めた時点で取り出されている商品を特定する必要がある。例えば、利用者が取り出した商品だったとしても、その後に自動販売機20の庫内に戻した商品については、決済の対象とはならない。
【0040】
本実施形態では、自動販売機20は、記憶部22に記憶された学習モデルを利用して撮影部26のフレームを解析し、利用者が取り出した商品を特定する。自動販売機20は、利用者が扉を開けてから閉めるまでの間、学習モデルを利用してフレームに対する画像解析を行う。
【0041】
学習モデルは、教師あり機械学習におけるモデルである。学習モデルという言葉自体は、学習済みのモデルを意味してもよいし、学習前のモデルを意味してもよい。例えば、後述する学習モデルM1は、学習済みモデルを意味する。後述する学習モデルM2は、後述する学習部107による学習処理が実行される前であれば学習前のモデルを意味し、学習処理が実行された後であれば学習済みのモデルを意味する。学習モデルは、プログラム及びパラメータを含み、教師データに基づく学習処理によってパラメータの調整が行われる。教師データの詳細は、後述する。機械学習自体は、画像認識で利用される手法であればよく、例えば、CNN(Convolutional Neural Network)、ResNet(Residual Network)、又はRNN(Recurrent Neural Network)であってよい。
【0042】
本実施形態の学習モデルは、画像に含まれる物体を認識する認識器である。例えば、学習モデルは、物体の種類を分類する分類器、又は、物体の有無を判定する判定器である。
【0043】
分類器は、複数の種類の中で物体を分類するモデルである。分類は、ラベルということもでき、物体を分類することは、ラベリングということもできる。分類器は、自動販売機20が取り扱う商品の種類を最低限分類できればよく、それ以上の種類を分類可能であってもよい。例えば、商品の種類は、商品の名前、型番、又はコード情報(例えば、JANコード又はEANコード)によって識別される。
【0044】
判定器は、所定種類の物体があるか否かを判定するモデルである。判定器は、1種類の物体の有無だけを判定してもよいし、複数の種類の物体の何れかの有無を判定してもよい。ただし、複数の種類の物体を判定可能な判定器については、どの種類に分類されるかまでは判定せず、何れかの種類の物体があるか否かだけが判定される。この点で、判定器と分類器は異なる。
【0045】
本実施形態では、自動販売機20が利用する学習モデルが分類器である場合を説明する。ただし、自動販売機20が利用する学習モデルは、判定器であってもよい。この場合、自動販売機20が取り扱う商品の種類ごとに判定器を用意すればよい。また、自動販売機20が1種類の商品しか販売しない場合には、学習モデルは判定器となる。
【0046】
学習モデルは、入力画像に含まれる物体を認識する。入力画像は、学習モデルに入力される画像である。別の言い方をすれば、入力画像は、学習モデルの処理対象(認識対象)となる画像である。自動販売機20に記憶された学習モデルであれば、撮影部26により生成された個々のフレームが入力画像に相当する。学習モデルは、入力画像の特徴量を計算し、特徴量に基づいて、入力画像に含まれる物体を認識する。
【0047】
物体とは、入力画像に写された被写体である。入力画像には、物体の全部又は一部が写される。本実施形態では、商品が物体に相当する。このため、本実施形態で商品と記載した箇所は、物体と読み替えることができる。物体は、学習モデルにより認識可能なものであればよく、商品に限られない。この点は、後述する変形例で説明する。
【0048】
認識とは、入力画像の分析、解析、理解、分類、又は識別を含む概念である。入力画像に含まれる物体を検出したり、入力画像における物体の位置を特定したりすることは、認識の一例である。物体の位置とは、入力画像のうち、物体が表れた少なくとも1つの画素の位置である。物体の位置は、1つの画素(1つの座標)だけで示されてもよいし、複数の画素からなる領域(複数の座標群)で示されてもよい。詳細は後述するが、本実施形態では、物体を囲うバウンディングボックスによって、物体の位置が示される。
【0049】
例えば、自動販売機20の学習モデルは、商品の種類と位置を認識する。商品の種類だけでなく位置を認識するのは、利用者が庫内に商品を戻す可能性があるからである。例えば、学習モデルがフレーム内の商品を認識した後に、当該商品がフレームの下方向に移動して認識できなくなった場合には、当該商品が戻されたと判定される。また例えば、学習モデルがフレーム内の商品を認識した後に、当該商品がフレームの左方向・上方向・右方向に移動して認識できなくなった場合には、当該商品が戻されておらず、利用者が商品を持っている(商品が単に視界から外れただけ)と判定される。
【0050】
この点、商品のテンプレート画像を用意しておき、テンプレートマッチングを利用して商品を追跡することも考えられるが、利用者の手によって商品の一部が隠れることが多く、商品を追跡できないことがある。また、商品を手で隠したテンプレート画像を用意しようとすると、非常に手間がかかる。フレームから抽出した商品の特徴点を追跡しようとしても、商品の移動速度によっては特徴点を抽出できず、商品を追跡できないことがある。
【0051】
そこで、本実施形態の自動販売機20は、学習モデルに個々のフレームを入力して商品を認識する。即ち、自動販売機20は、学習モデルによる認識を毎フレーム実行する。
【0052】
なお、学習モデルによる認識は、毎フレームではなく、所定数のフレームごとに(例えば、3フレームごとに)実行されてもよい。また、自動販売機20は、あるフレームで認識された商品の部分をテンプレート画像として利用し、以降のフレームでテンプレートマッチングを実行して商品を追跡してもよい。この場合、商品の向きが変わる可能性があるので、テンプレート画像は、随時更新されるものとする。テンプレート画像は、最新のフレームを学習モデルに入力して更新されるようにすればよい。
【0053】
利用者が商品を取り出した後は、撮影部26に対する商品の位置及び向きが一定になるとは限らないので、学習モデルには、種々の位置及び向きで撮影された商品を学習させる必要がある。この点、管理者が自動販売機20の前で商品を動かす様子を撮影した動画を利用して、教師データを生成することが考えられる。
【0054】
しかしながら、個々のフレームにおける商品の範囲を手動で指定しようとすると(全てのフレームに対して手動でアノテーションしようとすると)、管理者の負担が非常に大きくなる。そこで、本実施形態では、学習装置10が、管理者が用意した動画における個々のフレームにおける商品の範囲を自動的に特定することによって、管理者の負担を軽減するようにしている。
【0055】
図3は、学習装置10が実行する処理の流れを示す図である。図3に示すように、学習装置10は、動画における任意のフレームFを学習モデルM1に入力する。本実施形態の動画は、自動販売機20の前で撮影されているので、フレームFに示された背景は、利用者が商品を購入する場合の背景と同じである。なお、動画は、他の場所で撮影されてもよい。
【0056】
学習モデルM1は、自動販売機20の学習モデル(以降、学習モデルM2と記載する)と同じであってもよいが、本実施形態では、自動販売機20の学習モデルM2とは異なるモデルであるものとする。学習モデルM1は、学習モデルM2と同様、分類器であってもよいし、判定器であってもよい。学習モデルM1による「認識」や「物体」などの意味は、先述した通りである。
【0057】
例えば、学習モデルM1は、CNNであり、物体を認識できるが、その位置までは認識できない。CNNを用意する場合には、認識対象の部分を正例とし、それ以外の部分を負例として学習させればよいので、学習モデルM1は比較的簡単に準備できる。学習モデルM1には、自動販売機20が取り扱う商品の外観の特徴が学習されている。
【0058】
図3に示すように、学習装置10は、学習モデルM1の認識結果をもとに、Grad-CAMのアルゴリズムAを利用して、学習モデルM1の認識の根拠となる部分を可視化したヒートマップHを生成する。なお、本実施形態では、物体を認識する手段(学習モデルM1)と、ヒートマップHを生成する手段(Grad-CAMのアルゴリズムA)と、が別々である場合を説明するが、これらは一体化されていてもよい。
【0059】
図3に示すように、ヒートマップHでは、学習モデルM1による認識の根拠となった位置が色によって表現される。例えば、ヒートマップHは、入力画像であるフレームFと同じサイズの画像であり、認識の根拠が強いほど(特徴的な部分ほど)色が濃くなる。ヒートマップHでは、色を模式的に網点で示しており、網点の密度が高いほど色が濃く、網点の密度が低いほど色が薄いものとする。
【0060】
なお、ヒートマップHは、あくまで認識の根拠となった位置を示すので、色がついた部分がそのまま商品の位置になるとは限らない。例えば、商品のうち認識の根拠が強い部分に色が付き、認識の根拠として弱い部分には色が付かないので、ヒートマップHでは、商品の一部分に色が付かないことがある。このため、ヒートマップHで色がついた部分をそのままバウンディングボックスにしても精度が高くならないことが多い。例えば、外観の特徴が局所的に集まっている商品(商品中央のロゴ部分など)については、ヒートマップHだけでは、商品全体の位置を正確に推定することはできない。
【0061】
学習装置10は、フレームFに対し、動き検出処理を実行して動き画像I1を取得する。動き検出処理は、画像における動体を検出する処理である。動き検出処理自体は、公知のアルゴリズムを利用可能であり、例えば、フレーム間差分法又は背景差分法を利用してもよい。
【0062】
本実施形態では、管理者が商品を手で持って動かす様子が動画に示されているので、動き検出処理により、管理者の手、腕、及び商品などの動体を示す動き画像が出力される。フレームFにおける背景は、原則として動かないので、動き検出処理によって検出される部分は、前景ということもできる。
【0063】
図3に示すように、動き画像I1では、フレームFにおける動体の位置が色によって表現される。例えば、動き画像I1は、フレームFと同じサイズの画像であり、動きが大きいほど明るい色になる。動き画像I1では、色の明るさを模式的に網点で示しており、網点の密度が高いほど暗く、網点の密度が低いほど明るいものとする。
【0064】
学習装置10は、ヒートマップHと動き画像I1とを足し合わせた画像I2を取得する。画像I2は、ヒートマップHと動き画像I1とが合成された画像であり、画素値の単純な加算であってもよいし、所定の重み付けがなされた加算であってもよい。例えば、画像I2は、ヒートマップHと動き画像I1が総合的に考慮された画像であり、学習モデルM1による認識の根拠となり、動きがある画素の色が残る。このため、図3に示すように、画像I2では、管理者が手で持った商品周辺の領域が残る。
【0065】
画像I2における色が濃い部分をそのまま商品の位置とみなしてもよいが、本実施形態では、管理者の手及び腕の部分を特定して除去するようにしている。学習装置10は、フレームFに対し、肌検出処理を実行して肌画像I3を取得する。肌検出処理は、画像における肌色の部分を検出する処理である。肌検出処理自体は、公知の処理を利用可能であり、例えば、肌の色を定義した色情報を利用する手法であってもよいし、近赤外肌検出法と呼ばれる手法を利用してもよい。
【0066】
本実施形態の動画では、管理者が半袖の服を着ており、少なくとも手と腕が露出されているものとする。予め半袖の服を着ることを定めておけば、肌を検出することによって、ノイズになりうる部分を除去できるからである。半袖ではなく、所定の色の服を着るなどのようなルールを定めておいてもよい。図3に示すように、肌検出処理により、管理者の手及び腕を示す肌画像が出力される。例えば、肌画像I3は、フレームFと同じサイズの画像であり、フレームFのうち肌色の部分だけが残った画像である。
【0067】
学習装置10は、画像I2から肌画像I3を差し引いたうえで、ヒートマップHに応じた重み付けマッピングを実行し、閾値化処理を実行する。重み付けマッピングでは、ヒートマップHにおける色の濃さに応じた重み付けが設定される。このため、学習モデルM1による認識の根拠になった部分は、比較的信頼度が高いので、閾値化処理が実行された後に残りやすくなる。閾値化処理では、重み付けマッピング後の画像に対する二値化が行われる。二値化により色が残った部分は、商品である蓋然性が高い部分となる。
【0068】
学習装置10は、閾値化処理を実行した後に色が残った領域が1つだけであれば、その領域を囲うバウンディングボックスBを取得する。学習装置10は、閾値化処理を実行した後に色が残った領域が複数存在すれば、CCL(Connected Component Labeling)により、最も大きな領域を囲うバウンディングボックスBを取得する。例えば、バウンディングボックスBは、商品である蓋然性の高い領域の外接矩形である。図3の例では、最終的に出力されるフレームFの上にバウンディングボックスBを描いている。
【0069】
学習装置10は、バウンディングボックスBを取得したフレームFを入力とし、認識された商品の種類及びバウンディングボックスBを出力とする教師データを取得する。商品の種類は、学習モデルM1によって認識されてもよいし、管理者が予め指定してもよい。管理者が予め商品の種類を指定する場合には、学習モデルM1は、その種類の商品の有無を判定する判定器であってもよい。
【0070】
例えば、学習装置10は、動画中の全てのフレームFに対し、図3に示した処理を実行してバウンディングボックスBを取得する。学習装置10は、バウンディングボックスBを取得できたフレームFについては、当該フレームFを入力とし、認識された商品の種類及びバウンディングボックスBを出力とする教師データを取得する。バウンディングボックスBが認識されなかったフレームFについては、教師データは取得されない。
【0071】
学習装置10は、動画から作成した全ての教師データを含む教師データセットを取得する。学習装置10は、教師データセットに基づいて、学習前の学習モデルM2(物体の認識だけでなく、その位置まで認識できる学習モデル)の学習処理を実行する。学習済みの学習モデルM2は、自動販売機20に送信される。教師データセットには、種々の位置及び向きで商品が撮影されたフレームが含まれているので、学習済みの学習モデルM2は、撮影部26のフレームから商品の種類と位置を認識できる。
【0072】
以上のように、本実施形態の物体認識システムSは、ヒートマップH、動き画像I1、及び肌画像I3に基づいて、フレームF内のバウンディングボックスBを取得する。このため、管理者が手動でバウンディングボックスBを指定しなくてすむので、教師データを生成する際の管理者の負担を軽減できる。以降、物体認識システムSの詳細を説明する。
【0073】
[3.物体認識システムで実現される機能]
図4は、物体認識システムSで実現される機能の一例を示す機能ブロック図である。本実施形態では、学習装置10、自動販売機20、及びサーバ30の各々で実現される機能を説明する。
【0074】
[3-1.学習装置で実現される機能]
図4に示すように、学習装置10では、データ記憶部100、入力部101、第1取得部102、第2取得部103、第3取得部104、位置情報取得部105、生成部106、及び学習部107が実現される。
【0075】
[データ記憶部]
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、本実施形態で説明する処理を実行するために必要なデータを記憶する。ここでは、データ記憶部100が記憶するデータの一例として、教師データセットDSと、学習モデルM1,M2と、について説明する。
【0076】
図5は、教師データセットDSのデータ格納例を示す図である。図5に示すように、教師データセットDSには、管理者が用意した動画における個々のフレームFと、当該フレームFに含まれる商品の分類情報及び位置情報と、を含む教師データが複数個格納されている。
【0077】
教師データは、機械学習における学習で利用されるデータである。教師データは、訓練データ又は学習データと呼ばれることもある。例えば、教師データは、入力画像と同じ形式の画像と、正解となる分類情報及び位置情報と、がペアになったデータである。教師データは、入力(設問)と出力(回答)のペアである。判定器であれば、分類情報は省略してよい。機械学習では、多数の教師データを利用して学習処理が実行される。
【0078】
本実施形態では、複数の教師データの集まりを教師データセットDSと記載し、教師データセットDSに含まれる1つ1つのデータを教師データと記載する。このため、本実施形態で教師データと記載した箇所は、上記説明したペアを意味し、教師データセットは、ペアの集まりを意味する。図5のデータ格納例では、個々のフレームFが入力に相当し、分類情報及び位置情報が出力に相当する。教師データセットDSをテーブル形式で示しており、個々のレコードが教師データに相当する。
【0079】
分類情報は、フレームFに含まれる商品の種類に関する情報である。図5では、分類情報を「菓子XXX」といった商品名で示しているが、商品を識別するための記号又は数値によって示されるようにしてもよい。例えば、分類情報は、商品を識別するコード情報であってもよい。
【0080】
位置情報は、フレームFにおける商品の位置に関する情報である。本実施形態では、バウンディングボックスBによって商品の位置が示されるので、位置情報は、フレームFにおけるバウンディングボックスBを識別する情報となる。例えば、位置情報は、バウンディングボックスBの位置、形状、及びサイズを示す。
【0081】
本実施形態では、バウンディングボックスBが四角形なので、位置情報には、この四角形を識別可能な情報が含まれる。例えば、位置情報には、バウンディングボックスBが示す四角形の四隅の座標が含まれる。なお、バウンディングボックスBは、他の情報によって識別されるようにしてもよく、例えば、頂点又は中心点の座標、縦幅、及び横幅によって識別されてもよい。また、バウンディングボックスBの形状及びサイズが固定なのであれば、位置情報は、頂点又は中心点の座標だけを示してもよい。
【0082】
なお、教師データセットDSは、商品の種類ごとに別々のデータセットとして生成されてもよいし、複数の種類の商品をまとめた1つのデータセットとして生成されてもよい。
【0083】
また、データ記憶部100は、学習モデルM1,M2のプログラム(アルゴリズム)やパラメータなどを記憶する。例えば、一般的な物体認識の教師データセットによって学習済みの学習モデルM1がデータ記憶部100に記憶される。学習モデルM1の学習処理は、学習装置10によって実行されてもよいし、他のコンピュータによって実行されてもよい。また例えば、教師データセットDSによって学習済み(パラメータの調整済み)の学習モデルM2がデータ記憶部100に記憶される。学習前の学習モデルM2の学習処理は、後述する学習部107によって実行される。
【0084】
なお、データ記憶部100に記憶されるデータは、上記の例に限られない。例えば、データ記憶部100は、管理者が商品を撮影した動画を記憶してもよい。自動販売機20が複数の種類の商品を販売する場合、商品の種類ごとに、動画が用意される。複数の自動販売機20が存在する場合、自動販売機20ごとに、動画が用意される。また例えば、データ記憶部100は、学習前(パラメータの調整前)の学習モデルM1,M2を記憶してもよい。また例えば、データ記憶部100は、Grad-CAMのプログラム、動き検出プログラム、及び肌検出プログラムを記憶してもよい。
【0085】
[入力部]
入力部101は、制御部11を主として実現される。入力部101は、物体を認識する学習モデルM1に、入力画像を入力する。本実施形態では、商品が動く様子が撮影された動画が用意されているので、入力画像は、動画におけるフレームFである。このため、本実施形態で学習モデルM1に入力されるフレームFを説明している箇所は、入力画像と読み替えることができる。
【0086】
入力画像は、動画におけるフレームFに限られず、静止画であってもよい。この場合、管理者は、商品を動画として撮影するのではなく、静止画として撮影する。例えば、管理者は、カメラの連続撮影モードを利用して、商品を動かしながら連続的に撮影し、複数の静止画を生成する。個々の静止画が、入力画像に相当する。
【0087】
入力部101は、動画に含まれる全てのフレームFを学習モデルM1に入力してもよいし、一部のフレームFだけを学習モデルM1に入力してもよい。例えば、学習モデルM1が分類器の場合、フレームFが入力されるとフレームFの特徴量を計算し、当該計算された特徴量に応じた分類を示す分類情報を出力する。また例えば、学習モデルM1が判定器の場合、フレームFが入力されるとフレームFの特徴量を計算し、当該計算された特徴量に基づいて商品の有無の判定結果を出力する。
【0088】
[第1取得部]
第1取得部102は、制御部11を主として実現される。第1取得部102は、フレームFが入力された学習モデルM1による認識の根拠となった位置に関するヒートマップHを取得する。ヒートマップHは、第1情報の一例である。このため、本実施形態でヒートマップHと記載した箇所は、第1情報と読み替えることができる。
【0089】
第1情報は、認識の根拠となった位置を特定可能な情報である。認識の根拠とは、学習モデルM1が認識の際に注目した場所、又は、入力画像における特徴的な部分ということもできる。第1情報は、ヒートマップHに限られず、例えば、認識の根拠となった位置を示す座標情報、又は、認識の根拠となった位置を含む領域情報であってもよい。
【0090】
例えば、第1情報は、学習モデルM1による認識の根拠としての強さを示す値を入力画像の画素ごとに特定可能な情報である。根拠としての強さとは、根拠の度合い、確度、又は蓋然性ということができる。例えば、根拠としての強さを示す値が大きいほど、根拠として強いことを意味する。本実施形態では、第1情報に、入力画像の画素と、根拠としての強さを示す値と、が1対1で対応付けられている場合を説明するが、これらは1対1で対応付けられていなくてもよい。入力画像の画素と、根拠としての強さを示す値と、はN対1(Nは自然数)であればよく、例えば、4つの画素ごとに根拠としての強さを示す値が対応付けられていてもよい。
【0091】
本実施形態のように第1情報がヒートマップHである場合には、第1情報は、学習モデルM1による認識の根拠となった位置が色によって表現された、フレームFと同じサイズの第1画像となる。ヒートマップHは、第1画像の一例であるが、第1画像は他の名称で呼ばれてもよい。また、第1画像は、入力画像であるフレームFと多少はサイズが異なってもよい。
【0092】
例えば、第1取得部102は、Grad-CAMを利用して、ヒートマップHを取得する。Grad-CAMは、学習モデルM1により計算された特徴マップにおける任意の位置に勾配の変化を加え、その際に生じる出力の変化の大きさをもとに、学習モデルM1による認識における根拠となる重要な位置を特定する手法である。
【0093】
Grad-CAMでは、学習モデルM1による認識に与える影響が大きい位置は、勾配の変化も大きいことに着目している。例えば、第1取得部102は、学習モデルM1が最終的に出力する認識結果(分類器の場合は分類結果であり、判定器の場合は判定結果)を取得した後に、当該認識結果と、学習モデルM1の中間的な出力である特徴マップと、の両方に基づいて、ヒートマップHを生成する。
【0094】
なお、Grad-CAMを利用したヒートマップHの生成方法自体は、公知の技術を利用可能なため、ここでは、ヒートマップHを生成する際に利用される数式等の詳細(https://arxiv.org/abs/1610.02391、「Grad-CAM: Visual Explanations from Deep Networks via Gradient-Based Localization」)を省略する。また、Grad-CAM以外にも、Grad-CAM++、Guided Grad-CAM、又はSmooth Gradを利用してヒートマップHが生成されてもよい。
【0095】
本実施形態では、学習モデルM1は、少なくとも1つの畳み込み層を含むモデル(例えば、CNN)なので、第1取得部102は、畳み込み層から出力される特徴マップに基づいて、第1情報を取得する。なお、学習モデルM1は、畳み込み層を含まないモデルであってもよく、この場合には、第1取得部102は、特徴マップを利用せずに、学習モデルM1から出力される認識結果に基づいて、第1情報を特定する。
【0096】
また、本実施形態では、学習モデルM1の出力を可視化するためにヒートマップHを例示したが、第1情報は、ヒートマップHに相当する情報であればよく、例えば、第1情報は、画像以外の形式のデータであってもよく、例えば、テーブル形式やCSV形式のデータであってもよい。第1情報は、入力画像の各画素に対応した値(根拠の強さを示す値)を特定可能な情報であればよく、入力画像の各画素と対応した要素(値)を有していればよい。例えば、第1情報は、入力画像と同じ幅と高さを有する行列形式のデータであってもよいし、入力画像の幅と高さの数だけ要素を有するベクトル形式のデータであってもよい。このように、第1情報は、画像に限られない。
【0097】
[第2取得部]
第2取得部103は、制御部11を主として実現される。第2取得部103は、フレームFに含まれる動体又は前景の位置に関する動き画像I1を取得する。動き画像I1は、第2情報の一例である。このため、本実施形態で動き画像I1と記載した箇所は、第2情報と読み替えることができる。
【0098】
動体とは、移動する物体である。別の言い方をすれば、動体は、フレームFにおいて色の変化がある部分である。例えば、直近のフレームFからの色の変化が閾値以上の部分は、動体が写された部分である。管理者が用意した動画では、原則として背景と管理者の胴体は動かないので、管理者が持っている商品と、管理者の手及び腕と、の各々が動体に相当する。
【0099】
前景とは、背景以外の部分である。別の言い方をすれば、前景は、背景よりもカメラに近い物体である。例えば、フレームFに写された物体のうち、床・壁・天井を除いて最もカメラに近い物体が前景である。管理者が用意した動画では、管理者及び商品よりもカメラに近い物体はないので、管理者が持っている商品と、管理者の体全体と、の各々が前景に相当する。前景は、動体に限られず、静止している物体であってもよい。この場合、動き検出ではなく、公知の前景検出法によって、前景が検出されるようにすればよい。
【0100】
第2情報は、動体又は前景の位置を特定可能な情報である。第2情報は、動き画像I1に限られず、例えば、動体若しくは前景の位置を示す座標情報、又は、動体若しくは前景の位置を含む領域情報であってもよい。
【0101】
例えば、第2情報は、動体又は前景としての強さを示す値を入力画像の画素ごとに特定可能な情報である。動体又は前景としての強さを示す値とは、動体又は前景である度合い、確度、又は蓋然性ということができる。例えば、動体又は前景としての強さを示す値が大きいほど、動体又は前景として強い(動体又は前景である確率が高い)ことを意味する。第1情報と同様、第2情報は、入力画像の画素と、動体又は前景としての強さを示す値と、がN対1で対応付けられていればよい。
【0102】
本実施形態のように第2情報が画像である場合には、第2情報は、動体又は前景の位置が色によって表現された、入力画像と同じサイズの第2画像である。動き画像I1は、第2画像の一例であるが、第2画像は他の名称で呼ばれてもよい。また、第2画像は、フレームFと多少はサイズが異なってもよい。
【0103】
例えば、第2取得部103は、先述したフレーム間差分法又は背景差分法などのアルゴリズムに基づいて、入力画像であるフレームFから動き画像I1を生成する。動体又は前景は、他の方法によって特定されてもよく、例えば、第2取得部103は、深度カメラを利用して動体又は前景を検出してもよい。この場合、深度の変化が大きい部分を動体としたり、深度が閾値未満の部分を前景としたりすればよい。また、第2情報は、第1情報と同様、画像以外の形式のデータであってもよく、例えば、テーブル形式、CSV形式、行列形式、又はベクトル形式のデータであってもよい。また例えば、第1情報と第2情報のデータとしての形式は、互いに同じであってもよいし、異なっていてもよい。
【0104】
[第3取得部]
第3取得部104は、制御部11を主として実現される。第3取得部104は、フレームFに含まれる商品を把持する他の物体の位置に関する肌画像I3を取得する。肌画像I3は、第3情報の一例である。このため、本実施形態で肌画像I3と記載した箇所は、第3情報と読み替えることができる。
【0105】
本実施形態では、管理者が商品を把持するので、管理者の体が他の物体に相当する。このため、本実施形態で商品を把持する管理者の体について説明している箇所は、他の物体と読み替えることができる。他の物体は、管理者の体に限られず、任意の物体であってよい。例えば、商品をロボットに把持させる場合には、ロボットが他の物体に相当する。また例えば、管理者が棒を利用して商品を把持する場合には、棒が他の物体に相当する。
【0106】
第3情報は、他の物体の位置を特定可能な情報である。第3情報は、肌画像I3に限られず、例えば、他の物体の位置を示す座標情報、又は、他の物体の位置を含む領域情報であってもよい。
【0107】
例えば、第3情報は、他の物体の位置としての強さを示す値を入力画像の画素ごとに特定可能な情報である。他の物体としての強さを示す値とは、他の物体である度合い、確度、又は蓋然性ということができる。例えば、他の物体としての強さを示す値が大きいほど、他の物体として強い(他の物体である確率が高い)ことを意味する。第1情報及び第2情報と同様、第3情報は、入力画像の画素と、他の物体の位置としての強さを示す値と、がN対1で対応付けられていればよい。
【0108】
本実施形態のように第3情報が画像である場合には、第3情報は、他の物体の位置が色によって表現された、入力画像と同じサイズの第3画像である。肌画像I3は、第3画像の一例であるが、第3画像は他の名称で呼ばれてもよい。例えば、他の物体がロボットである場合には、第3画像には、商品を把持するロボットアームが示された画像となる。また例えば、他の物体が棒である場合には、第3画像には、商品を把持する棒が示された画像となる。また、第3画像は、フレームFと多少はサイズが異なってもよい。
【0109】
例えば、第3取得部104は、先述した肌検出方法に基づいて、入力画像であるフレームFから肌画像I3を生成する。肌画像I3は、他の方法によって特定されてもよく、例えば、第3取得部104は、サーモグラフィを利用して管理者の肌を検出してもよい。この場合、一定の熱を帯びた部分を肌として検出すればよい。第3情報は、第1情報及び第2情報と同様、画像以外の形式のデータであってもよく、例えば、テーブル形式、CSV形式、行列形式、又はベクトル形式のデータであってもよい。また例えば、第3情報は、第1情報及び第2情報と同じ形式のデータであってもよいし、異なる形式のデータであってもよい。
【0110】
[位置情報取得部]
位置情報取得部105は、制御部11を主として実現される。位置情報取得部105は、ヒートマップHと動き画像I1とに基づいて、フレームFに含まれる物体の位置に関する位置情報を取得する。本実施形態では、商品を含むバウンディングボックスBに関する情報が位置情報に相当する場合を説明する。このため、本実施形態でバウンディングボックスBの情報を説明している箇所は、位置情報と読み替えることができる。
【0111】
位置情報は、物体の位置を特定可能な情報である。位置情報は、バウンディングボックスBの情報に限られず、例えば、物体の位置を示す座標情報、又は、物体の位置を含む領域情報であってもよい。即ち、位置情報は、物体の位置をピンポイントで示す情報であってもよいし、物体を含む一定範囲の領域を示す情報であってもよい。領域情報は、バウンディングボックスBのような四角形に限られず、任意の形状を示してよい。例えば、領域情報は、三角形、五角形以上の多角形、円形、又は楕円形であってもよいし、特にこれらに分類されない形状であってもよい。例えば、エッジ検出によって特定される輪郭線によって物体の位置が表現されてもよい。
【0112】
本実施形態では、位置情報取得部105は、ヒートマップHから特定されるフレームFにおける各画素に対応する値と、動き画像I1から特定されるフレームFにおける各画素に対応する値と、を所定の数式で足し合わせた結果に基づいて、位置情報を取得する。
【0113】
本実施形態では、ヒートマップHとフレームFが同じサイズの画像なので、ヒートマップHから特定されるフレームFにおける各画素に対応する値は、フレームFにおける各画素と同じ位置にある画素の画素値である。先述したように、ヒートマップHとフレームFは同じサイズの画像でなくてもよいし、ヒートマップHに相当する第1情報は、画像以外の形式であってもよいので、入力画像であるフレームFにおける各画素に対応付けられた値が特定されるようにすればよい。
【0114】
同様に、本実施形態では、動き画像I1とフレームFが同じサイズの画像なので、動き画像I1から特定されるフレームFにおける各画素に対応する値は、フレームFにおける各画素と同じ位置にある画素の画素値である。先述したように、動き画像I1とフレームFは同じサイズの画像でなくてもよいし、動き画像I1に相当する第2情報は、画像以外の形式であってもよいので、入力画像であるフレームFにおける各画素に対応付けられた値が特定されるようにすればよい。
【0115】
上記数式は、任意の式であればよく、画素値の単純な合計であってもよいし、所定の重み付けがなされていてもよい。例えば、ヒートマップHに対し、動き画像I1よりも高い重み付けとしてもよいし、これとは逆に、動き画像I1に対し、ヒートマップHよりも高い重み付けとしてもよい。
【0116】
例えば、位置情報取得部105は、フレームFのうち、ヒートマップHと動き画像I1を足し合わせた画素値が閾値以上の部分を残すことによって、画像I2を取得する。図3の例であれば、商品を含む周囲の領域の画素値が閾値以上となり、画像I2では当該領域が残っている。先述したように、商品の領域の中には、ヒートマップHで色が付けられない部分もあるので、動き画像I1についても考慮することによって、ヒートマップHには表れない商品部分も逃すことなく残すことができる。このため、位置情報取得部105は、動き画像I1を利用して、ヒートマップHに示された物体性の高い部分を拡張するということもできる。
【0117】
本実施形態では、管理者の肌部分が除去されるので、位置情報取得部105は、肌画像I3に更に基づいて、位置情報を取得する。即ち、位置情報取得部105は、ヒートマップH、動き画像I1、及び肌画像I3に基づいて、位置情報を取得する。
【0118】
例えば、位置情報取得部105は、ヒートマップHから特定されるフレームFにおける各画素に対応する値と、動き画像I1から特定されるフレームFにおける各画素に対応する値と、を所定の数式で足し合わせ、肌画像I3から特定されるフレームFにおける各画素に対応する値を所定の数式で差し引いた結果に基づいて、位置情報を取得する。
【0119】
本実施形態では、肌画像I3とフレームFが同じサイズの画像なので、肌画像I3から特定されるフレームFにおける各画素に対応する値は、フレームFにおける各画素と同じ位置にある画素の画素値である。先述したように、肌画像I3とフレームFは同じサイズの画像でなくてもよいし、肌画像I3に相当する第3情報は、画像以外の形式であってもよいので、入力画像であるフレームFにおける各画素に対応付けられた値が特定されるようにすればよい。
【0120】
上記数式は、任意の式であればよく、画素値の単純な差分であってよい。図3の例であれば、画像I2で色が残った領域から、肌画像I3で色がついた部分が引かれることによって、肌部分が除去される。位置情報取得部105は、肌画像I3に示された管理者の手及び腕が商品の一部分として取得されることを防止する。
【0121】
また例えば、位置情報取得部105は、ヒートマップHに応じた重み付けに更に基づいて、位置情報を取得してもよい。図3の例であれば、位置情報取得部105は、画像I2から肌画像I3を差し引いた結果に対し、ヒートマップHにおける色の濃さに応じた重み付けのマッピングを行う。これにより、ヒートマップHで色が付けられた部分が強調され、続く閾値化処理において、学習モデルM1の根拠となった部分が残りやすくなる。例えば、位置情報取得部105は、画像I2から肌画像I3を差し引いた差分の画像に対し、ヒートマップHで色が付けられた部分の画素値を増加させる。ヒートマップHにおける色が濃いほど、画素値の増加量が多くなる。
【0122】
本実施形態では、位置情報取得部105は、領域の候補を複数取得した場合には、複数の当該候補のうち最もサイズが大きい候補に基づいて、位置情報を取得する。位置情報取得部105は、バウンディングボックスBの複数の候補の各々のサイズを比較し、最も大きい候補をバウンディングボックスBとして決定する。サイズは、面積を意味してもよいし、縦幅及び横幅の少なくとも一方を意味してもよい。なお、位置情報取得部105は、最も大きい候補だけでなく、サイズが大きい順に複数個の候補を取得し、これらの全てをバウンディングボックスBとして取得してもよい。
【0123】
本実施形態では、位置情報取得部105は、フレームFごとに位置情報を取得する。位置情報取得部105は、動画に含まれる全てのフレームFについて位置情報を取得してもよいし、一部のフレームFについて位置情報を取得してもよい。バウンディングボックスBが取得されたなったフレームFについては、位置情報は取得されない。
【0124】
[生成部]
生成部106は、制御部11を主として実現される。生成部106は、フレームFと位置情報とに基づいて、商品の位置を認識する学習モデルM2(学習前の学習モデルM2)の学習処理のための教師データを生成する。学習モデルM2は、他の学習モデルの一例である。このため、本実施形態で学習モデルM2と記載した箇所は、他の学習モデルと読み替えることができる。他の学習モデルは、教師データセットDSを生成するために利用される学習モデルM1とは異なるモデルである。
【0125】
本実施形態では、動画に含まれるフレームFごとに位置情報が生成されるので、生成部106は、フレームFごとに教師データを生成する。生成部106は、バウンディングボックスBが取得された複数のフレームFの各々の教師データを生成する。生成部106は、これら複数の教師データをまとめた教師データセットDSを生成し、データ記憶部100に記録する。管理者は商品の種類ごとに動画を用意するので、生成部106は、動画ごとに教師データを生成する。先述したように、商品の種類ごとに教師データセットDSを別々に分けてもよいし、全商品で1つの教師データセットDSにまとめてもよい。
【0126】
[学習部]
学習部107は、制御部11を主として実現される。学習部107は、フレームFと位置情報とに基づいて生成された教師データに基づいて、物体の位置を認識する他の学習モデルM2(学習前の学習モデルM2)の学習処理を実行する。学習部107は、動画から生成された複数の教師データを含む教師データセットDSに基づいて、学習処理を実行する。学習部107は、教師データセットDSに含まれる教師データの入力と出力の関係が得られるように、学習前の学習モデルM2のパラメータを調整する。学習処理自体は、公知の種々の手法を利用可能であり、例えば、ニューラルネットワーク等で利用されている手法を利用すればよい。
【0127】
[3-2.自動販売機で実現される機能]
図4に示すように、自動販売機20では、データ記憶部200と、販売処理部201と、が実現される。
【0128】
[データ記憶部]
データ記憶部200は、記憶部22を主として実現される。データ記憶部200は、商品の販売に必要なデータを記憶する。ここでは、データ記憶部200が記憶するデータの一例として、買い物かごデータDTと、学習済みの学習モデルM2と、について説明する。データ記憶部200に記憶された学習済みの学習モデルM2は、データ記憶部100に記憶された学習済みの学習モデルM2と同じである。
【0129】
図6は、買い物かごデータDTのデータ格納例を示す図である。図6に示すように、買い物かごデータDTは、利用者が取り出した商品を示すデータである。例えば、買い物かごデータDTには、顔認証が成功した利用者の利用者ID、利用者が取り出した商品の商品ID、商品名、数量、及び単価が格納される。買い物かごデータDTは、利用者の顔認証が成功した場合に生成され、利用者が商品取り出した商品の認識結果に基づいて更新される。
【0130】
なお、データ記憶部200に記憶されるデータは、上記の例に限られない。例えば、データ記憶部200は、自動販売機20が取り扱う商品に関する商品データベースを記憶してもよい。例えば、商品データベースには、商品ID、商品名、単価、及び在庫が格納される。
【0131】
[販売処理部]
販売処理部201は、制御部21を主として実現される。販売処理部201は、商品の販売に関する各種処理を実行する。例えば、販売処理部201は、自動販売機20の操作手順や各種メッセージを表示部25に表示させる。また例えば、販売処理部201は、顔認証の際に撮影部26により生成されたフレームをサーバ30に送信する。また例えば、販売処理部201は、サーバ30から受信した認証結果に基づいて、扉のロック解除を行う。
【0132】
また例えば、販売処理部201は、撮影部26により生成されたフレームを、学習済みの学習モデルM2に入力し、学習済みの学習モデルM2から出力された分類情報と位置情報を取得する。販売処理部201は、分類情報と位置情報に基づいて、買い物かごデータDTを更新する。販売処理部201は、フレームが取得されるたびに、学習済みの学習モデルM2に入力して分類情報と位置情報を取得する。
【0133】
例えば、販売処理部201は、学習済みの学習モデルM2から出力された分類情報に応じた商品ID、商品名、及び単価を買い物かごデータDTに格納する。利用者が同じ商品を複数個取り出した場合には、その数だけバウンディングボックスBが取得されるので、販売処理部201は、位置情報の数に応じた数量を買い物かごデータDTに格納する。利用者が複数の種類の商品を取り出した場合には、その数だけ分類情報が出力されるので、販売処理部201は、分類情報ごとに、商品ID、商品名、数量、及び単価を買い物かごデータDTに格納する。
【0134】
また例えば、販売処理部201は、それまでは出力されていた分類情報が出力されなくなった場合、それまでの位置情報の変化に基づいて、商品の移動方向を特定する。販売処理部201は、商品の移動方向がフレームの下方向(撮影部26の手前方向)であれば、商品が戻されたと判定する。この場合、販売処理部201は、戻されたと判定された商品を買い物かごデータDTから削除する。
【0135】
一方、販売処理部201は、商品の移動方向が他の方向であれば、商品が取り出されたままと判定し、買い物かごデータDTをそのままの内容とする。商品の移動方向と上記の処理内容の関係は、撮影部26の設置位置に応じて定めておけばよい。例えば、撮影部26の設置位置によっては、販売処理部201は、商品のバウンディングボックスBが徐々に大きくなって消滅した場合に、商品が戻されたと判定してもよい。
【0136】
また例えば、販売処理部201は、扉が閉められた場合に、サーバ30に対し、買い物かごデータDTを送信する。なお、扉の開閉は、自動販売機20に設けられたセンサによって検出されるようにすればよい。販売処理部201は、サーバ30による決済処理の実行結果を表示部25に表示させる。販売処理部201は、扉が閉められた場合に、扉をロックする。
【0137】
[3-3.サーバで実現される機能]
図4に示すように、サーバ30では、データ記憶部300、認証部301、及び決済実行部302が実現される。
【0138】
[データ記憶部]
データ記憶部300は、記憶部32を主として実現される。データ記憶部300は、利用者に関するデータを記憶する。ここでは、データ記憶部300が記憶するデータの一例として、利用者データベースDBについて説明する。
【0139】
図7は、利用者データベースDBのデータ格納例を示す図である。図7に示すように、利用者データベースDBは、利用登録をした利用者に関する各種情報が格納されたデータベースである。例えば、利用者データベースDBには、利用者ID、氏名、パスワード、顔画像、顔の特徴量、及び決済情報が格納される。本実施形態では、クレジットカード情報が決済情報に相当する場合を説明するが、電子マネー、ポイント、又は仮想通貨のアカウントなどの任意の情報が利用されてよい。利用者が所定の利用登録を行うと、利用者データベースDBに新たなレコードが作成され、利用者が登録したこれらの情報が格納される。
【0140】
[認証部]
認証部301は、制御部31を主として実現される。認証部301は、利用者の認証を行う。例えば、認証部301は、自動販売機20から受信したフレームから顔の特徴量を抽出し、利用者データベースDBの中に類似する特徴量が存在するか否かを判定する。認証部301は、類似する特徴量が存在する場合に、顔認証が成功したと判定する。例えば、顔の特徴量がベクトル情報で表現される場合、ベクトル空間内の距離が閾値未満の場合に、顔認証が成功する。顔認証以外の認証が利用される場合には、認証部301は、利用される認証方法に定められた手順に沿って認証を行えばよい。
【0141】
[決済実行部]
決済実行部302は、制御部31を主として実現される。決済実行部302は、商品の決済を実行する。例えば、決済実行部302は、自動販売機20から受信した買い物かごデータDTに基づいて決済金額を計算する。決済実行部302は、利用者データベースDBを参照し、買い物かごデータDTに格納された利用者IDに関連付けられた決済情報に基づいて、計算された決済金額に応じた決済処理を実行する。決済実行部302は、自動販売機20に対し、決済処理の実行結果を送信する。
【0142】
[4.物体認識システムで実行される処理]
次に、物体認識システムSで実行される処理について説明する。本実施形態では、学習装置10が教師データセットDSを生成して、学習前の学習モデルM2を学習させる学習処理と、自動販売機20が学習済みの学習モデルM2を利用して商品を販売する販売処理と、について説明する。
【0143】
[4-1.学習処理]
図8は、学習処理の一例を示すフロー図である。学習処理は、制御部11が記憶部12に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図4に示す機能ブロックにより実行される処理の一例である。なお、下記に説明する処理が実行されるにあたり、管理者が商品を持って動かす様子が撮影された動画が記憶部12に予め記憶されているものとする。
【0144】
図8に示すように、制御部11は、管理者が用意した任意の動画における処理対象のフレームFを取得する(S100)。S100においては、制御部11は、動画の1フレーム目を処理対象のフレームFとしてもよいし、ある程度時間が経過した時点のフレームFを処理対象のフレームFとしてもよい。例えば、フレーム間差分法を利用して動き画像I1を取得する場合には、ある程度時間が経過した時点のフレームFが処理対象のフレームFとされる。
【0145】
制御部11は、記憶部12に記憶された学習モデルM1に、処理対象のフレームFを入力画像として入力する(S101)。学習モデルM1は、入力された処理対象のフレームFの特徴量を計算し、フレームFに含まれる商品を認識する。先述したように、学習モデルM1は、商品を認識できるが、その位置までは認識できないので、S101の時点では、バウンディングボックスBは出力されない。
【0146】
制御部11は、学習モデルM1の認識結果や特徴マップをGrad-CAMに入力し、処理対象のフレームFのヒートマップHを取得する(S102)。このヒートマップHには、処理対象のフレームFに含まれる物体を学習モデルM1が認識する際の根拠が示される。
【0147】
制御部11は、処理対象のフレームFに対し、動き検出処理を実行して動き画像I1を取得する(S103)。この動き画像には、処理対象のフレームFにおける動体又は前景が示される。
【0148】
制御部11は、S102で取得したヒートマップHと、S103で取得した動き画像I1と、を足し合わせて画像I2を取得する(S104)。S104においては、制御部11は、ヒートマップHにおける各画素の画素値と、動き画像I1における各画素の画素値と、を所定の計算式で足し合わせて画像I2を取得する。
【0149】
制御部11は、処理対象のフレームFに対し、肌検出処理を実行して肌画像I3を取得する(S105)。この肌画像I3には、処理対象のフレームFにおける管理者の手や腕の肌部分が示される。
【0150】
制御部11は、S104で取得した画像I2からS105で取得した肌画像I3を差し引く(S106)。S106においては、制御部11は、S104で取得した画像I2における各画素の画素値から、肌画像における各画素の画素値を所定の計算式で差し引く。
【0151】
制御部11は、S106の処理結果に基づいて、処理対象のフレームFにおける商品の位置情報を取得する(S107)。S107においては、制御部11は、ヒートマップHに応じた重み付けでマッピングを行い、閾値化処理を実行する。制御部11は、閾値化処理が実行された2値化画像からバウンディングボックスBの候補を取得する。制御部11は、複数の候補が存在する場合には、最もサイズが大きい候補をバウンディングボックスBとして決定して位置情報を取得する。
【0152】
制御部11は、動画を参照し、次のフレームFがあるか否かを判定する(S108)。S108においては、制御部11は、動画の再生時間の最後に到達したか否かを判定する。次のフレームFがあると判定された場合(S108;Y)、制御部11は、次のフレームFを処理対象のフレームFとして取得し(S109)、S101の処理に戻る。この場合、当該次のフレームFに対してS101~S107の処理が実行され、当該次のフレームFの位置情報が取得される。
【0153】
次のフレームFがないと判定された場合(S108;N)、制御部11は、処理対象のフレームFと、分類情報及び位置情報と、のペアである教師データを格納した教師データセットDSを生成する(S110)。S110においては、制御部11は、バウンディングボックスBが取得されたフレームFごとに、当該フレームFを入力とし、バウンディングボックスBを出力とする教師データを生成する。制御部11は、バウンディングボックスBが取得された複数のフレームFの各々の教師データを教師データセットDSに格納する。
【0154】
制御部11は、記憶部12を参照し、他の商品の動画が存在するか否かを判定する(S111)。S111においては、制御部11は、まだ教師データを生成していない商品の動画があるか否かを判定する。他の商品の動画が存在すると判定された場合(S111;Y)、S100の処理に戻る。この場合、当該他の商品について、S100~S110の処理が実行されて教師データが生成される。
【0155】
他の商品の動画が存在しないと判定された場合(S111;N)、制御部11は、教師データセットDSに基づいて、学習前の学習モデルM2の学習処理を実行する(S112)。S112においては、制御部11は、教師データセットDSに格納された教師データの入力と出力の関係が得られるように、学習前の学習モデルM2のパラメータを調整する。学習済みの学習モデルM2は、入力画像に含まれる商品の種類情報と位置情報を出力可能となる。
【0156】
制御部11は、学習済みの学習モデルM2を自動販売機20に送信し(S113)、本処理は終了する。S113で送信された学習済みの学習モデルM2は、自動販売機20の記憶部22に記録される。
【0157】
[4-2.販売処理]
図9は、販売処理の一例を示すフロー図である。販売処理は、制御部21が記憶部22に記憶されたプログラムに従って動作し、制御部31が記憶部32に記憶されたプログラムに従って動作することによって実行される。なお、下記に説明する処理が実行されるにあたり、学習処理が実行されており、学習済みの学習モデルM2が記憶部22に記憶されているものとする。
【0158】
図9に示すように、自動販売機20は、商品の購入手順を表示部25に表示させる(S200)。自動販売機20は、操作部24の検出信号に基づいて、顔認証を開始するためのボタンが利用者により選択されたか否かを判定する(S201)。ボタンが選択されたと判定された場合(S201;Y)、自動販売機20は、撮影部26で連続的に撮影を行い、サーバ30に対し、撮影部26により連続的に生成されたフレームを送信する(S202)。
【0159】
サーバ30は、フレームを受信すると、利用者データベースDBに基づいて、顔認証を実行し、自動販売機20に対し、認証結果を送信する(S203)。自動販売機20は、認証結果を受信すると、顔認証が成功したか否かを判定する(S204)。顔認証が失敗した場合(S204;N)、自動販売機20は、所定のエラーメッセージを表示部25に表示させ(S205)、S202の処理に戻る。
【0160】
顔認証が成功した場合(S205;Y)、自動販売機20は、扉のロックを解除する(S206)。自動販売機20は、撮影部26で連続的に撮影を行い、記憶部22に記憶された学習済みの学習モデルM2にフレームを入力する(S207)。自動販売機20は、学習済みの学習モデルM2から出力された分類情報と位置情報に基づいて、買い物かごデータDTを更新する(S208)。S208においては、自動販売機20は、先述したように分類情報と位置情報を解析し、利用者が取り出した商品や元に戻した商品を特定し、買い物かごデータDTを更新する。
【0161】
自動販売機20は、扉が閉められたか否かを判定する(S209)。扉が閉められたと判定されない場合(S209;N)、S207の処理に戻る。この場合、撮影部26によりフレームが生成されるたびに、学習済みの学習モデルM2による商品の認識が行われる。扉が閉められたと判定された場合(S209;Y)、自動販売機20は、サーバ30に対し、買い物かごデータDTを送信する(S210)。
【0162】
サーバ30は、買い物かごデータDTを受信すると、利用者データベースDBに基づいて、決済処理を実行し、決済処理の実行結果を送信する(S211)。自動販売機20は、決済処理の実行結果を受信すると、実行結果に応じたメッセージを表示部25に表示させ(S212)、本処理は終了する。
【0163】
以上説明した物体認識システムSによれば、ヒートマップHと動き画像I1とに基づいて、フレームFに含まれる商品の位置に関する位置情報を取得することにより、管理者が手動で商品の位置を指定する必要がなくなり、物体認識における管理者の負担を軽減できる。また、管理者が手動で商品の位置を指定する場合には操作ミスが発生する可能性があるが、位置情報を取得する処理を学習装置10に実行させることにより、位置情報を正確に特定することができる。また、屋内の自動販売機20などのように照明の変化が少なかったり、背景の変動が小さかったりした場合には、より高精度の位置情報を取得できる。また、管理者が半袖の服を着るといったようなルールを定めておく場合にも、より高精度の位置情報を取得できる。このように、教師データを生成する場合の環境を予め定めておくことにより、より精度の高い教師データを生成できる。
【0164】
また、物体認識システムSは、学習モデルM1による認識の根拠としての強さを示す値をフレームFの画素ごとに特定可能な第1情報と、動体又は前景としての強さを示す値をフレームFの画素ごとに特定可能な第2情報と、に基づいて位置情報を取得することにより、フレームFの画素ごとにこれらの値が対応付けられた情報を利用し、簡易な処理で位置情報を取得できる。このため、位置情報を取得する処理を高速化し、学習装置10の処理負荷を軽減できる。
【0165】
また、物体認識システムSは、ヒートマップHから特定されるフレームFにおける各画素に対応する値と、動き画像I1から特定されるフレームFにおける各画素に対応する値と、を所定の数式で足し合わせた結果に基づいて、位置情報を取得することにより、より簡易な計算によって位置情報を取得できる。このため、位置情報を取得する処理を高速化し、学習装置10の処理負荷を軽減できる。
【0166】
また、物体認識システムSは、フレームFに含まれる商品を把持する管理者の位置に関する肌画像に更に基づいて、位置情報を取得することにより、位置情報を取得するうえでノイズとなりうる管理者の手や腕を除去し、位置情報の精度を高めることができる。
【0167】
また、物体認識システムSは、学習モデルM1による認識の根拠としての強さを示す値をフレームFの画素ごとに特定可能な第1情報と、動体又は前景としての強さを示す値をフレームFの画素ごとに特定可能な第2情報と、他の物体の位置としての強さを示す値をフレームFの画素ごとに特定可能な第3情報と、に基づいて位置情報を取得することにより、フレームFの画素ごとにこれらの値が対応付けられた情報を利用し、簡易な処理で位置情報を取得できる。このため、位置情報を取得する処理を高速化し、学習装置10の処理負荷を軽減できる。
【0168】
また、物体認識システムSは、ヒートマップHから特定されるフレームFにおける各画素に対応する値と、動き画像I1から特定されるフレームFにおける各画素に対応する値と、を所定の数式で足し合わせ、肌画像I3から特定されるフレームFにおける各画素に対応する値を所定の数式で差し引いて位置情報を取得することにより、より簡易な計算によって位置情報を取得できる。このため、位置情報を取得する処理を高速化し、学習装置10の処理負荷を軽減できる。
【0169】
また、物体認識システムSは、ヒートマップHに応じた重み付けに更に基づいて、位置情報を取得することにより、学習モデルM1による認識の根拠となった部分を確実に残し、位置情報の精度を高めることができる。
【0170】
また、物体認識システムSは、バウンディングボックスBの候補を複数取得し、複数の当該候補のうち最もサイズが大きい候補に基づいて、位置情報を取得することにより、商品全体を含むバウンディングボックスBの位置情報を取得し、位置情報の精度を高めることができる。
【0171】
また、物体認識システムSは、フレームFと位置情報とに基づいて生成された教師データに基づいて、学習前の学習モデルM2の学習処理を実行することにより、物体の位置を認識する学習モデルM2を容易に生成することができる。また、教師データを生成する際の管理者の負担を軽減できる。
【0172】
また、物体認識システムSは、動画から生成された複数の教師データを含む教師データセットDSに基づいて、学習処理を実行することにより、より多くの教師データを学習前の学習モデルM2に学習させ、学習済みの学習モデルM2の精度を高めることができる。
【0173】
また、物体認識システムSは、商品の種類を分類する分類器、又は、商品の有無を判定する判定器である学習モデルM1を利用して位置情報を取得することにより、ユーザの負担を効果的に軽減できる。
【0174】
また、物体認識システムSは、商品を含むバウンディングボックスBに関する情報を位置情報として取得することにより、ユーザがバウンディングボックスBを指定する負担を軽減できる。
【0175】
[5.変形例]
なお、本開示は、以上に説明した実施の形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0176】
(1)例えば、管理者が作成する動画に商品が1つだけが写されている場合を説明したが、動画には、複数の種類の商品が同時に写されていてもよい。即ち、個々のフレームFには、複数の種類の商品が含まれていてもよい。この場合、位置情報取得部105は、フレームFに含まれる商品の種類ごとに、位置情報を取得してもよい。
【0177】
位置情報取得部105は、実施形態で説明した手法と同様にしてバウンディングボックスBの候補を取得し、互いに所定距離以上離れた位置に複数の候補がある場合には、これらの位置ごとに、バウンディングボックスBを取得してもよい。例えば、管理者が右手と左手の両方に同じ商品を持って動かしている場合には、位置情報取得部105は、1つのフレームFから同じ商品のバウンディングボックスBを複数取得する。
【0178】
また例えば、管理者が右手と左手に異なる種類の商品を持って動かしている場合には、位置情報取得部105は、1つのフレームFから複数の種類の商品のバウンディングボックスBを取得する。この場合、学習モデルM1は、複数の種類の商品を認識できるものとする。Grad-CAMは、商品の種類ごとに用意すればよい。ヒートマップHは、商品の種類ごとに出力されることになる。
【0179】
変形例(1)によれば、フレームFに含まれる商品の種類ごとに位置情報を取得することにより、複数の種類の商品がフレームFに含まれていたとしても正確な位置情報を取得し、ユーザの負担を効果的に軽減できる。
【0180】
(2)また例えば、バウンディングボックスBは、その中にある商品の追跡に利用されてもよい。図10は、変形例(2)における機能ブロック図である。図10に示すように、変形例(2)では、追跡部108が実現される。追跡部108は、制御部11を主として実現される。追跡部108は、位置情報に基づいて、動画に含まれる商品を追跡する。
【0181】
追跡とは、バウンディングボックスB内の領域と似た領域を探すことである。例えば、追跡部108は、あるフレームFのバウンディングボックスB内の領域をテンプレート画像とし、それ以降のフレームFに対してテンプレートマッチングをすることにより、商品を追跡する。なお、商品の追跡方法自体は、公知の手法を利用可能であり、例えば、追跡部108は、バウンディングボックスB内の領域から抽出した特徴点を追跡してもよい。他にも例えば、CSRTトラッカーと呼ばれる手法の基本となる領域として、バウンディングボックスBが利用されてもよい。
【0182】
実施形態では、動画中の毎フレームに対して図3で説明した処理が実行されて教師データが生成される場合を説明したが、追跡部108による追跡結果に基づいて、教師データが生成されてもよい。例えば、位置情報取得部105は、図3の手法によりバウンディングボックスBが取得されたフレームFの次のフレームFについて、当該バウンディングボックスBの商品の追跡結果に基づいて、当該次のフレームFのバウンディングボックスBの位置情報を取得してもよい。
【0183】
変形例(2)によれば、位置情報に基づいて、動画に含まれる商品を追跡することにより、管理者が商品の位置を指定する必要がないので、管理者の負担を軽減できる。また、学習モデルM1に毎フレーム入力される場合に比べると、簡易な処理によって商品を追跡でき、学習装置10の処理負荷を軽減できる。
【0184】
(3)また例えば、自動販売機20において、入力部101、第1取得部102、第2取得部103、第3取得部104、及び位置情報取得部105が実現されてもよい。この場合、これら各機能は、制御部21を主として実現される。例えば、自動販売機20のデータ記憶部200は、データ記憶部100に記憶されるものとして説明した各データを記憶する。自動販売機20の入力部101は、利用者が扉を開けた後に撮影部26により生成されたフレームFを学習モデルM1に入力する。
【0185】
自動販売機20の第1取得部102、第2取得部103、及び第3取得部104の各々は、実施形態で説明した方法と同様にして、それぞれヒートマップH、動き画像I1、及び肌画像I3を取得する。自動販売機20の位置情報取得部105は、実施形態で説明した方法と同様にして、撮影部26により生成されたフレームF(利用者が商品を持つ様子が撮影されたフレーム)からバウンディングボックスBの位置情報を取得する。自動販売機20の販売処理部201は、学習モデルM1により認識された商品の分類情報と、位置情報取得部105により取得された位置情報と、に基づいて、利用者が把持する商品の種類と位置を特定すればよい。商品の種類と位置に応じて実行される処理については、実施形態で説明した通りである。
【0186】
また例えば、本変形例と変形例(2)を組み合わせてもよい。例えば、自動販売機20により追跡部108が実現されてもよい。この場合、追跡部108は、制御部21を主として実現される。自動販売機20の追跡部108は、あるフレームで取得したバウンディングボックスBの位置情報に基づいて、それ以降のフレームにおける、当該バウンディングボックスB内の商品を追跡する。販売処理部201は、追跡されたバウンディングボックスBの位置に基づいて、買い物かごデータDTを更新すればよい。この場合、入力部101、第1取得部102、第2取得部103、第3取得部104、及び位置情報取得部105の各々の処理が定期的に実行され、最新のフレームFに応じた位置情報が位置情報取得部105によって取得されてもよい。
【0187】
変形例(3)によれば、学習済みの学習モデルM2を用意しなくても、学習モデルM1を利用して、利用者が把持する商品の種類と位置を取得し、商品を追跡できる。
【0188】
(4)また例えば、上記変形例を組み合わせてもよい。
【0189】
また例えば、実施形態では、自動販売機20が販売する商品を認識する場面を例に挙げたが、認識対象となる物体は、商品以外の物体であってもよい。例えば、人間の顔を認識する場面に物体認識システムSを適用する場合には、人の顔が物体に相当してもよい。また例えば、車を認識する場面に物体認識システムSを適用する場合には、車体やナンバープレートが物体に相当してもよい。認識対象となる物体は、物体認識システムSに応じた物体であればよい。
【0190】
また例えば、主な機能が学習装置10で実現される場合を説明したが、各機能は、複数のコンピュータで分担されてもよい。例えば、学習装置10、自動販売機20、及びサーバ30の各々で機能が分担されてもよい。例えば、サーバ30によりバウンディングボックスBが取得されてもよい。また例えば、物体認識システムSが複数のサーバコンピュータを含む場合には、これら複数のサーバコンピュータで機能が分担されてもよい。また例えば、データ記憶部100,200,300に記憶されるものとして説明したデータは、他のコンピュータによって記憶されてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10