(57)【要約】【課題】一例として、画像から取得される複数の関節点を少ない演算量で人体ごとに分類することができる関節点検出装置を提供すること。【解決手段】実施形態に係る関節点検出装置は、対象領域の距離画像および輝度画像のうち少なくとも一方に基づき、対象領域に含まれる複数の関節点を検出する検出部と、距離画像に基づき、複数の関節点を人体ごとに分類する分類部とを備える。【選択図】図３
2020194294.tif 000002
【特許請求の範囲】
【請求項１】
対象領域の距離画像および輝度画像のうち少なくとも一方に基づき、前記対象領域に含まれる複数の関節点を検出する検出部と、
前記距離画像に基づき、前記複数の関節点を人体ごとに分類する分類部と
を備える、関節点検出装置。
【請求項２】
前記分類部は、
前記複数の関節点のうちの対象関節点と、前記対象関節点に接続される前記関節点の候補である複数の接続候補関節点のうちの１つとを結ぶ線分上に存在する各点の距離の総和に基づく乖離度を前記複数の接続候補関節点ごとに算出し、前記複数の接続候補関節点のうち、前記乖離度が最も小さい前記接続候補関節点を、前記対象関節点に接続される前記関節点として決定する、請求項１に記載の関節点検出装置。
【請求項３】
前記分類部は、
前記複数の関節点のうち距離が最も近い前記関節点から順に前記対象関節点として選択する、請求項２に記載の関節点検出装置。
【請求項４】
前記分類部は、
線分上に存在する各点の座標をブレゼンハムのアルゴリズムを用いて算出する、請求項３に記載の関節点検出装置。
【請求項５】
前記分類部は、
前記複数の関節点のうちの対象関節点と、前記対象関節点に接続される前記関節点の候補である複数の接続候補関節点のうちの１つとを結ぶ関節点間ベクトルを算出し、前記対象関節点と前記複数の接続候補関節点のうちの１つとを結ぶ線分を分割する複数の分割点間を結ぶ複数の分割点間ベクトルを算出し、前記関節点間ベクトルと前記複数の分割点間ベクトルとの向きの一致度を複数の接続候補関節点ごとに算出し、前記複数の接続候補関節点のうち、前記一致度が最も高い前記接続候補関節点を、前記対象関節点に接続される前記関節点として決定する、請求項１〜４のいずれか一つに記載の関節点検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、関節点検出装置に関する。
【背景技術】
【０００２】
従来、撮像装置によって撮像された画像から人体の関節点の座標を推定する技術が知られている。
【０００３】
非特許文献１には、関節点間の関連度（ＰＡＦ：Part  Affinity  Fields）を算出し、算出した関連度に基づき、複数の関節点を人体ごとに分類する技術が開示されている。かかる技術によれば、画像に複数の人体が写り込んでいる場合であっても、人体ごとの姿勢を推定することができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“Realtime  Multi-Person  2D  Pose  Estimation  using  Part  Affinity  Fields”  Zhe  Cao＜インターネット＞https://arxiv.org/pdf/1611.08050.pdf  （平成３１年４月１０日検索）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、関節点間の関連度は演算量が大きいため、たとえばリアルタイムに人体の関節点を検出するためには、高い演算能力を持つ演算装置が必要となる。
【０００６】
本開示は、一例として、画像から取得される複数の関節点を少ない演算量で人体ごとに分類することができる関節点検出装置を提供する。
【課題を解決するための手段】
【０００７】
本開示に係る関節点検出装置は、一例として、対象領域の距離画像および輝度画像のうち少なくとも一方に基づき、前記対象領域に含まれる複数の関節点を検出する検出部と、前記距離画像に基づき、前記複数の関節点を人体ごとに分類する分類部とを備える。対象領域に含まれる複数の関節点を距離画像に基づいて人体ごとに分類することで、たとえばＰＡＦによる従来の分類手法と比較して演算量を低減することができる。
【０００８】
上記関節点検出装置において、前記分類部は、前記複数の関節点のうちの対象関節点と、前記対象関節点に接続される前記関節点の候補である複数の接続候補関節点のうちの１つとを結ぶ線分上に存在する各点の距離の総和に基づく乖離度を前記複数の接続候補関節点ごとに算出し、前記複数の接続候補関節点のうち、前記乖離度が最も小さい前記接続候補関節点を、前記対象関節点に接続される前記関節点として決定する。
【０００９】
異なる人物の関節点同士を結んだ線分上には、たとえば背景部分等、距離が大きくなる箇所が存在する可能性が高い。そこで、分類部は、複数の接続候補関節点のうち乖離度が低い接続候補関節点を、対象関節点と接続される関節点として決定する。これにより、画像から取得される複数の関節点を少ない演算量で人体ごとに分類することができる。
【００１０】
上記関節点検出装置において、前記分類部は、前記複数の関節点のうち距離が最も近い前記関節点から順に前記対象関節点として選択する。このように、距離が最も近い関節点から順に対象関節点として選択することで、乖離度を適切に求めることができる。
【００１１】
上記関節点検出装置において、前記分類部は、線分上に存在する各点の座標をブレゼンハムのアルゴリズムを用いて算出する。ブレゼンハムのアルゴリズムは、整数の加減算とビットシフトのみで実装可能であるため、ブレゼンハムのアルゴリズムを用いることで、線分上に存在する各点の座標を少ない演算量で高速に算出することができる。
【００１２】
上記関節点検出装置において、前記分類部は、前記複数の関節点のうちの対象関節点と、前記対象関節点に接続される前記関節点の候補である複数の接続候補関節点のうちの１つとを結ぶ関節点間ベクトルを算出し、前記対象関節点と前記複数の接続候補関節点のうちの１つとを結ぶ線分を分割する複数の分割点間を結ぶ複数の分割点間ベクトルを算出し、前記関節点間ベクトルと前記複数の分割点間ベクトルとの向きの一致度を複数の接続候補関節点ごとに算出し、前記複数の接続候補関節点のうち、前記一致度が最も高い前記接続候補関節点を、前記対象関節点に接続される前記関節点として決定する。
【００１３】
同一人物の関節点同士を対象関節点および接続候補関節点とした場合、関節点間ベクトルの向きと複数の分割点間ベクトルの向きとは理論上一致するため、一致度は高くなる。これに対し、異なる人物の関節点同士を対象関節点および接続候補関節点とした場合の一致度は、同一人物の関節点同士を対象関節点および接続候補関節点とした場合と比較して小さくなる。これは、対象関節点と接続候補関節点とが異なる人物の関節点同士である場合、関節点間ベクトルの向きと、複数の分割点間ベクトルの向きとが一致しないためである。そこで、分類部は、複数の接続候補関節点のうち一致度が高い接続候補関節点を対象関節点と接続される関節点として決定する。これにより、画像から取得される複数の関節点を少ない演算量で人体ごとに分類することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、第１実施形態に係る関節点検出装置が搭載される車両の車室内を上方から見た平面図である。
【図２】図２は、第１実施形態に係る制御システムの構成を示すブロック図である。
【図３】図３は、第１実施形態に係るＥＣＵの機能的構成を示すブロック図である。
【図４】図４は、関節点情報の一例を示す図である。
【図５】図５は、乖離度の算出手順の説明図である。
【図６】図６は、第１実施形態に係るＥＣＵが実行する処理の手順を示すフローチャートである。
【図７】図７は、一致度の算出手順の説明図である。
【図８】図８は、一致度の算出手順の説明図である。
【図９】図９は、一致度の算出手順の説明図である。
【図１０】図１０は、第２実施形態に係るＥＣＵが実行する処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下に、本開示に係る関節点検出装置を実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本開示に係る関節点検出装置が限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１６】
（第１実施形態）
〔１．車両１の構成〕
図１は、第１実施形態に係る関節点検出装置が搭載される車両１の車室内を上方から見た平面図である。図１に示すように、車両１の車室内には、複数の座席２が設けられている。たとえば、車室内の前方側には運転席２ａおよび助手席２ｂが設けられ、後方側には複数の後部座席２ｃが設けられる。
【００１７】
車室内の前方側には、撮像装置３が設けられる。撮像装置３は、たとえば、ＴＯＦ（Time  OF  Flight）距離画像カメラであり、輝度画像および距離画像を撮像する。輝度画像は、輝度値を画素値とする画像である。また、距離画像は、撮像装置３によって撮像される車室内の対象領域（撮像領域）に含まれる各点から撮像装置３（撮像位置）までの距離値を画素値とする画像である。
【００１８】
第１実施形態において、撮像装置３は、車室内の全ての座席２を撮像可能なように、言い換えれば、車室内の乗員全員を撮像可能なように、向き、画角および設置位置等が決められる。たとえば、撮像装置３は、ダッシュボード、ルームミラー、天井等に設置され得る。なお、これに限らず、撮像装置３は、特定の座席２（たとえば、運転席２ａ）に着座した乗員のみを撮像可能な位置に配置されてもよい。
【００１９】
ここでは、１台の撮像装置３を用いて輝度画像および距離画像の両方を撮像するものとするが、車両１には、たとえば、輝度画像を撮像する撮像装置と距離画像を撮像する撮像装置とが別々に設けられてもよい。距離画像を撮像する撮像装置は、ＴＯＦ距離画像カメラに限定されず、たとえば、ステレオカメラの他、ストラクチャードライト方式による３Ｄスキャナ等であってもよい。
【００２０】
〔２．制御システム１００の構成〕
車両１には、関節点検出装置を含む制御システム１００が設けられる。かかる制御システム１００の構成について図２を参照して説明する。図２は、第１実施形態に係る制御システム１００の構成を示すブロック図である。
【００２１】
図２に示すように、制御システム１００は、撮像装置３と、車載機器８と、ＥＣＵ１０と、車内ネットワーク２０とを備える。ＥＣＵ１０は、関節点検出装置の一例である。
【００２２】
撮像装置３は、たとえばＮＴＳＣ（National  Television  System  Committee）ケーブル等の出力線を介してＥＣＵ１０に接続され、撮像した輝度画像および距離画像を出力線を介してＥＣＵ１０に出力する。
【００２３】
車載機器８は、車両１に搭載され、ＥＣＵ１０によって制御される機器である。たとえば、複数の座席２に対応して設けられる複数のエアバッグ装置である。エアバッグ装置は、車両１の衝突時などにエアバッグを展開することによって、座席２に着座した乗員を衝撃から保護する。エアバッグ装置は、ＥＣＵ１０の制御に応じて、エアバッグの展開力を切り替えることが可能であるものとする。
【００２４】
なお、車載機器８は、エアバッグ装置に限定されない。たとえば、車載機器８は、座席２の位置を調整するシート調整装置であってもよい。たとえば、シート調整装置は、運転席２ａと助手席２ｂとに設けられ、運転席２ａおよび助手席２ｂの前後位置や高さ位置等を調整する。
【００２５】
ＥＣＵ１０は、車内ネットワーク２０を介して制御信号を送ることにより、各種の車載機器８を制御することができる。その他、ＥＣＵ１０は、ブレーキシステムの制御、操舵システムの制御等を実行し得る。
【００２６】
ＥＣＵ１０は、たとえば、ＣＰＵ（Central  Processing  Unit）１１と、ＳＳＤ（Solid  State  Drive）１２と、ＲＯＭ（Read  Only  Memory）１３と、ＲＡＭ（Random  Access  Memory）１４とを備える。ＣＰＵ１１は、ＲＯＭ１３等の不揮発性の記憶装置にインストールされ記憶されたプログラムを実行することによって、関節点検出装置としての機能を実現する。ＲＡＭ１４は、ＣＰＵ１１での演算で用いられる各種のデータを一時的に記憶する。ＳＳＤ１２は、書き換え可能な不揮発性の記憶装置であって、ＥＣＵ１０の電源がオフされた場合にあってもデータを記憶することができる。ＣＰＵ１１、ＲＯＭ１３、およびＲＡＭ１４等は、同一パッケージ内に集積され得る。ＥＣＵ１０は、ＣＰＵ１１に替えて、ＤＳＰ（Digital  Signal  Processor）等の他の論理演算プロセッサや論理回路等が用いられる構成であってもよい。ＳＳＤ１２に替えてＨＤＤ（Hard  Disk  Drive）、Flash  Memory等の書き替え可能な不揮発性の記憶装置が設けられてもよいし、ＳＳＤ１２またはＨＤＤは、ＥＣＵ１０とは別に設けられてもよい。
【００２７】
〔３．ＥＣＵ１０の機能的構成〕
次に、ＥＣＵ１０の機能的構成について図３を参照して説明する。図３は、第１実施形態に係るＥＣＵ１０の機能的構成を示すブロック図である。
【００２８】
図３に示すように、ＥＣＵ１０は、制御部５０と、記憶部６０とを備える。制御部５０は、取得部５１と、関節点検出部５２と、分類部５３と、人体情報生成部５４と、機器制御部５５とを備える。記憶部６０は、輝度画像６１と、距離画像６２と、関節点情報６３と、分類済関節点情報６４と、人体情報６５とを記憶する。
【００２９】
取得部５１、関節点検出部５２、分類部５３、人体情報生成部５４および機器制御部５５は、ＣＰＵ１１が、ＲＯＭ１３に格納されたプログラムを実行することによって実現される。なお、これらの構成は、ハードウェア回路にて実現されてもよい。記憶部６０は、たとえばＳＳＤ１２により構成される。
【００３０】
取得部５１は、撮像装置３によって撮像された輝度画像および距離画像を撮像装置３から取得する。取得部５１は、取得した輝度画像および距離画像を記憶部６０に記憶する（図３中、輝度画像６１および距離画像６２に相当）。
【００３１】
関節点検出部５２は、記憶部６０に記憶された輝度画像６１を用い、対象領域に含まれる複数の関節点を検出する。関節点とは、人体の各部位の位置を示す特徴点であり、肩や肘といった関節だけでなく、首の付け根、鼻、目、耳等の部位も含む。関節点の検出手法としては、たとえば、ＰＣＭ（Part  Confidence  Maps）を用いることができるが、ＰＣＭに限らず、いかなる公知技術を用いても構わない。関節点検出部５２は、検出した複数の関節点の情報を関節点情報６３として記憶部６０に記憶する。
【００３２】
図４は、関節点情報の一例を示す図である。図４に示すように、関節点情報６３には、各関節点の２次元座標（Ｘ座標、Ｙ座標）の他、各関節点の部位の情報が含まれる。たとえば、対象領域Ｒから検出された複数の関節点のうち、関節点ｐ１，ｑ１には、関節点ｐ１，ｑ１の部位が「肩」であることを示す情報が含まれる。同様に、関節点ｐ２，ｑ２には、関節点ｐ２，ｑ２の部位が「肘」であることを示す情報が含まれ、関節点ｐ３，ｑ３には、関節点ｐ３，ｑ３の部位が「首」であることを示す情報が含まれる。
【００３３】
関節点情報６３だけでは、検出された関節点が人物Ｍ１および人物Ｍ２のいずれの関節点であるかを判別することができない。ＰＡＦ（Part  Affinity  Fields）に基づいて、複数の関節点を人体ごとに分類することは可能であるが、ＰＡＦは演算量が大きいため、たとえばリアルタイムに人体の関節点を検出するためには高い演算能力を持つ演算装置が必要となる。
【００３４】
分類部５３は、記憶部６０に記憶された距離画像６２に基づき、複数の関節点を人物ごとに分類する。
【００３５】
第１実施形態に係る分類部５３は、距離画像６２を用いて「乖離度」を算出する。乖離度とは、ある関節点（後述する対象関節点）と他の関節点（後述する接続候補関節点）との結びつきの低さの度合いを示す値である。
【００３６】
図５は、乖離度の算出手順の説明図である。図５には、関節点ｐ１が対象関節点として選択された場合の例を示している。
【００３７】
分類部５３は、対象関節点である関節点ｐ１の部位と隣接する部位の関節点を接続候補関節点として選択する。図５に示すように、関節点ｐ１の部位は「肩」である。このため、分類部５３は、肩に隣接する部位である「肘」の関節点ｐ２，ｑ２を接続候補関節点として選択する。
【００３８】
つづいて、分類部５３は、関節点ｐ１と関節点ｐ２との乖離度を算出する。具体的には、分類部５３は、まず、関節点ｐ１と関節点ｐ２とを端点とする線分Ｌ１上に存在する各点の座標を算出する。この処理は、たとえば、ブレゼンハムのアルゴリズム（Bresenham's  line  algorithm）を用いて行われる。ブレゼンハムのアルゴリズムは、与えられた始点と終点の間に連続した複数の点を置き、近似的な直線を引くためのアルゴリズムである。ブレゼンハムのアルゴリズムは、整数の加減算とビットシフトのみで実装可能であるため、ブレゼンハムのアルゴリズムを用いることで、線分Ｌ１上に存在する複数の画素を少ない演算量で高速に特定することができる。
【００３９】
つづいて、分類部５３は、線分Ｌ１上の各座標に位置する画素の距離値を距離画像６２から取得する。そして、分類部５３は、線分Ｌ１上に存在する複数の画素の距離値の総和を線分Ｌ１上に存在する複数の画素の数で割った値を乖離度として算出する。すなわち、線分Ｌ１上に存在する画素の数をｋ、各画素の距離値をＺｉとしたとき、乖離度は、下記の数式（１）で定義される。
【数１】
2020194294.tif 000003
【００４０】
乖離度は、画素の数ｋによって正規化されるが、これは、線分上に存在する画素の数が線分ごとに異なるためである。なお、線分Ｌ１上に存在する画素の数ｋは、端点である関節点ｐ１，ｑ１を含んでもよいし、含まなくてもよい。
【００４１】
分類部５３は、関節点ｐ１と関節点ｑ２とを端点とする線分Ｌ２についても上記と同様の手順で乖離度を算出する。
【００４２】
関節点ｐ１，ｐ２のように同一人物Ｍ１の関節点同士は、多くの場合、平坦な面でつながる。これは、同一人物の関節点同士を結ぶ線分上には、基本的には、その人物の画素しか存在せず、その人物よりも遠くに位置する背景の画素は線分上に存在し得ないためである。
【００４３】
これに対し、関節点ｐ１，ｑ２のように異なる人物Ｍ１，Ｍ２の関節点同士を結んだ線分Ｌ２上には、距離が大きくなる箇所が存在する可能性が高い。たとえば、図５に示す例の場合、関節点ｐ１と関節点ｑ２とを結ぶ線分Ｌ２上には、人物Ｍ１，Ｍ２よりも後方に位置する後部座席２ｃの画素が存在する。この部分の画素の距離値は、人物Ｍ１，Ｍ２の部分の画素の距離値と比較して大きいため、関節点ｐ１および関節点ｑ２の組み合わせの乖離度は、関節点ｐ１および関節点ｐ２の組み合わせの乖離度よりも高くなる。
【００４４】
分類部５３は、接続候補関節点である関節点ｐ２，ｑ２のうち、乖離度が低い関節点ｐ２を、対象関節点である関節点ｐ１と接続される「肘」の関節点として決定する。具体的には、分類部５３は、関節点ｐ１と関節点ｐ２に対し、同一人物Ｍ１の関節点であることを示す情報（以下、「人物情報」と記載する）を付加する。
【００４５】
分類部５３は、上述した肘以外に、関節点ｐ１の部位である肩に隣接する部位である「首」についても同様に、乖離度に基づく分類を行う。すなわち、分類部５３は、関節点ｐ１を対象関節点、関節点ｐ３，ｑ３（図４参照）を接続候補関節点とし、関節点ｐ１，ｐ３の組み合わせおよび関節点ｐ１，ｑ３の組み合わせについてそれぞれ乖離度を算出し、乖離度が低い方の接続候補関節点すなわち関節点ｐ３を、関節点ｐ１と接続される「首」の関節点として決定する。
【００４６】
このようにして、全ての関節点の全ての組み合わせについての分類を終えると、分類部５３は、関節点情報６３に人物情報を付加した分類済関節点情報６４を記憶部６０に記憶する。分類済関節点情報６４は、各関節点の２次元座標、各関節点の部位および各関節点の人物情報を含んだ情報である。これにより、関節点ｐ１〜ｐ３を含む人物Ｍ１の関節点には、同一の人物情報（たとえば、Ｍ１）が付加される。また、関節点ｑ１〜ｑ３を含む人物Ｍ２の関節点には、同一の人物情報（たとえば、Ｍ２）が付加される。このように、関節点情報６３に人物情報を付加することで、対象領域Ｒから検出された複数の関節点を人物ごとに分類することができる。
【００４７】
人体情報生成部５４は、記憶部６０に記憶された分類済関節点情報６４に基づき、乗員の各部位の長さを含む人体情報を生成する。たとえば、人体情報生成部５４は、人物Ｍ１について、左肩の関節点ｐ１と右肩の関節点との距離を算出することで、人物Ｍ１の肩幅の情報を得ることができる。人体情報生成部５４は、人物Ｍ１，Ｍ２ごとに分類された分類済関節点情報６４を用いて人物Ｍ１，Ｍ２ごとに人体情報を生成する。そして、人体情報生成部５４は、生成した人体情報６５を記憶部６０に記憶する。
【００４８】
なお、人体情報生成部５４は、分類済関節点情報６４に基づいて人物Ｍ１，Ｍ２の姿勢を推定してもよい。
【００４９】
機器制御部５５は、記憶部６０に記憶された人体情報６５に基づき、車両１に搭載される各種の車載機器８を制御する。一例として、機器制御部５５は、人体情報６５に基づき、車載機器８としてのエアバッグ装置を制御することができる。たとえば、人体情報６５に含まれる乗員の肩幅が閾値以下である場合、乗員が子供であると判定して、エアバッグ装置の展開モードを、大人用の通常モードよりも弱く展開する弱展開モードに切り替えてもよい。このように、乗員の体格に応じた強度でエアバッグを展開させることで、エアバッグの安全性を高めることができる。
【００５０】
また、機器制御部５５は、人体情報６５に基づき、車載機器８としてのシート調整装置を制御することにより、座席２の前後位置や高さ位置等を、乗員の身長等に応じて自動的に調整することができる。これにより、座席２の位置等を乗員が自ら調整する手間を省くことができる。
【００５１】
〔４．ＥＣＵ１０の具体的動作〕
次に、ＥＣＵ１０の具体的動作について図６を参照して説明する。図６は、第１実施形態に係るＥＣＵ１０が実行する処理の手順を示すフローチャートである。なお、図６には、１つの対象関節点の１つの組み合わせを決定するまでの手順を示している。
【００５２】
図６に示すように、ＥＣＵ１０は、対象領域Ｒから検出された複数の関節点のうち、距離値が最も小さい関節点を対象関節点として選択する（ステップＳ１０１）。つづいて、ＥＣＵ１０は、対象領域Ｒから検出された複数の関節点のうち、対象関節点の部位と隣接する部位の関節点を接続候補関節点として選択する（ステップＳ１０２）。
【００５３】
つづいて、ＥＣＵ１０は、対象関節点と接続候補関節点とを結ぶ線分上の各点の座標を算出し（ステップＳ１０３）、算出した各座標の距離値を用いて乖離度を算出する（ステップＳ１０４）。
【００５４】
つづいて、ＥＣＵ１０は、全ての接続候補関節点の乖離度を算出し終えたか否かを判定する（ステップＳ１０５）。この処理において、乖離度を算出していない接続候補関節点が存在する場合（ステップＳ１０５，Ｎｏ）、ＥＣＵ１０は、処理をステップＳ１０３に戻し、乖離度を算出していない接続候補関節点について、ステップＳ１０３〜Ｓ１０５の処理を行う。
【００５５】
一方、ステップＳ１０５において、全ての接続候補関節点の乖離度を算出し終えたと判定した場合（ステップＳ１０５，Ｙｅｓ）、ＥＣＵ１０は、乖離度が最も低い接続候補関節点を対象関節点と接続される関節点として決定し（ステップＳ１０６）、１つの対象関節点の１つの組み合わせについての処理を終了する。
【００５６】
ＥＣＵ１０は、１つの対象関節点についての全ての組み合わせ（たとえば、対象関節点が肩であれば、「肩および肘」、「肩および首」）を決定した後、その対象関節点の次に距離値が小さい関節点を対象関節点として選択して（ステップＳ１０１）、ステップＳ１０２以降の処理を行う。このとき、ＥＣＵ１０は、全ての組み合わせが決定された対象関節点を、次の対象関節点についての接続候補関節点から除外する。
【００５７】
たとえば後部座席２ｃに着座した人物の関節点が対象関節点として選択された場合に、運転席２ａに着座した人物の関節点が接続候補関節点として選択されると、異なる人物の関節点同士の乖離度が、同一人物の関節点同士の乖離度よりも低くなるおそれがある。これに対し、距離が最も近い関節点から順に対象関節点として選択するとともに、全ての組み合わせが決定された対象関節点を次の対象関節点の接続候補関節点として選択しないようにすることで、乖離度を適切に求めることができる。
【００５８】
（第２実施形態）
次に、第２実施形態に係る複数の関節点の分類手法について図７〜図９を参照して説明する。図７〜図９は、一致度の算出手順の説明図である。
【００５９】
第２実施形態に係る分類部５３は、距離画像６２を用いて「一致度」を算出する。一致度とは、対象関節点と接続候補関節点とを結ぶベクトルの向きと、対象関節点と接続候補関節点とを結ぶ線分を複数の分割点で分割した場合の各分割点間のベクトルの向きとの一致度である。
【００６０】
たとえば、図７に示すように、分類部５３は、対象関節点である関節点ｐ１から接続候補関節点である関節点ｐ２に向かう関節点間ベクトルｖａ０を距離画像６２の距離値に基づいて算出する。
【００６１】
具体的には、関節点ｐ１，ｐ２の３次元座標（Ｘ座標、Ｙ座標、および距離値）をそれぞれＰ１＝（Ｘ１，Ｙ１，Ｚ１）、Ｐ２＝（Ｘ２，Ｙ２，Ｚ２）とすると、関節点間ベクトルｖａ０は、（Ｘ２−Ｘ１，Ｙ２−Ｙ１，Ｚ２−Ｚ１）となる。
【００６２】
また、分類部５３は、関節点ｐ１と関節点ｐ２とを結ぶ２次元座標上の線分を均等に分割する複数の分割点ａ１，ａ２，ａ３を設定する。そして、分類部５３は、関節点ｐ１から分割点ａ１に向かう分割点間ベクトルｖａ１、分割点ａ１から分割点ａ２に向かう分割点間ベクトルｖａ２、分割点ａ２から分割点ａ３に向かう分割点間ベクトルｖａ３、分割点ａ３から関節点ｐ２に向かう分割点間ベクトルｖａ４を距離画像６２の距離値に基づいて算出する。
【００６３】
具体的には、分割点ａ１〜ａ３の３次元座標をそれぞれａ１＝（Ｘａ１，Ｙａ１，Ｚａ１）、ａ２＝（Ｘａ２，Ｙａ２，Ｚａ２）、ａ３＝（Ｘａ３，Ｙａ３，Ｚａ３）とすると、分割点間ベクトルｖａ１は、（Ｘａ１−Ｘ１，Ｙａ１−Ｙ１，Ｚａ１−Ｚ１）、分割点間ベクトルｖａ２は、（Ｘａ２−Ｘａ１，Ｙａ２−Ｙａ１，Ｚａ２−Ｚａ１）、分割点間ベクトルｖａ３は、（Ｘａ３−Ｘａ２，Ｙａ３−Ｙａ２，Ｚａ３−Ｚａ２）、分割点間ベクトルｖａ４は、（Ｘ２−Ｘａ３，Ｙ２−Ｙａ３，Ｚ２−Ｚａ３）となる。
【００６４】
そして、分類部５３は、関節点ｐ１，ｐ２についてのベクトルの向きの一致度を算出する。ここで、一致度は、１−（ｓｉｎ２θ１＋ｓｉｎ２θ２＋・・・＋ｓｉｎ２θｋ）／ｋで定義される。「ｋ」は線分の分割数であり、図７に示す例の場合、「ｋ」は４である。また、「θ１」は、分割点間ベクトルと関節点間ベクトルとのなす角であり、図７に示す例の場合、「θ１」は、分割点間ベクトルｖａ１と関節点間ベクトルｖａ０とのなす角である。
【００６５】
また、１−（ｓｉｎ２θ１＋ｓｉｎ２θ２＋・・・＋ｓｉｎ２θｋ）／ｋは、１−（１−ｃｏｓ２θ１＋１−ｃｏｓ２θ２＋・・・＋１−ｃｏｓ２θｋ）／ｋと変換することができる。そこで、分類部５３は、これをさらに変換し、｛（（ｖａ１・ｖａ０）／（｜ｖａ１｜・｜ｖａ０｜））２＋（（ｖａ２・ｖａ０）／（｜ｖａ２｜・｜ｖａ０｜））２＋・・・（（ｖａｋ・ｖａ０）／（｜ｖａｋ｜・｜ｖａ０｜））２｝／ｋの式を用いて一致度を算出する。
【００６６】
同様に、分類部５３は、対象関節点である関節点ｐ１から接続候補関節点である関節点ｑ２に向かう関節点間ベクトルｖｂ０を算出する。また、分類部５３は、関節点ｐ１と関節点ｑ２とを結ぶ線分を分割する複数の分割点ｂ１，ｂ２，ｂ３を設定し、関節点ｐ１から分割点ｂ１に向かう分割点間ベクトルｖｂ１、分割点ｂ１から分割点ｂ２に向かう分割点間ベクトルｖｂ２、分割点ｂ２から分割点ｂ３に向かう分割点間ベクトルｖｂ３、分割点ｂ３から関節点ｑ２に向かう分割点間ベクトルｖｂ４を算出する。そして、分類部５３は、関節点間ベクトルｖｂ０および分割点間ベクトルｖｂ１〜ｖｂ４を用いて一致度を算出する。
【００６７】
ここで、関節点ｐ１，ｐ２のように同一人物Ｍ１の関節点同士を対象関節点および接続候補関節点とした場合の一致度は、理論上１となる。これは、たとえば図８に示すように、対象関節点（関節点ｐ１）と接続候補関節点（関節点ｐ２）とが同一人物Ｍ１の関節点同士であれば、関節点間ベクトルｖａ０の向きと、各分割点間ベクトルｖａ１〜ｖａ４の向きとが理論上一致し、「θ１」〜「θｋ」が全て０となることで、「１−ｃｏｓ２θ１」、「１−ｃｏｓ２θ２」・・・「１−ｃｏｓ２θｋ」の値が全て０になるためである。
【００６８】
これに対し、関節点ｐ１，ｑ２のように異なる人物Ｍ１，Ｍ２の関節点同士を対象関節点および接続候補関節点とした場合の一致度は、１よりも低くなる。これは、たとえば図９に示すように、対象関節点（関節点ｐ１）と接続候補関節点（関節点ｑ２）とが異なる人物Ｍ１，Ｍ２の関節点同士である場合、関節点間ベクトルｖｂ０の向きと、各分割点間ベクトルｖｂ１〜ｖｂ４の向きとが一致しないためである。
【００６９】
分類部５３は、接続候補関節点である関節点ｐ２，ｑ２のうち、一致度が高い関節点ｐ２を、対象関節点である関節点ｐ１と接続される「肘」の関節点として決定する。具体的には、分類部５３は、関節点ｐ１と関節点ｐ２に対し、同一人物Ｍ１の関節点であることを示す人物情報を付加する。
【００７０】
次に、第２実施形態に係るＥＣＵ１０の具体的動作について図１０を参照して説明する。図１０は、第２実施形態に係るＥＣＵが実行する処理の手順を示すフローチャートである。図１０には、１つの対象関節点の１つの組み合わせを決定するまでの手順を示している。
【００７１】
図１０に示すように、ＥＣＵ１０は、対象領域Ｒから検出された複数の関節点のうち、距離値が最も小さい関節点を対象関節点として選択する（ステップＳ２０１）。つづいて、ＥＣＵ１０は、対象領域Ｒから検出された複数の関節点のうち、対象関節点の部位と隣接する部位の関節点を接続候補関節点として選択する（ステップＳ２０２）。
【００７２】
つづいて、ＥＣＵ１０は、関節点間ベクトルを算出するとともに（ステップＳ２０３）、分割点間ベクトルを算出し（ステップＳ２０４）、一致度を算出する（ステップＳ２０５）。
【００７３】
つづいて、ＥＣＵ１０は、全ての接続候補関節点の一致度を算出し終えたか否かを判定する（ステップＳ２０６）。この処理において、一致度を算出していない接続候補関節点が存在する場合（ステップＳ２０６，Ｎｏ）、ＥＣＵ１０は、処理をステップＳ２０３に戻し、一致度を算出していない接続候補関節点について、ステップＳ２０３〜Ｓ２０６の処理を行う。
【００７４】
一方、ステップＳ２０６において、全ての接続候補関節点の一致度を算出し終えたと判定した場合（ステップＳ２０６，Ｙｅｓ）、ＥＣＵ１０は、一致度が最も高い接続候補関節点を対象関節点と接続される関節点として決定し（ステップＳ２０７）、１つの対象関節点の１つの組み合わせについての処理を終了する。
【００７５】
（変形例）
ＥＣＵ１０は、上述した乖離度および一致度の両方を算出し、乖離度および一致度に基づいて、対象関節点に接続される関節点を決定してもよい。この際、ＥＣＵ１０は、周囲の明るさ等の状況に応じて乖離度および一致度の何れか一方に重み付けを行ってもよい。
【００７６】
上述した実施形態では、関節点検出部５２が、輝度画像６１を用いて関節点情報６３を生成する場合の例について説明した。これに限らず、関節点検出部５２は、距離画像６２を用いて関節点情報６３を生成してもよい。また、関節点検出部５２は、輝度画像６１および距離画像６２の両方を用いて関節点情報６３を生成してもよい。
【００７７】
上述した実施形態では、関節点検出装置としてのＥＣＵ１０を用いて、車両１の車室内に存在する乗員の人体情報を取得する場合の例を示したが、関節点検出装置は、たとえば、工場で作業する作業者の負荷を監視するために、作業者の姿勢といった人体情報を取得する等、他の用途にも用いられ得る。
【００７８】
上述してきたように、実施形態に係る関節点検出装置（一例として、ＥＣＵ１０）は、対象領域（一例として、対象領域Ｒ）の距離画像（一例として、距離画像６２）および輝度画像（一例として、輝度画像６１）のうち少なくとも一方に基づき、対象領域に含まれる複数の関節点を検出する検出部（一例として、関節点検出部５２）と、距離画像に基づき、複数の関節点を人体ごとに分類する分類部（一例として、分類部５３）とを備える。対象領域に含まれる複数の関節点を距離画像に基づいて人体ごとに分類することで、たとえばＰＡＦによる従来の分類手法と比較して演算量を低減することができる。
【００７９】
上記関節点検出装置において、分類部は、複数の関節点のうちの対象関節点と、対象関節点に接続される関節点の候補である複数の接続候補関節点のうちの１つとを結ぶ線分上に存在する各点の距離の総和に基づく乖離度を複数の接続候補関節点ごとに算出する。そして、分類部は、複数の接続候補関節点のうち、乖離度が最も低い接続候補関節点を、対象関節点に接続される関節点として決定する。
【００８０】
異なる人物の関節点同士を結んだ線分上には、たとえば背景部分等、距離が大きくなる箇所が存在する可能性が高い。このため、乖離度が低い接続候補関節点を対象関節点と接続される関節点として決定する。これにより、画像から取得される複数の関節点を少ない演算量で人体ごとに分類することができる。
【００８１】
上記関節点検出装置において、分類部は、複数の関節点のうち距離が最も近い関節点から順に対象関節点として選択する。このように、距離が最も近い関節点から順に対象関節点として選択することで、乖離度を適切に求めることができる。
【００８２】
上記関節点検出装置において、分類部は、線分上に存在する各点の座標をブレゼンハムのアルゴリズムを用いて算出する。ブレゼンハムのアルゴリズムは、整数の加減算とビットシフトのみで実装可能であるため、ブレゼンハムのアルゴリズムを用いることで、線分上に存在する各点の座標を少ない演算量で高速に算出することができる。
【００８３】
上記関節点検出装置において、分類部は、複数の関節点のうちの対象関節点と、対象関節点に接続される関節点の候補である複数の接続候補関節点のうちの１つとを結ぶ関節点間ベクトルを算出する。また、分類部は、対象関節点と複数の接続候補関節点のうちの１つとを結ぶ線分を分割する複数の分割点間を結ぶ複数の分割点間ベクトルを算出する。また、分類部は、関節点間ベクトルと複数の分割点間ベクトルとの向きの一致度を複数の接続候補関節点ごとに算出する。そして、分類部は、複数の接続候補関節点のうち一致度が最も高い接続候補関節点を対象関節点に接続される関節点として決定する。
【００８４】
同一人物の関節点同士を対象関節点および接続候補関節点とした場合、関節点間ベクトルの向きと複数の分割点間ベクトルの向きとは理論上一致するため、この場合の一致度は高くなる。これに対し、異なる人物の関節点同士を対象関節点および接続候補関節点とした場合の一致度は、同一人物の関節点同士を対象関節点および接続候補関節点とした場合と比較して小さくなる。これは、対象関節点と接続候補関節点とが異なる人物の関節点同士である場合、関節点間ベクトルの向きと、複数の分割点間ベクトルの向きとが一致しないためである。そこで、分類部は、複数の接続候補関節点のうち一致度が高い接続候補関節点を対象関節点と接続される関節点として決定する。これにより、画像から取得される複数の関節点を少ない演算量で人体ごとに分類することができる。
【００８５】
以上、本開示の実施形態を例示したが、上記実施形態および変形例はあくまで一例であって、発明の範囲を限定することは意図していない。上記実施形態や変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、組み合わせ、変更を行うことができる。また、各実施形態や各変形例の構成や形状は、部分的に入れ替えて実施することも可能である。
【符号の説明】
【００８６】
１…車両、２…座席、３…撮像装置、８…車載機器、１０…ＥＣＵ、５０…制御部、５１…取得部、５２…関節点検出部、５３…分類部、５４…人体情報生成部、５５…機器制御部、６０…記憶部、６１…輝度画像、６２…距離画像、６３…関節点情報、６４…分類済関節点情報、６５…人体情報。
【図１】
2020194294.tif 000004
【図２】
2020194294.tif 000005
【図３】
2020194294.tif 000006
【図４】
2020194294.tif 000007
【図５】
2020194294.tif 000008
【図６】
2020194294.tif 000009
【図７】
2020194294.tif 000010
【図８】
2020194294.tif 000011
【図９】
2020194294.tif 000012
【図１０】
2020194294.tif 000013