---
title: LEVIRDet-159-Dataset
canonical_url: "https://www.modelscope.cn/datasets/yangqinzhe/LEVIRDet-159-Dataset"
md_url: "https://www.modelscope.cn/datasets/yangqinzhe/LEVIRDet-159-Dataset.md"
repository: yangqinzhe/LEVIRDet-159-Dataset
last_updated: 2026-10-20
license: "Apache License 2.0"
storage_size: "143 GB"
downloads: 18443
stars: 0
---

# LEVIRDet-159-Dataset

> LEVIRDet-159-Dataset - yangqinzhe 在 ModelScope 开源的数据集。Paper: A Million-Scale 159-Category Dataset and Foundation Model for Universal Remote Sensing Object Detection. LEVIRDet-159 is a remote sensing object detection dataset with 159 hierarchical category…

yangqinzhe/LEVIRDet-159-Dataset 是 ModelScope 魔搭社区上的数据集，存储大小 143 GB，采用 Apache License 2.0 许可。

- **Repository**: yangqinzhe/LEVIRDet-159-Dataset
- **License**: Apache License 2.0
- **Storage size**: 143 GB
- **Downloads**: 18443
- **Stars**: 0
- **Last updated**: 2026-10-20

Source: https://www.modelscope.cn/datasets/yangqinzhe/LEVIRDet-159-Dataset

---

# LEVIRDet-159

**A Million-Scale 159-Category Dataset and Foundation Model for Universal Remote Sensing Object Detection**

