码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • YOLOX代码、预测(使用摄像头实时预测)及其添加SE注意力前后的实验结果


    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
    
    • 1

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

    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
    
    • 1

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    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
    
    • 1

    其中:

    • -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)
            ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 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
  • 相关阅读:
    开发盲盒应该具有哪些特点
    Linux安装RabbitMQ
    远距离双目视觉测量系统获得较高精度测量结果
    微信小程序开发的OA会议之会议,投票,个人中心的页面搭建及模板
    秋招面经第九弹:字节一面-大数据开发工程师(电商)
    MySQL进阶(再论JDBC)——JDBC编程思想的分析 & JDBC的规范架构 & JDBC相关的类分析
    硬件信息查看工具 EtreCheckpro mac中文版功能介绍
    Transformer
    【Redis】Java连接redis进行数据访问及项目的实例应用场景
    正则匹配绕过总计之[极客大挑战 2019]RCE ME
  • 原文地址:https://blog.csdn.net/weixin_44878336/article/details/127972330
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号