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
0
320
RPNを完全に理解しよう
あまり詳しく解説されないFaster R-CNNのRPN(Region Proposal Network)を具体的なデータの形状を確認しながら理解しよう.
Ryunosuke-Ikeda
July 28, 2021
Tweet
Share
More Decks by Ryunosuke-Ikeda
See All by Ryunosuke-Ikeda
映像情報を活用した次世代のAIアシスタントシステム"Salieri" 資料
imr0305
0
150
Open Hack U 発表資料(チームうどん)
imr0305
0
50
JPHacks2021 発表資料(チームうどん)
imr0305
0
46
自己紹介スライド
imr0305
0
1.8k
技育展2021 発表資料(チームうどん)
imr0305
0
32
RLSP2021資料
imr0305
0
210
技育展2020 登壇資料(チームうどん)
imr0305
0
190
Other Decks in Technology
See All in Technology
九州の人に知ってもらいたいGISスポット / gis spot in kyushu 2025
sakaik
0
220
モダンな現場と従来型の組織——そこに生じる "不整合" を解消してこそチームがパフォーマンスを発揮できる / Team-oriented Organization Design 20250825
mtx2s
2
170
結局QUICで通信は速くなるの?
kota_yata
9
7.5k
MySQL HeatWave:サービス概要のご紹介
oracle4engineer
PRO
4
1.6k
[OCI Technical Deep Dive] OracleのAI戦略(2025年8月5日開催)
oracle4engineer
PRO
1
260
ABEMAにおける 生成AI活用の現在地 / The Current Status of Generative AI at ABEMA
dekatotoro
0
560
工業高校で学習したとあるエンジニアのキャリアの話
shirayanagiryuji
0
130
Backboneとしてのtimm2025
yu4u
3
1.2k
Exadata Database Service on Dedicated Infrastructure セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
1
340
プロダクトエンジニアリングで開発の楽しさを拡張する話
barometrica
0
220
Preferred Networks (PFN) とLLM Post-Training チームの紹介 / 第4回 関東Kaggler会 スポンサーセッション
pfn
PRO
1
100
リモートワークで心掛けていること 〜AI活用編〜
naoki85
0
200
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Scaling GitHub
holman
462
140k
Typedesign – Prime Four
hannesfritz
42
2.8k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Practical Orchestrator
shlominoach
190
11k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
How GitHub (no longer) Works
holman
314
140k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Invisible Side of Design
smashingmag
301
51k
Docker and Python
trallard
45
3.5k
What's in a price? How to price your products and services
michaelherold
246
12k
YesSQL, Process and Tooling at Scale
rocio
173
14k
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!