The other day, while I was programming a couple of things, my sister went to see some Christmas stalls that had been set up in my city. Apparently, at one of them, she found inside a book a postcard presumably of Italian origin with the following photo:

Old Italian postcard found in a book

When she showed it to me I said, hey, it would be cool to find the exact location. And that’s basically what this article is about : )

The first thing I did was take a photo with my phone (yes, ideally I should scan it, but I’m not rich enough to have a printer):

Photograph of the old postcard with the phone

You can see how the photo is not only old, but also damaged, so the best thing to do is try to reconstruct it a bit to make it higher quality and easier to search through it. So what I did was use Cleanup.pictures:

Cleanup.pictures interface for restoring images

This website allows you to clean objects from images in a super simple and quite efficient way. So I used it to remove the defects from the image through the brush it provides:

Using the Cleanup.pictures brush to remove defects

Cleaning process of the old postcard

Once I touched up a bit what I considered could be fixed, we went from this image:

Original postcard with visible defects

To this:

Postcard after cleaning with Cleanup.pictures

A cleaner image without so much damage. However, something common in old images is the “noise” they contain, so it would also be ideal to eliminate or fix this.

For this, nowadays there are multiple AI-powered tools that allow you to “recover old photos”. The one I specifically used was jpghd for the simple fact that I didn’t have to register (I was lazy) and it was partially free. In addition, the result it provides without having paid is quite decent, at least for what I wanted.

jpghd main page for restoring old photos

The use is quite simple, you upload the image:

Uploading image to jpghd

And you define the configuration and changes you want to apply:

Configuration options in jpghd

Since it’s the free version, you can’t tweak much either, but what you see in the image is enough.

Once you click “Start”, you just wait for it to process, the higher the AI Enlarge (rescaling) we give it, the longer it will take, but it won’t take more than 5 minutes:

Restoration process started in jpghd

Image processing progress bar

Once the process finished, it gave me the following result:

Postcard restored with jpghd AI

A much sharper image, which doesn’t mean it can look a bit artificial, but compared to what we had before:

Comparison of the original unrestored postcard

It’s much better now.

At this point, I’ve more or less solved the image damage and that old image feeling. Therefore, it’s time to use the resulting image for searches.

The first thing I did was upload the image to labs.tib.eu, specifically to the “Geolocation Estimation” tool:

Geolocation Estimation tool at TIB Labs

This tool consists of the following:

GeoEstimation uses convolutional neural networks (CNNs) for geolocation estimation. By uploading a photo, the network visually analyzes the image to identify geographically distinctive features. The tool generates a heat map showing the most likely areas where the photo was taken, based on learning from a large dataset of geolocated images. Additionally, it uses “decision visualization” techniques to highlight the parts of the image that were most influential in the network’s decision. Classification into indoor, natural, and urban environments helps refine the estimation. This technical approach leverages advances in deep learning and image analysis to predict locations based on visual features.

ChatGPT

At a practical level, the tool tries to determine possible locations of the image you uploaded:

Geolocation analysis of the postcard

Heat map showing possible location in Marseille

In this case, it indicates that it’s quite sure it’s Marseille, but I’ll say right away that it’s not, since, in addition, let’s remember that the postcard was presumably of Italian origin.

Mind you, this doesn’t mean this tool isn’t good, in fact, for me it’s one of the most powerful I know. For example, a while ago I gave a mini OSINT talk and I set the following challenge:

Geolocation challenge of an image

In this case, if you uploaded this image, this tool gave you the exact and direct location of the place it was:

Successful geolocation result with TIB Labs

So, simply for this case this tool was not the most suitable.

Since it didn’t give me very good results, I chose to do a reverse image search on different search engines. I tried Yandex, Bing, Baidu, and Google, with Google being the one that gave me the best result in this case.

  • Personally, regarding reverse image search, the ones I consider give the best results are Google and Yandex.

Anyway, what I did was upload the image to Google:

Reverse image search on Google

Initial results from Google Images search

And at first glance I didn’t get very good results. It gave me similar buildings, but none that I would say, it fits or looks very similar.

So, what I did to try to refine the search a bit more is to use the crop tool that it provides:

