【目标跟踪】基于matlab红外图像弱小目标检测与跟踪【含Matlab源码 374期】

举报
海神之光 发表于 2022/05/29 05:29:49 2022/05/29
【摘要】 一、获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。 获取代码方式2: 完整代码已上传我的资源:【目标跟踪】基于matlab红外图像弱小目标检测与跟踪...

一、获取代码方式

获取代码方式1:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

获取代码方式2:
完整代码已上传我的资源:【目标跟踪】基于matlab红外图像弱小目标检测与跟踪【含Matlab源码 374期】

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、简介

0 引言
对于机载红外搜索跟踪系统等远距离目标探测系统, 目标在探测器上的成像往往只占几个像素点, 缺乏充分的目标结构信息, 并且由于图像背景的干扰及探测器扫描系统内部噪声的存在, 使得目标红外图像的信噪比较低。这样红外搜索跟踪系统探测空中运动目标时, 形成的目标红外图像, 实际上是由目标点、复杂的红外背景和噪声组成的序列图像。此类系统的目标检测过程实际上是在背景和噪声干扰的序列图像中进行弱小运动点目标的识别。

目前针对红外图像弱小运动点目标的检测问题所提出的各种算法可归纳为两大类:1) 滤除噪声的算法。图像流检测、基于“软判决”的最大合并积累检测等算法均是在滤除噪声的基础上, 解决剩余噪声与目标点的分离问题, 而当图像中存在较强的背景干扰时, 则上述以滤除噪声为主的算法往往目标检测效果不佳;2) 滤除背景的算法。例如, 基于数学形态学的目标检测算法、基本背景预测算法、最大化背景预测算法等各种滤除背景的目标检测算法, 主要以单帧红外图像运动点目标检测为主, 难以区分目标与强噪声点。

针对上述两类目标检测算法的局限性, 本文提出一种背景预测与目标轨迹搜索相结合的红外图像弱小运动点目标检测算法。该算法通过背景预测滤除目标图像中背景干扰, 再通过目标轨迹搜索使有规律运动的弱小点目标与强噪声点分离, 进而实现复杂背景及强噪声点干扰环境下, 弱小运动点目标的有效检测。

目标检测算法
本文提出的红外图像弱小点目标检测算法主要由3个部分组成:预处理、背景预测、组合帧上的目标轨迹搜索, 如图1所示。首先对输入的序列图像进行高通滤波, 滤除大量的噪声;然后利用背景预测算法计算背景图像, 再将原图像与背景预测图像相减得到序列残差图像, 来滤除背景干扰, 根据残差图像计算阈值, 确定少量的候选目标点;最后根据最大合并算法将序列残差图像形成组合帧图像, 在组合帧图像中搜索目标轨迹, 检测出点目标。
在这里插入图片描述
图1 目标检测算法框图
2 预处理
预处理的目的是减少图像中的噪声和杂波, 提高目标与背景的对比度, 增强图像数据的可用性。

目前已提出了多种图像预处理算法, 常用的算法有中值滤波、形态学滤波、高通滤波等。中值滤波算法具有边缘保护特性, 并可有效滤除高频噪声, 但易使图像模糊, 降低图像的对比度;形态学滤波算法也可有效滤除图像的高频噪声, 凸显图像的“奇异点”, 但是结构元素的选取相对比较复杂;高通滤波器可以使目标边缘锐化, 通过改变局部比例来扩大对比度, 有利于后续的目标轨迹搜索。

通过比较这几种常用的预处理算法之后, 本文采用易于实现且效果良好的高通滤波算法对红外图像进行预处理, 根据实际的红外图像特性, 采用5×5高通滤波模板, 如图2所示。
在这里插入图片描述
图2 5×5高通滤波模板
2 背景预测算法
在对红外图像高通滤波后, 采用背景预测算法来滤除红外图像中的背景干扰。目前, 已提出了多种基于背景预测的红外图像弱小点目标检测算法, 主要包括基本背景预测算法、最佳权重背景预测算法、最大化背景预测算法和最相似背景预测算法。其中, 基本背景预测算法和最佳权重背景预测算法适用于背景比较单一的红外图像目标检测;最大化背景预测算法和最相似背景预测算法适用于背景起伏较大的红外图像目标检测。本文采用基本背景预测算法来进行红外图像弱小运动点目标的检测。

2.1 背景预测的基本模型
背景预测的原理:背景像素点间相关性强, 而目标则是图像局部区域中的“奇异点”, 与周围背景像素点间差异较大。这样就可以由相邻背景图像点来预测背景中任何一点的灰度值, 通过图像实际灰度值与预测背景值相减得到预测残差, 目标的识别就变成在预测残差中根据门限来寻找灰度值突变点。
基本的背景预测模型为
在这里插入图片描述
m=0, …, M-1;n=0, …, N-1. (1)
式中:X0为M×N的红外图像;Y为预测图像;Wj为第j级权重, j=m×M+n对应当前的位置;Sj对应局域背景选取点的范围集合。
预测图像与输入图像之间的残差图像计算如下式:
E (m, n) =X (m, n) -Y (m, n) , (2)
式中:E (m, n) 为残差图像;X (m, n) 为原图像;Y (m, n) 为预测图像。
根据基本背景模型, 背景预测算法要解决的3个关键问题:邻域背景点的选取、权重的选取和阈值的选取。

