Computer_Vision/Chapter08/.ipynb_checkpoints/Training_SSD-checkpoint.ipynb

742 lines
376 KiB
Plaintext
Raw Normal View History

2024-02-13 03:34:51 +01:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "view-in-github"
},
"source": [
"<a href=\"https://colab.research.google.com/github/PacktPublishing/Hands-On-Computer-Vision-with-PyTorch/blob/master/Chapter08/Training_SSD.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 136
},
"id": "2kfpFqPshj8L",
"outputId": "d1f10813-209e-4226-e54f-39cf1db77ff5"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
"spyder 5.1.5 requires pyqtwebengine<5.13, which is not installed.\n",
"spyder 5.1.5 requires pyqt5<5.13, but you have pyqt5 5.15.9 which is incompatible.\n",
"pylint 2.7.2 requires astroid<2.6,>=2.5.1, but you have astroid 2.5 which is incompatible.\n",
"'wget' is not recognized as an internal or external command,\n",
"operable program or batch file.\n",
"tar: Error opening archive: Failed to open 'open-images-bus-trucks.tar.xz'\n",
"'rm' is not recognized as an internal or external command,\n",
"operable program or batch file.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"f:\\Zajecia\\books\\computer_vision\\Modern-Computer-Vision-with-PyTorch-master\\Modern-Computer-Vision-with-PyTorch-master\\Modern-Computer-Vision-with-PyTorch-master\\Chapter08\\ssd-utils\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Cloning into 'ssd-utils'...\n"
]
}
],
"source": [
"import os\n",
"if not os.path.exists('open-images-bus-trucks'):\n",
" !pip install -q torch_snippets\n",
" !wget --quiet https://www.dropbox.com/s/agmzwk95v96ihic/open-images-bus-trucks.tar.xz\n",
" !tar -xf open-images-bus-trucks.tar.xz\n",
" !rm open-images-bus-trucks.tar.xz\n",
" !git clone https://github.com/sizhky/ssd-utils/\n",
"%cd ssd-utils"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "s65Jc3jshlwf"
},
"outputs": [],
"source": [
"from torch_snippets import *\n",
"DATA_ROOT = '../open-images-bus-trucks/'\n",
"IMAGE_ROOT = f'{DATA_ROOT}/images'\n",
"DF_RAW = df = pd.read_csv(f'{DATA_ROOT}/df.csv')\n",
"\n",
"df = df[df['ImageID'].isin(df['ImageID'].unique().tolist())]\n",
"\n",
"label2target = {l:t+1 for t,l in enumerate(DF_RAW['LabelName'].unique())}\n",
"label2target['background'] = 0\n",
"target2label = {t:l for l,t in label2target.items()}\n",
"background_class = label2target['background']\n",
"num_classes = len(label2target)\n",
"\n",
"device = 'cuda' if torch.cuda.is_available() else 'cpu'"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "VZrEG_KjhrAc"
},
"outputs": [],
"source": [
"import collections, os, torch\n",
"from PIL import Image\n",
"from torchvision import transforms\n",
"normalize = transforms.Normalize(\n",
" mean=[0.485, 0.456, 0.406],\n",
" std=[0.229, 0.224, 0.225]\n",
")\n",
"denormalize = transforms.Normalize(\n",
" mean=[-0.485/0.229, -0.456/0.224, -0.406/0.255],\n",
" std=[1/0.229, 1/0.224, 1/0.255]\n",
")\n",
"\n",
"def preprocess_image(img):\n",
" img = torch.tensor(img).permute(2,0,1)\n",
" img = normalize(img)\n",
" return img.to(device).float()\n",
" \n",
"class OpenDataset(torch.utils.data.Dataset):\n",
" w, h = 300, 300\n",
" def __init__(self, df, image_dir=IMAGE_ROOT):\n",
" self.image_dir = image_dir\n",
" self.files = glob.glob(self.image_dir+'/*')\n",
" self.df = df\n",
" self.image_infos = df.ImageID.unique()\n",
" logger.info(f'{len(self)} items loaded')\n",
" \n",
" def __getitem__(self, ix):\n",
" # load images and masks\n",
" image_id = self.image_infos[ix]\n",
" img_path = find(image_id, self.files)\n",
" img = Image.open(img_path).convert(\"RGB\")\n",
" img = np.array(img.resize((self.w, self.h), resample=Image.BILINEAR))/255.\n",
" data = df[df['ImageID'] == image_id]\n",
" labels = data['LabelName'].values.tolist()\n",
" data = data[['XMin','YMin','XMax','YMax']].values\n",
" data[:,[0,2]] *= self.w\n",
" data[:,[1,3]] *= self.h\n",
" boxes = data.astype(np.uint32).tolist() # convert to absolute coordinates\n",
" return img, boxes, labels\n",
"\n",
" def collate_fn(self, batch):\n",
" images, boxes, labels = [], [], []\n",
" for item in batch:\n",
" img, image_boxes, image_labels = item\n",
" img = preprocess_image(img)[None]\n",
" images.append(img)\n",
" boxes.append(torch.tensor(image_boxes).float().to(device)/300.)\n",
" labels.append(torch.tensor([label2target[c] for c in image_labels]).long().to(device))\n",
" images = torch.cat(images).to(device)\n",
" return images, boxes, labels\n",
" def __len__(self):\n",
" return len(self.image_infos)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
},
"id": "CnaMqB-Ehuc-",
"outputId": "3ec3a031-39e9-4ad7-ef3a-ae73afeea81a"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-10-13 10:38:19.093 | INFO | __main__:__init__:25 - 13702 items loaded\n",
"2020-10-13 10:38:19.138 | INFO | __main__:__init__:25 - 1523 items loaded\n"
]
}
],
"source": [
"from sklearn.model_selection import train_test_split\n",
"trn_ids, val_ids = train_test_split(df.ImageID.unique(), test_size=0.1, random_state=99)\n",
"trn_df, val_df = df[df['ImageID'].isin(trn_ids)], df[df['ImageID'].isin(val_ids)]\n",
"len(trn_df), len(val_df)\n",
"\n",
"train_ds = OpenDataset(trn_df)\n",
"test_ds = OpenDataset(val_df)\n",
"\n",
"train_loader = DataLoader(train_ds, batch_size=4, collate_fn=train_ds.collate_fn, drop_last=True)\n",
"test_loader = DataLoader(test_ds, batch_size=4, collate_fn=test_ds.collate_fn, drop_last=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "H4QhRAB7hu8x"
},
"outputs": [],
"source": [
"def train_batch(inputs, model, criterion, optimizer):\n",
" model.train()\n",
" N = len(train_loader)\n",
" images, boxes, labels = inputs\n",
" _regr, _clss = model(images)\n",
" loss = criterion(_regr, _clss, boxes, labels)\n",
" optimizer.zero_grad()\n",
" loss.backward()\n",
" optimizer.step()\n",
" return loss\n",
" \n",
"@torch.no_grad()\n",
"def validate_batch(inputs, model, criterion):\n",
" model.eval()\n",
" images, boxes, labels = inputs\n",
" _regr, _clss = model(images)\n",
" loss = criterion(_regr, _clss, boxes, labels)\n",
" return loss"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "aPNylBebhxIa"
},
"outputs": [],
"source": [
"from model import SSD300, MultiBoxLoss\n",
"from detect import *"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 188,
"referenced_widgets": [
"c7a9a84353ba44ccbe0ca74f6e28d2d7",
"481a843c371648cca13253e801b33674",
"a89e2f1de7c64a2c867e3e7242215570",
"f9bf1840e56249a8a4cbe9cf0517d323",
"303a9f6960464ebaaed9f0b6db332872",
"3f43740c77a94596bf44c3e27edef3a3",
"570b8c5491894c5fa4e6085ac3b2c1c7",
"d759286449f046d9ad7a229459a7a436"
]
},
"id": "YSmdnGBShyL6",
"outputId": "8fe9eb28-ff8f-4df5-9c76-737049bf3d05"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Downloading: \"https://download.pytorch.org/models/vgg16-397923af.pth\" to /root/.cache/torch/hub/checkpoints/vgg16-397923af.pth\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "c7a9a84353ba44ccbe0ca74f6e28d2d7",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"HBox(children=(FloatProgress(value=0.0, max=553433881.0), HTML(value='')))"
]
},
"metadata": {
"tags": []
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"\n",
"Loaded base model.\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/torch/nn/_reduction.py:44: UserWarning: size_average and reduce args will be deprecated, please use reduction='none' instead.\n",
" warnings.warn(warning.format(ret))\n"
]
}
],
"source": [
"n_epochs = 3\n",
"\n",
"model = SSD300(num_classes, device)\n",
"optimizer = torch.optim.AdamW(model.parameters(), lr=1e-4, weight_decay=1e-5)\n",
"criterion = MultiBoxLoss(priors_cxcy=model.priors_cxcy, device=device)\n",
"\n",
"log = Report(n_epochs=n_epochs)\n",
"logs_to_print = 5"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "7ex1zZl4h3Po"
},
"outputs": [],
"source": [
"for epoch in range(n_epochs):\n",
" _n = len(train_loader)\n",
" for ix, inputs in enumerate(train_loader):\n",
" loss = train_batch(inputs, model, criterion, optimizer)\n",
" pos = (epoch + (ix+1)/_n)\n",
" log.record(pos, trn_loss=loss.item(), end='\\r')\n",
"\n",
" _n = len(test_loader)\n",
" for ix,inputs in enumerate(test_loader):\n",
" loss = validate_batch(inputs, model, criterion)\n",
" pos = (epoch + (ix+1)/_n)\n",
" log.record(pos, val_loss=loss.item(), end='\\r')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"id": "YpM7pTH3h5Iw",
"outputId": "f64e4832-cbe2-4aa0-fc69-b436d1269036"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2020-10-13 10:39:28.949 | INFO | torch_snippets.loader:Glob:178 - 15225 files found at ../open-images-bus-trucks//images/*\n"
]
}
],
"source": [
"image_paths = Glob(f'{DATA_ROOT}/images/*')\n",
"image_id = choose(test_ds.image_infos)\n",
"img_path = find(image_id, test_ds.files)\n",
"original_image = Image.open(img_path, mode='r')\n",
"original_image = original_image.convert('RGB')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 743
},
"id": "_LdQ9g5rh-F6",
"outputId": "336b962c-3113-4242-c43e-a19595252bf4"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[35, 34, 212, 123]] ['Truck @ 1.00']\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 360x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light",
"tags": []
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[6, 1, 250, 215]] ['Bus @ 1.00']\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 360x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light",
"tags": []
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[58, 22, 194, 170]] ['Bus @ 1.00']\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 360x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light",
"tags": []
},
"output_type": "display_data"
}
],
"source": [
"image_paths = Glob(f'{DATA_ROOT}/images/*')\n",
"for _ in range(3):\n",
" image_id = choose(test_ds.image_infos)\n",
" img_path = find(image_id, test_ds.files)\n",
" original_image = Image.open(img_path, mode='r')\n",
" bbs, labels, scores = detect(original_image, model, min_score=0.9, max_overlap=0.5,top_k=200, device=device)\n",
" labels = [target2label[c.item()] for c in labels]\n",
" label_with_conf = [f'{l} @ {s:.2f}' for l,s in zip(labels,scores)]\n",
" print(bbs, label_with_conf)\n",
" show(original_image, bbs=bbs, texts=label_with_conf, text_sz=10)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "SjbkdwlpEH3k"
},
"outputs": [],
"source": []
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"include_colab_link": true,
"name": "Training_SSD.ipynb",
"provenance": []
},
"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.13"
},
"latex_envs": {
"LaTeX_envs_menu_present": true,
"autoclose": false,
"autocomplete": true,
"bibliofile": "biblio.bib",
"cite_by": "apalike",
"current_citInitial": 1,
"eqLabelWithNumbers": true,
"eqNumInitial": 1,
"hotkeys": {
"equation": "Ctrl-E",
"itemize": "Ctrl-I"
},
"labels_anchors": false,
"latex_user_defs": false,
"report_style_numbering": false,
"user_envs_cfg": false
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"303a9f6960464ebaaed9f0b6db332872": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "ProgressStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"bar_color": null,
"description_width": "initial"
}
},
"3f43740c77a94596bf44c3e27edef3a3": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"481a843c371648cca13253e801b33674": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"570b8c5491894c5fa4e6085ac3b2c1c7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"a89e2f1de7c64a2c867e3e7242215570": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "FloatProgressModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "ProgressView",
"bar_style": "success",
"description": "100%",
"description_tooltip": null,
"layout": "IPY_MODEL_3f43740c77a94596bf44c3e27edef3a3",
"max": 553433881,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_303a9f6960464ebaaed9f0b6db332872",
"value": 553433881
}
},
"c7a9a84353ba44ccbe0ca74f6e28d2d7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HBoxModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HBoxView",
"box_style": "",
"children": [
"IPY_MODEL_a89e2f1de7c64a2c867e3e7242215570",
"IPY_MODEL_f9bf1840e56249a8a4cbe9cf0517d323"
],
"layout": "IPY_MODEL_481a843c371648cca13253e801b33674"
}
},
"d759286449f046d9ad7a229459a7a436": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"f9bf1840e56249a8a4cbe9cf0517d323": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HTMLModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_d759286449f046d9ad7a229459a7a436",
"placeholder": "",
"style": "IPY_MODEL_570b8c5491894c5fa4e6085ac3b2c1c7",
"value": " 528M/528M [00:05&lt;00:00, 103MB/s]"
}
}
}
}
},
"nbformat": 4,
"nbformat_minor": 1
}