JP7435781B2 - 画像選択装置、画像選択方法、及びプログラム - Google Patents

画像選択装置、画像選択方法、及びプログラム Download PDF

Info

Publication number
JP7435781B2
JP7435781B2 JP2022534551A JP2022534551A JP7435781B2 JP 7435781 B2 JP7435781 B2 JP 7435781B2 JP 2022534551 A JP2022534551 A JP 2022534551A JP 2022534551 A JP2022534551 A JP 2022534551A JP 7435781 B2 JP7435781 B2 JP 7435781B2
Authority
JP
Japan
Prior art keywords
image
person
image selection
key points
missing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022534551A
Other languages
English (en)
Other versions
JPWO2022009327A1 (ja
JPWO2022009327A5 (ja
Inventor
登 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2022009327A1 publication Critical patent/JPWO2022009327A1/ja
Publication of JPWO2022009327A5 publication Critical patent/JPWO2022009327A5/ja
Application granted granted Critical
Publication of JP7435781B2 publication Critical patent/JP7435781B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5854Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using shape and object relationship
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/23Recognition of whole body movements, e.g. for sport training
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Description

本発明は、画像選択装置、画像選択方法、及びプログラムに関する。
近年、監視システム等において、監視カメラの画像から人物の姿勢や行動等の状態の検出や検索を行う技術が利用されている。関連する技術として、例えば、特許文献1及び2が知られている。特許文献1には、深さ映像に含まれる人物の頭や手足等のキージョイントに基づいて、類似する人物の姿勢を検索する技術が開示されている。特許文献2には、人物の姿勢と関連しないが、画像に付加された傾き等の姿勢情報を利用して類似画像を検索する技術が開示されている。なお、その他に、人物の骨格推定に関連する技術として、非特許文献1が知られている。
一方、検索対象となる画像において、例えば所持している物などによって人体の一部が隠れていたり、自己の体によって特定の部位が隠れていたりして、人体の情報の一部が欠損していることもある。これに対して特許文献3には、学習モデルを用いて人体のうち欠損している部分を補完することが記載されている。
特表2014-522035号公報 特開2006-260405号公報 国際公開第2019/186833号
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
所望する姿勢の人を含む画像を選択する場合において、選択対象となる複数の画像に、人体の情報の一部が欠損している画像が含まれていると、所望する姿勢とは異なる姿勢の人を含む画像を選択する可能性が出てくる。この場合、画像の選択精度が低下してしまう。
本発明の目的は、選択対象となる複数の画像に、人の情報の一部が欠損している画像が含まれていた場合において、画像の選択精度を低下しにくくすることにある。
本発明によれば、人の姿勢を示すクエリ情報を取得するクエリ取得手段と、
前記クエリ情報を用いて、複数の選択対象画像から少なくとも一つの目的画像を選択する画像選択手段と、
を備え、
前記クエリ情報は、人の身体の互いに異なる部分を示す複数のキーポイントの相対位置を含んでおり、
前記画像選択手段は、
前記選択対象画像に含まれている人の前記キーポイントの相対位置、当該人において欠損している前記キーポイントである欠損キーポイントの種類及び数の少なくとも一方、並びに、前記クエリ情報を用いて、前記少なくとも一つの目的画像を選択する、画像選択装置が提供される。
本発明によれば、コンピュータが、
人の姿勢を示すクエリ情報を取得するクエリ取得処理と、
前記クエリ情報を用いて、複数の選択対象画像から少なくとも一つの目的画像を選択する画像選択処理と、
を行い、
前記クエリ情報は、人の身体の互いに異なる部分を示す複数のキーポイントの相対位置を含んでおり、
前記画像選択処理において、前記コンピュータが、
前記選択対象画像に含まれている人の前記キーポイントの相対位置、当該人において欠損している前記キーポイントである欠損キーポイントの種類及び数の少なくとも一方、並びに、前記クエリ情報を用いて、前記少なくとも一つの目的画像を選択する、画像選択方法が提供される。
本発明によれば、人の姿勢を示すクエリ情報を取得するクエリ取得機能と、
前記クエリ情報を用いて、複数の選択対象画像から少なくとも一つの目的画像を選択する画像選択機能と、
を持たせ、
前記クエリ情報は、人の身体の互いに異なる部分を示す複数のキーポイントの相対位置を含んでおり、
前記画像選択機能は、
前記選択対象画像に含まれている人の前記キーポイントの相対位置、当該人において欠損している前記キーポイントである欠損キーポイントの種類及び数の少なくとも一方、並びに、前記クエリ情報を用いて、前記少なくとも一つの目的画像を選択する、プログラムが提供される。
本発明によれば、選択対象となる複数の画像に、人の一部が欠損している画像が含まれていた場合においても、画像の選択精度は低下しにくい。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
実施の形態に係る画像処理装置の概要を示す構成図である。 実施の形態1に係る画像処理装置の構成を示す構成図である。 実施の形態1に係る画像処理方法を示すフローチャートである。 実施の形態1に係る分類方法を示すフローチャートである。 実施の形態1に係る検索方法を示すフローチャートである。 実施の形態1に係る骨格構造の検出例を示す図である。 実施の形態1に係る人体モデルを示す図である。 実施の形態1に係る骨格構造の検出例を示す図である。 実施の形態1に係る骨格構造の検出例を示す図である。 実施の形態1に係る骨格構造の検出例を示す図である。 実施の形態1に係る分類方法の具体例を示すグラフである。 実施の形態1に係る分類結果の表示例を示す図である。 実施の形態1に係る検索方法を説明するための図である。 実施の形態1に係る検索方法を説明するための図である。 実施の形態1に係る検索方法を説明するための図である。 実施の形態1に係る検索方法を説明するための図である。 実施の形態1に係る検索結果の表示例を示す図である。 実施の形態2に係る画像処理装置の構成を示す構成図である。 実施の形態2に係る画像処理方法を示すフローチャートである。 実施の形態2に係る身長画素数算出方法の具体例1を示すフローチャートである。 実施の形態2に係る身長画素数算出方法の具体例2を示すフローチャートである。 実施の形態2に係る身長画素数算出方法の具体例を示すフローチャートである。 実施の形態2に係る正規化方法を示すフローチャートである。 実施の形態2に係る人体モデルを示す図である。 実施の形態2に係る骨格構造の検出例を示す図である。 実施の形態2に係る骨格構造の検出例を示す図である。 実施の形態2に係る骨格構造の検出例を示す図である。 実施の形態2に係る人体モデルを示す図である。 実施の形態2に係る骨格構造の検出例を示す図である。 実施の形態2に係る身長画素数算出方法を説明するためのヒストグラムである。 実施の形態2に係る骨格構造の検出例を示す図である。 実施の形態2に係る3次元人体モデルを示す図である。 実施の形態2に係る身長画素数算出方法を説明するための図である。 実施の形態2に係る身長画素数算出方法を説明するための図である。 実施の形態2に係る身長画素数算出方法を説明するための図である。 実施の形態2に係る正規化方法を説明するための図である。 実施の形態2に係る正規化方法を説明するための図である。 実施の形態2に係る正規化方法を説明するための図である。 画像処理装置のハードウェア構成例を示す図である。 検索方法6に係る検索部の機能構成の一例を示す図である。 検索方法6において検索部が行う処理の一例を示すフローチャートである。 図41のステップS310の第1の詳細例を示すフローチャートである。 図42のステップS430で行われる処理の一例を説明するための図である。 図42のステップS430で行われる処理の一例を説明するための図である。 図41のステップS310の第2の詳細例を示すフローチャートである。 欠損キーポイントの重み付けの値を決める方法の一例を示す図である。 図45のステップS402,S430で行われる処理の一例を説明するための図である。 図45のステップS402,S430で行われる処理の一例を説明するための図である。 図41の変形例を示すフローチャートである。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(実施の形態に至る検討)
近年、ディープラーニング等の機械学習を活用した画像認識技術が様々なシステムに応用されている。例えば、監視カメラの画像により監視を行う監視システムへの適用が進められている。監視システムに機械学習を活用することで、画像から人物の姿勢や行動等の状態をある程度把握することが可能とされつつある。
しかしながら、このような関連する技術では、必ずしもオンデマンドにユーザが望む人物の状態を把握できない場合がある。例えば、ユーザが検索し把握したい人物の状態を事前に特定できている場合もあれば、未知の状態のように具体的に特定できていない場合もある。そうすると、場合によっては、ユーザが検索したい人物の状態を詳細に指定することができない。また、人物の体の一部が隠れているような場合には検索等を行うことができない。関連する技術では、特定の検索条件のみからしか人物の状態を検索できないため、所望の人物の状態を柔軟に検索や分類することが困難である。
そこで、発明者らは、オンデマンドに画像からユーザ所望の人物の状態を認識するため、非特許文献1などの骨格推定技術を利用する方法を検討した。非特許文献1に開示されたOpenPose等のように、関連する骨格推定技術では、様々なパターンの正解付けされた画像データを学習することで、人物の骨格を推定する。以下の実施の形態では、このような骨格推定技術を活用することで、人物の状態を柔軟に認識することを可能とする。
なお、OpenPose等の骨格推定技術により推定される骨格構造は、関節等の特徴的な点である「キーポイント」と、キーポイント間のリンクを示す「ボーン(ボーンリンク)」とから構成される。このため、以下の実施の形態では、骨格構造について「キーポイント」と「ボーン」という用語を用いて説明するが、特に限定されない限り、「キーポイント」は人物の「関節」に対応し、「ボーン」は人物の「骨」に対応している。
(実施の形態の概要)
図1は、実施の形態に係る画像処理装置10の概要を示している。図1に示すように、画像処理装置10は、骨格検出部11、特徴量算出部12、及び認識部13を備えている。骨格検出部11は、カメラ等から取得される2次元画像に基づいて、複数の人物の2次元骨格構造を検出する。特徴量算出部12は、骨格検出部11により検出された複数の2次元骨格構造の特徴量を算出する。認識部13は、特徴量算出部12により算出された複数の特徴量の類似度に基づいて、複数の人物の状態の認識処理を行う。認識処理は、人物の状態の分類処理や検索処理(選択処理)等である。このため、画像処理装置10は画像選択装置としても機能する。
このように、実施の形態では、2次元画像から人物の2次元骨格構造を検出し、この2次元骨格構造から算出される特徴量に基づいて人物の状態の分類や検等の認識処理を行うことで、所望の人物の状態を柔軟に認識することができる。
(実施の形態1)以下、図面を参照して実施の形態1について説明する。図2は、本実施の形態に係る画像処理装置100の構成を示している。画像処理装置100は、カメラ200及びデータベース(DB)110とともに画像処理システム1を構成する。画像処理装置100を含む画像処理システム1は、画像から推定される人物の骨格構造に基づき、人物の姿勢や行動等の状態を分類及び検索するシステムである。なお、画像処理装置100も、画像選択装置としても機能する。
カメラ200は、2次元の画像を生成する監視カメラ等の撮像部である。カメラ200は、所定の箇所に設置されて、設置個所から撮像領域における人物等を撮像する。カメラ200は、撮像した画像(映像)を画像処理装置100へ出力可能に直接接続、もしくはネットワーク等を介して接続されている。なお、カメラ200を画像処理装置100の内部に設けてもよい。
データベース110は、画像処理装置100の処理に必要な情報(データ)や処理結果等を格納するデータベースである。データベース110は、画像取得部101が取得した画像や、骨格構造検出部102の検出結果、機械学習用のデータ、特徴量算出部103が算出した特徴量、分類部104の分類結果、検索部105の検索結果等を記憶する。データベース110は、画像処理装置100と必要に応じてデータを入出力可能に直接接続、もしくはネットワーク等を介して接続されている。なお、データベース110をフラッシュメモリなどの不揮発性メモリやハードディスク装置等として、画像処理装置100の内部に設けてもよい。
図2に示すように、画像処理装置100は、画像取得部101、骨格構造検出部102、特徴量算出部103、分類部104、検索部105、入力部106、及び表示部107を備えている。なお、各部(ブロック)の構成は一例であり、後述の方法(動作)が可能であれば、その他の各部で構成されてもよい。また、画像処理装置100は、例えば、プログラムを実行するパーソナルコンピュータやサーバ等のコンピュータ装置で実現されるが、1つの装置で実現してもよいし、ネットワーク上の複数の装置で実現してもよい。例えば、入力部106や表示部107等を外部の装置としてもよい。また、分類部104及び検索部105の両方を備えていてもよいし、いずれか一方のみを備えていてもよい。分類部104及び検索部105の両方、もしくは一方は、人物の状態の認識処理を行う認識部である。
画像取得部101は、カメラ200が撮像した人物を含む2次元の画像を取得する。画像取得部101は、例えば、所定の監視期間にカメラ200が撮像した、人物を含む画像(複数の画像を含む映像)を取得する。なお、カメラ200からの取得に限らず、予め用意された人物を含む画像をデータベース110等から取得してもよい。
骨格構造検出部102は、取得された2次元の画像に基づき、画像内の人物の2次元の骨格構造を検出する。骨格構造検出部102は、取得された画像の中で認識される全ての人物について、骨格構造を検出する。骨格構造検出部102は、機械学習を用いた骨格推定技術を用いて、認識される人物の関節等の特徴に基づき人物の骨格構造を検出する。骨格構造検出部102は、例えば、非特許文献1のOpenPose等の骨格推定技術を用いる。
特徴量算出部103は、検出された2次元の骨格構造の特徴量を算出し、算出した特徴量を、処理対象となった画像に紐づけてデータベース110に格納する。骨格構造の特徴量は、人物の骨格の特徴を示しており、人物の骨格に基づいて人物の状態を分類や検索するための要素となる。通常、この特徴量は、複数のパラメータ(例えば後述する分類要素)を含んでいる。そして特徴量は、骨格構造の全体の特徴量でもよいし、骨格構造の一部の特徴量でもよく、骨格構造の各部のように複数の特徴量を含んでもよい。特徴量の算出方法は、機械学習や正規化等の任意の方法でよく、正規化として最小値や最大値を求めてもよい。一例として、特徴量は、骨格構造を機械学習することで得られた特徴量や、骨格構造の頭部から足部までの画像上の大きさ等である。骨格構造の大きさは、画像上の骨格構造を含む骨格領域の上下方向の高さや面積等である。上下方向(高さ方向または縦方向)は、画像における上下の方向(Y軸方向)であり、例えば、地面(基準面)に対し垂直な方向である。また、左右方向(横方向)は、画像における左右の方向(X軸方向)であり、例えば、地面に対し平行な方向である。
なお、ユーザが望む分類や検索を行うためには、分類や検索処理に対しロバスト性を有する特徴量を用いることが好ましい。例えば、ユーザが、人物の向きや体型に依存しない分類や検索を望む場合、人物の向きや体型にロバストな特徴量を使用してもよい。同じ姿勢で様々な方向に向いている人物の骨格や同じ姿勢で様々な体型の人物の骨格を学習することや、骨格の上下方向のみの特徴を抽出することで、人物の向きや体型に依存しない特徴量を得ることができる。
分類部104は、データベース110に格納された複数の骨格構造を、骨格構造の特徴量の類似度に基づいて分類する(クラスタリングする)。分類部104は、人物の状態の認識処理として、骨格構造の特徴量に基づいて複数の人物の状態を分類しているとも言える。類似度は、骨格構造の特徴量間の距離である。分類部104は、骨格構造の全体の特徴量の類似度により分類してもよいし、骨格構造の一部の特徴量の類似度により分類してもよく、骨格構造の第1の部分(例えば両手)及び第2の部分(例えば両足)の特徴量の類似度により分類してもよい。なお、各画像における人物の骨格構造の特徴量に基づいて人物の姿勢を分類してもよいし、時系列に連続する複数の画像における人物の骨格構造の特徴量の変化に基づいて人物の行動を分類してもよい。すなわち、分類部104は、骨格構造の特徴量に基づいて人物の姿勢や行動を含む人物の状態を分類できる。例えば、分類部104は、所定の監視期間に撮像された複数の画像における複数の骨格構造を分類対象とする。分類部104は、分類対象の特徴量間の類似度を求め、類似度の高い骨格構造が同じクラスタ(似た姿勢のグループ)となるように分類する。なお、検索と同様に、分類条件をユーザが指定できるようにしてもよい。分類部104は、骨格構造の分類結果をデータベース110に格納するとともに、表示部107に表示する。
検索部105は、データベース110に格納された複数の骨格構造の中から、検索クエリ(クエリ状態)の特徴量と類似度の高い骨格構造を検索する。検索部105は、人物の状態の認識処理として、骨格構造の特徴量に基づいて複数の人物の状態の中から、検索条件(クエリ状態)に該当する人物の状態を検索しているとも言える。分類と同様に、類似度は、骨格構造の特徴量間の距離である。検索部105は、骨格構造の全体の特徴量の類似度により検索してもよいし、骨格構造の一部の特徴量の類似度により検索してもよく、骨格構造の第1の部分(例えば両手)及び第2の部分(例えば両足)の特徴量の類似度により検索してもよい。なお、各画像における人物の骨格構造の特徴量に基づいて人物の姿勢を検索してもよいし、時系列に連続する複数の画像における人物の骨格構造の特徴量の変化に基づいて人物の行動を検索してもよい。すなわち、検索部105は、骨格構造の特徴量に基づいて人物の姿勢や行動を含む人物の状態を検索できる。例えば、検索部105は、分類対象と同様に、所定の監視期間に撮像された複数の画像における複数の骨格構造の特徴量を検索対象とする。また、分類部104が表示した分類結果の中からユーザが指定した骨格構造(姿勢)を検索クエリ(検索キー)とする。なお、分類結果に限らず、分類されていない複数の骨格構造の中から検索クエリを選択してもよいし、検索クエリとなる骨格構造をユーザが入力してもよい。検索部105は、検索対象の特徴量の中から、検索クエリの骨格構造の特徴量と類似度の高い特徴量を検索する。検索部105は、特徴量の検索結果をデータベース110に格納するとともに、表示部107に表示する。
入力部106は、画像処理装置100を操作するユーザから入力された情報を取得する入力インタフェースである。例えば、ユーザは、監視カメラの画像から不審な状態の人物を監視する監視者である。入力部106は、例えば、GUI(Graphical User Interface)であり、キーボードやマウス、タッチパネル等の入力装置から、ユーザの操作に応じた情報が入力される。例えば、入力部106は、分類部104により分類された骨格構造(姿勢)の中から、指定された人物の骨格構造を検索クエリとして受け付ける。
表示部107は、画像処理装置100の動作(処理)の結果等を表示する表示部であり、例えば、液晶ディスプレイや有機EL(Electro Luminescence)ディスプレイ等のディスプレイ装置である。表示部107は、分類部104の分類結果や検索部105の検索結果を類似度等に応じてGUIに表示する。
図39は、画像処理装置100のハードウェア構成例を示す図である。画像処理装置100は、バス1010、プロセッサ1020、メモリ1030、ストレージデバイス1040、入出力インタフェース1050、及びネットワークインタフェース1060を有する。
バス1010は、プロセッサ1020、メモリ1030、ストレージデバイス1040、入出力インタフェース1050、及びネットワークインタフェース1060が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1020などを互いに接続する方法は、バス接続に限定されない。
プロセッサ1020は、CPU(Central Processing Unit) やGPU(Graphics Processing Unit)などで実現されるプロセッサである。
メモリ1030は、RAM(Random Access Memory)などで実現される主記憶装置である。
ストレージデバイス1040は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、メモリカード、又はROM(Read Only Memory)などで実現される補助記憶装置である。ストレージデバイス1040は画像処理装置100の各機能(例えば画像取得部101、骨格構造検出部102、特徴量算出部103、分類部104、検索部105、及び入力部106)を実現するプログラムモジュールを記憶している。プロセッサ1020がこれら各プログラムモジュールをメモリ1030上に読み込んで実行することで、そのプログラムモジュールに対応する各機能が実現される。また、ストレージデバイス1040はデータベース110としても機能することもある。
入出力インタフェース1050は、画像処理装置100と各種入出力機器とを接続するためのインタフェースである。データベース110が画像処理装置100の外部に位置する場合、画像処理装置100は、入出力インタフェース1050を介してデータベース110と接続してもよい。
ネットワークインタフェース1060は、画像処理装置100をネットワークに接続するためのインタフェースである。このネットワークは、例えばLAN(Local Area Network)やWAN(Wide Area Network)である。ネットワークインタフェース1060がネットワークに接続する方法は、無線接続であってもよいし、有線接続であってもよい。画像処理装置100は、ネットワークインタフェース1060を介してカメラ200と通信してもよい。データベース110が画像処理装置100の外部に位置する場合、画像処理装置100は、ネットワークインタフェース1060を介してデータベース110と接続してもよい。
図3~図5は、本実施の形態に係る画像処理装置100の動作を示している。図3は、画像処理装置100における画像取得から検索処理までの流れを示し、図4は、図3の分類処理(S104)の流れを示し、図5は、図3の検索処理(S105)の流れを示している。
図3に示すように、画像処理装置100は、カメラ200から画像を取得する(S101)。画像取得部101は、骨格構造から分類や検索を行うために人物を撮像した画像を取得し、取得した画像をデータベース110に格納する。画像取得部101は、例えば、所定の監視期間に撮像された複数の画像を取得し、複数の画像に含まれる全ての人物について以降の処理を行う。
続いて、画像処理装置100は、取得した人物の画像に基づいて人物の骨格構造を検出する(S102)。図6は、骨格構造の検出例を示している。図6に示すように、監視カメラ等から取得した画像には複数の人物が含まれており、画像に含まれる各人物について骨格構造を検出する。
図7は、このとき検出する人体モデル300の骨格構造を示しており、図8~図10は、骨格構造の検出例を示している。骨格構造検出部102は、OpenPose等の骨格推定技術を用いて、2次元の画像から図7のような人体モデル(2次元骨格モデル)300の骨格構造を検出する。人体モデル300は、人物の関節等のキーポイントと、各キーポイントを結ぶボーンから構成された2次元モデルである。
骨格構造検出部102は、例えば、画像の中からキーポイントとなり得る特徴点を抽出し、キーポイントの画像を機械学習した情報を参照して、人物の各キーポイントを検出する。図7の例では、人物のキーポイントとして、頭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を検出する。骨格構造検出部102は、検出した人物の骨格構造をデータベース110に格納する。
図8は、直立した状態の人物を検出する例である。図8では、直立した人物が正面から撮像されており、正面から見たボーンB1、ボーンB51及びボーンB52、ボーンB61及びボーンB62、ボーンB71及びボーンB72がそれぞれ重ならずに検出され、右足のボーンB61及びボーンB71は左足のボーンB62及びボーンB72よりも多少折れ曲がっている。
図9は、しゃがみ込んでいる状態の人物を検出する例である。図9では、しゃがみ込んでいる人物が右側から撮像されており、右側から見たボーンB1、ボーンB51及びボーンB52、ボーンB61及びボーンB62、ボーンB71及びボーンB72がそれぞれ検出され、右足のボーンB61及びボーンB71と左足のボーンB62及びボーンB72は大きく折れ曲がり、かつ、重なっている。
図10は、寝込んでいる状態の人物を検出する例である。図10では、寝込んでいる人物が左斜め前から撮像されており、左斜め前から見たボーンB1、ボーンB51及びボーンB52、ボーンB61及びボーンB62、ボーンB71及びボーンB72がそれぞれ検出され、右足のボーンB61及びボーンB71と左足のボーンB62及びボーンB72は折れ曲がり、かつ、重なっている。
続いて、図3に示すように、画像処理装置100は、検出された骨格構造の特徴量を算出する(S103)。例えば、骨格領域の高さや面積を特徴量とする場合、特徴量算出部103は、骨格構造を含む領域を抽出し、その領域の高さ(画素数)や面積(画素面積)を求める。骨格領域の高さや面積は、抽出される骨格領域の端部の座標や端部のキーポイントの座標から求められる。特徴量算出部103は、求めた骨格構造の特徴量をデータベース110に格納する。なお、この骨格構造の特徴量は、人物の姿勢を示す姿勢情報としても用いられる。
図8の例では、直立した人物の骨格構造から全てのボーンを含む骨格領域を抽出する。この場合、骨格領域の上端は頭部のキーポイントA1、骨格領域の下端は左足のキーポイントA82、骨格領域の左端は右肘のキーポイントA41、骨格領域の右端は左手のキーポイントA52となる。このため、キーポイントA1とキーポイントA82のY座標の差分から骨格領域の高さを求める。また、キーポイントA41とキーポイントA52のX座標の差分から骨格領域の幅を求め、骨格領域の高さと幅から面積を求める。
図9の例では、しゃがみ込んだ人物の骨格構造から全てのボーンを含む骨格領域を抽出する。この場合、骨格領域の上端は頭部のキーポイントA1、骨格領域の下端は右足のキーポイントA81、骨格領域の左端は右腰のキーポイントA61、骨格領域の右端は右手のキーポイントA51となる。このため、キーポイントA1とキーポイントA81のY座標の差分から骨格領域の高さを求める。また、キーポイントA61とキーポイントA51のX座標の差分から骨格領域の幅を求め、骨格領域の高さと幅から面積を求める。
図10の例では、画像の左右方向に寝込んだ人物の骨格構造から全てのボーンを含む骨格領域を抽出する。この場合、骨格領域の上端は左肩のキーポイントA32、骨格領域の下端は左手のキーポイントA52、骨格領域の左端は右手のキーポイントA51、骨格領域の右端は左足のキーポイントA82となる。このため、キーポイントA32とキーポイントA52のY座標の差分から骨格領域の高さを求める。また、キーポイントA51とキーポイントA82のX座標の差分から骨格領域の幅を求め、骨格領域の高さと幅から面積を求める。
続いて、図3に示すように、画像処理装置100は、分類処理を行う(S104)。分類処理では、図4に示すように、分類部104は、算出された骨格構造の特徴量の類似度を算出し(S111)、算出された類似度に基づいて骨格構造を分類する(S112)。分類部104は、分類対象であるデータベース110に格納されている全ての骨格構造間の特徴量の類似度を求め、最も類似度が高い骨格構造(姿勢)を同じクラスタに分類する(クラスタリングする)。さらに、分類したクラスタ間の類似度を求めて分類し、所定の数のクラスタとなるまで分類を繰り返す。図11は、骨格構造の特徴量の分類結果のイメージを示している。図11は、2次元の分類要素によるクラスタ分析のイメージであり、2つ分類要素は、例えば、骨格領域の高さと骨格領域の面積等である。図11では、分類の結果、複数の骨格構造の特徴量が3つのクラスタC1~C3に分類されている。クラスタC1~C3は、例えば、立っている姿勢、座っている姿勢、寝ている姿勢のように各姿勢に対応し、似ている姿勢ごとに骨格構造(人物)が分類される。
本実施の形態では、人物の骨格構造の特徴量に基づいて分類することにより、多様な分類方法を用いることができる。なお、分類方法は、予め設定されていてもよいし、ユーザが任意に設定できるようにしてもよい。また、後述する検索方法と同じ方法により分類を行ってもよい。つまり、検索条件と同様の分類条件により分類してもよい。例えば、分類部104は、次の分類方法により分類を行う。いずれかの分類方法を用いてもよいし、任意に選択された分類方法を組み合わせてもよい。
(分類方法1)複数の階層による分類
全身の骨格構造による分類や、上半身や下半身の骨格構造による分類、腕や脚の骨格構造による分類等を階層的に組み合わせて分類する。すなわち、骨格構造の第1の部分や第2の部分の特徴量に基づいて分類し、さらに、第1の部分や第2の部分の特徴量に重みづけを行って分類してもよい。
(分類方法2)時系列に沿った複数枚の画像による分類
時系列に連続する複数の画像における骨格構造の特徴量に基づいて分類する。例えば、時系列方向に特徴量を積み重ねて、累積値に基づいて分類してもよい。さらに、連続する複数の画像における骨格構造の特徴量の変化(変化量)に基づいて分類してもよい。
(分類方法3)骨格構造の左右を無視した分類
人物の右側と左側が反対の骨格構造を同じ骨格構造として分類する。
さらに、分類部104は、骨格構造の分類結果を表示する(S113)。分類部104は、データベース110から必要な骨格構造や人物の画像を取得し、分類結果として似ている姿勢(クラスタ)ごとに骨格構造及び人物を表示部107に表示する。図12は、姿勢を3つに分類した場合の表示例を示している。例えば、図12に示すように、表示ウィンドウW1に、姿勢ごとの姿勢領域WA1~WA3を表示し、姿勢領域WA1~WA3にそれぞれ該当する姿勢の骨格構造及び人物(イメージ)を表示する。姿勢領域WA1は、例えば立っている姿勢の表示領域であり、クラスタC1に分類された、立っている姿勢に似た骨格構造及び人物を表示する。姿勢領域WA2は、例えば座っている姿勢の表示領域であり、クラスタC2に分類された、座っている姿勢に似た骨格構造及び人物を表示する。姿勢領域WA3は、例えば寝ている姿勢の表示領域であり、クラスタCに分類された、寝ている姿勢に似た骨格構造及び人物を表示する。
続いて、図3に示すように、画像処理装置100は、検索処理を行う(S105)。検索処理では、図5に示すように、検索部105は、検索条件の入力を受け付け(S121)、検索条件に基づいて骨格構造を検索する(S122)。検索部105は、入力部106から、ユーザの操作に応じて検索条件である検索クエリの入力を受け付ける。分類結果から検索クエリを入力する場合、例えば、図12の表示例では、ユーザは、表示ウィンドウW1に表示されている姿勢領域WA1~WA3の中から検索したい姿勢の骨格構造を指定(選択)する。そうすると、検索部105は、ユーザにより指定された骨格構造を検索クエリとして、検索対象であるデータベース110に格納されている全ての骨格構造の中から特徴量の類似度が高い骨格構造を検索する。検索部105は、検索クエリの骨格構造の特徴量と検索対象の骨格構造の特徴量との類似度を算出し、算出した類似度が所定の閾値よりも高い骨格構造を抽出する。検索クエリの骨格構造の特徴量は、予め算出された特徴量を使用してもよいし、検索時に求めた特徴量を使用してもよい。なお、検索クエリは、ユーザの操作に応じて骨格構造の各部を動かすことで入力してもよいし、ユーザがカメラの前で実演した姿勢を検索クエリとしてもよい。
本実施の形態では、分類方法と同様に、人物の骨格構造の特徴量に基づいて検索することにより、多様な検索方法を用いることができる。なお、検索方法は、予め設定されていてもよいし、ユーザが任意に設定できるようにしてもよい。例えば、検索部105は、次の検索方法により検索を行う。いずれかの検索方法を用いてもよいし、任意に選択された検索方法を組み合わせてもよい。複数の検索方法(検索条件)を論理式(例えばAND(論理積)、OR(論理和)、NOT(否定))により組み合わせて検索してもよい。例えば、検索条件を「(右手を挙げている姿勢)AND(左足を挙げている姿勢)」として検索してもよい。
(検索方法1)高さ方向の特徴量のみによる検索
人物の高さ方向の特徴量のみを用いて検索することで、人物の横方向の変化の影響を抑えることができ、人物の向きや人物の体型の変化に対しロバスト性が向上する。例えば、図13の骨格構造501~503のように、人物の向きや体型が異なる場合でも、高さ方向の特徴量は大きく変化しない。このため、骨格構造501~503では、検索時(分類時)に同じ姿勢であると判断することができる。
(検索方法2)部分検索画像において人物の体の一部が隠れている場合、認識可能な部分の情報のみを用いて検索する。例えば、図14の骨格構造511及び512のように、左足が隠れていることにより、左足のキーポイントが検出できない場合でも、検出されている他のキーポイントの特徴量を使用して検索できる。このため、骨格構造511及び512では、検索時(分類時)に同じ姿勢であると判断することができる。つまり、全てのキーポイントではなく、一部のキーポイントの特徴量を用いて、分類や検索を行うことができる。図15の骨格構造521及び522の例では、両足の向きが異なっているものの、上半身のキーポイント(A1、A2、A31、A32、A41、A42、A51、A52)の特徴量を検索クエリとすることで、同じ姿勢であると判断することができる。また、検索したい部分(特徴点)に対して、重みを付けて検索してもよいし、類似度判定の閾値を変化させてもよい。体の一部が隠れている場合、隠れた部分を無視して検索してもよいし、隠れた部分を加味して検索してもよい。隠れた部分も含めて検索することで、同じ部位が隠れているような姿勢を検索することができる。
(検索方法3)骨格構造の左右を無視した検索
人物の右側と左側が反対の骨格構造を同じ骨格構造として検索する。例えば、図16の骨格構造531及び532のように、右手を挙げている姿勢と、左手を挙げている姿勢を同じ姿勢として検索(分類)できる。図16の例では、骨格構造531と骨格構造532は、右手のキーポイントA51、右肘のキーポイントA41、左手のキーポイントA52、左肘のキーポイントA42の位置が異なるものの、その他のキーポイントの位置は同じである。骨格構造531の右手のキーポイントA51及び右肘のキーポイントA41と骨格構造532の左手のキーポイントA52及び左肘のキーポイントA42のうち、一方の骨格構造のキーポイントを左右反転させると、他方の骨格構造のキーポイントと同じ位置となり、また、骨格構造531の左手のキーポイントA52及び左肘のキーポイントA42と骨格構造532の右手のキーポイントA51及び右肘のキーポイントA41のうち、一方の骨格構造のキーポイントを左右反転させると、他方の骨格構造のキーポイントと同じ位置となるため、同じ姿勢と判断する。
(検索方法4)縦方向と横方向の特徴量による検索
人物の縦方向(Y軸方向)の特徴量のみで検索を行った後、得られた結果をさらに人物の横方向(X軸方向)の特徴量を用いて検索する。
(検索方法5)時系列に沿った複数枚の画像による検索
時系列に連続する複数の画像における骨格構造の特徴量に基づいて検索する。例えば、時系列方向に特徴量を積み重ねて、累積値に基づいて検索してもよい。さらに、連続する複数の画像における骨格構造の特徴量の変化(変化量)に基づいて検索してもよい。
さらに、検索部105は、骨格構造の検索結果を表示する(S123)。検索部105は、データベース110から必要な骨格構造や人物の画像を取得し、検索結果として得られた骨格構造及び人物を表示部107に表示する。例えば、検索クエリ(検索条件)が複数指定されている場合、検索クエリごとに検索結果を表示する。図17は、3つの検索クエリ(姿勢)により検索した場合の表示例を示している。例えば、図17に示すように、表示ウィンドウW2において、左端部に指定された検索クエリQ10、Q20、Q30の骨格構造及び人物を表示し、検索クエリQ10、Q20、Q30の右側に各検索クエリの検索結果Q11、Q21、Q31の骨格構造及び人物を並べて表示する。
検索結果を検索クエリの隣から並べて表示する順番は、該当する骨格構造が見つかった順でもよいし、類似度が高い順でもよい。部分検索の部分(特徴点)に重みを付けて検索した場合に、重み付けて計算した類似度順に表示してもよい。ユーザが選択した部分(特徴点)のみから計算した類似度順に表示してもよい。また、検索結果の画像(フレーム)を中心に、時系列の前後の画像(フレーム)を一定時間分切り出して表示してもよい。
(検索方法6)本検索方法において、検索部105は、検索クエリ(以下、クエリ情報とも記載)として、上記した骨格構造、すなわち複数のキーポイントの相対位置を用いる。クエリ情報は、人の姿勢を示している。そして検索部105は、クエリ情報が示す姿勢に類似している姿勢の人を含む画像(以下、目的画像と記載)を、複数の選択対象画像の中から選択する。この選択において、検索部105は、選択対象画像におけるキーポイントの欠損の有無を反映させる。
図40は、本検索方法に係る検索部105の機能構成の一例を示す図である。本図において、検索部105は、クエリ取得部610及び画像選択部620を有している。
クエリ取得部610は、クエリ情報を取得する。クエリ情報すなわち骨格構造は、上記したように、複数のキーポイントそれぞれの相対位置を示す情報を含んでいる。複数のキーポイントは、上記したように、いずれも人の身体の互いに異なる部分、例えば関節を示している。クエリ取得部610は、このクエリ情報を、クエリとして入力された画像を処理することにより生成してもよい。またクエリ取得部610は、骨格情報そのものをクエリ情報として取得してもよい。
画像選択部620は、複数の選択対象画像から少なくとも一つの目的画像を選択する。この選択において、画像選択部620は、上記したように、選択対象画像に含まれている人のキーポイントの相対位置、当該人において欠損しているキーポイント(以下、欠損キーポイントと記載)の種類及び数の少なくとも一方、並びに、クエリ情報を用いる。一例として、画像選択部620は、選択対象画像に含まれる人のキーポイントの相対位置と、クエリ情報が示すキーポイントの相対位置と、を用いて、クエリ情報に対する当該選択対象画像のスコア、例えば上記した類似度を算出する。そして画像選択部620は、欠損キーポイントの種類及び数の少なくとも一方を用いて、スコアを変更し、変更後のスコアを用いて少なくとも一つの目的画像を選択する。ここで行われるスコアの変更方法の具体例については後述する。
複数の選択対象画像は、画像記憶部630に記憶されている。画像記憶部630に記憶されている選択対象画像は、繰り返し更新される。この更新は、選択対象画像の追加、及び選択対象画像の削除の双方が含まれるが、一般的に、画像記憶部630が記憶している選択対象画像の数は、時間が経過するにつれて増えていく。また、本図に示す例において、画像記憶部630は検索部105すなわち画像処理装置10の一部となっている。ただし画像記憶部630は、画像処理装置10の外部に位置していてもよい。なお、画像記憶部630は、上記したデータベース110の一部であってもよいし、データベース110とは別に設けられていてもよい。
図41は、本検索方法において検索部105が行う処理の一例を示すフローチャートである。まずクエリ取得部610は、クエリ情報を取得する(ステップS300)。すると画像選択部620は、画像記憶部630が記憶している複数の選択対象画像毎にスコアを算出し、さらに、選択対象画像における欠損キーポイントの種類及び数の少なくとも一方を用いて、当該選択対象画像のスコアを変更する(ステップS310)。そして画像選択部620はスコアが基準値以上になった画像を、目的画像として選択する。ただし画像選択部620は、スコアが大きい順に選択対象画像を並べ、上位から数えて基準数までの選択対象画像を目的画像として選択してもよい(ステップS320)。
図42は、図41のステップS310の第1の詳細例を示すフローチャートである。まず画像選択部620は、スコアの算出対象となる選択対象画像を選択する(ステップS410)。
次いで画像選択部620は、選択対象画像に含まれる人の複数のキーポイント及びその位置を検出し、これら複数のキーポイントの相対位置を認識する。そしてこれら複数のキーポイントの相対位置と、クエリ情報との類似度を、当該選択対象画像のスコアとして算出する(ステップS420)。なお、画像選択部620は、選択対象画像に含まれる人のキーポイントを認識する際に、欠損キーポイントの有無を認識するとともに、欠損キーポイントがある場合はその欠損キーポイントの種類を認識する。
次いで画像選択部620は、欠損キーポイントに基づいたスコアの修正を行う(ステップS430)。本図に示す例において、画像選択部620は、欠損キーポイントの数及び欠損キーポイントに対して定められた値である基準値を用いて修正量を算出する。一例として、基準値は、すべてのキーポイントに共通の値となっている場合を考える。この場合、欠損キーポイントの数に基準値を乗じた値が修正量になる。そして、画像選択部620は、修正量を用いてスコアを修正する。一例として、画像選択部620は、スコアから修正量を減ずることにより、スコアの修正を行う。ここで欠損キーポイントが存在しない場合、画像選択部620はスコアの修正を行わない。
そして画像選択部620は、すべての選択対象画像に対してステップS420,S430に示した処理を行う(ステップS440,S410)。
なお、ステップS430で行われる修正量の算出において、欠損キーポイントの種類に応じた重み付けが用いられてもよい。一例として、複数のキーポイントのそれぞれには値(以下、設定値と記載)が設定されている。少なくとも一つのキーポイントに対応する値は、他のキーポイントに対応する値とは異なっている。そして画像選択部620は、欠損キーポイントごとに、当該欠損キーポイントの種類を特定してこの種類に対応する設定値を認識する。そして画像選択部620は、認識した設定値の和を算出し、この和を修正量とする。ここで用いられる設定値すなわち重み付けの値(例えば係数)は、予め定められていてもよいし、ユーザ又は外部(例えば画像選択装置10とは異なる装置)からの入力に従って画像選択部620が設定してもよいし、クエリ情報を用いて画像選択部620が設定してもよい。クエリ情報を用いて重み付けの値を設定する例については、別の図を用いて説明する。
図43及び図44は、図42のステップS430で行われる処理の一例を説明するための図である。具体的には、図43(A)は、クエリ情報の一例を示しており、図43(B)のそれぞれは、選択対象画像に含まれる人における複数のキーポイントの相対位置を示している。そして図44は、図43(B)に示した選択対象画像のスコアを示している。
図43(A)に示す例において、クエリ情報が示す姿勢は、立ったまま右手及び右腕を高く上げている状態である。これに対して、図43(B)の(1)に示す姿勢は、立ったまま右手及び右腕を上げているが、右手及び右腕の高さがやや低い。このため、図44に示すように、修正前のスコアは0.8とやや低い。しかし、図43(B)の(1)には欠損キーポイントは無い。このため、スコアの修正は行われない。
一方、図43(B)の(2)及び(3)に示す例は、いずれも足に欠損キーポイントを有している。そしてこれらの図が示す姿勢は、立ったまま右手及び右腕を高く上げている。このため、認識されたキーポイントに限った場合、クエリ情報との一致度は高くなるため、スコアは0.95と高くなっている。しかし、いずれの例も、欠損キーポイントを有している。このため、これらの例に対しては、欠損キーポイントの数に応じた修正量が設定される。その結果、図44に示すように、(2)及び(3)に示す例においては、修正によりスコアが低くなる。特に(3)に示す例においては足のキーポイントがすべて欠損しているため、立っているのか座っているのかを判断できない。このため、修正後のスコアは、(1)の例よりも低くなる。
図45は、図41のステップS310の第2の詳細例を示すフローチャートである。本図に示す例は、以下の点を除いて、図42に示した例と同様である。
まず、画像選択部620は、スコアの算出対象となる選択対象画像を選択する(ステップS410)前に、キーポイントが欠損キーポイントとなった時の重み付けの値を複数のキーポイント別に決定する(ステップS402)。そして画像選択部620は、欠損キーポイントを用いたスコアの算出において、ステップS402で算出した値を用いる(ステップS430)。ステップS430で行われる処理の詳細は、図41を用いて説明した通りである。
図46は、図45のステップS402において画像選択部620が欠損キーポイントの重み付けの値を決める方法の一例を示す図である。本図に示す例において、画像選択部620は、基準となる姿勢を示す基準姿勢情報とクエリ情報との差を用いて、キーポイント別の重み付けを決める。
基準姿勢情報は、複数のキーポイントの相対位置の基準的な位置すなわち基準相対位置(標準的な相対位置と表現することもできる)を含んでいる。画像選択部620は、この基準姿勢情報と、クエリ情報との差分を用いて、少なくとも一つのキーポイントについて、当該キーポイントが欠損キーポイントとなった時の重み付けの値を決定する。画像選択部620は、複数のキーポイントのすべてについて重み付けの値を決定するのが好ましい。この処理において、一部のキーポイントの重み付けの値は標準値(デフォルト値)から変更されない場合もある。また、一部のキーポイントの重み付けの値は0になることもある。
ここで画像選択部620は、基準姿勢情報における当該キーポイントの基準相対位置と、クエリ情報における当該キーポイントの相対位置と、の差が大きくなると、当該キーポイントの重み付けを大きくする。このようにする理由は、上記した差が大きいキーポイントは、クエリ情報が示す姿勢を特徴づけていると推定されるためである。
基準姿勢情報とクエリ情報との対比において、キーポイントの相対位置は、例えば上記したボーンリンク、すなわち人体の構造上隣に位置するキーポイントを基準とした位置で示されてもよい。またこの相対位置は、基準となるキーポイント(以下、基準キーポイントと記載)を少なくとも一つ設定し、この基準キーポイントを基準とした位置として示されてもよい。後者の場合、基準キーポイントは、例えば首、右肩、及び左肩の少なくとも一つである。そしてキーポイントの相対位置は、この基準キーポイントを原点とした当該キーポイントの座標で示されてもよいし、基準キーポイントから当該キーポイントに至るまでのボーンリンクで示されてもよい。
図46(A)に示す例において、基準姿勢情報は、人が直立し、かつ両手を体に沿って下げたときの複数のキーポイントの相対位置を示している。これに対し、図46(B)に示すクエリ情報は、図43(A)に示したクエリ情報と同じであり、人が直立しているが、右手及び右腕を上に挙げている状態を示している。このため、右手及び右腕に相当するキーポイントの重みが大きくなる。
なお、クエリ情報が一部のキーポイントを含んでいないことがある。このような例としては、例えばクエリとして用いられる画像において人体の一部が欠損している場合である。画像選択部620は、このようなクエリ情報を用いる場合、欠損しているキーポイントの重み付けを0にしてもよい。
ここで、基準姿勢情報について説明する。上記したように、基準姿勢情報はキーポイントの重み付けを決定する際に用いられる。基準姿勢情報は、予め定められていてもよいし、画像処理装置10のユーザからの入力に従って画像選択部620が取得してもよいし、画像選択部620が生成してもよい。
基準姿勢情報が予め定められている場合、基準姿勢情報が示す姿勢は、例えば図46(A)に示したように、直立である。基準姿勢情報は、例えば画像記憶部630に記憶されている。ただし、基準姿勢情報は画像記憶部630とは異なる場所に記憶されていてもよい。
また、画像選択部620がユーザからの入力に従って基準姿勢情報を取得する場合、ユーザから入力される情報は、基準姿勢情報そのものであってもよいし、予め記憶されている複数の姿勢情報から基準姿勢情報として用いる情報を選択することを示してもよい。後者の例において、複数の姿勢情報のそれぞれは、互いに異なる姿勢に対応しており、かつ当該姿勢における複数のキーポイントの相対位置を含んでいる。なお、ここで用いられる複数の姿勢情報は、画像記憶部630に記憶されていてもよいし、画像記憶部630とは異なる場所に記憶されていてもよい。
また、画像選択部620は、基準姿勢情報を生成する場合、例えば画像記憶部630が記憶している複数の選択対象画像を処理することにより基準姿勢情報を生成していてもよい。ここで行われる処理は、例えば、少なくとも2つの選択対象画像それぞれの複数のキーポイントの相対位置を統計処理することである。ここで行われる統計処理は例えば平均であるが、これに限定されない。なお、画像選択部620は、基準姿勢情報を生成する際に、画像記憶部630が記憶しているすべての選択対象画像を用いてもよい。
図47及び図48は、図45のステップS402,S430で行われる処理の一例を説明するための図である。具体的には、図47(A)は、クエリ情報の一例を示す図である。図47(B)のそれぞれは、選択対象画像に含まれる人における複数のキーポイントの相対位置を示す図である。そして図48は、図47(B)に示した選択対象画像のスコアの説明する図である。
図47(A)に示すクエリ情報は、図43(A)及び図46(B)に示したクエリ情報と同じである。このため、このクエリ情報において、右手及び右腕に対応するキーポイントの重み付けの値は大きくなっている。
図47(B)の(1)に示す姿勢は、図43(B)の(1)に示した例と同様であり、立ったまま右手及び右腕を上げているが、右手及び右腕の高さがやや低い。このため、図48に示すように、修正前のスコアは0.8とやや低い。しかし、図4(B)の(1)には欠損キーポイントは無い。このため、スコアの修正は行われない。
一方、図47(B)の(2)及び(3)に示す姿勢は、立ったまま右手及び右腕を高く上げている。このため、これらの姿勢に含まれるキーポイントに限った場合、クエリ情報との一致度は高くなるため、スコアは0.95と高くなっている。しかし、(2)及び(3)のいずれの例も足に欠損キーポイントを有している。このため、これらの例においては欠損キーポイントの数に応じた修正量が設定される。
ここで、図47(B)の(2)に示す例において、欠損キーポイントは片足に相当しているため、重み付けは小さい。一方、図47(B)の(3)に示す例において、欠損キーポイントは右手及び右腕に相当しているため、図46を用いて説明したように、重み付けは大きい。このため、図47(B)の()における修正量は、図47(B)の()における修正量よりも大きくなっている。その結果、図47(B)の(3)の修正後のスコアは、図47(B)の(1)よりもかなり低くなる。
図49は、図41の変形例を示すフローチャートである。画像の検索を行う目的によっては、欠損キーポイントの存在をそれほど重要視しないこともある。そこで本変形例において、画像選択部620は、ユーザからの入力に従って、欠損キーポイントに基づいた修正量を算出するときの演算方法、及び、修正量をスコアに反映させるときの演算方法、の少なくとも一方を設定する。
まずクエリ取得部610はクエリ情報を取得する(ステップS300)。次いで画像選択部620は、修正量をスコアに反映させるときの演算処理に関する指示内容を示す入力を取得する(ステップS302)。次いで画像選択部620は、ステップS302で取得した指示に従って、スコアを算出する(ステップS310)。そして画像選択部620は目的画像として選択する(ステップS320)。ステップS320で行われる処理の具体例は、図41を用いて説明した通りである。
ここで、ステップS302で取得した指示の2つの例について説明する。
第1の例において、画像選択部620は、欠損キーポイント一つ当たりの基準値に加える演算処理の内容を取得し、演算処理後の基準値を用いて修正量を算出する。一例として、画像選択部620は、基準値に乗ずる係数、基準値に加える定数、及び基準値から減ずる定数の少なくとも一つを取得する。そして画像選択部620は、取得した指示に従って基準値を変更し、変更後の基準値を用いて修正量を算出する。
第2の例において、画像選択部620は、修正量を算出した後に当該修正量に加える演算処理の内容を取得し、演算処理後の修正量を用いてスコアを変更する。一例として、画像選択部620は、修正量に乗ずる係数、修正量に加える定数、及び修正量から減ずる定数の少なくとも一つを取得する。そして画像選択部620は、取得した指示に従って修正量を変更し、変更後の修正量を用いてスコアを変更する。例えば画像選択部620は、ステップS302において、以下の(1)式に示すα(0≦α≦1)を取得する。この例において、αが小さくなるにつれて欠損キーポイントの重さは大きくなる。
変更後のスコア=α×(修正前のスコア)-(1-α)×修正量・・(1)
以上のように、本実施の形態では、2次元画像から人物の骨格構造を検出し、検出した骨格構造の特徴量に基づいて分類や検索を行うことを可能とした。これにより、類似度が高い似た姿勢ごとに分類することができ、また、検索クエリ(検索キー)と類似度が高い似た姿勢を検索することができる。画像から似ている姿勢を分類し表示することで、ユーザが姿勢等を指定することなく、画像中の人物の姿勢を把握することができる。分類結果の中からユーザが検索クエリの姿勢を指定できるため、予めユーザが検索したい姿勢を詳細に把握していない場合でも、所望の姿勢を検索することができる。例えば、人物の骨格構造の全体や一部等を条件として分類や検索を行うことができるため、柔軟な分類や検索が可能となる。
また、検索方法6によれば、選択対象画像において、検出できないキーポイントすなわち欠損キーポイントが存在していた場合、画像選択部620は、この欠損キーポイントの数および種類の少なくとも一方を用いて、その選択対象画像のスコアを修正する。このため、人の情報の一部が欠損している画像が選択対象画像に含まれていても、画像の選択精度が低下することを抑制できる。
(実施の形態2)以下、図面を参照して実施の形態2について説明する。本実施の形態では、実施の形態1における特徴量算出の具体例について説明する。本実施の形態では、人物の身長を用いて正規化することで特徴量を求める。その他については、実施の形態1と同様である。
図18は、本実施の形態に係る画像処理装置100の構成を示している。図18に示すように、画像処理装置100は、実施の形態1の構成に加えて、さらに身長算出部108を備える。なお、特徴量算出部103と身長算出部108を一つの処理部としてもよい。
身長算出部(身長推定部)108は、骨格構造検出部102により検出された2次元の骨格構造に基づき、2次元の画像内の人物の直立時の高さ(身長画素数という)を算出(推定)する。身長画素数は、2次元の画像における人物の身長(2次元画像空間上の人物の全身の長さ)であるとも言える。身長算出部108は、検出された骨格構造の各ボーンの長さ(2次元画像空間上の長さ)から身長画素数(ピクセル数)を求める。
以下の例では、身長画素数を求める方法として具体例1~3を用いる。なお、具体例1~3のいずれかの方法を用いてもよいし、任意に選択される複数の方法を組み合わせて用いてもよい。具体例1では、骨格構造の各ボーンのうち、頭部から足部までのボーンの長さを合計することで、身長画素数を求める。骨格構造検出部102(骨格推定技術)が頭頂と足元を出力しない場合は、必要に応じて定数を乗じて補正することもできる。具体例2では、各ボーンの長さと全身の長さ(2次元画像空間上の身長)との関係を示す人体モデルを用いて、身長画素数を算出する。具体例3では、3次元人体モデルを2次元骨格構造にフィッティング(あてはめる)することで、身長画素数を算出する。
本実施の形態の特徴量算出部103は、算出された人物の身長画素数に基づいて、人物の骨格構造(骨格情報)を正規化する正規化部である。特徴量算出部103は、正規化した骨格構造の特徴量(正規化値)をデータベース110に格納する。特徴量算出部103は、骨格構造に含まれる各キーポイント(特徴点)の画像上での高さを、身長画素数で正規化する。本実施の形態では、例えば、高さ方向は、画像の2次元座標(X-Y座標)空間における上下の方向(Y軸方向)である。この場合、キーポイントの高さは、キーポイントのY座標の値(画素数)から求めることができる。あるいは、高さ方向は、実世界の3次元座標空間における地面(基準面)に対し垂直な鉛直軸の方向を、2次元座標空間に投影した鉛直投影軸の方向(鉛直投影方向)でもよい。この場合、キーポイントの高さは、実世界における地面に対し垂直な軸を、カメラパラメータに基づいて2次元座標空間に投影した鉛直投影軸を求め、この鉛直投影軸に沿った値(画素数)から求めることができる。なお、カメラパラメータは、画像の撮像パラメータであり、例えば、カメラパラメータは、カメラ200の姿勢、位置、撮像角度、焦点距離等である。カメラ200により、予め長さや位置が分かっている物体を撮像し、その画像からカメラパラメータを求めることができる。撮像された画像の両端ではひずみが発生し、実世界の鉛直方向と画像の上下方向が合わない場合がある。これに対し、画像を撮影したカメラのパラメータを使用することで、実世界の鉛直方向が画像中でどの程度傾いているのかが分かる。このため、カメラパラメータに基づいて画像中に投影した鉛直投影軸に沿ったキーポイントの値を身長で正規化することで、実世界と画像のずれを考慮してキーポイントを特徴量化することができる。なお、左右方向(横方向)は、画像の2次元座標(X-Y座標)空間における左右の方向(X軸方向)であり、または、実世界の3次元座標空間における地面に対し平行な方向を、2次元座標空間に投影した方向である。
図19~図23は、本実施の形態に係る画像処理装置100の動作を示している。図19は、画像処理装置100における画像取得から検索処理までの流れを示し、図20~図22は、図19の身長画素数算出処理(S201)の具体例1~3の流れを示し、図23は、図19の正規化処理(S202)の流れを示している。
図19に示すように、本実施の形態では、実施の形態1における特徴量算出処理(S103)として、身長画素数算出処理(S201)及び正規化処理(S202)を行う。その他については実施の形態1と同様である。
画像処理装置100は、画像取得(S101)及び骨格構造検出(S102)に続いて、検出された骨格構造に基づいて身長画素数算出処理を行う(S201)。この例では、図24に示すように、画像における直立時の人物の骨格構造の高さを身長画素数(h)とし、画像の人物の状態における骨格構造の各キーポイントの高さをキーポイント高さ(yi)とする。以下、身長画素数算出処理の具体例1~3について説明する。
<具体例1>具体例1では、頭部から足部までのボーンの長さを用いて身長画素数を求める。具体例1では、図20に示すように、身長算出部108は、各ボーンの長さを取得し(S211)、取得した各ボーンの長さを合計する(S212)。
身長算出部108は、人物の頭部から足部の2次元の画像上のボーンの長さを取得し、身長画素数を求める。すなわち、骨格構造を検出した画像から、図24のボーンのうち、ボーン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)として算出する。両方の値を算出できる場合、例えば、長い方の値を身長画素数とする。すなわち、各ボーンは正面から撮像された場合が画像中での長さが最も長くなり、カメラに対して奥行き方向に傾くと短く表示される。従って、長いボーンの方が正面から撮像されている可能性が高く、真実の値に近いと考えられる。このため、長い方の値を選択することが好ましい。
図25の例では、ボーンB1、ボーンB51及びボーンB52、ボーンB61及びボーンB62、ボーンB71及びボーンB72がそれぞれ重ならずに検出されている。これらのボーンの合計である、L1+L21+L31+L41、及び、L1+L22+L32+L42を求め、例えば、検出されたボーンの長さが長い左足側のL1+L22+L32+L42に補正定数を乗じた値を身長画素数とする。
図26の例では、ボーンB1、ボーンB51及びボーンB52、ボーンB61及びボーンB62、ボーンB71及びボーンB72がそれぞれ検出され、右足のボーンB61及びボーンB71と左足のボーンB62及びボーンB72が重なっている。これらのボーンの合計である、L1+L21+L31+L41、及び、L1+L22+L32+L42を求め、例えば、検出されたボーンの長さが長い右足側のL1+L21+L31+L41に補正定数を乗じた値を身長画素数とする。
図27の例では、ボーンB1、ボーンB51及びボーンB52、ボーンB61及びボーンB62、ボーンB71及びボーンB72がそれぞれ検出され、右足のボーンB61及びボーンB71と左足のボーンB62及びボーンB72が重なっている。これらのボーンの合計である、L1+L21+L31+L41、及び、L1+L22+L32+L42を求め、例えば、検出されたボーンの長さが長い左足側のL1+L22+L32+L42に補正定数を乗じた値を身長画素数とする。
具体例1では、頭から足までのボーンの長さを合計することで身長を求めることができるため、簡易な方法で身長画素数を求めることができる。また、機械学習を用いた骨格推定技術により、少なくとも頭から足までの骨格を検出できればよいため、しゃがみ込んでいる状態など、必ずしも人物の全体が画像に写っていない場合でも精度よく身長画素数を推定することができる。
<具体例2>具体例2では、2次元骨格構造に含まれる骨の長さと2次元画像空間上の人物の全身の長さとの関係を示す2次元骨格モデルを用いて身長画素数を求める。
図28は、具体例2で用いる、2次元画像空間上の各ボーンの長さと2次元画像空間上の全身の長さとの関係を示す人体モデル(2次元骨格モデル)301である。図28に示すように、平均的な人物の各ボーンの長さと全身の長さとの関係(全身の長さに対する各ボーンの長さの割合)を、人体モデル301の各ボーンに対応付ける。例えば、頭のボーンB1の長さは全身の長さ×0.2(20%)であり、右手のボーンB41の長さは全身の長さ×0.15(15%)であり、右足のボーンB71の長さは全身の長さ×0.25(25%)である。このような人体モデル301の情報をデータベース110に記憶しておくことで、各ボーンの長さから平均的な全身の長さを求めることができる。平均的な人物の人体モデルの他に、年代、性別、国籍等の人物の属性ごとに人体モデルを用意してもよい。これにより、人物の属性に応じて適切に全身の長さ(身長)を求めることができる。
具体例2では、図21に示すように、身長算出部108は、各ボーンの長さを取得する(S221)。身長算出部108は、検出された骨格構造において、全てのボーンの長さ(2次元画像空間上の長さ)を取得する。図29は、しゃがみ込んでいる状態の人物を右斜め後ろから撮像し、骨格構造を検出した例である。この例では、人物の顔や左側面が写っていないことから、頭のボーンと左腕及び左手のボーンが検出できていない。このため、検出されているボーンB21、B22、B31、B41、B51、B52、B61、B62、B71、B72の各長さを取得する。
続いて、身長算出部108は、図21に示すように、人体モデルに基づき、各ボーンの長さから身長画素数を算出する(S222)。身長算出部108は、図28のような、各ボーンと全身の長さとの関係を示す人体モデル301を参照し、各ボーンの長さから身長画素数を求める。例えば、右手のボーンB41の長さが全身の長さ×0.15であるため、ボーンB41の長さ/0.15によりボーンB41に基づいた身長画素数を求める。また、右足のボーンB71の長さが全身の長さ×0.25であるため、ボーンB71の長さ/0.25によりボーンB71に基づいた身長画素数を求める。
このとき参照する人体モデルは、例えば、平均的な人物の人体モデルであるが、年代、性別、国籍等の人物の属性に応じて人体モデルを選択してもよい。例えば、撮像した画像に人物の顔が写っている場合、顔に基づいて人物の属性を識別し、識別した属性に対応する人体モデルを参照する。属性ごとの顔を機械学習した情報を参照し、画像の顔の特徴から人物の属性を認識することができる。また、画像から人物の属性が識別できない場合に、平均的な人物の人体モデルを用いてもよい。
また、ボーンの長さから算出した身長画素数をカメラパラメータにより補正してもよい。例えばカメラを高い位置において、人物を見下ろすように撮影した場合、二次元骨格構造において肩幅のボーン等の横の長さはカメラの俯角の影響を受けないが、首-腰のボーン等の縦の長さは、カメラの俯角が大きくなる程小さくなる。そうすると、肩幅のボーン等の横の長さから算出した身長画素数が実際より大きくなる傾向がある。そこで、カメラパラメータを活用すると、人物がどの程度の角度でカメラに見下ろされているかがわかるため、この俯角の情報を使って正面から撮影したような二次元骨格構造に補正することができる。これによって、より正確に身長画素数を算出できる。
続いて、身長算出部108は、図21に示すように、身長画素数の最適値を算出する(S223)。身長算出部108は、ボーンごとに求めた身長画素数から身長画素数の最適値を算出する。例えば、図30に示すような、ボーンごとに求めた身長画素数のヒストグラムを生成し、その中で大きい身長画素数を選択する。つまり、複数のボーンに基づいて求められた複数の身長画素数の中で他よりも長い身長画素数を選択する。例えば、上位30%を有効な値とし、図30ではボーンB71、B61、B51による身長画素数を選択する。選択した身長画素数の平均を最適値として求めてもよいし、最も大きい身長画素数を最適値としてもよい。2次元画像のボーンの長さから身長を求めるため、ボーンを正面から撮像できていない場合、すなわち、ボーンがカメラから見て奥行き方向に傾いて撮像された場合、ボーンの長さが正面から撮像した場合よりも短くなる。そうすると、身長画素数が大きい値は、身長画素数が小さい値よりも、正面から撮像された可能性が高く、より尤もらしい値となることから、より大きい値を最適値とする。
具体例2では、2次元画像空間上のボーンと全身の長さとの関係を示す人体モデルを用いて、検出した骨格構造のボーンに基づき身長画素数を求めるため、頭から足までの全ての骨格が得られない場合でも、一部のボーンから身長画素数を求めることができる。特に、複数のボーンから求められた値のうち、より大きい値を採用することで、精度よく身長画素数を推定することができる。
<具体例3>具体例3では、2次元骨格構造を3次元人体モデル(3次元骨格モデル)にフィッティングさせて、フィッティングした3次元人体モデルの身長画素数を用いて全身の骨格ベクトルを求める。
具体例3では、図22に示すように、身長算出部108は、まず、カメラ200の撮像した画像に基づき、カメラパラメータを算出する(S231)。身長算出部108は、カメラ200が撮像した複数の画像の中から、予め長さが分かっている物体を抽出し、抽出した物体の大きさ(画素数)からカメラパラメータを求める。なお、カメラパラメータを予め求めておき、求めておいたカメラパラメータを必要に応じて取得してもよい。
続いて、身長算出部108は、3次元人体モデルの配置及び高さを調整する(S232)。身長算出部108は、検出された2次元骨格構造に対し、身長画素数算出用の3次元人体モデルを用意し、カメラパラメータに基づいて、同じ2次元画像内に配置する。具体的には、カメラパラメータと、2次元骨格構造から、「実世界におけるカメラと人物の相対的な位置関係」を特定する。例えば、仮にカメラの位置を座標(0,0,0)としたときに、人物が立っている(または座っている)位置の座標(x,y,z)を特定する。そして、特定した人物と同じ位置(x,y,z)に3次元人体モデルを配置して撮像した場合の画像を想定することで、2次元骨格構造と3次元人体モデルを重ね合わせる。
図31は、しゃがみ込んでいる人物を左斜め前から撮像し、2次元骨格構造401を検出した例である。2次元骨格構造401は、2次元の座標情報を有する。なお、全てのボーンを検出していることが好ましいが、一部のボーンが検出されていなくてもよい。この2次元骨格構造401に対し、図32のような、3次元人体モデル402を用意する。3次元人体モデル(3次元骨格モデル)402は、3次元の座標情報を有し、2次元骨格構造401と同じ形状の骨格のモデルである。そして、図33のように、検出した2次元骨格構造401に対し、用意した3次元人体モデル402を配置し重ね合わせる。また、重ね合わせるとともに、3次元人体モデル402の高さを2次元骨格構造401に合うように調整する。
なお、このとき用意する3次元人体モデル402は、図33のように、2次元骨格構造401の姿勢に近い状態のモデルでもよいし、直立した状態のモデルでもよい。例えば、機械学習を用いて2次元画像から3次元空間の姿勢を推定する技術を用いて、推定した姿勢の3次元人体モデル402を生成してもよい。2次元画像の関節と3次元空間の関節の情報を学習することで、2次元画像から3次元の姿勢を推定することができる。
続いて、身長算出部108は、図22に示すように、3次元人体モデルを2次元骨格構造にフィッティングする(S233)。身長算出部108は、図34のように、3次元人体モデル402を2次元骨格構造401に重ね合わせた状態で、3次元人体モデル402と2次元骨格構造401の姿勢が一致するように、3次元人体モデル402を変形させる。すなわち、3次元人体モデル402の身長、体の向き、関節の角度を調整し、2次元骨格構造401との差異がなくなるように最適化する。例えば、3次元人体モデル402の関節を、人の可動範囲で回転させていき、また、3次元人体モデル402の全体を回転させたり、全体のサイズを調整する。なお、3次元人体モデルと2次元骨格構造のフィッティング(あてはめ)は、2次元空間(2次元座標)上で行う。すなわち、2次元空間に3次元人体モデルを写像し、変形させた3次元人体モデルが2次元空間(画像)でどのように変化するかを考慮して、3次元人体モデルを2次元骨格構造に最適化する。
続いて、身長算出部108は、図22に示すように、フィッティングさせた3次元人体モデルの身長画素数を算出する(S234)。身長算出部108は、図35のように、3次元人体モデル402と2次元骨格構造401の差異がなくなり、姿勢が一致すると、その状態の3次元人体モデル402の身長画素数を求める。最適化された3次元人体モデル402を直立させた状態として、カメラパラメータに基づき、2次元空間上の全身の長さを求める。例えば、3次元人体モデル402を直立させた場合の頭から足までのボーンの長さ(画素数)により身長画素数を算出する。具体例1と同様に、3次元人体モデル402の頭部から足部までのボーンの長さを合計してもよい。
具体例3では、カメラパラメータに基づいて3次元人体モデルを2次元骨格構造にフィッティングさせて、その3次元人体モデルに基づいて身長画素数を求めることで、全てのボーンが正面に写っていない場合、すなわち、全てのボーンが斜めに映っているため誤差が大きい場合でも、精度よく身長画素数を推定することができる。
<正規化処理>図19に示すように、画像処理装置100は、身長画素数算出処理に続いて、正規化処理(S202)を行う。正規化処理では、図23に示すように、特徴量算出部103は、キーポイント高さを算出する(S241)。特徴量算出部103は、検出された骨格構造に含まれる全てのキーポイントのキーポイント高さ(画素数)を算出する。キーポイント高さは、骨格構造の最下端(例えばいずれかの足のキーポイント)からそのキーポイントまでの高さ方向の長さ(画素数)である。ここでは、一例として、キーポイント高さを、画像におけるキーポイントのY座標から求める。なお、上記のように、キーポイント高さは、カメラパラメータに基づいた鉛直投影軸に沿った方向の長さから求めてもよい。例えば、図24の例で、首のキーポイントA2の高さ(yi)は、キーポイントA2のY座標から右足のキーポイントA81または左足のキーポイントA82のY座標を引いた値である。
続いて、特徴量算出部103は、正規化のための基準点を特定する(S242)。基準点は、キーポイントの相対的な高さを表すための基準となる点である。基準点は、予め設定されていてもよいし、ユーザが選択できるようにしてもよい。基準点は、骨格構造の中心もしくは中心よりも高い(画像の上下方向における上である)ことが好ましく、例えば、首のキーポイントの座標を基準点とする。なお、首に限らず頭やその他のキーポイントの座標を基準点としてもよい。キーポイントに限らず、任意の座標(例えば骨格構造の中心座標等)を基準点としてもよい。
続いて、特徴量算出部103は、キーポイント高さ(yi)を身長画素数で正規化する(S243)。特徴量算出部103は、各キーポイントのキーポイント高さ、基準点、身長画素数を用いて、各キーポイントを正規化する。具体的には、特徴量算出部103は、基準点に対するキーポイントの相対的な高さを身長画素数により正規化する。ここでは、高さ方向のみに着目する例として、Y座標のみを抽出し、また、基準点を首のキーポイントとして正規化を行う。具体的には、基準点(首のキーポイント)のY座標を(yc)として、次の式(1)を用いて、特徴量(正規化値)を求める。なお、カメラパラメータに基づいた鉛直投影軸を用いる場合は、(yi)及び(yc)を鉛直投影軸に沿った方向の値に変換する。
Figure 0007435781000001
例えば、キーポイントが18個の場合、各キーポイントの18点の座標(x0、y0)、(x1、y1)、・・・(x17、y17)を、上記式(1)を用いて、次のように18次元の特徴量に変換する。
Figure 0007435781000002
図36は、特徴量算出部103が求めた各キーポイントの特徴量の例を示している。この例では、首のキーポイントA2を基準点とするため、キーポイントA2の特徴量は0.0となり、首と同じ高さの右肩のキーポイントA31及び左肩のキーポイントA32の特徴量も0.0である。首よりも高い頭のキーポイントA1の特徴量は-0.2である。首よりも低い右手のキーポイントA51及び左手のキーポイントA52の特徴量は0.4であり、右足のキーポイントA81及び左足のキーポイントA82の特徴量は0.9である。この状態から人物が左手を挙げると、図37のように左手が基準点よりも高くなるため、左手のキーポイントA52の特徴量は-0.4となる。一方で、Y軸の座標のみを用いて正規化を行っているため、図38のように、図36に比べて骨格構造の幅が変わっても特徴量は変わらない。すなわち、本実施の形態の特徴量(正規化値)は、骨格構造(キーポイント)の高さ方向(Y方向)の特徴を示しており、骨格構造の横方向(X方向)の変化に影響を受けない。
以上のように、本実施の形態では、2次元画像から人物の骨格構造を検出し、検出した骨格構造から求めた身長画素数(2次元画像空間上の直立時の高さ)を用いて、骨格構造の各キーポイントを正規化する。この正規化された特徴量を用いることで、分類や検索等を行った場合のロバスト性を向上することができる。すなわち、本実施の形態の特徴量は、上記のように人物の横方向の変化に影響を受けないため、人物の向きや人物の体型の変化に対しロバスト性が高い。
さらに、本実施の形態では、OpenPose等の骨格推定技術を用いて人物の骨格構造を検出することで実現できるため、人物の姿勢等を学習する学習データを用意する必要がない。また、骨格構造のキーポイントを正規化し、データベースに格納しておくことで、人物の姿勢等の分類や検索が可能となるため、未知な姿勢に対しても分類や検索を行うことができる。また、骨格構造のキーポイントを正規化することで、明確でわかりやすい特徴量を得ることができるため、機械学習のようにブラックボックス型のアルゴリズムと異なり、処理結果に対するユーザの納得性が高い。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
また、上述の説明で用いた複数のフローチャートでは、複数の工程(処理)が順番に記載されているが、各実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態は、内容が相反しない範囲で組み合わせることができる。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下に限られない。
1.人の姿勢を示すクエリ情報を取得するクエリ取得手段と、
前記クエリ情報を用いて、複数の選択対象画像から少なくとも一つの目的画像を選択する画像選択手段と、
を備え、
前記クエリ情報は、人の身体の互いに異なる部分を示す複数のキーポイントの相対位置を含んでおり、
前記画像選択手段は、
前記選択対象画像に含まれている人の前記キーポイントの相対位置、当該人において欠損している前記キーポイントである欠損キーポイントの種類及び数の少なくとも一方、並びに、前記クエリ情報を用いて、前記少なくとも一つの目的画像を選択する、画像選択装置。
2.上記1に記載の画像選択装置において、
前記画像選択手段は、
前記選択対象画像の前記キーポイントの相対位置と、前記クエリ情報の前記キーポイントの相対位置と、を用いて前記クエリ情報に対する前記選択対象画像のスコアを算出し、
前記欠損キーポイントの種類及び数の少なくとも一方を用いて、前記スコアを変更し、
変更後の前記スコアを用いて、前記目的画像を選択する画像選択装置。
3.上記2に記載の画像選択装置において、
前記画像選択手段は、
前記欠損キーポイントの数及び前記欠損キーポイントに対して定められた値である基準値を用いて修正量を算出し、当該修正量を用いて前記スコアを変更する、画像選択装置。
4.上記3に記載の画像選択装置において、
前記画像選択手段は、
外部又はユーザからの入力に従って、前記基準値又は前記修正量に加える演算処理の内容を決定し、
前記演算処理が前記基準値に対して行われる場合は、前記演算処理後の前記基準値を用いて前記修正量を算出し、
前記演算処理が前記修正量に対して行われる場合は、前記演算処理後の前記修正量を用いて前記スコアを変更する、画像選択装置。
5.上記3又は4に記載の画像選択装置において、
前記画像選択手段は、
前記複数のキーポイントの基準相対位置を含む基準姿勢情報と、前記クエリ情報との差分を用いて、少なくとも一つの前記キーポイントの重み付けを決定し、
前記欠損キーポイントのそれぞれに対応する前記基準値を、当該欠損キーポイントに対応する前記重み付けを用いて変更する、画像選択装置。
6.上記5に記載の画像選択装置において、
前記基準姿勢情報は、人が直立し、かつ両手を体に沿って下げたときの前記複数のキーポイントの相対位置を示す画像選択装置。
7.上記5に記載の画像選択装置において、
前記画像選択手段は、複数の選択対象画像を処理することにより、前記基準姿勢情報を生成する画像選択装置。
8.上記3又は4に記載の画像選択装置において、
前記画像選択手段は、
外部又はユーザからの入力に基づいて、少なくとも一つの前記キーポイントの重み付けを示す重み付け情報を取得し、
前記欠損キーポイントのそれぞれに対応する前記基準値を、当該欠損キーポイントに対応する前記重み付けを用いて変更する、画像選択装置。
9.コンピュータが、
人の姿勢を示すクエリ情報を取得するクエリ取得処理と、
前記クエリ情報を用いて、複数の選択対象画像から少なくとも一つの目的画像を選択する画像選択処理と、
を行い、
前記クエリ情報は、人の身体の互いに異なる部分を示す複数のキーポイントの相対位置を含んでおり、
前記画像選択処理において、前記コンピュータが、
前記選択対象画像に含まれている人の前記キーポイントの相対位置、当該人において欠損している前記キーポイントである欠損キーポイントの種類及び数の少なくとも一方、並びに、前記クエリ情報を用いて、前記少なくとも一つの目的画像を選択する、画像選択方法。
10.上記8に記載の画像選択方法において、
前記画像選択処理において、前記コンピュータは、
前記選択対象画像の前記キーポイントの相対位置と、前記クエリ情報の前記キーポイントの相対位置と、を用いて前記クエリ情報に対する前記選択対象画像のスコアを算出し、
前記欠損キーポイントの種類及び数の少なくとも一方を用いて、前記スコアを変更し、
変更後の前記スコアを用いて、前記目的画像を選択する画像選択方法。
11.上記10に記載の画像選択方法において、
前記画像選択処理において、前記コンピュータは、
前記欠損キーポイントの数及び前記欠損キーポイントに対して定められた値である基準値を用いて修正量を算出し、当該修正量を用いて前記スコアを変更する、画像選択方法。
12.上記11に記載の画像選択方法において、
前記画像選択処理において、前記コンピュータは、
外部又はユーザからの入力に従って、前記基準値又は前記修正量に加える演算処理の内容を決定し、
前記演算処理が前記基準値に対して行われる場合は、前記演算処理後の前記基準値を用いて前記修正量を算出し、
前記演算処理が前記修正量に対して行われる場合は、前記演算処理後の前記修正量を用いて前記スコアを変更する、画像選択方法。
13.上記11又は12に記載の画像選択方法において、
前記画像選択処理において、前記コンピュータは、
前記複数のキーポイントの基準相対位置を含む基準姿勢情報と、前記クエリ情報との差分を用いて、少なくとも一つの前記キーポイントの重み付けを決定し、
前記欠損キーポイントのそれぞれに対応する前記基準値を、当該欠損キーポイントに対応する前記重み付けを用いて変更する、画像選択方法。
14.上記13に記載の画像選択方法において、
前記基準姿勢情報は、人が直立し、かつ両手を体に沿って下げたときの前記複数のキーポイントの相対位置を示す画像選択方法。
15.上記13に記載の画像選択方法において、
前記画像選択処理において、前記コンピュータは、複数の選択対象画像を処理することにより、前記基準姿勢情報を生成する画像選択方法。
16.上記11又は12に記載の画像選択方法において、
前記画像選択処理において、前記コンピュータは、
外部又はユーザからの入力に基づいて、少なくとも一つの前記キーポイントの重み付けを示す重み付け情報を取得し、
前記欠損キーポイントのそれぞれに対応する前記基準値を、当該欠損キーポイントに対応する前記重み付けを用いて変更する、画像選択方法。
17.コンピュータに、
人の姿勢を示すクエリ情報を取得するクエリ取得機能と、
前記クエリ情報を用いて、複数の選択対象画像から少なくとも一つの目的画像を選択する画像選択機能と、
を持たせ、
前記クエリ情報は、人の身体の互いに異なる部分を示す複数のキーポイントの相対位置を含んでおり、
前記画像選択機能は、
前記選択対象画像に含まれている人の前記キーポイントの相対位置、当該人において欠損している前記キーポイントである欠損キーポイントの種類及び数の少なくとも一方、並びに、前記クエリ情報を用いて、前記少なくとも一つの目的画像を選択する、プログラム。

18.上記17に記載のプログラムにおいて、
前記画像選択機能は、
前記選択対象画像の前記キーポイントの相対位置と、前記クエリ情報の前記キーポイントの相対位置と、を用いて前記クエリ情報に対する前記選択対象画像のスコアを算出し、
前記欠損キーポイントの種類及び数の少なくとも一方を用いて、前記スコアを変更し、
変更後の前記スコアを用いて、前記目的画像を選択するプログラム。
19.上記18に記載のプログラムにおいて、
前記画像選択機能は、
前記欠損キーポイントの数及び前記欠損キーポイントに対して定められた値である基準値を用いて修正量を算出し、当該修正量を用いて前記スコアを変更する、プログラム。
20.上記19に記載のプログラムにおいて、
前記画像選択機能は、
外部又はユーザからの入力に従って、前記基準値又は前記修正量に加える演算処理の内容を決定し、
前記演算処理が前記基準値に対して行われる場合は、前記演算処理後の前記基準値を用いて前記修正量を算出し、
前記演算処理が前記修正量に対して行われる場合は、前記演算処理後の前記修正量を用いて前記スコアを変更する、プログラム。
21.上記19又は20に記載のプログラムにおいて、
前記画像選択機能は、
前記複数のキーポイントの基準相対位置を含む基準姿勢情報と、前記クエリ情報との差分を用いて、少なくとも一つの前記キーポイントの重み付けを決定し、
前記欠損キーポイントのそれぞれに対応する前記基準値を、当該欠損キーポイントに対応する前記重み付けを用いて変更する、プログラム。
22.上記21に記載のプログラムにおいて、
前記基準姿勢情報は、人が直立し、かつ両手を体に沿って下げたときの前記複数のキーポイントの相対位置を示すプログラム。
23.上記21に記載のプログラムにおいて、
前記画像選択機能は、複数の選択対象画像を処理することにより、前記基準姿勢情報を生成するプログラム。
24.上記19又は20に記載のプログラムにおいて、
前記画像選択機能は、
外部又はユーザからの入力に基づいて、少なくとも一つの前記キーポイントの重み付けを示す重み付け情報を取得し、
前記欠損キーポイントのそれぞれに対応する前記基準値を、当該欠損キーポイントに対応する前記重み付けを用いて変更する、プログラム。
1 画像処理システム
10 画像処理装置(画像選択装置)
11 骨格検出部
12 特徴量算出部
13 認識部
100 画像処理装置(画像選択装置)
101 画像取得部
102 骨格構造検出部
103 特徴量算出部
104 分類部
105 検索部
106 入力部
107 表示部
108 身長算出部
110 データベース
200 カメラ
300、301 人体モデル
401 2次元骨格構造
402 3次元人体モデル
610 クエリ取得部
620 画像選択部
630 画像記憶部

Claims (10)

  1. 人の姿勢を示すクエリ情報を取得するクエリ取得手段と、
    前記クエリ情報を用いて、複数の選択対象画像から少なくとも一つの目的画像を選択する画像選択手段と、
    を備え、
    前記クエリ情報は、人の身体の互いに異なる部分を示す複数のキーポイントの相対位置を含んでおり、
    前記画像選択手段は、
    前記選択対象画像に含まれている人の前記キーポイントの相対位置、当該人において欠損している前記キーポイントである欠損キーポイントの種類及び数の少なくとも一方、並びに、前記クエリ情報を用いて、前記少なくとも一つの目的画像を選択する、画像選択装置。
  2. 請求項1に記載の画像選択装置において、
    前記画像選択手段は、
    前記選択対象画像の前記キーポイントの相対位置と、前記クエリ情報の前記キーポイントの相対位置と、を用いて前記クエリ情報に対する前記選択対象画像のスコアを算出し、
    前記欠損キーポイントの種類及び数の少なくとも一方を用いて、前記スコアを変更し、
    変更後の前記スコアを用いて、前記目的画像を選択する画像選択装置。
  3. 請求項2に記載の画像選択装置において、
    前記画像選択手段は、
    前記欠損キーポイントの数及び前記欠損キーポイントに対して定められた値である基準値を用いて修正量を算出し、当該修正量を用いて前記スコアを変更する、画像選択装置。
  4. 請求項3に記載の画像選択装置において、
    前記画像選択手段は、
    外部又はユーザからの入力に従って、前記基準値又は前記修正量に加える演算処理の内容を決定し、
    前記演算処理が前記基準値に対して行われる場合は、前記演算処理後の前記基準値を用いて前記修正量を算出し、
    前記演算処理が前記修正量に対して行われる場合は、前記演算処理後の前記修正量を用いて前記スコアを変更する、画像選択装置。
  5. 請求項3又は4に記載の画像選択装置において、
    前記画像選択手段は、
    前記複数のキーポイントの基準相対位置を含む基準姿勢情報と、前記クエリ情報との差分を用いて、少なくとも一つの前記キーポイントの重み付けを決定し、
    前記欠損キーポイントのそれぞれに対応する前記基準値を、当該欠損キーポイントに対応する前記重み付けを用いて変更する、画像選択装置。
  6. 請求項5に記載の画像選択装置において、
    前記基準姿勢情報は、人が直立し、かつ両手を体に沿って下げたときの前記複数のキーポイントの相対位置を示す画像選択装置。
  7. 請求項5に記載の画像選択装置において、
    前記画像選択手段は、複数の選択対象画像を処理することにより、前記基準姿勢情報を生成する画像選択装置。
  8. 請求項3又は4に記載の画像選択装置において、
    前記画像選択手段は、
    外部又はユーザからの入力に基づいて、少なくとも一つの前記キーポイントの重み付けを示す重み付け情報を取得し、
    前記欠損キーポイントのそれぞれに対応する前記基準値を、当該欠損キーポイントに対応する前記重み付けを用いて変更する、画像選択装置。
  9. コンピュータが、
    人の姿勢を示すクエリ情報を取得するクエリ取得処理と、
    前記クエリ情報を用いて、複数の選択対象画像から少なくとも一つの目的画像を選択する画像選択処理と、
    を行い、
    前記クエリ情報は、人の身体の互いに異なる部分を示す複数のキーポイントの相対位置を含んでおり、
    前記画像選択処理において、前記コンピュータが、
    前記選択対象画像に含まれている人の前記キーポイントの相対位置、当該人において欠損している前記キーポイントである欠損キーポイントの種類及び数の少なくとも一方、並びに、前記クエリ情報を用いて、前記少なくとも一つの目的画像を選択する、画像選択方法。
  10. コンピュータに、
    人の姿勢を示すクエリ情報を取得するクエリ取得機能と、
    前記クエリ情報を用いて、複数の選択対象画像から少なくとも一つの目的画像を選択する画像選択機能と、
    を持たせ、
    前記クエリ情報は、人の身体の互いに異なる部分を示す複数のキーポイントの相対位置を含んでおり、
    前記画像選択機能は、
    前記選択対象画像に含まれている人の前記キーポイントの相対位置、当該人において欠損している前記キーポイントである欠損キーポイントの種類及び数の少なくとも一方、並びに、前記クエリ情報を用いて、前記少なくとも一つの目的画像を選択する、プログラム。
JP2022534551A 2020-07-08 2020-07-08 画像選択装置、画像選択方法、及びプログラム Active JP7435781B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/026663 WO2022009327A1 (ja) 2020-07-08 2020-07-08 画像選択装置、画像選択方法、及びプログラム

Publications (3)

Publication Number Publication Date
JPWO2022009327A1 JPWO2022009327A1 (ja) 2022-01-13
JPWO2022009327A5 JPWO2022009327A5 (ja) 2023-03-10
JP7435781B2 true JP7435781B2 (ja) 2024-02-21

Family

ID=79552439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022534551A Active JP7435781B2 (ja) 2020-07-08 2020-07-08 画像選択装置、画像選択方法、及びプログラム

Country Status (3)

Country Link
US (1) US20230306054A1 (ja)
JP (1) JP7435781B2 (ja)
WO (1) WO2022009327A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230101617A1 (en) * 2021-09-24 2023-03-30 Apple Inc. Full body pose estimation through feature extraction from multiple wearable devices

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019091138A (ja) 2017-11-13 2019-06-13 株式会社日立製作所 画像検索装置、画像検索方法、及び、それに用いる設定画面

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019091138A (ja) 2017-11-13 2019-06-13 株式会社日立製作所 画像検索装置、画像検索方法、及び、それに用いる設定画面

Also Published As

Publication number Publication date
WO2022009327A1 (ja) 2022-01-13
JPWO2022009327A1 (ja) 2022-01-13
US20230306054A1 (en) 2023-09-28

Similar Documents

Publication Publication Date Title
JP7556556B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP7409499B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP7416252B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2024103572A (ja) 情報処理装置、情報処理方法、およびプログラム
JP7364077B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP7435781B2 (ja) 画像選択装置、画像選択方法、及びプログラム
WO2022079794A1 (ja) 画像選択装置、画像選択方法、及びプログラム
WO2022009279A1 (ja) 画像選択装置、画像選択方法、及びプログラム
JP7396364B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP7375921B2 (ja) 画像分類装置、画像分類方法、およびプログラム
JP7435754B2 (ja) 画像選択装置、画像選択方法、及びプログラム
JP7302741B2 (ja) 画像選択装置、画像選択方法、およびプログラム
WO2022249278A1 (ja) 画像処理装置、画像処理方法、およびプログラム
JP7501621B2 (ja) 画像選択装置、画像選択方法、およびプログラム
WO2022079795A1 (ja) 画像選択装置、画像選択方法、及びプログラム
JP7485040B2 (ja) 画像処理装置、画像処理方法、及びプログラム
WO2022249331A1 (ja) 画像処理装置、画像処理方法、およびプログラム
JP7468642B2 (ja) 画像処理装置、画像処理方法、及びプログラム
WO2023152977A1 (ja) 画像処理装置、画像処理方法、およびプログラム
WO2023152974A1 (ja) 画像処理装置、画像処理方法、およびプログラム
WO2023112321A1 (ja) 画像処理システム、画像処理方法及び非一時的なコンピュータ可読媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240122

R151 Written notification of patent or utility model registration

Ref document number: 7435781

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151