Skip to main content

Evaluation dataset and tools from Middlebury Stereo Evaulation data 2014.

Project description

stereo-mideval

Python package for dataset and evaluation tools from the Middlebury stereo evaulation 2014 dataset. This project is in development by I3DR for evaluating stereo matching algorithms for use in stereo cameras. However, this project is fully open-source with no limitations to encorage and support others who may need this.

Install

pip install stereo-mideval

Features

  • Download scene data from Middlebury servers
  • Load disparity image and stereo pair from scene data
  • Display normalised colormaped disparity image
  • Convert disparity image to depth image using calibration file from scene data
  • Evaluation metrics of disparity image compared to ground truth disparity (rmse, mse, bad pixel percentage)

Examples

Download and display data from all scenes in Middlebury stereo dataset (2014)

import os
from stereomideval import Dataset

# Path to dowmload datasets
DATASET_FOLDER = os.path.join(os.getcwd(),"datasets")

# Create dataset folder
if not os.path.exists(DATASET_FOLDER):
    os.makedirs(DATASET_FOLDER)

# Initalise stereomideval Dataset object
stmid_dataset = Dataset()

# Get list of scene in dataset (2014) and iterate through them
for scenename in stmid_dataset.get_scene_list():
    # Download dataset from middlebury servers
    # will only download it if it hasn't already been downloaded
    print("Downloading data for scene '"+scenename+"'...")
    stmid_dataset.download_scene_data(scenename,DATASET_FOLDER)
    # Load scene data from downloaded folder
    print("Loading data for scene '"+scenename+"'...")
    scene_data = stmid_dataset.load_scene_data(scenename,DATASET_FOLDER,True)

Download and display data from a single scene in Middlebury stereo dataset (2014)

import os
from stereomideval import Dataset

# Path to dowmload datasets
DATASET_FOLDER = os.path.join(os.getcwd(),"datasets")
# Scene name (see here for list of scenes: https://vision.middlebury.edu/stereo/data/scenes2014/)
SCENE_NAME = "Adirondack"

# Create dataset folder
if not os.path.exists(DATASET_FOLDER):
    os.makedirs(DATASET_FOLDER)

# Initalise stereomideval Dataset object
stmid_dataset = Dataset()

# Download dataset from middlebury servers
# will only download it if it hasn't already been downloaded
print("Downloading data for scene '"+SCENE_NAME+"'...")
stmid_dataset.download_scene_data(SCENE_NAME,DATASET_FOLDER)
# Load scene data from downloaded folder
print("Loading data for scene '"+SCENE_NAME+"'...")
stmid_dataset.load_scene_data(SCENE_NAME,DATASET_FOLDER,True,0)

Download and evaluatuate all scenes in Middlebury stereo dataset (2014)

import os
import numpy as np
from stereomideval import Dataset, Eval

dataset_folder = os.path.join(os.getcwd(),"datasets") #Path to dowmload datasets

# Create dataset folder
if not os.path.exists(dataset_folder):
    os.makedirs(dataset_folder)

# Initalise stereomideval objects
stmid_dataset = Dataset()
stmid_eval = Eval()

# Get list of scenes in Milddlebury's stereo dataset (2014) and iterate through them
for scenename in stmid_dataset.get_scene_list():
    # Download dataset from middlebury servers
    # will only download it if it hasn't already been downloaded
    print("Downloading data for scene '"+scenename+"'...")
    stmid_dataset.download_scene_data(scenename,dataset_folder)
    # Load scene data from downloaded folder
    print("Loading data for scene '"+scenename+"'...")
    scene_data = stmid_dataset.load_scene_data(scenename,dataset_folder,True,1)
    gt_disp_image = scene_data.disp_image
    # Demonstate evaluation by comparing the ground truth to itelf with a bit of noise
    noise = np.random.normal(0, 1.5, gt_disp_image.shape)
    test_disp_image = gt_disp_image + noise
    rmse = stmid_eval.rmse(gt_disp_image,test_disp_image)
    bad_pix_error = stmid_eval.bad_pix_error(gt_disp_image,test_disp_image)
    print("RMSE: {:.2f}".format(rmse))
    print("Bad pixel 2.0: {:.2f}%".format(bad_pix_error))

Developement

Build

python -m pip install --user --upgrade twine wheel && python setup.py clean --all && python setup.py sdist bdist_wheel

Upload to Test Pip

Test pip package is maintained by user: i3DR

python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*

Upload to Pip

Pip package is maintained by user: i3DR

python -m twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stereo-mideval-1.0.12.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

stereo_mideval-1.0.12-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file stereo-mideval-1.0.12.tar.gz.

File metadata

  • Download URL: stereo-mideval-1.0.12.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.7.9

File hashes

Hashes for stereo-mideval-1.0.12.tar.gz
Algorithm Hash digest
SHA256 a1fc27aa6babab38c32cc2fe080541628c1e9706166d230f2f1b8ccd30eaef32
MD5 f54984d7b5b196c2ee00059f430a70af
BLAKE2b-256 1fc3e5994443671b9c9705547ef5dc4c2cca93cc77c167c0fb8c207f4815742d

See more details on using hashes here.

File details

Details for the file stereo_mideval-1.0.12-py3-none-any.whl.

File metadata

  • Download URL: stereo_mideval-1.0.12-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.7.9

File hashes

Hashes for stereo_mideval-1.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 0f4c14fa6293ccec2608847a88db46aa456e37bd7732fd8df63cd2945b7f55db
MD5 c5c693d3af48b506219cfbb64c5407b6
BLAKE2b-256 eddbc9f3740ebb8af644ab8d9205a0d946ede068f824a90fc2560a1aa500b331

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page