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
RPNを完全に理解しよう
Search
Ryunosuke-Ikeda
July 28, 2021
Technology
370
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RPNを完全に理解しよう
あまり詳しく解説されないFaster R-CNNのRPN(Region Proposal Network)を具体的なデータの形状を確認しながら理解しよう.
Ryunosuke-Ikeda
July 28, 2021
More Decks by Ryunosuke-Ikeda
See All by Ryunosuke-Ikeda
映像情報を活用した次世代のAIアシスタントシステム"Salieri" 資料
imr0305
0
180
Open Hack U 発表資料(チームうどん)
imr0305
0
61
JPHacks2021 発表資料(チームうどん)
imr0305
0
56
自己紹介スライド
imr0305
1
2.1k
技育展2021 発表資料(チームうどん)
imr0305
0
47
RLSP2021資料
imr0305
0
220
技育展2020 登壇資料(チームうどん)
imr0305
0
200
Other Decks in Technology
See All in Technology
データ基盤をDataformで整えた話 〜 開発環境を添えて 〜
takapy
0
130
Taking back control of your AI development
inesmontani
PRO
0
100
noUncheckedIndexedAccess、3時間、1万円。 / noUncheckedIndexedAccess, 3 Hours, 10,000 JPY.
kaonavi
1
340
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
1
360
[モダンアプリ勉強会]今更聞けないGit/GitHub入門
tsukuboshi
0
310
関西に縁あるMicrosoft MVPsが語るCopilotの未来
kasada
0
1.2k
Ruby::Boxでできること、Refinementsでできること
joker1007
3
410
Reliability in the Age of AI: Engineering for AI Velocity
rrreeeyyy
0
110
AGENTS.mdとSkillsで始めるAIエージェント活用
sonoda_mj
2
100
AI Engineering Summit Tokyo 2026 AIの前に、やることがある 〜医療データ企業の4フェーズ〜
dtaniwaki
0
2.3k
トークン数だけでは測れない — Claude Code 組織展開の効果検証から学んだこと
makikub
0
140
Socrates × Looker 〜セマンティックレイヤーで進化するデータ分析エージェント〜
hanon52_
3
1.7k
Featured
See All Featured
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
380
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
580
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
420
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
Unsuck your backbone
ammeep
672
58k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
We Are The Robots
honzajavorek
0
240
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
230
Transcript
RPNを完全に理解しよう Ryunosuke Ikeda 1
よくある説明 ①K種類のアンカーボックスを用意する。 ②Sliding Windowで各アンカーボックスの 物体らしさと座標のオフセットを回帰 → CNNどこ? 学習どうするの?? 具体的な形状は?? 何か改善案はないだろうか?
RPNってなにしてるん? 2
・Torch VisionのFaster R-CNNのコードをベースにRPNの詳しい処理手順を 確認した。 ・入力画像は3*1280*720とする。 ・バッチサイズは1とする。 前提条件 3
RPN概略図 RPN CNN reg CNN cls CNN RPN Head Anchor
Generator NMS RPN 特徴マップ reshape reshape 4
バックボーンからRPNHead 特徴マップ 42 24 1280 CNN Reg_CNN Cls_CNN RPN Head
3*3conv [1,1280,24,42] [b,C,H,W] 1*1conv 1*1conv [1,1280,24,42] [1,60,24,42] [1,15,24,42] ①特徴抽出CNN 3*3conv , stride=padding=1 特徴抽出を行う。 この部分がSliding Windowに対応 論文実装はここでC=512に圧縮してる ②座標オフセット回帰CNN 1*1conv , stride=1, padding=0 アンカーの種類(15種類)と座標(xyxy) の15*4=60次元に圧縮 ②物体、背景クラス分類CNN 1*1conv , stride=1, padding=0 アンカーの種類(15種類) の15次元 に圧縮 Objectness Pred_bbox 5
出力形状の意味(Cls_CNN) 24 (H) 42 (W) 15 (アンカーの種類) 右図のオレンジの値は特徴マップの[1,1]の部分に1種類目の アンカーボックスを適用した時のObjectnessを直接予測している。
同様に緑の部分は特徴マップ[1,42]の部分に2種類目の アンカーボックスを適用した時のObjectnessを予測 各アンカーの特徴量を抽出しCNNに入力しているわけではない Cls_CNNの出力 ・ アンカーのイメージ (実際は特徴マップ) ・ 6
RPN Head Cls_CNN:各アンカーが物体か否かを予測 Reg_CNN:各アンカーを物体のボックスへと近づけるにはどれくらいずらせばよ いか学習。 CNN Reg_CNN Cls_CNN
RPN Head 3*3conv 1*1conv 1*1conv [1,1280,24,42] [1,60,24,42] [1,15,24,42] Objectness Pred_bbox 7
Anchor Generator 特徴マップの各要素にアンカーを配置した際のアンカーの座標値を取得。 この際の座標値は入力画像のスケールのもの 出力形状は[15*24*42,4]=[15120,4] Anchor Generator
入力画像 特徴マップ [1,1280,24,42] [1,3,720,1280] [15120,4] Anchors 8
Proposalsの作成 Reg_CNNで取得したアンカーボックス座標のオフセット値(相対座標)を アンカーボックスに足し合わせる。 →ずらした後の絶対座標が得られる。 Anchors Pred_bbox [1,60,24,42] [15120,4] [15120,4]
reshape [15120,4] Proposals 9
NMS NMSにかける前にObjectnessの上位2000個のproposalsを抽出 抽出した2000個に対してNMSをかけてboxを削減 Objectness [1,15,24,42] [15120,4] reshape [15120,1]
Proposals NMS Objectnessの 上位2000位の Proposalsを抽出 [2000,4] [2000-N,4] 10
RPN CNN reg CNN cls CNN RPN Head Anchor Generator
NMS RPN 特徴マップ reshape reshape 入力画像 [1,1280,24,42] [1,3,720,1280] [1,1280,24,42] [1,60,24,42] [1,15,24,42] [15120,4] [15120,4] [15120,4] [15120,1] [2000-N,4] 11
RPNの学習 Cls_CNNの教師データはもともとのアノテーションには存在しない為、作成する 必要がある。 全アンカーボックス中からGraund TruthとのIoU値が0.3以下であるなら背景(0) 0.7以上であるなら物体(1)とラベルとつける。 残りの部分は学習対象にはならない.(無視のラベルを付ける。)
GT 1 0 12
Lossの測り方(Regの例) NMSにかける前のpropとobjectnessを用いてLossを測る。 作成したTargetに物体ラベルがついているインデックスの値を抽出し、 そのインデックスの予測値とのLossを測る。 [112,85,115,95] Target_bbox [20,30,50,40] …
… Pred_bbox [24,32,50,42] [110,80,120,90] GTが 物体ラベルである インデックスの値 L1smooth Loss イメージ (実際は正規化された値) 13
14 Ryunosuke Ikeda Tokyo Denki University M1 THANK YOU!