物体検知
Object Detection
美濃⼝宗尊,⻄島涼太,⽚岡裕雄
(著者紹介はラストにあります)
1
http://xpaperchallenge.org/cv
物体検知(Object Detection)
2
• 物体検知は物体ラベルと位置を同時回帰
Person
Uma
物体2
物体識別:Uma(⾺)
位置(x,y,w,h):118, 250, 89, 146
物体1
物体識別:Person(⼈)
位置(x,y,w,h):125, 15, 78, 162
画像はPascal VOC datasetより抜粋
• 物体識別はImageNet/Places365等と同様に与えられた画像
(この場合は切り抜かれたパッチ)から⽣成
• 位置は左上のx, y座標と幅w, ⾼hを返却(コードにより左上x1, y1
右下x2, y2を返却するので注意)
物体検知の変遷(ʼ01〜ʼ19)
3
Haar-like [Viola+, CVPR01]
+ AdaBoost
Fast R-CNN [Girshick, ICCV15]
ROI Pooling, Multi-task Loss
Faster R-CNN [Ren+, NIPS15]
RPN
・・・
・・・
R-CNN時代(それ以前は”Hand-crafted” ObjectNess)⾼速化 & ⾼精度化
One-shot Detector時代 兎にも⾓にも(精度を保ちつつ)⾼速化
YOLO(v1)/v2/v3 [Redmon+,
CVPR16/CVPR17/arXiv18]
One-shot detector, w/ full-connect layer
・・・
Latest Algorithm 精度重視,⾼速
Mask R-CNN [He+, ICCV17]
RoI Align, Det+Seg
・・・
bbox+segmentationのラベル
が同時に⼿に⼊るならMask R-
CNNを試そう
41.8AP@MSCOCO
bboxのみが⼿に⼊るな
らRetinaNetを⽤いるの
がベター
40.8AP@MSCOCO
SSD [Liu+, ECCV16]
One-shot detector, Anchor Box
RetinaNet [Lin+, ICCV17]
FocalLoss, PyramidNet
Hand-crafted feature時代 基礎/枠組みの構築
HOG [Dalal+, CVPR05]
+ SVM
ICF [Dollár+, BMVC09]
+ Soft-cascade
DPM [Felzenszwalb+, TPAMI12]
+ Latent SVM
・・・
物体検知の変遷(ポイント)
4
• Hand-crafted
– 勾配や明暗差をベースに枠組みを構築
– 代表:Haar-like, HOG, ICF, DPM
• R-CNN
– 候補領域+物体識別の2ステップをCNNにより実施
– 代表:R-CNN, Fast R-CNN, Faster R-CNN
• One-shot
– 候補領域を⽤いず1回の画像領域により検出
– 代表:SSD, YOLO, YOLOv2, YOLOv3
• Latest algorithm
– 誤差関数,セグメントの同時学習など⾼度化
– 代表:RetinaNet, Mask R-CNN
Agenda
5
• 論⽂紹介
– 基本1論⽂1ページで紹介
• 実装のチュートリアル
– 現在の代表⼿法の使い⽅を紹介
– e.g. Faster R-CNN, SSD, YOLO, Detectron
• メタ部分
– 強い研究者や機関がなぜ強いかを分析
論⽂紹介
Haar-like + AdaBoost(Hand-crafted feat.)
7
Rapid Object Detection using a Boosted Cascade of Simple Features
著者 :Paul Viola, Michael Jones
論⽂:CVPR2001(Best Paper)
l 領域の陰影組み合わせ特徴,識別器による取捨選択
• 学習時には無数の陰影パターン/スケールの組み合わせ(左図)を⽣成
– AdaBoostにより識別に良好なパターンを選択
• 識別時にはカスケード型の識別器(右図)を使⽤
– 途中棄却(図中のF)を導⼊することで⾼速化
– 2001年当時のノートPCにてリアルタイムで動作するくらいには⾼速
HOG+SVM(Hand-crafted feat.)
8
Histograms of Oriented Gradients for Human Detection
著者 : Navneet Dalal, Bill Triggs
論⽂:CVPR2005
l 勾配ヒストグラムによるアブストラクトな形状表現
1. 画像の⼊⼒,画像正規化
2. 勾配の計算(右の数式参照)
3. 量⼦化ヒストグラムを計算
- セル/ブロックに分割された領域をオーバーラップさせながら計算
4. 過検出を統合(NMS; Non-Maximum Suppression)
5. SVMにより2値識別
- ⼈物か否か
⼊⼒画像と画像勾配,Positive/Negativeの重み付き勾配
ICF+Cascade(Hand-crafted feat.)
9
Integral Channel Features
著者 : Piotr Dollarほか
論⽂:BMVC2009
l 多チャンネルから良好な特徴を識別器学習により獲得
1. 画像の⼊⼒
2. 多チャネルの前処理(下図参照)
- Grayscale, ||G||, edges, LUV, Gabor filter, gradient histogram, binary images,
DoG imaegs
3. カスケード型識別器により重み計算
- 有効な特徴量のみを残す
DPM+LatentSVM(Hand-crafted feat.)
10
Object Detection with Discriminatively Trained Part Based Models
著者 :Pedro F. Felzenszwalb, Ross B. Girshick, David McAllester, Deva
Ramanan
論⽂:TPAMI 2012
l HOGをベース特徴に,全体(Root filter; RT)および部位ごと(Part
filters; PT)の評価をLatent SVMにより判断
画像ピラミッドからRT特徴量と解像
度を上げたPTの特徴量を抽出
PFに対する位置変動の潜在変数をLatent SVMに
より学習,RFも含めて全体の尤度が⾼い領域が
検出領域となる
R-CNN(R-CNN)
11
Rich feature hierarchies for accurate object detection and semantic segmentation
(CVPR2014)
著者 : Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik
l 深層学習を取り⼊れた初の物体検出モデル,2ステージ物体検出モデルの元祖
1. 画像の⼊⼒
2. 物体候補の探索
- Selective Serchで画像中から領域の候補 (region proposal)を約2,000個抽出
- Selective Search: ピクセルレベルで類似する領域をグルーピングしていく⼿法 (かなり処理時間がかかる)
3. 物体の画像をリサイズし,CNNで特徴抽出
- 全ての物体候補を、CNN (AlexNet)の⼊⼒サイズに合うようにリサイズ
- リサイズした画像をCNN(AlexNet)に⼊⼒し、C特徴を抽出
4. SVMでクラス分類
- CNN特徴量から、SVMでクラス推定。論⽂では、Pascal VOC (20クラス+背景)で検証
- 実験では、全結合層でなくSVMを使った⽅が⾼精度
Fast R-CNN(R-CNN)
12
Fast R-CNN (ICCV2015)
著者 : Ross Girshick
l SPP-Netよりもシンプルなプーリング⼿法を提案し,ad hocに解決(multi-task loss)
3. Regions of Interest (RoI) pooling layer
- SPPよりもシンプルな可変プーリング⼿法
- feature map上に矩形を投影し,max poolingすることで固定⻑に変形
4. クラス識別・バウンディングボックス回帰
- RoI poolingした特徴を並列に2つの全結合層に⼊⼒
- Softmaxでクラス識別,詳細なバウンディングボックス回帰
l multi-task loss
- クラス識別誤差とバウンディングボックス回帰誤差を加算
- 同時に学習し,ad hocを解決
Faster R-CNN(R-CNN)
13
Faster R-CNN (NIPS2015)
著者 : Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun
l ネットワーク全体をdeep化し,end-to-endで学習が可能
2. ベースネットワーク (VGG-16)で特徴抽出
3. 物体候補探索 Region Proposal Network (RPN)
- 物体であるかどうか (objectness)と、物体の位置を推定
- feature map上を3x3の検出窓 (window)を⾛査 (スライドウィンドウ)
- 各windowにanchorを⽤意し,回帰
- cls layerで物体の有無,reg layerで座標推定
l まとめると算出している値は、以下の3種類
- cls layerによるwindow数×2k個の物体の有無
- reg layerによるwindow数×4k個の座標値
- 最終fc層によるwindow数×k×クラス数個の識別スコア
SSD(One-shot detector)
14
SSD:Single Shot Multibox Detector (ECCV2016)
著者 : Wei Liu, et al.
l ベース(VGG-16)に畳み込み層を追加
l ゴリゴリに畳み込んでマルチスケール化
l シンプルな設計,one-shot detector
様々な⼤きさのfeature mapごとにクラス分類・バウンディングボックス回帰
- feature mapのセルごとにdefault box (anchorにあたる)を任意の数設置 (図では4つ)
- default boxごとにクラス分類とBbox回帰
YOLO(One-shot detector)
15
You Only Look Once: Unified, Real-Time Object Detection (CVPR2016)
著者 : Joseph Redmon, Santosh Diwala, Ross Girshick, Ali Farhadi.
– 全結合層の出⼒を7×7×30にReshapeしたものがモデルの出⼒
– この時点ではアンカーの概念はなし
– 推論したときに正解のBoxに最も近いBoxを出⼒した部分のみ学習
出⼒の特徴マップは1つのみ
• Boxの位置と確信度
(グリッド当たり2つ)
• それぞれのグリッドのクラス
YOLOv2(One-shot detector)
16
YOLO9000: Better, Faster, Stronger (CVPR2017)
著者 : Joseph Redmon, Ali Farhadi.
– アンカーの導⼊
• 訓練データからk-meansを⽤いてサイズを決定
• 教師データに最も近いアンカーのみを学習
– Reorganization
• 浅い層の特徴マップ(⾼解像度)を深い層(低解像度)に
サイズをそろえて結合
全結合層の廃⽌によって⼊⼒画像の
サイズが(32の倍数であれば)可変に
Multi-scaleな学習が可能
ネットワークの構造
出典:“Deep learning for pose estimation of objects”
https://mc.ai/deep-learning-for-pose-estimation-of-objects/
YOLOv3(One-shot detector)
17
YOLOv3: An Incremental Improvement
著者 : Joseph Redmon, Ali Farhadi.
– より深いベースネット(Darknet-19→Darknet-53)
– サイズの異なる3つの特徴マップが出⼒
• 各特徴マップに3つのアンカー
• Deconvolutionにより⼩さい物体の検出は深い層が担当
– Softmaxの代わりにsigmoidを使⽤
One-shot系で精度⾯SOTAのRetinaNetに
匹敵する精度で、より⾼速な検出の達成
(Darknet-53の影響が強そう?)
出典:“What’s new in YOLO v3?”
https://towardsdatascience.com/yolo-v3-object-detection-53fb7d3bfe6b
RetinaNet(Latest Algorithm)
18
Focal Loss for Dense Object Detection (ICCV2017)
著者 : Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, Piotr Dollár.
– SSDではクラス間のアンバランスが問題
• SSDのクラスラベルに含まれる「背景」が主な原因
• クロスエントロピー誤差に係数(1 − 𝑝%)'
を追加した
Focal Lossを使⽤してこれを解決(右)
– ベースネットの⼯夫
• Res構造でより深く
• Feature Pyramid Networkの採⽤(左)
うまく分類できないものを
重点的に学習
Mask R-CNN(Latest Algorithm)
19
Mask R-CNN (ICCV2017)
著者 : Kaiming He, Georgia Gkioxari, Piotr Dollár, Ross Girshick.
– Faster-RCNNと同様のtwo stage構造
– Region Proposal Networkによる候補領域からクラス・位置
とは別にSegmentationの結果を計算
候補領域(ROI)の⼤まかな
位置しか⾒ないROI Poolingは
Segmentationには不向き
・ROI Alignの導⼊
後段の計算で必要なROI内部の
代表的な点の位置をあらかじめ
設定し、その点の4近傍から
bi-linear補間によって値を計算
最近のSOTA(Latest Algorithm)
20
An Analysis of Scale Invariance in Object Detection - SNIP (CVPR2018)
著者 : Bharat Singh, Larry S. Davis
l 物体のサイズ変動に対応した⼿法
l ImageNetで学習したモデルからのドメインシフトが⼤きい
l COCO2017にてBest student entry
プレ学習時の物体サイズに近いanchorのみを学習
- 3つのスケールで物体候補を算出し,最後に3つの結果をマージ
最近のSOTA(Latest Algorithm)
21
SNIPER: Efficient Multi-Scale Training (NeurIPS 2018)
著者 : Bharat Singh, Mahyar Najibi, Larry S. Davis
l より効率的なマルチスケール学習
l ピクセル処理ではなく,チップ周辺のコンテキスト領域を学習
l ⽣成するチップ数は画像の複雑さに応じて変化
コンテキストに基づいたチップのサンプリング
- 画像中の物体の存在の基づいてチップ(コンテキスト領域)を⽣成
- チップからバウンディングボックスを推定
最近のSOTA(Latest Algorithm)
22
M2Det: A Single-Shot Object Detector based on Multi-Level Feature
Pyramid Network (AAAI 2019)
著者 : Qijie Zhao, Tao Sheng, Yongtao Wang, Zhi Tang, Ying Chen, Ling Cai, Haibin Ling
l ダウンサンプリングとアップサンプリングを何度も繰り返す
l 処理速度は出ないが,2019年2⽉現在でSOTA
浅い特徴と深い特徴をマージしてマルチスケール化
- アップサンプリング時のfeature mapを同じサイズ同⼠で結合
- 結合したfeature mapから物体検出
実装のチュートリアル
頻出データセット
24
Pascal VOC(2007/2012)
• ほとんどの論⽂で検証されるデファクトスタンダードDB
• 2005から2012年まで物体検出のコンペを開催
DB概要
• クラス数:20
– Person(1),Animal(6),Vehicle(7),Indoor(6)
• 画像枚数:9,963枚(2007),11,530枚(2012)
• 物体数:24,640(2007),27,450(2012)
• セグメンテーション数:6,929(2012)
その他
• .xml形式で管理
• 2007と2012でトレイン,2007でテストという流れが多
– 2012はテストデータが公開されていないため
• 2012に⼀部破損している画像がある?
– 画像の読み込み⽅によってはエラーが出るので注意
頻出データセット
25
Pascal VOCフォーマット
• 頻出のVOCデータ構造
• このフォーマットを抑えておくと様々なコードに対応可能
devkit
Annotation
– .xml形式のアノテーションデータが保存されている階層
– ツリー構造で画像の情報やソース,Bbox,クラスなどの情報
ImageSets - Main
– .txt形式でtrain/test/valのリストが保存されている階層
JPEGImages
– .jpg形式で画像が保存されている階層
アノテーションツールまとめ
https://qiita.com/shu-yusa/items/d19ea57e3cf9c4dbdce2
頻出データセット
26
Microsoft COCO
• VOCと同様に,最も多く使われるDBの1つ
• VOCよりも規模が⼤きく,他のタスクも充実
– セグメンテーション,イメージキャプショニングなど
DB概要
• クラス数:80
• 画像枚数:330,000枚
• 物体数:1,500,000
その他
• アノテーションデータはJSONで管理
– 画像IDでキーが対応付けられており,便利
• 最近のコードではCOCOフォーマットが増加?
– VOCフォーマットよりもシンプルなため?
重要データセット
27
Open Images dataset v4
• 最⼤規模の画像データセット
• 2017年にBboxのデータも追加されて物体検出でも利⽤可能
DB概要
• クラス数:600
• 画像枚数:総計1900万枚
• 物体数:15,400,000
その他
• バウンディングボックスは半⾃動で付与
• 2017年当時はバウンディングボックスにややズレがある印象
• 現在 (v4)に関しては不明
• 数だけで⾔えばトップクラス
その他データセット
28
ImageNet, Caltech Pedestrian, CityPerson
ImageNet:
ベースネットワーク(VGG16やResNet101など)のプレ学習に頻出
とりあえず使っているが,使わなくても同等の精度が出たりする
Caltech Pedestrian:
歩⾏者検知⽤DB
⼈間のみのベンチマークなら頻出
City Person:
Cityscapesというセグメンテーション⽤DBにBboxを付与
ドラレコ映像で,⼈間の外像度が低い
Faster R-CNNのチュートリアル
29
• 公式実装
– MATLAB版とPython版が存在
• OriginalはMATLAB版(論⽂の再現実験に推奨)
• いずれもCaffeを利⽤
• MATLAB版で訓練したモデルをPython版で使⽤不可(逆は不明)
• backboneはZFnetとVGG16の2つ
– MATLAB
https://github.com/ShaoqingRen/faster_rcnn
– Python
https://github.com/rbgirshick/py-faster-rcnn
Faster R-CNNのチュートリアル
30
• 注意点
– MicrosoftがFaster R-CNNの特許を取得済み
(特許本⽂:https://t.co/Bxnjz5s1WU )
• Faster R-CNNの進化系であるMask R-CNN等も特許に含む
• Github上のほぼすべてのFaster R-CNN実装が独⾃データで
訓練を⾏うコードが存在しない
(独⾃データでの学習は⾃分で実装する必要あり)
• あくまでアメリカの特許のため⽇本国内では利⽤可能?
(参考:https://qiita.com/yu4u/items/6bc9571c19181c1600a7 )
Faster R-CNNのチュートリアル
31
• Keras実装
• https://github.com/you359/Keras-FasterRCNN
– Theanoとtensorflow対応
– メリット
• backboneの種類が豊富
(VGG16, xception, Resnet50, inception-Resnet-v2)
• 独⾃データの学習が⽐較的容易
(所定の形式のtxtファイルを⽤意すれば学習可能)
– デメリット
• 動画のテスト未実装
Faster R-CNNのチュートリアル
32
• Pytorch実装
• https://github.com/jwyang/faster-rcnn.pytorch
– メリット
• Mask R-CNNで導⼊されているROI Alignを使⽤可能
• 数あるPytorch実装の中でも,Numpyの使⽤を避けており
⽐較的⾼速に学習可能
• さまざまな環境でのベンチマークがあり
訓練前にバッチサイズなどある程度パラメータの⽬途が⽴つ
SSDのチュートリアル
33
• Pytorch実装
• https://github.com/amdegroot/ssd.pytorch
– 特徴
• Pytorch実装の中では⼈気
• 2018年3⽉以降更新されていないがForkが多い
• 最新のPytorchに対応していないが,Issuesで対応可能
※少し⾯倒かも
• Pascal VOCとMSCOCOフォーマットで学習可能
• 論⽂以上の精度プレトレインモデル公開
SSDのチュートリアル
34
• Pytorch実装
• https://github.com/amdegroot/ssd.pytorch
– デフォではPytorch 0.3系
• 学習回数(イテレーション)のみで学習を管理
• エポックで管理したい場合は改造
– Pytorch 0.4.0+対応(基本はこの辺りを参照)
• Issues #154
• Issues #175
• Issues #240
• これをやると学習開始までが速くなる!
YOLOのチュートリアル
35
• 公式実装
• https://pjreddie.com/darknet/yolo/
– Darknet
• C⾔語・CUDAで書かれたライブラリ
• https://github.com/pjreddie/darknet
をcloneしてmakeするだけで簡単に使⽤可能
• メリット
– makeするだけでYOLOv1〜v3まで簡単に試せる
– ⾼速に動作
• デメリット
– ソースコードの理解が困難
YOLOのチュートリアル
36
• YOLOv3のKeras実装
• https://github.com/qqwweee/keras-yolo3
– Kerasを使⽤したYOLOv3の実装
• tensorflowバックエンド
• メリット
– コードが読みやすい +αの処理を追加しやすい
• デメリット
– 動作が遅い
– trainのコードは論⽂の精度を再現できず
YOLOのチュートリアル
37
• YOLOv3のPytorch実装
• https://github.com/DeNA/PyTorch_YOLOv3
– DeNAによる再現実装
• メリット
– dockerfile付きで簡単に試せる
– COCO データセットでtrain,testともに同等の精度を達成
• デメリット
– Tiny ver.は未実装
メタサーベイ
メタサーベイ??
39
• 世界の強い研究者/研究グループに着⽬
– いかに研究を進めていくか?
– いかにアイディアを発想するか?
– 研究体制(メンバーや環境,基盤技術)を整えるか?
という部分にフォーカス
Facebook AI Research(FAIR)
40
• 世界の物体検知分野を牽引するFAIR
– 激強研究機関
• 強い研究者が集合,議論してさらに強くなる
– 物体検知のトレンドを創出
• Mask R-CNN/RetinaNetなど
– 強い基盤を保有
• PyTorch/Caffe2などに代表
• Detectronは誰もが使⽤できる物体認識オープンソース
FAIR
41
• 激強研究機関
– 所⻑はYann LeCun(左; CNNの考案者の⼀⼈)
– トップの国際会議に毎回数本〜数⼗本論⽂通す
– トップ研究者を常時採⽤(+厳しい⾯接を突破)
• InternですらNIPS/ICML/CVPR等の主著成果が推奨されている
https://research.fb.com/category/facebook-ai-research/ 1ページ10本リストされているページが66!
(全体で660弱くらいの論⽂が採択?)
https://research.fb.com/publications/page/9/
FAIR
42
• 物体検知分野の著名研究者(覚えておくと得します)
– Kaiming He
• ResNet, Mask R-CNN, Faster R-CNN, Focal Loss等
• http://kaiminghe.com/
– Ross Girshick
• DPM, R-CNN, Fast/Faster/Mask R-CNN, YOLO,
Focal Loss等
• http://www.rossgirshick.info/
– Piotr Dollar
• Caltech Pedstrian DB, MSCOCO, ICF, Mask R-CNN
等
• https://pdollar.github.io/
• 他多数。。。
FAIR
43
• 物体検知のトレンドを創出
– Mask R-CNN(ICCVʼ17 Best Paper)
• 直感的にFaster R-CNN(He⽒/Girshick⽒の前職研究)とFCNの統合
• Simple Idea(この場合はサブピクセルで誤差を補正するROI Align*)の追加,
bbox+segmentの同時最適化で劇的な精度向上
• 既存⼿法をベースにして積み上げていくスタイル
• そしてトレンドを創ったメンバーが悉く研究所にいる
* ROI Alignは(特にセグメンテーションの問題にて)誤差を最適化する
ためにシンプルながら効果が⼤きかったと推察
FAIR
44
• 物体検知でトレンドを創出するには?
1. シンプルアイディア
2. 劇的な精度向上
3. コードを公開
の3拍⼦は(物体検知に限らず)CV界で⾮常に⼤きく評価される
R-CNNシリーズ,ResNet, (後述)YOLOシリーズも3拍⼦揃えている
FAIR
45
• 研究はインターンも重要な戦⼒?
– FAIRインターンの最近の成果
• RetinaNet(ICCVʻ17 Student Best Paper)
• Non-local Neural Net(CVPRʼ18)
– 有名研究室エース学⽣がインターンすること多し
– やはり有名研究者と数ヶ⽉に渡り研究を実施
Fellowshipプログラムも充実($37,000/year, 最⼤$5,000のトラベルサポート)
https://research.fb.com/programs/fellowship
FAIR
46
• FAIRのデータ基盤
– もちろんSNSとしてのFacebook!
– Instagram買収(2012年4⽉)
– SNSを⽤いた弱教師によるPre-trainの実⾏(下図)
• Hashtagでラベル付/スケール増加
• 35億枚の画像により特徴表現学習
[Mahajan+, ECCV18]
FBはSNSのHashtagでラベル付けなし,弱教師付きの3.5B
枚画像DB構築
FAIR
47
• メタな部分を常に考えている?
– ⼿法とともにデータの分析も⾏う
– Rethinking ImageNet Pre-training
• ImageNetは精度向上に貢献する? -> しない
• スクラッチで⻑く学習すれば同等の精度まで到達
• 収束は早くなったので,研究ペース促進には寄与
学習回数が多くな
るとスクラッチと
事前学習あり,精
度が同等になる
通常の学習回数ではImageNet Pre-trainが
強く⾒えているが、、、
FAIR
48
• オープンソース構築の著名研究者
– Yanqing Jia
• Caffe(Berkeley時代)/Caffe2の作者
• http://daggerfs.com/
– Soumith Chintala
• PyTorchの中⼼的メンバー
• https://research.fb.com/people/chintala-soumith/
• 他多数。。。
FAIR
49
• 物体検知アルゴリズム + 共通基盤
– 物体検知アルゴリズム
• Mask R-CNN/RetinaNet
– 共通基盤
• PyTorch:研究向き
• Caffe2:開発向き
– 両側⾯の研究者が同時に研究開発を推進
• 実際にはハード/UI⾯でも研究が進められている
• 研究後迅速にオープンソース化 >> Detectron
FAIR
50
• PyTorch
– 主に研究⽤途として世界中の研究者が使⽤
– define-by-runが直感的な実装を⽀援
– コーディングの⾃由度が⾼い(?)
– 経験上,DLしたコードの再現性が⾼い
たったの⼀⾏で環境が整う⼿軽さ!
FAIR
51
• Caffe2
– パフォーマンス(主に処理速い)が⾼く開発者向き
– Caffeを継承し,PyTorchからの連携も考慮
• 少なくともFacebook内では共有
– ONNXでのモデル共有も可能
PyTorch開発のリポジトリ内に統合された
⾚枠にCaffe2という⽂字が
公式ページも参照
https://caffe2.ai/blog/2018/05/02/Caffe2_PyTorch_1_0.html
FAIR
52
• FAIRの噂(ウワサなので話半分にお願いします)
– Facebookの開発者は⼀⼈100GPUs前後を⾃由に
使⽤可能
• FAIRともなるとさらに多くのGPUsを扱える?
• 確かにECCVʼ18論⽂では336GPUs使⽤と書いている
– パラメータチューニングの専⾨家がいる?
• 論⽂を読んで異常に精度が⾼いベースラインがある
• 実際にはKaggler枠的な⼈がいるのでは?
– Facebookなのに顔認識研究の多くは出てこない
• 何かすごいことしてるんじゃ?(と想像してしまいますよね)
FAIR
53
• メタな分析
– トレンドを創れる研究者が議論してさらに強い
ベースラインを作り続ける
– オープンソースのコミュニティを牽引
• オープンにすることで情報量も⼊ってくる
– 膨⼤なデータ量,豊富な計算リソース
– メタな部分を研究者(や運営)が常に考え続ける
• メタサーベイについても⼤きく先を⾏っている!
Max Planck Institute for Informatics(MPII)
54
• 歩⾏者検知の⽂脈で強いMPII
– Prof. Dr. Bernt Shieleグループ
• 教授+数名(3⼈?)のグループリーダーで構成
• Ph.D. student, PDを中⼼に合計30名
– CV/UI分野が中⼼
– 歩⾏者検知以外には姿勢推定,Zero-shot学習等で強い
– 泥臭い作業を惜しまずに実⾏
• 網羅的な調査研究
• 緻密なモデル改善
• アノテーション付け替え
MPII
55
• 歩⾏者検知で中⼼的なメンバー
– Rodrigo Benenson(現在はGoogle)
• 歩⾏者検知をリードする中⼼的な存在
• 現在はGoogleでより社会実装に注⼒?
• CityScapes Dataset, Pedestrian Detection Survey,
100FPS Pedestrian Detection
• http://rodrigob.github.io/
MPII
56
• 実装が伴った調査研究
– 40+の歩⾏者検出⼿法等を公平な環境で⽐較
• Haar-like/HOGからDEEP特徴まで
– 網羅的な調査がMPIIの強さ
• 特にBenenson⽒の強みか?
R. Benenson, et al. “Ten years of pedestrian detection, what have we learned?,” ECCV 2014 CVRSUAD workshop.
MPII
57
• 公開データに対して再アノテーション
– Caltech Pedestrianに対しラベルをクリーンに
– Human Baselineも与えた
• Humanのエラー率は5.6%だったことから疑問を持ち,
改良ラベルで⾏ったら同エラー率は0.88%となった
S. Zhang, et al. “How Far are We from Solving Pedestrian
Detection?,” CVPR, 2016.
Caltech Pedestrian Benchmarkに含まれる
ラベル誤り(左)とボックスのズレ(右)
最先端⼿法と⼈間のベースライン⽐較
MPII
58
• メタな分析
– 強烈なリーダーがサブドメインを牽引
• MPIIの場合はBenenson⽒が歩⾏者検知分野を牽引
• (研究所のPIはB. Schiele教授)
– 泥臭い作業を厭わない
• 徹底した実装による⽐較@ECCVWʼ14
• 公開DBに対する再アノテーション@CVPRʼ16
• Human Baselineの付与@CVPRʼ16
– そして現在は企業に移り社会実装(?)
Preferred Networks(PFN)
59
• PFN
– 国内最強の研究機関
– Chainer
• Chainer CV(画像認識), Chainer MN(分散処理),Optuna
(パラメータ調整)
• その他,Chainer RL(強化学習)
– プライベート⼤規模分散システムを保有
• 512GPUs!
– Open Images Challengeにて世界第2位
PFN
60
• Chainer!
– もはや説明不要,国産のDNNフレームワーク
– MN, RL, CVも含めて便利(語彙⼒不⾜。。)
https://chainer.org/
PFN
61
• 物体検知への貢献
– Google AI Open Images Challenge世界第2位
• 全世界で454チームが参加
– ⾼度な分散処理を実現
• Private Super Computer 512 GPUs
• 分散処理⽤Chainer MN
– さらに,パラメータ調整⽤コードを開発
• Optuna: のちにオープンソースとして公開
– https://www.preferred-networks.jp/ja/news/pr20180907
J. Redmon(YOLO著者)
62
• ご存知YOLOシリーズ著者
– 物体検知においては最も有名な研究者の⼀⼈
– プレゼン資料,SNS,arXivなどを有効に活⽤
– コードDarkNet(前述)はオープンソースとして公開
–強烈なキャラクター
– https://pjreddie.com/
J. Redmon(YOLO著者)
63
• SNS/arXivを⽤いた論⽂の宣伝!
– arXivを(最も?)うまく活⽤している
– YOLO9000(真似できるかどうかは置いといて。。。)
• コード公開/arXiv論⽂投稿
• Twitterでも効果的に拡散
https://pbs.twimg.com/media/DFnnqn0VwAExuiU.jpg
YOLO9000の開発⼒は評価に価するが,
CVPRʼ17のポスター(左図)はズルい
J. Redmon(YOLO著者)
64
• 論⽂を流⾏らせるための戦略?
– まずは研究!技術を徹底して育てる
• Redmon⽒は特に物体検知に注⼒
– 論⽂執筆(査読者にわからないようネタを仕込む?)
• 愛⽝(アラスカンマラミュート)を論⽂の図中に⼊れ込む
• CVPRʼ17ポスターで全てが繋がった!
– 投稿したらオープンに
• arXiv, DarkNet公開/更新, SNS上で拡散
• TED Talkにも登場
まとめ
65
• 物体検出のトレンド共にメタな部分を調査
– トレンド
• Hand-crafted features, R-CNN, One-shot detector,
State-of-the-art(SOTA)
• 頻出データセット
• 有名なコード紹介
– メタサーベイ
• FAIR
• MPII
• PFN
• J. Redmon
著者紹介
【研究テーマや研究の趣味】
• Fashion Culture DataBase (FCDB)
• Neural Joking Machine (NJM)
• ITS関係
【何かひとこと,今年の抱負など】
• ⾯⽩い⼈間になりたい。
– いろいろな意味で
• 時間をうまく使いたい!
MyPage/SNS
Twitter: @cv2mametch
⾃⼰紹介
写真等
• 美濃⼝宗尊 (みのぐち むねたか)
• 東京電機⼤学 M1 知能機械システム研究室
• 産業技術総合研究所RA
• cvpaper.challenge,nlpaper.challenge
• 出⾝:神奈川県,現在:埼⽟県
• 趣味:Michael Jackson,聖飢魔Ⅱ,玩具
著者1
著者2
• ⻄島涼太(にしじまりょうた)
• 千葉⼤学 M1 総合メディア研究室
• 出⾝:千葉県、現在:千葉県
• 趣味:サッカー、ランニング
• cvpaper.challengeの活動参加は2回⽬(発表は初)
• 研究テーマ:物体検出、物体追跡
• 最近の興味:⽣成モデル全般
【研究テーマや研究の興味】
• ⾃⾝のアウトプットを増やしたい
【何かひとこと,今年の抱負など】
MyPage/SNS
Twitter: @ryota7171
• 研究テーマ:画像認識,動画解析,⼈物⾏動認識,SNS
画像解析,交通予防安全,物流,⾔語&視覚,DB構築
• 最近の興味:3D認識,ファッション画像解析
• 論⽂:CVPRx2, ICRAx2, BMVC, ACCV等
MyPage/SNS HP: http://hirokatsukataoka.net/ Twitter: @HirokatuKataoka
• 産業技術総合研究所(CVRG/AI Center/AL Lab.)研究員(2016, Apr. ~ 現在)
• 東京電機⼤学 訪問研究員(2016, Apr. ~ 現在)
• cvpaper.challenge 主宰(2015, May~),nlpaper.challenge HQ(2018,
Dec.~)
• 茨城県笠間市出⾝,芝浦⼯⼤(05-09),慶應義塾⼤学(09-14),東京⼤(14-
15),⻑距離⾛(フルマラソンBest 3ʼ30),⽔泳(茨城県5位),野球(⾼校~
⼤学; 海外選抜メンバー),⽝と遊ぶこと
• ひとこと:根っからのチャレンジャーです!
• cvpaper.challenge: 世界のCV研究者を驚かせる!
• nlpaper.challenge: 相乗効果によりNLP/CV分野
を活性化!(私⾃⾝もNLPの知⾒を獲得したい)
⽚岡 裕雄
(かたおか ひろかつ)
【研究テーマや研究の興味】
【何かひとこと,今年の抱負など】
×
双⽅のコミュニティを強く
著者3

物体検知(Meta Study Group 発表資料)

  • 1.
  • 2.
    物体検知(Object Detection) 2 • 物体検知は物体ラベルと位置を同時回帰 Person Uma 物体2 物体識別:Uma(⾺) 位置(x,y,w,h):118,250, 89, 146 物体1 物体識別:Person(⼈) 位置(x,y,w,h):125, 15, 78, 162 画像はPascal VOC datasetより抜粋 • 物体識別はImageNet/Places365等と同様に与えられた画像 (この場合は切り抜かれたパッチ)から⽣成 • 位置は左上のx, y座標と幅w, ⾼hを返却(コードにより左上x1, y1 右下x2, y2を返却するので注意)
  • 3.
    物体検知の変遷(ʼ01〜ʼ19) 3 Haar-like [Viola+, CVPR01] +AdaBoost Fast R-CNN [Girshick, ICCV15] ROI Pooling, Multi-task Loss Faster R-CNN [Ren+, NIPS15] RPN ・・・ ・・・ R-CNN時代(それ以前は”Hand-crafted” ObjectNess)⾼速化 & ⾼精度化 One-shot Detector時代 兎にも⾓にも(精度を保ちつつ)⾼速化 YOLO(v1)/v2/v3 [Redmon+, CVPR16/CVPR17/arXiv18] One-shot detector, w/ full-connect layer ・・・ Latest Algorithm 精度重視,⾼速 Mask R-CNN [He+, ICCV17] RoI Align, Det+Seg ・・・ bbox+segmentationのラベル が同時に⼿に⼊るならMask R- CNNを試そう 41.8AP@MSCOCO bboxのみが⼿に⼊るな らRetinaNetを⽤いるの がベター 40.8AP@MSCOCO SSD [Liu+, ECCV16] One-shot detector, Anchor Box RetinaNet [Lin+, ICCV17] FocalLoss, PyramidNet Hand-crafted feature時代 基礎/枠組みの構築 HOG [Dalal+, CVPR05] + SVM ICF [Dollár+, BMVC09] + Soft-cascade DPM [Felzenszwalb+, TPAMI12] + Latent SVM ・・・
  • 4.
    物体検知の変遷(ポイント) 4 • Hand-crafted – 勾配や明暗差をベースに枠組みを構築 –代表:Haar-like, HOG, ICF, DPM • R-CNN – 候補領域+物体識別の2ステップをCNNにより実施 – 代表:R-CNN, Fast R-CNN, Faster R-CNN • One-shot – 候補領域を⽤いず1回の画像領域により検出 – 代表:SSD, YOLO, YOLOv2, YOLOv3 • Latest algorithm – 誤差関数,セグメントの同時学習など⾼度化 – 代表:RetinaNet, Mask R-CNN
  • 5.
    Agenda 5 • 論⽂紹介 – 基本1論⽂1ページで紹介 •実装のチュートリアル – 現在の代表⼿法の使い⽅を紹介 – e.g. Faster R-CNN, SSD, YOLO, Detectron • メタ部分 – 強い研究者や機関がなぜ強いかを分析
  • 6.
  • 7.
    Haar-like + AdaBoost(Hand-craftedfeat.) 7 Rapid Object Detection using a Boosted Cascade of Simple Features 著者 :Paul Viola, Michael Jones 論⽂:CVPR2001(Best Paper) l 領域の陰影組み合わせ特徴,識別器による取捨選択 • 学習時には無数の陰影パターン/スケールの組み合わせ(左図)を⽣成 – AdaBoostにより識別に良好なパターンを選択 • 識別時にはカスケード型の識別器(右図)を使⽤ – 途中棄却(図中のF)を導⼊することで⾼速化 – 2001年当時のノートPCにてリアルタイムで動作するくらいには⾼速
  • 8.
    HOG+SVM(Hand-crafted feat.) 8 Histograms ofOriented Gradients for Human Detection 著者 : Navneet Dalal, Bill Triggs 論⽂:CVPR2005 l 勾配ヒストグラムによるアブストラクトな形状表現 1. 画像の⼊⼒,画像正規化 2. 勾配の計算(右の数式参照) 3. 量⼦化ヒストグラムを計算 - セル/ブロックに分割された領域をオーバーラップさせながら計算 4. 過検出を統合(NMS; Non-Maximum Suppression) 5. SVMにより2値識別 - ⼈物か否か ⼊⼒画像と画像勾配,Positive/Negativeの重み付き勾配
  • 9.
    ICF+Cascade(Hand-crafted feat.) 9 Integral ChannelFeatures 著者 : Piotr Dollarほか 論⽂:BMVC2009 l 多チャンネルから良好な特徴を識別器学習により獲得 1. 画像の⼊⼒ 2. 多チャネルの前処理(下図参照) - Grayscale, ||G||, edges, LUV, Gabor filter, gradient histogram, binary images, DoG imaegs 3. カスケード型識別器により重み計算 - 有効な特徴量のみを残す
  • 10.
    DPM+LatentSVM(Hand-crafted feat.) 10 Object Detectionwith Discriminatively Trained Part Based Models 著者 :Pedro F. Felzenszwalb, Ross B. Girshick, David McAllester, Deva Ramanan 論⽂:TPAMI 2012 l HOGをベース特徴に,全体(Root filter; RT)および部位ごと(Part filters; PT)の評価をLatent SVMにより判断 画像ピラミッドからRT特徴量と解像 度を上げたPTの特徴量を抽出 PFに対する位置変動の潜在変数をLatent SVMに より学習,RFも含めて全体の尤度が⾼い領域が 検出領域となる
  • 11.
    R-CNN(R-CNN) 11 Rich feature hierarchiesfor accurate object detection and semantic segmentation (CVPR2014) 著者 : Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik l 深層学習を取り⼊れた初の物体検出モデル,2ステージ物体検出モデルの元祖 1. 画像の⼊⼒ 2. 物体候補の探索 - Selective Serchで画像中から領域の候補 (region proposal)を約2,000個抽出 - Selective Search: ピクセルレベルで類似する領域をグルーピングしていく⼿法 (かなり処理時間がかかる) 3. 物体の画像をリサイズし,CNNで特徴抽出 - 全ての物体候補を、CNN (AlexNet)の⼊⼒サイズに合うようにリサイズ - リサイズした画像をCNN(AlexNet)に⼊⼒し、C特徴を抽出 4. SVMでクラス分類 - CNN特徴量から、SVMでクラス推定。論⽂では、Pascal VOC (20クラス+背景)で検証 - 実験では、全結合層でなくSVMを使った⽅が⾼精度
  • 12.
    Fast R-CNN(R-CNN) 12 Fast R-CNN(ICCV2015) 著者 : Ross Girshick l SPP-Netよりもシンプルなプーリング⼿法を提案し,ad hocに解決(multi-task loss) 3. Regions of Interest (RoI) pooling layer - SPPよりもシンプルな可変プーリング⼿法 - feature map上に矩形を投影し,max poolingすることで固定⻑に変形 4. クラス識別・バウンディングボックス回帰 - RoI poolingした特徴を並列に2つの全結合層に⼊⼒ - Softmaxでクラス識別,詳細なバウンディングボックス回帰 l multi-task loss - クラス識別誤差とバウンディングボックス回帰誤差を加算 - 同時に学習し,ad hocを解決
  • 13.
    Faster R-CNN(R-CNN) 13 Faster R-CNN(NIPS2015) 著者 : Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun l ネットワーク全体をdeep化し,end-to-endで学習が可能 2. ベースネットワーク (VGG-16)で特徴抽出 3. 物体候補探索 Region Proposal Network (RPN) - 物体であるかどうか (objectness)と、物体の位置を推定 - feature map上を3x3の検出窓 (window)を⾛査 (スライドウィンドウ) - 各windowにanchorを⽤意し,回帰 - cls layerで物体の有無,reg layerで座標推定 l まとめると算出している値は、以下の3種類 - cls layerによるwindow数×2k個の物体の有無 - reg layerによるwindow数×4k個の座標値 - 最終fc層によるwindow数×k×クラス数個の識別スコア
  • 14.
    SSD(One-shot detector) 14 SSD:Single ShotMultibox Detector (ECCV2016) 著者 : Wei Liu, et al. l ベース(VGG-16)に畳み込み層を追加 l ゴリゴリに畳み込んでマルチスケール化 l シンプルな設計,one-shot detector 様々な⼤きさのfeature mapごとにクラス分類・バウンディングボックス回帰 - feature mapのセルごとにdefault box (anchorにあたる)を任意の数設置 (図では4つ) - default boxごとにクラス分類とBbox回帰
  • 15.
    YOLO(One-shot detector) 15 You OnlyLook Once: Unified, Real-Time Object Detection (CVPR2016) 著者 : Joseph Redmon, Santosh Diwala, Ross Girshick, Ali Farhadi. – 全結合層の出⼒を7×7×30にReshapeしたものがモデルの出⼒ – この時点ではアンカーの概念はなし – 推論したときに正解のBoxに最も近いBoxを出⼒した部分のみ学習 出⼒の特徴マップは1つのみ • Boxの位置と確信度 (グリッド当たり2つ) • それぞれのグリッドのクラス
  • 16.
    YOLOv2(One-shot detector) 16 YOLO9000: Better,Faster, Stronger (CVPR2017) 著者 : Joseph Redmon, Ali Farhadi. – アンカーの導⼊ • 訓練データからk-meansを⽤いてサイズを決定 • 教師データに最も近いアンカーのみを学習 – Reorganization • 浅い層の特徴マップ(⾼解像度)を深い層(低解像度)に サイズをそろえて結合 全結合層の廃⽌によって⼊⼒画像の サイズが(32の倍数であれば)可変に Multi-scaleな学習が可能 ネットワークの構造 出典:“Deep learning for pose estimation of objects” https://mc.ai/deep-learning-for-pose-estimation-of-objects/
  • 17.
    YOLOv3(One-shot detector) 17 YOLOv3: AnIncremental Improvement 著者 : Joseph Redmon, Ali Farhadi. – より深いベースネット(Darknet-19→Darknet-53) – サイズの異なる3つの特徴マップが出⼒ • 各特徴マップに3つのアンカー • Deconvolutionにより⼩さい物体の検出は深い層が担当 – Softmaxの代わりにsigmoidを使⽤ One-shot系で精度⾯SOTAのRetinaNetに 匹敵する精度で、より⾼速な検出の達成 (Darknet-53の影響が強そう?) 出典:“What’s new in YOLO v3?” https://towardsdatascience.com/yolo-v3-object-detection-53fb7d3bfe6b
  • 18.
    RetinaNet(Latest Algorithm) 18 Focal Lossfor Dense Object Detection (ICCV2017) 著者 : Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, Piotr Dollár. – SSDではクラス間のアンバランスが問題 • SSDのクラスラベルに含まれる「背景」が主な原因 • クロスエントロピー誤差に係数(1 − 𝑝%)' を追加した Focal Lossを使⽤してこれを解決(右) – ベースネットの⼯夫 • Res構造でより深く • Feature Pyramid Networkの採⽤(左) うまく分類できないものを 重点的に学習
  • 19.
    Mask R-CNN(Latest Algorithm) 19 MaskR-CNN (ICCV2017) 著者 : Kaiming He, Georgia Gkioxari, Piotr Dollár, Ross Girshick. – Faster-RCNNと同様のtwo stage構造 – Region Proposal Networkによる候補領域からクラス・位置 とは別にSegmentationの結果を計算 候補領域(ROI)の⼤まかな 位置しか⾒ないROI Poolingは Segmentationには不向き ・ROI Alignの導⼊ 後段の計算で必要なROI内部の 代表的な点の位置をあらかじめ 設定し、その点の4近傍から bi-linear補間によって値を計算
  • 20.
    最近のSOTA(Latest Algorithm) 20 An Analysisof Scale Invariance in Object Detection - SNIP (CVPR2018) 著者 : Bharat Singh, Larry S. Davis l 物体のサイズ変動に対応した⼿法 l ImageNetで学習したモデルからのドメインシフトが⼤きい l COCO2017にてBest student entry プレ学習時の物体サイズに近いanchorのみを学習 - 3つのスケールで物体候補を算出し,最後に3つの結果をマージ
  • 21.
    最近のSOTA(Latest Algorithm) 21 SNIPER: EfficientMulti-Scale Training (NeurIPS 2018) 著者 : Bharat Singh, Mahyar Najibi, Larry S. Davis l より効率的なマルチスケール学習 l ピクセル処理ではなく,チップ周辺のコンテキスト領域を学習 l ⽣成するチップ数は画像の複雑さに応じて変化 コンテキストに基づいたチップのサンプリング - 画像中の物体の存在の基づいてチップ(コンテキスト領域)を⽣成 - チップからバウンディングボックスを推定
  • 22.
    最近のSOTA(Latest Algorithm) 22 M2Det: ASingle-Shot Object Detector based on Multi-Level Feature Pyramid Network (AAAI 2019) 著者 : Qijie Zhao, Tao Sheng, Yongtao Wang, Zhi Tang, Ying Chen, Ling Cai, Haibin Ling l ダウンサンプリングとアップサンプリングを何度も繰り返す l 処理速度は出ないが,2019年2⽉現在でSOTA 浅い特徴と深い特徴をマージしてマルチスケール化 - アップサンプリング時のfeature mapを同じサイズ同⼠で結合 - 結合したfeature mapから物体検出
  • 23.
  • 24.
    頻出データセット 24 Pascal VOC(2007/2012) • ほとんどの論⽂で検証されるデファクトスタンダードDB •2005から2012年まで物体検出のコンペを開催 DB概要 • クラス数:20 – Person(1),Animal(6),Vehicle(7),Indoor(6) • 画像枚数:9,963枚(2007),11,530枚(2012) • 物体数:24,640(2007),27,450(2012) • セグメンテーション数:6,929(2012) その他 • .xml形式で管理 • 2007と2012でトレイン,2007でテストという流れが多 – 2012はテストデータが公開されていないため • 2012に⼀部破損している画像がある? – 画像の読み込み⽅によってはエラーが出るので注意
  • 25.
    頻出データセット 25 Pascal VOCフォーマット • 頻出のVOCデータ構造 •このフォーマットを抑えておくと様々なコードに対応可能 devkit Annotation – .xml形式のアノテーションデータが保存されている階層 – ツリー構造で画像の情報やソース,Bbox,クラスなどの情報 ImageSets - Main – .txt形式でtrain/test/valのリストが保存されている階層 JPEGImages – .jpg形式で画像が保存されている階層 アノテーションツールまとめ https://qiita.com/shu-yusa/items/d19ea57e3cf9c4dbdce2
  • 26.
    頻出データセット 26 Microsoft COCO • VOCと同様に,最も多く使われるDBの1つ •VOCよりも規模が⼤きく,他のタスクも充実 – セグメンテーション,イメージキャプショニングなど DB概要 • クラス数:80 • 画像枚数:330,000枚 • 物体数:1,500,000 その他 • アノテーションデータはJSONで管理 – 画像IDでキーが対応付けられており,便利 • 最近のコードではCOCOフォーマットが増加? – VOCフォーマットよりもシンプルなため?
  • 27.
    重要データセット 27 Open Images datasetv4 • 最⼤規模の画像データセット • 2017年にBboxのデータも追加されて物体検出でも利⽤可能 DB概要 • クラス数:600 • 画像枚数:総計1900万枚 • 物体数:15,400,000 その他 • バウンディングボックスは半⾃動で付与 • 2017年当時はバウンディングボックスにややズレがある印象 • 現在 (v4)に関しては不明 • 数だけで⾔えばトップクラス
  • 28.
    その他データセット 28 ImageNet, Caltech Pedestrian,CityPerson ImageNet: ベースネットワーク(VGG16やResNet101など)のプレ学習に頻出 とりあえず使っているが,使わなくても同等の精度が出たりする Caltech Pedestrian: 歩⾏者検知⽤DB ⼈間のみのベンチマークなら頻出 City Person: Cityscapesというセグメンテーション⽤DBにBboxを付与 ドラレコ映像で,⼈間の外像度が低い
  • 29.
    Faster R-CNNのチュートリアル 29 • 公式実装 –MATLAB版とPython版が存在 • OriginalはMATLAB版(論⽂の再現実験に推奨) • いずれもCaffeを利⽤ • MATLAB版で訓練したモデルをPython版で使⽤不可(逆は不明) • backboneはZFnetとVGG16の2つ – MATLAB https://github.com/ShaoqingRen/faster_rcnn – Python https://github.com/rbgirshick/py-faster-rcnn
  • 30.
    Faster R-CNNのチュートリアル 30 • 注意点 –MicrosoftがFaster R-CNNの特許を取得済み (特許本⽂:https://t.co/Bxnjz5s1WU ) • Faster R-CNNの進化系であるMask R-CNN等も特許に含む • Github上のほぼすべてのFaster R-CNN実装が独⾃データで 訓練を⾏うコードが存在しない (独⾃データでの学習は⾃分で実装する必要あり) • あくまでアメリカの特許のため⽇本国内では利⽤可能? (参考:https://qiita.com/yu4u/items/6bc9571c19181c1600a7 )
  • 31.
    Faster R-CNNのチュートリアル 31 • Keras実装 •https://github.com/you359/Keras-FasterRCNN – Theanoとtensorflow対応 – メリット • backboneの種類が豊富 (VGG16, xception, Resnet50, inception-Resnet-v2) • 独⾃データの学習が⽐較的容易 (所定の形式のtxtファイルを⽤意すれば学習可能) – デメリット • 動画のテスト未実装
  • 32.
    Faster R-CNNのチュートリアル 32 • Pytorch実装 •https://github.com/jwyang/faster-rcnn.pytorch – メリット • Mask R-CNNで導⼊されているROI Alignを使⽤可能 • 数あるPytorch実装の中でも,Numpyの使⽤を避けており ⽐較的⾼速に学習可能 • さまざまな環境でのベンチマークがあり 訓練前にバッチサイズなどある程度パラメータの⽬途が⽴つ
  • 33.
    SSDのチュートリアル 33 • Pytorch実装 • https://github.com/amdegroot/ssd.pytorch –特徴 • Pytorch実装の中では⼈気 • 2018年3⽉以降更新されていないがForkが多い • 最新のPytorchに対応していないが,Issuesで対応可能 ※少し⾯倒かも • Pascal VOCとMSCOCOフォーマットで学習可能 • 論⽂以上の精度プレトレインモデル公開
  • 34.
    SSDのチュートリアル 34 • Pytorch実装 • https://github.com/amdegroot/ssd.pytorch –デフォではPytorch 0.3系 • 学習回数(イテレーション)のみで学習を管理 • エポックで管理したい場合は改造 – Pytorch 0.4.0+対応(基本はこの辺りを参照) • Issues #154 • Issues #175 • Issues #240 • これをやると学習開始までが速くなる!
  • 35.
    YOLOのチュートリアル 35 • 公式実装 • https://pjreddie.com/darknet/yolo/ –Darknet • C⾔語・CUDAで書かれたライブラリ • https://github.com/pjreddie/darknet をcloneしてmakeするだけで簡単に使⽤可能 • メリット – makeするだけでYOLOv1〜v3まで簡単に試せる – ⾼速に動作 • デメリット – ソースコードの理解が困難
  • 36.
    YOLOのチュートリアル 36 • YOLOv3のKeras実装 • https://github.com/qqwweee/keras-yolo3 –Kerasを使⽤したYOLOv3の実装 • tensorflowバックエンド • メリット – コードが読みやすい +αの処理を追加しやすい • デメリット – 動作が遅い – trainのコードは論⽂の精度を再現できず
  • 37.
    YOLOのチュートリアル 37 • YOLOv3のPytorch実装 • https://github.com/DeNA/PyTorch_YOLOv3 –DeNAによる再現実装 • メリット – dockerfile付きで簡単に試せる – COCO データセットでtrain,testともに同等の精度を達成 • デメリット – Tiny ver.は未実装
  • 38.
  • 39.
    メタサーベイ?? 39 • 世界の強い研究者/研究グループに着⽬ – いかに研究を進めていくか? –いかにアイディアを発想するか? – 研究体制(メンバーや環境,基盤技術)を整えるか? という部分にフォーカス
  • 40.
    Facebook AI Research(FAIR) 40 •世界の物体検知分野を牽引するFAIR – 激強研究機関 • 強い研究者が集合,議論してさらに強くなる – 物体検知のトレンドを創出 • Mask R-CNN/RetinaNetなど – 強い基盤を保有 • PyTorch/Caffe2などに代表 • Detectronは誰もが使⽤できる物体認識オープンソース
  • 41.
    FAIR 41 • 激強研究機関 – 所⻑はYannLeCun(左; CNNの考案者の⼀⼈) – トップの国際会議に毎回数本〜数⼗本論⽂通す – トップ研究者を常時採⽤(+厳しい⾯接を突破) • InternですらNIPS/ICML/CVPR等の主著成果が推奨されている https://research.fb.com/category/facebook-ai-research/ 1ページ10本リストされているページが66! (全体で660弱くらいの論⽂が採択?) https://research.fb.com/publications/page/9/
  • 42.
    FAIR 42 • 物体検知分野の著名研究者(覚えておくと得します) – KaimingHe • ResNet, Mask R-CNN, Faster R-CNN, Focal Loss等 • http://kaiminghe.com/ – Ross Girshick • DPM, R-CNN, Fast/Faster/Mask R-CNN, YOLO, Focal Loss等 • http://www.rossgirshick.info/ – Piotr Dollar • Caltech Pedstrian DB, MSCOCO, ICF, Mask R-CNN 等 • https://pdollar.github.io/ • 他多数。。。
  • 43.
    FAIR 43 • 物体検知のトレンドを創出 – MaskR-CNN(ICCVʼ17 Best Paper) • 直感的にFaster R-CNN(He⽒/Girshick⽒の前職研究)とFCNの統合 • Simple Idea(この場合はサブピクセルで誤差を補正するROI Align*)の追加, bbox+segmentの同時最適化で劇的な精度向上 • 既存⼿法をベースにして積み上げていくスタイル • そしてトレンドを創ったメンバーが悉く研究所にいる * ROI Alignは(特にセグメンテーションの問題にて)誤差を最適化する ためにシンプルながら効果が⼤きかったと推察
  • 44.
    FAIR 44 • 物体検知でトレンドを創出するには? 1. シンプルアイディア 2.劇的な精度向上 3. コードを公開 の3拍⼦は(物体検知に限らず)CV界で⾮常に⼤きく評価される R-CNNシリーズ,ResNet, (後述)YOLOシリーズも3拍⼦揃えている
  • 45.
    FAIR 45 • 研究はインターンも重要な戦⼒? – FAIRインターンの最近の成果 •RetinaNet(ICCVʻ17 Student Best Paper) • Non-local Neural Net(CVPRʼ18) – 有名研究室エース学⽣がインターンすること多し – やはり有名研究者と数ヶ⽉に渡り研究を実施 Fellowshipプログラムも充実($37,000/year, 最⼤$5,000のトラベルサポート) https://research.fb.com/programs/fellowship
  • 46.
    FAIR 46 • FAIRのデータ基盤 – もちろんSNSとしてのFacebook! –Instagram買収(2012年4⽉) – SNSを⽤いた弱教師によるPre-trainの実⾏(下図) • Hashtagでラベル付/スケール増加 • 35億枚の画像により特徴表現学習 [Mahajan+, ECCV18] FBはSNSのHashtagでラベル付けなし,弱教師付きの3.5B 枚画像DB構築
  • 47.
    FAIR 47 • メタな部分を常に考えている? – ⼿法とともにデータの分析も⾏う –Rethinking ImageNet Pre-training • ImageNetは精度向上に貢献する? -> しない • スクラッチで⻑く学習すれば同等の精度まで到達 • 収束は早くなったので,研究ペース促進には寄与 学習回数が多くな るとスクラッチと 事前学習あり,精 度が同等になる 通常の学習回数ではImageNet Pre-trainが 強く⾒えているが、、、
  • 48.
    FAIR 48 • オープンソース構築の著名研究者 – YanqingJia • Caffe(Berkeley時代)/Caffe2の作者 • http://daggerfs.com/ – Soumith Chintala • PyTorchの中⼼的メンバー • https://research.fb.com/people/chintala-soumith/ • 他多数。。。
  • 49.
    FAIR 49 • 物体検知アルゴリズム +共通基盤 – 物体検知アルゴリズム • Mask R-CNN/RetinaNet – 共通基盤 • PyTorch:研究向き • Caffe2:開発向き – 両側⾯の研究者が同時に研究開発を推進 • 実際にはハード/UI⾯でも研究が進められている • 研究後迅速にオープンソース化 >> Detectron
  • 50.
    FAIR 50 • PyTorch – 主に研究⽤途として世界中の研究者が使⽤ –define-by-runが直感的な実装を⽀援 – コーディングの⾃由度が⾼い(?) – 経験上,DLしたコードの再現性が⾼い たったの⼀⾏で環境が整う⼿軽さ!
  • 51.
    FAIR 51 • Caffe2 – パフォーマンス(主に処理速い)が⾼く開発者向き –Caffeを継承し,PyTorchからの連携も考慮 • 少なくともFacebook内では共有 – ONNXでのモデル共有も可能 PyTorch開発のリポジトリ内に統合された ⾚枠にCaffe2という⽂字が 公式ページも参照 https://caffe2.ai/blog/2018/05/02/Caffe2_PyTorch_1_0.html
  • 52.
    FAIR 52 • FAIRの噂(ウワサなので話半分にお願いします) – Facebookの開発者は⼀⼈100GPUs前後を⾃由に 使⽤可能 •FAIRともなるとさらに多くのGPUsを扱える? • 確かにECCVʼ18論⽂では336GPUs使⽤と書いている – パラメータチューニングの専⾨家がいる? • 論⽂を読んで異常に精度が⾼いベースラインがある • 実際にはKaggler枠的な⼈がいるのでは? – Facebookなのに顔認識研究の多くは出てこない • 何かすごいことしてるんじゃ?(と想像してしまいますよね)
  • 53.
    FAIR 53 • メタな分析 – トレンドを創れる研究者が議論してさらに強い ベースラインを作り続ける –オープンソースのコミュニティを牽引 • オープンにすることで情報量も⼊ってくる – 膨⼤なデータ量,豊富な計算リソース – メタな部分を研究者(や運営)が常に考え続ける • メタサーベイについても⼤きく先を⾏っている!
  • 54.
    Max Planck Institutefor Informatics(MPII) 54 • 歩⾏者検知の⽂脈で強いMPII – Prof. Dr. Bernt Shieleグループ • 教授+数名(3⼈?)のグループリーダーで構成 • Ph.D. student, PDを中⼼に合計30名 – CV/UI分野が中⼼ – 歩⾏者検知以外には姿勢推定,Zero-shot学習等で強い – 泥臭い作業を惜しまずに実⾏ • 網羅的な調査研究 • 緻密なモデル改善 • アノテーション付け替え
  • 55.
    MPII 55 • 歩⾏者検知で中⼼的なメンバー – RodrigoBenenson(現在はGoogle) • 歩⾏者検知をリードする中⼼的な存在 • 現在はGoogleでより社会実装に注⼒? • CityScapes Dataset, Pedestrian Detection Survey, 100FPS Pedestrian Detection • http://rodrigob.github.io/
  • 56.
    MPII 56 • 実装が伴った調査研究 – 40+の歩⾏者検出⼿法等を公平な環境で⽐較 •Haar-like/HOGからDEEP特徴まで – 網羅的な調査がMPIIの強さ • 特にBenenson⽒の強みか? R. Benenson, et al. “Ten years of pedestrian detection, what have we learned?,” ECCV 2014 CVRSUAD workshop.
  • 57.
    MPII 57 • 公開データに対して再アノテーション – CaltechPedestrianに対しラベルをクリーンに – Human Baselineも与えた • Humanのエラー率は5.6%だったことから疑問を持ち, 改良ラベルで⾏ったら同エラー率は0.88%となった S. Zhang, et al. “How Far are We from Solving Pedestrian Detection?,” CVPR, 2016. Caltech Pedestrian Benchmarkに含まれる ラベル誤り(左)とボックスのズレ(右) 最先端⼿法と⼈間のベースライン⽐較
  • 58.
    MPII 58 • メタな分析 – 強烈なリーダーがサブドメインを牽引 •MPIIの場合はBenenson⽒が歩⾏者検知分野を牽引 • (研究所のPIはB. Schiele教授) – 泥臭い作業を厭わない • 徹底した実装による⽐較@ECCVWʼ14 • 公開DBに対する再アノテーション@CVPRʼ16 • Human Baselineの付与@CVPRʼ16 – そして現在は企業に移り社会実装(?)
  • 59.
    Preferred Networks(PFN) 59 • PFN –国内最強の研究機関 – Chainer • Chainer CV(画像認識), Chainer MN(分散処理),Optuna (パラメータ調整) • その他,Chainer RL(強化学習) – プライベート⼤規模分散システムを保有 • 512GPUs! – Open Images Challengeにて世界第2位
  • 60.
    PFN 60 • Chainer! – もはや説明不要,国産のDNNフレームワーク –MN, RL, CVも含めて便利(語彙⼒不⾜。。) https://chainer.org/
  • 61.
    PFN 61 • 物体検知への貢献 – GoogleAI Open Images Challenge世界第2位 • 全世界で454チームが参加 – ⾼度な分散処理を実現 • Private Super Computer 512 GPUs • 分散処理⽤Chainer MN – さらに,パラメータ調整⽤コードを開発 • Optuna: のちにオープンソースとして公開 – https://www.preferred-networks.jp/ja/news/pr20180907
  • 62.
    J. Redmon(YOLO著者) 62 • ご存知YOLOシリーズ著者 –物体検知においては最も有名な研究者の⼀⼈ – プレゼン資料,SNS,arXivなどを有効に活⽤ – コードDarkNet(前述)はオープンソースとして公開 –強烈なキャラクター – https://pjreddie.com/
  • 63.
    J. Redmon(YOLO著者) 63 • SNS/arXivを⽤いた論⽂の宣伝! –arXivを(最も?)うまく活⽤している – YOLO9000(真似できるかどうかは置いといて。。。) • コード公開/arXiv論⽂投稿 • Twitterでも効果的に拡散 https://pbs.twimg.com/media/DFnnqn0VwAExuiU.jpg YOLO9000の開発⼒は評価に価するが, CVPRʼ17のポスター(左図)はズルい
  • 64.
    J. Redmon(YOLO著者) 64 • 論⽂を流⾏らせるための戦略? –まずは研究!技術を徹底して育てる • Redmon⽒は特に物体検知に注⼒ – 論⽂執筆(査読者にわからないようネタを仕込む?) • 愛⽝(アラスカンマラミュート)を論⽂の図中に⼊れ込む • CVPRʼ17ポスターで全てが繋がった! – 投稿したらオープンに • arXiv, DarkNet公開/更新, SNS上で拡散 • TED Talkにも登場
  • 65.
    まとめ 65 • 物体検出のトレンド共にメタな部分を調査 – トレンド •Hand-crafted features, R-CNN, One-shot detector, State-of-the-art(SOTA) • 頻出データセット • 有名なコード紹介 – メタサーベイ • FAIR • MPII • PFN • J. Redmon
  • 66.
  • 67.
    【研究テーマや研究の趣味】 • Fashion CultureDataBase (FCDB) • Neural Joking Machine (NJM) • ITS関係 【何かひとこと,今年の抱負など】 • ⾯⽩い⼈間になりたい。 – いろいろな意味で • 時間をうまく使いたい! MyPage/SNS Twitter: @cv2mametch ⾃⼰紹介 写真等 • 美濃⼝宗尊 (みのぐち むねたか) • 東京電機⼤学 M1 知能機械システム研究室 • 産業技術総合研究所RA • cvpaper.challenge,nlpaper.challenge • 出⾝:神奈川県,現在:埼⽟県 • 趣味:Michael Jackson,聖飢魔Ⅱ,玩具 著者1
  • 68.
    著者2 • ⻄島涼太(にしじまりょうた) • 千葉⼤学M1 総合メディア研究室 • 出⾝:千葉県、現在:千葉県 • 趣味:サッカー、ランニング • cvpaper.challengeの活動参加は2回⽬(発表は初) • 研究テーマ:物体検出、物体追跡 • 最近の興味:⽣成モデル全般 【研究テーマや研究の興味】 • ⾃⾝のアウトプットを増やしたい 【何かひとこと,今年の抱負など】 MyPage/SNS Twitter: @ryota7171
  • 69.
    • 研究テーマ:画像認識,動画解析,⼈物⾏動認識,SNS 画像解析,交通予防安全,物流,⾔語&視覚,DB構築 • 最近の興味:3D認識,ファッション画像解析 •論⽂:CVPRx2, ICRAx2, BMVC, ACCV等 MyPage/SNS HP: http://hirokatsukataoka.net/ Twitter: @HirokatuKataoka • 産業技術総合研究所(CVRG/AI Center/AL Lab.)研究員(2016, Apr. ~ 現在) • 東京電機⼤学 訪問研究員(2016, Apr. ~ 現在) • cvpaper.challenge 主宰(2015, May~),nlpaper.challenge HQ(2018, Dec.~) • 茨城県笠間市出⾝,芝浦⼯⼤(05-09),慶應義塾⼤学(09-14),東京⼤(14- 15),⻑距離⾛(フルマラソンBest 3ʼ30),⽔泳(茨城県5位),野球(⾼校~ ⼤学; 海外選抜メンバー),⽝と遊ぶこと • ひとこと:根っからのチャレンジャーです! • cvpaper.challenge: 世界のCV研究者を驚かせる! • nlpaper.challenge: 相乗効果によりNLP/CV分野 を活性化!(私⾃⾝もNLPの知⾒を獲得したい) ⽚岡 裕雄 (かたおか ひろかつ) 【研究テーマや研究の興味】 【何かひとこと,今年の抱負など】 × 双⽅のコミュニティを強く 著者3