Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

関西Cvprml勉強会2017.9資料

1,460 views

Published on

YOLO9000を,それまでの物体検出手法との比較という観点でまとめました.だいたいこれで物体検出バブルは終わったと思うので,まとめることに意味があると思う一方,万が一思いも依らない新しいフレームワークが出て来ることを考え,「まとめ」ではなく「まとめ2017」としました.

Published in: Engineering
  • Be the first to comment

関西Cvprml勉強会2017.9資料

  1. 1. CNNによる物体検出まとめ 2017 @第35回関西CVPRML勉強会 ON 2017.9.18 橋本敦史
  2. 2. 自己紹介 • 名前: 橋本敦史 • 2013.3.31 博士(情報学)取得 @京大・美濃研究室 • 専門: パターン認識,画像処理,HCI, マルチメディア処理 • 学会活動: CVIM研究会運営委員,MVE研究会専門委員, CEA研究会幹事など • 2006年度Vulcanus in Europe参加 • ドイツLeica Camera社R&Dで8ヶ月研修 • 料理研究家(CV&PR的な意味で).
  3. 3. 本日私が紹介する内容 • YOLO 9000 • 「2017時点の物体検出まとめ」として,他手法と比較しながら. • (参考)作成段階で類似の資料を発見しました. • https://www.slideshare.net/DeepLearningJP2016/dl- reading-paper20170804pdf • ↑の資料に負けないよう,少し「おまけ☆」を付けました.
  4. 4. 物体検出課題とは? • 静止画の中から,特定のカテゴリの物体を内包する矩形 (Bounding Box: BB)を抽出する課題 • 類似の問題: セマンティックセグメンテーション → 画素毎にカテゴリラベルを 割り振る課題 • 通常,検出対象のカテゴリは事前に「学習」されているこ とが前提となる. Yolo9000の出力例.Athleteなどコンテキスト に基づいたクラス名まで出力→シーン認識的要素まであり. (画像引用元)http://vladlen.info/publications/feature-space- optimization-for-semantic-video-segmentation/
  5. 5. 年表( ) 201720162015 Nov. R-CNN Apr. Fast R-CNN 2013 Dec. SSD June. YOLO Dec. YOLO9000 Month. Arxiv掲載 Month@Conf. Jul@CVPR Oct@ECCV Jul@CVPR Dec@ICCV Dec@NIPS Jul@CVPR June Faster R-CNN 実質4年でここまで来た!
  6. 6. 精度と速さの比較
  7. 7. YOLO9000で採用されたコンセプト 201720162015 Nov. R-CNN Apr. Fast R-CNN 2013 Dec. SSD June. YOLO Jul@CVPR Oct@ECCV Jul@CVPR Dec@ICCV Dec@NIPS Jul@CVPR June Faster R-CNN Anchor Box IOUを回帰で予測して推定結果を選択 Multi-scale feature map, default box (この発表では省略) 矩形として物体検出をする, というフレームワーク ROI Pooling, Dec. YOLO9000
  8. 8. 物体検出のステップ(R-CNNより) 物体候補 領域の検出 領域ごとの物体 特徴の抽出 領域ごとの カテゴリ判定 Selective Search (Superpixel base) CNN (Alexnet) 候補領域 (>2k個)それぞれにCNNを適用→遅い. BBはSelective Searchのみで決まる→いまいち?
  9. 9. 物体検出のステップ(FAST R-CNNより) 物体候補 領域の検出 画像全体から 物体特徴を抽出 領域ごとの カテゴリ判定 Selective Search (Superpixel base) CNN (Alexnet) 画像全体を先にCNNで特徴マップに変換(特徴抽出は1回だけに!) → selective searchによる候補領域(ROI) 毎にPooling→判定! ROI Poolingにより 領域毎に特徴切出
  10. 10. FASTER R-CNN 物体領域候補の検出 画像全体から 物体特徴を抽出 領域毎に カテゴリ判定 +BBを回帰推定 Region Proposal Network 候補領域の検出もネットワークで!! (=RPN) 全てEnd-to-Endで学習 VGG-16 (1つのFeature Mapを出力) ROIpooling+FC 精度は高い!計算もそこそこ速い(VGG-16とRPN各1回+FC300回くらい)
  11. 11. YOLO 領域ごとの 物体特徴の抽出 yolo v1/tiny-yolo モデル Grid毎にBBの座標 &IOUの回帰 IOUが高いと推定されたGridの 言うことを聞く Gridごとの カテゴリ判定 Feature Mapの画素(=Grid)毎に カテゴリ判定 別のアプローチによる高速化: VGG16より計量なモデル, 解像度の粗いSemantic Segmentation+矩形とIOUの推定
  12. 12. YOLO V2/YOLO 9000へ 〜怒涛のENGINEERING〜 https://en.wikipedia.org/wiki/Harder,_Better,_Faster,_Stronger
  13. 13. YOLOの問題点≒YOLO V2での改善点(1/2) • ネットワーク構造に最近の手法を取り入れる→ Batch Normalizationの導入 • 特徴抽出部の事前学習時に入力画像の解像度が低い(224x224) • ImageNetの学習サンプルを解像度(448x448)で10epoch分,追加学習. • 領域の推定精度が悪い • グリッド毎の識別・回帰を止めて,Anchor Box毎に識別・回帰 • Anchor boxは手動ではなく,データ・ドリブンに設定(少ない数x高いIOUを両立す る設定) • 矩形の回帰における無駄な探索を避ける定式化Anchor boxのサイズ(A_w, A_h)によっ て正規化された値を推定. • 左上ではなく,中心位置を推定. • 幅(高さ)はAnchor boxのサイズとかけ離れないよう A_w*exp(t_w) のt_wとして推定.
  14. 14. YOLOの問題点≒YOLO V2での改善点(2/2) • 小さい物体が検出できない(最終層が13x13のfeature map) • 高解像度の特徴を浅い層からのpath throughにより追加 =(26x26x512)の特徴マップを(13x13x2048)に変形し,元の特徴に連結 • Multi Scale Training: Conv層とPooling層のみ→可変サイズなので, 10 batch毎にネットワークの入力サイズを変更(32pix刻み) 注: 448x448 の入力画像だと特徴マップのサイズは14x14になるが,物体が画像の中心付近にあることを考えて, 特徴マップのサイズが奇数(13x13)になるよう,事前学習後は入力サイズを416x416として運用.
  15. 15. YOLO V2 領域ごとの 物体特徴の抽出 darknet-19モデル RPNは使わず事前に厳選したAnchorBox毎に回帰&カテゴリ判定 (YOLOでは13x13の各画素(grid)毎に回帰&カテゴリ判定) 物体領域候補 Box毎にカテゴリ判 定&IOUを回帰&矩 形の回帰 Predifined Anchor Boxes ROIpooling+FC
  16. 16. Channel数は stage毎に2倍 FCは止めてAvg. Pooling を採用 (同じくNINより採用) 間に1x1を挟んで特徴を圧縮 =演算量を減らす (Network in Network: NINから のアイディア) Darknet19 5.58 billion operations VGG16 8.52 billion operations Darknet19の構造 注: Inputは224x224→416x416となる
  17. 17. YOLO V2 からYOLO 9000へ! • ImageNetとCOCOを併用した学習 • 矩形の教師信号: COCOは有り / imageNetはなし • カテゴリ数: COCOは少ない / imageNetは多い • 多すぎるカテゴリに対する木構造のLossの設計 • カテゴリは本質的には階層的(例: 物体→動物→...→犬→シベリアンハスキー) • P(物体|bb),P(動物|物体),.., P(犬|動物),P(シベリアンハスキー|犬) を学習. • 共通の親を持つ「兄弟カテゴリグループ」毎にcross-categorical loss → P(子|親)の学習になる. • 検出の閾値と,カテゴリの確信度の2つのしきい値→「動物」だったり「犬」だったり,直感的な出力. • COCOとImageNetのカテゴリの詳細度を吸収して学習可能
  18. 18. YOLO V2 からYOLO 9000へ! • ImageNetとCOCOを併用した学習 • 矩形の教師信号: COCOは有り / imageNetはなし存在せず • カテゴリ数: COCOは少ない / imageNetは多い • 多すぎるカテゴリに対する木構造のLossの設計 • カテゴリは本質的には階層的(例: 物体→動物→...→犬→シベリアンハスキー) • P(物体|bb),P(動物|物体),.., P(犬|動物),P(シベリアンハスキー|犬) を学習. • 共通の親を持つ「兄弟カテゴリグループ」毎にcross-categorical loss → P(子|親)の学習になる. • 検出の閾値と,カテゴリの確信度の2つのしきい値→「動物」だったり「犬」だったり,直感的な出力. • COCOとImageNetのカテゴリの詳細度を吸収して学習可能 kerasで作りました! https://github.com/AtsushiHashimoto/keras_hierarc hical_prediction
  19. 19. 各種手法の所感 • R-CNN, Fast R-CNNは今時は余り使わない →矩形の教師データがないときは何か使えるかも?? • Faster R-CNN • 一種のデファクトスタンダード.YoloやSSDより遅いのがネック • 研究グループのアクティブさが半端ない(FCN, Mask R-CNN) • SSD • Yolo v2に速度・精度でやや劣るものの,darknetのサポートの薄さから, もうしばらく優位か? • Yolo v2 • メジャーなフレームワークへの取り込みが待たれる (学習済みモデル自体は公開済みなので時間の問題?)
  20. 20. まとめ? • 物体検出課題→YOLO9000で一連の研究は落ち着く?
  21. 21. まとめ? • 物体検出課題→YOLO9000で一連の研究は落ち着く? • Feature Pyramid Network (CVPR2017) • Mask R-CNN (May 2017, arXiv) ←おまけ☆
  22. 22. FEATURE PYRAMID NETWORK FOR OBJECT DETECTION • SIFTにおけるDoGのように,解像度毎の処理をすることが有効な画像処理は多い. • 例: 小さい物体の検出, segmentation • ピラミッド=解像度の異なるFeature Mapの利用 • CNNは階層構造を持つ... しかし... • 解像度が高い層=浅い層=信号レベルの特徴 • そこで,Top-Downの折り返し処理(図) 1. 深い階層(Top)から折り返しTransConv. 2. 各階層のBottom-Upの出力をAdd (1x1convでfilter数をあわせて足し込む) 3. Top-Downの各階層を特徴マップとして利用 Tsung-Yi Lin, Piotr Dollár, Ross Girshick, Kaiming He, Bharath Hariharan, Serge Belongie
  23. 23. FPNによる物体検出の評価 s/m/l は物体サイズ 小さい物体に対して,精度は向上しているが,まだまだ低いようにも思われる... →今後も研究が続く?
  24. 24. MASK R-CNN • BB毎にSemantic Segmentation = Instance Segmentation Kaiming He, Georgia Gkioxari, Piotr Dollár, Ross Girshick
  25. 25. FASTER R-CNNのネットワーク VGG16 ROI pooling Anchor Box生成 グリッド毎の前景らしさ の確率計算 Sliding Window(並列) 重なりを排除 (Non-maximum supression) 上位N個のみ残す (Nは少なめ:300とか) 上位N個のみ残す (Nは大きめ:6000とか) 矩形の推定 カテゴリの推定 https://raw.githubusercontent.com/wiki/mitmul/chainer-faster-rcnn/images/Faster%20R-CNN.png
  26. 26. MASK R-CNNのネットワーク VGG16 ROI pooling Anchor Box生成 グリッド毎の前景らしさ の確率計算 Sliding Window(並列) 重なりを排除 (Non-maximum supression) 上位N個のみ残す (Nは少なめ:300とか) 上位N個のみ残す (Nは大きめ:6000とか) 矩形の推定 カテゴリの推定 https://raw.githubusercontent.com/wiki/mitmul/chainer-faster-rcnn/images/Faster%20R-CNN.png ConvDecovの Semantec Segmentation
  27. 27. MASK R-CNNの適用結果例
  28. 28. MASK R-CNNの精度など(S/M/L)
  29. 29. (今度こそ)まとめ • YOLO9000: • より良く,より速く,より強く,は本当. • Better: 過去の手法のいいところを採用 • Faster: 統計に基づいてAnchor Boxを事前に厳選,Compactで表現力の高いネットワーク • Stronger: BB付きのCOCOと,カテゴリ数が多いImage Netを混在させた上手い学習. • WordNetの階層構造を考慮したLoss関数は色々使えそう. • 今後の物体検出問題の方向性 • Instance Segmentation (Mask R-CNN) • より小さな対象の検出やSegmentation (FPN) • 他は?よりOcclusionに強い手法,物体追跡との融合(動画),など?? • 他のタスクとのさらなる連携 (Image Captioning, Scene Graph Generation, etc.)
  30. 30. 個人的に今後(1,2年?)熱いと思っている技術 1. Message Passing: MRF-likeなモデルの最適化を学習ベースで解く. 1. 例題: Pose Estimation(Open Pose)やScene Graph Generation • 繰り返し回数は固定(ネットワークの形状に含まれる) 2. 時系列データによるSelf-Supervised Learning • 未来/過去の予測によるAuto-encoding的学習[1],フレーム順序入れ替え検出の学習[2] • もうやられてしまったが,実用性・応用範囲は高そう&工夫の余地も多そう. • [1]”Unsupervised Learning of Long-Term Motion Dynamics for Videos” • [21“LSTM Self-Supervision for Detailed Behavior Analysis” 3. CNNとRNNのつなぎ目での重みの伝播をスムーズに. • CVPR2017の手法はちょっとアドホック?: “Semantic Regularization for Recurrent Image Annotation” • できたら,Web上の任意の画像とキャプションの組から学習が可能になる =究極のWebly Supervised Learning?? (今回の紹介内容とは別に)
  31. 31. THANKS!!! @a_hasimoto

×