弱小检测算法python_遥感图像

本发明属于图像处理领域,主要涉及一种光学遥感图像的弱小动目标检测方法。

背景技术:

目标检测与识别通常可分为图像预处理、目标对象提取、目标跟踪三个环节。在遥感图像目标检测中,图像中的绝大部分的区域都属于背景,包括多种多样的地物类型,在保持目标信息的前提下抑制无关背景将会大大降低目标检测与提取的难度。我们关注的目标通常是人工目标,与周围背景存在一定的灰度差异。弱小目标图像中背景成分占了图像的大部分,且具有高度相关性、分布在图像信号频域的低频部分,与图像中弱小目标的特性形成鲜明对比。

现有的弱小动目标检测方法中,帧间差分法通过对图像序列中相邻两帧作差分运算获得运动目标轮廓,但该方法不能提取出目标的完整区域,同时依赖于选择的帧间时间间隔;卡尔曼滤波法基于时间递归方法,采取学习的方法来预测背景,但此方法不适用于背景在帧间的变化较快的情况;光流法给图像的每个像素点赋予一个矢量,形成一个运动矢量场,对图像进行动态分析,但此方法计算量较大,难以保证实时性。

在实际应用中,目标和背景的复杂性远超出想象,如何最大限度的利用目标背景特性来有效的增强目标,抑制背景仍然是当前研究的重要课题。

技术实现要素:

本发明的目的是提出一种光学遥感图像弱小动目标检测方法,首先从原连续帧遥感图像中定位检测区域,然后对连续帧定位区域图像做灰度化和Kittler二值化处理,最后去除与目标形状特征无关的干扰区域,提取目标。与现有方法相比,本发明尤其适用于山地、森林、荒漠等自然地形背景的遥感图像,简化了处理步骤,运行速度快。

为实现上述目的,本发明的技术方案包括如下步骤:

步骤1,输入连续帧光学遥感图像

仿真系统读取若干张连续帧光学遥感图像,所述图像序列要求分辨率相同,通常读取4张以上;

步骤2,对多帧图像预处理,得到连续帧定位检测区域图像

卫星相对于地面运动,采集的连续帧图像不仅存在弱小目标的运动,图像背景也是运动的,为方便后续的信息处理,需对连续帧图像做剪切处理得到定位检测区域;设各帧图像的剪切起点坐标为(xi,yi),区域分辨率大小为m×n,各帧图像的时序序号为i,i=1,2,3...,以此各帧图像对应确定一个1×4大小的序列rect=[xi,yi,m,n],根据rect序列对各帧图像做剪切处理,从而由背景变化的连续帧图像中固定检测区域,该区域的背景相对静止;

步骤3,进行背景抑制,对图像灰度化并用Kittler法二值化处理,得到连续帧二值图像

对步骤2的连续帧定位检测区域图像做灰度化处理,然后使用Kittler法进行二值化处理,所述的二值化方法将图像的灰度直方图p(g)任意分为两个部分,p(g)是期望为μi,标准差为σi2的正态分布,p(g)两个分量的概率密度函数为p(g|i),i=0或1,利用正态分布为两个分量分别建模,搜索整个直方图,获取使图像分类误差最小的阈值,所述阈值即为最佳阈值;

步骤4,去除连通面积过大、过小的干扰区域,再去除与目标形状特征不同的干扰区域

本方案所检测的弱小动目标是2×2大小的规则矩形,去除连通面积过大、过小的干扰区域是从步骤3的二值图像序列中遍历搜寻高亮连通区域,去除连通面积不为4的区域,去除与目标形状特征不同的干扰区域是遍历搜寻图像中灰度为1的像元,若高亮像元(xi,yi)周围4个像元的灰度值相加和(xi+1,yi)+(xi-1,yi)+(xi,yi+1)+(xi,yi-1)=2,则该像元保持灰度不变,否则抹除该高亮像元,即(xi,yi)=0,最后重新遍历搜寻二值图中的连通区域,去除连通面积小于4的区域,目的在于去除可能剩余的孤立噪点;

步骤5,检测图像中是否存在目标点

将步骤4处理后的连续帧二值图像转成矩阵Ij,j=1,2,3...,搜寻所有值为1的元素即Ij(xi,yi)=1;

步骤6,若存在目标,对目标进行定位及航迹预测;若不存在,输出“该区域中无目标”

步骤5中Ij(xi,yi)=1对应的(xi,yi)即为目标在定位检测区域的坐标值,一个2×2大小的动目标对应4个相邻的坐标,选取其中一个坐标,其他各帧图像的目标也选取该位置,然后将各帧的目标坐标用矢量曲线连接起来即为动目标的轨迹;下一帧的目标位置预测基于前两帧目标的运动状态,对相邻帧图像中的目标点坐标做差分运算,并对两个帧间差分结果取平均,将差分量与当前一帧中的目标坐标相加,即为下一帧目标的预测坐标位置;

