YOLOX

本文介绍如何安装及使用旷视科技的YoloX目标检测模型,包括从源代码安装YOLOX、在COCO数据集上复现结果、以及使用预训练模型进行图像和视频的目标检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

旷视科技的yolox号称最好的yolo

paper: https://arxiv.org/abs/2107.08430

code: https://github.com/Megvii-BaseDetection/YOLOX

安装

Step1. Install YOLOX from source.

git clone git@github.com:Megvii-BaseDetection/YOLOX.git
cd YOLOX
pip3 install -v -e .  # or  python3 setup.py develop

训练

Reproduce our results on COCO

Step1. Prepare COCO dataset

cd <YOLOX_HOME>
ln -s /path/to/your/COCO ./datasets/COCO

Step2. Reproduce our results on COCO by specifying -n:

python -m yolox.tools.train -n yolox-s -d 8 -b 64 --fp16 -o [--cache]
                               yolox-m
                               yolox-l
                               yolox-x

  • -d: number of gpu devices
  • -b: total batch size, the recommended number for -b is num-gpu * 8
  • --fp16: mixed precision training
  • --cache: caching imgs into RAM to accelarate training, which need large system RAM.

When using -f, the above commands are equivalent to:

python -m yolox.tools.train -f exps/default/yolox_s.py -d 8 -b 64 --fp16 -o [--cache]
                               exps/default/yolox_m.py
                               exps/default/yolox_l.py
                               exps/default/yolox_x.py

检测

Step1. Download a pretrained model from the benchmark table.

Step2. Use either -n or -f to specify your detector's config. For example:

python tools/demo.py image -n yolox-s -c /path/to/your/yolox_s.pth --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device [cpu/gpu]

or

python tools/demo.py image -f exps/default/yolox_s.py -c /path/to/your/yolox_s.pth --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device [cpu/gpu]

Demo for video:

python tools/demo.py video -n yolox-s -c /path/to/your/yolox_s.pth --path /path/to/your/video --conf 0.25 --nms 0.45 --tsize 640 --save_result --device [cpu/gpu]

### YOLOX 目标检测框架使用教程 #### 安装依赖库 为了能够顺利运行YOLOX,需先安装必要的Python包。推荐创建一个新的虚拟环境来管理这些依赖项。 ```bash pip install -r requirements.txt ``` 此命令会依据`requirements.txt`文件自动下载并配置所需的全部软件包[^1]。 #### 下载预训练模型权重 官方提供了多种不同规模的预训练模型供开发者选用。可以通过访问项目主页获取最新的模型链接,并将其保存至本地磁盘以便后续调用。 ```python import torch from yolox.exp import get_exp_by_name exp = get_exp_by_name('yolox-s') # 小型版本适合测试学习 model = exp.get_model() checkpoint = torch.load("path_to_your_pretrained_weights/yolox_s.pth", map_location="cpu") model.load_state_dict(checkpoint["model"]) ``` 上述代码片段展示了如何加载特定名称的小尺寸YOLOX网络结构以及对应的参数值。 #### 数据集准备 对于自定义数据集的支持是通过修改配置文件实现的。通常情况下,只需调整类别数量、输入图片大小等基本信息即可完成适配工作。同时支持COCO格式的数据集作为默认选项之一。 ```yaml # example of dataset configuration file (data/my_dataset.yml) dataset: name: my_custom_data num_classes: 80 train_ann: path/to/train_annotations.json val_ann: path/to/val_annotations.json img_prefix: path/to/images/ ``` 该YAML样例说明了怎样指定自己的图像前缀路径与标注JSON的位置信息[^2]。 #### 推理过程演示 当一切准备工作就绪之后,就可以编写一段简单的推理脚本来进行实时物体识别任务了: ```python import cv2 from loguru import logger as logging from yolox.utils.visualize import vis def main(): cap = cv2.VideoCapture(0) while True: ret_val, frame = cap.read() outputs = model(frame)[0].detach().cpu().numpy() # 假设已经完成了必要的预处理操作 result_frame = vis(frame, outputs[:, :4], outputs[:, 5:], conf=outputs[:, 4]) cv2.imshow("YOLOX Detecting...", result_frame) ch = cv2.waitKey(1) if ch == 27 or not ret_val: break if __name__ == "__main__": try: main() except Exception as e: logging.error(f"Error occurred during detection {e}") ``` 这段程序实现了打开摄像头读取帧画面并通过已训练好的YOLOX实例执行预测功能;最后利用可视化工具将结果叠加显示出来。 #### 可解释性增强 考虑到实际应用场景中可能存在的透明度需求,可以考虑引入可解释的人工智能(XAI)技术如Grad-CAM来辅助理解模型决策逻辑。具体做法是在原有基础上增加额外层用于捕捉特征图上的重要区域位置[^3]。 ```python from grad_cam import GradCAM gradcam = GradCAM(model=model, target_layers=[model.backbone.stage3[-1]], use_cuda=True) mask, _ = gradcam([input_tensor]) # 获取热力图掩码 heatmap = show_cam_on_image(img.astype(np.float32)/255., mask.numpy()) ``` 这里给出了基于PyTorch框架下实现Grad-CAM的具体方式,帮助定位出哪些部分最能引起神经元响应变化从而影响最终分类得分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值