Upgrade to Pro — share decks privately, control downloads, hide ads and more …

主専攻実験(深層学習を用いたCG・画像処理)最終成果報告

 主専攻実験(深層学習を用いたCG・画像処理)最終成果報告

筑波大学の学内写真を分類するタスクに取り組みました

Mutsuha Asada

July 26, 2023
Tweet

More Decks by Mutsuha Asada

Other Decks in Technology

Transcript

  1. 3 実験1 (ResNet) ・まずはResNetによる多クラス分類を行うためResNetを実装した ・入力: 画像 ・出力: one-hot表現 ・ネットワークアーキテクチャ: UNet

    + Residual Block ・損失関数: 交差エントロピー ・評価方法: F1値(適合率と再現率の調和平均) ・データセット: 次ページ以降で説明 ・最適化手法: (特記ない場合は)sgd
  2. 4 データセットの作成 ・Google Map の Street View Static API を使用して画像を取得

    ・緯度、経度、方向(東西南北)、視野、カメラ角度を設定 ・方向は0〜360°、視野は100(広め)、カメラ角度は0°に固定 ▲ 春日エリアから取得
  3. 7項目でデータ拡張 precision recall f1-score support kasuga 0.25 0.20 0.22 10

    hirasuna 0.40 0.40 0.40 10 ishinohiroba 0.36 0.40 0.38 10 sangaku 0.45 0.50 0.48 10 accuracy 0.38 40 macro avg 0.37 0.38 0.37 40 weighted avg 0.37 0.38 0.37 40 ・F1値が激減した  ・半分くらいの正答率に 11
  4. 3項目でデータ拡張 ・反転、色変換、正規化に絞った  ・データは1/10だが   F1値が元の水準まで良くなった precision recall f1-score support kasuga 0.64

    0.70 0.67 10 hirasuna 0.58 0.70 0.64 10 ishinohiroba 1.00 0.80 0.89 10 sangaku 0.67 0.60 0.63 10 accuracy 0.70 40 macro avg 0.72 0.70 0.71 40 weighted avg 0.72 0.70 0.71 40 13
  5. ・10クラスに変更 ・300エポック、学習率 1e-5 ・各クラス 訓練40枚, テスト10枚  → 全体では 400枚 /

    100枚 ↓ ・F1値が0.12で非常に悪くなった  → ほとんどのエリアで正解できていない 学習② 14
  6. ・入力: 画像 ・出力: one-hot表現 ・ネットワークアーキテクチャ  ViT(Imagenet 1kで事前学習) ・評価指標: F1値 ・前処理で

    224x224 に変換 ・学習率 1e-3 ・収束がすごく早い ・F1値は0.24で若干良くなった 学習③ 16
  7. ▲ 実際には平砂だが 総合研究棟Bと認識 失敗した例 19 ▲ 実際には第三エリアだが 春日と認識 → 全て確認したわけではないが、

    学内に緑が多すぎて自然が多いと失敗していた また、情報量が少ないと推論し辛いように思える
  8. ・深層学習  ・F1値が人間のスコアを超えるように性能を高めたい   まずは学習率を1e-1にしてエポック数を増やして収束させる   → 適切な前処理(学内/学外の分別など)   → 10分割ではエリアの特徴が十分でない可能性がある  ・ViTへの理解をさらに深めて本タスクに効果的なモデルの修正をしたい  ・回帰問題として、写真から座標を得たい   →

    エリアをさらに数百種類に分割する多クラス分類が成功したら可能性があると考えている ・オンライン学習  ・ResNetで簡単に実装してみたが、10クラス分類からF1値が狂ったので最後まで   手をつけられなかった。これをするとより実用的になるので性能が高まったら手をつけたい 今後の課題 23
  9. ・筑波大学の学内写真からエリアを推測するタスクに取り組んだ ・最終的に10クラス分類となった ・ネットワークアーキテクチャにはResNet、Vision Transformerを使用した ・左右反転、色変換、正規化に絞ってデータ拡張を行った ・ResNetの4クラス分類ではF1値(400/100)は 0.64 になった  → データ拡張によりF1値(40/10)は0.72まで向上した

    ・ResNetの10クラス分類(400/100)ではF1値は0.12になった ・Vision TransformerはResNetと比べて損失関数の収束が非常に速かった  → 10クラス分類(240/30)ではF1値は0.24で若干良くなった ・ViTの10クラス分類(4000/1000)ではF1値は0.40になった  → 学習率 1e-1に大きくすることでF1値は0.86になった まとめ 25