🚀 モデルIDのモデルカード
このモデルは、DETR(DEtection TRansformer)におけるクエリの新しい定式化を提案し、オブジェクト検出の性能向上に貢献します。新しい定式化では、ボックス座標をクエリとして直接使用し、トレーニングの収束速度を向上させます。
🚀 クイックスタート
モデルの使い方
以下のコードを使用して、モデルを始めることができます。
import torch
import requests
from PIL import Image
from transformers import AutoModelForObjectDetection, AutoImageProcessor
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
image_processor = AutoImageProcessor.from_pretrained("IDEA-Research/dab-detr-resnet-50-dc5-pat3")
model = AutoModelForObjectDetection.from_pretrained("IDEA-Research/dab-detr-resnet-50-dc5-pat3")
inputs = image_processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
results = image_processor.post_process_object_detection(outputs, target_sizes=torch.tensor([image.size[::-1]]), threshold=0.3)
for result in results:
for score, label_id, box in zip(result["scores"], result["labels"], result["boxes"]):
score, label = score.item(), label_id.item()
box = [round(i, 2) for i in box.tolist()]
print(f"{model.config.id2label[label]}: {score:.2f} {box}")
このコードの出力例は以下の通りです。
remote: 0.84 [39.72, 73.18, 177.02, 119.15]
cat: 0.82 [341.19, 23.94, 641.08, 369.33]
cat: 0.82 [11.81, 50.36, 318.21, 472.41]
remote: 0.81 [334.1, 77.0, 368.36, 189.37]
couch: 0.52 [0.22, 1.87, 640.21, 474.03]
✨ 主な機能
- 新しいクエリ定式化を使用して、DETRのトレーニング収束速度を向上させます。
- ボックス座標をクエリとして直接使用し、位置情報を明示的に利用します。
- ボックスの幅と高さの情報を使用して、位置注意マップを調整します。
📦 インストール
このモデルはHugging FaceのTransformersライブラリを使用しています。必要なライブラリは以下のコマンドでインストールできます。
pip install transformers torch requests pillow
📚 ドキュメント
モデルの詳細

