Take the 2-minute tour ×
Graphic Design Stack Exchange is a question and answer site for Graphic Design professionals, students, and enthusiasts. It's 100% free, no registration required.

I am planning to make a game, where I give the user an anime related image and they have to guess where its from.

However, most of the images, specially from popular anime are easy to use on Google reverse search to find and pin point the anime.

I've tried to see if I could make so it would not recognize the image but unhappily my tricks were not good enough.

Original image:

Original image

Grey-scale with horizontal flip:

Grey-scale with horizontal flip

Watermarking:

Watermarking

Puzzling the image with grey-scale:

Puzzling the image with grey-scale

Grey-scale with horizontal and vertical flip worked for this image but doesn't always work:

Grey-scale with horizontal and vertical flip

Also the above mentioned methods are rather easy for people to guess the anime.

I would like to know if there any good trick, that I could use on my images to make so it would not work on reverse search engines and yet not be so overcomplicated that I can implement on my program.

For example grey-scale, cropping, flipping are rather easy things to achieve in C#.

share|improve this question
2  
I like the idea of puzzling the image for added difficulty. However if someone truly wants to play your game, I have problems seeing how Google reverse search will be an issue for players, are players dueling for who will find it first? I would be more worried about having the licensing rights for the images if you plan on marketing your game. –  Emilie Jul 27 at 16:07
1  
@Emilie Yes, there is a weekly and monthly ranking system and only the first answer right counts towards receiving the points for that specific image. Its not a game that will be sold, and the original image will be pointed back to the artists with proper rights. It's rather something really simple I did like to add to our chat channel. –  Prix Jul 27 at 16:11
    
@Emilie I am also open to different ideas other then the puzzle, as you can see the other images are rather plain and easy to figure out I tried things like radial blur but was rather too difficult to see what the image even was, I did like to add some level of difficult to it but honestly I am not any great with images :( –  Prix Jul 27 at 16:14
1  
The problem is that reverse image search should be able to bypass damage to picture or its not really good so your fighting fundamental tech and you will ultimately loose. –  joojaa Jul 27 at 21:34
3  
Trying to protect digital media for piracy, or any task down that line will most likely end up in you failing to foil the dishonest people, and ruining the experience for your honest users. Sometimes you have toe make such a trade-off. –  GiantCowFilms Jul 28 at 3:28

4 Answers 4

up vote 5 down vote accepted

I think you were on the right track with your watermarking option, but you left too much of the original image in tact. Here are two images I tried that Google was unable to find:

Checkerboard

enter image description here
Reverse image search results

Mosaic

enter image description here
Reverse image search results

Another example

enter image description here
Reverse image search results

The first image returns a lot of "checkered flag" results, and the second returns lots of mosaic/collage images. Size does matter! I initially tried it with a much smaller checkerboard pattern (16px); Google was still able to identify that. These 32px squares seem to be a happy medium.

Based off of the information that DanS provided, I think this would be a dependable technique to fool Google (and easily automated!). I can only presume that someone who was able to identify this anime would still be able to do so from these images.


Ironically, the images I have created will eventually be indexed by Google and lead to this post, defeating the purpose!

share|improve this answer
    
That is what I ended up doing with a slight difference, which I don't create regular forms like squares anymore, it does seem to work to a good extent and yes at some point it will get indexed but by then we will have new images the ones already answered don't get back into the queue. Thanks for taking the time. –  Prix Aug 1 at 21:06
    
Even more irony. You may have given google a hint on what to improve. –  joojaa Aug 3 at 6:50

Google may use a different system but a large number of such services (tineye included) use perceptual hashes where the overall hash is close enough to be a match, rather than exact.

A whitepaper showed up a few years back which detailed the process. I haven't been able to find a link to it, but the basic system relies on a action chain to generate the hashes.

  • Reduce the image to a small scale, usually 32x32 or 64x64
  • Convert the image to greyscale
  • Ramp up the contrast to a predefined value, to ensure a high level of difference between the black and white tones
  • Calculate the pHash from the pixels in the resulting image

The process would be repeated for any uploaded image, and then cross checked with indexed hashes to find any near matches. In short, the image must be drastically changed across large portions to fool any system like this.

share|improve this answer
    
Some interesting information there, would love to check the article. –  Prix Jul 28 at 16:55

You can do something like this:

enter image description here

It is not 100% bulletproof, but it should throw off most image identification engines.

What I did was add black and white noise to the image as well as some displacement. Messing with the colors eg. only displacing one or two color channels would be even more effective, but complex to implement.

share|improve this answer
1  
I will give it a try with a few popular images and see how it goes ultimately right now I came down into a closed puzzle where I open squares when wrong answers are given. So you only see the image every X pixels at a time which seemed to have worked so far. –  Prix Jul 27 at 18:39
    
Yeah that doesn't work unless you put enough noise to make the entire image unrecognizable which defeats the goal I have. Thanks. –  Prix Jul 27 at 19:48
    
If my post help you, please mark it as accepted or at least give it an upvote :). –  GiantCowFilms Jul 27 at 19:50
2  
Except off course searching with that noised image Google immediately finds the sources. The algorithm most likely searches within Fourier space and your noise wont do much for that. –  joojaa Jul 27 at 21:36
    
@joojaa Yah, I did notice that, but Prix asked my to show him an image of what I suggested as a comment, so I posted an answer. –  GiantCowFilms Jul 28 at 3:26

Try switching the file format you're saving in. Reverse image searches start by using some data that gets logged intrinsically into the image, which is probably why your obfuscation techniques haven't been working. JPEGs are particularly bad about this, PNGs not so much. With especially popular images, this might not work, however.

Ideally, find a way to show the image in an encapsulated form the user can't directly interact (copy -> paste) with. Unfortunately, I don't have the technical details on how this can be achieved currently, just that I've observed that the images used in Flash/Shockwave stuff has that property.

Secondarily: The plan as a whole - using copyrighted images without first seeking appropriate permissions from their owners, even assuming you provide attribution as soon as the puzzle is solved - puts you at risk of a takedown request or other sort of legal action, particularly if you're running the game in any volume. If it's possible to run the game using fanart (since you're more likely to get appropriate permission to use fanart than canonical content) it's probably better to do that.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.