衛星画像からグラフまで(SpaceNet Road Detectorコンペティション)-トップ10とコードの取得(翻訳)

こんにちは、Habr! 記事の翻訳を紹介します。













これは、提供されたマークアップ、テストデータセット、およびおそらく白い正方形を備えたVegasです。これは遅延検証(プライベート)です。 かっこいい。 確かに、このパノラマは4つの都市すべての中で最高です。それはデータのために起こりましたが、それについては以下で詳しく説明します。







0. TLDR



競争と詳細な説明へのリンク。







サイトの簡単な写真です。







9位で暫定的に終了しましたが、主催者による提出物の追加テストの後に位置が変わる可能性があります。







また、 PyTorchで読み取り可能な適切コードおよびデータジェネレーターを作成するのにも少し時間を費やしました。 あなた自身の目的のために恥ずかしがらずに使用することができます(プラス記号を付けるだけです)。 コードは可能な限りシンプルでモジュール化されており、さらにセマンティックセグメンテーションのベストプラクティスについてもお読みください。







さらに、 Skeleton Networkの理解と分析に関する投稿を書くこともできます。この投稿は、結果として、競合のトップにいるすべてのファイナリストがイメージマスクをグラフに変換するために使用しました。







競争の本質

1枚の写真での競争の本質







1.競争



私の過去の記録からわかるように、私たちは時々競技に参加し( 1および2 )、そのような競技の選択基準の特定のセットを持っています-まず、適切なレベルの競技(通常、サイズに関する十分に公表されたコンテストはスタッカーの大群を引き付け、それほど難しくありません) )、第2に、トピックに対する共通の関心、第3に、課題。







この競争にはすべての基準がありました。









現在人気のあるデータサイエンスプラットフォームに関する私の簡単な意見:
  • Kaggleは多くの投手であり、少なくとも2017年にはほとんどがビジネス指向のタスクです。
  • TopCoderは時々非常に興味深く、複雑なニッチなタスクですが、全体的にプラットフォームは怖く、参加者の要件は高くなります。
  • DrivenDataは最小ですが、最高です。 おもしろい分野、仕事をしていて、あなたからあまり多くを必要としない優秀な主催者。


2.初期データ分析と興味深いエッジケースについてすばやく







反射率グラフでは、地面とアスファルトには実際には鋭いピークがないことがわかります。 だから私は異なるチャンネルの組み合わせをテストするのに少し時間を費やしました







上記の図で入力を確認できますが、実際に何が起こるかを説明する興味深い点と注目すべきエッジケースがいくつかあります。









元の16ビット画像のヒストグラム









8ビット画像のヒストグラム、一部の情報が失われました









アスファルト道路とアスファルト道路









非舗装道路と交差点がある舗装道路の例









車線の組み合わせ-いくつかの12車線道路に注意してください-国境検問所では、









パリの典型的なマークアップはあまり良くない







3.便利な読書



以下は、競技中に学んだトピックに関する最高の資料のリストです。









すべてのアーキテクチャと実験を要約すると、次のようなものが出てきます。







Unet +転送学習









LinkNet









一部の科学者はまだMSEを使用しています...







4.初期アーキテクチャオプションとジャム



リーダーボード上のポイントは、約900のテスト画像に対して0からほぼ900kで始まり、各画像に0〜1が割り当てられました。パリの速度が大幅に低下したため、最終メトリックは都市間の平均と見なされました。









最も効率的なモデルのタイル速度分布。 パリでは、植生と郊外のタイルが多く、レイアウトに問題があり、速度に影響します。 さらに、上海とハルツームではtpとptの推定値の差がより大きくなります。つまり、モデルの場合、グラフのすべてのエッジが正しいことを確認するのははるかに簡単ですが、自然のグラフのすべてのエッジを見つけることははるかに困難です







私は多くのアイデアとアーキテクチャを試しましたが、驚いたことに、最も単純で最も素朴なモデルが最もうまく機能しました。少なくとも他のモデルよりも悪くありませんでした(他の参加者もすべてバリエーションで使用しました)。







損失関数



  1. BCE + DICE / BCE + 1-DICE-ほぼ同じ姿を見せた
  2. ここでのクリッピング損失関数はひどいことが判明しました
  3. N BCE + DICE、BCE + N DICE-私の場合はうまくいきませんでした。 その後、チャットの同僚は、DICEではなくハードDICE(実際には推測ピクセルの割合)と4 * BCE + DICEがうまくいくことを提案しました。ハードDICEのより良い時代をとる必要があることを考慮して。


CNN



  1. LinkNet34(Resnet34 +デコーダー)-最高の速度と精度。
  2. Linknet50、LinkNext101(ResNeXt + LinkNet)、VGG11-Resnet-すべて同じであることが判明しましたが、2〜4倍のリソースが必要でした。
  3. すべてのエンコーダーは、ImageNet、essnoで事前トレーニングされています。
  4. 8チャンネルグリッドの場合、最初のレイヤーを単に置き換えましたが、3チャンネルグリッドとほぼ同じように動作しました(ただし、CPUリソースを多く消費しました)。


処理中



  1. 二値化マスク;
  2. チャンネルのすべての合理的な組み合わせのアブレーション分析を行いました-最良は植生、rgb、8チャンネル、都市(コード/src/presets.pyで対応するものを参照)でしたが、違いは最小でした(3-5%);
  3. 当然、HD画像の方がパフォーマンスが向上しました。
  4. 8ビット画像と16ビット画像も、それ自体がほぼ同じでした。
  5. 画像の正規化-Imagenetの平均値と標準偏差を抽出すると、損失関数が+2〜3%減少しましたが、リーダーボードではあまり差がありませんでした。


