yolov3: マルチスケール予測とエッジおよびサーバー展開用の複数のモデルバリエーションを備えたリアルタイム物体検出フレームワーク

yolov3: マルチスケール予測とエッジおよびサーバー展開用の複数のモデルバリエーションを備えたリアルタイム物体検出フレームワーク

何を解決するか

YOLOv3は、リアルタイム物体検出を実行するための高速かつ正確な方法を提供します。これは、個別の領域提案ステージを必要とせずに、単一のフォワードパス内で画像またはビデオストリーム内の複数の物体を識別し、位置を特定するという問題を解決します。

仕組み

このプロジェクトは、PyTorchを使用してYOLOv3 (You Only Look Once, version 3) アーキテクチャを実装しています。検出を単一の回帰問題として構成し、画像全体からバウンディングボックスとクラス確率を直接予測します。主なアーキテクチャの特徴は以下の通りです:

  • Darknet-53 backbone: 効率的な特徴抽出のための残差接続を備えた53層の畳み込み特徴抽出器。
  • Multi-scale detection: さまざまなサイズ(小、中、大)の物体を効果的に検出するために、3つの異なる特徴マップスケールで予測が行われます。
  • Anchor boxes: 安定したトレーニングのために、次元クラスタリングされたアンカー事前分布に対して相対的にバウンディングボックスが予測されます。
  • Independent class prediction: softmaxの代わりにlogistic classifierを使用し、単一のボックスが相互に排他的ではない複数のラベルを持つことを可能にします。

対象者

CPUやエッジデバイスを含むさまざまなハードウェアに移植可能で、トレーニングと展開が容易な、信頼できるリアルタイム物体検出のベースラインを必要とする開発者や研究者向けに設計されています。

ハイライト

  • 3つのモデルバリエーション: YOLOv3、YOLOv3-SPP(より高い精度を実現するためのSpatial Pyramid Poolingを備えたもの)、およびYOLOv3-tiny(速度とエッジデバイス向けに最適化されたもの)が含まれます。
  • 包括的なツール群: トレーニング、検証、推論、およびモデルをONNX、TensorRT、CoreML、OpenVINOなどの形式にエクスポートするための組み込みサポートを提供します。
  • PyTorch Hub integration: torch.hub.loadを介してプログラムで事前学習済みモデルをロードすることを可能にします。
  • Declarative model definitions: モデルはYAMLファイルで定義されており、Pythonコードを書くことなくアーキテクチャの変更が可能です。

Sources