0

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.

Spektre
  • 49,595
  • 11
  • 110
  • 380
Jazz Scout
  • 49
  • 1
  • 4
  • 1
    That's not so easy. You can try to segmen in La*b* color space to isolate te brown, but you'll getalso the boxes. http://imgur.com/a/9DI1n After some morphology: http://imgur.com/Ozf3VWr That's a very crap result, as you can see. Another way would be that to recognize the pallet by using it's "rectangle" area, the gaps. For sure you will get also the boxes, but maybe you can filter them out using the dimension. I would not suggest K-Means, because you cannot control what clusters it returns. – Leo91 Dec 03 '16 at 19:15
  • 1
    If you're automating a warehouse, the simplest solution is to make sure all pallets are set squarely in predefined locations at predefined heights. You could also try to use pallets that have been painted a specific bright colour to make them easier to detect. Without controlling the environment like this, the task is very difficult. – Ninjakannon Dec 03 '16 at 21:08
  • I'm fancying a 3-D laser scene measurement project using a Raspberry Pi.... :-) http://www.faro.com/measurement-solutions/industries/forensics – Mark Setchell Dec 04 '16 at 10:00

1 Answers1

0

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.

Community
  • 1
  • 1
Spektre
  • 49,595
  • 11
  • 110
  • 380