alessandro trinca tornidor commited on
Commit
2d83d09
·
1 Parent(s): acbbf71

[test] fix test.ipynb, add example1_mask_0_broken.png

Browse files
notebooks/test.ipynb CHANGED
@@ -28,15 +28,15 @@
28
  },
29
  {
30
  "cell_type": "code",
31
- "execution_count": null,
32
  "id": "162314f6-158f-4433-a451-ceb309fb2c1d",
33
  "metadata": {
34
  "execution": {
35
- "iopub.execute_input": "2024-03-07T23:48:11.137862Z",
36
- "iopub.status.busy": "2024-03-07T23:48:11.137487Z",
37
- "iopub.status.idle": "2024-03-07T23:48:12.096091Z",
38
- "shell.execute_reply": "2024-03-07T23:48:12.095269Z",
39
- "shell.execute_reply.started": "2024-03-07T23:48:11.137834Z"
40
  }
41
  },
42
  "outputs": [
@@ -51,9 +51,9 @@
51
  "name": "stderr",
52
  "output_type": "stream",
53
  "text": [
54
- "/home/jovyan/workspace/lisa-on-gpu/lisa_venv/lib/python3.10/site-packages/IPython/core/magics/osm.py:393: UserWarning: This is now an optional IPython functionality, using bookmarks requires you to install the `pickleshare` library.\n",
55
  " bkms = self.shell.db.get('bookmarks', {})\n",
56
- "/home/jovyan/workspace/lisa-on-gpu/lisa_venv/lib/python3.10/site-packages/IPython/core/magics/osm.py:417: UserWarning: This is now an optional IPython functionality, setting dhist requires you to install the `pickleshare` library.\n",
57
  " self.shell.db['dhist'] = compress_dhist(dhist)[-100:]\n"
58
  ]
59
  },
@@ -110,7 +110,7 @@
110
  "httpx 0.27.0\n",
111
  "huggingface-hub 0.21.4\n",
112
  "idna 3.6\n",
113
- "importlib_resources 6.1.2\n",
114
  "iniconfig 2.0.0\n",
115
  "ipykernel 6.29.3\n",
116
  "ipython 8.22.2\n",
@@ -263,23 +263,15 @@
263
  "id": "998e2d14-11f9-49d9-8cd0-320adc9f7e00",
264
  "metadata": {
265
  "execution": {
266
- "iopub.execute_input": "2024-03-07T23:48:12.097879Z",
267
- "iopub.status.busy": "2024-03-07T23:48:12.097533Z",
268
- "iopub.status.idle": "2024-03-07T23:48:14.068033Z",
269
- "shell.execute_reply": "2024-03-07T23:48:14.067196Z",
270
- "shell.execute_reply.started": "2024-03-07T23:48:12.097845Z"
271
  },
272
  "tags": []
273
  },
274
  "outputs": [
275
- {
276
- "name": "stderr",
277
- "output_type": "stream",
278
- "text": [
279
- "INFO:root:try to empty cuda mem cache...\n",
280
- "INFO:root:emptied cuda mem cache!\n"
281
- ]
282
- },
283
  {
284
  "name": "stdout",
285
  "output_type": "stream",
@@ -307,11 +299,11 @@
307
  "id": "26c068e8-596a-4f15-9747-69d316751318",
308
  "metadata": {
309
  "execution": {
310
- "iopub.execute_input": "2024-03-07T23:48:14.070432Z",
311
- "iopub.status.busy": "2024-03-07T23:48:14.070057Z",
312
- "iopub.status.idle": "2024-03-07T23:48:14.239046Z",
313
- "shell.execute_reply": "2024-03-07T23:48:14.238219Z",
314
- "shell.execute_reply.started": "2024-03-07T23:48:14.070406Z"
315
  },
316
  "tags": []
317
  },
@@ -348,11 +340,11 @@
348
  "id": "f5537111-d300-4df6-83eb-6b4b99093922",
349
  "metadata": {
350
  "execution": {
351
- "iopub.execute_input": "2024-03-07T23:48:14.240887Z",
352
- "iopub.status.busy": "2024-03-07T23:48:14.240590Z",
353
- "iopub.status.idle": "2024-03-07T23:48:19.671662Z",
354
- "shell.execute_reply": "2024-03-07T23:48:19.670935Z",
355
- "shell.execute_reply.started": "2024-03-07T23:48:14.240863Z"
356
  }
357
  },
358
  "outputs": [
@@ -385,11 +377,11 @@
385
  "id": "e9f53f3a-1d59-47e2-a0cb-a1a4455c87e1",
386
  "metadata": {
387
  "execution": {
388
- "iopub.execute_input": "2024-03-07T23:48:19.674231Z",
389
- "iopub.status.busy": "2024-03-07T23:48:19.673777Z",
390
- "iopub.status.idle": "2024-03-07T23:48:20.549964Z",
391
- "shell.execute_reply": "2024-03-07T23:48:20.549253Z",
392
- "shell.execute_reply.started": "2024-03-07T23:48:19.674206Z"
393
  }
394
  },
395
  "outputs": [
@@ -424,11 +416,11 @@
424
  "id": "f801e9dd-a21f-474c-9832-28bb83fe2a6e",
425
  "metadata": {
426
  "execution": {
427
- "iopub.execute_input": "2024-03-07T23:48:20.551253Z",
428
- "iopub.status.busy": "2024-03-07T23:48:20.550936Z",
429
- "iopub.status.idle": "2024-03-07T23:52:26.782695Z",
430
- "shell.execute_reply": "2024-03-07T23:52:26.781988Z",
431
- "shell.execute_reply.started": "2024-03-07T23:48:20.551228Z"
432
  }
433
  },
434
  "outputs": [
@@ -444,7 +436,7 @@
444
  "name": "stdout",
445
  "output_type": "stream",
446
  "text": [
447
- "start the creation of the inference function, now is 2024-03-07 23:48:20.552787.\n"
448
  ]
449
  },
450
  {
@@ -457,7 +449,7 @@
457
  {
458
  "data": {
459
  "application/vnd.jupyter.widget-view+json": {
460
- "model_id": "c1d4c4c143f64faea7f9085920d68d77",
461
  "version_major": 2,
462
  "version_minor": 0
463
  },
@@ -500,11 +492,11 @@
500
  "id": "f823bb28-ded6-4a0b-820e-b7ad609de55c",
501
  "metadata": {
502
  "execution": {
503
- "iopub.execute_input": "2024-03-07T23:52:26.784169Z",
504
- "iopub.status.busy": "2024-03-07T23:52:26.783712Z",
505
- "iopub.status.idle": "2024-03-07T23:52:33.130037Z",
506
- "shell.execute_reply": "2024-03-07T23:52:33.129120Z",
507
- "shell.execute_reply.started": "2024-03-07T23:52:26.784142Z"
508
  }
509
  },
510
  "outputs": [
@@ -520,7 +512,7 @@
520
  "INFO:root:preprocess started\n",
521
  "INFO:root:preprocess ended\n",
522
  "INFO:root:image_clip type: <class 'torch.Tensor'>.\n",
523
- "/home/jovyan/workspace/lisa-on-gpu/lisa_venv/lib/python3.10/site-packages/transformers/generation/utils.py:1270: UserWarning: You have modified the pretrained model configuration to control generation. This is a deprecated strategy to control generation and will be removed soon, in a future version. Please use a generation configuration file (see https://huggingface.co/docs/transformers/main_classes/text_generation )\n",
524
  " warnings.warn(\n"
525
  ]
526
  },
@@ -528,7 +520,7 @@
528
  "name": "stdout",
529
  "output_type": "stream",
530
  "text": [
531
- "start inference using inference_fn, now is 2024-03-07 23:52:26.786262.\n",
532
  "input_prompt:Where can the driver see the car speed in this image? Please output segmentation mask..\n"
533
  ]
534
  },
@@ -586,11 +578,11 @@
586
  "id": "0ecbbe4e-bb3d-4703-9512-3d9c85fb8ba9",
587
  "metadata": {
588
  "execution": {
589
- "iopub.execute_input": "2024-03-07T23:52:33.131556Z",
590
- "iopub.status.busy": "2024-03-07T23:52:33.131157Z",
591
- "iopub.status.idle": "2024-03-07T23:52:33.900162Z",
592
- "shell.execute_reply": "2024-03-07T23:52:33.899378Z",
593
- "shell.execute_reply.started": "2024-03-07T23:52:33.131520Z"
594
  }
595
  },
596
  "outputs": [
@@ -620,15 +612,15 @@
620
  },
621
  {
622
  "cell_type": "code",
623
- "execution_count": 14,
624
  "id": "3aa1f30e-42bb-4ca1-beca-e79b6c635d54",
625
  "metadata": {
626
  "execution": {
627
- "iopub.execute_input": "2024-03-08T00:08:05.882850Z",
628
- "iopub.status.busy": "2024-03-08T00:08:05.882442Z",
629
- "iopub.status.idle": "2024-03-08T00:08:06.361525Z",
630
- "shell.execute_reply": "2024-03-08T00:08:06.360837Z",
631
- "shell.execute_reply.started": "2024-03-08T00:08:05.882821Z"
632
  }
633
  },
634
  "outputs": [
@@ -642,16 +634,16 @@
642
  {
643
  "data": {
644
  "text/plain": [
645
- "<matplotlib.image.AxesImage at 0x7fd86abc75e0>"
646
  ]
647
  },
648
- "execution_count": 14,
649
  "metadata": {},
650
  "output_type": "execute_result"
651
  },
652
  {
653
  "data": {
654
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAGiCAYAAAASgEe5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA7QElEQVR4nO3de3hU1b3/8c9M7glkQsAkRAIiKnITFSTGC7Ulh3CpQqWtaA5iy4FqA4ogRY4VtbVCodWKRZQeFM5PvLUVVKpoBCEKIUAwchECKBJQkiAhMyQhyWRm/f7gMHUkcp1kZof363n285C11t7zXeww82HPvtiMMUYAAAAWZQ92AQAAAOeCMAMAACyNMAMAACyNMAMAACyNMAMAACyNMAMAACyNMAMAACyNMAMAACyNMAMAACyNMAMAACwtpMPM3LlzddFFFyk6Olrp6elav359sEsCAAAhJmTDzGuvvaZJkybpkUce0aZNm9S7d29lZWWpvLw82KUBAIAQYgvVB02mp6frmmuu0V//+ldJktfrVVpamiZMmKAHH3wwyNUBAIBQER7sAhpTX1+vwsJCTZs2zddmt9uVmZmp/Pz8Rtepq6tTXV2d72ev16uKigq1bdtWNputyWsGAABnxxijI0eOKDU1VXb7mX9pFJJh5ptvvpHH41FycrJfe3Jysnbs2NHoOjNmzNBjjz3WHOUBAIAmsG/fPnXo0OGM1wvJMHM2pk2bpkmTJvl+djqd6tixo27QEIUrIoiVAQCAk2mQWx/rHbVu3fqs1g/JMNOuXTuFhYWprKzMr72srEwpKSmNrhMVFaWoqKgT2sMVoXAbYQYAgJD1f2fvnu1pISF5NVNkZKT69OmjFStW+Nq8Xq9WrFihjIyMIFYGAABCTUgemZGkSZMmafTo0erbt6/69eunv/zlL6qurtYvfvGLYJcGAABCSMiGmdtuu00HDx7U9OnTVVpaqiuvvFLLly8/4aRgAABwfgvZ+8ycK5fLJYfDoZs0jHNmAAAIYQ3GrVV6U06nU/Hx8We8fkieMwMAAHC6CDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSCDMAAMDSAh5mZsyYoWuuuUatW7dWUlKShg8fruLiYr8xtbW1ysnJUdu2bdWqVSuNGDFCZWVlfmNKSko0dOhQxcbGKikpSVOmTFFDQ0OgywUAABYX8DCzevVq5eTkaN26dcrNzZXb7dbAgQNVXV3tG3P//ffr7bff1t///netXr1aX3/9tW699VZfv8fj0dChQ1VfX6+1a9dq0aJFWrhwoaZPnx7ocgEAgMXZjDGmKV/g4MGDSkpK0urVq9W/f385nU5dcMEFevnll/XTn/5UkrRjxw5169ZN+fn5uvbaa/Xuu+/qxz/+sb7++mslJydLkp577jlNnTpVBw8eVGRk5Clf1+VyyeFw6CYNU7gtoimnCAAAzkGDcWuV3pTT6VR8fPwZr9/k58w4nU5JUmJioiSpsLBQbrdbmZmZvjGXX365OnbsqPz8fElSfn6+evXq5QsykpSVlSWXy6Vt27Y1+jp1dXVyuVx+CwAAaPmaNMx4vV5NnDhR119/vXr27ClJKi0tVWRkpBISEvzGJicnq7S01Dfm20HmeP/xvsbMmDFDDofDt6SlpQV4NgAAIBQ1aZjJycnR1q1b9eqrrzbly0iSpk2bJqfT6Vv27dvX5K8JAACCL7ypNjx+/HgtW7ZMeXl56tChg689JSVF9fX1qqys9Ds6U1ZWppSUFN+Y9evX+23v+NVOx8d8V1RUlKKiogI8CwAAEOoCfmTGGKPx48dryZIlWrlypTp37uzX36dPH0VERGjFihW+tuLiYpWUlCgjI0OSlJGRoS1btqi8vNw3Jjc3V/Hx8erevXugSwYAABYW8CMzOTk5evnll/Xmm2+qdevWvnNcHA6HYmJi5HA4NGbMGE2aNEmJiYmKj4/XhAkTlJGRoWuvvVaSNHDgQHXv3l2jRo3SrFmzVFpaqt/+9rfKycnh6AsAAPAT8EuzbTZbo+0vvvii7rrrLknHbpo3efJkvfLKK6qrq1NWVpaeffZZv6+Q9u7dq3vuuUerVq1SXFycRo8erZkzZyo8/PTyF5dmAwBgDed6aXaT32cmWAgzAABYQ8jfZwYAAKApEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClNXmYmTlzpmw2myZOnOhrq62tVU5Ojtq2batWrVppxIgRKisr81uvpKREQ4cOVWxsrJKSkjRlyhQ1NDQ0dbkAAMBimjTMbNiwQc8//7yuuOIKv/b7779fb7/9tv7+979r9erV+vrrr3Xrrbf6+j0ej4YOHar6+nqtXbtWixYt0sKFCzV9+vSmLBcAAFhQk4WZqqoqZWdn629/+5vatGnja3c6nVqwYIGefPJJ/ehHP1KfPn304osvau3atVq3bp0k6f3339dnn32ml156SVdeeaUGDx6s3//+95o7d67q6+ubqmQAAGBBTRZmcnJyNHToUGVmZvq1FxYWyu12+7Vffvnl6tixo/Lz8yVJ+fn56tWrl5KTk31jsrKy5HK5tG3btkZfr66uTi6Xy28BAAAtX3hTbPTVV1/Vpk2btGHDhhP6SktLFRkZqYSEBL/25ORklZaW+sZ8O8gc7z/e15gZM2boscceC0D1AADASgJ+ZGbfvn267777tHjxYkVHRwd6899r2rRpcjqdvmXfvn3N9toAACB4Ah5mCgsLVV5erquvvlrh4eEKDw/X6tWrNWfOHIWHhys5OVn19fWqrKz0W6+srEwpKSmSpJSUlBOubjr+8/Ex3xUVFaX4+Hi/BQAAtHwBDzMDBgzQli1bVFRU5Fv69u2r7Oxs358jIiK0YsUK3zrFxcUqKSlRRkaGJCkjI0NbtmxReXm5b0xubq7i4+PVvXv3QJcMAAAsLODnzLRu3Vo9e/b0a4uLi1Pbtm197WPGjNGkSZOUmJio+Ph4TZgwQRkZGbr22mslSQMHDlT37t01atQozZo1S6Wlpfrtb3+rnJwcRUVFBbpkAABgYU1yAvCpPPXUU7Lb7RoxYoTq6uqUlZWlZ5991tcfFhamZcuW6Z577lFGRobi4uI0evRo/e53vwtGuQAAIITZjDEm2EU0BZfLJYfDoZs0TOG2iGCXAwAAvkeDcWuV3pTT6Tyrc155NhMAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALC0oNw0DwBwHrGHKeySiyRJnt1fSl6Pr12SwuJbydaqlUxtrTzfHApOjbA0wgwAoGnYbKr98TUqG3VUC/oukiT95/t364L8MB3M8KhPjy8Ubveqj2OvrovdpS21aXrqjVsUU25TVfpR2Uui1eU1p9wJ0aptFyHHxgNq+LLk2LbtYf8ORTjvcQdgAECTOHLbtVo468+6LCLOr91jvAqzff9ZDt/u3+muVoJdamOP1utVSfrt2uEKi/KoS/I3+vrdjkp795Dk9cpW55anZL9MQ8OxoGO8Usv8eGuRzvUOwByZAQA0iW+GHz0hyEg6aZD5bv+3189ufUjZWQt8P7sv96hkwlFJ0kFPjB7ZM0y7vkpSp/aHVLKtvS6d+olMXZ3C2rSR7DZ5DlWc65QQoggzAIAmYfsiVvpB020/whamLhGtJEldIqT3ui2Tuh3rO3x5jfokTJCpDdOvb1ihOm+EFubepLh9x4JSwu4Gxa37XKp3S5JMQ4O8NTVNVyyaFGEGANAk0j6o0+E7a9QmLLbZX7tNWKy+GLjAr+23t+/w/dnpPar3alJ0xBMjSfq8NkmvfnqNEtdEKmFXnSTJZowivziohv1f8ZVViCPMAACahKtTlFrZo4JdRqMc9hj9vJVTkvP/Gkr1xMDNcv+HRzWm3jdu9dG2mrF7sLyvJCnxn5vlra4OTsE4Ke4zAwBoEnVtbIqwhQW7jDMSYQuTwx7jW26Jq1F+739qxRNPqW1uhGx9ewa7RDSCMAMAaDb7G6rUc1228mqDXcnJuY1HebXS+zURer8mQnsbjH6R/JHslf5HZmxRUTLXXyl7bKxkD5MtItJ3/xw0H75mAgA0m/0NMUpcFKdfr/+1Cic8ragQvXXGh0ej9ehDYxR9uEGHekSq/c17Nf+S17TznmQlFyQr/rNKmYgwFf8qTisHP6mZZf+hTeVddH37L/Tm5it1ec52TihuRtxnBgDQJA7enaEND8894VLsbzzHjm60Czvxsu1QUu6pVq0xujAs1m8OdcatrxvqFGGT2n+nT5IOe2r0k7vvU9S/NsgeGytTX3/s/jf4Xud6nxm+ZgIANIl2m2t02Hv0xPawuJAPMpKUFBanjuGtTggrUbYIdY5opQ6N9EnHrqTSfQdVnnOdrlhTo+LnrlT4RR0VluBQ2KUXyxYVmidFWxlfMwEAmoTNG5oH/uuMW5/U2XVJRG3AQ5XTe1QVHo9W9Vwqdw+PImxhemLwJq24KUoHPfHqElGuOQcytXH11QqvtimiWuqwdP+/H9OAs0KYAQA0ifD9h1RQ11ZDY0PrbN9Xjlyo+Y/cqgOD3No98G+nvCPxmcivTVCus4f+3H6T70quMJtdA2Pdkg5JCtO1nT+UOn8o6dijGxb8qoPm/2mY2r20SaauLmC1nE84ZwYA0CTssbHqs/aIHk/aEuxS/HiMVyUNNeoQHhMyl45/46nW9WvvUds3YmX3HPtYjimrV/imnefFvW14NhMAICR5a2q05PMrQi7MhNns6vx/j0EIFe3C4lR84//KfcO/nwT+jeeo7tkzQvX3XCjPZzuDWF3o4wRgAECTiVzpkNt4Tj0Qko7dtO/40j68lZZe+p7SX9mq0vuvk8norfBOacEuMSQRZgAATSZlTaX2NITWOTNW88gFn+nTKc9q0Wtzdcf7a1U5KiPYJYUcvmYCADQZ275SfVafrMsiqoJdiuW1D2+l7NaHFP3wYv33ZdnydDmqC1+JVPTb64NdWtARZgAAsJARrVwaMWaeJOmJnl318cep8hw+HOSqgouvmQAAsKiJiVu04/HLFN7hwmCXElSEGQBA03E3aFddcrCraLFi7ZHaNXyerlpWcl4HGsIMAKDJeFwuvf5ln2CX0aKF2eya3LZAzms7nLePSiDMAACalHNz22CX0OK1CYvV3/70lC5cHaGdL/RV2YTr5B7YV7KHxk0BmxonAAMAmlTCTsltPCFzt92WqltkrBZ0/Fjq+LE0SCppqFLWgt+o89Pb5Kl0Bru8JsWRGQBAk4o74FadcQe7jPNOx/BWKhz7F/X60Kk9r/RW2YTrFJacFOyymgRhBgDQpGJ3lOnT+shgl3FeirVH6o/JRdr5g0UqfPCvCn/drrBLOge7rIAjzAAAmlZdvWoND/wNtjCbXW9dulx3/muVdj5/jcLbpwS7pIAhzAAAcB4Z2fqw9tz8N+2Y1V7hKS3jsnnCDAAA56GdP1qg7u+Uq3pEumwR1v4asEnCzFdffaX//M//VNu2bRUTE6NevXpp48aNvn5jjKZPn6727dsrJiZGmZmZ2rVrl982KioqlJ2drfj4eCUkJGjMmDGqquLZHgBgNd4jVVrh6hHsMvAdYTa7Zqd8ojf+8qR2P9HH0veoCXiYOXz4sK6//npFRETo3Xff1WeffaY///nPatOmjW/MrFmzNGfOHD333HMqKChQXFycsrKyVFv77yerZmdna9u2bcrNzdWyZcuUl5encePGBbpcAEAT89bUaLPz/L07bahLCotT4e1PauffesgeFxfscs6KzRhjArnBBx98UGvWrNFHH33UaL8xRqmpqZo8ebIeeOABSZLT6VRycrIWLlyokSNHavv27erevbs2bNigvn37SpKWL1+uIUOGaP/+/UpNTT1lHS6XSw6HQzdpmMJtnHgGAMG066/p+uLW54NdBk6ixluva5+aqPZ/Xtvsr91g3FqlN+V0OhUfH3/G6wf8yMxbb72lvn376mc/+5mSkpJ01VVX6W9/+5uvf8+ePSotLVVmZqavzeFwKD09Xfn5+ZKk/Px8JSQk+IKMJGVmZsput6ugoKDR162rq5PL5fJbAAChwX6UUzRDXaw9Ur/85TsKT+sQ7FLOWMB/u7744gvNmzdPl156qd577z3dc889uvfee7Vo0SJJUmlpqSQpOdn/DOrk5GRfX2lpqZKS/G/sEx4ersTERN+Y75oxY4YcDodvSUtLC/TUAABnqc12yWO8wS4DpzAh4QvVvBBmucu2Ax5mvF6vrr76aj3xxBO66qqrNG7cOI0dO1bPPfdcoF/Kz7Rp0+R0On3Lvn37mvT1AACnL/qwV14F9KwGNIEwm10f9nhT1YuiFfatc11DXcDDTPv27dW9e3e/tm7duqmkpESSlJJyLO2VlZX5jSkrK/P1paSkqLy83K+/oaFBFRUVvjHfFRUVpfj4eL8FABAaWhcf1k53fbDLwGnK7fFP7fuvbsEu47QFPMxcf/31Ki4u9mvbuXOnOnXqJEnq3LmzUlJStGLFCl+/y+VSQUGBMjIyJEkZGRmqrKxUYWGhb8zKlSvl9XqVnp4e6JIBAE3MVn1U1YZnG1tFhC1Ms3+1QLY+1rikPuBh5v7779e6dev0xBNPaPfu3Xr55Zc1f/585eTkSJJsNpsmTpyoxx9/XG+99Za2bNmiO++8U6mpqRo+fLikY0dyBg0apLFjx2r9+vVas2aNxo8fr5EjR57WlUwAAODcDIqt0+5JkZI99J92HvAwc80112jJkiV65ZVX1LNnT/3+97/XX/7yF2VnZ/vG/OY3v9GECRM0btw4XXPNNaqqqtLy5csVHR3tG7N48WJdfvnlGjBggIYMGaIbbrhB8+fPD3S5AIBmYKprVFTbKdhl4Azl3vCMaof2CXYZpxTw+8yECu4zAwAhxB6m1LWxerFj4/cgQ+ga8NktihhaJlNX12SvEXL3mQEA4ARej/J2XRLsKnAWXun6imoG9w52GSdFmAEANAvjsvbDDM9XSWFxKusT2ufNEGYAAM2i1Reh/YGI7xfdqzLYJZwUYQYA0CziDni5C7BFJcbVBLuEkyLMAACahc0j7gJsUd0SymT/1hXHoYYwAwBoFo5tlSppOCpJ2lZ/VLfu/g+O1FhE6/BayR66kSF0KwMAtCi2gxVac/QiSdKwf9yvmvuStNNdG9yicFpWH7hE3prQ/aqJMAMAaBae8oN6bOPNyquVLpt/UJ64CCXYOTJjBRWfXhDsEk6KMAMAaB7GqNP/hum+LSPl3bNPZemxSgqLDXZVOAWP8SqmzBbsMk6Kp34BAJpNxAefqP2mBHnc9aq9wCjMxv+pQ92aOrsufO+gPMEu5CT4LQIANB+vR55vDkmSEq84GORicCoe49WYf9wjz47dwS7lpAgzAIBmFxYfrx932BrsMnAKnzcc1SWLK6UQf4wjXzMBAJpVeIcLtX1Kml5JfE9STLDLwUk8/82N0u6SYJdxShyZAQA0G1t4uA7Nj9Gunz4rh50gE8rcxqPl/7hW3urqYJdySoQZAECzCWufokcve5sTfy3gw6PRuuiV/cEu47Tw2wQAaDZeRyt1jTgU7DJwGqZuG6GGvfuCXcZpIcwAAJrNka4OXRDG6Zqhzuk9quhXE0L+xN/jCDMAgGbz9c0NamUP3QcW4pj+G3+phCVFwS7jtBFmAADNwhYRqVt6fRrsMnAK33iq1fbZOHlrrfPcLMIMAKDZRNhC+T6ykKRXXN0VvX5XsMs4I4QZAAAg6dgdf5/M/w95Kp3BLuWMEGYAAIAkadCOYer2UOjfJO+7CDMAgOZhvPqmvlWwq8D3+NxdJfP4BfKUlQe7lDNGmAEANAvT0KDVOy4Ldhn4HuN23aHwjzYHu4yzQpgBADQb47UFuwQ0otxTrZoFqTINDcEu5awQZgAAzcbu4oZ5oShr0xg5/rEp2GWcNcIMAKDZdH3+kHrkZ+tX+zN0oKEq2OVAxx4oGb60jYy7PtilnDXCDACg2Xi271KHn36mvTd6dduESZrvTA12See9wjopafWBYJdxTggzAIDmZYxMXZ1i3lyvf/4iU93WjNJb1bGqM+5gV3ZeumvjXWr40hoPlPw+fHkJAAiedZvV8ec2Pd/hR/rDD9NUfkODJl3/vu507JDDHhPs6lq8ne5qpT0TLnmtfWdmwgwAILiMUcO+/Ur43/1K+F/p3bZd9I/rslQyWOrRfZ9mX/RPdYuMDXaVLdLiyn4K37Bd3mAXco74mgkAEFI8hyoU/fZ6Xfbr9WrIPKjxv5ygQTuG6htP9Rltp8Zbr5F7fqQqr3UemNjcPMYuY0ywyzhnhBkAQMgyDQ0KX1ko25BDGj5xkjI+HaFXj7TRYU+N3ObUX40cqo2TnY+6RlV5a/X6uzfI1Fv3KqbjbKYlRLJGuFwuORwO3aRhCrdFBLscAEAg2GwKS7pAtb3SVNsuQkdvr9S6vv9PUbzPn7F+n/xMbUfsk7c2+EeuGoxbq/SmnE6n4uPjz3h9zpkBAFiHMfKUlSuirFwRkhLea6Pfruin2SmfBLsyS/nGU63ov7WRt3ZXsEsJCI69AQAsy3P4sNb9vp9er3IEuxRLebz8B4rL3RbsMgKGMAMAsLTYJQVa+JNB6rLyF9pcH/yvTEJdnXFr1cJ+8laf2QnVoSzgYcbj8ejhhx9W586dFRMToy5duuj3v/+939nSxhhNnz5d7du3V0xMjDIzM7Vrl/+hroqKCmVnZys+Pl4JCQkaM2aMqqq49TUA4ESebcW65M7NmjzqHg3flcUN+E5i9qFeSn15R7DLCKiAh5k//vGPmjdvnv76179q+/bt+uMf/6hZs2bpmWee8Y2ZNWuW5syZo+eee04FBQWKi4tTVlaWar91ElJ2dra2bdum3NxcLVu2THl5eRo3blygywUAtBRej+wffaL6YbX6wdQJumL97arxWv9KnUB7ceVN8hyqCHYZARXwq5l+/OMfKzk5WQsWLPC1jRgxQjExMXrppZdkjFFqaqomT56sBx54QJLkdDqVnJyshQsXauTIkdq+fbu6d++uDRs2qG/fvpKk5cuXa8iQIdq/f79SU0/9LA+uZgKA85s9Olq7Hr9Sr42Yoz5RkcEuJySUe6p1+133KnxFYbBL8XOuVzMF/MjMddddpxUrVmjnzp2SpE8//VQff/yxBg8eLEnas2ePSktLlZmZ6VvH4XAoPT1d+fn5kqT8/HwlJCT4gowkZWZmym63q6CgoNHXraurk8vl8lsAAOcvb22tukwp0EM/+6W6vHa3Fh9pK4+x+r1uz80tW0Yr4uOtwS4j4AJ+afaDDz4ol8ulyy+/XGFhYfJ4PPrDH/6g7OxsSVJpaakkKTk52W+95ORkX19paamSkpL8Cw0PV2Jiom/Md82YMUOPPfZYoKcDALAyY2Q2btUlG6WXn75eT9zeQT/++Vo9kbRJYbbz6xqYBc4UJU408tTVBbuUgAv4nnz99de1ePFivfzyy9q0aZMWLVqkP/3pT1q0aFGgX8rPtGnT5HQ6fcu+fdZ+AigAILAavixRhxlrtXV4mh7/pmewy2l2s/7xE3l2fh7sMppEwMPMlClT9OCDD2rkyJHq1auXRo0apfvvv18zZsyQJKWkpEiSysrK/NYrKyvz9aWkpKi8vNyvv6GhQRUVFb4x3xUVFaX4+Hi/BQCA72rYu0+vvX7TaT0OoaXYXF+rzm8eCXYZTSbgYaampkZ2u/9mw8LC5PUe+56yc+fOSklJ0YoVK3z9LpdLBQUFysjIkCRlZGSosrJShYX/PkFp5cqV8nq9Sk9PD3TJAIDzzEXPbtewnTefF4HGbTy69Z8TZTZtD3YpTSbgYebmm2/WH/7wB/3rX//Sl19+qSVLlujJJ5/UT37yE0mSzWbTxIkT9fjjj+utt97Sli1bdOeddyo1NVXDhw+XJHXr1k2DBg3S2LFjtX79eq1Zs0bjx4/XyJEjT+tKJgAATsZz+LD0c7e6vTxea2pb9knBg7b/RJc9Xix5W25wC/il2UeOHNHDDz+sJUuWqLy8XKmpqbr99ts1ffp0RUYeuzTOGKNHHnlE8+fPV2VlpW644QY9++yzuuyyy3zbqaio0Pjx4/X222/LbrdrxIgRmjNnjlq1anVadXBpNgDgdLgH9lWfmYUt8vlOBxqqNGr0vQr7cFOwSzmpc700m6dmAwDOe2FdL1HZn+ya0+NV9YsyssumOtOgWLu1708zaMdQ2YYcCoknY58MT80GAOAceYp3q92wMP3h4hEqG5Cihmib4vd5tH+IR4t+9D+6PsprqUu5q7y1ytz8n2rzm3B5a78KdjlNjjADAIAkeT3y7N6jdrv3+JouW2LTzMt+qi9/lqTM4Rs0M2VNyB+t8River0zQZdP3CZvTU2wy2kW1omZAAA0N2PkKd6ttMfXavePYtT/0fs0/qv0kL4K6nff9FL333193gQZiTADAMBp8bhcavs/+fpiUJyuWHuXqryhdR7KN55qjSm5QWvv7aeG/S3/q6Vv42smAADOgOdQhS66q06DBt+no6MPa0nvF9Q+LEYRtrCg1PNWdawmvjtKFy3zKHrdTtldLe+qrFMhzAAAcIa81dWK+0eBWi0N13+lj9eRTtG68J7d+keXD5q1jv0NVXpy4lhd+q9jD2EO3S+/mhZhBgCAs2QaGmRbU6T4NdLR1am6+L9/pcgLauT9opV+mrVGjyV90qRHbCaVDFPMii1q2bf9OzXCDAAAAdDw1de6NOdr389Ff7pAPSaN1923vKefxm8O2FdR5Z5q/c/hq/U/eTfpsgVVMrXbznmbVsdN8wAAaEJh8fHydklTRe94HU2y6eiVNerXaa8mpr6vflEnfj7tdFdr2ZFeui52lyJsHj205ycqWdFJEVWS3SO1K6pRxNY98lQ6gzCbpsEdgL8HYQYAEKpsEZGydbtYB9PbyNiOtdW2tcmESx3fdcm2fY9s7ZMku13eL/bKNDQEt+Amxh2AAQCwGOOul9m8Q203N9L3f4u+dfM+nBz3mQEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZ2xmEmLy9PN998s1JTU2Wz2bR06VK/fmOMpk+frvbt2ysmJkaZmZnatWuX35iKigplZ2crPj5eCQkJGjNmjKqqqvzGbN68WTfeeKOio6OVlpamWbNmnfnsAABAi3fGYaa6ulq9e/fW3LlzG+2fNWuW5syZo+eee04FBQWKi4tTVlaWamtrfWOys7O1bds25ebmatmyZcrLy9O4ceN8/S6XSwMHDlSnTp1UWFio2bNn69FHH9X8+fPPYooAAKAlsxljzFmvbLNpyZIlGj58uKRjR2VSU1M1efJkPfDAA5Ikp9Op5ORkLVy4UCNHjtT27dvVvXt3bdiwQX379pUkLV++XEOGDNH+/fuVmpqqefPm6aGHHlJpaakiIyMlSQ8++KCWLl2qHTt2NFpLXV2d6urqfD+7XC6lpaXpJg1TuC3ibKcIAACaWINxa5XelNPpVHx8/BmvH9BzZvbs2aPS0lJlZmb62hwOh9LT05Wfny9Jys/PV0JCgi/ISFJmZqbsdrsKCgp8Y/r37+8LMpKUlZWl4uJiHT58uNHXnjFjhhwOh29JS0sL5NQAAECICmiYKS0tlSQlJyf7tScnJ/v6SktLlZSU5NcfHh6uxMREvzGNbePbr/Fd06ZNk9Pp9C379u079wkBAICQFx7sAgIlKipKUVFRwS4DAAA0s4AemUlJSZEklZWV+bWXlZX5+lJSUlReXu7X39DQoIqKCr8xjW3j268BAAAgBTjMdO7cWSkpKVqxYoWvzeVyqaCgQBkZGZKkjIwMVVZWqrCw0Ddm5cqV8nq9Sk9P943Jy8uT2+32jcnNzVXXrl3Vpk2bQJYMAAAs7ozDTFVVlYqKilRUVCTp2Em/RUVFKikpkc1m08SJE/X444/rrbfe0pYtW3TnnXcqNTXVd8VTt27dNGjQII0dO1br16/XmjVrNH78eI0cOVKpqamSpDvuuEORkZEaM2aMtm3bptdee01PP/20Jk2aFLCJAwCAluGMz5nZuHGjfvjDH/p+Ph4wRo8erYULF+o3v/mNqqurNW7cOFVWVuqGG27Q8uXLFR0d7Vtn8eLFGj9+vAYMGCC73a4RI0Zozpw5vn6Hw6H3339fOTk56tOnj9q1a6fp06f73YsGAABAOsf7zIQyl8slh8PBfWYAAAhxIXWfGQAAgOZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZ2xmEmLy9PN998s1JTU2Wz2bR06VJfn9vt1tSpU9WrVy/FxcUpNTVVd955p77++mu/bVRUVCg7O1vx8fFKSEjQmDFjVFVV5Tdm8+bNuvHGGxUdHa20tDTNmjXr7GYIAABatDMOM9XV1erdu7fmzp17Ql9NTY02bdqkhx9+WJs2bdIbb7yh4uJi3XLLLX7jsrOztW3bNuXm5mrZsmXKy8vTuHHjfP0ul0sDBw5Up06dVFhYqNmzZ+vRRx/V/Pnzz2KKAACgJbMZY8xZr2yzacmSJRo+fPj3jtmwYYP69eunvXv3qmPHjtq+fbu6d++uDRs2qG/fvpKk5cuXa8iQIdq/f79SU1M1b948PfTQQyotLVVkZKQk6cEHH9TSpUu1Y8eO06rN5XLJ4XDoJg1TuC3ibKcIAACaWINxa5XelNPpVHx8/Bmv3+TnzDidTtlsNiUkJEiS8vPzlZCQ4AsykpSZmSm73a6CggLfmP79+/uCjCRlZWWpuLhYhw8fbvR16urq5HK5/BYAANDyNWmYqa2t1dSpU3X77bf7klZpaamSkpL8xoWHhysxMVGlpaW+McnJyX5jjv98fMx3zZgxQw6Hw7ekpaUFejoAACAENVmYcbvd+vnPfy5jjObNm9dUL+Mzbdo0OZ1O37Jv374mf00AABB84U2x0eNBZu/evVq5cqXf918pKSkqLy/3G9/Q0KCKigqlpKT4xpSVlfmNOf7z8THfFRUVpaioqEBOAwAAWEDAj8wcDzK7du3SBx98oLZt2/r1Z2RkqLKyUoWFhb62lStXyuv1Kj093TcmLy9PbrfbNyY3N1ddu3ZVmzZtAl0yAACwsDMOM1VVVSoqKlJRUZEkac+ePSoqKlJJSYncbrd++tOfauPGjVq8eLE8Ho9KS0tVWlqq+vp6SVK3bt00aNAgjR07VuvXr9eaNWs0fvx4jRw5UqmpqZKkO+64Q5GRkRozZoy2bdum1157TU8//bQmTZoUuJkDAIAW4YwvzV61apV++MMfntA+evRoPfroo+rcuXOj63344Ye66aabJB27ad748eP19ttvy263a8SIEZozZ45atWrlG79582bl5ORow4YNateunSZMmKCpU6eedp1cmg0AgDWc66XZ53SfmVBGmAEAwBpC/j4zAAAATYkwAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALI0wAwAALO2Mw0xeXp5uvvlmpaamymazaenSpd879u6775bNZtNf/vIXv/aKigplZ2crPj5eCQkJGjNmjKqqqvzGbN68WTfeeKOio6OVlpamWbNmnWmpAADgPHDGYaa6ulq9e/fW3LlzTzpuyZIlWrdunVJTU0/oy87O1rZt25Sbm6tly5YpLy9P48aN8/W7XC4NHDhQnTp1UmFhoWbPnq1HH31U8+fPP9NyAQBACxd+pisMHjxYgwcPPumYr776ShMmTNB7772noUOH+vVt375dy5cv14YNG9S3b19J0jPPPKMhQ4boT3/6k1JTU7V48WLV19frhRdeUGRkpHr06KGioiI9+eSTfqEHAAAg4OfMeL1ejRo1SlOmTFGPHj1O6M/Pz1dCQoIvyEhSZmam7Ha7CgoKfGP69++vyMhI35isrCwVFxfr8OHDjb5uXV2dXC6X3wIAAFq+gIeZP/7xjwoPD9e9997baH9paamSkpL82sLDw5WYmKjS0lLfmOTkZL8xx38+Pua7ZsyYIYfD4VvS0tLOdSoAAMACAhpmCgsL9fTTT2vhwoWy2WyB3PQpTZs2TU6n07fs27evWV8fAAAER0DDzEcffaTy8nJ17NhR4eHhCg8P1969ezV58mRddNFFkqSUlBSVl5f7rdfQ0KCKigqlpKT4xpSVlfmNOf7z8THfFRUVpfj4eL8FAAC0fAENM6NGjdLmzZtVVFTkW1JTUzVlyhS99957kqSMjAxVVlaqsLDQt97KlSvl9XqVnp7uG5OXlye32+0bk5ubq65du6pNmzaBLBkAAFjcGV/NVFVVpd27d/t+3rNnj4qKipSYmKiOHTuqbdu2fuMjIiKUkpKirl27SpK6deumQYMGaezYsXruuefkdrs1fvx4jRw50ncZ9x133KHHHntMY8aM0dSpU7V161Y9/fTTeuqpp85lrgAAoAU64zCzceNG/fCHP/T9PGnSJEnS6NGjtXDhwtPaxuLFizV+/HgNGDBAdrtdI0aM0Jw5c3z9DodD77//vnJyctSnTx+1a9dO06dP57JsAABwApsxxgS7iKbgcrnkcDh0k4Yp3BYR7HIAAMD3aDBurdKbcjqdZ3XOK89mAgAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlkaYAQAAlhYe7AKaijFGktQgt2SCXAwAAPheDXJL+vdn95lqsWHm0KFDkqSP9U6QKwEAAKfjyJEjcjgcZ7xeiw0ziYmJkqSSkpKz+ouxGpfLpbS0NO3bt0/x8fHBLqfJMd+W73ybM/Nt2ZjvyRljdOTIEaWmpp7V67XYMGO3HzsdyOFwnBe/OMfFx8cz3xbsfJuvdP7Nmfm2bMz3+53LgQdOAAYAAJZGmAEAAJbWYsNMVFSUHnnkEUVFRQW7lGbBfFu2822+0vk3Z+bbsjHfpmUzZ3sdFAAAQAhosUdmAADA+YEwAwAALI0wAwAALI0wAwAALI0wAwAALK1Fhpm5c+fqoosuUnR0tNLT07V+/fpgl3RWZsyYoWuuuUatW7dWUlKShg8fruLiYr8xN910k2w2m99y9913+40pKSnR0KFDFRsbq6SkJE2ZMkUNDQ3NOZXT8uijj54wl8svv9zXX1tbq5ycHLVt21atWrXSiBEjVFZW5rcNq8xVki666KIT5muz2ZSTkyOpZezbvLw83XzzzUpNTZXNZtPSpUv9+o0xmj59utq3b6+YmBhlZmZq165dfmMqKiqUnZ2t+Ph4JSQkaMyYMaqqqvIbs3nzZt14442Kjo5WWlqaZs2a1dRTa9TJ5ut2uzV16lT16tVLcXFxSk1N1Z133qmvv/7abxuN/V7MnDnTb4wV5itJd9111wlzGTRokN+YlrJ/JTX679lms2n27Nm+MVbav6fzGRSo9+VVq1bp6quvVlRUlC655BItXLjwzIo1Lcyrr75qIiMjzQsvvGC2bdtmxo4daxISEkxZWVmwSztjWVlZ5sUXXzRbt241RUVFZsiQIaZjx46mqqrKN+YHP/iBGTt2rDlw4IBvcTqdvv6GhgbTs2dPk5mZaT755BPzzjvvmHbt2plp06YFY0on9cgjj5gePXr4zeXgwYO+/rvvvtukpaWZFStWmI0bN5prr73WXHfddb5+K83VGGPKy8v95pqbm2skmQ8//NAY0zL27TvvvGMeeugh88YbbxhJZsmSJX79M2fONA6HwyxdutR8+umn5pZbbjGdO3c2R48e9Y0ZNGiQ6d27t1m3bp356KOPzCWXXGJuv/12X7/T6TTJyckmOzvbbN261bzyyismJibGPP/88801TZ+TzbeystJkZmaa1157zezYscPk5+ebfv36mT59+vhto1OnTuZ3v/ud337/9r95q8zXGGNGjx5tBg0a5DeXiooKvzEtZf8aY/zmeeDAAfPCCy8Ym81mPv/8c98YK+3f0/kMCsT78hdffGFiY2PNpEmTzGeffWaeeeYZExYWZpYvX37atba4MNOvXz+Tk5Pj+9nj8ZjU1FQzY8aMIFYVGOXl5UaSWb16ta/tBz/4gbnvvvu+d5133nnH2O12U1pa6mubN2+eiY+PN3V1dU1Z7hl75JFHTO/evRvtq6ysNBEREebvf/+7r2379u1GksnPzzfGWGuujbnvvvtMly5djNfrNca0rH1rjDnhzd/r9ZqUlBQze/ZsX1tlZaWJiooyr7zyijHGmM8++8xIMhs2bPCNeffdd43NZjNfffWVMcaYZ5991rRp08ZvzlOnTjVdu3Zt4hmdXGMfdt+1fv16I8ns3bvX19apUyfz1FNPfe86Vprv6NGjzbBhw753nZa+f4cNG2Z+9KMf+bVZdf8ac+JnUKDel3/zm9+YHj16+L3WbbfdZrKysk67thb1NVN9fb0KCwuVmZnpa7Pb7crMzFR+fn4QKwsMp9Mp6d9PBD9u8eLFateunXr27Klp06appqbG15efn69evXopOTnZ15aVlSWXy6Vt27Y1T+FnYNeuXUpNTdXFF1+s7OxslZSUSJIKCwvldrv99u3ll1+ujh07+vat1eb6bfX19XrppZf0y1/+Ujabzdfekvbtd+3Zs0elpaV++9ThcCg9Pd1vnyYkJKhv376+MZmZmbLb7SooKPCN6d+/vyIjI31jsrKyVFxcrMOHDzfTbM6O0+mUzWZTQkKCX/vMmTPVtm1bXXXVVZo9e7bfIXmrzXfVqlVKSkpS165ddc899+jQoUO+vpa8f8vKyvSvf/1LY8aMOaHPqvv3u59BgXpfzs/P99vG8TFn8rndop6a/c0338jj8fj9pUlScnKyduzYEaSqAsPr9WrixIm6/vrr1bNnT1/7HXfcoU6dOik1NVWbN2/W1KlTVVxcrDfeeEOSVFpa2ujfx/G+UJKenq6FCxeqa9euOnDggB577DHdeOON2rp1q0pLSxUZGXnCm35ycrJvHlaa63ctXbpUlZWVuuuuu3xtLWnfNuZ4jY3N4dv7NCkpya8/PDxciYmJfmM6d+58wjaO97Vp06ZJ6j9XtbW1mjp1qm6//Xa/pwrfe++9uvrqq5WYmKi1a9dq2rRpOnDggJ588klJ1prvoEGDdOutt6pz5876/PPP9d///d8aPHiw8vPzFRYW1qL376JFi9S6dWvdeuutfu1W3b+NfQYF6n35+8a4XC4dPXpUMTExp6yvRYWZliwnJ0dbt27Vxx9/7Nc+btw435979eql9u3ba8CAAfr888/VpUuX5i7znAwePNj35yuuuELp6enq1KmTXn/99dP6ZbayBQsWaPDgwUpNTfW1taR9C39ut1s///nPZYzRvHnz/PomTZrk+/MVV1yhyMhI/epXv9KMGTMs91yfkSNH+v7cq1cvXXHFFerSpYtWrVqlAQMGBLGypvfCCy8oOztb0dHRfu1W3b/f9xkUKlrU10zt2rVTWFjYCWdSl5WVKSUlJUhVnbvx48dr2bJl+vDDD9WhQ4eTjk1PT5ck7d69W5KUkpLS6N/H8b5QlpCQoMsuu0y7d+9WSkqK6uvrVVlZ6Tfm2/vWqnPdu3evPvjgA/3Xf/3XSce1pH0r/bvGk/17TUlJUXl5uV9/Q0ODKioqLLvfjweZvXv3Kjc31++oTGPS09PV0NCgL7/8UpL15vttF198sdq1a+f3O9zS9q8kffTRRyouLj7lv2nJGvv3+z6DAvW+/H1j4uPjT/s/si0qzERGRqpPnz5asWKFr83r9WrFihXKyMgIYmVnxxij8ePHa8mSJVq5cuUJhx4bU1RUJElq3769JCkjI0Nbtmzxe8M4/gbavXv3Jqk7UKqqqvT555+rffv26tOnjyIiIvz2bXFxsUpKSnz71qpzffHFF5WUlKShQ4eedFxL2reS1LlzZ6WkpPjtU5fLpYKCAr99WllZqcLCQt+YlStXyuv1+sJdRkaG8vLy5Ha7fWNyc3PVtWvXkPsK4niQ2bVrlz744AO1bdv2lOsUFRXJbrf7vo6x0ny/a//+/Tp06JDf73BL2r/HLViwQH369FHv3r1POTaU9++pPoMC9b6ckZHht43jY87oc/vszmkOXa+++qqJiooyCxcuNJ999pkZN26cSUhI8DuT2iruuece43A4zKpVq/wu46upqTHGGLN7927zu9/9zmzcuNHs2bPHvPnmm+biiy82/fv3923j+GVxAwcONEVFRWb58uXmggsuCKnLd4+bPHmyWbVqldmzZ49Zs2aNyczMNO3atTPl5eXGmGOXAHbs2NGsXLnSbNy40WRkZJiMjAzf+laa63Eej8d07NjRTJ061a+9pezbI0eOmE8++cR88sknRpJ58sknzSeffOK7emfmzJkmISHBvPnmm2bz5s1m2LBhjV6afdVVV5mCggLz8ccfm0svvdTv0t3KykqTnJxsRo0aZbZu3WpeffVVExsbG5RLWU823/r6enPLLbeYDh06mKKiIr9/08ev6li7dq156qmnTFFRkfn888/NSy+9ZC644AJz5513Wm6+R44cMQ888IDJz883e/bsMR988IG5+uqrzaWXXmpqa2t922gp+/c4p9NpYmNjzbx5805Y32r791SfQcYE5n35+KXZU6ZMMdu3bzdz587l0mxjjHnmmWdMx44dTWRkpOnXr59Zt25dsEs6K5IaXV588UVjjDElJSWmf//+JjEx0URFRZlLLrnETJkyxe9eJMYY8+WXX5rBgwebmJgY065dOzN58mTjdruDMKOTu+2220z79u1NZGSkufDCC81tt91mdu/e7es/evSo+fWvf23atGljYmNjzU9+8hNz4MABv21YZa7Hvffee0aSKS4u9mtvKfv2ww8/bPR3ePTo0caYY5dnP/zwwyY5OdlERUWZAQMGnPB3cejQIXP77bebVq1amfj4ePOLX/zCHDlyxG/Mp59+am644QYTFRVlLrzwQjNz5szmmqKfk813z5493/tv+vi9hQoLC016erpxOBwmOjradOvWzTzxxBN+H/7GWGO+NTU1ZuDAgeaCCy4wERERplOnTmbs2LEn/Meypezf455//nkTExNjKisrT1jfavv3VJ9BxgTuffnDDz80V155pYmMjDQXX3yx32ucDtv/FQwAAGBJLeqcGQAAcP4hzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEv7/z5IrG/Xfac+AAAAAElFTkSuQmCC",
655
  "text/plain": [
656
  "<Figure size 640x480 with 1 Axes>"
657
  ]
@@ -676,21 +668,21 @@
676
  "example1_path = str(expected_images_path / f\"example{idx_example+1}_mask_0.png\")\n",
677
  "mod_path = str(expected_images_path / \"mod.png\")\n",
678
  "expected_mask = cv2.imread(mod_path, cv2.IMREAD_GRAYSCALE)\n",
679
- "print(f\"img check type:{type(mask_from_disk)}, {mask_from_disk.shape}. {mask_from_disk.dtype}.\")\n",
680
- "plt.imshow(mask_from_disk)"
681
  ]
682
  },
683
  {
684
  "cell_type": "code",
685
- "execution_count": 24,
686
  "id": "362260d2-38e5-4cc8-83f1-5a785450e674",
687
  "metadata": {
688
  "execution": {
689
- "iopub.execute_input": "2024-03-08T00:22:04.723165Z",
690
- "iopub.status.busy": "2024-03-08T00:22:04.722759Z",
691
- "iopub.status.idle": "2024-03-08T00:22:04.803011Z",
692
- "shell.execute_reply": "2024-03-08T00:22:04.801905Z",
693
- "shell.execute_reply.started": "2024-03-08T00:22:04.723136Z"
694
  }
695
  },
696
  "outputs": [
@@ -698,27 +690,15 @@
698
  "name": "stderr",
699
  "output_type": "stream",
700
  "text": [
701
- "INFO:root:diff 1 vs 1b: 0.38!\n",
702
- "ERROR:root:failed equality assertion!\n",
703
- "INFO:root:assert now that perc diff between ndarrays is minor than 0.02.\n",
704
- "ERROR:root:failed all assertions, writing debug files...\n",
705
- "INFO:root:Written files with prefix 'broken_test_example1_20240308002204' in /home/jovyan/workspace/lisa-on-gpu/tests/imgs folder.\n"
706
  ]
707
  },
708
  {
709
- "ename": "AssertionError",
710
- "evalue": "",
711
- "output_type": "error",
712
- "traceback": [
713
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
714
- "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)",
715
- "Cell \u001b[0;32mIn[24], line 10\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 10\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m np\u001b[38;5;241m.\u001b[39marray_equal(output_mask, expected_mask)\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAssertionError\u001b[39;00m:\n",
716
- "\u001b[0;31mAssertionError\u001b[0m: ",
717
- "\nDuring handling of the above exception, another exception occurred:\n",
718
- "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)",
719
- "Cell \u001b[0;32mIn[24], line 33\u001b[0m\n\u001b[1;32m 31\u001b[0m dst\u001b[38;5;241m.\u001b[39mwrite(output_str)\n\u001b[1;32m 32\u001b[0m logging\u001b[38;5;241m.\u001b[39minfo(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mWritten files with prefix \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mprefix\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m in \u001b[39m\u001b[38;5;132;01m{\u001b[39;00moutput_folder\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m folder.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 33\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ae\n\u001b[1;32m 34\u001b[0m logging\u001b[38;5;241m.\u001b[39minfo(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mend\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 35\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mend\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
720
- "Cell \u001b[0;32mIn[24], line 15\u001b[0m\n\u001b[1;32m 13\u001b[0m logging\u001b[38;5;241m.\u001b[39merror(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfailed equality assertion!\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 14\u001b[0m logging\u001b[38;5;241m.\u001b[39minfo(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124massert now that perc diff between ndarrays is minor than \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmax_diff\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 15\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m perc \u001b[38;5;241m<\u001b[39m max_diff\n\u001b[1;32m 16\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAssertionError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m ae:\n\u001b[1;32m 17\u001b[0m logging\u001b[38;5;241m.\u001b[39merror(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfailed all assertions, writing debug files...\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
721
- "\u001b[0;31mAssertionError\u001b[0m: "
722
  ]
723
  }
724
  ],
 
28
  },
29
  {
30
  "cell_type": "code",
31
+ "execution_count": 1,
32
  "id": "162314f6-158f-4433-a451-ceb309fb2c1d",
33
  "metadata": {
34
  "execution": {
35
+ "iopub.execute_input": "2024-03-08T00:46:04.470028Z",
36
+ "iopub.status.busy": "2024-03-08T00:46:04.469654Z",
37
+ "iopub.status.idle": "2024-03-08T00:46:05.404512Z",
38
+ "shell.execute_reply": "2024-03-08T00:46:05.403696Z",
39
+ "shell.execute_reply.started": "2024-03-08T00:46:04.470001Z"
40
  }
41
  },
42
  "outputs": [
 
51
  "name": "stderr",
52
  "output_type": "stream",
53
  "text": [
54
+ "/home/jovyan/workspace/lisa-on-gpu/venv/lib/python3.10/site-packages/IPython/core/magics/osm.py:393: UserWarning: This is now an optional IPython functionality, using bookmarks requires you to install the `pickleshare` library.\n",
55
  " bkms = self.shell.db.get('bookmarks', {})\n",
56
+ "/home/jovyan/workspace/lisa-on-gpu/venv/lib/python3.10/site-packages/IPython/core/magics/osm.py:417: UserWarning: This is now an optional IPython functionality, setting dhist requires you to install the `pickleshare` library.\n",
57
  " self.shell.db['dhist'] = compress_dhist(dhist)[-100:]\n"
58
  ]
59
  },
 
110
  "httpx 0.27.0\n",
111
  "huggingface-hub 0.21.4\n",
112
  "idna 3.6\n",
113
+ "importlib_resources 6.1.3\n",
114
  "iniconfig 2.0.0\n",
115
  "ipykernel 6.29.3\n",
116
  "ipython 8.22.2\n",
 
263
  "id": "998e2d14-11f9-49d9-8cd0-320adc9f7e00",
264
  "metadata": {
265
  "execution": {
266
+ "iopub.execute_input": "2024-03-08T00:46:14.402177Z",
267
+ "iopub.status.busy": "2024-03-08T00:46:14.401792Z",
268
+ "iopub.status.idle": "2024-03-08T00:46:14.406566Z",
269
+ "shell.execute_reply": "2024-03-08T00:46:14.405847Z",
270
+ "shell.execute_reply.started": "2024-03-08T00:46:14.402150Z"
271
  },
272
  "tags": []
273
  },
274
  "outputs": [
 
 
 
 
 
 
 
 
275
  {
276
  "name": "stdout",
277
  "output_type": "stream",
 
299
  "id": "26c068e8-596a-4f15-9747-69d316751318",
300
  "metadata": {
301
  "execution": {
302
+ "iopub.execute_input": "2024-03-08T00:46:14.603885Z",
303
+ "iopub.status.busy": "2024-03-08T00:46:14.603548Z",
304
+ "iopub.status.idle": "2024-03-08T00:46:16.279258Z",
305
+ "shell.execute_reply": "2024-03-08T00:46:16.278546Z",
306
+ "shell.execute_reply.started": "2024-03-08T00:46:14.603860Z"
307
  },
308
  "tags": []
309
  },
 
340
  "id": "f5537111-d300-4df6-83eb-6b4b99093922",
341
  "metadata": {
342
  "execution": {
343
+ "iopub.execute_input": "2024-03-08T00:46:16.280871Z",
344
+ "iopub.status.busy": "2024-03-08T00:46:16.280514Z",
345
+ "iopub.status.idle": "2024-03-08T00:46:20.989980Z",
346
+ "shell.execute_reply": "2024-03-08T00:46:20.989198Z",
347
+ "shell.execute_reply.started": "2024-03-08T00:46:16.280835Z"
348
  }
349
  },
350
  "outputs": [
 
377
  "id": "e9f53f3a-1d59-47e2-a0cb-a1a4455c87e1",
378
  "metadata": {
379
  "execution": {
380
+ "iopub.execute_input": "2024-03-08T00:46:20.991956Z",
381
+ "iopub.status.busy": "2024-03-08T00:46:20.990944Z",
382
+ "iopub.status.idle": "2024-03-08T00:46:21.804419Z",
383
+ "shell.execute_reply": "2024-03-08T00:46:21.803753Z",
384
+ "shell.execute_reply.started": "2024-03-08T00:46:20.991889Z"
385
  }
386
  },
387
  "outputs": [
 
416
  "id": "f801e9dd-a21f-474c-9832-28bb83fe2a6e",
417
  "metadata": {
418
  "execution": {
419
+ "iopub.execute_input": "2024-03-08T00:46:21.806098Z",
420
+ "iopub.status.busy": "2024-03-08T00:46:21.805805Z",
421
+ "iopub.status.idle": "2024-03-08T00:50:27.785058Z",
422
+ "shell.execute_reply": "2024-03-08T00:50:27.784256Z",
423
+ "shell.execute_reply.started": "2024-03-08T00:46:21.806073Z"
424
  }
425
  },
426
  "outputs": [
 
436
  "name": "stdout",
437
  "output_type": "stream",
438
  "text": [
439
+ "start the creation of the inference function, now is 2024-03-08 00:46:21.807791.\n"
440
  ]
441
  },
442
  {
 
449
  {
450
  "data": {
451
  "application/vnd.jupyter.widget-view+json": {
452
+ "model_id": "fde79a9d3d054e788830e33095be9d9a",
453
  "version_major": 2,
454
  "version_minor": 0
455
  },
 
492
  "id": "f823bb28-ded6-4a0b-820e-b7ad609de55c",
493
  "metadata": {
494
  "execution": {
495
+ "iopub.execute_input": "2024-03-08T00:50:27.786869Z",
496
+ "iopub.status.busy": "2024-03-08T00:50:27.786194Z",
497
+ "iopub.status.idle": "2024-03-08T00:50:34.626772Z",
498
+ "shell.execute_reply": "2024-03-08T00:50:34.625943Z",
499
+ "shell.execute_reply.started": "2024-03-08T00:50:27.786844Z"
500
  }
501
  },
502
  "outputs": [
 
512
  "INFO:root:preprocess started\n",
513
  "INFO:root:preprocess ended\n",
514
  "INFO:root:image_clip type: <class 'torch.Tensor'>.\n",
515
+ "/home/jovyan/workspace/lisa-on-gpu/venv/lib/python3.10/site-packages/transformers/generation/utils.py:1270: UserWarning: You have modified the pretrained model configuration to control generation. This is a deprecated strategy to control generation and will be removed soon, in a future version. Please use a generation configuration file (see https://huggingface.co/docs/transformers/main_classes/text_generation )\n",
516
  " warnings.warn(\n"
517
  ]
518
  },
 
520
  "name": "stdout",
521
  "output_type": "stream",
522
  "text": [
523
+ "start inference using inference_fn, now is 2024-03-08 00:50:27.788806.\n",
524
  "input_prompt:Where can the driver see the car speed in this image? Please output segmentation mask..\n"
525
  ]
526
  },
 
578
  "id": "0ecbbe4e-bb3d-4703-9512-3d9c85fb8ba9",
579
  "metadata": {
580
  "execution": {
581
+ "iopub.execute_input": "2024-03-08T00:50:34.627977Z",
582
+ "iopub.status.busy": "2024-03-08T00:50:34.627663Z",
583
+ "iopub.status.idle": "2024-03-08T00:50:35.357599Z",
584
+ "shell.execute_reply": "2024-03-08T00:50:35.356650Z",
585
+ "shell.execute_reply.started": "2024-03-08T00:50:34.627953Z"
586
  }
587
  },
588
  "outputs": [
 
612
  },
613
  {
614
  "cell_type": "code",
615
+ "execution_count": 12,
616
  "id": "3aa1f30e-42bb-4ca1-beca-e79b6c635d54",
617
  "metadata": {
618
  "execution": {
619
+ "iopub.execute_input": "2024-03-08T00:52:41.894276Z",
620
+ "iopub.status.busy": "2024-03-08T00:52:41.893893Z",
621
+ "iopub.status.idle": "2024-03-08T00:52:42.355869Z",
622
+ "shell.execute_reply": "2024-03-08T00:52:42.354956Z",
623
+ "shell.execute_reply.started": "2024-03-08T00:52:41.894250Z"
624
  }
625
  },
626
  "outputs": [
 
634
  {
635
  "data": {
636
  "text/plain": [
637
+ "<matplotlib.image.AxesImage at 0x7effc54a4f40>"
638
  ]
639
  },
640
+ "execution_count": 12,
641
  "metadata": {},
642
  "output_type": "execute_result"
643
  },
644
  {
645
  "data": {
646
+ "image/png": "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I8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLq3OYWbFiha6//nolJSXJZrNp4cKFx+175513ymaz6bnnnvOZX1JSooyMDEVHRysmJkYjR45UWVmZT58NGzbommuuUXh4uJKTkzV9+vS6lgoAAM4CdQ4zhw4dUvfu3TVz5swT9luwYIFWr16tpKSkY9oyMjK0efNmZWVladGiRVqxYoVGjx7tbXe5XOrbt6/atm2r3NxcPfXUU3rkkUc0e/bsupYLAACauOC6LtC/f3/179//hH2+//57jRs3Th9//LEGDhzo07ZlyxYtXrxYa9euVc+ePSVJL7zwggYMGKCnn35aSUlJmj9/vqqqqvTqq68qNDRUXbt2VV5enp555hmf0AMAAOD3a2Y8Ho+GDRumiRMnqmvXrse0Z2dnKyYmxhtkJCktLU12u105OTnePr1791ZoaKi3T3p6uvLz83XgwIFat1tZWSmXy+UzAQCAps/vYebJJ59UcHCw7rrrrlrbCwsLFR8f7zMvODhYsbGxKiws9PZJSEjw6XP056N9fmnq1KlyOBzeKTk5+UyHAgAALMCvYSY3N1fPP/+85s6dK5vN5s9Vn9TkyZPldDq90+7duxt0+wAAIDD8GmY+//xzFRcXq02bNgoODlZwcLB27dqle++9V+edd54kKTExUcXFxT7L1dTUqKSkRImJid4+RUVFPn2O/ny0zy+FhYUpOjraZwIAAE2fX8PMsGHDtGHDBuXl5XmnpKQkTZw4UR9//LEkKTU1VaWlpcrNzfUut3TpUnk8HqWkpHj7rFixQtXV1d4+WVlZ6tixo1q0aOHPkgEAgMXV+W6msrIy7dixw/vzzp07lZeXp9jYWLVp00ZxcXE+/UNCQpSYmKiOHTtKkjp37qx+/fpp1KhReumll1RdXa2xY8dq6NCh3tu4b7/9dj366KMaOXKkJk2apE2bNun555/Xs88+eyZjBQAATVCdw8y6dev061//2vvzhAkTJEkjRozQ3LlzT2kd8+fP19ixY9WnTx/Z7XYNGTJEM2bM8LY7HA598sknyszMVI8ePdSyZUtNmTKF27IBAMAxbMYYE+gi6oPL5ZLD4dC1GqRgW0igywEAAMdRY6q1TO/J6XSe1jWvvJsJAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYWnCgC6gvxhhJUo2qJRPgYgAAwHHVqFrST9/dddVkw8z+/fslSV/owwBXAgAATsXBgwflcDjqvFyTDTOxsbGSpIKCgtP6i7Eal8ul5ORk7d69W9HR0YEup94x3qbvbBsz423aGO+JGWN08OBBJSUlndb2mmyYsduPXA7kcDjOil+co6KjoxlvE3a2jVc6+8bMeJs2xnt8Z3LggQuAAQCApRFmAACApTXZMBMWFqaHH35YYWFhgS6lQTDepu1sG6909o2Z8TZtjLd+2czp3gcFAADQCDTZIzMAAODsQJgBAACWRpgBAACWRpgBAACWRpgBAACW1iTDzMyZM3XeeecpPDxcKSkpWrNmTaBLOi1Tp07V5ZdfrubNmys+Pl6DBw9Wfn6+T59rr71WNpvNZ7rzzjt9+hQUFGjgwIGKjIxUfHy8Jk6cqJqamoYcyil55JFHjhlLp06dvO0VFRXKzMxUXFycmjVrpiFDhqioqMhnHVYZqySdd955x4zXZrMpMzNTUtPYtytWrND111+vpKQk2Ww2LVy40KfdGKMpU6aoVatWioiIUFpamrZv3+7Tp6SkRBkZGYqOjlZMTIxGjhypsrIynz4bNmzQNddco/DwcCUnJ2v69On1PbRanWi81dXVmjRpkrp166aoqCglJSVp+PDh+uGHH3zWUdvvxbRp03z6WGG8knTHHXccM5Z+/fr59Gkq+1dSrf+ebTabnnrqKW8fK+3fU/kO8tfn8rJly3TZZZcpLCxMHTp00Ny5c+tWrGli3nrrLRMaGmpeffVVs3nzZjNq1CgTExNjioqKAl1anaWnp5vXXnvNbNq0yeTl5ZkBAwaYNm3amLKyMm+fX/3qV2bUqFFm79693snpdHrba2pqzEUXXWTS0tLMl19+aT788EPTsmVLM3ny5EAM6YQefvhh07VrV5+x7Nu3z9t+5513muTkZLNkyRKzbt06c8UVV5grr7zS226lsRpjTHFxsc9Ys7KyjCTz2WefGWOaxr798MMPzQMPPGDeffddI8ksWLDAp33atGnG4XCYhQsXmq+++srccMMNpl27dubw4cPePv369TPdu3c3q1evNp9//rnp0KGDue2227ztTqfTJCQkmIyMDLNp0ybz5ptvmoiICPPyyy831DC9TjTe0tJSk5aWZt5++22zdetWk52dbXr16mV69Ojhs462bduav/zlLz77/ef/5q0yXmOMGTFihOnXr5/PWEpKSnz6NJX9a4zxGefevXvNq6++amw2m/nmm2+8fay0f0/lO8gfn8vffvutiYyMNBMmTDBff/21eeGFF0xQUJBZvHjxKdfa5MJMr169TGZmpvdnt9ttkpKSzNSpUwNYlX8UFxcbSWb58uXeeb/61a/M3XfffdxlPvzwQ2O3201hYaF33qxZs0x0dLSprKysz3Lr7OGHHzbdu3evta20tNSEhISYf/7zn955W7ZsMZJMdna2McZaY63N3Xffbdq3b288Ho8xpmntW2PMMR/+Ho/HJCYmmqeeeso7r7S01ISFhZk333zTGGPM119/bSSZtWvXevt89NFHxmazme+//94YY8yLL75oWrRo4TPmSZMmmY4dO9bziE6sti+7X1qzZo2RZHbt2uWd17ZtW/Pss88edxkrjXfEiBFm0KBBx12mqe/fQYMGmeuuu85nnlX3rzHHfgf563P5vvvuM127dvXZ1q233mrS09NPubYmdZqpqqpKubm5SktL886z2+1KS0tTdnZ2ACvzD6fTKemnN4IfNX/+fLVs2VIXXXSRJk+erPLycm9bdna2unXrpoSEBO+89PR0uVwubd68uWEKr4Pt27crKSlJ559/vjIyMlRQUCBJys3NVXV1tc++7dSpk9q0aePdt1Yb689VVVXp9ddf1x/+8AfZbDbv/Ka0b39p586dKiws9NmnDodDKSkpPvs0JiZGPXv29PZJS0uT3W5XTk6Ot0/v3r0VGhrq7ZOenq78/HwdOHCggUZzepxOp2w2m2JiYnzmT5s2TXFxcbr00kv11FNP+RySt9p4ly1bpvj4eHXs2FFjxozR/v37vW1Nef8WFRXpP//5j0aOHHlMm1X37y+/g/z1uZydne2zjqN9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",
647
  "text/plain": [
648
  "<Figure size 640x480 with 1 Axes>"
649
  ]
 
668
  "example1_path = str(expected_images_path / f\"example{idx_example+1}_mask_0.png\")\n",
669
  "mod_path = str(expected_images_path / \"mod.png\")\n",
670
  "expected_mask = cv2.imread(mod_path, cv2.IMREAD_GRAYSCALE)\n",
671
+ "print(f\"img check type:{type(expected_mask)}, {expected_mask.shape}. {expected_mask.dtype}.\")\n",
672
+ "plt.imshow(expected_mask)"
673
  ]
674
  },
675
  {
676
  "cell_type": "code",
677
+ "execution_count": 13,
678
  "id": "362260d2-38e5-4cc8-83f1-5a785450e674",
679
  "metadata": {
680
  "execution": {
681
+ "iopub.execute_input": "2024-03-08T00:52:42.357791Z",
682
+ "iopub.status.busy": "2024-03-08T00:52:42.357362Z",
683
+ "iopub.status.idle": "2024-03-08T00:52:42.368583Z",
684
+ "shell.execute_reply": "2024-03-08T00:52:42.367956Z",
685
+ "shell.execute_reply.started": "2024-03-08T00:52:42.357754Z"
686
  }
687
  },
688
  "outputs": [
 
690
  "name": "stderr",
691
  "output_type": "stream",
692
  "text": [
693
+ "INFO:root:perc of different pixels between output_mask and expected_mask: 0.00!\n",
694
+ "INFO:root:end\n"
 
 
 
695
  ]
696
  },
697
  {
698
+ "name": "stdout",
699
+ "output_type": "stream",
700
+ "text": [
701
+ "end\n"
 
 
 
 
 
 
 
 
 
702
  ]
703
  }
704
  ],
tests/imgs/example1_mask_0_broken.png ADDED

Git LFS Details

  • SHA256: 0c0b625578f0ec69aac767a855f9d7087889b8a2e348ef00027400dfd6f48317
  • Pointer size: 130 Bytes
  • Size of remote file: 63.8 kB