目标检测算法

目标检测算法
目标检测算法

function MovingTargetDetectionByMMI() %Moving Target Detection

%Based on Maximun Mutual Information %

%EDIT BY PSL@CSU

%QQ:547423688

%Email:anyuezhiji@https://www.360docs.net/doc/364941471.html,

%2012-06-01

%读文件

Im1=imread('001.jpg');

Im2=imread('002.jpg');

Im3=imread('003.jpg');

Im1=rgb2gray(Im1);

Im2=rgb2gray(Im2);

Im3=rgb2gray(Im3);

tic;

d12=GetDifferenceImg(Im2,Im1);

d23=GetDifferenceImg(Im2,Im3);

d=d12.*d23;

se =;

for i=1:4

d = imfilter(d,se);

end

for i=1:2

d = medfilt2(d,);

end

%%d=abs((d12-d23).^0.7);

d=uint8(d/max(max(d))*255);

level = graythresh(d);

BW = im2bw(d,level);

s=regionprops(BW,'BoundingBox'); figure(1)

subplot(2,2,1);

imshow(uint8(d12/max(max(d12))*255));

title('参考帧与前一帧的差值')

subplot(2,2,2);

imshow(uint8(d23/max(max(d23))*255));

title('参考帧与后一帧的差值')

subplot(2,2,3);

imshow(BW);

title('由前后帧得出的差值')

subplot(2,2,4);

imshow(Im2);

%imshow(d);

rectangle('Position',s(1).BoundingBox,'Curvature',,'LineWidth',2,'LineStyle','--','EdgeColor', 'r')

title('参考帧与检测结果')

%求相邻两帧重合部分差值主函数

function outImg=GetDifferenceImg(R,F)

=dwt2(R,'db1');

=dwt2(F,'db1');

CA1=uint8(CA1);

CA2=uint8(CA2);

fprintf('\n------PSO start\n');

=PSO(CA1,CA2);

while mi<1.2

=PSO(CA1,CA2);

end

fprintf('tx:%f ty:%f ang:%f mi:%f\n',pa(1),pa(2),pa(3),mi);

fprintf('------PSO end\n\n');

%pa=;

fprintf('------Powell start\n');

mi_old=0;

while abs(mi-mi_old)>0.01

mi_old=mi;

=powell(R,F,pa);

end

fprintf('------Powell end\n\n');

time=toc;

fprintf('tx:%.4f ty:%.4f ang:%.2f mi:%f\n',pa(1),pa(2),pa(3),mi);

fprintf('time:%f\n',time);

outImg=GetDifference(pa(1),pa(2),pa(3),R,F);

%figure(6);imshow(outImg);

%求相邻两帧重合部分差值

function outImg=GetDifference(tx,ty,ang,R,F)

=size(R);

%

R=im2double(R);

F=im2double(F);

theta=ang*pi/180; %旋转角度转弧度

cx=floor(n/2); %旋转的中心点

cy=floor(m/2);

outImg=zeros(m,n);

for j=1:m

for i=1:n

%参考图像在浮动图像平移后的对应点

% x=i-tx; %列

% y=j-ty; %

x=(i-cx)*cos(theta)-(j-cy)*sin(theta)+cx-tx;

y=(i-cx)*sin(theta)+(j-cy)*cos(theta)+cy-ty;

x1=floor(x);

y1=floor(y);

rval=R(j,i);

%图像重合部分求差

