How to determine if a 3D object?

I am trying to create a solution in which I could distinguish between a three-dimensional textured surface about 200 microns high and regular text printing.

The following image is a textured surface. Black is the base surface.

Plain text printing is a 2D printing of the same 3D textured surface.

enter image description here

[EDIT]

The initial thought for solving this problem might look like this:

The general idea here would be that images shot at different angles of a 3D object would be less related to each other than images shot for a 2D object in a similar state.

One possible way to check may be: 1. Take 2 images with enough light around (camera flash). These images should be taken as far as possible from the plane of the object. Let's say one shot was taken by the camera at 45 degrees on the left side and the other with the same angle on the right side.

Get a return on investment, fix it in the future. Find the GLCM composite from these two images. If the contrast of the GLCM is low, then it will be a three-dimensional image, and the other is 2D. Please forgive the language by opening a sentence for editing.

+5
source share
3 answers

The general idea here would be that images shot at different angles of a 3D object would be less related to each other than images shot for a 2D object in a similar state.

One possible way to check may be: 1. Take 2 images with sufficient lighting (camera flash). These images should be taken as far as possible from the plane of the object. Let's say one shot was taken by the camera at 45 degrees on the left side and the other with the same angle on the right side.

  1. Retrieve the ROIs, fix them in the future.

  2. Find the GLCM composite from these two images. If the contrast of the GLCM is low, then it will be a three-dimensional image, and the other is 2D.

Please forgive the language by opening a sentence for editing.

0
source

If you can get another image that has a different angle or a sharper angle or different lighting conditions, you can get the result. However, using two images with different angles with a calibrated camera, you can get a stereo image that will easily solve your problem.

0
source

This is a rather complex problem, and there is no plug-in for this. Using light (structured or laser) or shadow to determine a height of 0.2 mm will almost certainly not work with an acceptable degree of certainty, no matter how many β€œphotos” you take. (This is just my personal intuition, in computer vision we check whether something really works).

GLCM is a good feature for describing textures, but as far as I know, it is used to check for the presence of a pattern in the texture, so I believe that this will lead to a positive value for the text in 2D printing, if it is a kind of repeating pattern.

I would let the computer know what text is, what texture is. Just extract large amounts of 3D and 2D data and use the machine learning engine to find out what it is. If the space of possibilities is rich enough, it can find a way to distinguish one from the other, no matter how our human mind can. The function space must consist of edge and color functions.

If the system environment is stable and controlled, this approach will work especially well, since the training data will be so similar to the test data.

For this problem, I will start by calculating the color and edge functions (the sum of the pixels of the local image over different red and color channels) and try the advanced classifier. Accelerated classifiers are not up-to-date when it comes to machine learning, but they don't overdo it well (which means you can just paste in as much data as you want) and are more likely to work in a stable environment.

Hope this helps,

Good luck.

0
source

Source: https://habr.com/ru/post/1261973/


All Articles