Synthetic QR code database: The procedure first uses the same data
encoding library and random data string to generate QR codes with
different appearances. Then it replaces each QR code module with
a pattern randomly picked from a subset of P in which patterns
have identical color to the module at center pixel (see Figure 4(a)).
To evaluate how each pattern is resistant to perturbation, we apply a
variety of spatial perturbation to each synthetic QR code to account
for different scenarios when scanning a code in reality. Specifically,
to mimic the situation of scanning the QR code from non-frontal
orientations, we apply a random perturbation of yaw, pitch and
translation in xy plane to QR code image. The range of rotation
and translation are from [