这个项目的目标是利用数据驱动的方法来处理这些数据,特殊是我们希望:
识别卫星图像和作物产量之间的干系性。利用2010-2015年的数据作为演习,建立回归模型以预测产量,并将2016年的产量作为测试集。确定我们可以准确地预测产量。数据源
我通过谷歌地球引擎从4颗38个韶光点的卫星上查询了县级图像,个中1)MODIS Terra地表反射率,2)MODIS地表温度,3)USDA-FAS地表和地下水分,4)USDA-NASS用于masking (共146 GB)。从3月到12月,前3颗卫星的每张图像都是每8天网络一次的(每个县每年统共网络38张图像,每一张都有11个波段)。根据美国农业部的QuickStats数据,在县级网络了ground truth的年度产量。

结果和结论
利用卷积神经网络和递归神经网络的结合,如果我们利用一年拍摄的全部38帧图像,我们能够预测出均匀偏差仅为10%的玉米产量。在大多数紧张的玉米生产县(中西部县),缺点乃至更低(<5%)。但是,由于我们想要进行早期预测,我们每年减少了利用的帧数,并且创造将其减少到仅仅20帧仍旧会导致均匀15%的可接管的缺点。一年中的第20帧与8月相对应,8月是玉米常日在10月收成的前2个月。因此,该模型将利用户能够在时令早期预测县域的玉米产量。
简介决定何时发卖农产品产品以及终极取决于在时令结束时将收成多少产品的决定权一贯是一个寻衅。。如果有办法预测得到多少产量,我们将能够更随意马虎地做出决定。以前的研究能够证明卫星图像可以用来预测栽种每种作物的区域。这留下了理解那些栽种区域的产量的问题。为此,该项目旨在利用来自几个卫星图像的数据来预测作物的产量。在本研究中,我们选择玉米作为例子作物。
该项目旨在利用数据驱动的方法处理这些数据,特殊是我们希望:
● 确定卫星图像与作物产量之间的干系性。
● 利用2010-2015年的数据作为培训,建立回归模型以预测这些图像的产量,并将2016年的产量作为测试集。
● 确定我们如何准确预测收益率。
所有问题的办理方案都从网络数据和通过大数据剖析开始,在这里我通过4个卫星查询来自Google Earth Engine的每个韶光点的图像,包括1)MODIS Terra Surface Reflectance,2)MODIS Surface Temperature,3) USDA-FAS Surface and Subsurface Moisture,和4)USDA-NASS用于masking (统共146 GB)。从USDA QuickStats网络了县级的实际年收益率。
利用这些数据集将涵盖的主题包括
探索玉米田地区每颗卫星的代价分布探索这些值与玉米产量之间的干系性特色工程和图像处理选择深度回归模型数据来源:
https : //explorer.earthengine.google.com/#detail/MODIS%2F006%2FMOD09A1https://explorer.earthengine.google.com/#detail/MODIS%2F006%2FMYD11A2https://explorer.earthengine.google.com/#detail/NASA_USDA%2FHSL%2Fsoil_moisturehttps://explorer.earthengine.google.com/#detail/USDA%2FNASS%2FCDLhttps://www.nass.usda.gov/Quick_Stats/Lite/index.php数据集描述和清理从县级Google Earth Engines查询图像数据。MODIS Terra Surface Reflectance的图像以500米的分辨率进行查询。估量这足够,由于爱荷华州玉米农场的均匀面积为349英亩,相称于约1.5×10 6 m 2。在500米分辨率下,这意味着每个农场实际年夜将包含大约四个像素。表1总结了每颗卫星图像的特色。
表1来自不同卫星的波段描述和特色择要
查询的图像基于县级,利用美国农业部作物产量数据中显示的FIPS数字。这导致每颗卫星2105张图像,总文件大小为146 GB。实际收益率来自USDA QuickStat查询做事。图1显示了2010年爱荷华州斯科特县每颗卫星第一波段的图像示例。对付MODIS卫星图像,图像经由气体,气溶胶和瑞利散射等大气条件校正。对付每颗卫星,一年中的图像是从3月到12月拍摄的,由于这代表了美国的第一个电镀期和末了一个收成期[3]。对付MODIS,这导致每年38张图像。末了,对付从USDA得到的收益率,分布如图2所示。p值为0.0000,表示样本来自正态分布的零假设。
图1 来自每个卫星的第一个波段的图像的例子(Scott County, Iowa, 2010)
这些卫星的图像没有在同一韶光间隔拍摄。此外,纵然从MODIS的8合成中的所有采集中选择的值是基于高不雅观测覆盖率,低视角,没有云或云阴影,以及气溶胶负荷,个中一些仍旧可以被云阻挡,导致图像中的值为零。因此,在将这些图像堆叠在一起以进入模型之前,须要进行大量的预处理。
图2。从2010年到2016年,玉米产量在美国的产量分布
图3总结了预处理步骤。我们首先将NaN值填入0,这些NaN值都来自USDA-FAS湿气。大多数都是在图像边缘的单行形式。我们没有利用归算技能如soft-imputation由于有区域该当是零(不是一个县的一部分,如图1所示),查询图像进来1单一图像/县的一种形式。例如,在MODIS地表反射系数中,它包含2926个通道(11个波段38个图像/年7年)。因此,我们接下来将这些图像分离并存储到不同的年份,并将来自不同卫星的叠带放在一起。之后,我们将图像隐蔽起来,只留下代表玉米地的像素。这导致某些图像只有零值(只管美国农业部有一定产量的ground truth)。这可能是由于卫星图像和美国农业部数据网络之间的差异造成的。这些图像被从凑集中移除,统共留下了9062张图片(在演习中有7,709张,测试集1353张)。
图3. 卫星图像的预处理步骤
masking后,这肯定会改变每颗卫星的最小值和最大值(来自表1中最初列出的那些)。图4显示了来自不同卫星的每个频带中的值的分布。这些来自3000个样本图像。对所有这些分布进行了正常测试,创造所有这些都是非正常的。在我们对每个图像的值进行分级时,这些分布在设置过程后期的最小值和最大值时至关主要。
图4.来自不同卫星的每个波段的值分布(取自3000个样本图像)
探索性剖析和推论统计的初步结果作为初步评估,该模型是否能够将图像与玉米产量联系起来。我们绘制了每个图像带与玉米产量之间的干系性。图5表示MODIS Terra反射卫星图像的这些干系性。可以不雅观察到,大多数这些条带与玉米产量之间存在很强的干系性(R 2 > 0.9)。虽然每个波段都有大量的非常值,但深度神经网络模型该当能够处理这些。MODIS Land Temperature和USDA-FAS Moisture卫星图像也是如此(图6)。虽然整体温度彷佛对玉米产量(小坡度)没有产生巨大影响,但如果我们大致取出非常值,我们可以看到较高温度每每会导致玉米产量低落。因此,我们将保持温度以供给我们的神经网络模型。对付水分,很明显玉米栽种区域的水分含量越高,玉米产量就越高。总体而言,这些结果令人鼓舞,模型该当能够将图像值与玉米产量联系起来。
图5. MODIS Terra Land Reflectance每个band 的年均匀值与玉米产量
图6. MODIS地表温度和USDA-FAS地皮水分和玉米产量的每个年份的年均匀值之间的干系性
利用机器学习的结果和深入剖析纵然图像已经由预处理,要将所有9,062张图像放在每张图像11个bands且均匀大小约为100×100像素的情形下,演习过程将非常缓慢。因此,我们在放入模型之提高一步设计图像。详细来说,我们将每个通道中的值分成128个区间,即 1 row。每个通道中的区间的最小值和最大值取自图4中的可视化。例如,在MODIS Terra Land Reflectance band 1中,我们将该区域中的图像值合并为128个区间,将值从0到4000然后利用该图像带内的非零像素的总数来标准化计数。这将大约100×100的全体图像缩小到仅128个元素。这背后的逻辑是基于每个农场的产量与其周围环境无关。因此,每个县的均匀产量只应与该县农场的产量分布干系联。图7总结了从数据网络到输入到具有所示数据维度的模型的过程。
图4.数据网络,预处理,分级和模型观点的事情流程择要
数据完备预处理后,将其输入模型。我们可以将这些数据看作视频或音频文件,每年我们天生最多38帧(高度和宽度为1和128)。因此,我们选择了5个可用于视频分类问题的模型,并在本研究中将其修正为回归问题。这些包括1)自布局卷积神经网络(CNN),然后是递归神经网络(RNN)。在此,是非期影象(LSTM)用于RNN,由于它常日用于避免vanilla RNN中的梯度消逝/爆炸问题,2)Separable CNN-RNN,3)由Xingjian等人定义的CNN-LSTM。4)3-Dimension (3D) CNN,和5)CNN-RNN,接着是3D CNN。单层CNN-RNN的观点在图7中示出,个中CNN运用于RNN之前的所有输入以编码空间数据。然后RNN将每帧(韶光输入)作为输入。然后从RNN输出的序列被馈送另一层CNN-RNN(即stacked layers)或全连接层(with appropriate dropout and regularization)并终极进料到activation层以产生该县在某一年中的预测玉米产量。
例如,Keras中的模型1的Python代码看起来像
def CNN_LSTM(self):
frames_input = Input(shape=self.input_shape)
vision_model = Sequential()
vision_model.add(Conv2D(64, (1, 2),
activation='relu',
padding='same',
input_shape=self.image_dim))
vision_model.add(BatchNormalization())
vision_model.add(MaxPooling2D((1, 2)))
vision_model.add(Flatten())
vision_model.add(BatchNormalization())
encoded_frame_sequence = TimeDistributed(vision_model) \
(frames_input)
encoded_video = LSTM(256,
activation='tanh',
return_sequences=True) \
(encoded_frame_sequence)
fc1 = Dense(64, activation='relu',
kernel_regularizer=regularizers.l2(0.05)) \
(encoded_video)
out = Flatten()(fc1)
out = Dropout(0.5)(out)
output = Dense(1, activation='relu')(out)
CNN_LSTM = Model(inputs=frames_input, outputs=output)
return CNN_LSTM
每种类型的模型都旨在拥有4,500,000到5,200,000个演习参数,并通过不同的dropouts和隐蔽层数进行粗略研究。然后将模型设置为利用默认的Adam优化器最小化均方偏差,每个批次利用16个样本,并且在连续5次没有改进后回调解止运行。
表2显示了所有这些模型的测试凑集的预测产量,每年利用所有38个框架。结果以均匀绝对偏差(MAE)和2016年均匀产量的百分比偏差表示(154.83蒲式耳/英亩) )。从这里,我们可以看到[5]定义的CNN-LSTM产生了最好的结果,只有10.46%的百分比,紧随其后的是我们自建的CNN-LSTM。值得一提的是这两者之间的紧张差异。虽然后者依次将CNN运用于LSTM的每个输入,但前者实际上取代了内部的密集矩阵乘法 改为利用卷积的RNN。利用可分离的CNN代替范例的CNN没有任何改进。值得把稳的是,仅利用3D-CNN导致性能非常差。这可能是由于CNN只能捕获空间信息,因此在这种情形下主要的韶光信息没有得到很好的描述。在CNN-LSTM网络末端添加3-D CNN层彷佛也没有改进模型性能。
表2.
表2.以均匀绝对偏差表示的模型性能总结和与测试集均匀值的偏差百分比(2016年的收益率)。
为了进一步优化CNN-LSTM模型,往后称为ConvLSTM,我们考试测验了不同批量大小的模型。结果如表3所示(利用相同的随机种子)。可以看出,批量大小为16已经产生了最佳性能。
表3.作为批量大小函数的模型性能择要
不才一步中,我们要确定哪个县可以做得最好,哪个县我们做得很差。这将有助于识别模型中的弱点,并使我们能够做出更好的决策,看看我们是否可以信赖预测。图8显示了2016年美国玉米产量的ground truth,图9显示了ground truth的预测值的百分比偏差。
从这些数据中,我们可以粗略地看出,该模型在产量极低的地区表现较差,如蒙大拿州和北达科他州的某些地区。这可能是由于具有这种极度的样品量低,并且产率低,由于打算百分比偏差的分母将进一步增加百分比差异。另一方面,该模型在具有高产量的范例产量(例如爱荷华州,内布拉斯加州和伊利诺伊州)的情形下表现极佳(百分比偏差<10%)。这是令人鼓舞的,由于这意味着该模型险些可以预测紧张玉米生产州的玉米产量。但是,到目前为止,我们已经利用了整年的图像数据(38帧)。
图8. 2016年美国玉米总产量(测试集)
图9.来自实际情形的预测值的百分比偏差
减少每年的帧数在本节中,我们要研究如何尽早预测产量。图10显示了2016年利用不同帧数预测的玉米产量的MAE。请把稳,第0帧从3月开始,第38帧在年末。结果表明,随着帧数的增加,边际偏差越低,就像预期的那样。值得把稳的是,我们可以看到,只用20帧(大约2 次八月的一周),我们已经可以(如果我们利用的图像从整年比较,10.46%),实现百分比偏差低至14.57%。这是在10月份常日收成玉米之前大约2个月,只管在温暖的国家乃至可能在今年晚些时候收成。因此,该模型将许可用户能够在时令早期预测县级玉米产量。
图10
图10. 利用每年输入不同帧数的模型的均匀绝对偏差(MAE),每年仅利用20帧(8月),足以预测2016年产量均匀值仅有15%的偏差。
结论在本研究中,我们已经显示了不同卫星图像之间的干系性,包括反射率,地皮温度和地皮湿度与美国玉米产量。我们利用这些干系性构建了一个模型,可以捕获这些数据的空间和韶光信息来预测玉米一年的收益率。测试集上的最佳表现模型(2016年玉米产量)是ConvLSTM,均匀产量仅为10.46%,偏差百分比。为了实现早期预测,我们降落了每年所需的帧数(从最多38帧)。结果表明,我们仍旧可以将神模型性能降落到仅20帧,这相称于8月。这将对农业分布和干系家当的商业模式产生重大影响。
将来,可以通过将分类模型纳入个中来改进研究,以便在预测产量之前自动粉饰感兴趣的作物。可以运用某些屈从值的上采样(例如本研究中产量极低的那些)。末了,扩展模型以预测多种作物将会很有趣。
于此项目中利用的代码,Github 页面(https://github.com/tpjoe/SpringBoard/tree/master/Project%20II)。