4

I need to detect the exact position of some kitchen tools using machine vision. I've the possibility to label the tools with a pattern, to make the detection (more specifically the image segmentation) easier.

What is the easiest pattern to detect using machine vision?

The pattern should be:

  • Easy detect in presence of partial occlusions.
  • Easy to detect with varying and degraded light conditions.
  • Easy to detect with widely used computer vision algorithms, in particular lightweight algorithms that can run on edge devices.
  • Hard to mistake for another object (in a kitchen).
  • Possibly carrying some additional information.

A QR code fits this description pretty nicely. My guess is that the easiest pattern will contain a sharp alternation of two colors, likely black and white.

Royi
  • 33,983
  • 4
  • 72
  • 179
Rexcirus
  • 141
  • 3
  • In a video or a single image? – Royi Dec 07 '20 at 05:35
  • The tool is static, so single image is fine. – Rexcirus Dec 07 '20 at 14:49
  • 1
    [Is this question and answers any use?](https://dsp.stackexchange.com/questions/8821/what-are-some-easy-to-detect-reference-mark-shapes-and-corresponding-detection-m/8822#8822) – Peter K. Dec 08 '20 at 19:52
  • Yes. I just discovered these fiducial markers, for instance AprilTags: https://github.com/AprilRobotics/apriltag – Rexcirus Dec 08 '20 at 22:26
  • See also https://robotics.stackexchange.com/questions/10687/what-the-name-of-this-kind-of-computer-vision – Rexcirus Dec 08 '20 at 22:34
  • With your permission for clarity I added the links you wrote in the answer. For 1 spot answer. – Royi Dec 09 '20 at 08:37
  • @Rexcirus, Can you please review the answer and mark it? – Royi Dec 21 '21 at 18:59
  • Thanks for your answer (which I've upvoted), but I'm not sure fiducial markers are the final answer, hence I'm leaving it open for now. – Rexcirus Dec 21 '21 at 20:15

1 Answers1

4

In case you can shoot a video of the static scene than a blinking light would be the easiest as you could easily detect it by subtracting the n - 1 frame from the n frame until you see something with high values.

If you take a still shot you can use 2 main ideas:

  1. If the colors of the scene are from a given plate, find a color very different in Hue and make sure it is intense (Even active lighting which will saturated).
  2. Use a pattern which is easily detectable like stripes of B/W or pure green and magenta. You may encode data in the stripes.

Resources

Some resources pasted here in comments:

Royi
  • 33,983
  • 4
  • 72
  • 179