diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..33ac402 --- /dev/null +++ b/.gitignore @@ -0,0 +1,134 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ +# vsc env +.vscode + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# doc +*.pdf diff --git a/README.MD b/README.MD new file mode 100644 index 0000000..9727ba9 --- /dev/null +++ b/README.MD @@ -0,0 +1,96 @@ +# Computer Vision Hello World! + +## Overview + +Computer Vision Hello World is a collection of computer vision projects tailored for aspiring Computer Vision Engineers embarking on their journey in the field. + +The project has 3 parts: + +- Part 1: Getting Started with Basics +- Part 2: Hands-on Computer Vision with Deep Learning +- Part 3: Vision LLMs: GANs, Image generations, AI Art & Image Captioning + +## Requirements + +```sh +pip install -r requirements.txt +``` + +## Part 1: Getting Started with Basics + +||Project|Description| +|--|--|--| +|[1](#)| Image Loading and Display| Load an image, display it, and apply basic transformations.| +|[2](#)| Image Filtering| Enhance or manipulate image features using filtering techniques.| +|[3](#)| Color Space Conversion| Convert images between different color spaces like RGB, HSV, and YUV.| +|[4](#)| Image Thresholding| Segment an image into two or more regions based on pixel intensity values.| +|[5](#)| Blob Detection| Identify and extract connected regions in an image.| +|[6](#)| Contour Tracking| Follow the movement of objects in a video sequence.| +|[7](#)| Template Matching| Find instances of a template image within a larger image.| +||| + +## Part 1.2: Getting Started with Basics 2 + +||Project|Description| +|--|--|--| +|[1](#)|Face Detection|Detect and localize human faces in images and videos with high accuracy.| +|[2](#)|Face-Detection-using-deep-learning |Identify and localize human faces in images and videos with high accuracy using deep convolutional neural networks.| +|[3](#)|Feature Extraction|Extract relevant features from raw data to improve machine learning algorithms.| +|[4](#)|Face Boundary Detection|Detect, localize, and segment the face boundaries and facial features in an image.| +|[5](#)|Rectangle Drawing|Visualize 2D rectangles with precise dimensions and orientations using computer vision techniques.| +|[6](#)|2D-Object-Detection-using-Deep-Learning |Identify and locate objects in images using deep neural networks for computer vision tasks.| +|[7](#)|2D-Object-Tracking |Identify and follow objects in videos, maintaining their positions and movements over time| +|[8](#)|3D-object-tracking |Monitor and localize objects in 3D space, establishing unique IDs across frames.| +|[9](#)|Human-Pose-Estimation-using-Deep-Learning |Track and analyze the positions of human joints in images and videos using deep neural networks to identify body postures and gestures.| +|[10](#)|Image to Text|output a text from a given image| +||| + +## Part 2: Hands-on Computer Vision with Deep Learning + +||Project|Description| +|--|--|--| +|[1](#)|MNIST Handwritten Digit Recognition |Train a simple neural network to classify handwritten digits from the MNIST dataset.| +|[2](#)|CIFAR-10 Image Classification |Utilize convolutional neural networks (CNNs) to classify images of different types of objects from the CIFAR-10 dataset.| +|[3](#)|Image Captioning |Explore image captioning using CNNs to generate natural language descriptions of images.| +|[4](#)|Object Detection with YOLOv5 |Implement YOLOv5, a real-time object detection algorithm, to detect objects in images and videos.| +|[5](#)|Semantic Segmentation with DeepLabv3+ |Utilize DeepLabv3+, a semantic segmentation model, to segment images into different semantic categories.| +|[6](#)|Facial Recognition with OpenFace |Explore facial recognition using OpenFace, a facial recognition library, to identify individuals in images.| +|[7](#)|Style Transfer with Neural Style |Transfer Introduce neural style transfer to transfer the style of one artwork to another image.| +||| + + +## Part 3: Vision LLMs: GANs, Image generations, AI Art & Image Captioning + +||Project|Description| +|--|--|--| +|[1](#)|Creative Image Generation with GANs |Generate novel images of different styles using GANs.| +|[2](#)|Text-to-Image Synthesis with LLMs and Diffusion Models |Create realistic and creative images from text descriptions using LLMs and diffusion models.| +|[3](#)|AI-Powered Image Restoration and Enhancement |Restore and enhance images using AI methods.| +|[4](#)|Style Transfer with GANs and Image Processing |Transfer the artistic style of one image to another.| +|[5](#)|AI-Driven Image Captioning and Storytelling |Generate comprehensive and creative captions and stories from images using LLMs.| +|[6](#)|AI-Assisted Image Editing and Manipulation |Automate image editing and manipulation tasks using AI.| +|[7](#)|AI-Powered Image Analysis and Classification |Analyze and classify images using AI models| +||| + +## Usage + +Some projects are implemented in Jupyter notebooks, while others have a `main.py` file. + +For projects implemented in Jupyter notebooks, run the notebook using: + +- jupyter notebook/lab +- Google Colab + +For projects with a main.py file, run the following command: + +``` +python main.py +``` + +## Contributing + +Feel free to open a pull request or create an issue if you encounter any problem running one these projects. + +## LICENSE + +- MIT diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..b2bd1df --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +numpy +pandas +cv2 +matplotlib