Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Image Processing algorithm for forensic application

Greetings,

I am trying to write an algorithm in MATLAB for detecting modifications in an image. Specifically, in the image I have to process, there was a person who was removed (using photoshop) and the space was filled with background pixels (which is a white wall). I was trying to detect reapeated patterns (using background blocks) but this method is not efficient. Do you guys have any ideas on how to do this in MATLAB? Thanks in advance.

like image 783
user123668 Avatar asked Feb 11 '11 22:02

user123668


2 Answers

Forensic image analysis is a fairly big research field, with huge applications ranging from law enforcement to show-biz. It's a huge (but very complicated) problem with lots of parameters, so don't be surprised if you don't find a lot of code examples available.

Before you even think about the technology you're going to use to implement it (e.g. to MATLAB or not to MATLAB), you should take a step back and think about the actual algorithm. You should also do your homework and perform a research survey using a site like Google Scholar.

Here's a couple of points to get you started:

  • One of the biggest guys in image forensics is Hany Farid. Check out his website. Read his papers, read the papers that he cites, and the papers that cite him. Be sure to watch the videos there too.
  • Dealing with compressed images actually helps image forensics. Read about blocking artifacts in JPEG images (most common image compression format). This link is a starting point, don't be shy to put a bit of effort in and look it up elsewhere, like Google Scholar.
  • Think about how editing the image alters the artifacts -- does it destroy them, replace them, modify them in some detectable way?
  • Read about fourier analysis -- it is a useful tool for image forensics

Be prepared to easily spend days or weeks on researching this problem.

like image 73
mpenkov Avatar answered Sep 22 '22 12:09

mpenkov


Thanks for such interesting question. Indeed image forgery detection (as it is called) is a really big and very complex field. And there are many sub-fields (or sub-problems) within it. However you are talking about specific sub-problem of image forgery, which is called copy-move forgery detection. Here are some papers about it:

  • Detection of Copy-Move Forgery in Digital Images
  • Exposing Digital Forgeries by Detecting Duplicated Image Regions

You can find more papers about it in google scholar if you like.
Some time ago i was trying to code copy-move forgery detection with my own ad-hoc algorithm implemented in Python. If you want you can read about it in my blog article (code included). Detection script is very slow and not very reliable, but that being said has over 200 lines of code and has 8 adjustable script parameters. So this really shows that even one needs to code ad-hoc algorithm for forgery detection - he/she must work very hard to make something usable.

Good luck.

like image 41
Agnius Vasiliauskas Avatar answered Sep 20 '22 12:09

Agnius Vasiliauskas