chandrakalagowda commited on
Commit
8395318
1 Parent(s): 69095bd

Upload folder using huggingface_hub

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. .ipynb_checkpoints/2_deep_dive_image_search-checkpoint.ipynb +0 -0
  3. .ipynb_checkpoints/Untitled-checkpoint.ipynb +6 -0
  4. 2_deep_dive_image_search.ipynb +0 -0
  5. 2_deepdiveimagesearch.py +226 -0
  6. README.md +3 -9
  7. requirements.txt +145 -0
  8. reverse_image_search.csv +120 -0
  9. test/.DS_Store +0 -0
  10. test/Arvind_kejriwal/.DS_Store +0 -0
  11. test/Arvind_kejriwal/Arvind_kejriwal11.JPEG +0 -0
  12. test/Barack_Obama/.DS_Store +0 -0
  13. test/Barack_Obama/barack_obama11.JPEG +0 -0
  14. test/Ben_Carson/.DS_Store +0 -0
  15. test/Ben_Carson/Ben_Carson11.JPEG +0 -0
  16. test/Bernie_Sanders/.DS_Store +0 -0
  17. test/Bernie_Sanders/Bernie_Sanders17.JPEG +0 -0
  18. test/Emmanuel_Macron/.DS_Store +0 -0
  19. test/Emmanuel_Macron/Emmanuel_Macron11.JPEG +0 -0
  20. test/Hillary_Clinton/.DS_Store +0 -0
  21. test/Hillary_Clinton/Hillary_Clinton11.JPEG +0 -0
  22. test/Joe_Biden/.DS_Store +0 -0
  23. test/Joe_Biden/Biden11.JPEG +0 -0
  24. test/Kamala_Harris/.DS_Store +0 -0
  25. test/Kamala_Harris/Kamala_Harris11.JPEG +0 -0
  26. test/Kim_Jong_Un/.DS_Store +0 -0
  27. test/Kim_Jong_Un/Kim_Jong_Un11.JPEG +0 -0
  28. test/Michelle_Obama/.DS_Store +0 -0
  29. test/Michelle_Obama/Michelle_Obama11.JPEG +0 -0
  30. test/Narendra_Modi/.DS_Store +0 -0
  31. test/Narendra_Modi/narendra_modi11.JPEG +0 -0
  32. test/Rahul_Gandhi/.DS_Store +0 -0
  33. test/Rahul_Gandhi/Rahul_Gandhi17.JPEG +0 -0
  34. train/.DS_Store +0 -0
  35. train/Arvind_kejriwal/.DS_Store +0 -0
  36. train/Arvind_kejriwal/Arvind_kejriwal1.JPEG +0 -0
  37. train/Arvind_kejriwal/Arvind_kejriwal10.JPEG +0 -0
  38. train/Arvind_kejriwal/Arvind_kejriwal2.JPEG +0 -0
  39. train/Arvind_kejriwal/Arvind_kejriwal3.JPEG +0 -0
  40. train/Arvind_kejriwal/Arvind_kejriwal4.JPEG +0 -0
  41. train/Arvind_kejriwal/Arvind_kejriwal5.JPEG +0 -0
  42. train/Arvind_kejriwal/Arvind_kejriwal6.JPEG +0 -0
  43. train/Arvind_kejriwal/Arvind_kejriwal7.JPEG +0 -0
  44. train/Arvind_kejriwal/Arvind_kejriwal8.JPEG +0 -0
  45. train/Arvind_kejriwal/Arvind_kejriwal9.JPEG +0 -0
  46. train/Barack_Obama/.DS_Store +0 -0
  47. train/Barack_Obama/barack obama7.JPEG +0 -0
  48. train/Barack_Obama/barack_obama1.JPEG +0 -0
  49. train/Barack_Obama/barack_obama10.JPEG +0 -0
  50. train/Barack_Obama/barack_obama2.JPEG +0 -0
.DS_Store ADDED
Binary file (6.15 kB). View file
 
