0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

对水印各种处理显得越来越重要 比如水印的检测和去除与反去除

电子工程师 来源:yxw 2019-05-24 10:30 次阅读

水印作为一种保护版权的有效方式被广泛地应用于海量的互联网图像,针对水印的各种处理显得越来越重要,比如水印的检测和水印的去除与反去除。在这里我们和大家分享一下业余期间在水印智能化处理上的一些实践和探索,希望可以帮助大家在更好地做到对他人图像版权保护的同时,也能更好地防止自己的图像被他人滥用。

我们大家在日常生活中如果下载和使用了带有水印的互联网图像,往往既不美观也可能会构成侵权。为了避免使用带有水印的图像带来的各种影响,最直接的做法就是将带有水印的图像找出来丢弃不用,此外还有一种不推荐的做法就是去掉图像上的水印后再使用。

接下来我们将会围绕上述两种大家常见的做法展开,首先介绍如何利用深度学习技术快速搭建一个水印检测器,实现水印的自动检测,同时我们还会进一步展示在水印检测的基础上如何利用深度学习技术设计一个水印去除器,自动将图像上的水印去除。

一个包罗万象的水印数据集

无论是搭建水印检测器或是水印去除器,都需要海量水印图像作为数据基础。然而现实中并没有直接可以使用的水印图像数据集。因此,我们的首要任务是构建一个水印图像数据集。首先我们要收集各式各样的水印,为了保证后续模型良好的泛化性能,水印的种类要尽可能的多,水印样式也要尽可能的丰富。

我们一共收集了80种来自于公司、组织和个人的水印,包括了中文、英文和logo等不同样式。接下来就是制作带水印的图像,为了保证图像数据的一般性,我们将公开的PASCAL VOC 2012数据集的图像作为原始的无水印图像,然后利用图像处理工具将收集的80种水印以随机的大小、位置和透明度打在原始图像上,同时记录下水印的位置信息,从而得到第一个大规模的水印图像数据集。

水印数据集的80%被划分为训练集,剩余的20%被划分为测试集,为了适应现实场景中需要机器自动检测和去除从未见过的水印的需求,我们确保训练集中的水印不会出现在测试集中,这样可以很好地模拟现实生活中的使用场景。现在水印图像数据集已经准备就绪,接下来就是如何去搭建水印检测器和去除器。

能够一眼看穿各类水印的检测器

水印在图像中的视觉显著性很低,具有面积小,颜色浅,透明度高等特点,带水印图像与未带水印图像之间的差异往往很小,区分度较低。为了构建一个有效的水印检测器,我们将图像水印检测问题转化为一种特殊的单目标检测任务,即判断图像中是否有水印这一单目标存在。

当前基于深度学习的目标检测模型有很多,可以分为以Faster R-CNN为代表的两阶段目标检测算法和以YOLO和RetinaNet等为代表的单阶段目标检测算法。前者是先由算法生成一系列待检测目标的候选框,再通过卷积神经网络进行候选框的分类;后者则不用产生候选框,直接将目标边框定位的问题转化为回归问题处理。一般来说单阶段的算法在检测速度上会更快,但检测精度上会有所下降。我们在这里分别基于Faster R-CNN、YOLOv2和RetinaNet这三种目标检测算法来搭建水印检测器,从对比的结果来看,三种方法都展现了令人满意的检测效果,其中以RetinaNet最优。

为了更加直观地展示我们搭建的基于RetinaNet的水印检测器的效果,我们将测试集上的水印检测结果可视化,蓝色的框是实际的水印区域,红色的框是检测器定位的水印区域,从可视化结果可以看出,对于未出现在训练集中的水印,我们的水印检测器依然可以一眼就看穿。有了这样一款水印检测器,我们就可以在海量图像中快速又准确地检测出带水印的图像。

往前走一步:从检测到去除

