How do we prevent QR codes from containing swastikas or similar?
from unknownuserunknownlocation@kbin.earth to nostupidquestions@lemmy.world on 07 Mar 21:43
https://kbin.earth/m/nostupidquestions@lemmy.world/t/2469417

I remember a couple of years ago I read up about the details on how QR codes are created. Specifically the masks that are added at the end to ensure that there aren’t any areas with too much whitespace or something that ends up inadvertently looking like the corner of a QR code (that square inside a square thing).

And for some reason, I’m staring at two QR codes in front of me, looking at the details, one looks like it contains a pipe going around a corner, another looks like it has a bit of a star, which made me wonder… Why have I never seen a QR Code with a swastika or something else you really don’t want to have on there? I’ve never seen any word on filtering out stuff like that when it comes to masking.

Am I just too bored out of my mind so that I’m staring at QR Codes like this with way too much imagination or is there something I’m missing?

EDIT: I’m sure it’s possible to intentionally create one, I’m thinking more of accidentally creating one. Specifically when I see, for instance, a different QR code on the back of every seat in a train, for instance - you’re generating so many, no human is going to check that.

#code #hate #masking #nostupidquestions #qr #speech #technology

threaded - newest

originalucifer@moist.catsweat.com on 07 Mar 21:47 next collapse

qr codes with human-readable sections are just that, really freakin visible. just like images with swastikas.. those that tolerate that crap will do so, those that abhor such things will report such nonsense to anyone they can. in case of accidental swastika, the rules still apply.

ie, still just an image

Windex007@lemmy.world on 07 Mar 21:56 collapse

OP is asking if there are algorithms in place that detect if the qr code itself has, by chance, anything that looks like a swastika.

originalucifer@moist.catsweat.com on 07 Mar 21:59 collapse

ahhhh.. weird

kinda like when scanners refuse to scan monetary notes.. spose that would be an implementation feature

Windex007@lemmy.world on 07 Mar 22:00 next collapse

You could probably intentionally create a qr code with a simple recognizable symbol, but it’d still necessarily have “clutter” around it which would make it stand out less. Also there are hard limits on the length of contiguous horizontal or vertical “lines”.

SlurpingPus@lemmy.world on 08 Mar 06:14 collapse

A qr code can have an arbitrary image embedded in it up to some limit, because remaining pixels are enough to decode it (perhaps there’s redundancy built in, idk for sure).

cobwoms@lemmy.blahaj.zone on 07 Mar 22:28 next collapse

there’s a mask process in qr code generation. the masks aims to try to make it look like uniform noise, so you don’t end up with blocks/lines of pure white or pure black. so you won’t end up with any recognizable symbol in the usual algorithmic generation

some more detail: it will use one of these patterns to invert some pixels until it finds one that results in more or less uniform noise.

it will also add a set of pixels in a designated mask identification zone that instructs the decoder which mask was used

<img alt="" src="https://lemmy.blahaj.zone/pictrs/image/e0c3d0a5-795d-4001-a187-e71f84eb3630.webp">

unknownuserunknownlocation@kbin.earth on 07 Mar 22:59 next collapse

Ah OK, I guess the lines part was what I was missing. I guess without any straight lines the probability of something like that containing something offensive drops pretty low.

ChaoticNeutralCzech@feddit.org on 08 Mar 07:24 next collapse

It is designed to especially penalize ⬜⬛⬜⬛⬛⬛⬜, which is a part of the finder pattern (big squares in the corners) and the swastika.

HeyThisIsntTheYMCA@lemmy.world on 08 Mar 18:08 collapse

that’s really neat, but also disappointing i can’t like draw a duck in the qr and somehow make it work.

cobwoms@lemmy.blahaj.zone on 08 Mar 22:46 collapse

you can if it’s small and in the middle

Pricklesthemagicfish@reddthat.com on 07 Mar 22:32 next collapse

Do we upvote or downvote if we think its a stupid question how does this work?

Nemo@slrpnk.net on 07 Mar 22:38 next collapse

I upvote if I want to see the answers regardless.

fizzle@quokk.au on 07 Mar 22:42 next collapse

Theres no consensus on this.

Actually stupid questions, like ones intended to be offensive, or unanswerable debates like Apple vs android, do get downvoted.

If OP is genuine, or if the discussion is engaging, then upvote it.

FaceDeer@fedia.io on 07 Mar 23:01 next collapse

So, wait, is this a stupid question, then? Should we not be upvoting it? Recursion is tricky.

