相机源取证
实验目的:
-
掌握matlab的基本使用;
-
掌握相机指纹的生成;
-
掌握ROC曲线的生成;
实验要求:
-
用均值滤波提取模式噪声与相机指纹,并画出此方法的ROC曲线;
-
分别用高斯滤波,中值滤波,导向滤波提取模式噪声,并分别画出ROC曲线,比较每种方法的优劣;
-
用高斯滤波提取模式噪声并用最大似然估计求相机指纹,画出ROC曲线,比较平均求指纹与最大似然估计求指纹算法的优劣;
实验环境
- Windows10操作系统、安装好matlab2018版
- 需要的文件:SeeProgress.m、rgb2gray1.m等
实验步骤
- 打开matlab软件,进入实验文件所在的位置:C:\Users\25346\Desktop\多媒体\实验1.相机源取证;
- 点击matlab的主页按钮,在环境选项中点击设置路径,将实验包中的所有文件导入到当前文件夹中,方法如下:点击设置路径->添加并包含子文件夹->返回上一级菜单->选中实验1.相机源取证->选择文件夹->保存;
- 打开CSItest_average文件用于生成ROC曲线、打开FPcreat_average文件用于生成相机指纹、打开getFingerprint_average用于修改生成相机指纹的方法;修改代码生成对应的相机指纹,其中最主要修改的有getFingerprint_average中代码行中的文件地址(如:C:\Users\25346\Desktop\多媒体\实验1.相机源取证\nikond200\flat c0*.jpg)
- (1) 利用上述(3)的方法生成nikond200品牌的两个相机C0C1的相机指纹,在使用CSItest_average文件生成对应四个相机均值滤波综合的ROC曲线,(其中需要注意的有:用nikongdc0的20个正样本和nikondc1的20ge负样本、olympusc0的20个负样本、olympusc1的20个负样本生成80个,同理nikongdc1、olympusc0、olympusc1各生成80个样本即总共320个样本),最后使用plot_roc( C’, groundtruth )函数生成ROC曲线;
- 至此完成实验要求1;
- 用高斯滤波生成相机指纹的方法:将getFingerprint_average函数中的h变量改为h==fspecial(‘gaussian’)即可;用中值滤波生成相机指纹的方法:将变量Ixfiltered改为Ixfiltered=medfilt2(Ix,i[3 , 3],‘symmetric’);用导向滤波生成相机指纹的方法:将变量Ixfiltered改为Ixfiltered=imguidedfilter(Ix);
- 将6中生成的12个相机指纹按照高斯滤波函数、中值滤波函数、导向滤波函数分别形成ROC曲线;其方法和(4)中相似只需要改一下对应的相机指纹即可;
- 至此完成实验要求2;
- 将getFingerprint_average函数的模式改为高斯函数的方式求模式噪声,用最大似然估计方式求相机指纹,其方法为:将NN{j}=zeros(M,N,‘single’)的注释去掉、将ImNoise = Ix - Ixfiltered的注释去掉、将bigindex = find(abs(ImNoise(😃)>5);的注释去掉、将ImNoise(bigindex) = 25./ImNoise(bigindex)的注释去掉、将RPsum{j} = RPsum{j}+ImNoise.*Ix的注释去掉(Inten改为Ix);将NN{j} = NN{j} + Ix.^2的注释去掉(Inten改为Ix)、将RPsum{j} = RPsum{j}+ImNoise.*X(:,:,j)注释加上、将RP = cat(3,RPsum{1}./(NN{1}+1),RPsum{2}./(NN{2}+1),RPsum{3}./(NN{3}+1))的注释去掉、将RP = cat(3,RPsum{1}./database_size,RPsum{2}./database_size,RPsum{3}./database_size)的注释加上;
- 使用(9)中的getFingerprint_average函数和FPcreat_average文件生成使用高斯滤波和最大似然估计的方法生成四个相机的相机指纹,在用这些指纹生成对应的ROC曲线;
- 至此实验要求3完成;
实验结果
- 1.均值滤波的四个相机指纹+高斯滤波的四个相机指纹+中值滤波的四个相机指纹+导向滤波的四个相机指纹+高斯滤波和最大似然估计的四个相机指纹=20个相机指纹:
- 2.均值滤波的ROC曲线:
-- 3.高斯滤波的ROC曲线:
- 4.中值滤波的ROC曲线:
-- 5.导向滤波的ROC曲线:
- 6.高斯滤波和最大似然的ROC曲线:
实验结论
- 注意的问题:
-
a、严格按照实验步骤来做; b、出现最多的问题是不要一边运行调试一边改代码,这样修改的代码不会运行,运行的还是之前没有修改的代码; c、每个对应的路径注意有没有填写错误,还有文件名称有没有填写正确; d、生成对应的相机指纹需要修改保存的名字,不要直接重新覆盖;
- 比较高斯滤波、中值滤波、导向滤波的优劣:高斯滤波>导向滤波>中值滤波,其原因是因为同样横坐标为0时高斯滤波的纵坐标最接近于1,导向滤波次之,中值滤波最远离与1;
滤波>导向滤波>中值滤波,其原因是因为同样横坐标为0时高斯滤波的纵坐标最接近于1,导向滤波次之,中值滤波最远离与1; - 比较平均求指纹与最大似然估计求指纹算法的优劣:平均求指纹>最大似然估计,其原因为接近于1的速度时平均求知指纹的速度比最大似然估计求指纹的速度快。