Search Unity

How to scan the positions and orientations of cards (possible duplicates) for a board game?

Discussion in 'AR' started by RecursiveFoxx, Jun 12, 2020.

  1. RecursiveFoxx

    RecursiveFoxx

    Joined:
    Feb 17, 2016
    Posts:
    1
    We're trying to make an AR board game (for kids) that uses the positions and orientations of physical cards on the board game along with an AR app to add some "magic" to the game. One of the issues is that duplicate cards are allowed. The aim is to have a scanning process that reads in all the cards (their types, positions and orientations) at the end of a round before the "fun" AR stuff happens. During this scanning process, the cards will not be moved.

    We've achieved limited success using Vuforia and VuMarks for each card, with no duplicate cards. The scanning process works (mostly), however, it is still dodgy some times and cannot handle duplicate cards. It is still not really usable for an actual board game - at least if I was a kid, I wouldn't want to play a board game with dodgy scanning.

    scanning.png

    A possible solution for the scanning process we were considering was:
    1. have one (or more) anchors on the board game where at least one anchor is always visible so that a global position is always known;
    2. the camera is slowly moved around the board scanning the cards for their positions and orientations relative to the anchor(s); and
    3. when one of the cards has been recognised, record this information and create a child non-AR object placed relative to an anchor. Then mask out its area in the camera input stream. This masked out area of the camera feed must not be used by the image recognition parts of ARCore/Vuforia, etc. Theoretically we could then have duplicate cards being recognised and ignore parts of the camera feed that do not lie within the board's area.
    So my question is, is it actually possible to have a pre-processing step in the AR process that can do this "masking" or some other way of ignoring parts of the camera feed?

    Or does someone have another idea on how the scanning process can be accomplished?