pytorch 49 GroundingDINO导出为onnx模型实现python与c++部署

devtools/2024/11/24 11:10:45/

本博文实现了在win环境下,将GroundingDINO模型导出为onnx模型,并基于cmakelist生成c++项目实现模型的部署。并分析了官方项目为什么不能直接导出onnx,主要基于https://github.com/wenyi5608/GroundingDINO项目公开的代码实现项目,只是补充了c++配置项,实现了模型转tensorrt格式。

在600x600的输入下,3060显卡,torch推理、python-onnx、c+±onxx推理速度均在0.1s左右。将模型转换为tensorrt后基于trtexec 工具测速,发现可以达到50ms一张图,后续将实现tensorrt c++的部署。

1、项目差异分析

1.1 IDEA-Research

项目地址:https://github.com/IDEA-Research/GroundingDINO

外层推理代码:
可以发现是直接将image和text输入到模型,基于这种方式是无法导出onnx模型

    caption = preprocess_caption

http://www.ppmy.cn/devtools/136534.html

相关文章

libgui中的BufferQueueProducer加入堆栈CallStack编译报错问题-大厂企业实战项目难题

背景: 针对调试和分析某个模块的源码时候,经常需要对某个方法进行堆栈的打印,java相关的代码都没啥问题,大家都可以很正常的打印出来,但是一些native的模块就不是那么顺利了。 大家可能会说,马哥你不是介…

I.MX6U 裸机开发18.GPT定时器实现高精度延时

I.MX6U 裸机开发18.GPT定时器实现高精度延时 一、GPT定时器简介1. GPT 功能2. 时钟源3. 框图4. 运行模式(1)Restart mode(2)Free-Run Mode 5. 中断类型(1)溢出中断 Rollover Interrupt(2&#x…

websocket消息的实现

1. 创建 WebSocket 连接 WebSocket 是通过 WebSocket 对象建立的。连接成功后,前端可以与服务器双向通信。 const socket new WebSocket(ws://your-server-url);// 监听连接建立 socket.onopen () > {console.log(WebSocket connection established);// 可以…

SELinux知识点

SELinux 软件安全性 《关于UNIX的安全》中Dennis Ritchie提到:“首先要面对的事实是,UNIX的开发者并没有考虑安全问题,单这一点就单会引发大量的漏洞”。主要是因为防火墙通常不具备查杀病毒的能力,只能对数据包过滤&#xff0c…

Mac设置java环境变量

Mac电脑中存在多个jdk版本,如何配置java环境变量为指定版本jdk? 一、查看所有已安装的 JDK 版本 /usr/libexec/java_home -V二、临时设置 export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)三、永久设置 如果需要永久使用指定版

计算机网络的初步认识

文章目录 一、初识计算机网络1.1、基本概念和特点1.1.1、基本概念1.1.2、特点1.2、分类1.3、性能指标1.4、体系结构1.4.1、体系结构的基本认识1.4.2、TCP/IP的深入认识二、初始互联网2.1、互联网概念和特点2.1.1、概念2.1.2、特点2.2、互联网组成2.2.1、边缘部分2.2.2、核心部分…

微网能量管理研究

微网能量管理研究的重点 微网系统的建模 建立分布式能源单元模型以及微网系统的整体运行、协调控制和优化配置等方面的模型 分布式电源控制策略 微网内分布式电源及储能系统运行依赖于电力电子接口技术,需要相应的充放电控制策略 再生能源发电预测 准确预测太阳能…

Redis分布式锁的原理与Redisson实现

Redis分布式锁的原理与Redisson实现 目录 引言Redis分布式锁的基本原理Redisson实现Redis分布式锁Redisson分布式锁的使用示例小结 引言 在分布式系统中,多个服务实例同时访问共享资源时,可能会导致数据不一致或竞争条件。为了解决这些问题&#xff…