如果只是利用AI来自动检测水印,是不是总感觉少了点什么?接下来我们在水印检测的基础上往前再走一步,利用AI实现水印的自动去除。因为水印在图像上的面积较小,所以直接对整幅图像进行水印去除显得过于粗暴,也会严重拖慢去除速度。针对这种情况我们结合水印检测设计了更贴合实际操作的水印处理流程,我们先通过水印检测器检测出水印区域,然后对水印区域进行水印去除操作。

水印去除问题可以看作是一个从图像到图像的转换问题,即将带水印的图像转换为无水印的图像。这里我们使用全卷积网络来搭建水印去除器,实现这种图像到图像的转换。全卷积网络的输入是带水印的图像区域,经过多层卷积处理后输出无水印的图像区域,我们希望网络输出的无水印图像能够和原始的无水印图像尽可能的接近。

为了尽可能提升网络输出无水印图像的质量,我们采用U-net结构替换了传统的编解码器结构,将输入信息添加到输出中,从而尽可能保留了图像的背景信息。同时我们采用感知损失(Perceptual Loss)和一范数损失(L1 Loss)相结合的方式替换传统的均方误差损失(MSE Loss),使输出的无水印图像在细节和纹理上能够更贴近原图。

我们将水印去除器在测试集上的一些去水印效果可视化,左列是输入的水印区域,右列是输出的无水印区域。从可视化的结果可以看出对未知水印的去除效果还是不错的。

写在最后

针对水印的各种处理一直是研究的热点,也吸引了越来越多的关注。本文介绍了如何通过当前流行的深度学习技术来搭建水印的检测器和去除器,实现对水印的智能处理。

在后续的文章中,我们会进一步介绍一种更强大的水印去除器,也会提出一些对水印反去除的思考。值得注意的是,版权保护是大家一直要坚持的事情,水印去除的研究目的更多是为了通过攻击水印来验证其是否有效,从而促进水印反去除能力的提升。保护版权,AI有责。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 互联网
    +关注

    关注

    54

    文章

    10906

    浏览量

    100742
  • 水印
    +关注

    关注

    0

    文章

    26

    浏览量

    11583
  • AI
    AI
    +关注

    关注

    87

    文章

    26443

    浏览量

    264044

原文标题:AI技术在图像水印处理中的应用

