When people first hear about photo geolocation, they often ask: “Can’t Google Lens already do that?” It is a fair question. Google Lens is a remarkably capable tool — it can identify plants, translate menus and recognise landmarks. But there is a fundamental difference between recognising what is in a photo and determining where it was taken. That distinction is precisely why we built GeoPin.
What Google Lens actually does
Google Lens is a visual search engine. It excels at object recognition and matching images to its index of web content. Point it at the Eiffel Tower and it tells you that you are looking at the Eiffel Tower. Point it at an Amsterdam canal house and you might get a result — if that particular building features prominently on a well-indexed website.
The underlying approach is classification and web matching. Google Lens asks: “What is this thing, and where does it appear online?” This works well for famous landmarks, branded products and anything with a strong web presence. It fails for the vast majority of locations that do not have a Wikipedia page.
What GeoPin does differently
GeoPin asks a fundamentally different question: “Where in the Netherlands was this photo taken?” Instead of searching the web, we search a vector database of millions of street-level images with known GPS coordinates.
Our pipeline works in three stages. First, we extract a visual embedding from your uploaded photo using CosPlace, a model specifically trained for visual place recognition. This produces a 512-dimensional vector that captures the visual identity of a place — not the objects in it, but the spatial arrangement of buildings, streets, vegetation and infrastructure.
Second, we perform a nearest-neighbour search across our indexed imagery using Cloudflare Vectorize. This retrieves the best candidate matches: actual street-level photos from known locations that most resemble your upload.
Third, we carry out geometric verification using DISK feature extraction and LightGlue matching. This step confirms whether the structural elements — window patterns, rooflines, road markings — genuinely correspond between your photo and the candidates. It is not enough for two images to look vaguely similar; they must share verifiable geometric relationships.
The landmark bias problem
Google Lens has what we call a “landmark bias.” It performs well on globally recognisable structures and poorly on everything else. Consider these scenarios, common in Dutch investigations:
- A residential street in Eindhoven. Google Lens returns generic results about Dutch architecture or similar streets somewhere in Europe. GeoPin matches it to the specific street segment via indexed Mapillary imagery.
- A cycle path along a canal in Friesland. Google Lens finds stock photos of Dutch cycle paths. GeoPin identifies the exact waterway and path segment.
- A shopping district in Rotterdam. Google Lens might recognise a specific shop if the storefront appears on Google Maps. GeoPin localises the intersection regardless of which businesses occupy it.
The difference is coverage. Google Lens relies on web-indexed content — essentially anything Google’s crawlers have found and linked to locations. GeoPin relies on systematic street photography that covers the Netherlands broadly, including residential neighbourhoods, country roads and industrial zones that rarely appear on travel blogs.
Accuracy where it matters
For OSINT analysts, journalists and verification professionals, “close enough” is not sufficient. Google Lens might tell you a photo is somewhere in Amsterdam. GeoPin aims to tell you which block, which side of the canal, which intersection.
This precision comes from our specific focus on the Netherlands. Rather than trying to recognise every place on earth — a nearly impossibly broad task — we index deeply within a defined geographic area. Our database includes imagery from Mapillary, KartaView, Panoramax, Mapilio and Amsterdam Open Panorama. Multiple sources mean multiple angles, different times of day and different seasons, all for the same locations.
When you search on GeoPin, you get coordinates with a confidence score derived from feature matching. A high confidence score means dozens of geometric features — actual structural elements in the image — have been verified between your photo and our reference imagery. That is a fundamentally different kind of answer from “this looks like a canal in the Netherlands.”
When Google Lens is the right tool
We are not claiming GeoPin replaces Google Lens. They serve different purposes. If you want to identify a specific building that is famous enough to appear in search results, Google Lens is fast and effective. If you want to know what species of tree is in a photo, Google Lens wins. If you want to read text in an image or find a product online, Google Lens is the clear choice.
But if your task is geolocation — determining the exact coordinates of where a photo was captured — a purpose-built tool with a curated reference database will outperform a general visual search engine every time. A screwdriver and a Swiss Army knife both have a flat blade, but you would not choose the Swiss Army knife to assemble furniture.
The specialist advantage
The broader lesson extends beyond GeoPin and Google Lens. In machine learning, domain-specific models trained on focused datasets consistently outperform general models on their target task. CosPlace is designed for visual place recognition. Our reference index is built specifically for the Netherlands. Our verification pipeline is tuned for matching street-level photos.
Generalist tools are invaluable for exploratory work. Specialist tools are essential for getting answers you can act on. For geolocation in the Netherlands, GeoPin is the specialist.