├── DL_6_Segmentation_clothes_9classes.ipynb ├── Embeddings_Img_similarity_birds.ipynb ├── Finetune_CNN.ipynb ├── README.md ├── Yolov7_ANPR_ir.ipynb ├── plate_OCR_comparison.ipynb ├── segmentation_A_validation.ipynb └── train_plate_OCR_ir.ipynb /README.md: -------------------------------------------------------------------------------- 1 | "# Colab_notebooks" 2 | -------------------------------------------------------------------------------- /train_plate_OCR_ir.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "id": "view-in-github", 7 | "colab_type": "text" 8 | }, 9 | "source": [ 10 | "\"Open" 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "source": [ 16 | "import os\n", 17 | "import tensorflow as tf\n", 18 | "import keras\n", 19 | "import numpy as np\n", 20 | "import cv2 as cv\n", 21 | "import random\n", 22 | "import matplotlib.pyplot as plt" 23 | ], 24 | "metadata": { 25 | "id": "pBDUdYmfXjJd" 26 | }, 27 | "execution_count": null, 28 | "outputs": [] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "source": [ 33 | "!pip install roboflow\n", 34 | "\n", 35 | "from roboflow import Roboflow\n", 36 | "rf = Roboflow(api_key=\"VdwBRxsJsFmCMW94xJjd\")\n", 37 | "project = rf.workspace(\"object-detection-yolov5\").project(\"plate_ocr_ir\")\n", 38 | "dataset = project.version(2).download(\"folder\")" 39 | ], 40 | "metadata": { 41 | "colab": { 42 | "base_uri": "https://localhost:8080/" 43 | }, 44 | "id": "sQLnkBqVr9SF", 45 | "outputId": "45dae32b-5a71-4656-b7b4-5e64e8fb1c0b" 46 | }, 47 | "execution_count": null, 48 | "outputs": [ 49 | { 50 | "output_type": "stream", 51 | "name": "stdout", 52 | "text": [ 53 | "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", 54 | "Requirement already satisfied: roboflow in /usr/local/lib/python3.7/dist-packages (0.2.14)\n", 55 | "Requirement already satisfied: numpy>=1.18.5 in /usr/local/lib/python3.7/dist-packages (from roboflow) (1.21.6)\n", 56 | "Requirement already satisfied: chardet==4.0.0 in /usr/local/lib/python3.7/dist-packages (from roboflow) (4.0.0)\n", 57 | "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from roboflow) (1.15.0)\n", 58 | "Requirement already satisfied: wget in /usr/local/lib/python3.7/dist-packages (from roboflow) (3.2)\n", 59 | "Requirement already satisfied: PyYAML>=5.3.1 in /usr/local/lib/python3.7/dist-packages (from roboflow) (6.0)\n", 60 | "Requirement already satisfied: glob2 in /usr/local/lib/python3.7/dist-packages (from roboflow) (0.7)\n", 61 | "Requirement already satisfied: opencv-python-headless>=4.5.1.48 in /usr/local/lib/python3.7/dist-packages (from roboflow) (4.6.0.66)\n", 62 | "Requirement already satisfied: urllib3==1.26.6 in /usr/local/lib/python3.7/dist-packages (from roboflow) (1.26.6)\n", 63 | "Requirement already satisfied: idna==2.10 in /usr/local/lib/python3.7/dist-packages (from roboflow) (2.10)\n", 64 | "Requirement already satisfied: kiwisolver==1.3.1 in /usr/local/lib/python3.7/dist-packages (from roboflow) (1.3.1)\n", 65 | "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from roboflow) (3.2.2)\n", 66 | "Requirement already satisfied: python-dotenv in /usr/local/lib/python3.7/dist-packages (from roboflow) (0.20.0)\n", 67 | "Requirement already satisfied: cycler==0.10.0 in /usr/local/lib/python3.7/dist-packages (from roboflow) (0.10.0)\n", 68 | "Requirement already satisfied: tqdm>=4.41.0 in /usr/local/lib/python3.7/dist-packages (from roboflow) (4.64.0)\n", 69 | "Requirement already satisfied: Pillow>=7.1.2 in /usr/local/lib/python3.7/dist-packages (from roboflow) (7.1.2)\n", 70 | "Requirement already satisfied: certifi==2021.5.30 in /usr/local/lib/python3.7/dist-packages (from roboflow) (2021.5.30)\n", 71 | "Requirement already satisfied: requests-toolbelt in /usr/local/lib/python3.7/dist-packages (from roboflow) (0.9.1)\n", 72 | "Requirement already satisfied: pyparsing==2.4.7 in /usr/local/lib/python3.7/dist-packages (from roboflow) (2.4.7)\n", 73 | "Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from roboflow) (2.28.1)\n", 74 | "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.7/dist-packages (from roboflow) (2.8.2)\n", 75 | "Requirement already satisfied: charset-normalizer<3,>=2 in /usr/local/lib/python3.7/dist-packages (from requests->roboflow) (2.1.0)\n", 76 | "loading Roboflow workspace...\n", 77 | "loading Roboflow project...\n", 78 | "Downloading Dataset Version Zip in plate_ocr_ir-2 to folder: 100% [11679295 / 11679295] bytes\n" 79 | ] 80 | }, 81 | { 82 | "output_type": "stream", 83 | "name": "stderr", 84 | "text": [ 85 | "Extracting Dataset Version Zip to plate_ocr_ir-2 in folder:: 100%|██████████| 9658/9658 [00:03<00:00, 3146.72it/s]\n" 86 | ] 87 | } 88 | ] 89 | }, 90 | { 91 | "cell_type": "code", 92 | "source": [ 93 | "train_path = \"/content/plate_ocr_ir-2/train\"\n", 94 | "valid_path = \"/content/plate_ocr_ir-2/valid\"\n", 95 | "test_path = \"/content/plate_ocr_ir-2/test\"" 96 | ], 97 | "metadata": { 98 | "id": "jxpZw3bok3Ux" 99 | }, 100 | "execution_count": null, 101 | "outputs": [] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "source": [ 106 | "class_names = subdirs = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'ch', 'd', 'ein', 'f', 'g', 'ghaf', 'ghein', 'h2', 'hj', 'j', 'k', 'kh', 'l', 'm', 'n', 'p', 'r', 's', 'sad', 'sh', 't', 'ta', 'th', 'v', 'y', 'z', 'za', 'zad', 'zal', 'zh']\n", 107 | "num_classes = len(class_names)" 108 | ], 109 | "metadata": { 110 | "id": "mK881Ni5lG2f" 111 | }, 112 | "execution_count": null, 113 | "outputs": [] 114 | }, 115 | { 116 | "cell_type": "code", 117 | "source": [ 118 | "labels_nums = [i for i in range(0,len(class_names))]\n", 119 | "print(labels_nums)" 120 | ], 121 | "metadata": { 122 | "colab": { 123 | "base_uri": "https://localhost:8080/" 124 | }, 125 | "id": "7a98ohwtldP_", 126 | "outputId": "c743a4b7-2690-485b-aa4e-f3a70b363503" 127 | }, 128 | "execution_count": null, 129 | "outputs": [ 130 | { 131 | "output_type": "stream", 132 | "name": "stdout", 133 | "text": [ 134 | "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41]\n" 135 | ] 136 | } 137 | ] 138 | }, 139 | { 140 | "cell_type": "code", 141 | "source": [ 142 | "train_imgs = []\n", 143 | "train_labels = []\n", 144 | "for indx, subdir in enumerate(subdirs):\n", 145 | " imgfolder = os.path.join(train_path, subdir)\n", 146 | " for imgname in os.listdir(imgfolder):\n", 147 | " img = cv.imread(os.path.join(imgfolder, imgname), 0)\n", 148 | " train_imgs.append(img)\n", 149 | " train_labels.append(labels_nums[indx])\n", 150 | "\n", 151 | "c = list(zip(train_imgs, train_labels))\n", 152 | "random.shuffle(c)\n", 153 | "train_imgs, train_labels = zip(*c)\n", 154 | "\n", 155 | "train_images = np.array(train_imgs)\n", 156 | "train_labels = np.array(train_labels)" 157 | ], 158 | "metadata": { 159 | "id": "83uEUjWSk3Xv" 160 | }, 161 | "execution_count": null, 162 | "outputs": [] 163 | }, 164 | { 165 | "cell_type": "code", 166 | "source": [ 167 | "valid_imgs = []\n", 168 | "valid_labels = []\n", 169 | "for indx, subdir in enumerate(subdirs):\n", 170 | " imgfolder = os.path.join(valid_path, subdir)\n", 171 | " if os.path.exists(imgfolder):\n", 172 | " for imgname in os.listdir(imgfolder):\n", 173 | " img = cv.imread(os.path.join(imgfolder, imgname), 0)\n", 174 | " valid_imgs.append(img)\n", 175 | " valid_labels.append(labels_nums[indx])\n", 176 | "\n", 177 | "c = list(zip(valid_imgs, valid_labels))\n", 178 | "random.shuffle(c)\n", 179 | "valid_imgs, valid_labels = zip(*c)\n", 180 | "\n", 181 | "test_images = np.array(valid_imgs)\n", 182 | "test_labels = np.array(valid_labels)" 183 | ], 184 | "metadata": { 185 | "id": "siVE8t-NncUb" 186 | }, 187 | "execution_count": null, 188 | "outputs": [] 189 | }, 190 | { 191 | "cell_type": "code", 192 | "source": [ 193 | "num=90\n", 194 | "print(class_names[train_labels[num]])\n", 195 | "print(train_labels[num])\n", 196 | "plt.imshow(train_images[num])" 197 | ], 198 | "metadata": { 199 | "colab": { 200 | "base_uri": "https://localhost:8080/", 201 | "height": 317 202 | }, 203 | "id": "_bHSWkmIvQel", 204 | "outputId": "0d60b658-b955-452b-e8e9-94624c04232b" 205 | }, 206 | "execution_count": null, 207 | "outputs": [ 208 | { 209 | "output_type": "stream", 210 | "name": "stdout", 211 | "text": [ 212 | "b\n", 213 | "11\n" 214 | ] 215 | }, 216 | { 217 | "output_type": "execute_result", 218 | "data": { 219 | "text/plain": [ 220 | "" 221 | ] 222 | }, 223 | "metadata": {}, 224 | "execution_count": 181 225 | }, 226 | { 227 | "output_type": "display_data", 228 | "data": { 229 | "text/plain": [ 230 | "
" 231 | ], 232 | "image/png": "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\n" 233 | }, 234 | "metadata": { 235 | "needs_background": "light" 236 | } 237 | } 238 | ] 239 | }, 240 | { 241 | "cell_type": "code", 242 | "source": [ 243 | "test_labels.shape" 244 | ], 245 | "metadata": { 246 | "colab": { 247 | "base_uri": "https://localhost:8080/" 248 | }, 249 | "id": "0gyRuX2pmPA9", 250 | "outputId": "7db8dbfa-46fe-463e-83dc-ad6adfc61a46" 251 | }, 252 | "execution_count": null, 253 | "outputs": [ 254 | { 255 | "output_type": "execute_result", 256 | "data": { 257 | "text/plain": [ 258 | "(792,)" 259 | ] 260 | }, 261 | "metadata": {}, 262 | "execution_count": 182 263 | } 264 | ] 265 | }, 266 | { 267 | "cell_type": "code", 268 | "source": [ 269 | "train_images = train_images / 255.0\n", 270 | "test_images = test_images / 255.0" 271 | ], 272 | "metadata": { 273 | "id": "yfyYxNfmoX7A" 274 | }, 275 | "execution_count": null, 276 | "outputs": [] 277 | }, 278 | { 279 | "cell_type": "code", 280 | "source": [ 281 | "model = keras.Sequential([\n", 282 | " keras.layers.Flatten(input_shape=(28, 28)),\n", 283 | " keras.layers.Dense(128, activation=tf.nn.relu),\n", 284 | " keras.layers.Dense(num_classes, activation=tf.nn.softmax)\n", 285 | "])" 286 | ], 287 | "metadata": { 288 | "id": "_pJZoNMtoX9h" 289 | }, 290 | "execution_count": null, 291 | "outputs": [] 292 | }, 293 | { 294 | "cell_type": "code", 295 | "source": [ 296 | "model.compile(optimizer='adam',\n", 297 | " loss='sparse_categorical_crossentropy',\n", 298 | " metrics=['accuracy'])" 299 | ], 300 | "metadata": { 301 | "id": "iIRIf8q8oYAB" 302 | }, 303 | "execution_count": null, 304 | "outputs": [] 305 | }, 306 | { 307 | "cell_type": "code", 308 | "source": [ 309 | "model.fit(train_images, train_labels, epochs=200)\n" 310 | ], 311 | "metadata": { 312 | "id": "BCrJBnmCoumW" 313 | }, 314 | "execution_count": null, 315 | "outputs": [] 316 | }, 317 | { 318 | "cell_type": "code", 319 | "source": [ 320 | "\n", 321 | "predictions = model.predict(test_images)\n" 322 | ], 323 | "metadata": { 324 | "id": "I-zjjit1qp1X" 325 | }, 326 | "execution_count": null, 327 | "outputs": [] 328 | }, 329 | { 330 | "cell_type": "code", 331 | "source": [ 332 | "" 333 | ], 334 | "metadata": { 335 | "id": "9F9xV8M1rSTv" 336 | }, 337 | "execution_count": null, 338 | "outputs": [] 339 | }, 340 | { 341 | "cell_type": "code", 342 | "source": [ 343 | "model.save('saved_model/simple_ocr_plates_model')" 344 | ], 345 | "metadata": { 346 | "id": "0zqoLC2FrSfm" 347 | }, 348 | "execution_count": null, 349 | "outputs": [] 350 | }, 351 | { 352 | "cell_type": "code", 353 | "source": [ 354 | "!zip -r /content/saved_model/simple_ocr_plates_model.zip /content/saved_model/simple_ocr_plates_model" 355 | ], 356 | "metadata": { 357 | "colab": { 358 | "base_uri": "https://localhost:8080/" 359 | }, 360 | "id": "ey-ykb2QCM4t", 361 | "outputId": "7537b2fc-c6a4-4238-9ff7-40ff8507eb27" 362 | }, 363 | "execution_count": null, 364 | "outputs": [ 365 | { 366 | "output_type": "stream", 367 | "name": "stdout", 368 | "text": [ 369 | " adding: content/saved_model/simple_ocr_plates_model/ (stored 0%)\n", 370 | " adding: content/saved_model/simple_ocr_plates_model/assets/ (stored 0%)\n", 371 | " adding: content/saved_model/simple_ocr_plates_model/variables/ (stored 0%)\n", 372 | " adding: content/saved_model/simple_ocr_plates_model/variables/variables.data-00000-of-00001 (deflated 24%)\n", 373 | " adding: content/saved_model/simple_ocr_plates_model/variables/variables.index (deflated 59%)\n", 374 | " adding: content/saved_model/simple_ocr_plates_model/keras_metadata.pb (deflated 85%)\n", 375 | " adding: content/saved_model/simple_ocr_plates_model/saved_model.pb (deflated 87%)\n" 376 | ] 377 | } 378 | ] 379 | }, 380 | { 381 | "cell_type": "code", 382 | "source": [ 383 | "ocr_model = tf.keras.models.load_model('simple_ocr_plates_model')" 384 | ], 385 | "metadata": { 386 | "id": "CblYQNhcrTZk" 387 | }, 388 | "execution_count": null, 389 | "outputs": [] 390 | }, 391 | { 392 | "cell_type": "code", 393 | "source": [ 394 | "test_img_path = \"/content/plate_ocr_ir-2/test/ch/c_250_png.rf.d3aa38e2f0156f1ca06bf9206f7966aa.jpg\"\n", 395 | "test_img = cv.imread(test_img_path, 0)\n", 396 | "test_img = np.expand_dims(test_img, axis=0)\n", 397 | "predictions = ocr_model.predict(test_images)" 398 | ], 399 | "metadata": { 400 | "id": "fGdGKKb6smlK" 401 | }, 402 | "execution_count": null, 403 | "outputs": [] 404 | }, 405 | { 406 | "cell_type": "code", 407 | "source": [ 408 | "class_names[np.argmax(predictions[0])]" 409 | ], 410 | "metadata": { 411 | "colab": { 412 | "base_uri": "https://localhost:8080/", 413 | "height": 36 414 | }, 415 | "id": "9EHAGKHQtF2I", 416 | "outputId": "8969ef6c-8e41-4849-b206-8c976f4cdcbd" 417 | }, 418 | "execution_count": null, 419 | "outputs": [ 420 | { 421 | "output_type": "execute_result", 422 | "data": { 423 | "text/plain": [ 424 | "'m'" 425 | ], 426 | "application/vnd.google.colaboratory.intrinsic+json": { 427 | "type": "string" 428 | } 429 | }, 430 | "metadata": {}, 431 | "execution_count": 124 432 | } 433 | ] 434 | }, 435 | { 436 | "cell_type": "code", 437 | "source": [ 438 | "test_imgs = []\n", 439 | "test_labels = []\n", 440 | "for indx, subdir in enumerate(subdirs):\n", 441 | " imgfolder = os.path.join(test_path, subdir)\n", 442 | " if os.path.exists(imgfolder):\n", 443 | " for imgname in os.listdir(imgfolder):\n", 444 | " img = cv.imread(os.path.join(imgfolder, imgname), 0)\n", 445 | " test_imgs.append(img)\n", 446 | " test_labels.append(labels_nums[indx])\n", 447 | "\n", 448 | "c = list(zip(test_imgs, test_labels))\n", 449 | "random.shuffle(c)\n", 450 | "test_imgs, test_labels = zip(*c)\n", 451 | "\n", 452 | "test_images = np.array(test_imgs)\n", 453 | "test_labels = np.array(test_labels)" 454 | ], 455 | "metadata": { 456 | "id": "hSoYI1ZWtHvY" 457 | }, 458 | "execution_count": null, 459 | "outputs": [] 460 | }, 461 | { 462 | "cell_type": "code", 463 | "source": [ 464 | "\n", 465 | "predictions = ocr_model.predict(test_images)" 466 | ], 467 | "metadata": { 468 | "id": "N8GAbNOXtpaH" 469 | }, 470 | "execution_count": null, 471 | "outputs": [] 472 | }, 473 | { 474 | "cell_type": "code", 475 | "source": [ 476 | "num=30\n", 477 | "print(class_names[np.argmax(predictions[num])])\n", 478 | "print(np.argmax(predictions[num]))\n", 479 | "plt.imshow(test_images[num])" 480 | ], 481 | "metadata": { 482 | "colab": { 483 | "base_uri": "https://localhost:8080/", 484 | "height": 317 485 | }, 486 | "id": "uYc7UFeKuQVF", 487 | "outputId": "462cdd8e-3d62-4655-b727-daf3d535e0f8" 488 | }, 489 | "execution_count": null, 490 | "outputs": [ 491 | { 492 | "output_type": "stream", 493 | "name": "stdout", 494 | "text": [ 495 | "zh\n", 496 | "41\n" 497 | ] 498 | }, 499 | { 500 | "output_type": "execute_result", 501 | "data": { 502 | "text/plain": [ 503 | "" 504 | ] 505 | }, 506 | "metadata": {}, 507 | "execution_count": 191 508 | }, 509 | { 510 | "output_type": "display_data", 511 | "data": { 512 | "text/plain": [ 513 | "
" 514 | ], 515 | "image/png": "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\n" 516 | }, 517 | "metadata": { 518 | "needs_background": "light" 519 | } 520 | } 521 | ] 522 | }, 523 | { 524 | "cell_type": "code", 525 | "source": [ 526 | "y_predicted = model.predict(test_images)\n", 527 | "y_predicted_labels = [np.argmax(i) for i in y_predicted]\n", 528 | "\n", 529 | "cm = tf.math.confusion_matrix(labels=test_labels, predictions=y_predicted_labels)\n", 530 | "\n", 531 | "import seaborn as sn\n", 532 | "plt.figure(figsize = (10,7))\n", 533 | "sn.heatmap(cm, annot=True, fmt='d')\n", 534 | "plt.xlabel('Predicted')\n", 535 | "plt.ylabel('Truth')" 536 | ], 537 | "metadata": { 538 | "colab": { 539 | "base_uri": "https://localhost:8080/", 540 | "height": 463 541 | }, 542 | "id": "YFlWE2XiucRU", 543 | "outputId": "acf414c7-be13-4e04-df26-897415a4f37e" 544 | }, 545 | "execution_count": null, 546 | "outputs": [ 547 | { 548 | "output_type": "execute_result", 549 | "data": { 550 | "text/plain": [ 551 | "Text(69.0, 0.5, 'Truth')" 552 | ] 553 | }, 554 | "metadata": {}, 555 | "execution_count": 173 556 | }, 557 | { 558 | "output_type": "display_data", 559 | "data": { 560 | "text/plain": [ 561 | "
" 562 | ], 563 | "image/png": "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\n" 564 | }, 565 | "metadata": { 566 | "needs_background": "light" 567 | } 568 | } 569 | ] 570 | }, 571 | { 572 | "cell_type": "code", 573 | "source": [ 574 | "" 575 | ], 576 | "metadata": { 577 | "id": "U_H89_rKwtxu" 578 | }, 579 | "execution_count": null, 580 | "outputs": [] 581 | } 582 | ], 583 | "metadata": { 584 | "colab": { 585 | "name": "train_plate_OCR_ir.ipynb", 586 | "provenance": [], 587 | "authorship_tag": "ABX9TyPQrYJnR64nbEC/oCmeXRi9", 588 | "include_colab_link": true 589 | }, 590 | "kernelspec": { 591 | "display_name": "Python 3", 592 | "name": "python3" 593 | }, 594 | "language_info": { 595 | "name": "python" 596 | }, 597 | "accelerator": "GPU", 598 | "gpuClass": "standard" 599 | }, 600 | "nbformat": 4, 601 | "nbformat_minor": 0 602 | } --------------------------------------------------------------------------------