執筆:Kunio Shimizu, Senior Solution Engineer at Orbital Insight
教師あり深層学習の利用は,コンピュータビジョン(CV)の分野に革命をもたらした。深層学習モデルは,物体検出,分類,セマンティックセグメンテーション,画像生成など,幅広いCVタスクにおいて人間に近い性能を達成しています。
これらのモデルは、畳み込みニューラルネットワーク(CNN)などのパラメータの大規模なネットワークを訓練するために、教師あり学習を使用しています。しかし、教師あり学習には大きなコストがかかります。つまり、モデルを学習するためには、大量のラベル付きデータ(正解データ)が不可欠なのです。
弊社の衛星画像検知アルゴリズムはまさにそういった大量の衛星画像へのラベリングの工程が不可欠です。現在の多くのアルゴリズムは、そういったラベルのないデータからは学習できず、良い結果を得るためには、ラベルを付けた大量のデータが必要となり、ラベル付きデータ依存問題が生じています。
この問題は手動でデータをラベル付けすることで解決できますが、時間と費用がかかり、エラーが発生しやすくなります。また、最悪の場合、一般的でない物体(レアオブジェクト)の場合、ラベルを付けるのに十分なデータがないため、アルゴリズムの開発は更に難しくなります。
Synthetic Imagery(シンセティックイメージ・人工合成画像)を用いた解決法の問題点
上記の問題を解決するために、今研究されているのが、Synthetic Imagery(シンセティックイメージ・人工合成画像)とわれる人工的に生み出された物体の3Dモデルや衛星画像を用いて、学習用のラベル付き合成データセットを生成することができます。
しかし、そういった人工合成画像を使ってCNNモデルを学習する試みは、これまであまり成功していません。ニューラルネットワークは、画像内の物体の特徴を非常に効率的に「学習」しますが、同時に合成生成プロセスがどのようにオブジェクト・インスタンスを生成するかをすぐに学んでしまいます。
その結果、そうやって作り出されたモデルは、生成プロセスのアーチファクトを持たない実際の画像中のオブジェクトを認識することができず、実際の画像の中で対象物がどのように現れるかを一般化することができないケースが多いです。
Synthetic Imagery(合成画像)を使った効率的な衛星画像検知モデル学習
弊社Orbital Insightは、そういった合成画像を用いてCVモデルを学習させる有効な方法を発見しました。
- 学習したモデルを実画像にも適用可能なように一般化するために、合成画像の適切な修正方法
- 大量の合成画像と少量の実例の両方を効率的に組み合わせて、モデルを学習する方法
今回使ったデータセットとともに、それぞれご紹介していきます。
データセットと利用モデル
今回の検証の為に、データセットは3つのタイプのクレーン車の衛星画像を利用しました。それぞれ、”crane truck”, “mobile crane”, “tower crane”に分別され、これらのオブジェクトは、データセットの中では比較的学習例が少ない理由の一つです。
評価ようなCVモデルには、Faster R-CNN をベースに利用したCVモデルを利用しました。
Synthetic Imagery(合成画像)の修正
結論、修正方法は、2Dおよび3Dのシミュレートされたバックグランド、可変の照明と色調、領域適応(Domain Adaptation)のための最先端の「古典的な」技術と、そして最も重要な点として、CycleGANモデルを使用して合成画像をターゲットイメージの領域適応(Domain Adaptation)させることで、最良の結果を得ることができました。
前記にあるように、合成画像そのものをCNNで学習させてしまうと合成画像独特のアーティファクトや生成プロセスをCVモデルが学んでしまい、実際の画像で検知がうまく行かないという問題あります。
下記が実際のSynthetic Imagery(合成画像)の例です。
町中にある飛行機やクレーンなど現実はありえない画像を無数に自由に生み出せるのが合成画像のよいところですが、実際に人間の目が見ても「合成っぽい」ということが感じ取れます。これをCNNモデルは学習してしまいます。
より「リアルに」近づけるために、CycleGANも用いたDomain Adaptationした合成画像は下記のような画像となります。
上記の通り、人間の目にも「合成っぽさ」がなくなり、より我々が見ている衛星画像へ極めて近づいていることがわかります。
実際のモデルの精度をAP(Average Precision)スコアで測定したところ、CycleGANベースのDomain Adaptationを行ったモデルのほうが、通常の合成画像の修正したものよりも、どのクレーンでも高いスコアを記録していました。
大量の合成画像と少量の実例の組み合わせ(インクリメンタル学習)
さらに、Domain Adaptationした大量の合成画像データセットと,より小規模な実際のデータセットの両方を用いてモデルを学習するさまざまな方法を試した結果、最初に合成データセットでモデルを学習し、その後、実データで学習する(インクリメンタル学習)ことで,検証したモデルの中で一番効率的にAPスコアが向上し、実データのベースラインよりもスコアが向上した結果が得られました。このプロセスを踏むことで、すべてのケースにて合成トレーニングデータを使用して、実データよりも優れた結果を得ることができました。
今回は,8-cycleGAN データセットを組み合わせて 14,000 回の反復学習を行った後、実データのみを用いて 10,000 回の反復学習を行いました。
各クラスにおいて、インクリメンタル学習は、CycleGANのみのトレーニングよりもAPを改善しました。
最後に、ベースライン(実データのみ)、合成画像のみ、そして合成画像とインクリメンタル学習のAP比較行った結果、合成画像のみだと、リアル画像のみのベースラインよりもAPが悪いクラスもありましたが、合成画像とリアルデータの組み合わせをすることですべてのクラスでAPがベースラインよりも改善されました。
最後に
Orbital Insightは、検出モデルを学習するために合成画像を作成し、少数の実際のトレーニング画像と組み合わせることで、モデルを学習することが技術的に可能であることを今回発見しました。
さらに研究を重ねることで、CycleGANドメイン適応が合成画像でどのように機能しているのか、また、少量の実データセットを組み合わせることで、トレーニングの第2段階で合成画像がどのように改善されるのかをより深く理解することで、モデルの精度を向上させることができると考えています。
このような合成データは、衛星画像ではなかなか見つからない希少な物体や、まだ過去事例があまりない全く新しい物体の検知に貢献できると考えています。
今回の分析の詳細結果やパラメーター等にご興味の方は、お気軽にお問い合わせよりご連絡ください。