YOLOX代码、预测(使用摄像头实时预测)及其添加SE注意力前后的实验结果

news2024/11/30 12:37:26

1. 代码获取

https://github.com/Le0v1n/ml_code/tree/main/ObjectDetection/YOLOX

如果代码对你有用,请star一下❤️

2. 预测

2.1 图片预测

  1. 下载权值文件:https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_s.pth
  2. 将权值文件放在weights目录下
  3. 运行以下命令
python tools/demo.py image -n yolox-s -c ./weights/yolox_s.pth --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device gpu

之后可以得到图片的结果。

2.2 视频预测

执行的命令进行更改:

python tools/demo.py webcam -n yolox-s -c ./weights/yolox_s.pth --conf 0.25 --nms 0.45 --tsize 640 --device gpu

3. 模型训练 —— 以口罩检测数据集为例

3.1 数据集下载

https://www.kaggle.com/datasets/andrewmvd/face-mask-detection

3.2 数据集处理

  1. 将标签文件夹名改为Annotations
  2. 将图片存放文件夹改名为JPEGImages
  3. 创建文件夹VOCdevkit/VOC2012
  4. 将口罩数据集放到创建的VOC2012文件夹中
  5. 运行get_trainval_test_txt.py文件夹
└─VOCdevkit
    ├─VOC2012
        ├─Annotations
        ├─ImageSets
        │  └─Main
        └─JPEGImages

3.3 修改参数(Epoch、WarmUp、Eval_Epoch…)

yolox\yolox\exp\yolox_base.py文件中修改!

4. 实验结果

训练命令:

python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -b 8 --fp16 -expn maskdataset_pretrained -c weights/yolox_s.pth

其中:

  • -f: 实验配置文件
  • -b: Batch Size
  • --fp16: 是否使用AMP
  • -expn: 本次训练的名称
  • -c: ckpt路径

  • 网络:YOLOX-s
  • Batch Size:8
  • Epoch:100
  • basic_lr_per_img:0.00015625
  • num_classes: 3
  • warmup_epoch: 0
  • min_lr_ratio: 0.05
  • scheduler: yoloxwarmcos -> Cosine
  • EMA: True
  • no_aug_epochs: 15
  • weight_decay: 0.0005
  • momentum: 0.9
  • eval_interval: 1
  • depth: 0.33
  • act: SILU
  • num_workers: 4
  • input_size: (640, 640)
  • test_size: (640, 640)
  • test_conf: 0.01
  • nms_threash: 0.65
  • mosaic_prob: 1.0
  • mixup_prob: 1.0
  • flip_prob: 0.5

4.1 从头开始训练

在这里插入图片描述

很明显模型并没有拟合,不想跑了😂

4.2 迁移学习

  • map_5095: 0.6153292356822907
  • map_50: 0.8694843116680683

在这里插入图片描述
可以看到,添加预训练模型后,模型收敛的确快!

4.3 添加SE注意力机制后

yolox\yolox\models\network_blocks.py中的attention改为True即可开启SE注意力,如下:

        module_list = [
            Bottleneck(
                hidden_channels, hidden_channels, shortcut, 1.0, depthwise, act=act, attention=True
            )
            for _ in range(n)
        ]
  • map_5095: 0.536522477369094
  • map_50: 0.8082459511249596

在这里插入图片描述
由于100个Epoch使得模型欠拟合,所以添加了SE注意力只能有微小的提升,结果证明并不充分,有条件的可以多训练几次。

5. 总结

  1. YOLOX训练速度的确很慢,原因可能是使用了大量的数据增强方式
  2. YOLOX的backbone和YOLO v5是一样的,因此修改起来比较容易
  3. YOLOX提供了NANO和Tiny规格的模型,因此更有利于模型的部署
  4. YOLOX提供了很多部署方法,如TensorRT

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

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

相关文章

iOS键盘通知弹框使用小结

项目开发中文本框输入的时候经常会用到键盘弹框遮挡的问题。解决办法就是根据底部键盘弹出的高度动态的改变对应view的位置。这里以多行文本框输入为例,效果图如下。 //第一步,注册监听键盘通知 [[NSNotificationCenter defaultCenter] addObserver:self…

只会 Python 不行,不会 Python 万万不行

当下的环境大家有目共睹,未来一段时间情况如何,想必不少人心里也清楚,技术人走到中年,难免会焦虑,职场上干得不爽,但是跳槽也不容易,加上不少企业裁员,换个满意的工作更是难上加难。…

JavaScript——周技能检测——菜单编辑——2022年11月22日(考完)

JavaScript——周技能检测——菜单编辑——2022年11月22日(考完) 一、语言和环境 1. 实现语言:JavaScript。 2. 开发环境:VScode。 二、要求 1、在文本框中输入两个操作数和选择运算符后,在页面上显示输出结果。 …

电影《名侦探柯南:万圣节的新娘》观后感

上周看了电影《名侦探柯南:万圣节的新娘》,讲述了一场即将发生在东京涉谷的爆炸案件,引来各方的关注,柯南在参与案件的过程中,找出真凶的故事。 故事属于侦探类,有悬疑反转等要素,还是挺好的。不…

推荐系统实战3——推荐系统中Embedding层工作原理浅析

