本発明の実施の形態の一つを以下で説明する。
[構造物検出装置の構成]
本実施形態の構造物検出装置1は、道路沿いの構造物を車両に設置した複数のカメラで撮影した複数の撮影動画から、検出対象の構造物が写っているフレームを抽出し、複数の撮影動画において同一の構造物が写っているフレームを関連付けて統合的に表示する装置である。本実施形態では、検出対象の構造物として信号機を例に説明する。検出対象の構造物は、道路沿いに設置されたものであれば、電灯、電柱、もしくは街路樹であってもよいし、看板、標識、自動販売機、あるいはポストなどの高さの低いものであってもよい。検出対象は、カメラを下方向に向けて撮影した路面標示等であってもよい。
図1に示す構造物検出装置1は、静止画取得部11、記憶部12、構造物検出部13、カメラ毎の同一構造物判定部14、カメラ間の同一構造物判定部15、出力部16、および異常検出部17を備える。構造物検出装置1が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは構造物検出装置1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
静止画取得部11は、構造物を検出するために用いる静止画を取得する。本実施形態では、市販カメラおよび市販GPSロガーを車両に搭載して走行しながら道路沿いの構造物を撮影するとともに、車両の位置情報を取得する。撮影された撮影動画は記録媒体101に格納され、車両の位置情報は記録媒体102に格納される。静止画取得部11は、撮影動画が格納されたメモリカードなどの記録媒体101から撮影動画を読み込み、位置情報を記録したファイルが格納された記録媒体102から位置情報を取得し、一定距離ごとに静止画を取得する。静止画取得部11は、一定距離ごとに取得した静止画に記録媒体102から取得した位置情報を関連付けて記憶部12に格納する。本実施形態では、複数台のカメラを用いて構造物を撮影するので、複数の撮影動画のそれぞれから静止画を取得し、撮影動画ごとに静止画群を記憶部12に格納する。静止画取得部11は、ネットワークを介して、撮影動画および位置情報を取得してもよい。静止画取得部11は、動画に限らず、所定の間隔で撮影された静止画を読み込んでもよい。
図2,3に示すように、本実施形態では、車両の進行方向に対してパン角およびチルト角を変えた複数台のカメラを車両に搭載して同時に撮影する。例えば、図2,3のカメラ1は、パン角が90度、チルト角が0度となるように設置し、車両の横方向を撮影する。カメラ2〜4は、順に、パン角が小さく、チルト角が大きくなるように設置する。4台のカメラ1〜4で、例えば信号機などの長尺の構造物の全体が撮影できるようにパン角およびチルト角を調節する。具体的には、カメラ1で構造物の下部を撮影し、カメラ4で構造物の頭頂部を撮影する。カメラ2,3で構造物の中間部を撮影する。複数台のカメラのパン角またはチルト角のいずれかを変えてもよい。
構造物の下部を撮影するカメラ1は、車両の進行方向に対して真横向きとなるように設置するとよい。これにより、構造物の下部に取り付けられた銘板または看板などをより鮮明に撮影できる。構造物の頭頂部を撮影するカメラ4は、パン角を小さくして斜め前方を撮影するように設置するとよい。車両の横から見上げて構造物の頭頂部を撮影すると、街路樹などにより頭頂部が撮影できないことがある。パン角を小さくし、頭頂部を少し離れた位置から撮影するとよい。
斜め前方を撮影するカメラだけでなく、斜め後方を撮影するカメラを設置してもよい。前後方向を撮影するカメラを設置することで、前方のカメラが逆光であっても、後方のカメラが順光となる。前方(進行方向)を撮影するカメラや後方を撮影するカメラを設置してもよい。
静止画取得部11は、GPSロガーで取得した位置情報に基づき、一定距離ごとに撮影動画から静止画(以下、「フレーム」と称することもある)を取得する。フレームを取得する際、図4に示すように、1つの構造物が3〜5のフレームに写っているように切り出し距離を調整する。図4の例では、10cmごとに撮影動画からフレームを切り出している。図4のフレームの下に付与した番号はフレーム番号である。静止画取得部11は、フレームを切り出した順にフレーム番号を付与する。切り出し距離は、撮影動画のカメラのパン角つまりカメラから構造物までの距離によって変えてもよい。具体的には、車両の進行方向に対するパン角が小さいカメラで撮影した撮影動画では、車両の横向きに設置された(パン角が大きい)カメラで撮影した撮影動画よりも、長い時間構造物が写っているので、切り出し距離を長くする。例えば、横向きのカメラ1の撮影動画の切り出し距離を10cmとすると、カメラ2の切り出し距離を20cm、カメラ3の切り出し距離を30cm、カメラ4の切り出し距離を50cmとする。切り出し距離は、車両と構造物との間の距離によって適切な値が異なる。したがって、撮影状況に応じて、構造物が適切な枚数内に写るように設定する。路肩が広い道路では、車両と構造物との距離が長くなるので切り出し距離を長くする。
記憶部12は、静止画取得部11の取得したフレームを撮影動画ごとに格納する。例えば、静止画取得部11が4つの撮影動画からフレームを取得した場合、記憶部12には、撮影動画のそれぞれから切り出された4つの静止画群が格納される。記憶部12は、記録媒体101から読み込んだ撮影動画を格納してもよい。
構造物検出部13は、記憶部12に格納された静止画群のそれぞれに含まれるフレームから検出対象の構造物の写ったフレームを検出しフレーム内における構造物の位置を記憶部12に格納する。構造物検出部13は、例えば、検出対象の構造物の画像を学習させた人工知能を用いて構造物の写ったフレームを検出する。図5の例では、構造物検出部13は信号機TLの下部を検出した。構造物検出部13は、信号機TLを検出した検出枠Dのフレーム内での位置情報を記憶部12に格納する。例えば、検出枠Dのフレーム上での座標、横幅、高さ、検出結果の確信度を記憶部12に格納する。
カメラ毎の同一構造物判定部14(以下、単に「同一構造物判定部14」と称する)は、連続する複数のフレームで検出された構造物のフレーム内での位置の変化に基づき、フレーム間での同一構造物を判定する。具体的には、同一構造物判定部14は、フレーム内でフレーム内の風景の移動方向と同じ方向に移動する構造物は同一構造物であると判定する。連続する複数のフレームは、静止画取得部11が一定距離ごとに撮影動画から切り出した一連のフレームである。車両の進行方向に対して左側を撮影した場合、図6に示すように、構造物はフレーム内で右から左に移動する。同一構造物判定部14は、連続する複数のフレームにおいて、検出位置(検出枠)が右から左に移動する構造物を同一の構造物と判定する。車両の進行方向に対して右側を撮影した場合は、構造物はフレーム内で左から右に移動する。車両の前方または後方に設置したカメラで撮影したフレームでは、構造物はフレーム内で上から下または下から上に移動する。つまり、同一構造物判定部14は、フレーム内の風景の移動方向と同じ方向に移動する構造物を同一構造物として判定する。
同一構造物判定部14は、同一構造物が写ったと判定した複数のフレームを抽出後、複数のフレームのなかから構造物が最もよく写っているフレームを代表フレームとして選定する。前方および後方を撮影するカメラを設置した場合、代表フレームとして順光のフレームを自動的に選定してもよい。
同一構造物判定部14は、静止画群つまり撮影動画ごとに、上記の同一構造物の判定処理を行う。
同一構造物判定部14の判定処理により、撮影動画から一定距離ごとに切り出した静止画群から、同一構造物が写ったフレームを抽出することができる。
カメラ間の同一構造物判定部15(以下、単に「同一構造物判定部15」と称する)は、各カメラの撮影方向および静止画群の切り出し間隔(距離)に基づき、同一の構造物が写った代表フレームを静止画群間で関連付ける。
同一構造物判定部15の判定処理により、図7に示すように、別々のカメラの撮影動画から切り出した静止画群から同一構造物が写ったフレームを抽出することができる。
同一構造物判定部15は、複数の静止画群から検出して同一の構造物として判定した構造物の位置情報を記憶部12に登録してもよい。例えば、構造物に対してIDを付与し、そのIDにその構造物が写っているフレームを関連付けるとともに、その構造物の位置情報を関連付ける。構造物の位置情報は、GPSロガーから得られた車両の位置情報を利用できる。例えば、車両の進行方向に対して横向きに設置したカメラで撮影した代表フレームの位置情報をその構造物の位置情報として利用する。このとき、車両の進行方向およびカメラの設置向きに基づいてカメラの撮影方向を特定し、位置情報を撮影方向に移動した位置を構造物の位置情報としてもよい。LIDAR(Light Detection and Ranging)により車両から構造物までの距離を測定しておき、構造物の位置をより正確に求めてもよい。また、前方および後方を撮影するカメラを設置した場合、同一構造物判定部15は、構造物の同一位置を撮影する前方ならびに後方のカメラから得られた同一構造物を撮影したフレームのうちいずれか一方のフレームを選定してもよく、特に、前記撮影したフレームのうち順光のフレームを選定してもよい。例えば、フレームの検出枠内の明るさに基づいて順光または逆光と判定してもよいし、GPSロガーから得られた情報を元に車の向きを求めてカメラの設置角度に基づいてカメラの撮影方向を割り出し、時刻に応じた太陽の向きと照合して逆光かどうかを判定してもよい。
異常検出部17は、構造物が写っているフレームから構造物の異常(例えばヒビ、欠け、錆等)を検出する。異常検出部17は、代表フレームだけでなく、構造物が写っているフレームの全てから構造物の異常を検出してもよい。異常検出部17は、例えば、検出したい構造物の異常を学習させた人工知能を用いて構造物の写っているフレームから構造物の異常を検出する。前記人工知能としては、例えば、画像ディープラーニング技術を用いて、事前に構造物のヒビあるいは欠けあるいは錆の画像を学習させることによって入力画像中におけるヒビあるいは欠けあるいは錆の画像部分を検出可能とした学習済み人工知能を異常検出部17として用いることによって、構造物に発生したヒビあるいは欠けあるいは錆の異常を検出してもよい。
出力部16は、同一の構造物を異なるカメラで写した複数の静止画を並べて出力する。構造物検出部13および同一構造物判定部14,15の処理により、複数の撮影動画から切り出したフレームに写る構造物の同一性が判定され、その構造物の位置も特定されている。出力部16は、例えば、構造物を検出した位置を地図上にプロットし、地図上で構造物の選択を受け付けて、選択された構造物の写る静止画を表示する。
図8に、出力画面例を示す。同図に示す出力画面100は、上段に地図領域110、情報領域120、動画領域130を備え、下段に構造物を写した静止画141〜144を表示している。
地図領域110では、撮影動画から検出された構造物を地図上にプロットする。構造物の不具合の有無および程度に応じてプロットの色および形状を変更してもよい。例えば、不具合の無い構造物は青色でプロットする。不具合の程度に応じて黄色、赤色でプロットする。構造物を示すマークが地図上で選択されると、下段に選択された構造物が写っている静止画141〜144が表示される。表示される静止画141〜144は、同一構造物判定部14の選定した代表フレームである。
図8の地図領域110では、道路上に構造物のマークを表示しているが、道路の右側または左側に寄せて構造物のマークを表示してもよい。例えば、車両の進行方向に対して左側を撮影した場合は、進行方向の左側に構造物のマークを表示する。あるいは、車両の進行方向を道路上に矢印等で図示してもよい。
情報領域120では、選択された構造物の情報等を表示する。例えば、構造物を写した撮影日時および位置情報等を表示する。また、図8の例では、後述の異常検出部17によって検出されたヒビおよび欠けを表示するか否かを選択可能にしている。チェックされた異常が静止画内に存在する場合、図8の静止画142に示すように、異常の検出された位置等を示してもよい。代表フレーム以外の表示されていない静止画(同じ構造物の写っているもの)において異常が検知されている場合は、その旨を情報領域120または静止画141〜144上に表示してよい。
時期をずらして撮影した構造物の静止画が存在する場合、撮影日時を選択可能にして、選択された撮影日時の構造物の静止画を表示してもよい。例えば、選択された構造物について、2014年に撮影された静止画と2018年に撮影された静止画が存在する場合、情報領域120の撮影日時を2014年または2018年のいずれかに選択可能とする。出力画面100の下段には、選択された時期に撮影された静止画を表示する。また、新たに異常を検知した構造物だけを地図領域110に表示したり、区別できるように異なるマークを表示したりしてもよい。
動画領域130では、カメラのいずれかで撮影した撮影動画を再生する。表示する撮影動画は選択可能である。図8の例では、4つの撮影動画から再生する撮影動画を選択できる。例えば、静止画141〜144のいずれかを選択すると、対応する撮影動画が動画領域130に表示される。撮影動画を再生する際、撮影動画のタイムスタンプに合わせて地図領域110に車両の位置を図示してもよい。撮影動画に検出された構造物が写っている間は、撮影動画をスロー再生してもよい。
出力画面100の下段には、複数のカメラで撮影された構造物の静止画141〜144が表示される。静止画141〜144のいずれかを選択すると、同一構造物判定部14で同一の構造物が写っていると判定された複数の静止画を並べて表示してもよい。例えば、静止画142を選択すると、静止画142を含む前後数枚の同一構造物が写っている静止画(同じカメラで撮影したもの)が表示される。
さらに、構造物の保守の際に高所作業車が利用可能か否かを判断するために、構造物の周囲の画像を表示してもよい。例えば、構造物の下部を撮影した静止画に構造物の周囲の静止画をつなげてパノラマ画像を生成して表示する。
[構造物検出装置の動作]
次に、構造物検出装置1の動作について説明する。図9は、構造物検出装置1のメインルーチンのフローチャートである。
構造物検出装置1が処理を開始すると、ステップS1において、静止画取得部11は、記録媒体101から撮影動画を読み取るとともに、記録媒体102から位置情報が記録されたファイルを読み取る。静止画取得部11は、撮影動画から一定距離ごとにフレームを取得し、フレームに位置情報を関連付けて記憶部12に格納する。静止画取得部11は、複数の記録媒体101のそれぞれから撮影動画を取得し、取得した撮影動画のそれぞれについてステップS1の処理を行う。
ステップS2において、構造物検出部13は、静止画取得部11が取得したフレームから検出対象の構造物が写っているフレームを検出し、フレーム内における構造物の位置を記憶部12に格納する。
ステップS3において、同一構造物判定部14は、同一の撮影動画から取得した静止画群ごとに、フレーム内での構造物の検出位置の変化に基づいて、構造物の同一性を判定するとともに、同一の構造物が写っているフレームの中から代表フレームを選定する。同一構造物判定部14は、撮影動画のそれぞれから取得した静止画群のそれぞれについてステップS3の処理を行う。ステップS3の単一カメラ内での構造物の同一性判定の詳細については後述する。
ステップS4において、同一構造物判定部15は、撮影動画の撮影方向および切り出し間隔に基づき、同一の構造物が写った代表フレームを静止画群間で関連付ける。ステップS4の複数カメラ間での構造物の同一性判定の詳細については後述する。
ステップS5において、出力部16は、同一の構造物を異なるカメラで写した複数の代表フレームを並べて表示する。
[単一カメラ内での構造物の同一性判定]
続いて、単一カメラ内での構造物の同一性判定処理について説明する。図10は、単一カメラ内での構造物の同一判定処理の流れを示すフローチャートである。
ステップS31にて、同一構造物判定部14は、構造物検出部13が誤検出した検出枠を削除する。例えば、図11に示すように、フレームnにおいて構造物検出部13は構造物を検出したが、前後の数フレームn−1,n+1では構造物が検出されていない場合、フレームnの検出枠D0は誤検出であると判定し、検出枠D0を削除する。
ステップS32にて、同一構造物判定部14は、1つのフレーム内において検出領域が重複する検出枠をマージする。例えば、図12に示すように、フレーム内には1つの構造物のみ写っているが、構造物検出部13がその構造物について領域が重複する複数の検出枠D1,D2を出力した場合、同一構造物判定部14は、検出枠D1,D2をマージする。検出枠D1,D2のどちらかを削除してもよい。
また、図13に示すように、フレーム内で複数の構造物が重なって写っており、複数の検出枠D3,D4が重複する場合も考えられる。検出枠の重複度合いに応じて重複する検出枠を処理するか否か判定してもよい。例えば、検出枠の重複度合いが所定の閾値以上の場合は、検出枠の重複処理を行う。検出対象の構造物が重複してフレーム内に写らないものであれば、検出対象に応じて検出枠をマージするか削除するかを判定してもよい。
同一構造物判定部14は、静止画群の各フレームについて、フレーム番号順にステップS33の処理を行い、同一構造物の写っているフレームの集合(以下、「同一構造物の集合」と称する)を求める。ステップS33では、同一構造物判定部14は、連続する複数のフレームで検出された構造物のフレーム内での位置の変化に基づき、フレーム間での同一構造物を判定する。ステップS33の処理の詳細は後述する。
ステップS34にて、同一構造物判定部14は、同一構造物の集合の要素の数(フレーム数)が一定以下の集合は誤検出として削除する。静止画取得部11は、同一構造物が所定の数以上のフレームに写っているようにフレームを切り出すので、同一構造物判定部14は、同一構造物が写っていると判定されたフレーム数が一定以下(例えば、同一構造物が5フレーム程度に写っているように切り出した場合は1〜2フレーム)の集合は、構造物を誤検出したものと推定する。例えば、車両の前方左側を撮影するカメラで撮影した撮影動画では、車両が左折時に左折する方向に対して右側にある構造物は、撮影動画内で左側から右側に移動する。同一構造物判定部14は、撮影動画内で右側から左側に移動する構造物を同一構造物として判定するので、撮影動画内で左側から右側に移動する構造物は、撮影動画から切り出したフレームのそれぞれで新たに検出された構造物として扱われる。そのため、その構造物のフレームの集合の要素の数は1もしくは2程度となり、誤検出として削除できる。
ステップS35にて、同一構造物判定部14は、同一構造物の集合の中から代表フレームを選定する。同一構造物の集合に含まれるフレームの中で構造物が最もよく写っているフレームを代表フレームとする。最もよく写っているフレームとは、例えば、同一構造物の集合に含まれるフレームをフレーム番号順に並べたときの真ん中のフレームを代表フレームとしてもよい。もしくは、最も中央に構造物が写っている1つのフレームをその構造物の代表フレームとして選定してもよい。もしくは、前方および後方を撮影するカメラを設置した場合、代表フレームとして順光のフレームを自動的に選定してもよく、例えば、フレームの検出枠内の明るさに基づいて順光または逆光と判定してもよい。もしくは、ピンボケ、ブレなどの撮影不良を判定して、そのようなフレーム以外の中から代表フレームを選定してもよい。
以上の処理により、撮影動画から切り出した静止画群ごとに、同一の構造物が写っているフレームの集合およびその構造物の代表フレームが求められる。
続いて、図10のステップS33の同一構造物の判定処理について説明する。図14は、単一カメラで撮影した撮影動画における同一構造物の判定処理の流れを示すフローチャートである。
ステップS331にて、同一構造物判定部14は、処理対象の現フレームから検出対象の構造物が検出されているか否か判定する。
現フレームから構造物が検出された場合、ステップS333にて、同一構造物判定部14は、同一候補構造物が存在するか否か判定する。同一候補構造物とは、前フレームn−1までに検出された構造物(検出枠)であって同一の構造物と推定される構造物である。同一候補構造物の集合は、同一の構造物と推定される構造物の集合である。同一候補構造物の集合は、複数個存在することもある。同一候補構造物の集合には、現フレームn以降で検出される構造物が追加される可能性がある。
同一候補構造物が存在しない場合、ステップS334にて、新しい同一候補構造物の集合を作成し、現フレームnから検出された構造物をその同一候補構造物の集合に登録する。現フレームnから複数の構造物が検出された場合、検出された構造物の数だけ新しい同一候補構造物の集合が作られる。
同一候補構造物が存在する場合、ステップS335にて、同一構造物判定部14は、現フレームnにおいて、同一候補構造物のなかで最も右側の構造物の座標より右側で検出された構造物を新しい同一候補構造物の集合に登録する。フレームに写る同一の構造物の位置は右側から左側に移動するので、前フレームn−1までに検出された構造物よりも右側で検出された構造物は新たな別の構造物であると推定する。
同一構造物判定部14は、構造物を検出した検出枠のフレーム内での位置を比較して右側または左側を判定する。例えば、検出枠の縦の中心線のフレーム内でのx座標を基準とする。
図15の例では、前フレームn−1において検出枠D5の構造物が検出された。前フレームn−1の処理において、検出枠D5は、いずれかの同一候補構造物の集合に登録される。検出枠D5は、同一候補構造物のなかで最も右側であるとする。現フレームnでは、検出枠D6の構造物と検出枠D7の構造物が検出された。検出枠D6のフレーム内での位置は、検出枠D5のフレーム内での位置より左側であり、検出枠D7のフレーム内での位置は、検出枠D5のフレーム内での位置より右側である。検出枠D7は、同一候補構造物のなかで最も右側の検出枠D5よりも右側に出現したので、検出枠D7を新しい同一候補構造物の集合に登録する。
図16の例では、現フレームnにおいて、検出枠D7の構造物と検出枠D8の構造物が検出された。検出枠D7,D8のフレーム内での位置は、両方とも検出枠D5のフレーム内での位置より右側である。検出枠D7,D8は、同一候補構造物のなかで最も右側の検出枠D5よりも右側で検出されたので、検出枠D7,D8のそれぞれを新しい同一候補構造物の集合のそれぞれに登録する。つまり、同一候補構造物の集合が新たに2つ作成される。
撮影動画から切り出す一定距離が短い場合、車両が一時停止しているときなど、GPSロガーの誤差により、同じ位置に構造物の写るフレームが切り出されることがある。例えば、図17のフレームn−1とフレームnは、構造物のフレーム内での位置は同じである。このとき、構造物検出部13が違う位置で構造物を検出することがある。図17の例では、フレームn−1では左寄りの検出枠D9で構造物を検出し、フレームnでは右寄りの検出枠D10で構造物を検出している。検出枠D9,D10は同一の構造物を検出しているが、現フレームnの検出枠D10は検出枠D9より右側に存在するので、同一構造物判定部14は、検出枠D10を新しい同一候補構造物として登録してしまう。そこで、同一構造物判定部14は、ズレ許容範囲をピクセル単位で設定し、検出枠D10が検出枠D9よりも右側であってもズレ許容範囲内であれば、検出枠D10を検出枠D9の同一候補構造物とする。
ステップS335において、現フレームnで検出された構造物のうち同一候補構造物の集合に登録された構造物は、以降のステップS336,S337の処理対象としない。具体的には、図15の例では、現フレームnで検出された検出枠D7は、新しい同一候補構造物の集合に登録されたので、ステップS336,S337の処理対象としない。現フレームnで検出された検出枠D6は、まだ同一候補構造物の集合に登録されていないので、ステップS336,S337の処理対象である。
ステップS335において、現フレームnで検出された構造物の全てが新しい同一候補構造物の集合に登録された場合(図16の例)、前フレームn−1以前に作成された同一候補構造物の集合の確定確認をする。確定確認とは、現フレームn以降で同一候補構造物と同一の構造物が出現しないと推定し、同一候補構造物の集合に含まれる構造物を同一構造物として確定することである。確定確認の際、検出漏れ許容枚数を設定しておき、許容枚数を超えて同一候補構造物の集合に変化が無い場合に、その同一候補構造物の集合を同一構造物として確定してもよい。同一の構造物は連続したフレームに出現するはずである。あるフレームで構造物が検出されず、前後の許容枚数内のフレームにおいて右から左に移動する構造物が検出されているのであれば、構造物が検出されなかったフレームは検出漏れであると推定する。
ステップS336にて、同一構造物判定部14は、現フレームnにおいて最も左側で検出された構造物よりも左側の同一候補構造物の集合を同一構造物として確定する。
図18の例では、前フレームn−1では、検出枠D12,D13の構造物が検出されている。つまり、前フレームn−1の時点では、検出枠D12を含む同一候補構造物の集合と検出枠D13を含む同一候補構造物の集合の2つが存在する。現フレームnでは、検出枠D14の構造物が検出された。検出枠D14は、検出枠D12よりも右側で、検出枠D13よりも左側である。検出枠D12の構造物が次のフレームnで検出枠D14の位置に移動することは無く、検出枠D12の構造物が移動したと推定できる構造物は現フレームnで検出されていない。したがって、検出枠D12と同一の構造物は現フレームn以降出現しないと推定できるので、検出枠D12を含む同一候補構造物の集合を同一構造物として確定する。
図18の前フレームn−1の検出枠D13は、現フレームnの検出枠D14よりも左側であるので、検出枠D13の構造物は、検出枠D14の構造物と同一の可能性がある。検出枠D14は、次のステップS337で処理される。
なお、ステップS336においても、同一構造物判定部14は、構造物の位置の判定にズレ許容範囲を適用してもよい。
ステップS337にて、同一構造物判定部14は、現フレームnで検出された残りの構造物の同一候補構造物への割り振りを行う。残りの構造物とは、現フレームnで検出された構造物のうち、同一候補構造物の集合に登録されてないものである。ステップS337の処理の詳細は後述する。
ステップS337までの処理により、現フレームnで検出された全ての構造物が同一候補構造物の集合のいずれかに登録される。また、連続するフレームについて上記ステップS331〜S337の処理することにより、結果として、構造物の検出位置が連続するフレームに写った風景の移動方向と同じ方向(本実施形態では左方向)に移動する場合に、フレームに写っている構造物は同一構造物と判定される。
一方、ステップS331の処理において現フレームnから構造物が検出されなかった場合、ステップS332にて、同一構造物判定部14は、前フレームn−1以前に作成された同一候補構造物の確定確認をする。
なお、ステップS331の処理において現フレームnから検出された構造物の大きさ(検出枠の大きさ)が、同一候補構造物の大きさと極端に異なる場合は、現フレームnで検出された構造物を対象外として除去してもよい。例えば、対象外の遠い位置の構造物を検出した検出枠は、検出対象とする道路沿いの構造物の検出枠よりも極端に小さくなる。
続いて、図14のステップS337の残りの構造物の割り振り処理について説明する。図19は、残りの構造物の割り振り処理の流れを示すフローチャートである。
ステップS3371にて、同一構造物判定部14は、現フレームnで検出された残りの構造物の数は、同一候補構造物の集合の数より多いか否か判定する。
残りの構造物の数が同一候補構造物の集合よりも多い場合、ステップS3372にて、同一候補構造物の集合の数より多い数だけ新しい同一候補構造物の集合を作成し、残りの構造物の右側から順番に新しい同一候補構造物の集合のそれぞれに登録する。
例えば、図20に示すように、同一候補構造物の集合は、前フレームn−1で検出された検出枠D15を含む集合だけであり、現フレームnでは、2つの検出枠D16,D17の構造物が検出された場合を考える。検出枠D16,D17の位置は、いずれも検出枠D15よりも左側であるから、検出枠D15の構造物は、検出枠D16,D17のいずれの構造物と同一か確定できない。そこで、同一構造物判定部14は、現フレームnにおいて最も右側の検出枠D17を新しい同一候補構造物の集合に登録する。
ステップS3373にて、同一構造物判定部14は、現フレームnで検出された残りの構造物の数は、同一候補構造物の集合の数より少ないか否か判定する。
残りの構造物の数が同一候補構造物の集合の数よりも少ない場合、ステップS3374にて、残りの構造物の数より多い数だけ、左側の同一候補構造物の集合から順番に、同一候補構造物の集合を同一構造物として確定する。
例えば、図21に示すように、前フレームn−1で検出された検出枠D18,D19をそれぞれ含む2つの同一候補構造物の集合が存在し、現フレームnでは、検出枠D20の構造物が1つだけ検出された場合を考える。検出枠D18,D19の位置は、いずれも検出枠D20よりも右側であるから、検出枠D20の構造物は、検出枠D18,D19のいずれの構造物と同一か確定できない。そこで、同一構造物判定部14は、前フレームn−1において最も左側の検出枠D18の構造物は現フレームn以降出現しないと推定し、検出枠D18を含む同一候補構造物の集合を同一構造物として確定する。
以上のステップS3371〜S3374の処理により、同一候補構造物の集合の数と残りの構造物の数は同数となっている。
ステップS3375にて、同一構造物判定部14は、残りの構造物を順番に同一候補構造物の集合に割り当てる。
以上の処理により、現フレームnで検出された構造物は、全て同一候補構造物に割り当てられる。
なお、図19の処理の開始前に、残りの構造物に、構造物の特徴が一致する同一候補構造物があれば、その残りの構造物を同一候補構造物の集合に登録してもよい。例えば、ディープラーニングを用いると、構造物の特徴により、構造物の写る位置が異なっていても同一と判定できる場合もある。例えば、同一の構造物であれば異常検出部17は同じ異常を検出すると考えられるので、異常検出部17が検出した構造物の異常に関する情報を記憶部12に格納しておき、構造物の異常に関する情報を用いて構造物の同一候補構造物を判定してもよい。また、同一の構造物である場合、構造物検出部13の検出した検出枠の確信度が近くなる傾向があるので、検出枠の確信度を用いて構造物の同一候補構造物を判定してもよい。この前処理で、残りの構造物が全て同一候補構造物に割り当てられた場合は、同一候補構造物の集合の確定確認を行い、図19の処理は行わない。
[複数カメラ間での構造物の同一性判定]
続いて、複数カメラ間での構造物の同一性判定処理について説明する。
複数カメラ間の構造物の同一性は、撮影時刻と撮影方向に基づいて決めることができる。
カメラ1のフレーム切り出し間隔(距離)をs1とし、カメラ2のフレーム切り出し間隔をs2とする。カメラ1の撮影動画から切り出したフレームには通し番号(0,1,2,・・・)が付与され、カメラ2の撮影動画から切り出したフレームにも通し番号(0,1,2,・・・)が付与される。カメラ1,2のフレーム0番の切り出し時刻が同じだとすると、カメラ1のフレームiと同じ時刻のカメラ2のフレームj0はj0=i*(s1/s2)で求められる。
また、カメラ1は車両の真横を撮影し、カメラ2は車両の斜め前方を撮影しているとする。カメラ1のフレームiに構造物が写っていたとすると、カメラ2では、上記のフレームj0よりもf2フレーム前に構造物が写っている。カメラ1,2間の構造物の撮影タイミングのズレ(f2)は、パン角および車両と構造物との間の距離によって定まる。カメラ1のフレームiに写っていた構造物は、カメラ2のフレームj=i*(s1/s2)+f2に写っていた構造物と同一である。
このように、複数のカメラ間で同一の構造物が写っているフレームは一意に定められる。しかしながら、カメラを搭載した車両と構造物との間の距離が一定でなかったり、GPS誤差やカメラの時間設定誤差により正確に切り出せなかったり、構造物検出部13の誤検出、検出漏れがあったりするので、複数のカメラ間で対応するフレームは計算で求めた基準位置(フレームj)からずれることがある。
そこで、本実施形態の同一構造物判定部15は、誤差、誤検出、および検出漏れを考慮しつつ、複数カメラ間での構造物の同一性を判定する。
図22は、複数カメラで撮影した撮影動画間における同一構造物の判定処理の流れを示すフローチャートである。
同一構造物判定部15は、各カメラの撮影動画から切り出した静止画群ごとに、その静止画群に含まれる全ての代表フレームについて、ステップS41〜S43の処理を繰り返す。
ステップS41にて、同一構造物判定部15は、処理対象の代表フレームに対応する他の静止画群内の代表フレームを抽出する。
例えば、カメラ1の撮影動画から切り出したフレームiが処理対象の代表フレームであるとする。カメラ1〜4の撮影動画からのフレームの切り出し距離とカメラ1〜4の向きを考慮した構造物の撮影タイミングのズレに基づき、カメラ1のフレームiに対応するカメラ2〜4のフレームj,k,l(基準位置)は一意に求まる。
図23に、各静止画群の代表フレームが最も理想的な場合を示す。図23の例では、計算で求められたフレームiに対応するフレームj,k,lが代表フレームである。この場合、同一構造物判定部15は、フレームiに対応する候補として、静止画群のそれぞれからフレームj,k,lを抽出する。
しかしながら、計算で求められたフレームj,k,lが代表フレームでないことがある。図24の例では、フレームkおよびフレームlは代表フレームではない。そこで、同一構造物判定部15は、基準位置からの前後のズレの許容範囲m1〜m4をカメラ1〜4ごとに設定し、処理対象のフレームiに対応する候補として、許容範囲内の代表フレームを抽出する。図24の例では、カメラ3については基準位置から許容範囲m3内に代表フレームk−3が存在し、カメラ4については基準位置から許容範囲m4内に代表フレームl+2が存在する。同一構造物判定部15は、フレームiに対応する候補として、静止画群のそれぞれからフレームj,k−3,l+2を抽出する。
また、許容範囲内に複数の代表フレームが存在することもある。同一構造物判定部15は、処理対象のフレームに対応する候補として、許容範囲内の全ての代表フレームを抽出する。図25の例では、カメラ3については許容範囲m3内に、フレームkとフレームk−3の2つの代表フレームが存在し、カメラ4については許容範囲m4内に、フレームlとフレームl+2の2つの代表フレームが存在する。同一構造物判定部15は、フレームiに対応する候補として、静止画群のそれぞれからフレームj,k,k−3,l,l+2を抽出する。
許容範囲内に代表フレームが存在しない場合は、基準位置のフレームを抽出しておく。後述の信頼度の計算では、許容範囲内に代表フレームが存在しないカメラについては信頼度を0とする。
ステップS42にて、同一構造物判定部15は、抽出した代表フレームについて全ての組み合わせを作成する。
図23の例では、フレームiに対応する候補としてフレームj,k,lが抽出されたので、同一構造物の候補としてフレームi,j,k,lの組み合わせを作成する。以下では、同一構造物判定部15の作成したフレームi,j,k,lの組み合わせを(i,j,k,l)のように表す。
図24の例では、(i,j,k−3,l+2)の組み合わせが得られる。
図25の例では、カメラ3についてフレームk,k−3、カメラ4についてフレームl,l+2を抽出したので、(i,j,k−3,l),(i,j,k−3,l+2),(i,j,k,l),(i,j,k,l+2)の組み合わせが得られる。
ステップS43にて、同一構造物判定部15は、全ての組み合わせについて信頼度を計算する。同一構造物判定部15は、カメラ1〜4ごとに基準となる信頼度d1〜d4を決めておき、基準位置から離れた距離(フレーム数)に応じて信頼度を下げる。具体的には、次式(1)を用いてそれぞれの組み合わせの信頼度を計算する。
信頼度=d1+d2*x^(v2a)+d3*x^(v3a)+d4*x^(v4a)
xは信頼度を下げるための1より小さい係数であり、例えばx=0.99とする。カメラごとにxを設定してもよい。v2a,v3a,v4aは、基準位置から離れたフレーム数である。基準となる信頼度d1〜d4については、例えば、d1=0.35,d2=0.4,d3=0.45,d4=0.5とする。検出対象の構造物が信号機であれば、上のカメラは信号機の特徴を捉えやすいので、上のカメラの信頼度を高くする。なお、後述のLIDARによる測距で構造物の位置が推定できる場合または予め位置情報がわかっている構造物の場合、その情報に基づいて信頼度d1〜d4を補正してもよい。
許容範囲内に代表フレームが存在しないカメラについては信頼度を0として計算する。例えば、カメラ2では許容範囲内に代表フレームが存在しなかった場合、d2=0として計算する。カメラ1,3,4の信頼度を合計した値が後述の閾値c以上であれば、カメラ2の検知漏れを防ぐことができる。
静止画群の全ての代表フレームについて上記のステップS41〜S43の処理を行い、さらに、静止画群のそれぞれについて行う。つまり、カメラ1の代表フレームを基準するだけでなく、カメラ2〜4のそれぞれの代表フレームを基準として組み合わせを作成するとともに、その組み合わせの信頼度を計算する。
ステップS44にて、同一構造物判定部15は、全ての組み合わせの中から信頼度の高い順に複数のカメラ間の同一構造物を確定する。
例えば、(i,j,k−3,l),(i,j,k−3,l+2),(i,j,k,l),(i,j,k,l+2)の組み合わせについては、(i,j,k,l)の組み合わせが最も信頼度が高い。したがって、フレームi,フレームj,フレームk,フレームlに写っている構造物を同一構造物として確定する。同一構造物判定部15は、構造物にIDを付与し、そのIDにフレームi,フレームj,フレームk,フレームlを関連付ける。出力部16において構造物のIDが指定されると、そのIDに関連付けられたフレームi,フレームj,フレームk,フレームlが表示される。
同一構造物として確定した組み合わせに含まれるフレームは、他の組み合わせから除外する。除外されたフレームを含む組み合わせについては、除外されたフレームの信頼度を0として、組み合わせの信頼度を再計算する。例えば(i,j,k−3,l+2)の組み合わせの新たな信頼度は0+0+d3*x^3+d4*x^2となる。
同一構造物判定部15は、閾値c以上の信頼度を持つ組み合わせがなくなるまで、同一構造物の確定を行う。例えば、閾値c=1とする。
なお、同一構造物として確定した組み合わせに含まれるフレームを除外する代わりに、確定したフレームの信頼度を下げてもよい。例えば、確定したフレームの信頼度を1/10とする場合、(i,j,k−3,l+2)の組み合わせの新たな信頼度はd1*1/10+d2*1/10+d3*x^3+d4*x^2となる。
なお、カメラ間で構造物が写るタイミングのズレ(基準位置を求める際に補正したフレーム数f2)を自動で算出してもよい。例えば、カメラ1,2のフレーム数f2を算出する場合、フレーム数f2を少しずつ変えながら、カメラ1の代表フレームに対応するカメラ2の基準位置を求め、基準位置にカメラ2の代表フレームが最も多くなるようなフレーム数f2を求める。
[LIDARの利用]
LIDARや簡易なレーザー測距計などを利用すると対象物までの距離を正確に測定できる。
図26に、LIDARの測定例を示す。図26のグラフは、横軸は走行距離を表し、縦軸は構造物までの距離を表す。車両にLIDARを載せて撮影方向の物体までの距離を測定すると、図26に示すように、道路沿いの円柱形の構造物までの距離を正確に測定できる。
車両に載せたGPSロガーを用いると、GPSロガーで得られた位置情報は車両の位置情報であり、構造物の位置から少し離れている。LIDARで車両から構造物までの距離を測定することで、構造物のより正確な位置情報を得ることができる。
また、複数カメラ間での構造物の同一性判定処理で用いる構造物の撮影タイミングのズレの算出および補正にLIDARを利用できる。複数カメラ間での構造物の同一性判定処理では、カメラ間の構造物の撮影タイミングのズレを予め設定して対応するフレーム(基準位置)を決定している。図27を参照して具体的に説明する。位置TL0に構造物が存在していると想定すると、パン角がθのカメラは、位置P2で位置TL0の構造物を撮影し、パン角が90度のカメラは、位置P1で位置TL0の構造物を撮影することになると想定される。位置P1と位置P2の間の距離L0に基づいてカメラ間で構造物が撮影されるフレーム数のズレを決定する。
ところが、実際には構造物は位置TLに存在している場合、パン角がθのカメラは、位置P3で位置TLの構造物を撮影することになる。本来ならば、位置P1と位置P3の間の距離L1に基づいてカメラ間で構造物が撮影されるフレーム数のズレを決定しなければならない。
LIDARを用いて位置P1の車両から位置TLの構造物までの位置を正確に測定すると、パン角がθのカメラで構造物を撮影できる位置P3および位置P1と位置P3との間の距離L1が計算でき、距離L1に基づいてカメラ間で構造物が撮影されるフレーム数のズレを正確に決定することができる。構造物の位置を測定できるたびに、撮影位置から構造物までの距離を算出して、基準位置となるフレームを推定してもよい。
[GPSと撮影動画との間の誤差の修正]
カメラが管理する時間とGPSロガーが管理する時間がズレている場合、撮影動画から切り出したフレームの位置情報に誤差が生じる。本実施形態では、処理開始前に、GPSと撮影動画との間の誤差を修正する。
図28の構造物TLは、位置がわかっているものとする。車両の進行方向に対して90度の角度で設置したカメラで構造物TLを撮影するとともに、GPSロガーで位置情報を取得する。
カメラの撮影動画からフレームを切り出し、構造物TLが中央に写っているフレームを選択する。図28の例では、位置P2で撮影したフレームを選択する。フレームを切り出す時間単位は、撮影動画の時間単位(例えば30fpsであれば1秒あたり30枚)もしくはGPSロガーの計測単位(例えば0.2秒)とする。
GPSロガーで計測した位置情報のうち、位置のわかっている構造物TLに最も近い位置情報を選択する。図28の例では、位置P2が最も構造物TLに近い。
選択したフレームの時刻と選択した位置情報の時刻に基づいてGPSと撮影動画の時刻をあわせる。例えば、フレームの時刻が12:00:00:400であり、位置情報の時刻が12:00:00:000であった場合、この時刻の差0.4秒を考慮して処理を行う。
以上説明したように、本実施形態によれば、静止画取得部11が、複数の撮影動画のそれぞれから一定距離ごとに静止画(フレーム)を取得し、構造物検出部13が、検出対象の構造物の写ったフレームを検出し、カメラ毎の同一構造物判定部14が、撮影動画ごとに、フレーム間の同一構造物を判定し、カメラ間の同一構造物判定部15が、撮影動画間で同一構造物を判定し、出力部16が、同一の構造物の写った複数の撮影動画から取得したフレームを並べて表示することにより、構造物を効率よく点検可能になる。
複数のカメラを用いてチルト角やパン角を変えて撮影すると、高い構造物や逆光に対応できる。撮影動画から短い間隔でフレームを切り出すと目的の構造物の切り出し漏れを抑制できる。しかしながら、ある構造物の写っているフレームを見たい場合、膨大な数のフレームから探さなくてはならない。また、パン角を変えると複数の撮影動画間で構造物の写るタイミングが変わるので、複数のカメラで同じ時刻に同一構造物が写らないこともあり、それぞれから同一構造物を探さなくてはならない。本実施形態の構造物検出装置1を用いることで、同一構造物の写っている画像がまとめられ、見たい構造物を地図上で指定するだけで、様々なアングルで撮影した構造物の画像を一覧できる。また、構造物検出装置1は、構造物が最もよく写っているフレームを代表フレームとして並べて表示する。その結果、構造物を効率よく点検可能になる。
本実施形態によれば、構造物検出部13が、検出対象の構造物の写ったフレームを検出し、カメラ毎の同一構造物判定部14が、連続するフレームn−1,n間における構造物の検出枠の位置の変化に基づいて、フレームn−1とフレームnに写っている構造物が同一構造物であるか否かを判定することにより、連続するフレーム間で同一の構造物を判定できる。具体的には、フレーム内の風景の移動方向と同じ方向に移動する検出枠の構造物は同一構造物であると判定する。
本実施形態によれば、カメラ間の同一構造物判定部15が、フレームの切り出し距離とカメラ1〜4の向きを考慮した構造物の撮影タイミングのズレに基づき、カメラ1の代表フレームiに対応するカメラ2〜4のフレームj,k,l(基準位置)を推定し、カメラ2〜4について、基準位置から許容範囲内の代表フレームを抽出することにより、パン角の異なる複数の撮影画像間で同一の構造物を判定できる。