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
14:08, regarding the case where you want to use cross correlation to find objects that may be rotated at arbitrary angles that are different from your probe image, it makes sense that you could do this by just repeating the cross correlation for every possible angle of rotation of the probe image. That is certainly a lot of computation, but is there a better way to do that? Can you leverage some trick in the frequency domain to make that calculation easier?
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.
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.
+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).
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)
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.
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.
this is the good side of the internets. I learned more here than 2 weeks of class
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 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 :)
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
Thank you so much Sir! This is by far the best combination of Mathematical and Pictorial explanation of this topic so far.
OMG !! It is so clear now. Wonderful explanation with real examples. Thank you professor
Finally makes more sense to me now!, Thank you
This is by far the best explanation for these topics. Thanks a lot.
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!
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
difference between convolution and cross-correlation is at 12:01
14:08, regarding the case where you want to use cross correlation to find objects that may be rotated at arbitrary angles that are different from your probe image, it makes sense that you could do this by just repeating the cross correlation for every possible angle of rotation of the probe image. That is certainly a lot of computation, but is there a better way to do that? Can you leverage some trick in the frequency domain to make that calculation easier?
Very ASMR. Thank you
Thanks, Professor Jensen. The tutorial helps a lot for starters. A lucid explanation.
The best convolution idea explain ever!
amazing. I understood more than I did in whole week.
Great clarity! Thank you.
This is best lecture to help understand convolution and cross-correlation:)
I think, when we use convolution theorem on the cross correlation then either f or h function should be conjugated before multiplying..
please add the previous lessons to the description!
I wanted to push the like button for so many times!!
why don't we have more of good professors like you.
The examples made it very easy to understand. Thank you
Thank you very much for your good illustrations.
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?
superb!!! i got it all with no confusion. thanks
Gold lecture. Perfection!
Thank you sir .. i spent years trying to figure this out ..
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.
This is beautiful. Very well explained. Thanks and looking forward for more lessons on Computer Vision :)
Thank you for explaining this so well. My Professor couldn't.
Thank you for a pedagogic video!
That Cross-Correaltion plot looks like a cloud, interesting.
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?
Shouldn't the cross-correlation function c = IFT{FT{f} x FT*(h)}, where * represents the conjugate of the function?
Damn , this is beautiful !
what do you mean when we do convolution one of the function flips? I did'nt get that.
Is there a way to make cross correlation insensitive to rotation and scale?
You are the man!!!
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.
Veey good.
Thank you so much sir for clarifying with practical examples.
Outstanding! Thank you!
Thank you very much. I'm clear about convolution and correlation
How could image values be negative though? Aren't they always 0-255, or 0-1?
awesome description. thanks a lot.
awesome videos. thanks for these
can someone help, so what exactly is the difference between the two?
Does Sheldon Cooper still bother all of you at Caltech?
Thank you, Sir. Wonderful explanation.
Thank you very much professor.
5:18: Now you can jump into modulation transfer function...
Amazing..
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.
Awesome explanation, thanks!
Can you please tell in which book should I read to dig deep into these issues?
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).
wow, clearly explained. Thank you!
Thank you so much. You finally made it click for me
Very nice and useful lecture. Thanks sir.
Thank you sooooo much !
Amazing
Thank you for your lecture
thank you very much
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.
Thanks a lot sir for these lectures.
Such a good video
Nice explanation. Really Thank you.
Make so much sense !
Can you explain better that you said in 4:45 min? Thank You, nice duck lattice hahhaha
fantastic! thanks.
Thankyou Professor!
Thanks a lot! It's realy usefull for me!
superb...
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)
god bless u . helpful
Thank you so much
Thank you!
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.
What in the actual f am i doing here at 3 am
Thanks so much!
so nice
The Best
Wish I could give 1000 likes to this video
Now I understand gaussian blur from Photoshop hahahaha
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
Thank you
two thumbs up!
tooo good :)
Thank you :D
Now, the stupid thing about this video is no matter how many times I click on thumbs up it only counts as one.
thanks a lot the was so good
very helpful
Thank you!