[実施例1に係る仮想旅行システム1の構成]
まず、図1を用いて、実施例1に係る仮想旅行システム1について説明する。図1は、実施例1に係る仮想旅行システム1の構成例を示す図である。図1に例示した仮想旅行システム1には、撮影装置100−1、100−2及び100−3と、仮想旅行装置200と、端末装置300とが含まれる。
撮影装置100−1、100−2及び100−3は、乗物内外や建築物内外に設置される。図1に示した例では、撮影装置100−1は、電車11に設置され、電車11から見える風景を撮影する。また、撮影装置100−2は、バス12に設置され、バス12から見える風景を撮影する。また、撮影装置100−3は、観光地13近傍の建築物(電柱や建物等)に設置され、観光地13を撮影する。
これらの撮影装置100−1、100−2及び100−3は、風景や観光地等を撮影することにより、撮影した風景や観光地等の画像データ(動画又は静止画)を生成し、生成した画像データを仮想旅行装置200に送信する。図1に示した例では、撮影装置100−1、100−2及び100−3は、画像データを生成するたびに、基地局20を介して、無線通信により画像データを仮想旅行装置200に送信する。これにより、仮想旅行装置200は、現時点において電車11やバス12から見える風景を撮影することで生成された画像データや、現時点における観光地13を撮影することで生成された画像データを略リアルタイムに受信することができる。
このような撮影装置100−1、100−2及び100−3については、図3を用いて後述する。なお、撮影装置100−1、100−2及び100−3は同様の構成を有するので、以下では、撮影装置100−1、100−2及び100−3を区別する必要がない場合には、これらを総称して「撮影装置100」と表記する場合がある。
仮想旅行装置200は、撮影装置100によって生成された画像データを収集し、収集した画像データを利用者に提供する。具体的には、仮想旅行装置200は、端末装置300から仮想旅行を行う旨の要求(以下、「仮想旅行要求」と表記する場合がある)を受信した場合に、かかる仮想旅行要求に対応する画像データをストリーミング(streaming)方式等により公衆ネットワーク網30を介して端末装置300に配信することで、端末装置300の利用者に仮想旅行を体験させる。このとき、仮想旅行装置200は、撮影装置100から順次送信される画像データを端末装置300に配信する。これにより、仮想旅行装置200は、現時点において電車11やバス12から見える風景に対応する画像データや、現時点における観光地13に対応する画像データを略リアルタイムに端末装置300に配信することができる。
ここで、実施例1に係る仮想旅行装置200は、撮影装置100から収集した画像データのうち、動きのある人や動物等の対象物を抽出し、抽出した対象物に対してプライバシー保護の処理を施す。例えば、仮想旅行装置200は、画像データ内に映し出されている対象物の領域に、かかる対象物以外の他の画像データ(所定の図形やアニメーション画像等)を配置する。そして、仮想旅行装置200は、このようにして対象物に対してプライバシーの保護処理を施した画像データを端末装置300に配信する。なお、実施例1に係る仮想旅行装置200については、図4等を用いて後述する。
端末装置300は、実施例1に係る仮想旅行システム1の利用者によって利用される情報処理装置である。かかる端末装置300は、仮想旅行装置200から配信される画像データを表示する表示部(ディプレイ等)や、仮想旅行の行き先を利用者から受け付ける入力部(リモートコントローラー、マウス、キーボード等)を有する。
この端末装置300は、仮想旅行の種類を選択するための選択画面を表示部に表示することで、仮想旅行の種類を利用者に入力させる。ここでいう「仮想旅行の種類」とは、仮想旅行の行き先や、仮想旅行に用いられる乗物(交通手段)等によって分けられる仮想旅行のタイプを示す。そして、端末装置300は、利用者によって入力された仮想旅行の種類を仮想旅行装置200に送信することで、かかる種類に対応する画像データを仮想旅行装置200から受信する。このとき、端末装置300は、現時点において電車11やバス12から見える風景に対応する画像データや、現時点における観光地13に対応する画像データを略リアルタイムに受信する。さらに、端末装置300は、対象物に対してプライバシー保護の処理が施された画像データを受信する。これにより、端末装置300は、現時点における旅行先の風景等に対応する画像データであって、かつ、対象物のプライバシーが保護された画像データを表示することができる。この結果、端末装置300は、旅行先の不特定多数の対象物のプライバシーを保護した上で、リアルタイム性を有する仮想旅行を利用者に提供することができる。
以下に、図1に示した各装置による処理について詳細に説明する。以下では、最初に撮影装置100及び仮想旅行装置200による輪郭抽出処理の概要を説明し、次に撮影装置100、仮想旅行装置200、端末装置300の構成について詳細に説明する。
[輪郭抽出処理の概要]
上述した仮想旅行装置200は、撮影装置100と協働することにより、撮影装置100によって生成された画像データから動きのある対象物の輪郭を抽出する処理を行う。図2を用いて、仮想旅行装置200による輪郭抽出処理の概要について説明する。図2は、実施例1に係る仮想旅行装置200の概要を説明するための図である。
図2に例示するように、実施例1に係る仮想旅行システム1では、撮影装置100において符号化処理が実行され、仮想旅行装置200において復号化処理及び輪郭抽出処理が実行される。
まず、実施例1に係る撮影装置100において実行される符号化処理の概要を説明する。撮影装置100は、風景や観光地を撮影することにより対象物が描出された画像データを生成し、生成した画像データをマクロブロック毎に符号化するにあたり動きベクトルを検出する。続いて、撮影装置100は、検出した動きベクトルを用いて各種符号化モード(Intraモード、フレーム予測モード、フィールド予測モード)による符号化を行い、それぞれの符号化量(符号化データの発生量)に基づいて予測モードを選択する。そして、撮影装置100は、選択した予測モードに従って画像データを符号化する。
ここで、実施例1に係る撮影装置100は、予測モードを選択するための閾値を予め設定されることで記憶している。そして、撮影装置100は、符号化量を予測モード間で比較する際にこの閾値を用い、比較の結果に基づいて予測モードを選択する。具体的には、撮影装置100は、符号化量を予測モード間で比較した結果、フィールド予測モードによる符号化量が、フレーム予測モードによる符号化量に比較して閾値以上小さいと判定されたことを条件として、フィールド予測モードを選択する。
なお、予測モードについて簡単に説明しておくと、例えば、MPEG(Moving Picture Experts Group)で標準化されたMPEG−2、MPEG−4 AVC/H.264などにおいては、符号化方式として、フレーム間予測方式を採用している。フレーム間予測方式は、入力フレームと前後のフレームとは相関度が高いという動画像の性質を利用して、前後のフレームから入力フレームを予測した予測フレームを生成し、生成した予測フレームと入力フレームとの差分を符号化する方式である。具体的には、符号化装置は、フレームを構成する予測単位毎に差分を算出して動きベクトルを検出し、検出した動きベクトル、及び、予測フレームと入力フレームとの差分である差分画像データを符号化して符号化データを生成し、生成した符号化データを復号化装置に送信する。
ここで、MPEG−2、MPEG−4 AVC/H.264等においては、動画像がインタレース形式の場合に、マクロブロックの符号化に用いる予測モードとして、フレーム予測モード及びフィールド予測モードの動的選択を規定している。フレーム予測モードは、マクロブロック(横16×縦16画素)毎に1つの動きベクトルを割り当てるモードである。一方、フィールド予測モードは、マクロブロックのトップフィールド成分(横16×縦8画素)及びボトムフィールド成分(横16×縦8画素)それぞれに動きベクトルを割り当てるモードである。なお、フレーム予測モード及びフィールド予測モードは動的に選択されるので、ピクチャ構造は、フレーム構造となる。なお、標準において動的選択を規定しているものの、一般的にはフレーム予測モードが固定的に選択されることが多いが、その理由は、通常、フレーム予測モードの方が、符号化処理の計算量が少なく、より高い圧縮率が得られる傾向にあるからと考えられる。
さて、図2に戻り、実施例1に係る仮想旅行装置200において実行される輪郭抽出処理の概要を説明する。仮想旅行装置200は、撮影装置100から符号化データを受信し、受信した符号化データに含まれるヘッダ情報からピクチャ構造情報及び予測モード情報を読み出す。そして、仮想旅行装置200は、読み出したピクチャ構造情報及び予測モード情報に基づいて、対象物の輪郭に相当する領域を特定する。なお、ピクチャ構造情報とは、ピクチャの構造を示す情報であり、予測モード情報とは、マクロブロックの符号化に用いられた予測モードを示す情報である。例えば、ピクチャ構造情報は、ヘッダ情報のピクチャ層に格納されており、予測モード情報は、マクロブロック層に格納されている。
ここで、実施例1に係る仮想旅行装置200は、ピクチャ構造情報及び予測モード情報をマクロブロック毎に判定し、図2に例示するように、ピクチャ構造情報がフレーム構造を示し、かつ、予測モード情報がフィールド予測モードを示す場合に、対応するマクロブロックの画像上の位置を、対象物の輪郭(対象物と背景との境界部分等)に相当する領域として特定する。
このようなことから、実施例1に係る仮想旅行装置200によれば、対象物の輪郭に相当する領域を特定することが可能になり、動きのある対象物を適切に抽出することが可能になる。
[実施例1に係る撮影装置100の構成]
次に、図3を用いて、実施例1に係る撮影装置100の構成について説明する。図3は、実施例1に係る撮影装置100の構成を示すブロック図である。図3に例示するように、実施例1に係る撮影装置100は、撮影部101と、符号化装置102とを有する。
撮影部101は、撮影処理を行うことで画像データを生成し、生成した画像データ(フレーム)を符号化装置102に入力する。符号化装置102は、撮影部101から入力されたフレームを符号化することで符号化データを生成する。
ここで、実施例1にかかる符号化装置102は、特に、符号化モード判定部110と、符号化部120と、可変長復号−逆スキャン部130と、逆量子化−逆DCT(Discrete Cosine Transform)部140と、フレームメモリ150と、動きベクトル検出部160と、動き補償部170と、減算器180とを備える。かかる符号化装置102は、公知の符号化装置と同様の機能を有する。この点について簡単に説明すると、まず、符号化装置102は、対象物が描出された画像データの入力を受け付けると、この入力フレームをマクロブロック毎に分割し、動きベクトル検出部160に入力する。動きベクトル検出部160は、フレームメモリ150に格納されている参照フレームと入力フレームとの差分をマクロブロック毎に算出して動きベクトルを検出し、検出した動きベクトルを動き補償部170に送る。
動き補償部170は、動きベクトル検出部160から送られた動きベクトルとフレームメモリ150に格納されている参照フレームとを用いて予測フレームを生成し、生成した予測フレームを減算器180に送る。減算器180は、入力フレームと予測フレームとを減算し、減算結果である差分画像データを符号化モード判定部110に送る。
符号化モード判定部110は、入力フレーム及び差分画像データそれぞれの入力を受け付け、符号化モードとして、入力フレームを符号化するIntraモードを選択するか、あるいは、差分画像データを符号化するInterモードを選択するかを判定する。そして、符号化モード判定部110は、判定結果を、符号化に必要なデータ(入力フレーム、あるいは、差分画像データ及び動きベクトル等)とともに、符号化部120に送る。
符号化部120は、符号化モード判定部110から受け付けた判定結果に従って、符号化モード判定部110から受け付けたデータを符号化し、符号化データ(ストリームとも称する)を生成する。そして、符号化部120は、生成した符号化データを復号化処理を行う仮想旅行装置200に向けて出力するとともに、可変長復号−逆スキャン部130に出力する。すると、可変長復号−逆スキャン部130及び逆量子化−逆DCT部140は、符号化データを復号化し、復号化した画像データを参照フレームとしてフレームメモリ150に格納する。なお、上記各部による処理は、いずれもマクロブロック毎に行われる。
さて、ここで、実施例1に係る符号化装置102は、上述した公知の符号化装置が有する機能に加え、予測モードを選択するための閾値を予め設定されることで記憶し、符号化量を予測モード間で比較する際にこの閾値を用い、比較の結果に基づいて予測モードを選択する機能を有する。
この点について説明する。まず、実施例1に係る符号化装置102は、マクロブロックの符号化に用いる予測モードとして、フレーム予測モード及びフィールド予測モードを動的に選択する。このため、実施例1に係る動きベクトル検出部160は、フレーム予測モード用の動きベクトル検出処理と、フィールド予測モード用の動きベクトル検出処理との双方を行う。すなわち、動きベクトル検出部160は、フレームメモリ150に格納された参照フレームを参照し、マクロブロック(横16×縦16画素)毎に1つの動きベクトルを割り当てる処理と、フレームメモリ150に格納された参照フレームのトップフィールド及びボトムフィールドそれぞれを参照し、マクロブロックのトップフィールド成分(横16×縦8画素)及びボトムフィールド成分(横16×縦8画素)それぞれに動きベクトルを割り当てる処理との双方を行う。そして、動きベクトル検出部160は、フレーム予測モード用の動きベクトル及びフィールド予測モード用の動きベクトルの双方を、動き補償部170に対して出力する。
ここで、実施例1に係る動き補償部170は、図3に例示するように、Intra符号化部170aと、フレーム予測モード符号化部170bと、フィールド予測モード符号化部170cとを有する。Intra符号化部170a、フレーム予測モード符号化部170b、及びフィールド予測モード符号化部170cは、並行して処理を行う。
まず、Intra符号化部170aは、Intraモードによる符号化を行う。具体的には、Intra符号化部170aは、マクロブロック毎に分割された入力フレームを符号化し、その符号化量を符号化モード判定部110に対して出力する。なお、実施例1において、Intra符号化部170aは、横16×縦16画素のマクロブロック毎に入力フレームを符号化する。
また、フレーム予測モード符号化部170bは、フレーム予測モードによる符号化を行う。具体的には、フレーム予測モード符号化部170bは、動きベクトル検出部160から受け付けたフレーム予測モード用の動きベクトルと、フレームメモリ150に格納された参照フレームとを用いて、予測フレームを生成し、生成した予測フレームを減算器180に対して出力する。また、フレーム予測モード符号化部170bは、入力フレームと予測フレームとを減算し、減算結果である差分画像データを符号化し、その符号化量と、フレーム予測モード用の動きベクトルとを、符号化モード判定部110に対して出力する。
また、フィールド予測モード符号化部170cは、フィールド予測モードによる符号化を行う。具体的には、フィールド予測モード符号化部170cは、動きベクトル検出部160から受け付けたフィールド予測モード用の動きベクトルと、フレームメモリ150に格納された参照フレームとを用いて、予測フレームを生成し、生成した予測フレームを減算器180に対して出力する。また、フィールド予測モード符号化部170cは、入力フレームと予測フレームとを減算し、減算結果である差分画像データを符号化し、その符号化量と、フィールド予測モード用の動きベクトルとを、符号化モード判定部110に対して出力する。
一方、符号化モード判定部110は、予測モードを選択するための閾値を予め設定されることで記憶している。そして、符号化モード判定部110は、Intra符号化部170aから出力された符号化量と、フレーム予測モード符号化部170bから出力された符号化量と、フィールド予測モード符号化部170cから出力された符号化量とを比較する。
具体的には、符号化モード判定部110は、Intra符号化部170aから出力された符号化量が最も小さい場合には、Intraモードを選択する。一方、Intra符号化部170aから出力された符号化量が最も大きい場合には、符号化モード判定部110は、次に、フレーム予測モード符号化部170bから出力された符号化量と、フィールド予測モード符号化部170cから出力された符号化量との比較を行う。なお、Intra符号化部170aから出力された符号化量は、最小か最大かのいずれかになり、フレーム予測モード符号化部170bから出力された符号化量と、フィールド予測モード符号化部170cから出力された符号化量との間にはならないと仮定する。
そして、符号化モード判定部110は、フレーム予測モード符号化部170bから出力された符号化量と、フィールド予測モード符号化部170cから出力された符号化量との比較の結果、フィールド予測モード符号化部170cから出力された符号化量が、フレーム予測モード符号化部170bから出力された符号化量に比較して、予め記憶している閾値以上小さいと判定されたことを条件として、フィールド予測モードを選択する。一方、符号化モード判定部110は、それ以外の場合には、フレーム予測モードを選択する。
その後、符号化モード判定部110は、判定結果を、符号化に必要なデータとともに、符号化部120に送る。具体的には、符号化モード判定部110は、「Intraモードを選択した」との判定結果を送る場合には、符号化に必要なデータとして入力フレームを送る。また、符号化モード判定部110は、「フレーム予測モードを選択した」との判定結果を送る場合には、符号化に必要なデータとして、フレーム予測モード用の動きベクトルと、フレーム予測モードに対応する差分画像データとを送る。また、符号化モード判定部110は、「フィールド予測モードを選択した」との判定結果を送る場合には、符号化に必要なデータとして、フィールド予測モード用の動きベクトルと、フィールド予測モードに対応する差分画像データとを送る。一方、符号化部120は、符号化モード判定部110から送られた判定結果やデータを用いて符号化を行うが、この際、選択された予測モードを示す情報を、符号化データのヘッダ情報に格納する。
なお、Intra符号化部170aから出力された符号化量は、横16×縦16画素のマクロブロックに対応する符号化量である。また、フレーム予測モード符号化部170bから出力された符号化量も、横16×縦16画素のマクロブロックに対応する符号化量である。これに対し、フィールド予測モード符号化部170cから出力された符号化量は、横16×縦8画素のマクロブロックに対応する符号化量である。このため、符号化モード判定部110は、比較にあたり、例えば、フィールド予測モード符号化部170cから出力された符号化量については、2マクロブロック分、すなわち、横16×縦16画素のマクロブロックに対応する符号化量を、その比較対象として用いてもよい。比較対象として1マクロブロック分を用いるか、あるいは2マクロブロック分を用いるかは、閾値をどのような値に設定するかによって任意に選択することができる。
また、実施例1に係る符号化装置102として各部の処理を説明したが、開示の技術は上記例に限られるものではない。例えば、実施例1においては、動き補償部170が、各種符号化モードによる符号化を行い、符号化量を算出して符号化モード判定部110に出力するものとして説明したが、これに限られるものではなく、例えば、符号化モード判定部110が符号化量を算出し、算出した符号化量を用いて予測モードを選択する構成であってもよい。このように、各部の機能分担は任意に変更することができる。
ところで、実施例1において、符号化量の比較に用いられる閾値は、符号化データの発生量や予測の誤差量等に基づいて予め決定されたものであり、言い換えると、計算量や圧縮率、あるいは精度等を総合的に勘案して予め決定されたものである。符号化データの発生量が少ない方が、符号化処理の計算量が少なく、より高い圧縮率となると考えられるが、予測の誤差量が多く、精度が低い場合には、必ずしも符号化データの発生量だけに着目するべきではない。また、精度が低い場合には、符号化データの発生量がかえって多くなることもある。
ここで、フレーム予測モードによって符号化された場合の符号化量と、フィールド予測モードによって符号化された場合の符号化量とを比較すると、一般的には前者の方が小さくなるが、後者の方が小さくなることもある。この点、実施例1に係る仮想旅行システム1は、単に後者の方が小さくなる場合にフィールド予測モードを選択するのではなく、符号化量を比較するための閾値を設け、この閾値以上に後者の符号化量が小さくなった場合に、フィールド予測モードを選択する。
すなわち、対象物の動きが速い場合には、フィールド予測モードの方が精度が良くなるという関係がある。また、フィールド予測モードの方が精度が良い場合には、フレーム予測モードによって符号化された場合の符号化量と、フィールド予測モードによって符号化された場合の符号化量とを比較した場合に、後者の符号化量の方が小さくなるという関係がある。もっとも、符号化量を単純に比較しただけでは、フィールド予測モードの精度がそれほど良くなっているわけではないにもかかわらず、フィールド予測モードを選択してしまう可能性がある。このような場合は、必ずしも対象物の輪郭に相当しないことがあり、結果として、仮想旅行装置200において、対象物の輪郭に相当しないマクロブロックの画像上の位置を、対象物の輪郭に相当する領域として特定してしまうおそれがある。
この点、実施例1に係る符号化装置102は、符号化量の比較のためにあえて閾値を設け、閾値を上回るほどにフィールド予測モードの符号化量が小さい場合にだけ、フィールド予測モードを選択する。すると、結果として、仮想旅行装置200において、閾値を上回るほどにフィールド予測モードの符号化量が小さい場合にだけ、そのマクロブロックの画像上の位置が、対象物の輪郭に相当する領域として特定されることになる。
なお、閾値は、例えば、実験結果や経験則等に基づいて決定することができる。例えば、動きのある対象物をサンプルとして各種符号化モードによる符号化量を計測し、対象物の輪郭に相当するマクロブロックの場合には、その符号化量にどれほどの差が生じるかを予め求めることで、閾値を決定することができる。
[実施例1に係る仮想旅行装置200の構成]
次に、図4を用いて、実施例1に係る仮想旅行装置200の構成について説明する。図4は、実施例1に係る仮想旅行装置200の構成を示すブロック図である。図4に例示するように、実施例1に係る仮想旅行装置200は、画像データ記憶部210と、旅行プラン記憶部220と、収集部230と、復号化部240と、受付部250と、符号化部260と、配信部270とを有する。
画像データ記憶部210は、撮影装置100によって生成された画像データを記憶する。具体的には、画像データ記憶部210は、後述する復号化部240によって復号化された画像データを記憶する。
旅行プラン記憶部220は、仮想旅行の種類に対応付けて、配信対象となる画像データに関する情報を記憶する。ここで、図5に、実施例1に係る旅行プラン記憶部220の一例を示す。図5に示した例では、旅行プラン記憶部220は、「旅行プラン」、「配信順序」、「配信映像」、「配信時間」といった項目を有する。
これらの項目のうち「旅行プラン」は、仮想旅行の種類を識別するための識別情報を示す。「配信順序」は、画像データを配信する順序を示す。「配信映像」は、配信対象の画像データを特定するための情報を示す。「配信時間」は、画像データを配信する時間を示す。
すなわち、図5に例示した旅行プラン記憶部220は、旅行プラン「P1」において、最初に電車11に設置された撮影装置100−1によって生成された画像データを配信し、次に、バス12に設置された撮影装置100−2によって生成された画像データを配信し、次に、観光地13を撮影する撮影装置100−3によって生成された画像データを配信し、次に観光地14を撮影する撮影装置(図1には図示せず)によって生成された画像データを配信することを示している。
また、上記例において、旅行プラン記憶部220は、電車11に設置された撮影装置100−1によって生成された画像データのうち、電車11が駅X1から駅X2までの区間を走行している際に生成された画像データを配信し、バス12に設置された撮影装置100−2によって生成された画像データのうち、バス12が停留所Y1から停留所Y2までの区間を走行している際に生成された画像データを配信し、観光地13を撮影する撮影装置100−3によって生成された画像データのうち、3分間の画像データを配信し、観光地14を撮影する撮影装置によって生成された画像データのうち、5分間の画像データを配信することを示している。
図4の説明に戻って、収集部230は、撮影装置100によって生成された画像データを収集する。具体的には、実施例1における収集部230は、撮影装置100から符号化処理後の符号化データを収集し、収集した符号化データを復号化部240に出力する。
復号化部240は、収集部230によって収集された符号化データを復号化する。そして、復号化部240は、復号化後の画像データを画像データ記憶部210に格納する。ここで、図6を用いて、実施例1における復号化部240の構成例について説明する。
図6は、実施例1に係る復号化部240の構成を示すブロック図である。図6に例示するように、実施例1に係る復号化部240は、特に、輪郭抽出部241と、可変長復号−逆スキャン部242と、逆量子化−逆DCT部243と、動き補償部244と、フレームメモリ245と、復号化画像格納部246と、重畳部247とを備える。
実施例1に係る復号化部240は、公知の復号化装置と同様の機能を有する。この点について簡単に説明すると、まず、復号化部240は、符号化データの入力を受け付けると、可変長復号−逆スキャン部242及び逆量子化−逆DCT部243が符号化データを復号化し、例えば動きベクトル及び差分画像データを取得する。次に、動き補償部244が、復号化された動きベクトルとフレームメモリ245に格納されている参照フレームとを用いて予測フレームを生成し、生成した予測フレームと復号化された差分画像データとを用いて入力フレームを復号化し、得られた復号化画像をフレームメモリ245に格納する。そして、復号化画像格納部246が、フレームメモリ245に格納された復号化画像を、重畳部247に出力する。
さて、ここで、実施例1に係る復号化部240は、上述した公知の復号化装置が有する機能に加え、輪郭抽出部241を備え、この輪郭抽出部241が、輪郭抽出処理を行う。この点について説明する。輪郭抽出部241は、図6に例示するように、ヘッダ情報読出部241aと、輪郭領域特定部241bと、輪郭画像生成部241cと、輪郭画像格納部241dとを有する。
ヘッダ情報読出部241aは、符号化データに含まれるヘッダ情報からピクチャ構造情報及び予測モード情報を読み出す。具体的には、まず、ヘッダ情報読出部241aは、例えば可変長復号−逆スキャン部242から、可変長復号−逆スキャン部242において復号化されたヘッダ情報を取得する。次に、ヘッダ情報読出部241aは、ヘッダ情報のピクチャ層を解析し、ピクチャの構造を示すピクチャ構造情報を読み出す。また、ヘッダ情報読出部241aは、ヘッダ情報のマクロブロック層を解析し、マクロブロックの符号化に用いられた予測モードを示す予測モード情報を読み出す。そして、ヘッダ情報読出部241aは、読み出したピクチャ構造情報及び予測モード情報を輪郭領域特定部241bに送る。
輪郭領域特定部241bは、ヘッダ情報読出部241aによって読み出されたピクチャ構造情報及び予測モード情報をマクロブロック毎に判定し、対象物の輪郭に相当する領域を特定する。具体的には、輪郭領域特定部241bは、ヘッダ情報読出部241aからピクチャ構造情報及び予測モード情報を受け付けると、ピクチャ構造情報及び予測モード情報をマクロブロック毎に判定し、ピクチャ構造情報がフレーム構造を示し、かつ、予測モード情報がフィールド予測モードを示す場合に、対応するマクロブロックの画像上の位置を対象物の輪郭に相当する領域として特定する。そして、輪郭領域特定部241bは、特定した領域の位置情報(例えば座標情報等)を輪郭画像生成部241cに送る。
図7は、輪郭に相当する領域の特定を説明するための図である。なお、図7は、領域特定の概念を例示するものである。図7に例示する『人』は、動きのある対象物を意味する。また、図7に例示する黒色の四角形は、対象物の輪郭に相当する領域として特定された位置に存在するマクロブロックを意味する。輪郭領域特定部241bは、図7に例示するように、『人』の輪郭線上に存在するマクロブロックの位置を、対象物の輪郭に相当する領域として特定する。
ここで、実施例1に係る輪郭領域特定部241bが、動きのある対象物の輪郭に相当する領域を特定することができる理由を説明する。上述したように、実施例1に係る撮影装置100の符号化装置102は、符号化量の比較の結果に基づいて予測モードを動的に選択し、フレーム予測モードが選択されたか、あるいは、フィールド予測モードが選択されたかを示す情報を、符号化データのヘッダ情報に格納する。すると、実施例1に係る輪郭領域特定部241bは、ヘッダ情報に格納されたこの情報を解析することで、そのマクロブロックが、「閾値を上回るほどに符号化量が小さい」と判定されて符号化されたものであるのか、あるいは、そうではないと判定されて符号化されたものであるのかを特定することができる。
ここで、動きのある対象物の輪郭は、符号化量の比較において「閾値を上回るほどに符号化量が小さい」と判定される傾向がある。一方、例えば背景や対象物の輪郭以外の部分などは、「閾値を上回るほどには符号化量が小さくならない」と判定される傾向がある。このようなことから、輪郭領域特定部241bは、「閾値を上回るほどに符号化量が小さい」と判定されて符号化されたマクロブロックの画像上の位置を、動きのある対象物の輪郭に相当する領域として特定することができるのである。
輪郭画像生成部241cは、輪郭領域特定部241bによる特定結果を用いて、対象物の輪郭が現わされ輪郭以外を捨象した画像データ(輪郭画像とも称する)を生成する。具体的には、輪郭画像生成部241cは、輪郭領域特定部241bから対象物の輪郭に相当する領域の位置情報を受け付けると、受け付けた位置情報を用いて輪郭画像を生成する。
図8は、実施例1に係る輪郭画像の一例を示す図である。図8に例示するように、輪郭画像生成部241cは、輪郭領域特定部241bから受け付けた位置情報に基づいて、画素同士を線で結び、一部補完するなどして輪郭画像を生成する。ここで、輪郭のみが現わされた輪郭画像からは、個人を特定する情報等が大幅に削除されると考えられるので、プライバシー等の観点から有効な画像を生成することになる。なお、輪郭画像は図8の例に限られず、例えば、輪郭を囲む最小長方形等を算出し、輪郭画像として表示してもよい。
このような輪郭画像生成部241cは、図6に例示するように、対象物判定部241eと、加工部241fとを有する。対象物判定部241eは、輪郭画像生成部241cによって生成された輪郭画像を用いて、対象物が所定の物体であるか否かを判定する。具体的には、対象物判定部241eは、輪郭画像に現されている輪郭に基づいて、かかる輪郭領域によって示される対象物が人、動物又は乗物等であるか否かを判定する。
例えば、対象物判定部241eは、人、動物又は乗物等を示す形状のテンプレート(以下、「形状テンプレート」と表記する場合がある)を予め保持する。そして、対象物判定部241eは、対象物の輪郭と形状テンプレートとをパターンマッチング法などにより比較することにより、対象物が人、動物又は乗物等であるか否かを判定する。このとき、対象物判定部241eは、対象物の輪郭自体と形状テンプレートとを比較してもよいし、輪郭に囲まれた領域(以下、「輪郭領域」と表記する場合がある)の内部に、かかる輪郭領域を線によって表す中央線を描き、かかる中央線と形状テンプレートとを比較してもよい。
ここで、図9を用いて、対象物判定部241eによる対象物判定処理について説明する。図9は、実施例1における対象物判定部241eによる対象物判定処理の一例を示す図である。なお、図9では、対象物判定部241eが、輪郭領域内部の中央線と形状テンプレートとを比較する例について説明する。
図9に示した例のように、対象物判定部241eは、対象物の輪郭上の任意の点(例えば、図9中の点P)を、かかる点から輪郭領域R11内部への法線方向に所定の長さだけ移動させる。対象物判定部241eは、輪郭上の複数の点について同様の処理を行うことで、図9に例示した輪郭よりも全体的に小さい輪郭を形成する。そして、対象物判定部241eは、輪郭上の複数の点について輪郭領域R11内部へ移動させる処理を繰り返し行うことで、図9に例示したように、輪郭領域R11に中央線L11を描く。対象物判定部241eは、かかる中央線L11と形状テンプレートとを比較し、輪郭領域R11によって示される対象物が人、動物又は乗物等であるか否かを判定する。図9に示した例では、対象物判定部241eは、輪郭領域R11によって示される対象物が人であると判定する。
なお、対象物判定部241eは、輪郭(輪郭領域内部の中央線を含む)と形状テンプレートとの比較にあたり、例えば、折れ曲がっている部分(関節に相当)の数や、枝分かれしている部分の数や、各領域の長さの比率等を比較する。例えば、対象物が人である場合には、かかる対象物は、概ねヒトデのような形状となる。したがって、対象物判定部241eは、輪郭の折れ曲がっている部分の数や枝分かれしている部分の数がヒトデと類似する場合には、対象物が人であると判定する。
図6の説明に戻って、加工部241fは、対象物判定部241eによる判定結果に基づいて、対象物の輪郭領域に、かかる対象物を示す画像データ以外の他の画像データを配置することで、輪郭画像を加工する。例えば、加工部241fは、対象物判定部241eによって輪郭領域によって示される対象物が人であると判定された場合には、輪郭領域に一般的な人を表す画像データを配置する。また、例えば、加工部241fは、対象物判定部241eによって輪郭領域によって示される対象物が動物や乗物等であると判定された場合には、輪郭領域に一般的な動物や乗物等を示す画像データを配置する。ここで、加工部241fは、人、動物又は乗物等であることを想起することができる代替用画像を予め保持し、これらの代替用画像を輪郭領域に配置することで、輪郭画像を加工する。この代替用画像は、例えば、所定の図形の組合せや、人、動物又は乗物等を示すアニメーション画像などである。
図10は、実施例1における加工部241fによって加工された輪郭画像の一例を示す図である。なお、図10に示した輪郭画像G12は、加工部241fによって図9に例示した輪郭画像G11が加工されたものとする。上記の通り、対象物判定部241eは、図9に例示した輪郭によって示される対象物を人であると判定する。したがって、加工部241fは、図10に例示するように、輪郭領域R11に人であることを想起することができる代替用画像を配置する。加工部241fは、このようにして輪郭画像G11を加工することで図10に例示した輪郭画像G12を生成する。なお、図10に示した例では、加工部241fは、輪郭領域R11を折れ曲がっている部分で分断し、分断後の領域毎に、かかる領域の大きさに対応する図形(円形や楕円形や長方形等)を配置している。具体的には、加工部241fは、円形や楕円形や長方形等の各図形を保持しており、分断後の領域と保持している各図形とをパターンマッチング法などにより比較し、マッチする図形を分断後の領域に配置する。
なお、上記例においては、輪郭画像生成部241cが輪郭画像を生成し、かかる輪郭画像を加工部241fが加工する例を示した。しかし、輪郭画像生成部241cは輪郭画像を生成しなくてもよい。具体的には、対象物判定部241eが、輪郭領域特定部241bによって特定された輪郭に相当する領域に基づいて、対象物が人、動物又は乗物等であるか否かを判定し、加工部241fが、対象物判定部241eによる判定結果に基づいて、対象物を加工した後の輪郭画像(図10の輪郭画像G12等)を生成してもよい。
図6の説明に戻って、輪郭画像格納部241dは、加工部241fによって加工された輪郭画像を重畳部247に出力する。具体的には、輪郭画像格納部241dは、加工部241fによって加工された輪郭画像をフレームメモリ245から取得し、取得した輪郭画像を重畳部247に出力する。
重畳部247は、加工部241fにより加工された輪郭画像を受け付けるとともに、復号化画像格納部246から復号化画像を受け付け、受け付けた双方の画像を重畳した重畳画像を画像データ記憶部210に格納する。
ここで、図11を用いて、重畳部247による重畳画像の生成処理について説明する。図11は、実施例1における重畳部247による重畳画像生成処理の一例を示す図である。図11に示した例において、重畳部247は、復号化画像格納部246から復号化画像G10を受け付けるとともに、輪郭画像格納部241dから輪郭画像G12を受け付ける。このとき、重畳部247は、復号化画像G10から輪郭領域を取り除くことにより、背景画像G13を生成する。例えば、重畳部247は、復号化画像G10における輪郭領域内の全画素を所定の画素(例えば、『白』を示す画素値「1」等)にすることで、背景画像G13を生成する。そして、重畳部247は、図11に例示するように、背景画像G13に輪郭画像G12を重畳することで、重畳画像G14を生成する。重畳部247は、このようにして生成した重畳画像G14を画像データ記憶部210に格納する。
これにより、重畳部247は、人等のプライバシーが保護された重畳画像を表示することができる。さらに、加工部241fが、人、動物又は乗物等であることを想起することができる代替用画像を用いて輪郭画像を加工するので、重畳部247は、加工部241fによって加工された輪郭画像から生成した重畳画像を表示する場合であっても、復号化画像に描出されていた対象物と異なる対象物を想起させるような画像を表示することはない。すなわち、実施例1に係る仮想旅行装置200は、復号化画像に描出されていた対象物と同一の人、動物又は乗物等であることを想起させることができる画像データであって、かかる対象物のプライバシーを保護することができる画像データを端末装置300に配信することができる。
なお、上記の輪郭画像生成部241cによって特定される輪郭領域と、加工部241fによって用いられる代替用画像が占める領域とは、必ずしも一致するとは限らない。すなわち、図11に示した例において、重畳部247によって復号化画像G10から取り除かれる輪郭領域(背景画像G13を参照)は、加工部241fによって用いられる代替用画像の領域(輪郭画像G12を参照)と一致するとは限らない。このため、対象物を示す輪郭領域が代替用画像の領域よりも大きい場合には、重畳画像G14の一部分は、所定の画素(例えば、『白』を示す画素値「1」等)となり、対象物も背景も描出されない可能性がある。
そこで、実施例1における加工部241fは、輪郭領域よりも代替用画像の占める領域が大きくなるように代替用画像を拡大してもよい。具体的には、加工部241fは、輪郭領域と代替用画像とを比較し、代替用画像が対象物の輪郭の全てを覆うことができるように代替用画像を拡大する。これにより、加工部241fは、重畳画像G14の一部分に対象物及び背景が描出されなくなることを防止できる。
また、重畳画像の一部分に対象物及び背景が描出されないことを防止するために、重畳部247が、重畳画像を生成する際に、複数の復号化画像から背景画像を補完してもよい。この点について、図12を用いて具体的に説明する。図12は、実施例1における重畳部247による重畳画像生成処理の一例を示す図である。図12に示した例において、時間t=1は、時間t=2よりも過去であるものとする。
重畳部247は、時間t=2において受け付けた復号化画像G20から背景画像を生成する場合に、過去の復号化画像G10も用いる。具体的には、重畳部247は、時間t=2に対応する復号化画像G20から対象物の輪郭領域を取り除くことにより背景画像G23を生成し、時間t=2よりも過去である時間t=1に受け付けた復号化画像G10から対象物の輪郭領域を取り除くことにより背景画像G13を生成する。そして、重畳部247は、背景画像G23のうち、輪郭領域(例えば、画素値を「1」とした領域)に背景画像G13の画素を配置することにより、背景画像G30を生成する。具体的には、重畳部247は、背景画像G23の輪郭領域に、かかる輪郭領域に対応する位置における背景画像G13の画素を配置する。このように、重畳部247は、対象物が移動することを利用して、時相の異なる複数の復号化画像から、画素値「1」等に置き換えられた領域を含まない背景画像を生成する。重畳部247は、このような背景画像G30に、加工部241fによって加工された輪郭画像を重畳させることにより、重畳画像の一部分に対象物及び背景が描出されなくなることを防止できる。
図4の説明に戻って、受付部250は、端末装置300から各種情報を受け付ける。具体的には、受付部250は、仮想旅行の種類等の情報を含む仮想旅行要求を端末装置300から受け付ける。
符号化部260は、画像データ記憶部210に格納されている各種画像データを符号化する。かかる符号化部260は、配信部270からの指示に従って、符号化処理を行う。なお、符号化部260は、公知の符号化装置と同様の機能を有する。
配信部270は、受付部250によって仮想旅行要求が受け付けられた場合に、かかる仮想旅行要求に含まれる仮想旅行の種類に対応する画像データを端末装置300に配信する。具体的には、配信部270は、旅行プラン記憶部220に記憶されている各種情報に基づいて、受付部250によって受け付けられた仮想旅行の種類に対応する画像データを特定し、特定した画像データを符号化するように符号化部260を制御する。そして、配信部270は、符号化部260によって符号化された符号化データを、公衆ネットワーク網30を介して端末装置300に配信する。
例えば、旅行プラン記憶部220に記憶されている各種情報が図5に示した状態であるものとする。また、受付部250によって仮想旅行の種類「旅行プラン=P1」といった情報を含む仮想旅行要求が受け付けられたものとする。かかる場合に、配信部270は、旅行プラン記憶部220に記憶されている旅行プラン「P1」に対応する各種情報に基づいて、画像データを端末装置300に配信する。
具体的には、配信部270は、まず、電車11に設置された撮影装置100−1から受信した画像データを端末装置300に配信する。このとき、配信部270は、電車11が駅X1を出発して駅X2に到着するまでの間に撮影装置100−1によって生成された画像データを端末装置300に順次配信する。この点について具体的に説明すると、撮影装置100−1は、例えばGPS(Global Positioning System)機能等によって電車11の走行位置を取得し、電車11の走行位置を示す走行位置情報とともに画像データを仮想旅行装置200に送信する。仮想旅行装置200の配信部270は、電車11から受信する走行位置情報が駅X1の位置を示す場合に、かかる走行位置情報に対応する画像データを端末装置300に配信開始し、走行位置情報が駅X2の位置を示すまで、撮影装置100−1から受信する画像データの配信を継続する。そして、配信部270は、走行位置情報が駅X2の位置を示す場合には、撮影装置100−1から受信する画像データの配信を停止する。
その後に、配信部270は、バス12が停留所Y1を出発して停留所Y2に到着するまでの間に撮影装置100−2によって生成された画像データを端末装置300に順次配信する。かかる配信部270による配信処理は、上記例と同様に、撮影装置100−2がバス12の走行位置を示す走行位置情報とともに画像データを仮想旅行装置200に送信することで実現される。その後に、配信部270は、観光地13を撮影する撮影装置100−3によって生成された画像データを3分間だけ配信し、観光地14を撮影する撮影装置によって生成された画像データを5分間だけ配信する。
これにより、仮想旅行装置200は、端末装置300の利用者に対して、駅X1から駅X2まで電車11に乗車し、停留所Y1から停留所Y2までバス12に乗車し、その後に、観光地13及び14を参観したかのような仮想旅行を体験させることができる。また、仮想旅行装置200は、現時点における風景や観光地に対応する画像データを略リアルタイムに配信するので、利用者に対して現実感の高い仮想旅行を体験させることができる。
[実施例1に係る端末装置300の構成]
次に、図13を用いて、実施例1に係る端末装置300の構成について説明する。図13は、実施例1に係る端末装置300の構成を示すブロック図である。図13に例示するように、実施例1に係る端末装置300は、表示部310と、入力部320と、復号化部330と、仮想旅行アプリケーション部340とを有する。
表示部310は、各種情報を表示する表示デバイスであり、例えば、液晶表示装置等である。入力部320は、各種情報や操作指示を入力するための入力デバイスであり、例えば、キーボードやマウス等である。
復号化部330は、符号化データを復号化する。具体的には、復号化部330は、公知の復号化装置と同様の機能を有し、仮想旅行装置200から配信された符号化データを復号化する。
仮想旅行アプリケーション部340は、利用者に仮想旅行を提供するためのアプリケーションである。具体的には、仮想旅行アプリケーション部340は、仮想旅行の種類を選択させるための選択画面や、復号化部330によって復号化された画像データを表示部310に表示制御する。また、仮想旅行アプリケーション部340は、選択画面や画像データ等を表示部310に表示している状態において、入力部320を介して、利用者から各種操作を受け付ける。
ここで、図14及び図15を用いて、仮想旅行アプリケーション部340によって表示部310に表示制御される各種画面の一例について説明する。図14及び図15は、実施例1に係る仮想旅行アプリケーション部340によって表示制御される各種画面例を示す図である。
まず、仮想旅行アプリケーション部340は、入力部320を介して仮想旅行を行う旨の操作が行われた場合に、図14に示した例のように、ログイン画面G101を表示部310に表示制御する。仮想旅行アプリケーション部340は、ログイン画面G101において、例えば、利用者ID、パスワードの入力を受け付ける。なお、図14に示したログイン画面G101のうち、「お任せ」は、仮想旅行アプリケーション部340によって仮想旅行の種類がランダムに決定されることを示し、「カスタム」は、仮想旅行の種類を利用者に選択させることを示す。
ここでは、ログイン画面G101において、利用者ID及びパスワードが入力されるとともに、「カスタム」が選択されたものとする。かかる場合に、仮想旅行アプリケーション部340は、図14に示した例のように、仮想旅行の種類を選択するための選択画面G102を表示部310に表示制御する。選択画面G102に表示される仮想旅行の種類は、予め複数用意されており、仮想旅行の目的地や、仮想旅行に利用される乗物や、目的地に到着するまでにかかる時間等によって異なる。なお、選択画面G102に表示される仮想旅行の種類は、少なくとも仮想旅行装置200の旅行プラン記憶部220に旅行プランとして記憶されている。
ここでは、選択画面G102において、仮想旅行の種類「P1」が選択されたものとする。かかる場合に、仮想旅行アプリケーション部340は、図14に示した例のように、手続き完了画面G103を表示部310に表示制御する。このとき、仮想旅行アプリケーション部340は、仮想旅行の種類「P1」を含む仮想旅行要求を仮想旅行装置200に送信する。これにより、仮想旅行装置200は、旅行プラン記憶部220に記憶されている各種情報に基づいて、仮想旅行の種類「P1」に対応する画像データを特定し、特定した画像データを端末装置300に配信する。
なお、図14に示した例では、仮想旅行アプリケーション部340は、手続き完了画面G103において、即座に仮想旅行を開始するか、仮想旅行を開始する前に休憩するかを利用者に選択させる。ここで、利用者によって「休憩」が選択された場合であっても、仮想旅行装置200から画像データが順次配信されるので、仮想旅行は進行することとなる。
続いて、手続き完了画面G103において、仮想旅行を開始するための「スタート」が選択されたものとする。ここで、仮想旅行装置200は、図5に例示した旅行プラン「P1」に対応する各種画像データを配信するものとする。具体的には、仮想旅行装置200は、まず、配信順序が「1」である電車11に設置された撮影装置100によって生成された画像データを配信する。かかる場合に、仮想旅行アプリケーション部340は、図15に示した例のように、仮想旅行装置200によって配信される画像データを含む仮想旅行画面G104を表示部310に表示制御する。仮想旅行アプリケーション部340は、電車11に設置された撮影装置100によって生成された画像データが仮想旅行装置200から配信されている間、仮想旅行画面G104を表示部310に表示制御する。これにより、仮想旅行アプリケーション部340は、撮影装置100によって撮影された風景をリアルタイムに表示部310に表示することができる。
また、図15に示した例では、仮想旅行アプリケーション部340は、電車11に設置された撮影装置100によって生成された画像データが仮想旅行装置200から配信されなくなった場合に、休憩確認画面G105を表示部310に表示制御する。具体的には、仮想旅行装置200は、図5に示した例のように、電車11に設置された撮影装置100によって生成された画像データのうち、電車11が駅X1から駅X2までの区間を走行している際に生成された画像データを配信する。したがって、仮想旅行装置200は、電車11が駅X2に到着した際には、画像データの配信を一端停止した後に、配信順序が「2」であるバス12に設置された撮影装置100によって生成された画像データの配信を開始する。このような場合に、仮想旅行アプリケーション部340は、仮想旅行装置200によって配信される画像データの区切りの部分において、休憩確認画面G105を表示することで、利用者に休憩するか否かを問い合わせる。
このようにして、仮想旅行アプリケーション部340は、バス12に設置された撮影装置100によって生成された画像データを含む仮想旅行画面G106や、休憩確認画面G107や、観光地を撮影する撮影装置100によって生成された画像データを含む仮想旅行画面G108等を表示部310に表示制御する。そして、仮想旅行アプリケーション部340は、仮想旅行装置200による画像データの配信が終了した場合に、図15に示した例のように、終了画面G109を表示部310に表示制御する。
[実施例1の処理手順]
次に、図16を用いて、実施例1に係る仮想旅行システム1による処理の手順について説明する。図16は、実施例1に係る仮想旅行システム1による処理手順を示すシーケンス図である。なお、図16では、1台の撮影装置100を示したが、かかる撮影装置100は、図1に例示した撮影装置100−1〜100−3等の複数の撮影装置に対応する。
図16に示すように、実施例1に係る端末装置300は、仮想旅行を行う旨の操作、及び、仮想旅行の種類を選択する操作が行われた場合に、仮想旅行の種類を含む仮想旅行要求を仮想旅行装置200に送信する(ステップS101)。例えば、端末装置300は、図14に例示した選択画面G102において仮想旅行の種類が選択された場合に、仮想旅行要求を仮想旅行装置200に送信する。
また、撮影装置100は、所定の風景や観光地を撮影することにより画像データを生成し、かかる画像データを符号化した後の符号化データを仮想旅行装置200に送信する(ステップS102)。このとき、撮影装置100は、撮影処理を行うたびに符号化データを略リアルタイムに仮想旅行装置200に送信する。
仮想旅行装置200は、端末装置300から仮想旅行要求を受信した場合に、かかる仮想旅行要求に含まれる仮想旅行の種類に対応する画像データを特定する。そして、仮想旅行装置200は、特定した画像データに対してプライバシーの保護処理を施す(ステップS103)。なお、仮想旅行装置200による保護処理の手順については、図17を用いて説明する。
そして、仮想旅行装置200は、プライバシーの保護処理を施した画像データを符号化した符号化データを端末装置300に送信する(ステップS104)。これにより、端末装置300は、仮想旅行装置200から受信した画像データを表示部310に表示する(ステップS105)。
次に、図17を用いて、図16のステップS103に示した保護処理の手順について説明する。図17は、実施例1に係る仮想旅行装置200による保護処理手順を示すフローチャートである。なお、図17においては、輪郭領域特定部241bによって輪郭に相当する領域が特定されているものとする。
仮想旅行装置200の輪郭画像生成部241cは、輪郭領域特定部241bによって対象物の輪郭に相当する領域が特定された場合に、かかる輪郭の領域に基づいて対象物の輪郭画像を生成する(ステップS201)。続いて、対象物判定部241eは、輪郭画像生成部241cによって生成された輪郭画像に基づいて、対象物が人、動物又は乗物等であるか否かを判定する(ステップS202)。
続いて、加工部241fは、対象物判定部241eによって対象物が人等であると判定された場合に(ステップS202肯定)、代替用画像を用いて、対象物判定部241eによって生成された輪郭画像を加工する(ステップS203)。このとき、加工部241fは、対象物判定部241eによって判定された対象物の種類(人、動物又は乗り物等)に対応する代替用画像を用いる。
続いて、重畳部247は、復号化画像格納部246から受け付けた復号化画像から対象物の輪郭領域を取り除くことにより、背景画像を生成する(ステップS204)。そして、重畳部247は、背景画像に対して、加工部241fによって加工された輪郭画像を重畳することで、重畳画像を生成する(ステップS205)。
[実施例1の効果]
上述したように、実施例1に係る仮想旅行システム1において、仮想旅行装置200は、乗物内外又は建築物内外に設置された撮影装置100によって撮影されることで生成された画像データを収集する。また、仮想旅行装置200は、収集した画像データのうち、動きのある対象物が描出された領域を特定する。また、仮想旅行装置200は、収集した画像データのうち、対象物を示す領域の画像データを他の画像データに加工する。そして、仮想旅行装置200は、端末装置300から、仮想的な旅行の行程に関する情報を含む仮想旅行要求を受け付けた場合に、加工済画像データのうち、仮想旅行要求に含まれる仮想的な旅行に用いられる乗物内外に設置された撮影装置100、又は、かかる仮想旅行要求の行程の近傍に存在する建築物内外に設置された撮影装置100によって生成された画像データが加工された加工済画像データを、端末装置300に順次配信する。これにより、実施例1に係る仮想旅行システム1は、旅行先の不特定多数の対象物のプライバシーを保護した上で、リアルタイム性を有する仮想旅行を利用者に提供することができる。
また、実施例1に係る仮想旅行システム1の撮影装置100において、動きベクトル検出部160が、対象物が描出された画像データをマクロブロック毎に符号化するにあたり動きベクトルを検出する。また、動き補償部170が、動きベクトル検出部160によって検出された動きベクトルのうちフィールド予測モード用の動きベクトルを用いてマクロブロックを符号化する。また、動き補償部170が、動きベクトル検出部160によって検出された動きベクトルのうちフレーム予測モード用の動きベクトルを用いてマクロブロックを符号化する。そして、符号化モード判定部110が、フィールド予測モードによって符号化した場合の第1符号化量が、フレーム予測モードによって符号化した場合の第2符号化量に比較して所定閾値以上小さいと判定されたことを条件として、マクロブロックの符号化に用いる予測モードとしてフィールド予測モードを選択する。また、符号化部120が、選択された予測モードに従って画像データを符号化する。一方、仮想旅行装置200において、ヘッダ情報読出部241aが、符号化データに含まれるヘッダ情報から、ピクチャ構造情報及び予測モード情報を読み出す。また、輪郭領域特定部241bが、ピクチャ構造情報及び予測モード情報をマクロブロック毎に判定し、ピクチャ構造情報がフレーム構造を示し、かつ、予測モード情報がフィールド予測モードを示す場合に、対応するマクロブロックの画像上の位置を対象物の輪郭に相当する領域として特定する。これにより、実施例1に係る仮想旅行システム1は、対象物の輪郭に相当する領域を特定することが可能になり、動きのある対象物を適切に抽出することが可能になる。
例えば、動きベクトルが検出された画像領域を移動領域とみなす従来の技術では、対象物とノイズ(蛍光灯のちらつきや木の葉の揺れ等)との区別が課題となっていた。この点、実施例1に係る仮想旅行システム1によれば、このようなノイズは、フレーム予測モードで符号化されるので、対象物の輪郭に相当する領域との区別が可能になる。
これまで、開示の技術に係る仮想旅行システム、仮想旅行装置及び仮想旅行プログラムの実施例として実施例1〜3を説明してきたが、開示の技術はこれに限られるものではなく、種々の異なる形態にて実施されてよいものである。実施例4では、開示の技術に係る仮想旅行システム、仮想旅行装置及び仮想旅行プログラムの他の実施例について説明する。
[加工処理]
上記実施例1〜3では、加工部241fが、図10に例示したような代替用画像を用いて輪郭画像を加工する例を示した。しかし、加工部241fによる加工処理は、代替用画像を用いた例に限られない。以下に、加工部241fによる加工処理についていくつか例を挙げて説明する。
例えば、加工部241fは、対象物の輪郭領域に所定の画素(例えば、『黒』を示す画素値「0」等)を配置することで、特定の人、動物又は乗物等を特定されないようにしてもよい。このとき、加工部241fは、対象物の種類に応じて輪郭領域に配置する画素値を変更してもよい。例えば、加工部241fは、対象物が人である場合には、輪郭領域に『黒』を示す画素値を配置し、対象物が動物である場合には、輪郭領域に『青』を示す画素を配置してもよい。
このとき、加工部241fは、仮想旅行の旅行先や、仮想旅行が行われる季節や、仮想旅行が行われる時間帯等に応じて、対象物の輪郭領域に配置する画素値を変動させてもよい。例えば、加工部241fは、仮想旅行の旅行先が寒い地域(例えば、東北地方や北海道等の寒冷地)である場合には、対象物の輪郭領域に寒色(青、又は、青に近い色等を示し、「後退色」とも呼ばれる)の画素値を配置し、仮想旅行の旅行先が暖かい地域(例えば、九州地方や沖縄等の温暖地)である場合には、対象物の輪郭領域に暖色(赤や黄色やオレンジ色等を示し、「進出色」とも呼ばれる)の画素値を配置してもよい。このとき、加工部241fは、仮想旅行の旅行先となる地域の緯度が所定範囲内の緯度であるか否かに基づいて、仮想旅行の旅行先が寒い地域であるか暖かい地域であるかを判定する。また、例えば、加工部241fは、仮想旅行が寒い季節(例えば、11月〜2月)に行われる場合には、対象物の輪郭領域に寒色の画素値を配置し、仮想旅行が暖かい季節(例えば、7月〜9月)に行われる場合には、対象物の輪郭領域に暖色の画素値を配置してもよい。このとき、加工部241fは、現在日時に基づいて、仮想旅行が行われる季節を判定する。なお、加工部241fは、仮想旅行の旅行先、及び、仮想旅行が行われる季節の双方に基づいて、仮想旅行の旅行先が寒い地域であるか暖かい地域であるかを判定してもよい。
また、加工部241fは、対象物の輪郭領域について二値化処理を施してもよい。具体的には、加工部241fは、輪郭領域に含まれる各画素値について、所定の閾値以上であるか否かを判定する。そして、加工部241fは、画素値が所定の閾値以上である領域については画素値を「1」とし、画素値が所定の閾値よりも小さい領域については画素値を「0」とする。これにより、加工部241fは、対象物を2種類の画素値によって現すことが可能になり、この結果、対象物が何であるかを想起しやすくすることができる。
また、加工部241fは、対象物の輪郭領域に含まれる画素の配置を変更することで、特定の人、動物又は乗物等を特定されないようにしてもよい。具体的には、加工部241fは、輪郭領域を所定のマクロブロック(例えば、横16×縦16画素)毎に分割し、マクロブロック内で画素の位置を変更してもよい。例えば、加工部241fは、輪郭領域をマクロブロックM1〜M10に分割した場合に、マクロブロックM1に含まれる各画素の配置をマクロブロックM1内で変更する。加工部241fは、同様の処理をマクロブロックM2〜M10についても行う。なお、加工部241fによる画素の配置変更処理は、任意の手法を適用することができる。例えば、加工部241fは、横方向に隣接する2個の画素の位置を変更してもよいし、縦方向に隣接する2個の画素の位置を変更してもよい。また、例えば、加工部241fは、画素の配置を変更するのではなく、マクロブロック(マクロブロックM1等)内の全画素値の平均値を算出し、算出した画素値をマクロブロックに配置してもよい。
また、加工部241fは、対象物の輪郭領域に含まれる画素値を変更することで、特定の人、動物又は乗物等を特定されないようにしてもよい。すなわち、加工部241fは、輪郭領域に含まれる画素値を変更することで、対象物の色合いを変更する。例えば、加工部241fは、対象領域が人である場合に、対象領域のうち顔を示す領域、胴体を示す領域、手足を示す領域を特定する。そして、加工部241fは、顔を示す領域については、全てを同一画素値に置き換え、胴体を示す領域や手足を示す領域については、かかる領域の画素値に所定の画素値を加算又は減算する。これにより、加工部241fは、対象物の顔が特定されず、かつ、対象物の服や皮膚の色を変更することができる。この結果、加工部241fは、対象物が所定の人物であると特定されることを防止できるので、対象物のプライバシーを保護することができる。
また、例えば、加工部241fは、顔を示す領域については、上記例のように画素の配置を変更してもよい。これにより、加工部241fは、対象物の顔をやや異なる顔に変更することができ、対象物が所定の人物であると特定されることを防止できる。また、例えば、加工部241fは、顔を示す領域のうち、眉毛、目、鼻、口等を示す領域を特定し、特定した眉毛、目、鼻、口等の位置や変更してもよい。例えば、加工部241fは、眉毛を頭頂部方向に移動させることで額を狭くしたり、目や鼻や口の大きさを変更したりする。これにより、加工部241fは、対象物が所定の人物であると特定されることを防止できる。
[移動カメラ]
また、上記実施例1〜3における仮想旅行システムは、画像データが、例えば移動するカメラによって収集された画像データである場合にも、同様に適用することができる。この場合には、背景となる部分からも動きベクトルが検出されることになるので、符号化装置は、背景となる部分から検出される動きベクトルを差し引いた後の「局所的な動きベクトル」のみを用いて上記処理を行う必要がある。
例えば、動きベクトル検出部160は、基本となる動きベクトルと同じ動きベクトルであるか、あるいはそれ以外の動きベクトルであるかを判別して動作する。言い換えると、動きベクトル検出部160は、動きベクトルとして同じ値が繰り返されるのか、あるいはそれ以外の値となるのかを判別して動作する。ここで、動きベクトル検出部160は、動きベクトルの予測において、全体の中から予測としてより正しいものがどこにあるかを探索するが、この時、背景となる部分の動きベクトルは、一定のものが繰り返し利用されることになる。このため、動きベクトル検出部160は、繰り返し利用される動きベクトルとは異なる動きベクトルが予測として最も正しいものとして探索された場合に、背景以外の部分から検出された動きベクトルであると判別することができる。
[課金処理]
また、上記実施例1〜3に係る仮想旅行装置200及び400は、課金機能を有してもよい。具体的には、端末装置300は、図15に例示した終了画面G109を表示した後に、仮想旅行が終了した旨を仮想旅行装置200及び400に通知する。そして、仮想旅行装置200及び400は、かかる通知を受信した場合に、予め決められている仮想旅行に対応する料金を利用者に課金してもよい。
[録画機能]
また、上記実施例1〜3に係る仮想旅行装置200及び400は、端末装置300に配信した画像データを配信済画像データとして、所定の記憶部に保持してもよい。例えば、仮想旅行装置200及び400は、仮想旅行が行われた日時等に対応付けて、配信済画像データを保持してもよい。そして、仮想旅行装置200及び400は、端末装置300から、過去に行われた仮想旅行を再度行う旨の仮想旅行要求を受け付けた場合には、かかる仮想旅行要求に対応する配信済画像データを端末装置300に配信してもよい。
[仮想旅行の種類]
また、上記実施例1〜3においては、端末装置300が、図14に例示した選択画面G102にて仮想旅行の種類を利用者に選択させる例を示した。しかし、端末装置300は、表示部310に地図を表示し、かかる地図上に線を描写させる等して、仮想旅行の行程を利用者に入力させてもよい。このとき、端末装置300は、各行程において利用する乗物や、各行程にかかる時間等を入力させてもよい。かかる場合に、端末装置300は、仮想旅行の行程や乗物等の情報を仮想旅行装置200又は400に送信する。そして、仮想旅行装置200又は400は、端末装置300から受信した仮想旅行の行程や乗物等の情報に基づいて、かかる乗物内外に設置された撮影装置100、又は、かかる行程の近傍に存在する建築物内外に設置された撮影装置100によって生成された画像データを端末装置300に配信する。このような場合には、仮想旅行装置200又は400は、例えば、撮影装置100が設置されている位置情報等を保持することで、端末装置300から受信した仮想旅行の行程や乗物等に対応する撮影装置100を特定することができる。
[買い物機能]
また、上記実施例1〜3に係る仮想旅行装置200及び400は、仮想旅行先に存在する販売店(土産屋やアンテナショップ等)が撮影されることで生成された画像データを予め保持してもよい。そして、仮想旅行装置200及び400は、仮想旅行の画像データを配信している間に、販売店に立ち寄る旨の買い物要求を端末装置300から受け付けた場合に、かかる買い物要求に対応する販売店の画像データを端末装置300に配信してもよい。そして、端末装置300は、販売店の画像データを表示部310に表示している際に、利用者から購入対象の品物に関する情報を受け付け、受け付けた品物情報を仮想旅行装置200や、販売店等に通知することで、利用者に品物を実際に購入させてもよい。
[魚眼レンズ]
また、上記実施例1〜3に係る撮影装置100は、特開2004−272767号公報に開示された魚眼レンズを有し、かかる魚眼レンズを用いて撮像処理を行ってもよい。そして、仮想旅行装置200や400、又は、端末装置300は、特開2004−272767号公報に開示された技術により、魚眼レンズにより撮像された局面像から平面像を生成してもよい。
[画像データの種類]
また、上記実施例1〜3に係る仮想旅行システムにおいて扱う画像データの種類は、MPEG−2、MPEG−4 AVC/H.264等に限られず、フレーム予測モードとフィールド予測モードとを動的に選択する手法を用いて符号化された画像データであれば、他の種類の画像データであってもよい。
[システムの構成]
上記実施例1〜3においては、図3又は図19に例示した撮影装置100が、符号化処理を行い、仮想旅行装置200又は400が、復号化処理、輪郭抽出処理、プライバシーの保護処理(加工処理)、符号化処理を行い、端末装置300が復号化処理を行う例を示した。しかし、各装置において行われる処理はこの例に限られない。
例えば、仮想旅行装置200又は400は、撮影装置100から受信した符号化データに対して復号化処理、輪郭抽出処理、プライバシーの保護処理(加工処理)を行わずに、かかる符号化データを画像データ記憶部210に保持するだけでもよい。そして、仮想旅行装置200又は400は、端末装置300から受信した仮想旅行要求に対応する符号化データを画像データ記憶部210から取得し、取得した符号化データを端末装置300に配信してもよい。かかる場合、仮想旅行装置200又は400は、復号化部240及び符号化部260を有しなくてもよい。そして、端末装置300が、復号化部240及び符号化部260と同様の機能を有し、仮想旅行装置200又は400から受信した符号化データに対して、復号化処理、輪郭抽出処理、プライバシーの保護処理(加工処理)を行った後に、画像データを表示部310に表示してもよい。
また、例えば、撮影装置100が、復号化部240及び符号化部260と同様の機能を有し、符号化装置102によって符号化された符号化データに対して、復号化処理、輪郭抽出処理、プライバシーの保護処理(加工処理)を行い、プライバシーの保護処理後の画像データを符号化した符号化データを仮想旅行装置200又は400から送信してもよい。かかる場合、仮想旅行装置200又は400は、復号化部240及び符号化部260を有しなくてもよく、撮影装置100から受信した符号化データに対して復号化処理、輪郭抽出処理、プライバシーの保護処理(加工処理)を行わずに、かかる符号化データを画像データ記憶部210に保持し、端末装置300から受信した仮想旅行要求に対応する符号化データを画像データ記憶部210から取得し、取得した符号化データを端末装置300に配信するだけでよい。
また、上記実施例2においては、端末装置300が、要望データを仮想旅行装置400に送信する例を示した。しかし、端末装置300は、仮想旅行装置400を介さずに、要望データを撮影装置100−4に送信してもよい。具体的には、端末装置300によって送信される要望データは、仮想旅行が行われている最中に送信されることが多い。かかる場合に、仮想旅行における画像データを送信している撮影装置100−4は特定されている。このため、端末装置300は、画像データを送信している撮影装置100−4の宛先情報(IPアドレス等)を仮想旅行装置400から受信しておき、かかる宛先情報を用いて要望データを撮影装置100−4に送信してもよい。
また、上記の撮影装置100−4及び端末装置300は、テレビ電話等の機能を有してもよい。かかる場合には、端末装置300は、かかるテレビ電話によって、仮想旅行に対する利用者の要望をエージェントに通知することができる。
[仮想旅行プログラム]
また、上記実施例において説明した仮想旅行装置200又は400は、仮想旅行プログラムによる情報処理がコンピュータを用いて具体的に実現されることで実行されてもよい。コンピュータは、例えば、CPU(Central Processing Unit)と、システムメモリと、ハードディスクドライブインタフェースと、ディスクドライブインタフェースと、シリアルポートインタフェースと、ビデオアダプタと、ネットワークインタフェースとを有し、これらの各部はシステムバスによって接続される。システムメモリは、ROM(Read Only Memory)及びRAM(Random Access Memory)を含む。ROMは、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェースは、ハードディスクドライブに接続される。ディスクドライブインタフェースは、ディスクドライブに接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェースは例えば、マウス、キーボードに接続される。ビデオアダプタは、例えば、モニタに接続される。
ここで、ハードディスクドライブは、例えば、OS(Operating System)、アプリケーションプログラム、プログラムモジュール、プログラムデータを記憶する。すなわち、上記の仮想旅行プラグラムは、コンピュータによって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクに記憶される。具体的には、上記実施例で説明した収集部230と同様の処理を実行する手順と、復号化部240と同様の処理を実行する手順と、受付部250と同様の処理を実行する手順と、符号化部260と同様の処理を実行する手順と、配信部270と同様の処理を実行する手順とが記述されたプログラムモジュールが、ハードディスクに記憶される。
なお、仮想旅行プラグラムに係るプログラムモジュールやプログラムデータは、ハードディスクに記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPUによって読み出されてもよい。あるいは、仮想旅行プラグラムに係るプログラムモジュールやプログラムデータは、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェースを介してCPUによって読み出されてもよい。