is 1.5 average error on stereo camera calibration bad? using opencvOpenCV Face detect in stereo camerasImage Processing: Algorithm Improvement for 'Coca-Cola Can' Recognitionopencv stereo calibration -> warp camera image A into camera image BOpenCV Stereo Calibration and triangulation in a user defined coordinate systemOpenCV Stereo Camera Calibration/Image RectificationOpenCV C++ Stereo Calib ExampleIs reprojection error enough in stereo calibration?opencv stereo camera calibration3D world Coordinate estimation using stereo cameraHow can I improve a stereo calibration using openCV, python and bundle adjustment?

How must one send away the mother bird?

How does the reference system of the Majjhima Nikaya work?

Why did the HMS Bounty go back to a time when whales are already rare?

Can a significant change in incentives void an employment contract?

Translation of Scottish 16th century church stained glass

Is it possible to use .desktop files to open local pdf files on specific pages with a browser?

Did US corporations pay demonstrators in the German demonstrations against article 13?

How much character growth crosses the line into breaking the character

Is there a conventional notation or name for the slip angle?

How can "mimic phobia" be cured or prevented?

Do Legal Documents Require Signing In Standard Pen Colors?

Can I use my Chinese passport to enter China after I acquired another citizenship?

Proving a function is onto where f(x)=|x|.

Difference between -| and |- in TikZ

What linear sensor for a keyboard?

Can not upgrade Kali,not enough space in /var/cache/apt/archives

Two-sided logarithm inequality

What major Native American tribes were around Santa Fe during the late 1850s?

Have I saved too much for retirement so far?

Find last 3 digits of this monster number

What is the gram­mat­i­cal term for “‑ed” words like these?

If a character with the Alert feat rolls a crit fail on their Perception check, are they surprised?

Transformation of random variables and joint distributions

Can I sign legal documents with a smiley face?



is 1.5 average error on stereo camera calibration bad? using opencv


OpenCV Face detect in stereo camerasImage Processing: Algorithm Improvement for 'Coca-Cola Can' Recognitionopencv stereo calibration -> warp camera image A into camera image BOpenCV Stereo Calibration and triangulation in a user defined coordinate systemOpenCV Stereo Camera Calibration/Image RectificationOpenCV C++ Stereo Calib ExampleIs reprojection error enough in stereo calibration?opencv stereo camera calibration3D world Coordinate estimation using stereo cameraHow can I improve a stereo calibration using openCV, python and bundle adjustment?













0















i used the opencv sample code for stereo camera calibration to get the intrinsics and extrinsics of my stereo camera. I used 149 image pairs and the program detected 114 image pairs



Result of my Calibration:



..... 114 pairs have been successfully detected.
Running stereo calibration ...
done with RMS error = 1.60208
average epipolar error = 1.15512


i know the error should be below 1 but i only get below 1 of error in small number of image pairs. so im not sure if my result is good or bad.










share|improve this question






















  • The error in calibration normally is the reprojection error, which projects the 3D Points using the intrinsic and extrinsic parameters calculated and then calculates the difference between the points projected and the 2D points detected. If you have some of the 2D points badly detected, even if you have the parameters perfectly calculated the error will be higher. So, it could be that either some points have high noise, or the parameters are not correct.

    – api55
    Mar 7 at 11:57











  • The error should be below 1 to get accurate calibration and rectification parameters. Instead of 149 images, just choose about 50 and perform the calibration.

    – Gopiraj
    Mar 8 at 9:18











  • @api55 what is the difference of points projected and 2D points detected?

    – Chester Ligutan
    2 days ago












  • @Gopiraj will i still get good calibration even if i do less image pairs?

    – Chester Ligutan
    2 days ago















0















i used the opencv sample code for stereo camera calibration to get the intrinsics and extrinsics of my stereo camera. I used 149 image pairs and the program detected 114 image pairs



Result of my Calibration:



..... 114 pairs have been successfully detected.
Running stereo calibration ...
done with RMS error = 1.60208
average epipolar error = 1.15512


i know the error should be below 1 but i only get below 1 of error in small number of image pairs. so im not sure if my result is good or bad.










