docs: public boolean proccess(List<DMatrixRMaj> homographies_view0_to_viewI,
  							List<List<PointIndex2D_F64>> observations ,
  							int totalFeatures )
  	{
  		if( homographies_view0_to_viewI.size() != observations.size() ) {
  			throw new IllegalArgumentException("Number of homographies and observations do not match");
  		}
  
  		LowLevelMultiViewOps.computeNormalizationLL((List)observations,N);
  
  		// Apply normalization to homographies
  		this.homographies = homographies_view0_to_viewI;
  		filterPointsOnPlaneAtInfinity(homographies, observations,totalFeatures);
  
  		// compute some internal working variables and determine if there are enough observations to compute a
  		// solution
  		computeConstants(homographies_view0_to_viewI, filtered, totalFeatures);
  
  		// Solve the problem
  		constructLinearSystem(homographies, filtered);
  
  		if( !svd.decompose(A))
  			return false;
  
  		// get null vector. camera matrices and scene structure are extracted from B as requested
  		SingularOps_DDRM.nullVector(svd,true,B);
  
  		return true;
  	}