I'm sort of curious -- there are a lot of filters and masks out there, but I have heard very little about automated or algorithmic image detection, insofar as being able to, for example, determine that a portion of an image has been downsampled -- or to detect if an image has been obviously corrupted, without needing to visually preview the image. This sort of capacity would be quite useful, but I can't seem to find any references to that or any closely related topics when I research on Google. Anyone with some image analysis experience have a word or two on this subject?
>>1
Maybe try computing the entropy, or doing a wavelet transform and playing with histograms of the high-frequency components. If you're trying to locate heavy JPEG quantization, you could write a decoder. Maybe you should ask sci.image.processing.
Name:
Anonymous2006-06-25 23:44 (sage)
Whoops, never mind about entropy. I was thinking downsampling/lowpassing -> fewer actual points -> less information -> less entropy, but you can't infer that straight from intensity, I think. Time to shut up.
Name:
Anonymous2006-06-27 21:45
Without the original image, there's no way to tell if your image is a downsampled version of some other image. It MAY be possible to tell if it's an upsampled version, since upsampling usually introduces visible artifacts (downsampling never does, unless they used nearest-neighbor algorithm). I don't know what exact sort of frequency data you would look for, though.
Name:
Anonymous2006-06-27 21:51
>>7
Just because you're a stupid fuck doesn't make what you say necessarily true.
>>1
You should create a feature vector of an image. Base it on things like measures of edge detection, grainyness, variance etc. Generate a feature vector and then throw it at various machine learning algorithms. I doubt you'll get 100% but you might be able to make some determinations. Detecting a resizing is probably simpler than a resample. Go the machine learning route. You won't know if it works til you try.
Name:
Anonymous2006-06-27 22:58
we need a web-based service that functions like question swap but instead of swapping questions they swap pictures and a request for operation on that picture (like "is this image corrupted?" or "please rename this image") or maybe have a set of 5 pictures per request or something.
Name:
Anonymous2006-06-28 0:26
You should create a feature vector of an image.
Considering how many authors downsample an image before releasing it, I cannot possibly fathom how this will help.
how is a machine learning algorithm (with bad abstractions of visual data fed into it) going to detect something that no human could ever detect visually?
Name:
Anonymous2006-06-28 16:32
>>11
Coz it's been seed on 4chan, it must be true!
Name:
Anonymous2006-06-28 20:25
>>1
the downsampling is pretty much impossible to detect, see >>7
the corruption would be pretty much impossible if you're just using it on all images in general. for example, is an image with colors inverted corrupted? maybe that could be because of a corruption, or you could just have inverted the colors yourself for some reason. it depends too much on context. image processing technology isn't really advanced enough to look at the whole image and say "it looks like the bottom portion of the image is shifted in relation to the top portion, must be corrupted" because it would be very hard to tell how the two portions of the image are supposed to be aligned in all but the simplest of images (e.g. anime, or line art, where you could probably do it with just a little edge analysis or whatever)
if you're doing it on a specific subset of images however (say, microscope images of round cells or something), then the restrictions of the type of data in the images could allow you to detect errors (easy to detect circles in images, if two portions of the circle are shifted in relation to each other, easy to detect that that's a corruption)
Name:
Anonymous2006-06-29 19:27
>>10
I'm assuming the OP wants to detect JPEGs that have been downsampled and recompressed. This might be possible, and it's only because of the previous lossy compression that there's any hope of statistically detecting it. The original author hopefully only downsampled the original lossless and then compressed it, but lazy or ignorant might not, so there may be false positives.
It sounds like a really difficult problem, here is not the best place for getting help. The machine learning route doesn't sound too dumb, but I'd be surprised if you ever got it reliably giving accurate classifications.
Name:
Anonymous2006-06-29 19:34
>>11
How does human vision have anything to do with this? The idea is to do something like steganalysis only looking for resampled JPEG artifacts.
Name:
Anonymous2006-06-30 0:46
If the problem is just to identify highly quantized JPEGs, read http://en.wikipedia.org/wiki/Jpeg paying special attention to the section on quantization. You should be able to tell the degree of quantization just by reading the stupid file.
Name:
Anonymous2006-06-30 4:34
>>16
Not useful, because it only stores the current quantization matrix, not previously used ones.
Name:
Anonymous2006-06-30 21:06
>>17
OK, then, machine learning is probably the best answer. Deriving some features from the quantization matrix and DCT coefficient statistics might be good.
Name:
Anonymous2006-07-07 9:37
What I was originally referring to wasn't how to tell if an ENTIRE image had been downsampled, but if a portion of it had been -- such as in the case of censorship.
In other words, you have these nice, high resolution, well-defined outlines... and then suddenly you hit an area of gigantic blocky edges -- surely that must be detectable with our current image recognition techniques?
Name:
Anonymous2006-07-11 7:08
I suppose I could have been more straightforward, but I did refer to only a portion of the image being affected.
So here's another question: I won't be competent enough a coder to write this sort of thing for a while, yet, but it interests me. I'm a decent coder, but I know next to nothing about image processing or analysis, and don't even know that much about what programs might have this sort of functionality. If anyone could make a suggestion of what programs might contain this functionality, or just some resources on the 'net that talk about this sort of thing, I'd be (more)grateful.