Onur Bayramoglu commited on
Commit
2b98f10
1 Parent(s): 9269c5a

Add app file

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .DS_Store +0 -0
  2. base_dir.h5 +3 -0
  3. base_model.ipynb +363 -0
  4. custom.css +57 -0
  5. dataset/.DS_Store +0 -0
  6. dataset/Backpack/.DS_Store +0 -0
  7. dataset/Backpack/Backpack_1.jpg +0 -0
  8. dataset/Backpack/Backpack_10.jpg +0 -0
  9. dataset/Backpack/Backpack_100.jpg +0 -0
  10. dataset/Backpack/Backpack_101.jpg +0 -0
  11. dataset/Backpack/Backpack_102.jpg +0 -0
  12. dataset/Backpack/Backpack_103.jpg +0 -0
  13. dataset/Backpack/Backpack_104.jpg +0 -0
  14. dataset/Backpack/Backpack_105.jpg +0 -0
  15. dataset/Backpack/Backpack_106.jpg +0 -0
  16. dataset/Backpack/Backpack_107.jpg +0 -0
  17. dataset/Backpack/Backpack_108.jpg +0 -0
  18. dataset/Backpack/Backpack_109.jpg +0 -0
  19. dataset/Backpack/Backpack_11.jpg +0 -0
  20. dataset/Backpack/Backpack_110.jpg +0 -0
  21. dataset/Backpack/Backpack_111.jpg +0 -0
  22. dataset/Backpack/Backpack_112.jpg +0 -0
  23. dataset/Backpack/Backpack_113.jpg +0 -0
  24. dataset/Backpack/Backpack_114.jpg +0 -0
  25. dataset/Backpack/Backpack_115.jpg +0 -0
  26. dataset/Backpack/Backpack_116.jpg +0 -0
  27. dataset/Backpack/Backpack_117.jpg +0 -0
  28. dataset/Backpack/Backpack_118.jpg +0 -0
  29. dataset/Backpack/Backpack_119.jpg +0 -0
  30. dataset/Backpack/Backpack_12.jpg +0 -0
  31. dataset/Backpack/Backpack_120.jpg +0 -0
  32. dataset/Backpack/Backpack_121.jpg +0 -0
  33. dataset/Backpack/Backpack_122.jpg +0 -0
  34. dataset/Backpack/Backpack_123.jpg +0 -0
  35. dataset/Backpack/Backpack_124.jpg +0 -0
  36. dataset/Backpack/Backpack_125.jpg +0 -0
  37. dataset/Backpack/Backpack_126.jpg +0 -0
  38. dataset/Backpack/Backpack_127.jpg +0 -0
  39. dataset/Backpack/Backpack_128.jpg +0 -0
  40. dataset/Backpack/Backpack_129.jpg +0 -0
  41. dataset/Backpack/Backpack_13.jpg +0 -0
  42. dataset/Backpack/Backpack_130.jpg +0 -0
  43. dataset/Backpack/Backpack_131.jpg +0 -0
  44. dataset/Backpack/Backpack_132.jpg +0 -0
  45. dataset/Backpack/Backpack_133.jpg +0 -0
  46. dataset/Backpack/Backpack_134.jpg +0 -0
  47. dataset/Backpack/Backpack_135.jpg +0 -0
  48. dataset/Backpack/Backpack_136.jpg +0 -0
  49. dataset/Backpack/Backpack_137.jpg +0 -0
  50. dataset/Backpack/Backpack_138.jpg +0 -0
.DS_Store ADDED
Binary file (8.2 kB). View file
 