share|improve this question






















  • The error in calibration normally is the reprojection error, which projects the 3D Points using the intrinsic and extrinsic parameters calculated and then calculates the difference between the points projected and the 2D points detected. If you have some of the 2D points badly detected, even if you have the parameters perfectly calculated the error will be higher. So, it could be that either some points have high noise, or the parameters are not correct.

    – api55
    Mar 7 at 11:57











  • The error should be below 1 to get accurate calibration and rectification parameters. Instead of 149 images, just choose about 50 and perform the calibration.

    – Gopiraj
    Mar 8 at 9:18











  • @api55 what is the difference of points projected and 2D points detected?

    – Chester Ligutan
    2 days ago












  • @Gopiraj will i still get good calibration even if i do less image pairs?

    – Chester Ligutan
    2 days ago













0












0








0


1






i used the opencv sample code for stereo camera calibration to get the intrinsics and extrinsics of my stereo camera. I used 149 image pairs and the program detected 114 image pairs



Result of my Calibration:



..... 114 pairs have been successfully detected.
Running stereo calibration ...
done with RMS error = 1.60208
average epipolar error = 1.15512


i know the error should be below 1 but i only get below 1 of error in small number of image pairs. so im not sure if my result is good or bad.










share|improve this question














i used the opencv sample code for stereo camera calibration to get the intrinsics and extrinsics of my stereo camera. I used 149 image pairs and the program detected 114 image pairs



Result of my Calibration:



..... 114 pairs have been successfully detected.
Running stereo calibration ...
done with RMS error = 1.60208
average epipolar error = 1.15512


i know the error should be below 1 but i only get below 1 of error in small number of image pairs. so im not sure if my result is good or bad.







opencv






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 7 at 8:59









Chester LigutanChester Ligutan

83




83












  • The error in calibration normally is the reprojection error, which projects the 3D Points using the intrinsic and extrinsic parameters calculated and then calculates the difference between the points projected and the 2D points detected. If you have some of the 2D points badly detected, even if you have the parameters perfectly calculated the error will be higher. So, it could be that either some points have high noise, or the parameters are not correct.

    – api55
    Mar 7 at 11:57











  • The error should be below 1 to get accurate calibration and rectification parameters. Instead of 149 images, just choose about 50 and perform the calibration.

    – Gopiraj
    Mar 8 at 9:18











  • @api55 what is the difference of points projected and 2D points detected?

    – Chester Ligutan
    2 days ago












  • @Gopiraj will i still get good calibration even if i do less image pairs?

    – Chester Ligutan
    2 days ago

















  • The error in calibration normally is the reprojection error, which projects the 3D Points using the intrinsic and extrinsic parameters calculated and then calculates the difference between the points projected and the 2D points detected. If you have some of the 2D points badly detected, even if you have the parameters perfectly calculated the error will be higher. So, it could be that either some points have high noise, or the parameters are not correct.

    – api55
    Mar 7 at 11:57











  • The error should be below 1 to get accurate calibration and rectification parameters. Instead of 149 images, just choose about 50 and perform the calibration.

    – Gopiraj
    Mar 8 at 9:18











  • @api55 what is the difference of points projected and 2D points detected?

    – Chester Ligutan
    2 days ago












  • @Gopiraj will i still get good calibration even if i do less image pairs?

    – Chester Ligutan
    2 days ago
















The error in calibration normally is the reprojection error, which projects the 3D Points using the intrinsic and extrinsic parameters calculated and then calculates the difference between the points projected and the 2D points detected. If you have some of the 2D points badly detected, even if you have the parameters perfectly calculated the error will be higher. So, it could be that either some points have high noise, or the parameters are not correct.

– api55
Mar 7 at 11:57





The error in calibration normally is the reprojection error, which projects the 3D Points using the intrinsic and extrinsic parameters calculated and then calculates the difference between the points projected and the 2D points detected. If you have some of the 2D points badly detected, even if you have the parameters perfectly calculated the error will be higher. So, it could be that either some points have high noise, or the parameters are not correct.

– api55
Mar 7 at 11:57













The error should be below 1 to get accurate calibration and rectification parameters. Instead of 149 images, just choose about 50 and perform the calibration.

– Gopiraj
Mar 8 at 9:18





The error should be below 1 to get accurate calibration and rectification parameters. Instead of 149 images, just choose about 50 and perform the calibration.

– Gopiraj
Mar 8 at 9:18













@api55 what is the difference of points projected and 2D points detected?

– Chester Ligutan
2 days ago






@api55 what is the difference of points projected and 2D points detected?

– Chester Ligutan
2 days ago














@Gopiraj will i still get good calibration even if i do less image pairs?

– Chester Ligutan
2 days ago





