Idea-CVR ، Idea-Research
Shilong Liu ، Zhaoyang Zeng ، Tianhe Ren ، Feng Li ، Hao Zhang ، Jie Yang ، Chunyuan Li ، Jianwei Yang ، Hang Su ، Jun Zhu ، Lei Zhang ؟ .
[ Paper
] [ Demo
] [ BibTex
]
تنفيذ Pytorch والنماذج المسبقة لتأسيس دينو. لمزيد من التفاصيل ، راجع الورق الأرضي: الزواج من Dino مع التدريب المسبق على الأرض للكشف عن الكائنات مفتوحة .
2023/07/18
: نطلق الدلالي ، نموذج تجزئة الصور العالمي لتمكين القطاع والتعرف على أي شيء في أي تفريغ مطلوب. الرمز ونقطة التفتيش متوفرة!2023/06/17
: نحن نقدم مثالًا لتقييم Dino الأساس على أداء Coco Zero-Shot.2023/04/15
: ارجع إلى السيرة الذاتية في القراءات البرية لأولئك المهتمين بالاعتراف المفتوح!2023/04/08
: نطلق العروض التوضيحية لدمج Dino الأساس مع Gligen لمزيد من تحرير الصور القابلة للتحكم.2023/04/08
: نطلق العروض التوضيحية لدمج دينو الأساس مع الانتشار المستقر لتحرير الصور.2023/04/06
: نحن نبني عرضًا تجريبيًا جديدًا من خلال الزواج من Groundingdino مع أي شيء يهدف إلى أي شيء يهدف إلى دعم أي شيء إلى دعم التجزئة في Groundingdino.2023/03/28
: مقطع فيديو على YouTube حول تأريض دينو والهندسة الأساسية للكشف عن الكائنات الأساسية. [Skalskip]2023/03/28
: أضف عرضًا تجريبيًا على مساحة الوجه المعانقة!2023/03/27
: دعم وضع وحدة المعالجة المركزية فقط. الآن يمكن أن يعمل النموذج على الآلات بدون وحدات معالجة الرسومات.2023/03/25
: يتوفر عرض تجريبي لتأريض دينو في كولاب. [Skalskip]2023/03/22
: الكود متاح الآن!(image, text)
كمدخلات.900
(بشكل افتراضي) مربعات الكائن. كل صندوق له درجات التشابه في جميع كلمات الإدخال. (كما هو مبين في الأشكال أدناه.)box_threshold
.text_threshold
كملصقات متوقعة.dogs
في الجملة two dogs with a stick.
، يمكنك تحديد الصناديق ذات أعلى أوجه تشابه النص مع dogs
كمخرجات نهائية..
لتأريض دينو. ملحوظة:
CUDA_HOME
. سيتم تجميعه بموجب وضع وحدة المعالجة المركزية فقط إذا لم يكن متاحًا CUDA.يرجى التأكد من اتباع خطوات التثبيت بدقة ، وإلا فقد ينتج البرنامج:
NameError: name ' _C ' is not defined
إذا حدث هذا ، فيرجى إعادة تثبيت GroundingDino بواسطة Reclone git والقيام بجميع خطوات التثبيت مرة أخرى.
echo $CUDA_HOME
إذا لم تطبع شيئًا ، فهذا يعني أنك لم تقم بإعداد المسار/
قم بتشغيل هذا حتى يتم تعيين متغير البيئة تحت Shell الحالي.
export CUDA_HOME=/path/to/cuda-11.3
لاحظ أن إصدار CUDA يجب أن يتوافق مع وقت تشغيل CUDA الخاص بك ، لأنه قد يكون هناك CUDA متعددة في نفس الوقت.
إذا كنت ترغب في تعيين CUDA_HOME بشكل دائم ، قم بتخزينه باستخدام:
echo ' export CUDA_HOME=/path/to/cuda ' >> ~ /.bashrc
بعد ذلك ، مصدر ملف bashrc والتحقق من cuda_home:
source ~ /.bashrc
echo $CUDA_HOME
في هذا المثال ، يجب استبدال/pathpath/to/cuda-11.3 بالمسار الذي يتم فيه تثبيت مجموعة أدوات CUDA الخاصة بك. يمكنك العثور على هذا عن طريق كتابة NVCC في محطةك:
على سبيل المثال ، إذا كان الإخراج/usr/local/cuda/bin/nvcc ، ثم:
export CUDA_HOME=/usr/local/cuda
تثبيت:
1. فضح مستودع github github من github.
git clone https://github.com/IDEA-Research/GroundingDINO.git
cd GroundingDINO/
pip install -e .
mkdir weights
cd weights
wget -q https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth
cd ..
تحقق من معرف GPU الخاص بك (فقط إذا كنت تستخدم وحدة معالجة الرسومات)
nvidia-smi
استبدل {GPU ID}
، image_you_want_to_detect.jpg
، و "dir you want to save the output"
بالقيم المناسبة في الأمر التالي
CUDA_VISIBLE_DEVICES={GPU ID} python demo/inference_on_a_image.py
-c groundingdino/config/GroundingDINO_SwinT_OGC.py
-p weights/groundingdino_swint_ogc.pth
-i image_you_want_to_detect.jpg
-o " dir you want to save the output "
-t " chair "
[--cpu-only] # open it for cpu mode
إذا كنت ترغب في تحديد العبارات التي يجب اكتشافها ، فإليك عرضًا توضيحيًا:
CUDA_VISIBLE_DEVICES={GPU ID} python demo/inference_on_a_image.py
-c groundingdino/config/GroundingDINO_SwinT_OGC.py
-p ./groundingdino_swint_ogc.pth
-i .asset/cat_dog.jpeg
-o logs/1111
-t " There is a cat and a dog in the image . "
--token_spans " [[[9, 10], [11, 14]], [[19, 20], [21, 24]]] "
[--cpu-only] # open it for cpu mode
تحدد token_spans المواضع البدء والنهاية للعبارات. على سبيل المثال ، العبارة الأولى هي [[9, 10], [11, 14]]
. "There is a cat and a dog in the image ."[9:10] = 'a'
، "There is a cat and a dog in the image ."[11:14] = 'cat'
وبالتالي فإنه يشير إلى عبارة a cat
. وبالمثل ، يشير [[19, 20], [21, 24]]
إلى عبارة a dog
.
راجع demo/inference_on_a_image.py
لمزيد من التفاصيل.
الجري مع بيثون:
from groundingdino . util . inference import load_model , load_image , predict , annotate
import cv2
model = load_model ( "groundingdino/config/GroundingDINO_SwinT_OGC.py" , "weights/groundingdino_swint_ogc.pth" )
IMAGE_PATH = "weights/dog-3.jpeg"
TEXT_PROMPT = "chair . person . dog ."
BOX_TRESHOLD = 0.35
TEXT_TRESHOLD = 0.25
image_source , image = load_image ( IMAGE_PATH )
boxes , logits , phrases = predict (
model = model ,
image = image ,
caption = TEXT_PROMPT ,
box_threshold = BOX_TRESHOLD ,
text_threshold = TEXT_TRESHOLD
)
annotated_frame = annotate ( image_source = image_source , boxes = boxes , logits = logits , phrases = phrases )
cv2 . imwrite ( "annotated_image.jpg" , annotated_frame )
ويب واجهة المستخدم
نقدم أيضًا رمزًا تجريبيًا لدمج Grounding Dino مع Gradio Web UI. انظر الملف demo/gradio_app.py
لمزيد من التفاصيل.
دفاتر
نحن نقدم مثالًا لتقييم أداء Dino Zero-Shot على Coco. يجب أن تكون النتائج 48.5 .
CUDA_VISIBLE_DEVICES=0
python demo/test_ap_on_coco.py
-c groundingdino/config/GroundingDINO_SwinT_OGC.py
-p weights/groundingdino_swint_ogc.pth
--anno_path /path/to/annoataions/ie/instances_val2017.json
--image_dir /path/to/imagedir/ie/val2017
اسم | العمود الفقري | بيانات | صندوق AP على Coco | نقطة التفتيش | تكوين | |
---|---|---|---|---|---|---|
1 | groundingdino-t | سوين-تي | O365 ، Goldg ، Cap4m | 48.4 (صفر طلقة) / 57.2 (صفر) | رابط جيثب | رابط HF | وصلة |
2 | GroundingDino-B | Swin-B | Coco ، O365 ، Goldg ، Cap4m ، OpenImage ، Odinw-35 ، Refcoco | 56.7 | رابط جيثب | رابط HF | وصلة |
يشمل: العمود الفقري النص ، العمود الفقري للصور ، مُحسّن للميزات ، اختيار استعلام موجه اللغة ، وفك تشفير الوحدات المتقاطعة.
يرتبط نموذجنا بـ Dino و Glip. شكرا لعملهم العظيم!
كما نشكر الأعمال السابقة الرائعة بما في ذلك detr و detr deformable و SMCA و DETR الشرطية أو مرساة DETR و DINDYC DETR و DAB-DET و DN-DETR ، وما إلى ذلك. تتوفر المزيد من الأعمال ذات الصلة في محول الكشف الرائع. يتوفر صندوق أدوات جديد أيضًا.
شكرا انتشار مستقر و gligen لنماذجهم الرائعة.
إذا وجدت عملنا مفيدًا لبحثك ، فيرجى التفكير في ذكر إدخال Bibtex التالي.
@article { liu2023grounding ,
title = { Grounding dino: Marrying dino with grounded pre-training for open-set object detection } ,
author = { Liu, Shilong and Zeng, Zhaoyang and Ren, Tianhe and Li, Feng and Zhang, Hao and Yang, Jie and Li, Chunyuan and Yang, Jianwei and Su, Hang and Zhu, Jun and others } ,
journal = { arXiv preprint arXiv:2303.05499 } ,
year = { 2023 }
}