-
Notifications
You must be signed in to change notification settings - Fork 22
Google Summer of Code Ideas 2025
- Implement efficient SmolVLM
- Apriltag and QR code detectors
- Pose Estimation algorithms
- Implement GPU image transforms
- Depth Estimation on Android Using Rust
- Implement modular VO Slam API
** projects ideas are ordered by soft priority
-
-
Description: The aim of this project is to bring State of the Art methods for lightweight Visual Language models into Kornia in Rust. Recently, Hugging Face released a family of small visual language models (SmolVLM) which can be a game changer for the industry to build applications in embedded devices using such AI models.
-
Expected Outcomes: The expectation is to implement an API in Rust to integrate the latest SmolVLM model. Evaluate which NN engine suits better for this task, either onnxruntime (via ORT-Pyke) or Candle. It’s expected also to evaluate a native Rust implementation of the model and its feasibility. Tests and benchmarks in both desktop and nvidia jetson are also mandatory as part of the final delivery.
-
Resources:
-
Possible Mentors: Miquel Farre
-
Difficulty: Medium
-
Duration: 350 hours
-
-
-
Description: This project aims to implement in Kornia Rust curated detection algorithms useful for localization and calibration purposes. It’s very common to use April tags for camera calibration applications; or QR code detectors for more advanced machine vision applications. In the area of visual localization, common algorithms are FAST (because it is really fast), or ORB. With such methods kornia-rs could be used in many robotics applications together with existing foundational libraries such sophus-rs.
-
Expected Outcomes: Implement efficient CPU versions of the above detectors with proper testing and benchmarking against common libraries such OpenCV or VPI. It’s expected also as part of the delivery to work together with the author of sophus-rs to show an integration of a calibration system using e.g the april tag detector and/or using FAST features for a Visual SLAM implementation.
-
Resources:
- Rust Book: https://doc.rust-lang.org/book/
- Nvidia VPI: https://docs.nvidia.com/vpi/index.html
- Opencv-rs: https://docs.rs/opencv/latest/opencv/
- Aprilgrid-rs: https://github.com/powei-lin/aprilgrid-rs
- Sophus-rs: https://github.com/sophus-vision/sophus-rs
-
Possible Mentors: Hauke Strasdat
-
Difficulty: Hard
-
Duration: 350 hours
-
-
-
Description: This project aims to enhance kornia-rs's capabilities in 3D registration and pose estimation by implementing and optimizing key algorithms, including:
- Improve existing Iterative Closest Point (ICP) for point cloud alignment by adding Point to Normal loss, or evaluate again KISS-ICP. Additionally, implement Truncated Signed Distance Function (TSDF).
- Perspective-n-Point (PnP) and Efficient PnP (EPnP) for camera pose estimation
- Affine and similarity transformations (e.g., cv2.AffineTransform3D) for rigid and non-rigid transformations
- Potential optimizations for real-time performance and robustness
-
Expected Outcomes:
- A set of efficient, well-tested Rust implementations of the above algorithms
- Integration with kornia-rs for seamless use in robotics, AR, and SLAM applications
- Benchmarking and comparison with existing implementations for accuracy and performance
- Comprehensive documentation and examples
-
Resources:
- Rust Book: https://doc.rust-lang.org/book/
- OpenCV’s implementations of PnP, EPnP, and affine transformations
- Research papers on pose estimation and 3D alignment
- Existing Rust crates for linear algebra and optimization
-
Possible Mentors: Dmytro Mishkin
-
Difficulty: Hard
-
Duration: 350 hours
-
-
-
Description: This project has the main objective to improve the existing image transformations in the kornia-imgproc crate which are currently implemented in native CPU to be upgraded to GPU. Ideally, propose a plan to upgrade the functionality in this crate into efficient GPU implementations via CubeCL or similar that can support WGP in native Rust. An example would be geometric sampling transformations like resize, or warp_affine/warp_perspective. Additionally, color transformations and Distance Transform would be very welcomed.
-
Expected Outcomes: Finished implementations of the functions with proper documentation, testing and benchmarking against existing libraries such OpenCV or Nvidia VPI. Examples and tutorials are expected as part of the end of the project delivery as testing in Nvidia Jetsons.
-
Resources:
- Rust Book: https://doc.rust-lang.org/book/
- Kornia Imgproc Crate: https://github.com/kornia/kornia-rs/tree/main/crates/kornia-imgproc
- CubeCL: https://github.com/tracel-ai/cubecl
- Nvidia VPI: https://docs.nvidia.com/vpi/index.html
- Opencv-rs: https://docs.rs/opencv/latest/opencv/
-
Possible Mentors: Edgar Riba
-
Difficulty: Hard
-
Duration: 350 hours
-
-
-
Description: This project aims to develop an Android application using Rust to perform real-time depth estimation with ONNX Runtime via Rust bindings for ONNX Runtime. By leveraging Rust’s performance efficiency and memory safety, the application will enable on-device AI processing for applications in robotics, augmented reality (AR), SLAM, and 3D scene reconstruction.
-
Expected Outcomes:
- A fully functional Rust-based Android application capable of real-time depth estimation.
- Integration of ONNX Runtime via Pyke’s Rust bindings for optimized AI inference.
- Utilization of Android’s official Rust build system for compatibility and performance.
- A lightweight, user-friendly UI for depth visualization.
- Performance benchmarking to compare execution efficiency.
- Comprehensive documentation and a demo video showcasing real-world applications.
-
Resources:
-
Possible Mentors: Christie Jacob
-
Difficulty: Hard
-
Duration: 350 hours
-
-
-
Description: This project aims to build a Visual Odometry (VO) SLAM API in Rust for the Kornia-rs ecosystem, focusing first on an RGB-D pipeline (e.g., iPhone LiDAR data + Prompt DepthAnything for high-resolution, accurate depth) and subsequently extending it to monocular-only VO. The implementation should be efficient, dependency-light, and well-suited for real-time or near–real-time robotics and AR/VR use cases.
-
Expected Outcomes: A VO SLAM crate in Rust that is straightforward to integrate with Kornia-rs, starting first with the simpler RGB-D visual odometry pipeline and making progress towards robust monocular visual odometry pipeline in rust.
-
Resources:
-
Possible Mentors: Pablo Vela
-
Difficulty: Hard
-
Duration: 350 hours
-