post Image
物体検出アルゴリズムSSDを読解する part1

はじめに

物体検出アルゴリズムを勉強する過程でSSDの存在を知り,その仕組みについて手元の教科書に記載がなかったので,出典元の論文SSD:Single Shot MultiBox Detector(2016)を読解することにしました.初学者の私による読解ですので内容に誤りがあるかもしれません.何か問題がありましたらご指摘ください.なお特に断りのない限り,記事中の図表は前述の論文から引用したものになります.

Abstract.

要旨(Abstract)ではSSDについて以下のような説明がされていました.

  • SSDは画像中の物体を単一のディープニューラルネットワークで検出する.

  • 画像中の物体を囲む長方形の領域──バウンディングボックスを,それぞれが別々の縮尺およびアスペクト比をとるデフォルトボックスの集合で離散化する.

  • 「各カテゴリの物体が実際にボックス内に存在する可能性を示すスコア」を各デフォルトボックスごとに算出し,(このスコアを最適化することで)より物体の形状をなぞるようデフォルトボックスの形状を調整する.

  • それに加えて,さまざまな大きさの物体に対応するために,解像度の異なる複数の特徴マップを用いて畳み込みをおこなう.

  • SSDではすべての訓練過程を単一のネットワークにカプセル化しておこなうので,R-CNNのようにネットワークの前段階で物体が存在する領域候補を抽出したり,それをリサンプリングしたりする過程(Object Proposal)は排除されている.

  • そのためSSDは物体検出コンポーネントを必要とするシステムへの組み込みが容易であり,モデルの訓練を容易におこなえる.

  • PASCAL VOC,COCOやILSVRCなどのコンテストで,SSDはObject Proposalを必要とする方法と精度で競合し,しかもはるかに処理速度が速かった.またVOC2007のデータセットでは最先端のFaster R-CNNモデルよりも精度で優れていた.小さい画像についても,ほかの単一のネットワークを用いる方法に比べて精度においてはるかに優れていた.

用語

バウンディングボックス
画像中の物体を囲む長方形の領域のこと.
特徴マップ
特徴マップは「線形フィルターで入力画像を畳み込み,バイアス項を加えて非線形フィルタを適用することによって得られる」

参考:Details and Notation
R-CNN
R-CNNは,まず画像をCNN部分に入力する前に,画像中の物体が写っている領域の候補を抽出し,抽出した領域の大きさを揃えてから(リサンプリング),領域ごとに入力する.CNN部分は領域ごとに特徴量を計算し,被写体を分類する.

参考:R-CNNの原理とここ数年の流れ

1 Introduction

Introductionでは,おもにR-CNNのような従来の物体検出アルゴリズムに対してSSDがどのように改善されているかについての説明がなされていました.

  • バウンディングボックスの候補の抽出と,それに続くピクセルや特徴のリサンプリングの段階を排除したことで,処理速度および精度が改善した.

  • 物体のカテゴリとバウンディングボックスの位置のオフセットを予測するために小さい畳み込みフィルタを使用し,および検出のアスペクト比ごとに別々のフィルタを使用し,さまざまな大きさの物体を検出できるよう,それらのフィルタをネットワークの後半段階で複数の特徴マップに適用したことで,解像度の低い画像の検出における処理速度および精度が改善した.

以下は論文の著者によるIntroductionの要約の意訳になります.

  • SSDは,YOLOのような最先端の検出器よりも高速かつ正確で,Faster R-CNNのような物体が写っている領域の候補を抽出してプーリングするタイプの検出器と同等の精度をもつ.

  • SSDの核心は,特徴マップに適応された小さな畳み込みフィルタを用いた『デフォルトボックスのカテゴリスコア』と『デフォルトボックスのオフセット』の予測にある.

  • 高い精度を得るために,異なる縮尺の特徴マップから異なる縮尺の予測を出力し,アスペクト比ごとに別々に予測した.

  • これらの設計の特徴は,シンプルなエンドツーエンドの訓練過程と,(たとえ低画質の画像であったとしても)高い精度をもたらし,さらに処理速度と精度のトレードオフを改善した.

  • 処理時間と精度に関する分析を含む,様々な画像サイズでのPASCAL VOC,COCOおよびILSVRCを用いた実験と,他の最先端の手法との比較.

用語

YOLO
6つの畳み込み層と2つの全結合層で構成された,SSD同様単一のニューラルネットワークによる検出器.
参考:You Only Look Once: Unified, Real-Time Object Detection

2 The Single Shot Detector (SSD)

物体検出アルゴリズムSSDを読解する part2


『 機械学習 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。