Google Images crop tool

I decided to remove a bit of the plant area at the bottom in case that could alter the search a bit with so much “green” in the image. When I did it, one of the results it provided was at least interesting:

Search result showing similar postcard on eBay

It was a link to eBay where a postcard could be found. If we look closely, not only were the buildings quite similar to the buildings on my postcard:

Postcard found on eBay with similar buildings

Comparison of buildings between postcards

But also, in the product title I could find what appeared to be a place:

eBay product title mentioning Monferrato

Since I had no idea, I just searched for it on Google:

Search for Monferrato on Google

Wikipedia information about Monferrato

Apparently it was a region of Italy. Here I said, okay, it fits very well knowing that my postcard is presumably of that origin.

Anyway, the “Monferrato” region is located and comprises approximately the following area:

Map of the Monferrato region in Italy

The cities of Asti and Alessandria.

At this point, I said, okay, I can’t look at every street in every town in the entire Monferrato region, well, I can, but I don’t want to.

Territorial extension of Monferrato

Anyway, trying to get a bit more information from my postcard image, I observed that in the background of it, you can see what appear to be trees, at a distance that is not close, but not far either:

Trees visible in the background of the postcard

So, in a fairly crude way, I tried to highlight the “green borders” of the area, knowing that the place I was looking for had to be reasonably close to these lines:

Delimitation of green zones on the Monferrato map

Likewise, I tried to cross out the most central parts that had less possibility of being it for the simple fact that they were quite far from the “green zones”.

In addition to this, I wanted to see the satellite view of the place, because not all areas that are “white” (urban) mean there is a city, town, or whatever. Therefore, at a glance with the satellite view of Google Maps I wanted to see possible settlements that there were in the area:

Google Maps satellite view of Monferrato

The number of possibilities was decreasing, since with the default view of Google Maps a lot of urban area could be seen.

To try to compare these two possible viewing modes a bit better, what I did was use Google Earth Pro, because one of the functionalities it provides is overlaying the map with an image:

Image overlay functionality in Google Earth Pro

The crude image I had made, I overlaid it on Google Earth so that the places, roads, etc., matched. The interesting thing about this functionality is that you can modify the opacity of the image you have placed to be able to do a better analysis:

Map overlay with adjustable opacity in Google Earth

At this point, I said, okay, I could use more information. I have the area where to look more or less, but I could use something more concrete.

Going back to the initial image:

Analysis of the distinctive roof on the postcard

We can see how all the houses have a brick-colored roof (it’s the most common) except the house we are looking for. Interesting to keep that detail in mind.

Also, in the image itself we can assume that the house is at the corner of two streets:

House at the corner on the postcard

Therefore, having this extra information and knowing the areas where to look, I found a place that seemed to fit with the information we have:

House found with dark roof on Google Maps

A house with a dark roof among many with “orange” roofs, and also, at a “corner”.

Setting the “Street View”:

Street View of the found location

Confirmation of the exact location in Street View

It seems that I indeed found the exact location of the postcard that my sister found in a random book at a random Christmas stall.

As a fact, the oldest image of the place that Google has saved is from 2010:

Historical Street View image from 2010

And that’s as far as the OSINT time I spent went, honestly quite fun ^^.

References

I leave the links to tools mentioned/used throughout the post:

Edit 01/02/2024 - GeoSpy AI

Hello again! I’m back here to show another interesting tool similar in practice to what we saw on labs.tib.eu:

DragonJAR’s Tweet about GeoSpy AI

It’s GeoSpy AI, in this case if we upload the restored image to this website:

GeoSpy AI interface

Geolocation analysis with GeoSpy AI

The website itself tells us that it corresponds to northern Italy. It also gives us some coordinates. In this case, the coordinates point to a place between Milan and Venice, which is not the exact correct place:

GeoSpy AI result showing location in northern Italy

But hey, in terms of approximation from the entire world, it almost hit the nail on the head, northern Italy.

And, who knows if the same thing happens as with labs.tib.eu, maybe this tool simply doesn’t fully apply for this case, who knows how it will behave with other images, but it’s definitely good to have it on the radar.