
YOLO?R-CNN?物体検出アルゴリズムの違いと進化を解説
2024/10/04
近年、物体検出技術は驚異的な進化を遂げており、外観検査の自動化をはじめとして、自動運転や監視システム、医療診断など幅広い分野での利用が進んでいます。物体検出とは、画像や動画に含まれる人や物(オブジェクト)を識別し、その位置の特定を行う技術です。物体検出と一口に言っても、その背後にはさまざまな検出方法(アルゴリズム)が存在し、それぞれが異なるアプローチで問題に取り組んでいます。
この記事では、特に注目されている代表的な物体検出アルゴリズムであるYOLOを中心に、それぞれの特徴や進化について解説します。初心者でも簡単に理解できるように、各アルゴリズムの違いを簡潔に説明し、どのように発展してきたのかをわかりやすく紹介いたします。物体検出の技術的背景を知ることで、物体検出を活用した新たな課題解決や、目的に応じた最適な手法の選択に役立てていただければ幸いです。

古典的手法による物体検出
ディープラーニングが登場する以前から使用されてきた画像処理技術を基盤とした手法です。物体検出では「画像内の特徴を抽出→特徴を元に物体を識別」という流れが基本です。古典的手法では、特徴量の抽出を決まった計算式を用いて行います。近年ではディープラーニングを用いた物体検出が主流ですが、古典的手法による物体検出にもメリットが存在します。
GPUが不要
ディープラーニングでは、実際に学習・推論(AIが画像を見てどこに何があるのかを判断すること)を行う際にGPUを用いる必要があります。一方、古典的手法ではGPUは必要なく、一般的なPCに標準搭載されているCPUのみを用いて、数秒~数分程度の処理で完了します。
学習が不要
古典的手法では物体検出を行う前に学習を必要としない場合が多いです。そのため、一般的に学習において必要とされる大量の画像データの準備もいりません。
解釈のしやすさ
ディープラーニングでは「なぜAIがそう判断したのか?」を理解しにくい場合が多々あります。それに対して、古典的手法では決まった数式で画像から特徴の抽出を行うため、アルゴリズム自体の説明可能性が高いです。
軽量で実装が容易
ディープラーニングではその計算のために高い処理能力を必要としますが、古典的手法ではそこまで高い処理能力を求められることはなく、計算能力の低いデバイスにも搭載することができます。
それでは、古典的手法による主要なアルゴリズムを3つ紹介します。
SIFT
SIFT(Scale-Invariant Feature Transform:スケール不変特徴変換)は、1999年に提案された手法で、主に物体認識や一致する画像の探索のために使用されていました。SIFTの最大の特徴は、サイズ(スケール)違いや回転に対して影響を受けない特徴を抽出できる点です。このため、異なる大きさ・角度で撮影された画像でも同じ物体を認識することが可能です。内部的には以下のような手順で処理が行われます。
ガウシアンフィルタによるノイズ除去
ガウシアンフィルタとは、画像に「ぼかし」をかける手法の一種です。ぼかしをかけることで画像に含まれる細かなノイズを除去できます。強いぼかしをかけることで画像全体の特徴を、弱いぼかしをかけることで細かい部分の特徴を強調することができるため、異なる強度のぼかしをかけた画像を複数枚作成します。ぼかしをかけた画像間で差分を取る
1で作成した画像間で差分を取り、差分画像を作ります。この差分画像を解析し、ぼかしを強めたことにより最も変化した部分を重要な特徴(キーポイント)として記録します。キーポイント周辺の勾配を見る
画像における勾配とは、周辺との輝度の違いの大きさのことです。輝度は色の明るさのことで、つまり画像が白っぽいのか黒っぽいのかを表す数値です。周辺と見比べて急に明るくまたは暗くなっていれば勾配が大きく、あまり変化がなければ勾配は小さいと考えます。8方向のうち、どちらの方向にどれくらい明るくなっているのかを各キーポイントで記録し、これを特徴として物体識別を行います。サイズが変化しても勾配は変化せず、また回転したり角度が変わった場合でも最も強い勾配に向きを合わせることで、一致しているかどうかがわかります。
メリット
対象物のサイズや向きの変化に対応可能
後に説明する二つの手法よりも計算は軽い
デメリット
光の当たり方が変わるような撮影環境には不向き
HOG
HOG(Histogram of Oriented Gradients)は、2005年に提案された手法で、主に歩行者検出などで用いられていました。HOGの特徴は、画像内のエッジ方向の変化に基づいて特徴量を抽出する点です。物体の輪郭や形状を捉えるのに優れていますが、回転やサイズ変更にはあまり強くありません。内部的には以下のような手順で処理が行われます。
勾配を求める
画像を全体をセルと呼ばれる適当な大きさの四角形で分割し、その中で勾配を求めていきます。全てのセルに対してこの操作を行うことで、エッジ(物と物との境界線)がどこにあるのかを明確にします。ブロック内で正規化する
正規化とは、ばらつきの大きいデータを一定の範囲(例えば、0~1の範囲など)に収めるための手法です。ブロックはあるセルと周囲8セルの塊を意味しており、ブロック内で正規化を行うことでエッジをより強調できるようになります。
メリット
光の当たり方による色の変化に対応可能
デメリット
計算は比較的重く、リアルタイム処理には不向き
大きな変化を伴う回転やサイズ変更には不向き
DPM
DPM(Deformable Parts Model)は、2008年に提案された手法です。物体を複数のパーツ(部分)に分割して捉え、それぞれのパーツが多少動いたり変形したりしても物体を検出できるという特徴を持ちます。特に、人間の体のように可動部分が多い物体に対して有効です。ただし、DPMはディープラーニングほどの複雑な構造ではありませんが、学習を行う必要があります。以下が処理の手順です。
HOG特徴量の計算
画像全体から、前節で紹介したHOG特徴量を計算します。HOG特徴量は、画像中のエッジや線の方向性を捉えるもので、物体の形状や輪郭を表現するのに適しています。物体のパーツモデルの構築・学習
物体を全体的な特徴を捉えるルートフィルタと、詳細な部分を捉える複数のパーツフィルタに分解します。これらのフィルタは、学習データから機械学習アルゴリズムを用いて最適な特徴を学習します。パーツの検出と変形の許容
各パーツフィルタを画像上で適用し、最も一致する位置を探します。このとき、パーツは少し位置がずれたり形状が変形しても良いように設計されています。ただし、変形が大きくなるとペナルティが課せられます。スコアの計算
ルートフィルタとパーツフィルタの一致度(スコア)を計算し、3. の工程でのパーツの変形ペナルティを考慮して全体のスコアを算出します。これにより、物体が画像内のどの位置にあるかを特定します。物体検出
スコアが一定の閾値を超える場合、その位置に物体が存在すると判断します。
メリット
対象物の部分的な隠れや変形に強い
サイズや姿勢の変化にも対応可能
デメリット
計算量が多く、リアルタイム処理には不向き
学習や実装が複雑で、パラメータ調整が難しい。

