YOLO(You Only Look Once)は、その名のとおり「画像を一度見るだけ」で物体の位置と種類を同時に予測する物体検出アルゴリズムです。この記事では、グリッド分割による予測の仕組み、バージョンの進化、SSDや2ステージ手法との違いを初心者向けに解説します。

📖 ひと言でいうと

YOLOは、画像全体を一度に処理して、写っている物体の位置(バウンディングボックス)とクラスをまとめて予測する1ステージ型の物体検出アルゴリズムです。例えるなら、部屋の写真を渡されて「まず怪しい場所を一つずつ虫眼鏡で確認する」(従来手法)のではなく、「写真全体をパッと一目見て、机・椅子・猫の場所を一気に指差す」やり方です。この一括処理により、動画のようなリアルタイム処理が可能になりました。

🖼 1枚でわかるYOLO

YOLO — 一度見るだけのリアルタイム物体検出
  • 提案 — 2015年、Joseph Redmonら。You Only Look Onceの略
  • 方式 — 画像全体を一度に処理し、位置とクラスを同時予測(1ステージ)
  • 仕組み — 画像をS×Sグリッドに分割し、各セルがバウンディングボックスと信頼度を予測
  • 強み — 高速でリアルタイム検出向き。エンドツーエンド最適化が可能
  • 弱み — 小さな物体の検出が苦手
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

YOLO(You Only Look Once)は、2015年にJoseph Redmonらによって提案された物体検出アルゴリズムである。従来の物体検出手法は、画像内の複数の領域を個別に解析し、物体の存在を判断していた。これに対し、YOLOは画像全体を一度に処理し、物体の位置とクラスを同時に予測する。このアプローチにより、リアルタイムでの物体検出が可能となった。YOLOの基本的な仕組みは、入力画像をS×Sのグリッドに分割し、各セルが特定の数のバウンディングボックスとその信頼度スコアを予測するというものである。信頼度スコアは、予測されたボックスが物体を含む確率と、そのボックスがどれだけ正確かを示す。この手法により、YOLOは高い検出速度を実現している。初期のYOLOv1から始まり、YOLOv2、YOLOv3といったバージョンアップが行われ、精度と速度の両面での改善が続けられてきた。特にYOLOv2では、バッチ正規化やアンカーボックスの導入により、検出性能が向上した。さらに、YOLOv3では、複数のスケールでの検出や、より複雑なバックボーンネットワークの採用により、精度がさらに向上した。その後も、YOLOv4やYOLOv5などのバージョンが登場し、最新の技術を取り入れた改良が続けられている。これらのバージョンでは、モデルの軽量化や精度の向上が図られており、さまざまな応用分野での利用が進んでいる。YOLOの特徴として、単一のニューラルネットワークで物体検出を行うため、エンドツーエンドでの最適化が可能である点が挙げられる。また、リアルタイムでの処理が可能なため、監視カメラや自動運転車など、即時性が求められる応用にも適している。一方で、YOLOには小さな物体の検出が難しいという課題も指摘されている。これは、畳み込み層を通過する際に小さな物体の特徴が失われやすいためである。この問題に対しては、マルチスケールの特徴抽出や、特定のデータセットでの再学習などの手法が提案されている。

核心は「画像全体を一度に処理し、位置とクラスを同時予測する」こと、そしてその実現手段が「S×Sグリッド分割+各セルによる予測」であることです。速度と引き換えの弱点として小物体検出の難しさもセットで押さえましょう。

🔍 しっかり理解する

グリッド分割による予測の流れ

YOLOは、検出問題を「画像をマス目に区切り、各マスに担当させる」形の1回の回帰問題に落とし込みます。

入力画像
1枚をそのまま入力
S×Sグリッド分割
画像をマス目に区切る
セルごとの予測
各セルがバウンディングボックス・信頼度・クラスを予測
検出結果
重複枠を整理して最終出力

