業界・業務から探す
導入目的・課題から探す
データ・AIについて学ぶ
News
Hakkyについて
ウェビナーコラム
◆トップ【AI・機械学習】
プロセスの全体像前処理・特徴量生成Fine Tuning手法まとめ機械学習モデルの選び方モデル評価手法プロトタイピング探索的分析(EDA)
ドミナントカラー検出セグメンテーション技術の基礎と実装局所特徴量抽出Grad-CAMまとめ画像の二値化とその手法モルフォロジー演算とその手法【Vision AI】Painterの紹介pix2structの紹介
AI

執筆者:Handbook編集部

Deformable-DETRについて解説

Deformable DETRの登場背景

自然言語処理手法として登場したTransformerは画像処理の分野でも使用されるようになりました。初期に登場したDETRはCNNとTransformerを組み合わせることで画像分野に応用していました。DETRはこちらの記事物体検出におけるTransformerの概要で触れています。しかし、DETRには計算コストがかかることや小さなオブジェクトに弱い、学習の収束に時間がかかるなどの問題がありました。そこで登場したのがDeformable DETRになります。Deformable DETRでは変形できる(deformableな)Attentionモジュールを導入することで収束の遅さ、学習コストなどの問題を解決しました。

Deformable Attention

冒頭でも紹介した変形できるAttentionをDeformable Attentionといいます。このAttention機構はDeformable ConvolutionをTransformerに応用したものになります。従来のAttentionは画像すべての特徴量にAttentionを適用するため空間すべてに着目してしまうことで局所的な特徴を学習するのに時間がかかる問題がありました。そこでDeformable Attentionではすべてに注目するのではなく特徴点周りのみにAttenitonを適用することで計算コストを削減し収束時間を短縮することに成功しました。

mmdetをDeformable DETRの実装

こちらではmmdetを使用したDeformable DETRのカスタマイズについて紹介します。mmdetを使用した学習、configファイルの編集についてはMMDetectionを使用してTransformerを実装してみるにまとめています。

mmdetで実装されているDeformable DETRではbackboneにresnet、headにDeformable DETRが使用されています。そのため、このbackboneを変化させることでモデルをカスタマイズできます。しかし、カスタマイズして精度が落ちたり、計算コストが増えることがあるので注意が必要です。

ここではbackboneのresnetをmobilenet V2に変更します。neckについては元論文にもFPNを使用する必要がないことが述べられていたのでそのままにしています。

model = dict(
    type='DeformableDETR',
    backbone=dict(
        type='MobileNetV2',  # ここからmobilenetのパラメータに変更
        out_indices=(2, 4, 6),
        act_cfg=dict(type='LeakyReLU', negative_slope=0.1),
        init_cfg=dict(
        type='Pretrained', checkpoint='open-mmlab://mmdet/mobilenet_v2')),
    neck=dict(
        type='ChannelMapper',
        in_channels=[32, 96, 320],  # 受け渡される特徴量のサイズがresnet異なるので適当な値に変更
        kernel_size=1,
        out_channels=256,
        act_cfg=None,
        norm_cfg=dict(type='GN', num_groups=32),
        num_outs=4),
    bbox_head=dict(
        type='DeformableDETRHead',
        num_query=300,
        num_classes=3,
        in_channels=2048,
        sync_cls_avg_factor=True,

これだけで簡単にモデルを組み替えることができます。カスタマイズすることによって変更前の計算コスト51.09 GFLOPs、パラメータ数39.84 Mが変更後、計算コスト30.09 GFLOPs、パラメータ数14.03 Mに減らすことができました。しかし、冒頭でも記載したとおり精度は少し落ちる形となりました。特徴量の引き渡しパラメータや学習率についてはオリジナルのモデルと大きく異なる場合があるので学習を回しながらチューニングすることが必要です。

まとめ

今回はDeformable DETRの紹介からmmdetでのカスタマイズについて紹介しました。Deformable DETRは計算コストが抑えられDETRと比較して軽量なモデルです。軽量な反面あまり小さなオブジェクトがない画像などに対してはDETRの方が精度が高くなる場面もあります。モデルのカスタマイズのところでもあったように軽量化されたモデルは精度が少し落ちる傾向があるのでタスクに応じて適切なモデルを選んでいく必要があります。

参考

Deformable DETR: Deformable Transformers for End-to-End Object Detection

2025年06月15日に最終更新
読み込み中...