Segmentation of Pallets from images


Image of Pallets in Warehouse

img

I want to segment the pallets shown in the image (mentioned above) as I need to use them later on to automatically detect those areas(gaps) of pallets where the fork-lifter picks it from.

I need a starting point. I am thinking to use K-mean clustering to segment them out. But I am not sure if it is the right direction. Please suggest me something based oy your expertise and experiences.

If my question is not clear please do let me know. I will update it accordingly.

Any help in this regard would be appreciated.


Answers:


First see similar QA:

I know the title does not ring a bell for this but content does ...

To make this more robust I would:

  1. Detecting floor yellow/gray pattern

    Create ROI mask ground where the Yellow ground pixels are.

  2. Detect ground level pallets

    so inspect all pixels of ground and check if neighbor pixel is pallet like color. if yes add it to pallets ROI mask. You can also check if the pixels are in straight lines to filter out noise.

  3. Scan upper floors

    So just cast scan lines in up direction from each lower floor pallet pixel. start after the actual pallet ends (so either scan for non pallet pixel colors first or skip some height). If found add the pallet pixels to the pallets ROI mask

  4. Segment pallets ROI mask

    This can be done during #2,#3 to boost performance. Now just test the found individual pallets for geometric properties (like size,linear edges,etc...) to filter out noise.

img

[Notes]

You can exploit that the empty spaces of the loaded pallets create shadows with dark colors so you can use that to better detect pallet pixels.