0


2022 年中国高校大数据挑战赛B题思路

题目

互联网的快速发展,给图像、视频的传播方式带来巨大变化。图像作为媒体的重要载体,每天有大量的原创图像公开在互联网上,如何保护图像版权的同时不破坏原始的图像一直是图像处理方向的研究热点。
在这里插入图片描述

近年来,图像水印算法逐渐成为保护图像版权的重要手段。一般的图像水印算法分为嵌入算法和提取算法。图 1 展示了图像水印算法的基本架构。黄色部分代表嵌入算法,将具有可辨识的信息(Alice)融合到需要保护的图像(Image)中,得到嵌入信息的图像(Image’)。与此同时,嵌入算法不对保护图像造成大的影响。从人类视觉角度无法分辨Image与Image’之间的差别。蓝色部分为水印提取算法,其作用是在发生版权纠纷时能通过算法提取出嵌入的信息(Alice),从而确定图像的版权归属。

附件 1 训练样本中包含 images_original和image_message两个文件夹,还有嵌入的信息列表保存在message.txt中。为了简化问题,每张image_message图片中只嵌入 26 + 26 + 10 = 62 个(az,AZ,0~9)字符中的一个字符。分别提供了9950 张图片和对应的标签信息,请你查阅相关文献,回答以下问题

问题

问题 1:图像信息隐藏算法的图像质量评价指标很多,其中影响视觉效果的指标具有不可见性,可用来衡量嵌入水印的图像与原始图像之间的差异性。现请你根据附件 1 中的数据,使用多种图像质量评价指标说明原始图像与嵌入水印之后图像之间的差别,并使用合适的统计方法说明差别图像之间至少 3 种共同的特征。参考图 2 的方式展示,论文中仅需要展示“im100067. jpg” 和“im10234.两张图像的差别图像
在这里插入图片描述
在这里插入图片描述

数字安全基本概念

密码技术主要是研究如何将机密信息进行特殊的编码,以形成不可识别的密码形式 (密文)进行传递;而信息隐藏则主要研究如何将某一机密信息秘密隐藏于另一公开的信息(载体)中,然后通过公开信息的传输来传递机密信息。对加密通信而言,可能的监测者或非法拦截者可通过截取密文,并对其进行破译,或将密文进行破坏后再发送,从而影响机密信息的安全;但对信息隐藏而言,可能的监测者或非法拦截者则难以从公开信息中判断机密信息是否存在,难以截获机密信息,从而能保证机密信息的安全。
在这里插入图片描述
可用模型:
在这里插入图片描述
专业词汇:

  • 原始载体:专指待嵌入秘密信息的原始载体数据。
  • 嵌入:通常指通过修改载体数据的方式将秘密信息隐藏到公开载体中的行为或过程。
  • 掩密载体:也称含密载体,专指嵌入秘密信息后的载体数据
  • 提取:指从掩密载体中提取事先所隐藏的秘密信息的行为或过程

应用

  • 版权保护水印
  • 内容认证水印

典型数字水印系统模型
在这里插入图片描述

数字图像处理-数字水印的嵌入与提取问题。相关算法:LSB、Patchwork、扩频水印、QIM、.Jsteg水印、F3、 F4、Wong脆弱水印算法、直方图可逆
在这里插入图片描述
参考:

图像评价指标

根据评价的标准是依据人的主观观察还是客观标准分为

  • 主观评价指标
  • 客观评价指标

客观评价通常借由一些特定的指标进行,如PSNR(峰值信噪比)和SSIM(结构相似性)等,下面列举我知道的指标。

可以用于度量的指标:

  • 均方误差 mse
  • PSNR(峰值信噪比)
  • SSIM(结构相似性)
  • IFC、NQM 、WPSNR 、MSSSIM、SSIM 、 UIQI 、VIF