[ModelScope dataset](https://www.modelscope.cn/datasets/yangqinzhe/LEVIRDet-159-Dataset) · [Hugging Face mirror](https://huggingface.co/datasets/yangqinzhe/LEVIRDet-159-Dataset) · [Paper](https://arxiv.org/abs/2606.25312) · [GitHub](https://github.com/QinzheYang/LEVIRDet-release) · [Project page](https://qinzheyang.github.io/LEVIRDet/) · [Interactive demo](https://qinzheyang.github.io/LEVIRDet/levir-demo/)

LEVIRDet-159 is a remote sensing object detection dataset with **159 hierarchical category names**, **174,497 image files**, and **2,563,973 bounding-box annotations** in its hierarchical annotation set. It supports coarse and fine-grained detection, hierarchical evaluation, and research on generalization across remote sensing imagery. The [paper](https://arxiv.org/abs/2606.25312) describes the dataset and its companion model, LEVIRDetNet, and reports approximately 700,000 fine-grained annotations.

This repository distributes two encodings of the **same images, split assignment, and annotation geometry**. Download one version. Both use the public **159-class taxonomy** defined by `taxonomy_159.json`.

**Models and Docker:** The [LEVIRDetNet model repository](https://huggingface.co/yangqinzhe/LEVIRDetNet) provides the 30-class and strict 159-class detector checkpoints, the ready-to-use Docker image, a matching source snapshot, and inference instructions.

## Contents

- [Choose a release](#choose-a-release)
- [Dataset statistics](#dataset-statistics)
- [Download and extract](#download-and-extract)
- [Extracted files](#extracted-files)
- [Annotation format and taxonomy](#annotation-format-and-taxonomy)
- [Evaluation notes](#evaluation-notes)
- [Provenance and limitations](#provenance-and-limitations)
- [License](#license)
- [Citation](#citation)
- [Contact](#contact)

## Choose a release

| Version | Images | Download size | ZIP files | Extracted directory |
| --- | --- | ---: | ---: | --- |
| [Original-image release](https://www.modelscope.cn/datasets/yangqinzhe/LEVIRDet-159-Dataset/files) | Original image bytes, with standardized filenames | 111.41 GB / 103.76 GiB | 62 | `02_release/` |
| [Lightweight release](https://www.modelscope.cn/datasets/yangqinzhe/LEVIRDet-159-Dataset/files) | JPEG quality 95, with original dimensions | 42.32 GB / 39.42 GiB | 22 | `03_lite_jpeg95/` |

Open the ModelScope **Files and versions** page above and choose the directory named exactly `Original-image release` or `Lightweight release`. Each directory contains its ZIPs and companion files directly, with no additional `hub` level. The download examples below select the corresponding directory automatically.

Sizes include the archives and their companion files. GB is decimal; GiB is binary. The original-image version contains 46 training ZIPs, 15 test ZIPs, and `metadata.zip`; the lightweight version contains 14 training ZIPs, 7 test ZIPs, and `metadata.zip`.

The **Original-image release** retains source file contents and formats, including JPEG, PNG, TIFF, and BMP. The **Lightweight release** uses lossy JPEG encoding (`quality=95`, 4:2:0 chroma subsampling, optimized progressive encoding). Image dimensions and box coordinates are unchanged, but pixel values can differ.

## Dataset statistics

| Item | Train | Test | Total |
| --- | ---: | ---: | ---: |
| Image files | 124,257 | 50,240 | 174,497 |
| Images listed in annotation JSONs | 124,257 | 50,231 | 174,488 |
| Bounding boxes in the 159-class annotation set | 1,741,681 | 822,292 | 2,563,973 |
| Bounding boxes in the historical 30-class annotation set | 1,741,694 | 822,298 | 2,563,992 |

The original validation split is distributed here as **`test`**. Nine test image files have no entries in either ground-truth JSON. They are retained for provenance and should not be treated as annotated background images or included in ground-truth-based scoring.

The 30-class and 159-class annotation sets refer to the same image filenames within a split, but have slightly different object counts. They are separate annotation sets: do not join annotations by array position or assume their COCO IDs are interchangeable. The two downloadable image encodings are alternative versions of the same dataset, not additional training examples.

## Download and extract

This ModelScope repository mirrors the independent ZIP archives and COCO-style JSON annotations available on [Hugging Face](https://huggingface.co/datasets/yangqinzhe/LEVIRDet-159-Dataset). Use the download-and-extract workflow below. The files are distributed as archives; load the extracted annotations with the dataset reader used by your detection project.

### 1. Download one version

Install the client in a Python 3.10+ environment:

```bash
python -m pip install --upgrade "modelscope-hub>=0.4.6"
```

Run the following Python code to download the lightweight version:

```python
from modelscope_hub import HubApi

release = "Lightweight release"  # or "Original-image release"
HubApi(endpoint="https://modelscope.cn").download_repo(
    repo_id="yangqinzhe/LEVIRDet-159-Dataset",
    repo_type="dataset",
    revision="master",
    allow_patterns=[f"{release}/*"],
    local_dir="downloads",
    max_workers=4,
)
```

Files will appear under `downloads/Lightweight release/` or `downloads/Original-image release/`. The examples use the ModelScope `modelscope-hub` SDK and the `master` branch. Keep downloaded files and any partial-download/cache files, then rerun the same command after an interruption.

For **test images only**, use this call instead:

```python
from modelscope_hub import HubApi

release = "Lightweight release"  # or "Original-image release"
HubApi(endpoint="https://modelscope.cn").download_repo(
    repo_id="yangqinzhe/LEVIRDet-159-Dataset",
    repo_type="dataset",
    revision="master",
    allow_patterns=[f"{release}/*"],
    ignore_patterns=[f"{release}/train-*.zip"],
    local_dir="downloads",
    max_workers=4,
)
```

Always keep `metadata.zip`, `archives.json`, `SHA256SUMS.txt`, `consumer_extract.py`, and the download notes together with the selected image ZIPs. `metadata.zip` contains the annotation files, taxonomy, provenance mapping, and detailed field documentation.

### 2. Verify and extract

For a complete lightweight download, run this single-line command in a terminal:

```bash
python "downloads/Lightweight release/consumer_extract.py" --archive-dir "downloads/Lightweight release" --out-dir "datasets"
```

For the original-image version:

```bash
python "downloads/Original-image release/consumer_extract.py" --archive-dir "downloads/Original-image release" --out-dir "datasets"
```

For a **test-only** lightweight download:

```bash
python "downloads/Lightweight release/consumer_extract.py" --archive-dir "downloads/Lightweight release" --out-dir "datasets-test" --split test
```

The commands also work in Windows PowerShell with Python on `PATH`. Keep the quotes around paths containing spaces. The extraction script itself needs Python 3.9+ and uses only the standard library.

The script checks archive sizes and SHA-256 hashes, checks ZIP entries, and verifies CRCs while extracting. ZIPs are independent archives: **do not concatenate them**. `--out-dir` is the parent of the extracted version directory, so do not append `02_release` or `03_lite_jpeg95` again. Reserve disk space for both the downloaded archives and an extracted copy.

Extraction does not overwrite or merge into an existing version directory. An interrupted run may leave a `.partial` directory; it is not a completed dataset and extraction does not automatically resume it. Resolve that incomplete output or use a fresh `--out-dir` before retrying. To change from test-only to a complete extraction, use a new output location. Test-only extraction still includes the metadata for both splits, but only test images.

## Extracted files

```text
datasets/
└── 02_release/                   # or 03_lite_jpeg95/
    ├── train/images/
    ├── test/images/
    ├── annotations/
    │   ├── train_159.json
    │   ├── test_159.json
    │   ├── train_30.json
    │   └── test_30.json
    ├── taxonomy_159.json
    ├── provenance.json
    ├── metadata.json
    ├── release_summary.json
    ├── alpha_exceptions.json
    ├── SHA256SUMS.files.txt
    ├── README_数据与标注说明.md
    └── README_下载与解压.md
```

Image filenames use shared seven-digit identifiers across the two versions. Training filenames span `0000001`–`0124257`, and test filenames span `0124258`–`0174497`. Extensions follow the original format in the original-image version and are `.jpg` in the lightweight version. These filename identifiers are **not COCO image IDs**.

Resolve an image path using the selected version's `train/images/` or `test/images/` directory plus the JSON image record's `file_name`. Do not resolve it relative to `annotations/`.

## Annotation format and taxonomy

### COCO-style records with additional hierarchy fields

All annotation files contain `images`, `annotations`, and `categories`. Bounding boxes use pixel coordinates **`[x, y, width, height]`**, where `(x, y)` is the top-left corner. `image_id` links an annotation to an image record; `category_id` links it to a coarse category in that JSON.

**The `*_159.json` files still contain 30 top-level `categories` records.** Their 159-class supervision is carried by additional fields on each annotation, together with the shared taxonomy. Counting the top-level `categories` array does not give the model's hierarchical output dimension.

| Field | Meaning |
| --- | --- |
| `fine_category_name` | Preferred effective label at the annotated level of detail |
| `fine_category_level1` … `fine_category_level4` | Available hierarchy path; deeper levels may be absent or null |
| `fine_supercategory` | Preserved superclass information from the source annotation |
| `original_fine_category_name` | Provenance remark on three training records; never an extra training label |

The following is an excerpt of one annotation, with unrelated fields omitted:

```json
{
  "id": 1,
  "image_id": 1,
  "category_id": 10,
  "bbox": [730, 646, 22, 116],
  "area": 2552,
  "iscrowd": 0,
  "fine_category_name": "bulkCarrier",
  "fine_supercategory": "ship",
  "fine_category_level1": "ship",
  "fine_category_level2": "civil_ship",
  "fine_category_level3": "bulkCarrier",
  "fine_category_level4": null
}
```

Its effective label is `bulkCarrier`, with path `ship → civil_ship → bulkCarrier`. Objects can be annotated at different hierarchy depths; an unspecified child category must not be invented.

### The authoritative 159-class vocabulary

`taxonomy_159.json` contains:

- `classes` and `ordered_classes`: the same ordered list of **159 unique names**, including parent and fine classes.
- `base_classes`: the **30 root categories**.
- `class_hierarchy`: each parent's immediate children.
- `category_ids`: a one-based mapping for derived flat annotations; this does not replace the original COCO `category_id` values.

Keep this class order consistent between the dataset reader, model head, checkpoint, and evaluator. Model class indices are zero-based positions in the ordered list.

For effective-label selection, use a nonempty `fine_category_name` first; otherwise use the deepest populated field from `fine_category_level4` through `fine_category_level1`, then the coarse category linked by `category_id`. Validate the selected label against the taxonomy. Never use `original_fine_category_name` for label selection.

## Evaluation notes

For **hierarchical evaluation**, count a child ground-truth box toward its ancestor categories as well. This expansion is performed in the evaluator; the published annotation files keep one record per annotated object. A conventional flat COCO evaluation is a different protocol and should be identified separately.

Training, testing, checkpoint adaptation, and inference instructions are maintained in the [GitHub repository](https://github.com/QinzheYang/LEVIRDet-release).

## License

This dataset release is licensed under the **Apache License 2.0**. See the repository's [LICENSE](./LICENSE) for the full terms.

## Citation

If you use LEVIRDet-159 or LEVIRDetNet, please cite the [paper](https://arxiv.org/abs/2606.25312):

```bibtex
@misc{yang2026levirdetmillionscale159categorydataset,
  title={LEVIRDet: A Million-Scale 159-Category Dataset and Foundation Model for Universal Remote Sensing Object Detection},
  author={Qinzhe Yang and Dongyu Wang and Haohan Niu and Jia Xu and Zhenwei Shi and Zhengxia Zou},
  year={2026},
  eprint={2606.25312},
  archivePrefix={arXiv},
  primaryClass={cs.CV},
  url={https://arxiv.org/abs/2606.25312}
}
```

## Contact

Please report dataset or tooling issues through yangqinzhe@buaa.edu.cn, [GitHub Issues](https://github.com/QinzheYang/LEVIRDet-release/issues) or the Hugging Face mirror's [Community tab](https://huggingface.co/datasets/yangqinzhe/LEVIRDet-159-Dataset/discussions).
