Introducing camera calibration and its importance in high-accuracy augmented reality
The original one-dimensional barcodes were designed back in the 1950’s and first used in a retail application in 1974. The barcodes were only capable of containing a few bytes of information, enough to identify a product, like the ISBN of a book. They were optimized for active scanning devices like laser-scanners since camera sensors were slow and extremely expensive at the time. As better and cheaper image sensors became available in the 1990s it started to make sense to use two-dimensional bar codes: those would be able to hold much more information and therefore also be much more flexible. QR-codes were introduced by Denso at that time and reached mainstream consumer use in Japan in the early 2000s when phones got their first camera sensors and internet access. While there are many types of 2D ‘barcodes’ today, QR-codes remain the undisputed champion and have infiltrated every aspect of mobile computing.
But QR-codes have their downsides. Firstly they can hold a lot of information indeed, and that means each ‘pixel’ that composes the code is quite small, requiring the reading device to be placed very close to the QR-code. This makes them hard to read for popular devices like smartphones, often requiring a several seconds of trial and errors. In addition they also must be scanned head-on, and become unreadable by most applications as soon as they are seen at an angle. These two problems become critical with smartglasses: the head-mounted devices are naturally further away from a QR-code and the neck and back movements required to bring the QR-code into a readable position are simply not acceptable. QR-codes are thus far from ready for the smartglasses revolution: slow, clunky, hard to read. In a nutshell, QR-codes were designed for hand held operation, not for an era of head mounted systems.
Secondly, QR-codes are not augmented-reality (AR) ready. AR is a big piece of the smartglasses use case cake and not being able to use QR-codes in that setting is not a good start. Other 2D codes like ARToolKit are more mainstream today but lack accuracy and reliability for more demanding industrial or medical applications.
We can see a strong demand from our customers for an industrial-grade, fast and reliable 2D barcode, ready for smartglasses, with AR and positioning capabilities and long detection range, but there was simply no proper solution to be found. So we just went all out and designed our own: the SmartMarker.
As most of our business is in industrial applications the first decision was to reduce the size of the payload that was contained in the code. QR-codes can contain entire paragraphs of text, but we wanted a large detection range with a simple VGA camera in order to have a smooth user experience (no contortions needed!) And that puts a limit on the size of the ‘pixels’ that a 2D code can contain (and thus their size). After all, in 99% of industrial applications a 2D barcode only contains a short token that identifies an entry in a database where more details about the location, part, product, person, etc can be found. In a way our SmartMarkers hold information similar to the old 1D barcode but in a 2D format optimized for low-resolution cameras found in smartglasses and other wearables.
The next challenge is the AR capability: SmartMarkers must allow information, 3D models and animations to be rendered in full AR fashion. This capability can be found in many AR markers (again, the pioneer ARToolkit comes to mind) but we needed a more stable, accurate and reliable positioning. Thus for SmartMarkers we use 4 circular dots as the base for positioning but unfortunately we have to skip on some secret juicy details here…
Reliability is critical for industrial and medical applications, something where QR-codes shine thanks to their huge available payload and ECC capabilities (Error Correction Codes, usually of the Reed-Solomon type). This is also something we integrated in our SmartMakers, and to further improve reliability we added a 16-bit check sum (CRC), making identifications errors exceedingly rare: in the 6 years since we started to use our markers we have not seen a single false positive! We have also made an extensive study about the false positive rate of our makers, confirming their performance over trillions of tests. Maybe the subject of a future technical blog post?
Compared to other 2D codes our SmartMarkers also boost several extra industry-grade advantages. Thanks to our computer vision wizardry they can be read almost in complete darkness, making them ideal in tight and poorly lit industrial spaces:
If you look very carefully you may barely discern the marker, but our computer vision algorithms have no problems spotting it! Here’s a contrast-enhanced image to help our poor human eyesight:
The markers are there indeed and SmartMarkers are detected even with these ultra-low lighting conditions. This is the kind of mad science you get from working with Augumenta. ( ^-^)v
Fast detection is critical not only when aiming for a smooth user experience and also whenever money is involved. Millions of scans are being performed in large logistics operations and significant savings can be obtained by shaving off a second or even a fraction of a second per scan. The tolerance in view angle and the real-time, high-speed of detection of SmartMarkers really shine here, and this can be achieved on most smartglasses available today (Epson, Vuzix, Lenovo, RealWear, Iristick…)
Here’s a few more design and performance features:
- They have great positioning accuracy, to the point where we’ve used them in metrology applications.
- They can be of almost any size, from millimeters to kilometers (we’d like to put a large one on the moon some day, but no investor has agreed to foot the bill yet.)
- Similar to ISBN numbers, we offer vendor-specific address spaces, guaranteeing that no code from another company will match yours: imagine what would happen if two different medicine had the same code…
- Logos can be integrated in the marker for branding purposes.
- Multiple SmartMarkers can be used together for larger positioning coverage and greater accuracy.
SmartMarkers are part of our SDK and can be integrated straight into your application. Get in touch and let’s discuss how our fast, reliable, long-range and accurate SmartMarkers can help your operations! We are happy to discuss any custom requirements with you.