热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端在图片上展示数字_数字水印技术在前端落地的思考[0]概念篇

系列之路:数字水印技术在前端落地的思考[0]-概念篇数字水印技术在前端落地的思考[1]-方案篇引子少说硕士毕业了也已经三年多了,遥想6年前进入到研究领域
7ce76cf6311af8871f6b802aab320cbd.png

系列之路:

  1. 数字水印技术在前端落地的思考[0] - 概念篇
  2. 数字水印技术在前端落地的思考[1] - 方案篇

引子

少说硕士毕业了也已经三年多了,遥想6年前进入到研究领域学习,在当时数据挖掘、人工智能等技术领域林立的背景下,全班只有我一人毅然选择了这个比较偏门的技术领域去研究,只能说自己是够硬气的,至于选择数字水印研究的原因,在文末再以小彩蛋的形式写一下吧,引子不宜太长。

关于这个系列

关于这个文章系列,其实我更希望把着重点放在“前端”上,想通过整理思考,看看能不能把这样的一门技术放到我们的前端中去,因此下面几个section我会简单地介绍一下什么是数字水印,然后就会开始对前端加入数字水印的可行性方案进行猜想。

什么是水印

水印技术其实是历史悠久的技术了,早在宋朝时期的交子上就已经有显性水印的出现,而这门技术现在更是深入我们的生活每个角落,不说远的,可以看到我们的红色毛爷爷身上也是有着美丽的水印存在。

那么水印有什么作用呢?主要作用就是标记版权和检测版权(辨认真伪),这两个作用其实也是一个功能。

eff4734fcf69fa696a1e0b09549909cb.png

显性水印的优点在于容易处理,显性水印的嵌入相当于在载体层上再加一层水印层来达到标记水印的目的,有点PS基础的人都会怎么去加水印,相当简单。缺点在于它是每个人都可视的,攻击者就可以通过裁剪、模糊等操作对水印进行攻击消除,同时显性水印也会破坏图片的完整性。

什么是数字水印

上面一个section中,有两个关键词,“显性”和“看到”,这就说明原有的显性水印技术其实是我们肉眼可见,可以直接在载体上看得到的。针对其优缺点,在1995年一位xx教授(这个实在忘了,大大不好意思)就提出了一个崭新的水印技术,数字水印。

数字水印核心概念就在于“数字”两个字,对载体和水印分别做数字化处理,然后在空间域或者频域通过特定的算法将水印数据加入到载体数据中,同时保证不会破坏载体的完整性,提高抗攻击能力(衡量值是鲁棒性)。

有点抽象对不对?这里举个简单的例子。

PS: 为了更易懂,我就用了一个非常非常简单,性能上却是很差的算法来做讲解,大家领会核心就好。

嵌入水印步骤

  1. 先预处理载体和水印对象(图片)
496cfcb69adb1a11976c9aa104cf65ac.png

假设我们有一张灰色的刘德华图片,将它的每一个像素转换成一个灰度值,得到一个灰度值矩阵,然后再把每个灰度值转成二进制,全部合并一起以后就得到一个二进制序列。(当然并非所有水印算法都是按照这套,像我有的算法就是在灰度矩阵就能进行嵌入)

对水印图像进行同样的预处理

2. 特定算法嵌入数据

这个就是各家发挥想象,通过自己研究的算法把水印图像数据嵌入到载体图像数据中。例如,这里讲一个简单的空间域(大部分算法分为空间域嵌入或频域嵌入)算法,假设我们的水印图像是32x32的大小,那么序列数据长度就是8 x 32 x 32 = 8192,那么我们就在载体图像序列中每隔四个位的那个位就对水印序列的一个位进行异或处理:

bb030be02b4d77521aa7779da4502224.png

当然了,选择插入位置其实也是一个可以研究的算法,这里就按最简单的来。通过这样简单的操作,水印数据就嵌入到载体数据中了(当然,这个简陋的异或处理对原有图像的完整度也是破坏甚高的,如何在嵌入的时候保证完整度是其中一个研究点)。

3. 逆处理

跟步骤1相反,把最后得到的序列按八位转换为灰度值,然后再输出为一张图片。那么这张图片就是嵌入了水印的图片了。

水印检测步骤

有嵌入,就当然要有提取和检测,要判断这张图片中是不是有我们的水印在里面。在说步骤之前,有两个概念要分清:

  1. 盲水印算法:盲水印并不是概括地指数字水印技术,实际上它是数字水印中的一种,意思就是在水印提取/检测的阶段中,不需要原有的图片或者原有的水印图片参与的算法,就叫做盲水印算法。
  2. 非盲水印算法:顾名思义,非盲水印就是在提取/检测的阶段中,需要原有的图片或者原有的水印图片参与的算法,就是非盲水印算法。

可以看得出,我们例子的算法是非盲水印算法,需要拿原有的图片进行比对才能得出我们的水印图像。

  1. 预处理

跟嵌入步骤一样,分别对已嵌入水印的图片和原有的图片进行预处理,得到两个二进制序列。

2. 选择嵌入位进行逆算法

我们的选块算法是:每隔四个位的那个位就是我们的嵌入位,嵌入算法是:异或算法。

