I was trying to find a usecase for this tech. I thought google maybe hashed files and searched thatway, but thumbnails dont always turn up results. I thought maybe they just used pagesource data or metadata to find the same pictures because it doesnt work on all images. Maybe this library can fix that
Regardless of how that process works, once Google scrapes an image, they can store some metadata similar to the output of your software, so that it may be used for sorting the much smaller set of images returned by the image similarity algorithm. The top result can then be deemed the "most original" image since it contains the most detail, and the webpage it was found on can get a boost of pagerank or something.
Usually multiple results are a misdetection -- for example heavily compressed JPEGs will mess it up pretty badly:
$ convert Lenna.png -quality 50 Lenna.jpg
$ resdet Lenna.jpg
given: 512x512
best guess: 448x384
all width height
448 (77.49%) 384 (90.19%)
384 (66.99%) 448 (89.78%)
320 (60.68%) 320 (72.54%)
388 (55.92%) 256 (56.43%)
445 (55.49%)
345 (55.47%)
242 (55.06%)
(the block-based nature of JPEG compression/quantization creates a similar zeroing effect along every 1/8 of the spectrum)http://petapixel.com/2015/10/29/canon-120mp-sensor-reportedl...
float* samples = ... //load audio samples here
int len = ...
fftwf_plan p = fftwf_plan_r2r_1d(len,samples,samples,FFTW_REDFT10,FFTW_ESTIMATE);
fftwf_execute(p);
RDResolution* res;
size_t count;
RDMethod* m = resdet_methods();
m->func(samples,len,1,1,&res,&count,12,m->threshold);Consequently, another hot research area is image anti-forensics -- the obfuscation of such operations to avoid detection. (Shameless self-promotion: one example paper on anti-forensics of JPEG compression can be found here [2].)
[1] http://www.signalprocessingsociety.org/publications/periodic...
[2] http://www.mirlab.org/conference_papers/International_Confer...
A humble but fun origin story for a very cool project.