# tensorrt-infer
**Repository Path**: wangzhenlin_123/tensorrt-infer
## Basic Information
- **Project Name**: tensorrt-infer
- **Description**: 一个通用的tensorrt推理框架,后续会支持更多方向的前后处理cuda实现
- **Primary Language**: C++
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 2
- **Created**: 2023-07-25
- **Last Updated**: 2023-07-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 介绍:一个全由cuda+tensorrt+cxx编写的模型预处理以及模型加速推理仓库,使用用例在main.py中均有
# 预处理
- 原始图片(810*1080)
- ## 仿射变换接口
```c++
static std::string img_dir = "../bus.jpg";
cv::Mat img = cv::imread(img_dir);
cv::Size output_size = cv::Size(640, 640);
//仿射变换30代表旋转角度,顺时针,1代表图像的模式,1:BGR,2:RGB;
cv::Mat img2 = handle::pretreatment::Affine_transformation(img, output_size,30,2);
cv::imwrite("../bus-Affine_transformation.jpg", img2);
// use objs to draw to image.
```
- 变换后的效果(640*640)
- ## HWC转CHW,CHW转HWC
```c++
img2 = handle::pretreatment::HWC2CHW(img2);//HWC转CHW
img2 = handle::pretreatment::CHW2HWC(img2);//CHW转HWC
```
- ## 归一化
```c++
auto img_data=handle::pretreatment::Normalization(img2,255);//归一化
```
# 模型推理
- ## 生成engine
`trtexec --onnx=yolov5s.onnx --saveEngine=yolov5s.engine`
- ## tensorrt
```c++
/////////////////////////////参数声明///////////////////////
int input_height=640;
int input_width=640;
//////////////////////////datasets//////////////////////////
int batch=2;
int channel=3;
vector input_data(batch*channel*input_height*input_width);
for(int i=0;i