davanstrien HF Staff commited on
Commit
8a46519
·
1 Parent(s): 7d41d39
Files changed (1) hide show
  1. app.py +16 -12
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(im_url, size='224'):
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
- image_url_tuples = []
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.canonicalize()
77
- predicted_images.append((image_url.__str__(), f"Confidence: {top_pred['score']}, page: {10}"))
 
 
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!",