Skip to content

Artificial Intelligence, Deep Learning, Computer Vision -- Projects, Algorithms, Reports

Notifications You must be signed in to change notification settings

laventura/Artificial_Intelligence_ND

Repository files navigation

Artificial Intelligence Nanodegree (AIND)

This repo contains my projects, code, and reports for Udacity's AI Nanodegree

The following projects are included:

Classic Search and AI Projects

  1. Solve a Sudoku with AI

Uses classic constraint propagation strategies to solve Sudoku.

  1. Build a Game-Playing Agent

Uses adversarial search agent to play a game called "Isolation", a deterministic, two-player game in which players alternate turns to move a piece from one to another. Implements classic search algorithms such as MiniMax, Alpha Beta Search, Iterative Deepening Search, and Heuristic Search algorithms to show different plays.

  1. Implement a Planning Search

This project implements classic planning algorithms often used in logistics problems. Implemented example is for an airline cargo problem. It defines planning problem with initial state and the goal, uses progression search to search the state space, and defines heuristics to reach the goals. It experiments with breadth-first search and depth-first search.

  1. Build a Sign Language Recognizer

This project implements probabilistic models such as Hidden Markov Models (HMM) to implement a sign-language recognizer.

Deep Learning Projects

The following projects implement deep neural networks that use computer vision to solve challenging real-world tasks, such as image classification, time series prediction, sequence modeling, and a final capstone project for facial keypoints detection.

  1. Dog Breed Classifier

This project uses convolutional neural networks (CNN) with transfer learning from pre-trained networks (such as VGG, Inception, ResNet) to real world tasks such as classifying images. In this case, it is used to classify dog pictures from among ~130 dog-breeds, a task challenging enough for humans.

Sample CNN

We use latest deep learning frameworks such as Keras(http://keras.io) and TensorFlow to create build a CNN architecture from pre-trained models VGG, Inception, etc. The pre-trained models significantly reduce the challenges in training a new classifier. We experiment with various architectures, and achieve over 82% accuracy 👍

  1. Time Series Prediction and Text Generation

In this project, we perform sequence modeling using Recurrent Neural Networks (RNN) and LSTM. We use RNNs to predict stock prices (a rather dicey, but interesting problem). We also use LSTMs to achieve text generation using a char-rnn style generator that learns to generate text character by character. We use this to generate fake Sherlock Holmes style stories. 😀 We use Keras to implement the projects.

  1. Computer Vision Capstone Project: Facial Keypoint Detection

In the final project, we use advanced computer vision techniques to detect faces in images using filters, and generate facial keypoints.

We implement a full computer vision pipeline to perform image pre-processing (e.g. transforming color spaces, image de-noising, image blurring, identifying regions of interest, etc.) and filtering to extract portions of images. Then we use Haar cascades to detect faces. We then implement CNNs to identify facial landmarks, and then perform interesting operations on detected faces. 😎

Project is implemented in Keras and uses CNN to identify features, and regressors to add facial keypoints. More image processing is performed using OpenCV.