@Gopiraj will i still get good calibration even if i do less image pairs?

– Chester Ligutan
2 days ago












1 Answer
1






active

oldest

votes


















1














You should be able to get an error below 1, but it's not so bad. I also do the calibration with around 100 of images. I often got a few images to discard in which the detection was not reliable.
If you decreased the number of images down to 10 images, then the calibration might overfit for these cases. The error would then not be reliable.



In the calibration process, the problems I faced came from the calibration setup. My recommendations are the following:



  • Check that your calibration pattern is perfectly flat. In my case I printed on adhesive paper and glued it on a piece of glass.


  • Check that your calibration pattern is not symmetrical in rotation, otherwise the pose estimation could be wrong.


  • Check the intermediate pattern points detection. There are some examples in opencv to show the corners or circles centers detected points.


  • The error can be also displayed for each frame. This can help you to understand for which images you have a problem. If you see that these images actually have a detection problem, you can discard them.


  • If you acquire videos and not images, both cameras should be synchronized with a hardware connection. In my case I cannot have such a link, therefore I built some kind of holder for the calibration target to keep it still, and I acquired only images, not videos.


  • This won't reduce your calibration error, but use very different pattern positions to cover the maximum of the field of view.


  • If your depth of field is small and you have blurry images before/after the focus because of that, change from the chessboard pattern to a circles pattern (functions also available in opencv).


  • If you don't have a strong distortion in your images (e.g. a photo with an iphone doesn't really show a strong fisheye-like distortion), consider forcing K3=0.


  • In my case, I fixed the "principal point" in the middle of the image, because the algorithm always found crazy values for these parameters, like for K3.


Hope this helps a bit. Good luck!






