(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024032346
(43)【公開日】2024-03-12
(54)【発明の名称】画像処理プログラム、画像処理装置及び画像処理方法
(51)【国際特許分類】
G06T 7/215 20170101AFI20240305BHJP
G09G 5/377 20060101ALI20240305BHJP
G09G 5/36 20060101ALI20240305BHJP
G09G 5/38 20060101ALI20240305BHJP
G09G 5/00 20060101ALI20240305BHJP
【FI】
G06T7/215
G09G5/36 520M
G09G5/36 510M
G09G5/38 A
G09G5/00 510B
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022135953
(22)【出願日】2022-08-29
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【弁理士】
【氏名又は名称】廣田 浩一
(72)【発明者】
【氏名】山田 幸二
【テーマコード(参考)】
5C182
5L096
【Fターム(参考)】
5C182AA04
5C182AC39
5C182AC43
5C182BA14
5C182BC26
5C182CB54
5C182CC24
5C182DA14
5C182DA44
5C182DA54
5L096DA01
5L096FA32
5L096GA08
5L096GA17
5L096GA19
5L096GA51
5L096HA04
5L096MA03
(57)【要約】
【課題】動き探索処理の処理負荷を低減させる。
【解決手段】画像処理プログラムは、撮影した第1画像に含まれる対象物体のバウンディングボックスの情報を取得する画像処理装置のコンピュータに、複数種類のブロックサイズの中から、前記バウンディングボックスのサイズに応じた1または複数種類のブロックサイズを選択し、選択したブロックサイズの範囲内で、前記第1画像内の前記バウンディングボックスの位置に応じた画像についてブロック分割処理を行い、各ブロックの画像に基づいて前記第1画像より後に撮影した第2画像を参照画像として前記第1画像において動き探索処理を行うことで、前記第1画像の各ブロックの動きベクトルを決定し、決定した各ブロックの動きベクトルに基づいて、前記バウンディングボックスの位置を補正し、位置を補正した後の前記バウンディングボックスを可視化する、処理を実行させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
撮影した第1画像に含まれる対象物体であって、撮影中に移動する該対象物体のバウンディングボックスの情報を取得する画像処理装置のコンピュータに、
複数種類のブロックサイズの中から、前記バウンディングボックスのサイズに応じた1または複数種類のブロックサイズを選択し、
選択したブロックサイズの範囲内で、前記第1画像内の前記バウンディングボックスの位置に応じた画像についてブロック分割処理を行い、各ブロックの画像に基づいて前記第1画像より後に撮影した第2画像を参照画像として前記第1画像において動き探索処理を行うことで、前記第1画像の各ブロックの動きベクトルを決定し、
決定した各ブロックの動きベクトルに基づいて、前記バウンディングボックスの位置を補正し、
位置を補正した後の前記バウンディングボックスを可視化する、
処理を実行させるための画像処理プログラム。
【請求項2】
前記バウンディングボックスのサイズが大きいほど、選択するブロックサイズの種類を減らす、請求項1に記載の画像処理プログラム。
【請求項3】
前記バウンディングボックスのサイズが所定の閾値以上であった場合、複数種類のブロックサイズのうちの最大のブロックサイズを選択する、請求項2に記載の画像処理プログラム。
【請求項4】
前記複数種類のブロックサイズを降順に配列した際の1番目からN番目までのブロックサイズを選択する場合において、前記バウンディングボックスのサイズが大きいほどNの値を小さくし、前記バウンディングボックスのサイズが小さいほどNの値を大きくする、請求項2に記載の画像処理プログラム。
【請求項5】
前記決定した各ブロックの動きベクトルから1つの動きベクトルを算出し、算出した1つの動きベクトルに基づいて、前記バウンディングボックスの位置を補正する、請求項1に記載の画像処理プログラム。
【請求項6】
前記決定した各ブロックの動きベクトルのうち、所定の条件を満たさない動きベクトルを除外した、除外後の動きベクトルの平均値を算出することで、前記1つの動きベクトルを算出する、請求項5に記載の画像処理プログラム。
【請求項7】
位置を補正した後の前記バウンディングボックスを透過型スクリーンに投影する、請求項1に記載の画像処理プログラム。
【請求項8】
位置を補正した後の前記バウンディングボックスを前記第2画像に重畳して表示する、請求項1に記載の画像処理プログラム。
【請求項9】
撮影した第1画像に含まれる対象物体であって、撮影中に移動する該対象物体のバウンディングボックスの情報を取得する画像処理装置であって、
複数種類のブロックサイズの中から、前記バウンディングボックスのサイズに応じた1または複数種類のブロックサイズを選択する選択部と、
選択したブロックサイズの範囲内で、前記第1画像内の前記バウンディングボックスの位置に応じた画像についてブロック分割処理を行い、各ブロックの画像に基づいて前記第1画像より後に撮影した第2画像を参照画像として前記第1画像において動き探索処理を行うことで、前記第1画像の各ブロックの動きベクトルを決定する算出部と、
決定した各ブロックの動きベクトルに基づいて、前記バウンディングボックスの位置を補正する補正部と、
位置を補正した後の前記バウンディングボックスを可視化する可視化部と
を有する画像処理装置。
【請求項10】
撮影した第1画像に含まれる対象物体であって、撮影中に移動する該対象物体のバウンディングボックスの情報を取得する画像処理装置のコンピュータが、
複数種類のブロックサイズの中から、前記バウンディングボックスのサイズに応じた1または複数種類のブロックサイズを選択し、
選択したブロックサイズの範囲内で、前記第1画像内の前記バウンディングボックスの位置に応じた画像についてブロック分割処理を行い、各ブロックの画像に基づいて前記第1画像より後に撮影した第2画像を参照画像として前記第1画像において動き探索処理を行うことで、前記第1画像の各ブロックの動きベクトルを決定し、
決定した各ブロックの動きベクトルに基づいて、前記バウンディングボックスの位置を補正し、
位置を補正した後の前記バウンディングボックスを可視化する、
処理を実行する画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理プログラム、画像処理装置及び画像処理方法に関する。
【背景技術】
【0002】
AR(Augmented Reality:拡張現実)やMR(Mixed Reality:複合現実)等を実現するための処理を、エッジ端末とサーバ装置とで分散して行うシステムが知られている。当該システムでは、サーバ装置において処理負荷の高い物体検出処理等が行われ、処理結果(例えば、対象物体のバウンディングボックスの位置、サイズ)がエッジ端末に送信される。そして、エッジ端末において、現実世界を撮影した画像に対して当該バウンディングボックスを重畳する処理や、現実世界を視認するための透過型のスクリーンに対して当該バウンディングボックスを投影する処理等が行われる。
【0003】
当該システムによれば、現実世界において対象物体が移動していた場合に、サーバ装置とエッジ端末との間のデータ転送時間に起因して、ユーザによって視認される対象物体とバウンディングボックスとの間に、位置ずれが生じ得る。
【0004】
このような位置ずれを回避するために、エッジ端末では、例えば、動き探索処理を行うことで動きベクトルを算出し、算出した動きベクトルに基づいて、バウンディングボックスの位置を補正する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許第2019/0340812号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、エッジ端末の処理性能が低い場合や、対象物体のサイズが大きい場合、あるいは、対象物体の数が多い場合等、動き探索処理の処理負荷が増大するケースでは、エッジ端末のフレームレートが低下するといった不具合が生じる。
【0007】
一つの側面では、動き探索処理の処理負荷を低減させることを目的としている。
【課題を解決するための手段】
【0008】
一態様によれば、画像処理プログラムは、以下の構成を備える。すなわち、
撮影した第1画像に含まれる対象物体であって、撮影中に移動する該対象物体のバウンディングボックスの情報を取得する画像処理装置のコンピュータに、
複数種類のブロックサイズの中から、前記バウンディングボックスのサイズに応じた1または複数種類のブロックサイズを選択し、
選択したブロックサイズの範囲内で、前記第1画像内の前記バウンディングボックスの位置に応じた画像についてブロック分割処理を行い、各ブロックの画像に基づいて前記第1画像より後に撮影した第2画像を参照画像として前記第1画像において動き探索処理を行うことで、前記第1画像の各ブロックの動きベクトルを決定し、
決定した各ブロックの動きベクトルに基づいて、前記バウンディングボックスの位置を補正し、
位置を補正した後の前記バウンディングボックスを可視化する、処理を実行させる。
【発明の効果】
【0009】
動き探索処理の処理負荷を低減させることができる。
【図面の簡単な説明】
【0010】
【
図1】物体検出システムのシステム構成の一例を示す図である。
【
図2】エッジ端末のハードウェア構成の一例を示す図である。
【
図3】サーバ装置のハードウェア構成の一例を示す図である。
【
図4】位置ずれが生じたバウンディングボックスの具体例を示す図である。
【
図5】位置ずれを補正するための補正処理の概要を説明するための図である。
【
図6】一般的な動き探索処理に含まれるブロック分割処理の概要を説明するための図である。
【
図7】一般的な動き探索処理に含まれるベクトル決定処理の概要を説明するための図である。
【
図8】比較例のエッジ端末の機能構成を示す第1の図である。
【
図9】比較例のエッジ端末の機能構成を示す第2の図である。
【
図10A】比較例のエッジ端末の動き探索部によるブロック分割処理の流れを示すフローチャートである。
【
図10B】比較例のエッジ端末の物体位置推定制御部による物体推定位置算出処理の流れを示すフローチャートである。
【
図11】第1の実施形態に係るエッジ端末の機能構成の一例を示す第1の図である。
【
図12】第1の実施形態に係るエッジ端末の機能構成の一例を示す第2の図である。
【
図13】第1の実施形態に係るエッジ端末の動き探索ブロック分割決定部の詳細を説明するための図である。
【
図14A】第1の実施形態に係るエッジ端末の動き探索ブロック分割決定部による動き探索ブロック分割決定処理の流れを示すフローチャートである。
【
図14B】第1の実施形態に係るエッジ端末の動き探索部によるブロック分割処理の流れを示すフローチャートである。
【
図15】位置ずれを補正したバウンディングボックスの具体例を示す図である。
【発明を実施するための形態】
【0011】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0012】
[第1の実施形態]
<物体検出システムのシステム構成>
はじめに、第1の実施形態に係るエッジ端末(画像処理装置の一例)を有する物体検出システムのシステム構成について説明する。第1の実施形態において物体検出システムとは、現実世界を撮影した画像データに対して物体検出処理を行い、撮影中に移動する対象物体を検出することで、
・画像データが非透過型スクリーンに表示される場合にあっては、撮影した画像データ内の対象物体の位置にバウンディングボックス(境界ボックスともいう)を重畳して表示する、あるいは、
・AR技術が搭載されている場合にあっては、現実世界を視認するための透過型のスクリーンにおいて、現実世界の対象物体の位置に対応する位置にバウンディングボックスを投影する、
処理を行うシステムを指す。
【0013】
図1は、物体検出システムのシステム構成の一例を示す図である。
図1に示すように、物体検出システム100は、エッジ端末110と、サーバ装置120とを有する。物体検出システム100において、エッジ端末110と、サーバ装置120とは、ネットワーク130を介して通信可能に接続される。
【0014】
エッジ端末110は、例えば、ユーザ140の頭部に装着されるヘッドマウントディスプレイである。エッジ端末110は撮像装置を備え、当該撮像装置により撮影された画像データをサーバ装置120に送信する。また、エッジ端末110は、画像データを送信したことに応じてサーバ装置120から物体検出結果(バウンディングボックスの位置、サイズ)等を受信する。更に、エッジ端末110は、受信した物体検出結果等に基づいて、例えば、画像データが非透過型スクリーンに表示される場合にあっては、現実世界を撮影した画像データ内の対象物体の位置にバウンディングボックスを重畳して表示する。また、AR技術が搭載されている場合にあっては、現実世界を視認するための透過型スクリーンにおいて、現実世界の対象物体の位置に対応する位置にバウンディングボックスを投影する。
【0015】
なお、
図1に示すように、時刻=T
0においてエッジ端末110により送信された画像データは、時刻=T
1においてサーバ装置120にて受信され、物体検出処理等が行われる。また、時刻=T
2においてサーバ装置120により送信された物体検出結果等は、時刻=T
3においてエッジ端末110にて受信される。
【0016】
このため、エッジ端末110では、時刻=T0から時刻=T3までのデータ転送時間の間に(つまり、撮影中に)、対象物体が移動したことに応じて生じる位置ずれに対して動き探索処理を行い、バウンディングボックスの位置を補正したうえで重畳または投影する。これにより、時刻=T0から時刻=T3までの撮影中に移動した対象物体に合わせて、バウンディングボックスの位置を適切に補正することができる。
【0017】
サーバ装置120は、ネットワーク130を介してエッジ端末110から画像データを受信し、受信した画像データに対して、物体検出処理を行う。また、サーバ装置120は、物体検出処理を行うことで得た物体検出結果等を、ネットワーク130を介してエッジ端末110に送信する。
【0018】
<エッジ端末及びサーバ装置のハードウェア構成>
次に、エッジ端末110及びサーバ装置120のハードウェア構成について説明する。
【0019】
(1)エッジ端末のハードウェア構成
はじめに、エッジ端末110のハードウェア構成について説明する。
図2は、エッジ端末のハードウェア構成の一例を示す図である。
【0020】
エッジ端末110は、プロセッサ201、メモリ202、補助記憶装置203、撮像装置204、可視化装置205、センサ206、接続装置207、通信装置208を有する。なお、エッジ端末110の各ハードウェアは、バス209を介して相互に接続されている。
【0021】
プロセッサ201は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等の各種演算デバイスを有する。プロセッサ201は、各種プログラム(例えば、画像処理プログラム等)をメモリ202上に読み出して実行する。
【0022】
メモリ202は、ROM(Read Only Memory)、RAM(Random Access Memory)等の主記憶デバイスを有する。プロセッサ201とメモリ202とは、いわゆるコンピュータを形成し、プロセッサ201が、メモリ202上に読み出した各種プログラムを実行することで、当該コンピュータは各種機能を実現する。
【0023】
補助記憶装置203は、各種プログラムや、各種プログラムがプロセッサ201によって実行される際に用いられる各種データを格納する。
【0024】
撮像装置204は、所定のフレーム周期で現実世界を撮影し、画像データを生成する。可視化装置205は可視化部の一例であり、画像データが非透過型スクリーンに表示される場合にあっては、撮像装置204により撮影された画像データを表示するディスプレイ(非透過型スクリーン)が含まれる。また、可視化装置205は、AR技術が搭載されたエッジ端末の場合にあっては、透過型スクリーン及び透過型スクリーンに画像を投影する投影装置が含まれる。
【0025】
センサ206は、エッジ端末110を装着したユーザ140の動きを検出するセンサや、エッジ端末110の位置を検出するセンサ等、各種センサを含む。
【0026】
接続装置207は、外部装置と、エッジ端末110とを接続する接続デバイスである。通信装置208は、ネットワーク130を介してサーバ装置120と通信するための通信デバイスである。
【0027】
なお、補助記憶装置203にインストールされる各種プログラムは、例えば、通信装置208を介してネットワーク130からダウンロードされることで、インストールされてもよい。
【0028】
(2)サーバ装置のハードウェア構成
次に、サーバ装置120のハードウェア構成について説明する。
図3は、サーバ装置のハードウェア構成の一例を示す図である。
【0029】
サーバ装置120は、プロセッサ301、メモリ302、補助記憶装置303、I/F(Interface)装置304、通信装置305、ドライブ装置306を有する。なお、サーバ装置120の各ハードウェアは、バス307を介して相互に接続されている。
【0030】
プロセッサ301は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等の各種演算デバイスを有する。プロセッサ301は、各種プログラム(例えば、物体検出プログラム等)をメモリ302上に読み出して実行する。
【0031】
メモリ302は、ROM(Read Only Memory)、RAM(Random Access Memory)等の主記憶デバイスを有する。プロセッサ301とメモリ302とは、いわゆるコンピュータを形成し、プロセッサ301が、メモリ302上に読み出した各種プログラムを実行することで、当該コンピュータは各種機能を実現する。
【0032】
補助記憶装置303は、各種プログラムや、各種プログラムがプロセッサ301によって実行される際に用いられる各種データを格納する。
【0033】
I/F装置304は、外部装置の一例である入力装置310、表示装置320と、サーバ装置120とを接続する接続デバイスである。
【0034】
通信装置305は、ネットワーク130を介してエッジ端末110と通信するための通信デバイスである。
【0035】
ドライブ装置306は記録媒体330をセットするためのデバイスである。ここでいう記録媒体330には、CD-ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体330には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【0036】
なお、補助記憶装置303にインストールされる各種プログラムは、例えば、配布された記録媒体330がドライブ装置306にセットされ、該記録媒体330に記録された各種プログラムがドライブ装置306により読み出されることでインストールされる。あるいは、補助記憶装置303にインストールされる各種プログラムは、通信装置305を介してネットワーク130からダウンロードされることで、インストールされてもよい。
【0037】
<位置ずれ及び位置ずれを補正するための補正処理についての説明>
次に、一般的な物体検出システムにおいて生じ得る、バウンディングボックスの位置ずれと、それを補正するための一般的な補正処理の概要について説明する。
【0038】
(1)位置ずれの説明
はじめに、一般的な物体検出システムにおいて生じ得る位置ずれであって、エッジ端末とサーバ装置との間のデータ転送時間に起因する、バウンディングボックスの位置ずれについて説明する。
図4は、位置ずれが生じたバウンディングボックスの具体例を示す図である。
【0039】
図4において、画像データ410は、エッジ端末の撮像装置が、時刻=T
0において撮影した画像データである。
図4に示すように、画像データ410には、対象物体411、411'が含まれる。エッジ端末では、画像データ410をサーバ装置に送信する。これにより、サーバ装置では、画像データ410に対して、物体検出処理を行い、物体検出結果(バウンディングボックスの位置、サイズ)をエッジ端末に送信する。
【0040】
図4において、画像データ420は、エッジ端末の撮像装置が、時刻=T
3において撮影した画像データである。
図4に示すように、時刻=T
0から時刻=T
3までのデータ転送時間の間に、対象物体411、411'は、それぞれ、対象物体421、421'の位置まで移動している。一方、エッジ端末では、時刻=T
3に、サーバ装置から物体検出結果(バウンディングボックス430、430'の位置、サイズ)を受信したとする。
【0041】
この場合、エッジ端末が、バウンディングボックス430、430'の位置を補正する処理を行わないとすると、
図4に示すように、バウンディングボックス430、430'は、画像データ420に示す位置に表示される。つまり、データ転送時間に相当する過去の時刻=T
0における対象物体411、411'の位置に、バウンディングボックス430、430'が表示され、現在の時刻=T
3における対象物体421、421'の位置との間に、位置ずれが生じる。
【0042】
(2)位置ずれを補正するための一般的な補正処理
次に、上記位置ずれを補正するための一般的な補正処理の概要について説明する。
図5は、位置ずれを補正するための補正処理の概要を説明するための図である。
【0043】
図5において、符号510は、エッジ端末の撮像装置が撮影した画像データの各フレーム画像を示している。符号510に含まれる各フレーム画像の位置は、時間軸520の各時刻において撮影されたことを示している。また、符号510に含まれる各フレーム画像のうち、ハッチングされたフレーム画像は、サーバ装置に送信され、物体検出処理が行われた後、物体検出結果がエッジ端末に送信されたフレーム画像である。一方、符号510に含まれる各フレーム画像のうち、ハッチングされていないフレーム画像は、サーバ装置に対して送信済みであるが、
・サーバ装置が未だ受信していない、あるいは、
・サーバ装置が受信したが、物体検出処理が完了していない、あるいは、
・サーバ装置が物体検出処理を完了したが、物体検出結果をエッジ端末に送信していない、あるいは、
・サーバ装置が物体検出結果を送信したが、エッジ端末が未だ受信していない、
いずれかのフレーム画像を示している。
【0044】
また、
図5において、符号530は、エッジ端末が、物体検出結果を受信したフレーム画像のうち、最新のフレーム画像を示している。エッジ端末では、物体検出結果を受信したフレーム画像のうち、最新のフレーム画像(符号530)について、物体検出結果から、対象物体の位置を特定する(符号531参照)。
【0045】
また、エッジ端末は、撮像装置が撮影したフレーム画像のうち、最新のフレーム画像(符号540)において、符号531に示す領域内の画像との誤差が十分に小さい領域(符号541参照)を探索する(動き探索処理を行う)。これにより、対象物体が含まれる領域の動きベクトル(符号550参照)を算出する。
【0046】
そして、エッジ端末では、算出した動きベクトル(符号550参照)に基づいてバウンディングボックスの位置を補正し、位置を補正した後のバウンディングボックスを、最新のフレーム画像(符号540)に重畳する。
【0047】
このように、動き探索処理により算出した動きベクトルに基づいてバウンディングボックスの位置を補正することで、データ転送時間に起因するバウンディングボックスの位置ずれを補正することができる。
【0048】
<一般的な動き探索処理の概要>
次に、動画圧縮規格であるHEVC(High Efficiency Video Coding)等における一般的な動き探索処理に含まれる各種処理のうち、ブロック分割処理及びベクトル決定処理の概要について説明する。
【0049】
(1)ブロック分割処理
はじめに、一般的な動き探索処理に含まれるブロック分割処理の概要について説明する。
図6は、一般的な動き探索処理に含まれるブロック分割処理の概要を説明するための図である。HEVC等の場合、最大符号化ブロックサイズは64画素×64画素であり、
図6は、HEVCの場合のブロック分割処理の一例を示している。
【0050】
図6に示すように、HEVCの場合、はじめに、64画素×64画素のブロック610内の画像に基づいて動き探索処理が行われる。
【0051】
また、ブロック分割処理では、64画素×64画素のブロック610を4つに分割し、32画素×32画素のブロック(ブロック620~623)を生成する。そして、4つの当該32画素×32画素のブロック内の画像それぞれに基づいて動き探索処理が行われる。
【0052】
このとき、ブロック分割処理では、64画素×64画素のブロックの誤差と、32画素×32画素の4つのブロック(ブロック620~623)の合計の誤差とを比較する。そして、32画素×32画素の4つのブロック(ブロック620~623)の合計の誤差の方が小さい場合、ブロック分割処理では、64画素×64画素のブロックを、32画素×32画素の4つのブロック(ブロック620~623)に分割する。
【0053】
次に、ブロック分割処理では、32画素×32画素のブロックのうち、まず、左上のブロックを4つに分割し、16画素×16画素のブロック(例えば、ブロック630)を生成する。そして、4つの当該16画素×16画素のブロック内の画像それぞれに基づいて動き探索処理が行われる。
【0054】
このとき、ブロック分割処理では、左上の32画素×32画素のブロックの誤差と16画素×16画素の4つのブロックの合計の誤差とを比較する。そして、左上の32画素×32画素のブロックの誤差の方が小さい場合、ブロック分割処理では、左上の32画素×32画素のブロックを分割しない。
【0055】
次に、ブロック分割処理では、右上の32画素×32画素のブロックに移動し、右上の32画素×32画素のブロックを4つに分割し、16画素×16画素のブロックを生成する。そして、4つの当該16画素×16画素のブロック内の画像それぞれに基づいて動き探索処理が行われる。
【0056】
このとき、ブロック分割処理では、右上の32画素×32画素のブロックの誤差と16画素×16画素の4つのブロックの合計の誤差とを比較する。そして、16画素×16画素の4つのブロックの誤差の方が小さい場合、ブロック分割処理では、右上の32画素×32画素のブロックを、16画素×16画素の4つのブロックに分割する。
【0057】
次に、ブロック分割処理では、16画素×16画素のブロックのうち、まず、左上の16画素×16画素のブロックを4つに分割する。これにより、ブロック分割処理では、8画素×8画素のブロック(例えば、ブロック640)を生成する。そして、4つの当該8画素×8画素のブロック内の画像それぞれに基づいて動き探索処理が行われる。このとき、左上の16画素×16画素のブロックの誤差と8画素×8画素の4つのブロックの合計の誤差とを比較し、左上の16画素×16画素のブロックの誤差の方が小さい場合、ブロック分割処理では、左上の16画素×16画素のブロックを分割しない。
【0058】
続いて、ブロック分割処理では、右上の16画素×16画素のブロックに移動し、右上の16画素×16画素のブロックを4つに分割し、8画素×8画素のブロック(例えば、ブロック641)を生成する。そして、4つの当該8画素×8画素のブロック内の画像それぞれに基づいて動き探索処理が行われる。以降、左下の16画素×16画素のブロック、右下の16画素×16画素のブロックについても同様のブロック分割処理が行われる。
【0059】
これにより、右上の32画素×32画素のブロックについてブロック分割処理が完了すると、左下の32画素×32画素のブロックに移動し、同様のブロック分割処理が行われる。更に、右下の32画素×32画素のブロックに移動し、同様のブロック分割処理が行われる。
【0060】
(2)ベクトル決定処理
次に、一般的な動き探索処理に含まれるベクトル決定処理の概要について説明する。
図7は、一般的な動き探索処理に含まれるベクトル決定処理の概要を説明するための図である。
【0061】
図7の例に示すように、64画素×64画素のブロック610内の画像に基づいて動き探索処理を行うことで、動きベクトル701と誤差が算出される。ブロック分割処理では、64画素×64画素のブロック610を4つに分割し、32画素×32画素のブロック(ブロック620~623)を生成する。そして、4つの当該32画素×32画素のブロック620~623内の画像それぞれに基づいて動き探索処理を行うことで、動きベクトル720~723と誤差が算出される。
【0062】
図7の例は、64画素×64画素のブロックの誤差と32画素×32画素の4つのブロック620、621、622、623の合計の誤差とを比較して、32画素×32画素の4つのブロックの誤差が小さい場合を示している。この場合、ブロック分割処理では、64画素×64画素のブロックを32画素×32画素のブロック620、621、622、623に分割する。また、動き探索処理では、32画素×32画素のブロック620、622、621、623の動きベクトルを、動きベクトル720、721、722、723とする。
【0063】
なお、
図7の例では示していないが、ブロック分割処理では、32画素×32画素のブロック620、621、622、623をそれぞれ4つに分割し、16画素×16画素のブロックを生成する。そして、16画素×16画素のブロックの画像それぞれに基づいて動き探索処理を行うことで、動きベクトルと誤差が算出される。
【0064】
また、
図7の例では示していないが、ブロック分割処理では、4つの32画素×32画素のブロックのそれぞれについて、32画素×32画素のブロックの誤差と16画素×16画素の4つのブロックの合計の誤差とを比較する。そして、32画素×32画素のブロックの誤差の方が小さい場合、ブロック分割処理では、32画素×32画素のブロックを分割しない。一方、16画素×16画素の4つのブロックの合計の誤差の方が小さい場合、ブロック分割処理では、32画素×32画素のブロックを16画素×16画素の4つのブロックに分割する。
【0065】
図7の例は、32画素×32画素のブロック620、622、623においては、32画素×32画素のブロックの誤差の方が小さい場合を示している。この場合、ブロック分割処理では、16画素×16画素に分割せず、32画素×32画素のブロックのままとすることを決定する。また、ベクトル決定処理では、32画素×32画素のブロック620、622、623の動きベクトルを、動きベクトル720、722、723に決定する。
【0066】
また、
図7の例は、32画素×32画素のブロック621においては、32画素×32画素のブロックの誤差より16画素×16画素の4つのブロックの合計の誤差の方が小さい場合を示している。この場合、
図6を用いて説明したとおり、ブロック分割処理では、32画素×32画素のブロック621を4つに分割し、16画素×16画素のブロックを生成する(
図7において不図示)。
【0067】
このように、一般的な動き探索処理におけるベクトル決定処理では、ブロック分割前後の誤差を比較してブロック分割処理を進めることで、それぞれのブロックの動きベクトルを決定する。また、一般的な動き探索処理におけるベクトル決定処理では、フレーム画像内の全ての領域に対して、同様の処理を行う。
【0068】
これに対して、物体検出システムのように、バウンディングボックスの位置ずれの補正を目的として動き探索処理を行うシステムの場合、動画圧縮を目的とする一般的な動き探索処理が行われるシステムとは、異なる処理が行われる。
【0069】
具体的には、バウンディングボックスの位置ずれの補正を目的として動き探索処理を行うシステムの場合、フレーム画像のうちのバウンディングボックスと重なるブロック(バウンディングボックスの位置に応じたブロック)内の画像に基づいて動き探索処理を行う。
【0070】
このため、当該システムの場合、ブロック分割処理において、はじめに64画素×64画素(最大のブロックサイズ)のブロックに分割した際、バウンディングボックスと重なるブロック内の画像を抽出する。そして、当該システムの場合、当該ブロックの動きベクトルと誤差を算出し、また、32画素×32画素の4つのブロックの動きベクトルの合計の誤差を算出する。そして、32画素×32画素のブロックの合計の誤差の方が小さい場合に、当該ブロックを、32画素×32画素のブロックに分割し、各ブロックの動きベクトルを決定する(以下、同様)。
【0071】
また、当該システムの場合、バウンディングボックスと重なるブロックであって、ブロック分割処理を行うことで決定した各ブロックの動きベクトルに基づいて、最終的に1つの動きベクトルを決定する。
【0072】
以下、バウンディングボックスの位置ずれの補正を目的として動き探索処理を行うエッジ端末の機能構成について詳説する。
【0073】
<エッジ端末の機能構成>
(1)比較例のエッジ端末の機能構成
はじめに、比較例のエッジ端末の機能構成について説明する。なお、上述したように、第1の実施形態に係るエッジ端末110には、ディスプレイ(非透過型スクリーン)が搭載されたエッジ端末とAR技術が搭載されたエッジ端末とが含まれる。このため、比較例のエッジ端末の機能構成についても、両方のエッジ端末の機能構成について説明する。
【0074】
(1-1)比較例のエッジ端末の機能構成その1
図8は、比較例のエッジ端末の機能構成を示す第1の図であって、AR技術が搭載されたエッジ端末の機能構成の一例を示す図である。
図8に示すように、AR技術が搭載された場合の比較例のエッジ端末810は、画像取得部811、物体位置推定処理部812、物体検出結果格納メモリ813、画像メモリ814、動き探索部815、物体位置推定制御部816、映像表示部817を有する。
【0075】
画像取得部811は、撮像装置204により撮影された画像データを取得し、画像データに含まれるフレーム画像をサーバ装置120に送信するとともに、エッジ端末810内の画像メモリ814、動き探索部815に通知する。また、画像取得部811は、各フレーム画像を取得したタイミングを示すフレーム画像取得信号を、物体位置推定処理部812に通知する。
【0076】
物体位置推定処理部812は、サーバ装置120のAI処理部820により物体検出処理が行われることで、サーバ装置120のAI処理部820より送信された物体検出結果と、物体検出処理が行われたフレーム画像を特定するフレーム画像特定信号とを取得する。なお、サーバ装置120のAI処理部820は、サーバ装置120にて物体検出プログラムが実行されることで実現される。また、物体位置推定処理部812は、取得した物体検出結果をフレーム画像特定信号と対応付けて、物体検出結果格納メモリ813に格納する。
【0077】
また、物体位置推定処理部812は、新たにフレーム画像取得信号が通知されると、対応する新たなフレーム画像において動き探索処理を行う際に用いる情報を物体検出結果格納メモリ813から読み出す。
【0078】
具体的には、物体位置推定処理部812では、物体検出結果格納メモリ813から、物体検出結果を受信したフレーム画像のうちの最新のフレーム画像について、物体検出結果と、対応するフレーム画像特定信号とを読み出す。
【0079】
また、物体位置推定処理部812は、読み出したフレーム画像特定信号を画像メモリ814に通知するとともに、読み出した物体検出結果を動き探索部815及び物体位置推定制御部816に通知する。
【0080】
物体検出結果格納メモリ813は、物体位置推定処理部812より通知された、物体検出結果とフレーム画像特定信号とを対応付けて格納する。
【0081】
画像メモリ814は、画像取得部811から通知された画像データを、探索元のフレーム画像(第1画像)として格納する。また、画像メモリ814では、物体位置推定処理部812よりフレーム画像特定信号が通知されることで、探索元のフレーム画像(物体検出結果を受信したフレーム画像のうち、最新のフレーム画像)が特定される。
【0082】
動き探索部815は、動き探索処理を行うことで動きベクトルを算出する。なお、動き探索部815の場合、上述したように、
図6、
図7を用いて説明した一般的な動き探索処理とは異なり、フレーム画像のうちのバウンディングボックスと重なるブロック内の画像に基づいて動き探索処理を行う。
【0083】
具体的には、動き探索部815は、特定された探索元のフレーム画像を画像メモリ814から読み出し、64画素×64画素のブロックに分割する。また、動き探索部815は、物体検出結果により位置及びサイズが特定されるバウンディングボックスと重なる各ブロック内の画像(各ブロック画像)を抽出する。また、動き探索部815は、各ブロック画像との誤差が最も小さい領域を、画像取得部811により新たに取得されたフレーム画像(第2画像)において探索することで、各ブロックの動きベクトルを算出する。
【0084】
なお、動き探索部815の場合、
図6、
図7を用いて説明した一般的な動き探索処理同様、64画素×64画素のブロックと分割した32画素×32画素の4つのブロックの動きベクトルを算出する。そして、32画素×32画素の4つのブロックの合計の誤差が64画素×64画素のブロックの誤差より小さい場合、32画素×32画素のブロックに分割する。続いて、動き探索部815では、32画素×32画素のブロックと分割した16画素×16画素のブロックの動きベクトルを算出する。以降、動き探索部815では、ブロックを分割した場合の誤差の方が小さくなるならば、8画素×8画素のブロックまでブロック分割処理を進めることで、各ブロックの動きベクトルを決定する。また、動き探索部815では、ブロック分割処理を行うことで決定した各ブロックの動きベクトルを、物体位置推定制御部816に通知する。なお、動き探索部815による「ブロック分割処理」の詳細は後述する。
【0085】
物体位置推定制御部816は補正部の一例である。物体位置推定制御部816は、上述したような一般的なベクトル決定処理とは異なり、動き探索部815より通知された複数の動きベクトルを用いて、1つのバウンディングボックスに対して、最終的に1つの動きベクトルを決定し、対象物体の位置を推定する。バウンディングボックスの位置ずれを補正するには、1つのバウンディングボックスに1つの動きベクトルが決定されればよいからである。なお、動き探索部815より通知された複数の動きベクトルを用いて、1つの動きベクトルを決定し、対象物体の位置を推定する「物体推定位置算出処理」の詳細は後述する。
【0086】
また、物体位置推定制御部816は、物体位置推定処理部812より通知された物体検出結果により特定されるバウンディングボックスの位置を、推定した対象物体の位置に補正する。また、物体位置推定制御部816は、位置を補正した後のバウンディングボックスを映像表示部817に通知する。
【0087】
映像表示部817は、物体位置推定制御部816より通知された、位置を補正した後のバウンディングボックスを、現実世界を視認するための透過型スクリーンに投影するよう制御する。
【0088】
(1-2)比較例のエッジ端末の機能構成その2
図9は、比較例のエッジ端末の機能構成を示す第2の図であって、ディスプレイ(非透過型スクリーン)が搭載された場合の機能構成の一例を示す図である。
図9に示すように、ディスプレイ(非透過型スクリーン)が搭載された場合の比較例のエッジ端末910は、画像取得部911、物体位置推定処理部812、物体検出結果格納メモリ813を有する。また、ディスプレイ(非透過型スクリーン)が搭載された場合の比較例のエッジ端末910は、画像メモリ814、動き探索部815、物体位置推定制御部816、検出結果重畳部912、映像表示部913を有する。
【0089】
なお、
図9に示す比較例のエッジ端末910のうち、物体位置推定処理部812~物体位置推定制御部816の各機能部は、
図8を用いて説明した、比較例のエッジ端末810の、物体位置推定処理部812~物体位置推定制御部816の各機能部と同様である。このため、ここでは説明を割愛する。
【0090】
画像取得部911は、撮像装置204により撮影された画像データを取得し、画像データに含まれるフレーム画像をサーバ装置120に送信するとともに、エッジ端末910内の画像メモリ814、動き探索部815、検出結果重畳部912に通知する。また、画像取得部911は、各フレーム画像を取得したタイミングを示すフレーム画像取得信号を、物体位置推定処理部812に通知する。
【0091】
検出結果重畳部912は、物体位置推定制御部816より通知された、位置を補正した後のバウンディングボックスを、画像取得部911より通知されたフレーム画像に重畳する。また、検出結果重畳部912は、位置を補正した後のバウンディングボックスを重畳したフレーム画像を、映像表示部913に通知する。
【0092】
映像表示部913は、検出結果重畳部912より通知されたフレーム画像を、ディスプレイ(非透過型スクリーン)に表示するよう制御する。
【0093】
(1-3)ブロック分割処理の詳細
次に、動き探索部815による「ブロック分割処理」の詳細について説明する。
図10Aは、比較例のエッジ端末の動き探索部によるブロック分割処理の流れを示すフローチャートである。
【0094】
ステップS1001において、動き探索部815は、物体位置推定処理部812から物体検出結果を取得する。
【0095】
ステップS1002において、動き探索部815は、画像メモリ814から探索元のフレーム画像を読み出し、64画素×64画素のブロックに分割する。
【0096】
ステップS1003において、動き探索部815は、取得した物体検出結果に基づいて特定されるバウンディングボックスと重なる各ブロック内の画像を、動き探索処理におけるブロック画像として抽出する。
【0097】
ステップS1004において、動き探索部815は、抽出した各ブロック画像と、算出した動きベクトルにより特定される探索先の領域の画像との誤差が、(様々なブロック分割パターンの中で)最小となるブロック分割を探索して決定するブロック分割処理を行う。
【0098】
なお、上述したように、動き探索部815では、ブロック分割処理を行うことで決定した各ブロックの動きベクトルを物体位置推定制御部816に通知する。
【0099】
(1-4)物体推定位置算出処理の詳細
次に、物体位置推定制御部816による「物体推定位置算出処理」の詳細について説明する。
図10Bは、比較例のエッジ端末の物体位置推定制御部による物体推定位置算出処理の流れを示すフローチャートである。
【0100】
ステップS1011において、物体位置推定制御部816は、動き探索部815より通知された各ブロックの動きベクトルを取得する。また、物体位置推定制御部816は、取得した動きベクトルの平均値を算出する。
【0101】
ステップS1012において、物体位置推定制御部816は、取得した動きベクトルのうち、ステップS1011において算出した平均値から大きく外れている動きベクトル(所定の条件を満たさない動きベクトル)を除外動きベクトルとする。
【0102】
ステップS1013において、物体位置推定制御部816は、取得した動きベクトルのうち、除外動きベクトルを除外した除外後の動きベクトル(所定の条件を満たす動きベクトル)について、平均値を算出する。物体位置推定制御部816は、算出した平均値を、バウンディングボックスの位置を補正するのに用いる動きベクトルに決定する。
【0103】
ステップS1014において、物体位置推定制御部816は、決定した動きベクトルに基づいて対象物体の位置を推定し、推定した対象物体の位置にバウンディングボックスの位置を補正する。
【0104】
ステップS1015において、物体位置推定制御部816は、フレーム画像内の全ての対象物体について、対象物体の位置を推定したか否かを判定する。ステップS1015において、未だ位置を推定していない対象物体があると判定した場合には(ステップS1015においてNOの場合には)、ステップS1011に戻る。
【0105】
一方、ステップS1015において、フレーム画像内の全ての対象物体について位置を推定したと判定した場合には(ステップS1015においてYESの場合には)、対象とするフレーム画像についての物体推定位置算出処理を終了する。
【0106】
(2)第1の実施形態に係るエッジ端末の機能構成
次に、第1の実施形態に係るエッジ端末110の機能構成として、ディスプレイ(非透過型スクリーン)が搭載されたエッジ端末110の機能構成と、AR技術が搭載されたエッジ端末110の機能構成について、説明する。
【0107】
(2-1)エッジ端末の機能構成その1
図11は、第1の実施形態に係るエッジ端末の機能構成の一例を示す第1の図であって、AR技術が搭載されたエッジ端末110の機能構成の一例を示す図である。
図11に示すように、AR技術が搭載されたエッジ端末110は、画像取得部811、物体位置推定処理部1111、物体検出結果格納メモリ813、画像メモリ814、動き探索部1113、物体位置推定制御部816、映像表示部817を有する。加えて、AR技術が搭載されたエッジ端末110は、動き探索ブロック分割決定部1112を有する。
【0108】
なお、
図11に示すエッジ端末110のうち、
・画像取得部811、
・物体検出結果格納メモリ813~画像メモリ814、
・物体位置推定制御部816~映像表示部817、
の各機能部は、
図8を用いて説明した、比較例のエッジ端末810の対応する各機能部と同様である。このため、ここでは説明を割愛する。
【0109】
物体位置推定処理部1111は、サーバ装置120のAI処理部820により物体検出処理が行われ、サーバ装置120のAI処理部820より送信された物体検出結果と、物体検出処理が行われたフレーム画像を特定するフレーム画像特定信号とを取得する。また、物体位置推定処理部1111は、取得した物体検出結果をフレーム画像特定信号と対応付けて、物体検出結果格納メモリ813に格納する。
【0110】
また、物体位置推定処理部1111は、新たにフレーム画像取得信号が通知されると、対応する新たなフレーム画像において動き探索処理を行う際に用いる情報を物体検出結果格納メモリ813から読み出す。
【0111】
具体的には、物体位置推定処理部1111では、物体検出結果格納メモリ813から、物体検出結果を受信したフレーム画像のうちの最新のフレーム画像について、物体検出結果と、対応するフレーム画像特定信号とを読み出す。
【0112】
また、物体位置推定処理部1111は、読み出したフレーム画像特定信号を画像メモリ814に通知し、読み出した物体検出結果を動き探索部1113、動き探索ブロック分割決定部1112及び物体位置推定制御部816に通知する。
【0113】
動き探索ブロック分割決定部1112は選択部の一例であり、物体位置推定処理部1111より通知された物体検出結果から、バウンディングボックスのサイズを特定する。また、動き探索ブロック分割決定部1112は、複数種類のブロックサイズの中からバウンディングボックスのサイズに応じた1または複数種類のブロックサイズを選択する。また、動き探索ブロック分割決定部1112は、選択したブロックサイズの種類を動き探索部1113に通知する。
【0114】
なお、動き探索ブロック分割決定部1112が、1または複数種類のブロックサイズをバウンディングボックスのサイズに応じて選択する「動き探索ブロック分割決定処理」の意義、及び、「動き探索ブロック分割決定処理」の詳細はそれぞれ後述する。
【0115】
動き探索部1113は算出部の一例であり、動き探索処理を行うことで、動きベクトルを算出する。なお、動き探索部1113の場合、上述したように、
図6、
図7を用いて説明した一般的な動き探索処理とは異なり、フレーム画像のうちのバウンディングボックスと重なるブロック内の画像に基づいて動き探索処理を行う。加えて、動き探索部1113の場合、
図8を用いて説明した比較例の動き探索部815とは異なり、動き探索ブロック分割決定部1112より通知された種類のブロックサイズの範囲で「ブロック分割処理」を行う。
【0116】
具体的には、動き探索部1113は、特定された探索元のフレーム画像を画像メモリ814から読み出し、64画素×64画素のブロックに分割する。また、動き探索部1113は、物体検出結果により位置及びサイズが特定されるバウンディングボックスと重なる各ブロック画像を抽出する。また、動き探索部1113は、各ブロック画像との誤差が最も小さい領域を、画像取得部811により新たに取得されたフレーム画像(第2画像)において探索することで、各ブロックの動きベクトルを算出する。
【0117】
なお、動き探索部1113の場合、動き探索ブロック分割決定部1112より通知されたブロックサイズの範囲内で各ブロックの動きベクトルを算出し、誤差が最も小さくなるブロック分割を決定するブロック分割処理を行う。そして、動き探索部1113の場合、通知されたブロックサイズの範囲内でのみブロック分割処理を行うことで各ブロックの動きベクトルを決定する。十分に小さい誤差が得られなかったブロックについて決定した動きベクトルは、物体位置推定制御部816において除外されるため、バウンディングボックスの位置の推定精度に影響しないからである。
【0118】
更に、動き探索部1113は、決定した各ブロックの動きベクトルを、物体位置推定制御部816に通知する。なお、動き探索部1113による「ブロック分割処理」の詳細は後述する。
【0119】
(2-2)エッジ端末の機能構成その2
図12は、第1の実施形態に係るエッジ端末の機能構成の一例を示す第2の図であって、ディスプレイ(非透過型スクリーン)が搭載されたエッジ端末110の機能構成の一例を示す図である。
図12に示すように、ディスプレイ(非透過型スクリーン)が搭載されたエッジ端末110は、画像取得部911、物体位置推定処理部1111、物体検出結果格納メモリ813、画像メモリ814を有する。また、ディスプレイ(非透過型スクリーン)が搭載されたエッジ端末110は、動き探索部1113、物体位置推定制御部816、検出結果重畳部912、映像表示部913を有する。加えて、AR技術が搭載されたエッジ端末110は、動き探索ブロック分割決定部1112を有する。
【0120】
なお、
図12に示すエッジ端末110のうち、画像取得部911、物体検出結果格納メモリ813~映像表示部913の各機能部は、
図9を用いて説明した、比較例のエッジ端末910の対応する各機能部と同様である。このため、ここでは説明を割愛する。
【0121】
また、物体位置推定処理部1111~動き探索部1113の各機能部は、
図12を用いて説明した、物体位置推定処理部1111~動き探索部1113の各機能部と同様である。このため、ここでは説明を割愛する。
【0122】
(2-3)動き探索ブロック分割決定処理の意義
次に、動き探索ブロック分割決定部1112が、バウンディングボックスのサイズに応じた1または複数種類のブロックサイズを選択する「動き探索ブロック分割決定処理」の意義について説明する。
図13は、第1の実施形態に係るエッジ端末の動き探索ブロック分割決定部の詳細を説明するための図である。なお、
図13の例は、フレーム画像1310に2つの対象物体が含まれ、それぞれの対象物体について、物体検出結果としてバウンディングボックス1311、1312の位置及びサイズが取得された様子を示している。
【0123】
ここで、バウンディングボックス1311のように、サイズの小さいバウンディングボックスの場合、当該バウンディングボックスに含まれる対象物体の解像度も低くなる。このため、動き探索部1113では、動き探索処理において十分小さい誤差を得るためには、ブロックサイズの小さいブロック(例えば、8画素×8画素のブロック)までブロック分割処理を進めて動き探索処理を行うことが必要となる。つまり、物体の動きを正しく反映した動きベクトルを得るためには、ブロックサイズの小さいブロック(例えば、8画素×8画素のブロック)までブロック分割処理を進めて動き探索処理を行うことが必要となる。
【0124】
このようなことから、動き探索ブロック分割決定部1112では、バウンディングボックスのサイズが小さい場合、大きいサイズから小さいサイズまでの複数種類のブロックサイズを選択し、動き探索部815に通知する。
【0125】
一方、バウンディングボックス1312のように、サイズの大きいバウンディングボックスの場合、当該バウンディングボックスに含まれる対象物体の解像度も高くなる。このため、動き探索部1113では、動き探索処理において十分小さい誤差を得るために、ブロックサイズの大きいブロック(例えば、64画素×64画素のブロック)についてブロック分割処理を行って動き探索処理を行えば足りる。つまり、物体の動きを正しく反映した動きベクトルを得るためには、ブロックサイズの大きいブロック(例えば、64画素×64画素のブロック)についてブロック分割処理を行って動き探索処理を行えば足りる。
【0126】
このようなことから、動き探索ブロック分割決定部1112では、バウンディングボックスのサイズが大きい場合、大きいサイズを選択し、動き探索部815に通知する。これにより、ブロックサイズが小さいサイズを選択した場合と比較して、動き探索部1113による動き探索処理の処理負荷を低減させることができる。
【0127】
更に、バウンディングボックスのサイズが大きい場合、選択するブロックサイズの種類を1種類のみとする。これにより、複数種類のブロックサイズを選択した場合と比較して、動き探索部1113による動き探索処理の処理負荷を低減させることができる。
【0128】
(2-4)動き探索ブロック分割決定処理の詳細
次に、動き探索ブロック分割決定部1112による動き探索ブロック分割決定処理の詳細について説明する。
図14Aは、第1の実施形態に係るエッジ端末の動き探索ブロック分割決定部による動き探索ブロック分割決定処理の流れを示すフローチャートである。
【0129】
ステップS1401において、動き探索ブロック分割決定部1112は、物体位置推定処理部1111から、物体検出結果を取得し、バウンディングボックスのサイズを特定する。
【0130】
ステップS1402において、動き探索ブロック分割決定部1112は、特定したバウンディングボックスのサイズが、第1閾値以上であるか否かを判定する。ステップS1402において、特定したバウンディングボックスのサイズが、第1閾値以上であると判定した場合には(ステップS1402においてYESの場合には)、ステップS1403に進む。
【0131】
ステップS1403において、動き探索ブロック分割決定部1112は、動き探索処理を行う際に用いるブロックサイズとして1種類のブロックサイズ(64画素×64画素)を選択する。
【0132】
一方、ステップS1402において、特定したバウンディングボックスのサイズが、第1閾値未満であると判定した場合には(ステップS1402においてNOの場合には)、ステップS1404に進む。
【0133】
ステップS1404において、動き探索ブロック分割決定部1112は、特定したバウンディングボックスのサイズが、第2閾値以上であるか否かを判定する。ステップS1404において、特定したバウンディングボックスのサイズが、第2閾値以上であると判定した場合には(ステップS1404においてYESの場合には)、ステップS1405に進む。
【0134】
ステップS1405において、動き探索ブロック分割決定部1112は、動き探索処理を行う際に用いるブロックサイズとして2種類のブロックサイズ(64画素×64画素、32画素×32画素)を選択する。
【0135】
一方、ステップS1404において、特定したバウンディングボックスのサイズが、第2閾値未満であると判定した場合には(ステップS1404においてNOの場合には)、ステップS1406に進む。
【0136】
ステップS1406において、動き探索ブロック分割決定部1112は、特定したバウンディングボックスのサイズが、第3閾値以上であるか否かを判定する。ステップS1406において、特定したバウンディングボックスのサイズが、第3閾値以上であると判定した場合には(ステップS1406においてYESの場合には)、ステップS1407に進む。
【0137】
ステップS1407において、動き探索ブロック分割決定部1112は、動き探索処理を行う際に用いるブロックサイズとして3種類のブロックサイズ(64画素×64画素、32画素×32画素、16画素×16画素)を選択する。
【0138】
一方、ステップS1406において、特定したバウンディングボックスのサイズが、第3閾値未満であると判定した場合には(ステップS1406においてNOの場合には)、ステップS1408に進む。
【0139】
ステップS1408において、動き探索ブロック分割決定部1112は、動き探索処理を行う際に用いるブロックサイズとして4種類のブロックサイズ(64画素×64画素、32画素×32画素、16画素×16画素、8画素×8画素)を選択する。
【0140】
このように、バウンディングボックスのサイズに応じた1または複数種類のブロックサイズを選択することで、バウンディングボックスのサイズが大きいほど、小さいブロックサイズを排除し、ブロックサイズの種類を減らすことができる。
【0141】
例えば、
図14に示したフローによれば、4種類のブロックサイズを降順に配列した際の1番目からN番目までのブロックサイズを選択する場合において、
・バウンディングボックスのサイズが大きいほど、Nの値を小さくすることができる。
・バウンディングボックスのサイズが小さいほど、Nの値を大きくすることができる。
【0142】
これにより、エッジ端末110では、動き探索部815が動き探索処理を行う際、探索精度を維持しつつ、バウンディングボックスのサイズが大きいほど、処理負荷を低減させることができる。
【0143】
(2-5)ブロック分割処理の詳細
次に、動き探索部1113による「ブロック分割処理」の詳細について説明する。
図14Bは、第1の実施形態に係るエッジ端末の動き探索部によるブロック分割処理の流れを示すフローチャートである。このうち、ステップS1001~ステップS1003までの処理は、
図10AのステップS1001~ステップS1003までの処理と同じである。
【0144】
ステップS1401において、動き探索部1113は、動き探索処理を行う際に、指定された種類のブロックサイズの範囲内でブロック分割処理を行う。
【0145】
なお、上述したように、動き探索部1113では、ブロック分割処理を行うことで決定した各ブロックの動きベクトルを、物体位置推定制御部816に通知する。
【0146】
<バウンディングボックスの具体例>
次に、位置ずれを補正した補正後のバウンディングボックスの具体例について説明する。
図15は、位置ずれを補正したバウンディングボックスの具体例を示す図である。第1の実施形態に係るエッジ端末110によれば、動き探索部1113が動き探索処理を行い、物体位置推定制御部816がバウンディングボックスの位置を補正するのに用いる動きベクトルを決定することで、バウンディングボックスの位置ずれを補正する。このため、対象物体421、421'が移動していた場合であっても、バウンディングボックスの位置ずれは生じない(対象物体421とバウンディングボックス430、対象物体421'とバウンディングボックス430'参照)。
【0147】
また、
図15に示すように、バウンディングボックスのサイズが大きい場合、動き探索部1113が動き探索処理を行う際に用いるブロックサイズの種類が減り、かつ、ブロックサイズが大きくなるため、動きベクトルが算出されるブロックの数が少なくなる。
【0148】
具体的には、サイズの小さいバウンディングボックス430'の場合、ブロックサイズの種類は"3種類"であり、かつ、ブロックサイズの小さいブロックまで選択されるため(符号1510参照)、動きベクトルが算出されるブロックの数は、
・64画素×64画素のブロック:6
・32画素×32画素のブロック:24
・16画素×16画素のブロック:64
となり、合計"94"となる。なお、ブロック分割処理は、非分割ブロックと分割ブロックの誤差を比較して、ブロック分割処理を行うか否かを決定するため、最終的に非分割になったブロックであっても、ブロック分割処理を行い動きベクトルを算出しているため、上記のような数となる。
【0149】
これに対して、サイズの大きいバウンディングボックス430の場合、ブロックサイズの種類は"1種類"であり、かつ、ブロックサイズの大きいブロックのみが選択されるため(符号1520参照)、動きベクトルが算出されるブロックの数は、
・64画素×64画素のブロック:28
となり、合計"28"となる。
【0150】
つまり、選択したブロックサイズの範囲内でブロック分割処理を行うことで、動きベクトルが算出されるブロックの数を少なくすることができる。この結果、動き探索部1113の処理負荷を低減させることが可能となる。
【0151】
以上の説明から明らかなように、第1の実施形態に係るエッジ端末110は、第1時刻に撮影した第1画像に含まれる対象物体であって、撮影中に移動する対象物体を特定するバウンディングボックスの位置及びサイズを取得する。また、第1の実施形態に係るエッジ端末110は、複数種類のブロックサイズの中から、バウンディングボックスのサイズに応じた1または複数種類のブロックサイズを選択する。また、第1の実施形態に係るエッジ端末110は、選択したブロックサイズの範囲内で、第1画像内のバウンディングボックスの位置に応じた画像についてブロック分割処理を行う。また、第1の実施形態に係るエッジ端末110は、各ブロックの画像に基づいて第1画像より後に撮影した第2画像を参照画像として第1画像において動き探索処理を行うことで、第1画像の各ブロックの動きベクトルを算出する。また、第1の実施形態に係るエッジ端末110は、決定した各ブロックの動きベクトルに基づいて、バウンディングボックスの位置を補正し、位置を補正した後のバウンディングボックスを可視化する。
【0152】
このように、動き探索処理を行う際に用いるブロックサイズの種類を、バウンディングボックスのサイズに応じて変更することで、バウンディングボックスのサイズが大きいほど、動き探索処理を行う際の処理負荷を低減させることができる。
【0153】
[その他の実施形態]
上記第1の実施形態では、バウンディングボックスのサイズが大きい場合に、動き探索処理を行う際に用いるブロックサイズの種類を減らすものとして説明した。しかしながら、バウンディングボックスのサイズが小さい場合に、動き探索処理を行う際に用いるブロックサイズの種類を減らしてもよい。例えば、上記第1の実施形態では、バウンディングボックスのサイズが第3閾値未満であると判定された場合に、動き探索処理を行う際に用いるブロックサイズとして、
・64画素×64画素のブロック、
・32画素×32画素のブロック、
・16画素×16画素のブロック、
・8画素×8画素のブロック、
を選択するものとしたが、例えば、動き探索処理を行う際に用いるブロックサイズとして、
・16画素×16画素のブロック、
・8画素×8画素のブロック、
のみを選択してもよい。つまり、バウンディングボックスが小さい場合においても動き探索処理を行う際に用いるブロックサイズの種類を、バウンディングボックスのサイズに応じて変更するようにしてもよい。ただし、この場合、動き探索部1113では、はじめに、フレーム画像全体を、16画素×16画素のブロックに分割し、バウンディングボックスと重なるブロック内の画像に基づいて動き探索処理を行うことになる。そして、動き探索部1113では、当該ブロックと当該ブロックを分割した8画素×8画素の4つのブロックの動きベクトルを算出する。更に、動き探索部1113では、分割した8画素×8画素の4つのブロックの合計の誤差が当該ブロックの誤差より小さい場合に、当該ブロックそれぞれを、8画素×8画素のブロックに分割することになる。
【0154】
また、上記第1の実施形態では、第1閾値~第3閾値を用いて、動き探索処理を行う際に用いるブロックサイズの種類を、4パターンのいずれかにする場合について説明したが、分類するパターン数は4パターンに限定されない。
【0155】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
撮影した第1画像に含まれる対象物体であって、撮影中に移動する該対象物体のバウンディングボックスの情報を取得する画像処理装置のコンピュータに、
複数種類のブロックサイズの中から、前記バウンディングボックスのサイズに応じた1または複数種類のブロックサイズを選択し、
選択したブロックサイズの範囲内で、前記第1画像内の前記バウンディングボックスの位置に応じた画像についてブロック分割処理を行い、各ブロックの画像に基づいて前記第1画像より後に撮影した第2画像を参照画像として前記第1画像において動き探索処理を行うことで、前記第1画像の各ブロックの動きベクトルを決定し、
決定した各ブロックの動きベクトルに基づいて、前記バウンディングボックスの位置を補正し、
位置を補正した後の前記バウンディングボックスを可視化する、
処理を実行させるための画像処理プログラム。
(付記2)
前記バウンディングボックスのサイズが大きいほど、選択するブロックサイズの種類を減らす、付記1に記載の画像処理プログラム。
(付記3)
前記バウンディングボックスのサイズが所定の閾値以上であった場合、複数種類のブロックサイズのうちの最大のブロックサイズを選択する、付記2に記載の画像処理プログラム。
(付記4)
前記複数種類のブロックサイズを降順に配列した際の1番目からN番目までのブロックサイズを選択する場合において、前記バウンディングボックスのサイズが大きいほどNの値を小さくし、前記バウンディングボックスのサイズが小さいほどNの値を大きくする、付記2に記載の画像処理プログラム。
(付記5)
前記決定した各ブロックの動きベクトルから1つの動きベクトルを算出し、算出した1つの動きベクトルに基づいて、前記バウンディングボックスの位置を補正する、付記1に記載の画像処理プログラム。
(付記6)
前記決定した各ブロックの動きベクトルのうち、所定の条件を満たさない動きベクトルを除外した、除外後の動きベクトルの平均値を算出することで、前記1つの動きベクトルを算出する、付記5に記載の画像処理プログラム。
(付記7)
位置を補正した後の前記バウンディングボックスを透過型スクリーンに投影する、付記1に記載の画像処理プログラム。
(付記8)
位置を補正した後の前記バウンディングボックスを前記第2画像に重畳して表示する、付記1に記載の画像処理プログラム。
(付記9)
前記第1画像内の前記バウンディングボックスの位置に応じた画像は、前記第1画像を、前記複数種類のブロックサイズのうちの最大のブロックサイズで分割したブロックであって、前記バウンディングボックスと重なるブロック内の画像である、付記1に記載の画像処理プログラム。
(付記10)
撮影した第1画像に含まれる対象物体であって、撮影中に移動する該対象物体のバウンディングボックスの情報を取得する画像処理装置であって、
複数種類のブロックサイズの中から、前記バウンディングボックスのサイズに応じた1または複数種類のブロックサイズを選択する選択部と、
選択したブロックサイズの範囲内で、前記第1画像内の前記バウンディングボックスの位置に応じた画像についてブロック分割処理を行い、各ブロックの画像に基づいて前記第1画像より後に撮影した第2画像を参照画像として前記第1画像において動き探索処理を行うことで、前記第1画像の各ブロックの動きベクトルを決定する算出部と、
決定した各ブロックの動きベクトルに基づいて、前記バウンディングボックスの位置を補正する補正部と、
位置を補正した後の前記バウンディングボックスを可視化する可視化部と
を有する画像処理装置。
(付記11)
撮影した第1画像に含まれる対象物体であって、撮影中に移動する該対象物体のバウンディングボックスの情報を取得する画像処理装置のコンピュータが、
複数種類のブロックサイズの中から、前記バウンディングボックスのサイズに応じた1または複数種類のブロックサイズを選択し、
選択したブロックサイズの範囲内で、前記第1画像内の前記バウンディングボックスの位置に応じた画像についてブロック分割処理を行い、各ブロックの画像に基づいて前記第1画像より後に撮影した第2画像を参照画像として前記第1画像において動き探索処理を行うことで、前記第1画像の各ブロックの動きベクトルを決定し、
決定した各ブロックの動きベクトルに基づいて、前記バウンディングボックスの位置を補正し、
位置を補正した後の前記バウンディングボックスを可視化する、
処理を実行する画像処理方法。
【0156】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【0157】
100 :物体検出システム
110 :エッジ端末
120 :サーバ装置
811 :画像取得部
812 :物体位置推定処理部
813 :物体検出結果格納メモリ
814 :画像メモリ
815 :動き探索部
816 :物体位置推定制御部
817 :映像表示部
911 :画像取得部
912 :検出結果重畳部
913 :映像表示部
1111 :物体位置推定処理部
1112 :動き探索ブロック分割決定部
1113 :動き探索部