(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-04
(45)【発行日】2024-10-15
(54)【発明の名称】画像処理装置、撮像装置、画像処理方法およびプログラム
(51)【国際特許分類】
H04N 23/60 20230101AFI20241007BHJP
G03B 15/00 20210101ALI20241007BHJP
H04N 23/63 20230101ALI20241007BHJP
H04N 23/611 20230101ALI20241007BHJP
G06T 7/20 20170101ALI20241007BHJP
【FI】
H04N23/60 500
G03B15/00 Q
H04N23/63 330
H04N23/611
G06T7/20 300Z
(21)【出願番号】P 2020019964
(22)【出願日】2020-02-07
【審査請求日】2023-02-03
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100125254
【氏名又は名称】別役 重尚
(72)【発明者】
【氏名】緑川 慶祐
【審査官】▲徳▼田 賢二
(56)【参考文献】
【文献】特開2015-075916(JP,A)
【文献】特開2008-109552(JP,A)
【文献】特開2011-034133(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 23/60
G03B 15/00
H04N 23/63
H04N 23/611
G06T 7/20
(57)【特許請求の範囲】
【請求項1】
第1の画像から第1の被写体の複数の部位と、第2の画像から第2の被写体の複数の部位とを検出する検出手段と、
前記検出手段により検出された前記第1の被写体の複数の部位に基づく姿勢と前記第2の被写体の複数の部位に基づく姿勢との間の姿勢情報としてのベクトルの差分に基づいて、前記第1の被写体と前記第2の被写体とのマッチングを行うマッチング手段と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記
マッチング手段は、前記複数の部位のうち2つの部位を連結して定義される複数のベクトルに対して、対応する重みで重み付けを行うことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記
マッチング手段は、検出されなかった部位については、ベクトルを定義せず、所定の定数を設定することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記
マッチング手段は、前記第1の被写体と前記第2の被写体とについて、対応する2つの部位のうち何れか一方が検出されなかった場合に第1の定数を設定し、前記2つの部位がともに検出されなかった場合に第2の定数を設定し、
前記第2の定数の値は、前記第2の定数の値より小さいことを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記
マッチング手段は、前記第1の画像と前記第2の画像との取得間隔に応じて、前記複数の部位のそれぞれの重みを変化させることを特徴とする請求項2乃至4のうち何れか1項に記載の画像処理装置。
【請求項6】
前記
マッチング手段は、前記複数の部位のそれぞれについて、変動のしやすさに応じて、前記重みを変化させることを特徴とする請求項5に記載の画像処理装置。
【請求項7】
前記マッチング手段は、前記第1の被写体と前記第2の被写体との距離が所定距離未満である場合にのみ、前記姿勢の差分に応じた前記マッチングを行うことを特徴とする請求項2乃至6のうち何れか1項に記載の画像処理装置。
【請求項8】
動画像における、前記第1の被写体は追尾対象の被写体であり、前記第2の被写体は前記追尾対象ではない被写体であることを特徴とする請求項1乃至7のうち何れか1項に記載の画像処理装置。
【請求項9】
前記マッチングの結果に応じて、前記追尾対象である前記第1の被写体を特定する表示するか否かの制御がされることを特徴とする請求項8に記載の画像処理装置。
【請求項10】
前記部位は、人体の関節の部位であることを特徴とする請求項1乃至9のうち何れか1項に記載の画像処理装置。
【請求項11】
前記検出手段は、機械学習により学習された学習済みモデルを用いて、前記第1の被写体の複数の部位および前記第2の被写体の複数の部位を推定して、検出を行うことを特徴とする請求項1乃至10のうち何れか1項に記載の画像処理装置。
【請求項12】
撮像素子と、
請求項1乃至11のうち何れか1項に記載の画像処理装置と、
を備えることを特徴とする撮像装置。
【請求項13】
第1の画像から第1の被写体の複数の部位と、第2の画像から第2の被写体の複数の部位とを検出する工程と、
前記検出する工程により検出された前記第1の被写体の複数の部位に基づく姿勢と前記第2の被写体の複数の部位に基づく姿勢との間の姿勢情報としてのベクトルの差分に基づいて、前記第1の被写体と前記第2の被写体とのマッチングを行う工程と、
を備えることを特徴とする画像処理方法。
【請求項14】
請求項1乃至11のうち何れか1項に記載の画像処理装置の各手段をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、撮像装置、画像処理方法およびプログラムに関する。
【背景技術】
【0002】
デジタルカメラ等の撮像装置は、動画像を構成する各フレームから被写体を検出し、検出した被写体を追尾して、オートフォーカス(以下、AF)等の撮影制御を行う。この撮影制御により、ユーザによる撮影をサポートすることができる。関連する技術として、特許文献1に、追跡対象の運動特性や撮影環境の変化の影響を受けにくい視覚追跡技術が提案されている。特許文献1の技術では、パーティクルフィルタを用いた視覚追跡において、尤度を観測する際に用いるエッジ画像の生成に、撮像装置からの距離を画像平面に表した奥行き画像の情報が利用される。また、ニューラルネットワークに関する技術が非特許文献1に開示されている。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】S.Haykin,“Neural Networks A Comprehensive Foundation 2nd Edition”,Prentice Hall,pp.156-255,July 1998
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、動画像を撮影している際に、追尾中の被写体と他の被写体とが交差することがある。この場合、もともと追尾していた被写体から、誤って他の被写体を追尾する事態が生じることがある。特許文献1の技術では、奥行き画像の情報を利用して、追尾対象の被写体を特定しているが、光学条件や2つの被写体の距離関係によっては、追尾対象の被写体を特定することが難しい場合がある。この場合、上記のように、もともと追尾していた被写体から、誤って他の被写体を追尾する事態が生じる可能性がある。
【0006】
本発明は、追尾対象ではない他の被写体を誤って追尾することを抑制することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明の画像処理装置は、第1の画像から第1の被写体の複数の部位と、第2の画像から第2の被写体の複数の部位とを検出する検出手段と、前記検出手段により検出された前記第1の被写体の複数の部位に基づく姿勢と前記第2の被写体の複数の部位に基づく姿勢との間の姿勢情報としてのベクトルの差分に基づいて、前記第1の被写体と前記第2の被写体とのマッチングを行うマッチング手段と、を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、追尾対象ではない他の被写体を誤って追尾することを抑制することができる。
【図面の簡単な説明】
【0009】
【
図2】動画像のフレームおよび処理を示す図である。
【
図4】本実施形態の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の各実施の形態について図面を参照しながら詳細に説明する。しかしながら、以下の各実施の形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は各実施の形態に記載されている構成によって限定されることはない。
【0011】
以下、図面を参照して、本実施形態について説明する。
図1は、撮像装置100の構成を示すブロック図である。撮像装置100は、被写体を撮影して、動画像や静止画を生成し、生成したデータを、テープや固体メモリ、光ディスク、磁気ディスク、半導体メモリ等の各種メディアに記録可能である。撮像装置100は、例えば、デジタルスチルカメラやデジタルビデオカメラ等である。撮像装置100内の各ユニットは、バス160を介して接続されている。また各ユニットは、CPU151により制御される。
【0012】
レンズユニット101は、固定1群レンズ102、ズームレンズ111、絞り103、固定3群レンズ121およびフォーカスレンズ131を有する。レンズユニット101は、他のレンズを有していてもよい。絞り制御部105は、CPU151からの指令に従い、絞りモータ104(AM)を介して絞り103を駆動することにより、絞り103の開口径を調整して撮影時の光量調節を行う。ズーム制御部113は、ズームモータ112(ZM)を介してズームレンズ111を駆動することにより、焦点距離を変更する。
【0013】
フォーカス制御部133は、レンズユニット101のピント方向のずれ量(デフォーカス量)に基づいてフォーカスモータ132(FM)を駆動する駆動量を決定する。また、フォーカス制御部133は、フォーカスモータ132(FM)を介してフォーカスレンズ131を駆動することにより、焦点調節状態を制御する。フォーカス制御部133およびフォーカスモータ132によるフォーカスレンズ131の移動制御により、AF制御が実現される。フォーカスレンズ131は、焦点調節用レンズであり、
図1には単レンズで簡略的に示されているが、通常は複数のレンズで構成される。
【0014】
レンズユニット101を介して撮像素子141上に結像する被写体像は、撮像素子141により電気信号に変換される。撮像素子141は、被写体像(光学像)を電気信号に光電変換を行う光電変換素子である。撮像素子141は、横方向および縦方向にそれぞれ複数の受光素子(画素)が配置されている。撮像信号処理部142は、撮像素子141上に結像されて光電変換された画像を信号処理して画像信号(画像データ)を生成する。これにより、撮像面の画像を取得することができる。
【0015】
撮像信号処理部142が出力する画像データは、撮像制御部143に送られ、一時的にRAM154に記憶される。画像圧縮解凍部153は、RAM154に記憶された画像データを圧縮する。なお、画像圧縮解凍部153は、圧縮された画像データの解凍を行うこともできる。圧縮された画像データは、画像記録媒体157に記録される。これと並行して、RAM154に蓄積された画像データは、画像処理部152に送られる。画像処理部152は、画像データに対して最適なサイズへの縮小処理または拡大処理等の画像処理を行う。また、画像処理部152は、画像データ同士の類似度算出等を行う。
【0016】
画像処理部152により最適なサイズに処理された画像データは、適宜、モニタディスプレイ150に出力される。これにより、モニタディスプレイ150は、プレビュー画像表示やスルー画像表示を行うことができる。また、画像処理部152は、後述する物体検出部162の物体検出結果を画像データに重畳することで、モニタディスプレイ150は、物体検出結果が重畳された画像データを表示できる。
【0017】
RAM154は、リングバッファとして用いることもできる。この場合、所定期間内に撮像された複数の画像データや、画像データごとに対応した物体検出部162の検出結果、後述する位置姿勢変化取得部161が取得した撮像装置の位置姿勢変化等を、RAM154にバッファリングできる。操作スイッチ156は、タッチパネルやボタン等を含む入力インターフェイスであり、モニタディスプレイ150に表示される種々の機能アイコンを選択操作すること等により、様々な操作を行うことができる。
【0018】
CPU151は、操作スイッチ156に入力された操作者からの指示、或いは一時的にRAM154に蓄積された画像データの画素信号の大きさに基づき、撮像素子141の蓄積時間やゲインの設定値を決定する。撮像制御部143は、CPU151から蓄積時間やゲインの設定値の指示を受け取り、撮像素子141を制御する。CPU151は、本実施形態の各処理を主体的に実行する。CPU151は、生成手段およびマッチング手段に対応する。
【0019】
物体検出部162は、画像データから物体が存在する領域を検出する。物体検出部162は、検出手段に対応する。本実施形態では、物体検出部162が行う物体検出処理は、CNN(畳み込みニューラルネットワーク)による特徴抽出処理により実現されるものとする。CNNは、機械学習により学習されたCNNであり、学習済みモデルに対応する。物体検出部162は、CNN以外の機械学習アルゴリズム(決定木やサポートベクターマシン等)により機械学習された学習済みモデルを用いて物体検出処理を行ってもよい。また、物体検出部162は、R-CNN(Regions with CNN features)等により機械学習された学習済みモデルを用いて物体検出処理を行ってもよい。
【0020】
物体検出部162は、画像から、被写体としての人物についての人体における複数の部位を検出する。部位は、局所領域とも称されることがあり、例えば、生体的な部位(頭部や肩等)には限定されず、人物の特徴的な領域であってもよい。
【0021】
物体検出部162は、動物や車等を被写体として、複数の部位を検出してもよい。例えば、物体検出部162は、人物について顔を含む頭部や両肩、胴体、両膝等の代表点を推定することにより検出し、検出結果を出力する。物体検出部162は、上記の各部位以外の部位を検出してもよい。物体検出部162は、人物の人体の部位を矩形領域や点で検出してもよいし、関節同士を結ぶ線分等の情報で検出してもよい。また、物体検出部162は、画像の所定領域(興味領域)から各部位を検出してもよい。なお、物体検出部162は、機械学習された学習済みモデルではなく、被写体から部位を検出する所定の検出手法により、部位の検出を行ってもよい。
【0022】
フォーカス制御部133は、特定の被写体領域に対するAF制御を行う。絞り制御部105は、特定の被写体領域の輝度値を用いた露出制御を行う。画像処理部152は、被写体領域に基づいたガンマ補正やホワイトバランス処理等を行う。上述したように、モニタディスプレイ150は、画像データを表示する。また、物体検出部162は、被写体として人物を検出することができる。画像処理部152は、検出された人物を囲む枠(例えば、矩形の枠)を画像データに重畳してもよい。これにより、モニタディスプレイ150には、画像データとともに、画像データ中に被写体としての人物を囲む矩形の枠が表示される。
【0023】
バッテリ159は、電源管理部158により適切に管理され、撮像装置100の全体に安定した電源供給を行う。フラッシュメモリ155は、撮像装置100の動作に必要な制御プログラムや、各部の動作に用いるパラメータ等が記録されている。ユーザの操作により撮像装置100が起動すると(電源OFF状態から電源ON状態へ移行すると)、フラッシュメモリ155に格納された制御プログラム及びパラメータがRAM154の一部に読み込まれる。CPU151は、RAM154にロードされた制御プログラムを実行することで、本実施形態の処理を実現することができる。
【0024】
位置姿勢変化取得部161は、例えばジャイロや加速度センサ、電子コンパス等の位置姿勢センサにより構成される。位置姿勢変化取得部161は、撮像装置の撮影シーンに対する位置姿勢変化を計測する。位置姿勢変化取得部161が取得した位置姿勢変化は、RAM154に記憶される。距離算出部163は、画像データ中の任意の被写体に対して撮像装置100からの距離(深度)を算出する。算出された距離情報はRAM154に記憶される。画像処理部152は、RAM154に記憶された距離情報を参照して、各種の処理を行う。撮像装置100の構成は、
図1の例には限定されない。
【0025】
図1の撮像装置100のうち、CPU151、画像処理部152および物体検出部162により画像処理装置が構成されてもよい。この画像処理装置は、単体の装置により実現されてもよいし、撮像装置100に内蔵されてもよいし、スマートフォンやタブレット端末等に内蔵されてもよい。また、上記の画像処理装置は、CPU151、画像処理部152および物体検出部162以外の構成(例えば、モニタディスプレイ150や画像圧縮解凍部153等)を有していてもよい。
【0026】
次に、本実施形態の処理について説明する。本実施形態の撮像装置100は、動画像を撮影するものとして説明する。ただし、撮像装置100は、静止画の撮影を行うこともできる。
図2は、動画像のフレームおよび処理を示す図である。
図2の例では、連続した3つのフレーム(画像)が示されるが、フレーム数は4枚以上であってもよい。
図2の例では、n―1番目のフレームn-1、n番目のフレームnおよびn+1番目のフレームn+1が示されている。各フレームは、連続したフレーム(画像)である。
【0027】
図2の例では、追尾対象の被写体は人物Aであるとする。フレームn-1およびフレームn+1において、追尾対象の被写体の周囲は、追尾対象の被写体を特定するための領域(追尾対象領域T)で囲われている。
図2の例では、追尾対象領域Tは、破線で示される矩形の枠としてフレームに重畳されているが、追尾対象領域Tの形状や表示態様等は、
図2の例には限定されない。フレームn-1では、追尾対象は人物Aであるものとする。CPU151は、追尾対象の人物Aについての姿勢情報を、例えば、テンプレートとして登録する。姿勢情報は、人物Aの複数の部位の間の位置関係により人物を表す情報である。登録された姿勢情報は、例えば、RAM154に記憶される。上記の場合、フレームn-1は第1の画像に対応し、人物Aは第1の被写体に対応する。
【0028】
図2の例において、人物Aは走行しており、フレームn-1の次のフレームnでは、人物Aと人物Bとが交差する。また、人物Bの向きは、フレームn-1とフレームnとで異なる。ここでは、人物Bは、人物Aより手前に位置している。つまり、人物Bは、人物Aより撮像装置100に近くに位置している。このため、フレームnにおいて人物Aは人物Bに隠れた状態となる。この場合、被写体は人物Bになる。人物Bの姿勢と登録された人物Aの姿勢とは類似していない。CPU151は、フレームnの人物Bの姿勢情報と登録された人物Aの姿勢情報とを比較して、マッチングを行う。フレームnの人物Bの姿勢と、登録された人物Aの姿勢とは類似していない。このため、CPU151は、マッチングの結果として、フレームnの被写体(人物B)は、人物Aと別人であると判定する。従って、フレームnでは、追尾対象である人物Aが検出されなくなる。
【0029】
図2の例では、フレームnの次のフレームn+1で、追尾対象である人物Aは、人物Bから離れている。CPU151は、フレームn+1に含まれる人物Aと人物Bとのそれぞれについての姿勢情報と登録された人物Aの姿勢情報とのマッチングを行う。フレームn+1における人物Aについての姿勢は、登録された人物Aの姿勢と類似している。このため、CPU151は、マッチングの結果、フレームn+1の中の人物Aが登録された人物Aと同一人物であると判定する。そして、CPU151は、人物Aの追尾を再開する制御を行う。
【0030】
次に、人物の姿勢のモデル化について説明する。
図3(a)は、
図2のフレームn-1およびフレームnを表す図である。
図3(b)は、テンプレートとして登録される人物Aの姿勢情報のモデル(テンプレート姿勢)を示す。テンプレートとして登録される被写体は、人物Bであってもよい。CPU151は、撮像制御部143から入力されるフレームを、順次、物体検出部162に入力する。物体検出部162は、フレーム(画像)をCNNに入力して、フレームの中の人物の複数の部位を推定により検出して、検出された人物および複数の部位の座標を出力する。本実施形態では、物体検出部162は、CNNに画像を入力して、人物の首、頭部、左右肩、左右肘、左右手首、左右膝および左右足首の各部位を検出する。物体検出部162は、人物の下半身の複数の部位を検出してもよい。物体検出部162は、検出した各部位の座標(関節座標)を物体検出結果として、CPU151に出力する。各部位の座標は、円の中の1点(例えば、円の中心)であってもよいし、円の中の偏在した点であってもよい。
【0031】
CPU151は、関節の構造において隣接する部位間の座標同士を連結したベクトルを用いて、姿勢情報を生成する。ベクトルが用いられることで、姿勢情報は、人物の向きも考慮した情報となる。
図3(b)において、フレームn-1における追尾対象の人物Aに関して、CPU151は、首から頭部へのベクトルをv
0、左肩から左肘へのベクトルをv
1等のように、以下の式を定義する。
【0032】
【0033】
図3(c)は、フレームnにおけるマッチング候補である人物Bの姿勢情報のモデルである。この場合、フレームnは第2の画像に対応し、マッチング候補である人物Bは第2の被写体に対応する。CPU151は、登録される人物Aの姿勢情報のモデルに対応して、フレームnにおける人物Bの対応するベクトルを、以下の式で定義する。
【0034】
【0035】
ここで、フレームに含まれる人物の姿勢や障害物の有無によっては検出されない部位が存在することがある。この場合、CPU151は、検出されない部位の座標を必要とするベクトルは定義しないものとする。例えば、
図3(b)の例では、人物Aの右側部分についての部位は検出されないため、フレームnの人物Aの首から右肩へのベクトルは定義されない。一方、
図3(c)の例では、人物Bの姿勢情報として、首と右肩が検出されているため、首から右肩へのベクトルv’
4は定義される。
【0036】
CPU151は、ベクトルviとベクトルv’iとの距離(差分)を、dist(vi、v’i)としたとき、人物間の姿勢の距離を、dist(vi、v’i)の重み付け和として算出する。上述したように、フレームに含まれる人物のベクトルvi、v’iは定義されないことがある。CPU151は、ベクトルvi、v’iが定義されているかに応じて、上記のdist(vi、v’i)を、以下の式により算出する。なお、以下の式において、C0、C1は、既知の定数とする。
【0037】
【0038】
CPU151は、各ベクトルに対して、重み付けを行う。各ベクトルに対する重みは、以下の式で表されるものとする。
【0039】
【0040】
CPU151は、人物間の姿勢の距離を、以下の式を用いて算出する。
【0041】
【0042】
ベクトルvi、v’iの両者が定義されている場合、dist(vi、v’i)は、対応するベクトル(連結している部位間の座標同士を結んだベクトル)の差分を表す。例えば、首から左肩までについてのdist(vi、v’i)は、2人の人物についての首から左肩を結ぶベクトルの差分を示す。そして、CPU151は、各ベクトルの差分に対して、それぞれ異なる重みWiを重み付けする。なお、重みWiは、全て異なっている必要はなく、一部が同一であってもよい。
【0043】
Distは、dist(vi、v’i)の重み付け和であり、2人の人物間の姿勢の距離を示す値である。つまり、姿勢の距離であるDistは、マッチングを行う2人の人物についての姿勢の差分を示す。姿勢の差分が小さければ、2人の人物の姿勢は類似していることになる。例えば、登録された人物とマッチング候補の人物との姿勢の距離Dist(姿勢の差分)が小さくなるに応じて、両者は同一人物である可能性が高くなる。一方、Distの値が大きくなると、両者は同一人物である可能性が低くなる。そこで、CPU151は、登録された人物とマッチング候補の人物とのマッチングを、Distの値に基づいて行う。
【0044】
ここで、上述した数3の式のように、C0、C1が定義される。C0は第1の定数に対応し、C1は第2の定数に対応する。CPU151は、C1の値がC0の値よりも小さくように設定する。これは、2人の人物が同一の人物である場合、関節の部位(関節部位)が隠れている状態が維持されている可能性が高く、その部位が、Distに与える影響を小さくするためである。以下、「C0=0.8」、「C1=0.2」として設定されるものとして説明する。ただし、「C1<C0」であれば、C0、C1は任意の値に設定されてよい。
【0045】
また、vi、v’iがともに定義されており、且つ「dist(vi、v’i)=0」となることがある。この場合において、「C1=0」に設定されると、vi、v’iがともに定義されていない場合の定数C1と、vi、v’iがともに定義されていない場合のベクトルの距離dist(vi、v’i)とが同じ値になる。vi、v’iがともに定義されている場合のベクトルの差分は、実際の対象となる部位間のベクトルが分かっているときの値であり、その信頼性は高い。一方、vi、v’iがともに定義されていない場合の定数C1は、実際の対象となる部位間のベクトルが分かっていないため、その信頼性は低い。この場合、追尾対象を誤る可能性がある。そこで、誤追尾を抑制するため、CPU151は、vi、v’iがともに定義されていない場合の定数C1を「0」より大きい値に設定する。
【0046】
また、上記の観点から、vi、v’iの何れか一方が定義されている場合の定数C0は、vi、v’iがともに定義されていない場合のC1より、信頼性が高い。このため、CPU151は、定数C0を定数C1より大きい値に設定する。なお、ある程度の誤追尾が許容され、vi、v’iがともに定義されている部位間のベクトルのみに基づいて、dist(vi、v’i)を算出する場合には、「C0=C1=0」に設定されてもよい。
【0047】
CPU151は、重みW
iを、対応する部位の変動のしやすさに応じて事前に設定してもよい。例えば、
図3において、首から頭部へのベクトルv
0は、左肘から左手首へのベクトルv
3よりも、変動しやすい。つまり、
図3の例におけるベクトルの変動のしやすさは、「v
0<v
1<v
2<v
3」となる。そこで、CPU151は、各ベクトルに対応する重みを、「W
0>W
1>W
2>W
3」に設定する。CPU151は、他のベクトルに関しても、同様の重み付けを行う。つまり、CPU151は、部位間のベクトルが変動しやすさに応じて、対応するベクトルの重みを決定する。具体的には、CPU151は、部位間のベクトルが変動しやすくなるに応じて、対応するベクトルの重みを小さくする。換言すれば、CPU151は、部位間のベクトルが変動しにくくなるに応じて、対応するベクトルの重みを大きくする。
【0048】
CPU151は、マッチングを行う対象の2枚の画像の取得間隔ΔTを加味して、重みWiを決定してもよい。同じ被写体間であっても、時間が経過するに応じて、変動しやすい部位がある。そこで、CPU151は、画像の取得間隔ΔTが長くなるに応じて、変動しやすい部位のベクトルに対する重みWiを小さく設定してもよい。本実施形態では、各ベクトルのそれぞれについて、変動のしやすさを示す値miを以下のように設定する。ただし、以下の数6において、「0≦mi≦1」である。
【0049】
【0050】
このとき、CPU151は、重みWiを以下の式により決定する。
【0051】
【0052】
これにより、取得間隔ΔTが短くなるに応じて、全ての部位のベクトルの重みWiを近づけることができる。一方、取得間隔ΔTが長くなる時には、変動しやすい部位の影響を小さくすることができる。
【0053】
図4は、本実施形態の処理の流れを示すフローチャートである。S200で、CPU151は、撮像制御部143から供給される画像を取得する。撮像制御部143から供給される画像は、CPU151以外にも供給され得る。取得される画像は、フレームnであるとする。S201において、CPU151は、人物追尾中であるかを判定する。例えば、撮像装置100に自動追尾機能が設定可能な場合、自動追尾機能の設定が有効になっているか、無効になっているかに基づいて、CPU151はS201の判定を行うことができる。なお、フレームn-1で、追尾中の人物は人物Aであるとして、人物Aの姿勢情報がテンプレートとして登録されているものとする。
【0054】
CPU151は、S201でNoと判定した場合、被写体としての人物の追尾は行われないため、処理対象外として処理を終了させる。CPU151は、S201でYesと判定した場合、処理をS202に進める。S202で、CPU151は、物体検出部162に、人物の部位を検出させる。物体検出部162は、フレーム(画像)をCNNに入力して、フレームの中の1以上の人物の部位の座標を出力する。物体検出部162は、CNNを用いて、部位の座標を人物ごとにクラスタリングされた状態で出力してもよい。この場合、CNNから出力されたクラスタの数は、フレーム内に存在する人物の数とみなすことができる。物体検出部162は、被写体としての人物および人物の複数の部位を推定して、推定結果を出力してもよい。
【0055】
S203で、CPU151は、追尾中の人物Aとマッチング候補の人物Bとの姿勢の距離Distを算出する。上述したように、Distは、2人の人物の間の姿勢の差分を表す。従って、Distが小さいほど、フレームn-1で登録された人物の姿勢と、フレームnで検出された人物との姿勢とが類似することになる。この場合、登録された人物とフレームnで検出された人物とが同一人物である尤度が高い。
【0056】
ここで、フレームnで検出される人物が複数である場合がある。検出された複数の人物は、マッチング候補の人物である。この場合、CPU151は、登録された人物と検出された複数の人物とのそれぞれについてDistを算出する。そして、CPU151は、算出された複数のDistのうち、最も値が小さいDistを選択する。S204で、CPU151は、選択されたDistが所定の閾値未満である人物が、フレームnの中に存在するかを判定する。Distは、姿勢の差分を表すため、2人の人物について算出されたDistが小さいほど、2人の人物が同一人物である可能性が高い。
【0057】
CPU151は、S204でYESと判定した場合、処理をS205に進める。この場合、テンプレートとして登録された人物と同一人物であると判定される人物がフレームnに存在する。S205で、CPU151は、選択されたDistに対応する人物を追尾する。一方、CPU151は、S204でNOと判定した場合、処理をS206に進める。この場合、CPU151は、追尾中の人物が見失われた状態(ロスト状態)であると判定する。このとき、CPU151は、追尾対象領域Tが表示されないように制御してもよい。例えば、
図2のように、フレームn-1で表示されていた追尾対象領域Tは、フレームnでは表示されなくなる。これにより、操作者に対して、追尾対象が見失われたことを提示することができる。
【0058】
図4に示されるように、S207で、CPU151は、
図4の各処理を終了するかを判定する。例えば、CPU151は、S200で取得された画像が、動画像を構成する複数の画像のうち最後の画像であるか否かに基づいて、S207の判定を行ってもよい。CPU151は、S207でYESと判定した場合、処理を終了させる。一方、CPU151は、S207でNOと判定した場合、処理をS200に戻す。そして、次の画像として、フレームn+1が取得される。フレームn+1が取得されると、
図3の各処理が行われる。
図2の例の場合、フレームn+1が第2の画像に対応し、人物A、人物Bが第2の被写体に対応する。例えば、CPU151が、フレームnではS204でNOと判定し、フレームn+1ではS204でYESと判定することがある。例えば、
図2の例の場合、フレームn+1で人物Aが検出される。この場合、追尾対象であった人物Aの追尾が再開される。
【0059】
ここで、物体検出部162は、フレームn-1で1人の人物のみを検出し、フレームnでも1人の人物のみを検出することがある。このような場合、CPU151は、姿勢の距離(姿勢の差分)を生成することなく、検出された1人の人物のみをマッチングして、処理を終了させてもよい。この場合、追尾対象の人物を誤ることはない。また、フレームn-1で検出された人物Bの座標とフレームnで検出された人物Bの座標との距離が所定距離未満であり、フレームn-1で検出された人物Aの座標とフレームnで検出された人物Bの座標との距離が所定距離以上である場合がある。このような場合、位置関係から人物B同士を正しくマッチングすることができるため、CPU151は、S203の処理を行うことなく、人物Bをマッチングして、処理を終了させてもよい。つまり、処理対象のフレーム(例えば、フレームn)において、人物Aと人物Bとの距離が所定距離以上である場合、人物Aと人物Bとはマッチング可能な程度に離れている。このような場合、人物Aと人物Bとは交差することはない。従って、CPU151は、人物Aと人物Bとが所定距離未満である場合にのみ、姿勢の距離(姿勢の差分)に応じたマッチングを行うようにしてもよい。
【0060】
上述したように、物体検出部162は、CNNを用いて、被写体および複数の部位を検出する。CNNは、例えば、畳み込み層とプーリング層とが交互に積層された層構造に、全結合層および出力層が結合されたネットワークであってもよい。この場合、CNNの学習としては、例えば、誤差逆伝搬法等が適用され得る。また、CNNは、特徴検出層(S層)と特徴統合層(C層)とをセットとした、ネオコグニトロンのCNNであってもよい。この場合、CNNの学習としては、「Add-if Silent」と称される学習手法が適用され得る。
【0061】
CNNの機械学習は、サーバ等の所定のコンピュータが行ってもよい。画像処理装置または撮像装置100は、学習されたCNNを、所定のコンピュータから取得してもよい。この場合、画像処理装置または撮像装置100は、外部装置と通信を行う通信手段(例えば、通信インタフェース)を有する。例えば、所定のコンピュータが、学習用の画像データを入力とし、学習用の画像データに対応する被写体および被写体の複数の部位を教師データとした教師あり学習を行うことで、CNNの学習が行われてもよい。以上により、学習済みのCNNが生成される。画像処理装置または撮像装置100は、所定のコンピュータから通信手段を介して、学習済みのCNNを取得してもよい。CNNの学習は、撮像装置100で行われてもよい。CNN以外の他の機械学習アルゴリズムにより生成される学習済みを用いる場合も同様である。
【0062】
また、上述した画像処理装置または撮像装置100は、推定手段としての物体検出部162を有していなくてもよい。画像処理装置または撮像装置100は、通信手段を介して、物体検出部162の機能を有する推定装置(例えば、エッジコンピュータ)に画像を送信する。推定装置は、上述した物体検出部162と同様の処理を行い、推定結果を画像処理装置または撮像装置100に送信する。これにより、CPU151は、本実施形態の処理を行うことができる。
【0063】
以上、説明したように、本実施形態では、動画像を構成する複数の画像に含まれる被写体の複数の部位が検出され、複数の部位のそれぞれに応じた重み付けがされる。そして、重み付けがされた複数の部位に基づいて、2つの被写体の間の姿勢の距離(差分)が取得され、2つの被写体が同一人物であるかを推定できる。これにより、動画像を撮影している際に、追尾対象の人物の近くに異なる人物がいて、人物同士が交差したとしても、追尾対象の人物が誤ることを防止することができる。なお、上述した実施形態では、動画像の例について説明したが、本実施形態は、連続して取得される複数の画像(例えば、スルー画像等)にも適用することができる。
【0064】
以上、本発明の好ましい実施の形態について説明したが、本発明は上述した各実施の形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。本発明は、上述の各実施の形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの1つ以上のプロセッサーがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0065】
100 撮像装置
150 モニタディスプレイ
151 CPU
152 画像処理部
162 物体検出部