为什么图像处理如此困难
常会有人问“图像处理中的开放的领域是什么?”
在图像处理/计算机视觉方面,一切仍然是一个开放的研究领域!
但为什么会这样呢?你认为经过几十年的研究,我们会很自然地说“这里的问题已经解决了,让我们专注于别的事情”。在某种程度上,我们可以这样说,但仅适用于狭窄和简单的用例(例如,在空的白板上放置红色勺子),而不是一般的计算机视觉(例如,在所有可能的场景中找到一把红色的勺子,就像一个大盒子满了五颜六色的玩具)。
在我们深入研究我认为计算机视觉如此严峻的主要原因之前,我首先需要解释机器如何“看到”图像。当我们人类观看图像时,我们会感知物体,人物或景观。当机器“查看”图像时,他们看到的只是代表单个像素的数字。
一个例子可以解释这一点。假设你有一个灰度图像。然后,每个像素由一个通常在0到255之间的数字表示(我在这里抽象压缩,颜色空间等等),其中0表示黑色(无颜色),255表示白色(全强度) )。0到255之间的任何一个都是灰色阴影,如下图所示。
因此,对于要任何获取图像内容的机器来说,它必须以某种方式处理这些数字。这正是图像/视频处理和计算机视觉的全部 - 处理数字!
接下来将从四个方面来解释,解决这个问题非常困难的主要原因。
数据量大
固有的信息丢失
伴随噪音
理解图像含义困难
正如我上面所说,当涉及到图像时,所有计算机都看到数字...... 很多数字!许多数字意味着需要处理的大量数据才能被理解。
我们举一个例子来说明图像的数据量究竟有多大。如果您具有1920 x 1080分辨率的灰度(黑白)图像,则表示您的图像由200万个数字(1920 * 1080 = 2,073,600像素)描述。现在,如果切换到彩色图像,则需要三倍的数字,因为通常情况下,当您表示彩色像素时,您可以指定它所包含的读数,蓝色和绿色。然后,如果你试图分析来自视频/摄像机流的图像,例如30帧/秒的帧速率(现在是标准的帧速率),你突然处理1.8亿个数字每秒(3 * 2,073,600 * 30~ = 1.8亿像素/秒)。这是需要处理的大量数据!即使拥有当今功能强大的处理器和相对较大的内存大小,机器也很难做出有意义的事情,每秒有1.8亿个数字。
数字化过程中的信息丢失是造成计算机视觉难度的另一个主要因素。图像处理的本质是从3D世界(如果我们处理视频流中的数据则是4D)投影到2D平面(即平面图像)上获取信息。这意味着在此过程中会丢失大量信息。
我们的大脑可以非常出色的推断出丢失的数据是什么,但是对于计算机来说却是极其困难的挑战。下图显示的是一个凌乱的房间
我们可以很容易地看出,绿色健身球比桌子上的黑色平底锅更大更远。但是如果黑色平底锅比绿色球占据更多的像素,机器应该如何推断呢?这不是一件容易的事。当然,我们可以尝试通过同时拍摄两张照片并从中提取3D信息来模拟我们用两只眼睛看到的方式,这被称为立体视觉。然而,将图像拼接在一起也不是一项微不足道的任务,因为同样是一个开放的研究领域。
数字化过程中经常伴随着噪音。例如,没有相机会拍摄出一个完美的不含噪声的现实图片,特别是当我们用手机上的相机进行拍照时,他们会通过调整强度等级,色彩饱和度等去尝试捕捉我们美丽的世界。同时在图像拍摄过程中肯能会出现“镜头光晕”的现象,我们可以轻松的判断光晕后面是什么场景,而对于计算机来说确实非常困难的。
虽然已经有很多去除光晕的算法,但是去除光晕的算法本身也是开放的领域。
另外,在图像压缩的过程中会对图像降低像素或者变换操作,而这样的图片对于人来说可以轻松的识别,而对于计算机,如果不告诉它压缩变换的操作,它会当作压缩后的图像为原图像进行识别,从而产生错误。
最后也是最重要的是就是对图像内容的理解。对于机器来说,这绝对是计算机视觉环境中最难处理的事情。当我们观看图像时,我们会用累积的学习和记忆(称为先验知识)来分析它。
例如,我们知道,我们可以坐在健身球上,而平底锅通常用在厨房里,因为这些东西我们过去已经了解过。如果有一些东西看起来像天空中的平底锅,很可能它不是平底锅(除非是红太狼把打灰太狼的平底锅扔天上了),因此我们可以进一步仔细检查,以确定对象可能是什么(例如飞盘!)。或者如果有人围着绿球踢球,很可能是小孩子的球而不是健身球。
但机器没有这种知识。他们不了解我们的世界,不了解其中固有的复杂性,以及我们在数千年的进化中创造的众多工具,商品,设备等。也许有一天机器将能够获得维基百科并从那里了解有关对象的信息,但目前我们离这种情况很远。
有些人会争辩说,我们永远不会达到机器能够完全理解我们现实的阶段 - 因为意识总是对他们来说是遥不可及的。
但是在未来的发展中谁又说的好呢。
—版权声明—
仅用于学术分享,版权属于原作者。
若有侵权,请联系微信号:yiyang-sy 删除或修改!