マスク



  1. APLSカブのマスク。 マスクの10%は作成されませんでした。 オーガナイザーのコードにはエラー処理が含まれておらず、道路もありませんでした。 最初はスチームバスに乗ってトレーニングに含めませんでしたが、その後はおそらく間違いでしたが、通常は確認できませんでした。
  2. ラインをskimageにロードし、空のイメージの約10%で仕上げるだけで損失は減少しましたが、最終結果への影響は明確ではありませんでした。
  3. 同じことは、道路の幅が実際の幅に対応するマスクにも与えられました-損失のように、より良く収束しますが、グラフは良くなりません。 おそらくハードDICEがこの問題を解決するでしょう。
  4. 舗装されていない道路のモデルは、貧弱なデータのために非常に悪く機能しました。
  5. 多層マスクも機能しませんでした(交差点に1層、未舗装道路に1層、アスファルト道路に1層)。


メタモデル



「ワイド」マスクと「ナロー」マスクのモデルの予測を明確にするシャムネットワークも機能しませんでした。 興味深いことに、「ワイド」マスクでのモデル予測ははるかに良く見えましたが、グラフは悪化しました。







パイプライン



  1. 3チャンネルまたは8チャンネルの画像は、ほとんど同じでした。
  2. 90度の回転、水平および垂直フリップ、小さなアフィン変換により、損失がさらに15〜20%減少しました。
  3. 私の最高のモデルはフル解像度でしたが、ランダムな800x800のクロップもうまく機能しました。


アンサンブル



私の場合、3倍+ 4倍TTAは増加しませんでした。







明らかに競合他社にLBを押し上げた他のアイデア



  1. LinkNet34(LinkNet + Resnet)=> Inception encoder-+ 20〜30k(Inception Resnetを試してみたかったのですが、一連の失敗の後、絶望して試さなかった)。
  2. 電車の中で-フル解像度のトレーニング。 推論:downsize => predict => upsize => ensemble-+ 10-20k;
  3. グラフを後処理し、タイルの端に持ってきます-+ 20〜30k。
  4. RGB画像(MULとは対照的に)-+ 10〜15k(元のデータに一貫性がないため)。
  5. 4 BCE + 1 DICE、ハードDICEをメトリックとして監視-+ 10〜30k。




メインの横枠。 私の知る限り、誰もこの問題を解決していません。 幅の広いマスクはおそらく解決しますが、それらのグラフはうまく機能しませんでした。









ワイドマスクがkosyachatである主な理由-彼らはポリープとタコを生成します=)









同じ問題









パリは貧弱なマークアップです。 森林地帯も草刈りのケースです。









階層化された道路-ワイドモデルとナローモデルの予測









モデルは駐車場上の道路を思いついた=)









時々PyTorchはバグがあり、そのようなアーティファクトを生み出した







5.グラフ化と基本的なマッシュアップケース



重要な要素は、スケルトンネットワーク+曲線道路のグラフエッジを追加することです(ヒントをくれたDmytroに感謝します!)。 これだけで、あなたがトップ10にいることが保証されます。









これらの手順がなければ、すべてのマスクは次のようになりました







私が試した代替パイプライン



  1. スケルトン化+ skimageからのコーナー検出
  2. ここからの拡張のいくつかのバリエーション
  3. これはすべていくつかのrib骨を生み出しましたが、スケルトンネットワークはまだはるかに優れています


時々他のメンバーを助けた余分なもの







組織からの視覚化のためのタルサ







6.最終決定









本質的にTLDRの代替品







7.美しい視覚化-すべての都市のタイルが統合されました



前回の大会の伝統に従い、チャットの1人が、tif画像のジオデータを使用してジオセルから都市のフルサイズの写真を作成しました。







写真

それらをクリックすると、高解像度で表示できます。









ラスベガス









パリ









上海









ハルツーム







1か所にある投稿からの便利で興味深いリンク:
  1. コンテストのウェブサイト
  2. スケルトンネットワーク -マスクからグラフへの変換ライブラリ
  3. SpaceNet Road Detection and Routing Challenge-競合指標に関する長い投稿
  4. パートII-メトリックに関する2番目のパート
  5. https://github.com/CosmiQ/apls-メトリックを評価するためのリポジトリ
  6. パンシャープン画像 。 -ローズG.
  7. 地球の画像 -habr
  8. Deep Residual U-Netによる道路抽出 。 -Zhengxin Zhang、Qingjie Liu、Yunhong Wang
  9. 高密度オブジェクト検出のための焦点損失 。 -ツンイリン、プリヤゴヤル、ロスギルシック、カイミンヒ、ピョートルドラー
  10. LinkNet:効率的なセマンティックセグメンテーションのためのエンコーダー表現の活用 。 -Abhishek Chaurasia、Eugenio Culurciello
  11. Kaggle:アマゾンの衛星画像解析 -habr
  12. Dstl衛星画像コンテスト、1位受賞者インタビュー:カイルリー
  13. プラネット:宇宙からアマゾンを理解する、1位受賞者インタビュー
  14. Two Sigma Financial Modeling Challenge、Winner's Interview:2nd Place、Nima Shahbazi、Chahhou Mohamed
  15. ツーシグマファイナンシャルモデリングコードコンペティション、5位入賞者インタビュー:チームベストフィッティング| ベストフィッティング、ゼロ、およびサークルサークル
  16. Dark Channel Priorを使用した単一画像のヘイズ除去 。 -Kaiming He、Jian Sun、Xiaoou Tang
  17. 長年にわたる完全たたみ込みネットワークを使用したセマンティックセグメンテーション



All Articles