Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
主専攻実験(深層学習を用いたCG・画像処理)最終成果報告
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Mutsuha Asada
July 26, 2023
Technology
73
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
主専攻実験(深層学習を用いたCG・画像処理)最終成果報告
筑波大学の学内写真を分類するタスクに取り組みました
Mutsuha Asada
July 26, 2023
More Decks by Mutsuha Asada
See All by Mutsuha Asada
Reproducible Containers (ASPLOS'20)
momeemt
0
560
❄️ NixCon2025に参加した
momeemt
0
560
🔨 小さなビルドシステムを作る
momeemt
4
1.4k
情報科学類で学べる専門科目38選
momeemt
0
1.1k
❄️ tmux-nixの実装を通して学ぶNixOSモジュール
momeemt
1
1.1k
Wasmで拡張できる軽量マークアップ言語 Brack
momeemt
0
700
❄️ NixOS/nixpkgsにSATySFiサポートを実装する
momeemt
2
910
Intel系FPGA上へのRISC-Vプロセッサの実装
momeemt
0
580
情報科学若手の会 2024 LT「WebAssemblyで拡張可能な軽量マークアップ言語の開発」
momeemt
0
77
Other Decks in Technology
See All in Technology
インシデント事例と パッケージの全量解析に学ぶ ソフトウェアサプライチェーンの守り方 / supply-chain-attack-defense
flatt_security
0
880
文字起こし基盤の信頼性
abnoumaru
0
120
AI時代におけるエンジニアの新たな役割──FDEとクオリアの探求/登壇資料(戸井田 裕貴)
hacobu
PRO
0
310
AIが当たり前の組織で エンジニアはどう育つか
nishihira
1
950
AIとハーネスで育てるトランスコンパイラ / 20260722 Yasushi Katayama
shift_evolve
PRO
3
770
複数プロダクトで進めるAI機能実装 ── 実践から得たリアルな学びとロードマップ実現への挑戦 / AICon2026_yanari
rakus_dev
1
270
_NIKKEI_Tech_Talk__勉強会は熱量では続かない___17回続いた輪読会の設計術.pdf
_awache
1
100
AI時代の開発生産性を捉え直す — 経営と現場をつなぐ「開発組織のオブザーバビリティ」— / AI Dev Ex Conference 2026
tkyowa
1
1.3k
プロダクト開発組織の現在地(Ver.2026/07) / product-organization
kaonavi
0
390
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
370
VPCセキュリティ対応の最新事情
nagisa53
1
240
現場との対話から始める “作る前に問い直す”業務改善
mochico50
1
210
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
510
The Spectacular Lies of Maps
axbom
PRO
1
870
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
470
For a Future-Friendly Web
brad_frost
183
10k
A designer walks into a library…
pauljervisheath
211
24k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
410
AI: The stuff that nobody shows you
jnunemaker
PRO
9
840
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
KATA
mclloyd
PRO
35
15k
Transcript
2 1 最終成果報告 情報科学類 浅田睦葉 学籍番号: 202210897
2 取り組んだタスク ・筑波大学の学内で撮影した写真からエリアを推定する ・最終的には10クラス分類 ・一の矢、 第三エリア、第二エリア、石の広場、第一エリア、 総合研究棟B、大学会館、体芸エリア、平砂、春日 ▲ さまざまな角度からの大学会館
3 実験1 (ResNet) ・まずはResNetによる多クラス分類を行うためResNetを実装した ・入力: 画像 ・出力: one-hot表現 ・ネットワークアーキテクチャ: UNet
+ Residual Block ・損失関数: 交差エントロピー ・評価方法: F1値(適合率と再現率の調和平均) ・データセット: 次ページ以降で説明 ・最適化手法: (特記ない場合は)sgd
4 データセットの作成 ・Google Map の Street View Static API を使用して画像を取得
・緯度、経度、方向(東西南北)、視野、カメラ角度を設定 ・方向は0〜360°、視野は100(広め)、カメラ角度は0°に固定 ▲ 春日エリアから取得
5 データセットの作成 ・画像を取得するには、 緯度と経度を決定する必要がある ・ラベル(エリア)を自動で決定するために、 あらかじめ領域を定めてからその内側の緯度経度 をランダムに選んだ ・エリアは境界となる各点を選んでおいて、 shapely を使って多角形内の座標を計算した
6 データセットの作成 ・ウォーターマークが入っているので 前処理のため、610x610 に切り取った ・また、処理を高速にするために、 256x256 にリサイズした ▲その座標に写真が存在しない場合
7 データセットの作成 ・最後に、パスと緯度経度、ラベル情報を持つjsonデータに変換 ・これを訓練用(training.json)と検証用(test.json)で2つ作成 ・訓練用と検証用を 8:2 に分割 ・作成したデータセットをDataLoaderで読み出す
8 学習① ・当初は以下の4クラス分類を行った ・春日エリア ・平砂 ・石の広場 ・第三エリア ・各エリア 100枚の画像を用いて、 学習率
1e-3で、100エポック学習させた ・F1値は 0.52
9 学習① ・正規化を行うように変更 ・最適化手法をadamに変更 ・F1値が 0.64 に改善した
10 ・データセットを作成する際にデータ拡張を行った ・torchvision.transforms を利用 ・一定の確率で左右反転 ・ランダムに回転・拡大縮小 ・ランダムにノイズ付加 ・ランダムに透視変換 ・ランダムに色変換 ↓
・すれば性能が上がるわけではない データ拡張
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
7項目でデータ拡張 ・F1値が激減した ・半分くらいの正答率に → 考察 ・データが1/10になっている ・クロップサイズが大きすぎる ・256x256に対して32x32 ・回転することで建物が認識され 辛くなっている?
(特に春日が 0.22 になっている) 12
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
・10クラスに変更 ・300エポック、学習率 1e-5 ・各クラス 訓練40枚, テスト10枚 → 全体では 400枚 /
100枚 ↓ ・F1値が0.12で非常に悪くなった → ほとんどのエリアで正解できていない 学習② 14
・Vision Transformer入門を読んで学習 ・PyTorchからImagenet 1kで事前学習された モデルを利用する ・先述したデータセットを使って ファインチューニングする ・全結合層を変更 ・ドロップアウト(p=0.1)を追加 ViTの導入
15 ▲ ViTのアーキテクチャ
・入力: 画像 ・出力: one-hot表現 ・ネットワークアーキテクチャ ViT(Imagenet 1kで事前学習) ・評価指標: F1値 ・前処理で
224x224 に変換 ・学習率 1e-3 ・収束がすごく早い ・F1値は0.24で若干良くなった 学習③ 16
・ImageNet-21kを用いて事前学習したモデルも試したがさほど改善せず ・連続したエリアで、かつエリアごとにはっきりと統一された建物が 多いわけではないので精度が出にくい? → 小さいデータセットで実験を繰り返したので、最後に学習を試す 学習③ 17
・10クラス分類 → 訓練データ4000枚、 テストデータ1000枚(API制限の上限) ・150エポック、学習率 1e-3 → 収束し切ってない ・バッチサイズ 2048
学習④ 18
▲ 実際には平砂だが 総合研究棟Bと認識 失敗した例 19 ▲ 実際には第三エリアだが 春日と認識 → 全て確認したわけではないが、
学内に緑が多すぎて自然が多いと失敗していた また、情報量が少ないと推論し辛いように思える
・10クラス分類 → 訓練データ4000枚、 テストデータ1000枚(API制限の上限) ・20エポック、学習率 1e-1 ・バッチサイズ 2048 → F1値が0.75に
・120エポック → F1値が0.86に 学習⑤ 20
・データ拡張においてはどの手法を行っても必ず性能が良くなるわけでは なく、タスクの性質によって効果がある拡張方法は異なると考えられる ・今回は左右反転、色変換、正規化に絞ると性能が僅かに良くなった ・エリアの判定には風景だけでなく建物の情報も使われており、 回転や透視変換、ノイズの負荷は正しく学習できない 要因になったと考えられる 考察① 21
・4クラス分類から10クラス分類に変更するとF1値が大きく減少した ・4クラスは春日・石の広場・第三エリア・春日であったが、それぞれ 似ているエリアは除外していた ・10クラスのうち、第二エリアと第三エリアは建物が似ているため、 F1値が低かったと考えられる ・異なるエリアの木々や広々とした道路を 認識して区別することは難しいと思われる ・平砂や体芸はエリアが広く、 特徴を掴むことが難しかったと考えられる 考察②
22
・深層学習 ・F1値が人間のスコアを超えるように性能を高めたい まずは学習率を1e-1にしてエポック数を増やして収束させる → 適切な前処理(学内/学外の分別など) → 10分割ではエリアの特徴が十分でない可能性がある ・ViTへの理解をさらに深めて本タスクに効果的なモデルの修正をしたい ・回帰問題として、写真から座標を得たい →
エリアをさらに数百種類に分割する多クラス分類が成功したら可能性があると考えている ・オンライン学習 ・ResNetで簡単に実装してみたが、10クラス分類からF1値が狂ったので最後まで 手をつけられなかった。これをするとより実用的になるので性能が高まったら手をつけたい 今後の課題 23
・データセットの実装 ・画像を取得する際に画像が存在しない座標を20%程度の確率で選び取る ため使用枠を大幅に消費していた。これを修正したい ・iPhoneのGPSロガーアプリが不安定で散歩して撮影した動画は使えなかった → 第一エリアを石の広場と認識するなど無視できない影響があった 今後の課題② 24 ▲ ぼんやりしていたら課金されていた
・筑波大学の学内写真からエリアを推測するタスクに取り組んだ ・最終的に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