以下、本発明の実施の形態について、図面を参照しつつ詳細に説明する。
本発明による制御区間長測定装置は、制御区間長の測定対象となる踏切制御子の設置場所付近において、通常運行する列車の動画(動画像)を撮像し、撮像された動画に基づいて、制御区間を通過中の列車の速度を算出し、算出された列車速度に基づいて制御区間長を算出するものである。
図1は、本発明による制御区間長測定装置の構成を説明するための図である。
同図に示すように、本発明による制御区間長測定装置100は、概ね直方体状の形状を有する本体部101を備え、その上面側に、表示部110と複数のスイッチ121〜125とを備えている。
表示部110は、各種メニューや、算出された制御区間長を表示するためのものであり、本実施形態においては、テキスト表示液晶ディスプレイ(LCD)によって構成されている。
複数のスイッチ121〜125は、制御区間長測定装置100に対する指示や、制御区間長の算出のために必要となるデータ(後述する列車までの距離等)を入力するための入力部であって、本実施形態においては、カーソルの上方向の移動や入力値の増加を指示するための上移動スイッチ121と、カーソルの下方向の移動や入力値の減少を指示するための下移動スイッチ122と、カーソルの左方向の移動を指示するための左移動スイッチ123と、カーソルの右方向の移動を指示するための右移動スイッチ124と、選択された項目等を決定するための決定スイッチ125とによって構成されている。
また、制御区間長測定装置100は、同図に示すように、使用時に本体部101に接続されるものとして、光センサ部130と、撮像部140と、電源部150とを備える。
光センサ部130は、制御区間長の測定対象となる踏切制御子の動作を検出するためのものであり、本実施形態においては、踏切制御子の動作状態を示す発光部(具体的には、踏切制御子が備えるリレーLED)の点灯及び消灯を検知することによって、踏切制御子の動作を検出するようにしている。
光センサ部130は、概ね直方体状の形状を有し、内部にフォトトランジスタを備えている。また、光センサ部130は、受光側の面に開口部131を有し、当該開口部131がリレーLEDにはまり込むように踏切制御子に装着される。光センサ部130の受光側の内部にはマグネットが取り付けられており、踏切制御子の筐体に張り付くようになっている。また、光センサ部130は、2線式ケーブル132によって、本体部101と接続される。
撮像部140は、列車の動画を撮像するためのものであり、本実施形態においては、撮像レンズ141と、撮像カメラ142とによって構成されている。
撮像レンズ141は、被写体の光学像を撮像カメラ142の撮像素子上に結像させるためのものであって、本実施形態においては、より広い範囲を撮像可能にするため広角レンズによって構成されている。また、本実施形態においては、撮像レンズ141は、絞り調整機能を備えたものが使用される。
撮像カメラ142は、撮像レンズ141によって結像された被写体の光学像を電気信号に変換し、更に、アナログ・デジタル(A/D)変換をして、画像データ(例えば、濃淡データ)として出力するものである。本実施形態においては、撮像カメラ142は、CCDカメラによって構成されている。また、本実施形態においては、撮像カメラ142は、USB2.0インタフェースを備えており、USBケーブル143によって、本体部101と接続される。撮像カメラ142は、本体部101からの指示に応じて、予め設定されたフレームレートでの撮像を行って、撮像されたフレーム画像データを、本体部101に順次送信する。本実施形態においては、撮像カメラ142によって撮像されるフレーム画像データは、640ピクセル×480ピクセルの大きさで、各ピクセルは8ビット(256階調)の濃淡データ(濃度値)となっている。
電源部150は、制御区間長測定装置100を動作させるために必要な電力を供給するためのものであり、本実施形態においては、モバイルバッテリによって構成されている。電源部150は、USBケーブル151によって本体部101に接続することができるように構成されており、本体部101は、電源部150が接続されると、動作を開始するように構成されている。
図2は、制御区間長測定装置100のハードウェア構成を説明するための図である。なお、同図では、簡単のため、電源部150については省略してある。
同図に示すように、制御区間長測定装置100の本体部101は、表示部110と、入力部120と、マイコン(マイクロコントローラ)160と、ボードコンピュータ170とを備える。
マイコン160は、光センサ部130によって検知された光量に基づいて、踏切制御子のリレーLEDの点灯状態(点灯しているか消灯しているか)を監視するためのもの(点灯状態監視部)である。マイコン160と光センサ部130(フォトトランジスタ)とは、2線式ケーブル132を介して、適宜電気的に接続されており、光センサ部130によって検知された光量に応じた電圧が、アナログ入力ポートを介して、マイコン160に入力されるように構成されている。
マイコン160は、内部にメモリ(ROM161及びRAM162)、A/D変換器163及びタイマ164を備えている。マイコン160は、内部のROM161に予め記録されたプログラムを実行することで、踏切制御子のリレーLEDの点灯状態の監視処理(点灯状態監視処理)を行う。マイコン160による点灯状態監視処理の詳細については後述する。
A/D変換器163は、光センサ部130からの入力信号の電圧値をデジタルデータに変換するためのものである。タイマ164は、光センサ部130からの入力信号の定期的な監視のための時間管理をするためのものである。
ボードコンピュータ170は、制御区間長測定装置100の動作を制御するためのものであり、内部に、CPU171と、メモリ(ROM172及びRAM173)と、USBインタフェース部174とを備えている。CPU171は、ROM172に予め記録されたプログラムを実行することで、制御区間長測定装置100の各種機能を実現する。
USBインタフェース部174は、撮像部140との間のデータのやり取りを制御するためのものであり、USBインタフェース部174を介して、撮像部140に対する指示(コマンド)が送られたり、撮像部140から送られてくる動画データが受信されたりする。
また、ボードコンピュータ170には、前述した表示部110が接続されており、ボードコンピュータ170の制御によって、メニュー画面や算出された制御区間長等が表示部110に表示される。また、ボードコンピュータ170には、入力部120が接続されており、入力部120を介して、ユーザからの指示等が、ボードコンピュータ170に入力される。前述したように、本実施形態においては、入力部120は、複数のスイッチ121〜125によって構成されている。
図3は、制御区間長測定装置100(ボードコンピュータ170)の機能構成(ソフトウェア構成)を説明するための図である。
同図に示すように、制御区間長測定装置100は、踏切制御子動作検出部310と、撮像処理部320と、画像処理部330と、制御区間長算出部340と、入力処理部350と、表示処理部360とを備える。各部310〜360は、基本的に、ボードコンピュータ170が備えるCPU171が、ボードコンピュータ170が備えるROM172に予め記録されたプログラムを実行することによって実現される。
踏切制御子動作検出部310は、踏切制御子の動作を検出するためのものである。より具体的には、踏切制御子が、制御区間内に列車が進入したことを検知したこと、及び、制御区間内から列車が進出したことを検知したことを検出するものである。本実施形態においては、マイコン160から通知されるリレーLEDの点灯状態に基づいて、踏切制御子の動作を検出する。踏切制御子動作検出部310における処理の詳細については後述する。
撮像処理部320は、踏切制御子動作検出部310等からの指示に基づいて、撮像処理を行うものである。より具体的には、踏切制御子動作検出部310等からの指示に基づいて、撮像部140に対して、撮像開始や撮像停止を指示するコマンドを送信する。また、撮像部140から順次送られてくるフレーム画像データを、RAM173上に予め確保された領域(動画データ格納領域)に格納する。動画データ格納領域の詳細については後述する。
画像処理部330は、撮像部140によって撮像され、RAM173上に格納された動画データ等に対して画像処理を行うものである。より具体的には、RAM173上に格納された動画データに対して画像処理を行うことによって、列車の速度を算出する。また、撮像レンズ141の絞りを調整するための絞り調整補助機能起動時には、各フレーム画像の濃度値の平均値及び標準偏差を算出する。画像処理部330における処理の詳細については後述する。
制御区間長算出部340は、画像処理部330によって算出された列車の速度等に基づいて、踏切制御子の制御区間長を算出するものである。より具体的には、画像処理部330によって各フレーム画像毎に算出された列車の瞬間速度等に基づいて、制御区間長を算出する。制御区間長算出部340における処理の詳細については後述する。
入力処理部350は、入力部120を介して入力されるユーザの指示や各種パラメータ(列車までの距離等)をボードコンピュータ170内に入力するためのものである。表示処理部360は、各種メニューや、制御区間長算出部340によって算出された制御区間長等を、表示部110に表示するためのものである。
次に、マイコン160による点灯状態監視処理の詳細について説明する。
図4は、マイコン160による点灯状態監視処理の流れを説明するためのフローチャートである。同図に示す処理は、ボードコンピュータ170から点灯状態監視処理の開始を指示されるとマイコン160によって実行される処理である。なお、本実施形態においては、ボードコンピュータ170からマイコン160に対して、点灯状態監視処理の開始を指示するための信号が出力されており、ボードコンピュータ170は、当該信号のレベルを変化させることで、マイコン160に対して点灯状態監視処理の開始を指示する。
本点灯状態監視処理においては、まず、踏切制御子の種別、すなわち、閉電路式か開電路式かが自動判別される。これは、踏切制御子の種別(閉電路式か開電路式か)によって、監視処理の内容(順番)が異なることになるからである。より具体的には、閉電路式の場合は、踏切制御子のリレーLEDは、通常は点灯しており、踏切制御子が列車を検知している間だけ消灯することになるので、まず、点灯状態から消灯状態への移行を監視し、その後、消灯状態から点灯状態への移行を監視することになる。一方、開電路式の場合は、踏切制御子のリレーLEDは、通常は消灯しており、踏切制御子が列車を検知している間だけ点灯することになるので、まず、消灯状態から点灯状態への移行を監視し、その後、点灯状態から消灯状態への移行を監視することになる。
踏切制御子の種別を判別するため、マイコン160は、同図に示すように、まず、光センサ部130によって検知された光量を取得する(S41)。すなわち、光センサ部130に対して電力を供給し、光センサ部130から入力される信号の電圧を、内部のA/D変換器163によって、デジタルデータに変換する。本実施形態においては、光センサ部130の出力をデジタル変換したものを、そのまま、光量を示すデータ(光量値データ)として利用する。本実施形態においては、光量値データは、0〜5000mVの範囲の値となる。
次に、取得された光量が、所定の閾値(例えば、1000mV)以上であるか否かが判別される(S42)。判別の結果、光量が所定の閾値以上であった場合は(S42:Yes)、リレーLEDは、点灯していると判断する(S43)。そして、この場合は、通常状態において、リレーLEDが点灯していることになるので、踏切制御子は、閉電路式(HC形)と判断する。
一方、光量が所定の閾値未満であった場合は(S42:No)、リレーLEDは、消灯していると判断する(S44)。そして、この場合は、通常状態において、リレーLEDが消灯していることになるので、踏切制御子は、開電路式(HO形)と判断する。
なお、踏切制御子の種別の判別結果については、ボードコンピュータ170にも通知される。本実施形態においては、マイコン160からボードコンピュータ170に対して、踏切制御子種別信号が出力されており、閉電路式と判断した場合は、踏切制御子種別信号がLレベルにされ、開電路式と判断した場合は、踏切制御子種別信号がHレベルにされる。
以上のようにして、踏切制御子の種別の判別が完了すると、踏切制御子の種別に応じた監視処理を行う。すなわち、踏切制御子が閉電路式だった場合は、まず、消灯監視処理を行い(S45)、その後、点灯監視処理を行う(S46)。一方、踏切制御子が開電路式だった場合は、まず、点灯監視処理を行い(S47)、その後、消灯監視処理を行う(S48)。
次に、点灯監視処理及び消灯監視処理の詳細について説明する。
図5は、点灯監視処理の流れを説明するためのフローチャートである。
本点灯監視処理は、光センサ部130によって検知された光量を定期的(例えば、5ms毎)に確認(取得)することで、踏切制御子のリレーLEDの点灯を監視するものである。
同図に示すように、まず、前述した図4のステップS41と同様にして、光センサ部130によって検知された光量を取得する(S51)。
次に、今回取得した光量と、前回取得した光量とが比較され、今回取得した光量の方が大きいか否かが判別される(S52)。なお、前回取得した光量としては、本処理の前の処理(例えば、図4のステップS41)において取得された光量が、RAM162上に適宜保存されているものとする。本実施形態においては、今回取得した光量が、前回取得した光量より、所定値(例えば、10mV)以上大きかった場合に、今回取得した光量の方が大きいと判別する。
判別の結果、今回取得した光量の方が大きかった場合は(S52:Yes)、光量の増加回数を記憶するためのカウント値Nをインクリメント(+1)する(S53)。なお、カウント値Nは、本点灯監視処理の開始時に0に初期化されているものとする。一方、今回取得した光量の方が大きくなかった場合は(S52:No)、カウント値Nを0にクリアする(S54)。
なお、本実施形態においては、ステップS52の判別処理において、今回取得した光量が、所定の閾値(例えば、1000mV)以上であるか否かについても判別しており、今回取得した光量が所定の閾値以上であった場合は、前回取得した光量との比較結果に関わらず、無条件に、カウント値Nをインクリメントするようにしている。
次に、カウント値Nが所定値(本実施形態においては、3)に達したか否かが判別される(S55)。判別の結果、カウント値Nが3に達していなかった場合は(S55:No)、今回取得した光量を、前回取得した光量としてRAM162上に保存する(S56)。そして、所定時間(例えば、5ms)だけ待機した上で(S57)、再度、ステップS51に戻って、前述した処理S51〜S55を繰り返す。
一方、カウント値Nが3に達していた場合(S55:Yes)、すなわち、取得した光量が3回連続で増加していた場合は、リレーLEDが点灯したと判断し(S58)、リレーLEDが点灯したことをボードコンピュータ170に通知する。本実施形態においては、マイコン160からボードコンピュータ170に対して、リレーLEDの点灯状態を示す信号(リレーLED点灯状態信号)が出力されており、リレーLEDの点灯を検知した場合は、リレーLED点灯状態信号がHレベルにされ、リレーLEDの消灯を検知した場合は、リレーLED点灯状態信号がLレベルにされる。
以上のような処理を行うことにより、消灯状態から点灯状態への移行を早い段階から検知することができるようになるので、踏切制御子のリレーLEDの点灯を迅速に検知することが可能となる。
また、ステップS52の処理において、今回取得した光量が所定の閾値(例えば、1000mV)以上であった場合は、前回取得した光量との比較結果に関わらず、無条件に、光量の増加回数を記憶するためのカウント値Nをインクリメントするようにすることにより、なんらかの理由で、前回の光量との比較において光量の増加を所定回数検知できなかった場合についても、点灯したことを確実に検知することが可能となる。
図6は、消灯監視処理の流れを説明するためのフローチャートである。
本消灯監視処理は、光センサ部130によって検知された光量を定期的(例えば、5ms毎)に確認(取得)することで、踏切制御子のリレーLEDの消灯を監視するものである。
同図に示すように、まず、前述した図4のステップS41と同様にして、光センサ部130によって検知された光量を取得する(S61)。
次に、今回取得した光量と、前回取得した光量とが比較され、今回取得した光量の方が小さいか否かが判別される(S62)。なお、前回取得した光量としては、本処理の前の処理(例えば、図4のステップS41)において取得された光量が、RAM162上に適宜保存されているものとする。本実施形態においては、今回取得した光量が、前回取得した光量より、所定値(例えば、10mV)以上小さかった場合に、今回取得した光量の方が小さいと判断する。
判別の結果、今回取得した光量の方が小さかった場合は(S62:Yes)、光量の減少回数を記憶するためのカウント値Nをインクリメントする(S63)。なお、カウント値Nは、本消灯監視処理の開始時に0に初期化されているものとする。一方、今回取得した光量の方が小さくなかった場合は(S62:No)、カウント値Nを0にクリアする(S64)。
なお、本実施形態においては、ステップS62の判別処理において、今回取得した光量が、所定の閾値(例えば、100mV)以下であるか否かについても判別しており、今回取得した光量が所定の閾値以下であった場合は、前回取得した光量との比較結果に関わらず、無条件に、光量の減少回数を記憶するためのカウント値Nをインクリメントするようにしている。
次に、カウント値Nが所定値(本実施形態においては、3)に達したか否かが判別される(S65)。判別の結果、カウント値Nが3に達していなかった場合は(S65:No)、今回取得した光量を、前回取得した光量としてRAM162上に保存する(S66)。そして、所定時間(例えば、5ms)だけ待機した上で(S67)、再度、ステップS61に戻って、前述した処理S61〜S65を繰り返す。
一方、カウント値Nが3に達していた場合(S65:Yes)、すなわち、取得した光量が3回連続で減少していた場合は、リレーLEDが消灯したと判断し(S68)、リレーLEDが消灯したことをボードコンピュータ170に通知する。すなわち、リレーLED点灯状態信号がLレベルにされる。
以上のような処理を行うことにより、点灯状態から消灯状態への移行を早い段階から検知することができるようになるので、踏切制御子のリレーLEDの消灯を迅速に検知することが可能となる。
また、ステップS62の処理において、今回取得した光量が所定の閾値(例えば、100mV)以下であった場合は、前回取得した光量との比較結果に関わらず、無条件に、光量の減少回数を記憶するためのカウント値Nをインクリメントするようにすることにより、なんらかの理由で、前回の光量との比較において光量の減少を所定回数検知できなかった場合についても、消灯したことを確実に検知することが可能となる。
次に、ボードコンピュータ170における処理の詳細について説明する。
まず、踏切制御子動作検出部310における処理の詳細について説明する。
図7は、踏切制御子動作検出部310における処理の流れを説明するためのフローチャートである。同図に示す処理は、入力部120を介して、制御区間長の測定開始が指示されると、踏切制御子動作検出部310によって実行される処理である。
同図に示すように、まず、踏切制御子の種別を判別する(S71)。すなわち、マイコン160に対して、点灯状態監視処理の開始を指示し、当該指示に応答して、マイコン160から出力される踏切制御子種別信号に基づいて、踏切制御子の種別を判別する。例えば、踏切制御子種別信号がLレベルであれば、閉電路式であると判別し、Hレベルであれば、開電路式であると判別する。
なお、前述したように、本実施形態においては、マイコン160からは、踏切制御子種別信号と共に、リレーLED点灯状態信号も出力されており、踏切制御子種別信号及びリレーLED点灯状態信号を利用することにより、マイコン160等が正常動作しているか否かを判別することができるようになっている。すなわち、踏切制御子が閉電路式の場合は、通常、リレーLEDは点灯しているので、踏切制御子種別信号及びリレーLED点灯状態信号は、それぞれ、Lレベル及びHレベルということになる。一方、踏切制御子が開電路式の場合は、通常、リレーLEDは消灯しているので、踏切制御子種別信号及びリレーLED点灯状態信号は、それぞれ、Hレベル及びLレベルということになる。つまり、正常時は、踏切制御子種別信号及びリレーLED点灯状態信号は、必ず、一方がHレベルで他方がLレベルということになる。従って、踏切制御子種別信号及びリレーLED点灯状態信号が、共にHレベル又はLレベルの場合は、なんらかの異常が発生していることになるので、このような状態が確認された場合は、エラーを通知して、測定動作を停止させる。
以上のようにして、踏切制御子の種別の判別処理S71が終了すると、次に、踏切制御子が、制御区間内に列車が進入したことを検知して、リレーLEDの点灯状態が変化したか否かが判別される(S72)。より具体的には、踏切制御子が閉電路式の場合は、マイコン160から通知されるリレーLED点灯状態信号の状態がHレベルからLレベルになったか否かが判別され、踏切制御子が開電路式の場合は、リレーLED点灯状態信号の状態がLレベルからHレベルになったか否かが判別される。
判別の結果、リレーLEDの点灯状態が変化していなかった場合は(S72:No)、判別処理S72を繰り返す。一方、リレーLEDの点灯状態が変化していた場合(S72:Yes)、すなわち、列車の制御区間内への進入が踏切制御子によって検知された場合は、動画の撮像を開始するため、撮像処理部320に対して撮像開始を指示する(S73)。当該指示を受けた撮像処理部320は、撮像部140に対して、撮像開始を指示する。撮像開始が指示された撮像部140は、予め設定されたフレームレート(例えば、30fps)での撮像を開始し、撮像されたフレーム画像データを順次、撮像処理部320に送信する。
次に、踏切制御子が、制御区間内から列車が進出したことを検知して、リレーLEDの点灯状態が変化したか否かが判別される(S74)。より具体的には、踏切制御子が閉電路式の場合は、リレーLED点灯状態信号の状態がLレベルからHレベルになったか否かが判別され、踏切制御子が開電路式の場合は、リレーLED点灯状態信号の状態がHレベルからLレベルになったか否かが判別される。
判別の結果、リレーLEDの点灯状態が変化していなかった場合は(S74:No)、判別処理S74を繰り返す。一方、リレーLEDの点灯状態が変化していた場合(S74:Yes)、すなわち、制御区間内からの列車の進出が踏切制御子によって検知された場合は、動画の撮像を停止するため、撮像処理部320に対して撮像停止を指示する(S75)。当該指示を受けた撮像処理部320は、撮像部140に対して、撮像停止を指示する。
以上のような処理を行うことにより、踏切制御子が制御区間内への列車の進入を検知してから、踏切制御子が制御区間内からの列車の進出を検知するまでの間、撮像部140による撮像が行われることになる。すなわち、撮像された動画の長さ(撮像時間)が、踏切制御子の制御区間内を列車が通過するの要した時間と一致することになる。撮像された動画の長さ(撮像時間)は、撮像されたフレーム画像の数にフレームレートをかけた値となるので、以上のような処理を行うことで、踏切制御子の制御区間内を列車が通過するの要した時間を算出することができることになる。
次に、撮像部140によって撮像された動画データを格納する動画データ格納領域の詳細について説明する。
図8は、RAM173上に確保された動画データ格納領域の構成を説明するための図である。
同図に示すように、動画データ格納領域800には、フレーム番号810と、フレーム画像データ820とが対応付けられて格納される。
フレーム番号810は、撮像部140からフレーム画像データ820と共に送られてくるものであって、撮像順を示す連続番号となっている。撮像処理部320は、撮像部140からフレーム番号810及びフレーム画像データ820を受信すると、同図に示すように、両者を対応付けて、動画データ格納領域800に順次格納する。
本実施形態においては、動画データ格納領域800として、フレームレート30fpsで30秒分、すなわち、900フレーム分のフレーム番号810及びフレーム画像データ820が格納できるようなサイズの領域がRAM173上に確保されている。
次に、画像処理部330における処理の詳細について説明する。
図9は、列車の先頭部及び最後部それぞれが測定点に到達した時刻並びに列車の進行方向を求めるための処理の概要を説明するための図である。同図(a)は、列車が写っていない状態を示し、同図(b)は列車の先頭部が写っている状態(列車の進行方向が左の場合)を示し、同図(c)は列車の最後部が写っている状態(列車の進行方向が左の場合)を示している。なお、簡単のため、同図では、列車以外のもの(背景)については省略してある。また、同図に示した例では、列車の進行方向が右の場合は、同図(c)が列車の先頭部が写っている状態を示し、同図(b)が列車の最後部が写っている状態を示していると考えることもできる。
前述したように、撮像部140は、踏切制御子の制御区間内へ列車が進入してから進出するまでの間、動画の撮像を行うことになる。一方、撮像部140は、踏切制御子の近くに設置されるが、踏切制御子は、制御区間のほぼ中央に位置することになるので、撮像部140についても、制御区間のほぼ中央に位置することになる。そのため、撮像部140によって撮像される動画では、まず、列車が写っていない状態(フレーム画像)が続き、列車が撮像部140に接近して、撮像部140の前を通過するようになると、列車が写るようになり、その後しばらく、列車が写った状態(フレーム画像)が続き、その後、撮像部140の前を列車が通過し終わると、また、列車が写っていない状態(フレーム画像)が続くことになる。
本実施形態においては、以上のような動画データに基づいて、列車の先頭部及び最後部それぞれが撮像部140の直前(測定点)に到達した時刻並びに列車の進行方向を求める。
列車の先頭部が撮像部140の直前(測定点)に到達した時刻については、同図(b)に示すように、列車901の先頭部が撮像部140によって撮像されたフレーム画像900の中心部に到達した時刻を求めればよいことになる。そのため、本実施形態においては、撮像された順番(フレーム番号の昇順)に順次、各フレーム画像と、先頭のフレーム画像(列車が写っていないフレーム画像)との間で、フレーム画像の(左右方向の)中心部分(矩形領域910)の類似度(例えば、ゼロ平均正規化相互相関による類似度)を算出していく。そして、算出された類似度に基づいて、列車の先頭部がフレーム画像の中心部に到達した時点のフレーム画像を特定する。すなわち、列車の先頭部がフレーム画像の中心部に到達すると、そのフレーム画像(同図(b))と、列車が写っていない先頭フレーム画像(同図(a))との間では、フレーム画像900の中心部分910の類似度が下がることになるので、算出された類似度が所定の閾値以下になったフレーム画像を、列車の先頭部がフレーム画像の中心部に到達した時点のフレーム画像であると判断する。そして、当該フレーム画像のフレーム番号に基づいて、列車の先頭部が測定点に到達した時刻t1を算出する。具体的には、類似度が所定の閾値以下になったフレーム画像のフレーム番号と、先頭フレーム画像のフレーム番号との差に、フレームレートを乗算することによって、列車の先頭部が測定点に到達した時刻t1を算出する。なお、本実施形態においては、先頭フレームが撮像された時刻t0(撮像開始時刻)を0としている。
以上のようにして、列車の先頭部がフレーム画像の中心部に達した時点のフレーム画像が特定されると、更に、当該フレーム画像と、先頭フレーム画像(列車が写っていないフレーム画像)との間で、フレーム画像の左端部分(矩形領域920)及び右端部分(矩形領域930)それぞれの類似度を算出する。そして、算出された類似度に基づいて、列車の進行方向を判別する。すなわち、列車が右から左へ進行している場合(同図(b))は、列車が写っていない先頭フレーム画像(同図(a))との間では、フレーム画像900の右端部分930の類似度が下がることになるので、左端部分920の類似度より右端部分930の類似度が低い場合は、進行方向は左であると判断する。一方、列車が左から右へ進行している場合(同図(c))は、列車が写っていない先頭フレーム画像(同図(a))との間では、フレーム画像900の左端部分920の類似度が下がることになるので、右端部分930の類似度より左端部分920の類似度が低い場合は、進行方向は右であると判断する。
また、列車の最後部が撮像部140の直前(測定点)に到達した時刻については、同図(c)に示すように、列車901の最後部が撮像部140によって撮像されたフレーム画像の中心部に到達した時刻を求めればよいことになる。そのため、本実施形態においては、動画データを末尾のフレーム画像から、逆方向に見ていく。このように動画の再生方向(各フレーム画像を処理する順番)を逆にすれば、前述した先頭部の場合と同じ処理が利用できることになる。すなわち、末尾のフレーム画像から、撮像された順番とは逆順(フレーム番号の降順)に、順次、各フレーム画像と、末尾のフレーム画像(列車が写っていないフレーム画像)との間で、フレーム画像の(左右方向の)中心部分910の類似度を算出していく。そして、算出された類似度に基づいて、列車の最後部がフレーム画像の中心部に到達した時点のフレーム画像を特定する。すなわち、列車の最後部がフレーム画像の中心部に到達すると、そのフレーム画像(同図(c))と、列車が写っていない末尾フレーム画像(同図(a))との間では、フレーム画像900の中心部分910の類似度が下がることになるので、算出された類似度が所定の閾値以下になったフレーム画像を、列車の最後部がフレーム画像の中心部に到達した時点のフレーム画像であると判断する。そして、当該フレーム画像のフレーム番号に基づいて、列車の最後部が測定点に到達した時刻t2を算出する。具体的には、類似度が所定の閾値以下になったフレーム画像のフレーム番号と、先頭フレームのフレーム番号との差に、フレームレートを乗算することによって、列車の最後部が測定点に到達した時刻t2を算出する。
図10は、画像処理部330において、列車の先頭部が測定点に到達した時刻及び列車の進行方向を求めるための処理の流れを説明するためのフローチャートである。同図に示す処理は、撮像部140による動画撮像が終了した後に、入力部120を介して、列車までの距離が入力されると、画像処理部330によって実行される処理である。
同図に示すように、まず、処理対象とするフレーム画像を選択する(S1001)。処理対象とするフレーム画像は、先頭のフレーム画像から、撮像された順番(フレーム番号の昇順)で、順次、選択される。
次に、選択された処理対象フレーム画像と先頭フレーム画像との間で、フレーム画像の中心部分910の類似度が算出される(S1002)。本実施形態においては、類似度としては、ゼロ平均正規化相互相関による類似度を算出する。
次に、算出された類似度が予め決められた所定の閾値(例えば、0.8)以下であるか否かが判別される(S1003)。判別の結果、所定の閾値以下でなかった場合は(S1003:No)、次の処理対象フレーム画像を選択した上で(S1001)、前述した処理S1002〜S1003を繰り返す。
一方、算出された類似度が所定の閾値以下であった場合は(S1003:Yes)、現在の処理対象フレーム画像が、列車の先頭部が測定点に到達したフレーム画像であると判断し、当該フレーム画像に対応する時刻を、列車の先頭部が測定点に到達した時刻t1として算出する(S1004)。すなわち、当該フレーム画像のフレーム番号と、先頭フレーム画像のフレーム番号の差に、フレームレートを乗算することによって、時刻t1を算出する。
次に、列車の進行方向を判別するため、現在の処理対象フレーム画像と、先頭フレーム画像との間で、フレーム画像の左端部分920及び右端部分930それぞれの類似度が算出される(S1005)。
次に、算出された左端部分920の類似度と、右端部分930の類似度とを比較して、いずれの類似度が低いかが判別される(S1006)。判別の結果、右端部分930の類似度の方が低い場合は(S1006:右)、進行方向は左であると判断する(S1007)。一方、左端部分920の類似度の方が低い場合は(S1006:左)、進行方向は右であると判断する(S1008)。
図11は、画像処理部330において、列車の最後部が測定点に到達した時刻を求めるための処理の流れを説明するためのフローチャートである。同図に示す処理は、図10に示した処理に続けて、画像処理部330によって実行される。
同図に示すように、まず、処理対象とするフレーム画像を選択する(S1101)。処理対象とするフレーム画像は、逆再生状態となるように、末尾のフレーム画像から、撮像された順番とは逆順(フレーム番号の降順)で、順次、選択される。
次に、選択された処理対象フレーム画像と末尾フレーム画像との間で、フレーム画像の中心部分910の類似度が算出される(S1102)。
次に、算出された類似度が予め決められた所定の閾値(例えば、0.8)以下であるか否かが判別される(S1103)。判別の結果、所定の閾値以下でなかった場合は(S1103:No)、次の処理対象フレーム画像を選択した上で(S1101)、前述した処理S1102〜S1103を繰り返す。
一方、算出された類似度が所定の閾値以下であった場合は(S1103:Yes)、現在の処理対象フレーム画像が、列車の最後部が測定点に到達したフレーム画像であると判断し、当該フレーム画像に対応する時刻を、列車の最後部が測定点に到達した時刻t2として算出する(S1104)。すなわち、当該フレーム画像のフレーム番号と、先頭フレーム画像のフレーム番号の差に、フレームレートを乗算することによって、時刻t2を算出する。
図10及び図11に示した処理によって、列車の先頭部及び最後部が測定点へ到達した時刻t1,t2並びに列車の進行方向が求まると、画像処理部330は、次に、列車の速度を算出する。
図12は、画像処理部330において、列車の速度を算出する処理の流れを説明するためのフローチャートである。
同図に示した処理では、列車の先頭部が測定点に到達した時刻t1から列車の最後部が測定点に到達した時刻t2までのフレーム画像に基づいて、列車の速度が各フレーム画像毎に算出される。
同図に示すように、まず、処理対象とするフレーム画像を選択する(S1201)。処理対象とするフレーム画像は、列車の先頭部が測定点に到達した時刻t1のフレーム画像(図10のステップS1004で特定されたフレーム画像)から、列車の最後部が測定点に到達した時刻t2のフレーム画像(図11のステップS1104で特定されたフレーム画像)まで、撮像された順番(フレーム番号の昇順)で、順次、選択される。
次に、選択された処理対象フレーム画像に対して、エッジ検出処理が行われる(S1202)。本実施形態においては、Sobelフィルタを適用して、エッジ検出処理を行う。
次に、エッジ検出処理が施された処理対象フレーム画像に対して、二値化処理が行われる(S1203)。本実施形態においては、各ピクセルの濃度値が、予め決められた所定の閾値(例えば、30)以上であるか否かを判別し、閾値以上であれば「1」とし、閾値未満であれば「0」とすることで、二値化したフレーム画像データを作成する。
次に、二値化されたフレーム画像データに対して、ノイズ除去処理が行われる(S1204)。本実施形態においては、一般的な膨張及び収縮処理を行うことで、ノイズ除去処理を行う。
次に、ノイズ除去がされた二値化フレーム画像に基づいて、列車の速度算出に使用される特徴線が抽出される(S1205)。本実施形態においては、列車の進行方向と垂直な方向となるフレーム画像の縦方向(上下方向)に延びる線(縦線)を、列車を識別するための特徴線として抽出する。
図13は、特徴線の抽出方法を説明するための図である。
画像処理部330は、同図に示すように、一定の横幅(本実施形態においては、4ピクセル)を有する探索範囲で、二値化フレーム画像に対して順次探索を行い、探索範囲内で値「1」が縦方向に連続している領域を縦線と判断して特徴線として抽出する。なお、本実施形態においては、縦方向の長さが所定の長さ(例えば、20ピクセル)以上のものが、特徴線として抽出される。
同図に示した例においては、領域1301は、横幅4ピクセルの範囲内において、値「1」が縦方向に20ピクセル連続しているので、縦線と判断されて、特徴線として抽出される。
なお、抽出された特徴線に対応する部分が、次のフレーム画像においても写っているようにするため(後述するテンプレートマッチングが確実に行えるようするため)、上記特徴線の探索は、列車の進行方向(及び後述する速度)を考慮して、次のフレーム画像においても写っていると考えられる範囲について行われる。
図12に示すように、特徴線の抽出処理S1205が完了すると、次に、抽出された特徴線(縦線)を含むテンプレート領域が作成される(S1206)。本実施形態においては、抽出された特徴線(縦線)のうち、最も長い特徴線(縦線)に基づいて、複数のテンプレート領域が作成される。より具体的には、抽出された最長縦線の長さに応じて、10〜20のテンプレート領域が作成される。
図14は、テンプレート領域の作成方法を説明するための図である。同図は、20個のテンプレート領域が作成された場合を示している。
同図に示すように、特徴線1401を複数(同図の場合、20)に分割して、各分割部分を含む領域がテンプレート領域1411〜1430として作成される。本実施形態においては、特徴線1401の各分割部分を中心に左右方向両側に広がる矩形領域がテンプレート領域1411〜1430として作成される。
なお、テンプレート領域1411〜1430の横幅(ピクセル数)は、列車位置において所定の長さ(本実施形態においては、40cm)を有するように決められる。列車位置における長さ[cm]と、フレーム画像上での長さ[ピクセル]との換算方法については後述する。
図12に示すように、テンプレート領域の作成処理S1206が完了すると、次に、処理対象フレーム画像から、各テンプレート領域に対応する領域をテンプレート画像として切り出して、各テンプレート画像と、処理対象フレーム画像の次のフレーム画像との間で、テンプレートマッチング処理を行うことにより、各テンプレート画像の移動距離(移動したピクセル数)を求める(S1207)。
なお、テンプレートマッチング処理時のテンプレート画像の移動は、列車の進行方向を考慮して、基本的に、元の位置から列車の進行方向に移動させることで行われる。
次に、各テンプレート画像の移動距離から、列車の速度が算出される(S1208)。そのために、まず、各テンプレート画像の移動距離[ピクセル]に、フレームレート[1/s]を乗算することで、各テンプレート画像の移動速度[ピクセル/s]が求められる。更に、各テンプレート画像の移動速度[ピクセル/s]は、列車位置での速度(列車位置速度)[cm/s]に換算される。具体的には、各テンプレート画像の移動速度[ピクセル/s]に換算係数R[cm/ピクセル]を乗算することで、列車位置速度[cm/s]に換算される。換算係数Rの詳細については後述する。更に、本実施形態においては、列車位置速度の単位が、km/hになるように換算処理を行う。
各テンプレート画像毎に、列車位置速度[km/h]が算出されると、算出された複数の列車位置速度に基づいて、列車の速度が求められる。
本実施形態においては、複数の列車位置速度から、適切な値でないと考えられるものを排除した上で、列車の速度を求めるようにしている。
図15は、列車の速度の求め方を説明するための図である。同図は、10個のテンプレート領域に対応して、10個の列車位置速度が算出された場合を示している。
同図に示すように、本実施形態においては、まず、各テンプレート画像毎に算出された列車位置速度1501〜1510に対して、所定の誤差範囲(例えば、±5km/h)が設けられる。そして、誤差範囲を考慮した複数の列車位置速度において、最も多くのものが重なり合う範囲(最多重複範囲)を求め、当該範囲の中間値を、列車の速度とする。
同図に示した例においては、88km/hから94km/hの範囲1520において最も多くのもの(10個のうち8個)が重なっているので、当該範囲1520の中間値である91km/hが最終的な列車の速度として算出される。
本実施形態においては、特徴線に基づいて作成された複数のテンプレート画像のそれぞれについて、テンプレートマッチングを行い、各テンプレート画像毎に列車位置速度を算出し、算出された複数の列車位置速度から適切な値でないと考えられるもの(例えば、図15における列車位置速度1505)を排除した上で、列車の速度を求めるようにしているので、例えば、テンプレート領域の一部に木の影等が映り込んだ結果、当該一部については誤った部分にマッチングされてしまった場合であっても、誤った部分からの影響を除去することが可能となっている。
図12に示すように、処理対象フレーム画像についての列車速度算出処理S1208が終了すると、次に、列車の最後部が測定点に到達した時刻t2のフレーム画像まで処理が終了したか否かが判別される(S1209)。判別の結果、まだ処理していないフレーム画像が存在する場合は(S1209:No)、次の処理対象フレーム画像を選択した上で(S1201)、前述した処理S1202〜S1209を繰り返す。一方、時刻t2のフレーム画像まで処理が終了していた場合は(S1209:Yes)、処理を終了する。
以上のような処理を行うことにより、時刻t1〜t2の間の各フレーム画像毎に、列車の(瞬間)速度が算出される。
次に、フレーム画像上での距離を、列車位置での距離に換算するための換算係数Rについて説明する。
図16は、フレーム画像上での距離を、列車位置での距離に換算するための換算係数Rを求める方法を説明するための図である。
フレーム画像上での距離m[ピクセル]と、列車位置での距離M[cm]とは、下記式1に示すように比例関係にあると考えられる。
M=Rm ・・・・・(1)
また、換算係数Rは、一定ではなく、撮像部140から列車までの距離Dに依存するものであると考えられる。
そこで、撮像部140から列車までの距離Dの時の換算係数Rを求めるため、まず、所定の横幅M1[cm]を有する基準物1610を用意し、当該基準物1610を、撮像部140から所定の距離d1[cm]の位置に設置した上で、基準物1610の撮像を行い、撮像された基準物1610のフレーム画像上での横幅m1[ピクセル]を求める。
基準物1610の実際の横幅M1と、フレーム画像上での横幅m1についても、下記式2に示すような関係が成り立つと考えられる。
M1=rm1 ・・・・・(2)
ここで、rは、撮像部140からの距離がd1の場合の換算係数である。
この場合、M1とm1とは既知の値であるので、rの値は、以下に示す式3によって求めることができることになる。
r=M1/m1 ・・・・・(3)
一方、撮像部140から列車位置までの距離をD[cm]、撮像部140のレンズ1620の口径をS[cm]、レンズ1620から収束点1630までの距離をd2[cm]、撮像部140から距離d1[cm]における撮像範囲の幅をW1[cm]とすると、図16に示した幾何学的関係から、下記式4に示すような関係が成り立つ。なお、一般に、撮像部140の撮像レンズ141は、複数のレンズによって構成されているが、同図に示したレンズ1620は、撮像カメラ142の撮像素子に最も近いレンズを表している。また、同図に示した収束点1630は、計算の便宜のために設けた仮想的なものである。
d2:(d1+d2)=S:W1 ・・・・・(4)
式4をd2について解くと、d2は、下記式5で表されることになる。
d2=d1S/(W1−S) ・・・・・(5)
また、撮像部140から距離d1における撮像範囲の幅W1は、フレーム画像の横幅をw[ピクセル]とすると、上記式2及び式3より、下記式6に示すように求めることができる。
W1=rw=M1w/m1 ・・・・・(6)
なお、本実施形態においては、前述したように、フレーム画像の横幅wは640ピクセルとしているので、W1=640M1/m1ということになる。
すなわち、上記式5及び式6によって、d2の値が求められることになる。
一方、図16に示した幾何学的関係から、下記式7に示すような関係も成り立つ。
(d1+d2):(D+d2)=W1:W=rw:Rw ・・・・・(7)
なお、Wは、撮像部140から距離Dにおける撮像範囲の幅を示している。
式7をRについて解くと、Rは、下記式8で表されることになる。
R=(D+d2)r/(d1+d2) ・・・・・(8)
d1は既知の値であり、d2は、式5及び式6から求まり、rは式3から求まるので、式8によって、撮像部140からの距離がDの時の換算係数Rが求まることになる。
以上のようにして求められる換算係数Rを使用することによって、フレーム画像上における距離や速度が、列車位置における距離や速度に換算されることになる。
次に、制御区間長算出部340における処理の詳細について説明する。
制御区間長算出部340は、画像処理部330によって算出された複数の(瞬間)速度に基づいて、制御区間長を算出する。
そのために、制御区間長算出部340は、まず、複数の(瞬間)速度データに基づいて、列車の速度関数v(t)を求める。本実施形態においては、列車の速度関数は、時間tの一次関数v(t)=at+bとして表せると仮定して、複数の(瞬間)速度データに基づいて、最小自乗法により、直線の傾きaと、切片bとを求める。なお、前述したように、複数の(瞬間)速度データのそれぞれは、各フレーム画像毎に算出されているので、複数の(瞬間)速度データは、時刻t1から1/フレームレート秒(例えば、1/30秒)毎のデータとなっている。
以上のようにして、列車の速度関数v(t)が求まると、次に、求まった速度関数v(t)に基づいて、制御区間長を算出する。
図17は、制御区間長の算出方法を説明するための図である。同図においては、列車の先頭部が制御区間内に進入した時刻t0(=0)から、列車の最後部が制御区間内から進出した時刻t3までの速度関数v(t)のグラフ1701が示されている。
制御区間長は、制御区間の一方(列車が進入した側)の端部から測定点までの距離L1と、測定点から制御区間の他方(列車が進出した側)の端部までの距離L2との和L1+L2で表すことができる。一方、距離L1は、列車の先頭部が制御区間内に進入してから測定点に到達するまでに移動した距離、すなわち、列車の速度関数v(t)を時刻t0(=0)から時刻t1まで積分した値(図17に示した例では、領域1711の面積)と等しく、距離L2は、列車の最後部が測定点に到達してから制御区間内から進出するまでに移動した距離、すなわち、列車の速度関数v(t)を時刻t2から時刻t3まで積分した値(図17に示した例では、領域1712の面積)と等しくなる。従って、各領域1711,1712の面積を算出して、その和を求めれば、制御区間長Lが算出されることになる。
なお、厳密に言えば、時刻t0(=0)は、列車の先頭部(先端面)が制御区間内に進入した時刻ではなく、列車(先頭車両)の一番前の車軸が制御区間内に進入した時刻であり、時刻t3は、列車の最後部(後端面)が制御区間から進出した時刻ではなく、列車(最後尾車両)の一番後の車軸が制御区間から進出した時刻である。すなわち、列車の速度関数に基づいて前述したように算出される制御区間長は、実際の制御区間長より、列車の先端面から列車の一番前の車軸までの距離C1+列車の後端面から列車の一番後の車軸までの距離C2の分だけ短いということになる。そこで、本実施形態においては、面積和から算出された値に、C1(例えば、2m)+C2(例えば、2m)を加算した値を、最終的な制御区間長Lとしている。
以上のようにして制御区間長算出部340によって算出された制御区間長Lは、表示処理部360によって、表示部110に表示される。なお、本実施形態においては、制御区間長Lは、最終的に、m単位に換算されて表示される。
次に、以上のような構成を有する制御区間長測定装置100の使用方法について説明する。
まず、測定のための準備を行う。そのために、まず、撮像部140の設置を行う。撮像部140は、撮像カメラ142の向きが、列車の側面(進行方向)と直交すると共に、地面と水平になるように設置される。撮像カメラ142は、例えば、三脚上に載置されて固定される。
次に、設置された撮像部140から列車の側面までの距離を測定する。すなわち、列車が通過するのを待ち、列車が通過している間に、撮像部140(撮像レンズ141)から列車までの距離を、レーザ距離計等を使って測定する。本実施形態においては、レーザ距離計を使って列車までの距離をcm単位で測定する。
次に、光センサ部130の装着を行う。すなわち、光センサ部130の開口部131が、踏切制御子のリレーLEDに被さるように、光センサ部130を踏切制御子の筐体に取り付ける。
次に、撮像レンズ141の絞りの設定を行う。すなわち、撮像部140によって撮像される画像が、画像処理に適したものとなるように、撮像レンズ141の絞り調整部を操作して絞りの調整を行う。本実施形態においては、撮像レンズ141の絞り調整部の最適位置が求められるよう、絞り調整補助機能を備えている。
絞り調整補助機能は、撮像レンズ141の絞り調整部を操作して絞りの調整を行う際、現在の絞り調整部の位置で撮像されたフレーム画像の濃度値の標準偏差を算出して、表示部110に適宜表示することにより、撮像画像の濃度値の標準偏差が最大となる絞り調整部の位置がユーザに簡単にわかるようにするものである。撮像画像の濃度値の標準偏差が最大となるように、撮像レンズ141の絞りを設定すれば、撮像画像のコントラストが大きくなるので、画像処理に適したフレーム画像が得られることになる。
入力部120を介して、絞り調整補助機能が起動されると、制御区間長測定装置100は、まず、最大値確認モードでの動作を開始し、表示部110には、現在の絞り調整部の位置で撮像されたフレーム画像の濃度値の平均値と標準偏差が表示される。
ユーザは、絞り調整補助機能を起動する前に、撮像レンズ141の絞り調整部を操作して、撮像レンズ141の絞りを最小(最も絞った状態)にしておく。そして、絞り調整補助機能を起動した後、撮像レンズ141の絞り調整部を操作して、撮像レンズ141の絞りを少しずつ広げていく。そして、撮像レンズ141の絞りが最大(最も開放した状態)となったら、再び、撮像レンズ141の絞りを最小にまで戻す。
このように撮像レンズ141の絞りを、最小→最大→最小と変えていく過程で、撮像部140から送られてくる各フレーム画像について濃度値の平均値及び標準偏差が算出され、算出された値と、それまでの最大値とが比較され、新たに算出された値がそれまでの最大値を超えていた場合は、最大値の更新をすることで、濃度値の平均値及び標準偏差の最大値が特定されて記憶されることになる。
そして、撮像レンズ141の絞りを最小まで戻した後に、再度、撮像レンズ141の絞りを広げていくと、制御区間長測定装置100は、自動的に設定モードでの動作に移行する。設定モードにおいては、表示部110に、現在の絞り調整部の位置で撮像されたフレーム画像の濃度値の平均値と標準偏差と共に、それぞれの最大値に対する割合(パーセンテージ)が表示される。本実施形態においては、最大値に対する割合を示す表示として、表示部110に表示される■の数を10%毎に増加させていくレベル表示を行う。すなわち、表示部110に■が10個表示された状態(■■■■■■■■■■)が、最大値であることを示すことになる。
ユーザは、撮像レンズ141の絞り調整部を適宜操作していき、表示部110の表示に基づいて、フレーム画像の濃度値の標準偏差が最大(100%)となる位置を見つけて、当該位置に、絞り調整部を固定する。
以上のようにして、測定の準備が済むと、制御区間長の測定を開始する。すなわち、入力部120を介して、制御区間長測定装置100に対して測定開始を指示する。測定開始が指示されると、制御区間長測定装置100は、踏切制御子が制御区間内に列車が進入したことを検知するのを待ち、踏切制御子が制御区間内に列車が進入したことを検知したことを検出すると、列車の撮像を開始する。そして、踏切制御子が制御区間から列車が進出したことを検知するのを待ち、踏切制御子が制御区間から列車が進出したことを検知したことを検出すると、列車の撮像を終了する。
列車の撮像が完了すると、制御区間長測定装置100の表示部110には、列車までの距離の入力を促す画面が表示される。当該画面に応じて、入力部120を介して、列車までの距離を入力すると、画像処理部330による処理が開始され、最終的に、制御区間長算出部340によって算出された制御区間長が、表示部110に表示される。
以上説明したように、上述した制御区間長測定装置100によれば、通常運行する列車の動画を撮像するだけで、制御区間長を測定することできるので、制御区間長を簡易に測定することが可能となる。
最後に、撮像レンズ141の絞りを設定する際に利用される絞り調整補助機能の詳細について説明する。
図18及び図19は、絞り調整補助機能起動時の処理の流れを説明するためのフローチャートである。
図18及び図19に示した処理は、入力部120を介して、絞り調整補助機能が起動された際に、実行されるものである。
なお、前述したように、ユーザは、絞り調整補助機能を起動する前に、撮像レンズ141の絞り調整部を操作して、撮像レンズ141の絞りを最小(最も絞った状態)にしておく。
絞り調整補助機能が起動されると、図18に示すように、まず、撮像部140に対して撮像開始が指示される(S1801)。
次に、調整操作(最大値確認用操作)が開始されたか否か、すなわち、撮像レンズ141の絞りがユーザによって広げられ始めたか否かが判別される(S1802)。具体的には、撮像部140から順次送られてくるフレーム画像に基づいて、フレーム画像の濃度値の平均値を算出し、算出された平均値が予め決められた所定の閾値Tを超えている否かが判別される。
判別の結果、調整操作が開始されていない場合、すなわち、フレーム画像の濃度値の平均値が所定の閾値Tを超えていない場合は(S1802:No)、調整操作が開始されるまで、判別処理S1802を繰り返す。
一方、調整操作が開始された場合、すなわち、フレーム画像の濃度値の平均値が所定の閾値Tを超えた場合は(S1802:Yes)、撮像部140から順次送られてくるフレーム画像に基づいて、フレーム画像の濃度値の平均値及び標準偏差を算出し(S1803)、算出した濃度値の平均値及び標準偏差を表示部110に表示させる。
次に、今回算出された濃度値の平均値及び標準偏差が、それぞれの最大値を記憶するための変数Amax、Dmaxの値より大きいか否かを判別し(S1804)、今回算出された値が大きければ(S1804:Yes)、最大値を記憶するための変数Amax、Dmaxの値を今回算出された値に更新する(S1805)。なお、最大値を記憶するための変数Amax、Dmaxは、処理開始時に適宜(例えば、0に)初期化されているものとする。
次に、撮像レンズ141の絞りを最小から一旦最大まで広げた後に、再び最小に戻す操作(最大値確認用操作)が終了したか否かが判別される(S1806)。具体的には、フレーム画像の濃度値の平均値が前記所定の閾値T以下となったか否かが判別される。
判別の結果、最大値確認用操作が終了していない場合(S1806:No)、すなわち、フレーム画像の濃度値の平均値が所定の閾値T以下となっていない場合は、前述した処理S1803〜S1806を繰り返す。
一方、判別の結果、最大値確認用操作が終了した場合(S1806:Yes)、すなわち、フレーム画像の濃度値の平均値が所定の閾値T以下となった場合は、次に、図19に示すように、設定用操作が開始されたか否か、すなわち、撮像レンズ141の絞りがユーザによって再び広げられ始めたか否かが判別される(S1901)。具体的には、撮像部140から順次送られてくるフレーム画像に基づいて、フレーム画像の濃度値の平均値を算出し、算出された平均値が前記所定の閾値Tを超えている否かが判別される。
判別の結果、設定用操作が開始されていない場合、すなわち、フレーム画像の濃度値の平均値が所定の閾値Tを超えていない場合は(S1901:No)、設定用操作が開始されるまで、判別処理S1901を繰り返す。
一方、設定用操作が開始された場合、すなわち、フレーム画像の濃度値の平均値が所定の閾値Tを超えた場合は(S1901:Yes)、撮像部140から順次送られてくるフレーム画像に基づいて、フレーム画像の濃度値の平均値及び標準偏差を算出し(S1902)、更に、算出された平均値及び標準偏差のそれぞれの最大値Amax、Dmaxに対する割合(%)を算出し、算出した最大値Amax、Dmaxに対する割合(%)を表示部110に適宜表示させる(S1903)。
次に、設定用操作が終了したか否かが判別される(S1904)。すなわち、ユーザによって決定スイッチ125が押されたか否かが判別される。判別の結果、設定操作が終了していない場合、すなわち、ユーザによって決定スイッチが押されていない場合は(S1904:No)、前述した処理S1902〜S1904を繰り返す。
一方、判別の結果、設定操作が終了した場合、すなわち、ユーザによって決定スイッチ125が押された場合は(S1904:Yes)、撮像部140に対して撮像停止を指示した上で(S1905)、処理を終了する。
図18及び図19に示したような処理を行うことにより、設定用操作時には、表示部110に、現在の絞り調整部の位置で撮像されたフレーム画像の濃度値の標準偏差と、最大値確認用操作時に確認された標準偏差の最大値との関係がわかるような表示(具体的には、最大値に対するパーセント表示)がされるので、ユーザは、撮像画像の濃度値の標準偏差が最大となる絞り調整部の位置が簡単に特定できるようになる。
以上、本発明の実施形態について説明してきたが、当然のことながら、本発明の実施形態は上記のものに限られない。例えば、上述した実施形態においては、踏切制御子のリレーLEDの点灯状態を監視することによって、踏切制御子の動作を検出するようにしていたが、他の方法(例えば、踏切制御子が出力する信号の監視)によって踏切制御子の動作を検出することも考えられる。
また、上述した実施形態においては、絞り調整補助機能起動時における設定用操作の際に、現在の絞り調整部の位置で撮像されたフレーム画像の濃度値の標準偏差と、最大値確認用操作時に確認された標準偏差の最大値との関係がわかるような表示として、最大値に対する割合(%)をレベル表示するようにしていたが、他の表示形式(例えば、単に、算出された標準偏差と、最大値とを並べた形式)で表示することも考えられる。