部署记录 win10 trt yolov4-tiny

11 篇文章 0 订阅

目标

1.JNI(JAVA)调用推理模型dll(C++),dll至少包括三个接口(模型初始化、推理、释放),先用c++自调测试 √
2.TRT及TF双加载模型(参数项)(暂TRT)
3.多模型挂载 √
4.相机SDK调用 (暂不需要)
5.npp替代opencv完成图片preprocess加速 (无必要)

1.环境

已有硬件及环境:RTX2080TI,cuda11.4,VS2019
需要安装环境:opencv(4.5.4),tensorrt(8.2.1.8),相关相机SDK

2.先跑darknet yolov4(win10+cmake3.24.2+vs2019)

2.1 readme

darknet windows部署流程

2.2 cmake编译

cmake不通
参考 – VS2019安装时差组件
不玩cmake了,看起来是要重装cuda
参考 – cudacxx CUDA not found

2.3 VS编译

darknet run v4 参考
cuda 配置参考
在这里插入图片描述
A: tiny也能跑通

2.4 darknet.c

如果要做封装改写的话基于这个文件,对我是没啥用了

3.darknet trt yolov4

3.1 readme

1.基于https://github.com/enazoe/yolo-tensorrt
2.基于tensorrtx yolov4改写

3.2 enazoe yolo-tensorrt

参考 – WIN10安装trt
master branch 没有trt8
trt8 branch 没有v4-tiny
整合了v4-tiny+trt8 百度网盘 提取码:bsh6
不知道为什么要封装这么多层,自己抽出来重构(简写)了一遍
环境:WIN10,Tensorrt8.2.1.8,cuda11.4,cudnn8.5,
基于AlexeyAB/darknet
在这里插入图片描述

3.3 编译问题记录


1._SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING 添加到C/C++/预处理器/预处理器定义

2.在附加目录记得加上common和extra文件夹里的.h文件

3.项目右键生成依赖项/生成自定义/cuda选上

4.如果.cu文件没有配置cuda编译器的话 VCXPROJ文件中 该项为None Complier 右键 “xxx.cpp" 源文件→ 属性→ 配置属性→ 常规→ 项类型→ 设置为“CUDA C/C++5.API.h 用于DLL
#ifdef API_EXPORTS

#if defined(_MSC_VER)
#define API __declspec(dllexport) 
#else
#define API __attribute__((visibility("default")))
#endif
……

API_EXPORTS 可直接定义在prop中,在C/C++/预处理器/预处理定义中添加就可以 不需要赋值
__declspec(dllexport) 用于制作dll文件时 主文件会调用该dll的函数//结构体 在该函数//结构体前加上 __declspec(dllexport) 在本项目中 将__declspec(dllexport)定义为API

6. 无法找到cuda_runtime_api.h
先完成3,然后属性/cuda c/c++/Common/additional include dir加上系统cuda include

7. hpp是不能直接成dll的 要拆掉

8. 只有dll没有lib:工程右键->添加->新建项->模块定义文件,工程右键->属性->连接器->输入->模块定义文件

4. 加速方案

4.1 OPENCV->NPP编译选项及测试

试一下NPP和cv的resize函数
NPP不能直接调用,需要在链接库指定下npp*.lib,跟opencv一样
在这里插入图片描述

4.1.1 测试相关preprocess函数替换效果及对比

折腾半天原来只有resize是在cpu里做的 上图就是结果了

4.2 最快方案应该是SDK读图后直接将data放到GPU用cuda resize之后给context

5.转换效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值