引子
开放词检测,之前分享过一篇YOLO-World的文章,感兴趣同学请移步(
一、模型介绍
开放词汇检测是一项具有挑战性的任务,因为它需要根据类名检测对象,包括训练期间未遇到的对象。现有方法通过对各种大规模数据集进行预训练和伪标记,表现出强大的零样本检测能力。然而,这些方法面临两个主要挑战:
(1)如何有效地消除伪标记带来的数据噪声;
(2)如何有效地利用语言感知能力进行区域级跨模态融合和对齐。
为了应对这些挑战,作者提出了一种新的统一开放词汇检测方法,称为OV-DINO,该方法在统一框架中对各种大规模数据集进行预训练,并使用语言感知选择性融合。具体来说,引入了统一数据集成(UniDI)管道,通过将不同的数据源统一为以检测为中心的数据格式,实现端到端训练并消除伪标签生成带来的噪音。此外,作者提出了一种语言感知选择性融合 (LASF) 模块,通过语言感知查询选择和融合过程来增强跨模态对齐。在流行的开放词汇检测基准上评估了所提出的 OV-DINO 的性能,在零样本方式下,在 COCO 基准上实现了 50.6% 的 AP,在 LVIS 基准上实现了 40.1% 的 AP,展示了其强大的泛化能力。此外,经过微调的 OV-DINO 在 COCO 上实现了 58.4% 的 AP,优于许多具有相同主干的现有方法。
二、环境搭建
代码下载
git clone
下载模型
docker run -it --rm -v /datas/work/zzq/:/workspace --gpus=all --net host pytorch/pytorch:1.13.1-cuda11.6-cudnn8-devel bash
bert模型:
ov-dino模型:
环境安装
docker run -it -v /datas/work/zzq/:/workspace --gpus=all pytorch/pytorch:1.13.1-cuda11.6-cudnn8-devel bash
cd /workspace/OV-DINO/OV-DINO-main/ovdino
(1)安装gcc-9
apt update
apt install software-properties-common
add-apt-repository ppa:ubuntu-toolchain-r/test
apt install gcc-9 g++-9
cd /usr/bin/
sudo ln -s gcc-9 gcc
sudo ln -s g++-9 g++
(2)安装detectron2
export PATH=/usr/local/cuda/bin:$PATH
python -m pip install -e detectron2-717ab9 -i
pip install -e ./ -i
python -m pip install numpy==1.25 -i
三、推理测试
修改代码
sh scripts/demo.sh projects/ovdino/configs/ovdino_swin_tiny224_bert_base_infer_demo.py ovdino_swint_ogc-coco50.2_lvismv40.1_lvis32.9.pth "class0 class1 class2 class3" demo/imgs/000000017714.jpg img0_vis.jpg
修改代码
执行
scripts/app.sh projects/ovdino/configs/ovdino_swin_tiny224_bert_base_infer_demo.py ovdino_swint_ogc-coco50.2_lvismv40.1_lvis32.9.pth
报错如下:
(1)先按照提示,下载frpc_linux_amd64文件,
(2)重命名为frpc_linux_amd64_v0.2, 并放入gradio(/opt/conda/lib/python3.10/site-packages/gradio)这个文件夹中(按你对应的,每个人的路径可能不一样)
(3)给gradio下的frpc_linux_amd64_v0.2文件增加权限 chmod +x /opt/conda/lib/python3.10/site-packages/gradio/frpc_linux_amd64_v0.2,
重新执行
网页打开,最终效果如图: