安全软件亚搏在线博客
作者:
马克爱尔兰

谷歌
获取博客时事通讯

FeedBurner

关于FME|7月31日二千零一十八|由马克爱尔兰

你说你想要一个卷积?FME解决方案,为那些想要改变他们的光栅世界。

所以,世界巡演结束了,他们回来工作了,计划明年的巡演,看完足球世界杯后,考虑他们最新的版本:左轮手枪。

哦!稍等。对不起。这是甲壳虫乐队1966。我应该谈谈我们在做什么亚搏在线现在正在做的。

好,世界巡演结束了,他们回来工作了,计划明年的巡演,看完足球世界杯后,考虑到他们的最新版本:卷积器.

卷积器你说什么?那是什么?

我们继续往下读,看看……

卷积理论

所以FME 2018.1介绍了执行的能力卷积。

卷积是对两个物体进行的数学运算,目的是为了得到第三个物体。FME而言,第一个对象是栅格特征,第二个对象是一个类似栅格的数字矩阵。这种运算可以是许多常见的数学运算之一。

对矩阵进行光栅特征处理,使用指定的运算符,返回具有新质量的新光栅特征。

明白了吗?好啊,下面是一个用来模糊图像的矩阵的例子:

核模糊图像

即。光栅1加上矩阵返回一个稍微模糊的光栅2。

如果有帮助的话,我学过矩阵和运算的结合叫做“滤波器”。因此,您可以选择一个光栅文件并对其应用过滤器。有些人还称之为“镜头”和“镜头处理”。

它到底在做什么?

如果你像我一样,你会想知道到底发生了什么,所以我会详细介绍一下。如果不是因为你,然后跳到FME中的卷积部分。

还在这里吗?好啊,所以过滤器会通过光栅中的每个单元,将单元格重新计算为周围值和矩阵值的混合。

作为一个例子,让我们以这一小块光栅数据为例,其中心细胞的红带值为218,模糊滤镜:

基本的光栅卷积

在传递数据时,过滤器将值218转换为200。为什么?好,如果我算对了,方程是:

((133 * 1)+(158 * 2)+(189 * 1)+(235 * 2)+(218 * 4)+(215 * 2)+(161 * 1)+(215 * 2)+(196 * 1))/ 16 = 200

即。每个细胞在3×3乘以相应的部分γ核值和和。它除以内核值(16)之和,为中心单元(200)创建新值。

基本上是周围值的平均值每个值都由核函数加权。因此,上面的核赋予中心细胞一个高权重(4),相邻细胞a中等权重(2),对角相邻单元的权重较低(1)。

这个过程重复,当然,对于所提供的每个光栅特性的每个单元和每个波段,产生期望的输出。如果你想知道,计算仅对原始值进行操作。当算法处理下一个单元时(上图)。它的邻边值是218,不是200。

γ我认为“对应的”矩阵值是相反的(因此对于133*1,“1”是右下角的矩阵值)但是这里的核是对称的,所以没有区别。

过滤器类型

不同的过滤器有不同的内核值和不同的操作类型(一些添加,一些找到平均值),显然会产生不同的效果。

为什么上面的设置会产生一个模糊我不知道(我发誓我曾经),但即使知道它是如何工作的,一般也很重要。例如,它表明,模糊算法不只是降低分辨率(像其他方法一样),而是通过操纵单元格颜色来创建模糊。

我注意到像上面这样的核,对于一组正数,有一个除数等于这些数的和。它们往往是模糊(平滑)过滤器。但我也注意到有负数的核:

卷积核

这些核加起来是1,得到1的除数。这些通常锐化图像或检测图像中的边缘。我相信(我不是专家)如果数字大于或小于零,然后,当FME应用过滤器时,图像变暗或变亮。

不管怎么说,我认为这是关于我对滤波器和核理论知识的极限。让我们看看这是如何在FME中实现的…

卷积在FME

进行卷积的FME变压器是光栅卷积器。它的别名是Rasterlenscessor,对于快速添加的极客们,“nvo”或“rlp”是找到它的唯一代码!

光栅卷积参数对话框如下:

顶部下拉菜单显示了一组不同的预设过滤器:

所以你可以使用任何这些来处理你的光栅数据,并创建一个特定的效果。例如,下面是一个线条检测内核使用在海拔模型:

选择一个固定的过滤器自动设置内核,除数,和操作领域。您只需更改它们以创建自定义筛选器。说到这里…

自定义过滤器

假设我想生成一个自定义过滤器,例如,模糊效果是不够的,我希望有一个更大的模糊。好,这很简单:我只是编辑对话框中的值:

这里我只是改变了权重和除数,尽管我可以设置不同的内核大小或操作。顺便说一下,请注意,我们允许3×3的内核,5×5,7×7,9×9,和11×11日哪些是最常见的类型。我们不允许非方粒。

改变的结果(从左到右)原来的-高斯模糊-用户定义的模糊(点击放大):

请注意,模糊会使底部文字逐渐变得难以阅读。放大来看,差别更明显:

但是矩阵中的数字是什么意思?你问。我所做的就是把重心从细胞中心转移到周围的细胞,通过减少中心重量和增加其他重量。除数现在是21,因为权重加起来是21。为了节省把这些数字加起来,我也可以将除数设置为“核权之和”的特定设置:

我花了一些研究和实验来理解这个概念,我不会假装卷积的整个概念是那么简单。然而,很容易对设置进行实验,看看会发生什么,包括一些高级选项…

高级选项

光栅卷积器有许多高级控制选项。他们的影响很小,但可能是重要的,所以我才在这里提到他们。

动态内核

