以下、図面を参照しながら、発明を実施するための形態を説明する。なお、図面の説明において同一要素には同一符号を付し、重複する説明は省略する。
●実施形態●
●システム構成
図1は、実施形態に係る画像処理システムの一例を示す図である。図1に示す画像処理システムは、撮像装置10によって撮影空間における被写体が撮像された撮像画像に対する画像処理を行うシステムである。
撮像装置10は、工場またはサーバールーム等の撮影空間内における被写体を撮影する。この撮影空間には、撮影対象となる被写体と秘匿対象となる対象物が存在する。撮像装置10は、撮影空間の被写体が撮影し、撮影された撮像画像に対して秘匿対象の対象物を秘匿するためのマスク処理を行う画像処理装置である。
撮像装置10は、撮影空間の被写体を撮影して撮像画像を取得することができるデジタルカメラである。撮像装置10は、例えば、全天球(360°)パノラマ画像を得るための特殊なデジタルカメラである。なお、撮像装置10は、一般的なデジタルカメラ(一眼レフカメラ、コンパクトデジタルカメラ等)であってもよい。本実施形態では、撮像装置10が全天球パノラマ画像を得るためのデジタルカメラ(特殊撮像装置)として説明を行う。なお、撮像画像は、動画であっても静止画であってもよく、動画と静止画の両方であってもよい。また、撮像画像は、画像とともに音声を含んでもよい。また、撮像装置10は、固定されていてもよいし、撮影者または移動式のロボットに保持されて移動しながら撮影が行われてもよい。
ここで、図2および図3を用いて、処理対象の領域であるマスク処理領域を設定するための構成について説明する。図2は、実施形態に係るマスク処理領域を設定するための構成の一例を説明するための図である。
図2は、LED装置30A~30Eを用いて、対象物Jを秘匿するための構成を示す。図1に示されているように、撮影空間内には、撮影者が画像中に写り込ませたくないと考えている被写体(対象物J)が存在する。この場合、図2に示されているように、保護すべき対象物Jの周辺に、三次元的に複数のLED装置30A~30H(以下区別する必要がないときは、LED装置30と称する)が配置される。図2に示す例では、八つのLED装置30A~30Hが配置されている。
LED装置30A~30Hは、所定パターンとして色の輝点35A~35Hをそれぞれ発生される。この輝点35A~35Hは、マスク処理領域を指定するためのパターンとなる。LED装置30は、所定の色の輝点を発生させる発光装置の一例であり、自動マスク処理機能を利用しようとする撮影者等が、マスク処理領域を事前指定するために配置するデバイスである。所定パターンは、種々の電子機器で採用されている赤や緑等の単色のランプと区別できるパターンであることが望ましく、光強度(点滅)パターン、輝点の色、複数の輝点の配置またはこれらの組み合わせで構成され得る。
LED装置30は、撮像装置10の視野内に配置され、所定パターンを発生させるパターン発生手段の一例である。パターン発生手段は、1または複数の輝点を発光する発光装置であればよい。発光装置は、LED装置30のほか、例えば、ワイヤーやメッシュにLED等の発光素子が取り付けられたワイヤーライトおよびメッシュライト等であってもよい。また、パターン発生手段は、図2に示されているようなスタンド型および天吊型であってもよいし、バッチ型であってもよい。
撮像装置10は、撮像画像中の複数のLED装置30A~30Hの発光部位に対応する輝点35A~35Hの中心位置の座標値を算出する。撮像画像が動画である場合、連続する画像間で同じ座標の画素値を比較すると、点滅しているLED装置30に対応する座標において、点灯している場合と消灯している場合で画素値に違いが生じる。撮像装置10は、輝点35の光強度(点滅)パターンのように、画素値の変化をチェックすることで、画像上における点滅しているLED装置30に対応する位置を検出できる。
また、撮像装置10は、点灯したLED装置30が写っている画像と消灯したLED装置30が写っている画像の出現パターンからLEDの点滅パターンを識別することができる。撮像装置10は、特定の点滅パターンを撮像装置10に記録しておくことで、特定の点滅パターンをパターン発生手段によって発生された所定パターンであることを検出することができる。
図3は、実施形態に係るマスク処理領域を設定するための構成の別の例を説明するための図である。図3に示す例は、領域を識別するための所定パターンを発生させるパターン発生手段として、LED装置30に変えてQRコード(登録商標)40A~40H(以下区別する必要がないときは、QRコード40と称する)等の画像が印刷または表示された媒体を用いる構成である。撮像装置10は、複数のQRコード40A~40Hのそれぞれの識別子となる特定の文字情報を登録し、QRコード40A~40Hを読み取ることで、所定パターンを検出することができる。QRコード40は、印刷または表示された媒体として設置される。なお、撮像装置10が撮影中に移動または向きの変更が行われることも想定されるため、複数の視点から認識可能なようにQRコード40を読み取り可能な面は、複数あることが望ましい。
図3に示されている所定パターンとしての画像は、QRコードに限られず、一次元コード、二次元コードまたは特定の画像であってもよい。一次元コードは、いわゆるバーコードである。二次元コードは、例えば、マトリックス式およびスタック式のものがあり、QRコードのほか、DataMatrix(DataCode)、MaxiCodeまたはPDF417等である。また、特定の画像は、所定パターンを識別可能な数字、符号、記号またはイラスト等を含む画像である。なお、所定パターンとして画像を用いる場合、撮像装置10による撮像画像は、動画である必要なく、静止画であってもよい。
このように、画像処理システムにおいて、撮影者または撮影される被写体の管理者(部屋の住人や撮影者による撮影を受け入れる工場等の拠点の責任者)は、上述した所定パターンが撮像画像に映り込むように、自身が隠したいと考えている被写体の周辺に、所定パターンを発生させるパターン発生手段を物理的および立体的に配置する。これによって、撮影者または管理者等は、撮影前に、自身が撮影対象から除外したい領域を事前に指定することができる。なお、以下の説明において、所定パターンがLED装置30により発生する輝点35である例を説明するが、所定パターンは、図3に示されているような画像であってもよい。
●概略
ここで、図4を用いて、実施形態に係る画像処理システムにおける画像処理を概略的に説明する。図4は、実施形態に係る画像処理システムにおけるマスク処理の一例を説明するための概略図である。なお、図4は、実施形態に係る画像処理システムにおける画像処理の概略を簡略的に説明したものであり、画像処理システムが実現する機能等の詳細は、後述する図面等を用いて説明する。
図4(A)は、図2に示されているように、対象物Jの周辺にパターン発生手段としての複数のLED装置30が配置されている状況を示す。例えば、撮像装置10で撮影された撮像画像を遠隔地に送ることで、工場やサーバールームの現地の映像を遠隔で確認する用途が考えられる。特に、動画で撮影しながら撮影者が現場を歩いて撮影して回るという方法が考えられる。このとき、特定の位置にある設備(例えば、対象物X)は、機密性が高いため、LED装置30等のパターン発生手段を対象物Xの周囲に配置し、撮像画像中の輝点35等の所定パターンで囲まれた対象物Jの画像に対して画像処理を施す仕組みが考えられる。
しかしながら、図4(A)に示されているように、障害物Xによって、配置されたLED装置30のうちの一つが隠されてしまう場合がある。LED装置30の一つが隠れてしまうと、図4(B)に示されているように、撮像装置10は、隠されたLED装置30により発生される輝点35を検知できなくなり、対象物Jが処理対象の領域から外れてしまい、意図した領域を隠すことができなくなってしまう。
そこで、撮像装置10は、図4(C)に示されているように、検出された複数の輝点35(この場合、6点)の形状から、処理対象の領域を形成するために不足する頂点を推定する。そして、撮像装置10は、図4(D)に示されているように、検出された複数の輝点35と推定された頂点により設定されたマスク処理領域を施す。
従来の撮像画像から特定の画像を隠す方法では、隠したい領域を撮像装置が撮影する撮影空間に応じて事前に指定することができないとともに、画像処理の対象となる処理領域を撮影時にリアルタイムに設定することができなかった。特に、図4(B)に示されているように、処理対象の領域を識別するための所定パターンと撮像装置10との間に障害物X等が存在する場合、処理対象の領域を正確に識別できなくなり、隠したい領域を隠すことができなかった。
そこで、撮像装置10は、LED装置30等のパターン発生手段を用いて立体的に囲われた隠したい領域を認識する際に、その一部が何らかの理由で撮影されなかった場合であっても、処理対象の領域の形状を推定することで、隠すべき領域を正しく認識することができ、処理対象の領域に対するマスク処理の精度を向上させることができる。
●ハードウエア構成
次に、図5を用いて、撮像装置10のハードウエア構成を説明する。図5は、実施形態に係る撮像装置のハードウエア構成の一例を示す図である。なお、図5に示すハードウエア構成は、必要に応じて構成要素が追加または削除されてもよい。以下では、撮像装置10は、二つの撮像素子を使用した全天球(全方位)撮像装置とするが、撮像素子は二つ以上いくつでもよい。また、必ずしも全方位撮像専用の装置である必要はなく、通常のデジタルカメラやスマートフォン等に後付けの全方位撮像ユニットを取り付けることで、実質的に撮像装置10と同じ機能を有するようにしてもよい。
図5に示されているように、撮像装置10は、撮像ユニット101、画像処理ユニット104、撮像制御ユニット105、マイク108、音処理ユニット109、CPU(Central Processing Unit)111、ROM(Read Only Memory)112、SRAM(Static Random Access Memory)113、DRAM(Dynamic Random Access Memory)114、操作部115、入出力I/F(Interface)116、近距離通信回路117、近距離通信回路117のアンテナ117a、電子コンパス118、ジャイロセンサ119、加速度センサ120およびネットワークI/F121によって構成されている。
このうち、撮像ユニット101は、各々半球画像を結像するための180°以上の画角を有する広角レンズ(いわゆる魚眼レンズ)102a,102b(以下区別する必要のないときは、レンズ102と称する。)と、各レンズに対応させて設けられている二つの撮像素子103a,103bを備えている。撮像素子103a,103bは、レンズ102a,102bによる光学像を電気信号の画像データに変換して出力するCMOS(Complementary Metal Oxide Semiconductor)センサやCCD(Charge Coupled Device)センサ等の画像センサ、この画像センサの水平または垂直同期信号や画素クロック等を生成するタイミング生成回路、この撮像素子の動作に必要な種々のコマンドやパラメータ等が設定されるレジスタ群等を有している。
撮像ユニット101の撮像素子103a,103bは、各々、画像処理ユニット104とパラレルI/Fバスで接続されている。一方、撮像ユニット101の撮像素子103a,103bは、それぞれ撮像制御ユニット105とシリアルI/Fバス(I2Cバス等)で接続されている。画像処理ユニット104、撮像制御ユニット105および音処理ユニット109は、バス110を介してCPU111と接続される。さらに、バス110には、ROM112、SRAM113、DRAM114、操作部115、入出力I/F116、近距離通信回路117、電子コンパス118、ジャイロセンサ119、加速度センサ120およびネットワークI/F121等も接続される。
画像処理ユニット104は、撮像素子103a,103bから出力される画像データをパラレルI/Fバスを通して取り込み、それぞれの画像データに対して所定の処理を施した後、これらの画像データを合成処理して、正距円筒射影画像のデータを作成する。
撮像制御ユニット105は、一般に撮像制御ユニット105をマスタデバイス、撮像素子103a,103bをスレーブデバイスとして、I2Cバスを利用して、撮像素子103a,103bのレジスタ群にコマンド等を設定する。必要なコマンド等は、CPU111から受け取る。また、撮像制御ユニット105は、同じくI2Cバスを利用して、撮像素子103a,103bのレジスタ群のステータスデータ等を取り込み、CPU111に送る。
また、撮像制御ユニット105は、操作部115のシャッターボタンが押下されたタイミングで、撮像素子103a,103bに画像データの出力を指示する。撮像装置10によっては、ディスプレイによるプレビュー表示機能や動画表示に対応する機能を持つ場合もある。この場合は、撮像素子103a,103bからの画像データの出力は、所定のフレームレート(フレーム/分)によって連続して行われる。
また、撮像制御ユニット105は、後述するように、CPU111と協働して撮像素子103a,103bの画像データの出力タイミングの同期をとる同期制御手段としても機能する。なお、本実施形態では、撮像装置10には表示部(ディスプレイ)が設けられていないが、表示部を設けてもよい。マイク108は、音を音(信号)データに変換する。音処理ユニット109は、マイク108から出力される音データをI/Fバスを通して取り込み、音データに対して所定の処理を施す。
CPU111は、撮像装置10の全体の動作を制御すると共に必要な処理を実行する。ROM112は、CPU111のための種々のプログラムを記憶している。SRAM113およびDRAM114はワークメモリであり、CPU111で実行するプログラムや処理途中のデータ等を記憶する。特にDRAM114は、画像処理ユニット104での処理途中の画像データや処理済みの正距円筒射影画像のデータを記憶する。
操作部115は、種々の操作ボタンや電源スイッチ、シャッターボタン、表示と操作の機能を兼ねたタッチパネル等の総称である。ユーザは操作部115を操作することで、種々の撮影モードや撮影条件等を入力する。
入出力I/F116は、SDカード等の外付けのメディアまたはパーソナルコンピュータ等とのインターフェース回路(USB(Universal Serial Bus)I/F等)の総称である。入出力I/F116は、無線、有線を問わない。DRAM114に記憶された正距円筒射影画像のデータは、入出力I/F116を介して外付けのメディアに記録されたり、必要に応じて入出力I/F116を介して外部端末(装置)に送信されたりする。
近距離通信回路117は、撮像装置10に設けられたアンテナ117aを介して、NFC(Near Field Communication)、Bluetooth(登録商標)またはWi-Fi(登録商標)等の近距離無線通信技術によって、外部端末(装置)と通信を行う。近距離通信回路117は、正距円筒射影画像のデータを、外部端末(装置)に送信することができる。
電子コンパス118は、地球の磁気から撮像装置10の方位を算出し、方位情報を出力する。この方位情報はExifに沿った関連情報(メタデータ)の一例であり、撮像画像の画像補正等の画像処理に利用される。なお、関連情報には、画像の撮影日時および画像データのデータ容量の各データも含まれている。また、ジャイロセンサ119は、撮像装置10の移動に伴う角度の変化(Roll角、Pitch角、Yaw角)を検出するセンサである。角度の変化はExifに沿った関連情報(メタデータ)の一例であり、撮像画像の画像補正等の画像処理に利用される。さらに、加速度センサ120は、三軸方向の加速度を検出するセンサである。撮像装置10は、加速度センサ120が検出した加速度に基づいて、自装置(撮像装置10)の姿勢(重力方向に対する角度)を算出する。撮像装置10は、加速度センサ120を設けることによって、画像補正の精度が向上する。ネットワークI/F121は、ルータ等を介して、インターネット等の通信ネットワークを利用したデータ通信を行うためのインターフェースである。
○全天球画像
ここで、図6を用いて、全天球画像の生成および生成される全天球画像について説明する。図6(A)は、全天球画像の生成における各画像のデータ構造および画像処理のデータフローの一例を示す概念図である。まず、撮像素子103a,103b各々で直接撮像される画像は、全天球のうちの概ね半球を視野に収めた画像である。レンズ102に入射した光は、所定の射影方式に従って撮像素子103の受光領域に結像される。ここで撮像される画像は、受光領域が平面エリアを成す二次元の撮像素子で撮像されたものであり、平面座標系で表現された画像データとなる。また、典型的には、得られる画像は、図6(A)において「部分画像A」および「部分画像B」で示されるように、各撮影範囲が投影されたイメージサークル全体を含む魚眼レンズ画像として構成される。
これら複数の撮像素子103a,103bで撮像された複数の部分画像が、歪み補正および合成処理されて、一つの全天球画像が構成される。歪み補正および合成処理では、平面画像として構成される各部分画像から、まず、相補的な各半球部分を含む各画像が生成される。そして、各半球部分を含む二つの画像が、重複領域のマッチングに基づいて位置合わせ(スティッチング処理)され、画像合成され、全天球全体を含む全天球画像が生成される。各半球部分の画像には他の画像との重複領域が含まれるが、画像合成においては、適宜、自然なつなぎ目となるように重複領域についてブレンディングが行われる。
図6(B)は、全天球画像のデータ構造の一例を平面で示した概念図であり、図6(C)は、全天球画像のデータ構造の一例を球面で示した概念図である。図6(B)に示すように、全天球画像の画像データは、所定の軸に対してなされる垂直角度φと、所定の軸周りの回転角に対応する水平角度θとを座標とした画素値の配列として表現される。垂直角度φは、0度~180度(または-90度~+90度)の範囲となり、水平角度θは、0度~360度(または-180度~+180度)の範囲となる。
全天球フォーマットの各座標値(θ,φ)は、図6(C)に示すように、撮影地点を中心とした全方位を表す球面上の各点と対応付けられており、全方位が全天球画像上に対応付けられる。魚眼レンズで撮影された部分画像の平面座標と、全天球画像の球面上の座標とは、所定の変換テーブルにて対応づけされる。変換テーブルは、それぞれのレンズ光学系の設計データ等に基づいて、所定の投影モデルに従い製造元等で予め作成されたデータであり、部分画像を全天球画像へ変換するデータである。
また、全天球画像に対しては、電子コンパス118、ジャイロセンサ119および加速度センサ120からの情報を利用して、適宜、天頂補正および回転補正のいずれかまたは両方が行われる場合がある。ここで、天頂補正とは、実際には重力方向に対し中心軸が傾いた状態で撮影された全天球画像を、あたかも中心軸が重力方向に一致した状態で撮影されたかのような全天球画像に補正する処理(Roll方向およびPitch方向の補正)をいう。回転補正とは、天頂補正により重力方向に中心軸が一致するように補正された全天球画像において、さらに、重力方向周りの基準から回転をかける処理(Yaw方向の補正)をいう。
以下の説明において、撮像装置10が全天球画像を取得する構成を説明するが、マスク処理機能の対象は、通常のカメラで撮影される画像であってもよい。また、上述した天頂補正および回転補正は、撮像画像が画像入力部15に入力される前に実施されるものとして説明するが、マスク処理を施された後に行われる構成であってもよい。さらに、上述した撮像装置10は、広角画像を取得可能な撮像装置の一例であり、全天球画像は、広角画像の一例である。ここで、広角画像は、一般には広角レンズを用いて撮影された画像であり、人間の目で感じるよりも広い範囲を撮影することができるレンズで撮影されたものである。また、一般的に35mmフィルム換算で35mm以下の焦点距離のレンズで、撮影された画像を意味する。
また、上記各プログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。記録媒体の例として、CD-R(Compact Disc Recordable)、DVD(Digital Versatile Disk)、Blu-ray(登録商標) Disc(ブルーレイディスク)、SDカードまたはUSBメモリ等が挙げられる。また、記録媒体は、プログラム製品(Program Product)として、国内または国外へ提供されることができる。例えば、撮像装置10は、本発明に係るプログラムが実行されることで本発明に係る画像処理方法を実現する。
●機能構成
次に、図7および図8を用いて、実施形態に係る撮像装置10の機能構成について説明する。図7は、実施形態に係る撮像装置の機能構成の一例を示す図である。なお、図7では、後述の処理または動作に関連しているものが示されている。
撮像装置10は、通信部11、受付部12、表示制御部13、撮像処理部14、画像入力部15、マスク種別決定部16、検出部17、算出部18、判断部19、推定部21、領域設定部22、画像処理部23、画像出力部24および記憶・読出部29を有している。これら各部は、図4に示されている各構成要素のいずれかが、SRAM113からDRAM114上に展開された撮像装置用のプログラムに従ったCPU111からの命令によって動作することで実現される機能または手段である。また、撮像装置10は、図4に示されているROM112、SRAM113およびDRAM114によって構築される記憶部1000を有している。
通信部11は、主に、CPU111の処理によって実現され、他の装置または端末と各種データまたは情報の通信を行う。通信部11は、例えば、ネットワークI/F121を用いて、他の装置または端末との間で、通信ネットワークを介したデータ通信を行う。また、通信部11は、例えば、入出力I/F116を用いて、他の装置または端末との間で、各種ケーブル等を介したデータ通信を行う。さらに、通信部11は、例えば、近距離通信回路117を用いて、他の装置または端末との間で、近距離無線通信技術によるデータ通信を行う。
受付部12は、主に、操作部115に対するCPU111の処理によって実現され、利用者から各種の選択または入力を受け付ける。表示制御部13は、主に、CPU111の処理によって実現され、各種画像を表示させる。表示制御部13は、例えば、ライブビュー(撮影状態をリアルタイムで確認可能としながら撮影する機能)における画像表示を行う。表示制御部13は、ライブビュー中、HDMI(登録商標)やMiracast(登録商標)等の規格で有線または無線のインターフェースで接続された外部のディスプレイまたは自身の表示手段への表示を制御する。表示制御部13は、ライブビュー画面において、入力される画像の表示に対し、自動で検知されたマスク処理領域を重畳して表示することができる。なお、全天球画像の表示方法は、特に限定されるものではなく、全天球画像をそのまま二次元の平面画像として表示してもよいし、全天球画像を球体オブジェクトに貼り付けて、仮想カメラから球体オブジェクトを観察した場合の投影画像として表示してもよい。撮影者は、保護すべき被写体にマスク処理が施されていることをライブビューの画像上で確認することができる。
撮像処理部14は、主に、撮像ユニット101、画像処理ユニット104、撮像制御ユニット105、マイク108および音処理ユニット109に対するCPU111の処理によって実現され、風景等の被写体を撮像し、撮影画像データを取得する。撮像処理部14は、撮像処理を実行し、全天球画像(例えば、正距円筒射影画像)のデータを生成し、画像入力部15に全天球画像データを入力する。撮像処理部14によって撮像される全天球画像は、単一フレームの静止画であってもよいし、連続的な複数フレームからなる動画であってもよい。また、撮像処理部14は、シャッターボタン等の操作部115の押下等により撮影指示が行われた後の本番の撮像画像を出力するほか、撮影指示前の映像確認のためのリアルタイム画像を出力することができる。
画像入力部15は、主に、CPU111の処理によって実現され、処理対象となる撮像画像の入力を受ける。マスク処理の対象となる撮像画像は、全天球画像である。静止画の場合は、所定の時点で撮像された1フレーム分の画像が画像入力部15に入力される。また、動画の場合は、複数のフレーム各々の画像が画像入力部15に順次入力される。また、静止画撮影の場合に、撮影前の画像確認のために複数のフレーム各々の画像が画像入力部15に順次入力されてもよい。
マスク種別決定部16は、主に、CPU111の処理によって実現され、マスク処理領域に対して適用する画像処理の種別を決定する。
検出部17は、CPU111の処理によって実現され、画像入力部15によって入力された撮像画像に示される、LED装置30またはQRコード40等のパターン発生手段によって発生された所定パターンを検出する。検出対象としての所定パターンは、例えば、撮像画像が静止画の場合、画像中の一次元コード、二次元コードもしくは特定の画像または輝点のパターンが挙げられる。輝点のパターンは、例えば、輝点の色および複数の輝点の配置を単独でまたは組み合わせで用いることができる。なお、輝点のパターンには、所定の色を有する単一の輝点が含まれるものとする。また、撮像画像が動画の場合、検出対象となる所定パターンは、各フレームの画像中の一次元コード、二次元コードもしくは特定の画像または輝点のパターンのほか、複数のフレームにわたる画像列中の輝点の時間的パターンを含む。ここで、輝点の時間的パターンは、複数のフレームにわたる輝点の所定周波数の光強度(点滅)パターン、輝点の色、複数の輝点の配置またはこれらの組み合わせで構成される。輝点の配置は、例えば、「○」、「×」、「□」、「▽」などの所定の図形に図形化されたものとすることができる。
画像または画像列中の一次元コード、二次元コードおよび特定の画像、並びに輝点およびその輝点の時間的パターンの認識方法は、これまで知られた如何なる技術を用いることができる。また、全天球画像中で画像認識のため、撮像装置10は、前処理として、必要に応じて、画像中の一次元コードおよび二次元コードに対応する領域に対し、歪みを補正する処理を行ってもよい。
算出部18は、CPU111の処理によって実現され、検出部17によって検出された所定パターンの位置を算出する。算出部18は、例えば、画像中の所定パターンの位置を、全天球画像フォーマット上の座標値として算出する。所定パターンの位置は、複数のフレームにわたり追跡されて対応付けが算出されてもよい。判断部19は、CPU111の処理によって実現され、各種判断を行う。
推定部21は、CPU111の処理によって実現され、検出部17によって検出された複数の所定パターンの位置に基づいて形成される特定の形状を補完する頂点を推定する。推定部21は、検出された複数の所定パターンを用いて決定された特定の形状を形成するために、不足する頂点を推定する。
領域設定部22は、CPU111の処理によって実現され、検出部17によって検出された所定パターンの位置および推定部21によって推定された頂点に基づいて、対象の画像に対するマスク処理領域(処理対象の領域)を設定する。ここで、マスク処理領域は、少なくとも複数の所定パターンの位置および推定された頂点の座標値を結んで画定される多角形を包含する領域、または、少なくとも複数の所定パターンの位置および推定された頂点の座標値を点としてこれらの点の凸包(与えられた点をすべて包含する最小の凸多角形)を包含する領域を含む。なお、マスク処理領域は、複数の所定パターンの位置および推定された頂点の座標を結ぶ多角形または凸包自体として設定されてもよいし、その多角形領域に対して所定のマージンが設けられた任意の図形(多角形のほかに円や楕円などの任意の閉曲線で構成される図形を含む)であってもよい。マスク処理領域は、例えば、全天球画像フォーマット上の座標値(曲線等の場合はパラメータを含んでいてもよい。)の配列として求められる。領域設定部22は、所定パターンおよび推定された頂点が画定する「面」として自動認識されて、その面に対してマスク処理領域を設定する。
また、領域設定部22は、所定パターンおよび推定された頂点が画定する「面」として自動認識されて、その面に対してマスク処理領域を設定する。なお、検出部17によって検出される所定パターンの数は、少なくとも面を規定することができる三つ以上であることが好ましいが、所定のマージンとともに任意の二次元図形を描くことができる限り、必ずしも三つ以上に限定されるものではない。
全天球画像は、水平方向360度の範囲を含んでおり、全天球画像の両端部は相互に接続されている。そのため、マスク処理領域が端部をまたぐ場合があり、マスク処理領域は、全天球画像の両端部で分離して設定されてもよい。この場合、領域設定部22は、マスク処理領域と端部境界との交点が求め、それぞれの側で求めた交点を含むマスク処理領域を設定する。
ここで、検出部17は、所定パターンの座標値に加えて、検出された所定パターンが属するグループを判別することもできる。この場合、領域設定部22は、識別したグループ構成に基づいて、異なるマスク処理領域を設定することができる。例えば、上述した所定パターンは、一次元コード、二次元コードや輝点のパターン等で情報を符号化できるので、符号化された情報(例えば、識別子)によって複数のグループを表現することができる。そして、領域設定部22は、識別された一以上のグループのそれぞれに対して、一つのマスク処理領域が設定することができる。
画像処理部23は、CPU111の処理によって実現され、画像入力部15により入力された撮像画像中のマスク処理領域に対応する領域に対し画像処理を行う。画像処理は、画像中のマスク処理領域にある画像情報を、復元不可能に削除もしくは劣化させるマスク処理である。マスク処理としては、ぼかし、所定の色もしくは画像パターン(チェッカーパターン、ストライプ、ノイズパターン(砂嵐)、スタンプ等)での塗りつぶし、モザイク処理、および二次元もしくは三次元の図形オブジェクトでの上書きのうちの少なくとも一つのマスク処理である。マスク処理は、例えば、全天球画像フォーマット上のマスク処理領域に対応する全天球画像の画像領域に対して適用される。
画像出力部24は、主に、CPU111の処理によって実現され、画像処理部23によって処理された処理画像を出力する。
記憶・読出部29は、主に、CPU111の処理によって実現され、記憶部1000に、各種データ(または情報)を記憶したり、記憶部1000から各種データ(または情報)を読み出したりする。また、記憶部1000は、撮像処理部14によって取得された撮像画像データまたは画像処理部23によって処理された処理画像データを記憶している。なお、記憶部1000に記憶されている画像データは、記憶されてから所定の時間経過した場合に削除される構成であってもよいし、他の装置または端末へ送信されたデータが削除される構成であってもよい。
○位置情報管理テーブル
図8は、実施形態に係る位置情報管理テーブルの一例を示す概念図である。位置情報管理テーブルは、検出された所定パターンの位置を示す位置情報を管理するためのテーブルである。記憶部1000には、図8に示されているような位置情報管理テーブルによって構成されている位置情報管理DB1001が構築されている。この位置情報管理テーブルには、過去に画像入力部15に入力された画像(フレーム)において検出された複数の所定パターンの位置が記憶されている。位置情報管理テーブルでは、追跡により同一のものとして認識される領域ごとに、複数の所定パターンの位置を示す座標が管理されている。
●実施形態の処理または動作
○基準フォーマットを用いたマスク処理
次に、図9乃至図17を用いて、実施形態に係る画像処理システムの処理または動作について説明する。まず、図9乃至図14を用いて、マスク処理領域を設定するための基準フォーマットを用いたマスク処理について説明する。図9は、実施形態に係る撮像装置における基準フォーマットを用いたマスク処理の一例を示すフローチャートである。なお、図9に示されている処理は、処理対象の画像が動画である場合の処理であり、先頭のフレームから最終フレームまで各フレームに対して、処理を繰り返す。
まず、撮像装置10の撮像処理部14は、所定の領域に対する撮像処理を開始する(ステップS11)。具体的には、撮影者がシャッターボタン等の入力手段を押下することで受付部12は、撮影開始要求を受け付ける。そして、撮像処理部14は、受付部12によって受け付けられた撮影開始要求に応答して、撮像処理を開始する。
次に、マスク種別決定部16は、ステップS11の撮像処理によって取得された撮像画像に適用するマスク種別を決定する(ステップS12)。マスク種別は、例えば、ぼかしもしくはモザイク処理等のマスク処理領域に適用する画像処理の種類、並びにマスク処理領域を識別するための既定の形状である。既定の形状は、マスク処理を適用する領域の形状を決定するためのものであり、例えば、直方体、三角錐等の三次元の立体形状である。この既定の形状は、LED装置30等のパターン発生手段の配置形状に対応する。マスク種別は、ステップS11における撮影開始に先立って、撮影者等から指示され、設定値としてレジスタ等に記憶されているものとする。マスク種別決定部16は、記憶された設定値を読み出して適用するマスク種別を決定する。
次に、画像入力部15は、撮像処理部14による撮像処理によって取得された撮像画像の現在のフレームの画像の入力を受けて、処理対象となる画像を取得する(ステップS13)。なお、撮影時やライブビュー時ではなく、保存済みの静止画または動画を対象としてマスク処理を行う場合、画像入力部15は、記憶部1000から読み出された画像の入力を受けて、処理対象となる画像を取得してもよい。
次に、検出部17は、画像入力部15によって取得された処理対象となるフレームの画像に示されている所定パターンを検出する(ステップS14)。上述したように、全天球画像を撮影しようとする撮影者または撮影される被写体の管理者は、隠したい被写体の周辺に、所定パターンを発生させるパターン発生手段を事前に配置する。検出部17は、被写体の周辺が撮影された画像中の所定パターンを検出する。そして、算出部18は、検出部17によって検出された所定パターンの位置を算出する(ステップS15)。パターン発生手段が図2に示されているようなLED装置30の場合、算出部18は、各LED装置30の発光部位に対応する輝点35の中心位置の座標値を、所定パターンの位置として算出する。
次に、撮像装置10は、算出部18によって算出された所定パターンの位置に基づいて、マスク処理領域の設定処理を実行する(ステップS16)。ここで、図10乃至図12を用いて、ステップS16の処理の詳細を説明する。
まず、図10を用いて、マスク種別決定部16によって決定される既定の形状を示す基準フォーマットについて説明する。図10は、実施形態に係る基準フォーマットの一例を示す概略図である。マスク処理領域を識別するために配置されたパターン発生手段により発生される所定パターンは、撮像装置10による撮影位置や撮影方向によって、撮像画像での映り方が異なる。そこで、撮像装置10は、図10に示されているように、既定の形状を示す基準フォーマットとして、同一の形状を異なる角度から捉えた複数のフォーマット(フォーマットA~フォーマットD)を予め記憶しておく。図10は、既定の形状として直方体形状が選択された場合の基準フォーマットの例である。撮像装置10は、マスク種別決定部16によって決定された既定の形状に対応する基準フォーマットを用いて、後述のマスク処理領域の設定処理を実行する。なお、既定の形状を示す基準フォーマットの数および内容は、図10に示す例に限られない。基準フォーマットは、既定の形状ごとに異なるフォーマットを有している。
図11は、実施形態に係る撮像装置におけるマスク処理領域の設定処理の一例を示すフローチャートである。図11は、マスク種別として決定された既定の形状が直方体である場合の例を示す。判断部19は、検出部17によって検出された所定パターンの数および算出部18によって算出された所定パターンの位置に応じて、予め記憶された基準フォーマットの種類を示す特定の形状を決定する。
まず、判断部19は、7点の所定パターンが検出されたと判断する場合(ステップS161のYES)、処理をステップS162へ移行させる。そして、判断部19は、マスク種別決定部16によって決定された既定の形状に対応する基準フォーマットのうち、図10に示すフォーマットD(斜め7点)を特定の形状として決定する(ステップS162)。一方で、判断部19は、検出された所定パターンが7点でないと判断する場合(ステップS161のNO)、処理をステップS163へ移行させる。
次に、判断部19は、6点の所定パターンが検出されたと判断する場合(ステップS163のYES)、処理をステップS164へ移行させる。そして、判断部19は、マスク種別決定部16によって決定された既定の形状に対応する基準フォーマットのうち、図10に示すフォーマットB(横斜め6点)が該当すると判断する場合(ステップS164のYES)、フォーマットB(横斜め6点)を特定の形状として決定し、処理をステップS175へ移行させる。一方で、判断部19は、フォーマットB(横斜め6点)が該当しないと判断する場合(ステップS164のNO)、処理をステップS165へ移行させる。
ステップS165において、判断部19は、マスク種別決定部16によって決定された既定の形状に対応する基準フォーマットのうち、図10に示すフォーマットC(縦斜め6点)が該当すると判断する場合(ステップS165のYES)、フォーマットC(縦斜め6点)を特定の形状として決定し、処理をステップS175へ移行させる。一方で、判断部19は、フォーマットC(縦斜め6点)が該当しないと判断する場合(ステップS165のNO)、処理をステップS166へ移行させる。
ステップS166において、判断部19は、判断部19は、マスク種別決定部16によって決定された既定の形状に対応する基準フォーマットのうち、図10に示すフォーマットD(斜め7点)を特定の形状として決定する。そして、ステップS167において、推定部21は、決定された特定の形状であるフォーマットD(斜め7点)を形成するために補完する頂点を推定する(ステップS174)。
図12は、実施形態に係る特定の形状を補完する頂点の推定処理について説明するための概略図である。ステップS174において、所定パターンは、図12に示されているように、フォーマットDの七つの頂点のうち、一つが隠れた状態である。ここでは、頂点Cが障害物によって隠された状態を考える。また、全天球画像は正距円筒図法で表現され、撮像装置10が直立の姿勢で撮影されたとする。
この場合、三次元空間で水平方向に位置する点Aと点Bは、正距円筒図法で表現される全天球画像において横方向に位置する。また、三次元空間で垂直方向に位置する点Bと点Dは、正距円筒図法で表現される全天球画像において縦方向に位置する。このとき、全天球画像において横方向の二辺(ACおよびEF)と、縦方向の二辺(BDとFH)が検出される。
隠された点Cは、点Aの縦方向の位置にあるので、辺ACの長さと点Aと点Cの上下関係がわかれば点Cの位置を求めることができる。ここで上面ABFEと下面CDHGは、それぞれの面を構成する頂点が同程度の高さにある場合、点Aと他の点の高さによって点Aと点Cの上下関係がわかる。全天球画像において、頂点位置の奥行きを算出できるので、辺ACの長さも算出することができる。このように、推定部21は、判断部19によってフォーマットDの形状と検出された所定パターンの位置関係に基づいて、補完すべき頂点である点Cの位置を推定することができる。
なお、図12に示した特定の形状を補完する頂点の推定方法は、上記のような直方体形状に対する方法に限られず、他の形状に対応する基準フォーマットを用いる方法であってもよい。また、特定の形状を補完する頂点の推定方法には、図12に示されている例のほか、既存の幾何学的な算出方法を適用することができる。
図11に戻り、ステップS163において、判断部19は、検出された所定パターンが6点でないと判断する場合(ステップS163のNO)、処理をステップS167へ移行させる。次に、判断部19は、5点の所定パターンが検出されたと判断する場合(ステップS167のYES)、処理をステップS168へ移行させる。判断部19は、マスク種別決定部16によって決定された既定の形状に対応する基準フォーマットのうち、図10に示すフォーマットB(横斜め6点)が該当すると判断する場合(ステップS168のYES)、フォーマットB(横斜め6点)を特定の形状として決定し、処理をステップS174へ移行させる。そして、推定部21は、決定された特定の形状であるフォーマットB(横斜め6点)を形成するために補完する頂点を推定する(ステップS174)。ここでの推定部21による処理は、図12で説明した内容と同等の処理が行われ、フォーマットB(横斜め6点)を形成するために不足する頂点の位置を推定する。
一方で、判断部19は、フォーマットB(横斜め6点)が該当しないと判断する場合(ステップS168のNO)、処理をステップS169へ移行させる。ステップS169において、判断部19は、判断部19は、マスク種別決定部16によって決定された既定の形状に対応する基準フォーマットのうち、図10に示すフォーマットC(縦斜め6点)を特定の形状として決定する。そして、推定部21は、決定された特定の形状であるフォーマットC(縦斜め6点)を形成するために補完する頂点を推定する(ステップS174)。ここでの推定部21による処理は、図12で説明した内容と同等の処理が行われ、フォーマットC(縦斜め6点)を形成するために不足する頂点の位置を推定する。
ステップS167において、判断部19は、検出された所定パターンが5点でないと判断する場合(ステップS167のNO)、処理をステップS170へ移行させる。次に、判断部19は、4点の所定パターンが検出されたと判断する場合(ステップS170のYES)、処理をステップS171へ移行させる。判断部19は、マスク種別決定部16によって決定された既定の形状に対応する基準フォーマットのうち、図10に示すフォーマットA(正面4点)を特定の形状として決定する。一方で、ステップS170において、判断部19は、検出された所定パターンが4点でないと判断する場合(ステップS170のNO)、処理をステップS172へ移行させる。ステップS172において、判断部19は、3点の所定パターンが検出されたと判断する場合(ステップS172のYES)、処理をステップS173へ移行させる。ステップS173において、判断部19は、マスク種別決定部16によって決定された既定の形状に対応する基準フォーマットのうち、図10に示すフォーマットA(正面4点)を特定の形状として決定する。そして、推定部21は、決定された特定の形状であるフォーマットA(正面4点)を形成するために補完する頂点を推定する(ステップS174)。ここでの推定部21による処理は、図12で説明した内容と同等の処理が行われ、フォーマットA(正面4点)を形成するために不足する頂点の位置を推定する。
一方で、ステップS172において、判断部19は、検出された所定パターンが3点でないと判断する場合(ステップS172のNO)、検出された所定パターンを用いて設定可能な領域が存在しないため、処理を終了する。
そして、領域設定部22は、検出された所定パターンの位置およびステップS174で推定された頂点によって形成される特定の形状を、マスク処理領域として設定する(ステップS175)。このように、撮像装置10は、所定パターンの数と位置関係から所定パターンの映り方の異なる基準フォーマットに対応する特定の形状を決定し、決定した特定の形状を補完する頂点を推定することで、例えば、障害物等により所定パターンが隠れた箇所がある場合においても、所望のマスク処理領域を精度良く設定することができる。
図9に戻り、画像処理部23は、画像入力部15によって取得された撮像画像に対するマスク処理を実行する(ステップS17)。画像処理部23は、ステップS16で設定されたマスク処理領域に対して、ステップS12で決定されたマスク種別のマスク処理を行う。具体的には、画像処理部23は、領域設定部22によって設定されたマスク処理領域の形状の面に対して、マスク処理を行う。画像処理部23は、例えば、フォーマットA(正面4点)の形状の場合には、4点を結ぶ一面に対してマスク処理を行い、フォーマットB(横斜め6点)の場合には、左面と右面の二面に対してマスク処理を行う。同様に、画像処理部23は、フォーマットC(縦斜め6点)の場合には、上面と下面の二面に対してマスク処理を行い、フォーマットD(斜め7点)の場合には、左面と右面と上面の三面に対してマスク処理を行う。
そして、画像出力部24は、画像処理部23で処理された処理画像を出力する(ステップS18)。具体的には、画像出力部24は、例えば、表示制御部13に対して処理画像を出力し、表示制御部13によって処理画像をディスプレイに表示させる。また、画像出力部24は、例えば、記憶・読出部29に対して処理画像を出力し、記憶・読出部29によって処理画像を記憶させる。さらに、画像出力部24は、通信部11に対して処理画像を出力し、通信部11によって外部装置に対して処理画像を送信する。なお、画像出力部24による処理画像の出力は、上記のいずれかの処理が行われればよい。撮像装置10は、例えば、動画撮影時には、記憶・読出部29を出力先として処理画像を記憶させ、動画撮影中に画像確認を行う場合は、表示制御部13を出力先として処理画像を表示させるような構成であってもよい。
ここで、図13および図14を用いて、撮像装置10によって取得された撮像画像および処理画像について説明する。図13(A)は、実施形態に係る撮像装置によって撮像された撮像画像の一例を示す図である。図13(A)に示されている撮像画像200は、処理対象の対象物Jの周辺に、パターン発生手段としての複数のLED装置30およびそれぞれのLED装置30から発生する所定パターンとしての輝点35が含まれている。また、撮像画像200は、所定パターンの一部(例えば、輝点35C)が障害物Xによって隠れている状態である。
図13(B)は、実施形態に係る撮像装置によってマスク処理された処理画像の一例を示す図である。図13(B)に示されている処理画像300は、上述のマスク処理によって、マスク処理領域に対する画像処理が行われた状態である。図13(B)の例は、マスク処理領域の頂点の座標を結ぶ多角形の領域の内部に対して黒塗りのマスク処理が適用された場合を例示する。処理画像300は、複数のLED装置30の発光部位に対応する輝点35の中心位置を結んで画定されるマスク処理領域の面が黒塗りされ、マスク処理領域の内部にある対象物Jの画像情報が除去されている。このように、撮像装置10は、入力された撮像画像中に存在する複数の所定パターンの位置を結んで画定される領域がマスク処理された処理画像を出力する。撮像装置10は、マスク処理領域に含まれる面に沿って、ぼかしやモザイク処理等のマスク処理を施すことで、撮影画像から隠したい対象を隠すことができる。
図14は、実施形態に係る撮像装置によってマスク処理された処理画像の別の例を示す図である。図14に示されている処理画像350は、マスク処理領域の頂点の座標を結ぶ多角形の領域の外部に対して黒塗りのマスク処理が行われた状態である。処理画像350のように、画像処理部23は、撮像画像200における、領域設定部22によって設定されたマスク処理領域の外部の領域に対してマスク処理を行う構成であってもよい。なお、図13(B)および図14に示されてるようなマスク処理の適用方法については、図9のステップS12におけるマスク種別を決定する際に選択される構成であってもよい。
そして、撮像装置10は、処理対象の画像が最終フレームである場合(ステップS19のYES)、処理を終了する。一方で、撮像装置10は、処理対象の画像が最終フレームでない場合(ステップS19のNO)、ステップS12からの処理を繰り返す。以上、動画撮影時の処理フローについて説明したが、撮像画像が静止画である場合には、ステップS109の処理を行わずに処理を終了してもよい。
このように、撮像装置10は、撮像画像に示されている所定パターンを検出し、検出された所定パターンの数および位置に基づいて決定された基準フォーマットに対応する特定の形状を決定する。そして、撮像装置10は、決定された特定の形状を補完する頂点を推定し、検出された所定パターンの位置および推定された頂点を用いて設定される処理対象の領域に対してマスク処理を行う。これにより、撮像装置10は、処理対象の領域を識別するための所定パターンの一部が撮像画像に映らなかった場合においても、予め記憶された基準フォーマットの形状から不足する頂点を推定することで、処理対象の領域の認識精度を向上させることができる。
ここで、上述の説明では、撮像画像に示されている一つのマスク処理領域に対するマスク処理が行われる例を示したが、撮像装置10は、複数の領域に対してマスク処理を行う構成であってもよい。この場合、検出部17は、例えば、LED装置30の輝点35の色の違いを識別子として検出することで、異なるパターンの所定パターンを検出する。そして、領域設定部22は、それぞれ所定の条件を満たす識別子を有するパターンを含んで構成されるグループ(領域)に対して、異なるマスク処理領域を設定する。ここで、所定の条件は、検出されたパターンが同一の識別子であること、または所定の数値範囲内の識別子であること等である。なお、パターンを識別するための識別子は、輝点35の色の違いに限られず、輝点35の点滅パターンの違いやQRコード40等の画像に埋め込まれた符号化情報であってもよい。これにより、実施形態に係る画像処理システムは、撮像装置10によって検出可能な所定パターンとして異なるパターンを設けることで、複数の処理対象の領域に対するマスク処理を行うことができる。
○位置情報を用いたマスク処理
続いて、図15乃至図17を用いて、記憶された所定パターンの位置情報を用いたマスク処理について説明する。図15は、実施形態に係る画像処理システムにおけるマスク処理の一例を説明するための概略図である。図15(A)に示されているように、処理対象の領域を識別するための所定パターン(例えば、LED装置30によって発生される輝点35)が、人の移動等によって一時的に隠れた状態を示す。この場合、撮像装置10は、過去の撮影時に取得して記憶された所定パターンの位置を示す位置情報を用いて、隠れた所定パターンの位置を推定する。そして、撮像装置10は、上述の例と同様に、推定された所定パターンの位置を用いて処理対象の領域を設定し、図15(B)に示されているように、処理対象の領域に対するマスク処理を施す。
これにより、撮像装置10は、動画撮影時のような連続的な処理が行われる場合において、所定パターンの位置情報を記憶しておくことで、一時的に所定パターンが隠れた場合であっても、記憶された位置情報の少なくとも一部を用いて補完する頂点を推定することで、処理対象の領域をより安定的に決定することができる。
図16は、実施形態に係る撮像装置における位置情報を用いたマスク処理の一例を示すフローチャートである。なお、ステップS31~ステップS35の処理は、図9に示されているステップS11~ステップS15の処理と同様であるため、説明を省略する。
ステップS36において、撮像装置10は、所定パターンの位置を示す位置情報が位置情報管理DB1001(図8参照)に記憶されている場合(ステップS36のYES)、処理をステップS37へ移行させる。判断部19は、位置情報管理DB1001に記憶された位置情報と、検出部17によって検出された所定パターンの位置を比較する(ステップS37)。この場合、判断部19は、記憶された位置情報の数と検出された所定パターンの数を比較する。そして、推定部21は、ステップS37での比較結果に応じて、特定の形状を形成するために補完する頂点を推定する(ステップS38)。推定部21は、所定パターンの数が記憶された位置情報よりも少ない場合、記憶された位置情報のうち検出された所定パターンの位置から最も遠い点を、補完する頂点として推定する。これは、動画撮影時に、短い時間間隔で所定パターンの検出を繰り返すため、画像上の位置が直前の処理から大きく変わることがないためである。図17は、実施形態に係る所定パターンの検出位置の一例を示す概略図である。図17の例において、図8に示されている位置情報と比較すると、点Fが図17に示す検出位置から最も遠いため、推定部21は、点Fを補完する頂点として推定する。
そして、領域設定部22は、検出部17によって検出された所定パターンの位置と、ステップS38において推定された頂点とを用いて、マスク処理領域を設定する(ステップS39)。そして、画像処理部23は、設定されたマスク処理領域に対するマスク処理を行う(ステップS40)。さらに、画像出力部24は、マスク処理された処理画像を出力する(ステップS41)。マスク処理および処理画像の出力処理については、上述で説明した例と同様である。
次に、記憶・読出部29は、算出された所定パターンの位置を示す位置情報を位置情報管理DB1001に記憶する(ステップS41)。撮像装置10は、ステップS41で記憶された位置情報を、次フレームの処理に用いる。そして、撮像装置10は、処理対象の画像が最終フレームである場合(ステップS42のYES)、処理を終了する。一方で、撮像装置10は、処理対象の画像が最終フレームでない場合(ステップS42のNO)、ステップS32からの処理を繰り返す。
一方で、ステップS36において、撮像装置10は、所定パターンの位置を示す位置情報が位置情報管理DB1001に記憶されていない場合(ステップS36のNO)、処理をステップS39へ移行させる。この場合、撮像装置10は、位置情報が記憶されておらず、過去の処理における情報を利用できないため、検出部17によって検出された所定パターンの位置のみを用いて、ステップS39以降の処理を行う。なお、撮像装置10は、位置情報が記憶されていない場合、上述の基準フォーマットを用いたマスク処理領域の設定処理(例えば、図11の処理)を行う構成であってもよい。
このように、撮像装置10は、撮像装置10を移動させた場合や物体が動いて撮像装置10の視界を遮った場合等の所定パターンが一時的に視野内で認識できなくなる場合においても、一度検出した所定パターンの位置を記憶し、過去の情報を利用して撮影視野の方向の動きを推測して、検出できない所定パターンの位置を推定することで、一時的な所定パターンの消失に対応することができる。
●実施形態の効果
以上説明したように、実施形態に係る画像処理システムは、画像中の事前指定されたマスク処理領域を認識して画像に対しマスク処理を適用することで、処理対象の領域に対するマスク処理の精度を向上させることができる。
なお、上述の説明において、撮像装置10によって取得された全天球画像が画像入力部15に入力されるものとして説明したが、上記マスク処理は、撮影者が撮影方向を調整することで望ましくないものを撮影範囲から容易に除外できる通常のカメラとは異なる、撮像装置10等によって取得された広角画像(全天球画像、半球画像、パノラマ画像)に対して、特に好適に適用することができる。特に、撮像装置10による撮影では、広範囲が撮影範囲となり、保護したい被写体を撮影範囲から除外することが容易ではなく、また、保護した被写体も、広範囲に分散し得るためである。全天球画像に対して上述のマスク処理を適用することにより、撮影者は安心して、全天球画像の撮影を行うことができるようになる。しかしながら、上述したマスク処理自体は、通常の画角のカメラで撮影された画像に対しても同様に適用してもよい。
また、処理対象の観点からは、人の顔や身体のように、事前に保護すべき対象の特徴が明確である場合は、顔認識、身体認識または他の物体認識技術により認識できる。しかしながら、保護したい対象の特徴を事前に定義することが困難な場合がある。例えば、全天球画像を用いたツアーにより工場内の様子を案内するコンテンツの場合、工場内には多種多様な被写体が存在し得るところ、そのような被写体を事前に認識可能とすることは一般に難しい。そこで、本実施形態によるマスク処理は、保護したい対象の特徴を事前に定義することが難しい対象に対して特に好適に適用することができる。
さらに、監視カメラのように設置位置が固定されている定点カメラ(カメラの向きが可変な場合も含む。)の場合、画像上の所定の座標範囲に対しマスクを指定することが容易であるところ、本実施形態によるマスク処理は、手持ちカメラや三脚で固定されるカメラのように設置位置が不定の撮像装置により撮像された画像に対して特に好適に適用することができる。
また、本実施形態によるマスク処理は、撮像装置10を用いてリアルタイム配信を行う際にも好適に適用することができる。特に配信している際は、撮像装置10を持って動く可能性があるところ、マスク処理を用いることで、立体的な領域を隠すことができるようになり、安心してリアルタイム配信を行うことができるようになる。
●実施形態の変形例●
次に、実施形態の変形例に係る画像処理システムについて説明する。なお、上記実施形態と同一構成および同一機能は、同一の符号を付して、その説明を省略する。実施形態の変形例に係る画像処理システムは、撮像装置10aによって取得された撮像画像に対するマスク処理を、撮像装置10aに接続されたPC50によって実行するシステムである。
●システム構成
図18は、実施形態の変形例に係る画像処理システムの概略の一例を説明するための図である。図18に示されているように、実施形態の変形例に係る画像処理システムは、撮像装置10aに接続されたPC50を含んで構成される。
PC50は、撮像画像に対する画像処理を行う利用者が使用する画像処理装置である。PC50には、全天球画像等の処理対象の画像を編集するための編集用アプリケーションプログラム、または撮像装置10aを制御するための制御用アプリケーションプログラムがインストールされている。また、PC50は、USB、HDMI(High-Definition Multimedia Interface)等のケーブルを介して撮像装置10に接続される。
撮像装置10aとPC50は、上記ケーブルを用いずに、Bluetooth、NFCまたはWi-Fi等の近距離無線通信技術を利用して無線通信してもよい。また、撮像装置10aとPC50は、インターネット、移動体通信網、LAN(Local Area Network)等の通信ネットワークを介して通信され、PC50は、撮像装置10aと別拠点に位置する構成であってもよい。この場合、通信ネットワークには、有線通信だけでなく、4G(4th Generation)、5G(5th Generation)、LTE(Long Term Evolution)、Wi-FiまたはWiMAX(Worldwide Interoperability for Microwave Access)等の無線通信によって構築される箇所が含まれいてもよい。また、通信ネットワークには、ブロックチェーンによって構築されたネットワークが含まれていてもよい。
なお、PC50は、スマートフォンまたはタブレット端末等であってもよい。また、PC50は、単一のコンピュータによって構築されてもよいし、各部(機能、手段または記憶部)を分割して任意に割り当てられた複数のコンピュータによって構築されていてもよい。
●ハードウエア構成
図19は、実施形態の変形例に係るPCのハードウエア構成の一例を示す図である。PC50は、コンピュータによって構築されており、図19に示されているように、CPU501、ROM502、RAM(Random Access Memory)503、HD(Hard Disk)504、HDD(Hard Disk Drive)コントローラ505、ディスプレイ506、外部機器接続I/F508、ネットワークI/F509、バスライン510、キーボード511、ポインティングデバイス512、DVD-RW(Digital Versatile Disk Rewritable)ドライブ514、およびメディアI/F516を備えている。
これらのうち、CPU501は、PC50全体の動作を制御する。ROM502は、IPL等のCPU501の駆動に用いられるプログラムを記憶する。RAM503は、CPU501のワークエリアとして使用される。HD504は、プログラム等の各種データを記憶する。HDDコントローラ505は、CPU501の制御にしたがってHD504に対する各種データの読み出しまたは書き込みを制御する。ディスプレイ506は、カーソル、メニュー、ウィンドウ、文字、または画像等の各種情報を表示する。ディスプレイ506は、表示部の一例である。外部機器接続I/F508は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、撮像装置10等である。ネットワークI/F509は、通信ネットワークを利用してデータ通信をするためのインターフェースである。バスライン510は、図19に示されているCPU501等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
また、キーボード511は、文字、数値、各種指示等の入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス512は、各種指示の選択や実行、処理対象の選択、カーソルの移動等を行う入力手段の一種である。DVD-RWドライブ514は、着脱可能な記録媒体の一例としてのDVD-RW513に対する各種データの読み出しまたは書き込みを制御する。なお、DVD-RWに限らず、DVD-RやBlu-ray Disc等であってもよい。メディアI/F516は、フラッシュメモリ等の記録メディア515に対するデータの読み出しまたは書き込み(記憶)を制御する。
なお、上記各プログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。記録媒体の例として、CD-R、DVD、Blu-ray Disc、SDカード、USBメモリ等が挙げられる。また、記録媒体は、プログラム製品として、国内または国外へ提供されることができる。例えば、PC50は、本発明に係るプログラムが実行されることで本発明に係る画像処理方法を実現する。
●機能構成
図20は、実施形態の変形例に係る画像処理システムの機能構成の一例を示す図である。撮像装置10aは、通信部11、受付部12、表示制御部13、撮像処理部14および記憶・読出部29を有している。これら各部は、図7に示されている撮像装置10の各部と同様の機能を有する。
PC50は、通信部51、受付部52、表示制御部53、マスク種別決定部54、検出部55、算出部56、判断部57、推定部58、領域設定部59、画像処理部61および記憶・読出部69を有している。これら各部は、図19に示されている各構成要素のいずれかが、RAM503上に展開されたPC用プログラムに従ったCPU501からの命令によって動作することで実現される機能、または機能する手段である。また、PC50は、図19に示されているROM502、HD504または記録メディア515によって構築される記憶部5000を有している。記憶部5000には、図8に示されているような位置情報管理テーブルによって構成されている位置情報管理DB5001が構築されている。
通信部51は、主に、主に、CPU501の処理によって実現され、撮像装置10aと各種データまたは情報の通信を行う。通信部51は、例えば、ネットワークI/F509を用いて、撮像装置10aとの間で、通信ネットワークを介したデータ通信を行う。また、通信部51は、例えば、外部機器接続I/F508を用いて、撮像装置10aとの間で、各種ケーブル等を介したデータ通信を行う。
受付部52は、主に、キーボード511またはポインティングデバイス512に対するCPU501の処理によって実現され、利用者から各種の選択または入力を受け付ける。表示制御部53は、主に、CPU501の処理によって実現され、ディスプレイ506に、各種画像を表示させる。受付部52および表示制御部53は、それぞれ図7に示されている撮像装置10の受付部12および表示制御部13と同様の機能を有する。
マスク種別決定部54、検出部55、算出部56、判断部57、推定部58、領域設定部59および画像処理部61は、それぞれCPU501の処理によって実現され、図7に示されている撮像装置10のマスク種別決定部16、検出部17、算出部18、判断部19、推定部21、領域設定部22、画像処理部23と同様の機能を有する。記憶・読出部69は、主に、CPU501の処理によって実現され、記憶部5000に、各種データ(または情報)を記憶したり、記憶部5000から各種データ(または情報)を読み出したりする。また、記憶部5000は、撮像装置10aから取得された撮像画像データまたは画像処理部61によって処理された処理画像データを記憶している。なお、記憶部5000に記憶されている画像データは、記憶されてから所定の時間経過した場合に削除される構成であってもよいし、他の装置または端末へ送信されたデータが削除される構成であってもよい。
●実施形態の変形例の処理または動作
次に、図21を用いて、実施形態の変形例に係る画像処理システムの処理または動作について説明する。図21は、実施形態の変形例に係る画像処理システムにおける撮像装置に対するマスク処理の一例を示すシーケンス図である。
まず、撮像装置10aの撮像処理部14は、所定の領域に対する撮像処理を開始する(ステップS51)。具体的には、撮影者がシャッターボタン等の入力手段を押下することで受付部12は、撮影開始要求を受け付ける。そして、撮像処理部14は、受付部12によって受け付けられた撮影開始要求に応答して、撮像処理を開始する。次に、撮像装置10aの通信部11は、ステップS51の撮像処理で取得された撮像画像データを、PC50に対して送信する(ステップS52)。これにより、PC50の通信部51は、撮像装置10aから送信された撮像画像データを受信し、処理対象の画像の入力を受ける。
PC50は、通信部51によって入力された画像に対する画像処理を行う(ステップS53)。ステップS53における画像処理は、図9または図16に示されている処理と同様のマスク処理である。特に、PC50の表示制御部53は、ステップS53における画像処理中に、入力された撮影画像をディスプレイ506に表示させることで、PC50の利用者に撮影画像の状態を確認させてもよい。また、PC50の受付部52は、ディスプレイ506に表示された撮影画像または処理画像に対する処理内容の選択が受け付けられてもよい。この場合、受付部52は、例えば、図9および図15に示されているマスク種別の決定処理において、利用者によるマスク種別の選択を受け付けてもよいし、マスク処理が施された処理画像に対するマスク種別の修正の選択が受け付けられてもよい。
このように、実施形態の変形例に係る画像処理システムは、PC50を用いて撮像装置10aにより取得された画像に対する画像処理を行うことで、撮影画像をリアルタイムで確認することができるとともに、撮影画像または処理画像を確認しながらマスク処理の修正等を行うことができる。
●まとめ●
以上説明したように、本発明の一実施形態に係る画像処理装置(例えば、撮像装置10またはPC50)は、撮像画像の入力を受け、入力された撮像画像に示される所定パターン(例えば、輝点35またはQRコード40)の位置を算出する。そして、画像処理装置は、算出された複数の所定パターンの位置に基づいて形成される特定の形状を補完する頂点を推定し、算出された複数の所定パターンの位置、および推定された頂点に基づいて、処理対象の領域(例えば、マスク処理領域)を設定し、設定された領域に対して画像処理(例えば、マスク処理)を行う。これにより、実施形態に係る画像処理装置は、撮像画像に対する画像処理の対象となる領域の認識精度を向上させることができるとともに、処理対象の領域に対するマスク処理の精度を向上させることができる。
また、本発明の一実施形態に係る画像処理装置(例えば、撮像装置10またはPC50)は、算出された複数の所定パターン(例えば、輝点35またはQRコード40)の位置に基づいて特定の形状を決定し、決定された特定の形状を形成するために不足する頂点を推定する。これにより、実施形態に係る画像処理装置は、処理対象の領域を識別するための所定パターンの一部が撮像画像に映らなかった場合においても、算出された所定パターンの位置から決定される特定の形状に不足する頂点を推定することで、処理対象の領域の認識精度を向上させることができる。
さらに、本発明の一実施形態に係る画像処理装置(例えば、撮像装置10またはPC50)は、入力された撮像画像における所定パターン(例えば、輝点35またはQRコード40)の位置を示す位置情報を記憶し、算出された複数の所定パターンの位置と、記憶された位置情報の少なくとも一部とに基づいて、処理対象の領域(例えば、マスク処理領域)を設定する。これにより、実施形態に係る画像処理装置は、撮像装置10を移動させた場合や物体が動いて撮像装置10の視界を遮った場合等の所定パターンが一時的に視野内で認識できなくなる場合においても、一度検出した所定パターンの位置を記憶し、過去の情報を利用して撮影視野の方向の動きを推測して、検出できない所定パターンの位置を推定することで、一時的な所定パターンの消失に対応することができる。
また、本発明の一実施形態に係る画像処理装置(例えば、撮像装置10またはPC50)は、算出された複数の所定パターン(例えば、輝点35またはQRコード40)の位置および推定された頂点によって形成される少なくとも一つの面を含む処理対象の領域(例えば、マスク処理領域)を設定し、設定された領域に含まれる面に対して画像処理(例えば、マスク処理)を行う。これにより、実施形態に係る画像処理装置は、処理対象の領域に含まれる面に沿ってマスク処理を施すことで、隠したい立体的な領域に対するマスク処理を行うことができる。
さらに、本発明の一実施形態に係る画像処理装置(例えば、撮像装置10またはPC50)において、複数の所定パターン(例えば、輝点35またはQRコード40)は、異なるパターンを含む。そして、画像処理装置は、所定パターンとともに、パターンを識別する識別子を検出し、所定の条件を満たす識別子を有する複数のグループに対して、異なる領域を設定する。これにより、実施形態に係る画像処理装置は、所定パターンとして異なるパターンを検出することで、複数の処理対象の領域に対するマスク処理を行うことができる。
また、本発明の一実施形態に係る画像処理装置(例えば、PC50)は、入力された撮像画像をディスプレイ506(表示部の一例)に表示させ、処理対象の領域(例えば、マスク処理領域)に対する画像処理(例えば、マスク処理)の種別の選択を受け付ける。これにより、実施形態に係る画像処理装置は、撮影画像をリアルタイムで確認することができるとともに、撮影画像または処理画像を確認しながら処理の修正等を行うことができる。
さらに、本発明の一実施形態に係る画像処理システムは、画像処理装置(例えば、撮像装置10またはPC50)と、撮像手段の視野内に配置され、所定パターンを発生させる複数のパターン発生手段(例えば、LED装置30またはQRコード40等の画像が印刷もしくは表示された媒体)と、を備える。これにより、実施形態に係る画像処理システムは、撮影前に撮影対象から除外したい領域を、パターン発生手段の配置によって事前に指定することができる。
●補足●
上記で説明した実施形態の各機能は、一または複数の処理回路によって実現することが可能である。ここで、本実施形態における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウエアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)、SOC(System on a chip)、GPUおよび従来の回路モジュール等のデバイスを含むものとする。
また、上記で説明した実施形態の各種テーブルは、機械学習の学習効果によって生成されたものでもよく、関連づけられている各項目のデータを機械学習にて分類付けすることで、テーブルを使用しなくてもよい。ここで、機械学習とは、コンピュータに人のような学習能力を獲得させるための技術であり,コンピュータが,データ識別等の判断に必要なアルゴリズムを,事前に取り込まれる学習データから自律的に生成し,新たなデータについてこれを適用して予測を行う技術のことをいう。機械学習のための学習方法は、教師あり学習、教師なし学習、半教師学習、強化学習、深層学習のいずれかの方法でもよく、さらに、これらの学習方法を組み合わせた学習方法でもよく、機械学習のための学習方法は問わない。
これまで本発明の一実施形態に係る画像処理装置、画像処理システム、画像処理方法およびプログラムについて説明してきたが、本発明は上述した実施形態に限定されるものではなく、他の実施形態の追加、変更または削除等、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。