BookNotesSlidesP-sets Syllabusdraft · v0.2.49.1
💬Comments welcome. To leave a note, select any text and click the note / highlight button that pops up — or open the panel with the tab at the top-right (‹). Notes are visible only inside our private review group.
Computational Photography, an AI-powered Slopendium — 28 Photo collections
expand to📖 Full book outline1 parts · 12 chapters · 44 sections · 17 figures embedded · 0 placeholders · double-click a figure to enlarge
▸Part 28 PHOTO COLLECTIONS⧉
<!--uid: many-images-and-photo-collections-->
reference ML
▸28.1 Photo mosaics⧉
fig-photomosaic
fig-photomosaic · a target photo rebuilt as a photomosaic — each cell a database thumbnail tinted to the cell's mean color; full view reads as the target, a zoom reveals the tiles, a side panel shows one cell's mean-color match (Photo Mosaics, 11.1) ✅
Build one image from thousands of small photos as tiles: downsample the target to a coarse grid, and for each cell pick the library photo whose appearance — mean color, or a small low-resolution descriptor — best matches, a per-cell nearest-neighbor search over the tile database ([[Retrieval]]). Up close it is a wall of distinct photographs; from a distance the eye's spatial integration ([[Human vision]]) fuses the tiles back into the target. The craft is all in the matching and the color balancing: keep tiles from repeating, optionally color-correct each toward its cell, and allow multi-scale tiles where detail demands. It sets up the artistic-collection projects later in the part.
28.1.1 The tiling-and-matching pipeline⧉
28.1.2 Color correction and avoiding repeats⧉
28.1.3 Multi-scale and irregular tilings⧉
28.1.4 Why it resolves into the target at a distance⧉
▸28.2 Retrieval⧉
fig-image-retrieval
fig-image-retrieval · content-based retrieval: a query image → a ranked row of nearest database matches, decreasing similarity left→right (Retrieval, 11.2) ✅
fig-bag-of-visual-words
fig-bag-of-visual-words · the text-retrieval analogy: local features → quantized visual words against a vocabulary → an inverted index + TF-IDF, drawn beside the document→words→index text pipeline (Retrieval, 11.2) ✅
Search a database by *appearance*, not metadata: represent each image as a point in a space where distance is dissimilarity, and return its nearest neighbors. The classic pipeline is text retrieval in disguise — local features quantized to "visual words," indexed, and ranked — while the modern one learns an embedding so that nearness means *semantic* likeness, even across modalities (search images with a sentence). Both live or die on doing the nearest-neighbor search fast enough at web scale ([[Fast matching]]).
equations
**TF-IDF** weight $w_{t,d}=\mathrm{tf}_{t,d}\cdot\log\frac{N}{n_t}$ (visual-word frequency in an image, down-weighted by how common the word is across the corpus)
cosine similarity $\cos\theta=\frac{\mathbf q\cdot\mathbf d}{\lVert\mathbf q\rVert\lVert\mathbf d\rVert}$ between embedding/BoW vectors.
28.2.4 Mining what makes a place distinctive⧉
▸28.3 Auto curation⧉
fig-auto-curation
fig-auto-curation · a cluster of near-duplicate shots scored by quality + aesthetics → the single best kept (green), the rest dimmed (Auto curation, 11.3) ✅
From a huge personal set, automatically keep the few that are worth keeping. The pipeline reads like a triage: reject the technically broken (blurry, blown-out, blinked), score the survivors for aesthetic appeal, collapse near-duplicate bursts to their best member, and finally choose a small set that is both good *and* varied. It is retrieval's selective sibling — not "find images like this" but "find the ones worth keeping." Three criteria really combine — **technical** (sharpness, focus, noise), **aesthetic** (a learned sense of a good photo), and **personal relevance** (whether the shot matters *to you*) — and only the first is fully objective, which is why automatic curation can propose but not decide.
▸28.4 Life logging cameras⧉
fig-lifelog-firehose
fig-lifelog-firehose · a wearable camera's day → a firehose of thousands of thumbnails funnelling through curation/summary down to a few keepers (Life logging cameras, 11.4) ✅
Always-on wearable cameras passively photograph your whole day, producing thousands of images with no decision per shot. The seminal one, SenseCam, was studied as a memory aid more than a camera — which is the point: the value is in *recall*, and that only works once the unmanageable stream is curated, summarized, and made searchable. Passive capture thus hands the rest of this part its hardest workload, and hands ethics a thorny case.
▸28.5 Photo tourism⧉
fig-photo-tourism
fig-photo-tourism · SfM on an internet photo collection: a pile of tourists' photos of one landmark → a sparse 3-D point cloud with recovered camera frusta around it (Photo tourism, 11.6) ✅
Photo Tourism showed that the uncoordinated photographs the internet already holds of any famous place are, collectively, a 3-D scanner. Structure-from-motion ties them together — matching features across radically different viewpoints, rejecting the garbage with RANSAC, and solving for both the scene points and every camera at once — yielding a point cloud studded with the recovered cameras. The application is experiential: navigate the place in 3-D and glide between real photographs. The technique is foundational SfM; the data is the crowd's.
▸28.6 Photobios⧉
fig-photobio-timelapse
fig-photobio-timelapse · one person's face photos aligned to a common frame (eyes registered) and time-ordered into a smooth aging sequence (Photobios, 11.7) ✅
A photobio takes the unsorted portraits a person amasses over decades and turns them into a smooth, navigable life of the face. Align them all to one frame, order them sensibly, and morph across the gaps — and the data supplies a continuous experience no single photo holds. It is morphing-plus-alignment at collection scale, and a personal-faces echo of the landmark navigation in Photo Tourism.
▸28.7 Average Explorer⧉
fig-galton-composite
fig-galton-composite ·
fig-category-averages
fig-category-averages ·
fig-average-explorer-ui
fig-average-explorer-ui ·
28.7.1 Galton's composite portraiture: what it was for⧉
28.7.2 Alignment is everything⧉
28.7.3 The average of a category⧉
28.7.4 An artistic lineage⧉
28.7.5 AverageExplorer: averaging made interactive⧉
28.7.6 What an average is, and what it is good for⧉
▸28.8 Pix 2 GPS⧉
fig-im2gps
fig-im2gps · IM2GPS geolocation: a query photo → nearest geotagged matches → a world-map probability heatmap of likely locations (Pix 2 GPS, 11.8) ✅
IM2GPS asks the audacious question — *where on Earth is this?* — and answers it with nothing but pixels and a giant geotagged collection. Retrieve the visually nearest photos, look at *their* coordinates, and the planet itself becomes the model. Crucially the answer is a distribution, not a point: a nondescript field stays vague, while distinctive architecture or vegetation pins the location sharply. It is the geolocation member of the "millions of photos" family.
equations
a posterior over location $p(\text{lat,lon}\mid I)\propto$ the geotag density of the nearest visual neighbors (a kernel/Parzen estimate over the retrieved matches' coordinates).
28.8.3 Mapping the collection itself⧉
▸28.9 Personalized priors⧉
fig-personalized-prior
fig-personalized-prior · a prior fine-tuned on one person's own photos restores/synthesizes *them* faithfully vs a generic prior (wrong identity) — DreamBooth-style personalization (Personalized priors, 11.9) ✅
A prior is whatever the model assumes before it sees the degraded input — and for restoring or generating a specific person, the best assumption is *their own past photographs*. Personalized priors fold an individual's collection into the model so that super-resolution, restoration, and generation snap toward the real subject instead of a generic average. It is this part's data-as-prior philosophy aimed at a single person: the collection is small, but it is *exactly the right* collection.
▸28.10 Artistic projects with photo collections⧉
fig-salavon-average
fig-salavon-average · averaging many same-genre photos into one ghostly prototype that surfaces the genre's shared conventions (Artistic projects, 11.10) ✅
▸28.11 Pareidolia⧉
fig-pareidolia-faces
fig-pareidolia-faces · objects whose arrangement triggers a face percept, with a face-detector box + eye/mouth overlay — human vs machine pareidolia (Artistic projects, 11.10) ✅
**Pareidolia** is the human tendency to see **faces (and patterns) in things** — the outlet on the wall, the front of a car, a cloud. It is a perception quirk with real bite for computational photography, where face detectors are run indiscriminately across every image. *Seeing Faces in Things* (**Hamilton, Stent, … Freeman, 2024**, [arXiv:2409.16143](https://arxiv.org/abs/2409.16143)) turns the phenomenon into a computational object: a dataset of **~5,000 human-annotated "faces in things"** and a study comparing **human vs. machine** face detection on them. [`fig-pareidolia-faces`]
The findings worth telling: face detectors *partly* fire on these illusory faces but **diverge from humans**, and the authors argue an evolutionary pressure to detect **animal** faces may explain why humans over-detect. It is a clean case where a **photo collection** exposes something about *perception itself* — the data-as-instrument creed of this part turned on the visual system, tying the artistic thread back to [[Human vision]].
▸28.12 Displaying images together⧉
fig-kdtree-layout
fig-kdtree-layout ·
fig-som-photo-map
fig-som-photo-map ·
fig-photomosaic
fig-photomosaic · a target photo rebuilt as a photomosaic — each cell a database thumbnail tinted to the cell's mean color; full view reads as the target, a zoom reveals the tiles, a side panel shows one cell's mean-color match (Photo Mosaics, 11.1) ✅
28.12.1 Selection⧉
28.12.2 Layout⧉
28.12.3 Self-organizing maps: a learned map of a collection⧉
28.12.4 Photomosaics: one picture made of many⧉
28.12.5 Color and coherence⧉
28.12.6 Color and coherence⧉
28.12.7 Themes⧉