衛星データ X 機械学習

3891b5528a4f31cba960e2d93bfc8e0f?s=47 tellus
December 05, 2019

衛星データ X 機械学習

12/5開催のTellus Satellite Cafeの資料となります。
※2次配布禁止

3891b5528a4f31cba960e2d93bfc8e0f?s=128

tellus

December 05, 2019
Tweet

Transcript

  1. 自己紹介 養王田 一尚 (よおだ かずひさ) Tellusのエンジニア 兼 宙畑のライター 主に「ゼロからのTellusの使い方」シリーズを執筆

  2. 衛星データ X 機械学習

  3. Pythonを書いた経験がある

  4. 機械学習やったことある

  5. お仕事で機械学習を使っている

  6. せっかく取得したタイルが 雲ばかりで地上が見えない

  7. 雲の有無でタイルを分類する clear cloudy

  8. 事前準備1 AVNIR-2のTile画像を取得しよう コードは後日Slackで共有いたします

  9. 搭載衛星データ ALOS (AVNIR-2) 光学 10m 4band

  10. 範囲を緯度経度で指定 トークンを設定(マイページで確認) Jupyter LabでAVNIR-2のシーン情報を取得しよう

  11. rspId, productIdは画像を呼び出す際に必要 OS上でも「メタデータ詳細」で確認することができる

  12. バンド選択 トークンを設定 Jupyter LabでAVNIR-2のタイル画像を取得しよう 地図タイルの座標

  13. ズーム率 タイル枚数 座標サンプル タイル座標(x, y) タイルの左上の経度緯度 0 1 (0, 0)

    => (-180, 85.0511) 1 4 (0, 1) => (-180, 0) (1, 0) => (0, 85.0511) (1, 1) => (0, 0) 2 16 (0, 1) => (-180, 66.5133) (0, 2) => (-180, 0) (0, 3) => (-180, -66.5133) (2, 1) => (0, 66.5133) ... 12 16777216 (3638, 1613) => (139.7461, 35.3890) Webメルカトル地図を256×256ピクセルの正方形に切 り分けたものです。 座標(x, y)とズーム率(z)により指定します。 タイル地図とは
  14. 指定した緯度経度を含むタイル座標を返す 緯度経度からタイル座標を求める

  15. 指定したシーンからタイル画像が切り出される

  16. 事前準備2 教師データを作ろう

  17. 1. 大量にタイルを取得する。 今回は約3000枚用意 2.「晴れ」「曇り」「判別が難しい」の3種類に画像を人の目で(!)分類する。 今回は晴れが600枚、曇が1000枚でした。 3. 分類した「晴れ」と「曇り」の画像を 「学習用」「訓練時検証用」「評価用」に分ける。 dataset ┣

    train (学習用) ┃ ┣ clear ┃ ┗ cloudy ┃ ┣ validation (訓練時検証用) ┃ ┣ clear ┃ ┗ cloudy ┃ ┗ test (評価用) ┣ clear ┗ cloudy clear cloudy ng
  18. TensorFlow(+Keras)で機械学習

  19. モデルの作成 畳み込みニューラルネットワーク 画像サイズ

  20. WARNINGが出ますが問題ありません。 層の数や次元の数は試行錯誤のしどころ 畳み込みニューラルネットワークについてもっと勉強したい人には 以下の記事がおすすめ https://kenyu-life.com/2019/03/07/convolutional_neural_network/ https://www.analyticsvidhya.com/blog/2016/04/deep-learning-computer- vision-introduction-convolution-neural-networks/

  21. 学習データの読込み 回転や拡大縮小によりデータを水増し 2 classes以外の結果が出た場合、不要なディレクトリが含まれている可能性があります。 詳しくはKerasのチュートリアルを参照 https://keras.io/ja/

  22. 学習実行 モデル一時保存 1回あたりの試行回数と繰り返し回数 いざ実行

  23. 約6時間かかりました

  24. 正解率85%! 結果 繰り返し回数は半分の 10回程度でよかったかも

  25. 評価用データでも約88%の正解率を達成!

  26. 晴れ判定(0.5未満)

  27. 曇り判定(0.5以上)

  28. 薄曇りも正しく判定

  29. 雪があっても正しく判定

  30. やや自信なし?

  31. たまに誤判定も?

  32. 雲の有無でタイルを分類する clear cloudy 8割を超える精度で達成! パラメータを試行錯誤して目指せ9割超え

  33. 衛星データであそぼう 本日のコードはSlackで後日共有します