Wappen@lemmy.world on 08 Mar 11:36 collapse

I thought the community name refers to the answers in the comments, like OP asks something and doesn’t want to be asked stupid questions for asking such a thing.

fizzle@quokk.au on 08 Mar 12:28 collapse

No that’s not what it means.

Its from the phrase teachers like to say: there are no stupid questions.

The idea being, dont be embarrassed to ask a question others might see as stupid, because by learning the answer you will be less stupid, or something.

Wappen@lemmy.world on 10 Mar 18:57 collapse

Ah that makes sense thx

grue@lemmy.world on 08 Mar 03:10 next collapse

<img alt="" src="https://lemmy.world/pictrs/image/f2fa2c7e-074b-4c45-9a58-e463499fe617.gif">

Pricklesthemagicfish@reddthat.com on 08 Mar 14:23 collapse

Yes feel the hate

XTL@sopuli.xyz on 08 Mar 13:20 collapse

Downvote content that is harmful to the community or instance, report additionally if it’s against the rules of either. Upvote good content and ignore the rest. Block whatever you feel like.

Though I suspect your question is more about what the community description means. Answer should be in there.

reksas@sopuli.xyz on 07 Mar 22:41 next collapse

Most likely if you wanted to generate qr code that looks like swastika, you would have to input very specific letter nonesense to do it. Its very specific scenario and just pointless waste of manhours to prevent it, when someone who would want to generate such qr code would just do something else if prevented.

unknownuserunknownlocation@kbin.earth on 07 Mar 22:56 collapse

I'm sure it would be possible to do it on purpose, I'm thinking more of the scenario of a company pumping out thousands of different QR codes and one of them accidentally having something offensive on it.

FaceDeer@fedia.io on 07 Mar 23:14 next collapse

Apparently there is a mechanism in the basic QR-code-generating algorithm that does something like this.

There are eight different patterns that can be used to display any given QR code's data. All eight versions get generated internally by the generation software and then they're assigned scores that penalize them based on various patterns:

  • Large monochromatic blocks, anything more than 2x2 pixels of the same colour (white or black)
  • Long lines of either colour
  • Anything matching the "finder patterns" (the squares at the corners)
  • Imbalance between 50% black and white pixels

The best one of the eight is the one that's actually printed.

So a swastika isn't explicitly searched for, but given that a swastika is composed of a bunch of long lines a QR code pattern like that would get penalized pretty harshly. The seven other QR codes would have to be even worse for it to slip through, and I bet the odds are pretty low for that.

grue@lemmy.world on 08 Mar 03:09 collapse

Ah, so the same checks you need anyway to make sure the thing can actually be read – because a 2x2 vs 3x3 block might start to get hard to differentiate, for example – also happens to obviate OP’s issue as a coincidental side benefit.

[deleted] on 08 Mar 05:12 next collapse
.
qevlarr@lemmy.world on 08 Mar 07:06 next collapse

Just wanted to say this is a fantastic question and the people who claim otherwise have bad reading comprehension

Nibodhika@lemmy.world on 08 Mar 07:19 next collapse

Short answer, the masks would prevent them most of the time because they’re there exactly to prevent large blocks of continuous color as that would be difficult to recognize. Can you have small swastikas or other stuff in the middle? Yeah, but I don’t think anyone matters much about that. You can also purposefully create one but it will be hard to be read by a scanner and it’s likely going to be more random noise than anything useful.

ChaoticNeutralCzech@feddit.org on 08 Mar 07:29 next collapse

QR codes can have arbitrary looks even without dirty tricks (abusing the error correction to add a logo or taking advantage of central sampling to color all but the middle 3x3 square of each data pixel) but boy, is it hard.

Examples:
lemmy.sdf.org/post/31694735/18805217 (strings a long number in Number mode (3 decimal digits per 10 bits) to the URL, and somehow the resulting number turns out to be a small even number times a very high power of 2)
www.youtube.com/watch?v=qQkWjzqMbuA (uses padding bytes plus maybe some of that “intentional damage” in QR codes with logos)

[deleted] on 08 Mar 17:11 next collapse
.
unknownuserunknownlocation@kbin.earth on 08 Mar 17:11 next collapse

OK, I was actually asking about accidental things, but this is pretty neat.

[deleted] on 08 Mar 17:11 collapse
.
jve@lemmy.world on 08 Mar 08:51 collapse

Not a show, but The Martian, and soon Project Hail Mary