无脑——010 复现yolov8 训练自己的数据集 基于yolov8框架 使用rt detr

news2024/11/24 2:12:29

背景:
2023.08.09导师让调研transformer的相关论文,做CV的都知道transformer多么难跑,需要用8张GPU跑100多个小时,我这个小小实验室放不下这尊大佛,所以就找点小模型跑一跑,调研论文发现最新的是CO-DETR,ap精度60.0,但是也都很大,意外发现了百度paddle框架下的新论文RT-DETR,real time detr,性能比yolov8还好,ap精度54.8,虽然不如CO-DETR,但是比yolov8强,那就很有研究的必要了。
接下来开始我们的复现之路:

1.配置环境

1.

首先去官网下载yolov8的zip
https://github.com/ultralytics/ultralytics
存放在我的目录下G:\bsh\yolov8
然后使用conda创建新的环境

conda create -n yolov8 python=3.8
#然后激活环境
conda activate yolov8

然后安装pytorch,

 conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch

安装 ultralytics

pip install ultralytics

(然后我需要降低pillow的版本来适配我的pytorch,因为报错ImportError: DLL load failed while importing _imaging: 找不到指定的模块。:解决方法参考附录1,如果你们不需要请略过)

然后下载官网的权重文件:
https://github.com/ultralytics/assets/releases
这里我下载了一堆进行测试:
在这里插入图片描述
然后照一张图片进行测试,
可以参考官方文档
https://docs.ultralytics.com/modes/predict/#inference-arguments
自己照一张图片,放在G:\bsh\yolov8\datademo\bug.jpg里边

yolo detect predict model=weights/yolov8n.pt source=datademo\bus.jpg

运行结果如下图:
在这里插入图片描述
再拿一张自己随便拍的做测试,只能说种类越来越多了,之前yolov5那好像没有鼠标垫?
在这里插入图片描述
ps:
yolov8的框架比较晚上,也可以用文件夹来检测,检测目录设置成文件夹就行。遍历文件夹里的所有文件进行检测。

yolo detect predict model=weights/yolov8n.pt source=datademo

测了刚才一圈,这些模型,除了rtdetr的两个模型,都可以正常使用,
其中yolo_nas系列需要安装额外的库pip install super_gradients
在这里插入图片描述

为了使用rtdetr,我找了问题,应该是pytorch版本过低无法使用NonDynamicallyQuantizableLinear这个属性,起码要使用pytorch 1.9.0,但是1.9.0的不支持我的cuda 10.1了,都是10.2,我不敢升级cuda驱动,怕出问题,先下一个pytorch1.9.0试试吧

conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=10.2 -c pytorch

这个版本我的电脑也可以,可是还报错,
TypeError: meshgrid() got an unexpected keyword argument ‘indexing’
我去网上搜,pytorch=1.10.1解决了,所以我在尝试升级一下


conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=10.2 -c pytorch

可以的,事实证明我的笔记本还能继续战斗!

附录1

1.pillow库报错

ImportError: DLL load failed while importing _imaging: 找不到指定的模块。
(yolov8) PS G:\bsh\yolov8> pip show pillow
Name: Pillow
Version: 9.3.0

看出,报错是因为pillow版本过高,直接安装8.0版本即可

pip install pillow==8.0

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【BMC】OpenBMC开发基础3:引入新的开源配方

引入新的开源配方 前面介绍了如何在OpenBMC中通过新建配方引入自己的程序,也介绍了如何修改原有的程序,下面要介绍的是如何引入开源的新程序,这在OE系统上是很方便的,重点就在于引入新的配方。 OE为了方便开发者使用&#xff0c…

到 2030 年API 攻击预计将激增近 1000%

导读云原生应用程序编程接口管理公司 Kong 联合外部经济学家的最新研究预计,截至 2030 年 API 攻击将激增 996%,意味着与 API 相关的网络威胁的频率和强度都显着升级。 这项研究由 Kong 分析师和布朗大学副教授 Christopher Whaley 博士合作进行&#x…

Maven进阶2 -- 私服(Nexus)、私服仓库分类、资源上传和下载

目录 私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题。 1.Nexus Nexus是sonatype公司的一款maven私服产品。 下载地址 启动 nexus.exe /run nexus 访问 & 登录 2.私服仓库分类 3.资源上传和下载 本地仓库上传和访问资源需要进行配置。…

stm32项目(8)——基于stm32的智能家居设计

目录 一.功能设计 二.演示视频 三.硬件选择 1.单片机 2.红外遥控 3.红外探测模块 4.光敏电阻模块 5.温湿度检测模块 6.风扇模块 7.舵机 8.WIFI模块 9.LED和蜂鸣器 10.火焰传感器 11.气体传感器 四.程序设计 1.连线方式 2.注意事项 3.主程序代码 五.课题意义…

学习pytorch 3 tensorboard的使用

tensorboard的使用 1. 安装2. add_scalar 查看函数图形3. 查看结果4. add_image() 查看训练步骤中间结果的图片 1. 安装 pytorch conda环境 pip install tensorboard pip install opencv-python2. add_scalar 查看函数图形 常用来查看 train val loss等函数图形 from torch…