base_dir.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:95cb650809ef81fa60aab7b5890d6644f73db587f1350f2deaab8ee75c6ebb86
3
+ size 9344728
base_model.ipynb ADDED
@@ -0,0 +1,363 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "nbformat": 4,
3
+ "nbformat_minor": 0,
4
+ "metadata": {
5
+ "colab": {
6
+ "name": "Untitled13.ipynb",
7
+ "provenance": [],
8
+ "authorship_tag": "ABX9TyMqCuPBfJCXed26gH8/x/RB",
9
+ "include_colab_link": true
10
+ },
11
+ "kernelspec": {
12
+ "name": "python3",
13
+ "display_name": "Python 3"
14
+ }
15
+ },
16
+ "cells": [
17
+ {
18
+ "cell_type": "markdown",
19
+ "metadata": {
20
+ "id": "view-in-github",
21
+ "colab_type": "text"
22
+ },
23
+ "source": [
24
+ "<a href=\"https://colab.research.google.com/github/Nwosu-Ihueze/first_deploy/blob/main/base_model.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
25
+ ]
26
+ },
27
+ {
28
+ "cell_type": "code",
29
+ "metadata": {
30
+ "colab": {
31
+ "base_uri": "https://localhost:8080/"
32
+ },
33
+ "id": "QrqqhGb-hJN9",
34
+ "outputId": "30625e10-7d57-4647-96f5-5a157335916b"
35
+ },
36
+ "source": [
37
+ "from google.colab import drive\n",
38
+ "drive.mount(\"/content/drive\")"
39
+ ],
40
+ "execution_count": 2,
41
+ "outputs": [
42
+ {
43
+ "output_type": "stream",
44
+ "text": [
45
+ "Mounted at /content/drive\n"
46
+ ],
47
+ "name": "stdout"
48
+ }
49
+ ]
50
+ },
51
+ {
52
+ "cell_type": "code",
53
+ "metadata": {
54
+ "id": "to73YXqkhYZf"
55
+ },
56
+ "source": [
57
+ "img_dir = ('/content/drive/MyDrive/image_classifier/dataset')"
58
+ ],
59
+ "execution_count": 3,
60
+ "outputs": []
61
+ },
62
+ {
63
+ "cell_type": "code",
64
+ "metadata": {
65
+ "id": "-jroOgAVhZyx"
66
+ },
67
+ "source": [
68
+ "from keras.models import Sequential\n",
69
+ "from keras.layers import Dense, Conv2D, MaxPool2D , Flatten\n",
70
+ "from keras.preprocessing.image import ImageDataGenerator\n",
71
+ "import keras\n",
72
+ "import numpy as np\n",
73
+ "import tensorflow as tf\n",
74
+ "from tensorflow import keras\n",
75
+ "from tensorflow.keras import layers\n",
76
+ "import tensorflow_hub as hub\n",
77
+ "import matplotlib.pyplot as plt"
78
+ ],
79
+ "execution_count": 4,
80
+ "outputs": []
81
+ },
82
+ {
83
+ "cell_type": "code",
84
+ "metadata": {
85
+ "id": "FVhNyMrLhkwD"
86
+ },
87
+ "source": [
88
+ "data_args = dict(rescale=1./255, validation_split=.20)"
89
+ ],
90
+ "execution_count": 5,
91
+ "outputs": []
92
+ },
93
+ {
94
+ "cell_type": "code",
95
+ "metadata": {
96
+ "colab": {
97
+ "base_uri": "https://localhost:8080/"
98
+ },
99
+ "id": "Ev--vHf3ho_5",
100
+ "outputId": "2465cdfe-6e6e-42f9-afc1-9344e5985306"
101
+ },
102
+ "source": [
103
+ "bag_train = tf.keras.preprocessing.image.ImageDataGenerator(**data_args)\n",
104
+ "\n",
105
+ "train_gen = bag_train.flow_from_directory(\n",
106
+ "img_dir,\n",
107
+ "subset=\"training\",\n",
108
+ "shuffle=True,\n",
109
+ "target_size=(224, 224))\n",
110
+ "\n",
111
+ "\n",
112
+ "bag_val = tf.keras.preprocessing.image.ImageDataGenerator(**data_args)\n",
113
+ "\n",
114
+ "val_gen = bag_val.flow_from_directory(\n",
115
+ "img_dir,\n",
116
+ "subset=\"validation\",\n",
117
+ "shuffle=True,\n",
118
+ "target_size=(224, 224))"
119
+ ],
120
+ "execution_count": 6,
121
+ "outputs": [
122
+ {
123
+ "output_type": "stream",
124
+ "text": [
125
+ "Found 1600 images belonging to 5 classes.\n",
126
+ "Found 400 images belonging to 5 classes.\n"
127
+ ],
128
+ "name": "stdout"
129
+ }
130
+ ]
131
+ },
132
+ {
133
+ "cell_type": "code",
134
+ "metadata": {
135
+ "id": "5AIK2H4thssQ"
136
+ },
137
+ "source": [
138
+ "for image_batch, label_batch in train_gen:\n",
139
+ " break\n",
140
+ " image_batch.shape, label_batch.shape"
141
+ ],
142
+ "execution_count": 7,
143
+ "outputs": []
144
+ },
145
+ {
146
+ "cell_type": "code",
147
+ "metadata": {
148
+ "colab": {
149
+ "base_uri": "https://localhost:8080/"
150
+ },
151
+ "id": "8rF-sJNxhw0p",
152
+ "outputId": "9873bb89-185f-429f-a8ba-dcbc097d6e95"
153
+ },
154
+ "source": [
155
+ "print (train_gen.class_indices)"
156
+ ],
157
+ "execution_count": 8,
158
+ "outputs": [
159
+ {
160
+ "output_type": "stream",
161
+ "text": [
162
+ "{'Backpack': 0, 'Briefcase': 1, 'Duffle': 2, 'Handbag': 3, 'Purse': 4}\n"
163
+ ],
164
+ "name": "stdout"
165
+ }
166
+ ]
167
+ },
168
+ {
169
+ "cell_type": "code",
170
+ "metadata": {
171
+ "colab": {
172
+ "base_uri": "https://localhost:8080/"
173
+ },
174
+ "id": "NFX_UXHOhzqT",
175
+ "outputId": "62b76f1f-d1ac-4754-e612-1191e124374a"
176
+ },
177
+ "source": [
178
+ "base_model = tf.keras.Sequential([\n",
179
+ " hub.KerasLayer(\"https://tfhub.dev/google/tf2-preview/mobilenet_v2/feature_vector/4\", \n",
180
+ " output_shape=[1280],\n",
181
+ " trainable=False),\n",
182
+ " tf.keras.layers.Dropout(0.4),\n",
183
+ " tf.keras.layers.Dense(train_gen.num_classes, activation='softmax')\n",
184
+ "])\n",
185
+ "base_model.build([None, 224, 224, 3])\n",
186
+ "base_model.summary()"
187
+ ],
188
+ "execution_count": 9,
189
+ "outputs": [
190
+ {
191
+ "output_type": "stream",
192
+ "text": [
193
+ "Model: \"sequential\"\n",
194
+ "_________________________________________________________________\n",
195
+ "Layer (type) Output Shape Param # \n",
196
+ "=================================================================\n",
197
+ "keras_layer (KerasLayer) (None, 1280) 2257984 \n",
198
+ "_________________________________________________________________\n",
199
+ "dropout (Dropout) (None, 1280) 0 \n",
200
+ "_________________________________________________________________\n",
201
+ "dense (Dense) (None, 5) 6405 \n",
202
+ "=================================================================\n",
203
+ "Total params: 2,264,389\n",
204
+ "Trainable params: 6,405\n",
205
+ "Non-trainable params: 2,257,984\n",
206
+ "_________________________________________________________________\n"
207
+ ],
208
+ "name": "stdout"
209
+ }
210
+ ]
211
+ },
212
+ {
213
+ "cell_type": "code",
214
+ "metadata": {
215
+ "id": "M13ITqx0h_IG"
216
+ },
217
+ "source": [
218
+ "optimizer = tf.keras.optimizers.Adam(lr=0.001)\n",
219
+ "\n",
220
+ "base_model.compile(\n",
221
+ " optimizer=optimizer,\n",
222
+ " loss= 'categorical_crossentropy',\n",
223
+ " metrics=['accuracy'])"
224
+ ],
225
+ "execution_count": 10,
226
+ "outputs": []
227
+ },
228
+ {
229
+ "cell_type": "code",
230
+ "metadata": {
231
+ "colab": {
232
+ "base_uri": "https://localhost:8080/"
233
+ },
234
+ "id": "s9EhqPWViCZ0",
235
+ "outputId": "12d672e7-6080-41e6-9586-0f8b91558987"
236
+ },
237
+ "source": [
238
+ "epochs=10\n",
239
+ "history = base_model.fit(\n",
240
+ " train_gen,\n",
241
+ " validation_data = val_gen,\n",
242
+ " epochs = epochs\n",
243
+ ")"
244
+ ],
245
+ "execution_count": 11,
246
+ "outputs": [
247
+ {
248
+ "output_type": "stream",
249
+ "text": [
250
+ "Epoch 1/10\n",
251
+ "50/50 [==============================] - 732s 15s/step - loss: 1.5411 - accuracy: 0.3920 - val_loss: 0.6557 - val_accuracy: 0.7775\n",
252
+ "Epoch 2/10\n",
253
+ "50/50 [==============================] - 69s 1s/step - loss: 0.7380 - accuracy: 0.7325 - val_loss: 0.5476 - val_accuracy: 0.8100\n",
254
+ "Epoch 3/10\n",
255
+ "50/50 [==============================] - 69s 1s/step - loss: 0.6234 - accuracy: 0.7631 - val_loss: 0.5097 - val_accuracy: 0.8250\n",
256
+ "Epoch 4/10\n",
257
+ "50/50 [==============================] - 68s 1s/step - loss: 0.5016 - accuracy: 0.8327 - val_loss: 0.5041 - val_accuracy: 0.8150\n",
258
+ "Epoch 5/10\n",
259
+ "50/50 [==============================] - 67s 1s/step - loss: 0.4623 - accuracy: 0.8423 - val_loss: 0.4924 - val_accuracy: 0.8250\n",
260
+ "Epoch 6/10\n",
261
+ "50/50 [==============================] - 68s 1s/step - loss: 0.4332 - accuracy: 0.8603 - val_loss: 0.4736 - val_accuracy: 0.8350\n",
262
+ "Epoch 7/10\n",
263
+ "50/50 [==============================] - 68s 1s/step - loss: 0.3782 - accuracy: 0.8713 - val_loss: 0.4733 - val_accuracy: 0.8325\n",
264
+ "Epoch 8/10\n",
265
+ "50/50 [==============================] - 68s 1s/step - loss: 0.3946 - accuracy: 0.8596 - val_loss: 0.4685 - val_accuracy: 0.8300\n",
266
+ "Epoch 9/10\n",
267
+ "50/50 [==============================] - 68s 1s/step - loss: 0.3697 - accuracy: 0.8711 - val_loss: 0.4657 - val_accuracy: 0.8425\n",
268
+ "Epoch 10/10\n",
269
+ "50/50 [==============================] - 68s 1s/step - loss: 0.3506 - accuracy: 0.8782 - val_loss: 0.4566 - val_accuracy: 0.8375\n"
270
+ ],
271
+ "name": "stdout"
272
+ }
273
+ ]
274
+ },
275
+ {
276
+ "cell_type": "code",
277
+ "metadata": {
278
+ "colab": {
279
+ "base_uri": "https://localhost:8080/",
280
+ "height": 499
281
+ },
282
+ "id": "ei9jy736nVEZ",
283
+ "outputId": "80633711-cfc6-4d06-b709-383f4e3e045c"
284
+ },
285
+ "source": [
286
+ "acc = history.history['accuracy']\n",
287
+ "val_acc = history.history['val_accuracy']\n",
288
+ "\n",
289
+ "loss = history.history['loss']\n",
290
+ "val_loss = history.history['val_loss']\n",
291
+ "\n",
292
+ "epochs_range = range(epochs)\n",
293
+ "\n",
294
+ "plt.figure(figsize=(8, 8))\n",
295
+ "plt.subplot(1, 2, 1)\n",
296
+ "plt.plot(epochs_range, acc, label='Training Accuracy')\n",
297
+ "plt.plot(epochs_range, val_acc, label='Validation Accuracy')\n",
298
+ "plt.legend(loc='lower right')\n",
299
+ "plt.title('Training and Validation Accuracy')\n",
300
+ "\n",
301
+ "plt.subplot(1, 2, 2)\n",
302
+ "plt.plot(epochs_range, loss, label='Training Loss')\n",
303
+ "plt.plot(epochs_range, val_loss, label='Validation Loss')\n",
304
+ "plt.legend(loc='upper right')\n",
305
+ "plt.title('Training and Validation Loss')\n",
306
+ "plt.show()"
307
+ ],
308
+ "execution_count": 12,
309
+ "outputs": [
310
+ {
311
+ "output_type": "display_data",
312
+ "data": {
313
+ "image/png": "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\n",
314
+ "text/plain": [
315
+ "<Figure size 576x576 with 2 Axes>"
316
+ ]
317
+ },
318
+ "metadata": {
319
+ "tags": [],
320
+ "needs_background": "light"
321
+ }
322
+ }
323
+ ]
324
+ },
325
+ {
326
+ "cell_type": "code",
327
+ "metadata": {
328
+ "colab": {
329
+ "base_uri": "https://localhost:8080/"
330
+ },
331
+ "id": "zwD2vv_onsut",
332
+ "outputId": "eb2bbc69-aa5e-464d-c4d5-7aca9a83be55"
333
+ },
334
+ "source": [
335
+ "import pickle\n",
336
+ "from sklearn.externals import joblib "
337
+ ],
338
+ "execution_count": 19,
339
+ "outputs": [
340
+ {
341
+ "output_type": "stream",
342
+ "text": [
343
+ "/usr/local/lib/python3.7/dist-packages/sklearn/externals/joblib/__init__.py:15: FutureWarning: sklearn.externals.joblib is deprecated in 0.21 and will be removed in 0.23. Please import this functionality directly from joblib, which can be installed with: pip install joblib. If this warning is raised when loading pickled models, you may need to re-serialize those models with scikit-learn 0.21+.\n",
344
+ " warnings.warn(msg, category=FutureWarning)\n"
345
+ ],
346
+ "name": "stderr"
347
+ }
348
+ ]
349
+ },
350
+ {
351
+ "cell_type": "code",
352
+ "metadata": {
353
+ "id": "4eGgLZFEnt03"
354
+ },
355
+ "source": [
356
+ "file_dir = '/content/drive/MyDrive/image_classifier/base_dir.h5'\n",
357
+ "base_model.save(file_dir)"
358
+ ],
359
+ "execution_count": 23,
360
+ "outputs": []
361
+ }
362
+ ]
363
+ }
custom.css ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url('https://fonts.googleapis.com/css2?family=Poppins&display=swap');
2
+ /*
3
+ -----------------------
4
+ MAIN APP
5
+ -----------------------
6
+ */
7
+ body {
8
+ margin: 0;
9
+ font-family: 'Poppins', sans-serif;
10
+ font-size: 1rem;
11
+ font-weight: 400;
12
+ line-height: 1.6;
13
+ background: rgb(250, 209, 155);
14
+ -webkit-text-size-adjust: 100%;
15
+ -webkit-tap-highlight-color: rgba(38,39,48,0);
16
+ }
17
+ /*
18
+ ----------------------
19
+ TITLE
20
+ ----------------------
21
+ */
22
+ h1{
23
+ color: #000;
24
+ text-align: center;
25
+ }
26
+ h3{
27
+ color: #000;
28
+ }
29
+ p{
30
+ color: #000;
31
+ }
32
+ /*
33
+ ----------------------
34
+ BUTTONS
35
+ ----------------------
36
+ */
37
+ .stButton > button {
38
+ background-color: #ffca47;
39
+ color: #000;
40
+ border-style:none;
41
+ z-index: 4;
42
+ margin-left: 45%;
43
+ }
44
+ .stButton > button:hover {
45
+ background-color: #333333;
46
+ color: #fff;
47
+ }
48
+
49
+
50
+ .stTextInput
51
+ {
52
+ color: #000000;
53
+ }
54
+ .stTextInput > div > div > input {
55
+ color: #000000;
56
+ }
57
+
dataset/.DS_Store ADDED
Binary file (18.4 kB). View file
 
