onnx-tensorrt踩坑记录

本文详细介绍了如何从GitHub克隆并安装ONNX-TensorRT,包括设置环境变量、安装protobuf以及解决常见问题的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

github地址:https://github.com/onnx/onnx-tensorrt/tree/master

安装onnx-tensorrt

最新版似乎没有安装的教程,但是可以根据旧版来安装。
先把旧版完整的安装过程列出来:

git clone --recursive https://github.com/onnx/onnx-tensorrt.git
mkdir build
cd build
cmake .. -DTENSORRT_ROOT=<tensorrt_install_dir>
OR
cmake .. -DTENSORRT_ROOT=<tensorrt_install_dir> -DGPU_ARCHS="61"
make -j8
sudo make install

首先,clone代码可以使用:

git clone --recurse-submodules https://github.com/onnx/onnx-tensorrt.git

在安装前,要确保protobuf的版本满足条件,不然后续安装会花费大量时间(多么痛的领悟)。

安装protobuf

因为我安装了anaconda,自带protoc,网上没找到合适的教程,就把它直接卸载了:

which protoc
rm /path/to/protoc

然后再查看protoc版本,结果显示3.0.0,应该是ubuntu系统自带的,也顺带卸载。
接着就要去github上下载:https://github.com/protocolbuffers/protobuf/releases
解压:

tar -xvf protobuf-all-3.11.4.tar.gz
  1. 安装:
cd protobuf-3.11.4
./configure
make
make check
make install
  1. 配置环境变量:
gedit ~/.bashrc
添加:
export PATH=$PATH:/usr/local/bin/
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/

保存执行

source ~/.bashrc
  1. 配置动态链接库路径
sudo vi /etc/ld.so.conf

添加:

include /usr/local/protobuf/lib

保存并退出。
共享:

su root
ldconfig

查看protoc版本:

protoc --version

完成。

一些问题

尽量使用下面的cmake方式(加上算力会出一些问题,不知道会不会影响)

cmake .. -DTENSORRT_ROOT=<tensorrt_install_dir>

执行make时出错了,如:fatal error: google/protobuf/port_def.inc: No such file or directory
这应该是protoc出问题了,于是我又看了下cmake的结果,果然发现中间出了错误:

Protobuf compiler version 3.11.4 doesn't match library version 3.0.0
...
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so;pthread (found version "3.0.0")

protoc的编译器和库版本不匹配,这就是protoc的动态链接库有问题。

