(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-06
(45)【発行日】2025-01-15
(54)【発明の名称】検出装置、検出方法及びプログラム
(51)【国際特許分類】
G08G 1/127 20060101AFI20250107BHJP
B60R 1/29 20220101ALI20250107BHJP
【FI】
G08G1/127 A
B60R1/29
(21)【出願番号】P 2022563525
(86)(22)【出願日】2020-11-20
(86)【国際出願番号】 JP2020043394
(87)【国際公開番号】W WO2022107312
(87)【国際公開日】2022-05-27
【審査請求日】2023-05-17
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100110928
【氏名又は名称】速水 進治
(72)【発明者】
【氏名】川合 諒
【審査官】佐々木 佳祐
(56)【参考文献】
【文献】特開2016-062414(JP,A)
【文献】特開2020-138701(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G08G 1/00-99/00
B60R 1/29
(57)【特許請求の範囲】
【請求項1】
移動体の内部に存在する設備の位置を示す設備情報を取得する設備情報取得手段と、
前記移動体の内部を示す画像に基づき前記移動体の内部に存在する人物の位置を特定し、前記人物の位置を示す人物情報を生成する人物情報生成手段と、
前記設備情報と前記人物情報とに基づき、前記移動体の内部で起きている危険状態を検出する検出手段と、
を有する検出装置。
【請求項2】
前記人物情報生成手段は、前記人物の位置を示す前記人物情報として、人物の身体の所定箇所の位置を示す情報を生成する請求項1に記載の検出装置。
【請求項3】
前記人物情報生成手段は、前記設備情報に基づき、前記設備の位置と前記人物の位置との相対的な位置関係を示す前記人物情報を生成する請求項1又は2に記載の検出装置。
【請求項4】
前記人物情報生成手段は、前記画像に含まれる人物の骨格構造を検出し、検出した前記人物の骨格構造に基づき前記人物の位置を特定する請求項1から3のいずれか1項に記載の検出装置。
【請求項5】
前記人物情報生成手段は、前記画像に含まれる人物の骨格構造を検出し、検出した前記人物の骨格構造に基づき人物の姿勢を特定し、前記人物の姿勢をさらに示す前記人物情報を生成する請求項1から4のいずれか1項に記載の検出装置。
【請求項6】
前記人物情報生成手段は、前記画像に含まれる人物の骨格構造を検出し、前記人物の骨格構造の中の所定の複数箇所に基づき基準点を特定し、前記基準点の位置の時間変化をさらに示す前記人物情報を生成する請求項1から5のいずれか1項に記載の検出装置。
【請求項7】
前記検出手段は、前記移動体の状態を示す移動体状態情報を取得し、前記移動体の状態に応じた検出方法で、前記危険状態を検出する請求項1から6のいずれか1項に記載の検出装置。
【請求項8】
前記移動体の内部に存在する設備は、つり革、手すり及び座席の中の少なくとも1つを含む請求項1から7のいずれか1項に記載の検出装置。
【請求項9】
前記検出手段は、
前記移動体の内部における前記設備の位置と前記移動体の内部における前記人物の位置とに基づき前記人物による前記設備の使用状況を推定し、当該推定の結果に基づき前記移動体の内部で起きている危険状態を検出する請求項1から8のいずれか1項に記載の検出装置。
【請求項10】
コンピュータが、
移動体の内部に存在する設備の位置を示す設備情報を取得し、
前記移動体の内部を示す画像に基づき前記移動体の内部に存在する人物の位置を特定し、前記人物の位置を示す人物情報を生成し、
前記設備情報と前記人物情報とに基づき、前記移動体の内部で起きている危険状態を検出する検出方法。
【請求項11】
コンピュータを、
移動体の内部に存在する設備の位置を示す設備情報を取得する設備情報取得手段、
前記移動体の内部を示す画像に基づき前記移動体の内部に存在する人物の位置を特定し、前記人物の位置を示す人物情報を生成する人物情報生成手段、
記設備情報と前記人物情報とに基づき、前記移動体の内部で起きている危険状態を検出する検出手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検出装置、検出方法及びプログラムに関する。
【背景技術】
【0002】
移動体の内部で起きている危険状態(事故が起き得る状態や事故が起きた状態)を早期に検出し、必要な措置を取ることで、移動体の内部での事故(転倒等)を抑制したり、事故が深刻化することを抑制したりできる。特許文献1は、移動体の内部での乗客の転倒等を回避する技術を開示している。具体的には、乗客の姿勢、位置、行動、つり革や握り棒の把持等を検出し、検出結果に応じた処理を実行することが開示されている。なお、非特許文献1には、人物の骨格構造を検出する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】Zhe Cao, Tomas Simon, Shih-En Wei, Yaser Sheikh, "Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields", The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017, P. 7291-7299
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1は、乗客の姿勢、位置、行動、つり革や握り棒の把持等を検出する具体的な実現手段が開示されていない。移動体の内部での事故(転倒等)や事故の深刻化を精度よく回避するためには、検出対象を精度よく検出する必要がある。
【0006】
本発明は、移動体の内部で起きている危険状態を精度よく検出することを課題とする。
【課題を解決するための手段】
【0007】
本発明によれば、
移動体の内部に存在する設備の位置を示す設備情報を取得する設備情報取得手段と、
前記移動体の内部を示す画像に基づき前記移動体の内部に存在する人物の位置を特定し、前記人物の位置を示す人物情報を生成する人物情報生成手段と、
前記設備情報と前記人物情報とに基づき、前記移動体の内部で起きている危険状態を検出する検出手段と、
を有する検出装置が提供される。
【0008】
また、本発明によれば、
コンピュータが、
移動体の内部に存在する設備の位置を示す設備情報を取得し、
前記移動体の内部を示す画像に基づき前記移動体の内部に存在する人物の位置を特定し、前記人物の位置を示す人物情報を生成し、
前記設備情報と前記人物情報とに基づき、前記移動体の内部で起きている危険状態を検出する検出方法が提供される。
【0009】
また、本発明によれば、
コンピュータを、
移動体の内部に存在する設備の位置を示す設備情報を取得する設備情報取得手段、
前記移動体の内部を示す画像に基づき前記移動体の内部に存在する人物の位置を特定し、前記人物の位置を示す人物情報を生成する人物情報生成手段、
記設備情報と前記人物情報とに基づき、前記移動体の内部で起きている危険状態を検出する検出手段、
として機能させるプログラムが提供される。
【発明の効果】
【0010】
本発明によれば、移動体の内部で起きている危険状態を精度よく検出することが可能となる。
【図面の簡単な説明】
【0011】
【
図1】検出装置のハードウエア構成例を示す図である。
【
図7】検出装置の処理の流れの一例を示すフローチャートである。
【
図8】検出装置の処理の流れの一例を示すフローチャートである。
【
図9】検出装置の処理の流れの一例を示すフローチャートである。
【
図16】身長画素数算出方法を説明するためのヒストグラムである。
【
図19】身長画素数算出方法を説明するための図である。
【
図20】身長画素数算出方法を説明するための図である。
【
図21】身長画素数算出方法を説明するための図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【0013】
<第1の実施形態>
「概要」
本実施形態の検出装置は、移動体の内部に存在する設備の位置を示す設備情報と、移動体の内部に存在する人物の位置を示す人物情報とに基づき算出される設備の位置と人物の位置との相対的な位置関係に基づき、移動体の内部で起きている危険状態を検出する。設備の位置と人物の位置との相対的な位置関係に基づき判断することで、移動体の内部で起きている危険状態を精度よく検出することが可能となる。
【0014】
また、本実施形態の検出装置は、カメラ等で移動体の内部を撮影した画像(イメージセンサを用いて生成された画像)に含まれる人物の骨格構造を検出し、検出した人物の骨格構造に基づき人物の位置、姿勢等の人物に関連する事項を特定する。カメラ等で生成された画像に含まれる人物の骨格構造に基づき人物の位置、姿勢などを検出する手法においては、照明条件の変化に頑健な手法がいくつか知られている。本実施形態の検出装置のように、カメラ等で生成された画像に含まれる人物の骨格構造を検出し、当該人物の骨格構造に基づき人物の位置、姿勢などを検出することで、照明条件の変化に頑健な解析が実現される。そして、照明の状態に関わらず移動体の内部で起きている危険状態を精度よく検出することが可能となる。
【0015】
「構成」
次に、検出装置の構成を説明する。まず、検出装置のハードウエア構成の一例を説明する。検出装置の各機能部は、任意のコンピュータのCPU(Central Processing Unit)
、メモリ、メモリにロードされるプログラム、そのプログラムを格納するハードディスク等の記憶ユニット(あらかじめ装置を出荷する段階から格納されているプログラムのほか、CD(Compact Disc)等の記憶媒体やインターネット上のサーバ等からダウンロードされたプログラムをも格納できる)、ネットワーク接続用インターフェイスを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。
【0016】
図1は、検出装置のハードウエア構成を例示するブロック図である。
図1に示すように、検出装置は、プロセッサ1A、メモリ2A、入出力インターフェイス3A、周辺回路4A、バス5Aを有する。周辺回路4Aには、様々なモジュールが含まれる。検出装置は周辺回路4Aを有さなくてもよい。なお、検出装置は物理的及び/又は論理的に分かれた複数の装置で構成されてもよいし、物理的及び/又は論理的に一体となった1つの装置で構成されてもよい。検出装置が物理的及び/又は論理的に分かれた複数の装置で構成される場合、複数の装置各々が上記ハードウエア構成を備えることができる。
【0017】
バス5Aは、プロセッサ1A、メモリ2A、周辺回路4A及び入出力インターフェイス3Aが相互にデータを送受信するためのデータ伝送路である。プロセッサ1Aは、例えばCPU、GPU(Graphics Processing Unit)などの演算処理装置である。メモリ2Aは、例えばRAM(Random Access Memory)やROM(Read Only Memory)などのメモリである。入出力インターフェイス3Aは、入力装置、外部装置、外部サーバ、外部センサ、カメラ等から情報を取得するためのインターフェイスや、出力装置、外部装置、外部サーバ等に情報を出力するためのインターフェイスなどを含む。入力装置は、例えばキーボード、マウス、マイク、物理ボタン、タッチパネル等である。出力装置は、例えばディスプレイ、スピーカ、プリンター、メーラ等である。プロセッサ1Aは、各モジュールに指令を出し、それらの演算結果をもとに演算を行うことができる。
【0018】
次に、検出装置の機能構成を説明する。検出装置は、移動体に搭載される装置である。移動体の一例としては、車両(バス等)、電車、ロープウェイ、エレベータ、船、飛行機等が例示されるが、これらに限定されない。検出装置は、内部に存在する人物が立った状態のまま移動することがある移動体への搭載・利用に好適である。移動体は、システムが移動体の移動動作(発進、停止、加速、減速、進行方向変更等)を制御する機能(自動運転機能)を有するものであってもよいし、運転手等の人物が移動動作を制御する機能(手動運転機能)を有するものであってもよいし、その両方の機能を備えたものでもよい。
【0019】
図2に、検出装置10の機能ブロック図の一例を示す。図示するように、検出装置10は、人物情報生成部11と、設備情報取得部12と、検出部13と、出力部14とを有する。
【0020】
設備情報取得部12は、移動体の内部に存在する設備の位置を示す設備情報を取得する。設備情報で位置を示される設備は、例えば移動体の内部での事故防止のために設けられた設備であり、つり革、手すり及び座席の中の少なくとも1つを含むことができる。その他、設備情報で位置を示される設備は、例えば移動体の内部での事故に関わる可能性がある設備であり、ドアや窓等が例示される。なお、ここでの例示はあくまで一例であり、設備情報で位置を示される設備はこれらに限定されない。設備情報は、各設備の種類を示す情報(設備の名称、識別情報等)と、各設備の位置とを紐付けた情報であってもよい。
【0021】
設備の位置は、移動体の所定位置を原点とし、所定の方向にx軸、y軸及びz軸をとった3次元座標系(以下、「ワールド座標系」という場合がある)の座標で示される。設備情報では、各設備の代表点(1点又は複数点)の座標で各設備の位置を示してもよい。代表点の定め方は設計的事項である。その他、設備情報では、ワールド座標系において各設備が占める空間を示してもよい。各設備が占める空間は、周知のあらゆる技術を利用して示すことができる。例えば、各設備が占める空間は、各設備の外面上の複数の点の座標で示されてもよいし、各設備の外面を示す関数で示されてもよいし、その他の手法で示されてもよい。
【0022】
次に、設備情報取得部12が設備情報を取得する手法を説明する。設備情報取得部12は、以下の第1乃至第3の取得例のいずれかに基づき、設備情報を取得することができる。
【0023】
-第1の取得例-
当該例では、予め各設備の位置を示す設備情報が生成され、検出装置10からアクセス可能な記憶装置内に記憶されている。そして、設備情報取得部12は、当該記憶装置に記憶されている設備情報を取得する。
【0024】
-第2の取得例-
当該例では、設備情報取得部12は、カメラが生成した移動体の内部を示す画像(イメージセンサを用いて生成された画像)を解析し、画像内の各設備を検出するとともに、検出した各設備の位置や種類を特定する。設備情報取得部12は、カメラが生成した画像をリアルタイム処理で取得し、解析して、各設備の最新の位置を特定する。検出装置10とカメラとは、有線及び/又は無線で通信可能に接続されている。
【0025】
カメラは、移動体の内部における位置及び向き(撮影方向(光軸方向)の向き)が固定されていてもよいし、位置は固定で向きは可変であってもよい。その他、カメラは移動体の内部で移動可能に構成され、位置及び向きを変えながら撮影可能であってもよい。位置を固定されたカメラの向きを変更する手段や向きの変化の態様(定期的に所定の方向に所定のふり幅でスイング等)は設計的事項であり、従来のあらゆる技術を採用できる。また、移動体の内部においてカメラを移動させる手段(レーンに沿って同じ位置を繰り返し移動、自律移動手段を備え所定のコンピュータ制御に基づき移動等)は特段制限されず、従来のあらゆる技術を採用できる。
【0026】
画像を解析して画像内の各設備を検出する手段は特段制限されないが、例えば予め各設備の外観の特徴量が登録されており、当該特徴量を画像内で検出することで実現されてもよい。また、画像内で検出した各設備の画像内の位置から移動体の内部の位置を特定する手段(画像座標系からワールド座標系への変換手段)は特段制限されず、従来のあらゆる技術を採用できる。
【0027】
-第3の取得例―
当該例では、第1の取得例と第2の取得例とを組み合わせる。具体的には、移動体の内部での位置が不変である設備の位置を示す設備情報は第1の取得例で取得し、移動体の内部での位置が可変である設備の位置を示す設備情報は第2の取得例で取得する。移動体の内部での位置が不変である設備は、座席、手すり等が例示される。移動体の内部での位置が可変である設備は、つり革、収納したり折り畳んだりして形状や状態や位置が可変な座席(補助座席等)等が例示される。
【0028】
人物情報生成部11は、カメラが生成した移動体の内部を示す画像(イメージセンサを用いて生成された画像)を解析して当該画像に含まれる人物の骨格構造を検出し、検出した骨格構造に基づき検出した人物に関する各種情報を生成する。人物情報生成部11は、カメラが生成した画像をリアルタイム処理で取得し、解析して、人物に関する各種情報を生成する。検出装置10とカメラとは、有線及び/又は無線で通信可能に接続されている。カメラの説明は上述したので、ここでの説明は省略する。
【0029】
人物の骨格構造の検出は、非特許文献1に開示のOpenPose等の骨格検出技術を用いて実現される。検出される骨格構造は、関節等の特徴的な点である「キーポイント」と、キーポイント間のリンクを示す「ボーン(ボーンリンク)」とから構成される。「キーポイント」は例えば人物の「関節」に対応し、「ボーン」は例えば人物の「骨」に対応している。
【0030】
図3は、OpenPose等の骨格検出技術を用いて2次元の画像から検出される骨格構造の一例を示している。
図4乃至
図6は、骨格構造の検出例を示している。
【0031】
人物情報生成部11は、例えば、画像の中からキーポイントとなり得る特徴点を抽出し、キーポイントの画像を機械学習した情報を参照して、人物の各キーポイントを検出する。
図3の例では、人物のキーポイントとして、頭A1、首A2、右肩A31、左肩A32、右肘A41、左肘A42、右手A51、左手A52、右腰A61、左腰A62、右膝A71、左膝A72、右足A81、左足A82を検出する。さらに、これらのキーポイントを連結した人物の骨として、頭A1と首A2を結ぶボーンB1、首A2と右肩A31及び左肩A32をそれぞれ結ぶボーンB21及びボーンB22、右肩A31及び左肩A32と右肘A41及び左肘A42をそれぞれ結ぶボーンB31及びボーンB32、右肘A41及び左肘A42と右手A51及び左手A52をそれぞれ結ぶボーンB41及びボーンB42、首A2と右腰A61及び左腰A62をそれぞれ結ぶボーンB51及びボーンB52、右腰A61及び左腰A62と右膝A71及び左膝A72をそれぞれ結ぶボーンB61及びボーンB62、右膝A71及び左膝A72と右足A81及び左足A82をそれぞれ結ぶボーンB71及びボーンB72を検出する。
【0032】
図4は、起立した状態の人物の骨格構造を検出した例である。
図4では、起立した人物が正面から撮像されており、正面から見たボーンB1、ボーンB51及びボーンB52、ボーンB61及びボーンB62、ボーンB71及びボーンB72がそれぞれ重ならずに検出され、右足のボーンB61及びボーンB71は左足のボーンB62及びボーンB72よりも多少折れ曲がっている。
【0033】
図5は、しゃがみ込んでいる状態の人物の骨格構造を検出した例である。
図5では、しゃがみ込んでいる人物が右側から撮像されており、右側から見たボーンB1、ボーンB51及びボーンB52、ボーンB61及びボーンB62、ボーンB71及びボーンB72がそれぞれ検出され、右足のボーンB61及びボーンB71と左足のボーンB62及びボーンB72は大きく折れ曲がり、かつ、重なっている。
【0034】
図6は、横になっている状態(寝ている状態、倒れている状態等)の人物の骨格構造を検出した例である。
図6では、横になっている人物が左斜め前から撮像されており、左斜め前から見たボーンB1、ボーンB51及びボーンB52、ボーンB61及びボーンB62、ボーンB71及びボーンB72がそれぞれ検出され、右足のボーンB61及びボーンB71と左足のボーンB62及びボーンB72は折れ曲がり、かつ、重なっている。
【0035】
次に、検出された骨格構造に基づき生成される人物に関する情報(人物情報)の例を説明する。人物情報生成部11は、画像内で検出された骨格構造毎に(人物毎に)、以下に例示する複数の人物情報の中の少なくとも1つを生成することができる。
【0036】
-第1の人物情報例-
人物情報生成部11は、上記骨格構造から特徴量を抽出し、人物情報とすることができる。骨格構造の特徴量は、人物の骨格の特徴を示しており、当該特徴量に基づき人物の姿勢を推定したり、異なる画像に含まれる同一人物を特定したり(画像内での人物の追跡)できる。
【0037】
通常、この特徴量は、複数のパラメータを含んでいる。特徴量は、骨格構造の全体の特徴量でもよいし、骨格構造の一部の特徴量でもよく、骨格構造の各部のように複数の特徴量を含んでもよい。特徴量の算出方法は、機械学習や正規化等の任意の方法でよく、正規化として最小値や最大値を求めてもよい。一例として、特徴量は、骨格構造を機械学習することで得られた特徴量や、骨格構造の頭部から足部までの画像上の大きさ等である。骨格構造の大きさは、画像上の骨格構造を含む骨格領域の上下方向の高さや面積等である。上下方向(高さ方向または縦方向)は、画像における上下の方向(Y軸方向)であり、例えば、地面(基準面)に対し垂直な方向である。また、左右方向(横方向)は、画像における左右の方向(X軸方向)であり、例えば、地面に対し平行な方向である。
【0038】
例えば、骨格領域の高さや面積を特徴量とする場合、人物情報生成部11は、骨格構造を含む領域を抽出し、その領域の高さ(画素数)や面積(画素面積)を求める。骨格領域の高さや面積は、抽出される骨格領域の端部の座標や端部のキーポイントの座標から求められる。
【0039】
図4の例では、起立した人物の骨格構造から全てのボーンを含む骨格領域を抽出する。この場合、骨格領域の上端は頭部のキーポイントA1、骨格領域の下端は左足のキーポイントA82、骨格領域の左端は右肘のキーポイントA41、骨格領域の右端は左手のキーポイントA52となる。このため、キーポイントA1とキーポイントA82のY座標の差分から骨格領域の高さを求める。また、キーポイントA41とキーポイントA52のX座標の差分から骨格領域の幅を求め、骨格領域の高さと幅から面積を求める。
【0040】
図5の例では、しゃがみ込んだ人物の骨格構造から全てのボーンを含む骨格領域を抽出する。この場合、骨格領域の上端は頭部のキーポイントA1、骨格領域の下端は右足のキーポイントA81、骨格領域の左端は右腰のキーポイントA61、骨格領域の右端は右手のキーポイントA51となる。このため、キーポイントA1とキーポイントA81のY座標の差分から骨格領域の高さを求める。また、キーポイントA61とキーポイントA51のX座標の差分から骨格領域の幅を求め、骨格領域の高さと幅から面積を求める。
【0041】
図6の例では、横になった人物の骨格構造から全てのボーンを含む骨格領域を抽出する。この場合、骨格領域の上端は左肩のキーポイントA32、骨格領域の下端は左手のキーポイントA52、骨格領域の左端は右手のキーポイントA51、骨格領域の右端は左足のキーポイントA82となる。このため、キーポイントA32とキーポイントA52のY座標の差分から骨格領域の高さを求める。また、キーポイントA51とキーポイントA82のX座標の差分から骨格領域の幅を求め、骨格領域の高さと幅から面積を求める。
【0042】
なお、上述の通り骨格構造の特徴量を用いて各種処理を行うことができるが、複数種類の特徴量の中の各処理に適した特徴量を用いて各種処理を行うことが好ましい。例えば、異なる画像に含まれる同一人物を特定する処理においては、人物の向きや姿勢に影響されない特徴量を使用することが好ましい。
【0043】
-第2の人物情報例-
人物情報生成部11は、検出した人物の骨格構造に基づき移動体の内部に存在する人物の位置を特定し、人物の位置を示す人物情報を生成することができる。人物情報生成部11は、人物の位置を示す人物情報として、人物の身体の所定箇所の位置を示す情報を生成することができる。所定箇所は、骨格構造が示す複数のキーポイント、及び複数のボーンの中の少なくとも1つとすることができる。所定箇所は、例えば右足A81や左足A82であってもよいし、その他であってもよい。なお、右足A81や左足A82が隠れている場合には、既存の手法を用いてその人物の身長を推定し、推定した身長と頭A1の位置から右足A81や左足A82の位置を推定してもよい。画像内で検出した各人物の画像内の位置から移動体の内部の位置を特定する手段(画像座標系からワールド座標系への変換手段)は特段制限されず、従来のあらゆる技術を採用できる。
【0044】
-第3の人物情報例-
人物情報生成部11は、設備情報取得部12が取得した設備情報に基づき、設備の位置と人物の位置との相対的な位置関係を示す人物情報を生成することができる。相対的な位置関係は、ワールド座標系における距離等である。例えば、人物情報生成部11は、人物の身体の所定箇所の位置と、設備情報で示される各設備の位置との距離を求めることができる。なお、設備情報において、ワールド座標系における各設備が占める空間が示されている場合、その空間の中の所定の点(人物の身体の所定箇所の位置との距離が最短となる点等)の位置と人物の身体の所定箇所の位置との距離を求めてもよい。
【0045】
一例として、人物情報生成部11は、右手A51又は左手A52と、手で把持される設備(つり革、手すり等)との距離を算出してもよい。
【0046】
その他、人物情報生成部11は、人物の身体の所定箇所(右足A81や左足A82等)とドアとの距離を算出してもよい。
【0047】
-第4の人物情報例-
人物情報生成部11は、検出した人物の骨格構造に基づき、その人物の姿勢を特定し、人物の姿勢を示す人物情報を生成することができる。特定する姿勢は、立っている、座っている、横になっている(寝ている、倒れている等)等である。人物情報生成部11は、上述した人物の骨格構造の特徴量に基づき、各人物の姿勢を推定することができる。例えば、骨格構造の特徴量と姿勢の識別情報(名称等)とを対応付けた学習データに基づく機械学習で生成された推定モデルを用いて、各骨格構造の人物の姿勢を推定してもよい。
【0048】
-第5の人物情報例-
人物情報生成部11は、検出した人物の骨格構造の中の所定の複数箇所に基づき基準点を特定し、当該基準点の位置(ワールド座標系における座標)の時間変化をさらに示す人物情報を生成することができる。この基準点の位置の時間変化は、例えば人物が移動中であるか、それとも単に揺れたりしているだけか等を判断するために利用される。このため、基準点の特定に用いる複数箇所は、当該検出に好適な箇所となる。例えば、基準点の特定に用いる複数箇所は、下半身に含まれるキーポイント(
図3の右腰A61、左腰A62、右膝A71、左膝A72、右足A81及び左足A82)であってもよいし、骨格構造の全てのキーポイントであってもよいし、その他であってもよい。
【0049】
基準点は、例えば基準点の特定に用いる複数箇所の座標に基づく任意の演算式で求めることができる。例えば、x座標、y座標及びz座標ごとに、基準点の特定に用いる複数箇所の座標の値の平均値を求め、それを基準点の座標としてもよい。
【0050】
検出部13は、設備情報と人物情報とに基づき、移動体の内部で起きている危険状態を検出する。危険状態は、移動体の内部での事故(転倒等)が起きやすい状態、及び移動体の内部で起きた事故(転倒等)の少なくとも一方である。
【0051】
なお、検出部13は、移動体の状態を示す移動体状態情報を取得し、移動体の状態に応じた検出方法で、危険状態を検出してもよい。検出される移動体の状態は、移動中、停止中、ワイパーを使用中、ウインカーを点灯中、ドアが開いた状態、ドアが閉じた状態、窓が開いた状態、窓が閉じた状態、速度の中の少なくとも1つを含む。
【0052】
検出部13は、これら設備を含むように撮影された画像を解析してこれらの状態を検出してもよいし、これらの設備の動作を制御する移動体のシステム(Electronic Control Unit等)から各設備の状態を示す情報を取得してもよい。画像解析で上記状態を検出する
例としては、次のようなものが考えられる。例えば、窓やドア越しに見える移動体の外の景色が変化しているか否かに基づき、移動体が移動中か停止中かを検出してもよい。ワイパーを使用中、ウインカーを点灯中、ドアが開いた状態、ドアが閉じた状態、窓が開いた状態、窓が閉じた状態の検出は、各状態時に固有の各設備の外観の特徴を画像から検出することで、実現することができる。
【0053】
次に、危険状態の検出方法の例を説明する。検出部13は、以下に例示する複数の検出方法の中の少なくとも1つを用いて、危険状態を検出することができる。
【0054】
-第1の検出方法-
検出部13は、移動体の状態が所定の状態であるときに、つり革や手すりを把持せずに立っている人物が存在する状態を、危険状態として検出することができる。
【0055】
移動体の所定の状態は、例えば「移動中」である。単に移動中であっても、安全確保のための急なハンドル操作や減速操作は常に発生する可能性があり、それに起因した慣性力が移動体の中に存在する人物にかかることで、転倒等の事故が生じ得る。
【0056】
移動体の所定の状態は、その他「移動中」かつ「ウインカーが点灯中」であってもよい。ウインカーの点灯は移動体の右左折、停車のための減速、追い越しのための加速等を予告、またはそれらが現に発生していることを示すものであり、それに起因した慣性力が移動体の中に存在する人物にかかることで、転倒等の事故が生じ得る。
【0057】
移動体の所定の状態は、その他「移動中」かつ「ワイパーを使用中」であってもよい。ワイパーを使用している時は雨が降っており、移動体の中が濡れて滑りやすい状態になっている可能性がある。そして、これに起因した事故が生じ得る。
【0058】
移動体の所定の状態は、その他「移動中」、「ウインカーが点灯中」かつ「ワイパーを使用中」であってもよい。
【0059】
立っている人物の検出は、人物の姿勢情報に基づき実現できる。つり革や手すりを把持しているか否かは、その人物の右手A51又は左手A52と、それらの設備(最も近くにあるつり革や手すり等)との距離に基づき特定できる。検出部13は、当該距離が閾値以下である場合にその人物はその設備を把持していると判断し、当該距離が閾値より大である場合にその人物はその設備を把持していないと判断する。
【0060】
なお、この閾値を、移動体の状態に基づき変化させてもよい。例えば、移動体の状態が「ウインカーが点灯中」、「ワイパーを使用中」、「速度V以上で走行中」等のように比較的事故が起りやすい状態となっている場合、この閾値を他の状態時よりも小さくしてもよい。つり革や手すりをしっかり把持している状態と、例えばつり革や手すりに指先をひっかける程度の状態とでは、その人物の右手A51又は左手A52と、それらの設備との距離は異なり得る。具体的には、つり革や手すりをしっかり把持している状態の方が当該距離は小さくなる。そこで、比較的事故が起りやすい状態となっている場合には、この閾値を他の状態時よりも小さくし、「つり革や手すりをしっかり把持している状態」を「つり革や手すりを把持している状態」として検出してもよい。
【0061】
-第2の検出方法-
検出部13は、移動体の状態が所定の状態であるときに、つり革や手すりを把持せずに移動中である人物が存在する状態を、危険状態として検出することができる。移動体の所定の状態は、第1の検出方法で説明した通りである。
【0062】
移動中の人物の検出は、上記第5の人物情報例で説明した基準点の時間変化が所定の条件を満たすか否かに基づき実現できる。所定の条件は、移動中である場合に当該時間変化に現れる特徴(設計的事項)が存在することである。つり革や手すりを把持しているか否かは、第1の検出方法と同様にして特定できる。
【0063】
-第3の検出方法-
検出部13は、移動体の状態が「ドアが開いた状態」であるときにドアの近くで所定時間(設計的事項)以上静止している人物が存在する状態を、危険状態として検出することができる。ドアが開いた状態の場合、ドアを介した乗り降りが行われると考えられる。一方で、この状態の時にドアの近くで所定時間以上静止している人物は、乗り降りの意思はなく、その場でただ単に立っているだけであると考えられる。そのような人物がドアの近くに存在すると、その人物と乗り降りする人物との間で衝突等の事故が起こり得る。
【0064】
ドアの近くで所定時間(設計的事項)以上静止している人物の検出は、ドアと人物との間の距離の時間変化に基づき実現できる。
【0065】
-第4の検出方法-
検出部13は、座席以外で座っている又は横になっている人物が存在する状態を、危険状態として検出することができる。座席以外で座ったり横になったりしている人物は、転倒した人物である可能性がある。また、座席以外で座ったり横になったりしている人物は体調不良であり、移動体の揺れ等で容易に転倒したり、設備に衝突したりする可能性がある。また、座席以外で座ったり横になったりしている人物は他の人物の妨げになり、その人物と他の人物との間で衝突等の事故が起こり得る。
【0066】
座っている状態の人物及び横になっている状態の人物の検出は、人物の姿勢情報に基づき実現できる。そして、座席以外で座ったり横になったりしていることは、その人物と座席との位置関係に基づき特定できる。
【0067】
出力部14は、検出部13により移動体の内部で起きている危険状態が検出された場合、その旨を示す情報を出力する。出力部14は、さらに検出された危険状態の内容(つり革や手すりを把持せずに立っている人物を検出等)を示す情報を出力してもよい。
【0068】
例えば、上記情報が移動体の管理者(運転手や車掌等)に通知されてもよいし、移動体の中に存在するその他の人物(乗客等)に通知されてもよい。通知手段は特段制限されず、ディスプレイ、スピーカ、警告ランプ、投影装置等のあらゆる出力装置を介して実現できる。
【0069】
その他、移動体が自動運転機能を備える場合、当該自動運転を制御するシステムに当該情報が入力されてもよい。当該システムは、入力された情報に基づき移動体の動作を制御する。
【0070】
次に、
図7乃至9を用いて、検出装置10の処理の流れの一例を説明する。
【0071】
図7のフローチャートで示す処理は、移動体の内部を撮影するカメラが生成した画像に基づく設備情報の生成が実行されない場合(上述した第1の取得例)の処理の流れを示す。
【0072】
移動体の内部を撮影するカメラが生成した画像を検出装置10が取得すると(S10)、人物情報生成部11は当該画像を解析して人物情報を生成する(S11)。そして、人物情報生成部11は、生成した人物情報を検出部13に入力する(S12)。以降、同様の処理を繰り返す。なお、これらの処理の詳細は、上述したのでここでの説明は省略する。
【0073】
図8のフローチャートで示す処理は、移動体の内部を撮影するカメラが生成した画像に基づく設備情報の生成が実行される場合(上述した第2の取得例又は第3の取得例)の処理の流れを示す。
【0074】
移動体の内部を撮影するカメラが生成した画像を検出装置10が取得すると(S20)、人物情報生成部11は当該画像を解析して人物情報を生成し、設備情報取得部12は当該画像を解析して設備情報を生成する(S21)。そして、人物情報生成部11は生成した人物情報を検出部13に入力し、設備情報取得部12は生成した設備情報を検出部13に入力する(S22)。以降、同様の処理を繰り返す。なお、これらの処理の詳細は、上述したのでここでの説明は省略する。
【0075】
図9のフローチャートは、検出部13及び出力部14により実行される。検出部13は、人物情報生成部11により生成された人物情報、及び設備情報取得部12により取得された設備情報に基づき、移動体の内部で起きている危険状態を検出する処理を実行する(S30)。そして、検出部13により危険状態が検出された場合(S31のYes)、出力部14はその旨を示す情報を出力する(S32)。出力部14は、ディスプレイ、スピーカ、警告ランプ、投影装置等のあらゆる出力装置を介して、上記旨を移動体の管理者(運転手や車掌等)及び/又は移動体の中に存在するその他の人物(乗客等)に通知することができる。以降、同様の処理を繰り返す。
【0076】
「作用効果」
検出装置10は、移動体の内部に存在する設備の位置を示す設備情報と、移動体の内部に存在する人物の位置を示す人物情報とに基づき算出される設備の位置と人物の位置との相対的な位置関係に基づき、移動体の内部で起きている危険状態を検出する。設備の位置と人物の位置との相対的な位置関係に基づき判断することで、移動体の内部で起きている危険状態を精度よく検出することが可能となる。
【0077】
また、検出装置10は、人物の身体の所定箇所と設備との相対的な位置関係(手とつり革又は手すりとの相対的な位置関係)に基づき、移動体の内部で起きている危険状態を検出することができる。このような検出装置10によれば、移動体の内部で起きている危険状態を精度よく検出することが可能となる。
【0078】
また、検出装置10は、カメラ等で移動体の内部を撮影した画像(イメージセンサを用いて生成された画像)に含まれる人物の骨格構造を検出し、検出した人物の骨格構造に基づき人物の位置、姿勢等の人物に関連する事項を特定する。カメラ等で生成された画像に含まれる人物の骨格構造に基づき人物の位置、姿勢などを検出する手法においては、照明条件の変化に頑健な手法がいくつか知られている。検出装置10のように、カメラ等で生成された画像に含まれる人物の骨格構造を検出し、当該人物の骨格構造に基づき人物の位置、姿勢などを検出することで、照明条件の変化に頑健な解析が実現される。そして、照明の状態に関わらず移動体の内部で起きている危険状態を精度よく検出することが可能となる。
【0079】
また、検出装置10は、移動体の状態に応じた検出手法で、移動体の内部で起きている危険状態を検出することができる。移動体の内部で起き得る状態の中には、移動体の状態に応じて危険になったり危険でなくなったりするものがある。移動体の状態に応じた検出手法で移動体の内部で起きている危険状態を検出することができる検出装置10によれば、真に危険な状態を、移動体の内部で起きている危険状態として精度よく検出することができる。
【0080】
<第2の実施形態>
以下、図面を参照して第2の実施形態について説明する。第2の実施形態では、第1の実施形態における骨格構造の特徴量算出の具体例について説明する。第2の実施形態では、人物の身長を用いて正規化することで特徴量を求める。その他については、第1の実施形態と同様である。
【0081】
人物情報生成部11は、検出された骨格構造に基づき、画像内の人物の起立時の高さ(身長画素数という)を算出(推定)する。身長画素数は、画像における人物の身長(2次元画像空間上の人物の全身の長さ)であるとも言える。人物情報生成部11は、検出された骨格構造の各ボーンの長さ(2次元画像空間上の長さ)から身長画素数(ピクセル数)を求める。
【0082】
以下の例では、身長画素数を求める方法として具体例1~3を用いる。なお、具体例1~3のいずれかの方法を用いてもよいし、任意に選択される複数の方法を組み合わせて用いてもよい。具体例1では、骨格構造の各ボーンのうち、頭部から足部までのボーンの長さを合計することで、身長画素数を求める。頭頂と足元が検出されていない場合は、必要に応じて定数を乗じて補正することもできる。具体例2では、各ボーンの長さと全身の長さ(2次元画像空間上の身長)との関係を示す人体モデルを用いて、身長画素数を算出する。具体例3では、3次元人体モデルを2次元の骨格構造にフィッティング(あてはめる)することで、身長画素数を算出する。
【0083】
人物情報生成部11は、算出された人物の身長画素数に基づいて、人物の骨格構造(骨格情報)を正規化する。人物情報生成部11は、骨格構造に含まれる各キーポイント(特徴点)の画像上での高さを、身長画素数で正規化する。例えば、高さ方向は、画像の2次元座標(X-Y座標)空間における上下の方向(Y軸方向)である。この場合、キーポイントの高さは、キーポイントのY座標の値(画素数)から求めることができる。あるいは、高さ方向は、実世界の3次元座標空間における地面(基準面)に対し垂直な鉛直軸の方向を、2次元座標空間に投影した鉛直投影軸の方向(鉛直投影方向)でもよい。この場合、キーポイントの高さは、実世界における地面に対し垂直な軸を、カメラパラメータに基づいて2次元座標空間に投影した鉛直投影軸を求め、この鉛直投影軸に沿った値(画素数)から求めることができる。なお、カメラパラメータは、画像の撮像パラメータであり、例えば、カメラパラメータは、カメラの姿勢、位置、撮像角度、焦点距離等である。カメラにより、予め長さや位置が分かっている物体を撮像し、その画像からカメラパラメータを求めることができる。撮像された画像の両端ではひずみが発生し、実世界の鉛直方向と画像の上下方向が合わない場合がある。これに対し、画像を撮影したカメラのパラメータを使用することで、実世界の鉛直方向が画像中でどの程度傾いているのかが分かる。このため、カメラパラメータに基づいて画像中に投影した鉛直投影軸に沿ったキーポイントの値を身長で正規化することで、実世界と画像のずれを考慮してキーポイントを特徴量化することができる。なお、左右方向(横方向)は、画像の2次元座標(X-Y座標)空間における左右の方向(X軸方向)であり、または、実世界の3次元座標空間における地面に対し平行な方向を、2次元座標空間に投影した方向である。
【0084】
ここで、身長画素数算出処理の具体例1~3について説明する。
【0085】
-具体例1-
具体例1では、頭部から足部までのボーンの長さを用いて身長画素数を求める。具体例1では、人物情報生成部11は、各ボーンの長さを取得し、取得した各ボーンの長さを合計する。
【0086】
そして、人物情報生成部11は、人物の頭部から足部の2次元の画像上のボーンの長さを取得し、身長画素数を求める。すなわち、骨格構造を検出した画像から、
図10のボーンのうち、ボーンB1(長さL1)、ボーンB51(長さL21)、ボーンB61(長さL31)及びボーンB71(長さL41)、もしくは、ボーンB1(長さL1)、ボーンB52(長さL22)、ボーンB62(長さL32)及びボーンB72(長さL42)の各長さ(画素数)を取得する。各ボーンの長さは、2次元の画像における各キーポイントの座標から求めることができる。これらを合計した、L1+L21+L31+L41、もしくは、L1+L22+L32+L42に補正定数を乗じた値を身長画素数(h)として算出する。両方の値を算出できる場合、例えば、長い方の値を身長画素数とする。すなわち、各ボーンは正面から撮像された場合が画像中での長さが最も長くなり、カメラに対して奥行き方向に傾くと短く表示される。従って、長いボーンの方が正面から撮像されている可能性が高く、真実の値に近いと考えられる。このため、長い方の値を選択することが好ましい。
【0087】
図11の例では、ボーンB1、ボーンB51及びボーンB52、ボーンB61及びボーンB62、ボーンB71及びボーンB72がそれぞれ重ならずに検出されている。これらのボーンの合計である、L1+L21+L31+L41、及び、L1+L22+L32+L42を求め、例えば、検出されたボーンの長さが長い左足側のL1+L22+L32+L42に補正定数を乗じた値を身長画素数とする。
【0088】
図12の例では、ボーンB1、ボーンB51及びボーンB52、ボーンB61及びボーンB62、ボーンB71及びボーンB72がそれぞれ検出され、右足のボーンB61及びボーンB71と左足のボーンB62及びボーンB72が重なっている。これらのボーンの合計である、L1+L21+L31+L41、及び、L1+L22+L32+L42を求め、例えば、検出されたボーンの長さが長い右足側のL1+L21+L31+L41に補正定数を乗じた値を身長画素数とする。
【0089】
図13の例では、ボーンB1、ボーンB51及びボーンB52、ボーンB61及びボーンB62、ボーンB71及びボーンB72がそれぞれ検出され、右足のボーンB61及びボーンB71と左足のボーンB62及びボーンB72が重なっている。これらのボーンの合計である、L1+L21+L31+L41、及び、L1+L22+L32+L42を求め、例えば、検出されたボーンの長さが長い左足側のL1+L22+L32+L42に補正定数を乗じた値を身長画素数とする。
【0090】
具体例1では、頭から足までのボーンの長さを合計することで身長を求めることができるため、簡易な方法で身長画素数を求めることができる。また、機械学習を用いた骨格検出技術により、少なくとも頭から足までの骨格を検出できればよいため、しゃがみ込んでいる状態など、必ずしも人物の全体が画像に写っていない場合でも精度よく身長画素数を推定することができる。
【0091】
-具体例2-
具体例2では、2次元の骨格構造に含まれる骨の長さと2次元画像空間上の人物の全身の長さとの関係を示す2次元骨格モデルを用いて身長画素数を求める。
【0092】
図14は、具体例2で用いる、2次元画像空間上の各ボーンの長さと2次元画像空間上の全身の長さとの関係を示す人体モデル(2次元骨格モデル)301である。
図14に示すように、平均的な人物の各ボーンの長さと全身の長さとの関係(全身の長さに対する各ボーンの長さの割合)を、人体モデル301の各ボーンに対応付ける。例えば、頭のボーンB1の長さは全身の長さ×0.2(20%)であり、右手のボーンB41の長さは全身の長さ×0.15(15%)であり、右足のボーンB71の長さは全身の長さ×0.25(25%)である。このような人体モデル301の情報をデータベース110に記憶しておくことで、各ボーンの長さから平均的な全身の長さを求めることができる。平均的な人物の人体モデルの他に、年代、性別、国籍等の人物の属性ごとに人体モデルを用意してもよい。これにより、人物の属性に応じて適切に全身の長さ(身長)を求めることができる。
【0093】
具体例2では、人物情報生成部11は、各ボーンの長さを取得する。人物情報生成部11は、検出された骨格構造において、全てのボーンの長さ(2次元画像空間上の長さ)を取得する。
図15は、しゃがみ込んでいる状態の人物を右斜め後ろから撮像し、骨格構造を検出した例である。この例では、人物の顔や左側面が写っていないことから、頭のボーンと左腕及び左手のボーンが検出できていない。このため、検出されているボーンB21、B22、B31、B41、B51、B52、B61、B62、B71、B72の各長さを取得する。
【0094】
続いて、人物情報生成部11は、人体モデルに基づき、各ボーンの長さから身長画素数を算出する。人物情報生成部11は、
図14のような、各ボーンと全身の長さとの関係を示す人体モデル301を参照し、各ボーンの長さから身長画素数を求める。例えば、右手のボーンB41の長さが全身の長さ×0.15であるため、ボーンB41の長さ/0.15によりボーンB41に基づいた身長画素数を求める。また、右足のボーンB71の長さが全身の長さ×0.25であるため、ボーンB71の長さ/0.25によりボーンB71に基づいた身長画素数を求める。
【0095】
このとき参照する人体モデルは、例えば、平均的な人物の人体モデルであるが、年代、性別、国籍等の人物の属性に応じて人体モデルを選択してもよい。例えば、撮像した画像に人物の顔が写っている場合、顔に基づいて人物の属性を識別し、識別した属性に対応する人体モデルを参照する。属性ごとの顔を機械学習した情報を参照し、画像の顔の特徴から人物の属性を認識することができる。また、画像から人物の属性が識別できない場合に、平均的な人物の人体モデルを用いてもよい。
【0096】
また、ボーンの長さから算出した身長画素数をカメラパラメータにより補正してもよい。例えばカメラを高い位置において、人物を見下ろすように撮影した場合、二次元骨格構造において肩幅のボーン等の横の長さはカメラの俯角の影響を受けないが、首-腰のボーン等の縦の長さは、カメラの俯角が大きくなる程小さくなる。そうすると、肩幅のボーン等の横の長さから算出した身長画素数が実際より大きくなる傾向がある。そこで、カメラパラメータを活用すると、人物がどの程度の角度でカメラに見下ろされているかがわかるため、この俯角の情報を使って正面から撮影したような二次元骨格構造に補正することができる。これによって、より正確に身長画素数を算出できる。
【0097】
続いて、人物情報生成部11は、身長画素数の最適値を算出する。人物情報生成部11は、ボーンごとに求めた身長画素数から身長画素数の最適値を算出する。例えば、
図16に示すような、ボーンごとに求めた身長画素数のヒストグラムを生成し、その中で大きい身長画素数を選択する。つまり、複数のボーンに基づいて求められた複数の身長画素数の中で他よりも長い身長画素数を選択する。例えば、上位30%を有効な値とし、
図16ではボーンB71、B61、B51による身長画素数を選択する。選択した身長画素数の平均を最適値として求めてもよいし、最も大きい身長画素数を最適値としてもよい。2次元画像のボーンの長さから身長を求めるため、ボーンを正面から撮像できていない場合、すなわち、ボーンがカメラから見て奥行き方向に傾いて撮像された場合、ボーンの長さが正面から撮像した場合よりも短くなる。そうすると、身長画素数が大きい値は、身長画素数が小さい値よりも、正面から撮像された可能性が高く、より尤もらしい値となることから、より大きい値を最適値とする。
【0098】
具体例2では、2次元画像空間上のボーンと全身の長さとの関係を示す人体モデルを用いて、検出した骨格構造のボーンに基づき身長画素数を求めるため、頭から足までの全ての骨格が得られない場合でも、一部のボーンから身長画素数を求めることができる。特に、複数のボーンから求められた値のうち、より大きい値を採用することで、精度よく身長画素数を推定することができる。
【0099】
-具体例3-
具体例3では、検出された2次元の骨格構造を3次元人体モデル(3次元骨格モデル)にフィッティングさせて、フィッティングした3次元人体モデルの身長画素数を用いて全身の骨格ベクトルを求める。
【0100】
具体例3では、人物情報生成部11は、まず、カメラの撮像した画像に基づき、カメラパラメータを算出する。人物情報生成部11は、カメラが撮像した複数の画像の中から、予め長さが分かっている物体を抽出し、抽出した物体の大きさ(画素数)からカメラパラメータを求める。なお、カメラパラメータを予め求めておき、求めておいたカメラパラメータを必要に応じて取得してもよい。
【0101】
続いて、人物情報生成部11は、3次元人体モデルの配置及び高さを調整する。人物情報生成部11は、検出された2次元の骨格構造に対し、身長画素数算出用の3次元人体モデルを用意し、カメラパラメータに基づいて、同じ2次元画像内に配置する。具体的には、カメラパラメータと、2次元の骨格構造から、「実世界におけるカメラと人物の相対的な位置関係」を特定する。例えば、仮にカメラの位置を座標(0,0,0)としたときに、人物が立っている(または座っている)位置の座標(x,y,z)を特定する。そして、特定した人物と同じ位置(x,y,z)に3次元人体モデルを配置して撮像した場合の画像を想定することで、2次元の骨格構造と3次元人体モデルを重ね合わせる。
【0102】
図17は、しゃがみ込んでいる人物を左斜め前から撮像し、2次元の骨格構造401を検出した例である。2次元の骨格構造401は、2次元の座標情報を有する。なお、全てのボーンを検出していることが好ましいが、一部のボーンが検出されていなくてもよい。この2次元の骨格構造401に対し、
図18のような、3次元人体モデル402を用意する。3次元人体モデル(3次元骨格モデル)402は、3次元の座標情報を有し、2次元の骨格構造401と同じ形状の骨格のモデルである。そして、
図19のように、検出した2次元の骨格構造401に対し、用意した3次元人体モデル402を配置し重ね合わせる。また、重ね合わせるとともに、3次元人体モデル402の高さを2次元の骨格構造401に合うように調整する。
【0103】
なお、このとき用意する3次元人体モデル402は、
図19のように、2次元の骨格構造401の姿勢に近い状態のモデルでもよいし、直立した状態のモデルでもよい。例えば、機械学習を用いて2次元画像から3次元空間の姿勢を推定する技術を用いて、推定した姿勢の3次元人体モデル402を生成してもよい。2次元画像の関節と3次元空間の関節の情報を学習することで、2次元画像から3次元の姿勢を推定することができる。
【0104】
続いて、人物情報生成部11は、3次元人体モデルを2次元の骨格構造にフィッティングする。人物情報生成部11は、
図20のように、3次元人体モデル402を2次元の骨格構造401に重ね合わせた状態で、3次元人体モデル402と2次元の骨格構造401の姿勢が一致するように、3次元人体モデル402を変形させる。すなわち、3次元人体モデル402の身長、体の向き、関節の角度を調整し、2次元の骨格構造401との差異がなくなるように最適化する。例えば、3次元人体モデル402の関節を人の可動範囲で回転させる、3次元人体モデル402の全体を回転させる、3次元人体モデル402全体のサイズを調整する、などの操作を行う。なお、3次元人体モデルと2次元の骨格構造のフィッティング(あてはめ)は、2次元空間(2次元座標)上で行う。すなわち、2次元空間に3次元人体モデルを写像し、変形させた3次元人体モデルが2次元空間(画像)でどのように変化するかを考慮して、3次元人体モデルを2次元の骨格構造に最適化する。
【0105】
続いて、人物情報生成部11は、フィッティングさせた3次元人体モデルの身長画素数を算出する。人物情報生成部11は、
図21のように、3次元人体モデル402と2次元の骨格構造401の差異がなくなり、姿勢が一致すると、その状態の3次元人体モデル402の身長画素数を求める。最適化された3次元人体モデル402を直立させた状態として、カメラパラメータに基づき、2次元空間上の全身の長さを求める。例えば、3次元人体モデル402を直立させた場合の頭から足までのボーンの長さ(画素数)により身長画素数を算出する。具体例1と同様に、3次元人体モデル402の頭部から足部までのボーンの長さを合計してもよい。
【0106】
具体例3では、カメラパラメータに基づいて3次元人体モデルを2次元の骨格構造にフィッティングさせて、その3次元人体モデルに基づいて身長画素数を求めることで、全てのボーンが正面に写っていない場合、すなわち、全てのボーンが斜めに映っているため誤差が大きい場合でも、精度よく身長画素数を推定することができる。
【0107】
次に、正規化処理について説明する。人物情報生成部11は、身長画素数算出処理に続いて、正規化処理を行う。正規化処理では、人物情報生成部11は、キーポイント高さを算出する。人物情報生成部11は、検出された骨格構造に含まれる全てのキーポイントのキーポイント高さ(画素数)を算出する。キーポイント高さは、骨格構造の最下端(いずれかの足のキーポイント)からそのキーポイントまでの高さ方向の長さ(画素数)である。ここでは、一例として、キーポイント高さを、画像におけるキーポイントのY座標から求める。なお、上記のように、キーポイント高さは、カメラパラメータに基づいた鉛直投影軸に沿った方向の長さから求めてもよい。例えば、
図10の例で、首のキーポイントA2の高さ(yi)は、キーポイントA2のY座標から右足のキーポイントA81または左足のキーポイントA82のY座標を引いた値である。
【0108】
続いて、人物情報生成部11は、正規化のための基準点を特定する。正規化のための基準点は、キーポイントの相対的な高さを表すための基準となる点である。正規化のための基準点は、予め設定されていてもよいし、ユーザが選択できるようにしてもよい。正規化のための基準点は、骨格構造の中心もしくは中心よりも高い(画像の上下方向における上である)ことが好ましく、例えば、首のキーポイントの座標とすることができる。なお、首に限らず頭やその他のキーポイントの座標を正規化のための基準点としてもよい。キーポイントに限らず、任意の座標(骨格構造の中心座標等)を正規化のための基準点としてもよい。
【0109】
続いて、人物情報生成部11は、キーポイント高さ(yi)を身長画素数で正規化する。人物情報生成部11は、各キーポイントのキーポイント高さ、正規化のための基準点、身長画素数を用いて、各キーポイントを正規化する。具体的には、人物情報生成部11は、正規化のための基準点に対するキーポイントの相対的な高さを身長画素数により正規化する。ここでは、高さ方向のみに着目する例として、Y座標のみを抽出し、また、正規化のための基準点を首のキーポイントとして正規化を行う。具体的には、正規化のための基準点(首のキーポイント)のY座標を(yc)として、次の式(1)を用いて、特徴量(正規化値)を求める。なお、カメラパラメータに基づいた鉛直投影軸を用いる場合は、(yi)及び(yc)を鉛直投影軸に沿った方向の値に変換する。
【0110】
【0111】
例えば、キーポイントが18個の場合、各キーポイントの18点の座標(x0、y0)、(x1、y1)、・・・(x17、y17)を、上記式(1)を用いて、次のように18次元の特徴量に変換する。
【0112】
【0113】
図22は、人物情報生成部11が求めた各キーポイントの特徴量の例を示している。この例では、首のキーポイントA2を正規化のための基準点とするため、キーポイントA2の特徴量は0.0となり、首と同じ高さの右肩のキーポイントA31及び左肩のキーポイントA32の特徴量も0.0である。首よりも高い頭のキーポイントA1の特徴量は-0.2である。首よりも低い右手のキーポイントA51及び左手のキーポイントA52の特徴量は0.4であり、右足のキーポイントA81及び左足のキーポイントA82の特徴量は0.9である。この状態から人物が左手を挙げると、
図23のように左手が正規化のための基準点よりも高くなるため、左手のキーポイントA52の特徴量は-0.4となる。一方で、Y軸の座標のみを用いて正規化を行っているため、
図24のように、
図22に比べて骨格構造の幅が変わっても特徴量は変わらない。すなわち、本実施の形態の特徴量(正規化値)は、骨格構造(キーポイント)の高さ方向(Y方向)の特徴を示しており、骨格構造の横方向(X方向)の変化に影響を受けない。
【0114】
以上、本実施形態の検出装置10は第1の実施形態と同様の作用効果を実現する。また、本実施形態の検出装置10は、2次元画像から人物の骨格構造を検出し、検出した骨格構造から求めた身長画素数(2次元画像空間上の直立時の高さ)を用いて、骨格構造の各キーポイントを正規化する。この正規化された特徴量を用いることで、特徴量を用いた各種処理時のロバスト性を向上することができる。すなわち、本実施形態の特徴量は、上記のように人物の横方向の変化に影響を受けないため、人物の向きや人物の体型の変化に対しロバスト性が高い。
【0115】
さらに、本実施形態の検出装置10は、OpenPose等の骨格検出技術を用いて人物の骨格構造を検出することで実現できるため、人物の姿勢等を学習する学習データを用意する必要がない。また、骨格構造のキーポイントを正規化することで、明確でわかりやすい特徴量を得ることができるため、機械学習のようにブラックボックス型のアルゴリズムと異なり、処理結果に対するユーザの納得性が高い。
【0116】
<変形例>
以下、第1及び第2の実施形態に適用可能な変形例を説明する。
【0117】
-第1の変形例-
第1及び第2の実施形態では、カメラで生成された画像から人物の骨格構造を検出し、検出した人物の骨格構造に基づき人物の位置、姿勢等の各種人物情報を生成した。変形例として、人物情報の少なくとも一部(全部も可)を、人物の骨格構造の検出結果を利用せず、カメラ等で生成された画像をそのまま解析して(画像で示される人物の外観の特徴に基づき)、生成してもよい。この変形例の場合、第1及び第2の実施形態で説明した作用効果のうち、照明条件の変化に頑健な解析は実現されないものの、その他の作用効果は実現される。
【0118】
-第2の変形例-
第1及び第2の実施形態では、検出装置10は移動体に搭載される装置であった。変形例として、検出装置10は、移動体から離れた場所に設置されたサーバであってもよい。そして、検出装置10は、移動体に搭載されたシステムと通信し、移動体の内部を撮影するカメラが生成した画像を取得したり、出力部14を介して検出部13による検出結果を移動体に搭載されたシステムに送信したりしてもよい。
【0119】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【0120】
また、上述の説明で用いた複数のフローチャートでは、複数の工程(処理)が順番に記載されているが、各実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態は、内容が相反しない範囲で組み合わせることができる。
【0121】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
1. 移動体の内部に存在する設備の位置を示す設備情報を取得する設備情報取得手段と、
前記移動体の内部を示す画像に基づき前記移動体の内部に存在する人物の位置を特定し、前記人物の位置を示す人物情報を生成する人物情報生成手段と、
前記設備情報と前記人物情報とに基づき、前記移動体の内部で起きている危険状態を検出する検出手段と、
を有する検出装置。
2. 前記人物情報生成手段は、前記人物の位置を示す前記人物情報として、人物の身体の所定箇所の位置を示す情報を生成する1に記載の検出装置。
3. 前記人物情報生成手段は、前記設備情報に基づき、前記設備の位置と前記人物の位置との相対的な位置関係を示す前記人物情報を生成する1又は2に記載の検出装置。
4. 前記人物情報生成手段は、前記画像に含まれる人物の骨格構造を検出し、検出した前記人物の骨格構造に基づき前記人物の位置を特定する1から3のいずれかに記載の検出装置。
5. 前記人物情報生成手段は、前記画像に含まれる人物の骨格構造を検出し、検出した前記人物の骨格構造に基づき人物の姿勢を特定し、前記人物の姿勢をさらに示す前記人物情報を生成する1から4のいずれかに記載の検出装置。
6. 前記人物情報生成手段は、前記画像に含まれる人物の骨格構造を検出し、前記人物の骨格構造の中の所定の複数箇所に基づき基準点を特定し、前記基準点の位置の時間変化をさらに示す前記人物情報を生成する1から5のいずれかに記載の検出装置。
7. 前記検出手段は、前記移動体の状態を示す移動体状態情報を取得し、前記移動体の状態に応じた検出方法で、前記危険状態を検出する1から6のいずれかに記載の検出装置。
8. 前記移動体の内部に存在する設備は、つり革、手すり及び座席の中の少なくとも1つを含む1から7のいずれかに記載の検出装置。
9. コンピュータが、
移動体の内部に存在する設備の位置を示す設備情報を取得し、
前記移動体の内部を示す画像に基づき前記移動体の内部に存在する人物の位置を特定し、前記人物の位置を示す人物情報を生成し、
前記設備情報と前記人物情報とに基づき、前記移動体の内部で起きている危険状態を検出する検出方法。
10. コンピュータを、
移動体の内部に存在する設備の位置を示す設備情報を取得する設備情報取得手段、
前記移動体の内部を示す画像に基づき前記移動体の内部に存在する人物の位置を特定し、前記人物の位置を示す人物情報を生成する人物情報生成手段、
記設備情報と前記人物情報とに基づき、前記移動体の内部で起きている危険状態を検出する検出手段、
として機能させるプログラム。
【符号の説明】
【0122】
10 検出装置
11 人物情報生成部
12 設備情報取得部
13 検出部
1A プロセッサ
2A メモリ
3A 入出力I/F
4A 周辺回路
5A バス
401 2次元の骨格構造
402 3次元人体モデル