盲水印对抗探究
加盲水印的手法非常多,只能见招拆招,没法不变应万变。这里只是试图探究一下,可能的较通用的去除盲水印。
对于有效信息只有文字的场景而言:
比较彻底去除盲水印的方法便是:OCR识别后,再将识别后文本按原布局进行重建。
但这里也存在一些问题:
比方说中文OCR问题,使用什么工具进行OCR,像百度、阿里之类的OCR服务虽然正确率高,但这毫无疑问引入了新的风险点。比较靠谱的是本地使用 tesseract-ocr 进行识别,但代价是识别率较差,需要大量的人工纠错。
还有,文本自身也可以加入一些特征词以做为身份识别的水印,比方说在一些句子的句尾,额外添加“了”这类不改变文本含意的虚词。对于这类文本特征词的水印,只能通过足够样本的文本比对来发现与去除。
上面所说的OCR识别+重建,虽然不失为一种较彻底去除盲水印的方法,但好像还没有比较好用的开源解决方案,需要人力做的工作还是比较多。
对于大多数的情况,可以直接将截图文本进行二值化,这样可以大大提高处理效率。
比方说,本次豆瓣的盲水印,截图之后进行二值化,水印要么当场暴露,要么就直接被去除。
但二值化也有其局限性,除了上述的文本特征词水印之外,直接二值化还可能遭受来自字体的盲水印。
所谓字体盲水印,即显示输出时,对于根据查看者不同,微调部分文字的字体。
上面所述都是有效信息只有文字的情况,但如果有效信息中含有图片,尤其是彩图,这又该如何办?
这真的没有什么太好的办法,图片的冗余信息太多,加水印的方法也是多种多样。
https://stgod.com/1482/
https://ulyc.github.io/2019/03/15/%E7%9B%B2%E6%B0%B4%E5%8D%B0%E5%92%8C%E5%9B%BE%E7%89%87%E9%9A%90%E5%86%99%E6%9C%AF/
屏摄对于一部分图片盲水印,还是可以起到去除效果,当然代价是图片质量。