

Yolox es una versión sin anclaje de Yolo, con un diseño más simple pero mejor rendimiento. Su objetivo es cerrar la brecha entre la investigación y las comunidades industriales. Para obtener más detalles, consulte nuestro informe sobre ARXIV.
Este repositorio es una implementación de la versión de Pytorch yolox, también hay una implementación de Megengine.

| Modelo | tamaño | mapa val 0.5: 0.95 | prueba de mapa 0.5: 0.95 | Velocidad V100 (EM) | Parámetros (METRO) | Chocolas (GRAMO) | pesas |
|---|---|---|---|---|---|---|---|
| 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 |
| Modelo | tamaño | prueba de mapa 0.5: 0.95 | Velocidad V100 (EM) | Parámetros (METRO) | Chocolas (GRAMO) | pesas |
|---|---|---|---|---|---|---|
| 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 |
| Modelo | tamaño | mapa val 0.5: 0.95 | Parámetros (METRO) | Chocolas (GRAMO) | pesas |
|---|---|---|---|---|---|
| Yolox-nano | 416 | 25.8 | 0.91 | 1.08 | github |
| Yolox | 416 | 32.8 | 5.06 | 6.45 | github |
| Modelo | tamaño | mapa val 0.5: 0.95 | Parámetros (METRO) | Chocolas (GRAMO) | pesas |
|---|---|---|---|---|---|
| Yolox-nano | 416 | 25.3 | 0.91 | 1.08 | github |
| Yolox | 416 | 32.8 | 5.06 | 6.45 | github |
Paso 1. Instale yolox desde la fuente.
git clone [email protected]:Megvii-BaseDetection/YOLOX.git
cd YOLOX
pip3 install -v -e . # or python3 setup.py developPaso 1. Descargue un modelo previo a la tabla de la tabla de referencia.
Paso 2. Use -n o -f para especificar la configuración de su detector. Por ejemplo:
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]o
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]Demostración para 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]Paso 1. Preparar el conjunto de datos de Coco
cd < YOLOX_HOME >
ln -s /path/to/your/COCO ./datasets/COCOPaso 2. Reproducir nuestros resultados en Coco especificando -n:
python -m yolox.tools.train -n yolox-s -d 8 -b 64 --fp16 -o [--cache]
yolox-m
yolox-l
yolox-xAl usar -f, los comandos anteriores son equivalentes a:
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.pyCapacitación de máquinas múltiples
También apoyamos la capacitación de varios nodos. Simplemente agregue los siguientes args:
Suponga que desea entrenar yolox en 2 máquinas, y la IP de su maestría es 123.123.123.123, use el puerto 12312 y TCP.
En la máquina maestra, ejecutar
python tools/train.py -n yolox-s -b 128 --dist-url tcp://123.123.123.123:12312 --num_machines 2 --machine_rank 0En la segunda máquina, ejecute
python tools/train.py -n yolox-s -b 128 --dist-url tcp://123.123.123.123:12312 --num_machines 2 --machine_rank 1Registro de pesas y prejuicios
Para registrar métricas, predicciones y puntos de control del modelo a W&B, use el argumento de la línea de comandos --logger wandb y use el prefijo "wandb-" para especificar argumentos para inicializar la ejecución de 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 ejemplo de tablero Wandb está disponible aquí
Otros
Consulte más información con el siguiente comando:
python -m yolox.tools.train --helpApoyamos las pruebas por lotes para una evaluación rápida:
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-xPara reproducir la prueba de velocidad, usamos el siguiente comando:
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 usa yolox en su investigación, cite nuestro trabajo utilizando la siguiente entrada de Bibtex:
@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}
}Sin la guía del Dr. Jian Sun, Yolox no habría sido liberado y abierto a la comunidad. El fallecimiento del Dr. Sun es una gran pérdida para el campo de la visión de la computadora. Agregamos esta sección aquí para expresar nuestro recuerdo y condolencias a nuestro Capitán Dr. Sun. Se espera que todos los profesionales de la IA en el mundo se apeguen a la creencia de "innovación continua para expandir los límites cognitivos y la tecnología extraordinaria para lograr el valor del producto" y avanzar en todo el camino.
