meryadri commited on
Commit
6537563
·
1 Parent(s): 7b610ce

Change of dataset!

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. app.py +3 -4
  2. createTiles.py +95 -0
  3. data/.DS_Store +0 -0
  4. data/images/0B4B7AAB-C25F-4868-A877-8F5EAFD50BC6-34559-0000043DC6E668A2.JPG +0 -3
  5. data/images/1ACFF3AB-E48B-440D-BE02-75F784A2E480-51108-000011D4109333F6.JPG +0 -3
  6. data/images/2F660614-2708-4826-8D34-3F29B1D230E5-28988-000003B80581EEC6.JPG +0 -3
  7. data/images/84A96A26-EDBD-4AEF-8C2E-D22F4F357963-28988-000003ABF618F84B.JPG +0 -3
  8. data/images/D696F3D9-DE42-47F0-9B3E-491BB366D7EE-28988-000003ACF0925C0D.JPG +0 -3
  9. data/images/DSCF1000.JPG +0 -3
  10. data/images/DSCF1184.JPG +0 -3
  11. data/tiles/backup_cobalt_bloom.jpg +0 -3
  12. data/tiles/backup_coral_flower.jpg +0 -3
  13. data/tiles/backup_coral_red.jpg +0 -3
  14. data/tiles/backup_eggshell.jpg +0 -3
  15. data/tiles/backup_fuchsia_flower.jpg +0 -3
  16. data/tiles/backup_golden_marigold.jpg +0 -3
  17. data/tiles/backup_honey_bloom.jpg +0 -3
  18. data/tiles/backup_magenta_bloom.jpg +0 -3
  19. data/tiles/backup_magenta_flower.jpg +0 -3
  20. data/tiles/backup_maroon_dahlia.jpg +0 -3
  21. data/tiles/backup_mint_flower.jpg +0 -3
  22. data/tiles/backup_navy_flower.jpg +0 -3
  23. data/tiles/backup_orange_marigold.jpg +0 -3
  24. data/tiles/backup_peach_bloom.jpg +0 -3
  25. data/tiles/backup_persimmon.jpg +0 -3
  26. data/tiles/backup_plum_flower.jpg +0 -3
  27. data/tiles/backup_sage_green.jpg +0 -3
  28. data/tiles/backup_snow_white.jpg +0 -3
  29. data/tiles/backup_teal_flower.jpg +0 -3
  30. data/tiles/blue_flower.jpg +0 -3
  31. data/tiles/blush_pink.jpg +0 -3
  32. data/tiles/bone_white.jpg +0 -3
  33. data/tiles/buttercup.jpg +0 -3
  34. data/tiles/canary_bloom.jpg +0 -3
  35. data/tiles/cerulean.jpg +0 -3
  36. data/tiles/cherry_bloom.jpg +0 -3
  37. data/tiles/coral_flower.jpg +0 -3
  38. data/tiles/coral_red.jpg +0 -3
  39. data/tiles/cream_flower.jpg +0 -3
  40. data/tiles/crimson_rose.jpg +0 -3
  41. data/tiles/dark_flower.jpg +0 -3
  42. data/tiles/forest_bloom.jpg +0 -3
  43. data/tiles/fuchsia_flower.jpg +0 -3
  44. data/tiles/golden_marigold.jpg +0 -3
  45. data/tiles/green_leaves.jpg +0 -3
  46. data/tiles/honey_bloom.jpg +0 -3
  47. data/tiles/hot_pink.jpg +0 -3
  48. data/tiles/indigo_bloom.jpg +0 -3
  49. data/tiles/ivory_bloom.jpg +0 -3
  50. data/tiles/light_flower.jpg +0 -3
app.py CHANGED
@@ -26,10 +26,9 @@ def preprocess_and_mosaic(image: Image.Image, grid_size: int, n_colors: int):
26
 
27
 
28
  cell_size = 400 // grid_size
