MachineLearning
DeepLearning
まとめ
日本語訳
YOLO

【物体検出手法の歴史 : YOLOの紹介】

 本稿は,YOLO【You Only Look Once: Unified, Real-Time Object Detection】,を簡潔に紹介したものです.

 きちんと理解した上でわかりやすく簡潔に記述することを心がけました.

※専門性があると判断した用語については日本語訳せずそのまま記述するか,()の中に元の単語を記述しています.


YOLOの名前の由来

YOLOの名前の由来にもなっているコンセプトは論文中に記載されている以下の文から来ていると言っていいでしょう.


“Humans glance at an image and instantly know what ob- jects are in the image, where they are, and how they inter- act. "

 「人類は画像を一目見て,瞬時にそれが画像の中にある物体が何であるのか,どこにあるのか,どのように相互作用しているのかを理解する.」


もともとYOLOというのは"You only live once”「人生一度きり」の頭文字をとったスラングで,YOLOの著者はこれから名前のヒントを得ているのではと思っています."You Only Look Once"「見るのは一度きり」のような感じでしょうか...つまり,人間のように一目見ただけで物体検出ができるのがYOLOの強みということです.


物体検出手法の歴史

 YOLOの凄さを語るには物体検出手法の歴史を知る必要があります.私は物体検出の歴史には以下の3つの時代があると考えています.

・【sliding window approach時代】:Deformable Parts Models(DPM)

・【region proposal method+deep learning時代】:R-CNN,Fast R-CNN

・【end-to-end時代 】:Faster R-CNN, YOLO, SSD

以下でそれぞれを解説していきます.

※前提として補足しておくと,物体検出では物体らしい領域を見つける「検出」の部分と,見つけた領域に対して何の物体かの判断を行う「識別」の部分があり,これら2つから物体検出が成り立っています.この前提を踏まえて以下の説明を読んでいただくとよりわかりやすいと思います.


【sliding window approach時代】

 Sliding window approachとは以下の図のように画像の左上から右下にかけてウィンドウをスライドしていき,画像のすべての領域をウィンドウで探索し検出していきます.そして逐一,ウィンドウ内の物体に対して識別処理を行い,対象物体であるかの判定を行う手法です.

Qiita


【region proposal method+deep learning時代】

 Region proposal methodとはR-CNNなどで使われている手法で,物体らしさ(Objectness)の高い領域を見つける手法であるSelective Searchなどがそれに当たります.画像中からRegion proposal methodで物体と思われる領域を抽出して,それをdeep neural networkの入力としており,これら2つの組み合わせで物体検出を行っていました.しかしRegion proposal methodで抽出した領域全てをdeep neural networkの入力とするため,かなりの時間がかかる手法でした.

Qiita


【end-to-end時代 】

 End-to-end時代では,前述したregion proposalがdeep neural networkの一つのレイヤーとして組み込まれた物体検出手法が登場しました.つまり,色々な物体を含んだ1枚の画像をdeep neural networkに入力するだけで物体検出が可能となる夢のような手法として注目を集めました.最初から最後までdeep neural networkが処理を行ってくれるという意味でend-to-endな物体検出手法と呼ばれています.有名な文献の中ではFaster R-CNNが初めてこのend-to-endの物体検出手法を実装しました.end-to-endにすることにより物体らしさ(Objectness)の高い領域を抽出する際にもdeep neural networkによる最適化の恩恵が受けられるため,より高速で高精度な検出手法が可能となりました.そして,本稿のメイントピックであるYOLOもこのend-to-end時代の手法です.

Qiita


YOLOとはどんな手法か

 上記の前提を読んでいただいてようやくYOLOとは何かの説明ができます.End-to-end時代の先駆けとなったFaster R-CNNでは,図のようにRegion proposal Networkを通った後に識別(Classification)を行っています.つまり,「検出」の処理の後に「識別」の処理を行うような直列な処理構成になっており,このことが処理速度の遅延を招いているのです.

 そこでYOLOでは「検出」と「識別」を同時に行うことで,この処理時間の遅延を解消しようとしました.


