Mineral petrographic image segmentation


I am doing an image segmentation project for mineral petrographic thin sections. The shape and size of the mineral are important, so precise segmentation is required.

Analysis goals

I annotated 40 images and used to train a UNet model to predict the classification of each pixel (class A, class B, holes, touched boundaries), and then use Watershed for post-processing, but the results are not satisfactory (only some of images are segmented right) .

The mineral grains in my pictures are in contact with each other, and the size, color, and texture are very different. I think this is the main reason for the difficulty of segmentation.

Please help me, is there any relevant research or successful segmentation method (whether it is deep learning or traditional methods) on this kind of images?

Or a simpler annotation tool is welcome to suggest, I really don’t want to use PhotoShop for annotating.

Best Regards.

Original Images

UNet Output

Sement result of above image

Sement result of other picture1

Sement result of other picture2

1 Like

Try ZEN Intellesis or even consider to train your own network using www.apeer.com and import your trained model later in ZEN if required.

Annotation will be required still… :wink:

Just curious, which of the segmented image comes the closest to what you are looking for?

I registered, but Zeiss has not yet passed the application, so I can’t use it now. :rofl:

Of course it’s the first segmentation image(with the white line as the segmentation line), over-segmented and under-segmented both exsit on other segments.
:smile: thanks for reply.

If you’d like to try a commercial application, PerGeos software has built in a few workflows related to your thin section work. Some examples are illustrated in these two videos:

Trial versions can be requested here: PerGeos Software Trial Request – Software Center

In terms of technique, your U-net approach will help to segment the grain phase from the background. To segment the individual grains, you could try for an oversegmentation approach such as superpixels followed by RAG or random walk methods. The PerGeos team has expertise with such methods, should you want to use that program to pursue this question.

More generally, the level of grain adjacency will make it difficult to correctly segment by standard watershed, as you notice. This is partially because some of the grains may have small holes or long edges with adjacent grains. Color image segmentation in HSV space may prove fruitful for phase segmentation followed by image processing to remove small holes and to separate grains at their boundaries. Filtering the grain boundary + background hole ‘phase’ could be accomplished by filtering by a shape factor such as sphericity. This can help you to get rid of the small holes but retain the grain boundaries (to my eyes they appear to be similar colors). Finally, you may be able to apply texture analysis. This is also possible in PerGeos, but more broadly I think you can use the variety of grain direction and texton correlation to isolate the individual grain regions. Deep Learning (U-Net) may then no longer even be necessary.

Good luck!

Thanks for your answer! I have tried the traditional method, and it is indeed possible to complete the segmentation of part of the image grains, but many thin sections cannot be performed in the same way. So I still have to use U-Net, your suggestion is very good, thank you very much!