code: public boolean process( double sampleRadius , Quadrilateral_F64 input ) {
  		work.set(input);
  
  		samples.reset();
  		estimator.process(work,false);
  		estimator.getWorldToCamera().invert(referenceCameraToWorld);
  
  		samples.reset();
  
  		createSamples(sampleRadius,work.a,input.a);
  		createSamples(sampleRadius,work.b,input.b);
  		createSamples(sampleRadius,work.c,input.c);
  		createSamples(sampleRadius,work.d,input.d);
  
  		if( samples.size() < 10 )
  			return false;
  
  		maxLocation = 0;
  		maxOrientation = 0;
  		for (int i = 0; i < samples.size(); i++) {
  			referenceCameraToWorld.concat(samples.get(i), difference);
  
  			ConvertRotation3D_F64.matrixToRodrigues(difference.getR(),rodrigues);
  
  			double theta = Math.abs(rodrigues.theta);
  
  			double d = difference.getT().norm();
  
  			if( theta > maxOrientation ) {
  				maxOrientation = theta;
  			}
  			if( d > maxLocation ) {
  				maxLocation = d;
  			}
  
  		}
  
  		return true;
  	}
docs: Processes the observation and generates a stability estimate
  
  @param sampleRadius Radius around the corner pixels it will sample
  @param input Observed corner location of the fiducial in distorted pixels.  Must be in correct order.
  @return true if successful or false if it failed