以下、添付図面を参照しながら、実施形態を詳細に説明する。
以下の各実施形態の画像同期装置は、過去のある時点において、予め定められた経路を移動体で移動しながら撮像した画像と、現時点において、当該移動体で当該経路を移動しながら撮像した画像とを、同期して出力する。
例えば、以下の各実施形態の画像同期装置では、撮像装置を搭載した電車が線路を走行しながら当該線路の時系列の画像を予め撮像しておくとともに、当該線路の点検時などに、当該電車が当該線路を再度走行しながら当該線路の画像を順次撮像する。そして画像同期装置が、当該線路の点検時に順次撮像された画像毎に、予め撮像された時系列の画像の中から当該画像と類似する画像を探索し、当該画像と探索された画像とを同期して出力する。
このように、以下の各実施形態の画像同期装置では、予め撮像位置や撮像時間が決まっていない任意に撮像された画像同士を同期できるので、移動体が走行する経路の点検などの用途に好適である。
(第1実施形態)
図1は、第1実施形態の画像同期装置100の一例を示す構成図である。図1に示すように、画像同期装置100は、撮像部101と、過去画像記憶部103と、探索部105と、生成部107と、出力部109と、操作部111とを、備える。
撮像部101は、例えば、ビデオカメラやデジタルカメラなどの撮像装置により実現できる。過去画像記憶部103は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、メモリカード、光ディスク、及びRAM(Random Access Memory)などの磁気的、光学的、又は電気的に記憶可能な記憶装置により実現できる。探索部105及び生成部107は、例えば、CPU(Central Processing Unit)などの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、IC(Integrated Circuit)などのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。出力部109は、例えば、液晶ディスプレイやタッチパネルディスプレイなどの表示装置により実現してもよいし、スピーカなどの音声出力装置より実現してもよいし、両者を併用して実現してもよい。操作部111は、例えば、マウスやキーボードなどの入力装置により実現できる。
撮像部101は、予め定められた経路を走行する移動体(図示省略)に搭載されている。予め定められた経路は、例えば、線路であり、移動体は、例えば、電車が該当する。この場合、電車は、乗客や貨物を運送する営業用の車両ではなく、線路の点検等を行う事業用の車両であり、線路を中心とした撮像を行うため、電車の進行方向前方を撮像するように撮像部101が搭載されていることが好ましい。但し、経路及び移動体は、これらに限定されるものではなく、予め定められた経路を移動体が走行するのであれば、どのようなものであってもよい。
撮像部101は、過去のある時点において電車が線路を走行した際に、当該線路の時系列の画像(第2画像の一例)を予め撮像しておく。以下、過去のある時点において撮像された時系列の画像を時系列の過去画像と称する場合がある。なお、時系列の過去画像は、線路点検時の基準画像(比較用画像)として用いられる。
図2は、第1実施形態の時系列の過去画像の一例を示す図である。図2に示す例では、過去画像141〜143などが時系列(フレームの時系列)で撮像されており、過去画像141〜143などにより時系列の過去画像が構成されている。
また撮像部101は、線路の点検時において電車が線路を走行している際に、当該線路の画像(第1画像の一例)を順次撮像する。ここで、線路の点検時とは、例えば、営業用の車両が脱線などの事故を起こした後の点検時、地震などの天災発生後の点検時、及び定期点検時などが該当するが、これらに限定されるものではない。以下、線路の点検時において順次撮像される画像を入力画像と称する場合がある。なお、順次撮像される入力画像は、線路点検時に過去画像と比較される点検対象画像として用いられる。
図3は、第1実施形態の入力画像の一例を示す図である。図3に示す例では、入力画像151〜157などが時系列(フレームの時系列)で順次撮像されている。なお、第1実施形態では、過去画像撮像時の電車の走行速度よりも、入力画像撮像時の電車の走行速度が遅い場合を想定しているため、入力画像撮像時のフレーム数は、過去画像撮像時よりも多くなっている。
以下では、線路の点検時を基準に画像同期装置100についての説明を行うため、線路の点検時が現時点であることを想定して説明する。
過去画像記憶部103は、撮像部101により撮像された時系列の過去画像を記憶している。
探索部105には、撮像部101により現時点において撮像される入力画像が順次入力される。そして探索部105は、撮像部101から入力画像が入力される毎に、過去画像記憶部103から時系列の過去画像を取得し、入力画像と過去画像それぞれとの類似度を求め、類似度が閾値以上の所定過去画像を探索する。但し、第1実施形態では、探索部105は、類似度が閾値以上の過去画像が探索されなかった場合、類似度が最大となる過去画像を所定過去画像とし、エラー情報を付加する。なお、探索部105は、類似度が閾値以上の過去画像が探索されなかった場合、所定過去画像ではなく、入力画像にエラー情報を付加してもよい。
ここで、第1実施形態では、過去画像記憶部103から取得する過去画像の数、即ち、時系列の過去画像に含まれる(を構成する)過去画像の数は、予め設定されているものとするが、これに限定されるものではない。同様に、第1実施形態では、閾値は、予め設定されているものとするが、これに限定されるものではない。時系列の過去画像に含まれる過去画像の数は、例えば、実験値などに基づいて予め設定されている。また第1実施形態では、所定過去画像の数は1つであるものとするが、これに限定されるものではない。但し、探索部105は、1以上の所定過去画像を探索し、探索した1以上の所定過去画像を補間することにより1つの所定過去画像としてもよい。
なお探索部105は、撮像部101から入力画像が入力される毎に、過去画像記憶部103から、時系列の過去画像として、前回探索された所定過去画像から時系列の順に予め設定された数の過去画像を取得する。従って、探索部105が取得する時系列の過去画像は、毎回同じとは限らない。
また探索部105は、種々の手法により入力画像と過去画像との類似度を求めることができる。
例えば、探索部105は、画素の差分値から、入力画像と過去画像との類似度を求める。画素の差分値による入力画像と過去画像との類似度は、例えば、数式(1)及び数式(2)により求められる。
数式(1)において、Iは入力画像を示し、Pは過去画像を示し、M及びNは類似度計算を行う画像領域のサイズを示し、i及びjは、類似度計算を行う画像領域内の画素位置を示すパラメータであり、Diffsumは、入力画像Iと過去画像Pとの画素の差分値を示す。数式(2)において、kは色深度を示し、Simは、入力画像Iと過去画像Pとの類似度を示す。
また例えば、探索部105は、画素の平均二乗誤差から、入力画像と過去画像との類似度を求める。画素の平均二乗誤差による入力画像と過去画像との類似度は、例えば、数式(3)及び数式(4)により求められる。
数式(3)において、I、P、M及びN、i及びjは、数式(1)と同様であり、RMSEは、入力画像Iと過去画像Pとの画素の平均二乗誤差を示す。数式(4)において、k、Simは、数式(2)と同様である。
また例えば、探索部105は、画素の正規化相互相関から、入力画像と過去画像との類似度を求める。画素の正規化相互相関による入力画像と過去画像との類似度は、例えば、数式(5)により求められる。
数式(5)において、I、P、M及びN、i及びjは、数式(1)と同様であり、RZNCCは、入力画像Iと過去画像Pとの画素の正規化相互相関係数を示し、入力画像Iと過去画像Pとの類似度として用いることができる。
そして探索部105は、入力画像と過去画像それぞれとの類似度を求め、最大となる類似度を閾値と比較し、類似度が閾値以上であれば、当該類似度の過去画像を所定過去画像とする。但し、探索部105は、最大となる類似度が閾値未満の場合、当該類似度の過去画像を所定過去画像とし、エラー情報を付加する。
なお探索部105は、入力画像と過去画像との類似度を求めるために、上述した3つの手法のいずれを用いてもよいし、上述した3つの手法のうち2つ以上の手法を組み合わせてもよい。また上述した3つの手法の数式における除算部分については、予め設定した値とすることもできる。
前述したように、第1実施形態では、閾値は、予め設定されているが、入力画像と過去画像との明るさが大きく異なる場合には、探索部105は、両画像の平均輝度値又は最大輝度値を用いて閾値を求めてもよいし、トーンマッピング又は平均化によって暗い画像の明るさ調整を行うようにしてもよい。
両画像の明るさが大きく異なる場合、即ち、入力画像I内の最大画素値Imaxと過去画像P内の最大画素値Pmaxとにおいて、Imax>Pmax又はImax<Pmaxの関係が成り立つ場合、数式(6)又は数式(7)により、閾値Thが求められる。
数式(6)及び(7)において、Thiniは入力画像Iと過去画像Pとの明るさが同じ場合に予め一意に設定した閾値であり、kは色深度を示す。なお、数式(6)及び(7)では、最大画素値から閾値Thを求めたが、平均画素値を用いて閾値Thを求めてもよい。
図4は、第1実施形態の所定過去画像の探索結果の一例を示す図である。図4に示す例では、入力画像151〜157それぞれに対して所定過去画像が探索されており、入力画像151、152の所定過去画像は過去画像141、入力画像153〜155の所定過去画像は過去画像142、入力画像156、157の所定過去画像は過去画像143となっている。
生成部107は、撮像部101から入力された入力画像と探索部105により探索された所定過去画像とを用いて同期画像を生成する。具体的には、生成部107は、入力画像及び所定過去画像を並べた画像、入力画像と所定過去画像との差分を示す差分画像及び入力画像を並べた画像、又は差分画像と入力画像とを合成した画像などを同期画像として生成する。
図5〜図10は、第1実施形態の同期画像の一例を示す図である。図5に示す同期画像は、過去画像141である所定過去画像と入力画像151とを左右に並べたものである。図6に示す同期画像は、過去画像141である所定過去画像と入力画像151とを上下に並べたものである。
図7に示す同期画像は、過去画像149である所定過去画像と入力画像159とを左右に並べたものである。図8に示す同期画像は、過去画像149である所定過去画像と入力画像159とを上下に並べたものである。但し、過去画像149は、入力画像159との類似度が最大となる過去画像ではあるが、類似度が閾値未満の過去画像、即ち、エラー情報が付された過去画像である。但し、エラー情報は、過去画像149ではなく入力画像159に付加されていてもよい。
なお、図5〜図8に示す同期画像において、所定過去画像と入力画像との位置を入れ替えてもよい。
図9に示す同期画像は、差分画像161と入力画像159とを左右に並べたものである。差分画像161は、過去画像149である所定過去画像と入力画像159との差分を表示した画像である。但し、図9に示す同期画像は、差分値が一定値以上の場合に差分画像161を表示し、差分値が一定値未満の場合に過去画像149である所定過去画像を表示してもよい。なお、図9に示す同期画像において、差分画像と入力画像との位置を入れ替えてもよいし、差分画像と入力画像とを左右ではなく上下に並べてもよい。
図10に示す同期画像は、入力画像159に差分画像161を合成した合成画像162を表示したものである。
出力部109は、撮像部101から入力された入力画像と探索部105により探索された所定過去画像とに基づく同期画像を出力する。具体的には、出力部109は、撮像部101から入力画像が入力される毎に、生成部107により生成された同期画像を表示出力する。
これにより、任意に撮像された入力画像と所定過去画像とが並べられた画像が同期画像として表示されるので、ユーザ(点検者)は、両画像を見比べることで、所定過去画像に対する入力画像の差分を把握できる。特に、合成画像を同期画像として表示すれば、ユーザは、所定過去画像に対する入力画像の差分の把握を容易に行うことができる。
操作部111は、ユーザ(点検者)からの操作入力に従って、出力部109による同期画像の表示形態を制御する。例えば、操作部111は、ユーザからの操作入力に従って、出力部109による表示を同期画像の表示から入力画像の表示に切り替えさせるなどの表示切替制御や、出力部109による表示をユーザが指定した位置を中心に拡大・縮小させるなどの拡大・縮小制御を行う。また、操作部111は、ユーザからの操作入力に従って、出力部109により表示されている画像を保存させたり、ユーザが指定したフレームの画像や画素位置を保存させたりしてもよい。
図11は、第1実施形態の画像同期装置100で行われる画像同期処理の手順の流れの一例を示すフローチャートである。
まず、撮像部101は、入力画像を順次撮像する(ステップS101)。
続いて、探索部105は、撮像部101により入力画像が撮像される毎に、過去画像記憶部103から時系列の過去画像を取得し(ステップS103)、入力画像と過去画像それぞれとの類似度を求め、類似度が閾値以上の所定過去画像を探索する(ステップS105)。
続いて、生成部107は、撮像部101から入力された入力画像と探索部105により探索された所定過去画像とを用いて同期画像を生成する(ステップS107)。
続いて、出力部109は、生成部107により生成された同期画像を表示出力する(ステップS109)。
図12は、第1実施形態の探索部105で行われる1回目の探索処理の手順の流れの一例を示すフローチャートであり、図11に示すフローチャートのステップS105の詳細を示す。図12に示すフローチャートでは、入力画像と過去画像それぞれとの類似度を求め、最大となる類似度を閾値と比較し、類似度が閾値以上であれば、当該類似度の過去画像を所定過去画像とする。但し、図12に示す例では、図11に示すフローチャートのステップS103において、探索部105は、過去画像記憶部103に記憶されている時系列の過去画像のうち、先頭の過去画像[0]から時系列の順にThcount個の過去画像を時系列の過去画像として取得しているものとする。なお、第1実施形態では、Thcountの値は、予め設定されている。
まず、探索部105は、変数i及び変数tstartを0に初期化する(ステップS201)。ここで、iは、過去画像を特定するパラメータ及びカウンタを兼ねた変数であり、tstartは、入力画像との類似度が最大となる過去画像を示す変数である。
続いて、探索部105は、撮像部101から入力された入力画像と過去画像[i]との類似度sim[0]を求める(ステップS203)。
続いて、探索部105は、変数maxに類似度sim[0]の値を格納し、変数iをインクリメントする(ステップS205)。ここで、maxは、入力画像と過去画像との類似度の最大値を示す変数である。
続いて、探索部105は、i≧Thcountであるか否かを確認し(ステップS207)、i≧Thcountでなければ(ステップS207でNo)、入力画像と過去画像[i]との類似度sim[i]を求める(ステップS209)。
続いて、探索部105は、max<sim[i]であるか否かを確認し(ステップS211)、max<sim[i]であれば(ステップS211でYes)、変数tstartの値を変数iの値に更新し、変数maxの値を類似度sim[i]の値に更新する(ステップS213)。なお、max<sim[i]でなければ(ステップS211でNo)、探索部105は、ステップS213の処理を行わない。
続いて、探索部105は、変数iをインクリメントし(ステップS215)、ステップS207へ戻る。
一方、i≧Thcountであれば(ステップS207でYes)、探索部105は、max>Thであるか否かを確認し(ステップS217)、max>Thであれば(ステップS217でYes)、過去画像[tstart]を所定過去画像として生成部107へ出力する(ステップS221)。ここで、Thは、類似度の閾値である。
なお、max>Thでなければ(ステップS217でNo)、探索部105は、エラー処理を行う(ステップS219)。具体的には、探索部105は、過去画像[tstart]を所定過去画像とし、エラー情報とともに生成部107へ出力する。
図13は、第1実施形態の探索部105で行われる2回目以降の探索処理の手順の流れの一例を示すフローチャートであり、図11に示すフローチャートのステップS105の詳細を示す。但し、図13に示す例では、図11に示すフローチャートのステップS103において、探索部105は、過去画像記憶部103に記憶されている時系列の過去画像のうち、過去画像[tstart]から時系列の順にThcount個の過去画像を時系列の過去画像として取得しているものとする。なお、探索部105は、取得する時系列の過去画像の先頭を過去画像[tstart]ではなく、過去画像[tstart]よりも数フレーム前に撮像された過去画像(例えば、1フレーム前の過去画像[tstart−1])としてもよい。
まず、探索部105は、変数t及び変数tmaxを変数tstartで初期化する(ステップS231)。ここで、tは、過去画像を特定する変数であり、tmaxは、入力画像との類似度が最大となる過去画像を示す変数である。なお、図13に示すフローチャートでは、tstartは、前回の探索処理において入力画像との類似度が最大となる過去画像を示す変数となる。
続いて、探索部105は、撮像部101から入力された入力画像と過去画像[t]との類似度sim[0]を求める(ステップS233)。
続いて、探索部105は、変数maxに類似度sim[0]の値を格納し、変数iを1に初期化し、変数tをインクリメントする(ステップS235)。ここで、iは、カウンタとして用いられる変数である。
続いて、探索部105は、i≧Thcountであるか否かを確認し(ステップS237)、i≧Thcountでなければ(ステップS237でNo)、入力画像と過去画像[t]との類似度sim[i]を求める(ステップS239)。
続いて、探索部105は、max<sim[i]であるか否かを確認し(ステップS241)、max<sim[i]であれば(ステップS241でYes)、変数tmaxの値を変数tの値に更新し、変数maxの値を類似度sim[i]の値に更新する(ステップS243)。なお、max<sim[i]でなければ(ステップS241でNo)、探索部105は、ステップS243の処理を行わない。
続いて、探索部105は、変数iをインクリメントし、変数tをインクリメントし(ステップS245)、ステップS237へ戻る。
一方、i≧Thcountであれば(ステップS237でYes)、探索部105は、max>Thであるか否かを確認し(ステップS247)、max>Thであれば(ステップS247でYes)、過去画像[tmax]を所定過去画像として生成部107へ出力し(ステップS251)、変数tstartの値を変数tmaxの値に更新する(ステップS253)。
なお、max>Thでなければ(ステップS247でNo)、探索部105は、エラー処理を行う(ステップS249)。具体的には、探索部105は、過去画像[tmax]を所定過去画像とし、エラー情報とともに生成部107へ出力し、変数tstartの値を変数tmaxの値に更新する。
図14は、第1実施形態の探索部105で行われる1回目の探索処理の手順の流れの他の例を示すフローチャートであり、図11に示すフローチャートのステップS105の詳細を示す。図14に示すフローチャートでは、入力画像と過去画像との類似度を求めて、閾値と比較し、類似度が閾値以上であれば、当該類似度の過去画像を所定過去画像とする。但し、図14に示す例では、図11に示すフローチャートのステップS103において、探索部105は、過去画像記憶部103から、時系列の過去画像として、先頭の過去画像[0]から時系列の順に過去画像を取得しているものとする。
まず、探索部105は、変数tstartを0に初期化する(ステップS301)。ここで、tstartは、過去画像を特定する変数である。
続いて、探索部105は、撮像部101から入力された入力画像と過去画像[tstart]との類似度sim[tstart]を求める(ステップS303)。
続いて、探索部105は、sim[tstart]>Thであるか否かを確認し(ステップS305)、sim[tstart]>Thであれば(ステップS305でYes)、過去画像[tstart]を所定過去画像として生成部107へ出力する(ステップS309)。ここで、Thは、類似度の閾値である。
一方、sim[tstart]>Thでなければ(ステップS305でNo)、探索部105は、変数tstartをインクリメントし(ステップS307)、ステップS303へ戻る。
図15は、第1実施形態の探索部105で行われる2回目以降の探索処理の手順の流れの他の例を示すフローチャートであり、図11に示すフローチャートのステップS105の詳細を示す。但し、図15に示す例では、図11に示すフローチャートのステップS103において、探索部105は、過去画像記憶部103に記憶されている時系列の過去画像のうち、過去画像[tstart]から時系列の順にThcount個の過去画像を時系列の過去画像として取得しているものとする。なお、探索部105は、取得する時系列の過去画像の先頭を過去画像[tstart]ではなく、過去画像[tstart]よりも数フレーム前に撮像された過去画像(例えば、1フレーム前の過去画像[tstart−1])としてもよい。
まず、探索部105は、変数tを変数tstartで初期化し、変数iを0に初期化する(ステップS321)。ここで、tは、過去画像を特定する変数であり、iは、カウンタとして用いられる変数である。なお、図15に示すフローチャートでは、tstartは、前回の探索処理において入力画像との類似度が最大となる過去画像を示す変数となる。
続いて、探索部105は、i≧Thcountであるか否かを確認し(ステップS323)、i≧Thcountでなければ(ステップS323でNo)、撮像部101から入力された入力画像と過去画像[t]との類似度sim[t]を求める(ステップS325)。
続いて、探索部105は、sim[t]>Thであるか否かを確認し(ステップS327)、sim[t]>Thでなければ(ステップS327でNo)、変数iをインクリメントし、変数tをインクリメントし(ステップS329)、ステップS323へ戻る。
一方、sim[t]>Thであれば(ステップS327でYes)、過去画像[t]を所定過去画像として生成部107へ出力し(ステップS331)、変数tstartの値を変数tの値に更新する(ステップS333)。
なお、ステップS323において、i≧Thcountであれば(ステップS323でYes)、探索部105は、エラー処理を行う(ステップS335)。具体的には、探索部105は、過去画像[t]を所定過去画像とし、エラー情報とともに生成部107へ出力し、変数tstartの値を変数tの値に更新する。
図16は、第1実施形態の探索部105で行われる1回目の探索処理の手順の流れの他の例を示すフローチャートであり、図11に示すフローチャートのステップS105の詳細を示す。図16に示すフローチャートでは、入力画像と過去画像それぞれとの部分領域毎の類似度を求め、最大となる類似度を閾値と比較し、類似度が閾値以上であれば、当該類似度の過去画像を所定過去画像とする。但し、図16に示す例では、図11に示すフローチャートのステップS103において、探索部105は、過去画像記憶部103に記憶されている時系列の過去画像のうち、先頭の過去画像[0]から時系列の順にThcount個の過去画像を時系列の過去画像として取得しているものとする。なお、第1実施形態では、Thcountの値は、予め設定されている。
まず、探索部105は、変数i、変数tstart、及び変数maxを0に初期化する(ステップS401)。ここで、iは、過去画像を特定するパラメータ及びカウンタを兼ねた変数であり、tstartは、入力画像との類似度が最大となる過去画像を示す変数であり、maxは、入力画像の部分領域と過去画像の部分領域との類似度の最大値を示す変数である。
続いて、探索部105は、変数kを0に初期化し(ステップS403)、変数jを0に初期化する(ステップS405)。ここで、kは、入力画像及び過去画像の縦方向の位置を示すパラメータとして用いられる変数であり、jは、入力画像及び過去画像の横方向の位置を示すパラメータとして用いられる変数である。
続いて、探索部105は、撮像部101から入力された入力画像と過去画像[i]との変数j及び変数kにより特定される部分領域における類似度sim[i,(j,k)]を求める(ステップS407)。
続いて、探索部105は、max<sim[i,(j,k)]であるか否かを確認し(ステップS409)、max<sim[i,(j,k)]であれば(ステップS409でYes)、変数tstartの値を変数iの値に更新し、変数maxの値を類似度sim[i,(j,k)]の値に更新する(ステップS411)。なお、max<sim[i,(j,k)]でなければ(ステップS409でNo)、探索部105は、ステップS411の処理を行わない。
続いて、探索部105は、変数jをインクリメントし(ステップS413)、j<verticalであるか否かを確認し(ステップS415)、j<verticalであれば(ステップS415でYes)、ステップS407へ戻る。ここで、verticalは、入力画像及び過去画像の横方向の最大値である。
一方、j<verticalでなければ(ステップS415でNo)、探索部105は、変数kをインクリメントし(ステップS417)、k<heightであるか否かを確認し(ステップS419)、k<heightであれば(ステップS419でYes)、ステップS405へ戻る。ここで、heightは、入力画像及び過去画像の縦方向の最大値である。
なお、k<heightでなければ(ステップS419でNo)、探索部105は、変数iをインクリメントし(ステップS421)、i≧Thcountであるか否かを確認し(ステップS423)、i≧Thcountでなければ(ステップS423でNo)、ステップS403へ戻る。
一方、i≧Thcountであれば(ステップS423でYes)、探索部105は、max>Thであるか否かを確認し(ステップS425)、max>Thであれば(ステップS425でYes)、過去画像[tstart]を所定過去画像として生成部107へ出力する(ステップS429)。ここで、Thは、類似度の閾値である。
なお、max>Thでなければ(ステップS425でNo)、探索部105は、エラー処理を行う(ステップS427)。具体的には、探索部105は、過去画像[tstart]を所定過去画像とし、エラー情報とともに生成部107へ出力する。
図17は、第1実施形態の探索部105で行われる2回目以降の探索処理の手順の流れの他の例を示すフローチャートであり、図11に示すフローチャートのステップS105の詳細を示す。但し、図17に示す例では、図11に示すフローチャートのステップS103において、探索部105は、過去画像記憶部103に記憶されている時系列の過去画像のうち、過去画像[tstart]から時系列の順にThcount1個の過去画像を時系列の過去画像として取得しているものとする。なお、探索部105は、取得する時系列の過去画像の先頭を過去画像[tstart]ではなく、過去画像[tstart]よりも数フレーム前に撮像された過去画像(例えば、1フレーム前の過去画像[tstart−1])としてもよい。
まず、探索部105は、変数i及び変数maxを0に初期化し、変数t及び変数tmaxを変数tstartで初期化する(ステップS441)。ここで、iは、カウンタとして用いられる変数であり、tは、過去画像を特定する変数であり、tmaxは、入力画像との類似度が最大となる過去画像を示す変数である。なお、図17に示すフローチャートでは、tstartは、前回の探索処理において入力画像との類似度が最大となる過去画像を示す変数となる。
続いて、探索部105は、変数kを0に初期化し(ステップS443)、変数jを0に初期化する(ステップS445)。
続いて、探索部105は、撮像部101から入力された入力画像と過去画像[t]との変数j及び変数kにより特定される部分領域における類似度sim[t,(j,k)]を求める(ステップS447)。
続いて、探索部105は、max<sim[t,(j,k)]であるか否かを確認し(ステップS449)、max<sim[t,(j,k)]であれば(ステップS449でYes)、変数tmaxの値を変数tの値に更新し、変数maxの値を類似度sim[t,(j,k)]の値に更新する(ステップS451)。なお、max<sim[t,(j,k)]でなければ(ステップS449でNo)、探索部105は、ステップS451の処理を行わない。
続いて、探索部105は、変数jをインクリメントし(ステップS453)、j<verticalであるか否かを確認し(ステップS455)、j<verticalであれば(ステップS455でYes)、ステップS447へ戻る。
一方、j<verticalでなければ(ステップS455でNo)、探索部105は、変数kをインクリメントし(ステップS457)、k<heightであるか否かを確認し(ステップS459)、k<heightであれば(ステップS459でYes)、ステップS445へ戻る。
なお、k<heightでなければ(ステップS459でNo)、探索部105は、変数iをインクリメントし、変数tをインクリメントし(ステップS461)、i≧Thcountであるか否かを確認し(ステップS463)、i≧Thcountでなければ(ステップS463でNo)、ステップS443へ戻る。
一方、i≧Thcountであれば(ステップS463でYes)、探索部105は、max>Thであるか否かを確認し(ステップS465)、max>Thであれば(ステップS465でYes)、過去画像[tmax]を所定過去画像として生成部107へ出力し(ステップS469)、変数tstartの値を変数tmaxの値に更新する(ステップS471)。
なお、max>Thでなければ(ステップS465でNo)、探索部105は、エラー処理を行う(ステップS467)。具体的には、探索部105は、過去画像[tmax]を所定過去画像とし、エラー情報とともに生成部107へ出力し、変数tstartの値を変数tmaxの値に更新する。
以上のように第1実施形態によれば、類似度により画像を同期するため、任意に撮像された画像同士を同期することができ、移動体が走行する経路の点検などの用途に好適である。例えば、入力画像と過去画像との同期画像を表示することにより、ユーザ(点検者)の目視による異常検知が容易となり、経路の変化具合の確認が容易となる。
特に第1実施形態によれば、時系列の過去画像を撮像した際の移動体の走行速度と入力画像を撮像する際の移動体の走行速度とが異なっていても、入力画像と過去画像とを同期できる。
第1実施形態では、入力画像撮像時の移動体の走行速度に対し、時系列の過去画像撮像時の移動体の走行速度が速い場合について説明した(図2及び図3参照)。この場合、入力画像に対し過去画像はフレーム数が少なく、入力画像と過去画像との対応がM:1となるので、画像同期装置100(探索部105)は、同一の過去画像を複数回用いてフレーム補間を行うことにより、入力画像と同期をとることになる(図4参照)。なお、画像同期装置100(探索部105)は、フレーム補間を行うのではなく、前後の過去画像から補間画像を生成し、入力画像と同期をとるようにしてもよい。
一方、入力画像撮像時の移動体の走行速度に対し、時系列の過去画像撮像時の移動体の走行速度が遅い場合、入力画像に対し過去画像はフレーム数が多く、入力画像と過去画像との対応が1:1となる。従って、画像同期装置100(探索部105)は、過去画像に対しフレームとばしを行うことにより、入力画像と同期をとることになる。
図18は、第1実施形態において、入力画像に対し過去画像のフレーム数が多い場合の所定過去画像の探索結果の一例を示す図である。なお、図18においては、画像141〜143を入力画像、画像151〜157を過去画像として説明する。図18に示す例では、入力画像141の所定過去画像は過去画像151、入力画像142の所定過去画像は過去画像154、入力画像143の所定過去画像は過去画像157となっており、過去画像152、153、155、156は、入力画像と同期されていない。
(第2実施形態)
第2実施形態では、所定過去画像の類似度が閾値未満である場合、その旨を報知する例について説明する。以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
図19は、第2実施形態の画像同期装置200の生成部207の構成の一例を示す図である。図19に示すように、第2実施形態の生成部207は、アラート部221と合成部223とを含む点で、第1実施形態と相違する。
生成部207は、所定第2画像の類似度が閾値未満であることを表す同期画像を生成する。具体的には、アラート部221は、探索部105から出力された所定過去画像にエラー情報が付されていることを検知する。合成部223は、入力画像及び所定過去画像を用いて同期画像を生成する。なお合成部223は、アラート部221によりエラー情報が検知された場合、所定過去画像にアラート(警告)を示す画像を合成して、同期画像を生成する。なお、合成部223は、アラート部221によりエラー情報が検知された場合、所定過去画像ではなく入力画像にアラートを示す画像を合成して、同期画像を生成してもよい。また、所定過去画像ではなく入力画像にエラー情報を付す場合には、アラート部221に入力画像を入力し、合成部223に所定過去画像を入力するようにすればよい。
図20及び図21は、第2実施形態の同期画像の一例を示す図である。図20に示す同期画像では、所定過去画像149Aは、エラー情報が付加された過去画像149に赤などの色彩画像が合成されており、入力画像との類似度が閾値未満であることが警告されている。図21に示す同期画像では、所定過去画像149Bは、エラー情報が付加された過去画像149に警告画像が合成されており、入力画像との類似度が閾値未満であることが警告されている。
なお生成部207は、過去画像141などエラー情報が付加されていないものについては、例えば、図5及び図6で説明したような同期画像を生成し、所定過去画像による警告表示は行わない。
出力部109は、探索部105により探索された所定過去画像の類似度が閾値未満である場合、その旨を報知する。具体的には、出力部109は、所定過去画像の類似度が閾値未満であることを表す同期画像を表示出力する。
以上のように第2実施形態によれば、入力画像との類似度が閾値未満である所定過去画像については、同期画像において警告表示が行われるので、ユーザ(点検者)は、目視による異常検知を極めて容易に行うことができる。
なお第2実施形態では、表示出力により警告を行う例について説明したが、音声出力により警告を行うようにしてもよい。
(第3実施形態)
第3実施形態では、入力画像撮像時と過去画像撮像時との移動体の速度比に応じて、時系列の過去画像に含まれる過去画像の数を決定する例について説明する。以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
図22は、第3実施形態の画像同期装置300の構成の一例を示す図である。図22に示すように、第3実施形態の画像同期装置300は、測定部321、過去速度記憶部323、及び設定部325を更に備える点、並びに探索部305が、第1実施形態と相違する。
測定部321は、例えば、速度センサなどの速度を測定可能な測定装置により実現できる。過去速度記憶部323は、例えば、HDD、SSD、メモリカード、光ディスク、及びRAMなどの磁気的、光学的、又は電気的に記憶可能な記憶装置により実現できる。設定部325は、例えば、CPUなどの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ICなどのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。
測定部321は、撮像部101が搭載された移動体の走行速度を測定する。具体的には、測定部321は、時系列の過去画像撮像時における移動体の走行速度である過去速度(第2速度の一例)を測定しておき、入力画像撮像時における電車の走行速度である現在速度(第1速度の一例)を測定する。
過去速度記憶部323は、測定部321により測定された過去速度を示す速度情報を記憶している。
設定部325は、過去速度記憶部323から速度情報を取得し、測定部321により測定された現在速度と速度情報が示す過去速度とに応じて、時系列の第2画像に含める第2画像の数を設定する。
例えば、入力画像撮像時の移動体の走行速度に対し、時系列の過去画像撮像時の移動体の走行速度が遅い場合、時系列の過去画像の撮像は、入力画像撮像時の1フレーム分の期間において、入力画像撮像時の移動体の走行速度と時系列の過去画像撮像時の移動体の走行速度と速度比分の複数フレーム行われている。
つまり、入力画像xのフレームと過去画像yのフレームとが対応する場合、入力画像(x+1)のフレームと過去画像(y+速度比)のフレームとが対応することになる。例えば、図18に示す例では、入力画像撮像時の移動体の走行速度は、時系列の過去画像撮像時の移動体の走行速度の3倍であるため、入力画像xのフレームと過去画像yのフレームとが対応する場合、入力画像(x+1)のフレームと過去画像(y+3)のフレームとが対応することになる。
このため設定部325は、入力画像撮像時の移動体の走行速度に対し、時系列の過去画像撮像時の移動体の走行速度が遅い場合、時系列の第2画像に含める第2画像の数を速度比以上の値とする必要がある。
一方、入力画像撮像時の移動体の走行速度に対し、時系列の過去画像撮像時の移動体の走行速度が速い場合、入力画像xのフレームと過去画像yのフレームとが対応する場合、入力画像(x+1)のフレームと過去画像y又は過去画像(y+1)のフレームとが対応することになる。
このため設定部325は、入力画像撮像時の移動体の走行速度に対し、時系列の過去画像撮像時の移動体の走行速度が速い場合、時系列の第2画像に含める第2画像の数を2つ程度とすればよいことになる。
探索部305は、撮像部101から入力画像が入力される毎に、過去画像記憶部103から、時系列の過去画像として、前回探索された所定過去画像から時系列の順に設定部325により設定された数の過去画像を取得し、入力画像と過去画像それぞれとの類似度を求め、類似度が閾値以上の所定過去画像を探索する。
以上のように第3実施形態によれば、時系列の第2画像に含める第2画像の数を最適化できるため、画像同期処理に要する時間を短縮することができる。
(第4実施形態)
第4実施形態では、入力画像内の非異常領域において過去画像との類似度を求めて同期を行う例について説明する。以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
図23は、第4実施形態の画像同期装置400の構成の一例を示す図である。図23に示すように、第4実施形態の画像同期装置400は、検知部421及び分割部423を更に備える点、並びに探索部405が、第1実施形態と相違する。
検知部421は、例えば、レーザセンサ、赤外線センサ、遠赤外線センサ、超音波センサ、及び触覚センサなどの異常を検知可能な検知装置により実現できる。分割部423は、例えば、CPUなどの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ICなどのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。
検知部421は、撮像部101から入力された入力画像から異常領域を検知する。具体的には、検知部421は、撮像部101を搭載する移動体に搭載されており、撮像部101の撮像領域における異常を検知することにより、入力画像上の異常領域を検知する。
検知部421は、例えば、撮像部101の撮像領域において、経路(例えば、線路や道路)の破損、隆起、及び障害物の存在など移動体の通常走行が困難となるものや従来存在しないものを検知すると、入力画像上において当該ものが存在する領域を異常領域として検知する。
分割部423は、入力画像を検知部421により検知された異常領域と当該異常領域以外の領域である非異常領域とに分割する。
探索部405は、時系列の過去画像を取得し、非異常領域において、入力画像と過去画像それぞれとの類似度を求める。
以上のように第4実施形態によれば、異常が発生していない非異常領域において、入力画像と過去画像との類似度が求められるため、経路に発生した異常の影響を受けずに、入力画像と過去画像とを同期させることができる。
なお、検知部421により入力画像から異常領域が検知された場合、生成部107は、当該入力画像を用いて生成した同期画像において、異常が検知された旨を表示するようにしてもよい。このようにすれば、ユーザ(点検者)は、目視による異常検知を極めて容易に行うことができる。
(第5実施形態)
第5実施形態では、符号化データを入力し、当該符号化データを復号して入力画像とする例について説明する。以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
図24は、第5実施形態の画像同期装置500の構成の一例を示す図である。図24に示すように、第5実施形態の画像同期装置500は、撮像部101に代えて復号部501を備える点が、第1実施形態と相違する。
復号部501は、例えば、CPUなどの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ICなどのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。
復号部501は、移動体に搭載された撮像部により当該移動体が経路を走行中に撮像された画像の符号化データを復号し、入力画像として探索部105へ入力する。
以上のように第5実施形態によれば、符号化データを入力する場合であっても、第1実施形態と同様の効果を奏する。
(第6実施形態)
第6実施形態では、同期画像を出力するのではなく、符号化する例について説明する。以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
図25は、第6実施形態の画像同期装置600の構成の一例を示す図である。図25に示すように、第6実施形態の画像同期装置600は、出力部109が符号化部609として機能する。
符号化部609は、例えば、CPUなどの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ICなどのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。
符号化部609は、生成部107により生成された同期画像を符号化する。
以上のように第6実施形態によれば、同期画像が符号化されるので、同期画像を他の装置に転送して出力する場合に好適である。
(第7実施形態)
第7実施形態では、画像同期システムについて説明する。以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
図26は、第7実施形態の画像同期システム700の構成の一例を示す図である。図26に示すように、第7実施形態の画像同期システム700は、符号化装置800と復号装置900とを備える。符号化装置800と復号装置900とは、ネットワーク701を介して接続されている。ネットワーク701は、例えば、LAN(Local Area Network)やインターネットなどにより実現できる。
符号化装置800は、図26に示すように、撮像部101と、過去画像記憶部103と、探索部105と、符号化部821と、多重化部823とを、備える。
撮像部101、過去画像記憶部103、及び探索部105は、第1実施形態と同様である。符号化部821及び多重化部823は、例えば、CPUなどの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ICなどのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。
符号化部821は、撮像部101により入力された入力画像を符号化して符号化データを得る。
多重化部823は、符号化部821により得られた符号化データと、探索部105により探索された所定過去画像のインデックスと、を多重化して多重化データを得る。そして、多重化部823は、ネットワーク701を介して多重化データを復号装置900へ送信する。
復号装置900は、図26に示すように、過去画像記憶部903と、分離部921と、復号部923と、選択部925と、生成部107と、出力部109と、操作部111とを、備える。
生成部107、出力部109、及び操作部111は、第1実施形態と同様である。過去画像記憶部903は、過去画像記憶部103と同様である。分離部921、復号部923、及び選択部925は、例えば、CPUなどの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ICなどのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。
分離部921は、符号化装置800からネットワーク701を介して多重化データを受信する。そして分離部921は、受信した多重化データを符号化データとインデックスとに分離する。
復号部923は、分離部921により分離された符号化データを入力画像に復号する。
選択部925は、分離部921により分離されたインデックスを用いて、過去画像記憶部903から所定過去画像を選択する。
以上のように第7実施形態によれば、同期画像を他の装置で出力する場合に、ネットワークで転送するデータ量を大幅に削減することができる。
(ハードウェア構成)
上記各実施形態の画像同期装置のハードウェア構成の一例について説明する。上記各実施形態の画像同期装置は、CPUなどの制御装置と、ROMやRAMなどの記憶装置と、HDDなどの外部記憶装置と、ディスプレイなどの表示装置と、キーボードやマウスなどの入力装置と、通信インタフェースなどの通信装置と、を備えており、通常のコンピュータを利用したハードウェア構成となっている。
上記各実施形態の画像同期装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD(Digital Versatile Disk)、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
また、上記各実施形態の画像同期装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記各実施形態の画像同期装置で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記各実施形態の画像同期装置で実行されるプログラムを、ROM等に予め組み込んで提供するようにしてもよい。
上記各実施形態の画像同期装置で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、CPUがHDDからプログラムをRAM上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
例えば、上記各実施形態のフローチャートにおける各ステップを、その性質に反しない限り、実行順序を変更し、複数同時に実施し、あるいは実施毎に異なった順序で実施してもよい。
以上のように、上記各実施形態によれば、任意に撮像された画像であっても同期することができる。