.ipynb_checkpoints/2_deep_dive_image_search-checkpoint.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
.ipynb_checkpoints/Untitled-checkpoint.ipynb ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [],
3
+ "metadata": {},
4
+ "nbformat": 4,
5
+ "nbformat_minor": 5
6
+ }
2_deep_dive_image_search.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
2_deepdiveimagesearch.py ADDED
@@ -0,0 +1,226 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ from milvus import default_server
3
+ from pymilvus import connections, utility
4
+ default_server.start()
5
+
6
+ import cv2
7
+ import numpy
8
+ import time
9
+ import csv
10
+ from glob import glob
11
+ from pathlib import Path
12
+ from statistics import mean
13
+
14
+ from towhee import pipe, ops, DataCollection
15
+ from towhee.types.image import Image
16
+ from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection, utility
17
+
18
+ # Towhee parameters
19
+ MODEL = 'vgg16'
20
+ DEVICE = None # if None, use default device (cuda is enabled if available)
21
+
22
+ # Milvus parameters
23
+ HOST = '127.0.0.1'
24
+ PORT = '19530'
25
+ TOPK = 10
26
+ DIM = 512 # dimension of embedding extracted, change with MODEL
27
+ COLLECTION_NAME = 'deep_dive_image_search_' + MODEL
28
+ INDEX_TYPE = 'IVF_FLAT'
29
+ METRIC_TYPE = 'L2'
30
+
31
+ # patterns of image paths
32
+ INSERT_SRC = './train/*/*.JPEG'
33
+ QUERY_SRC = './test/*/*.JPEG'
34
+
35
+ to_insert = glob(INSERT_SRC)
36
+ to_test = glob(QUERY_SRC)
37
+
38
+ # Create milvus collection (delete first if exists)
39
+ def create_milvus_collection(collection_name, dim):
40
+ if utility.has_collection(collection_name):
41
+ utility.drop_collection(collection_name)
42
+
43
+ fields = [
44
+ FieldSchema(name='path', dtype=DataType.VARCHAR, description='path to image', max_length=500,
45
+ is_primary=True, auto_id=False),
46
+ FieldSchema(name='embedding', dtype=DataType.FLOAT_VECTOR, description='image embedding vectors', dim=dim)
47
+ ]
48
+ schema = CollectionSchema(fields=fields, description='reverse image search')
49
+ collection = Collection(name=collection_name, schema=schema)
50
+
51
+ index_params = {
52
+ 'metric_type': METRIC_TYPE,
53
+ 'index_type': INDEX_TYPE,
54
+ 'params': {"nlist": 2048}
55
+ }
56
+ collection.create_index(field_name='embedding', index_params=index_params)
57
+ return collection
58
+
59
+ # Read images
60
+ decoder = ops.image_decode('rgb').get_op()
61
+ def read_images(img_paths):
62
+ imgs = []
63
+ for p in img_paths:
64
+ img = decoder(p)
65
+ imgs.append(img)
66
+ # imgs.append(Image(cv2.imread(p), 'RGB'))
67
+ return imgs
68
+
69
+ # Get ground truth
70
+ def ground_truth(path):
71
+ train_path = str(Path(path).parent).replace('test', 'train')
72
+ return [str(Path(x).resolve()) for x in glob(train_path + '/*.JPEG')]
73
+
74
+ # Calculate Average Precision
75
+ def get_ap(pred: list, gt: list):
76
+ ct = 0
77
+ score = 0.
78
+ for i, n in enumerate(pred):
79
+ if n in gt:
80
+ ct += 1
81
+ score += (ct / (i + 1))
82
+ if ct == 0:
83
+ ap = 0
84
+ else:
85
+ ap = score / ct
86
+ return ap
87
+
88
+
89
+ # Embedding pipeline
90
+ p_embed = (
91
+ pipe.input('img_path')
92
+ .map('img_path', 'img', ops.image_decode('rgb'))
93
+ .map('img', 'vec', ops.image_embedding.timm(model_name=MODEL, device=DEVICE))
94
+ .map('vec', 'vec', lambda x: x / numpy.linalg.norm(x, axis=0))
95
+ )
96
+
97
+ # Display embedding result, no need for implementation
98
+ p_display = p_embed.output('img_path', 'img', 'vec')
99
+
100
+ DataCollection(p_display(to_insert[0])).show()
101
+
102
+ # Connect to Milvus service
103
+ connections.connect(host=HOST, port=PORT)
104
+
105
+ # Create collection
106
+ collection = create_milvus_collection(COLLECTION_NAME, DIM)
107
+ print(f'A new collection created: {COLLECTION_NAME}')
108
+
109
+ # Insert data
110
+ p_insert = (
111
+ p_embed.map(('img_path', 'vec'), 'mr', ops.ann_insert.milvus_client(
112
+ host=HOST,
113
+ port=PORT,
114
+ collection_name=COLLECTION_NAME
115
+ ))
116
+ .output('mr')
117
+ )
118
+
119
+ for img_path in to_insert:
120
+ p_insert(img_path)
121
+ print('Number of data inserted:', collection.num_entities)
122
+
123
+ # Performance
124
+ collection.load()
125
+ p_search_pre = (
126
+ p_embed.map('vec', ('search_res'), ops.ann_search.milvus_client(
127
+ host=HOST, port=PORT, limit=TOPK,
128
+ collection_name=COLLECTION_NAME))
129
+ .map('search_res', 'pred', lambda x: [str(Path(y[0]).resolve()) for y in x])
130
+ # .output('img_path', 'pred')
131
+ )
132
+ p_eval = (
133
+ p_search_pre.map('img_path', 'gt', ground_truth)
134
+ .map(('pred', 'gt'), 'ap', get_ap)
135
+ .output('ap')
136
+ )
137
+
138
+ res = []
139
+ for img_path in to_test:
140
+ ap = p_eval(img_path).get()[0]
141
+ res.append(ap)
142
+
143
+ mAP = mean(res)
144
+
145
+ print(f'mAP@{TOPK}: {mAP}')
146
+
147
+ p_search_img = (
148
+ p_search_pre.map('img_path', 'gt', ground_truth)
149
+ .map(('pred', 'gt'), 'ap', get_ap)
150
+ .map('pred', 'res', read_images)
151
+ .output('img_path', 'img', 'res', 'ap')
152
+ )
153
+ DataCollection(p_search_img('./test/Joe_Biden/Biden11.JPEG')).show()
154
+
155
+
156
+ def get_max_object(img, boxes):
157
+ if len(boxes) == 0:
158
+ return img
159
+ max_area = 0
160
+ for box in boxes:
161
+ x1, y1, x2, y2 = box
162
+ area = (x2-x1)*(y2-y1)
163
+ if area > max_area:
164
+ max_area = area
165
+ max_img = img[y1:y2,x1:x2,:]
166
+ return max_img
167
+
168
+ p_yolo = (
169
+ pipe.input('img_path')
170
+ .map('img_path', 'img', ops.image_decode('rgb'))
171
+ .map('img', ('boxes', 'class', 'score'), ops.object_detection.yolov5())
172
+ .map(('img', 'boxes'), 'object', get_max_object)
173
+ )
174
+
175
+ # Display embedding result, no need for implementation
176
+ p_display = (
177
+ p_yolo.output('img', 'object')
178
+ )
179
+ DataCollection(p_display('./test/Joe_Biden/Biden11.JPEG')).show()
180
+
181
+
182
+ # Search
183
+ p_search_pre_yolo = (
184
+ p_yolo.map('object', 'vec', ops.image_embedding.timm(model_name=MODEL, device=DEVICE))
185
+ .map('vec', 'vec', lambda x: x / numpy.linalg.norm(x, axis=0))
186
+ .map('vec', ('search_res'), ops.ann_search.milvus_client(
187
+ host=HOST, port=PORT, limit=TOPK,
188
+ collection_name=COLLECTION_NAME))
189
+ .map('search_res', 'pred', lambda x: [str(Path(y[0]).resolve()) for y in x])
190
+ # .output('img_path', 'pred')
191
+ )
192
+
193
+ # Evaluate with AP
194
+ p_search_img_yolo = (
195
+ p_search_pre_yolo.map('img_path', 'gt', ground_truth)
196
+ .map(('pred', 'gt'), 'ap', get_ap)
197
+ .map('pred', 'res', read_images)
198
+ .output('img', 'object', 'res', 'ap')
199
+ )
200
+ DataCollection(p_search_img_yolo('./test/Joe_Biden/Biden11.JPEG')).show()
201
+
202
+
203
+ import gradio
204
+
205
+ DEMO_MODEL = 'vgg16'
206
+ DEMO_COLLECTION = 'deep_dive_image_search_' + DEMO_MODEL
207
+
208
+ def f_search(img):
209
+ p_search = (
210
+ pipe.input('img')
211
+ .map('img', 'vec', ops.image_embedding.timm(model_name=DEMO_MODEL, device=DEVICE))
212
+ .map('vec', 'vec', lambda x: x / numpy.linalg.norm(x, axis=0))
213
+ .map('vec', 'search_res', ops.ann_search.milvus_client(
214
+ host=HOST, port=PORT, limit=TOPK,
215
+ collection_name=DEMO_COLLECTION))
216
+ .map('search_res', 'pred', lambda x: [str(Path(y[0]).resolve()) for y in x])
217
+ .output('pred')
218
+ )
219
+ return p_search(img).get()[0]
220
+
221
+ interface = gradio.Interface(f_search,
222
+ gradio.inputs.Image(type="pil", source='upload'),
223
+ [gradio.outputs.Image(type="filepath", label=None) for _ in range(TOPK)]
224
+ )
225
+
226
+ interface.launch(inline=True, share=True)
README.md CHANGED
@@ -1,12 +1,6 @@
1
  ---
