It is magic: Utilizing an IR digicam and Raspberry Pi to scan an invisibly marked card deck throughout a magic efficiency: Digital Images Assessment


Card tips can be rather a lot simpler if the magician knew the placement of each card. Paul Nettle created a Github mission, ‘The Nettle Magic Mission,’ that makes use of particular markings and a digicam to determine and find each card in a deck.

Every card within the deck is marked with a singular barcode. After all, if the playing cards have been marked in conventional ink, that might disrupt the phantasm, so the playing cards are marked with ink solely seen underneath particular IR situations. Nettle and Van Goey designed a Raspberry Pi system with a NoIR digicam to see the marked playing cards.

The system runs a scanning server, and it is related to an iOS consumer utility, Abra, that reveals what the server’s digicam sees and the decoded deck. With the expertise, magicians can know the ordered listing of each card within the deck, which card(s) are lacking, and even which playing cards are face-up within the deck. The system might be run whereas performing as it could possibly scan/decode a 1080p picture to an ordered deck in ‘as little as 4ms.’

The testbed purposes offered are written for macOS and iOS, though there’s additionally help for Linux and the Raspberry Pi platform. There at the moment aren’t Home windows or Android variations. The complete documentation outlines the testbed utility intimately.

There’s additionally a high-level overview of how the system works. Whereas pace is necessary, right outcomes are essential. An error throughout a stay efficiency is problematic. Whereas scanning outcomes can be incorrect, it is impossible. Efficiency is improved by scanning a number of video frames reasonably than a single body. The outcomes of a number of frames are analyzed and mixed. Nevertheless, effectivity issues are necessary, because the system will possible be hidden on a magician’s particular person and may’t develop into too scorching or run out of energy.

Excessive-level overview of the Nettle Magic Mission system and its steps

There’s an enter video body augmented by configuration parameters and a deck definition. The deck is searched, decoded, resolved and analyzed earlier than a report is generated for the person. Every of those main steps contains secondary and even tertiary processes, that are extensively outlined right here.

Every enjoying card is about 0.3mm thick, they usually’re scanned underneath low-light situations utilizing a narrow-band IR digicam. Additional, playing cards develop into worn, and a few playing cards are held in somebody’s palms, so the scanning course of is not good. Nevertheless, it is ‘usually’ dependable. The ‘analyze’ part tries to beat a insecurity by combining outcomes from scans which are ‘principally’ right with scans that ‘may very well be’ right to generate a single ‘assured’ outcome.

The Abra consumer reveals the total outcomes of the scan. We will see that this scan generated a excessive confidence worth (98).

Completely different situations produce failures, together with the deck not being within the body or too small, the readability test failing as a result of the scanned video is not sharp, there being too few playing cards or simply another extra generalized failure. There are additionally completely different success situations, together with high and low confidence outcomes. As soon as all steps are full, the ultimate result’s despatched to the Abra consumer.

One among these decks is marked. Are you able to inform which one?

The documentation additionally reveals find out how to generate marks utilizing a Sharpie or a custom-printed stamp. The part on UV reactive inks is not full but, however there are some fascinating particulars about making a marked deck that appears regular to the bare eye.

When you like card tips, you may strive the Nettle Magic Mission for your self. All packages, instruments and documentation can be found on Github.

Picture credit: Nettle Magic Mission / Paul Nettle and Jeroen Van Goey / Github


Please enter your comment!
Please enter your name here