YOLOX目标检测算法笔记

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

本镜像基于 RTX 4090D 24GB 显存 + CUDA 12.4 + 驱动 550.90.07 深度优化,内置完整运行环境与 Qwen3-32B 模型依赖,开箱即用。

YOLOX目标检测算法笔记

一、目标检测基础知识

  1. 目标检测—常用数据集

    以这两种数据集比赛的推广,以此产生了对目标检测算法评价的一些类评价标准(AP/mAP),对不同工程师所训练出的模型有着较好且权威的评价指标

    image-20230228175359409

    image-20230228175427492

  2. 目标检测—性能指标

    image-20230228175615202

    loU与Precision,Recall与AP,mAP的关系:

    https://blog.csdn.net/qq_36523492/article/details/108469465

二、环境的安装

(参考:https://blog.csdn.net/qq_44442727/article/details/119923070)

  1. 下载与安装Nvidia显卡驱动

image-20230228175650756

NVIDIA 驱动下载:https://www.nvidia.cn/Download/index.aspx?lang=cn
下载对应你的英伟达显卡驱动。

image-20220619215102229

image-20230228175716168

image-20230228175747903

  1. 下载并安装CUDA

    如果你知道所需安装的环境的CUDA版本,可以根据cuda去找合适的显卡驱动,CUDA与显卡驱动对应关系如下:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#title-resolved-issues

    image-20220619221704006

    image-20220619221904494

  2. 下载并安装cuDNN

    image-20220619224417045

    安装成功:

    image-20220620103707003

  3. 安装Anaconda

    配置Anaconda国内镜像

    image-20220620104103649

  4. 安装pytorch

    查看Anaconda中安装的python版本(注意是在Anaconda的小黑窗,而不是Windows)

    image-20220620104542822

    创建虚拟环境mypytorch

    conda create -n mypytorch python=3.8
    

    激活虚拟环境

    conda activate mypytorch
    

    image-20220620104919809

    在所创建的mypytorch环境下安装pytorch, 执行命令:

    conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
    

    image-20220620111607553

    三、克隆与安装YOLOX

    1. 从GitHub上克隆YOLOX

      https://blog.csdn.net/t18438605018/article/details/123600432?spm=1001.2101.3001.6650.6&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-6-123600432-blog-124913407.pc_relevant_antiscanv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-6-123600432-blog-124913407.pc_relevant_antiscanv3&utm_relevant_index=9

      (建议开代理服务器进行clone)

    image-20220620124904277

    image-20220620150816581

    image-20220620151055189

    python setup.py develop
    

    image-20220620151142787

    1. 安装pycocotools:

    在base环境下存在cython,但在虚拟环境mypytorch环境下无法安装cython(以为虚拟环境中已经由cython)

    https://blog.csdn.net/HUAI_BI_TONG/article/details/121742941

    pip install cython
    

    image-20220620153025233

    cd pycocotools/PythonAPI
    
    python setup.py install --user
    

    image-20220620153932954

    最后发现cython在虚拟环境中是没有安装的

    报错原因:虚拟环境与base环境的pip版本不同

    image-20230228175841268

    image-20220620155022655

    解决方法:

    https://blog.csdn.net/qq_36622009/article/details/118820577(不使用这种方式可能会导致虚拟环境pip环境变量出现问题)

    若重装pip后版本还是不一致,升级pip(同一时间结点版本相同)

    python -m pip install --upgrade pip
    

    注意:

    (1)pip无论在什么路径,安装到的路径默认都是https://blog.csdn.net/Gabriel_wei/article/details/108495843?utm_term=pip%E5%AE%89%E8%A3%85%E9%83%BD%E5%AE%89%E8%A3%85%E5%88%B0%E4%BA%86%E5%93%AA%E9%87%8C&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-1-108495843-null-null&spm=3001.4430

    (2)虚拟环境在anaconda位置(不同环境下所安装的内容是不同的,例如base与虚拟环境lib包下是不一样的)

image-20220620162418787

安装成功:

image-20220620162219970

image-20220620162542947

  1. 测试YOLOX:

    在YOLOX目录下创建weights文件夹,并将权重文件导入

    image-20220620170232213

python tools/demo.py image -f exps/default/yolox_s.py -c weights/yolox_s.pth --path assets/dog.jpg --conf 0.3 --nms 0.65 --tsize 640 --save_result

image-20220620165938778

image-20220620170023125

疑问:

(1)不同权重文件识别出来的效果不同,权重文件的作用?

image-20230228175910054

(2)为什么没有经过训练,却能够正确识别出?

查看各类配置后发现其实YOLOX种内置训练了20种类别的物体,故能够识别

四、数据集的标注

  1. 从GitHub上下载labelImg

    git clone https://github.com/tzutalin/labelImg E:\AI\lableImg
    
  2. 启动lableImg

    python labelImg.py
    

    image-20230228180322200

    注意:

    这是在base的环境下安装的lableImg,后续启动lableImg只能在base环境下启动

六、训练模型

https://blog.csdn.net/weixin_43720225/article/details/124271531

  1. 训练命令

image-20220620201741165

python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 16 --fp16 -o -c weights/yolox_s.pth

训练时遇到的错误:

image-20220620201359155

查看了相关资料后:发现问题出在安装的pytorch是CPU版本的

https://blog.csdn.net/xiangduixuexi/article/details/107580108

查看pytorch是CPU版还是GPU版方法:

https://blog.csdn.net/m0_46653437/article/details/109575389?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-109575389-blog-122806037.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-109575389-blog-122806037.pc_relevant_paycolumn_v3

https://blog.csdn.net/xinjieyuan/article/details/105100015?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-2-105100015-null-null.pc_agg_new_rank&utm_term=%E6%80%8E%E4%B9%88%E7%9C%8B%E5%AE%89%E8%A3%85%E7%9A%84pytorch%E6%98%AFcpu%E8%BF%98%E6%98%AFGPU&spm=1000.2123.3001.4430

image-20220620201818587

解决方案:

https://blog.csdn.net/qq_36918406/article/details/123849978?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-2-123849978-null-null.pc_agg_new_rank&utm_term=%E5%AE%89%E8%A3%85gpu%E7%9A%84pytorch%E4%B9%8B%E5%89%8D%E8%A6%81%E5%8D%B8%E8%BD%BDcpu%E7%89%88%E6%9C%AC%E7%9A%84pytorch%E5%90%97&spm=1000.2123.3001.4430

image-20220620201846691

https://blog.csdn.net/weixin_43094275/article/details/107393385

还是错误,最终为了防止不必要的麻烦,先卸载CPU版的pytorch,后用pip安装GPU版的pytorch

pip install torch==1.10.2+cu102 torchvision==0.11.2+cu102 torchaudio===0.10.1+cu102 -f https://download.pytorch.org/whl/torch_stable.html

image-20220620203957883

卸载后用conda list命令发现还是存在pytorch的内容

https://blog.csdn.net/qq_43550820/article/details/123708474?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-123708474-blog-123685177.pc_relevant_multi_platform_whitelistv1&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-123708474-blog-123685177.pc_relevant_multi_platform_whitelistv1

但pytorch官网又没有下载连接

image-20220620212018477

最后采用离线安装

https://blog.csdn.net/weixin_45800887/article/details/123632809

https://blog.csdn.net/HuangJM3/article/details/123685177?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-1-123685177-null-null.pc_agg_new_rank&utm_term=%E5%AE%89%E8%A3%85gpu%E7%9A%84pytorch%E4%B9%8B%E5%89%8D%E8%A6%81%E5%8D%B8%E8%BD%BDcpu%E7%89%88%E6%9C%AC%E7%9A%84pytorch%E5%90%97&spm=1000.2123.3001.4430

https://blog.csdn.net/qq_42249466/article/details/121771957?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-121771957-blog-124276134.pc_relevant_downloadblacklistv1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-121771957-blog-124276134.pc_relevant_downloadblacklistv1

离线包下载地址:

https://download.pytorch.org/whl/torch_stable.html(需挂代理下载,要不然速度很慢)

https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/

pip安装的是否因为开了代理服务器,没法安装离线的pytorch包

https://blog.csdn.net/Ljh0408abc/article/details/123600526

在离线安装过程中遇到pytorch与YOLOX版本不兼容

https://blog.csdn.net/weixin_45800887/article/details/123632809

最终选用pytorch的版本:

image-20230228180349820

out of memory:

python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 4  -c weights/yolox_s.pth

https://blog.csdn.net/universe_R/article/details/124551674

https://blog.csdn.net/qq_40846862/article/details/123961601

更改了batch-size(https://blog.csdn.net/qq_34886403/article/details/82558399)也没什么用

YOLOX batch-size修改:https://blog.csdn.net/qq_40716944/article/details/120409457

https://segmentfault.com/a/1190000041948886?sort=newest

解决方案:

输入这个训练命令:

python tools/train.py -f exps/example/yolox_voc/yolox_voc_s_bm.py -d 1 -b 4  -c weights/yolox_s.pth

页面文件太小,无法完成操作(zlt博客有这个错误)

image-20220621094244135

解决方案:

在./yolox/exp目录下,修改yolox_base.py文件:将27行的self.data_num_workers改成0,然后再来输入这个训练命令:

python tools/train.py -f exps/example/yolox_voc/yolox_voc_s_bm.py -d 1 -b 4  -c weights/yolox_s.pth

训练完成:

image-20220622153435667

  1. Tensorboard可视化时报错:

pkg_resources.DistributionNotFound: The ‘requests<3,>=2.21.0’ distribution was not found and is required by tensorboard

参考:https://blog.csdn.net/m0_65465147/article/details/123741382

解决方案:pip install tensorboard

image-20220622194320564

用TensorBorad所画出的图像

image-20230228180410133

产生疑问:不是以POSCAL VOC格式的图片训练,为什么能够得出COCO数据集评价标准的结果,而不是POSCAL数据集评价标准的结果?

—回顾:

image-20230228180421777

在目标检测—常用数据集中说到COCO数据集的评价标准最为流行,而POSCAL的评价标准现在不是很流行。

在目标检测—性能指标中说到COCO数据集与POSCAL数据集的评判标准区别在于AP与mAP的计算公式是不同的

image-20230228180430426

在修改配置文件中提到修改COCO数据集与POSCAL VOC数据集类别内容

image-20220622204702186

且在查看了一些blog后

https://blog.csdn.net/hxxjxw/article/details/107056770

https://blog.csdn.net/weixin_30609287/article/details/94909238?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-94909238-blog-107056770.pc_relevant_antiscanv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-94909238-blog-107056770.pc_relevant_antiscanv3&utm_relevant_index=2

https://blog.csdn.net/weixin_43804047/article/details/120433479

https://blog.csdn.net/threestooegs/article/details/119456267

猜测:

YOLOX中源码基于COCO的评价标准进行计算AP、mAP等,而不是基于POSCAL来计算,故TensorBoard画出的图是COCO的结果(???但当时修改voc_classes.py,感觉可能也以POSCAL计算了)

(后续验证还需要查看源码才能得知)

https://zhuanlan.zhihu.com/p/411045300?utm_medium=social&utm_oi=1041645338595196928

  1. 训练结果的查看

    在所训练的300代记录中,我们可以得到按照COCO数据集判断标准下数据最优(即识别效果最好)的权重文件作为模型识别预测的权重文件,对样品进行识别。

    image-20220622222743028

    一开始在安装测试这是利用官方提供的预训练权重文件进行试预测

    image-20220622222609750

    训练与测试都需要权重

七、测试训练出的网络模型

python tools/demo.py image -f exps/example/yolox_voc/yolox_voc_s.py -c YOLOX_outputs/yolox_voc_s/best_ckpt.pth --path testfiles/img1.jpg --conf 0.3 --nms 0.65 --tsize 640 --save_result --device gpu

对比:

image-20220622221009471

https://blog.csdn.net/Yong_Qi2015/article/details/119122229

您可能感兴趣的与本文相关的镜像

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

Qwen3-32B-Chat 私有部署镜像 | RTX4090D 24G 显存 CUDA12.4 优化版

Qwen
文本生成
Qwen3

本镜像基于 RTX 4090D 24GB 显存 + CUDA 12.4 + 驱动 550.90.07 深度优化,内置完整运行环境与 Qwen3-32B 模型依赖,开箱即用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值