2
- title: Reverseimagepolitical
3
- emoji: 🌍
4
- colorFrom: red
5
- colorTo: yellow
6
  sdk: gradio
7
- sdk_version: 3.39.0
8
- app_file: app.py
9
- pinned: false
10
  ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: reverseimagepolitical
3
+ app_file: 2_deepdiveimagesearch.py
 
 
4
  sdk: gradio
5
+ sdk_version: 3.37.0
 
 
6
  ---
 
 
requirements.txt ADDED
@@ -0,0 +1,145 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ aiofiles==23.1.0
2
+ aiohttp==3.8.4
3
+ aiosignal==1.3.1
4
+ altair==5.0.1
5
+ anyio==3.7.1
6
+ appnope==0.1.3
7
+ asttokens==2.2.1
8
+ async-timeout==4.0.2
9
+ attrs==23.1.0
10
+ av==10.0.0
11
+ backcall==0.2.0
12
+ beautifulsoup4==4.12.2
13
+ bleach==6.0.0
14
+ certifi==2023.5.7
15
+ charset-normalizer==3.2.0
16
+ click==8.1.6
17
+ comm==0.1.3
18
+ contourpy==1.1.0
19
+ cycler==0.11.0
20
+ debugpy==1.6.7
21
+ decorator==5.1.1
22
+ docutils==0.20.1
23
+ environs==9.5.0
24
+ executing==1.2.0
25
+ fastapi==0.100.0
26
+ ffmpy==0.3.1
27
+ filelock==3.12.2
28
+ fonttools==4.41.0
29
+ frozenlist==1.4.0
30
+ fsspec==2023.6.0
31
+ fvcore==0.1.5.post20221221
32
+ gitdb==4.0.10
33
+ GitPython==3.1.32
34
+ gradio==3.37.0
35
+ gradio_client==0.2.10
36
+ grpcio==1.53.0
37
+ h11==0.14.0
38
+ httpcore==0.17.3
39
+ httpx==0.24.1
40
+ huggingface-hub==0.16.4
41
+ idna==3.4
42
+ importlib-metadata==6.8.0
43
+ iopath==0.1.10
44
+ ipykernel==6.24.0
45
+ ipython==8.14.0
46
+ ipywidgets==8.0.7
47
+ jaraco.classes==3.3.0
48
+ jedi==0.18.2
49
+ Jinja2==3.1.2
50
+ jsonschema==4.18.4
51
+ jsonschema-specifications==2023.7.1
52
+ jupyter_client==8.3.0
53
+ jupyter_core==5.3.1
54
+ jupyterlab-widgets==3.0.8
55
+ keyring==24.2.0
56
+ kiwisolver==1.4.4
57
+ linkify-it-py==2.0.2
58
+ markdown-it-py==2.2.0
59
+ MarkupSafe==2.1.3
60
+ marshmallow==3.19.0
61
+ matplotlib==3.7.2
62
+ matplotlib-inline==0.1.6
63
+ mdit-py-plugins==0.3.3
64
+ mdurl==0.1.2
65
+ milvus==2.2.11
66
+ more-itertools==9.1.0
67
+ mpmath==1.3.0
68
+ multidict==6.0.4
69
+ nest-asyncio==1.5.6
70
+ networkx==3.1
71
+ numpy==1.25.1
72
+ opencv-python==4.8.0.74
73
+ orjson==3.9.2
74
+ packaging==23.1
75
+ pandas==2.0.3
76
+ parameterized==0.9.0
77
+ parso==0.8.3
78
+ pexpect==4.8.0
79
+ pickleshare==0.7.5
80
+ Pillow==10.0.0
81
+ pkginfo==1.9.6
82
+ platformdirs==3.9.1
83
+ portalocker==2.7.0
84
+ prompt-toolkit==3.0.39
85
+ protobuf==4.23.4
86
+ psutil==5.9.5
87
+ ptyprocess==0.7.0
88
+ pure-eval==0.2.2
89
+ pydantic==1.10.11
90
+ pydub==0.25.1
91
+ Pygments==2.15.1
92
+ pymilvus==2.2.11
93
+ pyparsing==3.0.9
94
+ python-dateutil==2.8.2
95
+ python-dotenv==1.0.0
96
+ python-multipart==0.0.6
97
+ pytorchvideo==0.1.3
98
+ pytz==2023.3
99
+ PyYAML==6.0.1
100
+ pyzmq==25.1.0
101
+ readme-renderer==40.0
102
+ referencing==0.30.0
103
+ requests==2.31.0
104
+ requests-toolbelt==1.0.0
105
+ rfc3986==2.0.0
106
+ rich==13.4.2
107
+ rpds-py==0.9.2
108
+ safetensors==0.3.1
109
+ scipy==1.11.1
110
+ seaborn==0.12.2
111
+ semantic-version==2.10.0
112
+ six==1.16.0
113
+ smmap==5.0.0
114
+ sniffio==1.3.0
115
+ soupsieve==2.4.1
116
+ stack-data==0.6.2
117
+ starlette==0.27.0
118
+ sympy==1.12
119
+ tabulate==0.9.0
120
+ tenacity==8.2.2
121
+ termcolor==2.3.0
122
+ timm==0.9.2
123
+ toolz==0.12.0
124
+ torch==2.0.1
125
+ torchvision==0.15.2
126
+ tornado==6.3.2
127
+ towhee==1.1.1
128
+ towhee.models==1.1.1
129
+ tqdm==4.65.0
130
+ traitlets==5.9.0
131
+ twine==4.0.2
132
+ typing_extensions==4.7.1
133
+ tzdata==2023.3
134
+ uc-micro-py==1.0.2
135
+ ujson==5.8.0
136
+ ultralytics==8.0.138
137
+ urllib3==2.0.3
138
+ uvicorn==0.23.1
139
+ wcwidth==0.2.6
140
+ webencodings==0.5.1
141
+ websockets==11.0.3
142
+ widgetsnbextension==4.0.8
143
+ yacs==0.1.8
144
+ yarl==1.9.2
145
+ zipp==3.16.2
reverse_image_search.csv ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ id,path,label
2
+ 1,./train/Kim_Jong_Un/Kim_Jong_Un1.JPEG,Kim_Jong_Un
3
+ 2,./train/Kim_Jong_Un/Kim_Jong_Un10.JPEG,Kim_Jong_Un
4
+ 3,./train/Kim_Jong_Un/Kim_Jong_Un6.JPEG,Kim_Jong_Un
5
+ 4,./train/Kim_Jong_Un/Kim_Jong_Un7.JPEG,Kim_Jong_Un
6
+ 5,./train/Kim_Jong_Un/Kim_Jong_Un8.JPEG,Kim_Jong_Un
7
+ 6,./train/Kim_Jong_Un/Kim_Jong_Un4.JPEG,Kim_Jong_Un
8
+ 7,./train/Kim_Jong_Un/Kim_Jong_Un5.JPEG,Kim_Jong_Un
9
+ 8,./train/Kim_Jong_Un/Kim_Jong_Un9.JPEG,Kim_Jong_Un
10
+ 9,./train/Kim_Jong_Un/Kim_Jong_Un2.JPEG,Kim_Jong_Un
11
+ 10,./train/Kim_Jong_Un/Kim_Jong_Un3.JPEG,Kim_Jong_Un
12
+ 11,./train/Barack_Obama/barack_obama1.JPEG,Barack_Obama
13
+ 12,./train/Barack_Obama/barack_obama6.JPEG,Barack_Obama
14
+ 13,./train/Barack_Obama/barack_obama4.JPEG,Barack_Obama
15
+ 14,./train/Barack_Obama/barack obama7.JPEG,Barack_Obama
16
+ 15,./train/Barack_Obama/barack_obama8.JPEG,Barack_Obama
17
+ 16,./train/Barack_Obama/barack_obama10.JPEG,Barack_Obama
18
+ 17,./train/Barack_Obama/barack_obama9.JPEG,Barack_Obama
19
+ 18,./train/Barack_Obama/barack_obama5.JPEG,Barack_Obama
20
+ 19,./train/Barack_Obama/barack_obama2.JPEG,Barack_Obama
21
+ 20,./train/Barack_Obama/barack_obama3.JPEG,Barack_Obama
22
+ 21,./train/Emmanuel_Macron/Emmanuel_Macron7.JPEG,Emmanuel_Macron
23
+ 22,./train/Emmanuel_Macron/Emmanuel_Macron6.JPEG,Emmanuel_Macron
24
+ 23,./train/Emmanuel_Macron/Emmanuel_Macron1.JPEG,Emmanuel_Macron
25
+ 24,./train/Emmanuel_Macron/Emmanuel_Macron3.JPEG,Emmanuel_Macron
26
+ 25,./train/Emmanuel_Macron/Emmanuel_Macron2.JPEG,Emmanuel_Macron
27
+ 26,./train/Emmanuel_Macron/Emmanuel_Macron10.JPEG,Emmanuel_Macron
28
+ 27,./train/Emmanuel_Macron/Emmanuel_Macron5.JPEG,Emmanuel_Macron
29
+ 28,./train/Emmanuel_Macron/Emmanuel_Macron9.JPEG,Emmanuel_Macron
30
+ 29,./train/Emmanuel_Macron/Emmanuel_Macron8.JPEG,Emmanuel_Macron
31
+ 30,./train/Emmanuel_Macron/Emmanuel_Macron4.JPEG,Emmanuel_Macron
32
+ 31,./train/Michelle_Obama/michelle_obama1.JPEG,Michelle_Obama
33
+ 32,./train/Michelle_Obama/michelle_obama10.JPEG,Michelle_Obama
34
+ 33,./train/Michelle_Obama/michelle_obama7.JPEG,Michelle_Obama
35
+ 34,./train/Michelle_Obama/michelle_obama6.JPEG,Michelle_Obama
36
+ 35,./train/Michelle_Obama/michelle_obama5.JPEG,Michelle_Obama
37
+ 36,./train/Michelle_Obama/michelle_obama9.JPEG,Michelle_Obama
38
+ 37,./train/Michelle_Obama/michelle_obama8.JPEG,Michelle_Obama
39
+ 38,./train/Michelle_Obama/michelle_obama4.JPEG,Michelle_Obama
40
+ 39,./train/Michelle_Obama/michelle_obama3.JPEG,Michelle_Obama
41
+ 40,./train/Michelle_Obama/michelle_obama2.JPEG,Michelle_Obama
42
+ 41,./train/Kamala_Harris/Kamala_Harris4.JPEG,Kamala_Harris
43
+ 42,./train/Kamala_Harris/Kamala_Harris8.JPEG,Kamala_Harris
44
+ 43,./train/Kamala_Harris/Kamala_Harris9.JPEG,Kamala_Harris
45
+ 44,./train/Kamala_Harris/Kamala_Harris10.JPEG,Kamala_Harris
46
+ 45,./train/Kamala_Harris/Kamala_Harris5.JPEG,Kamala_Harris
47
+ 46,./train/Kamala_Harris/Kamala_Harris2.JPEG,Kamala_Harris
48
+ 47,./train/Kamala_Harris/Kamala_Harris3.JPEG,Kamala_Harris
49
+ 48,./train/Kamala_Harris/Kamala_Harris1.JPEG,Kamala_Harris
50
+ 49,./train/Kamala_Harris/Kamala_Harris6.JPEG,Kamala_Harris
51
+ 50,./train/Kamala_Harris/Kamala_Harris7.JPEG,Kamala_Harris
52
+ 51,./train/Arvind_kejriwal/Arvind_kejriwal1.JPEG,Arvind_kejriwal
53
+ 52,./train/Arvind_kejriwal/Arvind_kejriwal10.JPEG,Arvind_kejriwal
54
+ 53,./train/Arvind_kejriwal/Arvind_kejriwal7.JPEG,Arvind_kejriwal
55
+ 54,./train/Arvind_kejriwal/Arvind_kejriwal6.JPEG,Arvind_kejriwal
56
+ 55,./train/Arvind_kejriwal/Arvind_kejriwal9.JPEG,Arvind_kejriwal
57
+ 56,./train/Arvind_kejriwal/Arvind_kejriwal5.JPEG,Arvind_kejriwal
58
+ 57,./train/Arvind_kejriwal/Arvind_kejriwal4.JPEG,Arvind_kejriwal
59
+ 58,./train/Arvind_kejriwal/Arvind_kejriwal8.JPEG,Arvind_kejriwal
60
+ 59,./train/Arvind_kejriwal/Arvind_kejriwal3.JPEG,Arvind_kejriwal
61
+ 60,./train/Arvind_kejriwal/Arvind_kejriwal2.JPEG,Arvind_kejriwal
62
+ 61,./train/Joe_Biden/Biden5.JPEG,Joe_Biden
63
+ 62,./train/Joe_Biden/Biden9.JPEG,Joe_Biden
64
+ 63,./train/Joe_Biden/Biden8.JPEG,Joe_Biden
65
+ 64,./train/Joe_Biden/Biden4.JPEG,Joe_Biden
66
+ 65,./train/Joe_Biden/Biden3.JPEG,Joe_Biden
67
+ 66,./train/Joe_Biden/Biden2.JPEG,Joe_Biden
68
+ 67,./train/Joe_Biden/Biden10.JPEG,Joe_Biden
69
+ 68,./train/Joe_Biden/Biden1.JPEG,Joe_Biden
70
+ 69,./train/Joe_Biden/Biden7.JPEG,Joe_Biden
71
+ 70,./train/Joe_Biden/Biden6.JPEG,Joe_Biden
72
+ 71,./train/Ben_Carson/Ben_Carson3.JPEG,Ben_Carson
73
+ 72,./train/Ben_Carson/Ben_Carson2.JPEG,Ben_Carson
74
+ 73,./train/Ben_Carson/Ben_Carson5.JPEG,Ben_Carson
75
+ 74,./train/Ben_Carson/Ben_Carson9.JPEG,Ben_Carson
76
+ 75,./train/Ben_Carson/Ben_Carson8.JPEG,Ben_Carson
77
+ 76,./train/Ben_Carson/Ben_Carson4.JPEG,Ben_Carson
78
+ 77,./train/Ben_Carson/Ben_Carson7.JPEG,Ben_Carson
79
+ 78,./train/Ben_Carson/Ben_Carson6.JPEG,Ben_Carson
80
+ 79,./train/Ben_Carson/Ben_Carson1.JPEG,Ben_Carson
81
+ 80,./train/Ben_Carson/Ben_Carson10.JPEG,Ben_Carson
82
+ 81,./train/Narendra_Modi/narendra_modi8.JPEG,Narendra_Modi
83
+ 82,./train/Narendra_Modi/narendra_modi4.JPEG,Narendra_Modi
84
+ 83,./train/Narendra_Modi/narendra_modi5.JPEG,Narendra_Modi
85
+ 84,./train/Narendra_Modi/narendra_modi9.JPEG,Narendra_Modi
86
+ 85,./train/Narendra_Modi/narendra_modi2.JPEG,Narendra_Modi
87
+ 86,./train/Narendra_Modi/narendra_modi3.JPEG,Narendra_Modi
88
+ 87,./train/Narendra_Modi/narendra_modi1.JPEG,Narendra_Modi
89
+ 88,./train/Narendra_Modi/narendra_modi6.JPEG,Narendra_Modi
90
+ 89,./train/Narendra_Modi/narendra_modi7.JPEG,Narendra_Modi
91
+ 90,./train/Narendra_Modi/narendra_modi10.JPEG,Narendra_Modi
92
+ 91,./train/Rahul_Gandhi/Rahul_Gandhi10.JPEG,Rahul_Gandhi
93
+ 92,./train/Rahul_Gandhi/Rahul_Gandhi1.JPEG,Rahul_Gandhi
94
+ 93,./train/Rahul_Gandhi/Rahul_Gandhi6.JPEG,Rahul_Gandhi
95
+ 94,./train/Rahul_Gandhi/Rahul_Gandhi7.JPEG,Rahul_Gandhi
96
+ 95,./train/Rahul_Gandhi/Rahul_Gandhi8.JPEG,Rahul_Gandhi
97
+ 96,./train/Rahul_Gandhi/Rahul_Gandhi4.JPEG,Rahul_Gandhi
98
+ 97,./train/Rahul_Gandhi/Rahul_Gandhi5.JPEG,Rahul_Gandhi
99
+ 98,./train/Rahul_Gandhi/Rahul_Gandhi9.JPEG,Rahul_Gandhi
100
+ 99,./train/Rahul_Gandhi/Rahul_Gandhi2.JPEG,Rahul_Gandhi
101
+ 100,./train/Rahul_Gandhi/Rahul_Gandhi3.JPEG,Rahul_Gandhi
102
+ 101,./train/Hillary_Clinton/hillary_clinton2.JPEG,Hillary_Clinton
103
+ 102,./train/Hillary_Clinton/hillary_clinton3.JPEG,Hillary_Clinton
104
+ 103,./train/Hillary_Clinton/hillary_clinton8.JPEG,Hillary_Clinton
105
+ 104,./train/Hillary_Clinton/hillary_clinton10.JPEG,Hillary_Clinton
106
+ 105,./train/Hillary_Clinton/hillary_clinton5.JPEG,Hillary_Clinton
107
+ 106,./train/Hillary_Clinton/hillary_clinton9.JPEG,Hillary_Clinton
108
+ 107,./train/Hillary_Clinton/hillary_clinton6.JPEG,Hillary_Clinton
109
+ 108,./train/Hillary_Clinton/hillary_clinton7.JPEG,Hillary_Clinton
110
+ 109,./train/Hillary_Clinton/hillary_clinton1.JPEG,Hillary_Clinton
111
+ 110,./train/Bernie_Sanders/Bernie_Sanders1.JPEG,Bernie_Sanders
112
+ 111,./train/Bernie_Sanders/Bernie_Sanders7.JPEG,Bernie_Sanders
113
+ 112,./train/Bernie_Sanders/Bernie_Sanders6.JPEG,Bernie_Sanders
114
+ 113,./train/Bernie_Sanders/Bernie_Sanders9.JPEG,Bernie_Sanders
115
+ 114,./train/Bernie_Sanders/Bernie_Sanders5.JPEG,Bernie_Sanders
116
+ 115,./train/Bernie_Sanders/Bernie_Sanders4.JPEG,Bernie_Sanders
117
+ 116,./train/Bernie_Sanders/Bernie_Sanders8.JPEG,Bernie_Sanders
118
+ 117,./train/Bernie_Sanders/Bernie_Sanders3.JPEG,Bernie_Sanders
119
+ 118,./train/Bernie_Sanders/Bernie_Sanders10.JPEG,Bernie_Sanders
120
+ 119,./train/Bernie_Sanders/Bernie_Sanders2.JPEG,Bernie_Sanders
test/.DS_Store ADDED
Binary file (10.2 kB). View file
 
