{"notes":[{"id":"object-detection/rf-detr","category":"object-detection","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"RF-DETR","subtitle":"先に学習、サイズは後で","author":"Z. Yuan","paperDate":"2025-11-12","publishedOn":"2026-05-12","paperTitle":"RF-DETR: Neural Architecture Search for Real-Time Detection Transformers","paperUrl":"https://arxiv.org/abs/2511.09554","bibliography":{"title":"RF-DETR: Neural Architecture Search for Real-Time Detection Transformers","authors":["Isaac Robinson","Peter Robicheaux","Matvei Popov","Deva Ramanan","Neehar Peri"],"url":"https://arxiv.org/abs/2511.09554","pdfUrl":"https://arxiv.org/pdf/2511.09554v2","codeUrl":"https://github.com/roboflow/rf-detr","preprint":{"id":"2511.09554","submittedOn":"2025-11-12","url":"https://arxiv.org/abs/2511.09554"},"publication":{"venue":"ICLR","year":2026,"kind":"conference","url":"https://iclr.cc/virtual/2026/poster/10007257"},"citation":"@misc{objectdetectionrfdetr2025,\n  title = {{RF-DETR: Neural Architecture Search for Real-Time Detection Transformers}},\n  author = {Isaac Robinson and Peter Robicheaux and Matvei Popov and Deva Ramanan and Neehar Peri},\n  year = {2025},\n  eprint = {2511.09554},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2511.09554}\n}\n","citationPath":"/content/papers/citations/object-detection/rf-detr.f78ec4489185.bib"},"thumbnail":{"src":"/content/papers/assets/10f93bab733752bf97f8b3ed5c86569a2c4d85840b99b338a6443431fb506555.png","width":1080,"height":775},"locale":"ja","path":"/content/papers/ja/object-detection/rf-detr.88681adca4eb.md","headings":[{"id":"問題の定義","text":"問題の定義","depth":2},{"id":"coco-に合わせすぎている","text":"COCO に合わせすぎている","depth":3},{"id":"1つのサイズは1種類のハードウェアにしか合わない","text":"1つのサイズは1種類のハードウェアにしか合わない","depth":3},{"id":"問題の解決","text":"問題の解決","depth":2},{"id":"土台は-lw-detr","text":"土台は LW-DETR","depth":3},{"id":"5つのつまみ","text":"5つのつまみ","depth":3},{"id":"各サイズはいくつのトークンを見るのか","text":"各サイズはいくつのトークンを見るのか","depth":3},{"id":"学習してから選ぶ","text":"学習してから選ぶ","depth":3},{"id":"考察","text":"考察","depth":2},{"id":"まず遅延を測るものさしを校正する","text":"まず遅延を測るものさしを校正する","depth":3},{"id":"coco","text":"COCO","depth":3},{"id":"rf100-vl","text":"RF100-VL","depth":3},{"id":"アブレーション増えた-2-ap-はどこから来たのか","text":"アブレーション：増えた 2 AP はどこから来たのか","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"object-detection/detr","relation":"referenced","topic":""},{"id":"object-detection/deformable-detr","relation":"referenced","topic":""},{"id":"contrastive-learning/dinov2","relation":"referenced","topic":""}]},{"id":"object-detection/detr","category":"object-detection","legacyPath":"object-detection/2005-detr","legacySlug":"2005-detr","legacyPaths":[],"title":"DETR","subtitle":"跨分野の基盤を築く者","author":"Z. Yuan","paperDate":"2020-05-26","publishedOn":"2024-06-04","paperTitle":"End-to-End Object Detection with Transformers","paperUrl":"https://www.ecva.net/papers/eccv_2020/papers_ECCV/html/832_ECCV_2020_paper.php","bibliography":{"title":"End-to-End Object Detection with Transformers","authors":["Nicolas Carion","Francisco Massa","Gabriel Synnaeve","Nicolas Usunier","Alexander Kirillov","Sergey Zagoruyko"],"url":"https://www.ecva.net/papers/eccv_2020/papers_ECCV/html/832_ECCV_2020_paper.php","pdfUrl":"https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123460205.pdf","codeUrl":"https://github.com/facebookresearch/detr","preprint":{"id":"2005.12872","submittedOn":"2020-05-26","url":"https://arxiv.org/abs/2005.12872"},"publication":{"venue":"ECCV","year":2020,"kind":"conference","url":"https://www.ecva.net/papers/eccv_2020/papers_ECCV/html/832_ECCV_2020_paper.php"},"citation":"@misc{objectdetectiondetr2020,\n  title = {{End-to-End Object Detection with Transformers}},\n  author = {Nicolas Carion and Francisco Massa and Gabriel Synnaeve and Nicolas Usunier and Alexander Kirillov and Sergey Zagoruyko},\n  year = {2020},\n  eprint = {2005.12872},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2005.12872}\n}\n","citationPath":"/content/papers/citations/object-detection/detr.5258ffe0b9a0.bib"},"thumbnail":{"src":"/content/papers/assets/dd7e8441e6460ff562cf558374789924518fafaed7ecde0e3e35ee778c316330.jpg","width":1024,"height":266},"locale":"ja","path":"/content/papers/ja/object-detection/detr.5e84d1db3678.md","headings":[{"id":"問題の定義","text":"問題の定義","depth":2},{"id":"解決策","text":"解決策","depth":2},{"id":"モデル構造","text":"モデル構造","depth":3},{"id":"損失設計","text":"損失設計","depth":3},{"id":"データセット","text":"データセット","depth":3},{"id":"技術的詳細","text":"技術的詳細","depth":3},{"id":"討論","text":"討論","depth":2},{"id":"これでいいのか","text":"これでいいのか？","depth":3},{"id":"モデル構成要素の解析","text":"モデル構成要素の解析","depth":3},{"id":"モデル挙動分析","text":"モデル挙動分析","depth":3},{"id":"未知物体数に対する一般化能力","text":"未知物体数に対する一般化能力","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{"問題の解決":"解決策","画像から物体の集合へ":"モデル構造","まず対応付け次に損失を計算":"損失設計","実験結果の検討":"討論","これでいけるまず条件を確認":"これでいいのか","どの部品が効いている":"モデル構成要素の解析","query-は何を学んだ":"モデル挙動分析"},"guide":null,"relatedReading":[{"id":"object-detection/deformable-detr","relation":"next","topic":"集合予測と Attention による検出"},{"id":"object-detection/smca-detr","relation":"comparison","topic":"Transformer 検出器の収束を速める"}]},{"id":"object-detection/deformable-detr","category":"object-detection","legacyPath":"object-detection/2010-deformable-detr","legacySlug":"2010-deformable-detr","legacyPaths":[],"title":"Deformable DETR","subtitle":"可変形な注意力メカニズム","author":"Z. Yuan","paperDate":"2020-10-08","publishedOn":"2024-09-20","paperTitle":"Deformable DETR: Deformable Transformers for End-to-End Object Detection","paperUrl":"https://arxiv.org/abs/2010.04159","bibliography":{"title":"Deformable DETR: Deformable Transformers for End-to-End Object Detection","authors":["Xizhou Zhu","Weijie Su","Lewei Lu","Bin Li","Xiaogang Wang","Jifeng Dai"],"url":"https://arxiv.org/abs/2010.04159","pdfUrl":"https://arxiv.org/pdf/2010.04159","codeUrl":null,"preprint":{"id":"2010.04159","submittedOn":"2020-10-08","url":"https://arxiv.org/abs/2010.04159"},"publication":{"venue":"ICLR","year":2021,"kind":"conference","url":"https://arxiv.org/abs/2010.04159"},"citation":"@misc{objectdetectiondeformabledetr2020,\n  title = {{Deformable DETR: Deformable Transformers for End-to-End Object Detection}},\n  author = {Xizhou Zhu and Weijie Su and Lewei Lu and Bin Li and Xiaogang Wang and Jifeng Dai},\n  year = {2020},\n  eprint = {2010.04159},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2010.04159}\n}\n","citationPath":"/content/papers/citations/object-detection/deformable-detr.df721a30472e.bib"},"thumbnail":{"src":"/content/papers/assets/36edfc5595a85c73fcdc9a4bbb9e1ca512e1f100676eb7c37203d71c84905c05.jpg","width":1224,"height":752},"locale":"ja","path":"/content/papers/ja/object-detection/deformable-detr.357715629c52.md","headings":[{"id":"問題定義","text":"問題定義","depth":2},{"id":"問題解決","text":"問題解決","depth":2},{"id":"変形可能注意機構","text":"変形可能注意機構","depth":3},{"id":"マルチスケール計算","text":"マルチスケール計算","depth":3},{"id":"モデル構造","text":"モデル構造","depth":3},{"id":"コード解析","text":"コード解析","depth":3},{"id":"トレーニング戦略","text":"トレーニング戦略","depth":3},{"id":"議論","text":"議論","depth":2},{"id":"detr-との比較","text":"DETR との比較","depth":3},{"id":"アブレーション実験","text":"アブレーション実験","depth":3},{"id":"sota-との比較","text":"SOTA との比較","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"object-detection/detr","relation":"background","topic":"集合予測と Attention による検出"},{"id":"object-detection/h-detr","relation":"next","topic":"集合予測と Attention による検出"},{"id":"object-detection/smca-detr","relation":"comparison","topic":"Transformer 検出器の収束を速める"}]},{"id":"contrastive-learning/dinov2","category":"contrastive-learning","legacyPath":"contrastive-learning/2304-dinov2","legacySlug":"2304-dinov2","legacyPaths":[],"title":"DINOv2","subtitle":"汎用特徴鍛錬法","author":"Z. Yuan","paperDate":"2023-04-14","publishedOn":"2025-07-01","paperTitle":"DINOv2: Learning Robust Visual Features without Supervision","paperUrl":"https://arxiv.org/abs/2304.07193","bibliography":{"title":"DINOv2: Learning Robust Visual Features without Supervision","authors":["Maxime Oquab","Timothée Darcet","Théo Moutakanni","Huy V. Vo","Marc Szafraniec","Vasil Khalidov","Pierre Fernandez","Daniel Haziza","Francisco Massa","Alaaeldin El-Nouby","Mahmoud Assran","Nicolas Ballas","Wojciech Galuba","Russell Howes","Po-Yao Huang","Shang-Wen Li","Ishan Misra","Michael Rabbat","Vasu Sharma","Gabriel Synnaeve","Hu Xu","Hervé Jégou","Julien Mairal","Patrick Labatut","Armand Joulin","Piotr Bojanowski"],"url":"https://arxiv.org/abs/2304.07193","pdfUrl":"https://arxiv.org/pdf/2304.07193","codeUrl":"https://github.com/facebookresearch/dinov2","preprint":{"id":"2304.07193","submittedOn":"2023-04-14","url":"https://arxiv.org/abs/2304.07193"},"publication":{"venue":"Transactions on Machine Learning Research","shortVenue":"TMLR","year":2024,"kind":"journal","url":"https://openreview.net/forum?id=a68SUt6zFt"},"citation":"@misc{contrastivelearningdinov22023,\n  title = {{DINOv2: Learning Robust Visual Features without Supervision}},\n  author = {Maxime Oquab and Timothée Darcet and Théo Moutakanni and Huy V. Vo and Marc Szafraniec and Vasil Khalidov and Pierre Fernandez and Daniel Haziza and Francisco Massa and Alaaeldin El-Nouby and Mahmoud Assran and Nicolas Ballas and Wojciech Galuba and Russell Howes and Po-Yao Huang and Shang-Wen Li and Ishan Misra and Michael Rabbat and Vasu Sharma and Gabriel Synnaeve and Hu Xu and Hervé Jégou and Julien Mairal and Patrick Labatut and Armand Joulin and Piotr Bojanowski},\n  year = {2023},\n  eprint = {2304.07193},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2304.07193}\n}\n","citationPath":"/content/papers/citations/contrastive-learning/dinov2.e904e3854892.bib"},"thumbnail":{"src":"/content/papers/assets/9c68ef105804d4462aee8950a1bfd9f0929511f494b1a29690d857bf931da892.jpg","width":1224,"height":368},"locale":"ja","path":"/content/papers/ja/contrastive-learning/dinov2.41ac1bf255ed.md","headings":[{"id":"問題定義","text":"問題定義","depth":2},{"id":"データ収集","text":"データ収集","depth":2},{"id":"1-データプールの準備","text":"1. データプールの準備","depth":3},{"id":"2-重複除去","text":"2. 重複除去","depth":3},{"id":"3-自己教師あり検索","text":"3. 自己教師あり検索","depth":3},{"id":"エンジニアリング規模と効率","text":"エンジニアリング規模と効率","depth":3},{"id":"解決策","text":"解決策","depth":2},{"id":"画像レベルの特徴アライメント","text":"画像レベルの特徴アライメント","depth":3},{"id":"パッチレベルの予測タスク","text":"パッチレベルの予測タスク","depth":3},{"id":"ヘッド設計","text":"ヘッド設計","depth":3},{"id":"sinkhorn-knopp-centering","text":"Sinkhorn-Knopp Centering","depth":3},{"id":"koleo-正則化","text":"KoLeo 正則化","depth":3},{"id":"高解像度訓練フェーズ","text":"高解像度訓練フェーズ","depth":3},{"id":"エンジニアリング実装","text":"エンジニアリング実装","depth":2},{"id":"flashattention","text":"FlashAttention","depth":3},{"id":"sequence-packing","text":"Sequence Packing","depth":3},{"id":"stochastic-depth","text":"Stochastic Depth","depth":3},{"id":"分散訓練","text":"分散訓練","depth":3},{"id":"モデル蒸留","text":"モデル蒸留","depth":3},{"id":"アブレーション実験","text":"アブレーション実験","depth":2},{"id":"モデル訓練フロー","text":"モデル訓練フロー","depth":3},{"id":"事前学習データ","text":"事前学習データ","depth":3},{"id":"損失項の重要性","text":"損失項の重要性","depth":3},{"id":"知識蒸留の効果","text":"知識蒸留の効果","depth":3},{"id":"高解像度訓練","text":"高解像度訓練","depth":3},{"id":"考察","text":"考察","depth":2},{"id":"imagenet-分類","text":"ImageNet 分類","depth":3},{"id":"動画分類","text":"動画分類","depth":3},{"id":"インスタンス認識","text":"インスタンス認識","depth":3},{"id":"セマンティックセグメンテーション","text":"セマンティックセグメンテーション","depth":3},{"id":"質的評価","text":"質的評価","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{"討論":"考察"},"guide":null,"relatedReading":[{"id":"contrastive-learning/dino","relation":"background","topic":"視覚表現の自己蒸留"}]}],"text":"リアルタイム物体検出器を選ぶとき、多くの人はまず COCO のリーダーボードを見て、スコアの良いモデルファミリーを選びます。次に N、S、M、L といったいくつかのサイズから、自分の GPU で十分速く動くものを探し、最後に自分のデータで微調整します。\n\nこの論文は、そのどのステップにも異を唱えます。COCO での順位は、自分のデータセットに移すと通用するとは限りません。あらかじめ用意されたいくつかのサイズが、自分のハードウェアにちょうど合うとも限りません。「十分速く動く」についても、遅延の測り方は論文によってまちまちです。\n\nRoboflow を聞いたことがなければ、少し背景を補っておきます。アメリカの企業で、コンピュータビジョンのアノテーション、学習、デプロイのプラットフォームを運営していて、ユーザーが公開・共有するデータセットは傘下の Roboflow Universe に集まっています。2025年3月、同社はブログで RF-DETR を発表しました。DETR 系のリアルタイム検出器で、画像を1枚入力すると、各物体のボックス、クラス、信頼度スコアを直接出力し、途中に NMS は必要ありません。コードは Apache 2.0 ライセンスでオープンソース化されています。[Roboflow、2025-03-20](https://blog.roboflow.com/rf-detr/)\n\n論文が arXiv に公開されたのは 2025年11月になってからで、著者は Roboflow とカーネギーメロン大学の所属です。のちに ICLR 2026 で発表されました。論文は、一連のモデルサイズがどうやって作られたのか、つまりタイトルにあるニューラルアーキテクチャ探索（neural architecture search、NAS）を説明しています。Roboflow 自身もモデル学習のプラットフォームを運営していて、YOLO シリーズを出している Ultralytics とは直接の競合関係にあります。\n\n## 問題の定義\n\n### COCO に合わせすぎている\n\n著者らの考えでは、近年の固定クラスだけを扱う専用検出器は、アーキテクチャから学習率スケジュール、データ拡張まで、どれも COCO に合わせて調整されてきました。1枚あたりの物体数、クラス数、データ量が COCO と異なるデータセットに移ると、そうした選択が適切であり続けるとは限りません。\n\n論文中の YOLOv8 がその一例です。著者らの測定方法では、YOLOv8 を N から M に大きくすると COCO の AP は 35.2 から 47.3 に上がりますが、同じサイズを RF100-VL に移すと 55.0 から 56.5 にしか上がらず、XL まで大きくしても 56.5 のままです。\n\nRF100-VL は、この著者グループが 2025年にまとめたベンチマークです。Roboflow Universe から 100 個のデータセットを選び、モデルを各データセットで個別に微調整・評価して、そのスコアを平均します。著者らはこれを「任意の新しいドメインへの移行」の代理指標として扱っています。\n\nもう1つの道は、オープンボキャブラリーの視覚言語モデル、たとえば GroundingDINO です。この種のモデルは対象データで微調整すると成績がよく、RF100-VL で 62.3 AP ありますが、1枚に 309.9 ms かかります（TensorRT に対応していないので、これは PyTorch での遅延です）。著者らは、微調整によって本来のオープンボキャブラリー能力が弱まることにも触れています。\n\n学習レシピそのものにも前提が含まれています。cosine 学習率スケジュールは総学習ステップ数を事前に知っている必要があり、データ拡張はデータがどんな姿かを前提にしています。著者らが挙げる例は自動運転車の歩行者検出器で、学習時に上下反転を使うと、モデルは水たまりに映った姿まで歩行者と見なしかねません。\n\n### 1つのサイズは1種類のハードウェアにしか合わない\n\nもう1つの問題はサイズです。既存の検出器ファミリー、たとえば D-FINE の N から X は、どのサイズも人手で設計し、それぞれ個別に学習しています。対象のハードウェアが変わると、既存のサイズの中から最も近いものを選ぶか、設計し直して学習し直すしかありません。\n\nNAS はもともと、精度と遅延のさまざまなトレードオフを自動で見つけるためのものです。初期のハードウェアを考慮した NAS では、ハードウェアが変わるたびに探索と学習をやり直す必要がありました。2019年の OFA（Once-for-All）は学習と探索を切り離し、1つのネットワークで重みを共有する数千のサブネットワークを同時に学習させ、学習後に必要に応じて選べるようにしました。物体検出に使われる NAS は、たいていバックボーンだけを探索で見つけたネットワークに置き換え、検出器のほかの部分はそのままにしています。\n\nそこでこの論文は2つの問いに答えようとします。対象のデータセットで1回学習するだけで、精度と遅延の曲線を丸ごと得て、ハードウェアに合わせて1点を選べないか？選んだ点の遅延はどう測れば、他人の数字と並べて比べられるのか？\n\n## 問題の解決\n\n### 土台は LW-DETR\n\nRF-DETR の土台は、Baidu が 2024年に提案した LW-DETR です。ViT エンコーダ、projector、ごく浅い DETR decoder を積み重ねた構成で、ViT の中ではウィンドウアテンションとグローバルアテンションを交互に使って計算を節約しています。\n\n[![RF-DETR のアーキテクチャ図。左では画像を patch に分け、位置エンコーディングを加えて ViT バックボーンに送る。バックボーンには4つの block があり、各 block はウィンドウアテンション2層とグローバルアテンション1層からなる。4つの block の出力は projector に入り、Query Selection を経てクエリ埋め込みと足し合わされ、decoder に送られる。decoder の各層は順に自己注意、可変形クロスアテンション、フィードフォワード層からなり、後ろに Decoder Group 1 から 13 が重なっている。右上は検出ヘッドとセグメンテーションヘッド](/content/papers/assets/10f93bab733752bf97f8b3ed5c86569a2c4d85840b99b338a6443431fb506555.png)](/content/papers/assets/10f93bab733752bf97f8b3ed5c86569a2c4d85840b99b338a6443431fb506555.png)\n\n*原論文 Figure 2。[**v2 PDF の4ページ**](https://arxiv.org/pdf/2511.09554v2#page=4)から抜粋、CC BY 4.0。左が ViT バックボーン、中央が decoder、右がセグメンテーションヘッドで、上は2種類の出力です。*\n\n左下から見ていきます。画像を patch に分け、位置エンコーディングを加えて ViT バックボーンに送ります。図のバックボーンには4つの block があり、各 block はまずウィンドウアテンションを2層、次にグローバルアテンションを1層行います。4つの block の出力はまとめて projector に送られ、decoder が使う特徴マップに整えられます。\n\n次は Query Selection です。projector が出力する各位置は、まずそれぞれクラススコアと候補ボックスを1つずつ予測し、スコアが最も高い 300 個が decoder のクエリの出発点になります。これは Deformable DETR が提案した two-stage のやり方です。\n\ndecoder の各層では、まずクエリどうしで自己注意を行い、次に可変形クロスアテンションで特徴マップ上の各候補ボックスの近くから数点を取り、最後にフィードフォワードネットワークを通します。各層の出力にはどれも検出ヘッドがつながっていて、それぞれ損失を1回計算します。後で decoder の層数を削るつまみは、この点に支えられています。\n\n図の右側には 13 組の decoder が重なっています。これは LW-DETR から引き継いだ Group DETR です。学習時には 13 組のクエリを用意して同じ decoder の重みを共有し、各組がそれぞれアノテーションと一対一マッチングを行うので、1回のイテレーションで各物体が 13 個の正例を得ることになります。推論時には1組だけを残すので、やはり NMS は必要ありません。公式コードのデフォルトも 13 組です。\n\n同じアーキテクチャに軽量なセグメンテーションヘッドを加えたものが RF-DETR-Seg ですが、このノートでは検出だけを扱います。\n\nRF-DETR が LW-DETR に加えた変更は、主に次の3つです：\n\n- **バックボーンを DINOv2 に替える**。LW-DETR はもともと CAEv2 を使っていました。DINOv2 は Meta が自己教師ありで事前学習した ViT で、著者らはその重みで初期化すると、小さなデータセットでの検出精度がはっきり上がることを見つけました。代償は速度で、DINOv2 は12層、CAEv2 は10層しかありません。この遅延の分は後で NAS で取り戻します。COCO の N から L は ViT-S、XL と 2XL は ViT-B を使います。\n- **projector に LayerNorm を使う**。コンシューマー向けの GPU でも、勾配累積で大きなバッチを組めるようにするためです。BatchNorm の統計量は、実際に1回ずつ送り込む小さなバッチしか見ないので、勾配累積のときに狂ってしまいます。\n- **学習レシピを単純にする**。学習率は LW-DETR の 4e-4 から 1e-4 に下げ、学習率スケジュールも warm-up も使いません。データ拡張は水平反転とランダムクロップだけを残し、マルチスケールのリサイズはバッチ全体をまとめてリサイズする方式に変えて、パディング（padding）するピクセルを減らします。\n\n\n> [!TIP]\n> \n> RF-DETR の decoder は DETR の一対一マッチングと Deformable DETR の可変形アテンションを引き継ぎ、バックボーンは DINOv2 です。背景はこちらを参照してください：\n> \n> - **[[20.05] DETR：跨分野の基盤を築く者](/blog/papers/object-detection/detr)**\n> - **[[20.10] Deformable DETR：可変形な注意力メカニズム](/blog/papers/object-detection/deformable-detr)**\n> - **[[23.04] DINOv2：汎用特徴鍛錬法](/blog/papers/contrastive-learning/dinov2)**\n\n\n### 5つのつまみ\n\n土台が決まったところで、著者らはその上に回せるつまみを5つ設けました。図の各マスには矢印が1本あり、片端に「より速い」、もう片端に「より正確」と書かれています：\n\n[![NAS の探索空間を示す5つの模式図。a は patch サイズで、8×8 の小さな patch はトークンが多く精度が高く、32×32 の大きな patch は速い。b は decoder の層数で、層が少ないほど速く、多いほど正確。c は一部のクエリを捨てる。d は入力解像度。e はウィンドウ数で、右の格子は色の異なる4つのウィンドウに分かれている](/content/papers/assets/f0e8bf4f9ecad4cb2f090117a18034f54eab8bc3e901414f94864de103d3425a.png)](/content/papers/assets/f0e8bf4f9ecad4cb2f090117a18034f54eab8bc3e901414f94864de103d3425a.png)\n\n*原論文 Figure 3。[**v2 PDF の5ページ**](https://arxiv.org/pdf/2511.09554v2#page=5)から抜粋、CC BY 4.0。5つのつまみは、patch サイズ、decoder の層数、クエリ数、解像度、ウィンドウ数です。*\n\n- **Patch サイズ**（a）。patch が小さいほど切り出されるトークンが多くなり、精度は上がりますが遅くなります。学習時は FlexiViT の手法で、同じ patch embedding の重みをさまざまなサイズにリサイズして使います。\n- **Decoder の層数**（b）。各層に専用の損失があるので、推論時に後ろから任意の層数を削れます。すべて削ってもかまいません。その場合は Query Selection が選んだ 300 個の候補ボックスだけが残り、NMS のいらない1段階検出器になります。\n- **クエリ数**（c）。クエリは Query Selection が与えたスコアの順に並んでいて、推論時にはスコアの最も低いものをそのまま捨てます。クエリ数は、1枚の画像で出力できる物体数の上限でもあります。\n- **解像度**（d）。解像度が高いほど小物体を見分けやすくなりますが、速度も落ちます。位置エンコーディングはまず「最大解像度 ÷ 最小 patch」で1枚の表として用意しておき、ほかの組み合わせはこの表から補間します。\n- **ウィンドウ数**（e）。ウィンドウアテンションでは、同じウィンドウの中のトークンどうしだけが互いを見ます。ウィンドウを細かく分けるほど計算は節約できますが、情報がウィンドウをまたいで流れにくくなります。\n\n学習時は、ステップごとにグリッドから設定を1組一様にサンプリングし、それで順伝播と勾配更新を1回行います。付録 A の学習グリッドは、解像度が 320 から 960 まで 64 刻み、patch が 8、10、12、16、20、24、32、ウィンドウ数が 1、2、4 です。decoder の層数とクエリ数は学習時には6層、300 個に固定し、推論時にだけ削ります。\n\n著者らはこの学習を dropout のアンサンブル的な見方になぞらえています。ステップごとに1つのサブネットワークだけを更新し、数千のサブネットワークが一緒に学ぶという見方です。また、アーキテクチャをランダムに入れ替えること自体に正則化の効果があることも見つけ、これを「アーキテクチャ拡張」（architecture augmentation）と呼んでいます。その証拠は後のアブレーションで出てきます。\n\n\n> [!TIP]\n> \n> 同じ重みがどうやってさまざまな patch サイズに対応するかは、FlexiViT のノートを参照してください：\n> \n> - **[[22.12] FlexiViT：自由なパッチサイズ](/blog/papers/vision-transformers/flexivit)**\n\n\n### 各サイズはいくつのトークンを見るのか\n\n付録の Table 7 には、最終的に COCO で選ばれた構成が載っています。各構成で実際に ViT に送られるトークンがいくつあるかを計算してみましょう。\n\nTable 7 のウィンドウ数は2と書かれています。公式コードはこの数を1辺あたりの分割数として扱うので、実際には 2×2 = 4 個のウィンドウになり、Figure 3(e) に描かれた4マスと一致します。\n\n```python\n# Table 7：COCO 検出のパレート構成（解像度、patch、1辺あたりのウィンドウ分割数）\nconfigs = {\n    \"N\": (384, 16, 2), \"S\": (512, 16, 2), \"M\": (576, 16, 2),\n    \"L\": (704, 16, 2), \"XL\": (700, 20, 1), \"2XL\": (880, 20, 2),\n}\nfor name, (res, patch, win) in configs.items():\n    side = res // patch\n    tokens = side * side\n    print(f\"{name:>3}: {res}/{patch} = {side:>2}、計 {tokens:>4} トークン、\"\n          f\"ウィンドウ {win * win} 個に分割、各 {tokens // (win * win):>4} 個\")\n\n# 付録 L：解像度を 640 に固定し、patch だけ変えて近い1辺のマス数を作る\nfor name, patch in [(\"N\", 27), (\"S\", 21), (\"M\", 18)]:\n    print(f\"640/{patch} = {640 / patch:.1f}（{name} の元の値は {configs[name][0] // configs[name][1]}）\")\n\n# 位置エンコーディングは「最大解像度 ÷ 最小 patch」で事前に用意する（付録 A の学習グリッド）\nprint(\"位置エンコーディングのグリッド：\", 960 // 8, \"×\", 960 // 8)\n# 付録 A：推論時に総当たりする組み合わせ数\nprint(\"組み合わせ数：\", 11 * 7 * 7 * 3 * 4)\n```\n\n```text\n  N: 384/16 = 24、計  576 トークン、ウィンドウ 4 個に分割、各  144 個\n  S: 512/16 = 32、計 1024 トークン、ウィンドウ 4 個に分割、各  256 個\n  M: 576/16 = 36、計 1296 トークン、ウィンドウ 4 個に分割、各  324 個\n  L: 704/16 = 44、計 1936 トークン、ウィンドウ 4 個に分割、各  484 個\n XL: 700/20 = 35、計 1225 トークン、ウィンドウ 1 個に分割、各 1225 個\n2XL: 880/20 = 44、計 1936 トークン、ウィンドウ 4 個に分割、各  484 個\n640/27 = 23.7（N の元の値は 24）\n640/21 = 30.5（S の元の値は 32）\n640/18 = 35.6（M の元の値は 36）\n位置エンコーディングのグリッド： 120 × 120\n組み合わせ数： 6468\n```\n\nまず最初の6行です。論文では、N から L は DINOv2-S の同じ1回の学習でできた曲線上の4つの点で、patch はすべて 16、違いは主に解像度にあります。1辺のマス数は 24 から 44 まで増え、decoder も2層から4層に増えます。そのため、これらのサイズのパラメータ数はとても近く、N が 30.5M、M が 33.7M ですが、遅延は 2.3 ms から 4.4 ms に変わります（Table 2）。RF-DETR は LW-DETR の慣習を引き継ぎ、サイズをパラメータ数ではなく遅延で分けています。\n\nL と 2XL のトークン数は同じで、どちらも 1,936 個です。2XL は DINOv2-B バックボーンに替え、patch 20 と 880 の解像度を組み合わせています。XL はウィンドウを1つしか作らないので、すべての層がグローバルアテンションになります。\n\nウィンドウは、細かく分けるほどよいとも限りません。DINOv2 は事前学習で CLS トークンに頼っていて、RF-DETR は各ウィンドウにその複製を1つずつ持たせます。ウィンドウが増えると複製の数も増え、かえって速度に響きます。付録 L によると、選ばれた構成の多くは1辺2分割にとどまり、LW-DETR は4分割です。\n\n真ん中の3行は付録 L の実験です。著者らは、精度が「1辺のマス数」に連動していて、解像度や patch だけでは見通せないことに気づきました。そこで解像度を 640 に固定し、patch 27、21、18 で N、S、M に近いマス数を作ったところ、結果は元の構成とほとんど同じでした。27 と 18 という2つの patch は、学習中に一度も登場していません。\n\n位置エンコーディングの行は付録 A の学習グリッドから導いたもので、最大解像度 960、最小 patch 8 なので、120×120 個の位置を事前に用意する必要があります。最後の行は推論時に総当たりする組み合わせ数で、解像度 11 種類、patch 7 種類、decoder の深さ 7 種類（0 から 6 層）、ウィンドウ数 3 種類、クエリ数 4 種類（50、100、200、300）で、合計 6,468 通りです。\n\n### 学習してから選ぶ\n\n対象のデータセットで学習を終えたら、著者らは検証セットでこの 6,468 通りの構成をすべて走らせて精度と遅延を測り、パレートフロント、つまり同じ遅延で最も正確な点の集まりを残します。デプロイするときは遅延の上限を与え、その線上で最も正確なものを選びます。RF100-VL では、まず N から 2XL までのそれぞれの目標遅延を決め、各データセットで遅延が目標の 10% 以内に収まる構成を探します。\n\nNAS の学習時間は、データセットによって異なりますが、通常の単一サイズの学習のおよそ2から4倍です。探索そのものには、著者らの見積もりで 10,000 GPU 時間ほどかかります（T4 200枚で 48 時間）。その見返りとして、すべてのサイズが同じ1回の学習から得られます。NAS を使わないやり方では、サイズを1つ増やすたびに学習をやり直す必要があります。\n\n構成を選んだあと、もう一度微調整することもできます。COCO ではほとんど効果がなく、各サイズで最大でも +0.4 AP です（Table 15）。RF100-VL では少し効果が大きく、たとえば N は 57.8 から 58.6 に上がります。著者らは、小さなデータセットで 100 エポック学習しただけでは、アーキテクチャ拡張が収束するには足りないと説明しています。\n\n## 考察\n\n### まず遅延を測るものさしを校正する\n\n遅延の比較はもともと厄介です。新しい論文は毎回、先行モデルを自分のマシンで測り直しますが、数字が合わないことがよくあります。著者らは §4 でいくつかの原因を挙げています：\n\n1. **YOLO の遅延は NMS を含まないことが多い**。それを NMS のいらないエンドツーエンドの検出器と比べるのは、公平ではありません。2023年の RT-DETR がすでにこの点を指摘しています。\n2. **YOLO のセグメンテーションモデルは prototype までしか計算しない**。測っているのは中間生成物の時間で、各物体にそのまま使えるマスクはまだ組み立てられていません。\n3. **GPU はクロックを落とす**。推論を続けると GPU が過熱してクロックが下げられ、測った遅延もそれにつれてぶれます。著者らは、順伝播ごとに 200 ms の間隔を空けて対処しています。\n4. **遅延は FP16、精度は FP32**。少なからぬ論文が、FP16 のモデルで速度を測りながら、FP32 のモデルで精度を測っています。そのまま量子化すると大きく落ちることがあり、D-FINE はそのまま FP16 に変換すると 0.5 AP しか残らず、ONNX opset 17 でエクスポートし直してようやく元に戻りました。著者らは、精度と遅延を同じモデルファイルで測るべきだと主張しています。\n5. **検証時と推論時の NMS が異なることがある**。著者らは TensorRT 上で YOLOv8 と YOLO11 の公表 mAP を再現できず、その原因を、検証時にはマルチクラス NMS を使って1つのボックスに複数のクラスを残せるのに、実際の推論ではシングルクラスしか使わないためだと推測しています。\n\nこの測定方法では、YOLO には必ず NMS をつなぎ、信頼度の閾値は 0.01 です。ハードウェアは T4 で、TensorRT 10.4、CUDA 12.4 を使います。Table 1 は、いくつかの M サイズのモデルについて、元論文の公表値とこの測定方法での値を並べています：\n\n| モデル | 公表 AP | 公表遅延 | FP32 AP | FP32 遅延 | FP16 AP | FP16 遅延 |\n| --- | ---: | ---: | ---: | ---: | ---: | ---: |\n| YOLOv8-M | 50.2 | 5.86 | 49.3 | 14.8 | 47.3 | 5.4 |\n| YOLO11-M | 51.5 | 4.7 | 49.7 | 18.7 | 48.3 | 5.2 |\n| RT-DETR-R18 | 49.0 | 4.61 | 49.0 | 12.2 | 49.0 | 4.4 |\n| LW-DETR-M | 52.5 | 5.6 | 52.6 | 26.8 | 52.6 | 4.4 |\n| D-FINE-M | 55.1 | 5.62 | 55.1 | 13.9 | 55.0 | 5.4 |\n| RF-DETR-M | – | – | 54.8 | 20.5 | 54.7 | 4.4 |\n\n*表：原論文 Table 1、遅延の単位は ms。後ろの4列はどれも順伝播ごとに 200 ms の間隔を空ける測定方法で、D-FINE の FP16 はエクスポートを修正したあとの数値です。*\n\nFP32 から FP16 に替えると、2つの YOLO はそれぞれ 2.0 と 1.4 AP 落ち、4つの DETR 系モデルの低下は最大でも 0.1 です。公表値と著者らが実測した FP32 にも差があり、YOLOv8-M は 0.9、YOLO11-M は 1.8 の差です。FP32 の列の遅延は 12.2 から 26.8 ms の間で、FP16 の 2.6 から 6.1 倍です。\n\n2025年9月、論文がまだ出ていないうちに、あるユーザーが RF-DETR の GitHub で issue を立て、掲載されている YOLO11 の数字が誤っていると指摘しました。第一著者の回答では、これらの数字は TensorRT で融合した NMS、FP16、pycocotools を使って実際に測ったものです。Ultralytics は検証時にマルチラベル NMS を使っていて、彼らの経験では COCO mAP が 1 ほど高く出るうえ、報告される速度は NMS を含まない FP16 だといいます。[rf-detr #350](https://github.com/roboflow/rf-detr/issues/350) 論文の §4 は、同じ論点を1つの測定方法としてまとめたものです。\n\nその 200 ms の間隔はどれほど影響するのでしょうか？Table 20 は同じ M モデルの組で比べていて、間隔を空けない場合と 200 ms 空けた場合の遅延の差は 0 から 0.3 ms、それ以上長く空けても変化は 0.1 ms 以内です。著者らも、この測定方法が測るのは GPU が過熱していないときの1枚あたりの遅延で、持続的なスループットを測るためのものではないと認めています。連続推論するサービスなら、表の数字は GPU が冷えているときの状態に近いと考えてください。TensorRT はビルドのたびに結果が最大 0.1 ms ずれるので、論文の遅延は小数点以下1桁までしか書かれていません。\n\n測定方法の選び方は順位にも影響します。著者らは TensorRT で一律に CUDA graphs を有効にし、GPU の演算カーネルをあらかじめ並べておいて、CPU が1つずつ起動しなくて済むようにしています。これは RT-DETR、LW-DETR、RF-DETR には効果がありますが、D-FINE には効きません。著者ら自身、有効にすると LW-DETR と D-FINE が同じ精度・遅延曲線の上に並ぶと書いています。\n\nNMS の閾値も数字を変えます。この測定方法では、YOLOv8-N の NMS 込みの総遅延は 2.1 ms、AP は 35.2 です（Table 2）。同じ YOLOv8-N でも、YOLOv10 論文の測定方法では総遅延が 6.16 ms で、そのうちモデル本体は 1.77 ms にすぎません。YOLOv10 は各モデルの検証時の NMS 設定を使っていて、残る候補ボックスがずっと多いからです。「NMS に何ミリ秒かかる」といった数字を見たら、まず閾値がどこに設定されているかを探しましょう。\n\n\n> [!TIP]\n> \n> NMS を遅延に含めるエンドツーエンドの測定方法と、同じ YOLOv8-N の測定方法ごとの数字は、こちらを参照してください：\n> \n> - **[[23.04] RT-DETR：NMS 込みで計る](/blog/papers/object-detection/rt-detr)**\n> - **[[24.05] YOLOv10：NMS、さようなら](/blog/papers/object-detection/yolov10)**\n\n\n### COCO\n\nまず Figure 1 の左上を見ます：\n\n[![COCO 物体検出の精度と遅延の曲線。横軸は T4 での遅延で約 1.5 から 20 ms、縦軸は AP50:95 で 35 から 60。紫の RF-DETR（DINOv2-S）とピンクの RF-DETR（DINOv2-B）は連続した曲線で、YOLOv8、YOLO11、D-FINE、RT-DETR、LW-DETR は N から XL のマーカーを結んだ折れ線](/content/papers/assets/5d7dc32c6480e109cfe21fc73d7a8f9fbc1a7218232165cc360266eb0d5c9849.png)](/content/papers/assets/5d7dc32c6480e109cfe21fc73d7a8f9fbc1a7218232165cc360266eb0d5c9849.png)\n\n*原論文 Figure 1 の左上のサブ図。[**v2 PDF の3ページ**](https://arxiv.org/pdf/2511.09554v2#page=3)から抜粋、CC BY 4.0。横軸は遅延（ms）、縦軸は COCO の AP50:95 です。*\n\nほかのファミリーはどれもいくつかのサイズを結んだ折れ線ですが、RF-DETR の2本は連続した曲線です。紫の線は DINOv2-S バックボーンでの1回の学習、ピンクの線は DINOv2-B での1回の学習で、線上の各点はどれも同じ重みに別の構成を当てはめたものです。\n\n低遅延の側では、紫の線がすべてのファミリーの上にあります。右へ進んで L のあたりで茶色の D-FINE が紫の線に追いつき、XL では一段上に出ます。ピンクの曲線が 60 を超えるのは 17 ms あたりからです。\n\nいくつかの行の数字を並べてみます：\n\n| モデル | パラメータ数 | 遅延（ms） | AP |\n| --- | ---: | ---: | ---: |\n| YOLOv8-N | 3.2M | 2.1 | 35.2 |\n| LW-DETR-T | 12.1M | 1.9 | 42.9 |\n| D-FINE-N | 3.8M | 2.1 | 42.7 |\n| RF-DETR-N | 30.5M | 2.3 | 48.0 |\n| YOLOv8-M | 25.9M | 5.4 | 47.3 |\n| LW-DETR-M | 28.2M | 4.4 | 52.6 |\n| D-FINE-M | 19.2M | 5.4 | 55.0 |\n| RF-DETR-M | 33.7M | 4.4 | 54.7 |\n| D-FINE-XL | 62M | 11.5 | 59.3 |\n| RF-DETR-XL | 126.4M | 11.5 | 58.6 |\n| RF-DETR-2XL | 126.9M | 17.2 | 60.1 |\n\n*表：原論文 Table 2 と Table 12 をもとに整理。すべて著者らが同じ測定方法で実測したものです。*\n\n1. **N の差が最も大きい**。RF-DETR-N は D-FINE-N より 5.3 AP 高く、遅延は 0.2 ms 多くなります。その 48.0 は YOLOv8-M の 47.3 よりも高く、遅延は半分未満です。\n2. **M 以上では勝ち負けがある**。D-FINE-M は RF-DETR-M より 0.3 AP 高いものの 1.0 ms 遅く、XL ではどちらも 11.5 ms で、D-FINE のほうが 0.7 高くなります。\n3. **2XL は 60 を超える**。60.1 AP、17.2 ms で、D-FINE-XL より 0.8 高く、遅延は 5.7 ms 多くなります。著者らは、知る限りでは COCO で 60 AP を超えた初めてのリアルタイム検出器だと述べています。\n\nRF-DETR は DINOv2 に加えて Objects365 でも事前学習していて、D-FINE も S から XL は同様ですが、D-FINE-N はしていません。この点は著者らが付録で自ら注記しています。RF-DETR はパラメータ数もずっと大きく、N が 30.5M なのに対して D-FINE-N は 3.8M と8倍の差があるので、メモリやストレージに余裕のないデバイスでは別途検討が必要です。論文のいう「リアルタイム」は T4 で 40 ms 以内を指します。付録には Max 版もあり、61.8 AP ですが 98 ms かかるので、この範囲の外です。\n\nRoboflow は 2025年3月の発表記事の時点で、RF-DETR を 60 mAP を超えた初めてのリアルタイムモデルとしていました。そのとき指していたのは旧版の RF-DETR-large の 728 解像度での 60.5 で、論文では、この主張を支える数字が 2XL の 60.1 に替わっています。\n\n### RF100-VL\n\nRF100-VL に移って、同じくいくつかの行を選びます：\n\n| モデル | 遅延（ms） | AP | NAS 後に再微調整 |\n| --- | ---: | ---: | ---: |\n| YOLOv8-N | 2.6 | 55.0 | – |\n| YOLO11-M | 5.1 | 57.0 | – |\n| D-FINE-N | 2.0 | 58.2 | – |\n| RF-DETR-N | 2.5 | 57.8 | 58.6 |\n| D-FINE-M | 5.6 | 60.6 | – |\n| RF-DETR-M | 4.6 | 61.7 | 62.0 |\n| GroundingDINO-T（微調整） | 309.9 | 62.3 | – |\n| RF-DETR-2XL | 15.6 | 63.3 | 63.5 |\n\n*表：原論文 Table 4 をもとに整理。100 個のデータセットの平均です。GroundingDINO の遅延は PyTorch で、ほかは TensorRT で測ったものです。*\n\nYOLO の側は、サイズの大小にかかわらず 55 から 57 にとどまっています。最小サイズでは、D-FINE-N の 58.2 が、再微調整していない RF-DETR-N よりむしろ高くなっています。M では RF-DETR が 1.1 AP リードし、遅延も 1.0 ms 短くなります。2XL は微調整した GroundingDINO より 1.0 AP 高く（再微調整後は 1.2）、遅延はその約 20 分の1ですが、両者の推論エンジンは異なります。\n\nYOLO と DETR 系モデルの差は、主に小物体に集中しています。YOLO の各サイズの AP_S は 4.7 から 7.3 しかなく、DETR 系モデルはどれも 30 以上ですが、論文はその原因を分析していません。著者らはさらに、YOLO にはここでも 0.01 の信頼度の閾値を使っていて、すべてのデータセットに合うとは限らないため、遅延の数字が YOLO にとって最良の状態ではない可能性があると注意しています。\n\n付録 I にはもう1つ実験があります。COCO で選んだ構成を新しいデータセットで探索し直さず、そのまま RF100-VL に持ち込むものです。N、S、M はそれぞれ 57.7、60.2、61.2 で、RF100-VL で探索し直した構成の 57.8、60.9、61.7 との差は 0.1 から 0.7 AP です。L は固定構成のほうがかえって 0.2 高いものの、遅延は 0.6 ms 多くなります。固定構成でも、すでに同じサイズの LW-DETR をすべて上回っています。\n\n### アブレーション：増えた 2 AP はどこから来たのか\n\nTable 5 は LW-DETR-M から出発し、1ステップずつ RF-DETR-M に変えていきます：\n\n| ステップ | 遅延（ms） | AP |\n| --- | ---: | ---: |\n| LW-DETR-M | 4.4 | 52.6 |\n| + より穏やかなハイパーパラメータ | 4.4 | 51.6 |\n| + DINOv2 バックボーン | 4.7 | 53.6 |\n| + Objects365 での事前学習を増やす | 4.7 | 54.3 |\n| + 重み共有 NAS（構成は同じ） | 4.7 | 54.6 |\n| 　patch を 16、解像度を 640 に | 4.7 | 54.4 |\n| 　解像度を 576 に下げる | 4.0 | 53.6 |\n| 　1辺のウィンドウ 4 → 2 | 4.3 | 54.3 |\n| 　decoder 3 → 4 層 | 4.4 | 54.6 |\n\n*表：原論文 Table 5 をもとに整理、COCO。*\n\nより穏やかなハイパーパラメータ（小さめの学習率、LayerNorm など）に替えると、AP はまず 1.0 下がります。著者らによれば、LayerNorm は精度を少し損ないますが、替えなければコンシューマー向けのハードウェアで学習できません。DINOv2 に替えると AP は 2.0 戻り、遅延は 0.3 ms 増えます。\n\n5番目のステップの構成は patch 14、解像度 560 で、patch 14 はそもそも学習グリッドに含まれていません。NAS と一緒に学習しただけで同じ構成の AP が 0.3 上がっていて、これが先に述べたアーキテクチャ拡張の証拠です。\n\n後の4ステップはつまみを回して、遅延を 4.4 ms に戻すものです。最終的に 54.6 AP となり、LW-DETR-M と同じ遅延で 2.0 高くなっています。\n\nバックボーンの比較は Table 6 にあります。同じ設定で、DINOv2 ViT-S は 54.3、CAEv2 は 52.3、SigLIPv2 は 50.4 です。SAM2 の Hiera-S は 53.6 ありますが、遅延は 11.2 ms で、DINOv2 の 4.7 ms の2倍以上遅くなります。（SigLIPv2 と SAM2 は FP16 に変換すると成績が大きく落ちるので、この2行には FP32 の精度を載せていて、いわばそれらの上限です。）\n\n## 結論\n\nRF-DETR は LW-DETR のバックボーンを DINOv2 に替え、重み共有 NAS を使って対象データセットで1回学習したあと、検証セットで六千通りあまりの構成を総当たりし、遅延に応じて点を選びます。論文から持ち帰れるのは次のようなことです：\n\n1. **サイズは後から選べる**。1回の学習で精度と遅延の曲線を丸ごと得て、ハードウェアごとに別の点を選べます。代償として学習時間は2から4倍になり、探索にはさらに1万 GPU 時間ほどかかります。\n2. **COCO 以外のベンチマークも見る**。YOLO は COCO ではサイズにつれて良くなり続けますが、RF100-VL ではほとんど動きません。D-FINE と RF-DETR の勝ち負けもデータセットによって入れ替わります。ただし、RF100-VL は著者ら自身がまとめたベンチマークです。\n3. **遅延を測るなら条件を明記する**。NMS を含めるか、閾値はいくつか、FP16 か FP32 か、GPU を冷ましたかのどれか1つでも違えば、表の数字はそのまま比べられません。\n\nNAS のコードはオープンソース化されていません。第一著者は 2025年12月の issue で、GitHub のコードは NAS で見つけた固定構成を微調整するためのもので、自分のデータで NAS を走らせるには Roboflow のプラットフォームを使う必要があると述べています。[rf-detr #483](https://github.com/roboflow/rf-detr/issues/483) 付録 I の数字によれば、COCO の固定構成を RF100-VL に使った場合、探索し直した構成との差は、再微調整なしで 0.7 AP 以内です。ライセンスも2種類あり、N から L の検出モデルは Apache 2.0、XL と 2XL の検出モデルは Roboflow 独自の PML 1.0 で、商用でセルフホストするには別途料金がかかります。[rf-detr README](https://github.com/roboflow/rf-detr)\n\nクエリ数は減らすことしかできず、上限は学習時の 300 個です。1枚に数百個の物体がある場面について、第一著者は大きな画像を小さなタイルに切ってから入力するよう勧めています。[rf-detr #350](https://github.com/roboflow/rf-detr/issues/350) また、公式の後処理は「クエリ × クラス」のスコアを平坦化して上位 300 個を取るので、同じボックスが2つのクラスを伴って出てくることがあります。重なったボックスを報告したユーザーもいて、第一著者はデータが十分にあればモデルが自分で避けることを学ぶはずだと答え、Roboflow のエンジニアは出力の後ろに NMS をそのままつなぐよう勧めています。[rf-detr #187](https://github.com/roboflow/rf-detr/issues/187)\n\n次にどこかの検出器が YOLO より速いとうたっているのを見たら、まず遅延を測った節を開いて、NMS の閾値がいくつか、速度と精度を同じモデルファイルで測っているかを確かめてみてください。YOLO の側で NMS をどう扱っているかは、続けて Ultralytics の [YOLO26](/blog/papers/object-detection/yolo26) を読むとわかります。\n","imageSizes":{"/content/papers/assets/10f93bab733752bf97f8b3ed5c86569a2c4d85840b99b338a6443431fb506555.png":{"width":1080,"height":775},"/content/papers/assets/f0e8bf4f9ecad4cb2f090117a18034f54eab8bc3e901414f94864de103d3425a.png":{"width":1005,"height":653},"/content/papers/assets/5d7dc32c6480e109cfe21fc73d7a8f9fbc1a7218232165cc360266eb0d5c9849.png":{"width":788,"height":555}}}
