1

I am using a simple ArUco Marker Detection Program which has as input images or videos and as output rotational(angles w.r.t 3D axis) and transformational(position w.r.t 3D axis vectors). The program is mainly based on the following 3 functions:

  • detectMarker
  • estimatePoseSingleMarkers
  • drawDetectedMarkers

My goal is to see how accurate the program detects the ArUco Markers when it is attached to a vehicle. (i.e. ArUco Marker printed on a vehicle)

Firstly, I used calibrateCameraCharuco() to get the camera parameters from Blender (the software that I am using to render images) which are very closely matching ideal camera parameters.(With the ideal camera parameters I get the same results)

Secondly, I generated sets of images and came up with the error results which are shown below. - Angle Results - ArUco Marker Size 80cm

The behaviour for angles is strange as the error firstly is low for low values, high for medium values and low again for high values of the angles. Moreover, the distance error results look the same as the angles.

I am wondering if you have experiences such results before or if you have any advice of why the detection of ArUco Markers behaves like this.

Thanks for your attention and I appreciate in advance your help.

  • How do you compare your angles and what is the formalism of your ground truth camera pose? – Catree May 31 '17 at 15:47
  • The angles are compared by computing the absolute error (detected angle - ground truth angle). The ground truth angle is taken from Blender where I render the images. – Leonard Dima May 31 '17 at 16:20
  • Is it the same formalism? OpenCV should return an axis-angle vector. – Catree Jun 01 '17 at 11:55
  • Indeed, OpenCV returns a rotational vector. For this project, I am interested only on angles with respect to the Y axis, which are the ones relevant for a vehicle turning left or right. – Leonard Dima Jun 01 '17 at 15:14

1 Answers1

0

Have you used the camera calibration to correct images produced by the camera? I've had some crazy results from some of the calibrations I've made using downloadable software. I find putting the edge of a terminal window against straight lines in the image can show that some areas of the camera's image have been dealt with very well, but others are crazy. It is clear that there is active work on improving the accuracy of ARUCO: https://www.researchgate.net/publication/282269016_Accuracy_analysis_of_an_augmented_reality_system Depending on the accuracy you need maybe ARUCO's aim of putting a CGI in a video in real time does not fit your needs. I'm surprised that you get values at 70 or 80 degrees at all. I find they are not recognised.