代码下载地址:http://dde.binghamton.edu/download/feature_extractors/
Linux下载SRM.tar
并解压,Windows下载SRM.zip
(运行速度比较快),如果是为了研究过程可下载SRM.m
-
以Linux为例,解压后进入release文件夹,在终端运行
SRM
命令,自行修改stego和输出特征路径,然后在终端bash SRM_example.sh
运行 (只能处理pgm格式,头部不能有多余注释字段),这里可以自己写脚本实现批量处理Linux命令对于512*512的pgm灰度图处理比较慢,30多秒一张图,建议用Windows版本的
SRM.EXE
文件处理,速度大概4-5秒 -
使用python对提取出的特征进行组合(实现
SubmodelConcatenation
原matlab代码的功能)import pandas as pd import os train_path = r'/home/train/' test_path = r'/home/test/' all_train = pd.DataFrame() all_test = pd.DataFrame() for file in os.listdir(train_path): print(file) fea_train = pd.read_csv(train_path + file, header=None,delimiter=' ') fea_train = fea_train.iloc[:, :-1] # 去掉最后一列 all_train = pd.concat([all_train, fea_train], axis=1) all_train.to_csv('q1_stego_1024-train.csv', index=False) for file in os.listdir(test_path): fea_test = pd.read_csv(test_path + file, header=None,delimiter=' ') fea_test = fea_test.iloc[:, :-1] # 去掉最后一列 all_test = pd.concat([all_test, fea_test], axis=1) all_test.to_csv('q1_stego_1024-test.csv', index=False)
-
SRM.zip
解压后,有ensamble_training.m
和ensamble_test.m
两个文件。将上一步提取出的载体和含密图像特征分别输入ensamble_training.m
,进行训练。 -
训练好的模型和提取的SRM特征输入
ensamble_test.m
,给出分类结果result
% matlab代码 % 读取python组合好的特征 disp("1") cover_test = importdata('/home/q1_cover_1024-test.csv'); cover_test = single(cover_test); cover_test= cover_test(2:end,:); disp("2") cover_train = importdata('/home/q1_cover_1024-train.csv'); cover_train = single(cover_train); cover_train= cover_train(2:end,:); disp("3") stego_test = importdata('/home/q1_mean_stego_256-test.csv'); stego_test = single(stego_test); stego_test= stego_test(2:end,:); disp("4") stego_train = importdata('/home/q1_mean_stego_256-train.csv'); stego_train = single(stego_train); stego_train= stego_train(2:end,:); % disp(stego_train) % disp(stego_test) %% 开始训练 [trained_ensemble,~] = ensamble_training(cover_train,stego_train); %% 开始测试 results = ensemble_testing(stego_test,trained_ensemble); % 输出结果 disp(sum(results.predictions(results.predictions==-1)));
这是目前手中比较快的SRM使用方法,若有其他同学找到更快的方法,麻烦请告知我一下~
祝大家科研顺利,paper多多!