Methods to implement floor dirt detection algorithm
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I'm trying to detect dirty floor areas in a series of images like the one that follows:

In the image above, there are two distinct areas, the whiter floor, which is considered clean, and the dirty floor, which is the area beyond the yellow warning sign. I'm looking for ways to detect these differences.
A relevant problem is that lighting intensity and colour may not be constant along the paths.
I've already tried 2D cross-correlation between a smaller sample image (taken from the image below), but it was not very effective.

My method was something like:
0. Mask out irrelevant features in input image (corridors other than the white ones, for example);
1. RGB to Grayscale conversion of input image (analysis target) and full sample image;
2. Extract a portion of the sample image and extract its histogram;
3. Use histogram equalization on input image, using the sample's histogram (histeq);
4. Run normxcorr2 between input and sample images;
5. Plot all points below an arbitrary constant (xCorr < 0.8, for example) over input image to detect dirty areas.
Maybe deep learning for image segmentation would be the most effective method, but I currently don't have the time to implement it.
Any other suggestions that would be any more effective on this situation?
1 Commento
Wick
il 2 Mag 2018
Perhaps the gradient or del2 operation performed on the normalized greyscale image might help? Those look for derivatives and so should be less sensitive to lighting conditions.
Risposte (0)
Vedere anche
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!