目标检测YOLO系列-YOLOVX运行步骤(推理、训练全过程)

news2024/12/27 10:54:51
  1. 下载项目:点击下载

  2. 进入项目根目录(通过cd命令)

    1. apex的安装与下载

      1. 下载apex

        git clone https://github.com/NVIDIA/apex
        
      2. 进入apex目录

        cd apex
        
      3. 执行安装命令

        python setup.py install
        
    2. 首先安装相关的类库:

      pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ -r requirements.txt
      
    3. 然后执行:

      python setup.py develop
      
  3. 下载预训练权重(我这里下载的是:yolox_tiny.py),然后再项目根目录下建立文件夹weights,并将权重放进去

  4. 测试执行:

    python tools/demo.py image -f exps/example/yolox_voc/yolox_voc_s.py -c weights/yolox_tiny.pth --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device [cpu/gpu]
    
  5. 训练过程(这里以OVC 2007举例):

    1. 首先准备VOC数据集,将其放在dataset文件夹下,如下图,其中三个红框框标记出来的文件夹是必须有的(这里images文件夹也是存放图片,这里是博主将VOC转为YOLO格式训练V7用的,这里YOLOX用不到)
      在这里插入图片描述

    2. 其次修改数据集类别数量

      1. 修改exps/example/yolox_voc/yolox_voc_s.py中的self.num_classes,这里VOC数据集为20类,所以修改为20

        在这里插入图片描述

      2. 然后修改yolox/exp/yolox_base.py中的self.num_classes
        在这里插入图片描述

      3. 其次修改VOC数据类别,将yolox/data/datasets/voc_classes.py中的标签信息,进行修改。
        在这里插入图片描述

      4. 修改训练集信息,exps/example/yolox_voc/yolox_voc_s.py中的VOCDection,data_dir为数据集路径,image_sets因为我用的是VOC2007没有用2012,所以只保留2007
        在这里插入图片描述

    3. 至此已修改完毕,执行训练命令:

      python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 0 -b 16 --fp16 -c weights/yolox_s.pth
      
注意事项
  • 代码每次修改后要执行以下命令重新编译

    python setup.py install
    

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

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

相关文章

深入学习MongoDB---1---入门篇+基础重点篇

MongoDB入门 MongDB作为NoSQL数据库之一,主要关注:灵活性、扩展性、高可用灵活性:NoSQL的特点就是反范式理论,为数据的水平扩展和字段的组织提供了巨大的便利高可用:天生就伴随副本集(从节点)的…

计数排序的实现

计数排序是非比较排序的一种,是对哈希直接定址法的变形应用,其操作步骤如下: 1.统计相同元素出现的次数。 2.根据统计结果将序列回收到原来的序列中。 拿一组重复元素较多的数组来举例子: 10 11 10 15 14 15…

Disruptor-源码解读

前言 Disruptor的高性能,是多种技术结合以及本身架构的结果。本文主要讲源码,涉及到的相关知识点需要读者自行去了解,以下列出: 锁和CAS伪共享和缓存行volatile和内存屏障 原理 此节结合demo来看更容易理解:传送门…

数云融合|新手入门,5分钟秒懂开源

目录一、开源软件开源领域的两大组织:FSF和OSI二、开源许可证开源意味着免费吗?三、开源技术应用领域四、总结一、开源软件 开源即开放源代码,他的核心是源代码公开,任何人都可以查看、使用、修改和分发。与之相对的是闭源&#…

js排序算法

排序算法 - jsjs交换两个值的三种方法方式1:算术运算方式2:ES6解构方式3:数组的特性冒泡排序实现思路图解bubbleSort参考视频选择排序实现思路图解selectionSort参考视频插入排序实现思路图解insertionSort参考视频js交换两个值的三种方法 方…

javaSccript---call()、 bind()、 apply()的区别

call()、apply()、bind() 都是用来重定义 this 这个对象的 语法: function.apply(thisArg, [argsArray])//argsArray 是一个可选的数组 function.call(thisArg, arg1, arg2, ...)//arg1、arg2、... 是将传递给函数的参数列表 function.bind(thisArg, arg1, arg2, ..…

Webstorm是什么软件?你了解吗

WebStorm 是一款由 JetBrains 开发的集成开发环境(IDE),它是专门为开发 Web 应用程序而设计的。它提供了许多功能,例如代码自动完成、错误突出显示、重构、调试、版本控制等,可以帮助开发人员提高效率和代码质量。WebS…