test/Arvind_kejriwal/.DS_Store ADDED
Binary file (6.15 kB). View file
 
test/Arvind_kejriwal/Arvind_kejriwal11.JPEG ADDED
test/Barack_Obama/.DS_Store ADDED
Binary file (6.15 kB). View file
 
test/Barack_Obama/barack_obama11.JPEG ADDED
test/Ben_Carson/.DS_Store ADDED
Binary file (6.15 kB). View file
 
test/Ben_Carson/Ben_Carson11.JPEG ADDED
test/Bernie_Sanders/.DS_Store ADDED
Binary file (6.15 kB). View file
 
test/Bernie_Sanders/Bernie_Sanders17.JPEG ADDED
test/Emmanuel_Macron/.DS_Store ADDED
Binary file (6.15 kB). View file
 
test/Emmanuel_Macron/Emmanuel_Macron11.JPEG ADDED
test/Hillary_Clinton/.DS_Store ADDED
Binary file (6.15 kB). View file
 
test/Hillary_Clinton/Hillary_Clinton11.JPEG ADDED
test/Joe_Biden/.DS_Store ADDED
Binary file (6.15 kB). View file
 
test/Joe_Biden/Biden11.JPEG ADDED
test/Kamala_Harris/.DS_Store ADDED
Binary file (6.15 kB). View file
 
