This was an excellent video. I really congratulate your willingness and knowledge. It's great to see that there are still professors who are capable of giving enjoyable real life examples to make more sense instead of going over boring stuff just as if they aim to make concepts more unclear and less attractive. Thanks again :)
Dear Prof, Thank you for this wonderful lecture. After lot of confusion and mathematical mesh , I finally got this video which describes , what I really wanted to visualise. Planning to learn the whole lecture series . Once again Thank you and All The Very Best. :) Regards, Ashutosh
The Fourier transform of a flipped function (i.e. f(-x)) is the complex conjugate of the Fourier transform of the original function f(x). The convolution reduces to a product in the Fourier domain and the cross-correlation reduces to a product with one function being complex conjugated.
My only question is if a pixel has value of 0-255 (via RGB), then how can the multiplication of the first and second image pixel be a negative number. What did I miss?
I have a different question: What if my pattern concerns low, but positive numbers... cross correlation would be higher for places with high positive values in the test image. I guess, I am missing something, too.
Hello I don't understand around 11:30 why should a pixel value be negative ?? Isn't it supposed to be between 0 and 255 ? And so i don't understant this part. Help me please
The data doesn't necessarily need to be restricted to image data or 8-bit values. Images are just an intuitive example that help us understand convolutions and cross correlations.
+Gnana Thedchana Moorthy They're similar, but the critical difference is that in Convolution, you use h(i-x, j-y), and in Cross-Correlation you use h(i+x, j+y).
also for the fourier transform expression for cross correlation, you missed the complex conjugate of the f(x). the key difference between convolution and cross correlation is the space of integration. convolution integrates in displacement space while cross cottelation is in independent variable space. you are misleading people, i would suggest you to remove and revise the video.
madteamaster Cab(v) = F*(v) ×G(v) . note that everything here is in Fourier space. then the ifft of cab(v) will give you the Cab(τ). I don't think the math here is a problem. but when you do this, assigning τ values will be a big problem.
the independent variable you used for convolution seems to be incorrect. the integral of convolution is di and dj, while maintaining the independ variable of the output function and input function the same. g(x)=∫f(x)⊗h(i-x)di
Truth Seeker please check Powell and Hieftje, 1978, correlation based file searching. And Isao Noda, 1993, 2d-correlation spectroscopy. No need to argue. I have given three talks in international conferences already.
Yi You I'm not here to argue. I'm here to correct you. here we're talking about convolution not correlation. the correct form is just as he wrote. look at what you wrote once again and try to find out your mistake yourself.
Wrong. 12:43. The cross-correlation 'theorem' should have one of the terms being the complex conjugate. c = F-1 [ F(f)* . F(h) ] with * representing the complex conjugate. As it is presented here is the same formula as the convolution, which makes no sense.
why is the cross-correlation readout (top right @ 12mins) a sharp (curved) peak rather than a square shaped peak? The curved peak implies that the center of the image matches better than the edges of the image. When comparing, it should go from low/zero on almost every position then suddenly "snap" into place and every single pixel in the small square should match with the large square...
I am sure it is rather representing the coordinate of the entire probe image (where the probe image fits the best) so it will go from (0,0) to (10000,10000) and finds that (3000,2000) matches the best, since there are 10000*10000 of different possible positions for the probe image (10000 pixles* 10000pixlea)
this is the good side of the internets. I learned more here than 2 weeks of class
This was an excellent video. I really congratulate your willingness and knowledge. It's great to see that there are still professors who are capable of giving enjoyable real life examples to make more sense instead of going over boring stuff just as if they aim to make concepts more unclear and less attractive. Thanks again :)
Man, you did a really nice job here. At last I learned practical uses for correlation and convolution. Thanks for making it easy for us to understand.
This guy has a nice, calming voice.
You're great, you speak so simply and concise, yet what you say is so valuable!
Best video ever. This 15 mins video solved my 4 hours struggle.
thank you ! I learned more from this video than reading books for 3 hours
This is by far the best explanation for these topics. Thanks a lot.
Thank you so much Sir! This is by far the best combination of Mathematical and Pictorial explanation of this topic so far.
Finally makes more sense to me now!, Thank you
Amazing Sir! I have tried to grasp this topic for ages though books without much success. Now I got it in 15 min with your excelltnt lecture! Thanks!
Very ASMR. Thank you
OMG !! It is so clear now. Wonderful explanation with real examples. Thank you professor
Dear Prof,
Thank you for this wonderful lecture. After lot of confusion and mathematical mesh , I finally got this video which describes , what I really wanted to visualise. Planning to learn the whole lecture series . Once again Thank you and All The Very Best. :)
Regards,
Ashutosh
ashutosh pati i
The best convolution idea explain ever!
Thanks, Professor Jensen. The tutorial helps a lot for starters. A lucid explanation.
amazing. I understood more than I did in whole week.
why don't we have more of good professors like you.
Great clarity! Thank you.
I wanted to push the like button for so many times!!
Veey good.
You are the man!!!
Gold lecture. Perfection!
Thank you very much for your good illustrations.
This is best lecture to help understand convolution and cross-correlation:)
That Cross-Correaltion plot looks like a cloud, interesting.
Thank you for explaining this so well. My Professor couldn't.
This is beautiful. Very well explained. Thanks and looking forward for more lessons on Computer Vision :)
please add the previous lessons to the description!
Damn , this is beautiful !
superb!!! i got it all with no confusion. thanks
The examples made it very easy to understand. Thank you
Thank you for a pedagogic video!
I think, when we use convolution theorem on the cross correlation then either f or h function should be conjugated before multiplying..
Outstanding! Thank you!
awesome description. thanks a lot.
Amazing..
Thank you sir .. i spent years trying to figure this out ..
very great video but i was wondering why both has the same equation in fourier domain?
The Fourier transform of a flipped function (i.e. f(-x)) is the complex conjugate of the Fourier transform of the original function f(x). The convolution reduces to a product in the Fourier domain and the cross-correlation reduces to a product with one function being complex conjugated.
awesome videos. thanks for these
Thank you very much professor.
Thank you so much. You finally made it click for me
How could image values be negative though? Aren't they always 0-255, or 0-1?
fantastic! thanks.
Thank you very much. I'm clear about convolution and correlation
thank you very much
Make so much sense !
what should we do if we have images in 0-255 values? we need to subtract mean value of probe and original image to get negative values?
My only question is if a pixel has value of 0-255 (via RGB), then how can the multiplication of the first and second image pixel be a negative number. What did I miss?
I have a different question: What if my pattern concerns low, but positive numbers... cross correlation would be higher for places with high positive values in the test image. I guess, I am missing something, too.
Such a good video
Awesome explanation, thanks!
Is there a way to make cross correlation insensitive to rotation and scale?
wow, clearly explained. Thank you!
Does Sheldon Cooper still bother all of you at Caltech?
Thank you so much sir for clarifying with practical examples.
Thank you!
Thank you, Sir. Wonderful explanation.
Shouldn't the cross-correlation function c = IFT{FT{f} x FT*(h)}, where * represents the conjugate of the function?
superb...
Thank you sooooo much !
Amazing
what do you mean when we do convolution one of the function flips? I did'nt get that.
difference between convolution and cross-correlation is at 12:01
Can you please tell in which book should I read to dig deep into these issues?
Thank you for your lecture
At 6:38 he uses frequency domain to calculate convolution. But he uses the same formula at 12:45 to use it for correlation. why?
Wish I could give 1000 likes to this video
Now, the stupid thing about this video is no matter how many times I click on thumbs up it only counts as one.
Thank you so much
Thankyou Professor!
Thanks so much!
The Best
can someone help, so what exactly is the difference between the two?
Very nice and useful lecture. Thanks sir.
What in the actual f am i doing here at 3 am
5:18: Now you can jump into modulation transfer function...
so nice
Thanks a lot sir for these lectures.
god bless u . helpful
Thanks a lot! It's realy usefull for me!
two thumbs up!
Hello
I don't understand around 11:30 why should a pixel value be negative ?? Isn't it supposed to be between 0 and 255 ? And so i don't understant this part. Help me please
The data doesn't necessarily need to be restricted to image data or 8-bit values. Images are just an intuitive example that help us understand convolutions and cross correlations.
Nice explanation. Really Thank you.
Thank you
Wonderful lecture. I just don't understand how come, the equations for both correlation and convolution are same. (At 12:30)
+Gnana Thedchana Moorthy They're similar, but the critical difference is that in Convolution, you use h(i-x, j-y), and in Cross-Correlation you use h(i+x, j+y).
also for the fourier transform expression for cross correlation, you missed the complex conjugate of the f(x). the key difference between convolution and cross correlation is the space of integration. convolution integrates in displacement space while cross cottelation is in independent variable space. you are misleading people, i would suggest you to remove and revise the video.
I agree, I was very confused until I noticed the complex conjugate part on wikipedia!
hmm, actually the complex conjugate part did not really help, I still don't really understand how to use fft to do cross correlation in practice...
madteamaster Cab(v) = F*(v) ×G(v) . note that everything here is in Fourier space. then the ifft of cab(v) will give you the Cab(τ). I don't think the math here is a problem. but when you do this, assigning τ values will be a big problem.
Thanks, I understand now.
(I also had issues related to the cyclic nature of the fft, which I just solved with padding.)
@@madteamaster Can you elaborate how you used padding to solve your problem?
very nice
Can you explain better that you said in 4:45 min? Thank You, nice duck lattice hahhaha
Thank you :D
Now I understand gaussian blur from Photoshop hahahaha
thanks a lot the was so good
the independent variable you used for convolution seems to be incorrect. the integral of convolution is di and dj, while maintaining the independ variable of the output function and input function the same. g(x)=∫f(x)⊗h(i-x)di
That would actually make sense. Thanks
Yi You that is incorrect.
the actual variable is i .. x is just a dummy variable that's gonna get integrated out
Truth Seeker please check Powell and Hieftje, 1978, correlation based file searching.
And Isao Noda, 1993, 2d-correlation spectroscopy.
No need to argue. I have given three talks in international conferences already.
Yi You
I'm not here to argue. I'm here to correct you.
here we're talking about convolution not correlation.
the correct form is just as he wrote. look at what you wrote once again and try to find out your mistake yourself.
tooo good :)
Wrong. 12:43. The cross-correlation 'theorem' should have one of the terms being the complex conjugate. c = F-1 [ F(f)* . F(h) ] with * representing the complex conjugate. As it is presented here is the same formula as the convolution, which makes no sense.
very helpful
why is the cross-correlation readout (top right @ 12mins) a sharp (curved) peak rather than a square shaped peak? The curved peak implies that the center of the image matches better than the edges of the image. When comparing, it should go from low/zero on almost every position then suddenly "snap" into place and every single pixel in the small square should match with the large square...
I am sure it is rather representing the coordinate of the entire probe image (where the probe image fits the best) so it will go from (0,0) to (10000,10000) and finds that (3000,2000) matches the best, since there are 10000*10000 of different possible positions for the probe image (10000 pixles* 10000pixlea)
Thank you!