How to get more detections?
This article presents best practices to maximize the number of object detections. Note that for an object to be sent to the robot for picking, it needs to be both detected (this article) and pickable. The latter is the scope of the companion article on how to get more pickable parts.
Finding many and high-quality detections depends on a number of factors, ranging from the quality of the captured image to the detection configuration. The following sections present them in detail.
When optimizing any part of your application, make sure to validate your results in representative conditions. For example, on a bin picking application, validate your results across the expected range of part orientations (top, bottom, side) and locations (bin top, bin bottom, next to bin wall, middle of bin).
This can be done by means of test runs of your application, but can also be done systematically by saving a number of representative snapshots and comparing before/after results.
This recommendation applies not only to getting more detections, but also to other optimizations like getting less false detections, faster detections, or more pickable parts.
Parts should be captured by the camera with enough fidelity to be reliably detected.
Camera type. Pickit is compatible with a number of 3D cameras. Use one that is adequate for the size and material of your parts.
Camera mount and location: Determine the best configuration for your application.
Camera configuration: Select the configuration that produces the best possible 3D capture.
Pickit SD cameras: If working with partially reflective parts, use image fusion to better capture flickering image regions.
Pickit HD cameras: Select adequate camera settings for your parts.
You can inspect the quality of the captured point cloud in the Points view.
Region of interest
The Region of Interest (ROI) should contain as few points not belonging to the parts to be detected as possible.
After initially building the ROI, make sure to fine-tune it to remove elements like the ground plane and bin walls. This way, Pickit’s computational effort is focused in the relevant regions of the 3D image, and not wasted in regions where parts are not expected to be.
If the bin walls are irregular, or their location can change slightly over time, consider enabling the ROI wall filter. If your detection region is not box-shaped, as can happen with slanted-wall bins, you can use the point-based ROI filter to teach the shape of the empty bin and substract it from the captured point cloud.
The model of the object to detect should be as accurate as possible.
If the model is given by a geometric primitive, such as when using Teach cylinders, Teach boxes or Flex, make sure that the dimensions are correctly specified.
If the model is taught from camera, follow the recommendations on how to teach a good model. Note that if parts can be randomly oriented, more than one viewpoint might need to be taught.
If the model is taught from CAD, make sure that the model matches the real parts. For instance, you will have worse matches if you use the CAD model of a finished part to detect unfinished parts that have different geometric features or dimensions.
There are two parameters that have a great influence on detection results:
Matching tolerance: When set too small, Pickit will produce less (or no) detections. When set too high, it can produce false positive detections.
Minimum matching score: When set too small, Pickit can produce false positive detections. When set too high, it can produce less (or no) detections.
Learn more about finding good values for these parameters here. Apart from the above, there are a few additional settings worth reviewing in your Pickit configuration:
Downsampling resolution: If set too high (coarse point cloud), detection results will degrade.
Detection speed (Teach only): Slower speeds increase the likelihood of finding more detections.
Clustering (Flex only): Refer to these guidelines to learn how to choose the correct settings.