As convenient as QR Codes are, there has been resistance to adopting them. Many people dislike them and the way they look, calling them `robot vomit` or `too industrial.` This leads them to being hidden or otherwise avoided, at the expense of their convenient information delivery capabilities.
The difficulty in changing the way QR Codes look is that their functionality, their capability to store and deliver digital information, is pictographically encoded. Hence it is the way they look that makes them functional, and changing their look would remove their functionality.
The solution outlined here is to use steganography, specifically stereography, to change the QR Code image. Steganography is the practice of hiding information for later retrieval. However, the object here is not to obscure the information, but to use the hiding methods to gain options in how we can present the same digital information.
|A hidden shark!|
"An autostereogram is a single-image stereogram (SIS), designed to create the visual illusion of a three-dimensional (3D) scene from a two-dimensional image. In order to perceive 3D shapes in these autostereograms, one must overcome the normally automatic coordination between accommodation (focus) and convergence (angle of one's eyes). The illusion is one of depth perception and involves stereopsis: depth perception arising from the different perspective each eye has of a three-dimensional scene, called binocular parallax.
"The simplest type of autostereogram consists of horizontally repeating patterns (often separate images) and is known as a wallpaper autostereogram. When viewed with proper convergence, the repeating patterns appear to float above or below the background. The well-known Magic Eye books feature another type of autostereogram called a random dot autostereogram... In this type of autostereogram, every pixel in the image is computed from a pattern strip and a depth map. A hidden 3D scene emerges when the image is viewed with the correct convergence. ---https://en.wikipedia.org/wiki/Autostereogram
The important feature of random dot stereography is that the hidden image is not dependent on the color of the dots. It is the placement of the dots that is important. Hence stereograms can be any color while conveying hidden information. Note that these stereograms are not human-viewable.
The other important feature of stereograms is that computers can decode them if the encoding parameters are known. So, given a standard stereogram encoding, a computer can decode a stereogram and retrieve the stored pictographic information. If that information is a QR Code, the QR's digital information can be retrieved. For these stereograms the procedure is to overlay the same image, move it horizontally 15 pixels over, and take the difference between the pixel color. So if the pixels are the same color, then the combined image displays black. If they pixels are not the same, a new color is formed.
If we then remove everything but the black, we retrieve a reasonable copy of the original QR Code:
This leads to the main benefits of SIQR Codes:
- The do not look like QR Codes; data and appearance are separated.
- They can be a wider variety of colors.
- The same QR Code can be reencoded to look different, as many times as needed.
- They can have the functionality of a QR Code, or other similar formats.
- They function on existing technology, both in printing and in decoding: no need for new hardware, internet access, etc.
These benefits lead to easier and more aesthetically pleasing integration of digital content within traditional media. SIQR Codes can fit seamlessly into a background color of an advertisement or product, and hence digital information can be stored and transmitted without damaging the design.
Drawbacks and Limitations
One drawback is SIQR Codes require more space than the codes they represent. The stereogram obfuscation process needs multiple pixels for each pixel of the encoded image. SIQR is a trade off of space for flexibility. My testing has shown that modifying the stereogram settings can minimize the waste, making the SIQR less than 10% larger than the original QR Code with minimal loss of image quality.
Secondly, the SIQR Codes will need to be delineated in a standard way, so that they can be properly processed by interested parties. This requires coordination to create a standard. It is an opportunity for good, stylish design, though, as opposed to the industrial history of bar codes.
As with any bar code, there has to be enough contrast for the camera to distinguish the distinct colors. This limits the possible color combinations. However, as camera and image processing technologies develop, this may become less of a problem.
The SIQR standard is meant to be a wrapper for underlying digital content. This means that both the steganographic wrapper and the underlying QR coding can be improved upon. Moreover, they can be improved upon in a continual fashion. End users need never know that the underlying coding has been updated because it will be hidden from them. Likewise the steganographic obfuscation can also be improved upon.
For instance, although this paper used stereograms, there is no need to use them as they have been in the past. Stereograms were developed to be used with human parallax vision, but that is no longer the target audience. The images in this document were manually tweaked to work on my phone's QR reader and appear to be random dots to my eye, not to be understood without a computer aid. Since a human never need directly view the underlying QR Code, the use of parallax as a device to hide information is arbitrary.
Perhaps a rotational or size translation, is better than the horizontal translation of traditional stereograms. Both rotational and size translations would lend themselves to circular formats, instead of the rectangular shape, which could provide new opportunities and challenges.
Research needs to be done to determine what is most efficient for human vision obfuscation and aesthetics, but camera and computational clarity.
The potential exists for having multiple messages exist within a single SIQR Code by using different decode settings. A `public` code might exist using the standard decode procedure, but a `secret' code would be available to those who knew the correct transformation.
Feel free to donate BTC at the above address:
QR Codes made with qrencode:
Stereograms created using Open Stereogram:
Copyright: CC - By