この論文では、DETR(DEtection TRansformer)に対して動的アンカーボックスを使用した新しいクエリ定式化を提案し、DETRにおけるクエリの役割についてより深い理解を提供します。この新しい定式化では、Transformerデコーダーで直接ボックス座標をクエリとして使用し、レイヤーごとに動的に更新します。ボックス座標を使用することで、明示的な位置事前情報を利用してクエリと特徴の類似性を向上させ、DETRの遅いトレーニング収束問題を解消するだけでなく、ボックスの幅と高さの情報を使用して位置注意マップを調整することができます。このような設計により、DETRのクエリは、カスケード方式でレイヤーごとにソフトROIプーリングを実行することができます。結果として、同じ設定でのDETRライクな検出モデルの中で、MS-COCOベンチマークで最高の性能を達成します。例えば、ResNet50-DC5をバックボーンとして50エポックでトレーニングした場合、APは45.7%です。また、広範な実験を行い、分析を確認し、提案手法の有効性を検証しました。
モデルの説明
これは🤗 Transformersモデルのモデルカードで、Hubに公開されています。このモデルカードは自動生成されています。
属性 |
详情 |
開発者 |
Shilong Liu, Feng Li, Hao Zhang, Xiao Yang, Xianbiao Qi, Hang Su, Jun Zhu, Lei Zhang |
資金提供元 |
IDEA-Research |
共有者 |
David Hajdu |
モデルタイプ |
DAB-DETR |
ライセンス |
Apache-2.0 |
モデルのソース
- リポジトリ: https://github.com/IDEA-Research/DAB-DETR
- 論文: https://arxiv.org/abs/2201.12329
トレーニングの詳細
トレーニングデータ
DAB-DETRモデルはCOCO 2017オブジェクト検出データセットでトレーニングされました。このデータセットは、トレーニング用に118k枚、検証用に5k枚の注釈付き画像で構成されています。
トレーニング手順
Deformable DETRとConditional DETRに従い、300個のアンカーをクエリとして使用します。また、評価のために最大の分類ロジットを持つ300個の予測ボックスとラベルを選択します。分類には、α = 0.25、γ = 2のフォーカル損失を使用します。二部マッチングと最終損失の計算では、同じ損失項を使用しますが、係数は異なります。二部マッチングでは係数2.0の分類損失を使用し、最終損失では係数1.0を使用します。係数5.0のL1損失と係数2.0のGIOU損失(Rezatofighi et al., 2019)は、マッチングと最終損失の計算手順の両方で一貫して使用されます。すべてのモデルは16台のGPUでトレーニングされ、GPUごとに1枚の画像が使用されます。トレーニングにはAdamW(Loshchilov & Hutter, 2018)が使用され、重み減衰は10−4です。バックボーンと他のモジュールの学習率は、それぞれ10−5と10−4に設定されています。モデルは50エポックでトレーニングされ、40エポック後に学習率を0.1倍に下げます。すべてのモデルはNvidia A100 GPUでトレーニングされています。ハイパーパラメータはバッチサイズ64で探索され、論文のすべての結果はバッチサイズ16で報告されています。
前処理
画像は、最短辺が少なくとも480ピクセル、最大800ピクセル、長辺が最大1333ピクセルになるようにリサイズ/リスケールされ、RGBチャンネル全体でImageNetの平均(0.485, 0.456, 0.406)と標準偏差(0.229, 0.224, 0.225)で正規化されます。
トレーニングハイパーパラメータ
Key |
Value |
activation_dropout |
0.0 |
activation_function |
prelu |
attention_dropout |
0.0 |
auxiliary_loss |
false |
backbone |
resnet50 |
bbox_cost |
5 |
bbox_loss_coefficient |
5 |
class_cost |
2 |
cls_loss_coefficient |
2 |
decoder_attention_heads |
8 |
decoder_ffn_dim |
2048 |
decoder_layers |
6 |
dropout |
0.1 |
encoder_attention_heads |
8 |
encoder_ffn_dim |
2048 |
encoder_layers |
6 |
focal_alpha |
0.25 |
giou_cost |
2 |
giou_loss_coefficient |
2 |
hidden_size |
256 |
init_std |
0.02 |
init_xavier_std |
1.0 |
initializer_bias_prior_prob |
null |
keep_query_pos |
false |
normalize_before |
false |
num_hidden_layers |
6 |
num_patterns |
0 |
num_queries |
300 |
query_dim |
4 |
random_refpoints_xy |
false |
sine_position_embedding_scale |
null |
temperature_height |
20 |
temperature_width |
20 |
評価

モデルのアーキテクチャと目的

DAB-DETRの概要。CNNバックボーンを使用して画像の空間特徴を抽出し、TransformerエンコーダーでCNN特徴を精緻化します。次に、位置クエリ(アンカーボックス)とコンテンツクエリ(デコーダー埋め込み)を含む二重クエリをデコーダーに入力し、アンカーに対応し、コンテンツクエリと類似したパターンを持つオブジェクトを探します。二重クエリはレイヤーごとに更新され、徐々にターゲットの正解オブジェクトに近づきます。最終デコーダーレイヤーの出力は、予測ヘッドによってラベルとボックスを持つオブジェクトを予測するために使用され、その後、DETRと同様に二部グラフマッチングが行われて損失が計算されます。
🔧 技術詳細
このモデルは、DETRのクエリ定式化を改善するために、動的アンカーボックスを使用します。具体的には、Transformerデコーダーでボックス座標をクエリとして直接使用し、レイヤーごとに更新します。これにより、トレーニングの収束速度が向上し、オブジェクト検出の性能が向上します。
📄 ライセンス
このモデルはApache-2.0ライセンスの下で公開されています。
引用
@inproceedings{
liu2022dabdetr,
title={{DAB}-{DETR}: Dynamic Anchor Boxes are Better Queries for {DETR}},
author={Shilong Liu and Feng Li and Hao Zhang and Xiao Yang and Xianbiao Qi and Hang Su and Jun Zhu and Lei Zhang},
booktitle={International Conference on Learning Representations},
year={2022},
url={https://openreview.net/forum?id=oMI9PjOb9Jl}
}
モデルカード作成者
David Hajdu