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

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

▶ 日本電気株式会社の特許一覧

特許7589741画像処理装置、画像処理方法及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】画像処理装置、画像処理方法及びプログラム
(51)【国際特許分類】
   G06T 7/20 20170101AFI20241119BHJP
   G06V 40/20 20220101ALI20241119BHJP
【FI】
G06T7/20 300Z
G06V40/20
【請求項の数】 5
(21)【出願番号】P 2022551516
(86)(22)【出願日】2020-09-25
(86)【国際出願番号】 JP2020036225
(87)【国際公開番号】W WO2022064632
(87)【国際公開日】2022-03-31
【審査請求日】2023-03-08
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100110928
【弁理士】
【氏名又は名称】速水 進治
(72)【発明者】
【氏名】ステファン カレン
(72)【発明者】
【氏名】劉 健全
【審査官】宮島 潤
(56)【参考文献】
【文献】特開2020-53019(JP,A)
【文献】特開2016-178406(JP,A)
【文献】特開2017-162432(JP,A)
【文献】目次 康男,ビデオカメラがセンサーに変わる,日経コンピュータ no.638 NIKKEI COMPUTER,日本,日経BP社 Nikkei Business Publications,Inc.,2005年10月31日,第638号,p.66-70
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
(57)【特許請求の範囲】
【請求項1】
魚眼レンズカメラで生成された時系列な複数の魚眼画像をパノラマ展開した時系列な複数のパノラマ画像を、予め機械学習で生成された画像に含まれる人物の行動を推定する第1の推定モデルに入力し、前記第1の推定モデルから出力される前記パノラマ画像が複数の人物行動各々を示す確率を得る第1の推定手段と、
前記魚眼画像の一部領域である魚眼部分画像をパノラマ展開せず、前記魚眼部分画像内から検出された人物毎に前記魚眼部分画像を回転して人物の向きを予め定められた基準向きとした後、人物を含む領域を切り出して編集後魚眼部分画像を生成し、予め機械学習で生成された画像に含まれる人物の行動を推定する第2の推定モデルに前記編集後魚眼部分画像を入力し、前記第2の推定モデルから出力される前記魚眼部分画像が複数の人物行動各々を示す確率を得る第2の推定手段と、
人物行動毎に、前記パノラマ画像で示される確率と、前記魚眼部分画像で示される確率との統計値を算出し、前記統計値に基づき前記魚眼画像が示す人物行動を推定する第3の推定手段と、
を有し、
前記第1の推定手段は、
前記パノラマ画像内の複数の人物各々の位置を通り、かつ複数の人物各々の位置における重力方向に延伸した複数の直線が1点で交わる場合は交わる点を基準点として決定し、前記複数の直線が1点で交わらない場合は前記複数の直線各々からの距離の和が最小となる点を前記基準点として決定し、
前記第2の推定手段は、
前記基準点を中心とした円領域内の画像を、前記魚眼部分画像とし、
前記基準向きは、各人物の位置における重力方向が画像上で上下方向となる向きである画像処理装置。
【請求項2】
前記第1の推定手段は、
人物が起立した状態で互いを結ぶ線が重力方向と平行になる身体の複数点、又は人物が起立した状態で互いを結ぶ線が重力方向と垂直になる身体の複数点を検出し、
人物が起立した状態で互いを結ぶ線が重力方向と平行になる身体の複数点を検出した場合は、その複数点を結ぶ方向を重力方向として決定し、
人物が起立した状態で互いを結ぶ線が重力方向と垂直になる身体の複数点を検出した場合は、その複数点を結ぶ線に垂直な方向を重力方向として決定する請求項1に記載の画像処理装置。
【請求項3】
前記第2の推定手段は、
前記魚眼画像内の予め設定された中心領域において検出された人物の数が多いほど、前記魚眼部分画像の大きさを大きくする請求項1又は2に記載の画像処理装置。
【請求項4】
コンピュータが、
魚眼レンズカメラで生成された時系列な複数の魚眼画像をパノラマ展開した時系列な複数のパノラマ画像を、予め機械学習で生成された画像に含まれる人物の行動を推定する第1の推定モデルに入力し、前記第1の推定モデルから出力される前記パノラマ画像が複数の人物行動各々を示す確率を得る第1の推定工程と、
前記魚眼画像の一部領域である魚眼部分画像をパノラマ展開せず、前記魚眼部分画像内から検出された人物毎に前記魚眼部分画像を回転して人物の向きを予め定められた基準向きとした後、人物を含む領域を切り出して編集後魚眼部分画像を生成し、予め機械学習で生成された画像に含まれる人物の行動を推定する第2の推定モデルに前記編集後魚眼部分画像を入力し、前記第2の推定モデルから出力される前記魚眼部分画像が複数の人物行動各々を示す確率を得る第2の推定工程と、
人物行動毎に、前記パノラマ画像で示される確率と、前記魚眼部分画像で示される確率との統計値を算出し、前記統計値に基づき前記魚眼画像が示す人物行動を推定する第3の推定工程と、
を実行し、
前記第1の推定工程では、
前記パノラマ画像内の複数の人物各々の位置を通り、かつ複数の人物各々の位置における重力方向に延伸した複数の直線が1点で交わる場合は交わる点を基準点として決定し、前記複数の直線が1点で交わらない場合は前記複数の直線各々からの距離の和が最小となる点を前記基準点として決定し、
前記第2の推定工程では、
前記基準点を中心とした円領域内の画像を、前記魚眼部分画像とし、
前記基準向きは、各人物の位置における重力方向が画像上で上下方向となる向きである画像処理方法。
【請求項5】
コンピュータを、
魚眼レンズカメラで生成された時系列な複数の魚眼画像をパノラマ展開した時系列な複数のパノラマ画像を、予め機械学習で生成された画像に含まれる人物の行動を推定する第1の推定モデルに入力し、前記第1の推定モデルから出力される前記パノラマ画像が複数の人物行動各々を示す確率を得る第1の推定手段、
前記魚眼画像の一部領域である魚眼部分画像をパノラマ展開せず、前記魚眼部分画像内から検出された人物毎に前記魚眼部分画像を回転して人物の向きを予め定められた基準向きとした後、人物を含む領域を切り出して編集後魚眼部分画像を生成し、予め機械学習で生成された画像に含まれる人物の行動を推定する第2の推定モデルに前記編集後魚眼部分画像を入力し、前記第2の推定モデルから出力される前記魚眼部分画像が複数の人物行動各々を示す確率を得る第2の推定手段、
人物行動毎に、前記パノラマ画像で示される確率と、前記魚眼部分画像で示される確率との統計値を算出し、前記統計値に基づき前記魚眼画像が示す人物行動を推定する第3の推定手段、
として機能させ、
前記第1の推定手段は、
前記パノラマ画像内の複数の人物各々の位置を通り、かつ複数の人物各々の位置における重力方向に延伸した複数の直線が1点で交わる場合は交わる点を基準点として決定し、前記複数の直線が1点で交わらない場合は前記複数の直線各々からの距離の和が最小となる点を前記基準点として決定し、
前記第2の推定手段は、
前記基準点を中心とした円領域内の画像を、前記魚眼部分画像とし、
前記基準向きは、各人物の位置における重力方向が画像上で上下方向となる向きであるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
特許文献1は、トレーニング画像と事業店舗位置を識別する情報とで機械学習を行う技術を開示している。そして、特許文献1は、パノラマ画像、視野が180°より大きい画像等をトレーニング画像にできることを開示している。
【0003】
非特許文献1は、3D-CNN(convolutional neural network)に基づき動画像が示す人物行動を推定する技術を開示している。
【先行技術文献】
【特許文献】
【0004】
【文献】特表2018-524678号公報
【非特許文献】
【0005】
【文献】Kensho Hara、他2名、" Can Spatiotemporal 3D CNNs Retrace the History of 2D CNNs and ImageNet?"、[online]、Proceedings of the IEEE conference on Computer Vision and Pattern Recognition (pp. 6546-6555)、[令和1年5月28日検索]、インターネット<URL: http://openaccess.thecvf.com/content_cvpr_2018/papers/Hara_Can_Spatiotemporal_3D_CVPR_2018_paper.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0006】
魚眼レンズを利用すると広範囲を撮影することができる。このような特性を活かし、魚眼レンズは監視カメラ等で広く利用されている。そこで、本発明者らは、魚眼レンズを用いて生成された画像(以下、「魚眼画像」という場合がある)に基づき人物行動を推定する技術を検討した。
【0007】
魚眼画像においては、歪みが発生する為、画像内の位置毎に重力方向が異なり得る。このため、起立した人物の身体が伸びる方向が画像内の位置毎に異なる等の不自然な状況が発生し得る。標準レンズ(例えば画角40°前後~60°前後)を用いて生成された画像(学習データ)に基づく機械学習で生成された人物行動推定モデルにこのような魚眼画像を入力しても、十分な推定結果を得られない。
【0008】
当該問題を解決する手段として、魚眼画像をパノラマ展開してパノラマ画像を生成し、当該パノラマ画像を上述した人物行動推定モデルに入力する手段が考えられる。ここで、図1を用いてパノラマ展開の概要を説明する。
【0009】
まず、基準線L、基準点(x、y)、幅w、高さhを定める。基準線Lは、基準点(x、y)と円形画像の外周上の任意の点とを結ぶ線であり、パノラマ展開する際に魚眼画像を切り開く位置となる。この基準線L付近の画像が、パノラマ画像において端部に位置する。基準線Lの定め方は様々である。基準点(x、y)は、魚眼画像の円形のイメージサークル内画像の点であり、例えば円の中心である。幅wはパノラマ画像の幅であり、高さhはパノラマ画像の高さである。これらの値はデフォルト値であってもよいし、ユーザが任意に設定してもよい。
【0010】
これらの値が定まると、図示する「パノラマ展開」の式に基づき、魚眼画像内の任意の対象点(x、y)を、パノラマ画像内の点(x、y)に変換することができる。魚眼画像内の任意の対象点(x、y)を指定すると、基準点(x、y)と対象点(x、y)との距離rを算出できる。同様に、基準点(x、y)と対象点(x、y)を結ぶ線と基準線Lとのなす角θが算出できる。結果、図示する「パノラマ展開」の式における変数w、θ、h、r及びrの値が定まる。なお、rは、イメージサークル内画像の半径である。これらの変数の値を当該式に代入することで、点(x、y)を算出することができる。
【0011】
また、図示する「逆パノラマ展開」の式より、パノラマ画像を魚眼画像に変換することもできる。
【0012】
確かに、魚眼画像をパノラマ展開してパノラマ画像を生成することで、起立した人物の身体が伸びる方向が画像内の位置毎に異なる等の不自然さを軽減できる。しかし、上述したパノラマ展開の手法の場合、魚眼画像からパノラマ画像を生成する際に基準点(x、y)付近の画像が大きく引き伸ばされるため、基準点(x、y)付近の人物がパノラマ画像において大きく歪み得る。このため、パノラマ画像に基づく人物行動の推定において、その歪んだ人物を検出できなかったり、推定精度が低下したりという問題が発生し得る。
【0013】
本発明の課題は、魚眼画像に含まれる人物の行動を高精度に推定することである。
【課題を解決するための手段】
【0014】
本発明によれば、
魚眼レンズカメラで生成された魚眼画像をパノラマ展開したパノラマ画像を画像解析し、前記パノラマ画像が示す人物行動を推定する第1の推定手段と、
前記魚眼画像の一部領域である魚眼部分画像をパノラマ展開せずに画像解析し、前記魚眼部分画像が示す人物行動を推定する第2の推定手段と、
前記パノラマ画像に基づく推定結果と、前記魚眼部分画像に基づく推定結果とに基づき、前記魚眼画像が示す人物行動を推定する第3の推定手段と、
を有する画像処理装置が提供される。
【0015】
また、本発明によれば、
コンピュータが、
魚眼レンズカメラで生成された魚眼画像をパノラマ展開したパノラマ画像を画像解析し、前記パノラマ画像が示す人物行動を推定し、
前記魚眼画像の一部領域である魚眼部分画像をパノラマ展開せずに画像解析し、前記魚眼部分画像が示す人物行動を推定し、
前記パノラマ画像に基づく推定結果と、前記魚眼部分画像に基づく推定結果とに基づき、前記魚眼画像が示す人物行動を推定する画像処理方法が提供される。
【0016】
また、本発明によれば、
コンピュータを、
魚眼レンズカメラで生成された魚眼画像をパノラマ展開したパノラマ画像を画像解析し、前記パノラマ画像が示す人物行動を推定する第1の推定手段、
前記魚眼画像の一部領域である魚眼部分画像をパノラマ展開せずに画像解析し、前記魚眼部分画像が示す人物行動を推定する第2の推定手段、
前記パノラマ画像に基づく推定結果と、前記魚眼部分画像に基づく推定結果とに基づき、前記魚眼画像が示す人物行動を推定する第3の推定手段、
として機能させるプログラムが提供される。
【発明の効果】
【0017】
本発明によれば、魚眼画像に含まれる人物の行動を高精度に推定することが可能となる。
【図面の簡単な説明】
【0018】
上述した目的、および、その他の目的、特徴および利点は、以下に述べる好適な実施の形態、および、それに付随する以下の図面によって、さらに明らかになる。
【0019】
図1】パノラマ展開の手法を説明する図である。
図2】本実施形態の画像処理装置の概要を説明するための図である。
図3】本実施形態の画像処理装置及び処理装置のハードウエア構成の一例を示す図である。
図4】本実施形態の画像処理装置の機能ブロック図の一例である。
図5】本実施形態の画像処理装置の処理を説明するための図である。
図6】本実施形態の画像処理装置の処理を説明するための図である。
図7】本実施形態の画像処理装置の処理を説明するための図である。
図8】本実施形態の画像処理装置の処理を説明するための図である。
図9】本実施形態の画像処理装置の処理を説明するための図である。
図10】本実施形態の画像処理装置の処理を説明するための図である。
図11】本実施形態の画像処理装置の処理を説明するための図である。
図12】本実施形態の画像処理装置の処理の流れの一例を示すフローチャートである。
図13】本実施形態の画像処理装置の処理の流れの一例を示すフローチャートである。
図14】本実施形態の画像処理装置の処理の流れの一例を示すフローチャートである。
図15】本実施形態の画像処理装置の処理の流れの一例を示すフローチャートである。
図16】本実施形態の画像処理装置の処理を説明するための図である。
図17】本実施形態の画像処理装置の処理を説明するための図である。
図18】本実施形態の画像処理装置の処理を説明するための図である。
図19】本実施形態の画像処理装置のブロック図の一例である。
図20】本実施形態の画像処理装置の処理の流れの一例を示すフローチャートである。
図21】本実施形態の画像処理装置の処理を説明するための図である。
図22】本実施形態の画像処理装置の処理を説明するための図である。
図23】本実施形態の画像処理装置の処理を説明するための図である。
【発明を実施するための形態】
【0020】
<概要>
まず、図2を用いて本実施形態の画像処理装置10の概要を説明する。
【0021】
図示するように、画像処理装置10は、パノラマプロセス(Panorama processing)と、魚眼プロセス(Fisheye processing)と、統合プロセスとを実行する。
【0022】
パノラマプロセスでは、画像処理装置10は、魚眼画像(Fish eye image)をパノラマ展開したパノラマ画像を画像解析し、パノラマ画像が示す人物行動を推定する。魚眼プロセスでは、画像処理装置10は、魚眼画像の一部領域である魚眼部分画像をパノラマ展開せずに画像解析し、魚眼部分画像が示す人物行動を推定する。そして、統合プロセスでは、画像処理装置10は、パノラマプロセスで得られたパノラマ画像に基づく人物行動の推定結果と、魚眼プロセスで得られた魚眼部分画像に基づく人物行動の推定結果とに基づき、魚眼画像が示す人物行動を推定する。
【0023】
<ハードウエア構成>
次に、画像処理装置10のハードウエア構成の一例を説明する。画像処理装置10が備える各機能部は、任意のコンピュータのCPU(Central Processing Unit)、メモリ、メモリにロードされるプログラム、そのプログラムを格納するハードディスク等の記憶ユニット(あらかじめ装置を出荷する段階から格納されているプログラムのほか、CD(Compact Disc)等の記憶媒体やインターネット上のサーバ等からダウンロードされたプログラムをも格納できる)、ネットワーク接続用インターフェイスを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。
【0024】
図3は、画像処理装置10のハードウエア構成を例示するブロック図である。図3に示すように、画像処理装置10は、プロセッサ1A、メモリ2A、入出力インターフェイス3A、周辺回路4A、バス5Aを有する。周辺回路4Aには、様々なモジュールが含まれる。画像処理装置10は周辺回路4Aを有さなくてもよい。なお、画像処理装置10は物理的及び/又は論理的に分かれた複数の装置で構成されてもよいし、物理的及び/又は論理的に一体となった1つの装置で構成されてもよい。画像処理装置10が物理的及び/又は論理的に分かれた複数の装置で構成される場合、複数の装置各々が上記ハードウエア構成を備えることができる。
【0025】
バス5Aは、プロセッサ1A、メモリ2A、周辺回路4A及び入出力インターフェイス3Aが相互にデータを送受信するためのデータ伝送路である。プロセッサ1Aは、例えばCPU、GPU(Graphics Processing Unit)などの演算処理装置である。メモリ2Aは、例えばRAM(Random Access Memory)やROM(Read Only Memory)などのメモリである。入出力インターフェイス3Aは、入力装置、外部装置、外部サーバ、外部センサー、カメラ等から情報を取得するためのインターフェイスや、出力装置、外部装置、外部サーバ等に情報を出力するためのインターフェイスなどを含む。入力装置は、例えばキーボード、マウス、マイク、物理ボタン、タッチパネル等である。出力装置は、例えばディスプレイ、スピーカ、プリンター、メーラ等である。プロセッサ1Aは、各モジュールに指令を出し、それらの演算結果をもとに演算を行うことができる。
【0026】
<機能構成>
次に、画像処理装置10の機能構成を説明する。図4に、画像処理装置10の機能ブロック図の一例を示す。図示するように、画像処理装置10は、第1の推定部11と、第2の推定部12と、第3の推定部13とを有する。これらの機能部により、上述したパノラマプロセス、魚眼プロセス及び統合プロセスが実行される。以下、プロセスごとに分けて、各機能部の構成を説明する。
【0027】
「パノラマプロセス」
パノラマプロセスは、第1の推定部11により実行される。図5に、パノラマプロセスのフローがより詳細に示されている。図示するように、第1の推定部11は、時系列な複数の魚眼画像を取得すると(魚眼画像取得プロセス)、各々をパノラマ展開して時系列な複数のパノラマ画像を生成する(パノラマ展開プロセス)。その後、第1の推定部11は、時系列な複数のパノラマ画像と第1の推定モデルに基づき、その時系列な複数のパノラマ画像が示す人物行動を推定する(第1の推定プロセス)。このように、パノラマプロセスは、魚眼画像取得プロセス、パノラマ展開プロセス及び第1の推定プロセスを含む。以下、各々を詳細に説明する。
【0028】
(魚眼画像取得プロセス)
魚眼画像取得プロセスでは、第1の推定部11は、時系列な複数の魚眼画像を取得する。魚眼画像は、魚眼レンズを用いて生成された画像である。時系列な複数の魚眼画像は、例えば動画像であってもよいし、所定の時間間隔で連続的に撮影することで生成された複数の連続静止画像であってもよい。
【0029】
なお、本明細書において、「取得」とは、ユーザ入力に基づき、又は、プログラムの指示に基づき、「自装置が他の装置や記憶媒体に格納されているデータを取りに行くこと(能動的な取得)」、たとえば、他の装置にリクエストまたは問い合わせして受信すること、他の装置や記憶媒体にアクセスして読み出すこと等を含んでもよい。また、「取得」とは、ユーザ入力に基づき、又は、プログラムの指示に基づき、「自装置に他の装置から出力されるデータを入力すること(受動的な取得)」、たとえば、配信(または、送信、プッシュ通知等)されるデータを受信すること等を含んでもよい。また、「取得」とは、受信したデータまたは情報の中から選択して取得すること、及び、「データを編集(テキスト化、データの並び替え、一部データの抽出、ファイル形式の変更等)などして新たなデータを生成し、当該新たなデータを取得すること」を含んでもよい。
【0030】
(パノラマ展開プロセス)
パノラマ展開プロセスでは、第1の推定部11は、時系列な複数の魚眼画像各々をパノラマ展開して時系列な複数のパノラマ画像を生成する。以下、パノラマ展開の手法の一例を説明するが、他の手法を採用してもよい。
【0031】
まず、第1の推定部11は、基準線L、基準点(x、y)、幅w、高さh(図1参照)を決定する。
【0032】
-基準点(x、y)の決定-
まず、第1の推定部11は、魚眼画像の円形のイメージサークル内画像の中から、複数の人物各々の身体の所定の複数点を検出する。そして、第1の推定部11は、検出した所定の複数点に基づき、複数の人物各々の位置における重力方向(鉛直方向)を特定する。
【0033】
例えば、第1の推定部11は、起立した人物を正面から撮影して生成した画像内で互いを結ぶ線が重力方向と平行になる身体の複数点(2点)を検出してもよい。このような2点の組み合わせとしては、(両肩の真ん中、腰の真ん中)、(頭の先、腰の真ん中)、(頭の先、両肩の真ん中)等が例示されるが、これらに限定されない。この例の場合、第1の推定部11は、各人物に対応して検出された2点のうちの所定の1点から他方の点に向かう方向を、重力方向として特定する。
【0034】
他の例として、第1の推定部11は、起立した人物を正面から撮影して生成した画像内で互いを結ぶ線が重力方向と垂直になる身体の複数点(2点)を検出してもよい。このような2点の組み合わせとしては、(右肩、左肩)、(右腰、左腰)等が例示されるが、これらに限定されない。この例の場合、第1の推定部11は、各人物に対応して検出された2点の中点を通り、かつ、2点を結ぶ線と垂直な線が延伸する方向を、重力方向として特定する。
【0035】
なお、第1の推定部11は、あらゆる画像解析の技術を利用して、上述した身体の複数点を検出することができる。例えば、第1の推定部11は、「標準レンズ(例えば画角40°前後~60°前後)を用いて生成された画像に存在する人物各々の身体の所定の複数点を検出するアルゴリズム」と同じアルゴリズムで魚眼画像を解析することで、複数の人物各々の身体の所定の複数点を検出することができる。
【0036】
しかし、魚眼画像内では、起立した人物の身体が伸びる方向がばらつき得る。そこで、第1の推定部1は、魚眼画像を回転させながら画像の解析を行ってもよい。すなわち、第1の推定部11は、魚眼画像のイメージサークル内画像を回転させ、回転した後のイメージサークル内画像を解析して人物の身体の所定の複数点を検出する処理を行ってもよい。
【0037】
図6乃至図9を用いて、当該処理の概要を説明する。図6の例では、魚眼画像Fのイメージサークル内画像C1内に5人の人物M1乃至M5が存在する。5人の人物M1乃至M5はいずれも起立しているが、身体が伸びる方向はばらついている。
【0038】
第1の推定部11は、まず図6に示す回転状態で画像を解析し、各人物の両肩の真ん中P1と腰の真ん中P2を検出する処理を行う。この場合、第1の推定部11は、身体が伸びる方向が図の上下方向に近い人物M1及びM2の点P1及びP2を検出できたが、その他の人物の点P1及びP2は検出できていない。
【0039】
次に、第1の推定部11は、魚眼画像Fを90°回転させる。すると、図7の状態となる。第1の推定部11は、この回転状態で画像を解析し、各人物の両肩の真ん中P1と腰の真ん中P2を検出する処理を行う。この場合、第1の推定部11は、身体が伸びる方向が図の上下方向に近い人物M5の点P1及びP2を検出できたが、その他の人物の点P1及びP2は検出できていない。
【0040】
次に、第1の推定部11は、魚眼画像Fをさらに90°回転させる。すると、図8の状態となる。第1の推定部11は、この回転状態で画像を解析し、各人物の両肩の真ん中P1と腰の真ん中P2を検出する処理を行う。この場合、第1の推定部11は、身体が伸びる方向が図の上下方向に近い人物M4の点P1及びP2を検出できたが、その他の人物の点P1及びP2は検出できていない。
【0041】
次に、第1の推定部11は、魚眼画像Fをさらに90°回転させる。すると、図9の状態となる。第1の推定部11は、この回転状態で画像を解析し、各人物の両肩の真ん中P1と腰の真ん中P2を検出する処理を行う。この場合、第1の推定部11は、身体が伸びる方向が図の上下方向に近い人物M3の点P1及びP2を検出できたが、その他の人物の点P1及びP2は検出できていない。
【0042】
このように、第1の推定部11は、魚眼画像を回転させながら画像を解析することで、身体が伸びる方向がばらついている複数の人物各々の身体の所定の複数点を検出することができる。なお、上記例では90°づつ回転したが、あくまで一例でありこれに限定されない。
【0043】
次に、第1の推定部11は、魚眼画像内の複数の人物各々の位置における重力方向に基づき、基準点(x、y)を決定する。そして、第1の推定部11は、決定した基準点(x、y)を画像処理装置10の記憶部に記憶させる。
【0044】
第1の推定部11は、複数の人物各々の位置を通り、かつ、複数の人物各々の位置における重力方向に延伸した直線が1点で交わる場合、交わる点を基準点(x、y)とする。
【0045】
一方、複数の人物各々の位置を通り、かつ、複数の人物各々の位置における重力方向に延伸した直線が1点で交わらない場合、第1の推定部11は、複数の直線各々からの距離が所定条件を満たす点を基準点(x、y)とする。
【0046】
第1の推定部11が、起立した人物を正面から撮影して生成した画像内で互いを結ぶ線が重力方向と平行になる身体の複数点(2点)を検出する場合、「複数の人物各々の位置を通り、かつ、複数の人物各々の位置における重力方向に延伸した直線」は、第1の推定部11が検出した2点を結ぶ線であってもよい。
【0047】
そして、第1の推定部11は、起立した人物を正面から撮影して生成した画像内で互いを結ぶ線が重力方向と垂直になる身体の複数点(2点)を検出する場合、「複数の人物各々の位置を通り、かつ、複数の人物各々の位置における重力方向に延伸した直線」は、第1の推定部11が検出した2点の中点を通り、かつ、2点を結ぶ線と垂直な線であってもよい。
【0048】
図10は、第1の推定部11による基準点決定処理の概念を示す。図示する例では、第1の推定部11は、各人物の両肩の真ん中P1と腰の真ん中P2を検出している。そして、点P1及びP2を結ぶ線が、「複数の人物各々の位置を通り、かつ、複数の人物各々の位置における重力方向に延伸した直線L1乃至L5」となっている。図示する例の場合、複数の直線L1乃至L5は1点で交わらない。このため、第1の推定部11は、複数の直線L1乃至L5各々からの距離が所定条件を満たす点を基準点(x、y)とする。所定条件は、例えば「複数の直線各々との距離の和が最小」であるが、これに限定されない。
【0049】
例えば、第1の推定部11は、以下の式(1)乃至(3)に基づき、所定条件を満たす点を算出することができる。
【0050】
【数1】
【0051】
【数2】
【0052】
【数3】
【0053】
まず、式(1)により、直線L1乃至L5各々を示す。kは各直線の傾きで、cは各直線の切片である。式(2)及び式(3)により、直線L1乃至L5各々との距離の和が最小となる点を基準点(x、y)として算出することができる。
【0054】
なお、カメラの設置位置や向きが固定である場合、そのカメラが生成した複数の魚眼画像において設定される基準点(x、y)は同じ位置となる。このため、第1の推定部11は、上記処理で1つの魚眼画像の基準点(x、y)を算出すると、算出した基準点(x、y)をその魚眼画像を生成したカメラに紐付けて登録してもよい。そして、それ以降、そのカメラが生成した魚眼画像に対しては、上記基準点(x、y)の算出を行わず、登録している基準点(x、y)を読み出して利用してもよい。
【0055】
-画像の補完-
第1の推定部11は、上記処理で決定した基準点(x、y)が魚眼画像のイメージサークル内画像の中心と異なる場合、その魚眼画像のイメージサークル内画像に画像を補完し、補完円形画像を生成する。なお、基準点(x、y)が魚眼画像のイメージサークル内画像の中心と一致する場合、第1の推定部11は当該画像の補完を実行しない。
【0056】
補完円形画像は、イメージサークル内画像に補完画像を加えた画像であって、基準点(x、y)が中心となる円形の画像である。なお、補完円形画像は、基準点(x、y)からイメージサークル内画像の外周上の点までの距離の最大値が半径となり、イメージサークル内画像が内接してもよい。イメージサークル内画像に加える補完画像は、単色(例:黒)の画像であってもよいし、任意のパターン画像であってもよいし、その他であってもよい。
【0057】
図11に、第1の推定部11が生成した補完円形画像C2の一例を示す。魚眼画像Fのイメージサークル内画像C1に黒単色の補完画像を加えて、補完円形画像C2が生成されている。補完円形画像C2は、図示するように円形であり、基準点(x、y)がその中心である。そして、補完円形画像C2の半径rは、基準点(x、y)からイメージサークル内画像C1の外周上の点までの距離の最大値である。なお、イメージサークル内画像C1は補完円形画像C2に内接している。
【0058】
-基準線Lの決定-
基準線Lは、基準点(x、y)と、円形画像(イメージサークル内画像C1、補完円形画像C2等)の外周上の任意の点とを結ぶ線である。基準線Lの位置が、円形画像をパノラマ展開するときに切り開く位置となる。第1の推定部11は、例えば人物と重ならない基準線Lを設定することができる。このように基準線Lを設定すれば、人物がパノラマ画像内で2つの部分に分離する不都合を抑制できる。
【0059】
人物と重ならない基準線Lを設定する手法は様々である。例えば、第1の推定部11は、上記処理で検出した各人物の身体の複数点から所定距離以内には基準線Lを設定せず、上記検出した複数点から所定距離以上離れた場所に基準線Lを設定してもよい。
【0060】
-幅w、高さhの決定-
幅wはパノラマ画像の幅であり、高さhはパノラマ画像の高さである。これらの値はデフォルト値であってもよいし、ユーザが任意に設定し、画像処理装置10に登録してもよい。
【0061】
-パノラマ展開-
基準線L、基準点(x、y)、幅w、高さhを決定した後、第1の推定部11は魚眼画像をパノラマ展開し、パノラマ画像を生成する。なお、基準点(x、y)が魚眼画像のイメージサークル内画像の中心と異なる場合、第1の推定部11は補完円形画像をパノラマ展開してパノラマ画像を生成する。一方、基準点(x、y)が魚眼画像のイメージサークル内画像の中心と一致する場合、第1の推定部11は、魚眼画像のイメージサークル内画像をパノラマ展開してパノラマ画像を生成する。第1の推定部11は、図1を用いて説明した手法を用いて、パノラマ展開することができる。
【0062】
次に、パノラマ展開プロセスの処理の流れの一例を説明する。なお、各処理の詳細は上述したので、ここでの説明は適宜省略する。まず、図12のフローチャートを用いて、基準点(x、y)を決定する処理の流れの一例を説明する。
【0063】
魚眼画像が入力されると、第1の推定部11は、イメージサークル内画像の中から、複数の人物各々の身体の所定の複数点を検出する(S10)。例えば、第1の推定部11は、各人物の両肩の真ん中P1と腰の真ん中P2を検出する。
【0064】
ここで、図13のフローチャートを用いて、S10の処理の流れの一例を説明する。まず、第1の推定部11は、イメージサークル内画像を解析し、複数の人物各々の身体の所定の複数点を検出する(S20)。その後、第1の推定部11は、イメージサークル内画像を所定角度回転する(S21)。所定角度は例えば90°であるが、これに限定されない。
【0065】
そして、第1の推定部11は、回転後のイメージサークル内画像を解析し、複数の人物各々の身体の所定の複数点を検出する(S22)。そして、回転角度の合計が360°に達していない場合(S23のNo)、第1の推定部11は、S21に戻り同様の処理を繰り返す。一方、回転角度の合計が360°に達した場合(S23のYes)、第1の推定部11は処理を終了する。
【0066】
図12に戻り、S10の後、第1の推定部11は、S10で検出された所定の複数点に基づき複数の人物各々の位置における重力方向を特定する(S11)。例えば、第1の推定部11は、各人物の両肩の真ん中P1から腰の真ん中P2に向かう方向を、各人物の位置における重力方向として特定する。
【0067】
次いで、第1の推定部11は、複数の人物各々の位置を通り、各々の位置における重力方向に延伸した直線を算出する(S12)。そして、複数の直線が1点で交わる場合(S13のYes)、第1の推定部11は、交わる点を基準点(x、y)とする(S14)。一方、複数の直線が1点で交わらない場合(S13のNo)、第1の推定部11は、複数の直線各々からの距離が所定条件(例:最短)を満たす点を求め、その点を基準点(x、y)とする(S15)。
【0068】
次に、図14のフローチャートを用いて、パノラマ展開する処理の流れの一例を説明する。
【0069】
図12の処理で決定した基準点(x、y)が魚眼画像のイメージサークル内画像の中心と一致する場合(S30のYes)、第1の推定部11は、図1を用いて説明した手法を用いて、その魚眼画像のイメージサークル内画像をパノラマ展開し、パノラマ画像を生成する(S33)。すなわち、この場合、補完円形画像の生成、及び、補完円形画像のパノラマ展開は実施されない。
【0070】
一方、図12の処理で決定した基準点(x、y)が魚眼画像のイメージサークル内画像の中心と一致しない場合(S30のNo)、第1の推定部11は、補完円形画像を生成する(S31)。補完円形画像は、イメージサークル内画像に補完画像を加えた円形の画像であって、基準点(x、y)がその円の中心となる画像である。なお、補完円形画像は、基準点(x、y)からイメージサークル内画像の外周上の点までの距離の最大値が半径となり、イメージサークル内画像が内接してもよい。イメージサークル内画像に加える補完画像は、単色(例:黒)の画像であってもよいし、任意のパターン画像であってもよいし、その他であってもよい。
【0071】
そして、第1の推定部11は、図1を用いて説明した手法を用いて、その補完円形画像をパノラマ展開し、パノラマ画像を生成する(S32)。
【0072】
(第1の推定プロセス)
第1の推定プロセスでは、第1の推定部11は、生成した時系列な複数のパノラマ画像と第1の推定モデルに基づき、その時系列な複数のパノラマ画像が示す人物行動を推定する。
【0073】
まず、第1の推定部11は、時系列な複数のパノラマ画像から、画像内の各位置の特徴の時間変化を示す3次元特徴情報を生成する。例えば、第1の推定部11は、3D CNN(例えば、3D Resnet等の畳み込み深層学習ネットワークなどであるが、これに限定されない)に基づき3次元特徴情報を生成することができる。
【0074】
また、第1の推定部11は、時系列な複数のパノラマ画像各々において人物が存在する位置を示す人物位置情報を生成する。画像内に複数の人物が存在する場合、第1の推定部11は、複数の人物各々が存在する位置を示す人物位置情報を生成することができる。例えば、第1の推定部11は、人物のシルエット(全身)を画像内で抽出し、抽出したシルエットを内包する画像内のエリアを示す人物位置情報を生成する。第1の推定部11は、深層学習技術に基づき、より具体的には平面の画像や映像の中からあらゆる物体(例えば、人)を高速かつ高精度に認識する「物体認識の深層学習ネットワーク」に基づき人物位置情報を生成することができる。物体認識の深層学習ネットワークとしては、Mask-RCNN、RCNN、Fast RCNN、Faster RCNN等が例示されるが、これらに限定されない。なお、第1の推定部11は、時系列な複数のパノラマ画像各々に対して同様の人物検出処理を実施してもよいし、人物追跡技術を利用して一度検出した人物を画像内で追跡してその位置を特定してもよい。
【0075】
その後、第1の推定部11は、人物位置情報で示される人物が存在する位置における3次元特徴情報が示す特徴の時間変化に基づき、複数のパノラマ画像が示す人物行動を推定する。例えば、第1の推定部11は、人物位置情報で示される人物が存在する位置を除く位置における値を所定値(例:0)に変更する補正を3次元特徴情報に対して行った後、補正後の3次元特徴情報に基づき複数の画像が示す人物行動を推定することができる。第1の推定部11は、予め機械学習で生成された第1の推定モデルと、補正後の3次元特徴情報とに基づき、人物行動を推定することができる。
【0076】
第1の推定モデルは、標準レンズ(例えば画角40°前後~60°前後)を用いて生成された画像(学習データ)に基づく機械学習で生成された人物行動を推定するモデルとすることができる。その他、第1の推定モデルは、魚眼画像をパノラマ展開して生成されたパノラマ画像(学習データ)に基づく機械学習で生成された人物行動を推定するモデルであってもよい。
【0077】
ここで、図15のフローチャートを用いて、第1の推定プロセスの処理の流れの一例を説明する。
【0078】
まず、第1の推定部11は、上記パノラマ展開プロセスを実行することで、時系列な複数のパノラマ画像を取得する(S40)。
【0079】
その後、第1の推定部11は、時系列な複数のパノラマ画像から、画像内の各位置の特徴の時間変化を示す3次元特徴情報を生成する(S41)。また、第1の推定部11は、複数のパノラマ画像各々において人物が存在する位置を示す人物位置情報を生成する(S42)。
【0080】
そして、第1の推定部11は、人物位置情報で示される人物が存在する位置における3次元特徴情報が示す特徴の時間変化に基づき、複数の画像が示す人物行動を推定する(S43)。
【0081】
次に、図16を用いて、第1の推定プロセスの具体例を説明する。なお、あくまで一例であり、これに限定されない。
【0082】
まず、第1の推定部11は、例えば16フレーム分の時系列なパノラマ画像(16×2451×800)を取得したとする。すると、第1の推定部11は、3D CNN(例えば、3D Resnet等の畳み込み深層学習ネットワークなどであるが、これに限定されない)に基づき、この16フレーム分のパノラマ画像から、512チャンネルに畳み込まれた3次元特徴情報(512×77×25)を生成する。また、第1の推定部11は、Mask-RCNN等の物体認識の深層学習ネットワークに基づき、16フレーム分の画像各々において人物が存在する位置を示す人物位置情報(図中、binary Mask)を生成する。図示する例では、人物位置情報は、各人物を内包する複数の矩形のエリア各々の位置を示す。
【0083】
次いで、第1の推定部11は、人物位置情報で示される人物が存在する位置を除く位置における値を所定値(例:0)に変更する補正を3次元特徴情報に対して行う。その後、第1の推定部11は、当該3次元特徴情報をN個のブロック(各々kの幅を有する)に分割し、Average Pooling、flatten、fully-connected層等を経て、予め定義された複数のカテゴリ(人物行動)各々が含まれる確率(出力値)をブロック毎に得る。
【0084】
図示する例では、19のカテゴリが定義・学習されている。19のカテゴリは、「歩く」、「走る」、「手を振る」、「物を拾う」、「物を捨てる」、「ジャケットを脱ぐ」、「ジャケットを着る」、「電話を掛ける」、「スマートフォンを使う」、「おやつを食べる」、「階段を上がる」、「階段を下る」、「水を飲む」、「握手」、「他人のポケットから物を取る」、「他人に物を渡す」、「他人を押す」、「カードをかざして駅構内に入る」、「カードをかざして駅改札を出る」であるが、これらに限定されない。例えば、処理装置20は、当該確率が閾値以上のカテゴリに対応する人物行動が、その画像で示されていると推定する。
【0085】
なお、図中、N instance scoresは、時系列な複数のパノラマ画像に含まれるN個のブロック各々が上記19のカテゴリ各々を含む確率を示す。そして、図中、Final scores of the panorama branch for clip 1は、時系列な複数のパノラマ画像が上記19のカテゴリ各々を含む確率を示す。ここで、N instance scoresからFinal scores of the panorama branch for clip 1を算出する処理の詳細は特段制限されないが、以下一例を説明する。
【0086】
当該演算処理においては、複数の値の統計値を返す関数の利用が考えられる。例えば、平均値を返すaverage関数(式(4)参照)、最大値を返すmax関数(式(5)参照)、max関数に滑らかに近似したlog-sum-exp関数(式(6)参照)等の利用が考えられる。これらの関数は広く知られているのでここでの説明は省略する。
【0087】
【数4】
【0088】
【数5】
【0089】
【数6】
【0090】
なお、上記流れと逆方向にトレースすることで、当該確率が閾値以上のカテゴリ(人物行動)が示される画像内の位置を算出することができる。
【0091】
「魚眼プロセス」
魚眼プロセスは、第2の推定部12により実行される。第2の推定部12は、図5に示すように、時系列な複数の魚眼画像を取得すると(魚眼画像取得プロセス)、各々から一部領域を切り出し時系列な複数の魚眼部分画像を生成する(第1の切出プロセス)。その後、第2の推定部12は、生成した時系列な複数の魚眼部分画像を編集し、魚眼部分画像に含まれる人物毎に、時系列な複数の編集後魚眼部分画像を生成する(編集プロセス)。その後、第2の推定部12は、時系列な複数の編集後魚眼部分画像と第2の推定モデルに基づき、その時系列な複数の編集後魚眼部分画像が示す人物行動を推定する(第2の推定プロセス)。このように、魚眼プロセスは、魚眼画像取得プロセス、第1の切出プロセス、編集プロセス及び第2の推定プロセスを含む。以下、各々を詳細に説明する。
【0092】
(魚眼画像取得プロセス)
魚眼画像取得プロセスでは、第2の推定部12は、時系列な複数の魚眼画像を取得する。第2の推定部12が実行する魚眼画像取得プロセスは、パノラマプロセスで説明した第1の推定部11が実行する魚眼画像取得プロセスと同様であるので、ここでの説明は省略する。
【0093】
(第1の切出プロセス)
第1の切出プロセスでは、第2の推定部12は、時系列な複数の魚眼画像各々から一部領域を切り出して時系列な複数の魚眼部分画像を生成する。第2の推定部12は、パノラマプロセスで説明した基準点(x、y)を中心とした半径Rの円領域内の画像を魚眼部分画像として切り出す。半径Rは、予め設定された固定値であってもよい。その他、魚眼画像の解析結果に基づき決定される変動値であってもよい。後者の例として、例えば魚眼画像内の予め設定された中心領域に存在する人物の検出結果(検出人数)に基づき、半径R(魚眼部分画像の大きさ)を決定してもよい。検出人数が多いほど、半径Rは大きくなる。
【0094】
(編集プロセス)
編集プロセスでは、第2の推定部12は、生成した時系列な複数の魚眼部分画像を編集し、魚眼部分画像に含まれる人物毎に、時系列な複数の編集後魚眼部分画像を生成する。以下、詳細に説明する。
【0095】
まず、第2の推定部12は、魚眼部分画像を解析し、魚眼部分画像に含まれる人物を検出する。人物の検出は、パノラマプロセスで説明した処理(図13の処理)と同様に、魚眼部分画像を回転させながら各回転位置で魚眼部分画像を解析して人物を検出する手法を採用してもよい。その他、魚眼画像を学習データとした機械学習で生成された人物検出モデルに基づき、魚眼部分画像に含まれる人物を検出してもよい。また、第2の推定部12は、時系列な複数の魚眼部分画像各々に対して同様の人物検出処理を実施してもよいし、人物追跡技術を利用して一度検出した人物を動画像内で追跡してその位置を特定してもよい。
【0096】
人物を検出した後、第2の推定部12は、検出した人物毎に、魚眼部分画像を回転する回転プロセス、及び、所定サイズの一部領域を切り出す第2の切出プロセスを実行して、編集後魚眼部分画像を生成する。
【0097】
回転プロセスでは、各人物の位置における重力方向が画像上で上下方向となるように魚眼部分画像を回転する。各人物の位置における重力方向を特定する手段は、パノラマプロセスで説明した通りであるが、その他の手法を利用してもよい。
【0098】
第2の切出プロセスでは、回転プロセス後の魚眼部分画像から、各人物を含む所定サイズの画像を切り出す。切り出す画像の形状および大きさは、予め定義されている。
【0099】
ここで、図17を用いて、第1の切出プロセス及び編集プロセスの具体例を説明する。
【0100】
まず、(A)→(B)に示すように、第2の推定部12は、魚眼画像Fのイメージサークル内画像C1内の一部領域を魚眼部分画像C3として切り出す(第1の切出プロセス)。当該処理は、魚眼画像F毎に実行される。
【0101】
次に、(B)→(C)に示すように、第2の推定部12は、魚眼部分画像C3内から人物を検出する。図示する例では2人の人物が検出されている。
【0102】
次に、(C)→(D)に示すように、第2の推定部12は、検出された人物毎に、魚眼部分画像C3に対して回転プロセスを実行する。図示するように、回転後の魚眼部分画像C3においては、各人物の位置における重力方向が画像上で上下方向となる。当該処理は、魚眼部分画像C3毎に実行される。
【0103】
次に、(D)→(E)に示すように、第2の推定部12は、検出された人物毎に、回転後の魚眼部分画像C3から各人物を含む所定サイズの画像を切り出し、編集後魚眼部分画像C4を生成する。当該処理は、検出された人物毎、かつ、魚眼部分画像C3毎に実行される。
【0104】
(第2の推定プロセス)
第2の推定プロセスでは、第2の推定部12は、生成した時系列な複数の編集後魚眼部分画像と第2の推定モデルに基づき、その時系列な複数の編集後魚眼部分画像が示す人物行動を推定する。第2の推定部12による人物行動の推定処理は、基本的には、第1の推定部11による人物行動の推定処理と同様である。
【0105】
図18に示すように、第2の推定部12は、第1の人物に対応する時系列な複数の編集後魚眼部分画像から、画像内の各位置の特徴の時間変化を示す3次元特徴情報を生成する。例えば、第2の推定部12は、3D CNN(例えば、3D Resnet等の畳み込み深層学習ネットワークなどであるが、これに限定されない)に基づき3次元特徴情報を生成することができる。その後、第2の推定部12は、生成した3次元特徴情報に対し、人物が検出された位置の値を強調する処理を行う。
【0106】
第2の推定部12は、魚眼部分画像から検出された人物毎に当該処理を行う。そして、人物毎に算出された「人物が検出された位置の値を強調した3次元特徴情報」を連結した後、Average Pooling、flatten、fully-connected層等の同様の処理を経て、予め定義された複数のカテゴリ(人物行動)各々が各人物に対応する時系列な複数の編集後魚眼部分画像に含まれる確率(出力値)を得る。
【0107】
その後、第2の推定部12は、各人物に対応する時系列な複数の編集後魚眼部分画像各々に複数のカテゴリ(人物行動)各々が含まれる確率を統合し、魚眼部分画像に複数のカテゴリ(人物行動)各々が含まれる確率を算出する演算を行う。
【0108】
当該演算処理においては、複数の値の統計値を返す関数の利用が考えられる。例えば、平均値を返すaverage関数(上記式(4)参照)、最大値を返すmax関数(上記式(5)参照)、max関数に滑らかに近似したlog-sum-exp関数(上記式(6)参照)等の利用が考えられる。
【0109】
ここまでの説明から明らかなように、第2の推定部12は、魚眼画像の一部領域である魚眼部分画像をパノラマ展開せずに画像解析し、魚眼部分画像が示す人物行動を推定する。
【0110】
「統合プロセス」
統合プロセスは、第3の推定部13により実行される。第3の推定部13は、図5に示すように、パノラマプロセスで得られたパノラマ画像に基づく推定結果と、魚眼プロセスで得られた魚眼部分画像に基づく推定結果とに基づき、魚眼画像が示す人物行動を推定する。
【0111】
上述の通り、パノラマ画像に基づく推定結果及び魚眼部分画像に基づく推定結果はいずれも、予め定義された複数の人物行動各々を含む確率を示す。第3の推定部13は、パノラマ画像に基づく推定結果及び魚眼部分画像に基づく推定結果に基づく所定の演算処理で、予め定義された複数の人物行動各々を魚眼画像が含む確率を算出する。
【0112】
当該演算処理においては、複数の値の統計値を返す関数の利用が考えられる。例えば、平均値を返すaverage関数(上記式(4)参照)、最大値を返すmax関数(上記式(5)参照)、max関数に滑らかに近似したlog-sum-exp関数(上記式(6)参照)等の利用が考えられる。
【0113】
<実施例>
次に、画像処理装置10の実施例を説明する。なお、ここで説明する実施例は、本実施形態の画像処理装置10を実施する場合の一例であり、これに限定されない。
【0114】
図19は、本実施例の画像処理装置10のブロック図の一例である。画像処理装置10の基本構成は、上述した通り、パノラマプロセスと、魚眼プロセスと、統合プロセスとで構成される。各プロセスの基本構成も上述した通りである。
【0115】
図20は、本実施例の画像処理装置10の処理の流れを示すフローチャートである。
【0116】
S101では、画像処理装置10は、入力された時系列な複数の魚眼画像を所定数毎の複数のクリップ(clip)に分割する。図21に具体例を示す。図示する例では、120個の時系列な魚眼画像が入力され、それらが8個のクリップに分割されている。各クリップは16個の魚眼画像を含み、最後の1つのクリップのみが8個の魚眼画像を含む。その後、クリップごとに、魚眼プロセス(S102乃至S108)、パノラマプロセス(S109乃至S115)及び統合処理(S116)が実行される。
【0117】
魚眼プロセス(S102乃至S108)の詳細は、図17及び図18に示されている。魚眼プロセスでは、画像処理装置10は、時系列な複数の魚眼画像F各々の一部領域を抽出して時系列な複数の魚眼部分画像C3を生成する(S102、図17の(A)→(B))。その後、画像処理装置10は、時系列な複数の魚眼部分画像C3から人物を検出し、動画像内で追跡する(S103、図17の(B)→(C))。
【0118】
次いで、画像処理装置10は、検出された人物毎に、魚眼部分画像C3に対して回転プロセス(図17の(C)→(D))、及び、回転後の魚眼部分画像C3から各人物を含む所定サイズの画像を切り出すプロセス(図17の(D)→(E))を実行する(S104)。これにより、検出された人物毎に、時系列な複数の編集後魚眼部分画像C4が得られる。
【0119】
その後のS105では、画像処理装置10は、図18に示すように、検出された人物毎に、各々の時系列な複数の編集後魚眼部分画像を3D CNN(例えば、3D Resnet等の畳み込み深層学習ネットワークなどであるが、これに限定されない)に入力し、3次元特徴情報を生成する。また、画像処理装置10は、生成した3次元特徴情報に対し、人物が検出された位置の値を強調する処理を行う。
【0120】
次いで、画像処理装置10は、人物毎に得られた3次元特徴情報を連結する(S106)。その後、画像処理装置10は、Average Pooling、flatten、fully-connected層等を経て、予め定義された複数のカテゴリ(人物行動)各々が各人物に対応する時系列な複数の編集後魚眼部分画像に含まれる確率(出力値)を得る(S107)。
【0121】
その後、画像処理装置10は、各人物に対応する時系列な複数の編集後魚眼部分画像各々に複数のカテゴリ(人物行動)各々が含まれる確率を統合し、時系列な複数の魚眼部分画像に複数のカテゴリ(人物行動)各々が含まれる確率を算出する演算を行う(S108)。当該演算処理においては、複数の値の統計値を返す関数の利用が考えられる。例えば、平均値を返すaverage関数(上記式(4)参照)、最大値を返すmax関数(上記式(5)参照)、max関数に滑らかに近似したlog-sum-exp関数(上記式(6)参照)等の利用が考えられる。
【0122】
パノラマプロセス(S109乃至S115)の詳細は、図16に示されている。パノラマプロセスでは、画像処理装置10は、時系列な複数の魚眼画像各々をパノラマ展開した後(S109)、3D CNN(例えば、3D Resnet等の畳み込み深層学習ネットワークなどであるが、これに限定されない)に基づき、この時系列な複数のパノラマ画像から、512チャンネルに畳み込まれた3次元特徴情報(512×77×25)を生成する(S110)。また、画像処理装置10は、Mask-RCNN等の物体認識の深層学習ネットワークに基づき、時系列な複数のパノラマ画像各々において人物が存在する位置を示す人物位置情報を生成する(S112)。
【0123】
次いで、画像処理装置10は、S112で生成された人物位置情報で示される人物が存在する位置を除く位置における値を所定値(例:0)に変更する補正を、S110で生成された3次元特徴情報に対して行う(S111)。
【0124】
その後、画像処理装置10は、当該3次元特徴情報をN個のブロック(各々kの幅を有する)に分割し(S113)、Average Pooling、flatten、fully-connected層等を経て、予め定義された複数のカテゴリ(人物行動)各々が含まれる確率(出力値)をブロック毎に得る(S114)。
【0125】
その後、画像処理装置10は、ブロック毎に得られた複数のカテゴリ(人物行動)各々が含まれる確率を統合し、時系列な複数のパノラマ画像に複数のカテゴリ(人物行動)各々が含まれる確率を算出する演算を行う(S115)。当該演算処理においては、複数の値の統計値を返す関数の利用が考えられる。例えば、平均値を返すaverage関数(上記式(4)参照)、最大値を返すmax関数(上記式(5)参照)、max関数に滑らかに近似したlog-sum-exp関数(上記式(6)参照)等の利用が考えられる。
【0126】
その後、画像処理装置10は、魚眼プロセスで得られた「時系列な複数の魚眼部分画像に複数のカテゴリ(人物行動)各々が含まれる確率」と、パノラマプロセスで得られた「時系列な複数のパノラマ画像に複数のカテゴリ(人物行動)各々が含まれる確率」を統合し、各クリップに含まれる時系列な複数の魚眼画像に複数のカテゴリ(人物行動)各々が含まれる確率を算出する演算を行う(S116、図22参照)。当該演算処理においては、複数の値の統計値を返す関数の利用が考えられる。例えば、平均値を返すaverage関数(上記式(4)参照)、最大値を返すmax関数(上記式(5)参照)、max関数に滑らかに近似したlog-sum-exp関数(上記式(6)参照)等の利用が考えられる。
【0127】
ここまでの処理をクリップ毎に行うことで、クリップ毎に、「各クリップに含まれる時系列な複数の魚眼画像に複数のカテゴリ(人物行動)各々が含まれる確率」が得られる。S117では、クリップ毎に得られた複数の「各クリップに含まれる時系列な複数の魚眼画像に複数のカテゴリ(人物行動)各々が含まれる確率」を統合し、「入力された120個の時系列な魚眼画像に複数のカテゴリ(人物行動)各々が含まれる確率」を算出する演算を行う(図22参照)。当該演算処理においては、複数の値の統計値を返す関数の利用が考えられる。例えば、平均値を返すaverage関数(上記式(4)参照)、最大値を返すmax関数(上記式(5)参照)、max関数に滑らかに近似したlog-sum-exp関数(上記式(6)参照)等の利用が考えられる。
【0128】
その後、画像処理装置10は、算出結果の出力(S118)や、含まれると予測した人物行動の位置特定(S119)を行う。
【0129】
なお、学習段階においては、図22に示すように、画像処理装置10は、sigmoid関数を適用して「入力された120個の時系列な魚眼画像に複数のカテゴリ(人物行動)各々が含まれる確率」を0~1の値に変換する。そして、図示するTotal loss関数の値を最適化するように学習を行う。
【0130】
<変形例>
「第1の変形例」
図23に、変形例のフローを示す。図5との比較で明らかなように、当該変形例は、パノラマプロセスの構成が上述した実施形態と異なる。以下、当該変形例のパノラマプロセスを詳細に説明する。
【0131】
まず、第1の推定部11は、画像解析して、時系列な複数のパノラマ画像が示す人物行動の第1の推定結果を算出する。当該処理は、上記実施形態で説明したパノラマプロセスの処理と同じである。
【0132】
また、第1の推定部11は、パノラマ画像から生成されたオプティカルフロー画像を画像解析して、パノラマ画像が示す人物行動の第2の推定結果を算出する。オプティカルフロー画像は、時系列な複数のパノラマ画像における物体の動きを表すベクトルを画像化したものである。上記実施形態で説明した「時系列な複数のパノラマ画像が示す人物行動を推定する処理」において、「時系列な複数のパノラマ画像」を「時系列な複数のオプティカルフロー画像」に置き換えることで、第2の推定結果の算出が実現される。
【0133】
そして、第1の推定部11は、第1の推定結果と第2の推定結果とに基づき、時系列な複数のパノラマ画像が示す人物行動を推定する。この推定結果が、魚眼プロセスで得られた推定結果と統合される。
【0134】
第1の推定結果と第2の推定結果との統合においては、複数の値の統計値を返す関数の利用が考えられる。例えば、平均値を返すaverage関数(上記式(4)参照)、最大値を返すmax関数(上記式(5)参照)、max関数に滑らかに近似したlog-sum-exp関数(上記式(6)参照)等の利用が考えられる。
【0135】
「第2の変形例」
上記実施形態では、画像処理装置10がパノラマ画像の生成、魚眼部分画像の生成、及び、編集後魚眼部分画像の生成を行ったが、画像処理装置10と異なる他の装置がこれらの処理の中の少なくとも1つを行ってもよい。そして、他の装置が生成した画像(パノラマ画像、魚眼部分画像及び編集後魚眼部分画像の中の少なくとも1つ)が、画像処理装置10に入力されてもよい。この場合、画像処理装置10は、入力された画像を利用して、上述した処理を行う。
【0136】
「第3の変形例」
パノラマプロセスでは、生成したパノラマ画像に対し、魚眼プロセスで抽出される一部領域に対応する部分(以下、「その部分」)の情報を無くす処理(例:その部分を単色にしたり、所定のパターンにしたりする)を実行してもよい。そして、当該処理後のパノラマ画像と第1の推定モデルとに基づき、人物行動を推定してもよい。魚眼プロセスの方でその部分に含まれる人物行動は推定されるので、パノラマ画像からその部分の情報を無くすことができる。しかし、その部分と他の部分にまたがる人物が存在する場合、人物行動の推定精度が悪くなる等の状況が発生し得る。このため、上記実施形態のように、パノラマ画像からその部分の情報を無くさずに処理を実行することが好ましい。
【0137】
「第4の変形例」
上記説明した実施形態の編集プロセスでは、第2の推定部12は、魚眼部分画像を解析して、魚眼部分画像に含まれる人物を検出した。この「魚眼部分画像に含まれる人物を検出する処理」の変形例として、第2の推定部12は、以下の処理を行ってもよい。まず、第2の推定部12は、魚眼画像を解析し、魚眼画像に含まれる人物を検出する。その後、第2の推定部12は、魚眼画像から検出した人物の中の、魚眼画像内の検出位置(座標)が所定条件(魚眼部分画像として切り出される領域内)を満たす人物を検出する。魚眼画像から人物を検出する処理は、上述した魚眼部分画像から人物を検出する処理のアルゴリズムと同様のアルゴリズムで実現される。当該変形例によれば、魚眼部分画像に含まれる人物の検出精度が向上する。
【0138】
<作用効果>
本実施形態の第1の比較例として、魚眼プロセス及び統合プロセスを実行せず、パノラマプロセスのみを実行して魚眼画像に含まれる人物の人物行動を推定する処理が考えられる。
【0139】
しかし、上述の通り、魚眼画像からパノラマ画像を生成する際に基準点(x、y)付近の画像が大きく引き伸ばされるため、基準点(x、y)付近の人物がパノラマ画像において大きく歪み得る。このため、第1の比較例の場合、その歪んだ人物を検出できなかったり、推定精度が低下したりという問題が発生し得る。
【0140】
また、本実施形態の第2の比較例として、パノラマプロセス及び統合プロセスを実行せず、上述した魚眼プロセスと同様にして、魚眼画像の全体をパノラマ展開せずに処理して魚眼画像に含まれる人物の人物行動を推定する処理が考えられる。
【0141】
しかし、魚眼画像の中に多数の人物が含まれる場合、生成して処理する画像の数が膨大となり、コンピュータの処理負担が大きくなる。上述した魚眼プロセスと同様の処理とする場合、魚眼画像に含まれる人物を検出し、人物毎に各人物の画像内の向きを調整して複数の画像(編集後魚眼部分画像に対応)を生成し、それらを処理して複数の人物各々の人物行動を推定することとなる。当然、検出された人物の数が増えるほど、生成して処理する画像の数が膨大となる。
【0142】
本実施形態の画像処理装置10は、これらの問題を解決することができる。本実施形態の画像処理装置10は、パノラマ画像を解析して推定した人物行動と、魚眼画像の基準点(x、y)付近の一部画像をパノラマ展開せずに解析して推定した人物行動とを統合して、魚眼画像に含まれる人物の人物行動を推定する。
【0143】
魚眼画像の基準点(x、y)付近の一部画像をパノラマ展開せずに解析した場合、上述した基準点(x、y)付近の人物が大きく歪む問題が生じない。このため、基準点(x、y)付近の人物を検出し、その人物の人物行動を精度よく推定することができる。すなわち、上記第1の比較例の問題を解決できる。
【0144】
また、パノラマ画像において問題が生じ得る「魚眼画像の基準点(x、y)付近の一部画像」のみをパノラマ展開せずに解析し、その他の部分は当該処理の対象外とする。このため、魚眼プロセスで検出される人物の数が抑制される。結果、上記第2の比較例に比べて、魚眼プロセスで生成して処理する画像(編集後魚眼部分画像)の数を抑制し、コンピュータの処理負担を軽減することができる。
【0145】
以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0146】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
1. 魚眼レンズカメラで生成された魚眼画像をパノラマ展開したパノラマ画像を画像解析し、前記パノラマ画像が示す人物行動を推定する第1の推定手段と、
前記魚眼画像の一部領域である魚眼部分画像をパノラマ展開せずに画像解析し、前記魚眼部分画像が示す人物行動を推定する第2の推定手段と、
前記パノラマ画像に基づく推定結果と、前記魚眼部分画像に基づく推定結果とに基づき、前記魚眼画像が示す人物行動を推定する第3の推定手段と、
を有する画像処理装置。
2. 前記第2の推定手段は、
前記魚眼画像内に存在する複数の人物各々の位置における重力方向に基づき決定された前記魚眼画像内の基準点を中心とした円領域内の画像を、前記魚眼部分画像とする1に記載の画像処理装置。
3. 前記魚眼画像内に存在する複数の人物各々の位置における重力方向は、前記複数の人物各々から検出された身体の所定の複数点に基づき特定される2に記載の画像処理装置。
4. 前記第2の推定手段は、
前記魚眼画像内に存在する人物の検出結果に基づき、前記魚眼部分画像の大きさを決定する1から3のいずれかに記載の画像処理装置。
5. 前記第2の推定手段は、
前記魚眼部分画像を回転する処理、及び、所定サイズの一部領域を切り出す処理を実行して、前記魚眼部分画像内で検出した人物毎に編集後魚眼部分画像を生成し、
前記編集後魚眼部分画像を解析して、前記魚眼部分画像が示す人物行動を推定する1から4のいずれかに記載の画像処理装置。
6. 前記パノラマ画像に基づく推定結果及び前記魚眼部分画像に基づく推定結果はいずれも、予め定義された複数の人物行動各々を含む確率を示し、
前記第3の推定手段は、前記パノラマ画像に基づく推定結果及び前記魚眼部分画像に基づく推定結果に基づく所定の演算処理で、前記予め定義された複数の人物行動各々を前記魚眼画像が含む確率を算出する1から5のいずれかに記載の画像処理装置。
7. 前記第1の推定手段は、
前記パノラマ画像を画像解析して、前記パノラマ画像が示す人物行動の第1の推定結果を算出し、
前記パノラマ画像から生成されたオプティカルフロー画像を画像解析して、前記パノラマ画像が示す人物行動の第2の推定結果を算出し、
前記第1の推定結果と前記第2の推定結果とに基づき、前記パノラマ画像が示す人物行動を推定する1から6のいずれかに記載の画像処理装置。
8. コンピュータが、
魚眼レンズカメラで生成された魚眼画像をパノラマ展開したパノラマ画像を画像解析し、前記パノラマ画像が示す人物行動を推定し、
前記魚眼画像の一部領域である魚眼部分画像をパノラマ展開せずに画像解析し、前記魚眼部分画像が示す人物行動を推定し、
前記パノラマ画像に基づく推定結果と、前記魚眼部分画像に基づく推定結果とに基づき、前記魚眼画像が示す人物行動を推定する画像処理方法。
9. コンピュータを、
魚眼レンズカメラで生成された魚眼画像をパノラマ展開したパノラマ画像を画像解析し、前記パノラマ画像が示す人物行動を推定する第1の推定手段、
前記魚眼画像の一部領域である魚眼部分画像をパノラマ展開せずに画像解析し、前記魚眼部分画像が示す人物行動を推定する第2の推定手段、
前記パノラマ画像に基づく推定結果と、前記魚眼部分画像に基づく推定結果とに基づき、前記魚眼画像が示す人物行動を推定する第3の推定手段、
として機能させるプログラム。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23