e545eed7ef322fad301ab060ce9b9ed5.png

那么如上图,我们就能得出我们的水印二进制序列。

3. 逆处理

把水印二进制序列进行逆处理,看看能不能得到我们之前嵌入的水印图片?

几个关于数字水印需要知道的点

  1. 有人说,不截图用手机拍照不就可以了吗?这是大错特错,数字水印嵌入载体对象以后,实际上就是载体对象的一部分,通过手机拍照可以看到图片的一切都能够用算法把水印提取出来,例如我们电影院的电影,实际上就是嵌入了数字水印,如果盗摄的话是可以查到盗摄来源的。
  2. 裁切可以破坏水印吗?抵抗攻击能力中就包含裁切,模糊等攻击,目前绝大部分的水印算法都有能力抗拒这些攻击。

数字水印能带给前端什么

终于把数字水印的概念用了最简单的方式讲述了一遍,后面关于数字水印的算法将只会一笔带过(或者其他系列再细谈),我会把着重点放回到前端上。

那么,在前端领域上我们为什么会需要数字水印呢?或者说在什么场景下我们可以用到数字水印呢?

阿里巴巴公司根据截图查到泄露信息的具体员工的技术是什么?​www.zhihu.com
b842b371db1fecd72a19d9851fc2ed43.png

这个经典的案例就是其中一个使用场景,把当前用户的数据加入到水印中再嵌入到前端页面,那么当这个用户对当前屏幕截屏或者拍照的时候,就会把水印信息也截取了下来,之后在网上看到这张图片的时候就能追溯源头了。

总结

第一篇就主要讲一下数字水印的基本概念和数字水印可以在前端怎么应用,下一篇就开始来研究下可行的方案和优缺点。

谢谢观看!

======= 小彩蛋 =======

为什么我当初会选择数字水印领域?

起源是我刚开始读硕的时候看到一篇新闻,一个摄影师控告某个公司盗用自己的摄影作品,但是却无法证明作品是自己拍的。。这就有点证明不了自己是自己的感觉了。。因此当时就想把这门技术落地,做成云服务,那么以后作品的拥有者就能通过服务来添加他们的独有水印,然后当需要认证的时候就可能有证据证明这是属于他们的作品了。当然,不是免费的,0.1元嵌入一张的话,利润都是相当可观的,但是当时跟两个投资人谈过,他们的兴趣都不大。。所以最后只能不了了之了哈哈哈。



推荐阅读
  • 深度学习与神经网络——邱锡鹏
    深度学习与神经网络——邱锡鹏-一、绪论人工智能的一个子领域神经网络:一种以(人工))神经元为基本单元的模型深度学习:一类机器学习问题,主要解决贡献度分配问题知识结构:路线图:顶 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 分享篇:第十届“泰迪杯”数据挖掘挑战赛农田害虫图像识别(特等奖)一
    1.1赛题背景昆虫的种类浩如烟海,农田常见的昆虫是人工生态系统的重要组成部分。分辨益虫和害虫,保留益虫,消灭害虫,对于减轻害 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 硬科技投资时代,投资者们该如何抉择?
    随着越来越多符合国家战略、市场认可度高、突破关键核心技术的科技创新型企业挂牌上市,硬科技投资越来越热。华夏中证科创创业50ETF联接基金的开售为投资者提供了新的选择。硬科技的发展有助于突破“卡脖子”技术、实现进口替代,以及推动产业升级。在硬科技投资时代,投资者们应该如何抉择? ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 老牌医药收割AI红利:先投个15亿美元抢中国人才
    萧箫发自凹非寺量子位报道|公众号QbitAI没想到,一场大会把我的“刻板印象”攻破了。2021世界人工智能大会现场,能看见不少熟悉的身影, ... [详细]
  • PRML读书会第十四章 Combining Models(committees,Boosting,AdaBoost,决策树,条件混合模型)...
    主讲人网神(新浪微博:豆角茄子麻酱凉面)网神(66707180)18:57:18大家好,今天我们讲一下第14章combiningmodel ... [详细]
  • 地产科技战:10+
    作者|肖漫出品|雷锋网产业组一场房地产巨头的求变征战,正悄然开启。近年来,在限价限购、“房住不炒”以及三道红线的调控政策下,房地产企业竞相加快转型升级的步伐。一方面,房地产市场增量 ... [详细]
  • 一份来自清华的数据分析笔记,请查收!
    之前发过很多数据分析的文章,收到不少好评,但也有一些困惑:入门数据分析该学哪些知识点?该看哪些书?是从Pyth ... [详细]
  • 数据挖掘研讨课结束了,这门课的考核方法是每个同学根据班里面同学的课堂表现打分,然后老师再取截断平均值作为最后的分数。于是我就想,能否用p ... [详细]
  • bat大牛带你深度剖析android 十大开源框架_请收好!5大领域,21个必知的机器学习开源工具...
    全文共3744字,预计学习时长7分钟本文将介绍21个你可能没使用过的机器学习开源工具。每个开源工具都为数据科学家处理数据库提供了不同角度。本文将重点介绍五种机器学习的 ... [详细]
author-avatar
别禳莴觞芯_737
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有