🚀 DETR (端到端目標檢測) 模型,採用 ResNet - 50 骨幹網絡
DETR(Detection Transformer)模型在 COCO 2017 全景數據集(11.8 萬張標註圖像)上進行了端到端訓練。該模型由 Carion 等人在論文 End-to-End Object Detection with Transformers 中提出,並首次在 此倉庫 中發佈。
免責聲明:發佈 DETR 的團隊並未為此模型編寫模型卡片,此模型卡片由 Hugging Face 團隊編寫。
✨ 主要特性
- 端到端檢測:直接輸出檢測結果,無需複雜的後處理。
- 可擴展性:可自然擴展以執行全景分割任務。
- 基於 Transformer 架構:利用 Transformer 的強大建模能力。
📦 安裝指南
暫未提及安裝步驟,可參考相關依賴庫的官方文檔進行安裝,如 transformers
、torch
等。
💻 使用示例
基礎用法
import io
import requests
from PIL import Image
import torch
import numpy
from transformers import DetrFeatureExtractor, DetrForSegmentation
from transformers.models.detr.feature_extraction_detr import rgb_to_id
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
feature_extractor = DetrFeatureExtractor.from_pretrained("facebook/detr-resnet-50-panoptic")
model = DetrForSegmentation.from_pretrained("facebook/detr-resnet-50-panoptic")
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
processed_sizes = torch.as_tensor(inputs["pixel_values"].shape[-2:]).unsqueeze(0)
result = feature_extractor.post_process_panoptic(outputs, processed_sizes)[0]
panoptic_seg = Image.open(io.BytesIO(result["png_string"]))
panoptic_seg = numpy.array(panoptic_seg, dtype=numpy.uint8)
panoptic_seg_id = rgb_to_id(panoptic_seg)
目前,特徵提取器和模型均支持 PyTorch。
📚 詳細文檔
模型描述
DETR 模型是一個帶有卷積骨幹網絡的編碼器 - 解碼器 Transformer。在解碼器輸出之上添加了兩個頭部以執行目標檢測:一個用於類別標籤的線性層和一個用於邊界框的多層感知機(MLP)。該模型使用所謂的目標查詢來檢測圖像中的目標。每個目標查詢在圖像中尋找特定的目標。對於 COCO 數據集,目標查詢的數量設置為 100。
模型使用“二分匹配損失”進行訓練:將 N = 100 個目標查詢的預測類別和邊界框與真實標註進行比較,真實標註會填充到相同的長度 N(因此,如果一張圖像僅包含 4 個目標,那麼 96 個標註的類別將為“無目標”,邊界框將為“無邊界框”)。使用匈牙利匹配算法在 N 個查詢和 N 個標註之間創建最優的一對一映射。接下來,使用標準的交叉熵(用於類別)和 L1 損失與廣義 IoU 損失的線性組合(用於邊界框)來優化模型的參數。
DETR 可以自然地擴展以執行全景分割,方法是在解碼器輸出之上添加一個掩碼頭部。

預期用途與限制
可以使用原始模型進行全景分割。請參閱 模型中心 以查找所有可用的 DETR 模型。
🔧 技術細節
訓練數據
DETR 模型在 COCO 2017 全景數據集 上進行訓練,該數據集分別包含 11.8 萬張和 5000 張用於訓練和驗證的標註圖像。
訓練過程
預處理
訓練/驗證期間圖像預處理的確切細節可在 此處 找到。
圖像會進行調整大小/縮放,使得最短邊至少為 800 像素,最長邊最多為 1333 像素,並使用 ImageNet 的均值(0.485, 0.456, 0.406)和標準差(0.229, 0.224, 0.225)在 RGB 通道上進行歸一化。
訓練
模型在 16 個 V100 GPU 上訓練了 300 個 epoch。這需要 3 天時間,每個 GPU 處理 4 張圖像(因此總批量大小為 64)。
評估結果
該模型在 COCO 2017 驗證集上取得了以下結果:邊界框平均精度(AP)為 38.8,分割平均精度(AP)為 31.1,全景質量(PQ)為 43.4。
有關評估結果的更多詳細信息,請參考原論文的表 5。
BibTeX 引用和引用信息
@article{DBLP:journals/corr/abs-2005-12872,
author = {Nicolas Carion and
Francisco Massa and
Gabriel Synnaeve and
Nicolas Usunier and
Alexander Kirillov and
Sergey Zagoruyko},
title = {End-to-End Object Detection with Transformers},
journal = {CoRR},
volume = {abs/2005.12872},
year = {2020},
url = {https://arxiv.org/abs/2005.12872},
archivePrefix = {arXiv},
eprint = {2005.12872},
timestamp = {Thu, 28 May 2020 17:38:09 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-2005-12872.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
📄 許可證
本項目採用 Apache - 2.0 許可證。