若步骤5中不存在Ij(xi,yi)=1的像元,则判定该区域不存在目标点,输出语句“该区域中无目标”。

有益效果

本发明方法基于二值化法背景抑制实现对遥感图像弱小动目标检测,简化了图像处理步骤,尤其适用于山地、森林、荒漠等自然地形,相比其他弱小目标检测方法,此方法更加简便,运算速度快。

附图说明

图1是本发明方法的实现框图。

具体实施方式

下面结合附图和实施例对本发明做进一步说明。

实施例

步骤1,输入连续帧光学遥感图像

仿真系统读取4张连续帧光学遥感图像,所述图像序列要求分辨率相同;

步骤2,定位检测区域,对多帧图像预处理,使背景相同

卫星相对于地面运动,采集的连续帧图像不仅存在弱小目标的运动,图像背景也是运动的,为方便后续的信息处理,需对连续帧图像做剪切处理得到定位检测区域;各帧图像的剪切起点坐标为(xi,yi),区域分辨率大小为m×n,各帧图像的时序序号为i,i=1,2,3,4,设第一帧图像选定的起始坐标(x1,y1)=(128,128),且卫星每帧的移动速度是256像素,移动方向为横向,检测区域分辨率为256×256,那么连续4帧图像的rect序列分别为[128,128,256,256]、[384,128,256,256]、[640,128,256,256]、[896,128,256,256],根据rect序列对各帧图像做剪切处理,从而由背景变化的连续帧图像中固定检测区域,该区域的背景相对静止;

所述的剪切处理方法,依据实验仿真选取Matlab中的imcrop函数较佳;

步骤3,背景抑制,对图像灰度化并用Kittler法二值化处理

对步骤2的连续帧定位检测区域图像做灰度化处理,然后使用Kittler法进行二值化处理,所述的二值化方法将图像的灰度直方图p(g)任意分为两个部分,p(g)是期望为μi,标准差为σi2的正态分布,p(g)两个分量的概率密度函数为p(g|i),i=0或1,利用正态分布为两个分量分别建模,搜索整个直方图,获取使图像分类误差最小的阈值,所述阈值即为最佳阈值;

步骤4,去除连通面积过大、过小或与目标形状特征不同的干扰区域

本方案所检测的弱小动目标是2×2大小的规则矩形,去除连通面积过大、过小的干扰区域是从步骤3的二值图像序列中遍历搜寻高亮连通区域,去除连通面积不为4的区域,去除与目标形状特征不同的干扰区域是遍历搜寻图像中灰度为1的像元,若高亮像元(xi,yi)周围4个像元的灰度值相加和(xi+1,yi)+(xi-1,yi)+(xi,yi+1)+(xi,yi-1)=2,则该像元保持灰度不变,否则抹除该高亮像元,即(xi,yi)=0,最后重新遍历搜寻二值图中的连通区域,去除连通面积小于4的区域,目的在于去除可能剩余的孤立噪点;

所述的去除连通面积过大、过小的干扰区域方法,依据实验仿真选取Matlab中的bwareaopen函数或者利用Open CV编程实现较佳;

步骤5,检测图像中是否存在目标点

将步骤4处理后的连续帧二值图像转成矩阵Ij,j=1,2,3,4,搜寻所有值为1的元素即Ij(xi,yi)=1;

所述的遍历搜寻操作,依据实验仿真选取Matlab中的find函数较便利;

步骤6,若存在目标,对目标进行定位及航迹预测;若不存在,输出“该区域中无目标”

步骤5中Ij(xi,yi)=1对应的(xi,yi)即为目标在定位检测区域的坐标值,一个2×2大小的动目标对应4个相邻的坐标,选取其中一个坐标,其他各帧图像的目标也选取该位置,然后将各帧的目标坐标用矢量曲线连接起来即为动目标的轨迹;运动目标下一帧轨迹预测基于前两帧计算的运动信息和记预测时刻为tn,前两帧时刻为tn-1和tn-2,设tn-1时刻目标的坐标位置为(x0,y0),前两帧时间内目标在水平和纵向移动距离分别为Δx1、Δy1与Δx2、Δy2,则估计下一帧tn时刻的偏移量分别为目标坐标为(x0+Δx,y0+Δy),方向为预测轨迹矢量曲线的指向方向。

若步骤5中不存在Ij(xi,yi)=1的像元,则判定该区域不存在目标点,输出语句“该区域中无目标”。