7 ms·
What kind of blur is used? Blurs are annoyingly bad at obscuring things like faces. They may be good at making faces unrecognisable to people, but they’re not n
by noodlesUK 6y ago
What kind of blur is used? Blurs are annoyingly bad at obscuring things like faces. They may be good at making faces unrecognisable to people, but they’re not nearly as good at making faces unrecognisable to machines.
- dbrgn 6y agoI tend to pixelate regions I want to make unrecognizable in photos instead of using a gaussian blur due to this reason. Pixelation should be safe as long as the pixels are large enough, right? I wonder why Signal didn't do something like that...
- ReactiveJelly 6y agoI think there's a way to do super-resolution on pixellated video. It's okay for still images, but videos have a lot of information to leak. Just black everything out.
- laughinghan 6y agoYou should also discretize the pixel colors. Note that if you blur the pixelated region, it'll be just as aesthetically pleasing as the reversible Gaussian blur.
- 2OEH8eoCRo0 6y agoA good blur sheds far too much information to be meaningfully reversible.
- laughinghan 6y agoBut a bad blur doesn't. That's why your parent comment asks what kind of blur they use. Edit: Turns out it's a 25px Gaussian blur. There's some downsampling beforehand, but not much, and no color discretization. In other words, they use a bad blur, but compensate with a large security margin. I wouldn't be surprised if this was vulnerable to "if I have a thousand photos of faces and I think one of them matches the blurred face, I can figure out which one with high confidence", and they can get basically the same aesthetic effect if they heavily pixelate and discretize colors before blurring. https://news.ycombinator.com/item?id=23415600 https://news.ycombinator.com/item?id=23415600
- bigiain 6y ago> "if I have a thousand photos of faces and I think one of them matches the blurred face, I can figure out which one with high confidence", Is that actually a practical attack here? I can see it working if you have 1000 passport photo or mugshot frames photos, and a blurred photo with the same level/front-on framing. But is there a practical attack for non direct-facing-camera blurred pictures? (Assuming the scale of "locals at a local protest" instead of "Find Edward Snowden's blurred face from any BLM protest, no matter what the cost!!!")
- laughinghan 6y agoGood point, I'd be surprised if lighting and orientation doesn't overwhelm all other information at this level of blur. But I've been surprised by impressive digital forensics before—what if you can determine lighting and orientation from the rest of the photo, and then simulate them on each passport photo/mugshot? I'd still feel much more comfortable if they pixelized and color-discretized before blurring, and I still think the aesthetic effect would be much the same.
- deleted 6y ago[deleted]
- have_faith 6y agoI've seen this sentiment mentioned quite a bit, but is it still true with the level of blur being shown in their example images? the blur level is extremely high to the point that it has essentially left behind a smooth gradient. Even with the algorithm known is there enough reversible information left?
- steerablesafe 6y agoWell, if you want to leave behind a smooth gradient, then leave behind a smooth gradient. Suggestion for an algorithm: * start with the blur * sample the four colors at the four corners of the blurred region * quantize them * fill in the region with bilinear interpolation. Then your whole region can only reveal these four quantized color values. If you only blur then you will have a harder time proving the leaked information content.
- bigiain 6y agoOr perhaps * detect (or get the user to select) faces * replace the pixels in the face bounding box with a generic face * blur the bounding box edges * do whatever blur you think ends up "looking nice"
- numlock86 6y agoIt's missing the step of detecting and applying detected skin tone to the generic face. Right now I can't imagine people being to happy about "generic white face blur", implying the generic face would be white.
- bigiain 6y agoI reckon all faces should de-blur into George Floyd's face... (From the examples in the Signal blog post, I don't think that grey gradient box is gonna be able to specifically imply white or POC faces...)
- samstave 6y ago
- dunefox 6y agoCitation needed.
- tomcooks 6y agoTrivial to test by deblurring and sharpening a blurred pic and passing it to, say, opencv
- thdrdt 6y ago2012: https://www.instantfundas.com/2012/10/how-to-unblur-out-of-focus-and-blurred.html https://www.instantfundas.com/2012/10/how-to-unblur-out-of-f... 2017: https://arxiv.org/pdf/1702.00783.pdf https://arxiv.org/pdf/1702.00783.pdf (Pixel Recursive Super Resolution) 2020: https://venturebeat.com/2020/01/22/researchers-use-ai-to-deblur-human-faces-in-photos/ https://venturebeat.com/2020/01/22/researchers-use-ai-to-deb... Edit: Most face recognition software works by down-sizing and blurring an image to faster detect face features. So in theory it is very easy to detect face features from a blurred image. A deblur tool can then use this information to better deblur a face.
- dunefox 6y agoYes, that works if the face itself is blurred, not if random noise is used in place of the face.
- laughinghan 6y agoThey're not using random noise in place of the face, they're using a 25px Gaussian blur: https://news.ycombinator.com/item?id=23415600 https://news.ycombinator.com/item?id=23415600
- dunefox 6y agoNice find. That is unfortunate then. I thought they'd make more effort.
- ulfw 6y agoImpressive examples. Thanks for posting them! So the ridiculous „Enhance!“ one sees in TV show crime dramas could one day actually become true.
- pfortuny 6y agoThey should simply explain what convolution they are using, and it would be easy to know.
- johnchristopher 6y agoI thought security through obscurity didn't work ^^. /s
- simias 6y agoI've been digging through the latest related commit in the repo: https://github.com/signalapp/Signal-Android/commits/master https://github.com/signalapp/Signal-Android/commits/master They appear to use "com.google.firebase:firebase-ml-vision-face-model:20.0.1" to detect the faces. The actual blur appears to be done here: https://github.com/signalapp/Signal-Android/blob/514048171bf6a3530fbdf48e9d51b3cc135f2783/app/src/main/java/org/thoughtcrime/securesms/scribbles/UriGlideRenderer.java#L226-L239 https://github.com/signalapp/Signal-Android/blob/514048171bf... Not sure what "ScriptIntrinsicBlur" stands for exactly, it appears to come from the android SDK itself: import android.renderscript.RenderScript; EDIT: https://developer.android.com/reference/kotlin/android/renderscript/ScriptIntrinsicBlur https://developer.android.com/reference/kotlin/android/rende... It's a gaussian blur filter with a radius of 25px if I understand the code correctly.
- pfortuny 6y agoOuch: gaussian blur might be invertible if you are not careful. That is why you need the explicit parameters of the convolution. Thanks for digging.
- greysonp 6y agoFWIW this was updated before release to also scale down the image before blurring it. We cut the size in half, or cap it to 300x300, whichever is smaller. This was to ensure that the effectiveness of the blur isn't reduced on higher-resolution images. https://github.com/signalapp/Signal-Android/blob/master/app/src/main/java/org/thoughtcrime/securesms/scribbles/UriGlideRenderer.java#L238 https://github.com/signalapp/Signal-Android/blob/master/app/...
- tripzilch 6y agoDoesn't seem to be that good: https://news.ycombinator.com/item?id=23422993 https://news.ycombinator.com/item?id=23422993 In fact it almost seems like the actual blur used in the app is different from what they show in the article.