Convolutions in Image Processing | Week 1, lecture 6 | MIT 18.S191 Fall 2020

  Рет қаралды 659,371

The Julia Programming Language

The Julia Programming Language

Күн бұрын

Пікірлер: 466
@nickh2935
@nickh2935 4 жыл бұрын
congrats on getting literally the best teacher ever for this class
@a_llama
@a_llama 4 жыл бұрын
@rikdeb banerjee what?
@sayanjitb
@sayanjitb 4 жыл бұрын
@rikdeb banerjee what 🤔?
@AdityaGhosh50
@AdityaGhosh50 4 жыл бұрын
@rikdeb banerjee what?
@AnubhavGoswami3800
@AnubhavGoswami3800 4 жыл бұрын
@rikdeb banerjee what?
@vstillliving5850
@vstillliving5850 4 жыл бұрын
@rikdeb banerjee what?
@passerby4507
@passerby4507 4 жыл бұрын
If I were the students, I would be so freaked out about the professor sounding like that moving pi on the interwebz.
@52.yusrilihsanadinatanegar79
@52.yusrilihsanadinatanegar79 4 жыл бұрын
BTW, it's 3Blue1Brown.
@Derpuwolf
@Derpuwolf 4 жыл бұрын
Yusril Atfan I have a feeling they know
@barkli2978
@barkli2978 4 жыл бұрын
Yusril Atfan nah its papa flammy
@AlexandruJalea
@AlexandruJalea 4 жыл бұрын
Me is confused 🤣 ze pi creatures has been replaced by the miau creatures
@ca-ke9493
@ca-ke9493 4 жыл бұрын
i'm 3 weeks behind on my actual lectures, but 3b1b has tricked me into watching a half an hr lecture that has nothing to do with my degree
@aditi_05
@aditi_05 4 жыл бұрын
Saame
@nullpointer1755
@nullpointer1755 4 жыл бұрын
Me too, i'm studying Biomedicine on my university but i find this lectures so interesting
@cheponis
@cheponis 4 жыл бұрын
I suspect, that is NOT by accident..... ;-)
@JanBabiuchHall
@JanBabiuchHall 4 жыл бұрын
How did you know I was supposed to be learning circuit analysis right now
@saverussnape
@saverussnape 4 жыл бұрын
approves
@sumitgupta6905
@sumitgupta6905 4 жыл бұрын
I am a simple man, I see 3blue1 brown I click.
@nothingspecial7399
@nothingspecial7399 4 жыл бұрын
Ikr
@brunomartel4639
@brunomartel4639 3 жыл бұрын
hahhahahhhhaa dude
@maaan8494
@maaan8494 3 жыл бұрын
nohomo
@lilapela
@lilapela 3 жыл бұрын
2word4syllable
@damnguen1726
@damnguen1726 3 жыл бұрын
me too
@DipietroGuido
@DipietroGuido 4 жыл бұрын
Wtf imagine having him as your actual professor
@yendar9262
@yendar9262 4 жыл бұрын
Don't do that man, don't give me hope
@vinamarora7049
@vinamarora7049 4 жыл бұрын
Isn't he our 'actual' professor now too? I mean he just delivered us a lecture full of actual information.
@DipietroGuido
@DipietroGuido 4 жыл бұрын
@@vinamarora7049 he is, he just doesn't grade us
@portlyoldman
@portlyoldman 4 жыл бұрын
The future of education is men like Grant Sanderson and his ilk 😎
@ThunderAppeal
@ThunderAppeal 4 жыл бұрын
Youre an idiot
@quahntasy
@quahntasy 4 жыл бұрын
*Wish Universities would hire faculty like Grant instead of PowerPoint slide readers that we got*
@chizhang2765
@chizhang2765 3 жыл бұрын
I really don't think it matters that we get active researchers to teach the first two years of the undergrad physics/maths, but the way universities in general work now you'll most usually have to be a good researcher to be given a teaching post.
@halian.vilela
@halian.vilela 4 жыл бұрын
The moment you finally realize what was that "gaussian blur" filter you've seen in Photoshop since forever!
@LuisAlonzoRivero
@LuisAlonzoRivero 4 жыл бұрын
Teachers that are also content creators is the future of online learning. The quality of this course was off the charts.
@Thomas.P.C
@Thomas.P.C 4 жыл бұрын
AAAA I was so jealous when one of my MIT friends said they got Grant Sanderson to be teaching. MIT is super lucky to have you! Feel free to teach at Caltech too though ;-;
@MahmoudAyman0
@MahmoudAyman0 4 жыл бұрын
first world problems!
@keshavkasat9465
@keshavkasat9465 4 жыл бұрын
@@MahmoudAyman0 lol...true. at least we can access these recordings
@MahmoudAyman0
@MahmoudAyman0 4 жыл бұрын
@@keshavkasat9465 not mentioned the under qualified professors we have at my school
@cheponis
@cheponis 4 жыл бұрын
MIT grad here. Cal-tech? What is that? Some UC football team?
@Thomas.P.C
@Thomas.P.C 4 жыл бұрын
@@MahmoudAyman0 yea... I wish I could say you're wrong.
@ijeremyoliver
@ijeremyoliver 4 жыл бұрын
19:47 "This will really accentuate the points where this Sobel filter, convolved across the image, ends up non-zero." I love that moment in a lecture where the professor says something that 20 minutes early would have been absolute nonsense to me.
@HighestRank
@HighestRank 3 жыл бұрын
Then wait 20 minutes before reading my next sentence. *earlier
@xintongbian
@xintongbian 4 жыл бұрын
20:41 how he just explained the whole idea of convolution neural network in just 3 seconds ...
@nollix
@nollix 3 жыл бұрын
This actually made me kind of pissed at how badly most things are explained. Imagine all the other super complicated-sounding things that are actually reasonable to understand, but you're missing out on them for this reason. Just take a look at the Wikipedia article and how full of junk it is. Why can't everything be explained like Grant does it? Christ. It's like most people don't actually understand anything/the high level concepts behind most things, and have to wave their hands and throw lingo at you to cover it up.
@love_joy_minimalist
@love_joy_minimalist 3 жыл бұрын
well, to be fair he was able to do that because he spent the first 20 mins talking about what a kernel is
@KurohiNeko
@KurohiNeko 3 жыл бұрын
@@love_joy_minimalist Yeah it makes a lot more sense in context, but even so I'm amazed by this person
@fragdeinpferd
@fragdeinpferd 3 жыл бұрын
@@nollix same at our university. I even delayed to watch and learn our lecturer's videos because they piss me off every time I try to concentrate on them. The contrast couldn't be bigger. This video was awesome and managed to explain things in a way that you get an intuitive understanding, whereas in the lecture, we are thrown at with mathematical terms which hinder me from taking up the essential information :D I am very grateful for being able to watch this video.
@enisten
@enisten 4 жыл бұрын
15:46 So, what was the correct answer here? "C. Sharpen" appears at the top with 143 clicks. "B. Detect edges" is marked green. But Grant says, "So, looks like most people thought that it would detect edges. But if we actually play with this . . . the effect that it has on the picture of the cat here is that actually it kind of sharpens it up . . . Now, for those of you who did answer 'edge detecting,' you definitely are on the right track." So, is it that most people actually were right to say "C. Sharpen" and Grant mistakenly marked "B. Detect edges" as the correct answer of the poll and then thought green means the most number of clicks?
@xKhfan213x
@xKhfan213x 4 жыл бұрын
Yes, sharpen was the correct term. He said edge detection was wrong but didn't select the correct answer, he kinda just jumps back to the notebook to explain why it's sharpen and not edge detection Edit... If you look at the 3 x 3 array, when you have the positive number in the center surrounded by all negatives, which was the multiple choice, your going to be sharpening the image in some form where as the edge detection array is split up into negatives in the first column, zeros in the second and positive in the third.
@3blue1brown
@3blue1brown 4 жыл бұрын
My mistake! The correct answer was "sharpen", but I evidently had not set the correct answer correctly ahead of time. Most people gave the correct answer, but all I saw in the moment was that the green bar was number 2.
@SDoylerrs
@SDoylerrs 4 жыл бұрын
I can't believe this is a live stream. It's so well planned and executed. Can't wait for next week.
@lafasanagnuhd4098
@lafasanagnuhd4098 3 жыл бұрын
I don't think Grant is gonna see this but still... I am so glad to see a teachter who is so passionated about teaching the world and sharing his knowledge. If you happen to read this, thank you so much!!! u helped me so much for understanding mathmatical concepts for my engineering bachelor
@hamsterpoop
@hamsterpoop 3 жыл бұрын
15:45 The correct answer is "Sharpen" not "Detect Edges". This technique is called "Unsharp Masking". Also the answer to the question in 14:38 is "Yes, but...", it's called "deconvolution". It can work but, as you correctly mentioned, up until a certain point that depends on how accurately you know the convolutional function and whether there is any other noise in the problem.
@nostradingus3237
@nostradingus3237 4 жыл бұрын
Mr. Sanderson; thank you. I am deeply appreciative of your ability to intuitively explain these oft challenging concepts, and your willingness to do it so prolifically and on an open platform, and I’m sure that this sentiment is near universal for anyone who tunes in!
@therainman7777
@therainman7777 2 жыл бұрын
I see that you’re in your “walking thesaurus” phase. I would strongly suggest just using regular language and typing the same way you talk (and hopefully you don’t talk like this).
@riley530
@riley530 2 жыл бұрын
@@therainman7777 agreed
@guikich
@guikich 4 жыл бұрын
You can think the image as an Electrical signal. As you apply the Fourier Transform you get the frequencies in the "signal" (Image). As you make the convolution again on the Fourier version, you are actually returning to the "pixels" domain and Filtering the image, which get rids of higher spacial frequencies.
@fragdeinpferd
@fragdeinpferd 3 жыл бұрын
kudos for that comment, you just answered an open question I yet had to find an answer for :D
@SSJProgramming
@SSJProgramming 4 жыл бұрын
14:42 This is a very good question and having done work in Super Resolution (a field that attempts to find solutions to that problem, for the application of improving spatial resolution) I can give some quick details. This will be in the context of images taken from cameras. 1) Yes you're losing information so recovering the original information perfectly using NOTHING but the blurry image is practically impossible because of noise amplification, unknown kernels used for convolution, all sorts of non constant, non symmetric kernels. Its even possible that many different images when blurred can give the same blurred output which makes picking a particular solution completely arbitrary. 2) Nevertheless, we can augment the problem in a few different ways, one of which is to add new sources of information that represent the original image in some way. This can be done with dictionary lookups, non local means methods, AI based restoration, etc. Other methods like iterative deconvolution RL deconvolution / weiner deconvolution, and artificial high frequency amplification give estimates for the original image, and in most cases actually look pretty good. However, it is also possible to introduce information contamination that can lead to false objects, such as when you amplify high frequency components that are corrupted by noise leading to artifacts (like ringing) and other phantom objects. Any kind of prior knowledge about the image such as context, kernel used in convolution can all aid in the restoration process. The field is pretty rich, but the best methods to date are the AI based methods -> there are some videos from "Two minute papers" that shows the results of AI based methods, completely beating out (non AI based) methods that I developed as well. I posted them here for whoever is interested in this kind of work. kzbin.info/www/bejne/g6immKmPqbR_iZI kzbin.info/www/bejne/fqerYZVvgMR8qNE Anyways, great video, keep up the good content!
@abc3631
@abc3631 3 жыл бұрын
This guy can't be appreciated enough. There are so many minute nuances to his videos that really make a big difference when you add all up. His dedication to make the content as intuitive as possible is awe inspiring. God bless him
@vierikristianto1334
@vierikristianto1334 4 жыл бұрын
Watching this has taken 36 minutes of my time in the most pleasant way I can imagine
@beautyofsylence
@beautyofsylence 4 жыл бұрын
Well I guess I'm going to learn Julia now 😂
@ArrowRaider
@ArrowRaider 4 жыл бұрын
I was intrigued by Julia in the past and now this is a sign from the KZbin algorithm gods that it is time to learn it.
@dragosmanailoiu9544
@dragosmanailoiu9544 4 жыл бұрын
BAHAHAHA
@haibai1766
@haibai1766 3 жыл бұрын
@@ArrowRaider yeah I randomly came across it in something comparing major programming languages, and they happened to mention Julia (Don't remember what or where it was though), so I looked into it a bit, but didn't really do much. Thanks for the initiative Professor Grant!
@nullpointer1755
@nullpointer1755 4 жыл бұрын
I would love to se a series about audio processing as well, and how to use the FFT in that context.
@rohitathithya3964
@rohitathithya3964 2 жыл бұрын
hi! have you found any interesting videos or lectures?
@Hiyori___
@Hiyori___ 3 жыл бұрын
Acoustic engineering student here. So glad I've found this video... it's amazing to see convolution applied to images. Makes the concept much more clear and intuitive. Superb lecture
@DrunkenUFOPilot
@DrunkenUFOPilot 2 жыл бұрын
I can imagine a video explaining convolution using audio, but most people don't spend much time studying audio on oscilloscopes or analyzing reverb with their ears. Visual is so much more natural and obvious.
@H14m
@H14m 3 жыл бұрын
I thought I was watching a class that had have nothing to do with what I should actually learn for my degree, and he suddenly makes me understand kernels, which was actually a topic I needed to learn. Thank you!!
@fburton8
@fburton8 4 жыл бұрын
It isn't possible to reconstruct the original image from the blurred one. Grant had it spot on about information being lost. There are theoretically infinite (or practically many) ways to get the same blurred pixel value by summing the pixel values covered by the kernel. A perfect deconvolution would require the original values to be assigned back to the pixels that they came from, information which isn't stored in convolved output.
@stpirate89
@stpirate89 4 жыл бұрын
I think you're right. It would have been interesting to see what the sharpen kernel did after the image had been blurred. I'm now also intrigued as to what sharpening an image then blurring it would do...
@fburton8
@fburton8 4 жыл бұрын
@@stpirate89 That would be interesting to try!
@iverbrnstad791
@iverbrnstad791 4 жыл бұрын
@@stpirate89 I think it could make it a bit more cartoonish, sharp but possibly with less detail.
@jambor3
@jambor3 4 жыл бұрын
If you have the kernel though, shouldn't you be able to do the deconvolution (maybe modulo some artifact from the fourier transform)? More concretely, can't you take the blurred image, transform to fourier space, divide by the fourier space kernel, and inverse fourier transform the result back to get the original image (I guess maybe to within a constant offset)?
@arejaybee
@arejaybee 4 жыл бұрын
lol got a notification for 3 blues and a brown. Amazing channel for anyone who enjoys his teaching style. Enjoyed learning convolutions again!
@djimmyriodan7280
@djimmyriodan7280 4 жыл бұрын
4 days ago i was looking for image processing by 3b1b i was dissapointed not to find any ....and now youtube suggested this .. published in 3 september 1 day after my search ... what are the odds ... i love it thank you very much sir you are the best
@olegborisov5091
@olegborisov5091 4 жыл бұрын
I m just wondering why other lecturers don’t share this crystal clear perspectives, it feels that they don’t fully understand the reasons behind all the operations themselves...
@akaHarvesteR
@akaHarvesteR 4 жыл бұрын
Teaching is a talent and a skill, and this man is the epitome of excellence in teaching.
@Wander4P
@Wander4P 4 жыл бұрын
I feel like I understand how a lot of common photo editing effects work now.
@Xammed
@Xammed 4 жыл бұрын
I had to learn Julia a year ago! Now the best teacher on the planet is teaching it.
@distrologic2925
@distrologic2925 3 жыл бұрын
"It's a literal edge case!" I don't know why I found that so funny :D
@ichisadashioko
@ichisadashioko 3 жыл бұрын
Grant Sanderson's videos on the Julia channel have views than most other videos combined.
@llxArthurll
@llxArthurll 4 жыл бұрын
I just wanted my ead classes to be like this, what a quality class
@amarug
@amarug 4 жыл бұрын
for the question about "can you recover the original from the blurred one" its easiest to imagine the Fourier transform of the image convolved with the gaussian: there the frequency spectrum will be "elementwise" multiplied with a gaussian, which will clip off high frequencies, so the information is truly lost and can't be recovered. it's really like taking and out of focus image. apart from some "illusions" like reverse diffusion or "guessing" by a neural net, the true information can't be recovered...
@hamsterpoop
@hamsterpoop 3 жыл бұрын
This is incorrect. The information can be recovered through deconvolution but making some assumptions about the "blurring" filter. This is commonly done in Astronomy and Geophysics. In practice (i.e. in the presence of noise and uncertainty about the cause of the blur), the recovery is not 100% perfect, so it's a partial recovery.
@amarug
@amarug 3 жыл бұрын
@@hamsterpoop Incorrect. What is lost is lost. You can try to guesstimate some of the lost high frequency data to create the illusion of it being there and some methods also do a pretty decent job to make it look believable to the human eye, but you can never retrieve what is lost.
@roderik1990
@roderik1990 4 жыл бұрын
14:41 you can indeed recover the original from a blurred image. Such deconvolution even has established uses in image restoration, and astronomy. That said there's limitations and between noise, nonlinearities, the kernel and the method used, data can get lost.
@nafrost2787
@nafrost2787 3 жыл бұрын
I'm guessing the way to recover the original from the convolution is essentially working backwards from the averages to find original values by solving the corresponding linear equations?
@vinceb8041
@vinceb8041 4 жыл бұрын
Grant Sanderson is the patron saint of visual math teaching
@erikgrundy
@erikgrundy 4 жыл бұрын
After seeing what the Laplace/Fourier transforms can do to electrical circuits, I maybe shouldn't be surprised at the other wonders it can do, but seeing it pop up here as well is fascinating.
@HornWilliam
@HornWilliam 2 жыл бұрын
I've been studying this topic a while now. I've used this in many of my works. This visualization has finally made me get it. Thanks a lot 3b1b :D
@deepaks.m.6709
@deepaks.m.6709 4 жыл бұрын
Happy Teacher's day Grant! It's so sweet of you to spend your life to empower the future of our world. 😇🙂
@DrunkenUFOPilot
@DrunkenUFOPilot 2 жыл бұрын
"Is it possible to reconstruct the original from the blurred image?" Yes, I did that for a living for a major NASA mission. Basic principle is to divide the Fourier transform of the image by the Fourier transform of the kernel. Result is the Fourier transform of a good estimate of the original image.
@kristianTV1974
@kristianTV1974 4 жыл бұрын
Wish I'd had this guy lecturing when I majored in signal processing.
@Darthvanger
@Darthvanger 3 жыл бұрын
"30 min is such a short time for a lecture" - the guy who explained linear algebra in 45 min better than a semester in university.
@fastundercoverkitgoogle7381
@fastundercoverkitgoogle7381 4 жыл бұрын
Wait, whaaaat? I'm watching an MIT class on convolutions given by Grant(3b1b) and posted on Julia's youtube channel? I certainly didn't expect that
@jknair0
@jknair0 4 жыл бұрын
the visualization and depth of teaching is amazing
@zym9785
@zym9785 4 жыл бұрын
I would love to see this same lecture with another hour or so added on to it... or maybe a part 2? Amazing lecture btw.
@InvaderMik
@InvaderMik 4 жыл бұрын
9:58 When I was being trained in data visualization, using green and red within the same plot was considered something of a faux pas. I think it had to do with the relative prevalence of red-green colorblindness.
@Florian-ps1qv
@Florian-ps1qv 4 жыл бұрын
yeah because red/ green would only see gray. I think its smth thats very easy to forget as I didnt think about it either. Nice of you to point this out
@yubai6549
@yubai6549 4 жыл бұрын
Restoring image from blur is a classic research direction for several decades
@jadynancz
@jadynancz 4 жыл бұрын
Literally an amazing explainer
@syntheticsandwich190
@syntheticsandwich190 4 жыл бұрын
I’m not even taking this class, but by just listening I’ve learned a lot. Cool video.
@prasmi23
@prasmi23 4 жыл бұрын
21:42 Niravana...by far the only person who has correctly explained the inversion, which is the crucial bit...a bit that people tend to forget,overlook or not learn when coming from 1D to 2D convolution...i have happy:)
@shiladitya7739
@shiladitya7739 Жыл бұрын
MIT must feel grateful that they got Grant.
@ebeb9156
@ebeb9156 3 жыл бұрын
Explanation about diff between sharp filter and edge detector blow my jaw out! We as students literlly day before had crazy debate about it with two image procc doctors. And they couldnt answered us what diff. Omg.... listen man, thoose doctors are experts in Deep Learning.... What it makes you Grandt Sanderson? The Mesaiah 😇🙌🙌🙌🙌
@Yasharvl
@Yasharvl 3 жыл бұрын
Thanks Grant, it's a pleasure to have you here!
@codekomali1760
@codekomali1760 3 жыл бұрын
Congratulations to MIT and The Julia Programming Language!
@portlyoldman
@portlyoldman 4 жыл бұрын
Those man is a legend. After decades 3Blue1Brown finally got me understanding Div and Curl 😁
@sakshidwivedi4754
@sakshidwivedi4754 4 жыл бұрын
I got so happy seeing him, I almost cried 🥺
@alan2here
@alan2here 4 жыл бұрын
The Wolfram language deconvolution is really impressive. :)
@HectorLopez-ue4qb
@HectorLopez-ue4qb 4 жыл бұрын
Grant Sanderson is the absolute best teacher
@sophiophile
@sophiophile Жыл бұрын
15:00 If you know what the original convolution function was for a gray-scale image (at least), since you know that the surrounding pixels had the same convolution applied, you can deconvolve an image. It's really really computationally intensive (used to wait hours to deconvolve image slices from a 3-d raster scan), but it's done regularly in fluorescence microscopy, where the original 'convolution' (as defined by a point-spread function) is calculated from calibration of your setup (or you just fall back on certain presets).
@gingervytis
@gingervytis 3 жыл бұрын
I worked as a budding software engineer in the MIT/Harvard community for 18 months in the mid-90s. A wonderful life-changing experience.
@govindbarwa1806
@govindbarwa1806 2 жыл бұрын
That should have been quite amazing sir. I just want to know the approach, one should take to navigate a path in today's coding era. Should one focus quantitatively or qualitatively and if qualitatively then how should one increase the quality if one wants to perhaps. It would be pretty great if you would share us some of your insights.
@sankalpachowdhury7378
@sankalpachowdhury7378 4 жыл бұрын
this is going to be an outstanding content on julia, I'm blessed to have subscribed this channel earlier. ❤️ Julia
@FFT3D
@FFT3D 3 жыл бұрын
The answer to the question asked at 14:42 is yes. The process is called Deconvolution. It involves finding the kernel. An image I, is equal to, k * RI, which is the convolution (denoted *) of the real image (RI) with the kernel, k. If you have just the image, I (in the case of the question, a blurred image), then one needs the kernel that caused the blurring in order to remove it. The process is done using Fourier transforms. One could recover the image, ReI, as following, ReI = F(I)/F(k), where F(x) is Fourier transform of the function x. Note, in real life, the recovered image will be a bit off (ReI - RI is not equal to 0) due to the inaccuracy of the reconstructed kernel. Finding the kernel that one assumes their image has been convolved with is another door in the field of physics and math. The first-order approximation is the point spread function.
@BomberTVx
@BomberTVx 4 жыл бұрын
I was confused on why 3b1b was there lol
@samwinnick4048
@samwinnick4048 4 жыл бұрын
Great video! For those wondering about the question of inverting the convolution by a given kernel, consider the following: (1) How might you do it (using an algorithm you probably learned in high school) in the case of a 1 dimensional image? (2) The ring of polynomials in n variables is not a Euclidean domain for n>1...
@samwinnick4048
@samwinnick4048 4 жыл бұрын
(Too late to edit): I should have also mentioned that this is obviously not the end of the story. The more important point, as mentioned in the video, is that you can use a convolutional neural network to try to learn a kernel to perform tasks such as deblurring images with predictable features. Just thought it might also be interesting to some folks to point out this connection to ring theory.
@Toschi23
@Toschi23 3 жыл бұрын
Came here for Julia stayed for Grant Sanderson
@beketmyrzanov1979
@beketmyrzanov1979 4 жыл бұрын
OMG! This guy is lit. I am going to pray for you 5 times a day. Please keep creating content
@Gameboygenius
@Gameboygenius 4 жыл бұрын
Go check out the 3blue1brown channel. If you haven't seen it yet, you're in for a treat.
@patrykkrzyzanski2159
@patrykkrzyzanski2159 4 жыл бұрын
Congrats man, you are doing great, nice to see you as an MIT ....
@prometheus7387
@prometheus7387 4 жыл бұрын
Damn, Grant is making MIT courses approachable to a high school student like myself.
@joseluismatabuenasedano6881
@joseluismatabuenasedano6881 3 жыл бұрын
now than I having online classes at university I am realizing even morehow good he is. Amazing videos here.
@guikich
@guikich 4 жыл бұрын
3blue1 brown this act of filtering the spacial frequencies is what a set of lens (space->frequency domain) + aperture (cut out high frequencies) + lens ( frequency domain -> space) do .
@ca-ke9493
@ca-ke9493 4 жыл бұрын
Could you explain more? This is interesting
@guikich
@guikich 4 жыл бұрын
@@ca-ke9493 www.rp-photonics.com/fourier_optics.html "By placing an optical aperture in a Fourier plane, one can effectively modulate the spatial frequency spectrum. For example, with a circular aperture centered on the optical axis, one can implement a low-pass filter, transmitting only components with sufficiently low spatial frequencies. (That is the operation principle of some mode cleaners.) With a second lens, one can transform back into real space."
@guitoo1918
@guitoo1918 4 жыл бұрын
14:34 Convolution is reversible as long as the spectrum of the kernel doesn't have zeros. The edges would be feathered though because we dont compute outside the frame.
@justinwhite2725
@justinwhite2725 3 жыл бұрын
20:41 I'm here for convolutional neural networks but I'm fascinated by this. I always wondered how those filters in image manipulation software worked and now I know how to do it myself if it ever became practical.
@TheAIEpiphany
@TheAIEpiphany 2 жыл бұрын
Really nice way to introduce convolutions! Start with (visual) examples, slowly build up intuition and then start digging into the maths (if needed).
@BananthahallyVijay
@BananthahallyVijay 4 жыл бұрын
What a brilliant, smooth flowing lec. Could get a quick idea of the concepts I had always wanted to know about. 10/10.
@lktyagi88
@lktyagi88 3 жыл бұрын
You can really change the world understand mathematics. Amazing job!
@evenaicantfigurethisout
@evenaicantfigurethisout 3 жыл бұрын
28:27. Several differences worth noting. 1. With the image were not adding together terms in the polynomial. 2. The (single) Fourier series describes the entire image, whereas the analogy present here might lead one to think that the terms in the series corresponds to the pixels one after another.
@newperspective5918
@newperspective5918 3 жыл бұрын
Wow 25:00 bind blown, thanks for teaching me that!
@TheZenytram
@TheZenytram 4 жыл бұрын
Maaannnn this is so gooood, I'm completely illiterate on image processing subject, but i could follow every step and actually understand this lesson, Grant is so fucking good at teaching, he should make a course to teach processional in their respective areas how to teach clearly to anyone.
@emmanuelkoutsoudakis4614
@emmanuelkoutsoudakis4614 Жыл бұрын
Kudos for excellent series.
@samyu4473
@samyu4473 3 жыл бұрын
Smart guys can teach very clearly and make you understand easily. Funny that I can understand MIT lectures but not my own lecture...
@ResilientFighter
@ResilientFighter 4 жыл бұрын
This professor is awesome!!! So happy to see Julia taking off
@Wonders_of_Reality
@Wonders_of_Reality 4 жыл бұрын
Love your new design! It’s so much easier to read black text on a white background!
@gravylake8394
@gravylake8394 4 жыл бұрын
It's worth remembering that when taking RGB values from an image they are usually stored in gamma space so as to be perceptually linear instead of actually linear. To apply a convolution kernel correctly the values must be linearized first, then converted back to gamma space after. Minute Physics has a great video on this called Computer Color is Broken.
@anassheashaey
@anassheashaey 4 жыл бұрын
I saw Grant in the thumbnail and Julia language in the title and I thought the youtube app has a bug.
@dennisestenson7820
@dennisestenson7820 2 ай бұрын
14:38, nowadays there are inverse convolutions, and diffusion models, which effectively do just that.
@professionalprocrastinator8103
@professionalprocrastinator8103 4 жыл бұрын
Convoluting an image with a gaussian kernel when it comes to image processing (blurring) is analogous to applying a diffusion operator to the image. In physics, diffusion is known as an irreversible phenomenon. This has something to do with entropy naturally evolving towards a maximum from the point of view of thermodynamics - or diffusion being an exergonic process; you'd have to bring in free energy to reverse the effect, through a non-spontaneous process that takes in free energy from the surroundings (which many believe is why life can be sustained). Anyway, the diffusion equation (commonly known as heat equation) has a time-dependent term and the diffusion operator. By replacing t by -t in the equation, it becomes clear why diffusion is irreversible from a mathematical standpoint.
@Tupster
@Tupster 3 жыл бұрын
It really looks to me like in the Mario example you are convolving the already convolved image instead of creating a new one because it gets more and more blurry as you go from the top left to the bottom right. In fact, I think the discussion of scanning the image in a particular order is misleading because all of the computed points in the convolution can be done simultaneously because it isn't a "running average" or anything like that. The convolution function computes a single point at a time independently so it can be done in a random order.
@dannyisrael
@dannyisrael 3 жыл бұрын
you can unblur an image if you store the edge information (edge_info = original_image - blurred_image), then you could add that back in, which isn't exactly what was asked, but had to do something like that on an assignment in the past.
@parthasarathis349
@parthasarathis349 4 жыл бұрын
Grant I love the way you explain things in an easier way.
@KurohiNeko
@KurohiNeko 3 жыл бұрын
Its really interesting if you connect 26:08 with your Taylor Series video on approximating functions by taking derivatives to get the coefficients of a polynomial that approximates said function. If we consider 2 functions and we approximate them with these polynomials (for a domain), and then we can convolve the functions by convolving their polynomial approximation's coefficients.
@mariamhasany5740
@mariamhasany5740 2 жыл бұрын
Superb explanations! Thanks for such a nice and easy to understand lecture
@benhbr
@benhbr 4 жыл бұрын
15:00 you can in Theory recover a function from its convolution, but only if you have infinite precision. The rounding errors make the original unrecoverable in practice.
@deinauge7894
@deinauge7894 4 жыл бұрын
at the end he answered the question if the blurring is reversible: it is indeed, because in fourier space you can just devide by the transformed kernel and get the original back ;-) but be careful with edge effects...
@prowhiskey2678
@prowhiskey2678 4 жыл бұрын
This lecture is so well prepared, well done!
@donaldhobson8873
@donaldhobson8873 4 жыл бұрын
Many kernels, like Gaussian, can be produced by first doing a horizontal convolution, and then a vertical. If that still isn't fast enough, there is a trick to speed the convolution up further. Suppose you have an N dimensional function space that is invarient under translation. For example, the space of all polynomials of degree at most N-1. This forms a vector space, as if f(x) and g(x) are polynomials of degree at most N-1, then a*f(x)+b*g(x) is too. Also if f(x) is in this space, so is g(x)=f(x+c). Another example would be sin and cosine waves of a finite set of fixed frequencies. Suppose the function you want to do a 1d convolve with is in such a space. Pick a basis of that space. f_1(x) .. f_N(x) Pointwise multiply each function in the basis with the array. So if A is the array to convolve, calculate the array [ A[1]*f_i(1) , A[2]*f_i(2) ... ] for each i in range 1 to N. Then take the running sum of each array. You can now find the sum of A[j]*f_i(j) over an arbitrary interval, just by taking the difference between the endpoints. But any function in your function space, is a linear combination of these. Putting this all together, you can convolve any array with any section of any polynomial, with a runtime that scales like length(array)*degree(polynomial). If the function you want to convolve with is piecewise polynomial, that would multiply the runtime by the number of pieces. EDIT: I now think that this algorithm is quadratic in the degree of polynomial. You need to calculate which linear combination of convolutions with the f_i(x)'s to use. This doesn't depend on A, so if you are convolving multiple 1d arrays by the same polynomial, these values could be cached. The fastest way I can see to do this is to write f_i(x+1) as a linear combination of f_j(x)'s then put these values in a matrix (over all i,j) Then take the vector that is the linear combination of f_i(x)'s that you want to convolve with, and repeatedly multiply it by the matrix.
@informativt
@informativt 3 жыл бұрын
On reconstruction of a blurred image, that's called "compressed sensing" which is, or was, a very hard problem. You might know the consequence of that research as deep neural networks
@RaviranjanKumar-ny1re
@RaviranjanKumar-ny1re 2 жыл бұрын
Your way of explaining topics really amazing sir, thank you so much for such an interesting tutorial 🙏
@vil9386
@vil9386 Жыл бұрын
Grant Sanderson is god for me! Thank you!
@JudahDaniels
@JudahDaniels 4 жыл бұрын
This was fantastic, can't wait for the next one!
@hugueds
@hugueds 4 жыл бұрын
best video about conv ever, you are a god in any subject!
But what is a convolution?
23:01
3Blue1Brown
Рет қаралды 2,6 МЛН
The Most Important Algorithm in Machine Learning
40:08
Artem Kirsanov
Рет қаралды 425 М.
这三姐弟太会藏了!#小丑#天使#路飞#家庭#搞笑
00:24
家庭搞笑日记
Рет қаралды 125 МЛН
Minecraft Creeper Family is back! #minecraft #funny #memes
00:26
Шок. Никокадо Авокадо похудел на 110 кг
00:44
Поветкин заставил себя уважать!
01:00
МИНУС БАЛЛ
Рет қаралды 5 МЛН
Seam Carving | Week 2, lecture 7 | 18.S191 MIT Fall 2020
27:51
The Julia Programming Language
Рет қаралды 104 М.
6. Monte Carlo Simulation
50:05
MIT OpenCourseWare
Рет қаралды 2 МЛН
What is a Discrete Fourier Transform? | Week 14 | MIT 18.S191 Fall 2020 | Grant Sanderson
34:48
Convolutions | Why X+Y in probability is a beautiful mess
27:25
3Blue1Brown
Рет қаралды 681 М.
Convolutional Neural Networks from Scratch | In Depth
12:56
2023 MIT Integration Bee - Finals
28:09
MIT Integration Bee
Рет қаралды 1,9 МЛН
Convolutional Neural Networks Explained (CNN Visualized)
10:47
Futurology — An Optimistic Future
Рет қаралды 217 М.
The diffusion equation | Week 12 | MIT 18.S191 Fall 2020 | Grant Sanderson
21:30
The Julia Programming Language
Рет қаралды 156 М.
MIT Introduction to Deep Learning | 6.S191
1:09:58
Alexander Amini
Рет қаралды 564 М.
Lecture 1: Introduction to Superposition
1:16:07
MIT OpenCourseWare
Рет қаралды 7 МЛН
这三姐弟太会藏了!#小丑#天使#路飞#家庭#搞笑
00:24
家庭搞笑日记
Рет қаралды 125 МЛН