# BlendedMVS: a large scale multi-view stereo dataset with a download problem

> BlendedMVS and its superset BlendedMVG provide 17k to over 110k training samples for generalized multi-view stereo networks, published as split zip archives on GitHub releases after the original OneDrive links proved unreliable. The data is free under Creative Commons Attribution 4.0, and the practical work is in fetching and joining the archives.

**YoYo000/BlendedMVS** — BlendedMVS: A Large-scale Dataset for Generalized Multi-view Stereo Networks

- Repository: https://github.com/YoYo000/BlendedMVS
- Stars: 688 · Forks: 42
- Language: Unknown
- License: not declared
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/yoyo000-blendedmvs

## What the dataset actually contains

BlendedMVS is a large-scale MVS dataset for generalized multi-view stereo networks, published alongside the CVPR 2020 paper of the same name. The dataset contains 17k MVS training samples covering a variety of 113 scenes, including architectures, sculptures and small objects.

The variety is the point of the blending. A dataset of 113 scenes drawn from those three categories gives a model more than one kind of object to generalise over, which is what the generalized multi-view stereo framing in the title refers to.

A superset exists. BlendedMVG, a multi-purpose large-scale dataset for solving multi-view geometry related problems, follows the same blending procedure to generate 389 more scenes, which were originally shown in GL3D, and increases the training image count from 17k to over 110k. The combined 502 scenes are what the full dataset covers.

The readme states the task list these have been applied to: image retrieval, image feature detection and description, two-view outlier rejection and multi-view stereo. It also asks that you cite the paper, and gives the BibTeX entry for the CVPR 2020 article with its author list.

The licence is Creative Commons Attribution 4.0 International, covering both BlendedMVS and BlendedMVG. That is a permissive licence for research use with attribution, and it is a different arrangement from a research dataset with restrictive academic-only terms, which is worth noting if you intend to build on the data commercially.

## The subsets are three sizes of the same underlying data

The distribution is organised as three progressively larger low-resolution sets plus two optional high-resolution extras, and the readme has a table with the size of each.

BlendedMVS is the base set: a low-res set at 27.5 GB, a high-res set at 156 GB, and supplementaries consisting of textured meshes at 9.42 GB and other images at 7.56 GB. BlendedMVS+ is a low-res set of 81.5 GB with no high-res variant. BlendedMVS++ is a low-res set of 80.0 GB with nothing beyond the low-res version.

The resolution split is the first axis: the low-res sets are 768 by 576 and the high-res set is 2048 by 1536. The plus and plus-plus sets add scenes to the low-res collection, which is why they grow the byte count without adding a high-res counterpart.

The readme also states something that saves a lot of work. The experiments in the BlendedMVS paper were conducted using the low-res dataset, and in most cases the low-res dataset would be enough. That is a direct steer away from the 156 GB high-res download for anyone reproducing published numbers, and it is the first thing to read before planning storage.

The practical budget for a modest setup is therefore around 27.5 GB for the base set, or around 80 GB for either of the larger low-res sets. The high-res set plus supplementaries is a different order of commitment, and for most model training it is unnecessary.

## Download from the release artifacts, not the preview links

The most consequential operational detail in the readme is the update at the top of the page.

The maintainers created a GitHub release for stable download of the BlendedMVS, plus and plus-plus datasets, and the high-res set and the supplementaries are in the releases too. If you have problems downloading with the preview OneDrive links, the instruction is to download the dataset as the release artifacts, with a reference to issue 40 in the tracker.

That is a fix for a real and common failure mode. The table in the download section still points at OneDrive preview links for the original sets, and the releases exist precisely because that route was unreliable. The base dataset comes down as a single archive:

```bash
wget https://github.com/YoYo000/BlendedMVS/releases/download/v1.0.0/BlendedMVS.zip
```

The larger sets are split into forty-two parts, which is what the split zip format requires for archives beyond a few gigabytes. The BlendedMVS+ script walks the numbered parts with wget in continue mode and then fetches the final zip descriptor, and the BlendedMVS++ script is the same pattern against a different release tag with a different prefix. The use of wget -c matters: it resumes rather than restarting a multi-gigabyte part.

The high-res and supplementary sets are fetched with a small helper function that takes a release tag, a name and a count:

```bash
#!/bin/bash

# download <release tag> <name> <number of split files>
download() {
    BASE_URL="https://github.com/YoYo000/BlendedMVS/releases/download/$1"
    for i in $(seq 1 $3); do
        wget -c "${BASE_URL}/$2.z$(printf %02d $i)"
    done
    wget -c "${BASE_URL}/$2.zip"
}

# high-res set
download v1.0.3 dataset_full_res_0-29 46
download v1.0.3 dataset_full_res_30-59 9
download v1.0.3 dataset_full_res_60-89 13
download v1.0.3 dataset_full_res_90-112 12

# textured meshes and other images
download v1.0.4 dataset_textured_meshes 4
download v1.0.4 BlendedMVS_supp 3
```

