Camera Calibration using Zhang's Method (Cyrill Stachniss)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
welcome to the course today I want to introduce today a technique for a camera calibration that means one estimate the intrinsic parameters so the calibration matrix of our camera not taking into account where the camera is so in contrast to DLT where we were estimating the intrinsic and the extrinsic SATs the same point in time we are here trying to estimate only the intrinsics furthermore we want to simplify our life a bit in the sense that we assume to know the 3d locations of control points in the environment that we needed for the VLT and we will basically use here a checkerboard pattern so a known printed 2d structure for performing the localization and this approach method proposed by Chang but more than 20 years ago is today one of the standard methods for performing camera calibration and a lot of toolboxes that you use for performing camera calibration actually uses the ideas presented here so if we are look at the overall concept we have that mapping that maps up from the world coordinate to the pixel coordinates and involved this projection matrix P the projection matrix P contains the intrinsic parameters in the extrinsic parameters that means the calibration parameters which are the intrinsic and the extrinsic parameters which is the pose consisting of the position and orientation of a camera and we are today only interested in the intrinsic so we don't care what the camera is we only want to find the intrinsic parameters of our camera again the DLT mapping tells me how to project the point from the 3d world to 2d and we have the image plane we have our protection center here of our camera we have the 3d point in the world that's projected onto the image plane and then goes into the camera and for fully describing this mappings we need to have P which has 11 degrees of freedom DLT estimated all these 11 degrees of freedom so calibration parameters here the five and three translation three rotational parameters and today in sangs method we don't care about R and X zero and we only interest in getting the calibration matrix okay so what I assumed you to know how that works a holiday to understand the lecture is I seem you know how DLT works and how we compute the DLT so if you don't know that please go back and watch the lecture first on the direct linear transform and how to estimate the direct linear transform because we will basically reuse a solution for the DLT and then need to slightly modify it so that only the last step of the DLT is actually different for it songs method and the first part stays the same so if you don't know the DLT please watch the DLT lecture first thank you so assuming you know how TLT works we can now look into tunc method which is a camera calibration approach but this time it doesn't use known 3d points three locations of at least six points in the environment it uses a checkerboard pattern so what you see here is an image of a checkerboard pattern this is basically a printout of a black-white pattern which we assume to know that you can glue on a flat surface and then let's say a piece of wood or cardboard or whatever it is should be only should be flat and then you control this checkerboard in front of your camera so you basically they end the round with a checkerboard in front of your camera and generate images of this checkerboard pattern and under the assumption that you know the checkerboard and you also know that's a flat surface that's something that we can actually exploit the course we're now observing a known structure without actually measuring 3d points in the environment and it was the case for the DLT so we assumed to know this checkerboard let's say we have observation of this checkerboard from different sizes this is one example over here and we assume to know the size and the structure of the checkerboard and one of the important thing to exploit in here's that the checkerboard is a flat surface and this one plane and this is a key property that we are actually going to exploit so we can do is we to be simply run let's say a corner detector on that checkerboard so you know how that works finding interest points or key points so that you actually find the corner points of this checkerboard so you get a large number of point observations and you at least know where those points are on the checkerboard so what you do not know is we are the 3d location of those checkerboards pas are in the 3d world but what you know is where those points are on the checkerboard all right so this is something that we can assume to know and then we actually use a trick and we say for every image we define an own coordinate system and the coordinate system is defined in a way that the XY plane forms us the checkerboard so in the every time the checkerboard deforms define the XY plane and we can exploit this fact for defining the XYZ locations of all those points here in this coordinate frame of course it's important to know the coordinate frame changes from frame to frame but within a frame where the same coordinate system and often this is sufficient or not often in this approach this is sufficient in order to actually estimate the calibration parameters of our camera so the trick is that all points lie on the checkerboard and lie which defines the XY plane of our coordinate system that means that all the coordinates in the 3d world have Z coordinate of 0 so all those points here have a set coordinate of 0 all those points here have a set coordinate of 0 and all those points here have Zed coordinate of 0 just because for every frame we define or co-own coordinate system well this is actually the case this exploits that the checkerboard is a flat is a plane so it's glued on a flat surface and this is kind of a key thing we exploit and then we know the XY locations as well because we know the size of the printout that we use for generating this checkerboard okay so let's see how this assumption that Z equals to 0 for all 3d point changes the mass of the overall system and it does it substantially so this was the mapping that we used to describe so this is our homogeneous vector 3d coordinate vector this is the matrix containing the rotational part and the translational part and here we then have the calibration matrix and this maps it to our 2d pixel coordinate so now we know that the that coordinate of all points are zero so each point has ay coordinate of zero so this red circled variable it's 0 all the time ok so now if we multiply this matrix by at this point knowing that this point is 0 it actually turns out that this column over here has a zero effect on our system because we were always taken down to zero so it's something that I don't need to estimate that means the last column of my rotation matrix is something I don't need here so this is not needed so we can actually eliminate those variables from our from our equation system because this is the equation system relating our observation with our knowledge about our models so by eliminating this column and eliminate the third row of this vector over here we turn into equation which looks like this ok so a point on the checkerboard the XY coordinate is mapped to the image coordinate and I don't need to know the Z coordinate of that point in the 3d world or because I know it's 0 for that own reference system so every point on my checkerboard will generate me one of those equations right so every point of the 3d world on that checkerboard generates me this equation and the parameters in here and here so these are these parameters are the same for all images and all checkerboard observations and this matrix over here is the same for every frame so all the points which have been extracted from the same checkerboard image okay so that's important to differentiate we will need that later on ok so we have a matrix H which is now a three by three matrix so these are the multiplication of those two matrices over here which I can write a three column vectors H 1 H 2 H 3 so the something that that I can split up into my calibration matrix k and my matrix which now consists of two vectors R 1 and R 2 which are the first two columns of my rotation matrix and then my translation vector T over here so that one point generates me this equation over here so I have multiple points for now we are just considering one single image so all the points from the checkerboard that are generated for one single image so for now just one single image is taken into account so we get a number of those equations if we have eye points on our checkerboard we actually obtain those this equation over here and again these are knowns these are knowns and my unknowns actually sit in here and now it's important to know about do T right if you haven't watched the video on DLT I suggest to do that before you continue here because knowing how to solve this requires us to Christ you have seen the deal T electron so we can perform this step exactly as the first steps of the deal t actually every step except the last step of the DLT we can apply in exactly the same way so if you remember that we said we have our knowns here and our unknowns and here what do we do we vectorize this matrix h so that it contains our nine parameters H 1 1 2 H 3 3 we stick them into a vector and then we compute the corresponding coefficients from X lower case X and uppercase X once the image coordinates and the other one the 3d world coordinates so that we instead of having the 3 by 4 projection matrix PS in the DLT we now have a 3 by 3 tomography this is all matrix H so that we then have exactly these coefficients for my H so these are they this H are kind of the 9 stacked value so it's 9 dimensional here not 12 dimensional as for the DLT but the rest stays the same and just to show you the correspondence between the problem that we have here and the deal T problem I wrote here the coefficient vectors down for the deal team and crossed out all those which go away because they are the z-coordinate of all points are zero so they are eliminated and I just don't need to build up these twelve elements here I just need to go down to the nine elements that I need because the others I eliminated already from my equation system okay so it's the same as in the DLT except that we can cross out those three columns or rows from the coefficient vector and as a result of this we get a kind of slightly simplified form we're just kind of now across odd or eliminated all the variables that were crossed out in the previous slide so then we have my we have the my unknowns my coefficient vectors I get those coefficient vectors and then I need to solve the resulting system of linear equations in order to estimate H we can do this using the singular value decomposition as in the same way as we did that for the DLT estimation that we have done so we need to think about how many points do we actually need in order to estimate this age so for the DLT remember we required over all six different points and but now here the situation is slightly different so we need to have at least four points to determine H why it is the case because H has eight degrees of freedom it's a three by three matrix so it's nine elements but again it's an homogeneous matrix so it only has eight degrees of freedom because it's only defined up to a scaling factor every point on the checkerboard gives us two equations two observations an X observation and the Y observation in my on my sensor so on pixel location X in X in the pixel location in Y and so that means we need to have at least four points in the checker board in order to do this in order to provide an estimate for H and again this is now image dependent so it is dependent per image because we defined the coordinate system independent for every image based on the location of the checkerboard and this provides me an S for age and after we have computed using the singular value decomposition exactly as we did it for the DLT we actually come up with an estimate for H so we have H now and all the question is how do I get K from H and this is the point in time where things change between sangs method and the original DLT estimation that we discussed so just as a reminder what have we done in the in the DLT and the DLT we also had this matrix P that we need to decompose into two matrices it was actually not fully the matrix P but the first 3x3 block out of my matrix that I cut out cut it out of my matrix P that I needed to decompose in the rotation matrix and the calibration matrix and for that I used the QR decomposition because security composition was exactly what I wanted to do it generates for me a rotation matrix and upper triangular matrix a lower triangular matrix that I can actually generate out of that and this was exactly what I was what I needed in order to obtain my K and my rotation matrix now unfortunately the story is different because this thing here is not a rotation matrix anymore because we have the translation vector key sitting in here which basically replaced the third column of my rotation matrix and this is the problem why we can't apply the QR decomposition so this is not the point in time we have the DLT and Sung's mess it basically deviate and need to generate two different solutions and it actually gets a little bit more complicated here for shanks method because we cannot simply apply QR decomposition in into such an elegant way as we did this for the DLT and this is what it makes it more tricky so the questions how do we now obtain our matrix decomposition so even if I don't care about this part here I can ignore this part but actually get K so this is I'm not interested in this part but I want to get K and so if I have my matrix H I need to go from H to K so this is the goal estimating K from H so again the problem you computed H via SVD and now we need to extract case you need to break up this matrix H into two matrices one is this calibration matrix is upper triangular matrix and this second matrix where I only know that the first two columns are actually columns from a rotation matrix you know to do they say is kind of not a standard decomposition that I can use in order to exploit those properties so that's something that I now need to do by hand by hand means manually exploiting the constraints of things that I know for example about R 1 and R 2 and so I need to know to derive a non solution to do this and this is actually a procedure consisting of 4 steps so for the first thing we need to do we need to write down certain constraints that we know so for example what do I know about K what do I know about R 1 what do I know about our - how can actually exploit this and I will exploit properties that I needed that are 1 and R 2 are column vectors from rotation matrix you know the columns of a rotation matrix have certain constraints and I can exploit those constraints write them down in order to form a system of equations that I then need to solve and then be hopefully able to decompose the matrices so first I will write down the constraints and exploit constraints then I will define a matrix B which is K inverse transpose times K inverse we will see that this term K inverse transpose K inverse is a term that pops up in a couple of the equations that I actually write down and so I define this matrix B so that my math gets slightly more similar and then I will I can find a define a system of equations and this system of equations will actually lead me to B so by solving a matrix by by solving the system that I derived from the constraints are formulated here in number one I will be able to estimate the elements of B and once I have the elements of D I need to decompose B so that I can break down B and 10 K so there's a kind of multiple steps I'm doing I'm defining constraints on defining a matrix B and then solving my constraint so they can determine the elements of B and then I do a matrix decomposition actually to rescue decomposition of B so that I then obtain my matrix K so there are a couple of steps in between and a number of coefficients that I actually need to compute in this process but this then allows me to decompose this matrix B but the key thing to start with taste understand all those constraints what are the constraints which constraints do I cannot actually exploit from K are 1 2 so again this was my this was the equation that I have my calibration matrix here and this remaining matrix R so what do I know about that the first thing I know what I can actually do is I know that my matrix K is actually an invertible matrix alright so it was it's this upper triangular matrix and all the elements on the main diagonal are unequal to 0 so I know that K is invertible and I can invert my matrix K this is a property that I'm exploiting now what I can do is I can invert my matrix K and multiply it from the left-hand side of this equation so if I multiply to the left-hand side of this equation if K inverse times H and this gives me my matrix R 1 R 2 T ok so this is basically what I have written down here R 1 R 2 T is K inverse times the three column vectors of H that I have so H remember H is known so this H I do know but I don't know is K and what I don't know all those parameters here but what I also know is from this equation that R 1 is nothing a sin K inverse times this vector because this gives me exactly the first element of this equation the same for the second one so R 2 is K inverse R 2 and for T I could do the same but I don't need that for the moment I only need this for R 1 and R 2 so I can press express R 1 s K inverse times H 1 and K inverse H 2 and if I would know K I could compute R but if I would know okay I wouldn't have a problem in here I wouldn't need to continue so the problems I can't actually compute this right now right but I know that those this equality exists so there must be equal to R 1 and R 2 but what I then can do is I can exploit the fact that R 1 and R 2 stems from a rotation matrix so I know certain things about this rotation matrix so actually R 1 R 2 R 3 although R 3 is not relevant here form an orthonormal basis that means two things first R 1 transpose times R 2 must be 0 because those two vectors are orthogonal to each other so if I compute the dot product they should be 0 and the second thing that I know is that R 1 and R 2 are of unit length so I have length 1 so these are two constraints that I can actually drive with extract from this by knowing that R 1 and R 2 stem from a rotation matrix so that are our 1 transpose r 2 must be 0 and the norm of R 1 and the normal for two is equal and they equal to 1 and this is now something that I can exploit so I use this one over here this equation or these two equations actually and these two equations over here to relate K and H using those constraints down here so what I do is I just take the constraint over here take R 1 from here and put this K inverse H in in for a 1 and K inverse H 2 for R 2 and know that this is 0 this basically what happened over here so this was right before I use R 1 transposed R 2 equals 0 so I just put that in so this is H 1 transposed K inverse transpose ok - to the power of minus T means the inverse of K being trans post and this is K inverse H 2 must be 0 ok so it's something that follows directly from the fact that I know that are what the rotation matrix ok and so that the second thing I can do now export the second constraint naming that R 1 and R 2 our vectors of length 1 and so I know they must be equal and they must have length 1 so I can actually write down our 1 is nothing or our 1 the norm of our one is our 1 transposed times r1 is so it turns into h1 transposed K inverse transpose K inverse h1 so not not too in here here it was a 2 that would be 0 but it's 1 so this must give me Lange's 1 and I know that this must be equal to the same thing done for r2 so there's the second constraint that I have what I can now do is just can just move that to the other side so again get an equation where this is equal to 0 so again here I just moved these parts to the other side it's equal to 0 so this equation this equation this two equations are now constraints that I've formulated which relate me elements that I know which are my every my H vectors there unknowns with my unknowns which are here my case in an equation that equals to 0 and this is something that I will exploit in a second so the next thing is what I can do now if I kind of write down the equations under each other I see that this K inverse transpose times K inverse appears in all of my equations so just kind of what I can do is I can just define the symmetric and positive-definite matrix B which has the form K inverse transpose K inverse so it basically can replace this thing by this just a variable replacement for now and then I have here the form that I have my known vectors over here and my unknown matrix sitting there in the middle and by knowing that the consists of a matrix transposed times a matrix I can actually see that there exist a standard matrix decomposition that actually breaks me a matrix up that is symmetric and positive-definite into a matrix time's the matrix of its transposed so and this is the Tresca decomposition so the Telesca decomposition of an arbitrary matrix breaks it up into two matrices of two triangular matrices and the one if the other one transpose so if I have B I can compute sure let's get a composition from being about and it breaks me gives me the matrix a so that a times a transpose gives me my matrix B okay so this is a decomposition that we typically use for solving our linear systems in an efficient way but I can also use it here so if I say a is K inverse transposed and I put it in here then the product will give me B and if it can turn B into a a transpose into a unit-less kedo composition I can directly derive the calibration matrix out of it the only thing I need to know is I need to compute the inverse and try and invert it that's something which is easy with a 3x3 matrix so the key inside here if we know B then we can directly compute K okay so exploiting the chill SK decomposition we can turn B into K the problem is we don't have B yet but the next step will focus on how to actually get B and for that we will exploit these equations over here so what we have is if you inspect the equations we have B as a matrix which consists of our unknowns and given that the symmetric a matrix with only have six unknowns not nine unknowns and H our knowns and we have two equations that relate B and H with each other and actually set them equal to zero and this is something that we actually have seen in the past quite often so also in the DLT lecture you have seen that that we got an equation of a similar form that we exploited to compute to reformulate it so that we have a coefficient vector times an unknown vector equals to zero and we can actually do this if we have this form of equation over here and so we will use basically the same trick again of using this exporting the SVD setting up a system of linear equations that we are going to solve in a very similar way as we used it for the DLT and can use this to compute the matrix B so again we have our mitri matrix B which consists of six unknowns giving the symmetric matrix only need to care about those six unknowns so B can be described by or my small my vector lowercase B contains the six unknowns of my matrix uppercase and again this is also something which is only defined up to a scale factor and then I have the constraints from that I have written down before so the two constraints have you seen before I can actually reformulate it with a with the coefficient which is now a vector V so that V transpose times B equals to zero and a second one where if we transposed times B minus different V times B equals zero so these are basically the coefficients which resolve from this equation and the coefficients which result from this equation over here and so I can similar I did it for the DLT can set up one constraint which looks like this and a second constraint which looks like this and now you can see that this thing actually comes much much closer to the thing how we use in the DLT for solving this homogeneous system in order to derive align nodes and we can do now the same thing so we can actually set up a matrix capital v which is defined in this form so putting the coefficients sticking the coefficients together and also you can actually write that down v IJ is of this form and these are all the elements of my matrix H so if you actually want to write that down and implement it you need to know this matrix here but they can be directly derived from the constraint that we had before so that for every image we obtain this matrix here so this is a matrix and this is B so this is a 2 x 6 matrix over here and this is a 6 dimensional vector this equals to 0 so for every image I can generate these constraints in here which can which must hold for my matrix K over for my matrix B which are then used to compute K to be precise so for one image I can compute my H and then from this H compute this coefficient vector exactly using this equation over you and then the problem this is just a 2 by 2 by 6 matrix so I need to stick multiple images together at least three so that would get a 6 by 6 matrix but we can take more images so if I take n images I get a 2 n by 6 matrix where the first two dimensions relate to image 1 dimension 3 and 4 to image 2 and so on and so forth so that in the end image 2 n minus 1 and 2 N and relay give me the information from image number and multiply it with my 6 dimensional vector and this must be equal to 0 and this is something that I need to solve solving linear system of homogeneous form to obtain my unknown vector B which would which blend will fill me the elements of my matrix feed so that I can then using the cholesky decomposition turn that into K so how do I solve such a system v times B equals 0 just not the trivial solution so we impose this additional constraint that B equals to 1 and then we need to minimize the equation with the norm exactly the same way as we have done it for the DLT in the DLT lecture using the SVD so what we are doing we are computing the singular value decomposition and then taking out the singular vector that corresponds to the minimum singular value which should be 0 but is not 0 in reality as real measurements are typically noisy so we take the singular value which has the smallest value so the the last one in this diagonal matrix that is generated from the singular value decomposition take out the corresponding singular vector which then is the solution to B so then I tane my be star which is the singular vector that minimizes this equator because this is one which minimizes the term over here okay then I have been and then I just compute modulus Tedeschi decomposition and obtain out my matrix K so just to sum up again what's needed in here we need all checkerboard images and we need to have at least three of those images we will extract points out of all those checker boards and we were exploiting that we know the size of the checkerboard and we know it's a flat surface and from four points we can compute our matrix H and the matrix H is the in individual matrix H for every image so we have an own H for this image and own H for that image and an own age for that image over here okay so H is computed for every image and then each of the plane so each basically each image gives us two equations for computing B right so for this B we got two equations out of every image since B has five four six degrees of freedom we need three different views of that plane okay so we have so this is because B was a symmetric matrix but we it's only known up to a scaling coefficient so therefore we have in the end five degrees of freedom but that means we need three different views for three different images in order to compute the matrix P and then I need to solve V times B equals to zero with singular value decomposition and then compute my cake out of the Chula skillet composition so you've seen here that there were a couple of steps actually needed in order to make this decomposition so we basically preceded s for estimating the DLT but then we had to do some extra work because the matrix we wanted to decompose had not this nice form of being upper triangular matrix and rotation matrix the properties of the rotation matrix didn't hold we only knew that for two of the two of the columns that nest them from rotation and thus we need to do this extra work here and then also needed more images because requiring more than one image was something that came from the constraint that we have derived in here so and therefore we need three images not only one images not only one image because this constraint didn't hold that I that the the second matrix said I need to decompose the rotation matrix this is extra work that needed to be done but with this extra work we actually able to do this decomposition in a manual form and this allows me now to compute my camera calibration matrix at least the five parameters that are typically in there in the order which should describe the linear parameters that are involved and which allows me the kind of the first step of my camera calibration so you may ask you to self now what's with the nonlinear parameters so if you think about the lecture on describing the mapping x equals px we also talked briefly about the the nonlinear parameters so what we typically have in this setup is we have an additional or we have a calibration matrix which is multiplied version with an additional term here from left hand side which is this kind of shift in the x and y which is dependent location dependent so this correction which takes into account the nonlinear errors we haven't taken into account on it on the past there takes the pixel location in the image plane into account in order to compute basically a shift depending on the pixel location and based on some unknown parameters and this is multiplied to the calibration matrix K to take into account the nominee errors things I could do with it is to take into a car lens distortion like the barrel distortion over here or kind of the inverse one or combinations of both and I need to have those additional Corrections you know take lens distortion like those or even more complex ones into account and how we did this just as a sort example this could have been an equation which has two additional terms over here or two additional coefficients one is multiplied with the most could be variable R squared and R to the power for this are what the radius or the distance of the pixel from the optical axis to the pixel in the image and so they're basically the further away a point is from the optical axis the stronger this distortion correction actually gets and this was one way for performing these these Corrections so kind of this is this barrel distortions the standard thing that you need to do especially if you work with wide-angle lenses for your Corrections and leads to this additional nonlinear parameters that get involved into your equation so these are actually those equations those parameters which are sitting here and throw this shift would be described by actually this part of the function so this is where the pixel was originally and then this would be the shift parameter that gets involved in here and you can have additional correction parameters that need to be taken into account and if you do this and want to perform the camera calibration you then to be revert to a least squares estimation approach where you estimate the distance between where the pixel of a point is actually projected to into your image and where you expect it to be so you can see this as where do I actually get my observation this is this point over here so the N is simply the sum of all images because now you take multiple images into account some also over the images and then over each point in an image where at this point being measured and where should that point be given my parameters and given that I know where that point is so you have your basically minimizing the reprojection error so you're projecting the point back into the image and subtract from the point where you're seeing it so you're minimizing the distance the squared distances between where that point should be and where you actually see that point and then you perform at least square error minimization and and start taking into account also your nonlinear parameters what you typically need for that is you need to have an initial guess and the initial gas is typically setting the nonlinear parameters to zero and run sangs methods as I described it here before as my initial guess so because again it's a direct solution something that doesn't need to iterate and provides me the camera matrix without nonlinear nonlinear errors and then starting from this we actually run this least square error minimization approach in order to find the updated calibration matrix the nonlinear parameters and estimating the overall process and that's something that we then need to do so if you do this just as an example you get your calibration parameters for the checkerboard if this is your input image input images and if you apply the correction parameters these are your output images and what you can see here that this kind of barrel distortion that you can see here for example and this is not a straight line anymore leads to perfectly straight lines here in your calibrated after your calibration so you can correct your images and actually see that those parameters are actually gone there nonlinearities 31 estimate so that's it basically so far from my sight so what we have done is we provided a camera calibration approach you being a checkerboard pattern and what we were assuming here that's a pinhole camera so we assumed to have this model x equals px so that with our standard transformation we can transform a point in 3d world with this TLT transformation into my image plane this kind of the first step and we are basically calibrating for this pinhole camera model estimating the these five parameters of my calibration matrix and then as a second step we can take into account nonlinear parameters in order to do for the correction then running at least squares approach and this is a standard approach to camera calibration that we're doing here it allows us to accurately determine the parameters and the checkerboard makes extra calibration rather easy it's not that you need to have a special calibration room of non 3d points so you can just take a standard size paper do this printer the printer glue it on a on a flat rigid surface like a piece of wood for example and then show in front of your camera make sure every part of the camera actually sees a checkerboard and then you can calibrate your camera and and get your calibration matrix out and then work with a calibrated so calibration in general means that we're estimating our intrinsic parameters consisting of non linear and linear errors the linear one our five errors and be used thunks message esti estimate those five linear parameters using a checkerboard and then the nonlinear asked arrows are then estimated and additionally using these nonlinear least squares approach where this I'll actually come to an end and this is actually the original work by design which describes the camera calibration approach although he uses slightly different notation that I used here and if you also want to dive into details also recommend first nonverbals book on photogrammetric computer vision which describes all the things about the deal to you at we have discussed in detail in here and provides a very rigid rigorous the description on how we can actually estimate those parameters how uncertainty looks like actually going into much more details then I have covered it here in the lecture number less thank you very much I hope you have learned today how to calibrate your camera with the using a checkerboard pattern mmm a lot of standard toolboxes actually use this and check out board pattern for calibrating your cameras but I hope through this lecture you have an idea of what's going on internally so that you understand the process better and also know why you need to have a certain number of images in order to perform the computations and what are the assumption that we used and how these decompositions actually look like and that solving linear systems homogeneous linear system is something that pops up very often and it's important to know with a lot of relevant real-world applications so with this thank you very much for your attention and see you soon thank you
Info
Channel: Cyrill Stachniss
Views: 14,678
Rating: 4.9584775 out of 5
Keywords: robotics, photogrammetry
Id: -9He7Nu3u8s
Channel Id: undefined
Length: 41min 22sec (2482 seconds)
Published: Mon Apr 20 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.