Git Product home page Git Product logo

Rust Computer Vision

Rust CV is a project to implement computer vision algorithms in Rust.

What is computer vision

Many people are familiar with covolutional neural networks and machine learning in computer vision, but computer vision is much more than that. One of the first things that Rust CV focused on was algorithms in the domain of Multiple-View Geometry (MVG). Today, Rust now has enough MVG algorithms to perform relatively simple camera tracking and odometry tasks. Weakness still exists within image processing and machine learning domains.

Goals

Here are some of the domains of computer vision that Rust CV intends to persue along with examples of the domain (not all algorithms below live within the Rust CV organization, and some of these may exist and are unknown):

To support computer vision tooling, the following will be implemented:

Rust Computer Vision's Projects

akaze icon akaze

Implementation of AKAZE based on the one originally by indianajohn

arrsac icon arrsac

Implements ARRSAC from the paper "A Comparative Analysis of RANSAC Techniques Leading to Adaptive Real-Time Random Sample Consensus"

cv icon cv

Rust CV mono-repo. Contains pure-Rust dependencies which attempt to encapsulate the capability of OpenCV, OpenMVG, and vSLAM frameworks in a cohesive set of APIs.

cv-geom icon cv-geom

Collection of computational geometry algorithms for Rust CV

cv-optimize icon cv-optimize

Provides optimizers for common computer vision problems

eight-point icon eight-point

Implements the eight-point algorithm for estimating the essential matrix

ennona icon ennona

Reconstruction Tool for Rust CV

hamming-bow icon hamming-bow

Binary TF vector generator for bags of hamming space features

hamming-dict icon hamming-dict

Generates codeword dictionaries for hamming-space BoW algorithms

hamming-heap icon hamming-heap

Rust crate providing amortized constant time min and max heaps/priority queues for binary features using hamming distance

hamming-lsh icon hamming-lsh

Generates and utilizes deterministic dictionaries to generate balanced locality-sensitive hashes (similar to simhash) for arbitrary hamming space features

header-vec icon header-vec

Allows one to store a header struct and a vector all inline in the same memory on the heap and share weak versions for minimizing random lookups in data structures

hgg icon hgg

Hierarchical Greedy Graph

hnsw icon hnsw

HNSW ANN from the paper "Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs"

hwt icon hwt

Hamming Weight Tree from the paper "Online Nearest Neighbor Search in Hamming Space"

kpshow icon kpshow

A tool to show keypoints in images using different keypoint detection algorithms

lambda-twist icon lambda-twist

Relative camera pose from three 3d to 2d correspondences

ndarray-image icon ndarray-image

Allows conversion between ndarray's types and image's types

nister-stewenius icon nister-stewenius

Essential matrix estimation from 5 normalized image coordinate correspondences from the paper "Recent developments on direct relative orientation"

nshare icon nshare

Provides an interface layer to convert between n-dimensional types in different Rust crates

p3p icon p3p

Camera pose estimation given 3D points and corresponding pixel coordinates

pnp icon pnp

Perspective-n-Point algorithm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.