文章出处:【微信号:TheBigData1024,微信公众号:人工智能与大数据技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式会越来越卷吗?

    以及大数据处理等技术之间的整合与互动可能会越来越密切。这种融合或许会带来更强大的系统和更广泛的应用,但也会带来新的挑战,如数据安全性和系统稳定性等问题。 嵌入式系统的“卷”涵盖了技术、应用和发展等多方面
    发表于 03-18 16:41

    IC datasheet为什么越来越薄了?

    刚毕业的时候IC spec动则三四百页甚至一千页,这种设置和使用方法很详尽,但是这几年IC datasheet为什么越来越薄了,还分成了IC功能介绍、code设置、工厂量产等等规格书,很多东西都藏着掖着,想了解个IC什么东西都要发邮件给供应商,大家有知道这事为什么的吗?
    发表于 03-06 13:55

    电脑必装的6款Windows神器

    你可以随意去除水印,瑕疵,还可以选中去除的区域(路人甲,人物),处理后自动擦除,自动根据周边的区域自动修复,看起来好像真的一样。
    的头像 发表于 12-13 10:27 198次阅读
    电脑必装的6款Windows神器

    PCB设计有必要去除死铜吗?

    一站式PCBA智造厂家今天为大家讲讲PCB设计要不要去除死铜?PCB设计去除死铜的必要性。PCB死铜也叫PCB孤岛,是指在PCB中孤立无连接的铜箔,一般都是在铺铜时产生,那 PCB设计 中是否应该去除
    的头像 发表于 11-29 09:06 587次阅读
    PCB设计有必要<b class='flag-5'>去除</b>死铜吗?

    python去除list中重复的数据

    Python是一个强大的编程语言,提供了许多解决问题的方法和功能。其中一个常见的问题是如何去除列表中的重复数据。在本文中,我们将详细介绍Python中去除列表中重复数据的几种方法,包括使用循环
    的头像 发表于 11-21 15:49 366次阅读

    谷歌DeepMind推出人耳无法察觉的AI音频水印技术SynthID

    像synthid这样的水印工具是针对生成ai造成的特定损害的重要保护装置。例如,美国总统拜登在人工智能行政命令中要求制定政府主导的人工智能生成内容水印标准。虽然是很有希望的领域,但目前的技术与防止伪造的万能解决对策相距甚远。
    的头像 发表于 11-21 11:10 420次阅读

    FPGA和CPU、GPU有什么区别?为什么越来越重要

    使得算力要求愈 发偏向高并行而不是高串行。CPU 越来越难以胜任高算力的场景,,将需要大规模、高密度的计算任务卸载 到在某一方向做了优化的专用处理器,就产生了这些不同的“X”PU,他们之间区别在于在
    发表于 11-09 14:09

    在PCB设计中,是否应该去除死铜(孤岛)呢?

    导致一些负面的效应,比如影响信号传输和增加电路噪音。 因此,在设计PCB时,是否应该去除孤岛是一个备受争议的问题。下面我们将从几个方面来探讨这个问题。 1. 芯片引脚数量 首先,孤岛存在的影响与芯片引脚数量有关。如果芯片引脚数量较少,
    的头像 发表于 10-31 14:43 1125次阅读

    java如何处理图片水印

    在项目中经常有需要在图片上添加水印的需求以及在某些场合下需要身份证图片,这时就可以对身份证上加水印防止被用于其他用途,java 在处理图片水印时不需要额外的第三方包,使用 Buffer
    的头像 发表于 10-09 16:21 475次阅读

    为什么智能手表的气密性检测仪变得越来越重要

    智能手表已经成为我们日常生活中不可或缺的一部分,它们不仅提供了许多实用的功能,如健康跟踪、消息通知、电话、支付等,而且在设计上也越来越时尚。然而,这种设备的复杂性和它们所暴露在的环境(水分、尘土等)使得它们更容易受到损坏。这就是为什么智能手表的气密性检测仪变得
    的头像 发表于 08-21 15:48 467次阅读

    浅析基于差分扩展的可逆水印算法

    数字水印已经逐渐成为了一种有效的版权保护手段,它通过嵌入几乎不可感知的水印信号到图像、音频、视频数据中来保护这些媒体文件的版权不被非法利用、来认证来源或者增强其价值。
    的头像 发表于 08-09 11:33 557次阅读
    浅析基于差分扩展的可逆<b class='flag-5'>水印</b>算法

    PCB设计中是否应该去除死铜

    在PCB设计中,框选加铜,会在线与线之间出现死铜(孤岛)?是否应该去除死铜(孤岛)呢?
    的头像 发表于 06-20 15:37 755次阅读
    PCB设计中是否应该<b class='flag-5'>去除</b>死铜

    为什么需要去除高精地图?

    所以城市 NOA 短期小范围推送尚且可以使用高精地图, 但是长期来看,想要更快推广,或者降低成本从智能驾驶部分获得正向现金流的话,去除高精地图势在必行。
    的头像 发表于 06-19 15:49 643次阅读
    为什么需要<b class='flag-5'>去除</b>高精地图?

    Zecurion屏幕水印和屏幕照片探测器

    安全人员可以在某些窗口(例如,MSOffice、CRM等)上设置带有用户名、PC和日期的水印。屏幕截图最初将显示所有信息,何时以及由谁创建的。这个功能会让用户重新考虑下一步的行动。
    的头像 发表于 06-11 15:55 419次阅读
    Zecurion屏幕<b class='flag-5'>水印</b>和屏幕照片探测器

    为什么FPGA在原型验证中越来越重要

    升级。与此同时,随着芯片制造工艺越来越先进,芯片设计的复杂度呈指数级增长。这种近乎矛盾的发展趋势让芯片设计公司面临着巨大的创新压力,同时先进工艺高昂的量产成本进一步增加了企业的经营风险。
    的头像 发表于 05-18 10:34 1003次阅读
    为什么FPGA在原型验证中<b class='flag-5'>越来越重要</b>