2.2 基本背景预测算法
领域背景点的选取如图3所示, 标注为P的像素为当前要处理的像素点, 每个方格代表一个像素点, 灰色部分为所选择的背景点。可以看到点P的邻域背景点选择了其3×3邻域外的40个像素点。

权重按下式规定:
在这里插入图片描述
式中L为所选背景点的个数, 所选背景点如图3所示, 则L=40, 这是一种等权值设置, 相当于将局域背景像素点的灰度值进行平均作为预测值。
在这里插入图片描述
图3 基本背景预测算法的背景选点
如果将图3的选点方法对应成一个滤波器模板, 则可用下式表示:
在这里插入图片描述
选定了邻域背景点和权重然后根据 (1) 式计算红外图像背景图, 利用 (2) 式计算残差图像。
根据背景预测算法的原理可知, 残差图像主要包含目标点和噪声点, 利用残差图像的统计特性, 设X¯¯¯为残差图像的均值, σ为残差图像的均方差, 根据3σ准则, 则阈值可定为
在这里插入图片描述
如果E (m, n) >β则保留像素灰度值, 否则将像素灰度值设为0.
由于基本背景预测算法所选用的权重模板相当于一个均值滤波器, 所以基本背景预测算法适用于背景均匀的红外图像弱小点目标检测。

2.3 组合帧上检测目标轨迹
经过上述背景预测算法得到的残差图像中包含了高频噪声、目标点和少量的背景点, 经过阈值处理可以确定一些候选目标点, 但还不能准确将目标分离出来, 须进一步利用序列图像中目标运动的连续性和一致性来定位目标点。
将含有少量候选目标点的序列图像进行最大合并累积形成组合帧图像, 并在组合帧图像上搜索目标轨迹。形成组合帧图像和搜索目标轨迹的具体步骤如下:

  1. 组合帧图像的形成。将序列图像侯选目标点叠加到组合帧图像中, 如多幅图像相同位置出现侯选目标点, 则将其灰度值进行累加, 构成组合帧该点灰度值, 如 (6) 式。
    在这里插入图片描述
    式中:Dc代表组合帧;Di为包含侯选目标点的序列图像。

  2. 目标运动轨迹搜索。在组合帧图像Dc内, 点目标运动将留下一段轨迹, 可以假设在短时间内, 目标轨迹为一条直线。对组合帧图像中的每个后续目标像素点, 定义一个m×n的邻域, 在此邻域内的4个方向上搜索目标轨迹, 邻域搜索方向如图4所示。
    在这里插入图片描述
    图4 邻域搜索方向
    将搜索方向上的候选目标点像素值进行累加, 即令
    在这里插入图片描述
    式中track表示搜索方向上候选目标像素点的集合。

  3. 目标运动轨迹的判定。由于目标运动的连续性和一致性, 在目标轨迹方向上对应点的Itrack (x, y) 值应该较大。而对于噪声点, 由于其出现的随机性, 使得对应的Itrack (x, y) 值相对较小。所以对Itrack做判决, 设置门限值β, 若Itrack>β, 则判为在此点处有目标, 否则判为没有目标。由于序列图像中相同位置的候选目标点灰度值进行了叠加, 这样即使目标在视场中不动, 按上述检测规则, 其像素灰度值大于噪声点灰度值。

三、部分源代码

 clear
%生成待检测的图像im1;
im1=0.6*ones(128,128);
im1(80,90)=256;
im1(100,100)=256;
imshow(im1)
% 确定邻域的大小:5×5;
r=2;                      
k=1;
% 调用编写的函数计算图像的局域灰度概率矩阵;
P=target_detect(im1,r);      
figure
mesh(P)
%检测奇异点;
[Pr Pc]=find(P>k/(2*r+1)^2+0.1);  
figure
imshow(im1)
hold on                    
% 在图像im1上标出检测到的奇异点;
for i=1:length(Pr)           
plot(Pc(i),Pr(i),'g+')
end
hold on
im2=0.6*ones(128,128);
im2(81,90)=256;
im2(200,200)=256;
r1=1;
k1=1;
% 检测下一帧图像中奇异点位置(上一帧检测到的)附近邻域是否存在奇异点;
P1=target_refine(Pr,Pc,im2,r1);  
%确定奇异点的位置;
[Prt Pct]=find(P1>k1/(2*r1+1)^2+0.1);  
function P=target_detect(im,r)
% 功能:计算图像局域灰度概率矩阵
% 输入:im-RGB图像        r-局域半径
% 输出:P-局域灰度概率矩阵

% P-图像转换
if size(size(im),2)==3
im=rgb2gray(im); 
end

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

四、运行结果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.

文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。

原文链接:qq912100926.blog.csdn.net/article/details/113995116

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。