필터 지우기
필터 지우기

machine learning and image segmentation

조회 수: 4 (최근 30일)
topolowa
topolowa 2016년 12월 14일
댓글: Peyman Obeidy 2017년 3월 30일
Hi,
I would like to apply machine learning for image segmentation of the cells. Images are difficult to segment and need supervision, but we get nearly 1K of images in one set. I already have several thousands of images and segmented masks for the training.
Would you have any comments/suggestions on which algorithms/ functions within any of Matlab products to use. I am going through Matlab Vision, Machine learning and Neuronal networks toolboxes to get an idea of existing tools.
Thank you for any help,
Ina
  댓글 수: 2
Ahmet Cecen
Ahmet Cecen 2016년 12월 14일
Maybe post an example image so we get a rough idea?
Peyman Obeidy
Peyman Obeidy 2017년 3월 30일
May I get your code, I would like to try it on my image

댓글을 달려면 로그인하십시오.

답변 (2개)

Alex Baucom
Alex Baucom 2016년 12월 14일
If you want the sledgehammer of algorithms, use a convolutional neural network.
If you want more control over the algorithm, you can use some sort of pre-processing or feature extraction (something like Gabor filters or SIFT features) and run that through an SVM.
Without know much more about the data or use case those two route would be the best bets to try.
  댓글 수: 1
topolowa
topolowa 2016년 12월 14일
Hi,
thank you for your comment!
Regarding image features, it contains adherent cells, which have tendency to change shape and fuse together, causing that the boundaries between individual cells are hard to detect. I have attched example image and the mask.
<<
>>

댓글을 달려면 로그인하십시오.


Ahmet Cecen
Ahmet Cecen 2016년 12월 14일
편집: Ahmet Cecen 2016년 12월 14일
I will give you a very rough suggestion with many assumptions, but this is the best I can do with the given information. It should at least expand your horizons on how to deal with the data, if nothing else. My suggestions for images like these would be:
1) Start with simple intensity-based thresholding.
2) Erode the thresholded mask with smallish element, like a 3 pixel radius disk, to get rid of irregularities.
3) Feed this image as the initial guess to an active contours or watershed algorithm to refine the segmenteation.
Lets call the result Mask1.
4) Go back to the original image, make everything that is not in Mask1 0, losing some potential cells but that has to be ok.
5) Adjust the contrast to highlight edges, like imadjust, or simple histogram stretching.
6) Find edges, either via a manually tailored filter or standard ones like "LoG" or "canny".
7) Try to find cell nuclei from the edges. This might take some playing to get right, but there seems to be some inherent order to cell centers in the form of a sudden drop in intensity. You can try to filter the edges with circular elements, or use hough transform etc. Can't really get specific without seeing this stage myself and experimenting.
8) Using cell centers, use some clustering technique or distance transform to estimate cell boundaries. You can also use something like a voronoi tesselation.
9) Use Mask1 and step (8) above together to find individual cells.
---
I am fairly certain (feel free to prove me wrong) that convolutional nets will not work for this purpose, at least not out of the box. Neither will SIFT. These methods solve segmentation problems of a different sense (identify scene, find people, detect irregularity), and prove mostly useless in segmentation of experimental(Microscope, CT, SEM, TEM etc.) images like these in my experience.
  댓글 수: 1
topolowa
topolowa 2016년 12월 14일
Hi Ahmet,
thank you very much for your answer. Indeed, I am already applying more or less everything you mentioned for the segmentation process, where custom flavour of Active contours is the main one. Yet, the results have to be curated, by manual splitting of some fused cells.
I have already few thousands of the segmented images and was wandering, if it would be feasible to engage machine learning, without need of extensive post processing corrections.
Thanks a lot,
ina

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by