Spaces:
Runtime error
Runtime error
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!",
|