views:

89

answers:

3

As we know Fourier Transform is sensitive to noises(like salt and peppers),

how can it still be used for image recognization?

Is there a FT expert here?

A: 

Not sure exactly what you're asking. If you are asking about how FFT can be used for image recognition, here are some thoughts.

FFT can be used to perform image "classification". It can't be used to recognize different faces or objects, but it can be used to classify the type of image. FFT calculates the spacial frequency content of the image. So for example, natural scene, face, city scene, etc. will have different FFTs. Therefore you can classify image or even within image (e.g. aerial photo to classify terrain).

Also, FFT is used in pre-processing for image recognition. It can be used for OCR (optical character recognition) to rotate the scanned image into correct orientation. FFT of typed text has a strong orientation. Same thing for parts inspection in industrial automation.

sjchoi
But you didn't explain **why** it can be used to do such thing
I was answering **how** one might use FFT. As to **why**, it would depend on the problem. FFT is computationally expensive, so the main reason one would use it is if the frequency component is a useful feature.
sjchoi
A: 

I don't think you'll find many methods in use that rely on Fourier Transforms for image recognition.

In the case of salt and pepper noise, it can be considered high frequency noise, and thus you could low pass filter your FFT before making a comparison with the target image. I would imagine that it would work, but that different images that are somewhat similar (like both are photographs taken outside) would register as being the same image.

kigurai
Actually, there are many, many implementations of FFTs for image matching in military and industrial systems. It is THE classic algorithm for image matching. These days there are much more sophisticated approaches, but they invariably are orders of magnitude more complex.
Greg
I can see FFT being used as a small part in image recognition. But I would be very curious about any system that has FFT as its primary way of solving the problem.Usually the frequency content of photographs are very similar, regardless of how similar the two images are visually.If you have examples of these implementations I'd be happy to look at it and revise my view if necessary.
kigurai
A: 

Update to actually answer the question you asked... :) Pre-process the image with a non-linear filter to suppress the salt & pepper noise. Median filter maybe?

Basic lesson on FFTs on matched filters follows...

The classic way of detecting a smaller image within a larger image is the matched filter. Essentially, this involves doing a cross correlation of the larger image with the smaller image (the thing you're trying to recognize).

  1. For every position in the larger image
  2. Overlay the smaller image on the larger image
  3. Multiply all corresponding pixels
  4. Sum the results
  5. Put that sum in this position in the filtered image

The matched filter is optimal where the only noise in the larger image is white noise.

This IS computationally slow, but it can be decomposed into FFT (fast Fourier transform) operations, which are much more efficient. There are much more sophisticated approaches to image matching that tolerate other types of noise much better than the matched filter does. But few are as efficient as the matched filter implemented using FFTs.

Google "matched filter", "cross correlation" and "convolution filter" for more.

For example, here's one brief explanation that also points out the drawbacks of this very oldschool image matching approach: http://www.dspguide.com/ch24/6.htm

Greg