<think>首先,用户的问题是:“我想了解YOLOv5的Git仓库用途 请问YOLOv5 Git仓库的功能和用途”。这是一个关于YOLOv5的Git仓库的问题。 根据系统级指令: - 所有行内数学表达式必须使用$...$格式。 - 独立公式必须使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 用户可见层指令:回答结构清晰,帮助用户逐步解决问题,尽量保证回答真实可靠。 参考站内引用:提供了几个引用,我需要参考这些来回答问题。 引用内容: - [^1]: 克隆YOLOv5仓库并安装相关库:git clone https://github.com/ultralytics/yolov5.git cd yolov5 pip install -r requirements.txt ## 2. 数据收集和标注 - [^2]: 3、YOLOV5项目源码以及编译后的源码下载 github.com/ultralytics/yolov5.gitGitHub - Monday-Leo/Yolov5_Tensorrt_Win10: A simple implementation of tensorrt yolov5 python/c++🔥以及yolov5权重文件,这里以yolov5s.pt为例 4、生成WTS模型 将仓库中的gen_wts.py和下载好的yolov5s.pt权重文件拷贝到yolov5 6.0的目录下 - [^3]: Yolov5使用小记。结合README.md以及自己遇到的问题总结。 // 命令行 //下载最新源码 git clone https://github.com/ultralytics/yolov5.git //安装所需依赖 pip3 install -r requirements.txt - [^4]: yolov5安装与使用。安装克隆 repo,并要求在 Python>=3.7.0 环境中安装 requirements.txt ,且要求 PyTorch>=1.7 。 git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt - [^5]: YOLOv5害虫识别项目代码打包完整上传Gitee仓库(已开源)以及git上传速率限制记录。 DEtetcimgs git上传Gitee,报错: #完整错误: error: RPC failed; result=22, HTTP code = 413 fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly Everything up-to-date原因分析:上传文件太大,超过了最大限制解决方法: nginx传输限制: (nginx.conf)       client_max_body_size 400M;      git传输限制:        git config --global http.postBuffer 524288000        git config --global https.postBuffer 524288000 这些引用主要讨论如何克隆、安装和使用YOLOv5仓库,以及一些相关的问题。用户的问题是关于YOLOv5 Git仓库的功能和用途。 YOLOv5的Git仓库是托管在GitHub上的,由Ultralytics维护。仓库地址是:https://github.com/ultralytics/yolov5 功能与用途: 1. **提供源代码**:包含YOLOv5模型的实现代码,使用PyTorch框架。 2. **训练和推理脚本**:提供训练自定义模型的脚本,以及使用预训练模型进行推理的脚本。 3. **预训练模型权重**:提供不同版本的预训练权重文件(如yolov5s.pt, yolov5m.pt等)。 4. **文档和教程**:包括README.md文件,指导用户如何安装、训练、验证和部署模型。 5. **实用工具**:如数据准备脚本、模型转换工具(如将PyTorch模型转换为ONNXTensorRT格式)。 6. **社区支持**:通过GitHub Issues和Pull Requests,用户可以报告问题、贡献代码或寻求帮助。 7. **更新和维护**:仓库定期更新,修复bug,添加新特性。 从引用中,我们可以看到: - [^1] 提到克隆仓库和安装依赖。 - [^2] 提到源码下载、权重文件和使用gen_wts.py生成WTS模型。 - [^3] 和 [^4] 强调安装和使用过程。 - [^5] 讨论项目上传和git相关问题。 回答结构:我需要结构清晰,逐步解释。 1. 介绍YOLOv5 Git仓库。 2. 主要功能。 3. 用途。 4. 如何访问和使用(简要)。 5. 生成相关问题。 由于用户的问题没有涉及数学表达式,我不需要添加LaTeX数学。但指令说“所有行内数学表达式必须使用$...$格式”,但在这个上下文中,可能没有数学。所以,我可以避免添加不必要的数学。 使用中文回答。 生成相关问题:在最后添加“相关问题”部分。 引用标识:在回答中,如果我参考了引用内容,需要在末尾添加引用标识。例如,如果提到克隆仓库,可以添加[^1]。 构建回答: - 开头:直接回答问题。 - 主体:解释功能和用途。 - 结尾:总结并生成相关问题。 参考引用: - 克隆仓库:git clone https://github.com/ultralytics/yolov5.git [^1][^3][^4] - 安装依赖:pip install -r requirements.txt [^1][^3][^4] - 权重文件:如yolov5s.pt [^2] - 模型转换工具:gen_wts.py [^2] - 项目上传问题:git配置 [^5] 所以,在回答中,我可以自然地融入这些。</think>### YOLOv5 Git仓库的功能和用途 YOLOv5是一个流行的实时目标检测模型,由Ultralytics开发和维护。其Git仓库托管在GitHub上(地址:[https://github.com/ultralytics/yolov5](https://github.com/ultralytics/yolov5)),主要用于提供完整的源代码、工具和资源,支持用户快速部署、训练和优化目标检测任务。下面我将逐步解释其主要功能和用途,帮助您全面理解。 #### 1. **提供源代码和模型实现** - YOLOv5 Git仓库包含基于PyTorch框架的完整实现代码,包括模型架构、训练脚本和推理逻辑。用户可以直接克隆仓库获取最新代码,例如使用命令: ``` git clone https://github.com/ultralytics/yolov5.git ``` 这允许开发者访问和修改模型结构,以适应特定需求(如自定义层或优化算法)[^1][^3][^4]。 - 仓库还提供预训练权重文件(如`yolov5s.pt`、`yolov5m.pt`),这些文件已在大规模数据集(如COCO)上训练好,用户可直接用于推理或迁移学习,无需从头开始训练[^2]。 #### 2. **支持训练和部署流程** - **安装与依赖管理**:仓库包含`requirements.txt`文件,列出所有必需的Python依赖库(如PyTorch、NumPy)。用户只需运行`pip install -r requirements.txt`即可快速搭建环境,确保兼容性(要求Python≥3.7和PyTorch≥1.7)[^1][^3][^4]。 - **训练自定义模型**:提供脚本(如`train.py`)指导用户收集和标注数据,然后训练新模型。例如,您可以使用自己的数据集微调预训练权重,适用于各种应用(如害虫识别、自动驾驶等)[^1][^5]。 - **推理与验证**:包含`detect.py`等脚本,用于实时目标检测。用户只需输入图像或视频,模型即可输出检测结果,支持CPU/GPU加速。 #### 3. **提供实用工具和扩展** - **模型转换工具**:仓库内置工具(如`gen_wts.py`),可将PyTorch模型(`.pt`文件)转换为其他格式(如TensorRT的`.wts`),便于在边缘设备或不同框架中部署[^2]。 - **性能优化脚本**:包括验证脚本(`val.py`)用于评估模型精度和速度,帮助用户调优超参数。 - **文档与教程**:`README.md`文件提供详细指南,覆盖安装、训练、部署全流程,并包含常见问题解答,降低入门门槛[^3][^4]。 #### 4. **促进社区协作和更新** - **开源协作**:Git仓库支持GitHub Issues和Pull Requests,用户可报告bug、提交改进代码或分享优化经验(如上传自定义项目到Gitee等平台时遇到的传输问题解决方案)[^5]。 - **持续更新**:Ultralytics团队定期推送更新,修复漏洞、添加新特性(如支持最新YOLOv5版本),确保模型保持前沿性能。 #### 总结 YOLOv5 Git仓库的核心用途是作为一站式资源中心,帮助开发者高效实现目标检测应用。通过克隆仓库并遵循文档,用户可节省开发时间,专注于自定义任务。例如,在害虫识别项目中,用户可直接复用仓库代码训练模型,并通过Git管理版本控制[^5]。总体而言,该仓库降低了深度学习模型的部署门槛,适用于研究、工业和教育领域。 如果您已克隆仓库,建议从`README.md`开始探索,逐步尝试训练和推理示例。更多细节可参考官方文档:[Ultralytics YOLOv5 GitHub](https://github.com/ultralytics/yolov5)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值