Created
June 11, 2020 03:22
-
-
Save tuffacton/aa04931edbcb0173534e6d10d60fd728 to your computer and use it in GitHub Desktop.
ECE 5554 Homework 1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "ECE 5554 Homework 1", | |
"provenance": [], | |
"collapsed_sections": [], | |
"toc_visible": true, | |
"authorship_tag": "ABX9TyME0pJCB74g1H3KpLBIw3ds", | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/tuffacton/aa04931edbcb0173534e6d10d60fd728/ece-5554-homework-1.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "k6PnmEpJcE06", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"# Homework 1\n", | |
"Nicolas Acton\n", | |
"\n", | |
"You can run your own copy of this Colaboratory Notebook from this gist:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "F-B5E8FwccZH", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"## Part 1" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "xAHEBCBYcfPJ", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"### Task\n", | |
"You are to write and test a Python/OpenCV program that will perform Gaussian smoothing. Your program should:\n", | |
"\n", | |
"1. Load an image as grayscale\n", | |
"2. Apply a Gaussian smoothing filter by implementing a 2D kernel operation, similar to the code given to you in lecture (you **must** use direct pixel access); your filter should have sigma=1.414 and the proper kernel size\n", | |
"3. Write the resulting image to an output png file\n", | |
"\n", | |
"Notes:\n", | |
"* You must not use any of the OpenCV functions other than loading and saving images, and direct pixel access\n", | |
"* You must also calculate the kernel coefficients yourself\n", | |
"\n", | |
"Test your program on two images: `tinySpock.png` and `nelson.png`. Write a brief discussion of the result images. Do they look as you expected? Why or why not?" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Z9QA4HyiroV-", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"### Results\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "KXDgnhiyGbXn", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"First we write our function for generating our Gaussian kernel based on the provided sigma and the length of the kernel square.\n", | |
"\n", | |
"This is a useful sanity checker to see if your gaussian even gets close: http://dev.theomader.com/gaussian-kernel-calculator/\n", | |
"\n", | |
"We have been directed to utilize a sigma=0.1414." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "byYui2yP-bFM", | |
"colab_type": "code", | |
"colab": {} | |
}, | |
"source": [ | |
"import numpy as np\n", | |
"import cv2\n", | |
"\n", | |
"def g_kernel(l, sigma=1.414):\n", | |
" \"\"\"\n", | |
" Given the length (l) of a side and the sigma, create the gaussian kernel\n", | |
" \"\"\"\n", | |
" # First define a basic 1D array of evenly space numbers constrained \n", | |
" # by the size (l)\n", | |
" oneDimension = np.linspace(-(l // 2), l//2, l)\n", | |
" # Create a normalized gaussian bivariate distribution seeded by the linspace\n", | |
" for i in range(l):\n", | |
" oneDimension[i] = 1 / (np.sqrt(2 * np.pi) * sigma) * np.e ** (-np.power((oneDimension[i]) / sigma, 2) / 2)\n", | |
" # Perform matrix outer multiplication to create \n", | |
" # a kernel of the gaussian univariate distribution\n", | |
" twoDimension = np.outer(oneDimension.T, oneDimension.T)\n", | |
" twoDimension *= 1.0 / twoDimension.max()\n", | |
" return twoDimension" | |
], | |
"execution_count": 0, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "4R4Ugcha-ePi", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"We'll attempt a blur on Mr. Spock first. By our rule of thumb we are to use a size that has an edge 6x the sigma rounded up. However, when we utilized 9 it resulted in a poor-quality blur, but 10 resulted in a higher quality image so we will break that guidance slightly." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "dSGBaO4t29zA", | |
"colab_type": "code", | |
"outputId": "16ab70f7-fad8-44e6-f2a3-c9fae55c20ba", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 529 | |
} | |
}, | |
"source": [ | |
"# This library is needed to show images in colaboratory\n", | |
"from google.colab.patches import cv2_imshow\n", | |
"\n", | |
"!wget \"https://github.com/tuffacton/ece5554/raw/master/hmwk1/images/tinySpock.png\" -O spock.png -q\n", | |
"img = cv2.imread('./spock.png', cv2.IMREAD_GRAYSCALE)\n", | |
"height = len(img)\n", | |
"width = len(img[0])\n", | |
"\n", | |
"res = np.zeros((height, width, 1), dtype='uint8')\n", | |
"\n", | |
"# Generate the kernel\n", | |
"ksize = 11\n", | |
"denominator = 1\n", | |
"\n", | |
"kernel = list(g_kernel(ksize,1.414).flatten())\n", | |
"\n", | |
"for r in range(height - ksize):\n", | |
" for c in range(width - ksize):\n", | |
" pixel = 0\n", | |
" for y in range(ksize):\n", | |
" for x in range(ksize):\n", | |
" pixel += kernel[y*ksize+1]*img[r+y-ksize+1, c+x-ksize+1]\n", | |
" res[r,c] = min(255, int(abs(pixel)/denominator))\n", | |
"\n", | |
"from google.colab.patches import cv2_imshow\n", | |
"cv2_imshow(img)\n", | |
"cv2_imshow(res*1.5)" | |
], | |
"execution_count": 120, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<PIL.Image.Image image mode=L size=256x256 at 0x7F78DFD78940>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<PIL.Image.Image image mode=RGB size=256x256 at 0x7F78DFD78EB8>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "cOnppsuxAEg3", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"We do the same for the Nelson image with writing." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "INqz5Hm33yF4", | |
"colab_type": "code", | |
"outputId": "e0a03ea7-9d4a-4491-c959-60ad857e7186", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 529 | |
} | |
}, | |
"source": [ | |
"# This library is needed to show images in colaboratory\n", | |
"from google.colab.patches import cv2_imshow\n", | |
"\n", | |
"!wget \"https://github.com/tuffacton/ece5554/raw/master/hmwk1/images/nelson.png\" -O nelson.png -q\n", | |
"img = cv2.imread('./nelson.png', cv2.IMREAD_GRAYSCALE)\n", | |
"height = len(img)\n", | |
"width = len(img[0])\n", | |
"\n", | |
"res = np.zeros((height, width, 1), dtype='uint8')\n", | |
"\n", | |
"# Generate the kernel\n", | |
"ksize = 11\n", | |
"denominator = 1\n", | |
"\n", | |
"kernel = list(g_kernel(ksize,1.414).flatten())\n", | |
"\n", | |
"for r in range(height - ksize):\n", | |
" for c in range(width - ksize):\n", | |
" pixel = 0\n", | |
" for y in range(ksize):\n", | |
" for x in range(ksize):\n", | |
" pixel += kernel[y*ksize+1]*img[r+y-ksize+1, c+x-ksize+1]\n", | |
" res[r,c] = min(255, int(abs(pixel)/denominator))\n", | |
"\n", | |
"from google.colab.patches import cv2_imshow\n", | |
"cv2_imshow(img)\n", | |
"cv2_imshow(res*1.5)" | |
], | |
"execution_count": 119, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<PIL.Image.Image image mode=L size=256x256 at 0x7F78DFCF3630>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<PIL.Image.Image image mode=RGB size=256x256 at 0x7F78DFCF39E8>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "b04oUTOGBJ9d", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"### Discussion" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "6FGDs6D5BMI3", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"What are we seeing in both of these images? First off, there is a blur of course, relatively obvious in the photo of Mr. Spock and much more obvious in the second photo of the text wording (glasses needed, anyone?).\n", | |
"\n", | |
"Lets analyze what is happening here. Effectively, the Gaussian kernel is replacing any given pixel with a sampling of the pixels around it from the pixels around. What differs from, say, a box kernel which pulls a uniform distribution is that the distribution we have used here is a normal Gaussian characterized by the standard deviation (sigma). As the sigma gets larger, we're placing more value pixels that are farther from the originating pixel. As we can see here, with a sigma of 1.414 we are seeing some pretty distinct blur relative to the original image considering that each image is only a 256x256 pixel image.\n", | |
"\n", | |
"This can be good for smoothing. If we observe the photo of spock, we see the benefits of a Gaussian filter as many small noise artifacts such as white specks that can be seen the in the eyes and hair are smoothed out (a must have for a Vulcan, who are known for their characteristic jet black hair).\n", | |
"\n", | |
"There also seem to be interesting artifacts on all sides of the images, with some image artifacts on the top and left and distinct black boxes on the right. This is likely due to lack of padding during the convolution and resulted in some cut-off of the image on the right side." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "c84E2xW8dodD", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"## Part 2" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "XRa_Q-_GdsHs", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"### Task \n", | |
"In this assignment you will explore the implementation of template matching, and its dependence on varying levels of noise and filtering of the image. For this part of the homework you **may** use OpenCV or numpy functions to get the job done (to do Gaussian smoothing, for example). \n", | |
"\n", | |
"You are to write and test a Python/OpenCV program that will do the following to the `hieroglyphics.png` and `bugTemplate.png`.\n", | |
"\n", | |
"* For values of noise from 0.0 to 10.0 by 1.0 steps\n", | |
" * For values of sigma from 0.0 to 3.0 by 0.5 steps\n", | |
" * Load the template and hieroglyphic images\n", | |
" * Add the specified level of noise to the image\n", | |
" * Perform the smoothing using a Gaussian kernel of the current sigma\n", | |
" * Be sure and smooth both the image and the template!\n", | |
" * perform template matching using the OpenCV `matchTemplate()` function (use normalized cross correlation - make sure you use the proper matching type)\n", | |
" * Determine the location and value of the highest correlation value in the result.\n", | |
"* Do step 1 twice - once for matching the original (grayscale) image and once for matching the edge images of the original and template images (use 3x3 Sobel magnitude).\n", | |
"* Save and paste into your report the noisy, smooth, and `matchTemplate()` result images (the correlation surface) for noise=5 and sigma=2.0 for both the original and edge image cases.\n", | |
"* Prepare two table showing the max correlation result for all combinations of noise and sigma. Use Excel to prepare these tables, and use conditional formatting to add color to show high and low values.\n", | |
"* Write a paragraph explaining the relationship that you observe in the table; what effect do different levels of noise and smoothing have on the correlation associated with the \"found\" pattern in the image? What is the relative performance for matching grayscale versus edge images?\n", | |
"\n", | |
"Be sure to include your two resulting Excel tables in the brief discussion." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Ptsh0EDqF9pq", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"### Results" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "SgBiEyzOGrrM", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"We have been tasked with finding a bug character in a wall of hieroglyphics and explore the effects of various noises and template matching algorithms. We'll use the first few lines of these results to explore the openCV libraries that will help us with this task and ultimately lead to a function that ties it all together." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "8ATlg9btKgbD", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"A function has been provided for adding the requisite noise to any given image" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "wOq4cWbGKfvF", | |
"colab_type": "code", | |
"colab": {} | |
}, | |
"source": [ | |
"################################\n", | |
"#noisy - modified from Shubham Pachori on stackoverflow\n", | |
"def noisy(image, noise_type, sigma):\n", | |
" if noise_type == \"gauss\":\n", | |
" row,col = image.shape\n", | |
" mean = 0\n", | |
" gauss = np.random.normal(mean,sigma,(row,col))\n", | |
" gauss = gauss.reshape(row,col)\n", | |
" noisy = image + gauss\n", | |
" return noisy\n", | |
" elif noise_type == \"s&p\":\n", | |
" row,col = image.shape\n", | |
" s_vs_p = 0.5\n", | |
" amount = 0.004\n", | |
" out = np.copy(image)\n", | |
" # Salt mode\n", | |
" num_salt = np.ceil(amount * image.size * s_vs_p)\n", | |
" coords = [np.random.randint(0, i - 1, int(num_salt)) for i in image.shape]\n", | |
" out[coords] = 1\n", | |
" # Pepper mode\n", | |
" num_pepper = np.ceil(amount* image.size * (1. - s_vs_p))\n", | |
" coords = [np.random.randint(0, i - 1, int(num_pepper)) for i in image.shape]\n", | |
" out[coords] = 0\n", | |
" return out\n", | |
" elif noise_type == \"poisson\":\n", | |
" vals = len(np.unique(image))\n", | |
" vals = 2 ** np.ceil(np.log2(vals))\n", | |
" noisy = np.random.poisson(image * vals) / float(vals)\n", | |
" return noisy\n", | |
" elif noise_type ==\"speckle\":\n", | |
" row,col = image.shape\n", | |
" gauss = np.random.randn(row,col)\n", | |
" gauss = gauss.reshape(row,col)\n", | |
" noisy = image + image * gauss\n", | |
" return noisy" | |
], | |
"execution_count": 0, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "67XQKtwAkoy5", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"This is helpful documentation from OpenCV that provided a lot of useful templates for loading images and identifying the resulting matches." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "2RHHTVNBIDmA", | |
"colab_type": "code", | |
"colab": {} | |
}, | |
"source": [ | |
"# Pull our image and template locally\n", | |
"!wget 'https://github.com/tuffacton/ece5554/raw/master/hmwk1/images/hieroglyphics.png' -O 'img.png' -q\n", | |
"!wget 'https://github.com/tuffacton/ece5554/raw/master/hmwk1/images/bugTemplate.png' -O 'template.png' -q" | |
], | |
"execution_count": 0, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "-xF_nD0DPeEk", | |
"colab_type": "code", | |
"outputId": "e4235697-5ab0-4b27-81b9-777232eb0a27", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 917 | |
} | |
}, | |
"source": [ | |
"import cv2\n", | |
"import numpy as np\n", | |
"# This library is needed to show images in colaboratory\n", | |
"from google.colab.patches import cv2_imshow\n", | |
"\n", | |
"img = cv2.imread('img.png',cv2.IMREAD_GRAYSCALE)\n", | |
"template = cv2.imread('template.png',0)\n", | |
"w, h = template.shape[::-1]\n", | |
"\n", | |
"sigma = 0\n", | |
"\n", | |
"# kernels have to be odd sized and ideally ~6x kernel size\n", | |
"if sigma == 2:\n", | |
" size = int(((sigma*6)+1))\n", | |
"elif sigma == 0:\n", | |
" size = 1\n", | |
"elif sigma % 2 == 1:\n", | |
" size = int(((sigma*6)+1))\n", | |
"else:\n", | |
" size = int((sigma*6))\n", | |
"\n", | |
"# We use our previous noise generation to make a noisy image\n", | |
"noisyimage = np.uint8(noisy(img, 'gauss', 0))\n", | |
"# We use OpenCV's built-in blur to smooth out said noise\n", | |
"smooth_noisy_img = cv2.GaussianBlur(noisyimage, (size,size), sigma)\n", | |
"\n", | |
"# We have to do the same for our template\n", | |
"#noisytemplate = np.uint8(noisy(template, 'gauss', 11))\n", | |
"smooth_template = cv2.GaussianBlur(noisytemplate, (size,size), sigma)\n", | |
"\n", | |
"# We use cross-correlation template matching\n", | |
"result = cv2.matchTemplate(noisyimage, smooth_template, cv2.TM_CCOEFF_NORMED)\n", | |
"\n", | |
"# Using some known code from OpenCV documentation we can actually plot\n", | |
"# our match as a rectangular reference into the original image.\n", | |
"min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)\n", | |
"top_left = max_loc\n", | |
"bottom_right = (top_left[0] + w, top_left[1] + h)\n", | |
"cv2.rectangle(img, top_left, bottom_right, 255, 2)\n", | |
"\n", | |
"# We can actually see a nice rectangle around our match\n", | |
"cv2_imshow(img)" | |
], | |
"execution_count": 97, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment