Changes between Version 120 and Version 121 of UvmatHelp


Ignore:
Timestamp:
Dec 7, 2014, 12:21:17 PM (10 years ago)
Author:
sommeria
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UvmatHelp

    v120 v121  
    570570-'''3D_quadr:''' this is like 3D_linear, but takes also into account a quadratic deformation by the optics which occurs for wide fields of view (small focal lengths).
    571571
    572 -'''3D_extrinsic:''' this is like 3D_quadr, but uses intrinsic parameters of the camera, as explained below. ''''''
     572-'''3D_extrinsic:''' this is like 3D_quadr, but uses intrinsic parameters of the camera, as explained below. '''''''''''
    573573
    574574The 3D options involve a full 3D calibration relying on the [attachment:3D_view.pdf pinhole camera  model]. The method was first proposed by R.Y. Tsai, 'An Efficient and Accurate Camera Calibration Technique for 3D Machine Vision'. Proceedings of IEEE Conference on Computer Vision and Pattern Recognition, Miami Beach, FL, pp. 364-374, 1986). We use a more recent version, with the toolbox [->http://www.vision.caltech.edu/bouguetj/calib_doc/] . 3D calibrations are done in two steps. The camera'' intrinsic parameters'', which are the focal length and the quadratic deformation coefficient, are first determined by different views of the same grid observed at different angles. Then the ''extrinsic parameters'', which represent the rotation angles and translation of the physical coordinates with respect to the camera, are obtained with a single image of the grid positioned in a known plane $z=cte$. The option 3D_extrinsic allows the user to do only the second step from known intrinsic parameters. Those depend only on the camera with its objective lens and focus adjustement. Note that these 3D options require a calibration grid, with a sufficient number of calibration points covering the whole image.
    575575
    576 The transform coefficients for each image series are stored in the corresponding XML documentation file <!ImaDoc>, described in [https://servforge.legi.grenoble-inp.fr/#a3.5Imagedocumentationfiles.xml section 3.5],  under the tag <!GeometryCalib>.   Calibration coefficients  can be displayed with the GUI '''geometry_calib.fig''' described below. Field transform from pixel to physical parameters is performed by the function ''phys.m'' in UVMAT/transform_field, which calls the pointwise transform functions  ''phys_XYZ.m'' (from image to physical coordinates) and ''px_XYZ.m'' (from physical to image coordinates), as well as ''phys_ima.m'' which transforms images.  When an image or PIV velocity field is opened by uvmat, the transform function 'phys' is automatically loaded as described in section 4.6.
     576The transform coefficients for each image series are stored in the corresponding XML documentation file <!ImaDoc>, described in [https://servforge.legi.grenoble-inp.fr/#a3.5Imagedocumentationfiles.xml section 3.5],  under the tag <!GeometryCalib>.   Calibration coefficients  can be displayed with the GUI '''geometry_calib.fig''' described below. Field transform from pixel to physical parameters is performed by the function ''phys.m'' in UVMAT/transform_field, which calls the pointwise transform functions  ''phys_XYZ.m'' (from image to physical coordinates) and ''px_XYZ.m'' (from physical to image coordinates), as well as ''phys_ima.m'' which transforms images. When an image or PIV velocity field is opened by uvmat, the transform function 'phys' is automatically loaded as described in section 4.6.
    577577
    578578=== 8.2 The GUI geometry_calib.fig ===
     
    595595-''' Recording calibration parameters: ''' Once the list of calibration points has been completed, press '''[APPLY]''', after selecting the appropriate option in '''[calib_type]'''. (see the previous [#a8.1Generalities sub-section 8.1]). Note that the 3D options  require a sufficient number of calibration points (typically > 10) spread over the image with different values of z, or a tilted grid, see below. Calibration coefficients are recorded in the XML file <!ImaDoc> associated with the image currently opened by UVMAT. If previous calibration data already exist, the previous XML file is updated, but  the original one is preserved with the extension .xml~.  If no XML file already exists, it is created. The image transformation to phys coordinates can be directly seen on the '''uvmat.fig''' interface after completion of the command '''[APPLY]'''.
    596596
    597 To reproduce the same calibrationn for image series, open one of the image in the series, and apply again the calibration with the same points, or copy-paste the section GeometryCalib of the XML documentation file with a text editor.
    598 
    599 Alternatively the command '''[REPLICATE]''' can be used to calibrate a whole set of experiments in a 'Campaign', using an overview of the data set provided by the GUI '''data_browser.fig''', described in [#a3.7Dataorganisationinaproject section 3.7].
     597To reproduce the same calibrationn for image series, open one of the image in the series, and apply again the calibration with the same points, keeping the GUI geometry_calib opened.
     598
     599To calibrate at once a set of experiments, a better alternative is the command '''[REPLICATE]'''. Open a folder  '''Campaign''', parent of the folders '''Experiment''' to treat. The GUI '''data_browser.fig''', also described in [#a3.7Dataorganisationinaproject section 3.7], then pops up. A two-column display appears, with the list of '''Experiments''' on the left and the list of corresponding '''DataSeries''' on the right. Select the list of experiments to calibrate, and a single camera name in '''DataSeries''', then validate by pressing '''OK'''.   
    600600
    601601-'''3D calibration''': 3D projection is handled by the options in '''[calib_type]''' '3D_lin' or '3D_quad' ((if non-linear distortion is significant). By default, the set of calibration points is assumed to be contained in a single plane ''z''=0. For a correct determination of the 3D features, the normal to this plane must be tilted with respect to the line of view. Otherwise this problem of indetermination can be resolved by using a set of (typically 5-10) calibrations images using a plane grid with different tilting angles (for precision the grid must cover a large area of the view field). On each image, get calibration points with the tool '''[!Tools/Detect grid]''', introducing the appropriate grid mesh. Do not fill info on ''z'' coordinates. Store the points each time (without applying calibration at this stage), which fills the list [ListCoordFiles] of file names. Then introduce a last grid image which will be considered as defining the orientation of the ''z'' axis, perpendicular to the grid. Detect points on this last image, but instead of storing them, apply the calibration with the option 3D_linear or 3D_quadr. A non-zero ''z'' position of this grid can be introduced by a z translation performed with '''Tools/Translate points'''.
     
    603603-'''Intrinsic parameters''': the previous procedure first determines the extrinsic parameters which characterize the camera optics (focal lengths and nonlinear deformation parameter). Then the extrinsic parameters, translation and rotation of the camera with respect to the reference grid, are determined on the last grid image. if the same optics is used in a new experiment, it is possible to skip the multiplane detection, importing the intrinsic parameters from a previous <!ImaDoc> file by the menu bar tool '''[!Import/Intrinsic]''' parameters, then applying the calibration with the option '3D_extrinsic' with the reference grid image only.
    604604
    605 -'''Section planes:''' deducing the physical coordinates from image coordinates requires information on the section plane. The default assumption is that the objects in the image are in the plane used for calibration, but UVMAT can handle volume scanning by a laser plane. A set of section planes can be defined by their origin positions and rotation angle vectors. Theses planes are labelled by a ''z index'', assumed to be the frame index j (case of volume scan), or the index i modulo the number of slices !NbSlice (case of multiplane scan). The chosen option can be documented in the file <!ImaDoc> by the menu bar command '''[Tools/set slice]''' of '''uvmat.fig'''. A dialog box appears for entering the set of section plane positions ''z'', as lower value, upper value and increment. An angular scan of the laser sheet can be also introduced. After introduction of the multi-plane information, the z-index is displayed in the frame '''[FileIndices]''' of '''uvmat.fig'''. The local z position of the mouse pointer, assumed to lay on the current section plane, is then displayed in '''[text_display]'''.
    606 
    607 -'''Water surface''': calibration is best performed inside water to account for refraction effects. However it may be easier to perform it in air, and then take into account the refraction effect. For that purpose the water surface position z (assumed normal to the z coordinate) and refraction index can be introduced with  '''[Tools/set slice].'''
     605-'''Section planes:''' deducing the physical coordinates from image coordinates requires information on the section plane. The default assumption is that the objects in the image are in the plane used for calibration, but uvmat can handle volume scanning by a laser plane. A set of section planes can be defined by their origin positions and rotation angle vectors. Theses planes are labelled by a ''z index'', assumed to be the frame index j (case of volume scan), or the index i modulo the number of slices !NbSlice (case of 'multilevel' scan). These settings are stored in the xml file <!ImaDoc> as part of the section <!GeometryCalib> and can be edited from '''uvmat.fig''' with the menu bar command '''[Tools/set slice]'''. A dialog box '''set_slices''' appears for entering the first and last section plane positions ''z'', as well as the number of slices and the option 'volume_scan' ('multilevel' otherwise). In the absence of 3D scan put twice the same value for first and last z. Refraction effect can be accounted for if calibration was done in air by introducing the water height (assumed at ''z''=cte). If calibration was already done in water the water height must be '''set with a value below z'''.  Finally a tilt angle of the laser sheet, around the ''x'' and ''y'' axis, can be introduced. After introduction of the plane position information, the z-index is displayed in the frame '''[FileIndices]''' of '''uvmat.fig'''. The local ''z'' position of the mouse pointer, assumed to lay on the current section plane, is then displayed in '''[text_display]'''.
    608606
    609607=== 8.3 Structure of the XML file ===