Vector 高性能日志收集工具

文章目录Vector 简介相关概念事件Data modelEvent typesLog eventsMetric eventsTraces组件构成源转换接收器PipelineBuffersBackpressureRolesAgentDaemonSidecarAggregatorTopology分布式集中式基于流Vector 简介 Vector 是一种高性能的可观察性数据管道,可让组织…

天梯赛练习集-L1-031到L1-040–python - java

文章目录PythonL1-031 到底是不是太胖了L1-032 Left-padL1-033 出生年L1-034 点赞L1-035 情人节L1-036 A乘以BL1-037 A除以BL1-038 新世界L1-039 古风排版L1-040 最佳情侣身高差JavaL1-031 到底是不是太胖了L1-032 Left-padL1-033 出生年L1-034 点赞L1-035 情人节L1-036 A乘以B…

ChatGPT入门必知必会

2023年是真正意义上的AI之年,因为ChatGPT 2007年,iPhone开启了智能手机时代,2023年,我们迎来了人工智能时代,我们正处于历史的大转折点上,这也许是启蒙运动级别的思想和社会转折,工业革命级别的…

5万元内最经济双卡4090深度学习方案

深度学习双卡4090攒机方案 znsoft 一枚快乐的炼丹师 AMD 7950x 双4090方案 不到5万,目前最经济的双卡人工智能服务器方案 主板: 华硕 x670EA 吹雪 3000元 CPU: amd 7950x 3500元 内存: 32G4 128G DDR5 800x4 3200元 机箱: 追…

【eMMC学习记录】emmc相关名词解释和基础概念

名词解释 NAND Flash:半导体闪存 HDD:机械硬盘 FW:固件 Peak Power:峰值功率 Active Power:读写功耗 Idle Power:空闲功耗 standby/sleep Power Dev Sleep Power:SSD内部休眠功耗 RAM:掉电丢失数据 FGT:浮栅晶体管 FormFactor:尺寸标准件 AFA:全闪存整列…

线段树之延迟数组_20230410

线段树 之 延迟数组 前言 线段树是一类特殊的完全二叉树,其本质是对递归过程信息的再处理和再记忆,线段树构造完成后,可以脱离原始数组或线性表,直接对线段树进行查询或更新操作即可。线段树的储存结构和堆结构类似,…

springboot——集成elasticsearch进行搜索并高亮关键词

目录 1.elasticsearch概述 3.springboot集成elasticsearch 4.实现搜索并高亮关键词 1.elasticsearch概述 (1)是什么: Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。 Lucene 可以被认为是迄今为止最先进、性能最好的…

软测界的黑科技,难道不来瞧瞧?

写在前面: 在当今互联网时代,软件已经渗透到了人们生活的方方面面,各种类型的软件应运而生,为人们的工作和生活提供了更便捷的服务。然而,随着软件的不断增长和复杂性的不断提高,软件测试变得越来越重要。…

字节跳动AI-LAB | 算法三轮技术面分享

作者 | 太蔡了整理 | NewBeeNLP面试锦囊之面经分享系列,持续更新中 可以后台回复"面试"加入交流讨论组噢写在前面楼主是C9末流渣硕一枚,现在已经正式确定offer要去我宇宙条了!当时为了准备面试几乎把网上头条的面经翻了个底朝天&am…

php(phar)反序列化漏洞及各种绕过姿势

概念: 序列化其实就是将数据转化成一种可逆的数据结构,自然,逆向的过程就叫做反序列化。简单来说就是我在一个地方构造了一个类,但我要在另一个地方去使用它,那怎么传过去呢?于是就想到了序列化这种东西&a…

句柄泄露的分析思路

基础知识 问题 什么是句柄? 句柄(file descriptor)即文件描述符,简称fd。Linux 系统中,把一切设备都视作文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符。 FD作为文件句柄的实例,…

Nacos安装配置

一、下载Nacos Server。 通过Release页面进行下载,这里我以windows版本为例。 二、修改Nacos Server配置文件。 下载完成后,解压安装包后得到如下文件夹 为了配置集群,将nacos-server复制相同的两份,分别为命名为nacos-clust…

Java中有了equals(),为什么还有“==“

背景:Java中“一切皆是对象”,为什么还有非对象的“”? 在Java语言假设我们只进行OOP,所以Java代码都是由一个接着一个的类组成的。那么,对象之间比较,用equals()就可以了。 可为什么“”在代码随处可见呢…