模型概述
模型特點
模型能力
使用案例
🚀 DETR(端到端目標檢測)模型,採用ResNet - 101骨幹網絡
DETR(Detection Transformer)模型在COCO 2017全景數據集(11.8萬張標註圖像)上進行了端到端訓練。該模型由Carion等人在論文End-to-End Object Detection with Transformers中提出,並首次在此倉庫發佈。
聲明:發佈DETR的團隊未為此模型撰寫模型卡片,本模型卡片由Hugging Face團隊編寫。
🚀 快速開始
你可以使用此原始模型進行全景分割。查看模型中心以查找所有可用的DETR模型。
from transformers import DetrFeatureExtractor, DetrForSegmentation
from PIL import Image
import requests
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-101-panoptic')
model = DetrForSegmentation.from_pretrained('facebook/detr-resnet-101-panoptic')
# prepare inputs for the model
inputs = feature_extractor(images=image, return_tensors="pt")
# forward pass
outputs = model(**inputs)
# use the `post_process_panoptic` method of `DetrFeatureExtractor` to convert to COCO format
processed_sizes = torch.as_tensor(inputs["pixel_values"].shape[-2:]).unsqueeze(0)
result = feature_extractor.post_process_panoptic(outputs, processed_sizes)[0]
# the segmentation is stored in a special-format png
panoptic_seg = Image.open(io.BytesIO(result["png_string"]))
panoptic_seg = numpy.array(panoptic_seg, dtype=numpy.uint8)
# retrieve the ids corresponding to each mask
panoptic_seg_id = rgb_to_id(panoptic_seg)
目前,特徵提取器和模型均支持PyTorch。
✨ 主要特性
- 端到端檢測:DETR模型通過端到端的方式進行目標檢測,避免了傳統目標檢測方法中複雜的後處理步驟。
- 可擴展性:該模型可以自然地擴展到全景分割任務,只需在解碼器輸出之上添加一個掩碼頭。
- 基於Transformer架構:採用編碼器 - 解碼器Transformer架構,結合卷積骨幹網絡,能夠更好地捕捉圖像中的全局信息。
📦 安裝指南
文檔未提供安裝步驟,可參考Hugging Face相關庫的安裝說明進行安裝,例如transformers
庫可以使用以下命令安裝:
pip install transformers
💻 使用示例
基礎用法
from transformers import DetrFeatureExtractor, DetrForSegmentation
from PIL import Image
import requests
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-101-panoptic')
model = DetrForSegmentation.from_pretrained('facebook/detr-resnet-101-panoptic')
# prepare inputs for the model
inputs = feature_extractor(images=image, return_tensors="pt")
# forward pass
outputs = model(**inputs)
# use the `post_process_panoptic` method of `DetrFeatureExtractor` to convert to COCO format
processed_sizes = torch.as_tensor(inputs["pixel_values"].shape[-2:]).unsqueeze(0)
result = feature_extractor.post_process_panoptic(outputs, processed_sizes)[0]
# the segmentation is stored in a special-format png
panoptic_seg = Image.open(io.BytesIO(result["png_string"]))
panoptic_seg = numpy.array(panoptic_seg, dtype=numpy.uint8)
# retrieve the ids corresponding to each mask
panoptic_seg_id = rgb_to_id(panoptic_seg)
📚 詳細文檔
模型描述
DETR模型是一個帶有卷積骨幹網絡的編碼器 - 解碼器Transformer。為了進行目標檢測,在解碼器輸出之上添加了兩個頭部:一個用於類別標籤的線性層和一個用於邊界框的MLP(多層感知器)。該模型使用所謂的對象查詢來檢測圖像中的對象,每個對象查詢在圖像中尋找特定的對象。對於COCO數據集,對象查詢的數量設置為100。
模型使用“二分匹配損失”進行訓練:將N = 100個對象查詢的預測類別和邊界框與真實標註進行比較,真實標註會填充到相同的長度N(因此,如果一張圖像僅包含4個對象,那麼96個標註的類別將為“無對象”,邊界框為“無邊界框”)。使用匈牙利匹配算法在N個查詢和N個標註之間創建最優的一對一映射。接下來,使用標準的交叉熵(用於類別)和L1與廣義IoU損失的線性組合(用於邊界框)來優化模型的參數。
預期用途和侷限性
可以使用此原始模型進行全景分割。
訓練數據
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)為40.1,分割平均精度(AP)為33,全景質量(PQ)為45.1。
有關評估結果的更多詳細信息,請參考原論文中的表5。
🔧 技術細節
- 模型架構:DETR模型由卷積骨幹網絡、編碼器 - 解碼器Transformer、類別標籤線性層和邊界框MLP組成。卷積骨幹網絡用於提取圖像的特徵,Transformer用於處理這些特徵並生成對象查詢,線性層和MLP用於預測對象的類別和邊界框。
- 損失函數:使用“二分匹配損失”,結合交叉熵損失和L1與廣義IoU損失的線性組合,確保模型能夠準確地預測對象的類別和邊界框。
- 訓練策略:在多個GPU上進行分佈式訓練,使用特定的圖像預處理方法和批量大小,以提高訓練效率和模型性能。
📄 許可證
本模型採用Apache - 2.0許可證。
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}
}
📋 信息表格
屬性 | 詳情 |
---|---|
模型類型 | 端到端目標檢測模型,可擴展到全景分割任務 |
訓練數據 | COCO 2017全景數據集,包含11.8萬張訓練圖像和5000張驗證圖像 |
骨幹網絡 | ResNet - 101 |
訓練設備 | 16個V100 GPU |
訓練輪數 | 300個epoch |
批量大小 | 64 |
評估指標(COCO 2017驗證集) | 邊界框AP:40.1;分割AP:33;PQ:45.1 |











