GitHub - BBWorksB/Computer-Vision-Explained: Every assignment for Computer Vision is clearly corrected and submitted here · GitHub
Skip to content

BBWorksB/Computer-Vision-Explained

Repository files navigation

Computer Vision Course Assignments

Overview

Welcome to my GitHub repository for the Computer Vision course! This repository contains my assignments, projects, and code submissions completed as part of a comprehensive course that explores the fascinating world of computer vision. The course blends theoretical foundations with practical applications, offering a deep dive into how computers interpret and manipulate visual data. Through hands-on projects, I’ve gained experience with key concepts such as image formation, processing techniques, feature detection, 3D reconstruction, and advanced topics like computational photography and neural rendering. This repository serves as a record of my progress and a showcase of the skills I’ve developed in this dynamic and rapidly evolving field.

The course covers a wide range of topics, including image formation (projective geometry, radiometry, optics, and sensor operations), image processing (filtering, Fourier transforms, and geometric transformations), and recognition techniques (both traditional and machine learning-based approaches). It also explores feature detection and matching, image alignment, motion estimation, 3D reconstruction, and emerging areas like image-based rendering and video-based rendering. Practical applications—such as image stitching, depth estimation, and computational photography—are emphasized through coding assignments and projects, ensuring a balance between theory and real-world implementation.


Prerequisites

To successfully engage with the assignments in this repository, familiarity with the following is required:

  • Programming: Proficiency in Python 3 is essential, as the course primarily uses libraries like NumPy, Pandas, PyTorch, and OpenCV. While you’re free to use other languages like C++, note that support may not be provided for them.
  • Mathematics: A solid understanding of linear algebra is necessary, as it underpins many computer vision concepts such as transformations, optimization, and 3D geometry.

These prerequisites ensure you can follow along with the code and tackle the mathematical foundations of the topics covered.


Course Topics

This course is structured around a rich set of topics that build a comprehensive understanding of computer vision. Below is an overview of the key areas explored (without focusing on specific weeks or readings):

  • Introduction and Image Formation: Understanding how images are created, including projective geometry, radiometry, optics, and sensor operations.
  • Image Processing: Techniques like filtering, Fourier transforms, and geometric transformations to manipulate and enhance images.
  • Optimization and Learning: Foundational methods for solving vision problems, transitioning into modern approaches.
  • Deep Learning: Leveraging neural networks for vision tasks, a cornerstone of contemporary computer vision.
  • Recognition: Traditional and machine learning-based methods for identifying objects and patterns in images.
  • Feature Detection and Matching: Identifying and pairing key points across images for tasks like alignment and reconstruction.
  • Image Alignment and Stitching: Combining multiple images into seamless panoramas or composites.
  • Motion Estimation: Analyzing movement within image sequences or videos.
  • Computational Photography: Advanced techniques to enhance or manipulate photos beyond traditional imaging.
  • Structure from Motion: Inferring 3D structure from a series of 2D images.
  • Depth Estimation: Calculating depth information from visual data.
  • 3D Reconstruction: Building 3D models from image inputs.
  • Image-Based Rendering: Creating new views or scenes from existing images, including video-based rendering and neural rendering.

Each topic is reinforced with practical assignments, many of which are stored in this repository.


Repository Structure

  • Part/: Contains individual assignment folders the number after for instance 1, 2, 3 indicate the assignment number
  • In each there is the .pdf for the questions and the report submitted

Feel free to explore the code and reach out if you have questions about the implementations!


Tools and Libraries

The assignments primarily use:

  • Python 3: The main programming language.
  • NumPy & Pandas: For numerical computations and data handling.
  • PyTorch: For deep learning and optimization tasks.
  • OpenCV: For image processing and computer vision utilities.

Additional tools or libraries may be used depending on the assignment requirements.


Acknowledgments

This repository reflects my work in a course offered by Carnegie Mellon University Africa. Special thanks to the instructors and peers who provided guidance and inspiration throughout this learning journey.

Happy coding, and enjoy exploring computer vision!


About

Every assignment for Computer Vision is clearly corrected and submitted here

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors