Commit
·
8a46519
1
Parent(s):
7d41d39
update
Browse files
app.py
CHANGED
@@ -6,6 +6,7 @@ import httpx
|
|
6 |
import io
|
7 |
from PIL import Image
|
8 |
import PIL
|
|
|
9 |
from toolz import pluck
|
10 |
from piffle.image import IIIFImageClient
|
11 |
|
@@ -33,10 +34,14 @@ def get_image_urls_from_manifest(data):
|
|
33 |
return image_urls
|
34 |
|
35 |
|
36 |
-
def resize_iiif_urls(
|
37 |
-
parts = im_url.split("/")
|
38 |
-
parts[6] = f"{size}, {size}"
|
39 |
-
return "/".join(parts)
|
|
|
|
|
|
|
|
|
40 |
|
41 |
|
42 |
async def get_image(client, url):
|
@@ -52,11 +57,7 @@ async def get_images(urls):
|
|
52 |
tasks = [asyncio.ensure_future(get_image(client, url)) for url in urls]
|
53 |
images = await asyncio.gather(*tasks)
|
54 |
assert len(images) == len(urls)
|
55 |
-
|
56 |
-
for url, image in zip(urls, images):
|
57 |
-
if image is not None:
|
58 |
-
image_url_tuples.append((url, image))
|
59 |
-
return image_url_tuples
|
60 |
# return [image for image in images if image is not None]
|
61 |
|
62 |
|
@@ -73,10 +74,13 @@ def predict(inputs):
|
|
73 |
top_pred = pred[0]
|
74 |
if top_pred['label'] == 'illustrated':
|
75 |
image_url = IIIFImageClient.init_from_url(url)
|
76 |
-
image_url = image_url.
|
77 |
-
|
|
|
|
|
78 |
return predicted_images
|
79 |
# for image in images:
|
|
|
80 |
# top_pred = classif_pipeline(image, top_k=1)[0]
|
81 |
# if top_pred['label'] == 'illustrated':
|
82 |
# predicted_images.append((image, top_pred['score']))
|
@@ -87,7 +91,7 @@ gallery.style(grid=3)
|
|
87 |
|
88 |
demo = gr.Interface(
|
89 |
fn=predict,
|
90 |
-
inputs=gr.Text(),
|
91 |
outputs=gallery,
|
92 |
title="ImageIN",
|
93 |
description="Identify illustrations in pages of historical books!",
|
|
|
6 |
import io
|
7 |
from PIL import Image
|
8 |
import PIL
|
9 |
+
from functools import lru_cache
|
10 |
from toolz import pluck
|
11 |
from piffle.image import IIIFImageClient
|
12 |
|
|
|
34 |
return image_urls
|
35 |
|
36 |
|
37 |
+
def resize_iiif_urls(image_url, size='224'):
|
38 |
+
# parts = im_url.split("/")
|
39 |
+
# parts[6] = f"{size}, {size}"
|
40 |
+
# return "/".join(parts)
|
41 |
+
image_url = IIIFImageClient.init_from_url(image_url)
|
42 |
+
image_url = image_url.size(width=size,height=size)
|
43 |
+
return image_url.__str__()
|
44 |
+
|
45 |
|
46 |
|
47 |
async def get_image(client, url):
|
|
|
57 |
tasks = [asyncio.ensure_future(get_image(client, url)) for url in urls]
|
58 |
images = await asyncio.gather(*tasks)
|
59 |
assert len(images) == len(urls)
|
60 |
+
return [(url, image) for url, image in zip(urls, images) if image is not None]
|
|
|
|
|
|
|
|
|
61 |
# return [image for image in images if image is not None]
|
62 |
|
63 |
|
|
|
74 |
top_pred = pred[0]
|
75 |
if top_pred['label'] == 'illustrated':
|
76 |
image_url = IIIFImageClient.init_from_url(url)
|
77 |
+
image_url = image_url.size(width=500)
|
78 |
+
image_url = image_url.size(width=500, height='')
|
79 |
+
predicted_images.append((str(image_url), f"Confidence: {top_pred['score']}, \n image url: {image_url}"))
|
80 |
+
|
81 |
return predicted_images
|
82 |
# for image in images:
|
83 |
+
|
84 |
# top_pred = classif_pipeline(image, top_k=1)[0]
|
85 |
# if top_pred['label'] == 'illustrated':
|
86 |
# predicted_images.append((image, top_pred['score']))
|
|
|
91 |
|
92 |
demo = gr.Interface(
|
93 |
fn=predict,
|
94 |
+
inputs=gr.Text(label="IIIF manifest url"),
|
95 |
outputs=gallery,
|
96 |
title="ImageIN",
|
97 |
description="Identify illustrations in pages of historical books!",
|