利用KDE进行运动目标视觉检测

利用KDE进行运动目标视觉检测

一、程序运行平台:

KDE核密度估计在python2.7.14上实现,导入的库有numpyPillowmathmpl_toolkitsmatplotlib等。

 

二、设计思路

   1、读取20张训练图片的数据。每个训练图片的数据:有576*768个像素点,每个像素都有三个通道即RGB

   2、同理,读取测试图片的数据,576*768*3

   3、由EP核函数的公式,计算出每个测试图片上的像素点对应对的概率估计。

 4、根据EP核函数的估计值,设定合适的阈值,将训练图片转化成二值图像。

 

三、代码优化及参数修改

   1、代码优化:

当像素值变化比较大时,概率密度函数值变成小于0的数值,明显不符合概率的定义。这里我们采取一定的优化措施:将由于像素值对应通道差别太大,而导致出现的负值统统赋值为0;而不小于0的则是本身大小。

   2、带宽参数修改:

     在几何图形上:带宽h反映了KDE曲线整体的平坦程度,即观察到的数据点在KDE曲线形成过程中所占的比重 。带宽越大,观察到的数据点在最终形成的曲线形状中所占比重越小,KDE整体曲线就越平坦;带宽越小,观察到的数据点在最终形成的曲线形状中所占比重越大,KDE整体曲线就越陡峭。

在计算结果上:如果阈值不发生改变,当h较大时,Px相应会变小,此时在二值化的图片上显示的结果是白色区域面积扩大,黑色区域减小;当h设置较小时,二值化图片黑色区域面积扩大,白色区域面积减小。我们这里选取带宽h100

同时,阈值的选择也会影响二值化后图形的质量阈值为2x10^(-7)

 

四、源代码

分为python版本和MATLAB版本的

1 python版本有两个.py文件:读入训练数据的load_file.py 和运行文件KDE.py 代码在如下链接

https://download.csdn.net/download/strive_0902/10282566

2 MATLAB在如下链接

https://download.csdn.net/download/strive_0902/10282575

附:源码内含有word报告

结果图如下:前面两个是MATLAB的效果图;后面两个是python的效果图

利用KDE进行运动目标视觉检测_第1张图片利用KDE进行运动目标视觉检测_第2张图片利用KDE进行运动目标视觉检测_第3张图片利用KDE进行运动目标视觉检测_第4张图片

你可能感兴趣的:(机器学习)