|
--- |
|
license: apache-2.0 |
|
inference: false |
|
tags: |
|
- object-detection |
|
- computer-vision |
|
- vision |
|
- mmdet |
|
- sahi |
|
|
|
datasets: |
|
- detection-datasets/coco |
|
--- |
|
|
|
### Model Description |
|
[YOLOX: Exceeding YOLO Series in 2021](https://arxiv.org/abs/2107.08430) |
|
|
|
[SAHI: Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection](https://arxiv.org/abs/2202.06934) |
|
|
|
Improved anchor-free YOLO architecture for object detection task. |
|
|
|
|
|
### Documents |
|
- [GitHub Repo](https://github.com/open-mmlab/mmdetection/blob/master/configs/yolox/README.md) |
|
- [Paper - YOLOX: Exceeding YOLO Series in 2021](https://arxiv.org/abs/2107.08430) |
|
|
|
### Datasets |
|
The YOLOX model was pre-trained on [ImageNet-1k](https://huggingface.co/datasets/imagenet2012) and fine-tuned on [COCO 2017 object detection](https://cocodataset.org/#download), a dataset consisting of 118k/5k annotated images for training/validation respectively. |
|
|
|
|
|
### How to use |
|
|
|
- Install [sahi](https://github.com/obss/sahi) and `mmdet`: |
|
|
|
```bash |
|
pip install -U sahi |
|
pip install mmcv-full==1.7.0 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.11.0/index.html |
|
pip install mmdet==2.26.0 |
|
``` |
|
|
|
- Load model and perform prediction: |
|
|
|
```python |
|
from sahi import AutoDetectionModel |
|
from sahi.utils.file import download_from_url |
|
from sahi.predict import get_prediction |
|
from sahi.cv import read_image_as_pil |
|
|
|
MMDET_YOLOX_TINY_MODEL_URL = "https://huggingface.co/fcakyon/mmdet-yolox-tiny/resolve/main/yolox_tiny_8x8_300e_coco_20211124_171234-b4047906.pth" |
|
MMDET_YOLOX_TINY_MODEL_PATH = "yolox.pt" |
|
MMDET_YOLOX_TINY_CONFIG_URL = "https://huggingface.co/fcakyon/mmdet-yolox-tiny/raw/main/yolox_tiny_8x8_300e_coco.py" |
|
MMDET_YOLOX_TINY_CONFIG_PATH = "config.py" |
|
IMAGE_URL = "https://user-images.githubusercontent.com/34196005/142730935-2ace3999-a47b-49bb-83e0-2bdd509f1c90.jpg" |
|
|
|
# download weight and config |
|
download_from_url( |
|
MMDET_YOLOX_TINY_MODEL_URL, |
|
MMDET_YOLOX_TINY_MODEL_PATH, |
|
) |
|
download_from_url( |
|
MMDET_YOLOX_TINY_CONFIG_URL, |
|
MMDET_YOLOX_TINY_CONFIG_PATH, |
|
) |
|
|
|
# create model |
|
detection_model = AutoDetectionModel.from_pretrained( |
|
model_type='mmdet', |
|
model_path=MMDET_YOLOX_TINY_MODEL_PATH, |
|
config_path=MMDET_YOLOX_TINY_CONFIG_PATH, |
|
confidence_threshold=0.5, |
|
device="cuda:0", # or 'cpu' |
|
) |
|
|
|
# prepare input image |
|
image = read_image_as_pil(IMAGE_URL) |
|
|
|
# perform prediction |
|
prediction_result = get_prediction( |
|
image=image, |
|
detection_model=detection_model |
|
) |
|
|
|
# visualize predictions |
|
prediction_result.export_predictions(export_dir='results/') |
|
|
|
# get predictions |
|
prediction_result.object_prediction_list |
|
``` |
|
|
|
More info at [demo notebook](https://github.com/obss/sahi/blob/main/demo/inference_for_mmdetection.ipynb). |
|
|
|
### BibTeX Entry and Citation Info |
|
``` |
|
@article{akyon2022sahi, |
|
title={Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection}, |
|
author={Akyon, Fatih Cagatay and Altinuc, Sinan Onur and Temizel, Alptekin}, |
|
journal={2022 IEEE International Conference on Image Processing (ICIP)}, |
|
doi={10.1109/ICIP46576.2022.9897990}, |
|
pages={966-970}, |
|
year={2022} |
|
} |
|
``` |
|
``` |
|
@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} |
|
} |
|
``` |