29
- actual_grid_size = 400 // cell_size # This might be smaller than grid_size
30
- actual_image_size = actual_grid_size * cell_size # This might be smaller than 400
31
 
32
- # Crop the image to match the actual grid dimensions
33
  resized_np_cropped = resized_np[:actual_image_size, :actual_image_size]
34
 
35
  grid_labels, seg_time = timed(segment_image_grid)(resized_np_cropped, actual_grid_size, color_centers)
@@ -82,7 +81,7 @@ with gr.Blocks() as demo:
82
  with gr.Row():
83
  orig_out = gr.Image(label="Resized & Color Quantized (400x400)")
84
  seg_out = gr.Image(label="Grid Segmentation Preview")
85
- mosaic_out = gr.Image(label="Flower Mosaic Result")
86
  info_out = gr.Textbox(label="Metrics & Timing", interactive=False)
87
 
88
  # Add examples using Unsplash URLs
 
26
 
27
 
28
  cell_size = 400 // grid_size
29
+ actual_grid_size = 400 // cell_size
30
+ actual_image_size = actual_grid_size * cell_size
31
 
 
32
  resized_np_cropped = resized_np[:actual_image_size, :actual_image_size]
33
 
34
  grid_labels, seg_time = timed(segment_image_grid)(resized_np_cropped, actual_grid_size, color_centers)
 
81
  with gr.Row():
82
  orig_out = gr.Image(label="Resized & Color Quantized (400x400)")
83
  seg_out = gr.Image(label="Grid Segmentation Preview")
84
+ mosaic_out = gr.Image(label="Mosaic Result")
85
  info_out = gr.Textbox(label="Metrics & Timing", interactive=False)
86
 
87
  # Add examples using Unsplash URLs
