ArUco detection x-y axis values are extremely different

asked 2019-01-03 08:35:33 -0500

updated 2019-01-14 01:50:25 -0500

Hello. My problem is that I am trying to detect aruco markers. I need coordinates aruco centered so I implemented this part of the code to c++ and checked. Some of the output:

    frame: 110
A X: -0.804775 Y: 0.208516 Z: 1.2107
R X: -0.791306 Y: 0.218932 Z: 1.23775
frame: 111
A X: -0.796757 Y: 0.199679 Z: 1.21298
R X: -0.794136 Y: 0.180792 Z: 1.20928
frame: 112
A X: -0.783294 Y: 0.193594 Z: 1.22591
R X: -0.760558 Y: 0.178313 Z: 1.24112
frame: 113
A X: -0.783294 Y: 0.193594 Z: 1.22591
frame: 114
A X: -0.772219 Y: 0.19086 Z: 1.22949
R X: -0.742878 Y: 0.185402 Z: 1.22981
frame: 115
A X: -0.760471 Y: 0.200374 Z: 1.23279
R X: -0.744311 Y: 0.256989 Z: 1.25096
frame: 116
A X: -0.731878 Y: 0.198095 Z: 1.26505
R X: -0.679766 Y: 0.171675 Z: 1.33831
frame: 117
A X: -0.695487 Y: 0.210412 Z: 1.30437
R X: -0.614995 Y: 0.227583 Z: 1.39838
frame: 118
A X: -0.368503 Y: 0.0875881 Z: 1.35784
R X: 0.565061 Y: -0.305894 Z: 1.4437
frame: 119
A X: -0.368503 Y: 0.0875881 Z: 1.35784
frame: 120
A X: -0.341719 Y: 0.0898316 Z: 1.38558
R X: -0.637176 Y: 0.265963 Z: 1.36194
frame: 121
A X: -0.325253 Y: 0.119372 Z: 1.39677
R X: -0.613902 Y: 0.289834 Z: 1.38308
frame: 122
A X: -0.325253 Y: 0.119372 Z: 1.39677
frame: 123
A X: -0.327192 Y: 0.153936 Z: 1.36274
R X: -0.622752 Y: 0.36584 Z: 1.26225
frame: 124
A X: -0.633316 Y: 0.331566 Z: 1.29572
R X: -0.659435 Y: 0.404626 Z: 1.17562
frame: 125
A X: -0.333012 Y: 0.149866 Z: 1.25675
R X: 0.564042 Y: -0.460838 Z: 1.20607

When I check 2 consecutive frames, we can see that even though there are almost no difference in images we get 30 centimeters of difference: Here

I calibrated well enough and I am sure of it because Z axis is very good. Results for Z axis very fine( in terms of world coordinates) but X and Y axis values are changing very different. Has anyone got the same problem? What could be the problem ?

Any idea is helpful. For the code you can check the permalink above. PS: Numbers in the image-> "Frame number: X Y"

Edit: Frame 110 and 121 below. Dict name -> cv::aruco::DICT_6X6_100 And calibration matrix(copy pasting):

<?xml version="1.0"?>
<opencv_storage>
<calibration_Time>"Çrş 28 Kas 2018 12:26:15 CET"</calibration_Time>
<nrOfFrames>18</nrOfFrames>
<image_Width>640</image_Width>
<image_Height>480</image_Height>
<board_Width>9</board_Width>
<board_Height>6</board_Height>
<square_Size>2.5000000372529030e-02</square_Size>
<FixAspectRatio>1.< ...
(more)
edit retag flag offensive close merge delete

Comments

1

Can you post frame 110 and 121 and aruco dict name

LBerger gravatar imageLBerger ( 2019-01-03 08:45:39 -0500 )edit

@LBerger I updated the post. Thank you for checking!

yeser gravatar imageyeser ( 2019-01-03 09:05:22 -0500 )edit

Sorry that's not original image: to check I need image 110 and 121 without processing

LBerger gravatar imageLBerger ( 2019-01-03 10:29:03 -0500 )edit

Sorry I got it very late. Updated.

yeser gravatar imageyeser ( 2019-01-14 01:50:39 -0500 )edit

@yeser, Could you please draw the axes on both frames?

dkurt gravatar imagedkurt ( 2019-01-14 02:47:20 -0500 )edit