我把这些称为动态内核,因为我想不出还能叫它们什么。基本的思想是你可以通过一个属性来设置内核的权重,一个用户参数,或者用条件值。这是通过将内核大小设置为“从权重派生”来完成的:

现在我有了一个文本字段而不是网格来定义内核值,并且可以使用多种方法。参数接受以空格分隔的浮点数列表。的确,只接受方粒,但可以将权重设置为零以避免使用某些单元格并创建自定义形状。

边缘处理

一个关键的考虑因素是图像边缘的情况。如果每个新单元格都使用它的邻元计算,那么对于一侧没有相邻边的边单元格会发生什么呢?好,FME有一个设置:

如果单元格缺少FME,则可以选择使用Nodata值,或者将边框值扩展到该空白区域。结果差异(在5×5高斯模糊上)如下:

这是西南角,看看左边和下面的边。使用nodata(左图)似乎提供了一个更硬的边界,有明确定义的边线。扩展边框值可以获得更柔和的边缘。如果我想做边缘检测,我想我应该先尝试扩展值,否则,光栅边界可能会被误认为是边缘(我很可能是错的)。

Nodata后的处理

说到无数据,光栅中Nodata值的变化取决于几个参数:中心像素和邻居像素:

中心像素处理正在处理的像素为nodata的场景。它可以像以前一样输出Nodata,或者忽略Nodata值。类似地,如果相邻像素不是数据,则可以忽略它们,或用中心像素值替换。我猜,只有在知道没有数据值的情况下,才会忽略Nodata;这大概就是为什么默认设置是这样的。

最后…一个不受参数控制的高级选项是能够对光栅中的特定波段进行卷积;例如我可能想要对红色和绿色进行卷积,但在RGB图像中不是蓝色的。要做到这一点,我只需要在Raster卷积器前面加上RasterSelector,以便定义要处理的带区。

卷积的原因吗?

所以在发现所有这些之后,这种变压器的实际用途是什么?

主要用于图像处理,例如模糊和锐化图像。你可能不认为这很有用,但是模糊(平滑)图像可以帮助隐藏噪声和显示细节。让我们以这个例子为例,我们尝试在海洋中定位船舶,并应用一个简单的高斯模糊(单击放大):

虽然我们要找的船比较模糊,卷积消除了水面上的极端反射。当我搜索高光,发现船只在整个图像(与光栅表现评估)的区别是(点击放大):

这张非卷积图像有上千个亮点,可能是一艘船。卷积后的图像有三个清晰的点。甚至移动的船尾也被清理干净了。

像这样的核对于图像分类很有用。除了在海上定位船只,它们可以帮助你提取建筑面积,评估农业库存,或模拟洪水影响,例如。此外,一系列光栅图像会显示船只的位置,或者帮助跟踪某艘船的航行方向或来源。甚至车辆检测和跟踪也有可能!

从光栅图像中提取矢量几何是另一个常见的要求。第一步通常是边缘检测,卷积也有帮助。栅格卷积变压器有许多不同的边缘检测核。

我不能创造一个我真正喜欢的空间例子,但我确实发现它们也可以受益于先验平滑。这幅图像是各种非空间边缘检测的一个例子。

也,如图所示,光栅卷积器不限于图像。它还处理光栅调制解调器。例如,我找到一个内核来生成斜率。我在我的数据上运行它,得到的结果与现有的RasterSlopeCalculator变压器完全相同(在百分比上升模式下)。为了清晰起见,将它转换成Int8,如下图所示:

好啊,我说“是”。它在数据检查器中完全相同,但数字略有不同。我认为这两个结果只是在不同的尺度上。我将用rasterslopecalculator作为最终的答案,因为它告诉我数字的含义(百分比斜率),而我不确定卷积的数字是否代表任何东西。但是,它展示了在DEM数据集上使用光栅卷积器可以做的事情。

顺便说一下,我的工作空间是这样的:

你为什么问这两个问题?好,坡度/线检测在不同的方向上应用会得到不同的结果。所以我在平行流中水平和垂直地应用它,然后使用光栅表达式求值器将数据合并到一起:

@sqrt ((A[0] * A[0]) + (B[0] * B[0]))

那是因为我发现表达比平均两个光栅好,当我第一次尝试的时候。你可以找到这个例子在我们的知识库.

总结

梅里亚姆-韦伯斯特告诉我卷积来自同一个拉丁词(volvere,意思是“滚动”)为“复杂的”(意思是复杂的)。我相信!这门课既复杂又难懂!但是FME使得选择预定义的卷积滤波器和实验定制滤波器变得很容易。

我也对FME处理数据的速度印象深刻。只花了22秒就看完了,卷积,并写入40个光栅图块(每个1600 x 1000像素,带3个波段)。

我在知识库里放了两个例子(边缘检测斜率的计算),并将把第三个放在那里不久,如果你想进一步探索的话。总的来说,这个转换器有很多用户请求,所以它应该很受欢迎。所以去下载FME2018.1试一试吧。

哦,还请注意,新的2018.1版本的FME也引入了拉斯特统计量计算器变压器,为了计算最小值,最大,的意思是,每个光栅带或光栅调色板上的ETC值。我想你会发现变压器同样有用。

所以,是的,标题和开场白是披头士歌曲的一出戏剧。我想知道是否还有其他类似披头士乐队的歌曲,于是我想到了这些:

  • 光栅遮光板上的傻瓜
  • 我感觉到了仿射(R)
  • 从我到UuidGenerator
  • 平装FeatureWriter
  • 佩珀中士的孤独之心俱乐部光栅波段解码器
  • 神奇的神秘轮廓发生器
你还能想到别的吗?最后一个是我最喜欢的。我喜欢认为乌尔夫和安娜的 传真乡村发电机可以利用一个神奇的神秘轮廓发生器!