share|improve this answer






















    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55039731%2fis-1-5-average-error-on-stereo-camera-calibration-bad-using-opencv%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    You should be able to get an error below 1, but it's not so bad. I also do the calibration with around 100 of images. I often got a few images to discard in which the detection was not reliable.
    If you decreased the number of images down to 10 images, then the calibration might overfit for these cases. The error would then not be reliable.



    In the calibration process, the problems I faced came from the calibration setup. My recommendations are the following:



    • Check that your calibration pattern is perfectly flat. In my case I printed on adhesive paper and glued it on a piece of glass.


    • Check that your calibration pattern is not symmetrical in rotation, otherwise the pose estimation could be wrong.


    • Check the intermediate pattern points detection. There are some examples in opencv to show the corners or circles centers detected points.


    • The error can be also displayed for each frame. This can help you to understand for which images you have a problem. If you see that these images actually have a detection problem, you can discard them.


    • If you acquire videos and not images, both cameras should be synchronized with a hardware connection. In my case I cannot have such a link, therefore I built some kind of holder for the calibration target to keep it still, and I acquired only images, not videos.


    • This won't reduce your calibration error, but use very different pattern positions to cover the maximum of the field of view.


    • If your depth of field is small and you have blurry images before/after the focus because of that, change from the chessboard pattern to a circles pattern (functions also available in opencv).


    • If you don't have a strong distortion in your images (e.g. a photo with an iphone doesn't really show a strong fisheye-like distortion), consider forcing K3=0.


    • In my case, I fixed the "principal point" in the middle of the image, because the algorithm always found crazy values for these parameters, like for K3.


    Hope this helps a bit. Good luck!






    share|improve this answer



























      1














      You should be able to get an error below 1, but it's not so bad. I also do the calibration with around 100 of images. I often got a few images to discard in which the detection was not reliable.
      If you decreased the number of images down to 10 images, then the calibration might overfit for these cases. The error would then not be reliable.



      In the calibration process, the problems I faced came from the calibration setup. My recommendations are the following:



      • Check that your calibration pattern is perfectly flat. In my case I printed on adhesive paper and glued it on a piece of glass.


      • Check that your calibration pattern is not symmetrical in rotation, otherwise the pose estimation could be wrong.


      • Check the intermediate pattern points detection. There are some examples in opencv to show the corners or circles centers detected points.


      • The error can be also displayed for each frame. This can help you to understand for which images you have a problem. If you see that these images actually have a detection problem, you can discard them.


      • If you acquire videos and not images, both cameras should be synchronized with a hardware connection. In my case I cannot have such a link, therefore I built some kind of holder for the calibration target to keep it still, and I acquired only images, not videos.


      • This won't reduce your calibration error, but use very different pattern positions to cover the maximum of the field of view.


      • If your depth of field is small and you have blurry images before/after the focus because of that, change from the chessboard pattern to a circles pattern (functions also available in opencv).


      • If you don't have a strong distortion in your images (e.g. a photo with an iphone doesn't really show a strong fisheye-like distortion), consider forcing K3=0.


      • In my case, I fixed the "principal point" in the middle of the image, because the algorithm always found crazy values for these parameters, like for K3.


      Hope this helps a bit. Good luck!






      share|improve this answer

























        1












        1








        1







        You should be able to get an error below 1, but it's not so bad. I also do the calibration with around 100 of images. I often got a few images to discard in which the detection was not reliable.
        If you decreased the number of images down to 10 images, then the calibration might overfit for these cases. The error would then not be reliable.



        In the calibration process, the problems I faced came from the calibration setup. My recommendations are the following:



        • Check that your calibration pattern is perfectly flat. In my case I printed on adhesive paper and glued it on a piece of glass.


        • Check that your calibration pattern is not symmetrical in rotation, otherwise the pose estimation could be wrong.


        • Check the intermediate pattern points detection. There are some examples in opencv to show the corners or circles centers detected points.


        • The error can be also displayed for each frame. This can help you to understand for which images you have a problem. If you see that these images actually have a detection problem, you can discard them.


        • If you acquire videos and not images, both cameras should be synchronized with a hardware connection. In my case I cannot have such a link, therefore I built some kind of holder for the calibration target to keep it still, and I acquired only images, not videos.


        • This won't reduce your calibration error, but use very different pattern positions to cover the maximum of the field of view.


        • If your depth of field is small and you have blurry images before/after the focus because of that, change from the chessboard pattern to a circles pattern (functions also available in opencv).


        • If you don't have a strong distortion in your images (e.g. a photo with an iphone doesn't really show a strong fisheye-like distortion), consider forcing K3=0.


        • In my case, I fixed the "principal point" in the middle of the image, because the algorithm always found crazy values for these parameters, like for K3.


        Hope this helps a bit. Good luck!






        share|improve this answer













        You should be able to get an error below 1, but it's not so bad. I also do the calibration with around 100 of images. I often got a few images to discard in which the detection was not reliable.
        If you decreased the number of images down to 10 images, then the calibration might overfit for these cases. The error would then not be reliable.



        In the calibration process, the problems I faced came from the calibration setup. My recommendations are the following:



        • Check that your calibration pattern is perfectly flat. In my case I printed on adhesive paper and glued it on a piece of glass.


        • Check that your calibration pattern is not symmetrical in rotation, otherwise the pose estimation could be wrong.


        • Check the intermediate pattern points detection. There are some examples in opencv to show the corners or circles centers detected points.


        • The error can be also displayed for each frame. This can help you to understand for which images you have a problem. If you see that these images actually have a detection problem, you can discard them.


        • If you acquire videos and not images, both cameras should be synchronized with a hardware connection. In my case I cannot have such a link, therefore I built some kind of holder for the calibration target to keep it still, and I acquired only images, not videos.


        • This won't reduce your calibration error, but use very different pattern positions to cover the maximum of the field of view.


        • If your depth of field is small and you have blurry images before/after the focus because of that, change from the chessboard pattern to a circles pattern (functions also available in opencv).


        • If you don't have a strong distortion in your images (e.g. a photo with an iphone doesn't really show a strong fisheye-like distortion), consider forcing K3=0.


        • In my case, I fixed the "principal point" in the middle of the image, because the algorithm always found crazy values for these parameters, like for K3.


        Hope this helps a bit. Good luck!







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 12 at 10:31









        87VN087VN0

        863




        863





























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55039731%2fis-1-5-average-error-on-stereo-camera-calibration-bad-using-opencv%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            AWS Lex not identifying response if by a variable The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) The Ask Question Wizard is Live! Data science time! April 2019 and salary with experienceEnforcing custom enumeration in AWS LEX for slot valuesHow to give response based on user response in Amazon Lex?Intercepting AWS Lambda Response to a AWS Lex QueryLex chat bot error: Reached second execution of fulfillment lambda on the same utteranceamazon lex showing invalid responseLambda response send back to Lex slot?Response card in Amazon lexAmazon Lex - Lambda response return HTML to botHow can I solve 424 (Failed Dependency) (python) obtained from Amazon lex?

            Алба-Юлія

            Захаров Федір Захарович