test/Kamala_Harris/Kamala_Harris11.JPEG ADDED
test/Kim_Jong_Un/.DS_Store ADDED
Binary file (6.15 kB). View file
 
test/Kim_Jong_Un/Kim_Jong_Un11.JPEG ADDED
test/Michelle_Obama/.DS_Store ADDED
Binary file (6.15 kB). View file
 
test/Michelle_Obama/Michelle_Obama11.JPEG ADDED
test/Narendra_Modi/.DS_Store ADDED
Binary file (6.15 kB). View file
 
test/Narendra_Modi/narendra_modi11.JPEG ADDED
test/Rahul_Gandhi/.DS_Store ADDED
Binary file (6.15 kB). View file
 
test/Rahul_Gandhi/Rahul_Gandhi17.JPEG ADDED
train/.DS_Store ADDED
Binary file (10.2 kB). View file
 
train/Arvind_kejriwal/.DS_Store ADDED
Binary file (6.15 kB). View file
 
train/Arvind_kejriwal/Arvind_kejriwal1.JPEG ADDED
train/Arvind_kejriwal/Arvind_kejriwal10.JPEG ADDED
train/Arvind_kejriwal/Arvind_kejriwal2.JPEG ADDED
train/Arvind_kejriwal/Arvind_kejriwal3.JPEG ADDED
train/Arvind_kejriwal/Arvind_kejriwal4.JPEG ADDED
train/Arvind_kejriwal/Arvind_kejriwal5.JPEG ADDED
train/Arvind_kejriwal/Arvind_kejriwal6.JPEG ADDED
train/Arvind_kejriwal/Arvind_kejriwal7.JPEG ADDED
train/Arvind_kejriwal/Arvind_kejriwal8.JPEG ADDED
train/Arvind_kejriwal/Arvind_kejriwal9.JPEG ADDED
train/Barack_Obama/.DS_Store ADDED
Binary file (6.15 kB). View file
 
train/Barack_Obama/barack obama7.JPEG ADDED
train/Barack_Obama/barack_obama1.JPEG ADDED
train/Barack_Obama/barack_obama10.JPEG ADDED
train/Barack_Obama/barack_obama2.JPEG ADDED