[2ed9d9]: / Question 4.ipynb

Download this file

1281 lines (1280 with data), 195.8 kB

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "70258a7d",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "d9aa10f0",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d6f4d17b",
   "metadata": {},
   "outputs": [],
   "source": [
    "def walk_through_dir(dir_path):\n",
    "    \"\"\"\n",
    "    Walks through dir_path returning its contents.\n",
    "    Args:\n",
    "        dir_path (str or pathlib.Path): target directory\n",
    "    \n",
    "    Returns:\n",
    "        A print out of:\n",
    "            number of subdirectories in dir_path\n",
    "            number of images (files) in each subdirectory\n",
    "            name of each subdirectory\n",
    "    \"\"\"\n",
    "    for dirpath,dirnames,filenames in os.walk(dir_path):\n",
    "        print(f\"There are {len(dirnames)} directories and {len(filenames)} images in {dirpath}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "3b90146b",
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "import zipfile\n",
    "from pathlib import Path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "80dedd07",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_path = Path(r\"C:\\Users\\mohit\\Downloads\\DIP Assignment 2\\Data_Q4\")\n",
    "image_path = data_path / \"CXR_png\"\n",
    "masks_path = data_path / \"masks\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "ffa0dce5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "There are 0 directories and 801 images in C:\\Users\\mohit\\Downloads\\DIP Assignment 2\\Data_Q4\\CXR_png\n"
     ]
    }
   ],
   "source": [
    "walk_through_dir(image_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "30a03ec4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(WindowsPath('C:/Users/mohit/Downloads/DIP Assignment 2/Data_Q4/CXR_png/train'),\n",
       " WindowsPath('C:/Users/mohit/Downloads/DIP Assignment 2/Data_Q4/CXR_png/test'))"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#setup train and testing paths\n",
    "train_dir = image_path / \"train\"\n",
    "test_dir = image_path / \"test\"\n",
    "\n",
    "train_dir, test_dir"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "ebb14896",
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "from PIL import Image"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "6434f0cf",
   "metadata": {},
   "outputs": [
    {
     "ename": "IndexError",
     "evalue": "list index out of range",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mIndexError\u001b[0m                                Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[22], line 8\u001b[0m\n\u001b[0;32m      5\u001b[0m image_path_list \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(image_path\u001b[38;5;241m.\u001b[39mglob(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m*/*.png\u001b[39m\u001b[38;5;124m\"\u001b[39m))\n\u001b[0;32m      7\u001b[0m \u001b[38;5;66;03m#Get random image path\u001b[39;00m\n\u001b[1;32m----> 8\u001b[0m random_image_path \u001b[38;5;241m=\u001b[39m \u001b[43mrandom\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mchoice\u001b[49m\u001b[43m(\u001b[49m\u001b[43mimage_path_list\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m     10\u001b[0m \u001b[38;5;66;03m#Get image class from path name (name of directory)\u001b[39;00m\n\u001b[0;32m     11\u001b[0m image_class \u001b[38;5;241m=\u001b[39m random_image_path\u001b[38;5;241m.\u001b[39mparent\u001b[38;5;241m.\u001b[39mstem\n",
      "File \u001b[1;32m~\\anaconda3\\envs\\tf-new\\lib\\random.py:346\u001b[0m, in \u001b[0;36mRandom.choice\u001b[1;34m(self, seq)\u001b[0m\n\u001b[0;32m    344\u001b[0m \u001b[38;5;124;03m\"\"\"Choose a random element from a non-empty sequence.\"\"\"\u001b[39;00m\n\u001b[0;32m    345\u001b[0m \u001b[38;5;66;03m# raises IndexError if seq is empty\u001b[39;00m\n\u001b[1;32m--> 346\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mseq\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_randbelow\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mseq\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n",
      "\u001b[1;31mIndexError\u001b[0m: list index out of range"
     ]
    }
   ],
   "source": [
    "#set seed\n",
    "random.seed(42)\n",
    "\n",
    "#Get all image paths (* means 'any combination')\n",
    "image_path_list = list(image_path.glob(\"*/*.png\"))\n",
    "\n",
    "#Get random image path\n",
    "random_image_path = random.choice(image_path_list)\n",
    "\n",
    "#Get image class from path name (name of directory)\n",
    "image_class = random_image_path.parent.stem\n",
    "\n",
    "#Open image\n",
    "img = Image.open(random_image_path)\n",
    "\n",
    "#Print metadata\n",
    "print(f\"Random Image Path: {random_image_path}\")\n",
    "print(f\"Image class: {image_class}\")\n",
    "print(f\"Image height: {img.height}\")\n",
    "print(f\"Image width: {img.width}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "333ee09f",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\mohit\\anaconda3\\envs\\tf-new\\lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      "  from .autonotebook import tqdm as notebook_tqdm\n"
     ]
    }
   ],
   "source": [
    "#Transforming data into tensors, then into torch.utils.data.Dataset\n",
    "import torch\n",
    "from torch.utils.data import DataLoader\n",
    "from torchvision import datasets,transforms"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "00ff772c",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_transform = transforms.Compose([transforms.ToPILImage(),\n",
    "    #Resize the images to 572x572\n",
    "    transforms.Resize(size = (128,128)),\n",
    "    #turn the imahe into torch.Tensor\n",
    "    transforms.ToTensor() #this also converts all pixel values from 0 to 255 to be between 0.0 and 1.0\n",
    "    ])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "c887a0fb",
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'image_path_list' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[11], line 33\u001b[0m\n\u001b[0;32m     29\u001b[0m             ax[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39maxis(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124moff\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m     31\u001b[0m             fig\u001b[38;5;241m.\u001b[39msuptitle(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mClass: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mimage_path\u001b[38;5;241m.\u001b[39mparent\u001b[38;5;241m.\u001b[39mstem\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m , fontsize \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m16\u001b[39m)\n\u001b[1;32m---> 33\u001b[0m plot_transformed_images(\u001b[43mimage_path_list\u001b[49m,transform \u001b[38;5;241m=\u001b[39m data_transform, n\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m3\u001b[39m)\n",
      "\u001b[1;31mNameError\u001b[0m: name 'image_path_list' is not defined"
     ]
    }
   ],
   "source": [
    "def plot_transformed_images(image_paths, transform,n=3,seed=42):\n",
    "    \"\"\"Plots a series of random images from image_paths.\n",
    "    \n",
    "    Will open n image from image_paths, transform them with transform and\n",
    "    plot them side by side\n",
    "    \n",
    "    Args:\n",
    "        image_path (list): List of target image paths.\n",
    "        transform (PyTorch Transforms): Transforms to apply to images.\n",
    "        n (int,optional): Number of images to plot. Defaults to 3.\n",
    "        seed (int, optional): Random seed for the random generator. Defaults to 42\n",
    "    \"\"\"\n",
    "    random.seed(seed)\n",
    "    random_image_paths = random.sample(image_paths,k=n)\n",
    "    for image_path in random_image_paths:\n",
    "        with Image.open(image_path) as f:\n",
    "            fig, ax = plt.subplots(1,2)\n",
    "            ax[0].imshow(f)\n",
    "            ax[0].set_title(f\"Original \\nSize: {f.size}\")\n",
    "            ax[0].axis('off')\n",
    "            \n",
    "            #transform and plot the image\n",
    "            #note: permute changes shape of image to suit matplotlib\n",
    "            #Pytorch default is [C,H,W] but Matplotlib is [H,W,C]\n",
    "            tensor_image = transforms.ToTensor()(f)\n",
    "            transformed_image = transform(tensor_image).permute(1,2,0)\n",
    "            ax[1].imshow(transformed_image)\n",
    "            ax[1].set_title(f\"Transformed \\nSize: {transformed_image.shape}\")\n",
    "            ax[1].axis('off')\n",
    "            \n",
    "            fig.suptitle(f'Class: {image_path.parent.stem}' , fontsize = 16)\n",
    "            \n",
    "plot_transformed_images(image_path_list,transform = data_transform, n=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "8649a13c",
   "metadata": {},
   "outputs": [
    {
     "ename": "FileNotFoundError",
     "evalue": "Couldn't find any class folder in C:\\Users\\mohit\\Downloads\\DIP Assignment 2\\Q4_Data\\CXR_png\\train.",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[17], line 3\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[38;5;66;03m#Using ImageFolder to create datasets\u001b[39;00m\n\u001b[0;32m      2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtorchvision\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m datasets\n\u001b[1;32m----> 3\u001b[0m train_data \u001b[38;5;241m=\u001b[39m \u001b[43mdatasets\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mImageFolder\u001b[49m\u001b[43m(\u001b[49m\u001b[43mroot\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mtrain_dir\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m      4\u001b[0m \u001b[43m                                 \u001b[49m\u001b[43mtransform\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mdata_transform\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m      5\u001b[0m \u001b[43m                                 \u001b[49m\u001b[43mtarget_transform\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[0;32m      6\u001b[0m test_data \u001b[38;5;241m=\u001b[39m datasets\u001b[38;5;241m.\u001b[39mImageFolder(root \u001b[38;5;241m=\u001b[39m test_dir,\n\u001b[0;32m      7\u001b[0m                                 transform \u001b[38;5;241m=\u001b[39m data_transform)\n\u001b[0;32m      8\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mTrain data:\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;132;01m{\u001b[39;00mtrain_data\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124mTest data:\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;132;01m{\u001b[39;00mtest_data\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m)\n",
      "File \u001b[1;32m~\\anaconda3\\envs\\tf-new\\lib\\site-packages\\torchvision\\datasets\\folder.py:310\u001b[0m, in \u001b[0;36mImageFolder.__init__\u001b[1;34m(self, root, transform, target_transform, loader, is_valid_file)\u001b[0m\n\u001b[0;32m    302\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\n\u001b[0;32m    303\u001b[0m     \u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m    304\u001b[0m     root: \u001b[38;5;28mstr\u001b[39m,\n\u001b[1;32m   (...)\u001b[0m\n\u001b[0;32m    308\u001b[0m     is_valid_file: Optional[Callable[[\u001b[38;5;28mstr\u001b[39m], \u001b[38;5;28mbool\u001b[39m]] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m    309\u001b[0m ):\n\u001b[1;32m--> 310\u001b[0m     \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[0;32m    311\u001b[0m \u001b[43m        \u001b[49m\u001b[43mroot\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m    312\u001b[0m \u001b[43m        \u001b[49m\u001b[43mloader\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m    313\u001b[0m \u001b[43m        \u001b[49m\u001b[43mIMG_EXTENSIONS\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mis_valid_file\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m    314\u001b[0m \u001b[43m        \u001b[49m\u001b[43mtransform\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtransform\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m    315\u001b[0m \u001b[43m        \u001b[49m\u001b[43mtarget_transform\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtarget_transform\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m    316\u001b[0m \u001b[43m        \u001b[49m\u001b[43mis_valid_file\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_valid_file\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m    317\u001b[0m \u001b[43m    \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m    318\u001b[0m     \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mimgs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msamples\n",
      "File \u001b[1;32m~\\anaconda3\\envs\\tf-new\\lib\\site-packages\\torchvision\\datasets\\folder.py:145\u001b[0m, in \u001b[0;36mDatasetFolder.__init__\u001b[1;34m(self, root, loader, extensions, transform, target_transform, is_valid_file)\u001b[0m\n\u001b[0;32m    135\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\n\u001b[0;32m    136\u001b[0m     \u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m    137\u001b[0m     root: \u001b[38;5;28mstr\u001b[39m,\n\u001b[1;32m   (...)\u001b[0m\n\u001b[0;32m    142\u001b[0m     is_valid_file: Optional[Callable[[\u001b[38;5;28mstr\u001b[39m], \u001b[38;5;28mbool\u001b[39m]] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m    143\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m    144\u001b[0m     \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(root, transform\u001b[38;5;241m=\u001b[39mtransform, target_transform\u001b[38;5;241m=\u001b[39mtarget_transform)\n\u001b[1;32m--> 145\u001b[0m     classes, class_to_idx \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfind_classes\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mroot\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m    146\u001b[0m     samples \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmake_dataset(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mroot, class_to_idx, extensions, is_valid_file)\n\u001b[0;32m    148\u001b[0m     \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mloader \u001b[38;5;241m=\u001b[39m loader\n",
      "File \u001b[1;32m~\\anaconda3\\envs\\tf-new\\lib\\site-packages\\torchvision\\datasets\\folder.py:219\u001b[0m, in \u001b[0;36mDatasetFolder.find_classes\u001b[1;34m(self, directory)\u001b[0m\n\u001b[0;32m    192\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mfind_classes\u001b[39m(\u001b[38;5;28mself\u001b[39m, directory: \u001b[38;5;28mstr\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tuple[List[\u001b[38;5;28mstr\u001b[39m], Dict[\u001b[38;5;28mstr\u001b[39m, \u001b[38;5;28mint\u001b[39m]]:\n\u001b[0;32m    193\u001b[0m     \u001b[38;5;124;03m\"\"\"Find the class folders in a dataset structured as follows::\u001b[39;00m\n\u001b[0;32m    194\u001b[0m \n\u001b[0;32m    195\u001b[0m \u001b[38;5;124;03m        directory/\u001b[39;00m\n\u001b[1;32m   (...)\u001b[0m\n\u001b[0;32m    217\u001b[0m \u001b[38;5;124;03m        (Tuple[List[str], Dict[str, int]]): List of all classes and dictionary mapping each class to an index.\u001b[39;00m\n\u001b[0;32m    218\u001b[0m \u001b[38;5;124;03m    \"\"\"\u001b[39;00m\n\u001b[1;32m--> 219\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfind_classes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdirectory\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[1;32m~\\anaconda3\\envs\\tf-new\\lib\\site-packages\\torchvision\\datasets\\folder.py:43\u001b[0m, in \u001b[0;36mfind_classes\u001b[1;34m(directory)\u001b[0m\n\u001b[0;32m     41\u001b[0m classes \u001b[38;5;241m=\u001b[39m \u001b[38;5;28msorted\u001b[39m(entry\u001b[38;5;241m.\u001b[39mname \u001b[38;5;28;01mfor\u001b[39;00m entry \u001b[38;5;129;01min\u001b[39;00m os\u001b[38;5;241m.\u001b[39mscandir(directory) \u001b[38;5;28;01mif\u001b[39;00m entry\u001b[38;5;241m.\u001b[39mis_dir())\n\u001b[0;32m     42\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m classes:\n\u001b[1;32m---> 43\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mFileNotFoundError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCouldn\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mt find any class folder in \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mdirectory\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m     45\u001b[0m class_to_idx \u001b[38;5;241m=\u001b[39m {cls_name: i \u001b[38;5;28;01mfor\u001b[39;00m i, cls_name \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(classes)}\n\u001b[0;32m     46\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m classes, class_to_idx\n",
      "\u001b[1;31mFileNotFoundError\u001b[0m: Couldn't find any class folder in C:\\Users\\mohit\\Downloads\\DIP Assignment 2\\Q4_Data\\CXR_png\\train."
     ]
    }
   ],
   "source": [
    "#Using ImageFolder to create datasets\n",
    "from torchvision import datasets\n",
    "train_data = datasets.ImageFolder(root = train_dir,\n",
    "                                 transform = data_transform,\n",
    "                                 target_transform = None)\n",
    "test_data = datasets.ImageFolder(root = test_dir,\n",
    "                                transform = data_transform)\n",
    "print(f'Train data:\\n{train_data}\\nTest data:\\n{test_data}')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "fc1cdf5b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['xray']"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data.classes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "8dfb8194",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'xray': 0}"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data.class_to_idx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "039dc47c",
   "metadata": {},
   "outputs": [],
   "source": [
    "#defining U-Net parameters\n",
    "NUM_CHANNELS = 1\n",
    "NUM_CLASSES = 1\n",
    "NUM_LEVELS = 3\n",
    "\n",
    "#initialize learning rate, number of epochs to train for and batch size\n",
    "INIT_LR = 0.001\n",
    "NUM_EPOCHS = 15\n",
    "BATCH_SIZE = 64\n",
    "\n",
    "#define the input image dimensions\n",
    "INPUT_IMAGE_WIDTH = 128\n",
    "INPUT_IMAGE_HEIGHT = 128\n",
    "\n",
    "#threshold to filter weak predictions\n",
    "THRESHOLD = 0.5\n",
    "\n",
    "#define path to the base output directory\n",
    "BASE_OUTPUT = \"output\"\n",
    "\n",
    "MODEL_PATH = os.path.join(BASE_OUTPUT,\"unet_xray.pth\")\n",
    "PLOT_PATH = os.path.sep.join([BASE_OUTPUT,\"plot.png\"])\n",
    "TEST_PATHS = os.path.sep.join([BASE_OUTPUT,\"test_paths.txt\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "92babcff",
   "metadata": {},
   "outputs": [],
   "source": [
    "from torch.utils.data import Dataset\n",
    "class SegmentationDataset(Dataset):\n",
    "    def __init__(self,imagePaths,maskPaths,transforms):\n",
    "        self.imagePaths = imagePaths\n",
    "        self.maskPaths = maskPaths\n",
    "        self.transforms = transforms\n",
    "    \n",
    "    def __len__(self):\n",
    "        return len(self.imagePaths)\n",
    "    def __getitem__(self,idx):\n",
    "        imagePath = self.imagePaths[idx]\n",
    "        \n",
    "        image = cv2.imread(imagePath)\n",
    "        image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)\n",
    "        mask = cv2.imread(self.maskPaths[idx],0)\n",
    "        \n",
    "        if self.transforms is not None:\n",
    "            image = self.transforms(image)\n",
    "            mask = self.transforms(mask)\n",
    "        \n",
    "        return (image,mask)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "40f1860b",
   "metadata": {},
   "outputs": [],
   "source": [
    "from torch.nn import ConvTranspose2d\n",
    "from torch.nn import Conv2d\n",
    "from torch.nn import MaxPool2d\n",
    "from torch.nn import Module\n",
    "from torch.nn import ModuleList\n",
    "from torch.nn import ReLU\n",
    "from torchvision.transforms import CenterCrop\n",
    "from torch.nn import functional as F"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "a7fe0b54",
   "metadata": {},
   "outputs": [],
   "source": [
    "import cv2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "1d998ca5",
   "metadata": {},
   "outputs": [],
   "source": [
    "class Block(Module):\n",
    "    def __init__(self,inChannels,outChannels):\n",
    "        super().__init__()\n",
    "        self.conv1 = Conv2d(inChannels,outChannels,3)\n",
    "        self.relu = ReLU()\n",
    "        self.conv2 = Conv2d(outChannels,outChannels,3)\n",
    "    \n",
    "    def forward(self,x):\n",
    "        return self.conv2(self.relu(self.conv1(x)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "339b67ac",
   "metadata": {},
   "outputs": [],
   "source": [
    "class Encoder(Module):\n",
    "    def __init__(self,channels = (3,16,32,64)):\n",
    "        super().__init__()\n",
    "        self.encBlocks = ModuleList([Block(\n",
    "        channels[i],channels[i+1]) for i in range(len(channels)-1)])\n",
    "        self.pool = MaxPool2d(2)\n",
    "    \n",
    "    def forward(self,x):\n",
    "        blockOutputs = []\n",
    "        for block in self.encBlocks:\n",
    "            x = block(x)\n",
    "            blockOutputs.append(x)\n",
    "            x = self.pool(x)\n",
    "        return blockOutputs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "088c79b6",
   "metadata": {},
   "outputs": [],
   "source": [
    "class Decoder(Module):\n",
    "\tdef __init__(self, channels=(64, 32, 16)):\n",
    "\t\tsuper().__init__()\n",
    "\t\t# initialize the number of channels, upsampler blocks, and\n",
    "\t\t# decoder blocks\n",
    "\t\tself.channels = channels\n",
    "\t\tself.upconvs = ModuleList([ConvTranspose2d(channels[i], channels[i + 1], 2, 2) for i in range(len(channels) - 1)])\n",
    "\t\tself.dec_blocks = ModuleList([Block(channels[i], channels[i + 1]) for i in range(len(channels) - 1)])\n",
    "        \n",
    "\tdef forward(self, x, encFeatures):\n",
    "\t\t# loop through the number of channels\n",
    "\t\tfor i in range(len(self.channels) - 1):\n",
    "\t\t\t# pass the inputs through the upsampler blocks\n",
    "\t\t\tx = self.upconvs[i](x)\n",
    "\t\t\t# crop the current features from the encoder blocks,\n",
    "\t\t\t# concatenate them with the current upsampled features,\n",
    "\t\t\t# and pass the concatenated output through the current\n",
    "\t\t\t# decoder block\n",
    "\t\t\tencFeat = self.crop(encFeatures[i], x)\n",
    "\t\t\tx = torch.cat([x, encFeat], dim=1)\n",
    "\t\t\tx = self.dec_blocks[i](x)\n",
    "\t\t# return the final decoder output\n",
    "\t\treturn x\n",
    "    \n",
    "\tdef crop(self, encFeatures, x):\n",
    "\t\t# grab the dimensions of the inputs, and crop the encoder\n",
    "\t\t# features to match the dimensions\n",
    "\t\t(_, _, H, W) = x.shape\n",
    "\t\tencFeatures = CenterCrop([H, W])(encFeatures)\n",
    "\t\t# return the cropped features\n",
    "\t\treturn encFeatures"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "61e3b314",
   "metadata": {},
   "outputs": [],
   "source": [
    "class UNet(Module):\n",
    "    def __init__(self,encChannels = (3,16,32,64),\n",
    "    decChannels = (64,32,16),\n",
    "    nbClasses =1,retainDim = True,\n",
    "    outSize = (INPUT_IMAGE_HEIGHT,INPUT_IMAGE_WIDTH)):\n",
    "        super().__init__()\n",
    "        self.encoder = Encoder(encChannels)\n",
    "        self.decoder = Decoder(decChannels)\n",
    "        \n",
    "        self.head = Conv2d(decChannels[-1],nbClasses,1)\n",
    "        self.retainDim = retainDim\n",
    "        self.outSize = outSize\n",
    "        \n",
    "    def forward(self,x):\n",
    "        encFeatures = self.encoder(x)\n",
    "        decFeatures = self.decoder(encFeatures[::-1][0],\n",
    "                                  encFeatures[::-1][1:])\n",
    "        map = self.head(decFeatures)\n",
    "        \n",
    "        if self.retainDim:\n",
    "            map = F.interpolate(map,self.outSize)\n",
    "            \n",
    "        return map"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "4aa75c19",
   "metadata": {},
   "outputs": [],
   "source": [
    "from torch.nn import BCEWithLogitsLoss\n",
    "from torch.optim import Adam\n",
    "from torch.utils.data import DataLoader\n",
    "from sklearn.model_selection import train_test_split\n",
    "from torchvision import transforms\n",
    "from imutils import paths\n",
    "from tqdm import tqdm\n",
    "import matplotlib.pyplot as plt\n",
    "import torch\n",
    "import time\n",
    "import os\n",
    "from torch import nn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "96d60fea",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[INFO] saving testing image paths\n"
     ]
    }
   ],
   "source": [
    "imagePaths = sorted(list(paths.list_images(image_path)))\n",
    "maskPaths = sorted(list(paths.list_images(masks_path)))\n",
    "\n",
    "split = train_test_split(imagePaths,maskPaths,test_size = 0.25,random_state =42)\n",
    "\n",
    "(trainImages,testImages) = split[:2]\n",
    "(trainMasks,testMasks) = split[2:]\n",
    "\n",
    "print(\"[INFO] saving testing image paths\")\n",
    "f = open(test_dir,\"w\")\n",
    "f.write(\"\\n\".join(testImages))\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "3ca38b1c",
   "metadata": {},
   "outputs": [],
   "source": [
    "trainDS = SegmentationDataset(imagePaths = trainImages, \n",
    "                              maskPaths = trainMasks, \n",
    "                              transforms = data_transform)\n",
    "testDS = SegmentationDataset(imagePaths = testImages,\n",
    "                              maskPaths = testMasks,\n",
    "                              transforms = data_transform)\n",
    "\n",
    "trainLoader = DataLoader(trainDS, shuffle = True, \n",
    "                        batch_size = BATCH_SIZE)\n",
    "testLoader = DataLoader(testDS, shuffle = False, batch_size = BATCH_SIZE)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "178a8935",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(trainDS[0][0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "3712b76e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([3, 128, 128])"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trainDS[0][0].size()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cb098ca5",
   "metadata": {},
   "source": [
    "trainDS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "07a9f37d",
   "metadata": {},
   "outputs": [],
   "source": [
    "unet = UNet()\n",
    "lossfn = BCEWithLogitsLoss()\n",
    "optimizer  = Adam(unet.parameters(),lr = INIT_LR)\n",
    "\n",
    "trainSteps = len(trainDS) // BATCH_SIZE\n",
    "testSteps = len(testDS) // BATCH_SIZE\n",
    "\n",
    "H = {\"train_loss\" :[], \"test_loss\" :[]}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "5c9f168a",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  7%|█████▍                                                                            | 1/15 [02:29<34:56, 149.75s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 1/15\n",
      "Train loss: 0.734736,Test loss: 0.7416\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|██████████▉                                                                       | 2/15 [05:03<32:57, 152.14s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 2/15\n",
      "Train loss: 0.606034,Test loss: 0.6996\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|████████████████▍                                                                 | 3/15 [07:37<30:38, 153.19s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 3/15\n",
      "Train loss: 0.593045,Test loss: 0.6943\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|█████████████████████▊                                                            | 4/15 [10:13<28:14, 154.01s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 4/15\n",
      "Train loss: 0.584120,Test loss: 0.6829\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███████████████████████████▎                                                      | 5/15 [12:46<25:37, 153.71s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 5/15\n",
      "Train loss: 0.577546,Test loss: 0.6734\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████████████████████████████████▊                                                 | 6/15 [15:20<23:03, 153.73s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 6/15\n",
      "Train loss: 0.564767,Test loss: 0.6624\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|██████████████████████████████████████▎                                           | 7/15 [17:55<20:32, 154.11s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 7/15\n",
      "Train loss: 0.558556,Test loss: 0.6485\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|███████████████████████████████████████████▋                                      | 8/15 [20:32<18:06, 155.21s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 8/15\n",
      "Train loss: 0.545131,Test loss: 0.6258\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████████████████████████████████████████████████▏                                | 9/15 [23:11<15:38, 156.38s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 9/15\n",
      "Train loss: 0.531916,Test loss: 0.6104\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████████████████████████████████████████████████████                           | 10/15 [25:49<13:04, 156.92s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 10/15\n",
      "Train loss: 0.532720,Test loss: 0.6120\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████████████████████████████████████████████████████████▍                     | 11/15 [28:27<10:28, 157.19s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 11/15\n",
      "Train loss: 0.511205,Test loss: 0.5941\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████████████████████████████████████████████████████████████▊                | 12/15 [30:59<07:46, 155.57s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 12/15\n",
      "Train loss: 0.502504,Test loss: 0.5841\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|██████████████████████████████████████████████████████████████████████▏          | 13/15 [33:32<05:09, 154.74s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 13/15\n",
      "Train loss: 0.479238,Test loss: 0.5476\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|███████████████████████████████████████████████████████████████████████████▌     | 14/15 [36:05<02:34, 154.39s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 14/15\n",
      "Train loss: 0.468646,Test loss: 0.5330\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|█████████████████████████████████████████████████████████████████████████████████| 15/15 [38:44<00:00, 154.98s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 15/15\n",
      "Train loss: 0.458341,Test loss: 0.5264\n",
      "[INFO] total time taken to train the model : {:.2f}s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "ename": "AttributeError",
     "evalue": "'NoneType' object has no attribute 'format'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[41], line 35\u001b[0m\n\u001b[0;32m     32\u001b[0m     \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTrain loss: \u001b[39m\u001b[38;5;132;01m{:,.6f}\u001b[39;00m\u001b[38;5;124m,Test loss: \u001b[39m\u001b[38;5;132;01m{:.4f}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(avgTrainLoss,avgTestLoss))\n\u001b[0;32m     34\u001b[0m endTime \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mtime()\n\u001b[1;32m---> 35\u001b[0m \u001b[38;5;28;43mprint\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m[INFO] total time taken to train the model : \u001b[39;49m\u001b[38;5;132;43;01m{:.2f}\u001b[39;49;00m\u001b[38;5;124;43ms\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mformat\u001b[49m(endTime \u001b[38;5;241m-\u001b[39m startTime)\n",
      "\u001b[1;31mAttributeError\u001b[0m: 'NoneType' object has no attribute 'format'"
     ]
    }
   ],
   "source": [
    "startTime = time.time()\n",
    "for e in tqdm(range(NUM_EPOCHS)):\n",
    "    unet.train()\n",
    "    totalTrainLoss = 0\n",
    "    totalTestLoss = 0\n",
    "    \n",
    "    for (i,(x,y)) in enumerate(trainLoader):\n",
    "        pred = unet(x)\n",
    "        loss = lossfn(pred,y)\n",
    "        \n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        \n",
    "        totalTrainLoss += loss\n",
    "        \n",
    "    with torch.inference_mode():\n",
    "        unet.eval()\n",
    "        \n",
    "        for(x,y) in testLoader:\n",
    "            pred = unet(x)\n",
    "            \n",
    "            totalTestLoss += lossfn(pred,y)\n",
    "        \n",
    "    avgTrainLoss = totalTrainLoss / trainSteps\n",
    "    avgTestLoss = totalTestLoss / testSteps\n",
    "    \n",
    "    H[\"train_loss\"].append(avgTrainLoss.detach().numpy())\n",
    "    H[\"test_loss\"].append(avgTestLoss.detach().numpy())\n",
    "    \n",
    "    print(\"EPOCH: {}/{}\".format(e+1,NUM_EPOCHS))\n",
    "    print(\"Train loss: {:,.6f},Test loss: {:.4f}\".format(avgTrainLoss,avgTestLoss))\n",
    "    \n",
    "endTime = time.time()\n",
    "print(\"[INFO] total time taken to train the model : {:.2f}s\").format(endTime - startTime)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "1c85af3b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "38.74571882088979"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(endTime - startTime)/60 #minutes taken to train the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "a649efe9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x24905b7c790>"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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VtCvXz/r2jU7duxg06ZN3HrrrdbxEI3Z888/z/z585k9ezZHjhzh2muvJScnh//9738MGDCA+fPn12pG1Z9lZGScd4FFZ2dnPv30U/71r3+xceNGPv74Y37//XcGDx5sXScoLy+Pjz/+2Dojr6ioiGuuuYbQ0FB69uxJ69atKS4u5tdff+XQoUOMGjWKdu3aAfD++++zcuVKBg0aRHh4OK6urhw4cIBly5bh6elZq3Wb+vTpw/PPP8+7775Lhw4duPXWW3FxcWHZsmXs37+ffv36MXHixEuqk8sxf/58awtdQUEBJ06cYOPGjSQnJ+Ph4cG///3vamOcnnnmGR577DG6du3KLbfcgslk4rfffuPgwYPccMMNLFq0qNpzhg4dyuzZs7npppvo0qULRqORAQMGMGDAAMaPH8+3337L7bffzi233EJgYCD79+9n+fLl3H777cyZM6fKvWbNmsUnn3zCwIEDadOmDV5eXhw/fpxFixbh4ODA008/bT33gQceYOfOnXz66adERERYZzBmZmaSkJDAhg0buP/++/n8889rFasQNdJ1gr4QTcDF1gn66/E/W7RokdazZ0/N1dVV8/Dw0IYNG6atX7/eugbKX9d6udA6QedbF4Ya1ka50DpB51vXZ+DAgVpN/yVkZWVpTz75pBYQEKDZ29tr0dHR2nvvvadt27ZNA7QJEyact/x/9ud1is73x8PDo8pzn3/+ea1Nmzaavb295uHhoV1zzTXaihUrqty3tLRUmzJlinb99ddrwcHBmoODg+bj46P17NlT++yzz7SSkhLruStWrNDGjRunxcTEaO7u7pqzs7MWFRWlPfnkk1piYmKtylHpxx9/1Pr27au5urpqDg4OWrt27bS33nqr2po2mlbz97VS5Zo3a9eurdVzK7+3lX8MBoPm5uamhYeHazfddJM2Y8YM7ezZs+e9/ttvv9U6d+6sOTs7a97e3tro0aO12NjY88aRmpqq3XnnnZqfn59mMBiqrT3022+/aYMHD9Y8PT01V1dXrW/fvtovv/yirV27ttq5W7du1R577DGtU6dOmpeXl+bo6KhFRERo48aN0/bt21djvIsWLdJGjhyp+fr6aiaTSWvZsqXWvXt37aWXXtIOHTp0SbEK8VdK0+povXYhhE358ssveeSRR/j888959NFH9Q5HCCEumSRBQogLOnPmjHXh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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.style.use(\"ggplot\")\n",
    "plt.figure()\n",
    "plt.plot(H[\"train_loss\"],label=\"train_loss\")\n",
    "plt.plot(H[\"test_loss\"],label = \"test_loss\")\n",
    "plt.title(\"Training Loss on Dataset\")\n",
    "plt.xlabel(\"Epoch #\")\n",
    "plt.ylabel(\"Loss\")\n",
    "plt.legend(loc=\"lower left\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "88eb3a94",
   "metadata": {},
   "outputs": [
    {
     "ename": "FileNotFoundError",
     "evalue": "[Errno 2] No such file or directory: 'output\\\\unet_xray.pth'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[44], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msave\u001b[49m\u001b[43m(\u001b[49m\u001b[43munet\u001b[49m\u001b[43m,\u001b[49m\u001b[43mMODEL_PATH\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[1;32m~\\anaconda3\\envs\\tf-new\\lib\\site-packages\\torch\\serialization.py:376\u001b[0m, in \u001b[0;36msave\u001b[1;34m(obj, f, pickle_module, pickle_protocol, _use_new_zipfile_serialization)\u001b[0m\n\u001b[0;32m    340\u001b[0m \u001b[38;5;124;03m\"\"\"save(obj, f, pickle_module=pickle, pickle_protocol=DEFAULT_PROTOCOL, _use_new_zipfile_serialization=True)\u001b[39;00m\n\u001b[0;32m    341\u001b[0m \n\u001b[0;32m    342\u001b[0m \u001b[38;5;124;03mSaves an object to a disk file.\u001b[39;00m\n\u001b[1;32m   (...)\u001b[0m\n\u001b[0;32m    372\u001b[0m \u001b[38;5;124;03m    >>> torch.save(x, buffer)\u001b[39;00m\n\u001b[0;32m    373\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m    374\u001b[0m _check_dill_version(pickle_module)\n\u001b[1;32m--> 376\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[43m_open_file_like\u001b[49m\u001b[43m(\u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mwb\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mas\u001b[39;00m opened_file:\n\u001b[0;32m    377\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m _use_new_zipfile_serialization:\n\u001b[0;32m    378\u001b[0m         \u001b[38;5;28;01mwith\u001b[39;00m _open_zipfile_writer(opened_file) \u001b[38;5;28;01mas\u001b[39;00m opened_zipfile:\n",
      "File \u001b[1;32m~\\anaconda3\\envs\\tf-new\\lib\\site-packages\\torch\\serialization.py:230\u001b[0m, in \u001b[0;36m_open_file_like\u001b[1;34m(name_or_buffer, mode)\u001b[0m\n\u001b[0;32m    228\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_open_file_like\u001b[39m(name_or_buffer, mode):\n\u001b[0;32m    229\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m _is_path(name_or_buffer):\n\u001b[1;32m--> 230\u001b[0m         \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_open_file\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m    231\u001b[0m     \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m    232\u001b[0m         \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mw\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;129;01min\u001b[39;00m mode:\n",
      "File \u001b[1;32m~\\anaconda3\\envs\\tf-new\\lib\\site-packages\\torch\\serialization.py:211\u001b[0m, in \u001b[0;36m_open_file.__init__\u001b[1;34m(self, name, mode)\u001b[0m\n\u001b[0;32m    210\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, name, mode):\n\u001b[1;32m--> 211\u001b[0m     \u001b[38;5;28msuper\u001b[39m(_open_file, \u001b[38;5;28mself\u001b[39m)\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[43m)\u001b[49m)\n",
      "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'output\\\\unet_xray.pth'"
     ]
    }
   ],
   "source": [
    "torch.save(unet,MODEL_PATH)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0351e554",
   "metadata": {},
   "source": [
    "Making Predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "61c476b7",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "id": "b8d75951",
   "metadata": {},
   "outputs": [],
   "source": [
    "def prepare_plot(origImage,predMask):\n",
    "    figure, ax = plt.subplots(nrows = 1, ncols = 2, figsize = (10,10))\n",
    "    \n",
    "    ax[0].imshow(origImage, cmap='gray')\n",
    "    #ax[1].imshow(origMask)\n",
    "    ax[1].imshow(predMask,cmap='gray')\n",
    "    \n",
    "    ax[0].set_title(\"Image\")\n",
    "    #ax[1].set_title(\"Original Mask\")\n",
    "    ax[1].set_title(\"Predicted Mask\")\n",
    "    \n",
    "    figure.tight_layout()\n",
    "    figure.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "id": "bb5b8a84",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(128, 128) (128, 128)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\mohit\\AppData\\Local\\Temp\\ipykernel_37004\\1921240287.py:13: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  figure.show()\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAH8CAYAAADMocw8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAADMTUlEQVR4nOy9eZhcZZ32/62t90539j0kIYTdAIIgogKKYQDNsIgLzoBB3MBRfnq5IS8gzAgzjuA7LjPvgMvgjAtIBIV34gjK5oIswggICAlLIHt30t1Jb1X1+yNT572fu+r5pjp0dVKd+3NdXJyT55xnP+fU6XPfzzdVLBaLJoQQQgghhBBCiFEnvbsrIIQQQgghhBBCjFf00i2EEEIIIYQQQtQIvXQLIYQQQgghhBA1Qi/dQgghhBBCCCFEjdBLtxBCCCGEEEIIUSP00i2EEEIIIYQQQtQIvXQLIYQQQgghhBA1Qi/dQgghhBBCCCFEjdBLtxBCCCGEEEIIUSP00i2EEEIIIcSrIJVK2fHHHx/82+WXX26pVMp+9atf7ZY6jZR6q+/OOO+88yyVStnq1at3d1WE0Eu3EPVGKpWyVCq1u6shhBBCjCml51/pv0wmY1OmTLG3vOUt9oMf/GB3V68mVHqZ31MovaSnUik7//zzo8f98Ic/TI477rjjxrCGQuw5ZHd3BYQQQgghhKiWyy67zMzMhoaG7KmnnrKf/OQndtddd9lDDz1k//AP/7Cba/f/uOiii+zd7363zZs3b3dXpaZks1n74Q9/aF/96letra2tLP3666+3bDZrw8PDu6F2QuwZ6Eu3EEIIIYSoGy6//HK7/PLL7W//9m/t5ptvtpUrV1oqlbKvfOUr9vzzz+/u6iVMmTLFDjjgAGtpadndVakpp5xyivX19VVUG6xevdruvPNOO/XUU3dDzYTYc9BLtxDjgNWrV1sqlbLzzjvPnn32WTvrrLNs8uTJ1t7ebm9729vsj3/8o5mZrVu3zs4//3ybOXOmNTU12VFHHVXRu/Xyyy/bF7/4RXvDG95gM2bMsIaGBps1a5a95z3vsccff7xiHYrFon31q1+1gw46yJqammz27Nl20UUX2ZYtW2z+/Pk2f/78iud9//vftxNOOMEmTpxoTU1NduCBB9pVV11lAwMDo9U9QgghxjFvectb7IADDrBCoWC///3vzSz0J//bv/2bHXXUUdba2ho8i7Zt22Zf+tKX7LDDDrPW1lZra2uz17/+9fb973+/YjmDg4N25ZVX2r777muNjY22YMEC+8IXvhB9Xnke6T/96U+2fPlymz9/vjU2Ntq0adPsjW98o33zm980M7PvfOc7iZXs7rvvDmT1l19+eZDX7373OzvrrLOS5/XcuXPtQx/6kL388ssV6/XQQw/ZySefbO3t7TZhwgR761vfar/+9a+9LnY55ZRTbNasWXbDDTeUpd1www1WLBbtAx/4QMVzt2zZYv/wD/9gJ554os2ZM8caGhps6tSp9o53vCNap1/96ld22mmnBccfddRRZf0S49FHH7XZs2fbhAkT7L/+67+qbqcQrwbJy4UYR6xevdqOPvpoO/DAA+28886z1atX24oVK+z444+3+++/304++WTr7Oy0d73rXdbV1WXf//737eSTT7ann346kL/dc889dvXVV9sJJ5xgZ555prW2ttozzzxjN998s9122212//3322GHHRaUfeGFF9o3v/lNmzVrln3wgx+0hoYGu+222+yBBx6woaEhy+VyZfU9//zz7Vvf+pbNnTvXzjzzTOvo6LDf/va3dumll9qdd95pP//5zyueJ4QQQiDFYrHiv3/5y1+2X/ziF/b2t7/dTjzxROvu7jYzs+7ubjvxxBPtkUcesde+9rW2fPlyKxQKtnLlSnvve99rjz/+uF111VVB/meffbbdeuuttu+++9pFF11kg4OD9q1vfcsee+yxEdX19ttvt3e+8502MDBgJ598sr3nPe+xrq4ue/TRR+3v//7v7SMf+Ygddthhdtlll9kVV1xh++yzj5133nnJ+ejx/va3v20XXHCBNTU12Tve8Q6bM2eOPfPMM3b99dfbT3/6U/vtb38bPN9//etf21vf+lYbHBy0M844wxYtWmR/+MMf7IQTTrATTzxxRO0okclk7LzzzrO/+7u/s8cff9wOPvhgMzPL5/P27W9/244++mg75JBDKp775JNP2iWXXGJvetOb7NRTT7WJEyfa888/b7feeqvdcccddtttt9kpp5ySHH/HHXfYaaedZh0dHfaOd7zDZs+ebZs3b7Ynn3zSvvnNb+70xfvOO++0M844w1pbW+2ee+4p+y0jRM0oCiHqCjMr8qW7atWq5N+vuuqqIO2LX/xi0cyKHR0dxQ996EPFfD6fpP37v/970cyKn/jEJ4Jz1q1bV9y6dWtZ2Q899FCxpaWluHTp0uDf77nnnqKZFRcvXlzs6upK/n1gYKD4xje+sWhmxX322Sc459vf/nbRzIpnnXVWcfv27UHaZZddVjSz4rXXXruz7hBCCLGXUOn5VywWi3fddVcxnU4XU6lUcdWqVcVi8f89R1paWooPP/xw2Tnnnntu0cyKX/7yl4N/3759e3Hp0qXFVCoVnFd6Xh5zzDHBM2vTpk3FhQsXFs2s+OY3vznIq1SHX/7yl8m/bdiwoThhwoRiLpcr3n333WX1euGFF8razPmWeOqpp4q5XK643377FV9++eUg7c477yym0+nismXLkn8rFArF/fffv2hmxZ/85CfB8dddd13Sv1hfj1L7/vVf/7X47LPPFlOpVPHiiy9O0n/6058m6aXfKW94wxuCPLq7u4sbNmwoy3v16tXF6dOnF/fff//g308//fSimRUfeeSRsnM4n9IYl+bEjTfeWMzlcsUDDzywuHr16qraKMRooZduIeoM76V7/vz5xeHh4SDt+eefT3548Iv08PBwMZfLFY8//viqyz/ttNOKjY2NxcHBweTfzj///KKZFb/73e+WHX/fffdVfOk+7LDDirlcLnhJx3pNnjy5eOSRR1ZdLyGEEOOb0vPvsssuK1522WXFz3/+88WzzjqrmM1mi2YWvPCVXgg//vGPl+WzcePGYiaTKR511FEVy/nDH/5QNLPipz71qeTf3vrWtxbNrHjXXXeVHV/6I3I1L91f/vKXi2ZW/Ju/+Zuq2xx76f7EJz5RNLPi7bffXjH9L//yL4vpdLq4ZcuWYrH4/57Hb3rTm8qOHR4eLu677767/NJdLBaLJ554YnHKlCnFgYGBYrFYLC5btqzY1tZW7Onpib50e1x00UVFMys+//zzyb+dccYZRTMrPvXUUzs9H1+6r7766mIqlSoed9xxxc2bN1ddByFGC8nLhRhHHHbYYZbJZIJ/mzVrlpmZLV682Nrb24O0TCZj06ZNs5deeqksr9tvv93++Z//2R588EHbuHFj2aqjGzdutJkzZ5qZ2SOPPGJmVjEUyDHHHGPZbHir2bZtmz366KM2ZcoUu+666yq2pbGx0f70pz85rRVCCLE3csUVV5jZjnBanZ2ddtxxx9n5559v73vf+8qOPfroo8v+7fe//73l83kzs4py5KGhITOz4Bn08MMPWzqdrvicG0lIr9/+9rdmZvYXf/EXVZ8T4ze/+Y2Z7fA4P/DAA2Xp69evt0KhYM8884y99rWvtYcfftjMzN785jeXHZvJZOy4446zZ599dpfr84EPfMDe+9732q233mpvfOMb7fbbb7dzzz3X2trabOPGjdHz7r//fvvqV79qv/nNb2z9+vU2ODgYpK9ZsyaRyJ9zzjl2yy232NFHH23vfve77YQTTrBjjz3W5syZE83/4osvtp/85Cd25pln2ve+9z1ramra5TYKsavopVuIcURHR0fZv5VeeCulldJLPzBK/O///b/t4x//uE2cONFOOukkmzdvnrW0tFgqlbKf/OQn9uijjwYLx2zZssXMzKZPn16WfyaTscmTJwf/1tXVZcVi0TZs2JD8eBJCCCGqoRjxb1dixowZZf+2adMmM9vx8l1aeK0Svb29yfaWLVts0qRJFdcZqVRGjJKnfPbs2VWfE6PUjp2FSSu1w3tWm42sHZU444wzbNKkSXb99dfbn//8ZxseHo4uoFZixYoVdtZZZ1lTU5OddNJJtu+++1pra6ul02n71a9+ZXfffXfwe+OMM86wn/3sZ/aP//iPdsMNN9g///M/m5nZkUceaVdffbW95S1vKSvjnnvuMTOzt7/97XrhFrsNvXQLIQKGh4ftsssusxkzZtjDDz+cfM0uUfrLOjJhwgQz27E6+sKFC4O0fD5vmzZtCn5glP4AcPjhhyd/eRdCCCFGm9IK4EjpGXTxxRfbV77ylary6ejosM2bN1dcGHTt2rVV16ezs9PMdny9PfTQQ6s+L1Ynsx0v06XncDXHr1u3rmL6SNpRicbGRjvnnHPs61//uv33f/+3HXzwwXbMMce451x66aXW0NBgDz74oB144IFB2oc+9CG7++67y8459dRT7dRTT7W+vj773e9+Zz/72c/sm9/8pp166qn2yCOPlOXzk5/8xJYvX27Lly+34eFhO//8819VO4XYFRQyTAgRsHHjRuvu7rZjjz227IW7t7e34kvy4YcfbmZm9913X1nab3/72zJpeltbmx188MH2+OOP2+bNm0ex9kIIIYTP6173Okun03bvvfdWfc4RRxxhhUKh4nOuUkiwGKWX0JUrV1Z1fDqdTqTwsbyqbccRRxxhZlbxRTafz1ds20i54IILrFAo2CuvvFLVy+2f//xn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wQJs2rQJAHDffffh4sWLOH78OIqKipTtrJTJ6dOn0dzcjG3btiE7Oxvd3d2ora1VLtASZKVMQrmZ/bdCRn6/HwcOHIAQAuXl5Tfc3gqZhIv1ehJrNut1KKzXMtbr8LBehzYT67UpO92zZ89GfHy89IvE4OCg9ItPLPvyyy9x5swZ7N69W3PFvdTUVABQrvYYNDQ0FLP5dHV1YXBwEG+++aayLBAI4Pfff8fRo0dx4MABANbKJC0tDU6nU7PM6XSitbUVgDWPk/r6eqxZswaFhYUAgJycHPT19eH777/HypUrLZmJWjj7n5qaCr/fj+HhYc0vxUNDQ8jPz5/W9k4nv9+P/fv3o6+vDzt37tRc4MiqmYSD9fo61uxJrNcy1msZ67Ux1uupzdR6bco53TabDS6XC2fPntUsP3v2bEwfREFCCNTU1KC1tRU7d+5EZmamZn1mZiZSU1M1+fj9fnR0dMRsPkuWLMHHH3+Mqqoq5d+CBQuwYsUKVFVV4Z577rFcJvn5+cpcqKDLly/j7rvvBmDN4+Tq1avKrUaC4uPjlV84rZiJWjj773K5MGvWLM02AwMDuHDhAvLy8qa9zdMhWMB7enpQUVGBlJQUzXorZhIuq9drgDVbj/VaxnotY702xnod2kyu16Y80w0ATz/9ND799FO4XC7k5eWhqakJ/f39WLVqVbSbFnE1NTU4deoUtm/fjuTkZOUMgt1uR2JiIuLi4rB69Wq43W7MnTsXWVlZcLvdSEpKUubCxJrk5GRlflxQUlISUlJSlOVWy6S4uBgVFRU4fPgwHnvsMXR2duLkyZN4/vnnAcCSx8nDDz+Mw4cPIyMjA06nE93d3fjhhx/w+OOPA7BGJuPj4+jp6VGe9/b2oru7Gw6HAxkZGTfcf7vdjieeeAJ1dXVISUmBw+FAXV0dcnJypAsimYVRJmlpaaiurobH48GOHTsQCASU71yHwwGbzRaTmdxOVq7XAGu2Huu1jPVaxnrNeh2Kmet1nDDxwP5jx46hsbERAwMDyM7OxpYtW7Bo0aJoNyviNmzYEHL5iy++qMxzEUKgoaEBTU1NGBkZwf3334+ysjKp0MWy9957D7m5uSgtLQVgzUzOnDmDQ4cOoaenB5mZmSguLsaTTz6prLdaJmNjY/juu+/Q1taGwcFBpKeno7CwEOvXr4fNNvkbZKxncu7cOezevVtaXlRUhJdeeims/ff5fKivr8epU6fg8/mwePFilJeXIyMjYzp35bYxyqSkpAQvv/xyyNft2rULDz74IIDYy+R2s2q9Blizw8F6zXqtx3rNeh2Kmeu1qTvdRERERERERDOZKed0ExEREREREZkBO91EREREREREEcJONxEREREREVGEsNNNREREREREFCHsdBMRERERERFFCDvdRERERERERBHCTjcRERERERFRhLDTTURERERERBQh7HQTERERERERRQg73UREREREREQRwk43ERERERERUYSw001EREREREQUIf8BQjeE8Ked9MgAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1000x1000 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "unet.eval()\n",
    "    \n",
    "with torch.inference_mode():\n",
    "    image = cv2.imread(r\"C:\\Users\\mohit\\Downloads\\DIP Assignment 2\\Data_Q4\\CXR_png\\CHNCXR_0035_0.png\")\n",
    "    image_real = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)\n",
    "    image_real = cv2.resize(image_real,(128,128))\n",
    "    image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)\n",
    "    image = image.astype(\"float32\")/255.0\n",
    "    image = cv2.resize(image,(128,128))\n",
    "        \n",
    "    orig = image.copy()\n",
    "        \n",
    "       # filename = imagePath.split(os.path.sep)[-1]\n",
    "        #groundTruthPath = os.path.join(masks_path,filename)\n",
    "        \n",
    "        #gtMask = cv2.imread(groundTruthPath,0)\n",
    "        #gtMask = cv2.resize(gtMask,(INPUT_IMAGE_HEIGHT,INPUT_IMAGE_WIDTH))\n",
    "        \n",
    "    image = np.transpose(image,(2,0,1)) #to get it to [C,H,W] format\n",
    "    image = np.expand_dims(image,0) #model inputs 4 dimensional tensor\n",
    "    image = torch.tensor(image)\n",
    "        \n",
    "    predMask = unet(image).squeeze() #to remove extra dimension\n",
    "    predMask = torch.sigmoid(predMask)\n",
    "    predMask = predMask.numpy()\n",
    "        \n",
    "    predMask = (predMask>THRESHOLD) *255\n",
    "    predMask = predMask.astype(np.uint8)\n",
    "        \n",
    "#     prepare_plot(orig,predMask)\n",
    "    print(image_real.shape, predMask.shape)\n",
    "    for i in range(len(predMask)):\n",
    "        for j in range(len(predMask[0])):\n",
    "            if predMask[i][j] == 255:\n",
    "                image_real[i][j] = 255\n",
    "\n",
    "    prepare_plot(image_real,predMask)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "id": "0088d784",
   "metadata": {},
   "outputs": [],
   "source": [
    "image2 = cv2.imread(r\"C:\\Users\\mohit\\Downloads\\DIP Assignment 2\\Data_Q4\\CXR_png\\CHNCXR_0035_0.png\")\n",
    "image_real = cv2.cvtColor(image2,cv2.COLOR_BGR2GRAY)\n",
    "image_real = cv2.resize(image_real,(128,128))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "id": "65d46401",
   "metadata": {},
   "outputs": [],
   "source": [
    "ROI = np.multiply(predMask,image_real)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "id": "c60edfc7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       ...,\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)"
      ]
     },
     "execution_count": 121,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ROI"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "7839d01a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-0.5, 127.5, 127.5, -0.5)"
      ]
     },
     "execution_count": 122,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(ROI, cmap='gray')\n",
    "plt.axis('off')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b50bd688",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "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.9.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}