以下、図面を参照にしつつ、本発明の車両認識装置の実施形態について説明する。
図1に示されるように、車両認識システム1は、作業対象の現場において自動的に作業を行う車両(例えば重機)をカメラにより追従するシステムである。
図2は、車両認識システム1の構成の一例を示すブロック図である。車両認識システム1は、例えば、現場の状況を撮像するカメラを含む撮像部10と、撮像部10により撮像された画像を第1手法に基づいて処理し、車両を認識する第1認識装置20(第1画像処理部)と、撮像部10により撮像された画像を第2手法に基づいて処理し、車両を認識する第2認識装置30(第2画像処理部)とを備える。
撮像部10は、制御により可動自在な雲台を含み、第1認識装置20により制御されて重機が撮像領域に入るように追従制御される。第1認識装置20は、例えば、現場に配置されたPC(Personal Computer)等の端末装置である。第1認識装置20と撮像部10とは、有線または無線により通信可能に接続されている。第1認識装置20は、例えば、撮像部10と共に現場に設置され、撮像部10により撮像された画像データを取得する。第1認識装置20は、撮像部10により撮像された画像に基づいて常にテンプレートマッチングに改良を加えた後述の第1手法(ATM3D:Automated Template Matching meets motion detection)を用いて撮像部10を制御して重機の追従を行う。
第1認識装置20は、例えば、ネットワークNWを通じて第2認識装置30と通信し、データを送受信することができる。第2認識装置は、例えば、GPU(Graphics Processing Unit)を有し、第1認識装置20よりも高速に処理を実行することができる端末装置である。第2認識装置30は、第1認識装置20から取得した画像データに基づいてニューラルネットワークによる深層学習による後述の第2手法(POLO:Partsbased YOLO(You Only Look Once))を用いて重機の認識を行う。
車両認識システム1は、上記の二手法の画像処理による検出手法を統合することでロバストな重機のカメラ追従を実現する追従システム(ATCS:Automatic Tracking Camera System)である。
まず、第1認識装置20は、撮像部10により撮像された重機を含む画像を、LAN(Local Area Network)ケーブルを経由しで取得する。第1認識装置20は、重機を含む画像に基づいて、重機を第1手法で認識する。同時に、第1認識装置20は、重機の画像を、ネットワークNWを経由して第2認識装置30に送信する。第2認識装置30は、取得した重機を含む画像に基づいて、重機を第2手法で認識する。
第1認識装置20は、第2認識装置30による認識結果を受信するまでの間に、第1手法を用いて重機の認識処理を行い、第1認識装置20は、認識結果に基づいて、撮像部10にカメラを制御するための制御信号を含む情報を送信し、カメラを重機に追従させるよう動作させる。
また、第1認識装置20は、第2認識装置30による認識結果を受信した際に、第1手法の結果と第2手法の結果とを統合し、画像上の重機の位置を認識し、得られた最終結果をもとにカメラを重機に追従するように制御する。車両認識システム1は、これを繰り返すことで、リアルタイムかつロバストな追従制御を行うことが出来る。続いて第1手法(ATM3D)と第2手法(POLO)とのそれぞれの詳細を述べる。
まず、第1認識装置20において実行される第1手法(ATM3D)の処理について説明する。ATM3Dは、テンプレートマッチングベースによる追従と動き検出を組み合わせたカメラ追従手法である。ATM3Dにおいては、カメラの移動を行っている際にカメラ映像内の重機を検出し続けることを得意とする。
図3に示されるように、テンプレートマッチングとは、画像内から物体を探索する手法の一つである。テンプレートマッチングは、撮像された画像よりも小さい予め用意された画像(テンプレート画像)に最も類似度が高い画像領域(第1画像領域)を撮像された画像の中から抽出する手法である。テンプレート画像は、例えば、重機が撮像された画像である。テンプレート画像は、例えば、予め作成された複数のパターンの画像が第1認識装置20の記憶部に記憶されている。第1認識装置20は、テンプレートマッチングを連続でリアルタイムに行うことで、撮像された画像上で重機を追従することができる。
しかし、テンプレートマッチングは重機の姿勢が変化しない状態では物体を安定して追従することができるが、重機の向きの変化や外観の一部が隠蔽されるなど、重機の外観が大きく変わる状況が発生すると重機を追従できなくなることがある。そこで、テンプレートマッチングで用いるテンプレート画像を、以下で説明する手法により、常に自動更新してロバスト性を向上させる。
まず、最初のテンプレート画像は、ユーザが第1認識装置20の表示画面上でマウスのドラッグ操作を行って矩形の領域を指定することにより選択される。第1認識装置20は、選択された最初のテンプレート画像と、カメラにより撮像された次のフレーム画像とを比較し、テンプレートマッチングを行い、フレーム画像の中から最も類似度が高い画像領域を検出する。そして、第1認識装置20は、抽出した画像領域に基づいて画像上の重機の位置を推定する。次に、第1認識装置20は、フレーム画像の中から抽出された画像領域を新たなテンプレート画像として更新する。
カメラが新たなフレーム画像を撮像した場合、第1認識装置20は、更新したテンプレート画像と新たなフレーム画像とを比較して新たなフレーム画像の中から重機を含む画像領域を抽出して重機を追従すると共に、抽出した画像領域を新たなテンプレート画像として更新する。その後、第1認識装置20は、これらの処理を繰り返しながら重機の追従を行う。
新たなテンプレートマッチングを行う際に、第1認識装置20は、処理を高速化するため、直前の検出位置から所定距離の範囲内において重機の探索を行う。これは、重機が一フレーム分の時間に、画面内を大きく移動することはありえないため、画面全体を探索する必要が無いからである。
しかし、この処理方法によれば、テンプレート画像のサイズを変更する機能がないため、図4に示されるように重機のカメラからの距離が変化すると画面内の重機の大きさが変化し、重機を追従できなくなる場合がある。
また、初期テンプレート画像から重機が大きく方向を回転する等の動きが発生した場合、図5に示されるように見えていた面が見えなくなるため、テンプレート画像の位置がずれ、追従できなくなる場合がある。
そこで、更なる重機の追従のロバスト性を向上させるために、重機の「動き」に着目し、動き検出の手法である背景差分を用いてテンプレートマッチングを補完する。背景差分とは、二枚の画像を比較して差分を抽出するもので、カメラ映像の現在撮像されたフレームの画像と、過去に撮像されたフレームの画像とを比較することで変化を抽出する。すなわち、カメラが動いていない場合は動くものが抽出できるため「動き検出」として用いることができる。
テンプレートマッチングが追従できなくなる原因は、重機の旋回によって見えていた面が見えなくなることに起因する。しかし、重機が旋回して見えていた面が見えなくなるということは、大きな変化(動き)が発生していることを意味し、動き検出を適用して重機を抽出すれば重機を追従できるということである。そのため、第1認識装置20は、テンプレートマッチングにより検出しにくい重機の旋回等の動作を背景差分による動き検出で補完する。
しかし、背景差分のみでは、カメラが動く場合やズームを行う場合、画面全体が変化するため、動いているものだけを検出することが困難となる場合がある。図6は、画像処理に基づいて重機を抽出する一例を示す図である。
図6(b)は図6(a)に背景差分を用いて動いている重機の検出を行った結果である。重機を撮像した画像を黒と白のみで表現した二値化画像において、白くなっている部分が変化を抽出した部分である。図6(b)に示されるように、前後のフレーム画像の比較処理によって背景差分を行うと、動いている物体の枠のみ抽出されることがある。以下、背景差分の認識率を向上させる手法を示す。
図6(c)に示されるように、例えば、過去に撮像された数フレームで得られた背景差分データを重ね合わせて重機の所定位置を残像のように残すと、図6(d)に示されるように、重機の動き部分を強調できる。さらに抽出したエリアに膨張処理を行うと、図6(e)に示されるように、移動物体をはっきりと抽出することができる。
ただし、この時点では移動物体は、一つの塊として認識されていない。第1認識装置20は、この画像に、連結部分を一つの物体として認識する後述のラベリングによる画像処理を行い、移動物体として抽出する。そして、第1認識装置20は、移動物体を抽出した後、移動物体の塊が内接するように対象物を囲む矩形(バウンディングボックス)を画像上に描画する(図6(f)参照)。
次に、ラベリングの原理を説明する。図7に示されるように、ラベリングは、二値化画像に対して行う画像処理である。第1認識装置20は、二値化画像において、同じ塊(連結成分)に属する全ての画素に同じラベル(番号)を割り当て、異なった連結成分には異なったラベルを割り当てる。
図示するように、黒い正方形は画素を表し、白い部分は隣接する連続した画素に同じ番号が割り振られたものである。第1認識装置20は、このような処理を行い、二値化画像に含まれる塊を抽出する。このように、背景差分で得られた二値化画像にラベリングを適用すると、画像上における物体の切り分けが行われる。そして、物体の領域に対して内接矩形を描画することで画像上の重機の位置が検出される。
しかし、ラベリングされた物体が次のフレームでも同じ番号であるとは限らない。本実施形態ではラベリングは、サイズが大きいものから順にラベルを付ける。特に、サイズが小さいものはノイズなどの意味のないデータであることが多く、追従対象ではないため、一定値以下の面積は排除する処理を行う。また、必ずしも追従対象が最大面積になるわけではないため、追従対象を含む複数の物体が検出される可能性があることに注意する必要がある。
背景差分は、画像上の移動物体を検出することができるが、カメラが動く場合は、画像全体が動体として認識されるため、重機のみの追従を行うことができない。また、追従対象が止まって他の物体が動いた場合、動いた方を追従対象としてしまう可能性がある。
そこで、第1認識装置20は、重機の認識処理においては主に「テンプレートマッチング」を用いた追従を行い、重機が大きく姿勢変化する等の動きを検出した際に、背景差分による「動き検出」を用いてテンプレートの検出ミスを補償する。「テンプレートマッチングによる追従」ではテンプレートに最も類似している矩形画像を含む位置が結果として得られる。また、「動き検出」ではラベリングから得られた複数の塊に内接する複数の矩形画像が得られる。
ここで「テンプレートマッチングによる追従」で得られた矩形画像に、十分近い「動き検出」による矩形画像が存在する場合、その矩形画像を新たなテンプレート画像とする。逆に、「テンプレートマッチングによる追従」で得られた矩形画像に近い「動き検出」矩形画像が存在しない場合、「テンプレートマッチングによる追従」で得られた結果矩形を用いて追従を継続する。また二つの結果矩形の類似度は、以下に示すIoU(Intersection over Union)を用いて決定する。
図8に示されるように、IoUとは、複数の矩形領域の重なり度合いを数値化したものであり、複数の矩形が重なっている領域の面積(Area of intersection)を複数の矩形によって覆われた領域の面積(Area of union)で割ることで算出できる。IoU値を求める計算式は式(1)のようになる。
IoU=(Area of intersection)/(Area of union) (1)
つまりIoU値が最大値の「1」に近づけば近づくほど矩形の位置とサイズの類似度が高く、最大値の「1」をとる場合、同一の矩形であるといえる。
次に、第2認識装置30により実行される第2手法(POLO)の仕組みについて説明する。POLOは、ニューラルネットワークに基づいた機械学習に基づく深層学習の結果から物体を検出する物体検出手法であり、上述したテンプレートマッチングや背景差分よりも高い認識結果を導出することができる。機械学習を用いた物体検出では、対象物の見え方が多少異なっても、認識出来るようにすることや、検出時に検出対象を任意の大きさで検出出来るようにすることなど、テンプレートマッチングのような画像処理手法では実現出来なかったものを解決することができる。
しかし、POLOを用いた処理結果は、計算機の処理時間を要し、リアルタイムでの重機の検出に用いることは困難である。従って、第2認識装置30の第2手法による認識結果を第1認識装置20の第1手法の補完に用いることで、車両認識システム1における重機の認識のロバスト性を向上させる。
ここで、ニューラルネットワークとは、動物の神経回路網を人工的に計算機上のアルゴリズムにより再現したものである。ニューラルネットワークは、学習を行って、入力したデータに対して学習結果を適用した出力結果を出力するものである。ここで、学習とは、学習用に設けられたデータに基づき反復的な訓練を通して計算に用いられる評価関数の複数のパラメータを更新するものである。学習を行った後、観測により得られた観測値のデータが入力された際に、学習結果に基づくパラメータが適用された評価関数に基づく計算が行われ学習結果が反映された出力値が出力される。
現在、機械学習により、物体の検出や検出した時の位置精度をより正確にするためのアルゴリズムの精度を向上することが研究されている。ニューラルネットワークに基づいたこれらのアルゴリズムは、それらを訓練するのに十分なデータがあればうまく検出するようになるが、無人工事現場の監視カメラタスクに適用する場合、検出における問題点が生じる。例えば、検出対象物である重機が時々土手や樹木により隠れてしまい、対象物全体の姿を捉えることができず、対象物の検出が困難となる。
図9に示されるように、重機の一部が障害物に隠蔽される場合、重機全体の姿を捉えることができず、物体検出アルゴリズムによる重機の認識が妨げられる。それは、検出対象物がデータに基づいて学習した対象物の姿と異なるように見えることに起因する。このような状況は、対象物が目的地に移動中に発生する。
カメラによる自動追従を実現するためには、このような状態であっても、よりロバストに重機を検出する必要がある。重機が隠れた状態の学習データを用意し、学習することで重機を検出することも考えられるが、重機の隠れ方というのは状況により異なり、重機のあらゆる見え方が記録されたデータを収集することが困難である。
しかし、人間は、完全に対象物が見えない状況を除いて、図9のように対象物の一部の領域を見ることができるのであれば、対象物を認識することができる。なぜなら、人間は視認した領域の情報に基づいて、既知の知識を当てはめて、見えない部分を推論して情報を補完しているためである。
例えば、図9(a)に示されるように、木々の間からダンプカーのクローラ部分と積載部の一部が見えることにより、対象物がクローラダンプであると推測される。従って、発明者らは、物体がどのようなパーツ(部位)から構成されているかを学習することによって、重機の一部が隠れるなどの状況下でも重機を検出することができることを見出した。これは物体の外観全体のみを考慮する畳み込みネットワークに基づく既存の追跡方法とは異なるものである。
提案する物体の部位に基づくオブジェクト検出方法は、対象物の重機を構成する複数の部位を個別に認識し、複数の部位の認識結果を組み合わせて重機の全体の形状を認識し、重機の種別および画像上の位置を推定する。
発明者らによる提案手法によれば、重機の部位に着目することで、重機の一部が隠れる場合の認識に強いという特性を与える他に、重機の回転等の動きが生じた場合の認識に強いという特性も与えることができる。回転や作業により生じる全体の姿の変化に対し、部位の見え方の変化というのは往々にして小さい。そのため、部位の情報を組み合わせることで全体の見え方の変化が激しい場合にも、検出がよりしやすくなる。
以下、重機が隠れた場合の重機の部位に着目し、それらを組み合わせて全体を推定する第2手法の処理について説明する。第2手法の処理において、部位の検出処理については現行の物体検出モデルをバックボーンとする。バックボーンとして例えば、畳み込みニューラルネットワークを用いたディープラーニングによる画像の物体認識アルゴリズム(例えばYOLOv2)が用いられる。
この物体認識アルゴリズムは、機械学習を用いた物体検出の中で主流となっているものの1つであり、他のアルゴリズムに劣らない検出精度を保ちつつ、リアルタイムに向けて高速処理が可能であるという特徴を有する。
通常、畳み込みニューラルネットワークは演算回数が従来の画像処理手法と比較して多い。今回の自動追従システムは動画でリアルタイム処理をする必要があるため、検出精度が高いことも重要であるが、計算速度が早いことも重要な点となる。以下、部位に着目したYOLOモデルをPart based YOLO(POLO)と呼ぶ。
YOLOv2は他の機械学習に基づく物体検出方法と異なり、全て畳み込みニューラルネットワークで構成されている。
YOLOv2の処理において畳み込み後の計算結果はテンソル形状となっており、そのYOLOv2において対象領域がどの種類のカテゴリが含まれているか、その信頼度数がどれほどか、座標位置がどこか、などの情報が含まれるように学習が行われる。
YOLOv2の処理過程において、ノイズのような結果をフィルタリングし、計算結果を後処理により整理して出力する。重機の認識において重機全体ではなく、重機の部位及び全体を検出するようにYOLOv2を学習すると、YOLOv2の畳み込み後のテンソルには部位検出に関する情報が詰まった状態で出力される。そのため、それらの計算結果を用いて、全体を検出するように推論するネットワークをYOLOv2の処理段階の後段に取り付けることにより、部位を組み合わせて全体を推論する検出モデルが構築される。
図10は、第2手法の処理の内容の一例を示す概念図である。左の32×32と記載された箱状のものは、特徴量マップのテンソルを表現したYOLOv2の出力結果を示す。32×32は特徴量マップのサイズである。特徴量マップの厚さ、チャネル数は以下の式(2)により決定される。
channels = num × (classes + coords + 1) (2)
式(2)において、numはグリッドあたりの推定数個数(例えば5)である。classesは、推定クラス、coordsは推定すべき座標パラメータ数(例えば4)である。
図10において、左の特徴量マップと右の特徴マップの間は、認識した重機の部位の情報を組み合わせて重機の全体の形状を推論するための処理である。右の特徴量マップは、変換後の特徴量マップであり、この出力値を用いて重機全体の画像上の位置や種類を推定する。特徴量マップからの推定はYOLOv2の推定と同様のものを用いる。
POLOによる重機を検出するための訓練用データセット(学習データ)および評価用データセットは、無人化施工現場において撮像された映像データ及び模擬用のRC(Radio Control)模型で制作された重機を撮影した映像を用いて作成された。重機を含む画像領域は、動画中のフレームをランダムに切り出して抽出された。
今回のデータセットでは、重機の種類をバックホーとダンプ(クローラのものを含む)とした。データセットの形式はVOCデータセットの形式とし、カテゴリとして、ダンプデータセットには、タイヤ、ダンピングベッド、タクシーのパーツ(部位)を含み、ダンプ全体の形状も含まれる。バックホーのデータセットには、アーム、ブーム、バケット、カウンターウェイト、シューズ、キャブなどに、バックホー全体の形状も含まれる。ダンプを含む画像約2000枚とクローラダンプの画像1500枚とが準備され、訓練用およびテスト用として4:1に分けて使用された。
図11に示されるように、データセットの重機を含む画像領域において小さな枠で囲まれた画像領域は重機の部位を示し、大きな枠で囲まれた画像領域(第2画像領域)は重機の全体を示す。
次に、POLOの訓練方法について説明する。一般的にパラメータが多いニューラルネットワークなどを用いた機械学習では、少ないデータ数で学習をしようとすると、訓練データに適合し過ぎてしまう過学習が生じることが知られている。この問題の解消方法として、転移学習というものがある。これはあるタスクに対して、そのデータが少ない場合に、別のタスクの規模の大きいデータセットを用いてパラメータを事前に学習し、その後、本来のタスクを少ないデータセットで学習する方法である。
転移学習を用いることで、ランダムに初期化されたパラメータを0から学習する方法より精度が良くなる。物体検出のデータセットは、画像認識のデータセットと比較して、教師データを作成するのが困難になる。それは、物体認識のデータセットは、ある画像に対して、対応するカテゴリのラベルを指定するものであるが、物体検出の教師データの場合には、それぞれの対象の物体に対して、物体のある座標及びそのカテゴリの指定が必要になるからである。
そのため、物体検出のデータセットを作成するためには手間がかかり、画像認識の学習を行うために必要なデータセットに対して数が少ないため、機械学習を用いた物体検出のモデルを学習させるときには、物体認識用に用意されたデータセットを用いて、良い特徴量を得やすいパラメータを学習する。学習の結果、物体検出のモデルとして使用できるパラメータが生成されパラメータが初期化された後に、転移学習として、物体検出のデータセットで学習が行われる。
第2認識装置30は、重機の認識処理において上述した転移学習を用いる。第2認識装置30において実行されるPOLOの工程には2段階の工程がある。1段階目は、重機の全体の形状を含めて重機の複数の部位を検出するようにする訓練工程である。2段階目は1段階目で学習したモデルにより得られる特徴マップを変換し、複数の部位を統合して重機の全体形状を推定する変換器の学習工程である。
1段階目の訓練工程は、YOLOv2の訓練と同様の設定が用いられた。異なる部分は検出するクラス数であり、検出対象は重機の部位および全体である。1段階目の学習時に重機全体の検出が含まれるのは、1段階目ですでに重機全体を検出できるような状態であるならば、その情報を用い、全体を検出できない場合には組み合わせられるようにするためである。
2段階目の訓練工程は、1段階目で訓練したパラメータを固定して、新たに追加した変換器のパラメータのみを学習する。学習に使用するラベルは部位の教師データを使用せず、バックホー全体とクローラダンプ全体の2種類のみである。
上記のデータセットにおいて、大体の状態において重機を検出することが可能であることが確認された。検出出来なかった状態については、バケットが見えにくい状態にある、また、小さくて検出しにくいことが原因として考えられる。今回使用した訓練データセットは、通常の物体検出を訓練するデータセットと比較して小さいので、より精度をあげるためには、データセットの量を増加させ、特徴量を得やすくする必要がある。
重機を追従する際には重機全体を検出する必要があるが、バケットをアームの動作により操作するバックホーなどの作業時には、バケットに着目することが想定される。そのため、バケットについて、2段階工程の学習を終えたあと、計算処理の途中結果からバケットに関する部位情報を抽出し、検出することが出来るか否かを確認した。
POLO自体の最終処理結果は全体の推定になるため、部位情報を抽出するには、部位情報統合推論部分前の結果であるYOLOv2の結果を使用し、部位情報について推論する必要がある。2段階工程の訓練後であっても第1段階目の処理に用いられるパラメータが固定されているため、部位の情報について推論することが可能である。図12は、機械学習の訓練後に異なるパターンのテストデータを用いたバケットの検出結果の一例を示す図である。
次に、上述したATM3DとPOLOとの2つの検出結果を統合する手法について述べる。上述したように、ATM3Dは初期テンプレートを設定してから、変化量が少ないほど追従精度は高いが変化量が大きくなると追従できなくなる場合がある。
一方で、POLOは時系列データを用いていないため変化量に依存しないが、他の重機の検出や突発的な誤検出が発生する可能性がある。それに対して、ATM3Dの検出結果は追従対象から突如大きく離れることは少ない。ゆえにATM3Dの検出結果にPOLOの検出結果が類似している場合のみPOLOの検出結果を採用する。
例えば、ATM3DおよびPOLOはいずれも重機の検出結果として画面内の重機を囲む矩形で表現されるため、この2つの矩形の類似度をIoUにより算出し、閾値によってATM3DとPOLOの検出結果のどちらを採用するかを決定する。その後、どちらを採用したかに関わらず、採用した矩形位置に応じてカメラ雲台の制御とATM3Dで用いるテンプレート画像の更新を行う。ただし、POLOはGPUが搭載されたコンピュータで処理を行うため、オンライン上の外部のコンピュータの使用を想定する。
現場において第1認識装置20は、第2認識装置30と通信し、撮像部10が撮像した画像を送信してから、第2認識装置30が検出処理を行って第1認識装置20に検出結果を送信するまでに通信環境に基づく時間を要する。例えば、実験例では、画像を送り始めてから検出結果が戻るまで1フレーム0.25〜1秒程度必要であった。実験例では、操作者にフレームレートの低い(非連続な)映像を提供することを防ぐため、ATM3Dによるカメラ追従とPOLOによる検出処理を並列処理させた。
次にカメラの制御方法について説明する。常にカメラを動かすのではなく、画面から重機がはみ出さない程度に大きくカメラを動かす必要がある。そこで、第1認識装置20は、画面中央にある大きさの矩形領域を設定し、矩形領域の内部に追従対象が収まるようカメラを動作させる。まず、第1認識装置20は、検出結果に基づいて重機を囲む矩形領域の位置を取得する。
次に、第1認識装置20は、検出された矩形領域の中心位置が画面の中心を含む所定の大きさの矩形の中心領域内に収まるようにカメラ雲台を一定速度で動作させ、中心領域内内に重機の矩形領域の中心が収まった場合はカメラ雲台を停止させる。例えば、第1認識装置20は、重機が画面内の左上にある場合、画面の中心領域内に重機の矩形領域が収まるようにカメラ雲台を動作させ続ける。第1認識装置20は、中心領域内に重機の矩形領域の中心が収まった場合、カメラ雲台の回転を止める。この結果、重機は、第1認識装置20の表示部の画面上において中心近くに表示される。
画面上に表示される矩形の中心領域のサイズは、操作者の操作により任意のサイズに設定される。中心領域のサイズが小さく設定された場合、第1認識装置20は、中心領域内に重機の矩形領域の中心を収めるように重機の移動に対して反応して頻繁にカメラ雲台を動作させることになるが、重機は画面中央に表示されるようになる。
中心領域を小さく設定しすぎると、移動する検出対象が中心領域に入った際に、カメラ雲台が動いて停止する前に、検出対象の動きに合わせてさらに雲台が動くことで中心領域からはみ出してしまう事があり、場合によってはカメラ雲台が振動してしまう可能性がある。この現象は、特にカメラ映像が第1認識装置20により取得されるまでの遅延時間や雲台のモータの速度に依存する。
一方で、中心領域のサイズが大きく設定された場合、第1認識装置20は、重機の多少の移動ではカメラ雲台を動作させない。実験では、経験的に、重機の操作に適切と思われる追従が行える矩形領域を設定した。
次に、車両認識システム1において実行される処理の流れについて説明する。図13は、車両認識システム1において実行される処理の流れの一例を示すシーケンス図である。
まず、第1認識装置20は、撮像部10から一フレーム分の画像を取得する(ステップS100)。第1認識装置20は、同時に第2認識装置30にこの画像データを送信する。第1認識装置20は、撮像部10から取得した画像に基づいてATM3Dを用いた処理による重機の追従処理を行う(ステップS102)。第1認識装置20は、第2認識装置30から検出結果を受信するまでステップS100およびステップS102の処理を繰り返し、重機を追従し続ける。
第2認識装置30は、画像データを受信する(ステップS104)。第2認識装置30は、第1認識装置20の処理と並行して受信した画像データに基づいてPOLOを用いた処理による重機の検出処理を行う(ステップS106)。第2認識装置30は、POLO処理に基づく検出結果を第1認識装置20に送信する(ステップS108)。
第1認識装置20は、第2認識装置30から検出結果を取得すると、ATM3Dを用いた処理による重機の検出結果と、POLOを用いた処理による重機の検出結果とを比較する(ステップS110)。第1認識装置20は、IoU値が所定値以上であるという基準を満たすか否かを判定し、判定結果に応じてどちらか片方の結果をATCSの結果として採用する(ステップS112)。第1認識装置20は、採用したATCSの結果に基づいて、撮像部10の雲台を制御してカメラを重機に追従させる(ステップS114)。
車両認識システム1の動作を確認するため、実験室において実験を行った。現場の環境に類似させるため、実際の無人化施工現場で使われる監視カメラを用意し、床から高さ80cm程の位置にカメラを設置した。また、遠隔操作重機の代替として、無線で動作するRC模型のダンプカーとバックホーの二台を用意した。また、第1認識装置20と第2認識装置30とは、実際の現場の実験で使用するものと同様のものを使用した。
次に通信環境について説明する。GPU搭載PCは有線にて施設内LANに接続されている。事前実験では監視カメラは有線にて施設内LANに接続し、処理用PCはWi−Fi(登録商標)にて施設内LANに接続した。
図14及び図15は、車両認識システム1の動作結果の一例を示す図である。各画面の中央の矩形は中心領域である。図14のt=30は、中心領域から重機の中心が外れているのはカメラの雲台が動作している経過が示されている。このように、車両認識システム1によれば、カメラの動作やズームにより画面全体が動体として検出されていても、その結果は無視され、最終的な出力結果において重機の追従を継続できる。また、車両認識システム1によれば、重機の見え方が大きく変わる状況でも、動き検出の結果に基づいて、テンプレート画像サイズが変更された結果、重機の追従を継続できる。
しかし、車両認識システム1の処理において、POLOを用いた検出においては、カメラに映る重機の面や方向、画面に対する重機の大きさなどの関係により、一部の状況において検出できない状況が生じたが、この結果に基づき、POLOに新たな教師データを加え、再学習が行われた。
次に、車両認識システム1の検証のために、現場を模した屋外の実験場において実際の重機を用いた実験が行われた。実験に用いた重機は、実際の無人化施工現場で使用されているものとし、第1認識装置20、第2認識装置30および撮像部10については事前実験と同様のものを使用した。カメラは、実験現場全体を見渡すことができるように2階建ての建物の屋上に設置された。
次に通信環境について説明する。第2認識装置30は、事前実験と同様に施設内に有線LANで接続されている。現場での実験を行うため、撮像部10のカメラは第1認識装置20に有線LANで直接接続され、第1認識装置20は、Wi−Fiを用いてモバイル回線ルータを介してネットワークNWに接続した。実験範囲内には同じ型の重機が二台あり、一台は停車したままであり、一台を遠隔操作で動かした。図15は、実験環境を撮影したものである。
重機の追従能力を定量的に評価するため、以下の手順で検出の正解データを用意した。まず、実験で取得した、重機を追従している評価用映像を用意した。次に、この動画から一定フレーム間隔毎に重機のバウンディングボックスを使用者の操作によって設定した。ここで得られたバウンディングボックスと画像処理による検出結果の位置、大きさ、を比較することで、検出の精度を評価する。評価用映像全体での「追従時間率」と「検出率」を示す二つの評価値を定義した。
二つの評価値の具体的な算出方法を述べる。正解のバウンディングボックスと検出結果として得られる矩形の重なり度合いを示すIoU値を、正解データのあるすべてのフレームで算出し、IoU値が0.7以上のフレーム数をカウントする。これを全体のフレーム数で割ることで、検出率として数値化した。
この数値が高いほど、検出精度が高い状態を維持できていた時間が長いことを意味するが、IoU値が低くても追従することは可能なため、この数値は追従能力を完全に反映するものではない。故に、他の評価基準として、重機の追従を開始してから追従ができなくなったフレームまでのフレーム数をカウントし、全体のフレーム数で割ることで、追従時間率として数値化した。これにより、どれくらいの時間重機を追えていたかが評価出来る。追従ができなくなったフレームは、正解データと検出結果のIoU値がはじめて0になったフレームとする。
各手法における、この二つの評価値を比較するため、評価用映像を用いて、複数の手法でそれぞれ追従を行った。評価用映像は、時間:2分39秒、サイズ:976x552およびフレーム率:29.96FPSである。どの追従手法も、初期フレームで追従対象のバウンディングボックスの位置または画像を指定することで追従を開始するため、正解データの初期フレームのバウンディングボックスを追従開始のためのバウンディングボックスとして指定した。つまり、どの手法も同じ条件で追従を開始した。
次に、評価対象について述べる。提案手法の有効性を確認するため、MedianFlowのような既存の一般的な追従手法を用いて検証を行った。一般的な追従手法として MedianFlow、KCF、MIL、Boostingの4手法を、OpenCVライブラリを用いて実装し、評価用映像を用いてそれぞれの手法で追従を行った。なお、これらの手法は動作が重いため、一フレームごとに検出結果が出るまで待機して行った。
また、ATM3Dのみ、POLOのみによる追従を行った。POLOの検出精度は通信速度に依存するため、二つの検出結果を評価した。一方は、一フレームごとにPOLOの結果が返るまで待機し、すべてのフレームで検出を行い、結果を取得した。他方は、現場環境と同様の通信環境で動作するATCSを動作させ、検出結果統合前のPOLOのみでの検出結果を取得した。これらの結果をもとに、評価値を求めた。また、ATCSの検出結果も取得し、その評価値も求めた。
図16は、評価用映像を用いて一般的な追従手法による追従を行っているときの一定フレームごとの検出結果である。fは動画のフレーム数を表し、画像が追従開始から何フレームかを示している。各矩形は、正解データ、MedianFlow、KCF、MIL、BoostingおよびATCSのそれぞれの手法による検出結果を表している。
次に、第1手法(ATM3D)の評価結果について説明する。図17は、評価用映像にて第1手法のみによる追従を行っているときの一定フレームごとの検出結果である。矩形は検出結果を表している。
次に、車両認識システム1の処理(ATCS)の評価結果について説明する。図18は、評価用映像を用いて車両認識システム1の処理による追従を行っているときの一定フレームごとの検出結果である。各矩形はPOLO、ATCSの検出結果を表している。
図19は、各検出手法に基づく重機の検出率の評価結果の一例を示す図である。
MedianFlowとKCFは、重機の検出位置が初期位置から大きく変化せず、そのまま重機が移動したため、早期に追従できなくなった。MILは、上記二手法に比べ、長い時間追従できたが、追従時間率は57%であり追従を継続することが出来ない。
Boostingによる追従においては、追従時間率が100%であったが、最終フレームでは重機から進行方向逆側に大幅にずれており、この検出結果に基づいてカメラを動かした場合、操作者に適切な映像を提供できない可能性があるだけでなく、その後の重機の動き方次第では追従できなくなることが予想される。
ATM3Dで動作している動き検出は、アルゴリズムの特性上、特に重機の動きが早いとき、実際の重機のサイズよりやや大きく検出されるため、検出率が低い。また、一方でATM3Dの追従時間率は100%であり、最終フレームでも重機全体を囲んでおり、その後、重機が移動した場合も、追従可能であると予想出来る。
POLOは通信速度に依存するため、通信速度を無視した結果と、現場環境を再現した結果を評価した。POLOは追従対象以外の重機の検出と「(低確率だが)重機ではない場所を重機として誤検出すること」があるため、追従対象の重機が検出されている限り他の検出結果を無視した。また、通信速度を考慮した場合において、POLOの検出結果は全フレームで取得できるわけではない。そこで新しい検出結果が戻るまで直前のPOLOの検出結果を固定して評価した。
POLOの検出においては、評価映像の全フレームで、重機を検出しないフレームは存在しなかった。また通信環境によらず、最後まで追従を行うことが出来た。これは、過去のフレームや結果をもとに検出を行う他の手法とは異なり、POLOは一フレームのみで検出を行うためである。通信環境を無視した場合、つまり純粋なPOLOのみでの検出率は非常に高い。一方で実環境を想定した実験では検出率の低下が見られる。これは、検出結果が戻るまでの時間に重機の移動や、特にカメラの移動により、画面内の重機の位置が変化し、検出結果の位置が実際の位置より遅れ、大幅にずれるためである。
ATCSも追従時間率は100%であり、検出率も高い。一方で、通信環境を考慮したPOLO同様に、カメラが動くとき、検出位置が遅れることが確認された。
検出率順は、追従時間率順と同じであり、評価映像において重機を追従することが出来たものは、上記の提案手法とBoostingのみであることが確認できる。また、最終フレームの検出結果矩形の中心位置に着目すると、Boostingは重機から外れており、提案手法は重機の中心付近にあることがわかる。検出結果矩形の中心位置は重機の中心位置に近いことが望ましい。なぜならば検出結果矩形の中心位置に基づいてカメラ雲台を制御しているからである。
ATCS、POLO、ATM3Dの検出率を比較すると、ATCSが最も高く、POLO、ATM3Dを統合せずに使用するより、追従性能が高いことが確認出来た。また、通信環境を考慮しない場合、POLOが最も検出精度が高いことがわかる。しかし実環境を想定した場合、ATCSが最も検出精度が高い。
[変形例]
上述したように、ATCSの精度は第1認識装置20と第2認識装置30との間の通信速度に依存する。高速な通信環境が整っている場合は問題ないが、通信速度が遅くなった場合、車両認識システム1は、第2認識装置30が重機を検出した時点の重機を囲むバウンディングボックスの位置を提示してしまい、結果的に遅れが大きくなり検出率を下げる要因となる。
特にカメラ雲台の回転時には検出精度の低下の影響が顕著に発生し、追従対象にカメラを向ける際に重機の位置からカメラの視点がオーバシュートし、カメラの視点を重機に合わせようとしてカメラ雲台が振動するような動作が発生してしまう可能性がある。通信速度の遅れによって生じるずれた位置を採用してしまうと、実際には検出結果位置から重機がはみ出していたり、重機が検出結果内に映っていなかったりする可能性がある。
重機がずれた位置に基づいてテンプレート画像を更新してしまうと、重機とともに背景が混ざったテンプレート画像を生成してしまう恐れや、重機のいない背景画像を生成してしまう可能性がある。重機が正確に映っていない、背景を含むテンプレート画像を生成した場合、車両認識システム1は、その背景を含む領域を追従しようと動作し、正しい追従が行えなくなる。ATCSの検出率を見ると低くはないが、これらの要因で追従ができなくなる可能性を含んでおり、改善の余地がある。
以下、上述したATCSの検出率を改善するためのシステムであるATCS+について説明する。
発明者らは、ATCSの検出率を改善するため、POLOとATM3Dの統合手法を改良し、ATCS+を開発した。図20は、実施形態とその変形例の検出結果を比較したものである。
ATCSでは、POLOの検出位置のみを受け取り、ATCSに統合していた。これに対してATCS+では、POLOの処理を行う第2認識装置30に送信したフレーム画像を第1認識装置20に記憶しておき、第1認識装置20は、POLOの処理後の第2認識装置30から返ってきた検出位置の情報に基づいて、記憶した送信時のフレーム画像から重機の画像領域(第3画像領域)を切り出す。第1認識装置20は、次のフレームにおいて切り出した画像領域をテンプレート画像としてテンプレートマッチングを行う。
つまりATCSでは、カメラの移動により重機の位置座標は急激に変化する可能性があるのに対し、ATCS+では、カメラが動いても重機の見た目は急激に変化しないことを利用し、通信速度の遅延によって生じるテンプレートマッチングの遅れの問題を解決した。
以下、ATCS+の評価結果について説明する。図21は、ATCSとATCS+との検出結果を示す図である。図21には、ATCSとATCS+との間で特に検出精度の差が大きかったシーンのフレーム画像であり、ATCS+は(1)、ATCSは(2)で示される。これらのシーンは、カメラ雲台が大きく動いたシーンである。
図21において、ATCSの検出結果を示すバウンディングボックスが大きくずれてしまっているのに対して、ATCS+の検出結果示すバウンディングボックスは安定して正しい位置を示していることが確認できる。図22に示されるように、ATCS+の検出結果の方がATCSよりも安定していることが評価値の算出結果からも明らかである。
上述したように車両認識システム1によれば、監視カメラ映像に基づいて、安定的に重機を認識することができる。即ち、車両認識システム1は、テンプレートマッチングと動き検出を組み合わせた画像処理と、機械学習に基づく二種類の物体検出アルゴリズムを統合した、新たな重機のカメラ追従手法により、従来の画像処理手法のみの適用では実現が難しい、無人化施工現場での物体追従を行うことができる。
また、車両認識システム1によれば、従来の画像処理を改良した提案手法であるATM3Dの処理を行うことにより、テンプレートマッチングと動き検出を用いて、他の一般手法に比べて長時間の対象物の追従をすることができる。また、車両認識システム1によれば、機械学習による検出アルゴリズムを用いて既存のニューラルネットワークモデルを拡張したモデルで、重機をよりロバストに検出可能である。
また、車両認識システム1によれば、ネットワーク遅延とカメラの方向転換によって引き起こされる問題を解決することで、よりロバストにカメラによる重機の追従を実現することができる。