主权项 |
一种基于GWR和BP神经网络的分布式水深预测方法,其特征在于,包括以下步骤:(1)、对遥感图像进行预处理(1.1)、对遥感图像进行辐射定标;(1.2)、利用黑暗像元法对辐射定标后的遥感图像进行大气校正;(1.3)、利用CCRS模型对大气校正后的遥感图像进行几何校正;(1.4)、利用高斯低通滤波对几何校正后的遥感图像进行增强处理;(1.5)、对增强处理后的遥感图像进行水陆分离;通过高斯‑拉普拉斯算子(LoG)对增强处理后的遥感图像进行边缘检测,从而进行水陆分离;(2)、提取实测水深点水深值和蓝、绿波段DN值,建立采样数据库在提取实测水深值前,将激光雷达采集到的实测水深值投影到遥感图像的坐标系下,使实测水深值与遥感图像中蓝、绿波段相应的DN值对应,再提取实测水深点的水深值和蓝、绿波段DN值,建立采样数据库;(3)、基于GWR方法建立区域神经网络水深预测模型(3.1)、从采样数据库中随机抽取部分采样数据作为训练数据;(3.2)、将待预测区域划分成n个子区域;(3.3)、选取每个子区域的BP神经网络结构当子区域内采样点个数于30时,选取三层BP神经网络结构,其余均采用四层BP神经网络结构;(3.4)、建立区域神经网络水深预测模型在第j,j=1,2,…,n个子区域中,以点x处的蓝、绿波段DN值作为输入值,即in(x)=(blue(x),grn(x)),以实测水深值depth(x)为输出参考值,采用Levenberg‑Marquardt算法训练区域神经网络水深预测模型的参数,即每层节点之间的权值矩阵和阈值矩阵;计算区域神经网络水深预测模型的输出值Out(x),比较Out(x)与depth(x)的差值error(x)与预设的误差值η的大小,如果error(x)<η,则该子区域神经网络水深预测模型训练完成,并进入下一子区域训练;如果error(x)≥η则采用Levenberg‑Marquardt算法重新训练区域神经网络水深预测模型的参数,直至该子区域神经网络水深预测模型的输出值Out(x)与实测水深值depth(x)的差值error(x)小于预设的误差值η;通过上述方法依次训练完完每个子区域后,建立起区域神经网络水深预测模型net<sub>j</sub>。(4)、建立分布式神经网络水深预测模型(4.1)、确定点λ周围所有子区域的神经网络水深预测模型输出值设待预测区域内任意一点λ的坐标为(x<sub>λ</sub>,y<sub>λ</sub>),则点λ周围m个子区域的中心点坐标表示为(x<sub>i</sub>,y<sub>i</sub>),i=1,2,...,m,m≤n,m为点λ周围的子区域个数;以点λ的蓝波段和绿波段DN值作为步骤(3)训练得到的区域神经网络预测模型的输入值in(λ)=(blue(λ),grn(λ)),其中blue(λ)和grn(λ)分别为点λ处蓝波段和绿波段DN值,根据步骤(3)训练得到的区域神经网络水深预测模型,提取点λ周围的m个子区域神经网络水深预测模型net<sub>i</sub>,i=1,...,m,得到点λ周围的m个子区域神经网络水深预测模型的输出值Out<sub>i</sub>(λ),i=1,2,…,m,即Out<sub>i</sub>(λ)=net<sub>i</sub>(in(λ))(4.2)、设计点λ周围所有子区域的神经网络水深预测模型的加权因子<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>α</mi><mi>i</mi></msub><mo>=</mo><mfrac><msub><mi>β</mi><mi>i</mi></msub><mrow><msub><mi>Σ</mi><mi>i</mi></msub><msub><mi>β</mi><mi>i</mi></msub></mrow></mfrac></mrow>]]></math><img file="FDA0000662344690000021.GIF" wi="229" he="147" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>β</mi><mi>i</mi></msub><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mfrac><mn>1</mn><mrow><mo>|</mo><mo>|</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>λ</mi></msub><mo>,</mo><msub><mi>y</mi><mi>λ</mi></msub><mo>)</mo></mrow><mo>|</mo><mo>|</mo><mo>-</mo><mi>b</mi></mrow></mfrac><mo>,</mo></mtd><mtd><mo>|</mo><mo>|</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>λ</mi></msub><mo>,</mo><msub><mi>y</mi><mi>λ</mi></msub><mo>)</mo></mrow><mo>|</mo><mo>|</mo><mo>></mo><mi>b</mi></mtd></mtr><mtr><mtd><msub><mi>k</mi><mi>i</mi></msub><mo>·</mo><mfrac><mn>1</mn><mrow><mo>|</mo><mo>|</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>λ</mi></msub><mo>,</mo><msub><mi>y</mi><mi>λ</mi></msub><mo>)</mo></mrow><mo>|</mo><mo>|</mo><mo>-</mo><mi>b</mi></mrow></mfrac><mo>+</mo><mi>σ</mi><mo>,</mo></mtd><mtd><mi>otherwise</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000662344690000022.GIF" wi="1055" he="277" /></maths>其中,α<sub>i</sub>(i=1,2,...,m)是点λ周围的m个子区域神经网络水深预测模型的加权因子;<img file="FDA0000662344690000023.GIF" wi="856" he="96" />是点(x<sub>i</sub>,y<sub>i</sub>)与点(x<sub>λ</sub>,y<sub>λ</sub>)之间的欧式距离,b是子区域的区域半径,k和σ是可调节参数;(4.3)、建立整个待预测区域的分布式神经网络预测模型<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>pout</mi><mrow><mo>(</mo><mi>λ</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msub><mi>α</mi><mi>i</mi></msub><mo>×</mo><msub><mi>Out</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>λ</mi><mo>)</mo></mrow><mo>,</mo><mn>0</mn><mo><</mo><msub><mi>α</mi><mi>i</mi></msub><mo><</mo><mn>1</mn><mo>,</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>m</mi></mrow>]]></math><img file="FDA0000662344690000024.GIF" wi="933" he="131" /></maths>分布式神经网络预测模型的输出值pout(λ),即为点λ的水深预测值;(4.4)、检验分布式神经网络预测模型的预测精度利用剩余的采样数据作为测试数据对分布式神经网络预测模型进行测试,具体如下:以测试水深点的蓝、绿波段DN值为分布式模型的输入值,模型的输出值为测试水深点的预测水深值;然后比较模型的输出值与实测水深值的差值可以得到分布式神经网络水深预测模型的预测精度。 |