1 简介
Distortion is often considered as an unfavorable factor in most image analysis. However, it is undeniable that the distortion reflects the intrinsic property of the lens, especially, the extreme wide-angle lens, which has a significant distortion. In this paper, we discuss how explicitly employing the distortion cues can detect the forgery object in distortion image and make the following contributions:
1) a radial distortion projection model is adopted to simplify the traditional captured ray-based models, where the straight world line is projected into a great circle on the viewing sphere;
2) two bottom-up cues based on distortion constraint are provided to discriminate the authentication of the line in the image;
3) a fake saliency map is used to maximum fake detection density, and based on the fake saliency map, an energy function is provided to achieve the pixel-level forgery object via graph cut. Experimental results on simulated data and real images demonstrate the performances of our method.
2 部分代码
% Demo for "Forgery Authentication in Extreme Wide-angle Lens Using Distortion Cue and Fake Saliency Map"
close all; clear; clc;
% Read data
savefile = 'ForensicImage/PSTest-5';
orgimage = imread(strcat(savefile,'.jpg'));
load(strcat(savefile,'.mat'));
figure,subplot(131);imshow(orgimage);title('Forgery image');
% compute the measure cue
K_value=line_number:4;
fake_saliency=zeros(size(orgimage,1),size(orgimage,2),'uint8');
Grave_Point_x=0;
Grave_Point_y=0;
Grave_K=0;
for i=1:line_number
% the distance cue
K_value(i,1)=Distance_inv(Points(((1+(i-1)*3):(3+(i-1)*3)),:),fish_x,fish_y,fish_r,1);
% the volume cue
K_value(i,2)=Volume_inv(Points(((1+(i-1)*3):(3+(i-1)*3)),:),fish_x,fish_y,fish_r,1);
% the combine cue
K_value(i,3)=Combine(K_value(i,2),K_value(i,1));
% the untrustworthy likelihood
K_value(i,4)=1-0.9*exp(-(K_value(i,3)*10)^2/((0.2^2)*2));
% compute the center of gravity
if K_value(i,4)>0.5
Grave_Point_x=Grave_Point_x+1*(Points(1+(i-1)*3,1)...
+Points(2+(i-1)*3,1)+Points(3+(i-1)*3,1));
Grave_Point_y=Grave_Point_y+1*(Points(1+(i-1)*3,2)...
+Points(2+(i-1)*3,2)+Points(3+(i-1)*3,2));
Grave_K=Grave_K+1;
end
fake_saliency = Line2image(fake_saliency, K_value(i,4),...
Points(((1+(i-1)*3):(3+(i-1)*3)),:));
end
I=rgb2gray(orgimage);
BW= edge(I,'canny',0.1);
subplot(132);imshow(BW); title('Forgery line detection');
hold on;
for i=1:line_number
if K_value(i,4)>0.5 % line detection with S>0.5
plot(Points((1+(i-1)*3),1),Points((1+(i-1)*3),2),'Color', [1,0,0]);
plot(Points((2+(i-1)*3),1),Points((2+(i-1)*3),2),'Color', [1,0,0]);
plot(Points((3+(i-1)*3),1),Points((3+(i-1)*3),2),'Color', [1,0,0]);
line([Points((1+(i-1)*3),1) Points((2+(i-1)*3),1)], [Points((1+(i-1)*3),2) Points((2+(i-1)*3),2)],...
'Color', [1,0,0], 'LineWidth', 3)
line([Points((2+(i-1)*3),1) Points((3+(i-1)*3),1)], [Points((2+(i-1)*3),2) Points((3+(i-1)*3),2)],...
'Color', [1,0,0], 'LineWidth', 3)
else
plot(Points((1+(i-1)*3),1),Points((1+(i-1)*3),2),'Color', [0,1,0]);
plot(Points((2+(i-1)*3),1),Points((2+(i-1)*3),2),'Color', [0,1,0]);
plot(Points((3+(i-1)*3),1),Points((3+(i-1)*3),2),'Color', [0,1,0]);
line([Points((1+(i-1)*3),1) Points((2+(i-1)*3),1)], [Points((1+(i-1)*3),2) Points((2+(i-1)*3),2)],...
'Color', [0,1,0], 'LineWidth', 3)
line([Points((2+(i-1)*3),1) Points((3+(i-1)*3),1)], [Points((2+(i-1)*3),2) Points((3+(i-1)*3),2)],...
'Color', [0,1,0], 'LineWidth', 3)
end
end
% Generate the fake saliency map
if Grave_K~=0
Grave_Point_x=round(Grave_Point_x/(Grave_K*3));
Grave_Point_y=round(Grave_Point_y/(Grave_K*3));
fake_saliency(Grave_Point_y-10:Grave_Point_y+10,...
Grave_Point_x-10:Grave_Point_x+10)=255;
end
thick=max(size(fake_saliency,1),size(fake_saliency,2));
fake_saliency = imdilate(fake_saliency,strel('ball',round(thick/30),round(thick/30)));
fake_saliency = imfilter(fake_saliency,fspecial('gaussian', [round(thick/10) round(thick/10)], round(thick/10)));
fake_saliency=im2double(fake_saliency);
if Grave_K~=0
fake_saliency=fake_saliency.*(0.9/max(max(fake_saliency)));
end
subplot(133);imshow(fake_saliency), colormap(hot); title('Fake saliency map');
3 仿真结果
4 参考文献
[1] Fu, H. , and X. Cao . "Forgery Authentication in Extreme Wide-Angle Lens Using Distortion Cue and Fake Saliency Map." IEEE Transactions on Information Forensics & Security 7.4(2012):1301-1314.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。