ディープラーニングを用いた物体検出
近年、ディープラーニングの技術革新により、物体検出の分野は劇的な進化を遂げています。ディープラーニングによる物体検出は、古典的手法と比べて以下のような優れた特徴を持っています。
高い検出精度
ディープラーニングモデルは、大量のデータを学習することで、微細な特徴や複雑なパターンを捉えることができます。これにより、照明条件や背景の変化、物体の部分的な隠れなど、困難な状況下でも高い検出精度を維持できます。特に、最新のアルゴリズムでは、人間の目を超える精度で物体を識別することも可能と言われています。
高い汎用性
ディープラーニングモデルは、新しいデータや異なるタスクにも柔軟に適応できます。再学習(ファインチューニング)を行うことで、別の種類の物体や環境にも対応可能です。これにより、産業、医療、農業など、さまざまな分野での活用が可能となっています。
AIが特徴を学習
従来の古典的手法では、人間が手動で特徴量を設計・抽出する必要がありました。しかし、ディープラーニングでは、AI自身がデータから最適な特徴を自動的に学習します。これにより、人間の主観やバイアスを排除し、より客観的で効率的なモデル構築が可能となります。
リアルタイム処理
ハードウェアの進化とアルゴリズムの最適化により、ディープラーニングモデルはリアルタイムでの物体検出が可能になっています。これは、自動運転やドローン制御、リアルタイム監視システムなど、即時の判断が求められる状況において非常に重要な要素です。
複数オブジェクトの同時検出
ディープラーニング手法は、一度の処理で複数の物体を同時に検出・分類できます。これにより、混雑した環境や複雑なシーンでも効率的に情報を取得し、多角的な分析や判断が可能となります。
それでは、ディープラーニングを用いた主要なアルゴリズムを5つ紹介します。
R-CNNファミリー
R-CNN(Regions with Convolutional Neural Networks)ファミリーは、2014年にRoss Girshickらによって提案された物体検出アルゴリズムの系列です。R-CNN、Fast R-CNN、Faster R-CNN、そしてMask R-CNNといったバージョンがあり、それぞれが計算効率や検出精度の向上を目指して改良されています。これらの手法は、「物体があると考えられる領域の候補を列挙→物体が何であるかを分類」という二段階に分かれたアプローチを特徴としています。
物体候補領域の生成
R-CNNではSelective Searchという、画像を小さな領域に分割して色や勾配などの類似性に基づいてまとめていく手法を用いて、画像から数千の物体候補領域を抽出します。Faster R-CNNではRPN(Region Proposal Network)と呼ばれる仕組みが導入され、より高速に物体の種類と位置を識別できるようになりました。
CNN(畳み込みニューラルネットワーク)を用いた特徴量抽出
CNNは畳み込み層、プーリング層と呼ばれる二つの層が特徴的なニューラルネットワークです。畳み込み層では画像の一部分を順番に覗いていき、局所的な特徴を抽出している層です。また、プーリング層ではその抽出した特徴の中から特に大事な部分のみを選択する層です。これら二つの層により、抽象的な特徴を認識することが可能とされています。インスタンス・セグメンテーション
Mask R-CNNでは、インスタンス・セグメンテーションと呼ばれる、物体の輪郭をピクセル単位で予測するマスク予測を追加しています。これにより、物体検出を高精度なものにしています。
メリット
高い検出精度を持ち、複雑な画像でも正確に物体を検出可能。
デメリット
二段階の処理で計算量が多く、リアルタイム処理には不向き。
YOLOシリーズ
YOLO(You Only Look Once)シリーズは、2016年にJoseph Redmonらによって初めて提案されたリアルタイム物体検出アルゴリズムです。YOLOは画像全体を一度だけ処理して「物体が何であるか&どこにあるか」を同時に予測するというシンプルかつ高速なアプローチを特徴としています。その後、かなりの速さでバージョンアップが行われており、精度と速度の両面で継続的な改良が加えられています。2024年10月1日時点ではYOLOv10が公開、またYOLOv11のリリースが発表されています。以下に、特徴的な処理を紹介します。
単一ネットワーク
YOLOシリーズは、単一のニューラルネットワークを用いて画像全体を処理しており、物体があると考えられる領域の生成と物体の分類を一体化し、効率的な計算を実現しています。グリッドベースの予測
入力画像を細かいグリッドセルに分割し、各セルが「物体の存在確率、物体の位置情報、その物体が何であるか」を予測します。これにより、画像全体を網羅的に解析できます。高速な推論速度
画像を一度だけ処理する設計と、モデルの軽量化・効率化により、高いフレームレートでのリアルタイム物体検出を達成しています。
メリット
リアルタイム処理が可能
シンプルなモデル構造
複数の物体の同時検出が可能
デメリット
グリッドセルベースのため、位置の精度に限界あり
SSD
SSD(Single Shot MultiBox Detector)は、2016年にWei Liuらによって提案された物体検出アルゴリズムで、YOLOと同様に単一のニューラルネットワークで「物体が何であるか&どこにあるか」を同時に予測します。SSDの特徴は、マルチスケール特徴マップを利用して、様々なサイズの物体を検出できる点にあります。
マルチスケール特徴マップの使用
CNN内の異なる層から複数の特徴量を取り出し、それぞれで物体の検出を行います。CNNでは層が深くなるにつれて抽象度が上がっていくため、浅い層から取り出されたものは入力された画像への解像度が高く、小さな物体の検出に適しています。一方、深い層から取り出されたものは画像への解像度が低く、大きな物体の検出に適しています。デフォルトボックスの設定
事前に様々なサイズのデフォルトボックス(YOLOではアンカーボックスとも呼ばれます)と呼ばれる枠が設定されており、物体の大きさに合わせて使い分けることで、ピクセル単位ほどの計算量も必要とせず、ある程度高精度な検出が可能です。単一ネットワーク
YOLOと同様単一ネットワークとなっており、R-CNNのような二段階に分かれたネットワークよりも高速に動作します。
メリット
単一のネットワークで処理を行うため、リアルタイムでの物体検出が可能
マルチスケール特徴マップの使用により、小さな物体の検出精度も向上
モデルが比較的軽量
デメリット
密集した物体や、デフォルトボックスでカバーしきれないような縦長・横長の物体の検出が難しい
DETR
DETR(End-to-End Object DEtection with TRansformers)は、2020年にFacebook AI Researchによって提案された物体検出アルゴリズムです。Transformerアーキテクチャを物体検出タスクに適用した初の手法で、YOLOなどで用いられているアンカーボックスや複雑な後処理が不要になっています。Transformerは、もともと自然言語処理で広く用いられているアルゴリズムで、自己注意機構と呼ばれる、入力データの各要素が他の要素とどの程度関連しているのかを計算する仕組みを用いています。小さな物体の検出精度に課題がありましたが、Deformable DETRなど後続の手法で改善されています。
Transformerの採用
DETRはCNNで画像を特徴量に変換し、それをTransformerに入力することで、特徴量から画像内の物体が「何であるか&どこにあるか」を判断しています。オブジェクトクエリ
Transformerには自己注意機構を用いた学習をするための形に変換するエンコーダと、人間が知覚・処理しやすい形に変換するデコーダの機能を備えています。1つの物体を予測する役割を持つ、オブジェクトクエリと呼ばれるものがデコーダに固定数入力されているため、オブジェクトクエリの数だけ予測が出力され、学習によってそのオブジェクトクエリが検出したい物体かそうでないかに分けられていきます。一対一のマッチング
学習時、画像に実際に含まれている物体それぞれに対して、一つの結果のみを出力するようになっています。これにより重複のない予測が可能になっています。またこれにより、重複を排除するために必要だった後処理が不要となっています。
メリット
複雑な事前設定や後処理が不要
シンプルな構造で、モデルの解析や出力結果の解釈がしやすい
自己注意機構により、複雑な画像でも関係性を学習して検出することが可能
デメリット
計算コストが高く、学習・推論時間がかかる
EfficientDet
EfficientDetは、2020年にGoogle Brainチームによって提案された物体検出アルゴリズムで、効率性(Efficiency)と高い検出精度を両立することを目指しています。EfficientDetは、EfficientNetというネットワークと、BiFPN(Bi-directional Feature Pyramid Network)という新しいネットワークを組み合わせています。また、モデルサイズをバランスよく小さくしたり大きくしたりできる複合スケーリング手法を採用し、様々なリソース条件下で最適な性能を発揮できるように設計されています。
EfficientNetの導入
EfficientNetは、モデルの深さ、幅、解像度をバランスよく調整することで、少ないパラメータ数で高い精度を達成したCNNモデルです。BiFPNの導入
BiFPNはSSDと同じく、異なる層から複数の特徴量を取り出しますが、さらに取り出した特徴量を一つの特徴量として混ぜてしまうことで、小さな物体・大きな物体どちらも検出できるようにしています。複合スケーリング
モデルのサイズを調整する際に、モデルの深さ、幅、解像度をまとめて同じように変化させることで、小型デバイスに対応する小さなモデルや精度重視の大きなモデルなどを自由に調整可能です。
メリット
モデルサイズが柔軟である
高い検出精度で、かつ学習や推論も比較的高速
デメリット
アルゴリズムの理解や実装に時間がかかり、適切な学習が難しい
大きなモデルになると学習・推論に時間がかかる
まとめ
物体検出アルゴリズムの違いをなるべく抽象的に理解できるように紹介していきました。日々新たなモデル・アルゴリズムが考案されており、この記事のみで網羅しきれているわけではありませんが、理解の一助になっていれば幸いです。
TechSword Visionでは、YOLOシリーズの高いリアルタイム処理精度を保ちつつ、「物体の位置」と「物体の種類」を別々に認識することで検出精度向上を図っているYOLOXをベースとした学習・推論を提供しております。分かりやすいユーザーインターフェースと専門知識を持ったエンジニアがサポートいたしますので、「AI検査を導入してみたいけど、正直物体検知とかよく分からない…。」といった方も安心してお使いいただけます。
弊社サービスにご興味がある場合は、以下のリンクから紹介資料をご請求ください。
また、具体的な導入事例や導入後の流れについても、ご希望に応じて説明させて頂きます。ぜひお気軽にお問い合わせください。