各セルが予測する信頼度スコアは、「そのボックスが物体を含む確率」と「ボックスの位置がどれだけ正確か」を表します。ネットワーク全体が1つなので、入力から出力まで一気通貫(エンドツーエンド)で学習・最適化できる点も強みです。

バージョンの進化

YOLOは改良が重ねられてきたシリーズです。試験対策としては、v2とv3の改良点を押さえておくと安心です。

💡 ポイント
  • YOLOv1 — グリッド分割による同時予測の基本形を確立。
  • YOLOv2 — バッチ正規化と、あらかじめ用意した基準枠(アンカーボックス)の導入で検出性能が向上。
  • YOLOv3 — 複数スケールでの検出と、より複雑なバックボーンネットワークの採用でさらに精度向上。
  • YOLOv4・YOLOv5以降 — 軽量化と精度向上の改良が継続。

2ステージ手法・SSDとの関係

Faster R-CNNなどの2ステージ手法が「候補領域の生成→分類」と二段構えで処理するのに対し、YOLOは候補領域生成を省いて一発で予測する1ステージ手法です。同じ1ステージのSSDとは「高速・同時予測」という思想を共有しますが、SSDがマルチスケールの特徴マップとデフォルトボックスを核とするのに対し、初期YOLOはグリッド分割を核とする点で仕組みが異なります。

💡 具体例で考える

YOLOの真価は「動くもの」を相手にする場面で発揮されます。たとえば自動運転車では、前方カメラの映像から歩行者・車両・信号を毎秒何十フレームも検出し続ける必要があり、1フレームの処理に時間のかかる手法では間に合いません。監視カメラでの人物・侵入検知や、ドローンからの物体追跡、スポーツ映像での選手・ボールのトラッキングなども、YOLO系の高速検出が使われる典型例です。

一方、弱点が現れる例として、空撮画像から小さく写る車を数えるようなタスクがあります。畳み込み層を通過するうちに小さな物体の特徴は失われやすく、検出漏れが起きがちです。これにはマルチスケールの特徴抽出や、対象データセットでの再学習といった対策が取られます。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • 「YOLOは2ステージ手法」は誤り — YOLOは候補領域生成のステップを持たない1ステージ手法です。2ステージはR-CNN系(Fast/Faster R-CNN)です。
  • SSDとの混同 — どちらも1ステージ・高速・同時予測ですが、「S×Sグリッドに分割し各セルが予測」ときたらYOLO、「マルチスケール特徴マップ+デフォルトボックス」ときたらSSDです。
  • 画像分類との混同 — YOLOの出力は「何が写っているか」だけでなく「どこにあるか(バウンディングボックス)」を含む物体検出です。
  • 「アンカーボックスは最初からあった」は誤り — アンカーボックスはYOLOv2で導入された改良点です。v1はグリッドベースの直接予測でした。

📝 試験でのポイント

💡 ポイント
  • 「画像全体を一度に処理し、物体の位置とクラスを同時に予測する」「You Only Look Once」という説明からYOLOを選ばせる出題が想定されます。
  • 「S×Sのグリッドに分割し、各セルがバウンディングボックスと信頼度スコアを予測する」という仕組みの記述はYOLO固有の識別ポイントです。
  • 提案者Joseph Redmon・2015年、YOLOv2(バッチ正規化・アンカーボックス)、YOLOv3(マルチスケール検出)の対応関係を整理しておきましょう。
  • 課題「小さな物体の検出が難しい」とその理由(畳み込みで小物体の特徴が失われやすい)もセットで問われる可能性があります。

📚 まとめ

💡 ポイント
  • YOLOは2015年にJoseph Redmonらが提案した、画像全体を一度に処理して位置とクラスを同時予測する物体検出アルゴリズムです。
  • 入力画像をS×Sのグリッドに分割し、各セルがバウンディングボックスと信頼度スコアを予測します。
  • 単一ネットワークによるエンドツーエンド最適化と高速性が強みで、監視カメラや自動運転など即時性が求められる用途に適します。
  • 弱点は小さな物体の検出で、v2以降のバージョンアップで精度と速度の改良が続けられてきました。