[Robotics] Camera calibration parameters
Benoit Bolsee
benoit.bolsee at online.be
Tue May 18 09:32:24 CEST 2010
Simon,
Indeed, a Blender camera does not match a real camera on the focal
distance aspect: a Blender camera has an infinite field of view (limited
by the clipping planes though) as the image is sharp on all distances.
You can simulate a limited field of view with an appropriate 2D filter
using the Z buffer as a measure of distance and bluring the pixels that
are outside the field of view.
Benoit
> -----Original Message-----
> From: robotics-bounces at blender.org
> [mailto:robotics-bounces at blender.org] On Behalf Of Simon Lacroix
> Sent: mercredi 12 mai 2010 19:31
> To: Blender and Robotics
> Subject: Re: [Robotics] Camera calibration parameters
>
>
> Benoit,
>
> I am not sure the 'near' attribute can be considered as a focal
> length. AFAIK, it is a clipping attribute, and modifying it does not
> influence the field of view -- as would do a focal length
> modification. One dimension is actually missing in the
> Blender camera attributes to
> establish a one-to-one link between a Blender camera and a real one.
> The good thing is that in computer vision we only need the ratio f/
> pixSize, that suffices to define the central projection that models
> the camera, and which is defined by the 'lens' attribute (what mixes
> up things a bit is that this attribute is said to be in mm in the
> documentation -- but being not a Blender user, I did not dig a lot).
>
> Simon
>
> On 12 mai 10, at 18:24, Benoit Bolsee wrote:
>
> > Hi Simon,
> >
> > You got the point I think. If you want to have the physical pixel
> > size,
> > it is easily computed with
> >
> > pixSize_u = near * 32.0/lens/capsize[0]
> >
> > Which means that the focal distance is camera.near if I insert this
> > value in your a_u formula.
> >
> > Camera.near is the distance from the camera position of the
> projection
> > plane where the pixels are formed. For a real camera,
> that's where the
> > CCD plane would be. I guess it makes sense to call it the focal
> > distance.
> >
> >
> >
> >> -----Original Message-----
> >> From: robotics-bounces at blender.org
> >> [mailto:robotics-bounces at blender.org] On Behalf Of Simon Lacroix
> >> Sent: mercredi 12 mai 2010 17:59
> >> To: Blender and Robotics
> >> Subject: Re: [Robotics] Camera calibration parameters
> >>
> >>
> >> Benoit,
> >>
> >> Thanks for the information, it answers our question !
> >> To make things clear: the 'pixsize' as defined by your formula is
> >> the size of the scene element corresponding to one pixel in the
> >> image, whereas the pixel size Gilberto was originally
> referring to is
> >> "the size of one pixel of the image plane", i.e. of a CCD / Cmos
> >> imaging device.
> >>
> >> The clue we were missing is the following :
> >>
> >> On 11 mai 10, at 20:55, Benoit Bolsee wrote:
> >>> [...]
> >>> The lens attribute is a value that represents the
> >>> distance in Blender unit at which the largest image
> >> dimension is 32.0
> >>> Blender units.
> >>
> >> Explanation: the intrinsic calibration matrix K of a camera is :
> >>
> >> (a_u 0 u_c)
> >> (0 a_v v_c)
> >> (0 0 1)
> >>
> >> This matrix transforms a 3D point P(X,Y,Z) in the 3D
> camera frame to
> >> a 2D point p(u,v) in the image plane in pixel coordinates: u = KP
> >> (see e.g.
> >> http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/OWENS/
> >> LECT9 for frame and notation conventions, but this is not
> necessary
> >> here).
> >>
> >> (u_0, v_0) represent the intersection of the optical axis with the
> >> image plane in pixels coordinate (for a Blender "ideal"
> camera, they
> >> are capsize[0]/2 and capsize[1]/2). (a_u, a_v) represent the focal
> >> length expressed in pixels : a_u = f /
> >> pixSize_u, where pixSize_u is the length of the physical
> >> pixel of the
> >> imaging device according to the u image direction, and f
> is the lens
> >> focal length.
> >>
> >> Now that we know the meaning of the attribute 'lens', we
> can compute
> >> a_[u|v]:
> >> a_u = capsize[0] . lens / 32.0
> >> (and we have to consider the aspect ratio if it makes non-square
> >> pixels).
> >>
> >> Simon
> >>
> >>
> >>
> >>>
> >>>> -----Original Message-----
> >>>> From: robotics-bounces at blender.org
> >>>> [mailto:robotics-bounces at blender.org] On Behalf Of Gilberto
> >>>> Echeverria
> >>>> Sent: mardi 11 mai 2010 16:03
> >>>> To: robotics at blender.org
> >>>> Subject: Re: [Robotics] Camera calibration parameters
> >>>>
> >>>>
> >>>> Thanks for the suggestions. It would indeed be strange to
> >> calibrate
> >>>> the camera in the simulation. We expected to avoid this
> step inside
> >>>> Blender, since the data required should be already defined and
> >>>> exist somewhere in
> >>>> Blender. The focal length seems to be a modifiable
> property of the
> >>>> camera object in Blender, but the image size is still evading
> >>>> us. For the moment we'll try to estimate this measurement
> >>>> from the pattern
> >>>> image.
> >>>>
> >>>> Thanks.
> >>>> Gilberto
> >>>>
> >>>>
> >>>> On 05/11/2010 03:28 PM, Paul Fitzpatrick wrote:
> >>>>> Another (somewhat strange, but fun) method would be to run
> >>>> a standard
> >>>>> calibration program (e.g. from OpenCV). You'd need to
> >> make a plane
> >>>>> with a pattern like this on it:
> >>>>>
> >>>>
> http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/pattern.pdf
> >>>>> Then light it, animate it moving around, record several
> >>>> views from the
> >>>>> camera, and run the calibration program.
> >>>>>
> >>>>> Cheers,
> >>>>> Paul
> >>>>>
> >>>>> On 05/11/2010 06:41 AM, koen buys wrote:
> >>>>>
> >>>>>> Hi Gilberto,
> >>>>>>
> >>>>>> I once figured this out in a previous version of
> >> blender. Together
> >>>>>> with Herve Legrand. I will forward you our experiments
> >>>> back then. You
> >>>>>> need both the intrinsic and the external calibration
> matrix. The
> >>>>>> external should be fairly easy to find. The internal one
> >> was more
> >>>>>> difficult. I hope they didn't change the API of that part.
> >>>>>>
> >>>>>> Best regards,
> >>>>>>
> >>>>>> Koen Buys
> >>>>>>
> >>>>>>
> >>>>>> On 11 May 2010 11:14, Gilberto
> >>>> Echeverria<gilberto.echeverria at laas.fr
> >>>>>> <mailto:gilberto.echeverria at laas.fr>> wrote:
> >>>>>>
> >>>>>> Hello everyone,
> >>>>>>
> >>>>>> As part of the Open Robots Simulator (now called
> >>>> MORSE), we are now
> >>>>>> connecting Blender with other robotics software
> >>>> modules that do the
> >>>>>> processing of the data sent by the simulation. In
> the case of
> >>>>>> image data
> >>>>>> from a camera, these modules expect the image to have
> >>>> an associated
> >>>>>> calibration matrix.
> >>>>>>
> >>>>>> The calibration matrix is composed with the focal
> >>>> point, the focal
> >>>>>> length and the dimensions of the acquired image as a
> >>>> number of pixels
> >>>>>> per unit of distance. For the simulated camera in
> >>>> Blender, we can
> >>>>>> consider the focal point to be (0,0). For the other
> >>>> two parameters we
> >>>>>> have been unable to find the data in Blender. We are
> >>>> using the Blender
> >>>>>> camera object and the VideoTexture module to generate
> >>>> captured images.
> >>>>>> Does anyone know where this information could be found in
> >>>>>> Blender?
> >>>>>>
> >>>>>> Best regards
> >>>>>>
> >>>>>> Gilberto
> >>>>>> _______________________________________________
> >>>>>> Robotics mailing list
> >>>>>> Robotics at blender.org<mailto:Robotics at blender.org>
> >>>>>> http://lists.blender.org/mailman/listinfo/robotics
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> Robotics mailing list
> >>>>>> Robotics at blender.org
> >>>>>> http://lists.blender.org/mailman/listinfo/robotics
> >>>>>>
> >>>>>>
> >>>>> _______________________________________________
> >>>>> Robotics mailing list
> >>>>> Robotics at blender.org
> >>>>> http://lists.blender.org/mailman/listinfo/robotics
> >>>>>
> >>>>
> >>>> _______________________________________________
> >>>> Robotics mailing list
> >>>> Robotics at blender.org
> >> http://lists.blender.org/mailman/listinfo/robo> >
> >>>> tics
> >>>>
> >>>
> >>
> >>>
> >> _______________________________________________
> >>> Robotics mailing list
> >>> Robotics at blender.org
> >>> http://lists.blender.org/mailman/listinfo/robotics
> >>
> >> _______________________________________________
> >> Robotics mailing list
> >> Robotics at blender.org
> http://lists.blender.org/mailman/listinfo/robo> >
> >> tics
> >>
> >
>
> >
> _______________________________________________
> > Robotics mailing list
> > Robotics at blender.org
> > http://lists.blender.org/mailman/listinfo/robotics
>
> _______________________________________________
> Robotics mailing list
> Robotics at blender.org
> http://lists.blender.org/mailman/listinfo/robo> tics
>
More information about the Robotics
mailing list