### OpenCV calibrateCamera function question

I want to use simple artoolkit marker to calibrate my device. Whan i found marker, i have 4 image points and 4 object points (corners of a square). I use calibrateCamera function for my 4 points to try to get intrinsic parameters.
But received focals have too big amplitude (if my real fx = 960, it can calculates as 500 and 3000)

Okay, maybe marker too small (hence the large error of calculation) or four points is too few.

I try to use CV_CALIB_USE_INTRINSIC_GUESS flag, and give the initial approximation of intrinsic parameters.
But output matrix is absolutely dependent of initial approximation. It means, that if i give it fx = 500, it's returns fx = 500 +/- 20, if i give it 2000, it returns 2000 +/- 20
Here my questions

- How i can improve my calibration results.
- Why CV_CALIB_USE_INTRINSIC_GUESS flag set so large dependence from initial value of intrinsic parameters?