YOLO-World: Real-Time Open-Vocabulary Object Detection
概要
- 事前にカテゴリを設定しないオープンボキャブラリーな設定での物体検出において最先端の精度と速度を達成したYOLO-WorldがTencent AI Labから発表された
- まだpushされてないが、オープンソース化される予定:https://github.com/AILab-CVC/YOLO-World/tree/master
- GPLライセンスなので、商用利用可能ではあるが、ソフトウェア配布時に公開義務がある
- 全体像
- 主な工夫としては下記のVision-Language PAN (Path Aggregation Network)で、VisionとTextの相互作用をより考慮できるようにした部分。
- 入出力
- アノテーションをbbox-categoryペアではなく、bbox-textのペアで作成する。
- カテゴリ名だったり、名詞、カテゴリの説明などを用いる
- 出力としては、予測のBBoxとそれに対応するobject embedding を出力
- モデル
- YOLO Backbone: YOLOv8
- Text Encoder: CLIPで事前学習されたTransformer
- テキスト入力がCaptionや文章表現だった場合、n-gramアルゴリズムを用いて名詞句を抽出する
- Text Contrastive Head: 3x3のCNNを2つ
- object embeddingとtext間の類似度を計算するためのHead
- Re-parametizable Vision-Language PAN
- Text EmbeddingとImage Featureを混ぜるT-CSP Layer
- マルチスケールでImageとTextの情報のAttentionから、Text Embeddingを更新するImage-Pooling Attention
- 訓練
- BBoxへのラベルの割り当て方などはYOLOv8と同じ
- Textとobject embeddingのcontrastive loss + BBox回帰のIOU Lossとdistributed focal loss
- BBox-テキストペアを作成するために、Pseudo Labelingを行った
- n-gramアルゴリズムで名詞句を抽出
- GLIPなどで粗いBBoxとTextのペアを生成
- CLIPなどを使用して、画像-テキストペアとBBox-テキストペアで関連性が少ないものをフィルタリング。NMSなどを用いて冗長なBBoxも削除 (Appendixに詳細)
- CC3Mデータセットの226k枚の画像から821k個の擬似アノテーションを作成した
- 結果
- YOLOv8と比較しても大きく精度改善しており、既存の2-stageベースのモデルよりも精度が向上している
- ユーザが自由に設定した単語や表現でもうまく予測が行われている