January 25, 2023

How Camera & Lens Feeds Work

A deep dive into how we create Camera and Lens feeds with EXIF.Glimpse into Glass

Camera & Lens Feeds

In late 2022, we rolled out our new Camera and Lens feed so you could easily find photos taken with your favorite cameras and lenses. But how do we find all the photos taken with a single piece of equipment? Metadata.

We rely on the EXIF standard (a format for storing technical metadata in images) to extract metadata from photos. Manufacturers can use this standard to store information about the camera/lens/settings used, etc. Using the same standard across basically any hardware manufacturer is convenient, because it lets apps like Glass standardize how they extract metadata from images, regardless of who made the equipment. But EXIF data definitely has a few challenges.

Manufacturers can use the Make and Model fields to provide information about which camera was used for a photo. These fields are open text fields, and it’s completely up to the manufacturer to decide what goes in there. This is great, because it gives the manufacturer full control over what they want to put into those fields. But the problem with a Standard that is used in different ways is that it ends up not feeling standardized. (A mess — it feels like a mess.)

“Model”

Let’s look at the Canon EOS Rebel T4i (and ignore that this is, in fact, the same camera as the 650D and the Kiss X6i). We’ve seen this camera show up as the following models —

EOS Rebel T4i
EOS REBEL T4i
Canon EOS REBEL T4i

Okay, this is fine. We could just implement a simple string matching function and consolidate all the cameras with the same name. But it doesn’t always work that way. Let’s use the Samsung Galaxy S22 Ultra as another example. We’ve seen this one show up as —

SM-S908B
SM-S908U
SM-S908E
SM-S908U1

Oh boy 😅 We’ll just have to figure it out based on the model numbers, which also vary by carrier and international models.

Sometimes manufacturers mix names and model numbers, like the Sony α7R III

A7R III
A7r III
ILCE-7RM3

You get the idea. It makes simple string matching difficult and tedious to maintain, because there’s an incredibly large list of exceptions.

“Make”

Something similar happens with the Make field. We’ve seen Leica show up as

Leica
LEICA
Leica Camera AG
Leica Cameras AG
LEICA CAMERA AG

Again, these are all pretty straight forward, but it gets more interesting when things change over time. Like with Konica

Konica
KONICA
Konica Corporation
Konica Minolta
KONICA MINOLTA

Hang on. What’s Minolta doing there?

Minolta
MINOLTA
MinoltaCLE
Minolta Co., Ltd.
KONICA MINOLTA

Right. These two companies merged in 2003. So… are these all the same manufacturer now?

Lenses

Lenses turn the chaos up to 11. Manufacturers use LensMake and LensModel to provide information about the lens being used. Similar to cameras, these show up under many names. Let’s start with Canon's EF 100mm ƒ/2.8 Macro USM

EF100/2.8 USM
EF 100mm macro f2.8 USM
EF100mm f/2.8 Macro USM
EF 100mm f2.8 Macro USM
Canon EF 100mm f/2.8 Macro USM
Canon EF 100mm f2.8 USM

Many subtle differences, all the same lens. And, to make it even more complicated, the LensMake field isn’t always there. This gets particularly tricky when manufacturers don’t include any identifiable model/make information about the lens (*cough* Nikon) —

100.0-300.0 mm
14 mm f/2.8-1.4
88 mm f/--
- mm f/--

Manual manipulation

EXIF metadata is not “protected” within files. This is great. Anyone can crack open an image file in an EXIF editor and make any additions/changes they want. Hell yeah for our analog photographers friends, because you can add the right metadata in your photo editing tool.

But it also introduces consistency problems. This is not great. Additionally, photo editing tools and apps often mess with EXIF data — either modifying it or discarding it entirely. The retro camera iOS app Hipstamatic removes all hardware information and replaces it with Hipstamatic 260. Without debating whether this is the right call or not, overwriting the Make and Model fields make it impossible to figure out which Apple device was used for a particular picture.

Other tools completely discard EXIF information. EXIF information is encoded in the file and takes up space. When preparing an image for sharing on social media, the file should ideally be as small as possible. Since EXIF information isn’t displayed on most social media apps, editing tools often drop it from the file to shave off a few extra bytes.

There are even fewer consistency guarantees for photos taken with film cameras — film scanners, or film scanner software, will insert Make and Model fields based on which scanner was used (shout out to the Noritsu Koki EZ Controller). After that, it’s completely up to the photographer to diligently enter the EXIF data. Which so many of you do and we love you for it.

How we handle all this

With all these complications in mind, we couldn't just flip a switch and suddenly it works. There’s too much room for error, and it’s too easy to make the wrong assumptions. So we went with a more manual process instead, and looks something like this.

— A photo is uploaded to Glass, and we automatically extract all metadata, including camera/lens information.

— After the metadata has been extracted, we determine whether we’ve seen the exact make/model pairs already. If we have, great. It’s safe to assume that this photo was taken with the same equipment and we can automatically link them up to the right feed.

— If we haven’t seen a particular make/model combination yet, we store it in a temporary triaging queue that we regularly check to discover which new equipment has entered our system. From there, we decide what to do with it. We basically have three options:

Completely hide it. We apply this if we know it’s a useless piece of information, like lenses described as -- mm / f --.

Create a new feed for it. If a make/model pair seems legit (for example, a camera we simply hadn’t seen before, or newly released cameras like the Sony α7R V or Fujifilm XT-5), we make sure the name is consistent with similar models and create a feed for it. This is when the camera/lens becomes clickable/tappable, and you can find it in the explore tab.

Link it up to an existing feed. This happens when we see a new notation for a camera/lens that already has a feed. We mark the new make/model pair as an alias for the existing one, and all the photos for both notations will automatically get combined into a single feed.

We automatically apply whatever option we chose to all future photos uploaded with the same make/model pairing. It’s a bit of an arduous process — we’ve seen over 6000 different variations of equipment in our dataset. But processing this manually helps us keep the feeds clean and consistent, so you can find what you’re looking for. This manual process is also why you’re seeing more and more lenses and cameras added every week.

Waiting on one of your favorites to be made a feed? Just send us a note on Mastodon.

Post photograph by Tom Watson

Discover more

There's so much photography to see.

Sign Up
Profile pictureProfile pictureProfile picture

Community, not comparison

Build relationships with and learn from other photographers while enjoying a chronological feed and no public counts.

Learn more

Focused features

Gorgeous apps, public profiles, appreciations, categories, ad free, high quality images, camera and lens feeds…

Learn more