Skip to content

Instantly share code, notes, and snippets.

@AnnaNguyenYip
Created September 13, 2020 04:52
Show Gist options
  • Save AnnaNguyenYip/f7614168058f3cbeda83ec633d6e9569 to your computer and use it in GitHub Desktop.
Save AnnaNguyenYip/f7614168058f3cbeda83ec633d6e9569 to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://cognitiveclass.ai/\">\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/CV0101/Logo/SNLogo.png\" width=\"200\" align=\"center\">\n",
"</a>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Lab - Detecting text in images with OpenCV and Tesseract OCR</h1>\n",
"\n",
"<b>Welcome!</b> In this lab you will learn about about Automatic number-plate recognition. We will use the Tesseract OCR An Optical Character Recognition Engine (OCR Engine) to automatically recognize text in vehicle registration plates. Pretty cool, right? \n",
"\n",
"After completing this lab you will:\n",
"<h5> 1. Learn to download, read and display images using Python, OpenCV and Matplotlib </h5>\n",
"<h5> 2. Learn to use Tesseract OCR for detetcing text in images</h5>\n",
"<h5> 3. Learn about image processing techniques </h5>\n",
"<h5> 4. Compress images using a technique called K Means Clustering</h5>\n",
"<h5> 5. Compress images by up to 90% ! </h5>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <br>\n",
" <br>\n",
" <h2>Table of Contents</h2>\n",
" <ul>\n",
" <li><a href=\"#ref0\">Tesseract</a></li>\n",
" <li><a href=\"#ref1\">Perform OCR using the Tesseract Engine on license plates</a></li>\n",
" <li><a href=\"#ref2\">Image Processing Techniques</a></li>\n",
" <li><a href=\"#ref4\">Exercises</a></li>\n",
" </ul>\n",
" <br>\n",
" <p>Estimated Time Needed: <strong>1 hr</strong></p>\n",
" </div>\n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"ref0\"></a>\n",
"<h2 align=\"center\">Tesseract<a href=\"http://opensource.google.com/projects/tesseract\"> Homepage</a></h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- Tesseract is an Optical Character Recognition (OCR) Engine open-sourced and supported by Google\n",
"- Has ability to recognize more than 100 languages out of the box"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### We will use Tesseract for recognizing images of License Plates. These images were clicked under different lighting conditions and have a variety of variations in them. Pretty cool, right?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To view the license plates, you could click on the `license_plates` folder which is listed in the files directory in the left-sidebar of the JupyterLab environment. If this side menu is hidden, you can go to `View`>`View Left-Sidebar`. Once you click on the folder, you could click on each file name to view the image of the license plate"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Install the Pytesseract package for using the Tesseract Engine with Python"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting pytesseract\n",
" Downloading https://files.pythonhosted.org/packages/17/4b/4dbd55388225bb6cd243d21f70e77cb3ce061e241257485936324b8e920f/pytesseract-0.3.6.tar.gz\n",
"Collecting wget\n",
" Downloading https://files.pythonhosted.org/packages/47/6a/62e288da7bcda82b935ff0c6cfe542970f04e29c756b0e147251b2fb251f/wget-3.2.zip\n",
"Requirement already satisfied, skipping upgrade: Pillow in /home/jupyterlab/conda/envs/python/lib/python3.6/site-packages (from pytesseract) (7.2.0)\n",
"Building wheels for collected packages: pytesseract, wget\n",
" Building wheel for pytesseract (setup.py) ... \u001b[?25ldone\n",
"\u001b[?25h Stored in directory: /home/jupyterlab/.cache/pip/wheels/ee/71/72/b98430261d849ae631e283dfc7ccb456a3fb2ed2205714b63f\n",
" Building wheel for wget (setup.py) ... \u001b[?25ldone\n",
"\u001b[?25h Stored in directory: /home/jupyterlab/.cache/pip/wheels/40/15/30/7d8f7cea2902b4db79e3fea550d7d7b85ecb27ef992b618f3f\n",
"Successfully built pytesseract wget\n",
"Installing collected packages: pytesseract, wget\n",
"Successfully installed pytesseract-0.3.6 wget-3.2\n"
]
}
],
"source": [
"!pip install --upgrade pytesseract wget"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# Loading the required python modules\n",
"import pytesseract\n",
"import matplotlib.pyplot as plt\n",
"import cv2\n",
"import glob\n",
"import os"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"ref1\"></a>\n",
"<h2 align=\"center\">Perform OCR using the Tesseract Engine on license plates</h2>"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import wget, zipfile, os\n",
"\n",
"filename='license-plates'\n",
"\n",
"if not os.path.isfile(filename):\n",
" filename = wget.download('https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/CV0101/Dataset/license-plates.zip')\n",
" with zipfile.ZipFile(\"license-plates.zip\",\"r\") as zip_ref:\n",
" zip_ref.extractall()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"path_for_license_plates = os.getcwd() + \"/license-plates/**/*.jpg\"\n",
"list_license_plates = []\n",
"predicted_license_plates = []\n",
"\n",
"for path_to_license_plate in glob.glob(path_for_license_plates, recursive=True):\n",
" \n",
" license_plate_file = path_to_license_plate.split(\"/\")[-1]\n",
" license_plate, _ = os.path.splitext(license_plate_file)\n",
" '''\n",
" Here we append the actual license plate to a list\n",
" '''\n",
" list_license_plates.append(license_plate)\n",
" \n",
" '''\n",
" Read each license plate image file using openCV\n",
" '''\n",
" img = cv2.imread(path_to_license_plate)\n",
" \n",
" '''\n",
" We then pass each license plate image file to the Tesseract OCR engine using \n",
" the Python library wrapper for it. We get back a predicted_result for the license plate.\n",
" We append the predicted_result in a list and compare it with the original the license plate\n",
" '''\n",
" predicted_result = pytesseract.image_to_string(img, lang='eng',\n",
" config='--oem 3 --psm 6 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')\n",
" \n",
" filter_predicted_result = \"\".join(predicted_result.split()).replace(\":\", \"\").replace(\"-\", \"\")\n",
" predicted_license_plates.append(filter_predicted_result)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Actual License Plate \t Predicted License Plate \t Accuracy\n",
"-------------------- \t ----------------------- \t --------\n",
" PJD2685 \t\t\t PJD2685 \t\t 100%\n",
" NZW2197 \t\t\t NZW2197 \t\t 100%\n",
" PJB7392 \t\t\t PJB7392 \t\t 100%\n",
" NYY1710 \t\t\t NYY1710 \t\t 100%\n",
" OCX4764 \t\t\t OCX4764 \t\t 100%\n",
" PJG0783 \t\t\t PJG0783 \t\t 100%\n",
" OYJ9557 \t\t\t OYJ9557 \t\t 100%\n",
" OUP9563 \t\t\t OUP9563 \t\t 100%\n",
" OLC4728 \t\t\t OLC4728 \t\t 100%\n",
" OKV8004 \t\t\t QKV8004 \t\t 86.0%\n",
" ODJ1599 \t\t\t ODJ1599 \t\t 100%\n",
" PJB2414 \t\t\t PJB2414 \t\t 100%\n",
" OLA1208 \t\t\t OLA1208 \t\t 100%\n",
" AYO9034 \t\t\t AYO9034 \t\t 100%\n",
" GWT2180 \t\t\t GWT2120 \t\t 86.0%\n",
" JSQ1413 \t\t\t JSQ|413 \t\t 86.0%\n",
" OKS0078 \t\t\t OKS0078 \t\t 100%\n",
" NTK5785 \t\t\t NTK5785 \t\t 100%\n"
]
}
],
"source": [
"print(\"Actual License Plate\", \"\\t\", \"Predicted License Plate\", \"\\t\", \"Accuracy\")\n",
"print(\"--------------------\", \"\\t\", \"-----------------------\", \"\\t\", \"--------\")\n",
"\n",
"def calculate_predicted_accuracy(actual_list, predicted_list):\n",
" for actual_plate, predict_plate in zip(actual_list, predicted_list):\n",
" accuracy = \"0%\"\n",
" num_matches = 0\n",
" if actual_plate == predict_plate:\n",
" accuracy = \"100%\"\n",
" else:\n",
" if len(actual_plate) == len(predict_plate):\n",
" for a, p in zip(actual_plate, predict_plate):\n",
" if a == p:\n",
" num_matches += 1\n",
" accuracy = str(round((num_matches/len(actual_plate)), 2) * 100)\n",
" accuracy += \"%\"\n",
" print(\" \", actual_plate, \"\\t\\t\\t\", predict_plate, \"\\t\\t \", accuracy)\n",
"\n",
" \n",
"calculate_predicted_accuracy(list_license_plates, predicted_license_plates)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Woah! We see that the Tesseract OCR engine mostly predicts all of the license plates correctly with 100% accuracy! </h3>\n",
"\n",
"\n",
"<h3>For the license plates the Tesseract OCR Engine predicted incorrectly (i.e. GWT2180, OKV8004, JSQ1413), we will apply image processing techniques on those license plate files and pass them to the Tesseract OCR again. Applying the image processing techniques would increase the accuracy of the Tesseract Engine for the license plates of GWT2180, OKV8004, JSQ1413</h3>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"ref2\"></a>\n",
"<h2 align=\"center\"> Image Processing Techniques </h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Image resizing is a technique in which we scale the image either horizontally, or vertically or both. \n",
"Further documentation on image resizing: [here](https://www.tutorialkart.com/opencv/python/opencv-python-resize-image/)\n",
"\n",
"For our use case, we will read the license plate file of ```GWT2180``` using ```cv2.imread``` and then resize the image file by a factor of 2x in both the horizontal and vertical directions using ```cv2.resize```"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'GWT2180 license plate')"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Read the license plate file and display it\n",
"test_license_plate = cv2.imread(os.getcwd() + \"/license-plates/GWT2180.jpg\")\n",
"plt.imshow(test_license_plate)\n",
"plt.axis('off')\n",
"plt.title('GWT2180 license plate')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 1. Image resizing"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"resize_test_license_plate = cv2.resize(test_license_plate, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 2. Converting to Grayscale"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, we convert our resized image file to gray scale. We learnt about this technique in the image processing lab"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"grayscale_resize_test_license_plate = cv2.cvtColor(resize_test_license_plate, cv2.COLOR_BGR2GRAY)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 3. Denoising the Image"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Gaussian Blur is a technique for denoising images. Full OpenCV documentation on Gaussian Blur: [here](https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_filtering/py_filtering.html#gaussian-filtering)\n",
"\n",
"We apply a gaussian blur to the greyscale image"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"gaussian_blur_license_plate = cv2.GaussianBlur(grayscale_resize_test_license_plate, (5, 5), 0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Pass the transformed license plate file to the Tesseract OCR engine and see the predicted result\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"GWT2180\n"
]
}
],
"source": [
"new_predicted_result_GWT2180 = pytesseract.image_to_string(gaussian_blur_license_plate, lang='eng',\n",
"config='--oem 3 -l eng --psm 6 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')\n",
"filter_new_predicted_result_GWT2180 = \"\".join(new_predicted_result_GWT2180.split()).replace(\":\", \"\").replace(\"-\", \"\")\n",
"print(filter_new_predicted_result_GWT2180)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" #### Voila We see that the Tesseract OCR correctly recognises all characters in the GWT2180 license plate after we passed in the transformed license plate"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"ref4\"></a>\n",
"<h2 align=\"center\"> Exercises </h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise 1:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'JSQ1413 license plate')"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# 1.1 Read in the license plate file of JSQ1413\n",
"# Write your code below:\n",
"\n",
"# Read the license plate file and display it\n",
"test_license_plate = cv2.imread(os.getcwd() + \"/license-plates/JSQ1413.jpg\")\n",
"plt.imshow(test_license_plate)\n",
"plt.axis('off')\n",
"plt.title('JSQ1413 license plate')\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"# 1.2 Apply the image processing techniques to the license plate of JSQ1413 described above \n",
"# Write your code below:\n",
"\n",
"# resize the image\n",
"resize_test_license_plate = cv2.resize(test_license_plate, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC)\n",
"\n",
"# convert to grayscale\n",
"grayscale_resize_test_license_plate = cv2.cvtColor(resize_test_license_plate, cv2.COLOR_BGR2GRAY)\n",
"\n",
"# denoise the image\n",
"gaussian_blur_license_plate = cv2.GaussianBlur(grayscale_resize_test_license_plate, (5, 5), 0)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"JSQ1413\n"
]
}
],
"source": [
"# 1.3 Pass the modified license plate file to the Tesseract Engine. Report your findings \n",
"# Write your code below:\n",
"\n",
"# pass the transformed image to Tesseract OCR engine\n",
"new_predicted_result_JSQ1413 = pytesseract.image_to_string(gaussian_blur_license_plate, lang='eng',\n",
"config='--oem 3 -l eng --psm 6 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')\n",
"filter_new_predicted_result_JSQ1413 = \"\".join(new_predicted_result_JSQ1413.split()).replace(\":\", \"\").replace(\"-\", \"\")\n",
"print(filter_new_predicted_result_JSQ1413)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click <font color=\"red\"><b><u>here</b></u></font> for the solution.\n",
"\n",
"<!---\n",
"\n",
"# 1.1 Read the license plate file and display it\n",
"\n",
"test_license_plate_JSQ1413 = cv2.imread(os.getcwd() + \"/license-plates/JSQ1413.jpg\")\n",
"plt.imshow(test_license_plate_OKV8004)\n",
"plt.axis('off')\n",
"plt.title('OKV8004 license plate')\n",
"\n",
"# 1.2 Apply the image processing techniques to the license plate of JSQ1413 described above\n",
"\n",
"resize_test_license_plate_JSQ1413 = cv2.resize(test_license_plate_JSQ1413, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC)\n",
"grayscale_resize_test_license_plate_JSQ1413 = cv2.cvtColor(resize_test_license_plate_JSQ1413, cv2.COLOR_BGR2GRAY)\n",
"gaussian_blur_license_plate_JSQ1413 = cv2.GaussianBlur(grayscale_resize_test_license_plate_JSQ1413, (5, 5), 0)\n",
"\n",
"# 1.3 Pass the modified license plate file to the Tesseract Engine. Report your findings\n",
"\n",
"new_predicted_result_JSQ1413 = pytesseract.image_to_string(gaussian_blur_license_plate_JSQ1413, lang='eng',\n",
"config='--oem 3 -l eng --psm 6 -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')\n",
"filter_new_predicted_result_JSQ1413 = \"\".join(new_predicted_result_JSQ1413.split()).replace(\":\", \"\").replace(\"-\", \"\")\n",
"print(filter_new_predicted_result_JSQ1413)\n",
"--->"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Thank you for completing this lab!</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<h2>Get IBM Watson Studio free of charge!</h2>\n",
" <p><a href=\"https://cocl.us/NotebooksPython101bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/CV0101/Logo/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>About the Author:</h3>\n",
"This lab was written by <a href=\"https://www.linkedin.com/in/sacchitchadha/\" target=\"_blank\" >Sacchit Chadha</a> and revised by Nayef Abou Tayoun\n",
"<p><a href=\"https://www.linkedin.com/in/sacchitchadha/\" target=\"_blank\">Sacchit Chadha</a> is a Software Engineer at IBM, and is currently pursuing a Bachelors Degree in Computer Science from the University of Waterloo. His work at IBM focused on Computer Vision, Cloud Computing and Blockchain.</p>\n",
"<p>Nayef Abou Tayoun is a Cognitive Data Scientist at IBM, and is currently pursuing a Master's degree in Artificial Intelligence.</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<p>Copyright &copy; 2019 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.11"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment