物体検出はコンピュータ・ビジョンで使われる技術である。画像内の関心領域を特定し、画像分類器で分類する。画像には、異なるオブジェクトを指す複数の関心領域が含まれることがある。物体検出アルゴリズムに機械学習やディープラーニングを活用することで、有意義な結果が得られる。物体検出の目的は、一瞬のうちに興味のある物体を認識し、位置を特定する知能を再現することである。
一般的なディープラーニングのアプローチでは、R-CNNやYOLOv2のような畳み込みニューラルネットワーク(CNN)を使用します。ディープラーニングを使った物体検出を始めるには、カスタム物体検出器を作成してトレーニングするか、事前にトレーニングされた物体検出器を使用します。
YOLOとは?
YOLO(You Only Look Once)アルゴリズムは、統一されたエンドツーエンドのニューラルネットワークを採用することで他とは一線を画す、物体検出への画期的なアプローチを導入しました。このネットワークは、バウンディングボックスとクラス確率を同時に予測し、分類器を検出タスクに適応させる従来の手法とは異なる。YOLOの革新的な戦略により、YOLOは他の リアルタイム物体検出 システムを凌駕し、当時としては比類のない結果を達成した。
Faster RCNNのような手法は、まずRegion Proposal Networkによって潜在的な関心領域を生成し、次にそれらの領域を個別に分類するが、YOLOはそのプロセスを効率化する。YOLOは検出と分類の両方に1つの完全連結レイヤーを活用するため、同じ画像に対して何度も繰り返す必要がない。この効率性は、結果を得るために数回のパスを必要とするRegion Proposal Networkベースの技術とは対照的である。
2015年に発表されて以来、YOLOは新たな反復によって一連の機能強化が行われてきた。各バージョンは、前バージョンの成功に磨きをかけ、その上に構築することを目的としており、物体検出の主要なフレームワークとしてのYOLOの地位をさらに強固なものにしている。
YOLOの仕組み
YOLO(You Only Look Once)アルゴリズムは、合理化された深層畳み込みニューラルネットワークを通して画像を処理し、中の物体を識別します。最初に、このモデルは、平均プーリングと完全接続層を一時的に組み込むことによって、ImageNetで事前に訓練された最初の20畳み込み層を取ります。このアプローチは先行研究に基づくもので、事前に訓練されたネットワークに追加の畳み込み層と連結層を追加することで、その性能を強化できることを示唆している。最終段階では、YOLOのネットワークは完全連結層を利用し、クラス確率とバウンディングボックスの座標を同時に決定する。
YOLOのユニークな処理方法では、入力画像をS×Sのグリッドに分割する。各グリッドセルは、その境界内に中心がある物体の検出を担当する。各グリッドセルについて、モデルは対応する信頼度スコアとともにB個のバウンディングボックスを予測する。これらのスコアは、ボックス内にオブジェクトが存在することに対するモデルの確信度と、ボックスの配置精度を示す。
トレーニング中、YOLOは、オブジェクトごとに1つのバウンディング・ボックス予測子のみが割り当てられることを保証し、どの予測子が現在グランド・トゥルースとの最も高いIntersection Over Union (IOU)を示すかに基づいて選択されます。この割り当ては予測子間の特殊化を促進し、予測子が特定のサイズ、形状、またはクラスのオブジェクトを識別することに熟達することを可能にし、それによってモデルの全体的な想起を向上させます。
YOLOの重要なテクニックは、非最大抑制(NMS)である。重要な後処理として、NMSは冗長または不正確なバウンディングボックスを除去することにより、モデルの精度と効率を高めます。多くの場合、1つのオブジェクトに対して複数のボックスが予測され、場合によっては重なったりわずかにずれたりしながら、すべてが同じ実体を表しています。NMSは、各オブジェクトに対して最も正確なバウンディングボックスを選択することで、この問題を解決し、検出された各オブジェクトが出力において一度だけ正確に表現されることを保証します。
YOLOまたはYOLOv1
YOLOの最初のバージョンは、毎秒45フレームでリアルタイムに物体を効率的に認識する驚くべき能力を持っていた。単一の畳み込みネットワークが、複数のバウンディングボックスをクラス確率とともに予測した。YOLOは、クラスと画像の外観に関する文脈情報を符号化する能力により、Fast R-CNNと比較して背景エラーの数が半分以下であった。YOLOV1の画像はS×Sのグリッドに分割され、各グリッドからB個のバウンディング・ボックス(x、y、w、h、confidenceを含む5つの予測値)とその信頼スコアが生成される。 信頼度スコアは、ボックス内のオブジェクトの存在と、予測されたバウンディング・ボックスの精度の両方に関するモデルの確信度を示します。
YOLOV1には限界があります。それは、YOLOアーキテクチャの各グリッドが単一オブジェクト検出専用に設計されているため、画像グループ内の小さな画像を検出できないことです。また、特異な形状を検出することもできない。また、検出性能を推定する損失関数は、小さなバウンディングボックスと大きなバウンディングボックスの両方のエラーに同じペナルティを適用するため、不正確な位置特定につながる。
YOLOv2 (YOLO9000)
YOLOアルゴリズムの第2バージョンは、もともとYOLOv1よりも高速で高精度であった。 YOLOv2は2016年に作成され、新しいアーキテクチャとしてDarknet-19を使用した。バッチ正規化レイヤーにより、mAP(平均平均精度)が2%向上した。YOLOv2は224×224の代わりに448×448の高解像度を使用した。ImageNetデータで10エポック学習後、精度は4%mAP向上した。アーキテクチャは24の畳み込み層と2つの連結層で構成されている。YOLOv2はアンカーボックスを使って畳み込み層を接続し、モデルの再現性を7%向上させた。YOLOv2によるアンカーボックスは、k=5のk-means次元クラスタリングを用いた。きめ細かい特徴により、モデルの性能が1%向上した。
YOLOv2は、大きな物体の検出に適した13×13の特徴マップを生成する。しかし、より小さな物体の検出を強化するために、26x26x512の特徴マップを13x13x2048の特徴マップに変換し、それを元の特徴とマージすることでアーキテクチャを調整することができる。
YOLOv3
Joseph RedmonとAli Farhadiは、2018年後半にYOLOバージョンを作成した。YOLOv3は、53層の畳み込み層からなるDarknet-53 バックボーンを使用した。これは競合バックボーンであるResNet-101やResNet-152よりもはるかに強力だった。YOLOv3はmAPとIOU(intersection over union)値の精度が高い。これは 物体らしさのより良いバウンディングボックス予測 を持っている。YOLOv2で使われたSoftmaxの代わりに、独立ロジスティック分類器を使い、バウンディングボックスのクラスを正確に予測します。YOLOv3は、異なるスケールでより正確な予測を行い、入力内の各位置に対して異なるスケールで3つの予測を行います。この戦略により、きめ細かく、意味的に有益な、より質の高い出力画像が生成される。
YOLOv4:高速かつ正確な物体検出
YOLOv4は、プロダクションシステム用に設計され、並列計算に最適化されています。CSPDarknet53を利用した29の畳み込みレイヤーで構成されています。YOLOv4は、3×3フィルターで約2,760万パラメータを持つ。YOLOv3では、より優れた物体検出のために、SPPとPANetが追加された。SPP(Spatial Pyramid Pooling)ブロックは、特に受容野を拡大し、最も適切な文脈的特徴を分離し、ネットワークの速度を変えずに維持する。PANetは、異なる検出レベルからのパラメータ集約に使用される。
YOLOv4のバックボーンには、VGG、ResNet、ResNeXt、またはDenseNetを含む複数のモデルを使用することができる。検出器のネックコンポーネントは、様々なステージからの特徴マップを集約し、通常、複数のボトムアップおよびトップダウン経路を特徴とする。一方、ヘッドコンポーネントは、最終的なオブジェクトの検出と分類を実行します。
YOLOv5
YOLOv5は2022年6月にGlenn Jocherによってリリースされた。アーキテクチャのバックボーンとしてCSPDarknet53を使用している。モデル・サイズはYOLOv5s(最小)、YOLOv5x(最大)、YOLOv5n、YOLOv5m、YOLOv5lの5種類。これはEfficientDetアーキテクチャ、アンカーボックス、SPP、CloU損失関数を採用し、効率化と性能向上を図った。対応する5つの大型バージョンには、YOLOv5x6、YOLOv516、YOLOv5m6、YOLOv5s6、YOLOv5n6がある。
YOLOv5のアーキテクチャーにおける重要な強化点は、フォーカス・レイヤーの組み込みである。これは、YOLOv3の初期3レイヤーを1レイヤーに置き換えることにより、モデルを合理化するものである。この変更により、モデルの複雑さとパラメータ数が減少するだけでなく、平均平均精度(mAP)に実質的な影響を与えることなく、双方向の処理速度が向上しました。
モデルの汎化能力とオーバーフィッティングの低減能力は、様々なデータ増強技術を用いて改善される。モザイク補強は、物体検出のために4つの学習画像を組み合わせて、物体のスケールや平行移動をよりうまく扱えるようにします。コピーペースト補強は、画像からランダムなパッチをコピーし、ランダムに選ばれた別の画像に貼り付けることで、新しい学習サンプルを効率的に生成します。HSVオーグメンテーションは、画像の色相、彩度、値を変更します。
YOLOv6 (MT-YOLOv6)
YOLOv6は、中国の電子商取引企業Meituanによって2022年6月に発表された。COCOデータセットのベンチマークで、最先端の性能を打ち立てたとしている。この物体検出器は、速度と精度のバランスが際立っている。YOLOv6は、COCOデータセットの精度を高めるために、バックボーンとネックデザインを改良した双方向連結(BiC)モジュールを実装している。
YOLOv6は、推論効率を維持しながら、アンカーベースとアンカーフリーのアプローチの長所を併せ持つアンカー支援学習(AAT)戦略を特徴としている。さらに、バックボーンとネックの両方を深くすることでアーキテクチャを強化し、高解像度の入力を持つCOCOデータセットにおいて最先端の結果を導いた。さらに、新しい自己蒸留戦略により、学習時に補助的な回帰分岐を強化することで、より小さなモデルの性能を向上させ、推論時にはそれを除去して速度を維持する。
YOLOv7
YOLOの最新バージョンはYOLOv7で、以前のバージョンよりいくつかの改良が加えられている。YOLOv7は、9つのアンカーボックスを使用する。これにより、より幅広い対象物、形状、サイズを検出できるようになった。このバージョンでは、検出しにくい物体に焦点を当てる「フォーカルロス」を利用している。以前のYOLOバージョンは、標準的なクロスエントロピー損失関数を使用していたが、これは小さい物体にはあまり効果がない。YOLOv7は、608×608ピクセルの画像を処理するため、より小さな物体をより高い精度で検出することができる。
YOLOv7は、155フレーム/秒のレートで画像を処理します。これは、交通管理、監視、自動運転車など、スピード処理が重要なリアルタイム・アプリケーションに特に有効です。YOLOv7は、一般的なCOCOデータセットにおいて、IoUしきい値0.5で37.2%の平均精度を達成している。
しかし、YOLOv7には、異なるスケールの小さな物体を検出するのに苦労する、照明条件に敏感であるため実世界のアプリケーションで使用するには不便である、計算量が多いためリソースに制約のあるデバイス(スマートフォン)で実行するのが難しい、などのいくつかの制限があります。
なぜYOLOが人気なのか?
物体検出におけるYOLOの人気は、いくつかの要因によるものだが、その最たるものがスピードだ。45フレーム/秒の速度で画像を処理する。平均平均精度は2倍以上で、他のリアルタイム・システムを凌駕しています。YOLOの最新バージョンは、多様なドメインや実世界のアプリケーションに対する汎用性の向上を示している。これは、ロバストで正確な物体検出にとって極めて重要な機能である。YOLOはオープンソースであるため、コミュニティによる継続的な改良が促進され、迅速な進歩につながっています。
YOLOアプリケーション
YOLOの多用途性は、様々な領域に広がっています。物体検出は、私たちの日常生活において様々な用途があります。YOLOの実際のアプリケーションをいくつか紹介しよう。
セキュリティと監視
物体検出は、特定のエリア内の物体の識別と追跡に役立ちます。潜在的な脅威、物体や人の動きの追跡は、YOLOモデルを通じて検出することができる。DeepFaceのような多くのフェイシャルシステムは、物体検出に不可欠な要素です。
自動運転車
リアルタイムの物体検出は、自律走行車システムにとって極めて重要である。なぜなら、車線、近くの物体、歩行者を正確に識別し、交通安全を高めることができるからである。YOLOのリアルタイム機能は、このような状況において、基本的な画像セグメンテーション手法よりも優れた選択肢となる。
小売
eコマース店舗を持つ小売業者は、物体検出を利用することで業務をデジタル化することができる。顧客行動、訪問者の経路、人口統計、経験などのAI分析を得ることができる。物体検出は顧客や従業員の移動パターンを追跡し、在庫追跡、オペレーション、セキュリティなどを改善することができる。
トラフィック管理
YOLOv7は、交差点で車両や歩行者を検知する交通管理に使用できます。物体検出は、大きなカラスを分析したり、インフラを検査することもできます。
農業
現代の農業では、人工知能とロボット工学の重要性がますます高まっている。従来は手作業であった果物や野菜の収穫を自動化するために、視覚ベースの技術を利用した収穫用のロボットが開発されている。この分野の代表的なモデルでは、YOLOの活用が目立つ。
ヘルスケア
YOLOv3はCTスキャンにおける腎臓の認識に使用され、コンピューター断層撮影画像から腎臓の位置を2Dおよび3Dの両方で特定するのに役立っています。また、物体検出は、より良い診断のためにX線やMRIの異常を識別するのに役立ちます。
製造とエネルギー
YOLOv7は、効率的で正確な製造のために、生産ラインを移動する物体を追跡するために使用することができます。製品の品質管理や欠陥検出は、YOLOを通じて行うことができる。
結論
YOLO(You Only Look Once)は画期的な物体検出アルゴリズムとして、特にビデオ監視や自動運転車のようなリアルタイム・アプリケーションにおいて、その速度と効率性で高く評価されている。小さな物体やきめ細かな分類に課題があるにもかかわらず、その単純なアーキテクチャと控えめな学習データ要件により、様々な用途に利用することができる。YOLOがコンピュータ・ビジョンの未来を形成し続けるように、その継続的な進化は、さらなる強化と最先端技術への幅広い応用を約束します。
よくある質問 (FAQs)
YOLOにはどのアルゴリズムが使われていますか?
YOLO(You Only Look Once)アルゴリズムは、合理化された深層畳み込みニューラルネットワーク(CNN)を使用して画像を処理し、画像内のオブジェクトを識別します。YOLOのアプローチの基礎となっているこのCNNアーキテクチャは、1回の評価で画像全体を効率的に分析するため、物体検出のための強力なツールとなります。
YOLOは機械学習ですか、それともディープラーニングですか?
YOLOは、多くの画像とラベルでトレーニングされたディープラーニングモデルを使用しています。これは、モデルが画像内の様々な種類の物体を識別するのに役立ちます。
なぜYOLOはCNNより優れているのですか?
CNNは複雑な多段パイプラインを使用するのに対し、YOLOは領域提案と分類に統一されたモデルを使用する。高速で効率的なモデルであるYOLOは、単一のパススルー・ニューラルネットワークでリアルタイムの物体検出を実行する能力を持っている。
YOLOのバージョンは?
YOLOv7は、2022年7月から利用可能な最新の最先端オブジェクト検出器です。最も高速で最も正確なリアルタイム物体検出器と言われています。YOLOv7は、最先端のディープ・ニューラル・ネットワークのトレーニング技術を使用しています。