cv  by rust-cv

Rust CV: Computer vision algorithms, abstractions, and systems in Rust

Created 5 years ago
954 stars

Top 38.5% on SourcePulse

GitHubView on GitHub
Project Summary

This repository provides a comprehensive suite of computer vision algorithms and abstractions implemented purely in Rust, aiming to encapsulate the capabilities of libraries like OpenCV and OpenMVG. It targets developers building computer vision systems, offering a cohesive API for tasks ranging from image processing to photogrammetry and vSLAM, with a focus on performance and safety.

How It Works

The project is structured as a monorepo containing multiple Rust crates, each dedicated to specific computer vision domains. It emphasizes a #[no_std] compatible implementation where possible, allowing for embedded use cases. The core approach involves reimplementing established algorithms and providing abstractions for camera models, feature matching, and geometric estimation, drawing inspiration from established C++ libraries like TheiaSfM.

Quick Start & Requirements

  • Install Rust: curl https://sh.rustup.rs -sSf | sh
  • Install build dependencies on Ubuntu 20.04: sudo apt install cmake build-essential libfreetype-dev libxkbcommon-dev
  • Clone and build: git clone https://github.com/rust-cv/cv.git && cd cv && cargo build
  • Documentation: https://rust-cv.github.io/cv/
  • Tutorial Book: https://rust-cv.github.io/cv/

Highlighted Details

  • Implements algorithms for photogrammetry, including SfM and visual SLAM.
  • Features include Gaussian blur, histogram equalization, edge detection (Canny, Sobel, Scharr), and perceptual hashing.
  • Supports feature extraction (AKAZE, FAST, ORB, SIFT) and camera models (Pinhole, Fisheye, Equirectangular).
  • Includes descriptor matching, consensus algorithms (RANSAC, ARRSAC), and motion estimation.

Maintenance & Community

The project is a monorepo consolidating previously separate repositories. All new contributions should be made to this repository. The README mentions inspiration from TheiaSfM.

Licensing & Compatibility

The project consists of multiple crates, each with its own license, predominantly MIT. This generally allows for commercial use and linking with closed-source applications.

Limitations & Caveats

While strong in photogrammetry and feature extraction, the project acknowledges weaknesses in image processing and pattern recognition domains, with ongoing development planned for these areas. Some features are marked as incomplete or not yet packaged.

Health Check
Last Commit

1 month ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
10 stars in the last 30 days

Explore Similar Projects

Starred by Omar Sanseviero Omar Sanseviero(DevRel at Google DeepMind), Shizhe Diao Shizhe Diao(Author of LMFlow; Research Scientist at NVIDIA), and
1 more.

Awesome-Visual-Transformer by dk-liang

0.1%
4k
Vision transformer paper collection
Created 4 years ago
Updated 8 months ago
Feedback? Help us improve.