dataset/Backpack/.DS_Store ADDED
Binary file (28.7 kB). View file
 
dataset/Backpack/Backpack_1.jpg ADDED
dataset/Backpack/Backpack_10.jpg ADDED
dataset/Backpack/Backpack_100.jpg ADDED
dataset/Backpack/Backpack_101.jpg ADDED
dataset/Backpack/Backpack_102.jpg ADDED
dataset/Backpack/Backpack_103.jpg ADDED
dataset/Backpack/Backpack_104.jpg ADDED
dataset/Backpack/Backpack_105.jpg ADDED
dataset/Backpack/Backpack_106.jpg ADDED
dataset/Backpack/Backpack_107.jpg ADDED
dataset/Backpack/Backpack_108.jpg ADDED
dataset/Backpack/Backpack_109.jpg ADDED
dataset/Backpack/Backpack_11.jpg ADDED
dataset/Backpack/Backpack_110.jpg ADDED
dataset/Backpack/Backpack_111.jpg ADDED
dataset/Backpack/Backpack_112.jpg ADDED
dataset/Backpack/Backpack_113.jpg ADDED
dataset/Backpack/Backpack_114.jpg ADDED
dataset/Backpack/Backpack_115.jpg ADDED
dataset/Backpack/Backpack_116.jpg ADDED
dataset/Backpack/Backpack_117.jpg ADDED
dataset/Backpack/Backpack_118.jpg ADDED
dataset/Backpack/Backpack_119.jpg ADDED
dataset/Backpack/Backpack_12.jpg ADDED
dataset/Backpack/Backpack_120.jpg ADDED
dataset/Backpack/Backpack_121.jpg ADDED
dataset/Backpack/Backpack_122.jpg ADDED
dataset/Backpack/Backpack_123.jpg ADDED
dataset/Backpack/Backpack_124.jpg ADDED
dataset/Backpack/Backpack_125.jpg ADDED
dataset/Backpack/Backpack_126.jpg ADDED
dataset/Backpack/Backpack_127.jpg ADDED
dataset/Backpack/Backpack_128.jpg ADDED
dataset/Backpack/Backpack_129.jpg ADDED
dataset/Backpack/Backpack_13.jpg ADDED
dataset/Backpack/Backpack_130.jpg ADDED
dataset/Backpack/Backpack_131.jpg ADDED
dataset/Backpack/Backpack_132.jpg ADDED
dataset/Backpack/Backpack_133.jpg ADDED
dataset/Backpack/Backpack_134.jpg ADDED
dataset/Backpack/Backpack_135.jpg ADDED
dataset/Backpack/Backpack_136.jpg ADDED
dataset/Backpack/Backpack_137.jpg ADDED
dataset/Backpack/Backpack_138.jpg ADDED