View my account

Comments

26 comments

  • MartyG

    The RealSense 400 Series cameras have an error rate of 2% or less, and start at $149 for the RealSense D415 model.  If you anticipate that your project will have fast camera movement or be tracking fast objects then the $199 D435i model is recommended if you need to purchase a camera immediately.

    If you are able to wait then the best option for a project involving fast motion will be the new $239 D455 model, which is available to pre-order now.  It has improved accuracy over distance than the D435 models by a factor of two, making it ideal for accurately observing objects from a distance, and it has a fast shutter on both the RGB color and the depth sensors. 

    0
    Comment actions Permalink
  • A Elghozi

    Thanks a lot for your fast and complete reply. I would like to measure the diameter of threaded rods. So the target will be completely static and the camera will move a bit but not much (It will be held by hand).

     

    Is there a software to do point and click 3d measurements ?

    0
    Comment actions Permalink
  • MartyG

    The RealSense SDK has a pre-made example program called Measure that automatically updates a measurement between two points of an object at the centerpoint of the camera's field of view.  As the camera is moved, the measurement on-screen updates as it measures whatever comes into the camera's centerpoint.

     

     

    It is probably not going to provide the accuracy that you need though.  A more advanced solution may be to take a 3D scan of the threaded object and compare it to a perfect 3D model template of the object.  In this way, deviation analysis can be done to see if there are manufacturing errors.

    To do this, software called Artec Studio can be used with another program called SOLIDWORKS via a plugin called Geomagic for SOLIDWORKS.  The Geomagic plugin enables you to take a 3D model and convert it into CAD details and perform operations such as checking for deviation by comparing the scan to a 3D model.

    https://www.artec3d.com/3d-software/solidworks-cad 

    A less advanced approach would be to use open-source software called CloudCompare to compare a point-cloud scan of the object with an ideal point-cloud scan.

    https://www.danielgm.net/cc/ 

    0
    Comment actions Permalink
  • MartyG

    I also recalled a previous case in which the subject of measuring between two points had been discussed.

    https://github.com/IntelRealSense/librealsense/issues/6544 

    0
    Comment actions Permalink
  • A Elghozi

    Thanks a lot for your replies. You are helping me so much !

    I don't think deviation analysis is the solution for us because we are not trying to see defaults but only to see the diameter of threaded rods in order to know if it is M8, M10, M12 etc...

    However, the pre-made example program called Measure seems perfect ! It is exactly what we want to do but we do not need real-time measuring. We are going to do post processing measurements. 

    The final stage of my study is to be sure that I can have the precision I need. As we can get as close as needed to the target, I think the D435 is the perfect choice for our application because it has a minimum depth distance of 0.1m. What do you think ?

    0
    Comment actions Permalink
  • MartyG

    Although the D415 has better accuracy over distance, because the error curve increases linearly over distance from the camera there will be negligible difference in accuracy between the D415 and D435 when doing close-range sensing.  So yes, if you use the D435 then you can take advantage of its lower minimum distance.

    For the D435 the optimal depth sensing resolution will be 848x480.  You may be able to attain additional accuracy by setting the camera to use a custom preset configuration called 'High Accuracy', which shifts the balance of the camera configuration to favor accuracy.  You can also define your own custom preset especially for your project.

    https://github.com/IntelRealSense/librealsense/wiki/D400-Series-Visual-Presets 

    Alternatively, there is also a pre-made Short Range configuration preset that you could try.

    0
    Comment actions Permalink
  • A Elghozi

    Ok, so based on what you said, the D435 would be better because we will only do close range sensing.

    Thank you so much for all the information about presets and configurations, it will help me very very much.

    I will try the high accuracy preset and the short range one to see which is best for my application.

    0
    Comment actions Permalink
  • MartyG

    You are very welcome.  Please feel free to post follow-up questions on this forum as you develop your project.  Good luck!

    0
    Comment actions Permalink
  • A Elghozi

    Of course !

    Have a nice day

    0
    Comment actions Permalink
  • A Elghozi

    So as promised, I post up my tests.

    There were not very conclusive. I tried "High accuracy" and "Short range" presets. I did the dynamic calibration with the "Dynamic Calibrator" tool and the "on-chip calibration" on the "Intel RealSense Viewer" software. But I only have not enough precise point clouds to measure the diameter of the threaded rod.

    Here is a photo of the rod :

    Here is a snapshot of the point cloud :

    I think I expected to much of the cam. Maybe I should do this by creating a point cloud by scanning the threaded rod with software like Dot3D ? I thought that I could measure a tiny object like a rod (15-20mm) but I think it is too tiny for the cam and the resolution is not enough to do real-time measurements.

    0
    Comment actions Permalink
  • MartyG

    The problem may simply be that the rod is black.  Black or dark grey surfaces are difficult for depth cameras (not just RealSense) to see because there is a general physics principle that these colors absorb light instead of reflecting it back.  The darker the shade of black, the less visible the object is.

    This principle was demonstrated in another case yesterday where a black chair was having its depth read:

    https://github.com/IntelRealSense/librealsense/issues/6757 

    A couple of approaches to the problem would be:

    -  Applying a fine spray-on powder such as baby powder or foot powder to the object to increase its visibility.

    -  Project a strong light-source onto the rod to aid the camera in reading its depth.

    0
    Comment actions Permalink
  • A Elghozi

    You're right, I somehow forgot this fundamental principle. The strong light source could solve this issue. We can't apply anything on the bolts.

    And what about shiny surfaces ?

    0
    Comment actions Permalink
  • MartyG

    Shiny surfaces are tricky to deal with if you cannot apply anything to the bolts.  If you could, then you could have used a professional 3D scanning spray on them that is used for situations such as making 3D scans of jewelry.

    https://www.laserdesign.com/3d-scan-spray/?language=en_US 

    An alternative to coating the object is to apply an anti-glare filter such as a polarizer over the camera lens.  Intel have published a paper on the subject of physical optical filters.

    https://dev.intelrealsense.com/docs/optical-filters-for-intel-realsense-depth-cameras-d400 

    0
    Comment actions Permalink
  • A Elghozi

    We cannot apply anything on the bolts observed. If we have holes in the depth map, we will use the intel polarizer solution

    0
    Comment actions Permalink
  • A Elghozi

    I tried on dummy bolts like these :

    As you can see, the precision is horrible :

    They are like hills. Do you think this is the limits of the camera or my camera is badly calibrated ?

    0
    Comment actions Permalink
  • MartyG

    The subject of point cloud "ghost noise" is discussed in the link below.

    https://github.com/IntelRealSense/librealsense/issues/4553 

    Advice about reducing such noise is given here:

    https://github.com/IntelRealSense/librealsense/issues/3741#issuecomment-485588689 

     

    Regarding hole-filling: you may get less holes if you apply the Hole Filling post-processing filter to the image, as shown in the before and after example image below.  It may still be necessary to use a physical optical filter too though, in order to give the camera some depth detail to improve in the first place.

     

     

    0
    Comment actions Permalink
  • A Elghozi

    I do not have any holes but I have hills instead of a bolt. The last depth map I posted is from the 5 bolts you see on the pictures.

    Maybe I can tweak the depth step-size ? https://dev.intelrealsense.com/docs/tuning-depth-cameras-for-best-performance

    0
    Comment actions Permalink
  • MartyG

    Changing the Depth Units Scale has the most effect when doing close-range sensing, I believe.  So it may be worth trying to reduce the depth units from their 0.001 default to the 0.0001 minimum.

    0
    Comment actions Permalink
  • A Elghozi

    I tried with greater illumination and 0.0001 depth units but I still see hills/cone instead of threaded rod + nut.

    0
    Comment actions Permalink
  • MartyG

    If the goal is to measure the diameter of the top of the rod / bolt, I wonder if the complexity of a point cloud is necessary when 2D mode may be able to accomplish the same measurement using the technique in the Measure example discussed earlier.

     

    0
    Comment actions Permalink
  • A Elghozi

    Yes, it is exactly the goal. I will try again the example.

    0
    Comment actions Permalink
  • A Elghozi

    Hello,

    After a short good night of sleep, I have fresh questions ;)

    I think the 2D example will not help me as it seems that I have not enough points to measure what I want (diameter of 10-20mm threaded rod like in the picture some posts above). Correct me if I'm wrong : I need to scan the target by moving my camera around the threaded rod and add as many points as I can to "increase resolution".

    I already try Dot3D and after the scanning process finished, it gives me the same result as real-time : 5 ugly little hills instead of 5 threaded rods and nuts. You can see what I mean here : https://support.intelrealsense.com/hc/user_images/W6aYuXon8eGvWeVPdj-AZg.png

    But a friend of mine told me that maybe the scanning software (Dot3D) doesn't reconstruct as I want the 3D object. He thinks that it try to build a mesh and smooth the surface. As a consequence, it differs from the real geometry of the rod and give a cone-like shape.

    What do you think about it ? What is the issue : me (wrong procedure), the software (wrong settings) or the camera (not enough resolution) ?

    0
    Comment actions Permalink
  • MartyG

    Regarding not having enough points to measure on the rod: if the depth data in an image is too low (too "sparse") then you can reduce sparseness by increasing the value of the Laser Power option.

    However, if you do need a more detailed point cloud then you can build up a detailed cloud by moving the camera repeatedly around the object, using a technique called SLAM.  Here's an example of Intel demonstrating this principle in 2015 by scanning a room with a handheld smartphone with a built-in RealSense stereo camera (the ZR300, the direct predecessor of the D435).

    https://www.youtube.com/watch?v=Vpa8vKsapFk&feature=youtu.be&t=97 

    Having said that, you are more likely to get a 'lumpy' result with a point cloud scan than you are with a 3D model mesh.  The LIPScan 3D software demonstrates the principle of putting an object on a turntable in front of a single 400 Series camera and building up a good quality model scan by rotating the turntable.

    https://www.youtube.com/watch?v=N14Pi6z-MkE 

    0
    Comment actions Permalink
  • A Elghozi

    I tried to tweak many many parameters but I think as many other users, the D435 doesn't suit small object scan. So I will try to return mine in exchange of a D415.

    0
    Comment actions Permalink
  • MartyG

    Although the D415 has around 2x the image quality of D435, it has a minimum distance of 0.3 m instead of the 0.1 m of the D435.  So you would need to adjust the Disparity Shift to reduce the D415's minimum distance to get it as close as the D435 can.

     

    0
    Comment actions Permalink
  • A Elghozi

    Thank you so much for all the help you provided.

    Yes I planned to adjust disparity shift to compensate the min Z.

    0
    Comment actions Permalink

Please sign in to leave a comment.