Methods to implement floor dirt detection algorithm

7 ビュー (過去 30 日間)
Ruben Esteves
Ruben Esteves 2018 年 4 月 22 日
コメント済み: Wick 2018 年 5 月 2 日
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 件のコメント
Wick
Wick 2018 年 5 月 2 日
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.

サインインしてコメントする。

回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by