

Yolox est une version sans ancre de Yolo, avec une conception plus simple mais de meilleures performances! Il vise à combler le fossé entre la recherche et les communautés industrielles. Pour plus de détails, veuillez vous référer à notre rapport sur Arxiv.
Ce repo est une implémentation de la version Pytorch Yolox, il y a aussi une implémentation en mégenne.

| Modèle | taille | cartographie 0,5: 0,95 | test de carte 0,5: 0,95 | Vitesse v100 (MS) | Paramètres (M) | Flops (G) | poids |
|---|---|---|---|---|---|---|---|
| Yolox-s | 640 | 40.5 | 40.5 | 9.8 | 9.0 | 26.8 | github |
| Yolox-m | 640 | 46.9 | 47.2 | 12.3 | 25.3 | 73.8 | github |
| Yolox-l | 640 | 49.7 | 50.1 | 14.5 | 54.2 | 155.6 | github |
| Yolox-x | 640 | 51.1 | 51.5 | 17.3 | 99.1 | 281.9 | github |
| Yolox-darknet53 | 640 | 47.7 | 48.0 | 11.1 | 63.7 | 185.3 | github |
| Modèle | taille | test de carte 0,5: 0,95 | Vitesse v100 (MS) | Paramètres (M) | Flops (G) | poids |
|---|---|---|---|---|---|---|
| Yolox-s | 640 | 39.6 | 9.8 | 9.0 | 26.8 | Onedrive / Github |
| Yolox-m | 640 | 46.4 | 12.3 | 25.3 | 73.8 | Onedrive / Github |
| Yolox-l | 640 | 50.0 | 14.5 | 54.2 | 155.6 | Onedrive / Github |
| Yolox-x | 640 | 51.2 | 17.3 | 99.1 | 281.9 | Onedrive / Github |
| Yolox-darknet53 | 640 | 47.4 | 11.1 | 63.7 | 185.3 | Onedrive / Github |
| Modèle | taille | cartographie 0,5: 0,95 | Paramètres (M) | Flops (G) | poids |
|---|---|---|---|---|---|
| Yolox-nano | 416 | 25.8 | 0,91 | 1.08 | github |
| Yolox-tiny | 416 | 32.8 | 5.06 | 6.45 | github |
| Modèle | taille | cartographie 0,5: 0,95 | Paramètres (M) | Flops (G) | poids |
|---|---|---|---|---|---|
| Yolox-nano | 416 | 25.3 | 0,91 | 1.08 | github |
| Yolox-tiny | 416 | 32.8 | 5.06 | 6.45 | github |
Étape 1. Installez Yolox à partir de la source.
git clone [email protected]:Megvii-BaseDetection/YOLOX.git
cd YOLOX
pip3 install -v -e . # or python3 setup.py developÉtape 1. Téléchargez un modèle pré-entraîné à partir de la table de référence.
Étape2. Utilisez -n ou -f pour spécifier la configuration de votre détecteur. Par exemple:
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]ou
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 pour la vidéo:
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]Étape 1. Préparer un ensemble de données CoCo
cd < YOLOX_HOME >
ln -s /path/to/your/COCO ./datasets/COCOÉtape2. Reproduisez nos résultats sur CoCo en spécifiant -N:
python -m yolox.tools.train -n yolox-s -d 8 -b 64 --fp16 -o [--cache]
yolox-m
yolox-l
yolox-xLorsque vous utilisez -f, les commandes ci-dessus sont équivalentes à:
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.pyFormation multi-machines
Nous prenons également en charge la formation multi-nodes. Ajoutez simplement les args suivants:
Supposons que vous souhaitiez former Yolox sur 2 machines et que l'IP de votre machine maître est 123.123.123.123, utilisez le port 12312 et TCP.
Sur Master Machine, exécutez
python tools/train.py -n yolox-s -b 128 --dist-url tcp://123.123.123.123:12312 --num_machines 2 --machine_rank 0Sur la deuxième machine, courez
python tools/train.py -n yolox-s -b 128 --dist-url tcp://123.123.123.123:12312 --num_machines 2 --machine_rank 1Enregistrement à des poids et biais
Pour enregistrer les métriques, les prédictions et les points de contrôle du modèle pour W&B utilisez l'argument de la ligne de commande --logger wandb et utilisez le préfixe "Wandb-" pour spécifier les arguments pour initialiser l'exécution Wandb.
python tools/train.py -n yolox-s -d 8 -b 64 --fp16 -o [--cache] --logger wandb wandb-project < project name >
yolox-m
yolox-l
yolox-xUn exemple de tableau de bord Wandb est disponible ici
Autres
Voir plus d'informations avec la commande suivante:
python -m yolox.tools.train --helpNous prenons en charge les tests par lots pour une évaluation rapide:
python -m yolox.tools.eval -n yolox-s -c yolox_s.pth -b 64 -d 8 --conf 0.001 [--fp16] [--fuse]
yolox-m
yolox-l
yolox-xPour reproduire le test de vitesse, nous utilisons la commande suivante:
python -m yolox.tools.eval -n yolox-s -c yolox_s.pth -b 1 -d 1 --conf 0.001 --fp16 --fuse
yolox-m
yolox-l
yolox-xSi vous utilisez Yolox dans votre recherche, veuillez citer notre travail en utilisant l'entrée Bibtex suivante:
@article{yolox2021,
title={YOLOX: Exceeding YOLO Series in 2021},
author={Ge, Zheng and Liu, Songtao and Wang, Feng and Li, Zeming and Sun, Jian},
journal={arXiv preprint arXiv:2107.08430},
year={2021}
}Sans les conseils du Dr Jian Sun, Yolox n'aurait pas été libéré et ouvert à la communauté. Le décès du Dr Sun est une énorme perte pour le champ de vision par ordinateur. Nous ajoutons cette section ici pour exprimer notre souvenir et nos condoléances à notre capitaine Dr. Sun. Il est à espérer que chaque praticien de l'IA dans le monde s'en tiendra à la croyance de "l'innovation continue pour étendre les frontières cognitives et une technologie extraordinaire pour atteindre la valeur des produits" et aller de l'avant.
