今回は処理速度の早いYOLO[1]についてです。YOLOは、You Only Look Oneceの略で、画像を入力するとsliding windowsで順次処理することはせず、1回で物体を検出します。精度はややFaster RCNNに劣るものの大幅な処理速度向上(45〜155FPS)を達成していることが最大の特徴です。

それではYOLOの全体像から説明していきたいと思います。YOLOは2018年9月時点でバージョン3までリリースされていますが、この記事では初代のYOLOについてご紹介します。

YOLOの概要

YOLOでは、まず入力画像を縦横448画素にリサイズします。そしてConvolutional networkで物体候補を求め、極大値以外の値を0に抑制し、その後に閾値処理により最終的な物体検出結果を得ます(図1)。

  • YOLOの概要

    図1 YOLOの概要

画像の左上から順番に部分画像を切り出していくsliding windowや, R-CNNで用いられていたRegion proposalのようなアプローチの代わりに、YOLOでは画像をグリッド状のセルに分割します(図2)。図2の例では7×7に分割しています。そしてセルごとに、物体が存在し得る領域の外接矩形と信頼度(図2中央上:Bounding boxes + confidence)、クラス確率(図2中央下:Class probability map)を求めます。そして、物体が存在し得る領域の外接矩形の予測結果と、クラス(物体の種別)の確率マップを統合し最終的な検出結果を得ます(図2右)。

  • グリッドごとの物体検出

    図2 グリッドごとの物体検出

YOLOのネットワーク

YOLOで用いられているディープラーニングのネットワークは図3の通りです。複数のConvolutional layer (Conv. Layer)で入力画像から特徴量を抽出し、最後の全結合層(Conn. Layer)で物体が存在し得る領域の座標、物体種別の確率を計算します。単一のConvolutional Neural Networkのみで一般物体検出が実現できています。

  • YOLOのネットワーク

    図3 YOLOのネットワーク

YOLOは、バージョン2、バージョン3がリリースされています。ソースコードも公開されていて処理が早いため、扱いやすいモデルだと思います。画像からさまざまな物体を検出する課題に取り組まれている方は是非試してみてください。

参考文献

[1] Kiana Ehsani, Hessam Bagherinezhad, Joseph Redmon, Roozbeh Mottaghi, and Ali Farhadi, "You only look once: Unified, real-time object detection." in CVPR2016.

著者プロフィール

樋口未来(ひぐち・みらい)
日立製作所 日立研究所に入社後、自動車向けステレオカメラ、監視カメラの研究開発に従事。2011年から1年間、米国カーネギーメロン大学にて客員研究員としてカメラキャリブレーション技術の研究に携わる。

日立製作所を退職後、2016年6月にグローバルウォーカーズ株式会社を設立し、CTOとして画像/映像コンテンツ×テクノロジーをテーマにコンピュータビジョン、機械学習の研究開発に従事している。また、東京大学大学院博士課程に在学し、一人称視点映像(First-person vision, Egocentric vision)の解析に関する研究を行っている。具体的には、頭部に装着したカメラで撮影した一人称視点映像を用いて、人と人のインタラクション時の非言語コミュニケーション(うなずき等)を観測し、機械学習の枠組みでカメラ装着者がどのような人物かを推定する技術の研究に取り組んでいる。

専門:コンピュータビジョン、機械学習