本発明の実施形態に係る情報処理システムの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
<システム概要>
図1は、本実施の形態に係る情報処理システムの概要を説明するための模式図である。本実施の形態に係る情報処理システムは、施設100に設置された一又は複数のカメラ1が撮影した画像をサーバ装置3へ送信し、カメラ1から受信した画像をサーバ装置3がユーザの端末装置5へ送信するシステムである。図示の例では、施設100として保育園又は幼稚園等が示されている。保育園又は幼稚園等の施設100に設置されたカメラ1は、例えば所定の周期で繰り返し自動的に施設100内の撮影、施設100を利用する利用者(本例では子供)の撮影を行っている。カメラ1は携帯電話通信網及びインターネット等のネットワークを介した通信を行う機能を備えており、カメラ1は撮影した画像をサーバ装置3へ送信する。
サーバ装置3は、ネットワークを介してカメラ1から画像を受信し、受信した画像を記憶装置に記憶して蓄積する。またサーバ装置3は、施設100の利用者(本例では子供、子供の保護者又は保育士等)に対応付けられたスマートフォン又はPC(パーソナルコンピュータ)等の端末装置5へ、蓄積した画像を送信する。これにより例えば保育園又は幼稚園等の施設100に子供を預けている保護者は、施設100で過ごす子供の様子をカメラ1にて撮影した画像を自身の端末装置5にて閲覧することができる。また例えば施設100の保育士等は、子供の写真を撮影するという業務を行うことなく、施設100で過ごす子供の様子をカメラ1にて撮影した画像を端末装置5にて取得することができ、例えばフォトアルバムの作成又は施設100内での写真の掲示等を行うことができる。
本実施の形態に係る情報処理システムでは、カメラ1が撮影した画像に写された人の行動(動作、姿勢等を含む)を認識する行動認識処理を行う。カメラ1は、行動認識処理の結果、即ち画像に写された人がどのような行動を行っているかを示す情報を画像に付してサーバ装置3へ送信する。サーバ装置3は、カメラ1から受信した画像に付された情報を取得することで、この画像に写された人の行動認識結果を取得することができる。サーバ装置3は、例えば利用者から特定の行動に関する画像の送信を要求された場合、画像に付された行動認識結果に基づいて要求された画像を抽出し、抽出した画像を要求元の利用者の端末装置5へ送信することができる。なお本実施の形態においては、カメラ1にて行動認識処理を行うものとして説明を行うが、行動認識処理をサーバ装置3が行う構成であってもよい。
また本実施の形態に係る情報処理システムでは、深層学習等の機械学習により予め学習がなされた学習モデルを用いて、カメラ1が画像から人の行動認識を行う。本実施の形態において学習モデルは、サーバ装置3にて予め学習がなされ(予め生成され)、学習済の学習モデル(を構成するための情報)がカメラ1の記憶部等に予め記憶される。なお本実施の形態においては、学習モデルの生成をサーバ装置3が行うものとして説明を行うが、学習モデルはサーバ装置3とは別の装置により生成されてもよい。
<学習モデル生成処理>
図2は、本実施の形態に係るサーバ装置3の構成を示すブロック図である。本実施の形態に係るサーバ装置3は、処理部31、記憶部(ストレージ)32及び通信部(トランシーバ)33等を備えて構成されている。なお本実施の形態においては、1つのサーバ装置にて処理が行われるものとして説明を行うが、複数のサーバ装置が分散して処理を行ってもよい。
処理部31は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)又はGPU(Graphics Processing Unit)等の演算処理装置、ROM(Read Only Memory)及びRAM(Random Access Memory)等を用いて構成されている。処理部31は、記憶部32に記憶されたサーバプログラム32aを読み出して実行することにより、人の行動を認識する学習モデルを生成する処理、カメラ1が撮影した画像を取得して記憶する処理、及び、記憶した画像を利用者の端末装置5へ送信する処理等の種々の処理を行う。
記憶部32は、例えばハードディスク等の大容量の記憶装置を用いて構成されている。記憶部32は、処理部31が実行する各種のプログラム、及び、処理部31の処理に必要な各種のデータを記憶する。本実施の形態において記憶部32は、処理部31が実行するサーバプログラム32aを記憶すると共に、学習モデルを生成する処理に用いられる教師データを記憶する教師データ記憶部32bと、未学習の又は学習済の学習モデルに関する情報を記憶する学習モデル記憶部32cとが設けられている。
本実施の形態においてサーバプログラム32aは、メモリカード又は光ディスク等の記録媒体99に記録された態様で提供され、サーバ装置3は記録媒体99からサーバプログラム32aを読み出して記憶部32に記憶する。ただし、サーバプログラム32aは、例えばサーバ装置3の製造段階において記憶部32に書き込まれてもよい。また例えばサーバプログラム32aは、遠隔の他のサーバ装置等が配信するものをサーバ装置3が通信にて取得してもよい。例えばサーバプログラム32aは、記録媒体99に記録されたものを書込装置が読み出してサーバ装置3の記憶部32に書き込んでもよい。サーバプログラム32aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体99に記録された態様で提供されてもよい。
教師データ記憶部32bは、学習モデルの生成(学習)処理に用いる複数の教師データを記憶する。教師データは、例えば学習モデルに対する入力情報と出力情報とを対応付けたデータである。本実施の形態においては、例えば予めシステムの設計者等により作成された教師データに基づいて、サーバ装置3が教師データの更なる生成を行い、生成した教師データを教師データ記憶部32bに記憶する。ただし、教師データの生成は別の装置で行われてもよく、この場合にサーバ装置3は、通信等により別の装置から教師データを取得して教師データ記憶部32bに記憶する。
学習モデル記憶部32cは、学習モデルを構成する情報を記憶する。本実施の形態に係る学習モデルは、例えば複数のニューロンが相互に結合したニューラルネットワークの構造をなしている。既存の技術であるため詳しい説明は省略するが、ニューロンは複数の入力に対して演算を行い、演算結果として1つの値を出力する素子である。ニューロンは、演算に用いられる重み付けの係数及び閾値等の情報を有している。学習モデル記憶部32cには、学習前又は学習後の学習モデルについて、ニューラルネットワークの構成情報、並びに、各ニューロンの係数及び閾値等の値等を含むデータが記憶される。
サーバ装置3の通信部33は、携帯電話通信網、無線LAN(Local Area Network)及びインターネット等を含むネットワークNを介して、種々の装置との間で通信を行う。本実施の形態において通信部33は、ネットワークNを介して、カメラ1及び端末装置5との間で通信を行う。通信部33は、処理部31から与えられたデータを他の装置へ送信すると共に、他の装置から受信したデータを処理部31へ与える。
なお記憶部32は、サーバ装置3に接続された外部記憶装置であってよい。またサーバ装置3は、複数のコンピュータを含んで構成されるマルチコンピュータであってよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。またサーバ装置3は、上記の構成に限定されず、例えば可搬型の記憶媒体に記憶された情報を読み取る読取部、操作入力を受け付ける入力部、又は、画像を表示する表示部等を含んでもよい。
また本実施の形態に係るサーバ装置3には、記憶部32に記憶されたサーバプログラム32aを処理部31が読み出して実行することにより、第1画像取得部31a、人検出部31b、骨格情報抽出部31c、3次元オブジェクト生成部31d、第2画像取得部31e、教師データ生成部31f及び学習モデル生成部31g等が、ソフトウェア的な機能部として処理部31に実現される。なお本図においては、処理部31の機能部として、学習モデルの生成処理に関する機能部を図示し、これ以外の処理に関する機能部は図示を省略している。
本実施の形態に係る情報処理システムでは、人の行動を認識する学習モデルを生成するためのデータ、例えば認識の対象となる行動を行っている人を撮影した画像(静止画像又は動画像)等のデータの収集が予め行われる。本実施の形態に係る情報処理システムでは、行動を行っている人を撮影する際に、例えば正面等の少なくとも1方向から人を撮影すればよく、1方向から撮影した画像がより多く収集されることが好ましい。本実施の形態において、行動を行っている人を1方向から撮影した画像を第1画像とし、サーバ装置3の第1画像取得部31aは、予め撮影された第1画像を取得する処理を行う。第1画像の撮影は例えば図示しないカメラ等により行われ、サーバ装置3の第1画像取得部31aは、カメラ等と通信又は記録媒体等を介したデータの授受を行うことによって、カメラ等が撮影した第1画像を取得し、取得した第1画像を記憶部32に記憶する。
人検出部31bは、画像に写された人を検出する処理を行う。本実施の形態に係るサーバ装置3の人検出部31bは、人検出用に予め学習がなされた学習モデルを用いて画像から人を検出する処理を行う。画像から人を検出する処理は、既存の技術であるため詳細な説明は省略するが、例えば深層学習がなされた学習モデルを用いて画像からの人等の物体検出を行う「YOLO(You Only Look Once)」と呼ばれる技術を用いることができる。ただし人検出部31bは、「YOLO」とは異なる技術による人検出を行う構成であってよい。
骨格情報抽出部31cは、画像から検出された人の骨格情報を抽出する処理を行う。骨格情報は、人の身体の頭、腰、手足の関節等を複数個の点で表した情報である。骨格情報抽出部31cは、画像に写された1人の人について骨格を18個の点で表し、各点を2次元平面におけるX座標及びY座標で表した情報を骨格情報として画像から抽出する。画像に写された人の骨格情報を抽出する処理は、既存の技術であるため詳細な説明は省略するが、例えば深層学習がなされた学習モデルを用いて骨格情報を抽出する「Open Pose」と呼ばれる技術を用いることができる。ただし骨格情報抽出部31cは、「Open Pose」とは異なる技術による骨格情報の抽出を行う構成であってよい。なお本実施の形態においては、骨格を18個の点で表した情報を骨格情報として扱うが、これに限るものではない。骨格情報は、17個以下又は19個以上の点で表されてもよく、これ以外の構成で表されるものであってもよい。
3次元オブジェクト生成部31dは、第1画像取得部31aが取得した第1画像を基に、第1画像に写された人の行動を行う3次元仮想空間における3次元オブジェクトを生成する処理を行う。人検出部31bが第1画像から人を検出し、検出した人の骨格情報を骨格情報抽出部31cが抽出し、抽出した骨格情報に基づいて3次元オブジェクト生成部31dが3次元オブジェクトを生成する。例えば3次元オブジェクト生成部31dは、予め用意された人の形状の3次元オブジェクトに対して、骨格情報抽出部31cが抽出した骨格情報に対応する姿勢(ポーズ)を取らせることで、第1画像に写された人の行動を行う3次元オブジェクトを生成する。
第2画像取得部31eは、3次元オブジェクト生成部31dが生成した3次元オブジェクトを、3次元仮想空間における仮想カメラで撮影することにより、所望の行動を行う3次元オブジェクトを複数の方向から撮影した2次元画像を第2画像として取得する処理を行う。本実施の形態において第2画像取得部31eは、例えば前後左右の4方向、又は、これに右前、右後、左前及び左後を加えた8方向について、3次元オブジェクトを撮影して第2画像を取得する。ただし、第2画像取得部31eによる第2画像の撮影方向は上記の4方向又は8方向に限らない。例えば10°毎に36方向、20°毎に18方向等の種々の組み合わせで複数の方向からの撮影を行ってよい。より多くの方向から撮影を行ってより多くの第2画像を取得することで、より多くの教師データを生成することができ、この教師データを用いて生成される学習モデルの精度向上が期待できる。
教師データ生成部31fは、第2画像取得部31eが取得した第2画像に基づいて、学習モデルの生成(学習)処理に用いる教師データを生成する処理を行う。教師データ生成部31fは、第2画像取得部31eが取得した第2画像に対して、人検出部31bによる人検出及び骨格情報抽出部31cによる骨格情報の抽出を行って、第2画像に写された人(3次元オブジェクト)の骨格情報を取得する。教師データ生成部31fは、第2画像から取得した骨格情報と、第2画像に写された人が行っている行動の種類を示す情報とを対応付けたデータを教師データとして作成し、教師データ記憶部32bに記憶する。
学習モデル生成部31gは、教師データ生成部31fが生成した教師データを用いて、学習モデル記憶部32cに記憶された学習モデルを学習する処理を行うことによって、人の行動を認識する学習モデルを生成する処理を行う。学習モデルの教師あり学習の処理は、既存の技術であるため詳細な説明は省略するが、学習モデル生成部31gは、例えば勾配降下法、確率的勾配降下法又は誤差逆伝播法等の手法により学習モデルの学習を行うことができる。
図3は、本実施の形態に係るサーバ装置3が生成する学習モデルの一構成例を示す模式図である。本実施の形態に係る学習モデルは、例えば複数のニューロンが相互に結合したニューラルネットワークの構造をなしている。ニューラルネットワークの学習モデルは、一又は複数のデータの入力を受け付ける入力層と、入力層にて受け付けられたデータに対して演算処理を行う中間層と、中間層の演算結果を集約して一又は複数の値を出力する出力層とを備えている。
本実施の形態に係る学習モデルは、画像から抽出された骨格情報を入力として受け付ける。図示の例では、骨格情報を構成する複数個(M個)の点の位置を示す(x、y)の座標が学習モデルへ入力されている。また本実施の形態に係る学習モデルは、複数種類(N種類)の行動について、入力された骨格情報がいずれの行動を行ったものであるかを分類した結果を出力する。本例において学習モデルは、各行動1~Nについて、その行動であることの確信度を0~1の数値で出力する。学習モデルが出力する各行動の確信度の中で、最も高い確信度の行動が、骨格情報を抽出した人が行っている行動と判断することができる。
なお学習モデルへの入力情報は、人の骨格情報の全てではなく、人の骨格情報から一部の情報を除外したものであってもよい。骨格情報が18個の点の情報で構成される場合、例えば学習モデルへの入力は18個の点のうちの16個とし、2個の点については処理に用いなくてもよい。学習モデルが認識する行動の種別によっては、例えば骨格情報に含まれる目、鼻又は頭部等の情報が不要又は必要度が低い場合があり、このような情報を予め除外することによって、処理の高速化又は行動認識の精度向上等が期待できる。
図4は、教師データの生成方法を説明するための模式図である。本実施の形態に係るサーバ装置3は、行動認識の対象となる行動を行っている人を予め少なくとも1つの方向から撮影した第1画像を、撮影に用いられたカメラ等の装置から取得する。サーバ装置3は、取得した第1画像に対して人検出処理を行う。図4の上段には、第1画像に対して行われた人検出処理により、人を含む画像領域が抽出された状態を示している。なお、第1画像は2つ以上の方向から撮影されてもよい。
ここでサーバ装置3は、例えば本システムの設計者等から、第1画像から検出された人の行動の種別等を示す情報の入力を受け付ける。サーバ装置3は、第1画像から検出された人と、この人の行動の種別を示す情報とを対応付けて記憶する。なお行動の種別を示す情報の入力は、設計者等の人手により行われるのではなく、装置又はプログラム等により機械的に行われてもよい。
更にサーバ装置3は、第1画像から検出した人の骨格情報を抽出する処理を行い、抽出した骨格情報に基づいて3次元仮想空間における3次元オブジェクトを生成する。図4の中段には、第1画像に基づいて生成された3次元オブジェクトを示している。
サーバ装置3は、生成した3次元オブジェクトに対して、3次元仮想空間における仮想カメラにより複数の方向から撮影を行い、3次元オブジェクトを撮影した2次元の第2画像を複数取得する。第2画像を撮影する方向は、少なくとも第1画像を撮影した方向とは異なる方向を含む複数の方向であることが好ましい。第2画像を撮影する複数の方向には、第1画像を撮影した方向と同じ方向が含まれていてもよい。サーバ装置3は、取得した各第2画像に対して、第1画像に対して行ったのと同じ人検出処理及び骨格情報の抽出処理を行う。図4の下段には、3次元オブジェクトを撮影することで得られた4つの2次元の第2画像に対して、それぞれ人検出処理及び骨格情報の抽出処理を行った結果を示している。
サーバ装置3は、第2画像から抽出した骨格情報と、この第2画像に写された人(3次元オブジェクト)が行っている行動の種別とを対応付けたデータを教師データとして生成し、教師データ記憶部32bに記憶する。このときにサーバ装置3は、第1画像に対応付けられた行動の種別を、この第1画像を基に取得した第2画像から検出された人の行動の種別とすることができる。骨格情報は、例えば1人につき18個の点で骨格が表現される場合、1個の点につきx座標及びy座標の2つの座標情報を含むため、18×2=36個の座標情報で表される。行動の種別は、例えばN個の行動1~行動Nに対して、いずれか1つの行動に「1」を設定し、これ以外の行動に「0」を設定したN桁の2進数情報で表される。
教師データ記憶部32bに十分な教師データを記憶した後、サーバ装置3は、この教師データを用いて学習モデルの学習処理を行うことにより、人の行動を認識する学習モデルを生成する。ニューラルネットワークの学習モデルを学習する深層学習処理は、既存の技術であるため詳細な説明は省略するが、例えば勾配降下法、確率的勾配降下法又は誤差逆伝播法等の手法が用いられ得る。
図5は、本実施の形態に係るサーバ装置3が行う教師データ生成処理の手順を示すフローチャートである。本実施の形態に係るサーバ装置3の処理部31の第1画像取得部31aは、人が所定の行動を行っている姿を一の方向から撮影した第1画像を取得する(ステップS1)。なお第1画像は、例えば本情報処理システムの開発者等が予め撮影を行うことで生成される。サーバ装置3は、開発者等が撮影した第1画像を、通信又は記録媒体等を介して取得して記憶部23に記憶する。第1画像取得部31aは記憶部23に記憶された第1画像を読み出すことによって、第1画像を取得することができる。
処理部31の人検出部31bは、ステップS1にて取得した第1画像に写された人を検出する処理を行う(ステップS2)。このときに人検出部31bは、例えば「YOLO」の学習モデルを用いて画像から人を検出する処理を行う。処理部31の骨格情報抽出部31cは、ステップS2による人検出の結果に基づいて、画像に写された人の骨格情報を抽出する処理を行う(ステップS3)。このときに骨格情報抽出部31cは、例えば「Open Pose」の学習モデルを用いて骨格情報を抽出する処理を行う。処理部31の3次元オブジェクト生成部31dは、ステップS3にて抽出した骨格情報に基づいて、第1画像に写された人が行っている行動を3次元仮想空間内で行う3次元オブジェクトを生成する処理を行う(ステップS4)。このときに3次元オブジェクト生成部31dは、例えば予め用意された人の形状の3次元オブジェクトに対して、ステップS3にて抽出した骨格情報に対応する姿勢を取らせることで、第1画像に写された人の行動を行う3次元オブジェクトを生成する。
次いで、処理部31の第2画像取得部31eは、ステップS4にて生成した3次元オブジェクトを3次元仮想空間内で仮想カメラにより撮影することにより、複数方向から3次元オブジェクトを撮影した複数の第2画像を取得する(ステップS5)。人検出部31bは、ステップS5にて取得した複数の第2画像にについて、各第2画像に写された人を検出する処理をそれぞれ行う(ステップS6)。骨格情報抽出部31cは、ステップS6による人検出の結果に基づいて、各第2画像に写された人の骨格情報を抽出する処理をそれぞれ行う(ステップS7)。
次いで、処理部31の教師データ生成部31fは、ステップS7にて抽出された骨格情報と、この骨格情報を有する人が行っている行動の種別を示すラベル等の情報とを対応付けることで、学習モデルの学習処理に用いる教師データを生成する(ステップS8)。なお教師データ生成部31fは、1つの第2画像について少なくとも1つの教師データを生成することができる。また教師データ生成部31fは、第1画像から抽出した骨格情報についても同様に、行動の種別を対応付けて教師データとしてもよい。教師データ生成部31fは、ステップS8にて生成した教師データを記憶部32の教師データ記憶部32bに記憶して(ステップS9)、処理を終了する。
なおサーバ装置3は、予め撮影された多数の第1画像に対して上記の処理を行い、教師データ記憶部32bに多数の教師データを記憶した蓄積する。教師データ記憶部32bに十分な量の教師データが蓄積された後、サーバ装置3の学習モデル生成部31gは、教師データを用いた教師あり学習の処理を行うことによって、骨格情報に基づいて人の行動を認識する(人の行動を分類する)学習モデルを生成する。生成された学習モデルはカメラ1に提供され、カメラ1はこの学習モデルを用いて、撮影した画像に写された人の行動を認識する処理を行う。
<行動認識処理>
本実施の形態に係る情報処理システムでは、サーバ装置3により生成された人の行動を認識する学習モデルは、カメラ1に搭載される。カメラ1は、学習済の学習モデルを利用し、自身が撮影した画像に写された人の行動認識処理を行い、行動認識の結果に関する情報を画像に付してサーバ装置3へ送信する。
図6は、本実施の形態に係るカメラ1の構成を示すブロック図である。本実施の形態に係るカメラ1は、いわゆるエッジカメラ、AI(Artificial Intelligence)エッジカメラ又はエッジAIカメラ等の名称で呼ばれ得る装置であり、画像の撮影を行う撮影部11と共に、高度な演算処理を行う情報処理装置20を装置内に備えている。撮影部11は、レンズ及び撮像素子等を備えて構成されている。撮像素子は、例えばCCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)等であり、レンズが収束した像を撮影し、撮影により得られる画像のデータを出力する。
情報処理装置20は、カメラ1の各部の動作を制御すると共に、撮影部11の撮影により得られた画像を利用する種々の処理を行う。本実施の形態に係る情報処理装置20は、処理部21、入出力部22、記憶部23及び通信部24等を備えて構成されている。処理部21は、CPU、MPU又はGPU等の演算処理装置、ROM及びRAM等を用いて構成されている。処理部21は、記憶部23に記憶されたプログラム23aを読み出して実行することにより、撮影部11による撮影を制御する処理、及び、撮影により得られた画像に写された人の行動を認識する処理等の種々の処理を行う。
入出力部22は、撮影部11との間でデータの入出力を行う。入出力部22は、例えば信号線を介して撮影部11と接続されており、信号線を介したシリアル通信又はパラレル通信等によりデータの入出力を行う。入出力部22は、処理部21から与えられた制御命令等のデータを撮影部11へ送信すると共に、撮影部11から入力された画像のデータを処理部21へ与える。
記憶部23は、例えばフラッシュメモリ又はEEPROM(Electrically Erasable Programmable Read Only Memory)等の不揮発性のメモリ素子を用いて構成されている。記憶部23は、処理部21が実行する各種のプログラム、及び、処理部21の処理に必要な各種のデータを記憶する。本実施の形態において記憶部23は、処理部21が実行するプログラム23aと、画像に写された人の行動認識を行う学習済の学習モデル23bとを記憶する。また記憶部23は、撮影部11が撮影した画像のデータ等を記憶してもよい。
本実施の形態においてプログラム23aは、例えばカメラ1の製造段階において記憶部23に書き込まれる。また例えばプログラム23aは、遠隔のサーバ装置等が配信するものをカメラ1が通信にて取得してもよい。また例えばプログラム23aは、メモリカード又は光ディスク等の記録媒体に記録された態様で提供され、カメラ1は記録媒体からプログラム23aを読み出して記憶部23に記憶してもよい。また例えばプログラム23aは、記録媒体に記録されたものを書込装置が読み出してカメラ1の記憶部23に書き込んでもよい。プログラム23aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体に記録された態様で提供されてもよい。
学習モデル23bは、上述の生成処理によりサーバ装置3が生成したものである。学習モデル23bは、例えばプログラム23aと共に提供され、プログラム23aと共に記憶部23に記憶される。ただし、学習モデル23bはプログラム23aとは別に提供されてもよく、この場合にカメラ1は、例えばサーバ装置3との通信を行って、サーバ装置3が送信する学習モデル23bを取得して記憶部23に記憶してもよい。
通信部24は、携帯電話通信網、無線LAN又はインターネット等のネットワークNを介して、種々の装置との間で通信を行う。本実施の形態において通信部24は、サーバ装置3との間で通信を行い、撮影部11が撮影した画像のデータをサーバ装置3へ送信する。通信部24は、処理部21から与えられたデータを他の装置へ送信すると共に、他の装置から受信したデータを処理部21へ与える。
また本実施の形態に係るカメラ1の処理部21には、記憶部23に記憶されたプログラム23aを処理部21が読み出して実行することにより、人検出部21a、骨格情報抽出部21b、行動認識部21c及び画像送信処理部21d等がソフトウェア的な機能部として実現される。
人検出部21aは、撮影部11が撮影した画像に写された人を検出する処理を行う。本実施の形態においてカメラ1が備える人検出部31bは、上述のサーバ装置3の人検出部31bと同様の方法で、画像に写された人を検出する処理を行う。例えば人検出部21aは、深層学習がなされた学習モデルを用いて画像からの人等の物体検出を行う「YOLO」と呼ばれる技術を用いて人を検出する処理を行う。また人検出部21aは、撮影部11が撮影した画像から人が検出されなかった場合、即ち画像に人が写されていない場合、この画像を除去して後続の処理の対象から外してもよい。
骨格情報抽出部21bは、画像から検出された人の骨格情報を抽出する処理を行う。本実施の形態においてカメラ1が備える骨格情報抽出部21bは、上述のサーバ装置3の骨格情報抽出部31cと同様の方法で、人の骨格情報を抽出する処理を行う。例えば骨格情報抽出部21bは、深層学習がなされた学習モデルを用いて骨格情報を抽出する「Open Pose」と呼ばれる技術を用いて人の骨格情報を抽出する処理を行うことができる。骨格情報抽出部21bは、画像に写された1人の人について骨格を18個の点で表し、各点を2次元平面におけるX座標及びY座標で表した情報を骨格情報として画像から抽出する。
行動認識部21cは、骨格情報抽出部21bが抽出した骨格情報に基づいて、画像に写された人の行動を認識する処理を行う。本実施の形態において行動認識部21cは、サーバ装置3により予め学習がなされて記憶部23に記憶された学習モデル23bを用いて、人の行動を認識する処理を行う。行動認識部21cは、骨格情報抽出部21bが画像から抽出した骨格情報を学習モデル23bへ入力し、これに応じて学習モデル23bが出力する行動認識結果の情報を取得する。本実施の形態において学習モデル23bは、図3に示すようにN種類の行動について確信度を出力する構成であり、行動認識部21cは、学習モデル23bが出力するN個の確信度を取得する。行動認識部21cは、取得したN個の確信度のうち値が最も大きいものがいずれであるかを判定し、最も大きい確信度に対応する行動を、画像に写された人が行っている行動と判断する。
画像送信処理部21dは、撮影部11が撮影した画像をサーバ装置3へ送信する処理を行う。また本実施の形態に係る画像送信処理部21dは、行動認識部21cによる行動認識の結果を取得し、行動認識結果に関する情報を例えばメタデータとして画像に付してサーバ装置3へ送信する。また画像送信処理部21dは、人検出部21aによる人の検出結果、又は、骨格情報抽出部21bが抽出した骨格情報等の種々の情報を画像に付してサーバ装置3へ送信してよい。また画像に付される情報には、画像の撮影日時、カメラ1に付されたカメラID、及び、カメラ1が設置された施設100の施設ID等の情報が含まれ得る。
なお本実施の形態においてカメラ1は、撮影部11が撮影した画像に写された人の行動認識の処理を行うが、カメラ1が行う処理は行動認識に限らない。カメラ1は、撮影部11が撮影した画像から例えば人の顔を検出する処理、顔の表情を検出する処理、顔の向きを検出する処理、又は、画像に写された個人を識別する処理等の種々の処理を行ってよく、これらの一又は複数の処理結果を画像に付してサーバ装置3へ送信してよい。
図7は、本実施の形態に係るカメラ1が行う処理の手順を示すフローチャートである。本実施の形態に係るカメラ1の処理部21は、撮影部11の動作を制御することによって、撮影部11による撮影を行う(ステップS21)。処理部21の人検出部21aは、ステップS21にて撮影した画像に対して人検出の処理を行う(ステップS22)。人検出部21aは、ステップS22の人検出の処理結果に基づいて、ステップS21にて撮影された画像に人が含まれているか否かを判定する(ステップS23)。撮影された画像に人が含まれていない場合(S23:NO)、人検出部21aは、この画像を破棄して(ステップS24)、ステップS21へ処理を戻す。
撮影された画像に人が含まれている場合(S23:YES)、処理部21の骨格情報抽出部21bは、ステップS22にて行った人検出の結果に基づいて、撮影された画像に写された人の骨格情報を抽出する処理を行う(ステップS25)。処理部21の行動認識部21cは、ステップS25にて抽出した骨格情報に基づいて、画像に写された人の行動を認識する処理を行う(ステップS26)。このときに行動認識部21cは、ステップS25にて抽出した骨格情報を、記憶部23に記憶された学習モデル23bへ入力し、学習モデル23bが出力するN種類の行動についての確信度を取得し、最も確信度が高い行動がいずれであるかを判断することで、画像に写された人の行動を判断する。処理部21の画像送信処理部21dは、ステップS26の行動認識の結果に関する情報を画像に付してサーバ装置3へ送信し(ステップS27)、ステップS21へ処理を戻す。
<まとめ>
以上の構成の本実施の形態に係るサーバ装置3は、人を所定の方向(少なくとも1つの方向)から撮影した第1画像を取得し、取得した第1画像に基づいて人の3次元仮想空間における3次元オブジェクトを生成し、3次元オブジェクトを第1画像の撮影方向とは異なる方向から撮影した第2画像を取得し、取得した第2画像と人の行動に関する情報とを対応付けた教師データを生成し、生成した教師データを用いて画像に写された人の行動に関する情報を出力する学習モデルを生成する。第1画像に基づいて生成した3次元オブジェクトを基に第2画像を取得して教師データを生成することにより、第1画像とは異なる方向で撮影を行った画像を基に教師データを生成することができるため、より精度のよい学習モデルを生成することが期待できる。
また本実施の形態に係るサーバ装置3は、生成した3次元オブジェクトを複数の方向から撮影した複数の第2画像を取得する。これによりサーバ装置3は、より多くの画像を取得して教師データを生成することができ、より精度のよい学習モデルを生成することが期待できる。
また本実施の形態に係るサーバ装置3は、取得した第1画像に写された人を検出し、検出した人に基づいて3次元仮想空間における3次元オブジェクトを生成する。これによりサーバ装置3は、第1画像に写された人の3次元オブジェクトを複数の方向から撮影することで、第1画像に写された人に相当するものを複数の方向から撮影した第2画像を取得することができる。
また本実施の形態に係るサーバ装置3は、第2画像に写された人(3次元オブジェクト)の骨格情報を抽出し、抽出した骨格情報とこの人の行動に関する情報とを対応付けた教師データを生成する。第2画像と行動に関する情報とを対応付けて教師データとする場合と比較して、骨格情報を用いることでデータ量を低減することができ、学習モデルの生成処理の高速化等が期待できる。
また本実施の形態に係るサーバ装置3が生成する学習モデルは、人の骨格情報を入力として受け付けて、人の行動の種類を分類する。これによりカメラ1等の装置は、生成された学習モデルを用い、人の骨格情報に基づいて行動の種類を判断する処理を行うことができる。
なお本実施の形態においては、生成された学習モデルをカメラ1が利用した行動認識の処理を行う構成としたが、これに限るものではなく、サーバ装置3が学習モデルを利用してカメラ1から受信した画像に基づく人の行動認識の処理を行ってもよい。また学習モデルの生成処理をサーバ装置3が行う構成としたが、これに限るものではなく、カメラ1が学習モデルの生成処理を行ってもよい。
<実施の形態2>
実施の形態2に係る情報処理システムは、時系列的に連続する複数の画像(動画像)から人の行動認識を行う。例えばフレームレートが30fpsのカメラで人の行動を撮影した場合には、1秒間の撮影で30枚の画像が得られる。実施の形態2に係る情報処理システムでは、例えば人の行動を2秒間撮影して得られる時系列的な60枚の画像に対して人検出及び骨格情報の抽出等の処理をそれぞれ行い、60枚分の骨格情報を基に人の行動認識を行う。
図8は、実施の形態2に係る情報処理システムが行う行動認識処理を説明するための模式図である。図示の例では、時刻1から時刻tまでのt枚の画像に基づいて人の行動認識を行うことを想定したものである。また1つの画像には1人の人が写されているものとする。時刻1に撮影された画像から骨格情報としてm個の点の2次元座標(x11,y11)、(x21,y21)、…、(xm1,ym1)を得ることができ、合計で2×m個の値を得ることができる。時刻2に撮影された画像についても同様に、骨格情報としてm個の点の2次元座標(x12,y12)、(x22,y22)、…、(xm2,ym2)を得ることができる。時刻tに撮影された画像についても骨格情報としてm個の点の2次元座標(x1t,y1t)、(x2t,y2t)、…、(xmt,ymt)を得ることができる。これにより時刻1から時刻tまでの画像から、2×m×t個の値を得ることができる。
更に、時刻1から時刻tまでの画像から抽出した骨格情報に基づいて、骨格情報の時間的な変化を算出することができる。例えば時刻1から時刻2への骨格情報の変化は、時刻1における骨格情報の各座標値と、時刻2における骨格情報の各座標値との差分として算出される。例えば時刻1における骨格情報の1つである座標値x11から時刻2における対応する骨格情報の座標値x12への骨格情報の変化dx11は、dx11=x12-x11として算出することができる。時刻1から時刻2への骨格情報の変化として2×m×t個の値を得ることができる。同様にして時刻2から時刻3への骨格情報の変化として2×m×t個の値を得ることができ、時刻(t-1)から時刻tへの骨格情報の変化として2×m×t個の値を得ることができる。これにより時刻1から時刻tまでの画像から、骨格情報の変化として2×m×(t-1)個の値を得ることができる。図8の下段には、骨格情報の変化を行列として表したものが示されている。
実施の形態2に係る情報処理システムにおいては、人の行動認識を行う学習モデルの入力情報として、図8の下段に行列として示した情報が入力される。学習モデルの出力情報は、図3と同様に、N種類の行動についての確信度である。
ただし、図8の下段に示した行列を入力情報とした場合、行列の要素となる値は2×m×(t-1)個である。例えば骨格情報として18個の点を抽出し(m=18)、30fpsで2秒間の撮影を行った60枚の画像を用いて人の行動認識を行う場合、行列の要素となる値は2×18×(60-1)=2124個である。入力値の数が増すほど、学習モデルの学習処理及び学習モデルを用いた行動認識処理に要する時間が増す可能性がある。そこで、上記の骨格情報の変化に関する情報の情報数を低減する処理、例えば入力値の数を2124個から所定数(80個程度)に低減する処理を行い、学習モデルへ入力する情報の数を低減してもよい。入力情報の数を低減する方法には、例えば主成分分析による次元数の削減の方法が用いられ得るが、これに限るものではなく、どのような方法が採用されてもよい。
実施の形態2に係る情報処理システムのサーバ装置3は、予め撮影された時系列的に連続する複数の第1画像について人検出及び骨格情報の抽出を行い、抽出した複数の骨格情報に基づいて、時系列的に変化する3次元オブジェクトを生成する。サーバ装置3は、生成した3次元オブジェクトに対して、3次元仮想空間内で複数の方向から仮想カメラによる撮影を行い、時系列的に連続する複数の第2画像を取得する。サーバ装置3は、時系列的に連続する複数の第2画像について、同様に人検出及び骨格情報の抽出を行い、更に骨格情報の変化を算出する。更にサーバ装置3は、算出した骨格情報の変化について、主成分分析等による次元数削減の処理を行い、骨格情報の変化に関する情報の数を低減する。サーバ装置3は、情報数を低減した骨格情報の変化に関する情報と、第1画像及び第2画像に写されていた人の行動の種別を示すラベル等の情報とを対応付けた教師データを作成する。サーバ装置3は、複数の教師データを作成して教師データ記憶部32bに記憶して蓄積し、蓄積した多数の教師データを用いて学習モデルの学習(生成)処理を行う。
図9は、実施の形態2に係るサーバ装置3が行う教師データ生成処理の手順を示すフローチャートである。実施の形態2に係るサーバ装置3の処理部31の第1画像取得部31aは、人が所定の行動を行っている姿を一の方向から撮影した時系列的に連続する複数の第1画像を取得する(ステップS41)。処理部31の人検出部31bは、ステップS41にて取得した複数の第1画像に写された人を検出する処理を行う(ステップS42)。処理部31の骨格情報抽出部31cは、ステップS42による人検出の結果に基づいて、複数の第1画像に写された人の骨格情報を抽出する処理を行う(ステップS43)。処理部31の3次元オブジェクト生成部31dは、ステップS43にて抽出した複数の骨格情報に基づいて、第1画像に写された人が行っている時系列的に連続する行動を3次元仮想空間内で行う3次元オブジェクトを生成する処理を行う(ステップS44)。
次いで、処理部31の第2画像取得部31eは、ステップS44にて生成した3次元オブジェクトを3次元仮想空間内で仮想カメラにより撮影することにより、複数方向から3次元オブジェクトを撮影した時系列的に連続する複数の第2画像を取得する(ステップS45)。人検出部31bは、ステップS45にて取得した時系列的に連続する複数の第2画像にについて、各第2画像に写された人を検出する処理をそれぞれ行う(ステップS46)。骨格情報抽出部31cは、ステップS46による人検出の結果に基づいて、各第2画像に写された人の骨格情報を抽出する処理をそれぞれ行う(ステップS47)。
次いで処理部31の教師データ生成部31fは、ステップS47にて抽出した時系列的に連続する複数の骨格情報に基づいて、骨格情報の変化を算出する(ステップS48)。このときに教師データ生成部31fは、骨格情報として抽出される複数の点の2次元座標の差分を算出することで、骨格情報の変化を算出することができる。教師データ生成部31fは、算出した骨格情報の変化について、主成分分析等による次元数削減の処理を行うことによって、骨格情報の変化に関する情報の数を低減する処理を行う(ステップS49)。
次いで教師データ生成部31fは、ステップS49にて情報量が低減された骨格情報の変化に関する情報と、この骨格情報を有する人が行っている行動の種別を示すラベル等の情報とを対応付けることで、学習モデルの学習処理に用いる教師データを生成する(ステップS50)。教師データ生成部31fは、ステップS50にて生成した教師データを記憶部32の教師データ記憶部32bに記憶して(ステップS51)、処理を終了する。
実施の形態2に係る情報処理システムのカメラ1は、撮影部11が撮影した時系列的に連続する複数の画像について人検出及び骨格情報の抽出を行い、更に骨格情報の変化を算出及び情報数の低減を行う。カメラ1は、予めサーバ装置3にて生成された学習モデル23bを記憶部23に記憶しており、情報数を低減した骨格情報の変化に関する情報を学習モデルへ入力し、学習モデルが出力する複数種類の行動についての確信度を取得する。カメラ1は取得した確信度に基づいて撮影された画像に写された人の行動を判断し、この画像に行動認識の結果に関する情報を付してサーバ装置3へ送信する。
なお実施の形態2に係るカメラ1は、撮影した画像に複数の人が写されている場合、時系列的に連続する複数の画像において複数の人を区別し、人毎に骨格情報の抽出及び骨格情報の変化の算出等を行って行動認識の処理を行う必要がある。このため、実施の形態2に係るカメラ1は、撮影した画像から検出した各人について、この人が時系列的に連続する次の画像に写された複数の人のいずれであるかを判定する処理、いわゆる追跡(トラッキング)の処理を行う。画像中の人の追跡処理は、既存の技術であるため詳細な説明は省略するが、例えば画像に写された各人の特徴を示す特徴量、並びに、各人の画像中における位置及びその変化等の情報に基づいて行われ得る。
以上の構成の実施の形態2に係るサーバ装置3は、人を所定の方向(少なくとも1つの方向)から時系列的に撮影した複数の第1画像を取得し、取得した複数の第1画像に基づいて人の3次元仮想空間における3次元オブジェクトを生成し、3次元オブジェクトを第1画像の撮影方向とは異なる複数の方向から時系列的に撮影した複数の第2画像を取得し、取得した第2画像に写された人の時系列的な骨格情報の変化を抽出し、抽出した骨格情報の変化と人の行動に関する情報とを対応付けた教師データを生成する。時系列的に撮影した画像に基づいて教師データを作成し、作成した教師データを用いて学習モデルを生成することにより、サーバ装置3はより精度のよい学習モデルを生成することが期待できる。
また実施の形態2に係るサーバ装置3は、第2画像から抽出した骨格情報の変化に関する情報の情報量(情報の数)を低減する処理を行う。これにより、学習モデルへ入力する情報の量を低減することができ、サーバ装置3による学習モデルの学習(生成)処理及びカメラ1による学習モデルを用いた行動認識の処理等の高速化が期待できる。
なお本実施の形態においては、時系列的な複数の第2画像から抽出した複数の骨格情報から骨格情報の変化(差分)を算出し、骨格情報の変化を学習モデルへの入力としたが、これに限るものではなく、複数の第2画像から抽出した複数の骨格情報を学習モデルへの入力としてもよい。またこの場合に、複数の骨格情報に対して主成分分析による次元数の削減等の処理を行って情報の量を低減してもよい。
また、実施の形態2に係る情報処理システムのその他の構成は、実施の形態1に係る情報処理システムと同様であるため、同様の箇所には同じ符号を付し、詳細な説明を省略する。
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
一実施形態に係る学習モデル生成方法は、情報処理装置が、オブジェクトを少なくとも1つの方向から撮影した第1画像を取得し、取得した第1画像に基づいて、前記オブジェクトの3次元仮想空間における3次元オブジェクトを生成し、生成した前記3次元オブジェクトを前記方向とは異なる方向から撮影した第2画像を取得し、取得した第2画像に前記オブジェクトとして写された人の骨格情報を抽出し、抽出した骨格情報と、前記オブジェクトの行動に関する情報とを対応付けた教師データを生成し、生成した教師データを用いて、画像に写されたオブジェクトの行動に関する情報を出力する学習モデルを生成する。