createTiles.py ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import requests
3
+ import io
4
+ import colorsys
5
+ import random
6
+ from PIL import Image
7
+ from datasets import load_dataset
8
+
9
+ def rgb_to_hsv(rgb):
10
+ """Convert RGB [0-255] to HSV tuple (h, s, v)."""
11
+ r, g, b = [c / 255.0 for c in rgb]
12
+ return colorsys.rgb_to_hsv(r, g, b) # values in [0,1]
13
+
14
+ def dominant_hue(palettes):
15
+ """Return dominant hue (0–360) from palettes dict of RGB lists."""
16
+ all_colors = []
17
+ for k, colors in palettes.items():
18
+ all_colors.extend(colors)
19
+ if not all_colors:
20
+ return None
21
+ hsv_vals = [rgb_to_hsv(c) for c in all_colors]
22
+ hues = [h * 360 for (h, s, v) in hsv_vals if s > 0.2 and v > 0.2] # ignore gray/dark
23
+ if not hues:
24
+ return None
25
+ return sum(hues) / len(hues)
26
+
27
+ def create_balanced_tiles(limit=500, tile_size=64, bins=12):
28
+ """Create a balanced set of colored tiles from Unsplash-Lite-Palette."""
29
+ os.makedirs("data/tiles", exist_ok=True)
30
+
31
+ print("Loading Unsplash-Lite-Palette dataset...")
32
+ ds = load_dataset("1aurent/unsplash-lite-palette", split="train")
33
+
34
+ # Group images into hue bins
35
+ hue_bins = {i: [] for i in range(bins)}
36
+ for row in ds:
37
+ h = dominant_hue(row["palettes"])
38
+ if h is not None:
39
+ bin_idx = int(h / (360 / bins)) % bins
40
+ hue_bins[bin_idx].append(row)
41
+
42
+ print(f"Dataset grouped into {bins} hue bins.")
43
+
44
+ # Pick evenly from bins
45
+ per_bin = max(1, limit // bins)
46
+ selected = []
47
+ for b in range(bins):
48
+ random.shuffle(hue_bins[b])
49
+ selected.extend(hue_bins[b][:per_bin])
50
+
51
+ # In case fewer than limit (some bins are sparse)
52
+ if len(selected) < limit:
53
+ extra_needed = limit - len(selected)
54
+ all_rows = [row for bin_rows in hue_bins.values() for row in bin_rows]
55
+ random.shuffle(all_rows)
56
+ selected.extend(all_rows[:extra_needed])
57
+
58
+ print(f"Selected {len(selected)} images across hue bins.")
59
+
60
+ successful = 0
61
+ for i, row in enumerate(selected):
62
+ url = row["url"] # direct image URL
63
+ filename = f"tile_{i:04d}.jpg"
64
+
65
+ try:
66
+ resp = requests.get(url, timeout=10)
67
+ resp.raise_for_status()
68
+ img = Image.open(io.BytesIO(resp.content)).convert("RGB")
69
+
70
+ # Crop to square
71
+ w, h = img.size
72
+ if w != h:
73
+ min_side = min(w, h)
74
+ left = (w - min_side) // 2
75
+ top = (h - min_side) // 2
76
+ img = img.crop((left, top, left + min_side, top + min_side))
77
+
78
+ # Resize
79
+ img = img.resize((tile_size, tile_size), Image.Resampling.LANCZOS)
80
+
81
+ # Save
82
+ filepath = os.path.join("data/tiles", filename)
83
+ img.save(filepath, "JPEG", quality=85, optimize=True)
84
+ successful += 1
85
+
86
+ if i % 50 == 0:
87
+ print(f"✓ {successful}/{i+1} saved ({filename})")
88
+
89
+ except Exception as e:
90
+ print(f"✗ Failed {i} ({url}): {e}")
91
+
92
+ print(f"\n✅ Done! {successful} balanced color tiles saved in data/tiles/")
93
+
94
+ if __name__ == "__main__":
95
+ create_balanced_tiles(limit=500, tile_size=64, bins=12)
data/.DS_Store CHANGED
Binary files a/data/.DS_Store and b/data/.DS_Store differ
 
data/images/0B4B7AAB-C25F-4868-A877-8F5EAFD50BC6-34559-0000043DC6E668A2.JPG DELETED

Git LFS Details

  • SHA256: 55d0126a8fb02607996851a403a31acd280af637bb98fca8810d0bba4292f3f3
  • Pointer size: 132 Bytes
  • Size of remote file: 1.05 MB
data/images/1ACFF3AB-E48B-440D-BE02-75F784A2E480-51108-000011D4109333F6.JPG DELETED

Git LFS Details

  • SHA256: 77cf366e4ac017717b670cc07ed884d9976e2128527daef9c8a1190c0d658f8c
  • Pointer size: 131 Bytes
  • Size of remote file: 530 kB
data/images/2F660614-2708-4826-8D34-3F29B1D230E5-28988-000003B80581EEC6.JPG DELETED

Git LFS Details

  • SHA256: e05ac868c2122b277fe1f820151d4cfd9e89a957be5a358fb282ab76a409f47b
  • Pointer size: 131 Bytes
  • Size of remote file: 707 kB
data/images/84A96A26-EDBD-4AEF-8C2E-D22F4F357963-28988-000003ABF618F84B.JPG DELETED

Git LFS Details

  • SHA256: 451e8ac18e50ee397990464618e6ede2ad0e723a21ca2a837a7d999e18d9ad99
  • Pointer size: 131 Bytes
  • Size of remote file: 941 kB
data/images/D696F3D9-DE42-47F0-9B3E-491BB366D7EE-28988-000003ACF0925C0D.JPG DELETED

Git LFS Details

  • SHA256: 14693e840edc15ea94a63bf2bf119f3684bc374a4a043b03d8591b7a2baf963a
  • Pointer size: 131 Bytes
  • Size of remote file: 568 kB
data/images/DSCF1000.JPG DELETED

Git LFS Details

  • SHA256: 1487c0df3795e6f092739197d4ee7e1fe6c6d1c6c41312cf4b769eadebedaa4d
  • Pointer size: 132 Bytes
  • Size of remote file: 2.12 MB
data/images/DSCF1184.JPG DELETED

Git LFS Details

  • SHA256: 0646db1291f0aae66a3caf26b7eaab48d097993836884d8f19d88120199edac2
  • Pointer size: 131 Bytes
  • Size of remote file: 607 kB
data/tiles/backup_cobalt_bloom.jpg DELETED

Git LFS Details

  • SHA256: c71bba5a3fc4e50e56e323dac6241fdeacd4b5de9d9d62d5e338cb3180a0e251
  • Pointer size: 128 Bytes
  • Size of remote file: 694 Bytes
data/tiles/backup_coral_flower.jpg DELETED

Git LFS Details

  • SHA256: cd2e54d2da2efeae1681fc5232111046e92952d7d4f5c0cf030234511e6ba9d7
  • Pointer size: 128 Bytes
  • Size of remote file: 693 Bytes
data/tiles/backup_coral_red.jpg DELETED

Git LFS Details

  • SHA256: 0e6fcc48c895768a3d53f3142bae09ac1c7dc5f27705e115fd8a2e7e98704cbf
  • Pointer size: 128 Bytes
  • Size of remote file: 693 Bytes
data/tiles/backup_eggshell.jpg DELETED

Git LFS Details

  • SHA256: 5862724cfc0b99a2fce39ce733c2d71115dd9a31fd53fa50a68727e945893f67
  • Pointer size: 128 Bytes
  • Size of remote file: 693 Bytes
data/tiles/backup_fuchsia_flower.jpg DELETED

Git LFS Details

  • SHA256: ca5c9dd28d4ab0c577feb123317acc4c698b3157c117b5ef98eef8d4de87afdd
  • Pointer size: 128 Bytes
  • Size of remote file: 694 Bytes
data/tiles/backup_golden_marigold.jpg DELETED

Git LFS Details

  • SHA256: 53d092a9141859f2c3c9aa8405962c994c770d6aa72fabe9b5f37d03a4052228
  • Pointer size: 128 Bytes
  • Size of remote file: 694 Bytes
data/tiles/backup_honey_bloom.jpg DELETED

Git LFS Details

  • SHA256: b485513da57ff5235948b9ca43ba24655cb679aa6577dcb37c0c553144a3b02e
  • Pointer size: 128 Bytes
  • Size of remote file: 694 Bytes
data/tiles/backup_magenta_bloom.jpg DELETED

Git LFS Details

  • SHA256: ca5c9dd28d4ab0c577feb123317acc4c698b3157c117b5ef98eef8d4de87afdd
  • Pointer size: 128 Bytes
  • Size of remote file: 694 Bytes
data/tiles/backup_magenta_flower.jpg DELETED

Git LFS Details

  • SHA256: ca5c9dd28d4ab0c577feb123317acc4c698b3157c117b5ef98eef8d4de87afdd
  • Pointer size: 128 Bytes
  • Size of remote file: 694 Bytes
data/tiles/backup_maroon_dahlia.jpg DELETED

Git LFS Details

  • SHA256: b65377cb6d94b93c28d0ec94743d12bd617e0f229845b76de80150e536448ee8
  • Pointer size: 128 Bytes
  • Size of remote file: 694 Bytes
data/tiles/backup_mint_flower.jpg DELETED

Git LFS Details

  • SHA256: 72a1175e74b10148cdb0676d823969c8a292ecce5eef481d93f921160f3d6d09
  • Pointer size: 128 Bytes
  • Size of remote file: 693 Bytes
data/tiles/backup_navy_flower.jpg DELETED

Git LFS Details

  • SHA256: 04d73487e14443582e86c23213a8c62ad32af101ea6e30ee297b439e8468e73e
  • Pointer size: 128 Bytes
  • Size of remote file: 693 Bytes
data/tiles/backup_orange_marigold.jpg DELETED

Git LFS Details

  • SHA256: b3f2eaa87fae3ed178bec673c1c2b33d7fcc3cbb6feda4aeeb6e4bf40d531eab
  • Pointer size: 128 Bytes
  • Size of remote file: 694 Bytes
data/tiles/backup_peach_bloom.jpg DELETED

Git LFS Details

  • SHA256: 6cdccad2832b84d505343035c76e7c61d8e781ca2c41ab7deff1a32c81357d0f
  • Pointer size: 128 Bytes
  • Size of remote file: 693 Bytes
data/tiles/backup_persimmon.jpg DELETED

Git LFS Details

  • SHA256: c821d50c9817ba20d49eb29d1750e45b92aa157a21c69372f840ee67209808ad
  • Pointer size: 128 Bytes
  • Size of remote file: 693 Bytes
data/tiles/backup_plum_flower.jpg DELETED

Git LFS Details

  • SHA256: f14d01d15ea1eb0f34d2eb7c6d6f11cbed30617dc4dbe01d78d8888ed614b813
  • Pointer size: 128 Bytes
  • Size of remote file: 693 Bytes
data/tiles/backup_sage_green.jpg DELETED

Git LFS Details

  • SHA256: 5b5fe7824728ffc611428cf228247fc5c3165d4b3cada407cd26da3580806d9d
  • Pointer size: 128 Bytes
  • Size of remote file: 693 Bytes
data/tiles/backup_snow_white.jpg DELETED

Git LFS Details

  • SHA256: 40b7400f06bdaa1b7582337f9bee1d89d395d54929f90d28c70fb60fcba89bcc
  • Pointer size: 128 Bytes
  • Size of remote file: 691 Bytes
data/tiles/backup_teal_flower.jpg DELETED

Git LFS Details

  • SHA256: 30da6a20e28f81f24c4b5dcb103e609d8d9ba56951454ef6db8b9d0043a10286
  • Pointer size: 128 Bytes
  • Size of remote file: 693 Bytes
data/tiles/blue_flower.jpg DELETED

Git LFS Details

  • SHA256: 9929c45f57808fcc40d75579a56176ce0b7ccc0840a3117a1c9f89ff9f328358
  • Pointer size: 129 Bytes
  • Size of remote file: 2.32 kB
data/tiles/blush_pink.jpg DELETED

Git LFS Details

  • SHA256: 5b0c513b2fbb4f4444cb071d938ff9d20a35b9151d70dd3a6f50d6f7aa035b62
  • Pointer size: 129 Bytes
  • Size of remote file: 1.05 kB
data/tiles/bone_white.jpg DELETED

Git LFS Details

  • SHA256: 5b0c513b2fbb4f4444cb071d938ff9d20a35b9151d70dd3a6f50d6f7aa035b62
  • Pointer size: 129 Bytes
  • Size of remote file: 1.05 kB
data/tiles/buttercup.jpg DELETED

Git LFS Details

  • SHA256: 4ee1cf45c9d94f53549a7bcca6b021440b4e1dd8d1bcb41919bd689fd21a651e
  • Pointer size: 129 Bytes
  • Size of remote file: 1.82 kB
data/tiles/canary_bloom.jpg DELETED

Git LFS Details

  • SHA256: ec40120f9e15fb8e847a8511451156a12bbcfbad7218ac6a396167b881b56346
  • Pointer size: 129 Bytes
  • Size of remote file: 1.49 kB
data/tiles/cerulean.jpg DELETED

Git LFS Details

  • SHA256: ec40120f9e15fb8e847a8511451156a12bbcfbad7218ac6a396167b881b56346
  • Pointer size: 129 Bytes
  • Size of remote file: 1.49 kB
data/tiles/cherry_bloom.jpg DELETED

Git LFS Details

  • SHA256: ec40120f9e15fb8e847a8511451156a12bbcfbad7218ac6a396167b881b56346
  • Pointer size: 129 Bytes
  • Size of remote file: 1.49 kB
data/tiles/coral_flower.jpg DELETED

Git LFS Details

  • SHA256: 4ee1cf45c9d94f53549a7bcca6b021440b4e1dd8d1bcb41919bd689fd21a651e
  • Pointer size: 129 Bytes
  • Size of remote file: 1.82 kB
data/tiles/coral_red.jpg DELETED

Git LFS Details

  • SHA256: 4ee1cf45c9d94f53549a7bcca6b021440b4e1dd8d1bcb41919bd689fd21a651e
  • Pointer size: 129 Bytes
  • Size of remote file: 1.82 kB
data/tiles/cream_flower.jpg DELETED

Git LFS Details

  • SHA256: f54813b9603b929f2278ef11d7761f2cdb1d656a56b8a45e1f9033e34f92ced3
  • Pointer size: 129 Bytes
  • Size of remote file: 1.64 kB
data/tiles/crimson_rose.jpg DELETED

Git LFS Details

  • SHA256: 236f7015526adbd6d554786527031d0170b4fbd89b2409d370e90c16c92c2545
  • Pointer size: 129 Bytes
  • Size of remote file: 1.6 kB
data/tiles/dark_flower.jpg DELETED

Git LFS Details

  • SHA256: 1e180c500de0f75df6a3d55a0c1aa7285cc0829bc60fc77eb7fa04609109a3e7
  • Pointer size: 129 Bytes
  • Size of remote file: 1.62 kB
data/tiles/forest_bloom.jpg DELETED

Git LFS Details

  • SHA256: 5b0c513b2fbb4f4444cb071d938ff9d20a35b9151d70dd3a6f50d6f7aa035b62
  • Pointer size: 129 Bytes
  • Size of remote file: 1.05 kB
data/tiles/fuchsia_flower.jpg DELETED

Git LFS Details

  • SHA256: 28284d30f27c81bd0c5db660b23649c9bb010fc174fce5d482b4115b8072f0d6
  • Pointer size: 129 Bytes
  • Size of remote file: 1.25 kB
data/tiles/golden_marigold.jpg DELETED

Git LFS Details

  • SHA256: 28284d30f27c81bd0c5db660b23649c9bb010fc174fce5d482b4115b8072f0d6
  • Pointer size: 129 Bytes
  • Size of remote file: 1.25 kB
data/tiles/green_leaves.jpg DELETED

Git LFS Details

  • SHA256: 1ef211c0d468923519851fb58ca60500fe8a1e80309cbb6b7c503796c8eae5c7
  • Pointer size: 129 Bytes
  • Size of remote file: 1.87 kB
data/tiles/honey_bloom.jpg DELETED

Git LFS Details

  • SHA256: 7f9050ccb25494ae92d65297aee228ed512a3dcfcc578b807a7e28acfc059f1b
  • Pointer size: 129 Bytes
  • Size of remote file: 2.03 kB
data/tiles/hot_pink.jpg DELETED

Git LFS Details

  • SHA256: 236f7015526adbd6d554786527031d0170b4fbd89b2409d370e90c16c92c2545
  • Pointer size: 129 Bytes
  • Size of remote file: 1.6 kB
data/tiles/indigo_bloom.jpg DELETED

Git LFS Details

  • SHA256: a94a3ddec786456d57f0dc485e1280efcaace65839c5e0cdb763f6c795b3bf98
  • Pointer size: 129 Bytes
  • Size of remote file: 1.3 kB
data/tiles/ivory_bloom.jpg DELETED

Git LFS Details

  • SHA256: 4541fe07a3ad0b1259a278111081d078132a28c091b5c48560f08bbe9a14d7fd
  • Pointer size: 129 Bytes
  • Size of remote file: 1.46 kB
data/tiles/light_flower.jpg DELETED

Git LFS Details

  • SHA256: 4541fe07a3ad0b1259a278111081d078132a28c091b5c48560f08bbe9a14d7fd
  • Pointer size: 129 Bytes
  • Size of remote file: 1.46 kB