金 晶,毛 星,张 欣,刘 杨,陆学文,任 妮
(江苏省农业科学院信息中心,江苏 南京 210014)
淡水养殖为全球粮食安全和人类生计做出了重大贡献。我国淡水养殖水产品占世界总产量的60% 以上[1]。2020 年,江苏省淡水养殖产值达1 065.81 亿元,约占全国总产值的16.69%。作为拉动经济增长、促进农民增收的重要突破口,淡水养殖对加快实现乡村振兴具有重要意义[2]。及时、动态、精准地掌握淡水养殖的空间分布,对于水产养殖管理的标准化和智能化至关重要。传统的淡水养殖数据主要来源于统计上报,数据收集耗时费力、更新速度慢,且准确性较低。卫星遥感影像能够实现对区域养殖空间分布信息的宏观感知,是水产养殖动态监测的重要数据源[3]。
在水产养殖区域的遥感识别领域,现有研究已基于图像的光谱、纹理等特征提出了多种分类方法。光谱阈值法是早期养殖水体识别的常用方法,通过分析不同地物在单波段[4‐5]或多波段组合[6‐7]上的特征差异,提出区分养殖区域的阈值。由于阈值法只考虑各波段的光谱信息,但实际上养殖区域与河流湖泊等其他水体光谱差异较小,很容易出现“椒盐”噪声,使得分类效果较差。基于空间结构的方法能够有效利用图像的纹理特征、邻域特征[8‐9],相较于分布零散的内陆淡水养殖区域,更加适用于近海养殖等集中养殖区域的识别。基于机器学习的支持向量机(Support vector machine,SVM)[10]、决策树[11]和随机森林[12]等分类方法不但消除了阈值设定带来的主观性误差,而且充分利用了图像的光谱纹理融合特征,使得该方法在适用性和精度方面都有了一定的提升。随着深度学习技术的出现,卷积神经网络(Convolutional neural network,CNN)在遥感影像场景分类、目标识别和影像分割中的应用越来越广泛[13‐16]。CUI 等[17]改进了U-Net 模型,提出了一种端到端的筏式养殖区提取模型,可以自适应地融合边界减少粘连现象,并以连云港近海筏式养殖区为例,验证了模型的实用性与可靠性。ZENG等[18]提出了一种用于提取水产养殖池塘的全卷积神经网络(Fully convolutional network,FCN),在2 m 多光谱融合影像中的试验精度达85%。FU 等[19]基于VGG-16提出了适合近海养殖提取的层级级联模型HCNet,可以有效识别和区分不同种类的海水养殖区。总体而言,卷积神经网络模型对遥感影像光谱和纹理特征非常敏锐[20],能够有效降低养殖区域错分、漏分的情况,对水陆边界的识别也更加精准。
虽然近年来遥感影像解译水产养殖区域的研究取得了较多的成果,但上述研究大多针对图像特征较为明显的近海养殖[21]和围湖养殖[22]区域,少有涉及空间分布较为零散的内陆养殖区域。内陆养殖池塘周围经常混有空间特征相似的农用坑塘水体,且养殖池塘的遥感影像光谱易与河流、湖泊、水库等水域混淆[23],因此难以直接通过传统分类方式进行区分。此外,不同类型水产品种养殖池塘的波谱曲线变化趋势相近,而通用的卷积神经网络模型忽略了像素之间的关系,且采样卷积过程易丢失细节信息[24]。为了更加精准、高效地识别内陆淡水养殖池塘,基于多光谱Sentinel-2 卫星影像数据,提出一种结合卷积神经网络和随机森林算法的淡水养殖池塘识别方法。该方法在卷积神经网络中引入注意力机制,以提高边界和零碎图斑的识别能力,同时利用植被、水体指数纹理特征优化随机森林算法,提高不同水产品种养殖池塘的空间特性的利用效率,并以宜兴市为例实现了淡水养殖池塘的自动提取,以期为精准水产养殖服务提供有效信息支撑和决策支持。
宜兴市隶属江苏省无锡市,位于北纬31°07´~31°37´,东经119°31´~120°03´,面积1 996.6 km2,境内水域面积占比达16.75%,水文气候条件适合温水鱼类和虾蟹等水产养殖[25],是太湖地区水产养殖面积最大的县市(图1)。2016 年,宜兴水产品总量达8.18万t,渔业总产值17.86亿元,占全市农业总产值的20.63%[26]。
图1 研究区位置Fig.1 Location of the study area
1.2.1 遥感数据及预处理 本研究选用Sentinel-2 L1C 级影像产品作为遥感数据的主要数据源(下载于美国USGS 网站:https://earthexplorer.usgs.gov/)。该影像包含13个波段,研究中选取了其中能够反映养殖池塘复杂水生环境的可见光、植被红边、近红外和短波红外等9个波段进行分析。该数据最高空间分辨率可达10 m,因此可以清晰识别池塘边界。通过利用SNAP 软件对影像进行大气校正得到L2A级产品,再将影像空间分辨率重采样至10 m。另外,由于植被指数和水体指数能够有效反映养殖池塘的地物特征,因此与卫星原始波段融合后进行归一化处理,从而得到归一化植被指数(Normalized difference vegetation index,NDVI)和归一化水体指数(Normalized difference water index,NDWI)。数据波段信息如表1所示。
表1 使用的Sentinel-2数据波段描述Tab.1 Description of the Sentinel-2 data bands used in this study
1.2.2 实地调研数据 根据2017 年度渔情统计数据,宜兴市以螃蟹和常规鱼2种池塘养殖模式为主。为了获取研究区内养殖水体类型的真实分布情况,于2021 年6 月对蟹塘和鱼塘进行了实地调研,使用手持GPS 记录了采样点的经纬度信息、养殖类型,累积采集67 个养殖区样本点,其中蟹塘48 个、鱼塘19个。此外,为增加样本数量,基于同时期高分2号卫星影像,采用目视解译的方法获取36 个蟹塘样本,15 个鱼塘样本。因此,研究区内共采集了蟹塘样本84个,鱼塘样本34个(图2)。
图2 通过实地GPS采集和目视解译获得的采样点分布Fig.2 Distribution of sampling points obtained by field GPS acquisition and visual interpretation
相比于鱼塘,蟹塘通常水深较浅,且需要大量种植伊乐藻等水草以提高水体含氧量并为螃蟹提供蜕壳场所[27‐28]。基于蟹塘的具体特征,本研究设计了一种结合卷积神经网络和随机森林的淡水养殖池塘识别方法(图3)。首先根据图像光谱特征,使用卷积神经网络模型识别养殖水体分布;进而利用植被、水体指数的纹理差异,采用随机森林算法从养殖水体中区分鱼塘和蟹塘。
图3 淡水养殖池塘识别技术流程Fig.3 The workflow of freshwater aquaculture pond identification
1.3.1 基于SE-Unet模型的养殖水体分布识别 本研究基于U-Net[29]模型引入注意力机制,改进并设计了用于提取养殖水体的SE-Unet 神经网络模型(图4)。模型整体为U型结构,包括编码和解码2个过程。编码部分通过卷积和下采样操作来降低图像尺寸以获取浅层特性,解码部分则通过卷积和上采样操作增加图像尺寸提取深层特征,浅层输出影像具有较高分辨率,能够确定像素位置,深层输出特征丰富,用来实现像素分类。每一层编码后增加的通道注意力(SE-Inception)模块可以提取不同尺度的空间信息[30],增强养殖池塘的整体位置特征。上采样和下采样之间增加的空间注意力(SESpatial)模块能够逐像素分配不同的权重以增强养殖水体的细节特征。
图4 SE-Unet模型结构Fig.4 Structure of the SE-Unet model
通道注意力机制结构如图5所示。人眼感知遥感影像时,首先关注到的是池塘的整体位置,引入该机制的目的是为了增强养殖池塘与周围环境的位置关联特征。首先对C× H × W的影像进行全局池化得到具有全局感受野的C× 1× 1 特征图,然后进行一次全连接,得到C/16 维度的特征图,接着进行ReLU 非线性激活,再进行一次全连接,将特征图变为C 维,最后通过sigmoid 激活函数得到权重矩阵。通道注意力模块为不同采样大小的图像提供不同的权重,从而保持目标地物整体位置的一致性。
图5 通道注意力模块结构Fig.5 Structure of channel attention module
空间注意力机制结构如图6所示。遥感图像的语义分割中,融合不同编码层的特征信息可以提高像素级预测精度,本研究设计的空间注意力机制能够从行、列2个方向逐像素地增强特征。首先对C×H × W 的影像拆分为H、W 2 个方向进行池化,然后将结果拼接后进行卷积和ReLU 非线性激活得到C/16 × 1×(H + W) 的特征图,接着再分割为C×H × 1 和C× 1× W 2 个维度进行卷积和sigmoid 函数激活,最后加权得到每个像素的权重,与不同编码层的特性信息融合后,可以增强预测图斑的细节信息。
图6 空间注意力模块结构Fig.6 Structure of spatial attention module
内陆淡水养殖分布零散且复杂,模型的损失函数设置需考虑正负样本的均衡情况。研究中选用Dice 函数和BCEWithLogitsLoss 函数的加权作为损失函数:
其中,α是0到1之间的常量系数,用来控制2个损失函数之间的权重平衡。
在损失函数中,Dice 函数用于针对研究区域内正负样本不均衡的情况。该函数将样本区域的整体预测结果与整体真实结果进行比较,而非逐像素地计算精度,适用于像素不平衡的情况。由于样本数据集中存在集中养殖区和零散养殖区,集中养殖区的正样本数量远远大于负样本数量,零散养殖区则与之相反,这种不均衡可能会影响神经网络模型的收敛。函数表达式为:
其中,pi是预测结果标签,qi是标注样本的真实标签,标签值为0或1,N是像素个数。
在损失函数中,BCEWithLogitsLoss 函数则是通过逐像素的比较实现对预测结果的评估。考虑到样本数据集中也存在部分养殖区和非养殖区面积相近的情况,引入该函数能够更加有效地利用背景像素的特征信息,提高卷积神经网络模型的精度。计算公式如下:
其中,ln是单个像素的评估结果,其余参数意义同Dice函数。
Dice 和BCEWithLogitsLoss 函数的结合,使得卷积神经网络模型既能聚焦前景像素,又能充分利用背景像素的特征信息,从而适应样本数据集中目标地物占比值的随机变化,提高模型的整体精度。
本研究模型的搭建基于PyTorch 深度学习框架[31],主要分为样本数据集构建和模型参数调整2个步骤。在样本数据集构建中,采用GeoTIFF作为样本数据集标准格式。截取部分研究区域作为训练样本,采用目视解译的方式进行样本标注,其中养殖水体标注为1,其他要素标注为0。为提高样本的随机性,采用随机窗口的方式获取样本数据。模型提前加载全部样本数据至计算机内存中,训练和测试时每次随机获取样本范围内100 个256×256 窗口大小的数据,并按照一定比例进行旋转、反转、镜像、模糊等数据增强操作。
模型参数调整对模型的训练效率和分类精度起着决定性作用。根据多次预试验结果,设置初始学习率为0.001 并不断进行学习率的调整,每30 个迭代降低学习率为原来的0.9倍,迭代总数1 000次,批处理大小为8,线程数为4。基于预试验结果,损失函数的常量系数α设置为0.3。
1.3.2 基于随机森林算法的养殖水体分类 在获取养殖水体分布后,进一步对其中的蟹塘和鱼塘加以区分。蟹塘一般种植水草,水深较浅,而鱼塘不种植水草,水位较深[32]。由于NDVI和NDWI分别反映了遥感影像的植被和水体信息[33‐34],随机森林算法也已在遥感图像处理中取得较好的效果[35‐37],因此,本研究提出一种基于NDVI 和NDWI 纹理特征的随机森林分类方法,从养殖水体中区分蟹塘和鱼塘。
首先分别计算逐像素NDVI 和NDWI 灰度共生矩阵[38]的均值、方差、对比度、均质性、相异性、熵等12 个纹理特征,进而计算养殖水体图斑12 个纹理特征的平均值和标准差作为模型的输入特征。根据调研数据定义养殖类型标签,其中鱼塘为0,蟹塘为1。将总样本按照7∶3 的比例划分为训练样本和验证样本。决策树个数N设置为200,随机特征变量数K设为特征总数的平方根。
使用混淆矩阵来评价本研究方法的识别精度[8,23]。通过将养殖水体识别结果的30 m 缓冲范围作为非养殖区,在养殖区识别结果内随机生成200个点,在非养殖区内随机生成100个点,作为验证点进行目视解译,生成混淆矩阵。
为分析方法的有效性,将本研究构建的SEUnet 与U-Net[29]、R-FCN[39]深度学习网络模型进行对比,其中R-FCN 是基于ResNet-50 改进的FCN 网络模型。为了避免随机样本带来识别结果的偶然性,对每个模型进行5 次试验后取平均值。将随机森林与SVM、逻辑回归(Logistic regression)算法进行对比分析。SVM 创建时,采用网格搜索的方式选择拟合分数最高的超平面系数,正则化参数C等于0.001、0.01、0.1、1、10、100、1 000,核函数参数γ范围为0.1、0.01、0.005、0.001、0.000 5、0.000 1。逻辑回归的收敛最大迭代次数设置为100,分类方式设为ovr 二分类,使用L2 的惩罚项来防止过拟合。将生产者精度(Producer’s accuracy,PA)、总体精度(Overall accuracy,OA)、交并比(Intersection‐over‐Union,IoU)、kappa系数作为模型的定量评价指标。
根据水产养殖池塘的提取和识别结果(图7),宜兴市2021 年淡水养殖池塘面积为121.25 km2,其中蟹塘面积74.48 km2,鱼塘面积46.77 km2。从空间分布上看,2021 年宜兴市蟹塘和鱼塘的分布较不均匀。蟹塘主要分布在宜兴市西北部的高塍(16.30 km2)、杨巷(14.58 km2)、徐舍(11.11 km2)、官林(11.08 km2)、新建(6.89 km2)、和桥(4.94 km2)6 个乡镇,这些地区的蟹塘面积占全市总养殖面积的87.14%。其中,杨巷、新建和高塍3个乡镇的养殖密度最高,分别占该地区总面积的16.94%、15.53%、14.77%。鱼塘则主要分布在徐舍(11.52 km2)、和桥(10.77 km2)和高塍(5.32 km2)。其中,和桥的养殖密度最高,占该地区总面积的10.00%。
图7 2021年宜兴市淡水养殖区提取结果Fig.7 Identification results of freshwater aquaculture ponds in Yixing City in 2021
养殖池塘识别结果的混淆矩阵表明,本研究提出的淡水养殖池塘识别方法具有较高的准确性,OA为88.33%,kappa 系数为0.824 3(表2)。有7 个验证点被错分为非养殖区,19个点被误分为蟹塘,9个点被误分为鱼塘,蟹塘和鱼塘之间容易出现错分。
表2 养殖区识别结果混淆矩阵Tab.2 Confusion matrix of identification results for aquaculture ponds
语义分割模型的精度评价结果表明,3 种深度学习模型的养殖水体分割的PA 均超过90%,都能够较好地感知影像的空间语义信息(表3)。SEUnet 模型的PA、IoU 和kappa 系数分别为94.05%、0.815 1、0.878 4,均优于U-Net和R-FCN。与U-Net模型相比,SE 注意力机制能够将模型的PA 提高2.61个百分点。
表3 养殖水体分割精度评价Tab.3 Evaluation of the accuracy of aquaculture water segmentation
图8显示了不同方法在集中养殖区和零散养殖区的分割效果,其中黑色为水产养殖区,白色为其他背景地物,红框标注区域为各方法识别差异较大的区域。在集中养殖区,3 种深度学习模型都能够较好地分割和识别大部分养殖区域。相比R-FCN和U-Net,SE-Unet 模型在边缘提取、细碎图斑识别等细节方面表现更佳。在零散养殖区,3 种方法的分割效果差距较大。其中,R-FCN 模型不仅忽略了面积较小的养殖区,在面积中等的养殖区也仅能提取出部分区域;U-Net 模型虽然能够检测到不同面积养殖区的位置,但其提取的养殖区边界较不清晰;相比之下,引入注意力机制的SE-Unet模型能够提高对养殖区域岸堤边界识别的精度。
图8 不同养殖区水体识别效果Fig.8 Identification effect of water in different aquaculture regions
对比2 种不同养殖区域可以发现,深度学习模型在集中养殖区的提取效果明显优于零散养殖区(图8)。结合遥感影像可以看出,集中养殖区的地物图斑更规则,其斑块之间多以田埂堤坝或河沟邻接,地面覆盖类型相对简单;而零散养殖区多分布在村庄附近,与道路农田等相近,其周边的土地利用类型复杂多样。说明深度学习模型的性能依然会受到地表覆盖复杂程度的影响。
通过比较3种养殖池塘水体分类方法的图斑地块精度发现,随机森林在训练集和验证集的准确率均为最高,分别是93%、87%,其训练集准确率比SVM、逻辑回归分别高5、9个百分点,验证集准确率高6、5个百分点。
对于养殖区面积分类情况,3 种机器学习分类方法的总体精度都在85%以上,均能够从养殖区中有效区分蟹塘和鱼塘(表4)。其中,总体效果最好的是随机森林算法,得到的蟹塘PA 为88.22%、鱼塘PA 为99.77%,OA 达94.74%。逻辑回归得到的蟹塘PA 最高,为92.80%,但其鱼塘PA 最低,有较多鱼塘误分为蟹塘的情况。SVM 的蟹塘PA 为81.54%,鱼塘PA为88.20%,OA为85.30%。
表4 3种算法的混淆矩阵、PA和OATab.4 Confusion matrix,PA and OA of the three algorithms
续表4 3种算法的混淆矩阵、PA和OATab.4(Continued) Confusion matrix,PA and OA of the three algorithms
利用遥感影像实现内陆淡水养殖空间分布的快速提取对于水产养殖现代化管理具有重要意义。内陆淡水养殖池塘具有空间分布复杂、养殖品种丰富等特点,不同养殖品种的池塘外观上都呈现矩形等规则形状,光谱特征也较为相似,因此区分不同养殖池塘的水产品种是一项困难的任务。基于不同养殖类型区域的空间特征,本研究提出了一种基于卷积神经网络和随机森林相结合的内陆淡水养殖池塘水产类型识别方法,结合宜兴市野外调研数据,构建了解译标志库,实现了对宜兴市淡水养殖区域的分类、提取和分析。通过充分利用卷积神经网络在空间模式方面的优势以及遥感植被指数和水体指数的纹理特征,实现了鱼塘和蟹塘的准确识别,得出了以下结论。
2021 年宜兴市淡水养殖池塘识别面积121.25 km2,其中蟹塘面积74.48 km2,鱼塘面积46.77 km2,识别结果总体精度为88.33%,kappa系数为0.824 3。《宜兴市养殖水域滩涂规划》显示,近年来该地常规鱼与河蟹养殖面积约127.33 km2,研究识别结果与真实值的误差小于5%,表明SE-Unet模型结果能够真实地反映区域淡水养殖状况。在此前的研究中,ZENG 等[18]提出的RCSANet 模型通过在网络中引入行列注意力机制,使得多个湖泊周围的集中养殖区分类效果都较好。但零散的养殖池塘在整体环境中面积占比很小,且其周围分布有大量影响识别精度的其他地物,针对这一问题,本研究提出的SE-Unet模型使用通道注意力提高了养殖区识别成功率,使用空间注意力提高了养殖池塘边缘识别精度,有效提高了养殖水体语义分割精度。研究设计的Dice 和BCE 相结合的损失函数,也在一定程度上有助于提高养殖池塘的识别效果。另外,统计数据显示,2016 年宜兴市蟹塘面积为82.67 km2,鱼塘面积为44.67 km2[26],这与本研究提取的蟹塘和鱼塘面积相近,说明NDVI 和NDWI 提供的特征作为养殖池塘分类的输入因子对模型精度的提高具有重要意义,有助于从养殖区中进一步区分出蟹塘和鱼塘,为不同养殖品种提供空间分布信息。另外,通过将养殖水体提取方法SE-Unet 与R-FCN、U-Net 对比,发现结合SE 注意力机制和UNet 算法构建的SE-Unet 在边缘检测和细碎图斑识别中表现更加突出,模型的总体精度更高。而在养殖品种分类上,随机森林算法的分类精度高于SVM和逻辑回归算法。因此,研究提出的内陆淡水养殖池塘识别方法是有效的。
随着高密度养殖成为我国水产养殖的重要方式,内陆的淡水养殖对周边生态环境造成了不同程度的污染[8,40]。本研究提出的淡水养殖池塘识别方法可用于实时、动态监测水产养殖区的分布和变化,能够为养殖产业合理规划和生态环境治理决策提供支撑。但研究中也存在一定的局限性。本研究的淡水养殖池塘识别方法虽然具有较高的精度,但前期样本数据获取仍需大量外业调查和目视解译工作,未来还应进一步研发小样本算法,解决标注数据不足等问题[41]。部分蟹塘由于受到环境污染的影响,池塘里的水草会死亡,鱼塘则由于长期不清理长出水花生、蓝藻等悬浮杂质,导致二者之间难以区分,影响分类效果。在后续研究中可以进一步融合长期的时间序列影像来提高养殖池塘的分类精度。另外,本研究区域内养殖品种主要为鱼塘和蟹塘2 种类型,未来可以将该方法扩展到其他区域,以验证其在不同水产养殖品种分类研究中的适用性。