1.基于分形理论的孤立森林水下人工目标检测方法,其特征在于,具体过程包括以下步骤:
步骤1,获取声呐图像数据:
读取水下机器人采集的原始声呐图像文件,将原始文件信息通过matlab软件合并为包含有X,Y,Z,I四个维度的信息,并且在matlab结果输出时,通过代码将文件转换为第三方数据库能够识别的.pcd格式;
步骤2,图像数据预处理:
将原始声呐图像数据首先进行归一化,然后进行缺失值的填补,得到消除缺陷的图像数据;
步骤3,差分盒计算:
将预处理后的图像数据分成多个小区域,计算每个区域的分形维数,将得到的分形维数作为建立分离树的标准;
步骤4,通过建立分离树和孤立森林,计算得到图像数据中的异常数据点和正常数据点:
首先建立分离树和孤立森林,然后计算从分离树的根节点到每个数据点所在的叶子节点经过的边的数目,即数据点的路径长度l,根据数据点的路径长度l计算得到每个数据点的异常值s,若s趋向于1,则该数据点属于异常点,若s趋向于0,则该数据点属于正常点。
2.如权利要求1所述的基于分形理论的孤立森林水下人工目标检测方法,其特征在于,所述步骤2中图像预处理的过程如下:步骤2.1,采用线性函数归一化原始声呐图像数据,将原始声呐图像数通过公式(1)的线性化的方法转换到[0,1]的范围;
其中,Xnorm为归一化后的数据,X为原始数据,Xmax和Xmin分别为原始数据集的最大值和最小值;
步骤2.2,将归一化后的数据进行缺失值的填补,选取整幅图像的实际深度Z维度值和发射声波I维度值,分别计算两个维度值的平均值作为填补的值,由于图像在X,Y方向是均匀分布的,然后,将待补点的X,Y值按图像分布进行填补。
3.如权利要求1所述的基于分形理论的孤立森林水下人工目标检测方法,其特征在于,所述步骤3中计算分形维数的过程如下:步骤3.1,采用3×3的滑动窗口,将预处理后的图像数据分为多个小区域,每次移动一个数据点的距离计算每个小区域的分形维数;
步骤3.2,采用差分盒计算每个区域的分形维数,具体过程如下:(a)对于一幅M×M的图像,将其看做三维空间的一个曲面,定义长为M,宽为M,高为L,其中,L为图像的像素级数,一般取L=256;
(b)将其所在的M×M的平面分为R×R大小的网格,在高度L这个坐标方向进行相同的划分,划分的单位为R*L/M,从而得到长宽方向和高度方向的划分“次数”相同;
(c)在被划分成的每个R×R个网格内,找出最大像素值u和最小像素值b,计算该区域所包含三维空间的盒子数,盒子个数记为n(i,j),则有n(i,j)=[(u‑b+R‑1)/R],其中,(i,j)记为当前的第(i,j)个网格,[]为取整符号;
(d)对每个R×R的盒子数求和,记为N,即N=sum(n(i,j));
(e)则分形维数D=‑logN/logR,由于R是有限值,通过改变R的值,求出一组N,采用最小二乘法进行线性拟合,通过拟合得到的线性方程计算得到直线的斜率,直线斜率即就是分形维数D。
4.如权利要求3所述的基于分形理论的孤立森林水下人工目标检测方法,其特征在于,所述步骤4的具体过程如下:
步骤4.1,随机抽取部分子样本,设置子样本大小和异常阈值,将数据格式中的X,Y,Z,I四个维度看成一个点的四个属性,随机选取一个属性并在该属性的最值范围内通过随机函数随机选取一个值,作为左右子树的标准值;如果子样本中,样本点的该属性值小于标准值则被划分到左子树中,反之,将被划分到右子树中;
步骤4.2,将所有被划分到左子树和右子树的节点当作左右子树的根节点,进行下一层的左右子树的划分,依次循环,直到达到所设定的树的高度,或者输入数据是相同的多个数据点,或者输入数据中只包含一个数据点时结束;
步骤4.3,重复步骤4.1和步骤4.2,得到多颗分离树的集合就构成孤立森林;
步骤4.4,计算每个样本在孤立森林中每颗树上的数据点的路径长度l,即,从树的根节点到该数据点所在的叶子节点所经过边的数目,返回数据点在每棵树中的路径长度时,如果该数据点所在的叶子节点有且仅有一个点,则返回该点的当前路径长度l;如果所在的叶子节点包含了多个数据点,则利用如下公式(2):c(n)=2H(n‑1)‑(2(n‑1)/n) (2)其中,H(n‑1)是修正值,通过log2(n‑1)+0.5772156649计算得到,其中0.5772156649是欧拉常数,c(n)为构建n个数据点的随机二叉树的平均路径长度,此时,返回值由l变成了l+c(n);
步骤4.5,异常值的计算:
数据点x的异常值s(x,n)由如下公式(3)得到:其中,l+c(m)表示数据点的路径长度,E(l+c(m))表示数据点x在所有树中的路径长度的平均值,m表示数据点x所在的叶子节点包含点的个数,当m=1时c(m)等于0;
如果s值越大,则数据点的异常程度越大,当s趋向于1时,表明该点属于异常点,当s趋向于0时,表明该点属于正常点。