Skip to content

aadityavikram/100DaysOfCoding

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 

Repository files navigation

100DaysOfCoding

Day 1-11: June 20-30, 2018

What I did ?

Learned Linear Algebra from Gilbert Strang's lectures.

Day 12: July 1, 2018

What I did ?

  1. Resumed Machine Learning course by Andrew Ng on Coursera.
  2. Had completed upto week 4 before.
  3. Resumed from week 5.

Day 13: July 2, 2018

What I did ?

  1. Since it was my birthday, I decided to apply the knowledge that I have gained so far before proceeding further with learning process.
  2. Searched for projects and found MNIST Model was the best thing to train to get good hold of concepts as a beginner.

Day 14: July 3, 2018

What I did ?

  1. Trained the MNIST model for Digit Classification.
  2. By Using Tensorflow.
  3. Created a neural network model with 2 hidden layers, an input layer and an output layer.
  4. Achieved accuracy near to about 97% after using 'Sigmoid' as an activation function.

Day 15: July 4, 2018

What I did ?

  1. Trained the MNIST model for Digit Classification again but this time I used Convolutional Neural Network or CNN.
  2. By Using Tensorflow.
  3. Created a neural network model with 3 convolutional layers, a fully connected layer and an output layer.
  4. Achieved accuracy near to about 97.5% after using 'Sigmoid' as an activation function and AdamOptimizer.

Day 16: July 5, 2018

What I did ?

  1. Trained the MNIST model for Digit Classification again using Convolutional Neural Network or CNN.
  2. By Using tflearn.
  3. Created a neural network model with 2 convolutional layers, and 2 fully connected layers.
  4. Achieved accuracy near to about 97.5% after using 'Relu' and 'Softmax' as activation functions and AdamOptimizer.

Day 17: July 6, 2018

What I did ?

  1. Trained the MNIST model for Digit Classification again but this time I used Recurrent Neural Network or RNN.
  2. By Using Tensorflow.
  3. Created a BasicLSTMCell.
  4. Achieved accuracy near to about 98.5% after using AdamOptimizer.
  5. Did not understand fully, will study further about RNN in future.

Day 18: July 7, 2018

What I did ?

  1. Came to know about Kaggle.
  2. Browsed through the website and found various competitions that were going on or were finished in the past.

Day 19: July 8, 2018

What I did ?

  1. Picked the competition held in 2017 Dogs vs Cats Redux and decided to implement it using CNN.
  2. By using tflearn
  3. Created a neural network model with 6 convolutional layers and 2 fully connected layers.
  4. Achieved accuracy near to about 82% after using 'Relu' and 'Softmax' as activation functions and AdamOptimizer.
  5. Plotted the images using matplotlib to see the results.

Day 20: July 9, 2018

What I did ?

  1. Completing the previous project involving classification of cats and dogs, I got interested in Image and Video Operations.
  2. So I started looking up as to what else can be done in this field.
  3. So I found OpenCV played a major role here along with Python Imaging Library or PIL.
  4. So started learning OpenCV.

Day 21: July 10, 2018

What I did ?

  1. Learned to open or load images from local folders or access webcam using imread from cv2 library.
  2. Learned to display the images using imshow() from cv2 library.
  3. Learned to display images or plot them using matplotlib library.
  4. Learned to draw on the images plotted with matplotlib.

Day 22: July 11, 2018

What I did ?

  1. Learned to open or load videos from local folders or access webcam using VideoCapture() from cv2 library.
  2. Learned to read the frames using read() function.
  3. Learned to convert color of frames or images using cvtColor() from cv2 library.
  4. Learned about the codecs and formats associated with them to save the videos read from webcam or local folder using VideoWriter from cv2 library.

Day 23: July 12, 2018

What I did ?

  1. Learned to draw shapes on a loaded image using following functions of cv2 library :- i) line() ii) rectangle() iii) circle() iv) polylines()
  2. Learned to write text on loaded image using putText() of cv2 library.

Day 24: July 13, 2018

What I did ?

  1. Learned to manipulate pixels of a loaded image.
  2. Pixels are just coordinates in a image containing a list of three values [Blue, Green, Red].
  3. cv2 loads images in BGR mode so to convert to original color we have to apply cvtColor(image, cv2.COLOR_BGR2RGB).
  4. We can change color of a pixel by altering BGR value at that pixel.
  5. We can select a part of picture and copy it over another part of the same picture.

Day 25: July 14, 2018

What I did ?

  1. Learned masking in OpenCV.
  2. Used the following functions :- i) threshold() --> selects the parts of image between two threshold values. ii) bitwise_not() --> inverts the mask. iii) bitwise_and() --> overlaps the mask with background. iv) add() --> adds two images.
  3. Learned different thresholding functions :- i) threshold() --> normal threshold function. ii) adaptiveThreshold() --> gaussian threshold function. iii) threshold() --> otsu threshold function (did not understand much about it though).

Day 26: July 15, 2018

What I did ?

  1. Learned color filtering in OpenCV.
  2. Basically color filtering creates a mask between two ranges of color values.
  3. First converted the color of image to hsv using cv2.COLOR_BGR2HSV then overlapped it with frames with bitwise_and() to just show that mask and black background.
  4. There was some noise in the background as well as on the mask though.
  5. Converted to hsv because color filtering works on brightness or lightness rather than the color values.

Day 27: July 16, 2018

What I did ?

  1. Learned blurring and smoothing in OpenCV.
  2. Basically blurring and smoothing remove the noise as much as possible from the image.
  3. For smoothing :- i) A kernel is made which is simply an array of ones of some size e.g. 15x15. ii) Keep the kernel above a pixel and take an average of all 225 (15x15) pixels below it and replace central pixel with this average. iii) Repeat for all pixels. iv) Function used --> cv2.filter2D().
  4. For blurring, following functions can be used :- i) cv2.GaussianBlur() ii) cv2.medianBlur()

Day 28: July 17, 2018

What I did ?

  1. Learned to apply gradients and implement edge detection.
  2. For gradient, following functions can be used :- i) cv2.Laplacian() --> applies laplacian blur. ii) cv2.Sobel(frame, datatype, x, y, ksize) --> applies horizontal or vertical gradient if (x=1 and y=0) or (x=0 and y=1).
  3. For edge detection, function that can be used --> cv2.Canny() --> converts the image into network of edges.
  4. Learned template matching in OpenCV.
  5. Function used --> cv2.matchTemplate()
  6. Learned corner detection in OpenCV.
  7. Function used --> cv2.goodFeaturesToTrack() --> detects corners in an image.
  8. Corner detection works best when image is grayscaled.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors