このシリーズでは、社内で行った YOLO に関する調査結果を共有しています。第1回では YOLOv4 までを紹介し、第2回では YOLOv8 までを紹介します。
# Yoloの概要
「You Only Look Once」(Yolo)は、オブジェクト検出において非常に効果的なディープラーニングアルゴリズムです。このアルゴリズムは、一般的な物体検出タスクにおいて、高速かつ精度が高く、さまざまなアプリケーションで使用されています。
# Yolov1
解決しようとする問題:オブジェクト検出は既存のR-CNNの手法があります。R-CNNは、1つのセルに複数のオブジェクトが存在する場合や、トレーニング中と異なる比率を持つオブジェクトに対しては困難があります。この問題を解決するのはYoloV1
特徴: 7x7の特徴マップを作って、推論します。
# YoloV2
解決しようとする問題:YoloV1のlocalizationの性能を解決するモデルです。
特徴
Batch Normalization技術がすべての畳み込み層の後に導入されました。この技術により、トレーニング時間が短縮され、より安定した結果が得られます。
バックボーンネットワーク:YOLOv1では、バックボーンはImageNetで224x224サイズの画像でトレーニングされ、検出モデル全体で448x448サイズの画像を使用してトレーニングされます。これにより、モデルはオブジェクト検出を学習するだけでなく、画像サイズにも適応する必要があります。そのため、YOLOv2では、最初にバックボーンをImageNetで448x448サイズの画像で10エポックトレーニングし、その後にオブジェクト検出に移行するように調整されました。
Fine-grained Features:YOLOv2では、13x13のフィーチャーマップを使用して予測を行います。また、以前のフィーチャーマップからの情報を組み合わせるために、スキップ接続が使用されます。
Anchor boxの使用:YOLOv2では、ネットワークの中央にある完全に接続された層が削除され、アンカーボックスの構造を使用してバウンディングボックスを予測します。
直接的な位置予測:0から1の範囲内の値に制限するために、シグモイド関数を使用してグリッドセルの周りに予測バウンディングボックスを制限することで、モデルを安定させるために予測されるバウンディングボックスの値を制限します。
マルチスケールトレーニング:アンカーボックスを適用した後、ネットワークの入力は448x448ではなく416x416に変更されます。しかし、YOLOv2は畳み込み層とプーリング層のみで構成されているため、さまざまな入力に適応できます。
# Yolov3の特徴
バックボーンネットワーク: Darknet-53を利用します。
Feature Pyramid Networkを適用し、feature mapの3つの異なるスケールで物体を検出します。
物体を分類するためにsoftmaxをlogistic classifierで置き換えることができます。これにより、同じオブジェクトが2つ以上の異なるクラスに属する場合に、より良い効果が得られます。
# YoloV4の特徴
YOLOv4は、バックボーンにCSPDarknet53を使用しています。CSPBlockのアイデアはResidual Blockに適用されています。
終点までの1つのパスがある代わりに、CSPResBlockは2つのパスに分割されます。これにより、勾配の再計算を排除できるため、トレーニング速度が向上します。さらに、各ブランチは前のフィーチャーマップから取得された部分であるため、パラメータ数も減少し、全体のプロセスが加速されます。
LeakyReLUからMishへのアクティベーションの変更がCSPDarknet53に組み込まれました。
NeckにSPPとPANの2つの要素を使用しています。
Grid Sensityを削除
1つのグラウンドトゥルースBounding boxに対して複数のAnchor boxを使用
物体の分類においてLabel Smoothingを適用してoverfittingを減らす
2つのData Augmentation技術を使用:Mosaic AugmentationとSelf-Adversarial Training(SAT)
Cosine learning rate scheduleの技術を使用する。
Comments