智能手机影像支持的水质监测算法与应用
2022-04-25李俊生张方方王胜蕾殷子瑶
李俊生,高 敏,张 兵,张方方,王胜蕾,殷子瑶,谢 娅
1.中国科学院空天信息创新研究院数字地球重点实验室,北京 100094;2.可持续发展大数据国际研究中心,北京 100094;3.中国科学院大学电子电气与通信工程学院,北京100049;4.中国地质大学(北京)地球科学与资源学院,北京 100083;5.中国科学院大学资源与环境学院,北京 100049
相对于水面采样的常规水质监测方法,基于卫星遥感的水质监测具有范围大和速度快等优势[1-2],但是也经常受到云覆盖和影像空间分辨率不足等的限制。随着智能手机的普及和宽带通信网络的发展,智能手机搭载的相机(相当于包含红、绿、蓝3个波段的多光谱遥感器)为水质监测提供了新的手段[3-6]。基于智能手机拍摄的水体影像监测水质状况,具有较高的空间分辨率,并且不受云覆盖的影响,可以成为常规水面采样和卫星遥感监测水质的有益补充。
国内外已有一些利用智能手机拍照功能进行水质监测的研究。英国生态水文中心(UK Centre for Ecology & Hydrology)开发了Bloomin ’ Algae智能手机应用程序(https:∥www.ceh.ac.uk/algal-blooms/bloomin-algae),利用手机拍照和定位功能上报湖库河流中的蓝绿藻水华现象,辅助决策部门进行水华监测和治理。欧洲海岸海洋光学监测公众观测站项目(Citizens ’ Observatory for Coast and Ocean Optical Monitoring)开发了EyeOnWater智能手机应用程序(http:∥www.eyeonwater.org/),通过手机照片利用人眼比对得到水色指数(Forel-Ule index,FUI),为全球地表湖库和近岸水体水质空间分布提供数据资料[7]。但是,这些研究只是利用智能手机相机拍摄并记录水体照片,并没有进一步利用水体照片去反演水质参数,因而没有充分挖掘智能手机在水质监测中的潜力。美国红杉科学公司(Sequoia Scientific Inc.)研发了一款HydroColor智能手机应用程序,将手机相机作为一个3波段的遥感光谱辐射计,用户根据指导信息分别拍摄参考卡、水体、天空的3张图片,并通过这些照片计算红、绿、蓝3个波段的水体离水反射率,并在此基础上估算水体浊度和悬浮物浓度[8]。由于必须拍摄参考卡,HydroColor不适用于没有参考卡的非专业用户,因此推广受限。此外,HydroColor也存在一些技术问题,如缺乏对相机曝光参数变化、数码值非线性响应等方面的校正,导致反演结果存在很大的不确定性[9]。目前,还缺乏基于智能手机拍摄的水面照片且无参考卡等辅助设备的水质参数反演方法的系统性研究,限制了智能手机在水质监测中的广泛应用。
本文的目的是要解决基于智能手机的水质监测的主要问题,促进智能手机在水质监测中的广泛应用。首先,构建基于智能手机照片且无参考卡等辅助设备条件下的典型水质监测模型,包括水色指数、透明度、营养状态等级、蓝藻水华、黑臭水体;然后,基于这些模型开发“观水色”app,并在典型研究区对“观水色”app的应用效果进行评价;最后,分析白平衡、不同相机设备、照片存储格式对于基于智能手机的水质监测的影响。
1 基于数码照片的水质监测模型
1.1 水色指数计算模型
水体颜色是太阳光与水中物质相互作用的结果,与水中各种光敏组分的吸收和散射作用密切相关,能够表征水质状况[10-11]。早在一百多年前,人们已经开始了利用手持福莱尔水色计(Forel-Ule scale)通过现场比对来记录水体颜色(图1),将自然水体颜色从深蓝到红棕色分为21个级别,可以称之为水色指数(FUI)。水色指数与水体的浑浊程度相关,越偏蓝色的水体一般越清洁,越偏黄色的水体一般越浑浊[12]。
图1 福莱尔水色计
随着卫星遥感技术的发展,拥有红、绿、蓝3个波段的卫星遥感数据也开始被用于计算水色指数[13]。彩色数码照片也有红、绿、蓝(R、G、B)3个波段,也可以用于计算水色指数。
首先,将数码照片的R、G、B波段的数码值(digital number,DN)转换成国际照明委员会(Commission Internationale de l ’Eclairage,CIE)标准颜色系统的光谱三刺激值X、Y、Z[14]
X=2.768 9R+1.751 7G+1.130 2B
(1)
Y=1.000 0R+4.590 7G+0.060 1B
(2)
Z=0.000 0R+0.056 5G+5.593 4B
(3)
然后,将三刺激值XYZ转换成二维色度图上的坐标x、y
x=X/(X+Y+Z)
(4)
y=Y/(X+Y+Z)
(5)
再根据二维色度图中的坐标(x,y)利用双变量反正切函数(arctan2)计算色度角α
α=((arctan2(y-1/3,x-1/3))×180/π)+180
(6)
最后,基于色度角和水色指数的查找表[13](表1),查找与α最邻近的色度角值,该色度角值对应的FUI值即为水体的水色指数。
表1 色度角和水色指数的查找表
1.2 透明度反演模型
水体透明度是表征水体清澈程度的水质参数,通常使用30 cm直径的白色或者黑白相间的塞氏盘在水面测量得到,从水面到刚好看不到塞氏盘的深度被称为水体的透明度(ZSD)。水体的透明度可以反映水体的浑浊程度,也可以参与评价水体的富营养程度,是环保部门关注的水质参数之一[15]。
笔者于2009—2019年间在三峡水库、新庙泡、月亮泡、长江、丹江口水库、青海湖、渤海、太湖、滇池、官厅水库、于桥水库、沙厂水库、白洋淀13个研究区开展了水面试验,获取了186个采样点的透明度实测数据,同时还利用相机设备拍摄了水体的数码照片。其中,三峡水库、新庙泡、月亮泡、长江的35个点属于浑浊水体,丹江口水库、青海湖、渤海的49个点属于清洁水体,太湖、滇池、官厅水库、于桥水库、沙厂水库、白洋淀的102个点属于一般水体。
利用这些水体照片和实测透明度数据构建透明度反演模型。首先,从这些水体照片中裁剪比较均匀的水体区域,避免太阳耀斑、阴影遮挡和水面漂浮物。计算裁剪照片R、G、B波段像素值的中值,可以降低噪声影响。然后,利用R、G、B的中值计算色度角α、波段比值等光谱指数,与同步测量的透明度进行统计回归,发现色度角α与透明度的相关性最高,拟合度R2为0.77,散点图如图2所示,得到基于色度角α的透明度反演公式
图2 水体照片计算的色度角与同步实测透明度的拟合模型
ZSD=32.27×exp(-0.020 4×α)
(7)
1.3 营养状态分级模型
水体富营养化是指随着水体中的营养物质的增多,水体中藻类快速生长的现象[16]。水体富营养化会导致水体透明度下降、水质恶化、水生态功能受损。除了富营养,水体的营养状态等级还包括贫营养和中营养,分别对应于水体中的营养物质和藻类很少以及一般的情况。
水体的营养状态评价的常用方法是利用叶绿素a浓度计算营养状态指数,再根据阈值确定贫营养、中营养、富营养[17]。智能手机拍摄的水体照片只有R、G、B3个波段,很难用于浑浊内陆水体的叶绿素a浓度反演。由于水体的营养状态与水体的颜色有关,因此水色指数FUI被用于构建判别水体营养状态等级的决策树模型[11],如图3所示。
图3 基于水色指数的水体营养状态等级判别决策树模型
由于智能手机拍摄的数码照片的DN值在没有参考卡等辅助设备的支持下不容易计算为反射率,所以在应用基于水色指数FUI的水体营养状态等级判别决策树模型时,无法使用645 nm的红波段遥感反射率(Rrs(645))阈值判断这个条件。这会导致一部分中营养被误判为富营养,将来在应用的时候要注意。
1.4 蓝藻水华识别模型
富营养化水体在一定条件下可能暴发蓝藻水华,即大量蓝藻在伪空泡的作用下聚集在水体表面,影响太阳光入射到水面以下,降低透明度,使水体缺氧,损坏水生态系统,对渔业和人们生产生活都带来极大威胁[18]。
由于蓝藻水华暴发时大量藻类聚集在水面,导致水体颜色呈现比较鲜艳的绿色,与其他水体在颜色上存在明显的差异。选择4张代表性的蓝藻水华、一般水体、清洁水体、浑浊水体的照片,提取R、G、B波段的DN值,得到4种水体的光谱曲线如图4(a)所示。由图4(a)可知,蓝藻水华的绿波段明显高于蓝和红波段,与其他类型水体有明显的区别。为了识别蓝藻水华,我们利用蓝藻水华的这种光谱特征建立了一种光谱指数rG(绿光与蓝红均值的比值)
rG=G/(B/2+R/2)
(8)
为了研究光谱指数rG在识别蓝藻水华上的效果,在南淝河获取了22个站点的蓝藻水华照片。计算这些蓝藻水华照片的rG,同时计算1.2节中介绍的13个研究区的186个站点的非蓝藻水华水体照片的rG,结果如图4(b)横轴所示。由图4(b)可知,蓝藻水华的rG值都比较高,都大于1.555;全部浑浊水体的rG都小于1.555,因为浑浊水体R波段明显大于G波段;大部分一般水体都小于1.555,但是也有个别一般水体大于1.555,可能是颜色偏绿的富营养化水体;很多清洁水体的rG都大于1.555,这主要是由于清洁水体的R波段非常低导致的。
利用rG识别蓝藻水华的最大干扰是清洁水体。为了进一步区分清洁水体以及一小部分一般水体,又建立了一种光谱指数rB(蓝光与绿红均值的比值)
rB=B/(G/2+R/2)
(9)
4种典型水体的rB如图4(b)纵轴所示。由图4(b)可知,清洁水体的rB都明显大于蓝藻水华,因此很容易区分。但是,很难完全将一般水体和蓝藻水华区分开,因为部分富营养化水体的颜色可能跟蓝藻水华比较接近。为了尽可能地减少误判,本文利用rB<0.565来进一步识别蓝藻水华,发现只有1个蓝藻水华被误判为一般水体,没有一般水体误判为蓝藻水华,总体识别精度获得提高。因此,得到蓝藻水华识别模型如下
图4 蓝藻水华和其他类型水体的光谱曲线和光谱指数分类
rG>1.555 且rB<0.565
(10)
需要说明的是,判别为蓝藻水华的水体,将其营养状态设置为富营养;因为蓝藻水华遮挡了水面,因此不再反演透明度;蓝藻水华一般也不是黑臭水体,因此不再判断黑臭水体。
1.5 黑臭水体识别模型
黑臭水体一般是指颜色偏黑、气味发臭的水体,是比较严重的水体污染现象。2015年国务院颁布的《水污染防治行动计划》(水十条)中明确给出了治理城市黑臭水体的时间节点,黑臭水体的监测和治理受到越来越多的关注[19]。
黑臭水体的气味只能通过测量人员现场记录,颜色可以通过数码照片进行识别。黑臭水体一般呈现黑色或者灰色,与其他水体在颜色上存在明显的差异。黑色和灰色水体的光谱特征是R、G、B3个波段的DN值比较接近。作为对比,清洁水体的B波段比较高,蓝藻水华的G波段比较高,浑浊水体的R波段比较高。为了判别黑臭水体,除了使用蓝藻水华判别模型中用到的rG和rB,进一步增加一个光谱指数rR(红光与蓝绿均值的比值)
rR=R/(G/2+B/2)
(11)
与其他水体相比,黑臭水体的rR、rG和rB应该都比较小。为了确定黑臭水体判别阈值,获取了沈阳市内河流13个点的黑臭水体照片,结合1.2节中介绍的13个研究区的186个站点的非黑臭水体照片,分别计算rR、rG和rB。发现13个黑臭水体可以同时满足下面3个判断条件,而其他186个非黑臭水体都不满足,因此得到黑臭水体判别模型
rR<1.05 且rG<1.13 且rB<1.29
(12)
利用上面的模型,所有黑臭水体和一般水体都没有误判。
需要说明的是,黑臭水体属于比较特殊的水体污染,判别为黑臭水体之后,不再反演透明度、识别蓝藻水华、判断营养状态。
2 “观水色”app开发和典型应用
2.1 “观水色”app开发
基于数码照片的水质监测算法,笔者开发了基于安卓智能手机操作系统的“观水色”app:首先,利用手机陀螺仪控制相机的方向,利用相机拍摄照片后上传到云端;然后,利用云端部署的程序基于照片反演水质参数和识别水体污染;最后,将反演和识别结果返回并显示在手机端。app主要操作界面如图5所示。
首先,用户根据现场情况选择3个信息:是否有参考卡、是否见底、是否有臭味。其中,如果有参考卡,这是面向有特制参考卡的专业用户预留的功能[9],不在本文讨论的范围。如果用户选择见底,那么照片反映的是水体和水底共同的信息,很难用来反演水质参数。如果用户选择有臭味,这是专门为黑臭水体监测模块服务的,作为判别黑臭水体的条件之一。
然后,用户利用手机相机拍摄水体照片,需要设置合理的观测几何来尽量避开太阳耀斑的影响,可以参考水体光谱测量规范的角度[20-21]。设计了一个垂直角度标尺,可以利用智能手机搭载的陀螺仪实时显示手机相机垂直向外的角度,以手机相机垂直向下为0°。垂直标尺设置3种颜色,其中20°~30°为绿色,是希望用户首选的拍摄角度;10°~20°和30°~40°为黄色,也允许用户拍摄;0~10°和40°~90°为红色,不允许用户拍摄。此外,利用智能手机搭载的GPS确定的经纬度和时钟记录的日期和时间,可以计算得到太阳方位角。设计了一个圆形的水平方位度盘,根据计算得到的太阳方位角,确定太阳在度盘上的位置。将水平方位度盘显示为3种颜色,与太阳方位夹角为135°(±22.5°)设置为绿色,是希望用户首选的拍摄角度;为了考虑到在拍摄水体照片的实际限制,将背向太阳的180°(±22.5°)设置为黄色,也允许用户拍摄;将面向太阳的0°(±67.5°)设置为红色,不允许用户拍摄。
用户拍摄好水体照片之后,要求用户裁剪比较均匀的水体区域,避开水面漂浮物和阴影等干扰。拍摄和裁剪水体照片之后,还要拍摄天空照片。天空照片主要是为了记录当时的天气状况,并不参与水质参数反演运算。设计了垂直标尺,请用户垂直向上拍摄天空照片。
用户拍摄好水体和天空照片之后,单击计算按钮,系统会根据前面的算法计算相应的水质监测结果,然后在弹出的页面将反演结果显示出来。
图5是在青海湖岸边使用“观水色”app拍摄照片并返回的水质监测结果。
图5 “观水色”app操作和计算结果页面
2.2 “观水色”app典型应用及评价
“观水色”app 1.0.0版本于2021年1月11日上架腾讯“应用宝”安卓应用app市场以后,在不同水体开展了一些试验来初步检验“观水色”app的应用效果。于2021年7—9月在青海湖、三亚河、岗南水库、黄壁庄水库、王快水库、微山湖、昭阳湖7个研究区的7个站点开展试验,一方面利用“观水色”app拍摄水体照片,计算水质参数;同步利用地物光谱仪测量水面遥感反射率光谱,并利用塞氏盘测量水体透明度;现场还采集了水样,送到试验室内测量叶绿素a浓度,用于计算营养状态等级。利用这些实测数据,对“观水色”app的水质监测结果进行了精度评价。
与传统的利用手持福莱尔水色计在水面目视比对来确定水色指数FUI相比,利用水面测量的遥感反射率光谱计算FUI的精度更高,可以作为评价水面照片计算FUI的真值[13]。利用实测的水面遥感反射率光谱计算FUI作为真值,评价“观水色”app反演的FUI结果,得到平均相对误差为4.6%,拟合度R2为0.86。利用实测的透明度作为真值,评价“观水色”app反演的透明度结果,得到拟合度R2为0.73,平均相对误差为29.9%,与基于卫星遥感的透明度反演精度相当[22]。利用实测的绿素a浓度数据计算营养状态等级,得到青海湖为贫营养,王快水库为中营养,其他5个水体为富营养,以这个数据作为真值评价“观水色”app反演的营养状态等级结果,发现只有王快水库被误判为富营养,其余6个水体判别正确,总体判别精度为85.7%。7个研究区试验没有发现蓝藻水华和黑臭水体,“观水色”app的反演结果也是全部非蓝藻水华和非黑臭水体,蓝藻水华和黑臭水体的误提率为0。
以上试验初步说明了“观水色”app监测的水质结果具有相对较高的精度。不过,目前的检验数据还比较少,未来还需要开展大量的试验获取更多的试验数据,对“观水色”app监测结果进行评价,并根据检验结果对水质监测模型做进一步优化。
3 讨 论
“观水色”app在应用过程中可能受到很多因素的影响,比如白平衡、不同相机设备、照片存储格式等,下面分别进行讨论。
3.1 白平衡的影响分析
白平衡是数码相机的一个重要参数,通过调整数码相机的R、G、B波段的响应比例,使得数码照片上各种物体都保持原来真实的颜色。如果白平衡设置有误,照片就可能发生偏色,可能偏蓝,也可能偏黄。
为了分析白平衡设置不同造成的照片偏色对水质监测的影响,我们选择5个典型水体(清洁水体、一般水体、浑浊水体、蓝藻水华、黑臭水体)的照片,在正常白平衡的基础上,修改白平衡,分别使得照片偏蓝和偏黄,如图6所示。
将图6中的清洁水体、一般水体、浑浊水体照片代入FUI、透明度、营养状态等级反演模型,得到水质反演结果见表2。由表2可知,照片偏色对于清洁水体的FUI没有影响,但是对于一般水体和浑浊水体的FUI影响非常大;照片偏色对于所有水体的透明度反演影响都很大,其中对于浑浊水体的影响最大;照片偏色不会误判清洁水体营养状态等级,但是会误判一般水体和浑浊水体的营养状态等级。
表2 不同白平衡设置下的3种典型水体照片的水质监测结果
将图6中的清洁水体、一般水体、浑浊水体、蓝藻水华、黑臭水体照片代入蓝藻水华和黑臭水体判别模型,结果表明:①所有蓝藻水华照片都被判为蓝藻水华,所有非蓝藻水华照片都被判为非蓝藻水华,说明蓝藻水华判别受照片偏色的影响比较小;②所有非黑臭水体照片都被判非黑臭水体,但是偏蓝和偏黄的黑臭水体照片都被误判为非黑臭水体,说明黑臭水体判别受照片偏色的影响比较大。
图6 不同白平衡设置下的5种典型水体照片对比
总的来说,白平衡设置错误导致的照片偏色会影响水质监测结果,一般偏色越严重的影响会越大。“观水色”app调用的是智能手机相机的自动白平衡模式,在户外日照充足的条件下一般都能够准确地设置白平衡参数,不会导致明显的照片偏色,因此对于水质监测不会产生明显影响。自动白平衡可能会在早晨或者傍晚产生偏差,因此应该尽量避开早晨或者傍晚使用“观水色”app。如果要在白平衡失效的条件下使用,可以在拍摄水体照片时同时拍摄参考卡,然后利用参考卡校正照片的白平衡,再用于反演水质参数和识别水体污染。
3.2 不同相机设备的影响分析
不同品牌和型号的数码相机设备(包括单反相机、微单相机、卡片机、智能手机相机等)拍摄照片时,可能会对照片的颜色产生一些影响。这些影响主要包括相机R、G、B各波段的光谱响应函数的差别、图像处理系统的差别等。遥感器的每个波段对于不同波长的入射光的响应是不同的,每个波段在不同波长的响应连成曲线就是这个波段的光谱响应函数[23]。数码相机有R、G、B3个波段,每个波段都有自己的光谱响应函数。由于数码相机的主要目标是真实地还原人眼看见的物体颜色,因此数码相机的各波段的光谱响应函数都是模仿人眼的R、G、B3种感光细胞的光谱响应函数,各种数码相机设备(包括手机相机)的光谱响应函数都是比较相似的。每台数码相机都有图像处理系统,将感光元件接收的光信号通过一系列处理存储为照片格式。同样的,为了还原物体的真实颜色,数码相机的图像处理系统也是相似的。
为了定量分析不同相机设备对于照片颜色的影响,选择3种相机设备(华为Mate30、iPhone6、佳能50D)进行研究,在光照充足的室外环境下拍摄18色卡(图7),此时3种相机的自动白平衡结果应该是比较准确的。然后,计算3张照片中每一个色卡的平均色度角。最后,计算同一个色卡在3张照片计算的色度角的变化率(标准差/均值),再计算18个色卡的平均变化率,只有1.1%。这说明不同的相机设备对于水体照片颜色的影响非常小,几乎可以忽略不计。因此,“观水色”app中的水质参数模型也适用于各种智能手机相机(暂时只支持安卓系统)。
图7 典型数码相机设备拍摄的18色卡照片对比
3.3 照片存储格式的影响分析
数码相机拍摄的照片一般有两种格式:RAW和JPG。RAW格式照片的优点是保存信息丰富,缺点是文件比较大,而且很多手机app无法处理RAW格式照片。JPG格式的优点是文件比较小,处理方便,缺点是进行了有损压缩,损失了一些信息。“观水色”app使用了JPG格式保存和处理照片,因此有必要研究JPG压缩格式损失的信息是否影响水质监测结果。
利用佳能50D相机拍摄18色卡,同时存储为RAW和JPG格式照片。首先,利用Photoshop软件打开RAW格式照片,导出为无损TIFF格式照片。然后,提取每个色卡中央像素在TIFF和JPG格式图像上的R、G、B波段的DN值,散点图如图8所示。由图8可知,绝大部分点都落在1∶1线上,说明JPG压缩没有对18色卡中央像素产生明显影响。JPG压缩主要是压缩高频信息,也就是图像灰度变化比较大的区域,18色卡是比较均匀的,水体一般也都是比较均匀的区域,所以JPG压缩对于水体照片DN值的影响是非常小甚至可以忽略的,因此“观水色”app中使用JPG格式存储照片而损失的细节信息对于水质监测几乎没有影响。
4 结 论
本文构建了基于数码照片的典型水质监测模型,开发了智能手机安卓系统的“观水色”app,并在典型研究区对“观水色”app的应用效果进行了评价,最后讨论了一些主要因素的影响。
首先,本文构建了基于数码照片的典型水质监测模型。基于数码照片的R、G、B3个波段可以计算三刺激值、色度坐标和色度角,并根据查找表确定水色指数FUI。基于不同浑浊程度的研究区的实测透明度和同步拍摄数码照片数据,构建了基于色度角的透明度反演模型。基于水色指数的决策树方法,可以实现营养状态等级分类。基于蓝藻水华照片和普通水体数码照片的光谱特征分析,构建了基于绿光与蓝红均值比值、蓝光与绿红均值比值的阈值分割的蓝藻水华识别模型。基于黑臭水体照片和普通水体照片的光谱特征分析,构建了基于红光与蓝绿均值比值、绿光与蓝红均值比值、蓝光与绿红均值比值的阈值分割的黑臭水体识别模型。
然后,基于数码照片的典型水质监测模型,开发了智能手机安卓系统的“观水色”app。在青海湖和三亚河等研究区开展试验,利用水面实测数据检验了“观水色”app的水质监测结果,得到FUI和透明度的平均相对误差分别为4.6%和29.9%,营养状态分级的精度为85.7%,蓝藻水华和黑臭水体的误判率为0。未来需要开展更多试验进一步检验“观水色”app应用效果的稳定性。
最后,讨论了一些因素对于智能手机监测水质的影响。分析结果表明白平衡对于水质监测影响很大,因此需要尽量避免在白平衡容易失效的早晨或者傍晚使用“观水色”app。不同相机的设计都是为了尽可能还原物体真实颜色,因此对于水质监测的影响非常小,“观水色”app适用于各种类型的安卓系统手机。由于水体比较均匀,JPG压缩照片格式对于水质监测基本没有影响。
本文的研究结果证明了智能手机可以在水质监测中发挥重要作用,“观水色”app有利于推动智能手机在水质监测中的广泛应用。