YOLOの処理手順

 ここではYOLOがどのように同時に「検出」と「識別」を行っているのかをアルゴリズムに基づいて解説します.

Qiita

1.入力画像を$S×S$のグリッドセルと呼ばれる領域に分割します.

2.①それぞれのグリッドセルについて$B$個のバウンディングボックス(boundhing box)と信頼度スコア(confidence score)を推測します.信頼度スコアとは,どれくらいボックスが物体を含んでいて,どのくらいの精度でボックスがそれを予測したかというモデルのことです.我々は信頼度スコアを${Pr(Object)*IOU^\truth_\pred}$と定義した.(※IOUとは

上記の式では物体がグリッドセルに存在しなければ信頼度スコアは0になります.

 ②それと同時にそれぞれのグリッドセルは$C$個の物体クラスそれぞれの条件付きクラス確率(conditional class probabilities)である$Pr(Class_i|Object)$を表します.

3.その後,「条件付きクラス確率」と「個々のボックスの信頼度スコア」をそれぞれ掛け合わせて,それぞれのバウンディングボックスの「クラス固有の信頼度スコア(class-specific confidence scores)」を得ることができます.このスコアはボックスに表示されるそのクラスの確率予測されたボックスがある物体にどのくらいフィットしているかをエンコードします.つまりこの信頼度スコアに基づいてどのバウンディングボックスがお目当の物体を検出しているかを判断するわけです.

クラス固有の信頼度スコアの計算

$Pr(Class_i|Object)*Pr(Object)*IOU^\truth_\pred$

このように「検出」と「識別」を同時進行で行なっているわけですね.


YOLOのアドバンテージとディスアドバンテージ

ここでYOLOのアドバンテージとディスアドバンテージを述べておきたいと思います.


アドバンテージ

1.シンプルなネットワーク構成で高速:Titan X GPUを用いて45fps,高速なバージョンであるFast YOLOだと150fps以上.他のリアルタイムシステムの2倍のmAP(mean average precision)を示す.

2.背景と物体の区別がしやすい:Fast R-CNNではRegion proposalで抽出した領域のみのコンテキストしか見れないため背景と判断すべき領域を間違うことがあったが,YOLOは画像全体を見るので、クラス(物体の種類)とその外観に関するコンテキスト情報を暗黙的にエンコード(暗号化)するので背景の間違いが少ない.当時トップの検出手法であったFast R-CNNと比較して,YOLOは半分以下の背景エラーであった.

3.一般化が可能:花などの自然の画像を学習させて,アート作品のような絵の画像でテストした場合,YOLOはDPMやR-CNNよりもはるかに優れている.


ディスアドバンテージ

1.最先端の手法と比較して精度が低い.

2.小さな物体の検出が困難.


【Abstract日本語訳】

最後にAbstractの日本語訳を示して終わりにしたいと思います.

 我々は物体検出のための新しいアプローチであるYOLOを提案する.物体検出における先行研究は検出を行うためにclassifierを再利用(repurpose)する.代わりに,我々は空間的に分離されたbounding boxesと関連するclass probabilitiesへの回帰問題(regression problem)として物体検出を構成する.Single neural networkはある評価においてfull imageからbounding boxesとclass probabilitiesを直接予測します.全体のdetection pipelineがsingle networkなので,検出においてend-to-endで直接最適化することができる.

 我々の統合されたアーキテクチャはかなり速い.我々のbase YOLO modelは45fpsのリアルタイムで画像を処理する.類似のnetworkバージョンであるFast YOLOは他のリアルタイム検出器(detector)の2倍のmAPを誇る一方で,155fpsという驚異的な速さで処理する.最先端の(state-of-the-art)検出システムと比較すると,YOLOはlocalization errorsをより多く発生させるが,背景においてfalse positivesを予測しうる.最終的にYOLOはとても一般的な物体の表現(representations)を学習する.自然画像(natural images)からアート作品などの他の領域(domain)まで一般化した時,YOLOはDPMやR-CNNを含む他の検出手法より優れている.

以上,YOLOを物体検出の時代背景と絡めて紹介しました.本稿ではNetworkなどの解説は行っていないので,そちらの方は別のサイトを参照お願いします.