(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024067989
(43)【公開日】2024-05-17
(54)【発明の名称】生成プログラム、生成方法および情報処理装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20240510BHJP
【FI】
G06T7/00 660B
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022178463
(22)【出願日】2022-11-07
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】鈴木 源太
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA02
5L096CA04
5L096DA02
5L096FA67
5L096FA69
5L096HA05
5L096HA09
5L096HA11
5L096KA04
5L096KA15
5L096MA07
(57)【要約】
【課題】現場での行動検知の精度を向上させることを課題とする。
【解決手段】情報処理装置は、人物を撮影した第一の画像データと、所定の場所を撮影した第二の画像データとを取得する。情報処理装置は、取得した第一の画像データを第一の機械学習モデルに入力することで、人物の形状と形状に対して付与されるテクスチャから成る3次元の人物モデルを生成する。情報処理装置は、取得した第二の画像データの中から、人物が行動する領域を特定し、カメラパラメータを用いて、特定された領域に3次元の人物モデルが配置された合成データを生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータに、
人物を撮影した第一の画像データと、所定の場所を撮影した第二の画像データとを取得し、
取得した前記第一の画像データを第一の機械学習モデルに入力することで、人物の形状と形状に対して付与されるテクスチャから成る3次元の人物モデルを生成し、
取得した前記第二の画像データの中から、人物が行動する領域を特定し、
カメラパラメータを用いて、特定された前記領域に3次元の人物モデルが配置された合成データを生成する、
処理を実行させることを特徴とする生成プログラム。
【請求項2】
前記領域を特定する処理は、
取得された前記第二の画像データを、画像データの入力に応じて人物が行動する領域を出力する第二の機械学習モデルに入力することで、前記領域を特定する、ことを特徴とする請求項1に記載の生成プログラム。
【請求項3】
前記合成データを生成する処理は、
入力された情報に応じた姿勢に前記3次元の人物モデルの姿勢を変更し、
前記カメラパラメータを用いて、前記領域に前記姿勢が変更された前記3次元の人物モデルが配置された前記合成データを生成する、ことを特徴とする請求項1に記載の生成プログラム。
【請求項4】
前記合成データを生成する処理は、
前記第二の画像データにおける背景の奥行に関する情報を用いて、前記領域に含まれる物体の後ろに前記3次元の人物モデルが配置された合成データを生成する、ことを特徴とする請求項1に記載の生成プログラム。
【請求項5】
前記合成データが2次元の人物モデルを含む画像データを生成し、
前記画像データを訓練データとして、画像データの入力に応じて人物を識別する機械学習モデルを生成する、
処理を前記コンピュータに実行させることを特徴とする請求項1に記載の生成プログラム。
【請求項6】
コンピュータが、
人物を撮影した第一の画像データと、所定の場所を撮影した第二の画像データとを取得し、
取得した前記第一の画像データを第一の機械学習モデルに入力することで、人物の形状と形状に対して付与されるテクスチャから成る3次元の人物モデルを生成し、
取得した前記第二の画像データの中から、人物が行動する領域を特定し、
カメラパラメータを用いて、特定された前記領域に3次元の人物モデルが配置された合成データを生成する、
処理を実行することを特徴とする生成方法。
【請求項7】
人物を撮影した第一の画像データと、所定の場所を撮影した第二の画像データとを取得し、
取得した前記第一の画像データを第一の機械学習モデルに入力することで、人物の形状と形状に対して付与されるテクスチャから成る3次元の人物モデルを生成し、
取得した前記第二の画像データの中から、人物が行動する領域を特定し、
カメラパラメータを用いて、特定された前記領域に3次元の人物モデルが配置された合成データを生成する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生成プログラム、生成方法および情報処理装置に関する。
【背景技術】
【0002】
映像データを用いた行動認識として、映像データ内の人物検出、属性検出、姿勢推定などの技術が知られている。例えば、店舗内や工場内を撮像した映像データを機械学習モデルに入力し、機械学習モデルの出力結果を取得する。そして、機械学習モデルの出力結果を用いて、不審者の検出、体調不良者の検出、不審な行動の検出などが行われる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2012-173903号公報
【特許文献2】特開2013-50945号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記技術では、行動認識を行う現場環境における特殊な服装、カメラ歪み、設置位置などの様々な条件により、行動認識の精度が落ちることがある。
【0005】
例えば、訓練データに含まれていない、もしくは少量の訓練データにしか含まれていない服装、カメラに対する向き、姿勢などについては、行動認識の精度が低下する。また、現場環境では物体と物体、物体と人物、人物と人物などのように、様々な重なり(オクルージョン)が発生し、行動認識の精度が低下する。
【0006】
一つの側面では、現場での行動検知の精度を向上させることができる生成プログラム、生成方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
第1の案では、生成プログラムは、コンピュータに、人物を撮影した第一の画像データと、所定の場所を撮影した第二の画像データとを取得し、取得した前記第一の画像データを第一の機械学習モデルに入力することで、人物の形状と形状に対して付与されるテクスチャから成る3次元の人物モデルを生成し、取得した前記第二の画像データの中から、人物が行動する領域を特定し、カメラパラメータを用いて、特定された前記領域に3次元の人物モデルが配置された合成データを生成する、処理を実行させることを特徴とする。
【発明の効果】
【0008】
一実施形態によれば、現場での行動検知の精度を向上させることができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施例1にかかる情報処理装置を説明する図である。
【
図2】
図2は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。
【
図3】
図3は、3D生成モデルの訓練を説明する図である。
【
図4】
図4は、領域抽出モデルの訓練を説明する図である。
【
図5】
図5は、骨格推定モデルの訓練を説明する図である。
【
図6】
図6は、3Dアバターの生成を説明する図である。
【
図7】
図7は、歩行の動作判定を説明するための図である。
【
図8】
図8は、フレームから生成される3Dアバターの一例を示す図である。
【
図9】
図9は、3Dアバターの歩行姿勢を匿名化する処理を説明するための図である。
【
図10】
図10は、セマンティックセグメンテーションによる注目領域の検出を説明する図である。
【
図11】
図11は、骨格推定モデルを用いた動作解析を説明する図である。
【
図12】
図12は、トラッキングによる基準方向の設定を説明する図である。
【
図16】
図16は、セマンティックセグメンテーションの実行結果への基準線の設定を説明する図である。
【
図17】
図17は、基準線に基づくクラスタリングを説明する図である。
【
図22】
図22は、カメラパラメータの推定を説明する図(1)である。
【
図23】
図23は、カメラパラメータの推定を説明する図(2)である。
【
図24】
図24は、カメラパラメータの推定を説明する図(3)である。
【
図25】
図25は、各種モデルの訓練への適用を説明する図である。
【
図26】
図26は、実施例1にかかる合成データの生成処理の流れを示すフローチャートである。
【
図27】
図27は、実施例2にかかる情報処理装置を説明する図である。
【
図28】
図28は、実施例2にかかる情報処理装置の機能構成を示す機能ブロック図である。
【
図30】
図30は、行動ルールに基づく合成データの生成を説明する図である。
【
図31】
図31は、実施例2にかかる合成データを用いた機械学習モデルの評価処理の流れを示すフローチャートである。
【
図32】
図32は、3Dアバターの配置例を説明する図である。
【発明を実施するための形態】
【0010】
以下に、本願の開示する生成プログラム、生成方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例0011】
<情報処理装置の説明>
図1は、実施例1にかかる情報処理装置10を説明する図である。
図1に示す情報処理装置10は、人物を検出する人物検出モデル、性別やユニフォームの着衣有無などを推定する属性推定モデル、人物の姿勢を検出する姿勢推定モデルなどの各種機械学習モデルの訓練に使用可能なデータを生成するコンピュータの一例である。
【0012】
近年、不審者の検出、体調不良者の検出、不審な行動の検出などの行動認識を行う機械学習モデルが利用されている。しかし、現場環境と訓練環境との違い、訓練データの充実度、現場で発生するオクルージョンなどにより、行動認識の精度が低下する。
【0013】
例えば、店内の画像データに対して店員か否かの識別処理を行う場合、あらかじめエプロン着用の店員の画像データを学習した機械学習モデルを用いた識別処理が行われる。しかし、現場となる売り場によってエプロンが異なり、訓練データに少量しか含まれない使用頻度の少ないエプロンや、人物姿勢(後ろ向き、横向き、しゃがみなど)によっては、店員と判別できず接客者検知での虚報が多い。
【0014】
また、工場の画像データに対して作業員の検出処理を行う場合、様々な行動を学習した機械学習モデルを用いた検出処理が行われる。しかし、検出したい行動が一般的な訓練データセットに含まれていない姿勢だと人物検知や姿勢推定に失敗する。
【0015】
一方で、全ての現場環境や全てのオクルージョンを想定した教師有りの訓練データを用意することは現実的ではない。
【0016】
そこで、実施例1にかかる情報処理装置10は、様々な環境で撮像された画像データを用いて、現場環境で想定される姿勢や属性の人物を含む合成データを生成することで、行動検知の精度を向上させる。
【0017】
具体的には、
図1に示すように、情報処理装置10は、人物を撮影した第一の画像データと、所定の場所を撮影した第二の画像データとを取得する。情報処理装置10は、取得した第一の画像データを第一の機械学習モデルに入力することで、人物の形状と形状に対して付与されるテクスチャから成る3次元の人物モデルを生成する。また、情報処理装置10は、取得した第二の画像データに対して機械学習モデルによる推定や画像解析を行うことで、人物が行動する領域を特定する。その後、情報処理装置10は、カメラパラメータを用いて、特定された領域に3次元の人物モデルが配置された合成データを生成する。
【0018】
情報処理装置10は、このようにして生成された合成データに基づき、2次元画像データおよびラベル(正解情報)が付加された訓練データを用いて、各種機械学習モデルの訓練を行うことで、現場での行動検知の精度を向上させることができる。なお、実施例では、画像データを単に「画像」と表記することがある。
【0019】
<情報処理装置の機能構成>
図2は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。
図2に示すように、情報処理装置10は、通信部11、記憶部20、制御部30を有する。
【0020】
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどにより実現される。例えば、通信部11は、人物が写っている画像データである人物画像データを受信し、店舗内に設置された複数のカメラから店舗における所定の場所が写っている画像データである場所画像データを受信する。
【0021】
なお、人物画像データは、店舗で撮像された画像データに限ったものではなく、想定される各人物が写っていればどこで撮像されかを問わない。また、場所画像データは、実施例1では店舗内の画像データを例にして説明するが、これに限定されるものではなく、想定される現場の画像データであればよい。
【0022】
記憶部20は、各種データや制御部30が実行するプログラムなどを記憶する処理部の一例であり、例えばメモリやハードディスクなどにより実現される。この記憶部12は、訓練データDB21、人物画像データDB22、場所画像データDB23、3D生成モデル24、領域抽出モデル25、骨格推定モデル26を記憶する。
【0023】
訓練データDB21は、3D生成モデル24、領域抽出モデル25、骨格推定モデル26の訓練に使用する訓練データを記憶するデータベースである。各訓練データは、説明変数である画像データと、目的変数であるラベル(正解情報)とが対応付けられたデータである。
【0024】
人物画像データDB22は、人物が撮像された画像データである人物画像データを記憶するデータベースである。例えば、人物画像データDB22が記憶する人物画像データには、想定される現場で撮像された人物画像データと、様々な場所で撮像された人物画像データとが含まれてよい。
【0025】
場所画像データDB23は、人物検出、属性推定、骨格検知などを行う各現場を撮像した画像データである場所画像データを記憶するデータベースである。例えば、場所画像データDB23が記憶する場所画像データには、同じ現場の場所画像データと、様々な場所の場所画像データとが含まれてよい。なお、現場とは、例えば店舗の場合、人物が商品を取る商品棚を含む場所、人物が歩く通路の場所、人物が商品を購入する会計機を含む場所などが該当する。
【0026】
3D生成モデル24は、人物の画像データを基にして、3Dアバターを生成する機械学習モデルである。たとえば、3D生成モデル24は、「Mesh Graphormer」と、「Texformer」との機能を有する。Mesh Graphormerは、1つのフレームの人物の領域の画像データを基にして、人物の姿勢や、人物の各頂点を推定し、3次元の人物のメッシュモデルを生成する。Texformerは、1つのフレームの人物の領域の画像データを基にして、人物のテクスチャを生成する。3D生成モデル24は、Mesh Graphormerによって推定された3次元の人物のメッシュモデルに、Texformerによって生成されたテクスチャを設定することで、3Dアバターを生成する。
【0027】
領域抽出モデル25は、セマンティックセグメンテーションを実行することで、人物が行動する領域を含む各種領域の抽出を実行する機械学習モデルである。具体的には、領域抽出モデル25は、RGBの画像データの入力に応じて、セグメンテーション結果を出力する。セグメンテーション結果には、画像データ内の各領域に対して、識別されたラベルが設定される。例えば、領域抽出モデル25には、convolutional encoder-decoderなどを採用することができる。
【0028】
骨格推定モデル26は、画像フレームの人物の領域(全身画像)を入力すると、該当する人物の骨格データを出力する機械学習モデルである。骨格推定モデル26は、OpenPose等の機械学習モデルで実現することができる。
【0029】
また、骨格推定モデル26には、動作解析を実行する機械学習モデルを用いることもできる。具体的には、骨格推定モデル26には、人物の2次元画像データに対して、頭、手首、腰、足首などの2次元の関節位置(骨格座標)を推定し、基本となる動作の認識やユーザが定義したルールの認識を行う、訓練済みの深層学習器を採用することができる。この骨格推定モデル26を用いることで、人物の基本動作を認識することができ、足首の位置、顏の向き、身体の向きを取得することができる。
【0030】
制御部30は、情報処理装置10全体を司る処理部であり、例えばプロセッサなどによる実現される。この制御部30は、事前学習部31、取得部32、人物モデル生成部33、領域特定部34、合成データ生成部35、機械学習部36を有する。なお、事前学習部31、取得部32、人物モデル生成部33、領域特定部34、合成データ生成部35、機械学習部36は、プロセッサが有する電子回路やプロセッサが実行するプロセスなどにより実現される。
【0031】
(事前学習)
事前学習部31は、訓練データDB21に記憶される各訓練データを用いて、3D生成モデル24、領域抽出モデル25、骨格推定モデル26を生成する処理部である。なお、ここでは、情報処理装置10が上記各機械学習モデルを生成する例で説明するが、これに限定されるものではなく、他の装置で生成された訓練済みの各機械学習モデルを用いることもできる。
【0032】
図3は、3D生成モデルの訓練を説明する図である。
図3に示すように、事前学習部31は、説明変数である人物が写っている画像データと、目的変数である3Dアバターを含む訓練データを3D生成モデル24に入力する。そして、事前学習部31は、3D生成モデル24が「Mesh Graphormer」から出力された3次元の人物のメッシュモデルと、「Texformer」から出力された人物のテクスチャとを合成することで生成した3Dアバターを取得する。その後、事前学習部31は、目的変数である3Dモデルと、3D生成モデル24の出力結果である3Dモデルとの誤差が最小化するように、3D生成モデル24のパラメータ更新を行うことで、3D生成モデル24の訓練を実行する。
【0033】
図4は、領域抽出モデル25の訓練を説明する図である。
図4に示すように、事前学習部31は、説明変数であるRGBの画像データと、目的変数であるセグメンテーション結果とを含む訓練データを領域抽出モデル25に入力し、出力結果(セグメンテーション結果)を取得する。そして、事前学習部31は、訓練データの目的変数と出力結果との誤差が最小化するように、領域抽出モデル25のパラメータ更新を行うことで、領域抽出モデル25の訓練を実行する。
【0034】
図5は、骨格推定モデル26の訓練を説明する図である。
図5に示すように、事前学習部31は、説明変数である画像データと、目的変数である骨格データとを含む訓練データを骨格推定モデル26に入力し、出力結果(骨格認識結果)を取得する。そして、事前学習部31は、訓練データの目的変数と出力結果との誤差が最小化するように、骨格推定モデル26のパラメータ更新を行うことで、骨格推定モデル26の訓練を実行する。なお、骨格データには、2次元の関節位置(骨格座標)、足首の位置、顏の向き、身体の向きや動作などを含めることができる。
【0035】
(データ取得)
取得部32は、人物を撮影した人物画像データと、所定の場所を撮影した場所画像データとを取得する処理部である。例えば、取得部32は、人物検出、属性推定、骨格検知などを行う各現場で撮像された人物画像データや場所画像データを取得して各DBに格納する。また、取得部32は、各画像データをインターネット等から取得してもよい。
【0036】
(3Dアバターの生成)
人物モデル生成部33は、人物画像データを3D生成モデル24に入力することで、人物の形状と形状に対して付与されるテクスチャから成る3次元の人物モデルを生成する処理部である。具体的には、人物モデル生成部33は、人物画像データDB22に記憶される各人物画像データに対して機械学習モデルや画像解析を行うことで、各人物画像データに写っている人物から3次元の人物モデルの一例である3Dアバターを生成し、生成された3Dアバターを記憶部20に格納する。
【0037】
図6は、3Dアバターの生成を説明する図である。人物モデル生成部33は、映像データに含まれるフレーム50を取得し、フレーム50の人物の領域50aを特定する。人物の領域は、たとえば、Bounding Boxに対応する領域となる。人物モデル生成部33は、人物の領域の画像を基にして、人物の「骨格情報」および「属性情報」を推定する。骨格情報は、人物の各関節の位置が設定された情報である。属性情報には、人物の年代、性別、体形、髪型、服装等が含まれる。
【0038】
人物モデル生成部33は、人物の領域50aの画像を、3D生成モデル24に入力することで、3Dアバターav1を生成する。人物モデル生成部33は、3Dアバターav1の頭部の部位、手の部位を低解像度化する。また、人物モデル生成部33は、骨格情報を基にして、人物の動作が歩行であると判定した場合には、3Dアバターav1の所定の部位を移動させることで、3Dアバターav1の歩行姿勢を匿名化する。人物モデル生成部33が、上記の処理を実行することで、3Dアバターav2が生成される。
【0039】
ここで、3Dアバターの生成処理を具体的に説明する。具体的には、人物モデル生成部33は、歩行動作の判定処理、3Dアバターを生成する処理、3Dアバターの特徴量を変換する処理、3Dアバターの歩行姿勢を匿名化する処理、変換映像データを生成する処理を実行する。
【0040】
まず、歩行動作の判定処理について説明する。
図7は、歩行の動作判定を説明するための図である。たとえば、人物モデル生成部33は、
図7に示す骨格情報を、人物の姿勢を判定する訓練済みの姿勢判定モデルなどに入力することで、人物の動作を判定する。人物モデル生成部33は、骨格推定モデル26など用いて推定された骨格情報をそのまま利用してもよいし、
図7の骨格情報SK10のように、一部の関節位置を抽出して、利用してもよい。骨格情報SK10には、関節p1,p2,p3,p4,p5,p6、p7,p8が含まれる。
【0041】
関節p1は、左肩の関節である。関節p2は、右肩の関節である。関節p3は、左腰の関節である。関節p4は、右腰の関節である。関節p5は、左膝の関節である。関節p6は、右膝の関節である。関節p7は、左足首の関節である。関節p8は、右足首の関節である。たとえば、姿勢判定モデルM4は、骨格情報SK10が入力されると、関節p3,p4,p5,p6の角度のパターンに応じて、姿勢を、立つ、歩く、しゃがむ、座る、寝る等の何れかに分類する。
【0042】
次に、人物モデル生成部33が実行する3Dアバターを生成する処理について説明する。人物モデル生成部33は、映像データのフレームに含まれる人物の領域を特定し、特定した人物の領域の画像を、3D生成モデル24に入力することで、3Dアバターを生成する。たとえば、人物モデル生成部33は、人物の領域の画像を、Mesh Graphormerに入力し、3次元の人物のメッシュモデルを生成する。人物モデル生成部33は、人物の領域の画像を、Texformerに入力して、人物のテクスチャを生成する。人物モデル生成部33は、Mesh Graphormerによって推定された3次元の人物のメッシュモデルに、Texformerによって生成されたテクスチャを設定することで、3Dアバターを生成する。人物モデル生成部33は、1つのフレームから、かかるフレームに含まれる人物の3Dアバターを生成することが可能である。
【0043】
図8は、フレームから生成される3Dアバターの一例を示す図である。たとえば、人物モデル生成部33が、フレーム60の人物の領域の画像を、3D生成モデル24に入力することで、3Dアバター60aが生成される。人物モデル生成部33が、フレーム61の人物の領域の画像を、3D生成モデル24に入力することで、3Dアバター61aが生成される。人物モデル生成部33が、フレーム62の人物の領域の画像を、3D生成モデル24に入力することで、3Dアバター62aが生成される。人物モデル生成部33が、フレーム63の人物の領域の画像を、3D生成モデル24に入力することで、3Dアバター63aが生成される。
【0044】
続いて、人物モデル生成部33が実行する3Dアバターの特徴量を変換する処理について説明する。人物モデル生成部33は、フレーム番号nのフレームから推定された骨格情報と、フレーム番号nのフレームから生成した3Dアバターとを基にして、3Dアバターを構成する複数の部位のうち、特徴量を変換する部位を特定する。たとえば、人物モデル生成部33は、骨格情報と、3Dアバターとを重ねて配置し、骨格情報の頭、手首の関節位置を基準として、3Dアバターの頭(顔、耳介を含む)の部位と、手の部位を特定する。
【0045】
続いて、人物モデル生成部33は、3Dアバターの手の部位、頭の部位を低解像度化する(ぼかす)。また、人物モデル生成部33は、3Dアバターの頭部の部位の位置を、所定の方向へ所定の距離ずらす。所定の方向、所定の距離は、予め設定される。人物モデル生成部33が、かかる処理を実行することで、3Dアバターの特徴量を変換する。
【0046】
なお、人物モデル生成部33は、アバターの頭の部位の特徴と類似する頭部のパーツを、予め記憶する情報から選択し、選択した頭部のパーツによって、アバターの頭部の部位を置き換えることで、3Dアバターの特徴量を変換してもよい。人物モデル生成部33は、画像データの識別番号と対応付けて、特徴量を変換した3Dアバターの情報を、記憶部20に登録する。
【0047】
次に、人物モデル生成部33が、3Dアバターの歩行姿勢を匿名化する処理について説明する。人物モデル生成部33は、歩行検出情報に設定されるフレーム番号のフレームから生成した3Dアバターを選択し、選択した3Dアバターの歩行姿勢を匿名化する。なお、歩行検出情報とは、時系列の骨格情報から、一つの骨格情報を取得し、骨格情報を姿勢判定モデルに入力することで、人物の動作が「歩行」であると判定されたフレームを特定する情報であり、人物モデル生成部33によって生成される。
【0048】
図9は、3Dアバターの歩行姿勢を匿名化する処理を説明するための図である。たとえば、人物モデル生成部33は、歩行姿勢であると判定された3Dアバターに対応する骨格情報を、骨格情報SK20とする。骨格情報SK20には、関節p1~p13が含まれる。関節p1~p8の関節の説明は、
図7と同様である、関節p9は、左肘の関節である。関節p10は、右肘の関節である。関節p11は、左手首の関節である。関節p12は、右手首の関節である。関節p13は、頭部の各関節に対応する。
【0049】
人物モデル生成部33は、骨格情報SK20の関節p3,p5,p7のx座標の値が同じ値となるように、関節p5,p7を移動させる。人物モデル生成部33は、骨格情報SK20の関節p4,p6,p8のx座標の値が同じ値となるように、関節p6,p8を移動させる。人物モデル生成部33は、骨格情報SK20の関節p9,p11のx座標の値が同じ値となるように、関節p11を移動させる。人物モデル生成部33は、骨格情報SK20の関節p10,p12のx座標の値が同じ値となるように、関節p12を移動させる。上記のように、どの関節の組のx座標を同じにするかに関する情報は、設定情報として、予め記憶部20に登録される。人物モデル生成部33は、設定情報を基にして、上記の処理を実行する。
【0050】
人物モデル生成部33が、上記処理を実行することで、骨格情報SK20が、骨格情報SK20aとなる。人物モデル生成部33は、3Dアバターの姿勢を、骨格情報SK20aに合わせて調整する。たとえば、人物モデル生成部33は、3Dアバターの各部位のうち、歩行に関連する関節p3~12に対応する部位を特定し、特定した部位を、骨格情報SK20aの関節p3~12に位置に合わせて移動させることで、3Dアバターの歩行姿勢を匿名化する。
【0051】
なお、人物モデル生成部33は、頭部の各関節p13をそのままとすることで、人物が向いていた方向をユーザが確認できるように、3Dアバターの顔の向きの情報をそのままとする。たとえば、人物モデル生成部33は、人物が商品に手を伸ばす等の購買行動(物体を探索する動作)が検出された場合、3Dアバターの各部位のうち、頭部の各関節p13に対応する部位をそのままとすることで、購買行動に関する人の動きを反映させる。
【0052】
このように、人物モデル生成部33は、歩行検出情報に設定されたフレーム番号に対応する3Dアバターについて、上記処理をそれぞれ実行することで、3Dアバターの歩行姿勢を匿名化する。このようにして、人物モデル生成部33は、複数の人物画像データから、様々な姿勢、種別(性別や年齢)、服装の3Dアバター(3Dモデル)を生成する。
【0053】
(領域特定)
図2に戻り、領域特定部34は、場所画像データの中から、人物が行動する領域を特定する処理部である。具体的には、領域特定部34は、場所画像データDB23に記憶される各場所画像データに対して機械学習モデルや画像解析を行うことで、各場所画像データ内で人物が行動する領域を特定する。そして、領域特定部34は、各場所画像データと各特定結果とを対応付けて記憶部20に格納する。
【0054】
例えば、領域特定部34は、領域抽出モデル25を用いたセマンティックセグメンテーションにより、人物が行動する領域(注目領域)を特定することができる。
図10は、セマンティックセグメンテーションによる注目領域の検出を説明する図である。
図10に示すように、領域特定部34は、画像データを領域抽出モデル25(convolutional encoder-decoder)に入力し、画像データの各領域にラベルが設定された出力結果(セグメンテーション結果)を取得する。一例を挙げると、領域特定部34は、ラベル「通路」が設定された領域を注目領域と特定したり、ラベル「通路」が設定された領域内でラベル「商品棚」と隣接する領域を注目領域と特定したりする。
【0055】
なお、領域特定部34は、カメラの映像データから人の作業位置を抽出し、作業位置のクラスタリングによってROI(Region Of Interest)を注目領域と特定することもできる。
【0056】
また、領域特定部34は、領域抽出モデル25によるセマンティックセグメンテーションの実行結果を適切な情報を用いて修正することで、人物が行動する領域をより正確に特定することもできる。具体的には、領域特定部34は、店舗での購買行動は移動と商品を選び取る行動が主として発生し、選び取る際には通路方向に対して身体の向きにバラつきが生じることを用いて、商品の選び取りが発生する注目領域を抽出し、セグメンテーション結果を修正することで、行動分析の対象となる注目領域を正確に設定する。
【0057】
図11は、骨格推定モデル26を用いた動作解析を説明する図である。
図11に示すように、領域特定部34は、RGBの画像データを骨格推定モデル26に入力し、画像データに写っている人物の2次元骨格座標を取得する。そして、領域特定部34は、2次元骨格座標にしたがって、人物の足首の位置、顔の向き、身体の向きを特定する。
【0058】
すなわち、領域特定部34は、所定時間間隔で取得された各映像データに含まれる各画像データ(例えば100フレーム)それぞれを骨格推定モデル26に入力し、各画像データに写っている人物の足首の位置、顔の向き、身体の向きを測定することで、映像データ内における人物の足首の位置の遷移、顔の向きの遷移、身体の向きの遷移を特定することができる。
【0059】
次に、領域特定部34は、トラッキング情報から人の移動経路を抽出し、基準線となる通路方向を設定する。具体的には、領域特定部34は、映像データ内から画像データを取得(選択)し、ある人物の移動経路を用いて、画像データ上にユーザが歩く方向である基準方向を設定する。そして、領域特定部34は、設定された基準方向を、移動経路を示す基準線として抽出する。
【0060】
図12は、トラッキングによる基準方向の設定を説明する図である。
図12に示すように、領域特定部34は、画像データ上に、トラッキング結果である移動経路A1と移動経路A2とを設定する。このとき、領域特定部34は、設定された移動経路を含む領域を通路の領域と設定することができる。なお、領域特定部34は、画像データに対してセマンティックセグメンテーションを実行した結果により、画像データ上に通路の領域を設定することができる。
【0061】
次に、領域特定部34は、トラッキング結果により、移動経路A1から移動経路A2への遷移を特定し、その遷移にしたがって、通路の領域上に基準方向B1、B2、B3のそれぞれを設定する。そして、領域特定部34は、この基準方向B1、B2、B3それぞれを、基準線に設定する。なお、移動経路や移動経路の遷移は、一方方向に限らず、多方向が特定されることもあるが、この場合であっても、方向を除外して同じ移動軌跡であれば、1つの通路方向であり、1つの基準線として抽出される。例えば、領域特定部34は、ユーザが歩く複数の移動経路から通路方向となる近似直線を算出し、その近似曲線を基準線として設定する。
【0062】
次に、領域特定部34は、各人物の移動軌跡を抽出し、各基準線と各人物の移動軌跡との距離に基づくクラスタリングにより、複数のクラスタを生成する。つまり、領域特定部34は、各移動軌跡がどの基準線に近いかをクラスタリングする。
【0063】
図13は、クラスタリングを説明する図である。
図13に示すように、領域特定部34は、各画像データに写っている人物の足首の位置を取得し、基準線B1、B2、B3が設定された画像データにプロットする。そして、領域特定部34は、各基準線と各人物の移動軌跡との距離に基づくクラスタリングにより、複数のクラスタを生成する。
【0064】
例えば、領域特定部34は、各移動軌跡から各基準線への垂線を引き、その垂線の長さを基にしたクラスタリングを実行することにより、各移動軌跡をいずれかの基準線にクラスタリングする。なお、ベースとなる距離は、垂線の長さに限らず、ユークリッド距離などを用いることもできる。
【0065】
この結果、領域特定部34は、基準線B1に最も近い移動軌跡の点群を含むクラスタC1と、基準線B2に最も近い移動軌跡の点群を含むクラスタC2と、基準線B3に最も近い移動軌跡の点群を含むクラスタC3と、を生成する。
【0066】
次に、領域特定部34は、クラスタリングされた各移動軌跡について、各基準線に対する身体の向きのなす角を算出する。具体的には、領域特定部34は、各画像データに写っている人物の身体の向きを取得し、画像データ内の移動軌跡に、該当する身体の向きを対応付ける。そして、領域特定部34は、クラスタリング結果を用いて、各移動軌跡が属するクラスタの基準線を特定する。その後、領域特定部34は、各移動軌跡に対して、公知の手法を用いて、属するクラスタの基準線と身体の向きとのなす角度を算出する。なお、領域特定部34は、身体の向きに限らず、顔の向きを用いることもできる。
【0067】
続いて、領域特定部34は、複数のクラスタそれぞれについて、クラスタに属する各移動軌跡と基準線とのなす角度に基づく評価値が閾値以上であるクラスタを含む領域を注目領域に抽出する。具体的には、領域特定部34は、各基準線に対する身体の向きのなす角のうち、大きい角度を多く含む基準線を抽出し、このような基準線が属する領域を注目領域として抽出する。
【0068】
図14は、クラスタの抽出を説明する図である。
図14に示すように、領域特定部34は、各移動軌跡がプロットされた画像データに対して、各移動軌跡に対応する身体の向きをプロットする。また、領域特定部34は、各移動軌跡に対して算出された角度も対応付ける。
【0069】
そして、領域特定部34は、各クラスタについて、属する移動軌跡の角度を集計する。例えば、
図14に示すように、領域特定部34は、クラスタC1に属する各移動軌跡の角度とその角度に該当する移動軌跡の数、クラスタC2に属する各移動軌跡の角度とその角度に該当する移動軌跡の数、クラスタC3に属する各移動軌跡の角度とその角度に該当する移動軌跡の数を集計する。
【0070】
その後、領域特定部34は、大きい角度を多く有するクラスタを抽出する。例えば、領域特定部34は、クラスタごとに、角度の中央値、角度の平均値、60度以上の角度の数の割合などを評価値として算出する。そして、領域特定部34は、評価値が閾値以上であるクラスタC2とクラスタC3を抽出する。
【0071】
続いて、領域特定部34は、抽出したクラスタC2とクラスタC3について、注目領域として、クラスタに属する各移動軌跡を囲む多角形を生成する。
図15は、注目領域の抽出を説明する図である。
図15に示すように、領域特定部34は、クラスタC2について、クラスタC2に属する各移動軌跡を含む最大の多角形C2´を生成して、注目領域として抽出する。同様に、領域特定部34は、クラスタC3について、クラスタC3に属する各移動軌跡を含む最大の多角形C3´を生成して、注目領域として抽出する。
【0072】
その後、領域特定部34は、上記抽出結果を用いて、セマンティックセグメンテーションにより得られた各エリアのラベルを修正(変更)する。例えば、領域特定部34は、修上述した処理により得られた基準線に関する情報、注目領域の抽出結果、ROIに関する情報、足首の位置や身体の向きや顔の向きなどの行動認識結果などを取得する。
【0073】
また、領域特定部34は、上記注目領域の抽出に使用された画像データなど、映像データに含まれる画像データを、領域抽出モデル25に入力し、セマンティックセグメンテーションの実行結果を取得する。なお、セグメンテーションの実行結果には、画像データに含まれる複数の領域それぞれについて、識別された結果を示すラベルが付与されている。例えば、セマンティックセグメンテーションの実行結果には、「棚」、「通路」、「壁」などのラベルが付与される。
【0074】
次に、領域特定部34は、セグメンテーション結果に基準線を設定する。
図16は、セマンティックセグメンテーションの実行結果への基準線の設定を説明する図である。
図16に示すように、領域特定部34は、セグメンテーション結果と基準線に関する情報を取得し、セグメンテーション結果に対して、基準線B1、B2、B3をプロットする。
【0075】
次に、領域特定部34は、基準線が設定されたセグメンテーション結果に対して、基準線に基づくクラスタリングを実行する。
図17は、基準線に基づくクラスタリングを説明する図である。
図17に示すように、領域特定部34は、セグメンテーション結果に設定(識別)された各ラベルのうち、「通路」のラベルが設定されたエリアを特定する。そして、領域特定部34は、特定した「通路」のエリアに属する各画素と各基準線(B1、B2、B3)との距離を算出し、最も距離が近い基準線に属するように、各画素をクラスタリングする。なお、距離には、各画素から各基準線に対する垂線の長さや、画素と基準線とのユークリッド距離などを用いることができる。そして、領域特定部34は、基準線B1に属するクラスタL1、基準線B2に属するクラスタL2、基準線B3に属するクラスタL3を特定する。
【0076】
次に、領域特定部34は、上記抽出結果に基づき、セグメンテーション結果のラベルを修正する。具体的には、領域特定部34は、複数のクラスタのうち注目領域に対応する注目クラスタを特定し、注目クラスタの領域を、対応する注目領域を含む領域に修正し、修正された領域に対して設定されたラベルを、注目領域に該当するラベルに変更する。すなわち、領域特定部34は、クラスタリング結果と抽出された注目領域とを含む領域が最大を取るように各クラスタの領域を修正し、その修正された領域を注目領域としてラベリングする。
【0077】
図18は、ラベル修正を説明する図である。
図18に示すように、領域特定部34は、注目領域(C2´とC3´)に関する各多角形の座標を取得し、クラスタリングされたセグメンテーション結果(画像データ)にマッピングする。そして、領域特定部34は、注目領域C2´が属するクラスタL2と、注目領域C3´が属するクラスタL3とを特定する。
【0078】
その後、領域特定部34は、注目領域C2´が含まれるように、クラスタL2の領域を拡張した領域L2´を生成する。そして、領域特定部34は、領域L2´に設定されているラベル「通路」を、ラベル「注目領域」に修正(変更)する。
【0079】
同様に、領域特定部34は、注目領域C3´が含まれるように、クラスタL3の領域を拡張した領域L3´を生成する。そして、領域特定部34は、領域L3´に設定されているラベル「通路」を、ラベル「注目領域」に修正する。なお、領域特定部34は、注目領域の方がクラスタの領域よりも大きい場合、注目領域のラベル「通路」を、ラベル「注目領域」に修正(変更)する。
【0080】
次に、領域特定部34は、顔の向きまたは身体の向きに基づき、店舗を構成する複数の領域のうちラベル「注目領域」と隣接する、人物に関連する物体が収納される領域を設定する。具体的には、領域特定部34は、画像データに対して、ピッキング動作の対象となる商品が置いてある商品棚エリアを特定する。すなわち、領域特定部34は、領域L2´や領域L3´と隣接するエリアについて、セグメンテーション結果により設定済みであるラベルを、ラベル「商品棚」に変更する。
【0081】
図19は、商品棚エリアの設定を説明する図である。
図19に示すように、領域特定部34は、ラベル「注目領域」が設定された領域L2´と領域L3´のそれぞれについて、各領域に属する各移動軌跡および顔の向きをプロットする。
【0082】
そして、領域特定部34は、顔の向きのベクトルの数が閾値以上である方向を特定し、その方向にある領域のうち、領域L2´と接する領域もしく領域L2´と隣接する領域として、領域E1と領域E2を特定する。この結果、領域特定部34は、セグメンテーション結果において、領域E1と領域E2のラベルを「商品棚エリア」と設定する。
【0083】
同様に、領域特定部34は、顔の向きのベクトルの数が閾値以上である方向を特定し、その方向にある領域のうち、領域L3´と接する領域もしく領域L3´と隣接する領域として、領域E3と領域E4を特定する。この結果、領域特定部34は、セグメンテーション結果において、領域E3と領域E4のラベルを「商品棚エリア」と設定する。
【0084】
そして、領域特定部34は、領域E1、領域E2、領域E3、領域E4の座標や、領域E1からE4それぞれを設定した画像データなどの情報を記憶部20に格納する。なお、領域特定部34は、セグメンテーション結果ではなく、セグメンテーション結果の元となった画像データに対して、「商品棚エリア」に領域を設定することもできる。
【0085】
(合成データの生成)
図2に戻り、合成データ生成部35は、カメラパラメータを用いて、領域特定部34により特定された領域に、人物モデル生成部33によって生成された3次元の人物モデルが配置された合成データを生成する処理部である。
【0086】
具体的には、合成データ生成部35は、領域特定部34により特定された場所画像データ内の注目領域(行動を行う領域)に、特定の行動を行う3Dアバターを配置した合成データを生成する。例えば、合成データ生成部35は、注目領域に、「商品棚エリア」に対して商品を取る行動を行う3Dアバターを配置した合成データを生成する。
【0087】
ここで、合成データ生成部35は、場所画像データを撮像したカメラの位置を推定して、適切な大きさの3Dアバターを配置する。例えば、合成データ生成部35は、単眼デプス推定を行う訓練済みの機械学習モデル(推定モデル)を用いて、カメラから注目領域までの距離を推定し、推定された距離にしたがって3Dアバターを適切に配置することができる。
【0088】
図20は、合成データの生成を説明する図である。
図20に示すように、合成データ生成部35は、場所画像データに対する領域特定部34の領域特定処理により、場所画像データ内の床のうち注目領域を3Dアバターの配置位置に決定する。
【0089】
一方で、合成データ生成部35は、推定モデルに場所画像データを入力し、明るいほどカメラからの距離が遠い位置を表すデプス画像を取得する。そして、合成データ生成部35は、デプス画像および公知の単眼カメラ距離計測技術などを用いて、カメラから配置位置までの距離を算出する。続いて、合成データ生成部35は、カメラと配置位置までの距離を用いて俯角を算出し、俯角および距離を用いて3Dアバターの高さを決定する。例えば、合成データ生成部35は、俯角および距離を用いた三平方の定理により配置位置から天井や商品棚までの高さを算出し、その高さより低い3Dアバターを配置位置に配置した合成データを生成する。
【0090】
ここで、3Dアバターは、条件により様々な姿勢に変更することができる。このため、合成データ生成部35は、目的とする行動(学習対象とする行動)が指定されることで、目的とする3Dアバターを含む合成データを生成することができる。上記領域特定部34による処理結果を用いた合成データの具体的な生成例を説明する。
【0091】
図21は、合成データの生成を説明する図である。
図21に示すように、合成データ生成部35は、複数のうち場所画像データのうち、商品棚を含む画像や飲み物売り場などユーザが指定した条件等の指示に合致した場所画像データを選定する。そして、合成データ生成部35は、選択された場所画像データに対して領域特定部34が特定した場所画像データ内の領域を選択する。例えば、合成データ生成部35は、ユーザの指示に応じて、特定された領域であるクラスタC2の領域(移動軌跡の領域)、クラスタL2の領域(基準線を含む領域)、拡張された領域L2´(移動軌跡と基準線を含む領域)、クラスタC3の領域、クラスタL3の領域、拡張された領域L3´の中から、領域L3´を選択する。
【0092】
続いて、合成データ生成部35は、人物モデル生成部33により生成された複数の3Dアバター70のうち、商品を選ぶ女性や商品を陳列する男性従業員などユーザが指定した条件等の指示に合致した3Dアバター70を選定する。そして、合成データ生成部35は、ユーザが指定した条件に合致するように、選定した3Dアバター70を上下方向、左右方向に回転させるとともに、手を上げたり、しゃがんだりさせて、該当する姿勢に生成する。
【0093】
その後、合成データ生成部35は、場所画像データ内の領域L3´に、商品棚E4の方を向いて、商品を物色する行動を行う3Dアバター70を配置した合成データを生成する。ここで、合成データ生成部35は、3Dアバター70を配置する際に、
図20を用いた手法に限らず、カメラの位置やレンズのパラメータなどを含むカメラパラメータを用いて適切に配置することができる。なお、カメラパラメータは、すべての場所画像データについて既知の情報とは限らないので、場所画像データに合わせて適切に推定することで、精度を向上させることができる。
【0094】
(カメラパラメータの推定)
ここでは、3Dアバターの身長を推定するカメラパラメータの推定について説明する。
図22、
図23、
図24は、カメラパラメータの推定を説明する図である。
図22について説明する。
図22では、映像データに含まれる複数の画像フレーム(場所画像データ)のうち、画像フレームF21を用いて説明を行う。
【0095】
画像フレームF21の座標系は、画像座標系(x,y)となる。人物が現実に存在する座標系は、世界座標系(X,Y,Z)となる。以下の説明では、画像フレームF21に映った画像座標系の人物を人物21-1aと表記し、世界座標系の人物を人物21-2aと表記する。
【0096】
カメラ100のカメラパラメータには、カメラ100の高さcと、カメラ100の角度θと、カメラ100の焦点距離fとが含まれる。カメラ100のカメラパラメータを未知とし、合成データ生成部35は、カメラパラメータに予め所定の初期値を設定しておく。なお、カメラパラメータは、これらに限らず、幾何学関係を定義可能なその他のパラメータでも良い。たとえば、その他のパラメータとして、光軸と画像の交点(光軸中心座標)やカメラの回転角などが含まれる。
【0097】
合成データ生成部35は、画像フレームF21を解析することで、人物21-1aの骨格データを特定する。たとえば、合成データ生成部35は、画像フレームF21を、機械学習済みの学習モデル(例えば骨格推定モデル26)に入力することで、人物21-1aの骨格データを特定する。
【0098】
骨格データには、人物の複数の関節に関する情報が含まれ、各関節は、画像フレーム上の座標に対応付けられる。たとえば、画像フレームF21に対応する骨格データには、人物21-1aの頭部の座標(xh1,yh1)、足部の座標(xf1,yf1)等が含まれる。
【0099】
合成データ生成部35は、属性テーブルを有しており、かかる属性テーブルには、各国の領土の範囲と、該当する国に住む人物の平均身長とが対応付けられる。合成データ生成部35は、カメラ100から受信する位置データと、属性テーブルとを基にして、カメラ100が設置された国の人物の平均身長(画像フレームF21に映った人物の平均身長)を特定する。
【0100】
合成データ生成部35は、カメラ100のカメラパラメータを基にして、画像座標系の足部の座標(xf1,yf1)を世界座標系の座標に投影する。たとえば、合成データ生成部35は、カメラ100と、人物21-1aの足部の座標(xf1,yf1)とを通る線分l5と、世界座標系のXZ平面との交点(Xf1,Yf1,Zf1)を、世界座標系の人物21-2aの足部の座標として算出する。
【0101】
合成データ生成部35は、位置データおよび属性情報を基にして特定した身長(平均身長)Lを、世界座標軸系の人物21-2aに割り当てる。合成データ生成部35は、人物21-2aの足部の座標と、身長Lとを基にして、人物21-2aの頭部の座標(Xh1,Yh1,Zh1)を算出する。
【0102】
合成データ生成部35は、カメラ100のカメラパラメータを基にして、世界座標系の頭部の座標(Xh1,Yh1,Zh1)を、画像座標系の座標に逆投影する。たとえば、合成データ生成部35は、カメラ100と、人物21-2aの頭部の座標(Xh1,Yh1,Zh1)とを通る線分l6と、画像座標系の平面との交点の座標(x´f1,y´f1)を算出し、画像座標系の人物21-1aの頭部の座標とする。
【0103】
合成データ生成部35は、画像座標系の足部の座標(xf1,yf1)から、座標(x´f1,y´f1)までの距離を、「第一の特徴量」として設定する。第一の特徴量は、割り当てた身長Lと、カメラ100のカメラパラメータに基づいて推定される人物21-1aの身長に対応する。
【0104】
合成データ生成部35は、画像座標系の足部の座標(xf1,yf1)から、頭部の座標(xh1,yh1)までの距離を、「第二の特徴量」として設定する。第二の特徴量は、骨格データに基づいて推定される人物21-1aの身長に対応する。
【0105】
図23の説明に移行する。合成データ生成部35は、画像フレームF21に含まれる他の人物22-1a,23-1a,24-1a,25-1aについても、人物21-1aと同様にして、身長Lを割り振り、各人物22-1a~25-1aの第一の特徴量、第二の特徴量をそれぞれ設定する。初回に、各人物21-1a~25-1aに割り振られる身長Lは、同じ身長(平均身長)となる。
【0106】
人物22-1aの骨格データから得られる、画像座標系の足部の座標を(xf2,yf2)とし、頭部の座標を(xh2,yh2)とする。カメラパラメータと身長Lとを用いて得られる頭部の座標を(x´f2,y´f2)とする。人物22-1aの第一の特徴量は、座標(xf2,yf2)から、座標(x´f2,y´f2)までの距離となる。人物22-1aの第二の特徴量は、座標(xf2,yf2)から、頭部の座標(xh2,yh2)までの距離となる。
【0107】
人物23-1aの骨格データから得られる、画像座標系の足部の座標を(xf3,yf3)とし、頭部の座標を(xh3,yh3)とする。カメラパラメータと身長Lとを用いて得られる頭部の座標を(x´f3,y´f3)とする。人物23-1aの第一の特徴量は、座標(xf3,yf3)から、座標(x´f3,y´f3)までの距離となる。人物23-1aの第二の特徴量は、座標(xf3,yf3)から、頭部の座標(xh3,yh3)までの距離となる。
【0108】
人物24-1aの骨格データから得られる、画像座標系の足部の座標を(xf4,yf4)とし、頭部の座標を(xh4,yh4)とする。カメラパラメータと身長Lとを用いて得られる頭部の座標を(x´f4,y´f4)とする。人物24-1aの第一の特徴量は、座標(xf4,yf4)から、座標(x´f4,y´f4)までの距離となる。人物24-1aの第二の特徴量は、座標(xf4,yf4)から、頭部の座標(xh4,yh4)までの距離となる。
【0109】
人物25-1aの骨格データから得られる、画像座標系の足部の座標を(xf5,yf5)とし、頭部の座標を(xh5,yh5)とする。カメラパラメータと身長Lとを用いて得られる頭部の座標を(x´f5,y´f5)とする。人物25-1aの第一の特徴量は、座標(xf5,yf5)から、座標(x´f5,y´f5)までの距離となる。人物25-1aの第二の特徴量は、座標(xf5,yf5)から、頭部の座標(xh5,yh5)までの距離となる。
【0110】
合成データ生成部35は、人物21-1a~25-1aの身長Lを固定した状態で、それぞれの人物21-1a~25-1aについて、第一の特徴量と、第二の特徴量との差が小さくなるように、カメラ100のカメラパラメータを最適化する。
【0111】
図24の説明に移行する。合成データ生成部35は、上記処理によって最適化したカメラパラメータを基にして、人物21-1a~25-1aの身長をそれぞれ算出する。合成データ生成部35は、人物21-1a~25-1aのうち、算出した身長が、所定の範囲に含まれない人物を特定する。たとえば、所定の範囲を、「初期値(平均身長)±4」とする。合成データ生成部35は、2回目以降のカメラパラメータの最適化を行う場合、算出した身長が、所定の範囲に含まれない人物の情報を用いる。
【0112】
図24に示した例では、最適化したカメラパラメータを基にして算出した人物21-1a~25-1aの身長をそれぞれ「173」、「169」、「167」、「177」、「170」とする。初期値を172とすると、所定の範囲は「168~176」となる。そうすると、合成データ生成部35は、身長が、所定の範囲に含まれない人物として、身長「167」の人物23-1aと身長「177」の人物24-1aとを特定する。
【0113】
合成データ生成部35は、特定した人物の身長が、初期値以上場合には、人物の身長に所定値を加算し、加算した身長を2回目の初期値として設定する。合成データ生成部35は、特定した人物の身長が、初期値未満の場合には、人物の身長に所定値を減算し、減算した身長を2回目の初期値として設定する。所定値を1とする。
【0114】
たとえば、人物23-1aの身長が「167」であり、初期値未満である。このため、合成データ生成部35は、人物23-1aの身長Lに、2回目の初期値として「166」を設定する。人物24-1aの身長が「177」であり、初期値以上である。このため、合成データ生成部35は、人物24-1aの身長Lに、2回目の初期値として「178」を設定する。
【0115】
合成データ生成部35は、人物23-1a,24-1aの身長Lを固定した状態で、それぞれの人物23-1a,24-1aについて、第一の特徴量と、第二の特徴量との差が小さくなるように、カメラ100のカメラパラメータを最適化する。2回目のカメラパラメータの初期値は、1回目のカメラパラメータの推定結果とする。
【0116】
上記のように合成データ生成部35は、1回目の処理で、各人物に仮の平均身長を割り当て、カメラパラメータを推定する。合成データ生成部35は、カメラパラメータの推定結果から特定される各人物の身長が、平均身長を基準とする所定範囲に含まれない人物を抽出する。合成データ生成部35は、抽出した人物の身長を用いて、2回目以降のカメラパラメータを再計算することで、カメラパラメータを決定する。これによって、人物の身長を精度よく算出するためのカメラパラメータをカメラ100に設定することができる。
【0117】
合成データ生成部35は、平均身長を基準とする所定範囲に含まれない人物を特定して、かかる人物の身長を再設定し、カメラパラメータの再計算を行い、統計的な平均値から外れる人物が存在する場合でも、カメラパラメータを収束させることができる。
【0118】
このように、合成データ生成部35は、画像フレームに含まれる全ての人物の身長が未知であっても、それぞれの人物の身長を推定することができる。したがって、合成データ生成部35は、推定された身長となるように、3Dアバターの身長を変更して該当領域に配置することで、状況を正確に表した合成データを生成することができる。
【0119】
(機械学習へ適用)
図2に戻り、機械学習部36は、合成データから2次元の人物モデルを含む画像データを生成し、画像データを訓練データとして、画像データの入力に応じて人物を識別する機械学習モデルを生成する処理部である。
【0120】
具体的には、機械学習部36は、合成データ内の3Dアバターを公知の手法で2次元化した2次元の画像データを生成する。ここで、上述したように、合成データは、ユーザの指定条件にしたがって生成されていることから、合成データで使用された場所画像データは、撮像された場所が既知であり、合成データ内の3Dアバターは、種別、行動、姿勢等が既知である。
【0121】
そのため、機械学習部36は、合成データに基づく2次元の画像データに、学習対象の機械学習モデルに応じたラベルを付加することで、学習内容に応じた訓練データを生成する。なお、機械学習部36は、訓練として、目的変数と各機械学習モデルの出力結果との誤差が最小化するように、各機械学習モデルのパラメータ更新を実行する。
【0122】
図25は、各種モデルの訓練への適用を説明する図である。
図25に示すように、機械学習部36は、人物検出モデルの訓練を行う場合、2次元の画像データに、ラベルとして「人物の領域(バウンティングボックス)」を付加した訓練データを生成する。そして、機械学習部36は、画像データを説明変数、ラベルを目的変数とする訓練データを用いて、画像データから画像データに写っている物の領域を検出する人物検出モデルの訓練を実行する。
【0123】
同様に、機械学習部36は、属性推定モデルの訓練を行う場合、2次元の画像データに、ラベルとして「服装」、「年齢」や「性別」などを付加した訓練データを生成する。そして、機械学習部36は、画像データを説明変数、ラベルを目的変数とする訓練データを用いて、画像データから画像データに写っている人物の属性を推定する属性推定モデルの訓練を実行する。
【0124】
同様に、機械学習部36は、骨格推定モデルの訓練を行う場合、2次元の画像データに、ラベルとして「骨格情報(例えば18関節の情報)」などを付加した訓練データを生成する。そして、機械学習部36は、画像データを説明変数、ラベルを目的変数とする訓練データを用いて、画像データから画像データに写っている人物の骨格を推定する骨格推定モデルの訓練を実行する。
【0125】
同様に、機械学習部36は、行動検知モデルの訓練を行う場合、2次元の画像データに、ラベルとして「歩く」、「座る」や「物を取る」などの「行動」を付加した訓練データを生成する。そして、機械学習部36は、画像データを説明変数、ラベルを目的変数とする訓練データを用いて、画像データから画像データに写っている人物の行動を検知する行動検知モデルの訓練を実行する。
【0126】
<処理の流れ>
図26は、実施例1にかかる合成データの生成処理の流れを示すフローチャートである。
図26に示すように、情報処理装置10は、処理開始が指示されると(S101:Yes)、合成処理の開始が指示されるまで(S103:No)、人物画像データと場所画像データを蓄積する(S102)。
【0127】
その後、情報処理装置10は、合成処理の開始が指示されると(S103:Yes)、各人物画像データから各3Dアバターを生成する(S104)。続いて、情報処理装置10は、各場所画像データに対して行動領域の特定を行い、各場所画像データにおいて人物が行動する領域を特定する(S105)。
【0128】
そして、情報処理装置10は、カメラパラメータの推定を実行し(S106)、推定されたカメラパラメータを用いて、任意の3Dアバターと任意の場所画像データとを用いて、行動領域に3Dアバターが配置された合成データを生成する(S107)。
【0129】
ここで、他の合成データを生成する場合(S108:No)、情報処理装置10は、S107以降を繰り返し、他の合成データを生成しない場合(S108:Yes)、処理を終了する。
【0130】
<効果>
上述したように、実施例1にかかる情報処理装置10は、すでに設置されているカメラにより撮像された人物画像データや場所画像データを用いて、合成データを生成することができる。また、情報処理装置10は、合成データから訓練データを生成して、各種機械学習モデルを訓練することができる。
【0131】
したがって、情報処理装置10は、各種機械学習モデルを用いた検知を行う現場に適した訓練データを用いて、現場に適した機械学習モデルを生成することができる。この結果、情報処理装置10は、現場での行動検知の精度を向上させることができる。
【0132】
また、情報処理装置10は、各現場で教師ありの訓練データを収集する場合に比べて、高速に訓練データを生成することができるので、機械学習モデルの訓練にかかるコストを削減することができる。また、情報処理装置10は、教師ありの訓練データを高速かつ正確に生成することができるので、現場に適した機械学習モデルの生成時間を短縮することができる。さらに、情報処理装置10は、現場における精度高い行動検知の高速に実現することができる。
ところで、人物が行う行動には様々な行動が含まれるが、商品を手にとる行動や商品を物色する行動のように、種別が類似する行動には同じような動作(骨格情報の変化)が行われる。したがって、行動をルール化しておき、ルールに基づいて人物の3次元モデルのポーズと配置を自動で決定することができる。
そこで、実施例2では、情報処理装置10が、行動を決めるルールに基づいて、人物の3次元モデルのポーズと配置を決定して、自動で合成データを生成する例を説明する。また、実施例2にかかる情報処理装置10は、生成された合成データを各種機械学習モデルに入力し、正しく認識されなかった機械学習モデルの訓練を実行する。
その後、情報処理装置10は、人物検出モデル、属性推定モデル、骨格推定モデルなどの各種機械学習モデルに、各合成データを入力して、各モデルの出力結果を取得する。そして、情報処理装置10は、推定が失敗した機械学習モデルを訓練対象と特定する。例えば、合成データA1が入力されたときの人物検出モデルの人物検出結果が正しい検出結果ではない場合、情報処理装置10は、合成データA1を用いて人物検出モデルの訓練を実行する。また、合成データC1が入力されたときの属性推定モデルの属性推定結果が正しい推定結果ではない場合、情報処理装置10は、合成データC1を用いて属性推定モデルの訓練を実行する。
行動ルールDB27は、人物の行動の要素を示すルールを記憶するデータベースである。具体的には、行動ルールDB27は、行動ごとに、3Dアバターの配置位置や3Dアバターの姿勢やポーズ等を記憶する。
合成データ生成部35は、行動ルールに基づいて、合成データを自動で生成する。例えば、合成データ生成部35は、ユーザが指定した行動に対応するルール(行動の要素)を行動ルールDB27から特定し、特定したルールにしたがって合成データを生成する。また、合成データ生成部35は、行動ルールDB27に記憶される行動ごとに、行動に対応付けられるルールに一致する3Dアバターと場所画像データとを選択して、合成データを生成することもできる。
続いて、合成データ生成部35は、商品棚を含む場所画像データを選択し、実施例1の手法で特定された行動領域と商品棚領域のそれぞれを立ち位置ROIと手の位置ROIに設定する。そして、合成データ生成部35は、立ち位置ROIに、立ち姿勢の3Dアバターを配置する。ここで、合成データ生成部35は、「商品を取る行動」に対応付けられる要素のうち、身体の向きが「商品棚に向いている」かつ「手の位置」が「商品棚に入れる」となっていることから、立ち位置ROIから手の位置ROIに対して、手を伸ばしている3Dアバターを配置する。
このように行動ごとにルールを対応付けておくことで、合成データ生成部35は、行動に合致した合成データを正確に生成することができるので、合成データの生成時間を短縮することができ、人為的なミスによる不正確な合成データの生成を抑制することができる。
次に、合成データを用いた各種機械学習モデルの評価の具体例を説明する。ここで例示する機械学習モデルは例示であり、数、評価の順番、機械学習モデルの種別などを限定するものではない。
続いて、機械学習部36は、実施例1による手法や合成データの生成に使用されたルールから、合成データにラベル(正解情報)を設定する(S203)。例えば、機械学習部36は、人物の領域、属性、骨格情報などを各ラベルとして設定する。なお、機械学習部36は、合成データから生成した上記2次元モデルの画像データを用いてもよい。
その後、機械学習部36は、人物検出モデルを用いて合成データから人物検出を実行する(S204)。すなわち、機械学習部36は、合成データを人物検出モデルに入力して、人物検出モデルによる人物検出結果を取得する。
そして、機械学習部36は、人物検出モデルによる人物検出が成功した場合(S205:Yes)、S206を実行せずにS207を実行し、人物検出モデルによる人物検出が失敗した場合(S205:No)、合成データを用いて人物検出モデルを訓練する(S206)。例えば、機械学習部36は、人物検出モデルにより合成データから人物が検出されなかった場合、合成データを説明変数、ラベルを目的変数として人物検出モデルの訓練を実行する。
その後、機械学習部36は、属性推定モデルを用いて合成データから人物の属性推定を実行する(S207)。すなわち、機械学習部36は、合成データを属性推定モデルに入力して、属性推定モデルによる属性推定結果を取得する。
そして、機械学習部36は、属性推定モデルによる属性推定が成功した場合(S208:Yes)、S209を実行せずにS210を実行し、属性推定モデルによる属性推定が失敗した場合(S208:No)、合成データを用いて属性推定モデルを訓練する(S209)。例えば、機械学習部36は、属性推定モデルにより合成データから属性が推定されなかった場合や属性が間違って推定された場合、合成データを説明変数、ラベルを目的変数として属性推定モデルの訓練を実行する。
その後、機械学習部36は、骨格推定モデルを用いて合成データから人物の骨格推定を実行する(S210)。すなわち、機械学習部36は、合成データを骨格推定モデルに入力して、骨格推定モデルによる骨格推定結果を取得する。
そして、機械学習部36は、骨格推定モデルによる骨格推定が成功した場合(S211:Yes)、処理を終了する。一方、機械学習部36は、骨格推定モデルによる骨格推定が失敗した場合(S211:No)、合成データを用いて骨格推定モデルを訓練する(S212)。例えば、機械学習部36は、骨格推定モデルにより合成データから骨格が推定されなかった場合や骨格が間違って推定された場合、合成データを説明変数、ラベルを目的変数として骨格推定モデルの訓練を実行する。
このように、機械学習部36は、推定精度が悪い機械学習モデルのみを特定し、その機械学習モデルに対してのみ訓練および再訓練を行うことができる。この結果、情報処理装置10は、現場で複数の機械学習モデルを使用する場合でも、精度劣化の検出精度を向上させることができ、精度劣化の是正処理の短縮を実現することができる。