Mr. Cappuccino的第60杯咖啡——Spring之BeanFactory和ApplicationContext

Spring之BeanFactory和ApplicationContext 类图BeanFactory概述功能项目结构项目代码运行结果总结 ApplicationContext概述功能MessageSource(国际化的支持)概述项目结构项目代码运行结果 ResourcePatternResolver(匹配资源路径)概…

基础实验篇 | QGC实时调整控制器参数实验

PART 1 实验名称及目的 QGC实时调整控制器参数实验:在进行硬件在环仿真和真机实验时,常常需要在QGC地面站中观察飞行状态,并对控制器参数进行实时调整,以使得飞机达到最佳的控制效果,但是,在Simulink中设…

网络编程的一些基础知识

什么是协议 协议就是一种网络交互中数据格式和交互流程的约定,通过协议,我们可以与远程的设备进行数据交互,请求或者完成对方的服务(可以认为协议就是一种语言) 什么是端口和端口监听 在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机…

15.3.2 【Linux】系统的配置文件:/etc/crontab,/etc/cron.d/*

这个“ crontab -e ”是针对使用者的 cron 来设计的,如果是“系统的例行性任务”时, 该怎么办呢?是否还是需要以 crontab -e 来管理你的例行性工作调度呢?当然不需要,你只要编辑/etc/crontab 这个文件就可以。有一点需…

防网络钓鱼身份验证是预防违规的关键

全球企业身份验证状况调查结果发现,超过一半的员工依赖不安全的身份验证方法。 Yubico 记录显示,澳大利亚 65% 的员工和新西兰 63% 的员工仍然依赖用户名和密码作为主要身份验证手段,超过了 59% 的全球平均水平。 尽管广泛的宣传活动和企业…

项目实战 — 消息队列(7){虚拟主机设计(1)}

目录 一、什么是虚拟主机 二、编写虚拟主机代码 🍅 1、准备工作 🍅 2、实现exchange相关操作 🎄实现创建交换机exchangeDeclare 🎄 实现 删除交换机exchangeDelete 🍅 3、实现queue相关操作 🎄实现…

【第二阶段】匿名函数隐式返回函数参数

1.匿名函数简单举例 fun main() {//第一种写法,count()获取字符长度val info"kotlin".count()println(info)//第二种写法,使用匿名函数val len"kotlin".count(){//it代表字符串中 k o t l i n 的字符itl}println(len) }执行结果 2.隐式返回 …

【LeetCode】236. 二叉树的最近公共祖先、 JZ36 二叉搜索树与双向链表

作者:小卢 专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》 236. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先 题目描述: 给定一个二叉树…

【人工智能前沿弄潮】——生成式AI系列:Diffusers学习(1)了解Pipeline 、模型和scheduler

Diffusers旨在成为一个用户友好且灵活的工具箱,用于构建针对您的用例量身定制的扩散系统。工具箱的核心是模型和scheduler。虽然DiffusionPipeline为了方便起见将这些组件捆绑在一起,但您也可以拆分管道并单独使用模型和scheduler来创建新的扩散系统。 …

MySQL_数据类型

数值类型 类型有符号(SIGNED)取值范围无符号(UNSIGNED)取值范围大小描述TINYINT(-128,127)(0,255)1byte小整数值SMALLINT(-32768,32767)(0,65535)2bytes大整数值INT/INTEGER(-2147483648,2147483647)(0,429…

Redis_持久化(AOF、RDB)

6. Redis AOF 6.1 简介 目前,redis的持久化主要应用AOF(Append Only File)和RDF两大机制,AOF以日志的形式来记录每个写操作(增量保存),将redis执行过的所有指令全部安全记录下来(读…

将本地项目上传至gitee的详细步骤

将本地项目上传至gitee的详细步骤 1.在gitee上创建以自己项目名称命名的空项目2.进入想上传的项目的文件夹,然后右键点击3. 初始化本地环境,把该项目变成可被git管理的仓库4.添加该项目下的所有文件5.使用如下命令将文件添加到仓库中去6.将本地代码库与远…

【Node.js】低代码平台源码

一、低代码简介 低代码管理系统是一种通过可视化界面和简化的开发工具,使非专业开发人员能够快速构建和管理应用程序的系统。它提供了一套预先定义的组件和模块,使用户可以通过拖放操作来设计应用程序的界面和逻辑。低代码管理系统还提供了自动化的工作…

IDEA每次启动indexing解决办法

每次启动indexing很浪费时间。 解决办法 setting中搜索index 设置如下: 这样设置以后,启动速度明显快多了。 参考 https://blog.csdn.net/qq_45162113/article/details/121128721

【云原生】Docker 详解(二):Docker 架构及工作原理

Docker 详解(二):Docker 架构及工作原理 Docker 在运行时分为 Docker 引擎(服务端守护进程) 和 客户端工具,我们日常使用各种 docker 命令,其实就是在使用 客户端工具 与 Docker 引擎 进行交互。…