(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-23
(45)【発行日】2022-07-01
(54)【発明の名称】推定システム、推定装置、推定方法及びコンピュータプログラム
(51)【国際特許分類】
G06T 7/20 20170101AFI20220624BHJP
G06T 7/00 20170101ALI20220624BHJP
【FI】
G06T7/20 300B
G06T7/00 350C
(21)【出願番号】P 2020147859
(22)【出願日】2020-09-02
【審査請求日】2020-09-02
(73)【特許権者】
【識別番号】500149555
【氏名又は名称】株式会社サイバーエージェント
(73)【特許権者】
【識別番号】504176911
【氏名又は名称】国立大学法人大阪大学
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100141139
【氏名又は名称】及川 周
(72)【発明者】
【氏名】尾崎 安範
(72)【発明者】
【氏名】馬場 惇
(72)【発明者】
【氏名】中西 惇也
(72)【発明者】
【氏名】吉川 雄一郎
(72)【発明者】
【氏名】石黒 浩
【審査官】合田 幸裕
(56)【参考文献】
【文献】中国特許出願公開第110853073(CN,A)
【文献】特開2018-028899(JP,A)
【文献】特開2020-057038(JP,A)
【文献】国際公開第2012/156402(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/20
G06T 7/00
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
通行人の身体部位を含む領域を撮影して、1枚以上の第1の画像を生成する第1の撮影装置と、
前記通行人の身体部位を含む領域を撮影して、奥行き方向の距離の情報が格納された1枚以上の第2の画像を生成する第2の撮影装置と、
人物領域の情報及び前記人物領域に対応する3次元データを入力として前記人物領域で示される人物の注視開始位置及び注視方向の情報を出力するように学習された学習済みモデルに対して、前記第1の画像から抽出される人物領域の情報と、前記第2の画像から生成される3次元データ
である点群データ又は深度画像とを入力として、前記通行人の注視開始位置及び注視方向を推定する推定部と、
を備える推定システム。
【請求項2】
前記第2の画像から人物領域を抽出する深度画像切取部と、
抽出された前記人物領域に基づいて前記3次元データを復元する復元部と、
をさらに備える、請求項1に記載の推定システム。
【請求項3】
前記通行人の身体部位を含む領域は、少なくとも前記通行人の腰の位置より上の身体部位を含む領域であり、
前記第1の画像から前記通行人の身体部位を含む領域を検出する身体部位検出部と、
検出された前記通行人の身体部位を含む領域のうち、少なくとも人物の頭と肩の領域を含む部分領域を前記第1の画像から抽出する画像切取部と、をさらに備え、
前記深度画像切取部は、検出された前記通行人の身体部位を含む領域のうち、少なくとも人物の身体部分を含む部分領域を前記第2の画像から抽出する、請求項2に記載の推定システム。
【請求項4】
人物領域の情報及び前記人物領域に対応する
前記3次元デー
タと、注視開始位置及び注視方向の情報とを対応付けた教師データを入力として、前記学習済みモデルを生成する学習部をさらに備える、請求項1から3のいずれか一項に記載の推定システム。
【請求項5】
通行人の身体部位を含む領域が撮影された1枚以上の第1の画像と、前記通行人の身体部位を含む領域に関する奥行き方向の距離の情報が格納された1枚以上の第2の画像とを取得する取得部と、
人物領域の情報及び前記人物領域に対応する3次元データを入力として前記人物領域で示される人物の注視開始位置及び注視方向の情報を出力するように学習された学習済みモデルに対して、前記取得部によって取得された前記第1の画像から抽出される人物領域の情報と、前記第2の画像から生成される3次元データ
である点群データ又は深度画像とを入力として、前記通行人の注視開始位置及び注視方向を推定する推定部と、
を備える推定装置。
【請求項6】
通行人の身体部位を含む領域が撮影された1枚以上の第1の画像と、前記通行人の身体部位を含む領域に関する奥行き方向の距離の情報が格納された1枚以上の第2の画像とを取得する取得ステップと、
人物領域の情報及び前記人物領域に対応する3次元データを入力として前記人物領域で示される人物の注視開始位置及び注視方向の情報を出力するように学習された学習済みモデルに対して、前記取得部によって取得された前記第1の画像から抽出される人物領域の情報と、前記第2の画像から生成される3次元データ
である点群データ又は深度画像とを入力として、前記通行人の注視開始位置及び注視方向を推定する推定ステップと、
を備える推定方法。
【請求項7】
通行人の身体部位を含む領域が撮影された1枚以上の第1の画像と、前記通行人の身体部位を含む領域に関する奥行き方向の距離の情報が格納された1枚以上の第2の画像とを取得する取得ステップと、
人物領域の情報及び前記人物領域に対応する3次元データを入力として前記人物領域で示される人物の注視開始位置及び注視方向の情報を出力するように学習された学習済みモデルに対して、前記取得部によって取得された前記第1の画像から抽出される人物領域の情報と、前記第2の画像から生成される3次元データ
である点群データ又は深度画像とを入力として、前記通行人の注視開始位置及び注視方向を推定する推定ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、推定システム、推定装置、推定方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
従来、静止している人間の頭部が写っているカラー映像からその人間が注視している方向を推定する技術がある(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】Petr Kellnhofer, Adria Recasens, Simon Stent, Wojciech Matusik, and Antonio Torralba,“Gaze360: Physically Unconstrained Gaze Estimation in the Wild”
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では通行人の注視方向を推定することはできるが、注視を開始する実空間上の位置を推定することはできず、首の可動域としてもありえない推定結果を推定してしまうことがある。そのため、推定精度が低下してしまうという問題があった。
【0005】
上記事情に鑑み、本発明は、通行人の注視開始位置及び注視方向の推定精度を向上させることができる技術の提供を目的としている。
【課題を解決するための手段】
【0006】
本発明の一態様は、通行人の身体部位を含む領域を撮影して、1枚以上の第1の画像を生成する第1の撮影装置と、前記通行人の身体部位を含む領域を撮影して、奥行き方向の距離の情報が格納された1枚以上の第2の画像を生成する第2の撮影装置と、人物領域の情報及び前記人物領域に対応する3次元データを入力として前記人物領域で示される人物の注視開始位置及び注視方向の情報を出力するように学習された学習済みモデルに対して、前記第1の画像から抽出される人物領域の情報と、前記第2の画像から生成される3次元データである点群データ又は深度画像とを入力として、前記通行人の注視開始位置及び注視方向を推定する推定部と、を備える推定システムである。
【0007】
本発明の一態様は、上記の推定システムであって、前記第2の画像から人物領域を抽出する深度画像切取部と、抽出された前記人物領域に基づいて前記3次元データを復元する復元部と、をさらに備える。
【0008】
本発明の一態様は、上記の推定システムであって、前記通行人の身体部位を含む領域は、前記通行人の腰の位置より上の身体部位を含む領域であり、前記第1の画像から前記通行人の身体部位を含む領域を検出する身体部位検出部と、検出された前記通行人の身体部位を含む領域のうち、少なくとも人物の頭と肩の領域を含む部分領域を前記第1の画像から抽出する画像切取部と、をさらに備え、前記深度画像切取部は、検出された前記通行人の身体部位を含む領域のうち、少なくとも人物の身体部分を含む部分領域を前記第2の画像から抽出する。
【0009】
本発明の一態様は、上記の推定システムであって、人物領域の情報及び前記人物領域に対応する前記3次元データと、注視開始位置及び注視方向の情報とを対応付けた教師データを入力として、前記学習済みモデルを生成する学習部をさらに備える。
【0010】
本発明の一態様は、通行人の身体部位を含む領域が撮影された1枚以上の第1の画像と、前記通行人の身体部位を含む領域に関する奥行き方向の距離の情報が格納された1枚以上の第2の画像とを取得する取得部と、人物領域の情報及び前記人物領域に対応する3次元データを入力として前記人物領域で示される人物の注視開始位置及び注視方向の情報を出力するように学習された学習済みモデルに対して、前記取得部によって取得された前記第1の画像から抽出される人物領域の情報と、前記第2の画像から生成される3次元データである点群データ又は深度画像とを入力として、前記通行人の注視開始位置及び注視方向を推定する推定部と、を備える推定装置である。
【0011】
本発明の一態様は、通行人の身体部位を含む領域が撮影された1枚以上の第1の画像と、前記通行人の身体部位を含む領域に関する奥行き方向の距離の情報が格納された1枚以上の第2の画像とを取得する取得ステップと、人物領域の情報及び前記人物領域に対応する3次元データを入力として前記人物領域で示される人物の注視開始位置及び注視方向の情報を出力するように学習された学習済みモデルに対して、前記取得部によって取得された前記第1の画像から抽出される人物領域の情報と、前記第2の画像から生成される3次元データである点群データ又は深度画像とを入力として、前記通行人の注視開始位置及び注視方向を推定する推定ステップと、を備える推定方法である。
【0012】
本発明の一態様は、通行人の身体部位を含む領域が撮影された1枚以上の第1の画像と、前記通行人の身体部位を含む領域に関する奥行き方向の距離の情報が格納された1枚以上の第2の画像とを取得する取得ステップと、人物領域の情報及び前記人物領域に対応する3次元データを入力として前記人物領域で示される人物の注視開始位置及び注視方向の情報を出力するように学習された学習済みモデルに対して、前記取得部によって取得された前記第1の画像から抽出される人物領域の情報と、前記第2の画像から生成される3次元データである点群データ又は深度画像とを入力として、前記通行人の注視開始位置及び注視方向を推定する推定ステップと、をコンピュータに実行させるためのコンピュータプログラムである。
【発明の効果】
【0013】
本発明により、通行人の注視開始位置及び注視方向の推定精度を向上させることが可能となる。
【図面の簡単な説明】
【0014】
【
図1】本発明の実施形態における推定システムの構成を表す構成図である。
【
図2】本実施形態における学習装置の機能構成の具体例を示すブロック図である。
【
図3】本実施形態で用いられる学習モデルの一例を示す図である。
【
図4】本実施形態における推定装置の機能構成の具体例を示すブロック図である。
【
図5】本実施形態における推定装置の推定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の一実施形態を、図面を参照しながら説明する。
図1は、本発明の実施形態における推定システム100の構成を表す構成図である。推定システム100は、通行人の注視開始位置及び注視方向を推定するシステムである。本発明における通行人とは、室内の通路を通っている人物である。注視開始位置は、通行人が注視している方向を推定するための基準となる位置である。例えば、注視開始位置は、人物の眉間の位置である。注視方向は、通行人が注視している方向である。なお、注視は、目の角度を測定しない点で視線と意味合いが異なる。また、注視は、見ているか否かを考慮しない点で顔向きと意味合いが異なる。
【0016】
推定システム100は、学習装置10、画像センサ20(第1の撮影装置)、深度センサ30(第2の撮影装置)及び推定装置40を備える。学習装置10と、推定装置40とは、有線又は無線により通信可能に接続される。画像センサ20及び深度センサ30と、推定装置40とはそれぞれ、有線又は無線により通信可能に接続される。画像センサ20及び深度センサ30は、同一方向であって、通行人の身体部位を含む領域が撮影可能に設置されている。通行人の身体部位を含む領域は、通行人の腰の位置より上の身体部位を含む領域であり、例えば少なくとも通行人の顔及び肩の領域を含む。通行人の腰より上の領域は、例えば人物の両肩の中点の位置、首の位置、腰の位置を結ぶ線分に基づいて、腰の位置より3/4以上の領域であればよい。なお、画像センサ20及び深度センサ30は、近接して配置されることがより好ましい。通行人の身体部位を含む領域は、通行人の全身を含む領域であってもよい。
【0017】
学習装置10は、教師データを入力として、学習モデルを学習することによって学習済みモデルを生成する。教師データは、教師有り学習に用いられる学習用のデータであり、入力データと、その入力データに対して相関性を有すると想定される出力データとの組み合わせによって表されるデータである。学習装置10に入力される教師データは、通行人の腰より上の領域が撮影されたカラー画像及び点群データと、通行人の注視開始位置及び注視方向の情報とを対応付けたデータである。教師データにおける通行人の注視開始位置の情報は、人物の眉間の位置(x,y,z)で表現される開始ベクトルである。教師データにおける通行人の注視方向の情報は、人物の注視方向(x,y,z)で表現される方向ベクトルである。
【0018】
学習装置10は、カラー画像及び点群データを学習モデルに入力して、通行人の注視開始位置及び注視方向の情報を出力するように学習された学習済みモデルを生成する。ここで、学習とは、機械学習モデルで利用される係数を最適化することである。例えば、学習とは、機械学習モデルで利用される係数を、損失関数が最小となるように調整することである。機械学習モデルで利用される係数は、例えば重みの値やバイアスの値である。
【0019】
教師データにおけるカラー画像及び点群データの座標系は、画素単位で事前に対応付けられているものとする。カラー画像及び点群データは、同一の人物を同一方向から撮影して得られた情報であることが望ましい。
【0020】
画像センサ20は、通行人の身体部位を含む領域を撮影することによってカラー画像(第1の画像)を生成する。画像センサ20は、生成したカラー画像を推定装置40に出力する。カラー画像には、撮影した時刻に関する時刻情報が含まれる。
【0021】
深度センサ30は、通行人の身体部位を含む領域を撮影することによって深度画像(第2の画像)を生成する。深度画像とは、画像の各画素値に、計測デバイス(例えば、カメラ)からの奥行き方向の距離の情報が格納された画像である。深度センサ30は、生成した深度画像を推定装置40に出力する。深度画像には、撮影した時刻に関する時刻情報が含まれる。
【0022】
推定装置40は、学習装置10から出力された学習済みモデルと、画像センサ20によって生成されたカラー画像と、深度センサ30によって生成された深度画像とを用いて、画像に撮像されている人物の注視開始位置及び注視方向を推定する。推定装置40は、パーソナルコンピュータ等の情報処理装置を用いて構成される。
【0023】
図2は、本実施形態における学習装置10の機能構成の具体例を示すブロック図である。
学習装置10は、バスで接続されたCPU(Central Processing Unit)やメモリや補助記憶装置などを備え、プログラムを実行する。学習装置10は、プログラムの実行によって学習モデル記憶部11、教師データ入力部12及び学習部13を備える装置として機能する。なお、学習装置10の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field-Programmable Gate Array)等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【0024】
学習モデル記憶部11は、磁気記憶装置や半導体記憶装置などの記憶装置を用いて構成される。学習モデル記憶部11は、機械学習における学習モデルを予め記憶している。ここで、学習モデルとは、入力データと出力データとの関係性を学習する際に使用する機械学習アルゴリズムを示す情報である。本実施形態では、機械学習の学習モデルとして多層パーセプトロン等のニューラルネットワークを用いる。本実施形態ではニューラルネットワークの一例として、例えばResNet(Residual Network)及びPointNetを用いる。
【0025】
教師データ入力部12は、教師データを入力する機能を有する。本実施形態では、通行人の腰より上の領域が撮影されたカラー画像及び点群データとの組み合わせを入力データとし、画像に撮像されている通行人の注視開始位置と注視方向の情報を出力データとする。そして、それらの入力データと出力データとの組み合わせたものを1つのサンプルデータとし、複数のサンプルデータの集合を教師データとして事前に生成する。
【0026】
例えば、教師データ入力部12は、このようにして生成された教師データを記憶している外部装置(図示せず)と通信可能に接続され、その通信インタフェースを介して外部装置から教師データを入力する。また例えば、教師データ入力部12は、予め教師データを記憶している記録媒体から教師データを読み出すことによって教師データを入力するように構成されてもよい。教師データ入力部12は、このようにして入力した教師データを学習部13に出力する。
【0027】
図3は、本実施形態で用いられる学習モデル53の一例を示す図である。
学習モデル53は、第1特徴抽出ネットワーク531、第2特徴抽出ネットワーク532、全結合層533~538で構成される。学習モデル53は、学習モデル記憶部11に記憶されている。学習モデル53は、教師データであるカラー画像51及び点群データ52を入力として、注視開始位置及び注視方向の情報を出力する。なお、学習前の状態では、学習モデル53には、ランダム値で初期化された係数が設定される。
【0028】
第1特徴抽出ネットワーク531は、ResNetと同様の構成を有する畳み込みニューラルネットワークである。第1特徴抽出ネットワーク531は、例えばResNet18と呼ばれるネットワークである。ResNet18は、Residual blockという層が18層で構成されており、カラー画像を並べた情報(4階のテンソル)を入力として、特徴量(1階のテンソル)を出力する。以下、第1特徴抽出ネットワーク531で抽出された特徴量を第1の特徴量と記載する。学習前の状態では、第1特徴抽出ネットワーク531には、ランダム値で初期化された係数が設定される。
【0029】
第2特徴抽出ネットワーク532は、PointNetと同様の構成を有する畳み込みニューラルネットワークである。PointNetは点群データ(3階のテンソル)を入力として、特徴量(1階のテンソル)を出力する。本実施形態において第2特徴抽出ネットワーク532は、PointNetにおけるglobal featureを特徴量として利用する。以下、第2特徴抽出ネットワーク532で抽出された特徴量を第2の特徴量と記載する。学習前の状態では、第2特徴抽出ネットワーク532には、ランダム値で初期化された係数が設定される。
【0030】
第1特徴抽出ネットワーク531から抽出された第1の特徴量と、第2特徴抽出ネットワーク532から抽出された第2の特徴量は、それぞれ全結合層533及び全結合層536に入力される。全結合層533~535は、注視開始位置を求めるために利用される。全結合層536~538は、注視方向を求めるために利用される。
【0031】
全結合層533及び全結合層536は、入力された第1の特徴量及び第2の特徴量を結合する。全結合層533の後段には、全結合層533を組み合わせて注視開始位置を求めるために、全結合層534及び535が接続される。そして、全結合層535から注視開始位置(1階のテンソル)が求められる。このように、全結合層535の出力は、推定により得られた注視開始位置の情報を表す推定開始ベクトルである。推定開始ベクトルは、学習モデル53により推定される人物の眉間の位置(x,y,z)で表現される開始ベクトルである。
【0032】
全結合層536の後段には、全結合層536を組み合わせて注視方向を求めるために、全結合層537及び538が接続される。そして、全結合層538から注視方向(1階のテンソル)が求められる。このように、全結合層538の出力は、推定により得られた注視方向の情報を表す推定方向ベクトルである。推定方向ベクトルは、学習モデル53により推定される注視方向(x,y,z)で表現される方向ベクトルである。学習前の状態では、全結合層533~538には、ランダム値で初期化された係数が設定される。
【0033】
上記のように、学習モデル53は、ResNet及びPointNetにおいて入力から特徴を抽出し、そこから全結合層で特徴に対する出力を学ぶように設計されている。
【0034】
図2に戻って学習装置10の構成についての説明を続ける。
学習部13は、教師データ入力部12から出力される教師データを学習モデルに基づいて学習することにより学習済みモデルを生成する。生成された学習済みモデルは推定装置40に入力される。なお、推定装置40に対する学習済みモデルの入力は、学習装置10と推定装置40との通信を介して行われてもよいし、学習済みモデルを記録した記録媒体を介して行われてもよい。
【0035】
次に、学習部13の具体的な学習処理について説明する。まず学習部13は、教師データを学習モデルに入力して得られた注視開始位置(推定開始ベクトル)と、教師データに含まれる注視開始位置の情報(開始ベクトル)との開始位置誤差を算出する。次に、学習部13は、教師データを学習モデルに入力して得られた注視方向の情報(推定方向ベクトル)と、教師データに含まれる注視方向の情報(方向ベクトル)との方向誤差を算出する。そして、学習部13は、開始位置誤差と、方向誤差に基づいて定められる目的関数についての最小化問題を解くことにより、学習モデル53で利用される係数を更新する。具体的には、学習部13は、学習モデル53で利用される、第1特徴抽出ネットワーク531、第2特徴抽出ネットワーク532、全結合層533~538の係数を更新する。学習部13は、学習モデル53で利用される係数が最適化されるまで、又は、予め定められた回数だけ係数の更新を繰り返し行う。学習モデル53の係数は、誤差逆伝播法と確率的勾配降下法(SGD:Stochastic Gradient Descent)により推定される。なお、最適化の方法として、誤差逆伝播法と、以下の最適化アルゴリズムとの組み合わせであれば確率的勾配降下法以外の最適化アルゴリズムが用いられてもよい。確率的勾配降下法以外の最適化アルゴリズムとしては、例えばAdam、Adamax、Adagrad、RMSProp及びAdadelta等が挙げられる。
【0036】
学習部13は、上記の処理により得られた係数と、学習モデル53とを学習済みモデルとして推定装置40に出力する。
【0037】
図4は、本実施形態における推定装置40の機能構成の具体例を示すブロック図である。
推定装置40は、通信部41、表示部42、操作部43、記憶部44及び制御部45を備える。
通信部41は、他の装置との間で通信を行う。他の装置は、例えば学習装置10、画像センサ20及び深度センサ30である。通信部41は、学習装置10から送信された学習済みモデルを受信する。通信部41は、画像センサ20から送信されたカラー画像を受信する。通信部41は、深度センサ30から送信された深度画像を受信する。なお、USBメモリやSDカード等の外部記録媒体に学習済みモデルが記録されている場合には、通信部41は外部記録媒体を介して学習済みモデルを受信する。
【0038】
表示部42は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、CRT(Cathode Ray Tube)ディスプレイ等の画像表示装置である。表示部42は、ユーザの操作に応じて、推定結果を表示する。表示部42は、画像表示装置を推定装置40に接続するためのインタフェースであってもよい。この場合、表示部42は、推定結果を表示するための映像信号を生成し、自身に接続されている画像表示装置に映像信号を出力する。
【0039】
操作部43は、キーボード、ポインティングデバイス(マウス、タブレット等)、タッチパネル、ボタン等の既存の入力装置を用いて構成される。操作部43は、ユーザの指示を推定装置40に入力する際にユーザによって操作される。例えば、操作部43は、推定処理の開始指示の入力を受け付ける。また、操作部43は、入力装置を推定装置40に接続するためのインタフェースであってもよい。この場合、操作部43は、入力装置においてユーザの入力に応じて生成された入力信号を推定装置40に入力する。
【0040】
記憶部44には、学習済みモデル441、センサパラメータ442及び推定結果443が記憶されている。記憶部44は、磁気記憶装置や半導体記憶装置などの記憶装置を用いて構成される。
学習済みモデル441は、学習装置10によって学習がなされた学習済みモデルである。学習済みモデルには、学習モデル53及び最新の係数の情報が対応付けられている。
【0041】
センサパラメータ442は、深度センサ30のカメラパラメータである。具体的には、センサパラメータ442は、深度センサ30の内部パラメータ(x軸及びy軸のセンサの中心座標位置、歪みを補正するためのパラメータ)と、深度センサ30の外部パラメータ(世界座標系に対するセンサの三次元位置、センサの回転情報)である。
【0042】
推定結果443は、学習済みモデル441を用いて推定された通行人の注視開始位置及び注視方向の情報である。
【0043】
制御部45は、推定装置40全体を制御する。制御部45は、CPU等のプロセッサやメモリを用いて構成される。制御部45は、プログラムを実行することによって、取得部451、身体部位検出部452、カラー画像切取部453、深度画像切取部454、点群復元部455及び推定部456の機能を実現する。
【0044】
取得部451、身体部位検出部452、カラー画像切取部453、深度画像切取部454、点群復元部455及び推定部456の機能部のうち一部または全部は、ASICやPLD、FPGAなどのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアとの協働によって実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置などの非一時的な記憶媒体である。プログラムは、電気通信回線を介して送信されてもよい。
【0045】
取得部451、身体部位検出部452、カラー画像切取部453、深度画像切取部454、点群復元部455及び推定部456の機能の一部は、予め推定装置40に搭載されている必要はなく、追加のアプリケーションプログラムが推定装置40にインストールされることで実現されてもよい。
【0046】
取得部451は、各種データを取得する。例えば、取得部451は、学習済みモデルを取得する。また、例えば、取得部451は、カラー画像及び深度画像を取得する。
【0047】
身体部位検出部452は、取得部451によって取得されたカラー画像から人物の身体部位(骨格モデルに基づく)をピクセル単位で検出する。具体的には、身体部位検出部452は、Semantic SegmentationにおけるBodyPix(参考文献1参照)を利用して、人物の身体部位をピクセル単位で検出する。以下、身体部位検出部452により検出された人物の身体部位の領域を身体部位領域と記載する。身体部位検出部452は、身体部位領域の情報をカラー画像切取部453及び深度画像切取部454に出力する。BodyPixは、事前に学習したニューラルネットワークを使い、周辺画素との関係性から身体の部位をピクセル単位で予測する技術である。
(参考文献1:“BodyPix の概要: ブラウザと TensorFlow.js によるリアルタイム人セグメンテーション”、<URL:https://developers-jp.googleblog.com/2019/04/bodypix-tensorflowjs.html>)
【0048】
カラー画像切取部453は、取得部451によって取得されたカラー画像と、身体部位検出部452から出力された身体部位領域の情報とに基づいて、カラー画像から身体部位領域を抽出する。カラー画像切取部453が抽出する身体部位領域は、例えば通行人の腰より上の領域である。カラー画像切取部453は、矩形領域、例えば正方形の領域で身体部位領域を抽出する。これは、ResNetの処理では、背景を無視してくれるため、抽出された領域に背景部分が含まれていても問題ないためである。なお、カラー画像切取部453は、人物の身体に沿って領域を抽出してもよい。
【0049】
深度画像切取部454は、取得部451によって取得された深度画像と、身体部位検出部452から出力された身体部位領域の情報とに基づいて、深度画像から身体部位領域を抽出する。深度画像切取部454が抽出する身体部位領域は、例えば通行人の身体部分の領域を抽出する。通行人の身体部分の領域とは、人物の顔の領域を含まなくてもよく、少なくとも肩の領域が含まれていればよい。深度画像切取部454は、人物の身体に沿って領域を抽出する。これはPointNetの処理では、背景を無視できないためである。
【0050】
点群復元部455は、深度画像切取部454によって抽出された領域の情報と、センサパラメータ442とに基づいて点群データを復元する。点群の復元は、Deprojectionやbackprojectionと呼ばれる処理により実現される。
【0051】
推定部456は、カラー画像切取部453によって抽出された通行人の腰より上の領域のカラー画像と、点群復元部455によって復元された点群データとを、学習済みモデル441に入力することによって、通行人の注視開始位置及び注視方向を推定する。具体的には、推定部456は、通行人の注視開始位置及び注視方向の推定結果である推定開始ベクトル及び推定方向ベクトルを出力する。
【0052】
図5は、本実施形態における推定装置40の推定処理の流れを示すフローチャートである。
取得部451は、画像センサ20から出力されたカラー画像を取得する(ステップS101)。取得部451は、取得したカラー画像を身体部位検出部452及びカラー画像切取部453に出力する。取得部451は、深度センサ30から出力された深度画像を取得する(ステップS102)。例えば、取得部451は、カラー画像に含まれる時刻情報と同一時刻の深度画像を取得する。取得部451は、取得した深度画像を深度画像切取部454に出力する。
【0053】
取得部451は、ステップS101及びステップS102の処理において、リアルタイム性が要求されない場合には、外部記録媒体に記憶されているカラー画像及び深度画像を取得してもよいし、カラー画像及び深度画像を記憶している他の装置からカラー画像及び深度画像を取得してもよい。
【0054】
身体部位検出部452は、取得部451によって取得されたカラー画像から人物の身体部位をピクセル単位で検出する(ステップS103)。身体部位検出部452は、検出した身体部位領域の情報をカラー画像切取部453及び深度画像切取部454に出力する。カラー画像切取部453は、取得部451によって取得されたカラー画像と、身体部位検出部452から出力された身体部位領域の情報とに基づいて、カラー画像から身体部位領域を抽出する(ステップS104)。
【0055】
カラー画像切取部453が正方形の領域で身体部位領域をカラー画像から抽出する場合、抽出される正方形の領域のうち、身体部位領域の情報で示されるピクセルに対応する領域にはカラー画像のピクセルの画素値が割り当てられ、身体部位領域の情報で示されていないピクセルに対応する領域には0の値が割り当てられる。カラー画像切取部453は、抽出した身体部位領域の情報を深度画像切取部454及び推定部456に出力する。
【0056】
深度画像切取部454は、取得部451によって取得された深度画像と、身体部位検出部452から出力された身体部位領域の情報とに基づいて、深度画像から身体部位領域を抽出する(ステップS105)。深度画像切取部454によって抽出された身体部位領域には、画素値の代わりには奥行きの情報が割り当てられている。深度画像切取部454は、抽出した身体部位領域の情報を点群復元部455に出力する。
【0057】
点群復元部455は、深度画像切取部454によって抽出された身体部位領域の情報と、センサパラメータ442とに基づいて点群データを復元する(ステップS106)。点群復元部455は、復元した点群データを推定部456に出力する、推定部456は、カラー画像切取部453によって抽出された身体部位領域のカラー画像と、点群復元部455によって復元された点群データとを取り込む。推定部456は、取り込んだ身体部位領域のカラー画像と点群データとに基づいて、通行人の注視開始位置及び注視方向を推定する(ステップS107)。
【0058】
具体的には、まず推定部456は、記憶部44に記憶されている学習済みモデル441を読み出す。次に、推定部456は、読み出した学習済みモデル441に含まれる学習モデル53に対して身体部位領域のカラー画像と点群データとを入力する。例えば、推定部456は、身体部位領域のカラー画像を第1特徴抽出ネットワーク531に入力し、点群データを第2特徴抽出ネットワーク532に入力する。これにより、学習モデル53から、推定開始ベクトル及び推定方向ベクトルが出力される。推定部456は、学習モデル53から出力された推定開始ベクトル及び推定方向ベクトルを、注視開始位置及び注視方向の推定結果として取得する。
【0059】
以上のように構成された推定システム100によれば、通行人の注視開始位置及び注視方向の推定精度を向上させることが可能となる。具体的には、推定システム100は、通行人の身体部位を含む領域を撮影してカラー画像を生成する画像センサ20と、通行人の身体部位を含む領域を撮影して、奥行き方向の距離の情報が格納された深度画像を生成する深度センサ30と、人物領域を含むカラー画像及び点群データを入力して、通行人の注視開始位置及び注視方向の情報を出力するように学習された学習済みモデルに対して、カラー画像から抽出される人物領域の情報と、深度画像から生成される点群データとを入力として、通行人の注視開始位置及び注視方向を推定する推定部456とを備える。これにより、通行人の頭のみならず身体部位を含む領域を加味して注視推定を行うことができる。したがって、従来のように、首の可動域としてあり得ない方向を注視方向として推定してしまうことを軽減することができる。さらに、学習済みモデルを用いて通行人の注視開始位置及び注視方向を推定している。そのため、通行人の注視開始位置及び注視方向の推定精度を向上させることが可能になる。
【0060】
さらに、推定システム100では、深度画像から人物領域を抽出する深度画像切取部454と、抽出された人物領域に基づいて3次元データを復元する復元部455とを備える。これにより、背景部分を含まない人物領域のみの3次元データを学習済みモデルに入力することができる。したがって、背景部分を含めた3次元データを学習済みモデルに入力することによって生じる推定精度の低下を抑制することができる。そのため、通行人の注視開始位置及び注視方向の推定精度を向上させることが可能になる。
【0061】
さらに、推定システム100では、通行人の身体部位を含む領域が、通行人の腰の位置より上の身体部位を含む領域であり、カラー画像から通行人の身体部位を含む領域を検出する身体部位検出部452と、検出された通行人の身体部位を含む領域のうち、少なくとも人物の頭と肩の領域を含む部分領域をカラー画像から抽出するカラー画像切取部453と、をさらに備える。そして、深度画像切取部454が、検出された通行人の身体部位を含む領域のうち、少なくとも人物の身体部分を含む部分領域を深度画像から抽出する。これにより、リアルタイムに撮影されたカラー画像から通行人の身体部位を含む領域を検出して抽出することができる。したがって、リアルタイムで、通行人の注視開始位置及び注視方向を推定することができる。そのため、利便性を向上させることが可能になる。
【0062】
<変形例>
上記の実施形態では、通行人として室内の通路を通っている人物を例に説明したが、通行人は室外を歩いている人物を含んでもよい。
学習装置10と、推定装置40とは一体化されて構成されてもよい。例えば、推定装置40が、学習装置10の機能を備えるように構成されてもよい。このように構成される場合、推定装置40は、学習モードと推論モードとを有する。学習モードと推論モードとの切り替えは、操作部43により行われる。推定装置40が学習モードで動作する場合、推定装置40は学習装置10が行う処理を実行する。より具体的には、推定装置40は、学習モデルの学習を実行する。推定装置40が推論モードで動作する場合、推定装置40は
図5に示す推論処理を実行する。
【0063】
上記の実施形態では、推定装置40が、1枚のカラー画像51及び点群データ52を入力して通行人の注視開始位置及び注視方向を推定する構成を示した。推定装置40は、時間的に連続する複数のカラー画像51及び複数の点群データ52を入力して通行人の注視開始位置及び注視方向を推定するように構成されてもよい。時間的に連続する複数のカラー画像51とは、いわゆる動画を構成する時系列に並べられた複数のカラー画像である。このように構成される場合、学習装置10においても、カラー画像と、点群データとの組み合わせの系列データを入力して学習を行う。推定装置40は、入力された複数のカラー画像51及び複数の点群データ52を用いて、カラー画像51それぞれに撮像されている通行人の注視開始位置及び注視方向を推定する。
【0064】
上記の実施形態では、第2特徴抽出ネットワーク532に対する入力データとして点群データを例に説明したが、メッシュ又はボクセルで表現された点群データが用いられてもよい。メッシュで表現された点群データを用いる場合、第2特徴抽出ネットワーク532としてPointNetの代わりにMeshNet(参考文献2参照)が用いられる。MeshNetを用いるには、メッシュで表現された点群データを生成する必要がある。メッシュで表現された点群データを生成するには、深度画像を点群データに復元した後、Meshingを行う必要がある。そのため、点群復元部455は、深度画像切取部454によって抽出された領域の情報と、センサパラメータ442とに基づいて点群データを復元した後にMeshingを行う。Meshingの具体的なアルゴリズムとして、参考文献3に記載のBall-Pivoting Algorithmの技術が用いられてもよい。
メッシュで表現された点群データを用いる場合、第2特徴抽出ネットワーク532に、生成されたメッシュで表現された点群データを入力して、出力として1階のテンソルを得た後にPointNetと同様に連結すればよい。
(参考文献2:Yutong Feng et al., “MeshNet: Mesh Neural Network for 3D Shape Representation”, AAAI 2019、<URL:https://arxiv.org/pdf/1811.11424.pdf>)
(参考文献3:Bernardini, F.; Mittleman, J.; Rushmeier, H.; Silva, C.; Taubin, G. “The ball-pivoting algorithm for surface reconstruction” Transactions on Visualization and Computer Graphics 1999, 5, 349‐359、<URL:https://www.cs.jhu.edu/~misha/Fall13b/Notes/Bernardini99.notes.pdf>)
【0065】
ボクセルで表現された点群データ場合を用いる場合、第2特徴抽出ネットワーク532としてPointNetの代わりに3D ShapeNet(参考文献4参照)が用いられる。3D ShapeNetを用いるには、ボクセルで表現された点群データを生成する必要がある。ボクセルで表現された点群データを生成するには、深度画像を点群データに復元した後、1cm角で離散化を行う必要がある。そのため、点群復元部455は、深度画像切取部454によって抽出された領域の情報と、センサパラメータ442とに基づいて点群データを復元した後に1cm角で離散化を行う。
ボクセルで表現された点群データを用いる場合、第2特徴抽出ネットワーク532に、生成されたボクセルで表現された点群データを入力して、出力として1階のテンソルを得た後にPointNetと同様に連結すればよい。
(参考文献4:Z. Wu et al., “3D ShapeNets: A Deep Representation for Volumetric Shape Modeling”. CVPR, 2015、<URL:https://pdfs.semanticscholar.org/3ed2/3386284a5639cb3e8baaecf496caa766e335.pdf>)
【0066】
上記の実施形態では、第2特徴抽出ネットワーク532としてPointNetを用いる構成を示した。この場合、第2特徴抽出ネットワーク532に対する入力データは、点群データとなる。第2特徴抽出ネットワーク532に対する入力データは、点群データに限らず、他の三次元データが用いられてもよい。他の三次元データは、例えば深度画像である。第2特徴抽出ネットワーク532に対する入力データとして、深度画像を用いる場合、推定装置40は点群復元部455を備えず、さらに学習モデル53における第2特徴抽出ネットワーク532としてDepth CNNs(参考文献5参照)を用いるように構成される。Depth CNNsでは、深度画像を入力として1階のテンソルを出力する。Depth CNNsを用いる場合、深度画像切取部454において深度画像をHHA(Horizontal disparity, Height above ground, and Angle with gravity)コーディングする。その後、深度画像切取部454は、HHAコーディングした深度画像を、第2特徴抽出ネットワーク532に入力する。そして、学習モデル53では、第2特徴抽出ネットワーク532により得られる1階のテンソル(参考文献5のFigure5に示される512fcに対応)を用いる。このように構成される場合、学習装置10には、教師データとしてカラー画像及び深度画像の組み合わせが用いられる。
(参考文献5:Xinhang Song et al., “Depth CNNs for RGB-D scene recognition: learning from scratch better than transferring from RGB-CNNs”, AAAI, 2017”、<URL:https://arxiv.org/pdf/1801.06797.pdf>)
【0067】
上記の実施形態では、ニューラルネットワークの一例として、ResNet及びPointNetを用いる構成を示したが、利用されるニューラルネットワークはこれに限定されない。例えば、第1特徴抽出ネットワーク531として、ResNetに代えて、他の畳み込みニューラルネットワークが用いられてもよい。他の畳み込みニューラルネットワークとしては、例えばMobileNetV1,V2,V3、EfficientNet、NASNet(Neural Architecture Search Net)、MNASNet(Mobile Neural Architecture Search Net)等が挙げられる。
また、第2特徴抽出ネットワーク532として、PointNetに代えて、他のグラフニューラルネットワークが用いられてもよい。他のグラフニューラルネットワークとしては、例えばPointNet++、ShellNet等が挙げられる。
【0068】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0069】
10…学習装置, 20…画像センサ, 30…深度センサ, 40…推定装置, 11…学習モデル記憶部, 12…教師データ入力部, 13…学習部, 41…通信部, 42…表示部, 43…操作部, 44…記憶部, 45…制御部, 451…取得部, 452…身体部位検出部, 453…カラー画像切取部, 454…深度画像切取部, 455…点群復元部, 456…推定部, 531…第1特徴抽出ネットワーク, 532…第2特徴抽出ネットワーク, 533~538…全結合層