A method for producing a three dimensional model data from multi-perspective two dimensional images comprising:
- capturing a first and second plurality of images from a first and second camera that are oriented with a first and second overlapping fields of view (FOV) with a first controller section;
- determining or setting camera settings comprising focus, exposure, and zoom with a second controller section;
- identifying a plurality of features within two or more sets of the first and second plurality of images using a third control section comprising a feature detection system to identify point correspondences (PCs) in the two or more sets of the first and second plurality of images and store a first and second list of x, y coordinates of PCs associated with each feature found in at least one corresponding pair of said first and second plurality of images;
- performing a first and second depth estimation processing using a fourth controller section respectively comprising performing structure from motion (SFM) processing and depth from defocus (DFD) processing to respectively produce a plurality of depth estimates for each PC and a relative blur estimate around each PC, wherein said DFD processing comprises determining relative blur estimates around said PCs for pairs of points within each of said sets of the first and second plurality of images;
- defining or using a provided first polynomial algorithm (PA) defining or describing a projective camera model using a fifth controller section including respective relationships between x, y coordinates within sets of PCs and said first and second cameras and outputting first and second ratios of depth (RoDs), a list of coefficients for variables in the projective camera model that describe relationships between three dimensional coordinates of arbitrary sets or pairs of combinations of PCs and the first PA;
- defining or using a provided second PA using a sixth controller section describing relationships between PCs and said first and second cameras based on a thin lens equation and computing relative blur ratios using sets of RBEs divided by each other that is used to cancel an element of the second PA;
- executing a simplification processing machine instruction sequence using a seventh controller section to perform variable elimination or reduction of a system of equations (SoE) comprising said first and second PAs comprising a data entry operation comprising substitution of said first and second RoDs into said first PA and second PA to eliminate a first and second variable and output a first simplified SoE (FSSoE) multivariate polynomial;
- solving said FSSoE using an eighth controller section by finding roots of the FSSoE using a system of Sylvester Resultant univariate polynomials to eliminate another variable and generating a second simplified SOE (SSSoE) and multiple possible solutions to the SSSoE;
- determining a best solution for each of said PCs using a ninth controller section by back-substituting each of said possible solutions into each Sylvester Resultant univariate polynomial or the SSSoE and calculating a mean result of the back substitution while excluding outliers of the back substitution to obtain an algebraic or geometric (A/G) error estimate of each depth estimate to produce a first category depth estimate;
- computing and outputting a three-dimensional (3D) model of image structures within said first and second camera overlapping FOVs, wherein said 3D model comprises a second category depth estimate for selected x,y pixels in input two-dimensional (2D) images;
- and
- operating a reinforcement learning camera settings selection module comprising a state extraction module, a cost measurement module, and an action selection module for selecting or determining said camera settings;
- and
- operating a second category depth computation module comprising a monocular depth estimation system comprising a depth estimation neural network (NN) training module and a trained real time depth estimation module which uses a trained NN depth estimation module output from said depth estimation NN training module, wherein said depth estimation NN training module comprises a first deep convolutional or auto-encoder feature extraction layers with patterned input sampling training module and a first depth prediction layer training module configured to compute and output said trained NN depth estimation module, wherein said trained real time depth estimation module comprises a deep convolutional or auto-encoder feature extraction layer with patterned input sampling and a second depth prediction layer module configured to use said trained NN depth estimation module to compute a second category depth estimate or z coordinate for selected x, y coordinates in said first and second plurality of images, wherein said second category depth computation module outputs a 3D model of structures from within said first and second plurality of images.