The high-res set is broken into four ranges of scene identifiers, which is a further hint at its size, and the function appends the two digit part number with printf, so the naming matches what the archive expects.

## Split archives have to be joined before they can be opened

Every set except the base one arrives as a split zip, and the readme is explicit that the parts must be joined before unzipping. The commands are two lines:

```bash
zip -s 0 dataset_full_res_0-29.zip --out dataset_full_res_0-29_joined.zip
unzip dataset_full_res_0-29_joined.zip
```

The first command merges the parts into a single archive and the second extracts it. This is the standard split zip workflow, and the reason the download scripts fetch a descriptor file at the end is that the final .zip holds the central directory that the numbered parts need.

Two practical points follow. The joined file is a second full size copy on disk, so for the high-res set you need space for the parts and the joined archive at the same time before extraction adds a third copy, and the readme does not mention a streaming alternative. And a download that was interrupted is recoverable, because the wget continue mode resumes each part where it stopped, and the join step is idempotent as long as every part is present and intact.

The release naming also tells you which version of what you have. The tags are descriptive rather than semantic: v1.0.4 is the supplementaries release, v1.0.3 is the high-res data, v1.0.2 is BlendedMVS++, and the two earlier tags hold the base set and the plus set.

## The on-disk layout follows MVSNet, and there is no code here

The dataset adopts the MVSNet input format, and the readme gives the directory structure to create after downloading.

The root holds a list file per subset, BlendedMVG_list.txt, BlendedMVS_list.txt, BlendedMVS+_list.txt and BlendedMVS++_list.txt, and then one directory per project, named PID0, PID1 and so on up to PID501, where PID is the unique project ID listed in the list file. Inside each project directory are three subdirectories: blended_images holding the numbered jpg images with and without masks, cams holding pair.txt and the numbered camera parameter files, and rendered_depth_maps holding the numbered pfm files.

Two details in that layout matter to anyone writing a loader. The images come in both masked and unmasked versions, with the masked file carrying a _masked suffix on the same index. And the camera data is split into a pair.txt and per image camera files, which is the layout the MVSNet based codebases expect, with the detailed file formats referred to the MVSNet repository.

What this repository is not is a toolkit. The top level contains a README, a doc directory, a project_lists directory, and a .DS_Store, which is the sort of leftover that appears when a directory is zipped on a Mac. There is no training code, no evaluation code, no loader and no dependency manifest. The primary language is recorded as unknown, because the repository is data rather than software.

So the work is on you. Using this dataset means either writing a loader for the MVSNet layout or finding one that reads it, and then reproducing the training setup from the paper. That is the usual bargain with a dataset released alongside a paper, and it is worth pricing in before you commit to the 80 GB download.

## Conclusion

Adopt BlendedMVS or BlendedMVG if your research is in multi-view stereo, image retrieval, feature detection and description, or two view outlier rejection, and you want the same data the CVPR 2020 paper used so your numbers are comparable. Do not adopt it if you need a ready to use training pipeline, since the repository ships data and structure lists rather than code and expects the MVSNet input layout. Before you commit, check the disk cost of the set you need, since the low res split alone runs to 80 GB, and download from the GitHub release artifacts rather than the preview OneDrive links.

## FAQ

### What is BlendedMVS and how large is it?

BlendedMVS is a large-scale MVS dataset for generalized multi-view stereo networks containing 17k training samples across 113 scenes including architectures, sculptures and small objects. The low-res base set is 27.5 GB, the high-res set is 156 GB, and the larger BlendedMVS+ and BlendedMVS++ low-res sets are 81.5 GB and 80.0 GB.

### How do I download the BlendedMVS dataset?

Use the GitHub release artifacts rather than the preview OneDrive links, which the readme flags as unreliable. The base set is a single BlendedMVS.zip download, while the larger sets arrive as split archives with numbered parts that you join with zip -s 0 before unzipping.

### What is the difference between BlendedMVS, BlendedMVS+ and BlendedMVS++?

They are the same underlying data at three sizes, with the low-resolution sets growing in scene count. The readme states that the experiments in the BlendedMVS paper used the low-res dataset and that in most cases the low-res set would be enough.

### What is BlendedMVG?

BlendedMVG is a superset of BlendedMVS and a multi-purpose dataset for multi-view geometry problems. It follows the same blending procedure to generate 389 more scenes, originally shown in GL3D, and increases the training image count from 17k to over 110k.

### What licence is the BlendedMVS dataset under?

BlendedMVS and BlendedMVG are licensed under a Creative Commons Attribution 4.0 International License, and the readme asks that you cite the CVPR 2020 paper if you find the datasets useful for your research.

## Sources

- [Issues](https://github.com/YoYo000/BlendedMVS/issues)
- [README](https://github.com/YoYo000/BlendedMVS/blob/master/README.md)
- [Releases](https://github.com/YoYo000/BlendedMVS/releases)
- [YoYo000/BlendedMVS on GitHub](https://github.com/YoYo000/BlendedMVS)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/yoyo000-blendedmvs