相关原理:
MSE(Mean Square Error)
在这里插入图片描述
MAE(Mean Absolute Error)
在这里插入图片描述
SNR(Signal to Noise Ratio)
在这里插入图片描述
里的x指的是原始图像,x上面有一个符号的表示的是处理之后的图像

PSNR(Peak-Signal to Noise Ratio)
在这里插入图片描述
PSNR与MSE都是通过计算待评图像与参考图像之间像素误差的全局大小来衡量图像质量好坏的。PSNR值越大,表明待评图像与参考图像之间的失真较小,图像质量较好。而MSE的值越小,表明图像质量越好。这两种方法比较简单,且容易实现,在图像去噪等方面受到广泛应用。但这类算法是从图像像素值的全局统计出发,未考虑人眼的局部视觉因素,所以对于图像局部质量无从把握。

信息保真度准则(Information Fidelity Criterion,IFC)和视觉信息保真度(Visual Information Fidelity,VIF)两种算法。它们通过计算待评图像与参考图像之间的互信息来衡量待评图像的质量优劣。这两种方法具有一定的理论支撑,在信息保真度上拓展了图像与人眼之间的联系,但是这类方法对于图像的结构信息没有反应。
参考代码:

思路

第一问
1、图像差分求差值,简单是就是减法
2、图像差异性指标,很多,有全局指标,也有局部指标,几十个也有,考虑问题2的需求,其实不是提出图像差异性指标,而是针对差分图像构造特征描述子
3、将特征描述子作为问题2的输入变量

第二问:
问题2就是一个简单的机器学习问题,用什么方法都很好解决。换句话说,差分图像虽然肉眼不容易观察到什么,但用于有标签,其实把差分图像当作手写字符,问题2就是一个手写字符识别问题。
对于这种问题,初学者直接用图像的像素值作为机器学习的输入,输入数量太大,训练效果较差。建议对图像进行变换,就是构造特征描述子,例如HOG描述子,作为输入,则训练很好。

第三问:
问题3要求先判断是否嵌入信息,这是二分类问题。基于问题1找到的特征,可以用机器学习,也可能用聚类或最近邻就可以解决了。

具体代码

看情况在写。A题已经写完了,想做A可以去看另一篇文章。

相关计算,建议使用:scikit-image 模块,这里面基本都封装了图像处理和指标计算。例如第一问计算PSNR和SSIM这两个指标,对im10234.jpg图片进行计算:

from skimage.metrics import structural_similarity as compare_ssim
from skimage.metrics import peak_signal_noise_ratio as  compare_psnr
import cv2
import numpy as np

img = cv2.imread('image_original\im10234.jpg')
imgu = cv2.imread('image_message\im10234.jpg')

psnr =compare_psnr(img, imgu)
ssim =compare_ssim(img, imgu, multichannel=True)  # 对于多通道图像(RGB、HSV等)关键词multichannel要设置为True

print('PSNR:{},SSIM:{}'.format(psnr,ssim))

得到结果如下:

PSNR:26.563155291845607,SSIM:0.8478443065194647

图像做相差:

import cv2
import numpy as np

img = cv2.imread('image_original\im10234.jpg')
imgu = cv2.imread('image_message\im10234.jpg')print(img.shape ,imgu.shape)

err = cv2.absdiff(img,imgu)     #差值的绝对值
err1 = np.abs(img - imgu)               #差值
errdiff =err-err1
print(errdiff.mean())

cv2.imshow('img',img)
cv2.imshow('imgu',imgu)
cv2.imshow('err',err)
cv2.waitKey()
cv2.destroyAllWindows()

得到如下:(自己运行查看,截图看不出)
在这里插入图片描述
图像方面我自己懂的也不多,不打算写代码了,我只学过理论~


本文转载自: https://blog.csdn.net/weixin_46211269/article/details/127557390
版权归原作者 川川菜鸟 所有, 如有侵权,请联系我们删除。

“2022 年中国高校大数据挑战赛B题思路”的评论:

还没有评论