OV-DINO开放词检测环境安装与推理

引子

开放词检测,之前分享过一篇YOLO-World的文章,感兴趣同学请移步(YOLO-World环境搭建&推理测试_yoloworld 检测-CSDN博客),最近,由中山大学和美团联合提出新的开放域检测方法OV-DINO:基于语言感知选择性融合、统一的开放域检测方法,取得了开放域检测新SOTA!目前开源性能最强的开放域检测模型!(比GroundingDINO高12.7% AP!比 YOLO-World 高4.7%AP

一、模型介绍

开放词汇检测是一项具有挑战性的任务,因为它需要根据类名检测对象,包括训练期间未遇到的对象。现有方法通过对各种大规模数据集进行预训练和伪标记,表现出强大的零样本检测能力。然而,这些方法面临两个主要挑战:

(1)如何有效地消除伪标记带来的数据噪声;

(2)如何有效地利用语言感知能力进行区域级跨模态融合和对齐。

为了应对这些挑战,作者提出了一种新的统一开放词汇检测方法,称为OV-DINO,该方法在统一框架中对各种大规模数据集进行预训练,并使用语言感知选择性融合。具体来说,引入了统一数据集成(UniDI)管道,通过将不同的数据源统一为以检测为中心的数据格式,实现端到端训练并消除伪标签生成带来的噪音。此外,作者提出了一种语言感知选择性融合 (LASF) 模块,通过语言感知查询选择和融合过程来增强跨模态对齐。在流行的开放词汇检测基准上评估了所提出的 OV-DINO 的性能,在零样本方式下,在 COCO 基准上实现了 50.6% 的 AP,在 LVIS 基准上实现了 40.1% 的 AP,展示了其强大的泛化能力。此外,经过微调的 OV-DINO 在 COCO 上实现了 58.4% 的 AP,优于许多具有相同主干的现有方法。

二、环境搭建

代码下载

git clone https://github.com/wanghao9610/OV-DINO.git

下载模型

docker run -it --rm -v /datas/work/zzq/:/workspace --gpus=all --net host pytorch/pytorch:1.13.1-cuda11.6-cudnn8-devel bash

bert模型:google-bert/bert-base-uncased at main

ov-dino模型:https://huggingface.co/hao9610/OV-DINO/resolve/main/ovdino_swint_ogc-coco50.2_lvismv40.1_lvis32.9.pth

环境安装

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 Simple Index

pip install -e ./ -i Simple Index

python -m pip install numpy==1.25 -i Simple Index

三、推理测试

修改代码

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文件,https://cdn-media.huggingface.co/frpc-gradio-0.2/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,

重新执行

网页打开,最终效果如图:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/783890.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery-Mobile-高级教程-全-

jQuery Mobile 高级教程(全)原文:Pro jQuery Mobile 协议:CC BY-NC-SA 4.0零、简介 我们目前正在见证企业和个人构建和分发移动应用的方式的转变。最初的策略是为每个主要平台构建单独的原生应用。然而,团队很快意识到维护多个平台是不可持续的,因为移动团队失去了灵活性…

社区胜于代码,我们在阿帕奇软件基金会亚洲大会聊了聊开源中间件的未来

今年我们在大会第一天的主论坛做了《阿里云中间件持续进化:从分布式应用架构向云原生 AI 应用架构全面升级》的演讲,从云厂商的视角分享了贡献开源、推动社区发展的过程。开发者们在开源社区建立起信任,信任是万事的第一步。 为期 3 天的阿帕奇软件基金会亚洲大会(CoC Asia…

JOOQ-入门手册-全-

JOOQ 入门手册(全)原文:Beginning jOOQ 协议:CC BY-NC-SA 4.0一、欢迎使用 jOOQ 我 15 岁开始从事软件工程(实际上,是严肃的计算机业务),使用 Oracle 8i SQL。是的,从技术上来说,我从小就是个老人了。在我开始上大学之前,玩 SQL* Plus,尝试(并失败)我的第一次 Oracle…

JavaScript-正则表达式入门指南-全-

JavaScript 正则表达式入门指南(全)原文:Introducing Regular Expressions 协议:CC BY-NC-SA 4.0一、正则表达式简介 为了开始介绍正则表达式,我将从一个例子开始。这是一个你已经经历了几百次的问题。当您在线输入客户数据时,许多 web 表单会要求您提供电子邮件地址。为…

基于surging的产品项目-木舟开源了!

一 、 概述因为前段时间电脑坏了,导致代码遗失,踌躇满志马上上线的平台产品付之东流,现在熬夜在写代码希望能尽快推出企业正常使用的平台产品,而这次把代码开源,一是让大家对surging 使用有个深入的了解,二也是开源社区起到监督推动作用,底层的代码基本上已经完成,比如…

SimpleRAG:基于WPF与Semantic Kernel实现的一个简单的RAG应用

SimpleRAG:基于WPF与Semantic Kernel实现的一个简单的RAG应用。SimpleRAG介绍 SimpleRAG是基于WPF与Semantic Kernel实现的一个简单的RAG应用,可用于学习与理解如何使用Semantic Kernel构建RAG应用。 GitHub地址:https://github.com/Ming-jiayou/SimpleRAG 主要功能 AI聊天 …

粒子群算法中对于惯性权重的改进

惯性权重w体现的是粒子继承先前的速度的能力,Shi,Y最先将惯性权重w引入到粒子群算法中,并分析指出一个较大的惯性权值有利于全局搜索,而一个较小的权值则更利于局部搜索。因此,在迭代适应度的同时对惯性权重进行迭代有利于帮助我们寻找最优解 目录一、线性递减惯性权重1.迭…

Git教程2

六、Git的工作区域和文件状态 1、工作区域: (1) 工作区(Working Directory):电脑上可以看到的目录,即实际操作的目录。车间 (2) 暂存区(Staging Area/Index):保存即将提交到Git仓库的修改内容。运输工具 Cache (3) 本地仓库(Local Repository):存储代码和版本信息的主要位…

JavaScript-快速语法参考-全-

JavaScript 快速语法参考(全)原文:JavaScript Quick Syntax Reference 协议:CC BY-NC-SA 4.0一、使用 JavaScript 要开始试验 JavaScript,您应该安装一个支持这种语言的集成开发环境(IDE)。有很多不错的选择,比如 NetBeans、Eclipse、Visual Studio、括号。在本书中,我们…

一个方便下载pdb调试符号的小工具Microsoft.PdbDownloader

在调试Windows的系统组件时,如果能够正确使用pdb文件,能够对调试有非常大的帮助。一般情况下,我们是使用windbg来自动下载符号文件,但是有时候对一些简单的需求来说,用windbg反而比较麻烦。比如我现在有一个PE文件,就想只下载它的pdb文件到当前目录,需求看似简单,但是却…

SpringBoot系列:使用原生JDBC实现对数据库的增删改查

在springboot中使用原生JDBC实现对数据库的增删改查application.ymlspring:datasource:username: rootpassword: 123456url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8driver-class-name: com.mysql.cj.jdbc.…

tp1200触摸屏画面光标使用方法

1:点击画面空白处 2:编辑Tab排序,就是首次显示当前画面时,光标处于光标为1的对象上 3:当IC卡具备Enter点击功能时,可以直接使用刷卡去触发这个按钮 *******************************************************************************************************1:激活屏幕…