Idea-Cvr, идей-исследователь
Шилонг Лю, Чжаоян Зенг, Тянхе Рен, Фенг Ли, Хао Чжан, Цзе Ян, Чунюань Ли, Цзяньвей Ян, Ханг Су, Джун Чжу, Лей Чжан ? Полем
[ Paper
] [ Demo
] [ BibTex
]
Реализация Pytorch и предварительные модели для заземления DINO. Для получения подробной информации см. Бумажную заземленную дино: жениться на дино с заземленным предварительным тренировком для обнаружения объекта с открытым набором .
2023/07/18
: мы выпускаем Semantic-Sam, универсальную модель сегментации изображений, чтобы включить сегмент и распознавать что-либо при любой желаемой гранулярности. Код и контрольная точка доступны!2023/06/17
: Мы приводим пример для оценки заземления DINO на производительности Coco Zero.2023/04/15
: см. CV в диких чтениях для тех, кто заинтересован в признании открытых наборов!2023/04/08
: мы выпускаем демонстрации, чтобы объединить заземление DINO с Gligen для более управляемого редактирования изображений.2023/04/08
: мы освобождаем демонстрации, чтобы объединить заземление DINO со стабильной диффузией для редактирования изображений.2023/04/06
: Мы строим новую демонстрацию, женившись на Granceingdino с любым сегментом, названным заземленным сегментом-все направлены на поддержку сегментации в Groundingdino.2023/03/28
: видео на YouTube о заземлении Dino и базовых подсказков обнаружения объектов. [Скалскип]2023/03/28
: Добавьте демонстрацию в обтягивающее пространство для лица!2023/03/27
: поддержка режима только для процессора. Теперь модель может работать на машинах без графических процессоров.2023/03/25
: демо для заземления Dino доступна в Colab. [Скалскип]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
Если это произошло, пожалуйста, переустановите заземление, перекончив GIT и сделайте все шаги установки снова.
echo $CUDA_HOME
Если он ничего не печатает, то это означает, что вы не настроили путь/
Запустите это, чтобы переменная среды была установлена в соответствии с оболочкой.
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
В этом примере/PATH/TO/CUDA-11.3 должен быть заменен путем, на котором установлен ваш инструментарий CUDA. Вы можете найти это, набрав, какой NVCC в вашем терминале:
Например, если выход/usr/local/cuda/bin/nvcc, то:
export CUDA_HOME=/usr/local/cuda
Установка:
1.clone репозиторий заземления от 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
для получения более подробной информации.
Бег с Python:
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 )
Веб -интерфейс
Мы также предоставляем демонстрационный код для интеграции заземления DINO с веб -интерфейсом Gradio. См. Файл 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 | SWIN-T | O365, Goldg, Cap4m | 48.4 (нулевой выстрел) / 57,2 (тонкая настройка) | Ссылка GitHub | Ссылка HF | связь |
2 | Groundingdino-B | SWIN-B | Coco, O365, Goldg, Cap4m, OpenMage, Odinw-35, Refcoco | 56.7 | Ссылка GitHub | Ссылка HF | связь |
Включает в себя: основу для текста, основу изображения, усилитель функции, выбор запросов с языком и декодер поперечной модальности.
Наша модель связана с Дино и Глипком. Спасибо за отличную работу!
Мы также благодарим отличную предыдущую работу, включая DETR, деформируемый DETR, SMCA, условную DETR, Anchor DETR, Dynamic DETR, DAB-DETR, DN-DETR и т. Д., В Awesome Degencection Detection доступна дополнительная работа. Также доступен новый DetRex для инструментов.
Спасибо стабильной диффузии и глиген за их потрясающие модели.
Если вы обнаружите, что наша работа полезна для вашего исследования, пожалуйста, рассмотрите возможность сослаться на следующую запись 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 }
}