REPOSITORY OVERVIEWLive repository statistics
★ 6Stars
⑂ 0Forks
◯ 0Open issues
◉ 6Watchers
55/100
OPENREPOHUB HEALTH SIGNALMixed signals
A transparent discovery signal based on current public GitHub metadata.
Recent activity35% weight
72 Community adoption25% weight
12 Maintenance state20% weight
100 License clarity10% weight
0 Project information10% weight
67 This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
README preview
Monocular Visual Odometry Project
Course Information
Institution: University of Zurich (UZH) and Swiss Federal Institute of Technology (ETH)
Course: Vision Algorithms for Mobile Robotics
Instructor: Prof. Davide Scaramuzza
Project Overview
This project is a part of the Vision Algorithms for Mobile Robotics course, focusing on implementing and understanding the fundamentals of monocular visual odometry. The goal is to develop an algorithm capable of estimating the 3D motion of a single camera moving through a static environment. This technique is critical in the domains of robotics and autonomous vehicles, where understanding the movement relative to the environment is crucial.
Objectives
The primary objective of this project is to implement and evaluate a simple monocular visual odometry (VO) pipeline with key features, including:
-
Initialization of 3D Landmarks: This involves the extraction of initial sets of 2D ↔ 3D correspondences from the first frames of a sequence and bootstrapping the initial camera poses and landmarks.
-
Keypoint Tracking Between Frames: The project requires tracking keypoints between two consecutive frames, which is crucial for maintaining the continuity and accuracy of the visual odometry pipeline.
-
Pose Estimation Using Established 2D ↔ 3D Correspondences: Accurate pose estimation is essential for understanding the movement and orientation of the camera in space over time.
-
Triangulation of New Landmarks: As the camera moves through the environment, it is necessary to continuously triangulate and add new landmarks to the model to ensure comprehensive environmental mapping.
-
Use of Provided Datasets for Testing: The project will utilize three specific datasets (parking, KITTI1, and Malaga2) for testing and validating the VO pipeline, each offering different challenges and scenarios.
Installation
Prerequisites
-
Python 3.x: The project is developed using Python 3.x. Ensure Python 3.x is installed on your system.
-
OpenCV: OpenCV is a powerful library for computer vision. Install OpenCV using your system's package manager or by downloading the official OpenCV installer.
-
Numpy: Numpy is a fundamental library for scientific computing in Python. Install Numpy using your system's package manager or by downloading the official Numpy installer.
ALGORITHMICALLY RELATEDSimilar Open-Source Projects
Selected from shared topics, language and repository description—not editorial ratings.
A computer vision project focused on 3D scene reconstruction using a stereo-vision system. This implementation involves camera calibration, image acquisition via translational motion, SIFT feature detection and matching, and 3D point cloud generation. Developed as part of the Master Informatique Visuelle curriculum at USTHB.
56/100 healthActive repository
PythonNo license#callibration#computer-vision#homography-matrix#opencv
⑂ 1 forks◯ 0 issuesUpdated May 25, 2026
Actual Project file https://drive.google.com/file/d/1RCJ271K1B5Ig839c_0UCq8oWn5mpz7EN/view?usp=sharing Introduction This project was part of the embedded system design course, and uses face recognition to control a servo lock. The face recognition has been done using the Eigenfaces algorithm (Principle Component Analysis or PCA) and implemented using the Python API of OpenCV. Open Source Project source It's a slight modification of the Raspberry Pi Face Recognition Treasure Box project by Tony Dicola on the Adafruit Learning System. The code has been modified at places to replace the use of the RPIO library (which has issues running on the new Raspberry Pi 2 Model B+) with the standard RPi.GPIO library. The project has also been implemented to work as an automated home lock system which unlocks for the owner of the house and doesn't for any other visitor. It also plays an appropriate voice message. IMPLEMENTATION DETAILS This slight modification also changed the way of installing the dependencies,OpenCV & Python version and also the installation of updated GPIO ports for Raspberry B+. The modifications that has done here also includes the .wave sound files that tends to start or stop depending upon the door recognition status. OpenCV Installation This project depends on the OpenCV computer vision library to perform the face detection and recognition. Unfortunately the current binary version of OpenCV available to install in the Raspbian operating system through apt-get (version 2.3.x) is too old to contain the face recognition algorithms used by this project. However you can download, compile, and install a later version of OpenCV to access the face recognition algorithms. Note: Compiling OpenCV on the Raspberry Pi will take about 3 hours of mostly unattended time. Make sure you have some time to start the process before proceeding. First you will need to install OpenCV dependencies before you can compile the code. Connect to your Raspberry Pi in a terminal session and execute the following command: sudo apt-get update sudo apt-get install build-essential cmake pkg-config python-dev libgtk2.0-dev libgtk2.0 zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libjasper-dev libavcodec-dev swig unzip Answer yes to any questions about proceeding and wait for the libraries and dependencies to be installed. You can ignore messages about packages which are already installed. Next you should download and unpack the OpenCV source code by executing the following commands: wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.10/opencv-2.4.10.zip unzip opencv-2.4.10.zip Note that this project was written using OpenCV 2.4.10, although any 2.4.x version of OpenCV should have the necessary face recognition algorithms. Now change to the directory with the OpenCV source and execute the following cmake command to build the makefile for the project. Note that some of the parameters passed in to the cmake command will disable compiling performance tests and GPU accelerated algorithms in OpenCV. I found removing these from the OpenCV build was necessary to help reduce the compilation time, and successfully compile the project with the low memory available to the Raspberry Pi. cd opencv-2.4.9 cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_gpu=OFF -DBUILD_opencv_ocl=OFF After this command executes you should see details about the build environment and finally a '-- Build files have been written to: ...' message. You might see a warning that the source directory is the same as the binary directory--this warning can be ignored (most cmake projects build inside a subdirectory of the source, but for some reason I couldn't get this to work with OpenCV and built it inside the source directory instead). If you see any other error or warning, make sure the dependencies above were installed and try executing the cmake command again. Next, compile the project by executing: make This process will take a significant amount of time (about 3 hours), but you can leave it unattended as the code compiles. Finally, once compilation is complete you can install the compiled OpenCV libraries by executing: sudo make install After this step the latest version of OpenCV should be installed on your Raspberry Pi. Python Dependencies The code for this project is written in python and has a few dependencies that must be installed. Once connected to your Raspberry Pi in a terminal session, execute the following commands: sudo apt-get install python-pip sudo apt-get install python-dev sudo pip install picamera sudo pip install RPi.GPIO You can ignore any messages about packages which are already installed or up to date. These commands will install the picamera library for access to the Raspberry Pi camera, and the GPIO library for access to the Pi GPIO pins and PWM support. Hardware The Hardware required for this project are as follows: Raspberry Pi ( I prefer Model 2 B+) Raspberry Pi Camera Micro Servo One Push Button Power Supply for the Servo (5V Source) One 10K resistor for pull down Breadboard and Jumper wires for connections The necessary circuit diagrams and further explanations are explained in depth in the original pdf accompanying the project. Kindly go through it first.