IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立システムズの特許一覧

特許7636276画像処理装置、画像処理方法及び画像処理システム
<>
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図1
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図2
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図3
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図4
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図5
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図6
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図7
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図8
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図9
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図10
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図11
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図12
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図13
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図14
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図15
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図16
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図17
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図18
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図19
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図20
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図21
  • 特許-画像処理装置、画像処理方法及び画像処理システム 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-17
(45)【発行日】2025-02-26
(54)【発明の名称】画像処理装置、画像処理方法及び画像処理システム
(51)【国際特許分類】
   G06T 7/20 20170101AFI20250218BHJP
   G06T 7/00 20170101ALI20250218BHJP
【FI】
G06T7/20 300A
G06T7/00 350C
【請求項の数】 13
(21)【出願番号】P 2021106786
(22)【出願日】2021-06-28
(65)【公開番号】P2023005088
(43)【公開日】2023-01-18
【審査請求日】2024-01-31
(73)【特許権者】
【識別番号】000233491
【氏名又は名称】株式会社日立システムズ
(74)【代理人】
【識別番号】110000062
【氏名又は名称】弁理士法人第一国際特許事務所
(72)【発明者】
【氏名】シンハ サプタルシ
(72)【発明者】
【氏名】中村 克行
(72)【発明者】
【氏名】秋山 高行
【審査官】菊池 伸郎
(56)【参考文献】
【文献】特表2021-510225(JP,A)
【文献】特開2016-115125(JP,A)
【文献】国際公開第2016/199504(WO,A1)
【文献】特開2011-085712(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00-7/90
G06V 10/00-40/70
(57)【特許請求の範囲】
【請求項1】
画像処理装置であって、
ユーザの手を含む広角映像を入力映像として受け付ける入力部と、
前記入力映像における前記手を含む対象領域を判定する判定部と、
前記対象領域に対応する部分的画像を前記入力映像から抽出する抽出部と、
前記部分的画像を、所定の機械学習手法を用いて解析することで、前記ユーザによって行われているアクティビティを検出し、検出した前記アクティビティに関するアクティビティ検出結果を生成する検出部とを含み、
前記入力映像は、
複数のフレームから構成されており、
前記判定部は、
前記入力映像における第1のフレームを、広角でない標準画角の画像において手の位置を特定するように訓練された第1のニューラルネットワークによって処理することにより、前記第1のフレームにおける第1の手を含む第1の手の領域及び前記第1のフレームにおける第2の手を含む第2の手の領域の少なくとも一方を推定し、
前記第1のフレームの次のフレームである第2のフレームから、前記第1の手の領域に対応する第1の画像及び前記第2の手の領域に対応する第2の画像の少なくとも一方を抽出し、
所定の画像処理手法を前記第1の画像及び前記第2の画像の少なくとも一方に対して実行することにより、前記第1の画像を広角の画像から広角でない標準画角の画像に変換した第1の疑似標準画像及び前記第2の画像を広角の画像から広角でない標準画角の画像に変換した第2の疑似標準画像の少なくとも一方を生成し、
前記第1の疑似標準画像及び前記第2の疑似標準画像の少なくとも一方を、前記第1のニューラルネットワークによって処理することにより、前記第2のフレームにおける第1の手を含む第1の手の領域及び前記第2のフレームにおける第2の手を含む第2の手の領域の少なくとも一方を推定する、
ことを特徴とする画像処理装置。
【請求項2】
画像処理装置であって、
ユーザの手を含む広角映像を入力映像として受け付ける入力部と、
前記入力映像における前記手を含む対象領域を判定する判定部と、
前記対象領域に対応する部分的画像を前記入力映像から抽出する抽出部と、
前記部分的画像を、所定の機械学習手法を用いて解析することで、前記ユーザによって行われているアクティビティを検出し、検出した前記アクティビティに関するアクティビティ検出結果を生成する検出部とを含み、
前記入力映像は、
複数のフレームから構成されており、
前記判定部は、
所定の画像処理手法を、広角でない標準画角の画像に対して実行することにより、前記標準画角の画像を広角画像に変換した疑似広角画像を生成し、
前記疑似広角画像と、前記疑似広角画像における正しい手の位置を示す教師画像とを対応付けた学習データを用いてニューラルネットワークを訓練することにより、広角映像において手の位置を特定するように訓練された第2のニューラルネットワークを構築し、
前記入力映像を、前記第2のニューラルネットワークによって処理することにより、前記入力映像を構成する各フレームにおける第1の手を含む第1の手の領域及び第2の手を含む第2の手の領域の少なくとも一方を推定する、
ことを特徴とする画像処理装置。
【請求項3】
前記判定部は、
前記入力映像を構成する各フレームにおいて、前記第1の手の領域を規定する第1の座標と、前記入力映像における前記第2の手の領域を規定する第2の座標とに基づいて、前記対象領域を判定する、
ことを特徴とする、請求項1又は2に記載の画像処理装置。
【請求項4】
前記抽出部は、
前記入力映像を構成する各フレームにおいて、前記第1の手の領域の中心点を示す第1の中心座標と、前記第2の手の領域の中心点を示す第2の中心座標とを計算し、
前記第1の中心座標と、前記第2の中心座標との距離を計算し、
前記距離が所定の閾値以下の場合、
前記第1の手の領域及び前記第2の手の領域を含む第1の部分的画像を抽出し、
前記距離が所定の閾値を超える場合、
前記第1の手の領域に対応する第1の部分的画像と、前記第2の手の領域に対応する第2の部分的画像とを抽出する、
ことを特徴とする、請求項に記載の画像処理装置。
【請求項5】
前記入力部は、
前記第1の手が前記ユーザの利き手であることを示す利き手情報を受け付けた場合、
前記抽出部は、
前記距離が所定の閾値を超える場合、
前記第1の手の領域に対応する第1の部分的画像を抽出する、
ことを特徴とする、請求項に記載の画像処理装置。
【請求項6】
前記判定部は、
前記入力映像における第1のフレームにおいて、前記第1の手の領域が前記第2の手の領域より左側に位置している場合、前記第1の手の領域を左手に対応する領域とし、前記第2の手の領域を右手に対応する領域とし、
前記第1のフレームの次のフレームである第2のフレームにおける第3の手の領域と、前記第1のフレームにおける前記第1の手の領域とが重なる割合を示す第1の重なり量を計算し、
前記第2のフレームにおける第3の手の領域と、前記第1のフレームにおける前記第2の手の領域とが重なる割合を示す第2の重なり量を計算し、
前記第1の重なり量が前記第2の重なり量より大きい場合、前記第3の手の領域を左手に対応する領域とし、
前記第2の重なり量が前記第1の重なり量より大きい場合、前記第3の手の領域を右手に対応する領域とする、
ことを特徴とする、請求項に記載の画像処理装置。
【請求項7】
画像処理方法であって、
ユーザの手を含む広角映像を入力映像として受け付ける工程と、
所定の画像処理手法を、広角でない標準画角の画像に対して実行することにより、前記標準画角の画像を広角画像に変換した疑似広角画像を生成する工程と、
前記疑似広角画像と、前記疑似広角画像における正しい手の位置を示す教師画像とを対応付けた学習データを用いてニューラルネットワークを訓練することにより、広角映像において手の位置を特定するように訓練されたニューラルネットワークを構築する工程と、
前記入力映像を、前記ニューラルネットワークによって処理することにより、前記入力映像を構成する各フレームにおける第1の手を含む第1の手の領域及び第2の手を含む第2の手の領域の少なくとも一方を推定する工程と、
前記入力映像を構成する各フレームにおいて、前記第1の手の領域を規定する第1の座標と、前記入力映像における前記第2の手の領域を規定する第2の座標とに基づいて、対象領域を判定する工程と、
前記入力映像を構成する各フレームにおいて、前記第1の手の領域の中心点を示す第1の中心座標と、前記第2の手の領域の中心点を示す第2の中心座標とを計算する工程と、
前記第1の中心座標と、前記第2の中心座標との距離を計算する工程と、
前記距離が所定の閾値以下の場合、前記第1の手の領域及び前記第2の手の領域を含む第1の部分的画像を抽出する工程と、
前記距離が所定の閾値を超える場合、前記第1の手の領域に対応する第1の部分的画像と、前記第2の手の領域に対応する第2の部分的画像とを抽出する工程と、
前記第1の部分的画像及び前記第2の部分的画像の少なくとも一方を所定の機械学習手法を用いて解析することで、前記ユーザによって行われているアクティビティを検出し、検出した前記アクティビティに関するアクティビティ検出結果を生成し、出力する工程と、
を含むことを特徴とする画像処理方法。
【請求項8】
画像処理システムであって、
ユーザの手を含む広角映像を取得する撮影装置と、
広角映像を解析することにより、前記ユーザによって行われているアクティビティを検出する画像処理装置と、
前記画像処理装置によるアクティビティ検出の結果を確認するクライアント端末とが通信ネットワークを介して接続されており、
前記画像処理装置は、
前記撮影装置から、前記広角映像を入力映像として受け付ける入力部と、
前記入力映像における前記ユーザの手を含む対象領域を判定する判定部と、
前記対象領域に対応する部分的画像を前記入力映像から抽出する抽出部と、
前記部分的画像を、所定の機械学習手法を用いて解析することで、前記ユーザによって行われているアクティビティを検出し、検出した前記アクティビティに関するアクティビティ検出結果を生成する検出部と、
前記アクティビティ検出結果を前記クライアント端末に出力する出力部とを含み、
前記入力映像は、
複数のフレームから構成されており、
前記判定部は、
前記入力映像における第1のフレームを、広角でない標準画角の画像において手の位置を特定するように訓練された第1のニューラルネットワークによって処理することにより、前記第1のフレームにおける第1の手を含む第1の手の領域及び前記第1のフレームにおける第2の手を含む第2の手の領域の少なくとも一方を推定し、
前記第1のフレームの次のフレームである第2のフレームから、前記第1の手の領域に対応する第1の画像及び前記第2の手の領域に対応する第2の画像の少なくとも一方を抽出し、
所定の画像処理手法を前記第1の画像及び前記第2の画像の少なくとも一方に対して実行することにより、前記第1の画像を広角の画像から広角でない標準画角の画像に変換した第1の疑似標準画像及び前記第2の画像を広角の画像から広角でない標準画角の画像に変換した第2の疑似標準画像の少なくとも一方を生成し、
前記第1の疑似標準画像及び前記第2の疑似標準画像の少なくとも一方を、前記第1のニューラルネットワークによって処理することにより、前記第2のフレームにおける第1の手を含む第1の手の領域及び前記第2のフレームにおける第2の手を含む第2の手の領域の少なくとも一方を推定する、
ことを特徴とする画像処理システム。
【請求項9】
画像処理システムであって、
ユーザの手を含む広角映像を取得する撮影装置と、
広角映像を解析することにより、前記ユーザによって行われているアクティビティを検出する画像処理装置と、
前記画像処理装置によるアクティビティ検出の結果を確認するクライアント端末とが通信ネットワークを介して接続されており、
前記画像処理装置は、
前記撮影装置から、前記広角映像を入力映像として受け付ける入力部と、
前記入力映像における前記ユーザの手を含む対象領域を判定する判定部と、
前記対象領域に対応する部分的画像を前記入力映像から抽出する抽出部と、
前記部分的画像を、所定の機械学習手法を用いて解析することで、前記ユーザによって行われているアクティビティを検出し、検出した前記アクティビティに関するアクティビティ検出結果を生成する検出部と、
前記アクティビティ検出結果を前記クライアント端末に出力する出力部とを含み、
前記入力映像は、
複数のフレームから構成されており、
前記判定部は、
所定の画像処理手法を、広角でない標準画角の画像に対して実行することにより、前記標準画角の画像を広角画像に変換した疑似広角画像を生成し、
前記疑似広角画像と、前記疑似広角画像における正しい手の位置を示す教師画像とを対応付けた学習データを用いてニューラルネットワークを訓練することにより、広角映像において手の位置を特定するように訓練された第2のニューラルネットワークを構築し、
前記入力映像を、前記第2のニューラルネットワークによって処理することにより、前記入力映像を構成する各フレームにおける第1の手を含む第1の手の領域及び第2の手を含む第2の手の領域の少なくとも一方を推定する、
ことを特徴とする画像処理システム。
【請求項10】
前記判定部は、
前記入力映像を構成する各フレームにおいて、前記第1の手の領域を規定する第1の座標と、前記入力映像における前記第2の手の領域を規定する第2の座標とに基づいて、前記対象領域を判定する、
ことを特徴とする、請求項8又は9に記載の画像処理システム。
【請求項11】
前記抽出部は、
前記入力映像を構成する各フレームにおいて、前記第1の手の領域の中心点を示す第1の中心座標と、前記第2の手の領域の中心点を示す第2の中心座標とを計算し、
前記第1の中心座標と、前記第2の中心座標との距離を計算し、
前記距離が所定の閾値以下の場合、
前記第1の手の領域及び前記第2の手の領域を含む第1の部分的画像を抽出し、
前記距離が所定の閾値を超える場合、
前記第1の手の領域に対応する第1の部分的画像と、前記第2の手の領域に対応する第2の部分的画像とを抽出する、
ことを特徴とする、請求項10に記載の画像処理システム。
【請求項12】
前記入力部は、
前記第1の手が前記ユーザの利き手であることを示す利き手情報を受け付けた場合、
前記抽出部は、
前記距離が所定の閾値を超える場合、
前記第1の手の領域に対応する第1の部分的画像を抽出する、
ことを特徴とする、請求項11に記載の画像処理システム。
【請求項13】
前記判定部は、
前記入力映像における第1のフレームにおいて、前記第1の手の領域が前記第2の手の領域より左側に位置している場合、前記第1の手の領域を左手に対応する領域とし、前記第2の手の領域を右手に対応する領域とし、
前記第1のフレームの次のフレームである第2のフレームにおける第3の手の領域と、前記第1のフレームにおける前記第1の手の領域とが重なる割合を示す第1の重なり量を計算し、
前記第2のフレームにおける第3の手の領域と、前記第1のフレームにおける前記第2の手の領域とが重なる割合を示す第2の重なり量を計算し、
前記第1の重なり量が前記第2の重なり量より大きい場合、前記第3の手の領域を左手に対応する領域とし、
前記第2の重なり量が前記第1の重なり量より大きい場合、前記第3の手の領域を右手に対応する領域とする、
ことを特徴とする、請求項11に記載の画像処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置、画像処理方法及び画像処理システムに関する。
【背景技術】
【0002】
近年、写真、動画、画像等の映像コンテンツが急増する中、IoTを活用した社会イノベーションを推進するために、保全業務に画像処理技術を適用して業務の正確性を高めるための技術に関する需要が高まっている。
特に、映像コンテンツを活用して、作業員等のユーザが行なう作業を正確に判定する技術への需要が増している。映像解析の技術分野においては、所定のオブジェクトに関する行動や状況を検知することは「アクティビティ検出」(Activity Detection)と呼ばれている。
【0003】
こうしたアクティビティ検出については、いくつかの提案がなされている。
例えば、米国特許出願公開第2017/0220854号明細書(特許文献1)には、「マルチモーダルセンシングシステムには、アクションを自動的に分類するために連携する様々なデバイスが含まれている。ビデオカメラは一連のデジタル映像を撮影する。少なくとも1つの他のセンサーデバイスは、他のセンサデータ(例えば、運動データ)を取得する。システムは、デジタル映像からビデオ特徴を抽出し、抽出した各画像特徴を期間に関連付ける。また、システムは、他のセンサデータから他の特徴を抽出し、抽出した他の各特徴を期間に関連付ける。システムは、抽出したビデオ特徴のグループと、抽出した他の特徴のグループを結合して、所定の期間に対応する、結合した特徴表現を作成する。次に、結合した特徴表現を分析してクラスを識別し、クラス及びアクションのデータストアにアクセスし、クラスに関連付けられているアクションを識別し、識別したアクションをメモリデバイスに保存する」技術が記載されている。
【0004】
また、Lenjani et al.、「Automated Building Image Extraction from 360 Panoramas for Post-Disaster evaluation」(非特許文献1)には、「災害後、構造エンジニアのチームは、被害を受けた建物から大量の画像を収集して、新しい知識を取得し、災害から教訓を得る。ただし、多くの場合、収集された画像は十分な空間コンテキストなしで撮影される。被害が甚大な場合、建物の見分けがつきにくい場合がある。建物の欠陥または実際の損失の原因を正確に特定するために、これらの建物の災害前の状態の画像をアクセスすることが必要である。ここでは、この問題に対処するために、360°パノラマ画像(パノラマ)から災害前の建物の画像を自動的に抽出する方法を提案する。対象の建物の近くで収集されたジオタグ付き画像を入力として提供することにより、入力画像の場所に近いパノラマがストリートビューサービス(米国のGoogleやBingなど)を介して自動的にダウンロードされる。パノラマと対象の建物の幾何学的関係を計算することにより、各パノラマに最適な投影方向を特定し、建物の高品質の2D画像を生成する。領域ベースの畳み込みニューラルネットワークを利用して、これらの2D画像内の建物を認識する。検出された建物の画像が建物の様々な視点を表示するために、いくつかのパノラマが使用される」技術が記載されている。
【先行技術文献】
【特許文献】
【0005】
【文献】米国特許出願公開第2017/0220854号明細書
【非特許文献】
【0006】
【文献】Lenjani et al.、「Automated Building Image Extraction from 360 Panoramas for Post-Disaster evaluation」
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1には、ウェアラブルカメラによって取得した一人称視点の映像から抽出した特徴と、加速度センサ等の他のセンサによって取得したセンサデータから抽出した特徴とを結合し、ニューラルネットワークを用いて結合した特徴を処理することで、映像において行われているアクティビティを検出する手段が記載されている。
しかし、特許文献1の手段では、ウェアラブルカメラによって取得される一人称視点の映像は標準画角の映像であるため、アクティビティ検出処理の範囲が、映像の狭い視野に限られてしまい、検出の対象となるアクティビティがウェアラブルカメラの撮影範囲に含まれないことがある。この場合、このように取得した映像を、アクティビティを検出するように訓練したニューラルネットワークによって処理しても、アクティビティ検出の精度が低くなってしまう。
【0008】
非特許文献1には、建物の災害前の状態を示す360度パノラマ映像と、建物の災害後の状態を示す映像とを対応付けて解析することにより、災害による被害の規模等を評価する手段が記載されている。
しかし、非特許文献1の手段では、GPS等の他のセンサのデータに基づいて、360度パノラマ映像から関心の領域を抽出しており、GPS等の他のセンサのデータが利用できない場合や、GPSのデータで特定できない小さなオブジェクトに関するアクティビティを検出したい場合等が想定されていない。そのため、非特許文献1の手段は、例えば保全業務において作業員が行なっている作業(ネジを閉めたり、ハンマーで釘を打ったり等)を検出する場合等には適していない。
【0009】
そこで、本開示は、ユーザが装着している広角ウェアラブルカメラによって取得された一人称視点の広角映像において、ユーザの手を検知し、検知したユーザの手の位置に基づいた対象領域の画像を抽出する。そして、抽出した画像に対してアクティビティ検出を行うことにより、一人称視点の広角映像に対する高精度のアクティビティ検出を可能とする画像処理手段を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記の課題を解決するために、代表的な本開示の画像処理装置の一つは、ユーザの手を含む広角映像を入力映像として受け付ける入力部と、前記入力映像における前記手を含む対象領域を判定する判定部と、前記対象領域に対応する部分的画像を前記入力映像から抽出する抽出部と、前記部分的画像を、所定の機械学習手法を用いて解析することで、前記ユーザによって行われているアクティビティを検出し、検出した前記アクティビティに関するアクティビティ検出結果を生成する検出部とを含む。
【発明の効果】
【0011】
本開示によれば、ユーザが装着している広角ウェアラブルカメラによって取得された一人称視点の広角映像において、ユーザの手を検知し、検知したユーザの手の位置に基づいた対象領域の画像を抽出し、抽出した画像に対してアクティビティ検出を行うことにより、一人称視点の広角映像に対する高精度のアクティビティ検出を可能とする画像処理手段を提供することができる。
上記以外の課題、構成及び効果は、以下の発明を実施するための形態における説明により明らかにされる。
【図面の簡単な説明】
【0012】
図1図1は、本開示の実施例を実施するためのコンピュータシステムを示す図である。
図2図2は、本開示の実施例1に係る画像処理システムの構成の一例を示す図である。
図3図3は、本開示の実施例1に係る画像処理装置における全体のデータの流れを示すブロック図である。
図4図4は、本開示の実施例1に係る部分的画像を抽出する処理の流れを示すブロック図である。
図5図5は、本開示の実施例1に係る対象領域判定処理の流れの一例を示すブロック図である。
図6図6は、本開示の実施例1に係る手の検知処理の流れの一例を示すフローチャートである。
図7図7は、本開示の実施例1に係る広角映像において手の位置を特定するように訓練されたニューラルネットワークの訓練処理を示すブロック図である。
図8図8は、本開示の実施例1に係る手の検知処理の流れの一例を示すフローチャートである。
図9図9は、本開示の実施例1に係るニューラルネットワークに訓練処理に用いられる学習データを格納する学習データテーブルの一例を示す図である。
図10図10は、本開示の実施例1に係るニューラルネットワークによる予測結果の情報を格納するための予測結果テーブルの一例を示す図である。
図11図11は、本開示の実施例1に係る手の検知処理によって生成される手の位置の情報を格納する手の位置情報テーブルの一例を示す図である。
図12図12は、本開示の実施例1に係る手の追跡処理によって生成される追跡結果の情報を格納する追跡結果テーブルの一例を示す図である。
図13図13は、本開示の実施例1に係る対象領域判定処理の流れの一例を示すフローチャートである。
図14図14は、本開示の実施例1に係る対象領域判定処理によって判定される対象領域の情報を格納する対象領域情報テーブルの一例を示す図である。
図15図15は、本開示の実施例1に係る部分的画像抽出処理の流れを示すフローチャートである。
図16図16は、本開示の実施例1に係る部分的画像抽出処理によって抽出される部分的画像の情報を格納する部分的画像管理テーブルの一例を示す図である。
図17図17は、本開示の実施例2に係る対象領域判定処理の流れを示すブロック図である。
図18図18は、本開示の実施例2に係る右手・左手識別処理の流れを示すフローチャートである。
図19図19は、本開示の実施例2に係る右手・左手識別処理によって生成されるユーザの右手・左手の位置情報を格納する右手・左手位置情報テーブルの一例を示す図である。
図20図20は、本開示の実施例2に係る部分的画像抽出処理の流れの一例を示すフローチャートである。
図21図21は、本開示の実施例2に係る部分的画像抽出処理によって抽出される部分的画像の情報を格納する部分的画像管理テーブルの一例を示す図である。
図22図22は、本開示の実施例2に係るユーザインタフェースの構成を示す図である。
【発明を実施するための形態】
【0013】
上述したように、本開示の実施例は、一人称視点の広角映像に対する高精度のアクティビティ検出を可能とする画像処理手段に関する。
本開示では、一人称視点の広角映像が入力映像として取得される。この入力映像は、例えばユーザが装着している広角ウェアラブルカメラによって取得されてもよい。また、この入力映像は、複数の画像フレーム(以下、「フレーム」という)から構成される。入力映像の各フレームにおいて、ユーザの手(片手又は両手)を検知し、検知したユーザの手の位置に基づいた対象領域を判定する。その後、この対象領域に対応する部分的画像が各フレームから抽出され、アクティビティ検出用に訓練されたニューラルネットワークによって解析される。
また、本開示のある実施例では、ユーザの右手及び左手がそれぞれ個別に識別される。これにより、対象のアクティビティが右手によって行われているか、左手によって行われているか、両手によって行われているかを判定することが可能になる。
更に、ユーザの利き手を示す利き手情報を取得することで、各フレームにおけるユーザの利き手を特定することができる。これにより、ユーザの利き手を中心としてアクティビティ検出が可能となる。
【0014】
本開示の実施例では、一人称視点の広角映像を入力映像とすることにより、検出の対象となるアクティビティがウェアラブルカメラの撮影範囲に含まれないという課題を回避することができる。また、本開示の実施例では、ユーザの手を検知し、検知したユーザの手を含む対象領域の部分的画像に対してアクティビティ検出を行う。これにより、GPS等の他のセンサのデータが利用できない場合や、GPSのデータで特定できない小さなオブジェクトに関するアクティビティを検出したい場合においても、高精度のアクティビティ検出が可能となる。
【0015】
以下、図面を参照して、本発明の実施例について説明する。なお、この実施例により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0016】
まず、図1を参照して、本開示の実施例を実施するためのコンピュータシステム100について説明する。本明細書で開示される様々な実施例の機構及び装置は、任意の適切なコンピューティングシステムに適用されてもよい。コンピュータシステム100の主要コンポーネントは、1つ以上のプロセッサ102、メモリ104、端末インターフェース112、ストレージインタフェース113、I/O(入出力)デバイスインタフェース114、及びネットワークインターフェース115を含む。これらのコンポーネントは、メモリバス106、I/Oバス108、バスインターフェースユニット109、及びI/Oバスインターフェースユニット110を介して、相互的に接続されてもよい。
【0017】
コンピュータシステム100は、プロセッサ102と総称される1つ又は複数の汎用プログラマブル中央処理装置(CPU)102A及び102Bを含んでもよい。ある実施例では、コンピュータシステム100は複数のプロセッサを備えてもよく、また別の実施例では、コンピュータシステム100は単一のCPUシステムであってもよい。各プロセッサ102は、メモリ104に格納された命令を実行し、オンボードキャッシュを含んでもよい。
【0018】
ある実施例では、メモリ104は、データ及びプログラムを記憶するためのランダムアクセス半導体メモリ、記憶装置、又は記憶媒体(揮発性又は不揮発性のいずれか)を含んでもよい。メモリ104は、本明細書で説明する機能を実施するプログラム、モジュール、及びデータ構造のすべて又は一部を格納してもよい。例えば、メモリ104は、画像処理アプリケーション150を格納していてもよい。ある実施例では、画像処理アプリケーション150は、後述する機能をプロセッサ102上で実行する命令又は記述を含んでもよい。
【0019】
ある実施例では、画像処理アプリケーション150は、プロセッサベースのシステムの代わりに、またはプロセッサベースのシステムに加えて、半導体デバイス、チップ、論理ゲート、回路、回路カード、および/または他の物理ハードウェアデバイスを介してハードウェアで実施されてもよい。ある実施例では、画像処理アプリケーション150は、命令又は記述以外のデータを含んでもよい。ある実施例では、カメラ、センサ、または他のデータ入力デバイス(図示せず)が、バスインターフェースユニット109、プロセッサ102、またはコンピュータシステム100の他のハードウェアと直接通信するように提供されてもよい。
【0020】
コンピュータシステム100は、プロセッサ102、メモリ104、表示システム124、及びI/Oバスインターフェースユニット110間の通信を行うバスインターフェースユニット109を含んでもよい。I/Oバスインターフェースユニット110は、様々なI/Oユニットとの間でデータを転送するためのI/Oバス108と連結していてもよい。I/Oバスインターフェースユニット110は、I/Oバス108を介して、I/Oプロセッサ(IOP)又はI/Oアダプタ(IOA)としても知られる複数のI/Oインタフェースユニット112,113,114、及び115と通信してもよい。
【0021】
表示システム124は、表示コントローラ、表示メモリ、又はその両方を含んでもよい。表示コントローラは、ビデオ、オーディオ、又はその両方のデータを表示装置126に提供することができる。また、コンピュータシステム100は、データを収集し、プロセッサ102に当該データを提供するように構成された1つまたは複数のセンサ等のデバイスを含んでもよい。
【0022】
例えば、コンピュータシステム100は、心拍数データやストレスレベルデータ等を収集するバイオメトリックセンサ、湿度データ、温度データ、圧力データ等を収集する環境センサ、及び加速度データ、運動データ等を収集するモーションセンサ等を含んでもよい。これ以外のタイプのセンサも使用可能である。表示システム124は、単独のディスプレイ画面、テレビ、タブレット、又は携帯型デバイスなどの表示装置126に接続されてもよい。
【0023】
I/Oインタフェースユニットは、様々なストレージ又はI/Oデバイスと通信する機能を備える。例えば、端末インタフェースユニット112は、ビデオ表示装置、スピーカテレビ等のユーザ出力デバイスや、キーボード、マウス、キーパッド、タッチパッド、トラックボール、ボタン、ライトペン、又は他のポインティングデバイス等のユーザ入力デバイスのようなユーザI/Oデバイス116の取り付けが可能である。ユーザは、ユーザインターフェースを使用して、ユーザ入力デバイスを操作することで、ユーザI/Oデバイス116及びコンピュータシステム100に対して入力データや指示を入力し、コンピュータシステム100からの出力データを受け取ってもよい。ユーザインターフェースは例えば、ユーザI/Oデバイス116を介して、表示装置に表示されたり、スピーカによって再生されたり、プリンタを介して印刷されたりしてもよい。
【0024】
ストレージインタフェース113は、1つ又は複数のディスクドライブや直接アクセスストレージ装置117(通常は磁気ディスクドライブストレージ装置であるが、単一のディスクドライブとして見えるように構成されたディスクドライブのアレイ又は他のストレージ装置であってもよい)の取り付けが可能である。ある実施例では、ストレージ装置117は、任意の二次記憶装置として実装されてもよい。メモリ104の内容は、ストレージ装置117に記憶され、必要に応じてストレージ装置117から読み出されてもよい。I/Oデバイスインタフェース114は、プリンタ、ファックスマシン等の他のI/Oデバイスに対するインターフェースを提供してもよい。ネットワークインターフェース115は、コンピュータシステム100と他のデバイスが相互的に通信できるように、通信経路を提供してもよい。この通信経路は、例えば、ネットワーク130であってもよい。
【0025】
ある実施例では、コンピュータシステム100は、マルチユーザメインフレームコンピュータシステム、シングルユーザシステム、又はサーバコンピュータ等の、直接的ユーザインターフェースを有しない、他のコンピュータシステム(クライアント)からの要求を受信するデバイスであってもよい。他の実施例では、コンピュータシステム100は、デスクトップコンピュータ、携帯型コンピュータ、ノートパソコン、タブレットコンピュータ、ポケットコンピュータ、電話、スマートフォン、又は任意の他の適切な電子機器であってもよい。
【0026】
<実施例1>
次に、図2図16を参照して、本開示の実施例1について説明する。
【0027】
図2は、本開示の実施例1に係る画像処理システム200の構成の一例を示す図である。画像処理システム200は、一人称視点の広角映像におけるアクティビティを検出するためのシステムである。
図2に示すように、本開示の実施例1に係る画像処理システム200は、クライアント端末210、ユーザ230に装着されている撮影装置220、通信ネットワーク240、及び画像処理装置250を含む。クライアント端末210、撮影装置220、及び画像処理装置250は、通信ネットワーク240を介して相互的に接続される。ここでの通信ネットワーク240は、例えばインターネット、LAN(Local Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)等を含んでもよい。
【0028】
クライアント端末210は、アクティビティ検出の依頼者に利用される端末である。クライアント端末210は、例えば後述するユーザインタフェース(図22参照)を用いて、入力となる広角映像、処理対象となるフレーム、出力となる情報等を選択した上で、アクティビティ検出の処理を要求するアクティビティ検出要求を通信ネットワーク240を介して画像処理装置250に送信してもよい。
クライアント端末210は、スマートフォンやタブレット等の携帯型端末であってもよく、デスクトップパソコン等の固定型の端末であってもよい。また、クライアント端末210は、ユーザからの入力を受け付けるためのタッチ画面、キーボード、マウス、音声認識機能等の入力機能を備えてもよい。
【0029】
ユーザ230は、アクティビティ検出の対象となるアクティビティを行うユーザであり、例えば保全業務を行う作業員等であってもよい。ここでの「アクティビティ」とは、ユーザ230が行っているアクション(ボールを投げること、ネジを閉めること等)であってもよく、ユーザ230に対して行われているアクション(犬に噛まれていること等)であってもよく、ユーザ230と同じ時空間的領域において起きている任意の事象であってもよい。
図2に示すように、ユーザ230は、撮影装置220を装着してもよい。更に、ある実施例では、ユーザ230は、例えば加速度センサやジャイロスコープ等、他のセンサを装着してもよい。
【0030】
撮影装置220は、アクティビティ検出の対象となる入力映像を取得するための装置である。撮影装置220は、例えばユーザ230に装着される広角カメラ(例えば、GoPro Max等)であり、ユーザ230が移動しながら一人称視点の広角映像(例えば、360度の映像)を継続的に撮影するように構成されてもよい。ここでの広角映像は、例えば焦点距離が35mm以下のレンズによって撮影される映像を意味する。
撮影装置220は、ユーザ230の頭部や胸部等、ユーザの手の周囲を容易に撮影可能な位置に装着されてもよい。撮影装置220によって取得される一人称視点の広角映像は、通信ネットワーク240を介して画像処理装置250に送信される。
【0031】
画像処理装置250は、一人称視点の広角映像におけるアクティビティを検出するための装置である。画像処理装置250は、例えばユーザ230及びクライアント端末210から地理的に離れている遠隔サーバであってもよく、通信ネットワーク240を介して撮影装置220から取得された広角映像に対するアクティビティ検出結果をサービスとしてクライアント端末210に送信するように構成されてもよい。ただし、本発明はこれに限定されない。例えば、画像処理装置250の各機能部は、クライアント端末210上に実行されるソフトウエアアプリケーションとして実施されてもよい。
図2に示すように、画像処理装置250は、入力部252、判定部254、抽出部256、検出部258、出力部260及び記憶部262を含む。ただし、画像処理装置250はこの構成に限定されず、後述するように、他の機能部を備えてもよい。
【0032】
入力部252は、撮影装置220によって取得される広角映像を入力映像として受け付ける機能部である。この広角映像は、例えばユーザ230の手(片手又は両手)を含む、一人称視点の広角映像であってもよい。入力部252は、広角映像をリアルタイムで継続的に撮影装置220から受け付けてもよく、定期的に受け付けてもよい。また、入力部252は、加速度センサやジャイロスコープ等、他のセンサによって取得されたセンサデータを受け付けてもよい。
判定部254は、入力部252によって取得された入力映像におけるユーザ230の手を含む対象領域を判定する機能部である。判定部254は、例えば映像において手の位置を特定するように訓練されたニューラルネットワークであってもよい。
抽出部256は、判定部254によって判定された対象領域に対応する部分的画像を入力映像から抽出する機能部である。
検出部258は、抽出部256によって抽出される部分的画像を、所定の機械学習手法を用いて解析することで、ユーザ230によって行われているアクティビティを検出し、検出したアクティビティに関するアクティビティ検出結果を生成する機能部である。
出力部260は、検出部258によって生成されるアクティビティ検出結果をクライアント端末210及び記憶部262に出力する機能部である。
記憶部262は、出力部260によって出力されるアクティビティ検出結果を格納するための機能部である。記憶部262は、例えばフラッシュメモリ、ハードディスクドライブ等、任意の記憶媒体であってもよい。
【0033】
以上説明した画像処理システム200によれば、一人称視点の広角映像に対する高精度のアクティビティ検出が可能となる。
【0034】
次に、図3を参照して、本開示の実施例1に係る画像処理装置における全体のデータの流れについて説明する。
図3は、本開示の実施例1に係る画像処理装置250における全体のデータの流れを示すブロック図である。
【0035】
まず、入力部252は、上述した撮影装置によって取得される広角映像302を入力映像として受け付ける。上述したように、この広角映像302は、例えばユーザの手(片手又は両手)を含む、一人称視点の広角映像である。この入力映像は、判定部254に入力される。
本開示では、検出の対象となるアクティビティが、ユーザの手の周囲において行われていることを前提としている。そのため、判定部254は、入力部252からの入力映像におけるユーザの手を含む対象領域を判定する。このユーザの手を含む対象領域において、検出の対象となるアクティビティが含まれているはずである。
次に、抽出部256は、判定部254によって判定された対象領域に対応する部分的画像310を抽出する。この部分的画像310は、特徴抽出部320に入力される。ここでの特徴抽出部320は、例えばSIFT(Space Invariant Feature Transform)のようなハンドクラフト特徴抽出手法(hand-crafted feature extraction method)であってもよく、オープンソースの学習データ(Imagenet, Kinetics)又はカスタムの学習データによって予め訓練されたResNetやVGG(Visual Geometry Group)のようなニューラルネットワークであってもよい。特徴抽出部320は、部分的画像310の特徴324を抽出する。
【0036】
上述したように、本開示の実施例に係る画像処理装置250は、広角映像302に加えて、例えば加速度センサやジャイロスコープ等、他のセンサによって取得されたセンサデータをアクティビティ検出に用いてもよい。この場合、入力部252は、例えば加速度センサやジャイロスコープ等、他のセンサによって取得されたセンサデータ304を受け付けた後、受け付けたセンサデータ304を特徴抽出部320に入力する。
その後、特徴抽出部320は、センサデータ304の特徴322を抽出する。
【0037】
次に、特徴結合部325は、部分的画像の特徴324と、センサデータの特徴322とを時系列に対応付けて結合する。ここでは、特徴結合部325は、特徴を結合する手段として、特徴連結手法(feature concatenation method)を用いてもよい。この特徴連結手法では、部分的画像の特徴324は、センサデータの特徴322の中から、タイムスタンプが最も近い特徴と対応付けられ、結合される。
なお、センサデータ304がない場合、特徴結合部325は、部分的画像の特徴324を直接に機械学習部340に入力する。
【0038】
特徴結合部325によって結合される特徴は、機械学習部340に入力される。この機械学習部340は、オープンソース又はカスタムの学習データに基づいて、映像におけるアクティビティを検出するように訓練されたニューラルネットワーク(ResNetやVGG)又は深層学習アルゴリズム(Support Vector Machines)等を含んでもよい。ここでのカスタムの学習データとは、学習の目的に応じて特別に作成したデータを意味する。
機械学習部340の処理の結果、広角映像302におけるアクティビティ(すなわち、ユーザの手の動作によって行われるアクティビティ)が検出され、当該アクティビティを示すアクティビティ検出結果350が出力される。このアクティビティ検出結果350は、例えばアクティビティの種類を示すラベルや、当該アクティビティが広角映像において行われている時刻(開始時刻及び終了時刻)を含んでもよい。また、このアクティビティ検出結果350は、画像処理装置の記憶部に保存されてもよく、クライアント端末に送信されてもよい。
【0039】
以上説明した画像処理装置250によれば、一人称視点の広角映像に対する高精度のアクティビティ検出が可能となる。
【0040】
次に、図4を参照して、本開示の実施例1に係る部分的画像を抽出する処理の流れについて説明する。
【0041】
図4は、本開示の実施例1に係る部分的画像を抽出する処理の流れを示すブロック図である。
【0042】
まず、入力部252は、上述した撮影装置によって取得される広角映像302を入力映像405として受け付ける。上述したように、この広角映像302は、例えばユーザの手(片手又は両手)を含む、一人称視点の広角映像である。この入力映像405は、広角映像であるため、ユーザの手以外にも、ユーザの周辺環境に関する視覚的情報を多く含む。仮にこの入力映像405を直接に検出部に入力し、アクティビティ検出を実行した場合、検出部は、対象のアクティビティと無関係の視覚的情報に惑わされ、検出の精度が限られてしまう。一方、ユーザの手の周囲等、アクティビティ検出に有用な視覚的情報を中心とした対象領域を判定し、当該対象領域に基づいて抽出した部分的画像に対してアクティビティ検出を行うことにより、高精度のアクティビティ検出が可能となる。
【0043】
次に、判定部254は、入力映像405を入力し、入力映像405におけるユーザの手を含む対象領域を判定する。ここでの対象領域とは、入力映像405において、検出の対象となるアクティビティを含む空間的領域を意味する。一般に、検出の対象となるアクティビティは、ユーザの手の周囲に行われているため、この手を含む対象領域においては、検出の対象となるアクティビティが含まれているはずである。
判定部254は、判定した対象領域を規定する座標を抽出部256に入力する。
なお、この判定部254による対象領域の判定の詳細については後述する(図13参照)ため、ここではその説明を省略する。
【0044】
次に、抽出部256は、判定部254から入力された対象領域の座標に基づいて、当該対象領域に対応する部分的画像310を入力映像405から抽出する。後述するように、ここでは、抽出部256は、ユーザの手の空間的な位置や、ユーザの利き手に関する利き手情報等に基づいて、1つの部分的画像310を入力映像405から抽出してもよく、複数の部分的画像310を入力映像405から抽出してもよい。
なお、この抽出部256による部分的画像310の抽出の詳細については後述する(図15参照)ため、ここではその説明を省略する。
【0045】
以上図4を参照して説明した処理によれば、ユーザの手の周囲等の、アクティビティ検出に有用な視覚的情報を中心とした対象領域を判定し、当該対象領域に対応する部分的画像310を入力映像405から抽出することができる。このように抽出した部分的画像310に対してアクティビティ検出を行うことにより、高精度のアクティビティ検出が可能となる。
【0046】
次に、図5を参照して、本開示の実施例1に係る対象領域を判定する処理の流れについて説明する。
【0047】
図5は、本開示の実施例1に係る対象領域を判定する処理の流れの一例を示すブロック図である。
上述したように、本開示では、検出の対象となるアクティビティが、ユーザの手の周囲において行われていることを前提としている。そのため、ユーザの手を含む対象領域においては、検出の対象となるアクティビティが含まれているはずである。
【0048】
まず、判定部は、入力映像405を入力した後、当該入力映像405における特定のフレーム(例えば、最初のフレーム)に対して、手を検知する処理を実行する(505)。ここでは、判定部は、入力映像405におけるユーザの手を検知するために、Egohandsのようなオープンソースの学習データ又はカスタムの学習データに基づいて、手を検知するように訓練されたニューラルネットワーク(例えば、VGG16-SSDやYOLOv3)を用いてもよい。このニューラルネットワークは、素手のみならず、工具等のオブジェクトを保持している手や、手袋を着けた手を検知するように訓練されていてもよい。
このニューラルネットワークは、入力映像405における手毎に当該手を含む領域510を推定して、出力する。ここでは、ニューラルネットワークは、手を含む領域510として、バウンディングボックスを定め、バウンディングボックスの位置を規定する座標を出力してもよい。
【0049】
次に、判定部は、手を追跡する処理を実行する(515)。ここでは、判定部は、特定のフレームについて推定した手を含む領域510に基づいて、入力映像405を構成する各フレームにおいて手を特定する。ここでは、判定部は、手を追跡する処理を実行することで、入力映像405を構成する各フレームについて、ユーザの手を含む領域(例えば、バウンディングボックス)を判定することができる。
ここでは、手を追跡する処理として、判定部は、いわゆるカルマンフィルタや、オープンソースの学習データ又はカスタムの学習データに基づいて、手を追跡するように訓練されたニューラルネットワークを用いてもよい。この手を追跡する処理を用いることにより、例えば撮影装置を装着したユーザの手以外に、他の人の手が入力映像405に写った場合に、撮影装置を装着したユーザの手と他の人の手を区別することが可能となる。また、画像処理システムは、手の追跡を容易にするため、撮影装置による広角映像の撮影開始時に、撮影装置の前に手を真っ直ぐにかざす指示をユーザに与える。これにより、撮影装置を装着したユーザの手と他の人の手がより区別しやすくなる。
また、手の追跡処理により、撮影装置を装着したユーザの手が撮影装置の撮影範囲内に含まれなくなったと判定された場合、判定部は、手を撮影装置の撮影範囲内に戻す通知を、例えば後述するユーザインタフェース(図22参照)を介してユーザに提供してもよい。
【0050】
次に、判定部は、手を追跡する処理により、入力映像405を構成する各フレームにおいてユーザの手を特定した後、特定した手を含む領域の位置(つまり、バウンディングボックスの座標)に基づいて、対象領域525を判定する(520)。上述したように、この対象領域525は、検出の対象となるアクティビティを含むはずである。
【0051】
以上図5を参照して説明した処理によれば、入力映像405において、検出の対象となるアクティビティを含む対象領域を判定することができる。
【0052】
次に、図6を参照して、本開示の実施例1に係る手の検知処理の流れの一例について説明する。
【0053】
上述したように、本開示の実施例では、360度映像のような広角映像に対して、手の位置を推定する手の検知処理600が行われる。ただし、広角映像は、カメラのレンズによって、半径方向への歪曲が存在し、明確な縁がないため、標準画角の映像に比べて、物体検出が困難になるという課題がある。従って、本開示の実施例に係る手の検知処理600は、この課題に鑑みてなされたものであり、歪曲が存在する360度映像のような広角映像に対しても、ユーザの手のような物体を高精度で検知することができる。
図6は、本開示の実施例1に係る手の検知処理600の流れの一例を示すフローチャートである。手の検知処理600は、広角でない標準映像において手の位置を特定するように訓練されたニューラルネットワークを用いて、広角映像である入力映像における手を検知するための処理であり、判定部によって実行される。
【0054】
まず、ステップS610では、判定部は、時系列に並ぶ、N個のフレームFからなる広角映像(F、F、...F)を入力映像として受け付ける。上述したように、この入力映像は、例えば上述した撮影装置によって取得され、画像処理装置の入力部によって受け付けられる一人称視点の広角映像であってもよい。
【0055】
次に、ステップS620では、判定部は、標準画角の画像によって訓練されたニューラルネットワークD(第1のニューラルネットワーク)を構築する。ここでは、判定部は標準画角の画像を学習データとして、VGG16-SSDやYOLOv3のようなニューラルネットワークを訓練することでニューラルネットワークDを構築してもよい。
なお、ここでの標準画角の画像は、例えば焦点距離が40mm以上のレンズによって撮影される映像を意味する。
【0056】
次に、ステップS630では、判定部は、入力映像におけるフレームのフレームインデックスとして、変数「n」を宣言し、nを1とする。このフレームインデックスnは、入力映像に含まれる複数のフレームの内、何番目のフレームを処理するかを指定する変数である。
【0057】
次に、ステップS640では、判定部は、処理対象のフレームFのフレームインデックスnが1(つまり、入力映像の最初のフレーム)であるか否かを判定する。処理対象のフレームFのフレームインデックスnが1の場合、本処理はステップS650へ進み、処理対象のフレームのフレームインデックスnが1でない場合、本処理はステップS660へ進む。
【0058】
上述したように、本開示では、画像処理システムは、撮影装置による広角映像の撮影開始時に、撮影装置の前に手を真っ直ぐにかざす指示をユーザに与える。これにより、ユーザの手が入力映像の最初のフレームであるフレームFに鮮明に写る。このため、処理対象のフレームFが入力映像の最初のフレームであるフレームFの場合(つまり、フレームインデックスnが1の場合)、広角映像でない、標準画角の画像によって訓練されたニューラルネットワークDを用いても、ユーザの手を高精度で検知することができる。
【0059】
一方、処理対象のフレームFがF以外の場合(つまり、フレームインデックスnが1でない場合)は、ユーザの手が鮮明に写っているとは限らず、フレームの全体を標準画角の画像によって訓練されたニューラルネットワークDによって処理しても、ユーザの手を高精度で特定できない場合がある。そのため、本開示の実施例では、処理対象のフレームFがF以外のフレームの場合、直前のフレームFn-1について推定した手の領域に対応する領域の画像を処理対象のフレームFから抽出する。これは、2つの連続するフレーム間で、ユーザの手の変位(すなわち、移動)が比較的に小さいため、処理対象のフレームFにおける手の位置と、その直前のフレームFn-1における手の位置とが近いからである。
【0060】
その後、抽出した画像をOpenCV等の画像処理手法によって加工することにより、歪曲を排除し、当該画像を標準画角の画像に変換することができる。このように標準画角の画像に変換した疑似標準画像(第1の疑似標準画像、第2の疑似標準画像等)を標準画角の画像によって訓練されたニューラルネットワークDによって処理することにより、ユーザの手を含む領域(例えば、バウンディングボックス)の座標を高精度で推定することができる。
【0061】
次に、ステップS650では、判定部は、処理対象のフレームFのフレームインデックスnが1(つまり、入力映像の最初のフレーム)の場合、当該フレームFの全体をニューラルネットワークDに入力することで、フレームFにおける手の位置を推定し、当該手を含む領域(例えば、バウンディングボックス)の座標を推定する。その後、本処理はステップS680へ進む。
【0062】
次に、ステップS660では、判定部は、処理対象のフレームFの直前のフレームであるフレームFn-1において検出した手の領域に対応する領域の画像を処理対象のフレームFから抽出する。
なお、ここでは、判定部は、フレームFn-1における手毎に、当該手の領域に対応する領域の画像を処理対象のフレームFから抽出してもよい。このように、ユーザの両手に対応する2つの画像(例えば、第1の画像、第2の画像)を抽出することができる。
【0063】
次に、ステップS670では、判定部は、処理対象のフレームFから抽出した画像(例えば、第1の画像、第2の画像)を、OpenCV等の画像処理手法によって加工することにより、歪曲を排除し、当該画像を標準画角の画像に変換した疑似標準画像(例えば、第1の疑似標準画像、第2の疑似標準画像)を生成する。その後、判定部は、二次標準画像を、標準画角の画像によって訓練されたニューラルネットワークDによって処理することにより、ユーザの手を含む領域(例えば、バウンディングボックス)の座標を推定する。
【0064】
次に、ステップS680では、判定部は、フレームインデックスnを1で加算する(つまり、nをn+1とする)。
【0065】
次に、ステップS690では、判定部は、処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数Nより大きいか否かを判定する。処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数Nより大きい場合、本処理はステップS695へ進む。一方、処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数N以下の場合、本処理はステップS640へ戻り、それ以降のステップを次のフレームで繰り返す。
【0066】
次に、ステップS695では、入力映像を構成する全てのフレームが処理された後、判定部は、各フレームF毎に、当該フレームにおける手を含む領域(例えば、バウンディングボックス{H,H...H})の座標を出力する。
【0067】
以上説明した手の検知処理600によれば、広角映像である入力映像を構成する各フレーム毎に、当該フレームにおける手の位置を高精度で推定し、フレームにおける手を含む領域(例えば、バウンディングボックス)の座標を出力することが可能となる。
【0068】
次に、図7及び図8を参照して、本開示の実施例に係る手の検知処理の変形例について説明する。
上述した図6を参照して説明した手の検知処理600では、広角でない標準画角の画像において手の位置を特定するように訓練されたニューラルネットワークを用いて、広角映像である入力映像における手を検知するための処理を検出したが、本開示はこれに限定されない。例えば、広角映像において手の位置を特定するように訓練されたニューラルネットワークを用いてもよい。
以下、図7及び図8を参照して、広角映像において手の位置を特定するように訓練されたニューラルネットワークを用いて手の検知処理を行う場合について説明する。
【0069】
図7は、本開示の実施例1に係る広角映像において手の位置を特定するように訓練されたニューラルネットワークの訓練処理700を示すブロック図である。
【0070】
まず、学習データ705として、標準画角の画像が学習データ705として取得される。この学習データ705となる標準画角の画像は、例えばオープンソースの学習データセットであってもよく、カスタムの学習データであってもよい。また、これらの学習データ705における手等のオブジェクトの正しい位置を示すアノテーションデータとして、グラウンドトゥルースバウンディングボックス710が取得される。
【0071】
画像変換部715は、学習データ705を入力し、OpenCV等の画像処理手法によって加工することにより、歪曲を加え、広角画像に似せた疑似広角画像に変換する。また、グラウンドトゥルースバウンディングボックス710は、この学習データ705の画像の変換に合わせて、必要に応じて補正される。
【0072】
次に、画像変換部715によって生成された疑似広角画像は、オブジェクト検出部720に入力される。このオブジェクト検出部720は、オブジェクト検出部のパラメータ717に基づいて、疑似広角画像における手の位置を予測する。より具体的には、オブジェクト検出部720は、各疑似広角画像における手毎に、当該手を含む領域を規定する予測バウンディングボックス730の座標を出力する。
なお、ここでのオブジェクト検出部のパラメータ717は、ランダムな値に初期化されてもよく、事前に訓練されたニューラルネットワークのパラメータに初期化されてもよい。
【0073】
次に、誤差計算部740は、グラウンドトゥルースバウンディングボックス710(つまり、疑似広角画像に合わせて補正されたグラウンドトゥルースバウンディングボックス)と、予測バウンディングボックス730とを比較することで、オブジェクト検出部720の予測における誤差を計算する。
【0074】
次に、更新部750は、誤差計算部740によって計算されたオブジェクト検出部720の予測における誤差に基づいて、オブジェクト検出部のパラメータ717を更新する。ここで、更新部750は、いわゆる誤差逆伝播法を用いて、オブジェクト検出部720の予測における誤差を最小化するようにオブジェクト検出部のパラメータ717を調整してもよい。
【0075】
上述した訓練処理700は、オブジェクト検出部720の誤差が所定の誤差基準を満たすまで繰り返されてもよい。これにより、広角画像において手の位置を特定するように訓練したニューラルネットワークを得ることができる。
【0076】
図8は、本開示の実施例1に係る手の検知処理800の流れの一例を示すフローチャートである。手の検知処理800は、広角画像において手の位置を特定するように訓練したニューラルネットワーク(つまり、図7を参照して説明した訓練処理700によって得られたニューラルネットワーク)を用いて、広角映像である入力映像における手を検知するための処理であり、判定部によって実行される。
【0077】
まず、ステップS810では、判定部は、時系列に並ぶ、N個のフレームFからなる広角映像(F、F、...F)を入力映像として受け付ける。上述したように、この入力映像は、例えば上述した撮影装置によって取得され、画像処理装置の入力部によって受け付けられる一人称視点の広角映像であってもよい。
【0078】
次に、ステップS820では、判定部は、広角画像によって訓練されたニューラルネットワークD1(第2のニューラルネットワーク)を構築する。ここでは、判定部は、例えば図7を参照して説明した訓練処理700を実行することで、広角画像において手の位置を特定するように訓練したニューラルネットワークD1を構築してもよい。
【0079】
次に、ステップS830では、判定部は、入力映像におけるフレームのフレームインデックスとして、変数「n」を宣言し、nを1とする。このフレームインデックスnは、入力映像に含まれる複数のフレームの内、何番目のフレームを処理するかを指定する変数である。
【0080】
次に、ステップS840では、判定部は、処理対象のフレームFをステップS820で構築したニューラルネットワークD1に入力することで、当該フレームFにおける手の位置を推定し、当該手を含む領域(例えば、バウンディングボックス)の座標を推定する。
【0081】
次に、ステップS850では、判定部は、フレームインデックスnを1で加算する(つまり、nをn+1とする)。
【0082】
次に、ステップS860では、判定部は、処理対象のフレームFをのフレームインデックスnが、入力映像に含まれるフレームの数Nに等しいか否かを判定する。処理対象のフレームFをのフレームインデックスnが、入力映像に含まれるフレームの数Nに等しい場合、本処理はステップS870へ進む。一方、処理対象のフレームのフレームインデックスnが、入力映像に含まれるフレームの数Nに等しくない場合(例えば、nがNより小さい場合等)、本処理はステップS840へ戻り、それ以降のステップを次のフレームで繰り返す。
【0083】
次に、ステップS870では、入力映像を構成する全てのフレームが処理された後、判定部は、各フレームF毎に、当該フレームにおける手を含む領域(例えば、バウンディングボックス{H,H,...H})の座標を出力する。
【0084】
以上説明した手の検知処理800によれば、広角映像である入力映像を構成する各フレーム毎に、当該フレームにおける手の位置を高精度で推定し、フレームにおける手を含む領域(例えば、バウンディングボックス)の座標を出力することが可能となる。
また、手の検知処理800では、全てのフレームの全体がニューラルネットワークに入力されるため、図7を参照して説明した手の検知処理600に比較して、手を含む領域の判定、抽出及び画像加工が不要となり、処理負荷・処理時間を抑えることができる。
【0085】
次に、図9を参照して、本開示の実施例1に係るニューラルネットワーク訓練処理に用いられる学習データを格納する学習データテーブルのデータ構成について説明する。
【0086】
図9は、本開示の実施例1に係るニューラルネットワーク訓練処理に用いられる学習データを格納する学習データテーブル900の一例を示す図である。学習データテーブル900に格納される学習データは、例えば図7を参照して説明した訓練処理700に用いられるデータである。
【0087】
図9に示すように、学習データテーブル900は、学習画像901と、グラウンドトゥルースバウンディングボックス902とを含む。
学習画像901の列では、広角画像における手の領域を推定するニューラルネットワークの訓練に用いられる広角の学習画像のそれぞれを識別する識別子T~Tの情報が格納される。例えば、学習画像がM個ある場合、最初の学習画像がTであり、最後の学習画像がTである。
【0088】
また、グラウンドトゥルースバウンディングボックス902の列では、各学習画像における手の正しい領域を規定するグラウンドトゥルースバウンディングボックスの情報が格納される。各グラウンドトゥルースバウンディングボックスは、学習画像における異なる手に対応する(つまり、学習画像に手が2つ写る場合、当該学習画像について二つのグラウンドトゥルースバウンディングボックスが存在する)。
【0089】
各グラウンドトゥルースバウンディングボックスは、Bm、kとの形式の識別子に対応付けられている。ここでは、mは、学習画像の番号を示し、kは、グラウンドトゥルースバウンディングボックスの番号を示す(つまり、B3、1は、3番目の学習画像Tにおける1番目のグラウンドトゥルースバウンディングボックスである)。
【0090】
各グラウンドトゥルースバウンディングボックスは、((x,y),(x,y),c)との形式の情報に規定される。ここでは、(x,y)は、バウンディングボックスの左上の隅の座標を示し、(x,y)は、バウンディングボックスの右下の隅の座標を示し、cは、オブジェクトのクラス(例えば、「手」)を示す。
【0091】
以上説明した学習データテーブル900に示すように、広角の学習画像と、各学習画像における手の正しい領域を示すグラウンドトゥルースバウンディングボックスとを対応付けた学習データを用いてニューラルネットワークを訓練することにより、広角画像における手の領域を高精度で検出することが可能となる。
【0092】
次に、図10を参照して、本開示の実施例1に係るニューラルネットワークによる予測結果の情報を格納するための予測結果テーブルのデータ構成について説明する。
【0093】
図10は、本開示の実施例1に係るニューラルネットワークによる予測結果の情報を格納するための予測結果テーブル1000の一例を示す図である。予測結果テーブル1000に格納される予測結果の情報は、例えば図7を参照して説明した訓練処理において、オブジェクト検出部によって生成される情報である。
【0094】
図10に示すように、予測結果テーブル1000は、学習画像1001と、予測バウンディングボックス1002とを含む。
学習画像1001の列では、オブジェクト検出部に入力される学習画像(例えば、広角画像へ変換した学習画像)のそれぞれを識別する識別子T~Tの情報が格納される。例えば、学習画像がM個ある場合、最初の学習画像がTであり、最後の学習画像がTである。
また、予測バウンディングボックス1002の列では、オブジェクト検出部によって予測された手の領域を規定する予測バウンディングボックスの情報が格納される。各予測バウンディングボックスは、学習画像における異なる手に対応する(つまり、学習画像に手が2つ写る場合、当該学習画像について二つの予測バウンディングボックスが存在する)。
【0095】
各予測バウンディングボックスは、Pm、kとの形式の識別子に対応付けられている。ここでは、mは、学習画像の番号を示し、kは、予測バウンディングボックスの番号を示す(つまり、P2、2は、2番目の学習画像Tにおける2番目の予測バウンディングボックスである)。
【0096】
各予測バウンディングボックスは、((x’,y’),(x’,y’),c’,p)との形式の情報に規定される。ここでは、(x’,y’)は、バウンディングボックスの左上の隅の座標を示し、(x’,y’)は、バウンディングボックスの右下の隅の座標を示し、c’は、オブジェクトのクラス(例えば、「手」)を示し、pは、バウンディングボックスの信用度(confidence)を示す。
【0097】
以上説明した予測結果テーブル1000に示すように、特定の学習画像(例えば、標準画角の画像から変換した疑似広角画像)における手毎に、当該手を含む領域を規定する予測バウンディングボックスの情報を管理することができる。
【0098】
次に、図11を参照して、本開示の実施例1に係る手の検知処理によって生成される手の位置の情報を格納する手の位置情報テーブルのデータ構成について説明する。
【0099】
図11は、本開示の実施例1に係る手の検知処理によって生成される手の位置の情報を格納する手の位置情報テーブル1100の一例を示す図である。手の位置情報テーブル1100に格納される手の位置情報は、例えば図6を参照して説明した手の検知処理600又は図8を参照して説明した手の検知処理800において、手の位置を特定するように訓練されたニューラルネットワークによって生成されてもよい。
【0100】
図11に示すように、手の位置情報テーブル1100は、フレーム1101と、手の位置情報1102とを含む。
フレーム1101の列では、入力映像における各フレームを識別する識別子F~FNの情報が格納される。例えば、入力映像がN個ある場合、最初のフレームがFであり、最後のフレームがFである。
また、手の位置情報1102の列では、各フレームにおいて検知された手の位置情報を規定するバウンディングボックスの情報が格納される。各バウンディングボックスは、フレームにおける異なる手に対応する(つまり、フレームに手が2つ写る場合、当該フレームについて二つのバウンディングボックスが存在する)。
【0101】
手の位置を規定するバウンディングボックスは、Hm、kとの形式の識別子に対応付けられている。ここでは、mは、フレームの番号(つまり、フレームインデックス)を示し、kは、バウンディングボックスの番号を示す(つまり、H1、2は、1番目のフレームFにおける2番目のバウンディングボックスである)。
【0102】
各予測バウンディングボックスは、((x’’,y’’),(x’’,y’’))との形式の情報に規定される。ここでは、(x’’,y’’)は、バウンディングボックスの左上の隅の座標を示し、(x’’,y’’)は、バウンディングボックスの右下の隅の座標を示す。
【0103】
以上説明した手の位置情報テーブル1100に示すように、入力映像を構成するフレーム毎に、当該フレームにおいて検知された手の位置を規定するバウンディングボックスの情報を管理することができる。
【0104】
次に、図12を参照して、本開示の実施例1に係る手の追跡処理によって生成される追跡結果の情報を格納する追跡結果テーブルのデータ構成について説明する。
【0105】
上述したように、入力映像において、撮影装置を装着したユーザの手以外の人の手が写る場合がある。従って、本開示では、撮影装置を装着したユーザの手を、同じフレームに写っている他の人の手から区別するために、手を追跡する処理を行う。図12は、本開示の実施例1に係る手の追跡処理によって生成される追跡結果の情報を格納する追跡結果テーブル1200の一例を示す図である。
【0106】
図12に示すように、追跡結果テーブル1200は、フレーム1201と、ユーザの手の位置情報1202とを格納する。
フレーム1201の列では、入力映像における各フレームを識別する識別子F~FNの情報が格納される。例えば、入力映像がN個ある場合、最初のフレームがFであり、最後のフレームがFである。
また、ユーザの手の位置情報1202の列では、各フレームにおいて検知されたユーザの手の位置情報を規定するバウンディングボックスの情報が格納される。各バウンディングボックスは、フレームにおける異なる手に対応する(つまり、フレームに手が2つ写る場合、当該フレームについて二つのバウンディングボックスが存在する)。
なお、追跡結果テーブル1200は、手の追跡処理により、撮影装置を装着したユーザの手として特定された手の位置情報のみを含む点において、フレームにおける全ての手の位置情報(つまり、ユーザの手以外の人の手)を含む手の位置情報1102と異なる。
【0107】
ユーザの手の位置を規定するバウンディングボックスは、WHm、kとの形式の識別子に対応付けられている。ここでは、mは、フレームの番号(つまり、フレームインデックス)を示し、kは、バウンディングボックスの番号を示す(つまり、WH1、2は、1番目のフレームFにおける2番目のバウンディングボックスである)。
【0108】
各予測バウンディングボックスは、((x’’,y’’),(x’’,y’’))との形式の情報に規定される。ここでは、(x’’,y’’)は、バウンディングボックスの左上の隅の座標を示し、(x’’,y’’)は、バウンディングボックスの右下の隅の座標を示す。
【0109】
以上説明した追跡結果テーブル1200に示すように、入力映像を構成するフレーム毎に、当該フレームにおいてユーザの手として特定された手の位置を規定するバウンディングボックスの情報を管理することができる。
【0110】
次に、図13を参照して、本開示の実施例1に係る対象領域判定処理の詳細について説明する。
【0111】
図13は、本開示の実施例1に係る対象領域判定処理1300の流れの一例を示すフローチャートである。図13に示す対象領域判定処理1300は、入力映像におけるユーザの手を含む対象領域を判定するための処理であり、上述した判定部によって行われる。
上述したように、本開示では、検出の対象となるアクティビティが、ユーザの手の周囲に行われているはずであることを前提としている。そのため、ユーザの手を含む対象領域においては、検出の対象となるアクティビティが含まれているはずである。
【0112】
まず、ステップS1310では、判定部は、各フレームにおける手のバウンディングボックスの座標(WH1,1,WH1,2,WH2,1,...,WHN,1,WHN,2)を入力する。ここで入力される手のバウンディングボックスの座標は、例えば上述した手の追跡処理によって特定された、ユーザの手の位置を規定するバウンディングボックスの情報であり、図12に示す追跡結果テーブル1200に格納されている。
【0113】
次に、ステップS1320では、判定部は、入力映像におけるフレームのフレームインデックスとして、変数「n」を宣言し、nを1とする。このフレームインデックスnは、入力映像に含まれる複数のフレームの内、何番目のフレームを処理するかを指定する変数である。
【0114】
次に、ステップS1330では、判定部は、処理対象のフレームFにおけるユーザの両手のバウンディングボックスWHn,1、WHn,2の座標を選択する。
【0115】
次に、ステップS1340では、判定部は、処理対象のフレームFにおける対象領域の座標を計算する。上述したように、各バウンディングボックスWHm、kは、バウンディングボックスの左上の隅の座標(x,y)と、バウンディングボックスの右下の隅の座標(x,y)に規定される。
従って、フレームFにおいて、ユーザの第1の手(例えば、左手)のバウンディングボックスWHn,1は、(xn,1,1,yn,1,1,xn,1,2,yn,1,2)の座標に規定され、ユーザの第2の手(例えば、右手)のバウンディングボックスWHn,2は、(xn,2,1,yn,2,1,xn,2,2,yn,2,2)の座標に規定される。
この場合、判定部は、フレームFにおける対象領域PAの座標を、以下の数式1のように定義する。
【数1】
また、ここで、判定部は、(xn,t)、(yn,t)、(xn,b)及び(yn,b)のそれぞれを以下の数式2~5に従って計算する。
【数2】
【数3】
【数4】
【数5】
このように、判定部は、フレームFにおける対象領域PAの座標を、当該フレームにおける手のバウンディングボックスに基づいて計算することができる。
【0116】
次に、ステップS1350では、判定部は、フレームインデックスnを1で加算する(つまり、nをn+1とする)。
【0117】
次に、ステップS1360では、判定部は、処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数N以下か否かを判定する。処理対象のフレームのフレームインデックスnが、入力映像に含まれるフレームの数Nより大きい場合、本処理はステップS1370へ進む。一方、処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数N以下の場合、本処理はステップS1330へ戻り、それ以降のステップを次のフレームで繰り返す。
【0118】
次に、ステップS1370では、入力映像を構成する全てのフレームが処理された後、判定部は、各フレームF毎に、当該フレームについて判定した対象領域のバウンディングボックスの座標(PA,PA,...,PA)を出力する。
【0119】
以上説明した対象領域判定処理1300によれば、入力映像を構成する各フレームにおいて、検出の対象となるアクティビティを含む対象領域を判定することができる。
【0120】
次に、図14を参照して、本開示の実施例1に係る対象領域判定処理によって判定される対象領域の情報を格納する対象領域情報テーブルのデータ構成について説明する。
図14は、本開示の実施例1に係る対象領域判定処理によって判定される対象領域の情報を格納する対象領域情報テーブル1400の一例を示す図である。
【0121】
図14に示すように、対象領域情報テーブル1400は、フレーム1401と、対象領域1402の情報を格納する。
フレーム1401の列では、入力映像における各フレームを識別する識別子F~FNの情報が格納される。例えば、入力映像がN個ある場合、最初のフレームがFであり、最後のフレームがFNである。
また、対象領域1402の列では、各フレームにおいて判定された対象領域のバウンディングボックスの情報が格納される。各対象領域のバウンディングボックスは、PAとの形式の識別子に対応付けられている。ここでは、nは、フレームの番号(つまり、フレームインデックス)を示す。
【0122】
以上説明した対象領域情報テーブル1400に示すように、入力映像を構成するフレーム毎に、当該フレームにおいて、検出の対象となるアクティビティを含む対象領域のバウンディングボックスの座標を管理することができる。
【0123】
次に、図15を参照して、本開示の実施例1に係る部分的画像抽出処理の詳細について説明する。
【0124】
図15は、本開示の実施例1に係る部分的画像抽出処理1500の流れを示すフローチャートである。図15に示す部分的画像抽出処理1500は、入力映像から、ユーザの手を含む対象領域に対応する部分的画像を抽出するための処理であり、抽出部によって実行される。
【0125】
まず、ステップS1510では、抽出部は、N個のフレームFからなる広角映像(F、F、...F)である入力映像と、各フレームにおける手のバウンディングボックスの座標(WH1,1,WH1,2,WH2,1,...,WHN,1,WHN,2)と、各フレームについて判定した対象領域のバウンディングボックスの座標(PA,PA,...,PA)とを入力する。
入力映像は、例えば上述した撮影装置によって取得され、画像処理装置の入力部によって受け付けられる一人称視点の広角映像であってもよい。
【0126】
各フレームにおける手のバウンディングボックスの座標は、例えば上述した手の追跡処理によって特定され、図12に示す追跡結果テーブル1200に格納されている座標の情報である。
各フレームについて判定した対象領域のバウンディングボックスの座標は、例えば上述した対象領域判定処理によって判定され、図14に示す対象領域情報テーブル1400に格納されている座標の情報である。
【0127】
次に、ステップS1520では、抽出部は、入力映像におけるフレームのフレームインデックスとして、変数「n」を宣言し、nを1とする。このフレームインデックスnは、入力映像に含まれる複数のフレームの内、何番目のフレームを処理するかを指定する変数である。
【0128】
次に、ステップS1530では、抽出部は、処理対象のフレームFにおけるユーザの2つの手のバウンディングボックスWHn,1,WHn,2のそれぞれの中心点c、cを計算した後、バウンディングボックスWHn,1,WHn,2のそれぞれの中心点間の距離(すなわち、ユーザの両手間の距離)dを計算する。
上述したように、各バウンディングボックスWHm、kは、左上の隅の座標(x,y)と、右下の隅の座標(x,y)に規定される。
また、バウンディングボックスWHn,1の中心点cは(x,y)によって規定され、バウンディングボックスWHn,2の中心点cは(x,y)によって規定される。
フレームFにおけるバウンディングボックスWHn,kの中心点cは、以下の数式によって求められる。
【数6】
抽出部は、バウンディングボックスWHn,1,WHn,2のそれぞれの中心点c、cを計算した後、バウンディングボックスWHn,1,WHn,2のそれぞれの中心点間の距離dを計算する。この中心点間の距離dは、以下の数式によって求められる。
【数7】
【0129】
次に、ステップS1540では、抽出部は、ステップS1530で計算した距離dを、予め設定された所定の閾値Tに比較する。ユーザの両手間の距離dが所定の閾値T以下の場合、本処理はステップS1560へ進む。
一方、ユーザの両手間の距離dが、所定の閾値Tを超える場合、本処理はステップS1550へ進む。
【0130】
本開示では、ユーザの両手間の距離dが、所定の閾値T以下の場合、ユーザの両手がいずれも同一のアクティビティに係っていると仮定され、両手を含む1つの部分的画像を抽出する。従って、ステップS1550では、抽出部は、処理対象のフレームFから、当該フレームにおける対象領域PAのバウンディングボックスに対応する部分的画像を抽出する。抽出部は、対象領域PAのバウンディングボックスの縦横比を維持しつつ、対象領域PAを自然数に乗じた領域に対応する部分的画像を抽出してもよい。
なお、ここで抽出される部分的画像の大きさは、適宜に拡大されたり、縮小されたりしてもよい。
【0131】
一方、ユーザの両手間の距離dが、所定の閾値Tを超える場合、両手がそれぞれ別々のアクティビティに係っていると仮定され、両手それぞれについて別々の部分的画像が抽出される。従って、ステップS1560では、抽出部は、処理対象のフレームFから、当該フレームにおける第1のユーザの手(例えば、左手)のバウンディングボックスWHn,1に対応する部分的画像(例えば、第1の部分的画像)と、第2のユーザの手(例えば、右手)のバウンディングボックスWHn,1に対応する部分的画像(例えば、第2の部分的画像)とをそれぞれ抽出する。
なお、ここで抽出される部分的画像の大きさは、適宜に拡大されたり、縮小されたりしてもよい。
【0132】
次に、ステップS1570では、抽出部は、フレームインデックスnを1で加算する(つまり、nをn+1とする)。
【0133】
次に、ステップS1580では、抽出部は、処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数N以下か否かを判定する。処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数Nより大きい場合、本処理はステップS1590へ進む。一方、処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数N以下の場合、本処理はステップS1530へ戻り、それ以降のステップを次のフレームで繰り返す。
【0134】
次に、ステップS1590では、抽出部は、各フレームから抽出した部分的画像(I1,1, I1,2,...,IN,1)を出力する。
【0135】
以上説明した部分的画像抽出処理1500によれば、ユーザの手の周囲等の、アクティビティ検出に有用な視覚的情報を中心とした対象領域を判定し、当該対象領域に対応する部分的画像を入力映像から抽出することができる。このように抽出した部分的画像に対してアクティビティ検出を行うことにより、高精度のアクティビティ検出が可能となる。
【0136】
次に、図16を参照して、本開示の実施例1に係る部分的画像抽出処理によって抽出される部分的画像の情報を格納する部分的画像管理テーブルのデータ構成について説明する。
【0137】
図16は、本開示の実施例1に係る部分的画像抽出処理によって抽出される部分的画像の情報を格納する部分的画像管理テーブル1600の一例を示す図である。
【0138】
図16に示すように、部分的画像管理テーブル1600は、フレーム1601と、部分的画像1602の情報を格納する。
フレーム1601の列では、入力映像における各フレームを識別する識別子F~FNの情報が格納される。例えば、入力映像がN個ある場合、最初のフレームがFであり、最後のフレームがFNである。
また、部分的画像1602の列では、各フレームから抽出された部分的画像の情報が格納される。各部分的画像は、In、kとの形式の識別子に対応付けられている。nは、フレームの番号(つまり、フレームインデックス)を示し、kは、部分的画像の番号を示す(つまり、I3、1は、3番目のフレームFにおける1番目の部分的画像である)。
上述したように、両手間の距離が所定の閾値以下の場合、1つのフレームから両手を含む1つの部分的画像が抽出され、両手間の距離が所定の閾値を超える場合、両手のそれぞれについて部分的画像が抽出される。従って、部分的画像管理テーブル1600において、各フレームは、1つ又は2つの部分的画像に対応付けられる。
【0139】
以上説明した部分的画像管理テーブル1600に示すように、入力映像を構成するフレーム毎に、当該フレームから抽出された部分的画像の情報を管理することができる。
【0140】
<実施例2>
次に、図17図22をを参照して、本開示の実施例2について説明する。
本開示の実施例1に係る部分画像抽出処理では、ユーザの両手間の距離dが、所定の閾値Tを超える場合、両手がそれぞれ別々のアクティビティに係っていると仮定され、両手それぞれについて別々の部分的画像を抽出する構成について説明した。しかし、作業によっては、ユーザは利き手のみを使用して作業を行い、もう片手を作業に使用しない場合がある。この場合、ユーザの両手それぞれについて別々の部分的画像を抽出することが不要となる。
【0141】
従って、本開示の実施例2では、ユーザの利き手を指定する利き手情報を取得し、入力映像を構成する各フレームにおいてユーザの右手及び左手をそれぞれ識別することで、各フレームにおけるユーザの利き手を特定することができる。その後、ユーザの利き手のみについて部分的画像を抽出する。これにより、ユーザの利き手を中心としてアクティビティ検出が可能となる。
なお、以下では、本開示の実施例2の実施例1に対する相違点を中心に説明し、共通している構成についての説明は省略する。
【0142】
図17は、本開示の実施例2に係る対象領域判定処理1700の流れを示すブロック図である。図17に示す対象領域判定処理1700は、ユーザの右手及び左手をそれぞれ識別し、入力映像におけるユーザの右手及び左手を含む対象領域を判定するための処理であり、上述した判定部によって行われる。
上述したように、本開示では、検出の対象となるアクティビティが、ユーザの利き手の周囲に行われていることを前提としている。そのため、ユーザの利き手を含む対象領域においては、検出の対象となるアクティビティが含まれているはずである。
【0143】
まず、判定部は、入力映像1701を入力した後、当該入力映像1701における特定のフレーム(例えば、最初のフレーム)に対して、手(片手又は両手)を検知する処理を実行する(1705)。ここでは、判定部は、入力映像1701におけるユーザの手を検知するために、Egohandsのようなオープンソースの学習データ又はカスタムの学習データに基づいて、手を検知するように訓練されたニューラルネットワーク(例えば、VGG16-SSDやYOLOv3)を用いてもよい。このニューラルネットワークは、素手のみならず、工具等のオブジェクトを保持している手や、手袋を着けた手を検知するように訓練されてもよい。
【0144】
このニューラルネットワークは、入力映像1705における手毎に当該手を含む領域1710を推定して、出力する。ここでは、ニューラルネットワークは、手を含む領域1710として、バウンディングボックスを定め、バウンディングボックスの位置を規定する座標を出力してもよい。
【0145】
次に、判定部は、手を追跡する処理を実行する(1715)。ここでは、判定部は、特定のフレームについて推定した手を含む領域1710に基づいて、入力映像1701を構成する各フレームにおいて手を特定する。ここでは、判定部は、手を追跡する処理を実行することで、入力映像1701を構成する各フレームについて、ユーザの手を含む領域(例えば、バウンディングボックス)を判定することができる。
【0146】
ここでは、手を追跡する処理として、判定部は、いわゆるカルマンフィルタや、オープンソースの学習データ又はカスタムの学習データに基づいて、手を追跡するように訓練されたニューラルネットワークを用いてもよい。この手を追跡する処理を用いることにより、例えば撮影装置を装着したユーザの手以外に、他の人の手が入力映像1701に写った場合に、撮影装置を装着したユーザの手と他の人の手を区別することが可能となる。ある実施例では、画像処理システムは、手の追跡を容易にするため、撮影装置による広角映像の撮影開始時に、撮影装置の前に手を真っ直ぐにかざすようにユーザを指示してもよい。これにより、撮影装置を装着したユーザの手と他の人の手がより区別しやすくなる。
【0147】
次に、判定部は、手を追跡する処理により、入力映像1701を構成する各フレームにおいてユーザの手を特定した後、それぞれの手を左手又は右手として識別する(1718)。ここで、手を左手又は右手として識別するために、例えばオープンソース又はカスタムの学習データに基づいて訓練されたニューラルネットワークや機械学習手段を用いてもよい。
これにより、入力映像1701を構成する各フレームにおいて、ユーザの両手が右手又は左手として識別される。
なお、手を左手又は右手として識別する処理の詳細は後述する(図18参照)ため、ここではその説明を省略する。
【0148】
次に、入力映像1701を構成する各フレームにおいてユーザの両手を右手又は左手として識別した後、識別した両手を含む領域の位置(つまり、バウンディングボックスの座標)に基づいて、対象領域1725を判定する(1720)。上述したように、この対象領域1725は、検出の対象となるアクティビティを含むはずである。
【0149】
以上説明した対象領域判定処理1700によれば、入力映像1705において、ユーザの両手を右手又は左手として識別し、検出の対象となるアクティビティを含む対象領域を判定することができる。
【0150】
図18は、本開示の実施例2に係る右手・左手識別処理1800の流れを示すフローチャートである。右手・左手識別処理1800は、ユーザの両手を右手又は左手として識別するための処理であり、上述した判定部によって行われる。
【0151】
まず、ステップS1805では、判定部は、各フレームにおける手のバウンディングボックスの座標(WH1,1,WH1,2,WH2,1,...,WHN,1,WHN,2)を入力する。ここで入力される手のバウンディングボックスの座標は、例えば上述した手の追跡処理によって特定された、ユーザの手の位置を規定するバウンディングボックスの情報であり、図12に示す追跡結果テーブル1200に格納されている。
【0152】
次に、ステップS1810では、判定部は、入力映像におけるフレームのフレームインデックスとして、変数「n」を宣言し、nを1とする。このフレームインデックスnは、入力映像に含まれる複数のフレームの内、何番目のフレームを処理するかを指定する変数である。
【0153】
次に、ステップS1815では、判定部は、処理対象のフレームFのフレームインデックスnが1(つまり、入力映像の最初のフレーム)であるか否かを判定する。処理対象のフレームのフレームインデックスnが1の場合、本処理はステップS1820へ進み、処理対象のフレームFのフレームインデックスnが1でない場合、本処理はステップS1835へ進む。
【0154】
次に、ステップS1820では、判定部は、処理対象のフレームであるFにおいて、第1の手のバウンディングボックスWH1,1が第2の手のバウンディングボックスWH1,2より左側に位置しているか否かを判定する。ここでは、判定部は、第1の手のバウンディングボックスWH1,1が第2の手のバウンディングボックスWH1,2より左側に位置しているか否かを判定するために、それぞれのバウンディングボックスWH1,1及びWH1,2の中心点を計算した後、それぞれの中心点のフレームFの左の縁までの距離を計算する。
【0155】
その後、判定部は、第1の手のバウンディングボックスWH1,1の中心点からフレームFの左の縁までの距離が、第2の手のバウンディングボックスWH1,2の中心点からフレームFの左の縁までの距離より短いか否かを判定する。第1の手のバウンディングボックスWH1,1の中心点からフレームFの左の縁までの距離が、第2の手のバウンディングボックスWH1,2の中心点からフレームFの左の縁までの距離より短い場合、第1の手のバウンディングボックスWH1,1が第2の手のバウンディングボックスWH1,2より左側に位置していると判定する。
【0156】
第1の手のバウンディングボックスWH1,1が第2の手のバウンディングボックスWH1,2より左側に位置している場合、本処理はステップS1830へ進む。一方、第1の手のバウンディングボックスWH1,1が第2の手のバウンディングボックスWH1,2より左側に位置していない場合、本処理はステップS1825へ進む。
【0157】
第1の手のバウンディングボックスWH1,1が第2の手のバウンディングボックスWH1,2より左側に位置していない場合、ステップS1825では、判定部は、第1の手のバウンディングボックスWH1,1がユーザの右手に対応し、第2の手のバウンディングボックスWH1,2がユーザの左手に対応すると判定する。
一方、第1の手のバウンディングボックスWH1,1が第2の手のバウンディングボックスWH1,2より左側に位置している場合、ステップS1830では、判定部は、第1の手のバウンディングボックスWH1,1がユーザの左手に対応し、第2の手のバウンディングボックスWH1,2がユーザの右手に対応すると判定する。
【0158】
上述したように、本開示では、画像処理システムは、撮影装置による広角映像の撮影開始時に、撮影装置の前に手を真っ直ぐにかざす指示をユーザに与える。このため、ユーザの両手が入力映像の最初のフレームであるフレームFに鮮明に写り、ユーザの左手が右手の左側に位置することとなる。従って、フレームの左側に位置する手のバウンディングボックスが左手に対応し、右側に位置する手のバウンディングボックスが右手に対応すると推定することができる。
ステップS1825及びS1830の判定の後、本処理はステップS1850へ進む。
【0159】
ステップS1815において処理対象のフレームFのフレームインデックスnが1でないと判定された場合、本処理はステップS1835へ進む。ステップS1835では、判定部は、処理対象のフレームFの第1の手のバウンディングボックスWHn,1と、処理対象のフレームFの直前のフレームであるFn―1において左手に対応すると推定されたバウンディングボックスLHn-1とのIoU(Intersection over Union)を計算する。また、判定部は、処理対象のフレームFの第1の手のバウンディングボックスWHn,1と、処理対象のフレームFの直前のフレームであるFn―1において右手に対応すると推定されたバウンディングボックスRHn-1とのIoUを計算する。
【0160】
IoUとは、二つの物体がどれぐらい重なっているかを示す指標である。ここでは、IoUは、連続するフレームにおいて、手の領域が重なる割合(重なり量)を示す。
処理対象のフレームFの第1の手のバウンディングボックスWHn,1と、処理対象のフレームFの直前のフレームであるFn―1において左手に対応すると推定されたバウンディングボックスLHn-1とのIoU(IOU(WHn,1、LHn-1))が、処理対象のフレームFの第1の手のバウンディングボックスWHn,1と、処理対象のフレームFの直前のフレームであるFn―1において右手に対応すると推定されたバウンディングボックスRHn-1とのIoU(IOU(WHn,1、RHn-1))より大きい場合、本処理はステップS1845へ進む。
【0161】
一方、処理対象のフレームFの第1の手のバウンディングボックスWHn,1と、処理対象のフレームFの直前のフレームであるFn―1において左手に対応すると推定されたバウンディングボックスLHn-1とのIoU(IOU(WHn,1、LHn-1))が、処理対象のフレームFの第1の手のバウンディングボックスWHn,1と、処理対象のフレームFの直前のフレームであるFn―1において右手に対応すると推定されたバウンディングボックスRHn-1とのIoU(IOU(WHn,1、RHn-1))以下の場合、本処理はステップS1840へ進む。
【0162】
上述したように、2つの連続するフレーム間で、ユーザの手の変位(すなわち、移動)が比較的に小さいため、処理対象のフレームFにおける両手の領域が、その直前のフレームFn-1における両手の領域に重なる。
従って、IOU(WHn,1、LHn-1)がIOU(WHn,1、RHn-1)以下の場合、ステップS1840では、判定部は、第1の手のバウンディングボックスWHn,1がユーザの右手に対応し、第2の手のバウンディングボックスWHn,2がユーザの左手に対応すると推定する。
【0163】
一方、IOU(WHn,1、LHn-1)がIOU(WHn,1、RHn-1)より大きい場合、ステップS1845では、判定部は、第1の手のバウンディングボックスWHn,1がユーザの左手に対応し、第2の手のバウンディングボックスWHn,2がユーザの右手に対応すると推定する。
ステップS1840及びS1845の判定の後、本処理はステップS1850へ進む。
【0164】
次に、ステップS1850では、判定部は、フレームインデックスnを1で加算する(つまり、nをn+1とする)。
【0165】
次に、ステップS1855では、判定部は、処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数N以下か否かを判定する。処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数Nより大きい場合、本処理はステップS1860へ進む。一方、処理対象のフレームのフレームインデックスnが、入力映像に含まれるフレームの数N以下の場合、本処理はステップS1815へ戻り、それ以降のステップを次のフレームで繰り返す。
【0166】
次に、ステップS1860では、判定部は、入力映像を構成するフレーム毎に、識別したユーザの左手及び右手のそれぞれの領域を規定するバウンディングボックスの情報を出力する。
【0167】
以上説明した右手・左手識別処理1800によれば、入力映像1705を構成する各フレームにおいて、ユーザの両手を右手又は左手として識別し、左手及び右手のそれぞれの領域を規定するバウンディングボックスを推定することができる。
【0168】
図19は、本開示の実施例2に係る右手・左手識別処理によって生成されるユーザの右手・左手の位置情報を格納する右手・左手位置情報テーブル1900の一例を示す図である。
【0169】
図19に示すように、右手・左手位置情報テーブル1900は、フレーム1901と、右手・左手の位置情報1902とを格納する。
フレーム1901の列では、入力映像における各フレームを識別する識別子F~FNの情報が格納される。例えば、入力映像がN個ある場合、最初のフレームがFであり、最後のフレームがFである。
【0170】
また、右手・左手の位置情報1902の列では、各フレームにおいて識別されたユーザの右手及び左手の位置を規定するバウンディングボックス(LH、RH)の情報が格納される。上述したように、ユーザの右手及び左手の位置を規定するバウンディングボックスは、((x,y),(x,y))との形式の情報に規定される。ここでは、(x,y)は、バウンディングボックスの左上の隅の座標を示し、(x,y)は、バウンディングボックスの右下の隅の座標を示す。
【0171】
以上説明した右手・左手位置情報テーブル1900に示すように、入力映像を構成するフレーム毎に、当該フレームにおいて識別されたユーザの左手及び右手の位置を規定するバウンディングボックスの情報を管理することができる。
【0172】
図20は、本開示の実施例2に係る部分的画像抽出処理2000の流れの一例を示すフローチャートである。図20に示す部分的画像抽出処理2000は、入力映像から、ユーザの利き手を示す利き手情報に基づいて、ユーザの手を含む対象領域に対応する部分的画像を抽出するための処理であり、抽出部によって実行される。
【0173】
まず、ステップS2010では、抽出部は、N個のフレームFからなる広角映像(F、F、...F)である入力映像と、各フレームにおけるユーザの左手及び右手の手のバウンディングボックスの座標(LH,RH,LH,...,LH、RH)と、各フレームについて判定した対象領域のバウンディングボックスの座標(PA,PA,...,PA)と、ユーザの利き手を示す利き手情報とを入力する。
入力映像は、例えば上述した撮影装置によって取得され、画像処理装置の入力部によって受け付けられる一人称視点の広角映像であってもよい。
【0174】
各フレームにおけるユーザの右手及び左手のバウンディングボックスの座標は、例えば上述した右手・左手識別処理によって特定され、図19に示す右手・左手位置情報テーブル1900に格納されている座標の情報である。
各フレームについて判定した対象領域のバウンディングボックスの座標は、例えば上述した対象領域判定処理によって判定され、図14に示す対象領域情報テーブル1400に格納されている座標の情報である。
利き手情報は、ユーザの利き手が右手か左手かを示す情報であり、例えば後述するユーザインタフェースを介してユーザから入力されてもよい。
【0175】
次に、ステップS2020では、抽出部は、入力映像におけるフレームのフレームインデックスとして、変数「n」を宣言し、nを1とする。このフレームインデックスnは、入力映像に含まれる複数のフレームの内、何番目のフレームを処理するかを指定する変数である。
【0176】
次に、ステップS2030では、抽出部は、処理対象のフレームFにおけるユーザの右手及び左手のバウンディングボックスLH,RHのそれぞれの中心点cL、cRを計算した後、LH,RHのそれぞれの中心点間の距離(すなわち、ユーザの両手間の距離)dを計算する。
ここで、バウンディングボックスLH,RHのそれぞれの中心点cL、cR及び中心点間の距離dは、上述した数式6及び数式7によって求められるため、ここでは、繰り返しとなる説明を省略する。
【0177】
次に、ステップS2040では、抽出部は、ステップS2030で計算した距離dを、予め設定された所定の閾値Tに比較する。ユーザの両手間の距離dが所定の閾値T以下の場合、本処理はステップS2050へ進む。
一方、ユーザの両手間の距離dが、所定の閾値Tを超える場合、本処理はステップS2060へ進む。
【0178】
本開示では、ユーザの両手間の距離dが、所定の閾値T以下の場合、ユーザの両手ともが同一のアクティビティに係っていると仮定され、両手を含む1つの部分的画像を抽出する。従って、ステップS2050では、抽出部は、処理対象のフレームFから、当該フレームにおける対象領域のバウンディングボックスPAに対応する部分的画像を抽出する。また、抽出部は、バウンディングボックスPAの縦横比を維持しつつ、バウンディングボックスPAを自然数に乗じた領域に対応する部分的画像を抽出してもよい。
なお、ここで抽出される部分的画像の大きさは、適宜に拡大されたり、縮小されたりしてもよい。
【0179】
一方、ユーザの両手間の距離dが、所定の閾値Tを超える場合、両手がそれぞれ別々のアクティビティに係っていると仮定される。そこで、ステップS2060では、抽出部は、ステップS2010で入力された利き手情報によって示されているユーザの利き手のみについて部分的画像を抽出する。
例えば、利き手情報によって示されているユーザの利き手が右手の場合、抽出部は、上述した右手・左手位置情報テーブル1900に基づいて、ユーザの右手のバウンディングボックスRHに対応する部分的画像をフレームFから抽出する。
【0180】
一方、利き手情報によって示されているユーザの利き手が左手の場合、抽出部は、上述した右手・左手位置情報テーブル1900に基づいて、ユーザの左手のバウンディングボックスLHに対応する部分的画像をフレームFから抽出する。
なお、ここで抽出される部分的画像の大きさは、適宜に拡大されたり、縮小されたりしてもよい。
【0181】
次に、ステップS2070では、抽出部は、フレームインデックスnを1で加算する(つまり、nをn+1とする)。
【0182】
次に、ステップS2080では、抽出部は、処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数N以下か否かを判定する。処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数Nより大きい場合、本処理はステップS2090へ進む。一方、処理対象のフレームFのフレームインデックスnが、入力映像に含まれるフレームの数N以下の場合、本処理はステップS2030へ戻り、それ以降のステップを次のフレームで繰り返す。
【0183】
次に、ステップS2090では、抽出部は、各フレームから抽出した部分的画像(I1, I1,...,IN)を出力する。
【0184】
以上説明した部分的画像抽出処理2000によれば、ユーザの利き手を示す利き手情報に基づいた部分的画像を抽出することができる。これにより、ユーザの利き手ではない手に対応する部分的画像の抽出処理を省くことができ、処理負荷・処理時間を抑えることができると共に、ユーザの利き手を中心としてアクティビティ検出が可能となる。
【0185】
図21は、本開示の実施例2に係る部分的画像抽出処理によって抽出される部分的画像の情報を格納する部分的画像管理テーブル2100の一例を示す図である。
【0186】
図21に示すように、部分的画像管理テーブル2100は、フレーム2101と、部分的画像2102の情報を格納する。
フレーム2101の列では、入力映像における各フレームを識別する識別子F~FNの情報が格納される。例えば、入力映像がN個ある場合、最初のフレームがFであり、最後のフレームがFNである。
また、部分的画像2102の列では、各フレームから抽出された部分的画像の情報が格納される。各部分的画像は、Iとの形式の識別子に対応付けられている。nは、フレームの番号(つまり、フレームインデックス)を示す。
上述したように、本開示の実施例2では、各フレームから、1つの部分的画像(ユーザの両手を含む部分的画像又はユーザの利き手を含む部分的画像)のみが抽出されるため、部分的画像管理テーブル2100において、各フレームは、1つの部分的画像に対応付けられる。
【0187】
以上説明した部分的画像管理テーブル2100に示すように、入力映像を構成するフレーム毎に、当該フレームから抽出された部分的画像の情報を管理することができる。
【0188】
図22は、本開示の実施例2に係るユーザインタフェース2200の構成を示す図である。図22に示すユーザインタフェース2200は、例えば上述したクライアント端末(例えば、図2に示すクライアント端末210)の画面に表示されて、撮影装置を装着したユーザ又はアクティビティ検出の依頼者によって利用されてもよい。
【0189】
図22に示すように、ユーザインタフェース2200は、入力ウインドウ2201、対象フレームウインドウ2202、利き手情報ウインドウ2203、出力ウインドウ2204、2205及びユーザフィードバックウインドウ2206、2207を含む。
【0190】
入力ウインドウ2201では、ユーザインタフェースのユーザは、入力映像となる広角映像を選択することができる。ここで、ユーザインタフェースのユーザは、入力映像となる広角映像をクライアント端末のローカルストレージ、画像処理装置の記憶部、又はクラウドストレージ等から選択してもよい。
【0191】
対象フレームウインドウ2202では、ユーザインタフェースのユーザは、入力映像におけるフレームを画像処理装置の処理対象として選択してもよい。ここでは、ユーザインタフェースのユーザは、特定のフレームのフレームインデックスを入力してもよく、複数のフレームを含むフレームインデックスの範囲を入力してもよく、処理対象のフレームを含む時刻の範囲(開始時刻及び終了事時刻)を入力してもよい。
【0192】
利き手情報ウインドウ2203では、ユーザインタフェースのユーザは、撮影装置を装着したユーザの利き手を示す利き手情報を入力することができる。例えば、ここで、ユーザインタフェースのユーザは、撮影装置を装着したユーザの利き手が右手か左手かを入力してもよい。
【0193】
出力ウインドウ2204では、ユーザインタフェースのユーザは、対象フレームウインドウ2202で指定した処理対象フレームに対して、上述した対象領域判定処理を実行させ、判定した対象領域を画面に表示させることができる。これにより、ユーザインタフェースのユーザは、各フレーム毎に、判定した対象領域を画面上で確認することができる。
出力ウインドウ2205では、ユーザインタフェースのユーザは、対象フレームウインドウ2202で指定した処理対象フレームに対して、上述した部分的画像抽出処理を実行させ、抽出した部分的画像を画面に表示させることができる。これにより、ユーザインタフェースのユーザは、各フレーム毎に、抽出した部分的画像を画面上で確認することができる。
【0194】
ユーザフィードバックウインドウ2206では、ユーザインタフェースのユーザは、抽出した部分的画像の保存先を指定し、部分的画像を保存することができる。
ユーザフィードバックウインドウ2206では、ユーザインタフェースのユーザは、抽出した部分的画像を加工することができる。ここで、ユーザは、抽出された部分的画像が検出対象のアクティビティを含まない場合等には、部分的画像を削除し、新たな部分的画像を抽出する指示を入力したり、検出対象のアクティビティを含む部分的画像の座標を手動で指定したりしてもよい。
【0195】
以上説明した画像処理手段によれば、一人称視点の広角映像に対する高精度のアクティビティ検出が可能となる。より具体的には、本開示の実施例では、一人称視点の広角映像を入力映像とすることにより、検出の対象となるアクティビティがウェアラブルカメラの撮影範囲に含まれないという従来の課題を回避することができる。また、本開示の実施例では、ユーザの手を検知し、検知したユーザの手を含む対象領域の部分的画像に対してアクティビティ検出を行うことにより、GPS等の他のセンサのデータが利用できない場合や、GPSのデータで特定できない小さなオブジェクトに関するアクティビティを検出したい場合においても、高精度のアクティビティ検出が可能となる。
【0196】
以上、本発明の実施の形態について説明したが、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0197】
200 画像処理システム
210 クライアント端末
220 撮影装置
230 ユーザ
240 通信ネットワーク
250 画像処理装置
252 入力部
254 判定部
256 抽出部
258 検出部
260 出力部
262 記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22