if(x1>=1&&x1=1&&y1

dy=y1-y;dx=x1-x;

%双线性插值

fval=(F(y1+1,x1)-F(y1,x1))*dy+(F(y1,x1+1)-F(y1,x1))*dx+(F(y1+1,x1+1)+F (y1,x1)-F(y1,x1+1)-F(y1+1,x1))*dy*dx+F(y1,x1);

outImg(j,i)=abs((rval-fval).^0.7*exp(-min()/20));

%outImg(j,i)=abs((rval-fval).^2.5/(min()).^0.2);

end

end

end

%outImg=uint8(outImg/max(max(outImg))*255);

%双线性插值求互信息

function out=BI_mi(tx,ty,ang,R,F)

=size(R);

hist=zeros(256,256);

ha = zeros(1,256);

hb = zeros(1,256);

%归一化到256级灰度

% if max(max(r))~=min(min(r)) %max(max(a))结果是A中最大的元素,max(A)结果一个行向量,元素分别是A的每个列向量的最大的元素

% r = (r-min(min(r)))/(max(max(r))-min(min(r)));

% else

% r = zeros(M,N);

% end

%

% if max(max(f))-min(min(f))

% f = (f-min(min(f)))/(max(max(f))-min(min(f)));

% else

% f = zeros(M,N);

% end

%

% r = double(int16(r*255))+1;

% f = double(int16(f*255))+1;

R=R+1;

F=F+1;

theta=ang*pi/180; %旋转角度转弧度

cx=floor(n/2); %旋转的中心点

cy=floor(m/2);

%求联合概率密度

for j=1:m

for i=1:n

%参考图像在浮动图像平移后的对应点

% x=i-tx; %列

% y=j-ty; %

x=(i-cx)*cos(theta)-(j-cy)*sin(theta)+cx-tx;

y=(i-cx)*sin(theta)+(j-cy)*cos(theta)+cy-ty;

x1=floor(x);

y1=floor(y);

rval=R(j,i);

%图像重合部分求差

if(x1>=1&&x1=1&&y1

dy=y1-y;dx=x1-x;

%双线性插值

fval=(F(y1+1,x1)-F(y1,x1))*dy+(F(y1,x1+1)-F(y1,x1))*dx+(F(y1+1,x1+1)+F (y1,x1)-F(y1,x1+1)-F(y1+1,x1))*dy*dx+F(y1,x1);

hist(fval,rval)=hist(fval,rval)+1;

end

end

end

%下面求边缘概率密度

for i=1:256

ha(i)=sum(hist(i,: ));

hb(i)=sum(hist(:,i));

end

%调用互信息函数

out=MI(hist,ha,hb);

%下面是求互信息的函数

function mi=MI(hist,ha,hb)

%

hsum = sum(sum(hist));

index = find(hist~=0);

p=hist/hsum;

Hab=sum(sum(-p(index).*log(p(index)))); %联合熵hsum = sum(sum(ha));

index = find(ha~=0);

p = ha/hsum;

Ha = sum(sum(-p(index).*log(p(index)))); %边缘熵hsum = sum(sum(hb));

index = find(hb~=0);

p = hb/hsum;

Hb = sum(sum(-p(index).*log(p(index)))); %边缘熵mi = Ha+Hb-Hab;

%粒子群算法

function =PSO(R,F)

%粒子群算法

%初始化

D=3; %维数

ps=30; %种群规模

VRmin=ones(D,1)*-20; %最小速度

VRmax=ones(D,1)*20; %最大速度

VR=;

%minmax = 1;

pos=40*rand(ps,D)-20; %随机产生初始位置

vel=8*rand(ps,D)-4; %产生随机速度

% ps=15; %种群规模

% VRmin=ones(D,1)*-10; %最小速度

% VRmax=ones(D,1)*10; %最大速度

% VR=;

% %minmax = 1;

% pos=20*rand(ps,D)-10; %随机产生初始位置

% vel=4*rand(ps,D)-2; %产生随机速度

%一些参数

maxinterations=20; %最大迭代次数

iw=1; %固定权重

iw1 = 0.9; % 最大惯性权重

iw2 = 0.4;

iwe = 15;

ac1=2;

ac2=2;

flagg=1;

% ergrd=1e-5;

% ergrdep=5; %

% mv=4;%

ergrd=1e-4;

ergrdep=5; %

mv=4;%

%初始个体极值

pbest=pos;

%求初始全局极值

for i=1:ps

p=pos(i,: ); %第i个粒子位置

out(i)=BI_mi(p(1),p(2),p(3),R,F); %求函数值

end

pbestval=out; %每个粒子当前函数值

=max(pbestval); %全局最优函数值

gbest=pbest(idx,: ); %全局极值

tr(1)=gbestval; %保存当前全局最优函数值% start PSO iterative procedures

cnt=0; % counter used for updating display according to df in the options

cnt2=0; % counter used for the stopping subroutine based on error convergence %开始迭代

for i=1:maxinterations

for j=1:ps

if flagg==1 % randomization control, one random set for each particle at ea ch epoch

rannum1=rand(1);

rannum2=rand(1);

end

p=pos(j,: ); %第i个粒子位置

out(j)=BI_mi(p(1),p(2),p(3),R,F); %求函数值

e(j)=out(j);

%更新pbest

if pbestval(j)<=e(j);%%%====

pbestval(j)=e(j);

pbest(j,: )=pos(j,: );

end

%更新gbest

=max(pbestval);

if gbestval<=iterbestval %%%===

gbestval=iterbestval;

gbest=pbest(idx1,: );

end

tr(i+1)=gbestval;

te=i;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%

%%%%%%更新速度,位置

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%

if i<=iwe %%%===

iwt(i)=((iw2-iw1)/(iwe-1))*(i-1)+iw1; %惯性权重

else

iwt(i)=iw2;

end

% iwt(i)=1;

%%%%%%%%%%速度%%%%%%%%%%%%%%%%%%%%

if flagg==2 % 粒子的每个参数的随机数不同

for dimcnt=1: D

rannum1=rand(1);

rannum2=rand(1);

vel(j,dimcnt)=iwt(i)*vel(j,dimcnt)...

+ac1*rannum1*(pbest(j,dimcnt)-pos(j,dimcnt))...

+ac2*rannum2*(gbest(1,dimcnt)-pos(j,dimcnt));

end

else % 粒子的每个参数的随机数相同

vel(j,: )=iwt(i)*vel(j,: )...

+ac1*rannum1*(pbest(j,: )-pos(j,: ))...

+ac2*rannum2*(gbest(1,: )-pos(j,: ));

end

% 固定权重

% vel(j,: )=iw*vel(j,: )...

% +ac1*rannum1*(pbest(j,: )-pos(j,: ))...

% +ac2*rannum2*(gbest(1,: )-pos(j,: ));

%%%%%%%%%%位置%%%%%%%%%%%%%%%%%%%%%%% pos(j,: )=pos(j,: )+vel(j,: );

%%%%%%%%%速度和位置范围%%%%%%%%%

for dimcnt=1: D

if vel(j,dimcnt)>mv

vel(j,dimcnt)=mv;

end

if vel(j,dimcnt)<-mv

vel(j,dimcnt)=-mv;

end

if pos(j,dimcnt)>=VR(dimcnt,2)

pos(j,dimcnt)=VR(dimcnt,2);

end

if pos(j,dimcnt)<=VR(dimcnt,1) %%%===

pos(j,dimcnt)=VR(dimcnt,1);

end

end

end %结束一次粒子循环

temp=gbest';

fprintf('%f,%f,%f,%f\n',temp(1),temp(2),temp(3),gbestval);

Y(i)=gbestval;

X(i)=i;

% 收敛条件

tmp1=abs(tr(i)-gbestval);

if tmp1>ergrd

cnt2=0;

elseif tmp1<=ergrd %%%===

cnt2=cnt2+1;

if cnt2>=ergrdep

break

end

end

end %迭代结束

fprintf('total interations:%d\n',i);

%OUT=;

pa=gbest;

mi=gbestval;

%POWELL优化算法

function =powell(R,F,x)

len=5; %搜索区间

itmax=30; %最大循环次数

e=1e-3; %允许误差

%方向矢量矩阵存放d1,d2,d3三个方向矢量

D=;

%起始点

%x0=;

x0=x;

fx0=BI_mi(x0(1),x0(2),x0(3),R,F);

%fx0=pv_mi(x0(1),x0(2),-x0(3),R,F);

%循环搜索

for k=0:itmax

%从起始点出发,沿d1方向搜索,得到最大值fx1,对应点x1 d1=D(1,: );

=oneDimSearch(R,F,x0,d1,len);

fprintf('%f, %f, %f, %f\n',x1(1),x1(2),x1(3),fx1);

%从x1出发,沿d2方向搜索

d2=D(2,: );

=oneDimSearch(R,F,x1,d2,len);

fprintf('%f, %f, %f, %f\n',x2(1),x2(2),x2(3),fx2);

%从x2出发,沿d3方向搜索

d3=D(3,: );

=oneDimSearch(R,F,x2,d3,len);

%加速方向

dn=x3-x0;

y=sum(dn.*dn);

fprintf('%f\n',y);

fprintf('%f, %f, %f, %f\n',x3(1),x3(2),x3(3),fx3);

if y<=e %满足结束条件,退出循环%%%===

pa=x3;

mi=fx3;

return;

end

%调整搜索方向

%计算目标值下降最多的那个方向

cha=;

=max(cha);

%

xe=2*x3-x0;

fe=BI_mi(xe(1),xe(2),xe(3),R,F);

%fe=pv_mi(xe(1),xe(2),-xe(3),R,F);

%这里求极大值

if (fe<=fx0) || (2*(fx0-2*fx3+fe)*(fx0-fx3-maxcha)*(fx0-fx3-maxcha) >= (fx0-fe)* (fx0-fe)*maxcha)

%不引入新的方向%%%===

x0=x3; %下次搜索的新起点

fx0=fx3;

else %引进新的方向

%以xn为起点沿dn进行搜索,得到下次搜索的新起点

=oneDimSearch(R,F,x3,dn,len);

%替换方向

D(4,: )=dn;

for i=j0:3

D(i,: )=D(i+1,: );

end

end

end %end for

pa=x3;

mi=fx3;

%一维搜索。从-len到len,找出最大值的点

function =oneDimSearch(R,F,X,direction,len)

%一维brent搜索求函数最小值

CGOLD =0.3819660;

a=-len;

b=len;

%a=a0;

%b=b0;

tol=0.01;

e=0.0;

ITMAX=100;

v=a+CGOLD*(b-a);

Xv=X+direction*v;

%fv=pv_mi(Xv(1),Xv(2),-Xv(3),R,F);

fv=BI_mi(Xv(1),Xv(2),Xv(3),R,F);

w=v;

x=v;

fw=fv;

fx=fv;

for k=0:ITMAX

xm=0.5*(a+b); %中点

tol1=tol*abs(x);

tol2=2*tol1;

%if abs(x-xm)=tol;

if abs(x-xm)<=(tol2-0.5*(b-a)) %满足精度,退出%%%=== step=x;

Y=X+direction*step;

fY=fx;

break;

end

if (abs(e) > tol1)

r=(x-w)*(fx-fv);

q=(x-v)*(fx-fw);

p=(x-v)*q-(x-w)*r; %分子

q=2*(q-r); %分母

if (q>0)

p=-p;

end

q=abs(q);

e=d;

if (abs(p) >= abs(0.5*q*etemp) || p<=q*(a-x) || p >= q*(b-x)) %使用黄金分割%%%===

if x >= xm

e=a-x;

else

e=b-x;

end

d=CGOLD*e;

else %抛物线内插

d=p/q;

u=x+d; %u

if(u-a if x > xm;

d=-abs(tol1);

else

d=abs(tol1);

end

end

end

else %使用黄金分割

if x >= xm

e=a-x;

else

e=b-x;

end

d=CGOLD*e;

end %if (abs(e) > tol1)

if abs(d)>=tol1

u=x+d;

else

u=x+abs(tol1);

else

u=x-abs(tol1);

end

end

Xu=X+direction*u;

% fu=pv_mi(Xu(1),Xu(2),-Xu(3),R,F); %函数值 fu=BI_mi(Xu(1),Xu(2),Xu(3),R,F); %函数值

%更新参数

if fu>=fx

if u>=x

a=x;

else

b=x;

end

v=w;w=x;x=u;

fv=fw;fw=fx;fx=fu;

else

if u

a=u;

else

b=u;

end

if (fu>=fw || w==x)

v=w;w=u;

fv=fw;fw=fu;

elseif (fu>=fv || v==x || v==w)

v=u;

fv=fu;

end

end

end %end for

用于检测的原始序列如下:

前一帧 001.jpg

参考帧002.jpg

后一帧003.jpg

运行结果如下:

------PSO start

6.219116,3.410710,-4.782166,1.132898 3.181979,1.134846,-3.718395,1.227941 2.302928,-0.910530,-2.792701,1.258413 4.141745,1.269771,-0.407340,1.409782 4.141745,1.269771,-0.407340,1.409782 2.782469,0.226964,-0.933429,1.415868

2.782469,0.226964,-0.933429,1.415868

2.782469,0.226964,-0.933429,1.415868

2.782469,0.226964,-0.933429,1.415868

2.782469,0.226964,-0.933429,1.415868

3.591808,0.754384,-0.656160,1.481511

3.591808,0.754384,-0.656160,1.481511

3.473467,0.846358,-0.247672,1.483317

3.810920,0.631524,-0.892638,1.489102

3.857352,0.603985,-0.596614,1.490289

3.857352,0.603985,-0.596614,1.490289

3.862678,0.614558,-0.632967,1.493891

3.862678,0.614558,-0.632967,1.493891

3.862678,0.614558,-0.632967,1.493891

3.862678,0.614558,-0.632967,1.493891

total interations:20

tx:3.862678 ty:0.614558 ang:-0.632967 mi:1.493891 ------PSO end

------Powell start

7.719056, 0.614558, -0.632967, 1.298058

7.719056, 1.904456, -0.632967, 1.466426

16.537888

7.719056, 1.904456, -0.681950, 1.463247

8.229286, 2.035531, -0.686927, 1.481208

8.229286, 1.980443, -0.686927, 1.482608

0.015995

8.223876, 1.978633, -0.686858, 1.482462

8.057189, 1.978633, -0.686858, 1.482155

8.057189, 1.967980, -0.686858, 1.481889

0.027765

8.057581, 1.968111, -0.686863, 1.481945

8.060448, 1.968111, -0.686863, 1.481762

8.060448, 1.967566, -0.686863, 1.481860

0.000009

8.060564, 1.967605, -0.686865, 1.481848

8.056211, 1.967605, -0.686865, 1.481832

8.056211, 1.980282, -0.686865, 1.482319

0.000180

8.056211, 1.980282, -0.687108, 1.482356

------Powell end

tx:8.0562 ty:1.9803 ang:-0.69 mi:1.482356

time:5.523760

------PSO start

-4.218613,-1.831505,-2.592978,1.198497

-3.096033,0.220999,-1.548051,1.355306

-3.096033,0.220999,-1.548051,1.355306

-3.788383,0.085873,-1.170346,1.356069

-2.132791,0.115566,-1.059226,1.400370

-2.536139,-0.302278,-0.703993,1.402590

-3.122589,0.042784,-0.841495,1.411028

-2.294945,0.111933,-0.833426,1.440319

-2.601845,0.432572,-0.042504,1.558405

-2.601845,0.432572,-0.042504,1.558405

-2.601845,0.432572,-0.042504,1.558405

-2.601845,0.432572,-0.042504,1.558405

-2.623005,0.577600,0.167668,1.558405

-2.623005,0.577600,0.167668,1.558405

total interations:14

tx:-2.623005 ty:0.577600 ang:0.167668 mi:1.558405 ------PSO end

------Powell start

-5.479949, 0.577600, 0.167668, 1.500895

-5.479949, 1.084894, 0.167668, 1.552012

8.420517

-5.479949, 1.084894, 0.135345, 1.551926

-4.800852, 1.084894, 0.135345, 1.625440 -4.800852, 1.146578, 0.135345, 1.639162 0.464979

-4.800852, 1.146578, 0.134208, 1.638934 -4.657180, 1.145903, 0.134221, 1.638934 -4.657180, 1.144253, 0.134221, 1.638942 0.018618

-4.671874, 1.142918, 0.134245, 1.639685 -4.679493, 1.142918, 0.134245, 1.639685 -4.679493, 1.144981, 0.134245, 1.638942 0.000028

-4.676647, 1.145240, 0.134241, 1.639855 -4.670146, 1.145240, 0.134241, 1.639855 -4.670146, 1.145272, 0.134241, 1.639788 0.000042

-4.670146, 1.145272, 0.134258, 1.639799 ------Powell end

tx:-4.6701 ty:1.1453 ang:0.13 mi:1.639799 time:10.290607

目标检测方法简要综述

龙源期刊网 https://www.360docs.net/doc/364941471.html, 目标检测方法简要综述 作者:栗佩康袁芳芳李航涛 来源:《科技风》2020年第18期 摘要:目标检测是计算机视觉领域中的重要问题,是人脸识别、车辆检测、路网提取等领域的理论基础。随着深度学习的快速发展,与基于滑窗以手工提取特征做分类的传统目标检测算法相比,基于深度学习的目标检测算法无论在检测精度上还是在时间复杂度上都大大超过了传统算法,本文将简单介绍目标检测算法的发展历程。 关键词:目标检测;机器学习;深度神经网络 目标检测的目的可分为检测图像中感兴趣目标的位置和对感兴趣目标进行分类。目标检测比低阶的分类任务复杂,同时也是高阶图像分割任的重要基础;目标检测也是人脸识别、车辆检测、路网检测等应用领域的理论基础。 传统的目标检测算法是基于滑窗遍历进行区域选择,然后使用HOG、SIFT等特征对滑窗内的图像块进行特征提取,最后使用SVM、AdaBoost等分类器对已提取特征进行分类。手工构建特征较为复杂,检测精度提升有限,基于滑窗的算法计算复杂度较高,此类方法的发展停滞,本文不再展开。近年来,基于深度学习的目标检测算法成为主流,分为两阶段和单阶段两类:两阶段算法先在图像中选取候选区域,然后对候选区域进行目标分类与位置精修;单阶段算法是基于全局做回归分类,直接产生目标物体的位置及类别。单阶段算法更具实时性,但检测精度有损失,下面介绍这两类目标检测算法。 1 基于候选区域的两阶段目标检测方法 率先将深度学习引入目标检测的是Girshick[1]于2014年提出的区域卷积神经网络目标检测模型(R-CNN)。首先使用区域选择性搜索算法在图像上提取约2000个候选区域,然后使用卷积神经网络对各候选区域进行特征提取,接着使用SVM对候选区域进行分类并利用NMS 回归目标位置。与传统算法相比,R-CNN的检测精度有很大提升,但缺点是:由于全连接层的限制,输入CNN的图像为固定尺寸,且每个图像块输入CNN单独处理,无特征提取共享,重复计算;选择性搜索算法仍有冗余,耗费时间等。 基于R-CNN只能接受固定尺寸图像输入和无卷积特征共享,He[2]于2014年参考金字塔匹配理论在CNN中加入SPP-Net结构。该结构复用第五卷积层的特征响应图,将任意尺寸的候选区域转为固定长度的特征向量,最后一个卷积层后接入的为SPP层。该方法只对原图做一

基于小波变换的图像边缘检测算法

基于小波变换的图像边缘检测算法仿真实 现 学生姓名:XX 指导教师:xxx 专业班级:电子信息 学号:00000000000 学院:计算机与信息工程学院 二〇一五年五月二十日

摘要 数字图像边缘检测是图像分割、目标区域识别和区域形态提取等图像分析领域中十分重要的基础,是图像识别中提取图像特征一个重要方法。 目前在边缘检测领域已经提出许多算法,但是提出的相关理论和算法仍然存在很多不足之处,在某些情况下仍然无法很有效地检测出目标物的边缘。由于小波变换在时域和频域都具有很好的局部化特征,并且具有多尺度特征,因此,利用多尺度小波进行边缘检测既能得到良好的抑制噪声的能力,又能够保持边缘的完备。 本文就是利用此方法在MATLAB环境下来对数字图像进行边缘的检测。 关键词:小波变换;多尺度;边缘检测

Abstract The boundary detection of digital image is not only the important foundation in the field of image segmentation and target area identification and area shape extraction, but also an important method which extract image feature in image recognition. Right now, there are a lot of algorithms in the field of edge detection, but these algorithms also have a lot of shotucuts, sometimes, they are not very effective to check the boundary of the digital image. Wavelet transform has a good localization characteristic in the time domain and frequency domain and multi-scale features, So, the boundary detection of digital image by using multi-scale wavelet can not only get a good ability to suppress noise, but also to maintain the completeness of the edge. This article is to use this method in the environment of MATLAB to detect the boundary of the digital image. Keywords: wavelet transform; multi-scale; boundary detection.

运动目标检测光流法详解

摘要 运动目标检测方法是研究如何完成对视频图像序列中感兴趣的运动目标区域的“准确定位”问题。光流场指图像灰度模式的表面运动,它可以反映视频相邻帧之间的运动信息,因而可以用于运动目标的检测。MATLAB这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以利用MATLAB 软件来用光流法对运动目标的检测中具有很大的优势。本设计主要可以借助matlab软件编写程序,运用Horn-Schunck算法对图像前后两帧进行处理,画出图像的光流场。而图像的光流场每个像素都有一个运动矢量,因此可以反映相邻帧之间的运动,分析图像的光流场就可以得出图像中的运动目标的运动情况。 关键字:光流法;Horn-Schunck算法;matlab

目录 1光流法的设计目的 (1) 2光流法的原理 (1) 2.1光流法的介绍 (1) 2.1.1光流与光流场的概念 (1) 2.1光流法检测运动目标的原理 (2) 2.1.1光流场计算的基本原理 (2) 2.2.2基于梯度的光流场算法 (2) 2.2.3Horn-Schunck算法 (3) 2.2.4光流法检测运动目标物体的基本原理概述 (5) 3光流法的程序具体实现 (6) 3.1源代码 (6) 3.1.1求解光流场函数 (6) 3.1.2求导函数 (9) 3.1.3高斯滤波函数 (9) 3.1.4平滑性约束条件函数 (10) 3.1.5画图函数 (10) 4仿真图及分析 (12) 结论 (13) 参考文献 (14)

1 光流法的设计目的 数字图像处理,就是用数字计算机及其他有关数字技术,对图像进行处理,以达到预期的目的。随着计算机的发展,图像处理技术在许多领域得到了广泛应用,数字图像处理已成为电子信息、通信、计算机、自动化、信号处理等专业的重要课程。 数字图像处理课程设计是在学习完数字图像处理的相关理论后,进行的综合性训练课程,其目的是:使学生进一步巩固数字图像处理的基本概念、理论、分析方法和实现方法;增强学生应用Matlab编写数字图像处理的应用程序及分析、解决实际问题的能力;尝试所学的内容解决实际工程问题,培养学生的工程实践能力。 运动目标检测是数字图像处理技术的一个主要部分,近些年来,随着多媒体技术的迅猛发展和计算机性能的不断提高,动态图像处理技术日益受到人们的青睞,并且取得了丰硕的成果,广泛应用于交通管理、军事目标跟踪、生物医学等领域。 因此,基于光流法,实现运动目标的检测是本文的研究对象。结合图书馆书籍、网上资料以及现有期刊杂志,初步建立起运动目标检测的整体思路和方法。 2 光流法的原理 2.1 光流法的介绍 2.1.1 光流与光流场的概念 光流是指空间运动物体在观测成像面上的像素运动的瞬时速度,它利用图像序列像素强度数据的时域变化和相关性来确定各自像素位置的“运动”,即反映图像灰度在时间上的变化与景物中物体结构及其运动的关系。将二维图像平面特定坐标点上的灰度瞬时变化率定义为光流矢量。视觉心理学认为人与被观察物体

人体目标检测与跟踪算法研究

人体目标检测与跟踪算法研究 摘要:近些年以来,基于视频中人体目标的检测与跟踪技术研究越来越被重视。然而,由于受到目标自身特征多样性和目标所处环境的复杂性和不确定性的影响,现存算法的性能受到很大的限制。本文对目前所存在的问题进行了分析,并提出了三帧差分法和改进阈值分割法相结合的运动目标检测算法和多特征融合的改进运动目标跟踪算法。这两种算法不仅可以准确有效的检测出运动目标而且能够满足实时性的要求,有效的解决了因光照变化和目标遮挡等情况造成的运动目标跟踪准确度下降或跟踪目标丢失等问题。 关键词:三帧差分,Camshift,阈值分割 Research Based on Human Target Detectionand Tracking Algorithm Abstract: In recent years, human object detection and tracking become more and more important. However the complexity, uncertainty environment and the target’s own diversity limit the performance of existing algorithms. The main works of this paper is to study and analysis the main algorithm of the human object detection and tracking, and proposes a new moving target detection method based on three-frame difference method and threshold segmentation and improved Camshift tracking algorithm based on multi-feature fusion. These algorithm can satisfy the real-time, while accurately and efficiently detect moving targets, and also effectively solves the problem of tracking object lost or misplaced under illumination change or target occlusion. Keywords: three-frame difference, Camshift, threshold segmentation 一、绪论 (一)选题的背景和意义 人类和动物主要通过眼睛来感受和认知外部世界。人类通过视觉所获取的信息占了60%[1],因此,在开发和完善人工智能的过程中,赋予机器视觉的功能这一操作极不可缺少。完善上述功能需要以许多技术为基础,特别是运动目标的检测与跟踪技术。近些年以来,此技术受到了越来越多的关注[2]。目前,此技术也在各领域得到了充分的应用,涵盖的领域有智能交通、导航、智能视频监控、精确制导、人机交互和多媒体视频编码压缩技术等。

几种常用边缘检测算法的比较

几种常用边缘检测算法的比较摘要:边缘是图像最基本的特征,边缘检测是图像分析与识别的重要环节。基于微分算子的边缘检测是目前较为常用的边缘检测方法。通过对Roberts,Sobel,Prewitt,Canny 和Log 及一种改进Sobel等几个微分算子的算法分析以及MATLAB 仿真实验对比,结果表明,Roberts,Sobel 和Prewitt 算子的算法简单,但检测精度不高,Canny 和Log 算子的算法复杂,但检测精度较高,基于Sobel的改进方法具有较好的可调性,可针对不同的图像得到较好的效果,但是边缘较粗糙。在应用中应根据实际情况选择不同的算子。 0 引言 边缘检测是图像分析与识别的第一步,边缘检测在计算机视觉、图像分析等应用中起着重要作用,图像的其他特征都是由边缘和区域这些基本特征推导出来的,边缘检测的效果会直接影响图像的分割和识别性能。边缘检测法的种类很多,如微分算子法、样板匹配法、小波检测法、神经网络法等等,每一类检测法又有不同的具体方法。目前,微分算子法中有Roberts,Sobel,Prewitt,Canny,Laplacian,Log 以及二阶方向导数等算子检测法,本文仅将讨论微分算子法中的几个常用算子法及一个改进Sobel算法。 1 边缘检测

在图像中,边缘是图像局部强度变化最明显的地方,它主要存在于目标与目标、目标与背景、区域与区域( 包括不同色彩) 之间。边缘表明一个特征区域的终结和另一特征区域的开始。边缘所分开区域的内部特征或属性是一致的,而不同的区域内部特征或属性是不同的。边缘检测正是利用物体和背景在某种图像特征上的差异来实现检测,这些差异包括灰度、颜色或纹理特征,边缘检测实际上就是检测图像特征发生变化的位置。边缘的类型很多,常见的有以下三种: 第一种是阶梯形边缘,其灰度从低跳跃到高; 第二种是屋顶形边缘,其灰度从低逐渐到高然后慢慢减小; 第三种是线性边缘,其灰度呈脉冲跳跃变化。如图1 所示。 (a) 阶梯形边缘(b) 屋顶形边缘 (b) 线性边缘 图像中的边缘是由许多边缘元组成,边缘元可以看作是一个短的直线段,每一个边缘元都由一个位置和一个角度确定。边缘元对应着图像上灰度曲面N 阶导数的不连续性。如果灰度曲面在一个点的N 阶导数是一个Delta 函数,那么就

目标检测算法

function MovingTargetDetectionByMMI() %Moving Target Detection %Based on Maximun Mutual Information % %EDIT BY PSL@CSU %QQ:547423688 %Email:anyuezhiji@https://www.360docs.net/doc/364941471.html, %2012-06-01 %读文件 Im1=imread('001.jpg'); Im2=imread('002.jpg'); Im3=imread('003.jpg'); Im1=rgb2gray(Im1); Im2=rgb2gray(Im2); Im3=rgb2gray(Im3); tic; d12=GetDifferenceImg(Im2,Im1); d23=GetDifferenceImg(Im2,Im3); d=d12.*d23; se =; for i=1:4 d = imfilter(d,se); end for i=1:2 d = medfilt2(d,); end %%d=abs((d12-d23).^0.7); d=uint8(d/max(max(d))*255); level = graythresh(d); BW = im2bw(d,level); s=regionprops(BW,'BoundingBox'); figure(1)

subplot(2,2,1); imshow(uint8(d12/max(max(d12))*255)); title('参考帧与前一帧的差值') subplot(2,2,2); imshow(uint8(d23/max(max(d23))*255)); title('参考帧与后一帧的差值') subplot(2,2,3); imshow(BW); title('由前后帧得出的差值') subplot(2,2,4); imshow(Im2); %imshow(d); rectangle('Position',s(1).BoundingBox,'Curvature',,'LineWidth',2,'LineStyle','--','EdgeColor', 'r') title('参考帧与检测结果') %求相邻两帧重合部分差值主函数 function outImg=GetDifferenceImg(R,F) =dwt2(R,'db1'); =dwt2(F,'db1'); CA1=uint8(CA1); CA2=uint8(CA2); fprintf('\n------PSO start\n'); =PSO(CA1,CA2); while mi<1.2 =PSO(CA1,CA2); end fprintf('tx:%f ty:%f ang:%f mi:%f\n',pa(1),pa(2),pa(3),mi); fprintf('------PSO end\n\n'); %pa=; fprintf('------Powell start\n'); mi_old=0; while abs(mi-mi_old)>0.01

图像边缘检测算法体验步骤

图像边缘检测算法体验步骤 图像边缘检测算法体验步骤(Photoshop,Matlab)1. 确定你的电脑上已经安装了Photoshop和Matlab2. 使用手机或其他任何方式,获得一张彩色图像(任何格式),建议图像颜色丰富,分辨率比较高,具有比较明显的图像边界(卡通图像,风景图像,桌面图像)3. 将图像保存到一个能够找到的目录中,例如img文件夹(路径上没有汉字)4. 启动Photoshop,打开img文件夹中的图像5. 在工具箱中选择“矩形选择”工具,到图面上选择一个区域(如果分辨率比较高,建议不要太大,否则计算过程比较长)6. 点击下拉菜单【文件】-【新建】,新建一个与矩形选择框同样尺寸的Photoshop图像,不要求保存该图像7. 将该彩色图像转换为亮度图像,即点击下拉菜单【图像】-【模式】-【灰度】,如提示是否合并,选择“Yes”8. 将该单色的亮度图像另存为Windows的BMP文件,点击下拉菜单【文件】-【存储为】,在“存储为”窗口中,为该文件起一个名字,例如test1(保存为test1.bmp)9. 启动Matlab,将当期路径(Current Directory)定位到图像文件夹,例如这里的img文件夹10. 使用imread命令读入该图像,在命令行输入:>> f = imread(test1.bmp);11. 在Matlab中显示该图像,在命令行输入:>> figure, imshow(f)12. 然后,分别使用Matlab图像工具箱中的Edge函数,分别使用Sobel算法,高斯-拉普拉斯(Log)算法和Canny算法得到的边缘图像:在命令行输入:>> g_sobel = edge(f, sobel, 0.05); >> g_log = edge(f, log, 0.003, 2.25); >> g_canny = edge(f, canny, [0.04 0.10], 1.5);13 得到边缘图像计算结果后,显示这些边缘图像: >> figure, imshow(g_sobel) >> figure, imshow(g_log) >> figure, imshow(g_canny)14 可以用不同的图像做对比,后续课程解释算法后,可以变换不同的阈值,得到不同的边缘图像

运动序列目标检测算法研究及 DSP 实现

运动序列目标检测算法研究及DSP实现 李文艳,王月琴,张笑微 (西南科技大学信息工程学院四川绵阳621010) 摘要:由于实际场景的多样性,目前常用的运动目标检测算法都还存在一定程度的缺陷,因此本文提出了一种将帧差法和背景减法相结合的方法,实现快速精确地检测和提取运动目标。实验结果表明,本方法是比较实用的,能较好满足实时视频监控系统的要求。最后将程序移植到基于DSP的平台上,进行相应的优化后基本满足了实时性的要求。 关键词:目标检测;帧差法;背景减法 中图分类号:TP751.1 文献标识码:A Algorism Research of Moving Object Detection and DSP Implementation LI Wen-yan,WANG Yue-qin,ZHANG Xiao-wei (Southwest University of Science and Technology Mianyang Sichuan China 621010) Abstract: Because of the environment’s variety, the methods that have been used for moving object detection need to be improved. An algorithm based on two consecutive frames subtraction and background subtraction is presented and it can detect and extract object quickly and accurately. The results show that the proposed method is a practical one. It can meet the need of the real time video surveillance and monitoring system. The coding is transplanted in DSP, and the project is executed successfully on CCS simulator. Keywords: Object detection; Frames subtraction; Background subtraction 引言 运动目标的检测在智能监控等领域中得到了广泛的应用。运动目标的检测就是从视频流中去除静止背景提取出运动的目标,运动目标的有效分割对跟踪等后期处理非常关键。 本文提出了将帧间差分和背景减法相结合的方法。首先选取一帧作为背景帧, 建立各像素点的高斯模型。再运用帧间差分法对相邻两帧图像进行差分处理, 区分出背景点和变化的区域。然后将变化区域与背景帧的对应区域进行模型拟合区分出显露区和运动物体。 1 运动目标检测算法总体流程 采用帧间差分与背景减法相结合的算法进行运动目标检测,包括运动目标的检测和将检测到的运动目标从背景中分割出来两部分,其系统框架流程图如图1所示。 图1 运动目标检测流程图 这种设计充分利用了被检测区域部分时间静止的特点,具有智能检测的功能,它只在检

实验三图像分割与边缘检测

数字图像处理实验报告 学生姓名王真颖 学生学号L0902150101 指导教师梁毅雄 专业班级计算机科学与技术1501 完成日期2017年11月06日

计算机科学与技术系信息科学与工程学院

目录 实验一.................................................................................................. 错误!未定义书签。 一、实验目的.................................................................................................... 错误!未定义书签。 二、实验基本原理 ........................................................................................... 错误!未定义书签。 三、实验内容与要求....................................................................................... 错误!未定义书签。 四、实验结果与分析....................................................................................... 错误!未定义书签。实验总结............................................................................................... 错误!未定义书签。参考资料.. (3) 实验一图像分割与边缘检测 一.实验目的 1. 理解图像分割的基本概念; 2. 理解图像边缘提取的基本概念; 3. 掌握进行边缘提取的基本方法;

图像显著性目标检测算法研究

图像显著性目标检测算法研究 随着移动电子设备的不断升级与应用,使用图像来记录或表达信息已成为一种常态。我们要想快速地在海量图像中提取出有价值的信息,那么需要模拟人类视觉系统在机器视觉系统进行计算机视觉热点问题的研究。 图像显著性目标检测对图像中最引人注意且最能表征图像内容的部分进行检测。在图像显著性目标检测任务中,传统的方法一般利用纹理、颜色等低层级视觉信息自下向上地进行数据驱动式检测。 对于含有单一目标或高对比度的自然场景图像,可以从多个角度去挖掘其显著性信息,如先验知识、误差重构等。然而,对于那些具有挑战性的自然场景图像,如复杂的背景、低对比度等,传统的方法通常会检测失败。 基于深度卷积神经网络的算法利用高层级语义信息结合上下文充分挖掘潜在的细节,相较于传统的方法已取得了更优越的显著性检测性能。本文对于图像显著性检测任务存在的主要问题提出了相应的解决方法。 本文的主要贡献如下:为充分挖掘图像多种显著性信息,并使其能够达到优势互补效果,本文提出了一种有效的模型,即融合先验信息和重构信息的显著性目标检测模型。重构过程包括密度重构策略与稀疏重构策略。 密度重构其优势在于能够更准确地定位存在于图像边缘的显著性物体。而稀疏重构更具鲁棒性,能够更有效地抑制复杂背景。 先验过程包含背景先验策略与中心先验策略,通过先验信息可更均匀地突出图像中的显著性目标。最后,把重构过程与先验过程生成的显著特征做非线性融合操作。 实验结果充分说明了该模型的高效性能与优越性能。针对图像中存在多个显

著性目标或者检测到的显著性目标存在边界模糊问题,本文提出了一种基于多层级连续特征细化的深度显著性目标检测模型。 该模型包括三个阶段:多层级连续特征提取、分层边界细化和显著性特征融合。首先,在多个层级上连续提取和编码高级语义特征,该过程充分挖掘了全局空间信息和不同层级的细节信息。 然后,通过反卷积操作对多层级特征做边界细化处理。分层边界细化后,把不同层级的显著特征做融合操作得到结果显著图。 在具有挑战性的多个基准数据集上使用综合评价指标进行性能测试,实验结果表明该方法具有优越的显著性检测性能。对于低对比度或者小目标等问题,本文提出一种新颖模型,即通道层级特征响应模型。 该模型包含三个部分:通道式粗特征提取,层级通道特征细化和层级特征图融合。该方法基于挤压激励残差网络,依据卷积特征通道之间的相关性进行建模。 首先,输入图像通过通道式粗特征提取过程生成空间信息丢失较多的粗糙特征图。然后,从高层级到低层级逐步细化通道特征,充分挖掘潜在的通道相关性细节信息。 接着,对多层级特征做融合操作得到结果显著图。在含有复杂场景的多个基准数据集上与其它先进算法进行比较,实验结果证明该算法具有较高的计算效率和卓越的显著性检测性能。

图像边缘检测方法的研究与实现刘法200832800066

图像边缘检测方法的研究与实现刘法200832800066

青岛大学专业课程设计 院系: 自动化学院 专业: 电子信息工程 班级: 08级电子信息工程3班学生姓名: 刘法 指导教师: 王汉萍庄晓东 日期: 2011年12月23日

题目:图像边缘检测方法的研究与实现 一、边缘检测以及相关概念 1.1边缘,边缘检测的介绍 边缘(edge)是指图像局部强度变化最显著的部分.边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础.图像分析和理解的第一步常常是边缘检测(edge detection). 边缘检测是指使用数学方法提取图像像元中具有亮度值(灰度)空间方向梯度大的边、线特征的过程。 在讨论边缘算子之前,首先给出一些术语的定义: 边缘点:图像中具有坐标] ,[j i且处在强度显著变化的位置上的点.边缘段:对应于边缘点坐标] i及其方位 ,边缘的方位可能是梯度角. ,[j 边缘检测器:从图像中抽取边缘(边缘点和边缘段)集合的算法. 轮廓:边缘列表,或是一条表示边缘列表的拟合曲线. 边缘连接:从无序边缘表形成有序边缘表的过程.习惯上边缘的表示采用顺时针方向序. 边缘跟踪:一个用来确定轮廊的图像(指滤波后的图像)搜索过程. 边缘点的坐标可以是边缘位置像素点的行、列整数标号,也可以在子像素分辨率水平上表示.边缘坐标可以在原始图像坐标系上表示,但大多数情况下是在边缘检测滤波器的输出图像的坐标系上表示,因为滤波过程可能导致图像坐标平移或缩放.边缘段可以用像素点尺寸大小的小线段定义,或用具有方位属性的一个点定义.请注意,在实际中,边缘点和边缘段都被称为边缘.边缘连接和边缘跟踪之间的区别在于:边缘连接是把边缘检测器产生的无序边缘集作为输入,输出一个有序边缘集;边缘跟踪则是将一幅图像作为输入,输出一个有序边缘集.另外,边缘检测使用局部信息来决定边缘,而边缘跟踪使用整个图像信息来决定一个像素点是不是边缘. 1.2 边缘检测算子 边缘检测是图像特征提取的重要技术之一, 边缘常常意味着一个区域的终结和另一个区域的开始. 图像的边缘包含了物体形状的重要信息,它不仅在分析图像时大幅度地减少了要处理的信息量,而且还保护了目标的边界结构. 因此,边缘检测可以看做是处理许多复杂问题的关键. 边缘检测的实质是采用某种算法来提取出图像中对对象与背景间的交界线。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此可以用局部图像微分技术来获取边缘检测算子。经典的边缘检测方法是对原始图像中的像素的某个邻域来构造边缘检测算子。以下是对几种经典的边缘检测算子进行理论分析,并对各自的性能特点做出比较和评价。 边缘检测的原理是:由于微分算子具有突出灰度变化的作用,对图像进行微分运算,在图像边缘处其灰度变化较大,故该处微分计算值教高,可将这些微分值作为相应点的边缘强度,通过阈值判别来提取边缘点,即如果微分值大于阈值,则为边缘点。

视觉目标检测算法说明

视觉目标检测算法说明 1.功能 通过安装在战车上的摄像头,检测视野范围内的敌方战车。 2.算法: 2.1目标检测与识别 1.颜色检测 采集大量敌方机器人的图片数据,并进行训练,得到对方机器人的颜色区间, 并以此为阈值对整幅图像进行颜色检测,找到疑似敌方机器人的区域,量化 成二值图。 2.滤除噪声点 对得到的二值图像进行开运算处理,滤除颜色检测结果中的噪声点。 3.连通区域检测 对图像中的疑似区域进行连通区域检测,计算出每个疑似区域的外部轮廓, 用矩形近似表示。 4.连通区域合并 根据连通区域之间的距离和颜色相似性,将距离接近且相似性高的连通区域 进行合并。 5.形状和大小过滤 对大量敌方机器人图片进行训练,得到对方机器人的形状信息(例如长宽比) 和大小信息(面积),并以此为依据将不符合的区域过滤掉。 经过以上五步的处理,可以初步得到敌方机器人的位置、大小和形状信息。 2.2目标运动跟踪 对上步中的检测结果进行运动跟踪。 1.状态估计 根据上一时刻地方机器人的运动状态(包括位置和速度),估算当前时刻机 器人的运动状态。 2.轨迹关联 根据位置和颜色信息,对当前时刻机器人的估计状态和检测结果进行关联。 3.状态更新 若上一步中关联成功,更新当前时刻的运动状态。 通过对检测结果进行运动跟踪,可以计算出当前时刻敌方机器人的运动速度和方 向。 2.3预估提前量

1.评估延迟时间 根据己方机器人实际的调试情况,通过多次试验和统计的方法,估算己方机器人从接收命令到炮弹(或子弹)击中目标区域的时间延时(包括图像处理 时间、落弹时间和炮弹飞行时间)。 2.计算提前量 根据延迟时间和敌方机器人的运动速度,计算炮弹发射的提前量,补偿到敌方机器人的运动状态中。 3.总结: 对于机器人战车中的敌方目标检问题,有很多种方法可以实现,视觉检测只是其中的一种方法,而基于颜色识别的目标检测也只是视觉算法中比较简单有效的一种。所以,本段代码只是抛砖引玉的一个样本,适用范围只针对于2014年RoboMasters夏令营的场地和战车,希望可以看到大家更加简单有效的算法。

图像边缘检测技术综述

第 42 卷增刊 1 中南大学学报(自然科学版) V ol.42 Suppl. 1 2011 年 9 月 Journal of Central South University (Science and Technology) Sep. 2011 图像边缘检测技术综述 王敏杰 1 ,杨唐文 1, 3 ,韩建达 2 ,秦勇 3 (1. 北京交通大学 信息科学研究所,北京,100044; 2. 中国科学院沈阳自动化研究所 机器人学国家重点实验室,辽宁 沈阳,110016; 3. 北京交通大学 轨道交通控制与安全国家重点实验室,北京,100044) 摘要:边缘检测是图像处理与分析中最基础的内容之一。首先介绍了几种经典的边缘检测方法,并对其性能进行 比较分析;然后,综述了近几年来出现的一些新的边缘检测方法;最后,对边缘检测技术的发展趋势进行了展望。 关键词:数字图像;边缘检测;综述 中图分类号:TP391.4 文献标志码:A 文章编号:1672?7207(2011)S1?0811?06 Review on image edge detection technologies W ANG Min-jie 1 , Y ANG Tang-wen 1,3 , HAN Jian-da 2 ,QIN Y ong 3 (1.Institute of Information Science,Beijing Jiaotong University, Beijing 100044, China? 2.State Key Laboratory of Robotics, Shenyang Institute of Automation, Chinese Academic of Science,Shenyang 110016, China? 3.State Key Laboratory of Rail Traffic Control and Safety, Beijing Jiaotong University, Beijing 100044, China) Abstract: Edge detection is one of the most fundamental topics in the research area of image processing and analysis. First, several classical edge detection methods were introduced, and the performance of these methods was compared? then, several edge detection methods developed in the latest years were reviewed? finally, the trend of the research of the image edge detection in the future was discussed. Key words:digital image?edge detection?review 图像是人们从客观世界获取信息的重要来源 [1?2] 。 图像信息最主要来自其边缘和轮廓。所谓边缘是指其 周围像素灰度急剧变化的那些象素的集合,它是图像 最基本的特征。边缘存在于目标、背景和区域之 间 [3?4] ,它是图像分割所依赖的最重要的依据。边缘检 测 [5?8] 是图像处理和计算机视觉中的基本问题, 图像边 缘检测是图像处理中的一个重要内容和步骤,是图像 分割、目标识别等众多图像处理的必要基础 [9?10] 。因 此,研究图像边缘检测算法具有极其重要的意义。 边缘检测是计算机视觉和图像处理领域的一项基 本内容。准确、高效地提取出边缘信息一直是该领域 研究的重点内容 [11] 。最初的经典算法可分为边缘算子 法、曲面拟合法、模板匹配法、门限化法等。近年来, 随着数学理论和人工智能的发展,又出现了一些新的 边缘检测的算法 [12?13] ,如基于数学形态学的边缘检 测 [14] 、小波变换和小波包变换的边缘检测法 [15] 、基于 模糊理论的边缘检测法 [16?17] 、基于神经网络的边缘检 测法 [18] 、基于分形几何的边缘检测算法 [19] 、基于遗传 算法的边缘检测法 [20?21] 、漫射边缘的检测方法 [22] 、多 尺度边缘检测技术 [23] 、亚像素边缘的定位技术 [24] 、 收稿日期:2011?04?15;修回日期:2011?06?15 基金项目:轨道交通控制与安全国家重点实验室开放基金资助项目(RCS2010K02);机器人学国家重点实验室开放基金资助项目(RLO200801);北 京交通大学基本科研业务费资助项目(2011JBM019) 通信作者:王敏杰(1988-), 女, 黑龙江五常人, 硕士研究生, 从事图像处理和计算机视觉研究; 电话: 010-51468132; E-mail: wangminjie1118@https://www.360docs.net/doc/364941471.html,

运动目标检测原理

运动检测(移动侦测)原理 一、引言 随着技术的飞速发展,人们对闭路电视监控系统的要求越来越高,智能化在监控领域也得到越来越多的应用。在某些监控的场所对安全性要求比较高,需要对运动的物体进行及时的检测和跟踪,因此我们需要一些精确的图像检测技术来提供自动报警和目标检测。运动检测作为在安防智能化应用最早的领域,它的技术发展和应用前景都受到关注。 运动检测是指在指定区域能识别图像的变化,检测运动物体的存在并避免由光线变化带来的干扰。但是如何从实时的序列图像中将变化区域从背景图像中提取出来,还要考虑运动区域的有效分割对于目标分类、跟踪等后期处理是非常重要的,因为以后的处理过程仅仅考虑图像中对应于运动区域的像素。然而,由于背景图像的动态变化,如天气、光照、影子及混乱干扰等的影响,使得运动检测成为一项相当困难的工作。 二、运动检测(移动侦测)原理 早期的运动检测如MPEG1是对编码后产生的I帧进行比较分析,通过视频帧的比较来检测图像变化是一种可行的途径。原理如下:MPEG1视频流由三类编码帧组成,它们分别是:关键帧(I 帧),预测帧(P帧)和内插双向帧(B帧)。I帧按JPEG标准编码,独立于其他编码帧,它是MPEG1视频流中唯一可存取的帧,每12帧出现一次。截取连续的I帧,经过解码运算,以帧为单位连续存放在内存的缓冲区中,再利用函数在缓冲区中将连续的两帧转化为位图形式,存放在另外的内存空间以作比较之用,至

于比较的方法有多种。此方法是对编码后的数据进行处理,而目前的MPEG1/MPEG4编码都是有损压缩,对比原有的图像肯定存在误报和不准确的现象。 目前几种常用的方法: 1.背景减除(Background Subtraction ) 背景减除方法是目前运动检测中最常用的一种方法,它是利用当前图像与背景图像的差分来检测出运动区域的一种技术。它一般能够提供最完全的特征数据,但对于动态场景的变化,如光照和外来无关事件的干扰等特别敏感。最简单的背景模型是时间平均图像,大部分的研究人员目前都致力于开发不同的背景模型,以期减少动态场景变化对于运动分割的影响。 2.时间差分(Temporal Difference ) 时间差分(又称相邻帧差)方法是在连续的图像序列中两个或三个相邻帧间采用基于像素的时间差分并且阈值化来提取出图像中的运动区域。时间差分运动检测方法对于动态环境具有较强的自适应性,但一般不能完全提取出所有相关的特征像素点,在运动实体内部容易产生空洞现象。 3.光流(Optical Flow) 基于光流方法的运动检测采用了运动目标随时间变化的光流特性,如Meyer[2] 等通过计算位移向量光流场来初始化基于轮廓的跟踪算法,从而有效地提取和跟踪运动目标。该方法的优点是在摄像机运动存在的前提下也能检测出独立的运动目标。然而,

基于图像超分辨网络的目标检测算法

图形图像 现代计算机(https://www.360docs.net/doc/364941471.html, )2019.09上 文章编号:1007-1423(2019)25-0047-04 DOI :10.3969/j.issn.1007-1423.2019.25.010 基于图像超分辨网络的目标检测算法 畅青,冯晶明,洪伟杰,薛凯 (四川大学计算机学院,成都610065) 摘要: 目标检测一直是计算机视觉研究领域的核心问题。当前,视觉识别任务仍然容易受到各种图像退化的影响,如图像模糊和图像低分辨率。为此,提出一种基于图像超分辨网络的目标检测算法。首先,搭建一个轻量级的图像超分辨网络对输入图片进行像素信息恢复和局部细节增强;然后在重建图片上搭建目标检测网络对各种类型的目标进行检测和定位;最终,将检测结果映射会原始图片。实验证明,经过融合图像超分辨重建网络,该算法实现更好的性能。关键词: 目标检测;图像超分辨率;多尺度检测器基金项目: 四川省科技创新苗子工程(No.2018048) 0引言 目标的检测与跟踪技术在计算机视觉领域有着广 泛的应用,例如在视频监控、无人驾驶、机器人等领域都有着举足轻重的价值。随着深度学习算法与技术的飞速发展,更是带动了该技术在性能、速度等方面取得了质的飞跃。然而随着社会的发展,需求的不断提高,我们在研究算法高效性的同时还要考虑算法所训练出的模型在实际应用上的性能与速度。 在深度学习出现之前,目标检测需要根据一定的先验知识,通过建立某种数学模型来完成目标检测,应用比较广泛的有:帧差法[1]、Hough 变换[2]、光流法[3]、滑动窗口模型[4]、可变形部件模型[5]等。这些传统的目标检测方法通过手工设计的特征来组合并进行分类。然而由于需要依赖于研究人员的经验,因此,传统的方法的泛化能力较差,鲁棒性较低。 受益于深度学习的发展,最近几年,目标检测作为计算机视觉的基础性任务取得了长足的进步。尤其是R-CNN [6] 创造性的将检测任务划分为两个阶段:产生候 选区域和目标识别。随后众多优秀的工作 [7-9] ,都采用 这种两阶段的管道实现了巨大的性能提升。与此同 时,众多单阶段检测算法[10-12]也在不断刷新着COCO 挑战赛的记录。 尽管不断有新的检测框架问世,视觉识别任务仍然容易受到各种图像退化的影响,包括图像模糊和图像低分辨率。COCO 数据集上的检测结果表明:识别不同尺度的目标依然是检测任务一项重大挑战。进一步提高对小目标和模糊目标的检测精度和召回率是优化目标检测框架总体性能的核心方式。 小目标本身在图片中所占区域较小,所涉及的像素数量少。模糊目标本身含有大量的噪声导致像素质量过低。本身像素信息的匮乏加上卷积神经网络池化操作对特征图的浓缩,导致神经网络难以对小目标及模糊目标提取出充足的特征。图像超分辨率可以作为一种输入数据增强消除这些弊病并以此为目标检测提供积极的影响。 1算法实现 针对图像模糊和低分辨率问题以及目标检测高实 时性要求,本文提出了基于图像超分辨率的多尺度检测算法。该算法首先依靠一个轻量级的图像超分辨网

相关文档
最新文档