推荐系统实战3——推荐系统中Embedding层工作原理浅析学习前言什么是Embedding一、为什么要有Embedding二、推荐系统中常见的Embedding处理方式1、字符串形式的输入2、连续值(特定范围值)的输入三、Embedding的注意点学习前言 Embedding层是推荐系统特征…

盘点一下今年世界杯中国赞助商及联名入圈品牌

作为全世界的超级体育赛事,今年世界杯的ip流量无疑是值得期待的。虽然中国球队缺席,但中国赞助的热情是丝毫不减,中国官方合作伙伴(赞助商)分别是蒙牛、海信、vivo和万达。除了万达,其余三大品牌都是来自各…

护眼灯真的可以护眼吗?2022护眼台灯该怎样选择

或许很多人看过一些报道,认为护眼灯是智商税,并不能护眼,但是,我们并不能因为一两款劣质灯具的不行就否定整个行业的产品,真正高质量的护眼灯,并没有像相关报道说的那样不堪,相反其光线对人眼具…

微信小程序商城迅速流行的决定因素

随着互联网的不断发展壮大,许多人更倾向于线上购物,享受到足不出户就能送货上门的购物体验,这使得线上商城占据了优势。而微信小程序商城更是广受好评。 小程序商城的经营模式在很大程度上契合了当下的消费需求和消费心理。它的情感链接&…

JavaScript开发工具WebStorm入门教程:如何安装WebStorm

WebStorm是jetbrains旗下一款JavaScript 开发工具,被广大JS开发者誉为"Web前端开发神器""最强大的HTML5编辑器""最智能的JavaSscript IDE"。 本文给大家讲解WebStorm的安装教程,欢迎下载最新版产品体验! Web…

算法多重要你还不知道吗?字节大佬把LeetCode前400题的解答笔记都整理好了,头发大佬掉,我们跟着吃经验!

你知道现在LeetCode算法在大厂中的重要性吗? 前几天小编看了一个国内算法大神的短视频,他就在视频中指出了算法对当下无论是生活还是找工作中都是非常重要的! 没错这个人就是江湖人称“左神”的左程云老师 小编也简单看了一下一些比较知名互…

定语从句------六级

1.复合句/从句三大类 从句在整个句子中做什么成分,就叫什么从句。 形容词性从句:定语从句,带有谓语的完整的结构在另一个句子中做定语 名词性从句 副词性从句:状语从句 从句典型的标志,带有关系词2.定语从句&#xff1…

selenium⾃动化测试⾯试题及答案,看看你会多少?

说到UI自动化,可能大家和我一样,主要是用Selenium。毕竟Selenium可是UI自动化方面的王者。 而且Selenium 支持多平台,可以模拟真实浏览器,也支持多种浏览器,免费开源,对商业用户也没有任何限制&#xff0c…

分布式任务调度项目xxl-job

xxl-job简介 分布式任务调度项目xxl-job的官网:分布式任务调度平台XXL-JOB 大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c…

【2012】408联考数据结构真题整理

2012年 1 题目 解析 递归 2 题目 答案:A 解析 3 题目 解析 4 题目 答案:B 解析 T1:1T2:2T3:2 1 1 4T4:T3 T2 1 2 4 1 7T5:T4 T3 1 7 4 1 12T6:T5 T4 1 …

Mac M1 Datasophon 安装

Mac M1 Datasophon 安装 什么是 Datasophon DataSophon 是致力于自动化监控、运维、管理大数据基础组件和节点的,帮助您快速构建起稳定,高效的大数据集群服务。 网络要求 要求各机器各组件正常运行提供如下的网络端口配置: 组件默认端口…

PROFINET转EtherCAT网关方案设计

1 摘要 PLC控制器和远程IO通过通讯的方式在目前的生产现场中越来越频繁;有些现场是控制器和远程IO站是统一的通讯协议,而有些现场会出现远程IO站不用协议的情况,主要是来自不同厂家的产品受限。 1.1 解决方案 河南某现场控制器采用西门子1500…

Python之第十一章 面向对象 --- 三大特征

目录 Python之第十一章 面向对象 --- 三大特征 面向对象三大特征 --- 封装 1.在Python代码中,封装有两层含义: 2.封装中的私有属性和私有方法 3.私有属性的访问限制 4.私有属性设置与访问接口 5.私有方法 6.封装的意义 7.property装饰器封装 面…

SCADA系统架构、类型和应用

智能仪表和远程终端单元(RTU)/可编程逻辑控制器(PLC)的进步使得许多行业的过程控制都可以利用SCADA系统的优势轻松管理和操作。SCADA在多种应用中很受欢迎,如加工工业、石油和天然气、发电、配电和公用事业,水和废物控制、农业/灌溉、制造、运输系统等。…

RNN在图像压缩领域的应用-Variable rate image compression with recurrent neural networks

Variable Rate Image Compression with Recurrent Neural Networks RNN在图像压缩领域应用最经典的一篇,由Google的George Toderici提出。原文连接:Variable Rate Image Compression with Recurrent Neural Networks 文章提出了一种基于卷积和反卷积LSTM的RNN网络…

美食杰项目 -- 登录注册(三)

目录前言:具体实现思路:步骤:1. 展示美食杰菜谱大全效果在这里插入图片描述2. 引入element-ui3. 代码总结:前言: 本文给大家讲解,美食杰项目中 登录注册实现的效果,和具体代码。 具体实现思路&…