目录
有限差分
图像的偏导数
离散梯度
有限差分
看,我们刚才讲的内容对于微积分课来说是没问题的,在微积分课上,你会得到所有那些花哨的希腊符号。
到现在为止,你可能希望你能多注意一些希腊的符号。
但问题是,我们如何在一个计算机上做这些事情,在那里我们不能做连续数学?
为了做到这一点,我们需要讨论离散梯度。
在连续数学中,f关于x的偏导就是这个极限,对吧?
所以我们在x方向上移动一点ε,减去原来的,除以ε,当极限变为零时,它就成了我们的导数。
但在离散世界中,我们不能任意靠近。
我们必须取有限差分。
所以我们要做的是用有限差分来近似我们的部分。
我沿着x方向走一步,看出函数的值,然后减去原来的值,然后除以这个步骤的大小,就是1。
这就是这个值。我们说它近似等于:
这叫做右导数。因为它是,向右走第一步。
为了讨论正确理解这些导数的方法,我们再来看看有限差分。
这是一张大卫经常在书中提到的条纹鸭子的照片,大卫福赛斯。如图:
大家可以看到,这是斑马哦。这是斑马的图片上面有很多条纹。
在这里,我们右边有一个有限差分图像。如图:
第一个问题,这是 x 和 y 的有限差分吗?
我们来看看。
这里我有一些很漂亮的几乎垂直的条纹,当我穿过的时候,你可以看到我得到了一个亮的值,一个暗的值。如图:
一个暗值,换句话说,当我看到水平方向的变化,在x中,无论这个有限差分是什么,我都会得到不同的值,
但是在这里,x几乎没有任何变化,只有y变化,你会注意到这不是一个很强的信号。如图:
好的,这就是x的有限差分,其中一个可能让你们困扰的问题是,在右边,我给你看的这张里面有正的和负的的图像。
通常,当我们显示一个图像时,我们使零黑和一些其他数字白色。或者我们说一个最小值是黑色的,一个最大值是白色的。
哦,我没说它必须是零,它必须是一个最小值。
我可以把- 128变成黑色,加上127变成白色。我可以让0变成灰色。
所以你在右边的图看到的是所谓的梯度图像灰色是0,白色是正的,黑色是负的。
这肯定会让你在处理的时候容易搞砸,在某些情况下,做一些习题集,等等,但是记住,
显示图像只是为了方便我和你,像上面图片这样,当它是一个数学函数。
图像的偏导数
这是偏导数的另一个例子。这是另一种有条纹的动物。
所以第一个问题:哪个是x哪个是y?
好,让我们看看。
这里有一些竖条纹。我们看到它们非常强烈。这随着x的变化而变化。它们不经常出现在右下边的图。
但是右下边的第三图,我们有水平条纹(红色圈),好的,很好地显示出来了。
你们可能已经算出来了,左边是关于x的偏导。在右边,是关于y的偏导数。
实际上,如果你看一下这个,你会看到这个,我要确保我把这些写对了,当我到达这条边,这条边,这条边。
随着它变得越来越亮,它的价值会越来越高。如图:
我这里使用的滤波器是 [-1 +1] 的相关滤波器。
我在右边取这个值,从左边减去这个值,这就是这个值。
现在,相关性和卷积有关系。
因为如果我把它换过来,事情就会不一样了。
在y方向上也是+ 1或- 1,我这样写:
我这样做的原因是,其中一个是你用来计算 y 梯度的滤波器。
但它是左边的还是右边的取决于你的宇宙中y是正向上还是正向下。这是你必须做出的选择。
你可以把图像的原点放在左上角,就像计算机科学家倾向于思考的那样,或者像几千年来数学家那样放在左下角。
只有计算机科学家会搞砸这个,但我们做到了。
所以你可能需要算出y在你世界中的位置,然后应用正确的过滤器。
顺便说一下,我可以取它的大小。也就是对这些平方和求平方根,最后得到这样的图像:
这应该会给你们一个提示我们要去哪里,因为这看起来很像一个边缘图像。
离散梯度
这些是离散梯度,但现在我们想要一个算子。
是的,我们希望滤波器可以实现这些梯度的内核。
这是一个算符H的例子:
我要用三行,一会儿我会告诉你们为什么。
现在我们只有这两列。问题是,这是一个好的运算符吗?
不,这不是一个好的运算。
为什么它不是一个好的运算符? 有几个原因。
其中之一就是没有中间像素。
因此,我很难说这个像素值,因为问题是关于权重的特殊之处。
如果我想这么做这个内核, 我可能会做一个这样的一个修改。如图:
我要向右,向左。
现在,你可能会问自己为什么它是加一半和减半。
好吧,这就是原因。
它是右导数和左导数的平均值。如图:
我的意思是,正确的导数在这里是+1,这里是-1。
左边的导数是 + 1,这里是 - 1。如图:
如果我想求它们的平均值,我会把它们加起来除以2。
把它们加起来[0 -1 +1] + [-1 +1 0],得到[-1,0,1],然后除以2。如图:
得到 ,中间是0。如图:
这就是为什么右边 减去左边 等于 左边和右边导数的平均值。
明白了吗?
——学会编写自己的代码,才能练出真功夫。