retinify

retinify

Real-Time AI Stereo Vision Library

Stars: 212

Visit
 screenshot

Retinify is an advanced AI-powered stereo vision library designed for robotics, enabling real-time, high-precision 3D perception by leveraging GPU and NPU acceleration. It is open source under Apache-2.0 license, offers high precision 3D mapping and object recognition, runs computations on GPU for fast performance, accepts stereo images from any rectified camera setup, is cost-efficient using minimal hardware, and has minimal dependencies on CUDA Toolkit, cuDNN, and TensorRT. The tool provides a pipeline for stereo matching and supports various image data types independently of OpenCV.

README:

logo

Real-Time AI Stereo Vision Library

UBUNTU 24.04 UBUNTU 22.04 Release License Language
X LinkedIn YouTube

Retinify is an advanced AI-powered stereo vision library designed for robotics. It enables real-time, high-precision 3D perception by leveraging GPU and NPU acceleration.

Why Retinify?

  • ๐ŸŒ Open Source: Fully customizable and freely available under an Apache-2.0 license.
  • ๐Ÿ”ฅ High Precision: Delivers real-time, accurate 3D mapping and object recognition from stereo image input.
  • โšก Fast Pipeline: All necessary computations run seamlessly on the GPU, enabling real-time performance.
  • ๐ŸŽฅ Camera-Agnostic: Accepts stereo images from any rectified camera setup, giving you the flexibility to use your own hardware.
  • ๐Ÿ’ฐ Cost Efficiency: Runs using just cameras, enabling depth perception with minimal hardware cost.
  • ๐Ÿชถ Minimal Dependencies: The pipeline depends only on CUDA Toolkit, cuDNN, and TensorRT, providing a lean and production-grade foundation.

Basic Usage

pipeline

[!IMPORTANT] Retinify is independent of OpenCV and supports various image data types.

#include <retinify/retinify.hpp>
#include <opencv2/opencv.hpp>

// LOAD INPUT IMAGES
cv::Mat leftImage = cv::imread("path/to/left.png");
cv::Mat rightImage = cv::imread("path/to/right.png");

// PREPARE OUTPUT CONTAINER
cv::Mat disparity = cv::Mat::zeros(leftImage.size(), CV_32FC1);

// CREATE STEREO MATCHING PIPELINE
retinify::Pipeline pipeline;

// INITIALIZE THE PIPELINE
pipeline.Initialize(leftImage.cols, leftImage.rows);

// EXECUTE STEREO MATCHING
pipeline.Run(leftImage.ptr<uint8_t>(), leftImage.step[0],   //
             rightImage.ptr<uint8_t>(), rightImage.step[0], //
             disparity.ptr<float>(), disparity.step[0]);

Getting Started

๐Ÿ“– retinify documentation โ€” Developer guide and API reference.

  • ๐Ÿš€ Installation Guide
    Step-by-step guide to build and install retinify.

  • ๐Ÿ”จ Tutorials
    Hands-on examples to get you started with real-world use cases.

  • ๐Ÿงฉ API Reference
    Detailed class and function-level documentation for developers.

Supported Backends

๐ŸŽฏ Target Status
target-tensorrt-badge build-tensorrt-badge
target-jetson-badge build-jetson-badge
target-hailort-badge Coming soon
target-openvino-badge Coming soon

Pipeline Latencies

Latency includes the time for image upload, inference, and disparity download, reported as the median over 10,000 iterations (measured with retinify::Pipeline).
These measurements were taken using each setting ofโ€ฏretinify::Mode.

[!NOTE] Results may vary depending on the execution environment.

DEVICE \ MODE FAST BALANCED ACCURATE
NVIDIA RTX 3060 3.925ms / 254.8FPS 4.691ms / 213.2FPS 10.790ms / 92.7FPS
NVIDIA Jetson Orin Nano 17.462ms / 57.3FPS 19.751ms / 50.6FPS 46.104ms / 21.7FPS

Third-Party

For a list of third-party dependencies, please refer to NOTICE.md.

Contact

For commercial inquiries, additional technical support, or any other questions, please feel free to contact us at [email protected].

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for retinify

Similar Open Source Tools

For similar tasks

For similar jobs