经常有人询问:“在图像处理领域,还有哪些技术难题尚未攻克?”
坦诚地说,在图像处理与计算机视觉这个领域中,几乎所有方向依然是开放性的研究课题——远未到可以“收工大吉”的阶段。
你或许会好奇:都探索几十年了,难道不该有些问题已被彻底解决,可以转向其他领域了吗?从某种程度上说,确实有一些狭窄且简单的场景被攻克了,例如在空白的白板上定位一把红色勺子。但若要让机器在所有可能的复杂场景中——比如一个装满五颜六色玩具的大箱子里——精确识别出那把红勺子,那完全是另一个层面的挑战了。
在探讨计算机视觉为何如此棘手之前,需要先理解机器究竟是如何“看”图像的。我们人类观看一幅画面时,会感知到物体、人物或风景。而机器在“看”图像时,它所看到的仅仅是一堆代表像素的数值。
举个例子就能清楚理解了。假设你有一张灰度图像,每个像素都由一个0到255之间的数字表示(这里暂时忽略压缩、色彩空间等技术细节),0代表纯黑(无亮度),255代表纯白(最高亮度),中间的数值则对应不同程度的灰色。具体如下图所示。

因此,机器若想理解图像内容,就必须以某种方式处理这些数字。这正是图像/视频处理与计算机视觉的核心——处理数字信息。
接下来,从四个关键维度分析一下为何这个领域如此具有挑战性。
数据量大
前面提到,机器看到的只是数字……而且是极其庞大的数字量。海量数据意味着巨大的运算负担。举个例子:一张1920×1080分辨率的灰度(黑白)图像,大约由200万个数字组成(1920×1080 = 2,073,600个像素)。换成彩色图像后,数据量就要翻三倍——因为表示彩色像素时通常需要指明红、蓝、绿三个通道的分量。如果进一步分析视频流,比如每秒30帧的帧率(如今已很常见),那么每秒钟就要处理约1.8亿个数字(3 × 2,073,600 × 30 ≈ 1.8亿像素/秒)。即便当前处理器性能强劲、内存容量可观,要让机器从这1.8亿个数字中提取出有价值的信息,依然是一项艰巨的挑战。
信息丢失
数字化过程中信息丢失,是另一个让计算机视觉难度倍增的因素。图像处理的本质,是将3D世界(处理视频流时则是4D时空)的信息投影到2D平面上。这个过程会丢失大量信息。人类的大脑能够凭直觉推断出丢失的数据内容,但计算机要实现这一点却极为困难。观察下面这张凌乱的房间照片。

我们能轻松判断出绿色健身球比桌子上的黑色平底锅更大、距离更远。但如果黑色平底锅在画面中占据的像素比绿色球还要多,机器该如何做出判断?这绝非易事。当然,我们可以尝试模仿人眼同时拍摄两张照片来提取3D信息,这种方法称为立体视觉。但将两张图像准确拼接在一起本身也是一项复杂的任务,这同样是一个活跃的研究方向。
伴随噪声
数字化过程中常常伴随着噪声干扰。没有任何一台相机能拍摄出完美无噪的现实影像,尤其当我们用手机拍照时,设备会通过调整亮度、色彩饱和度等方式努力捕捉美丽的画面。与此同时,拍摄过程中可能出现“镜头光晕”,我们能轻松辨认出光晕背后的场景,但对计算机来说却极其困难。虽然已有不少去光晕算法,但这些算法本身也仍在持续演进中。此外,图像压缩时会对像素进行降低分辨率或变换处理,这类图片对人类毫无识别难度,但如果计算机不了解压缩变换的具体细节,它就会把压缩后的图像当作原始图像来处理,从而导致识别错误。
理解图像含义困难
最后也是最关键的一点,是对图像内容的语义理解。这对计算机来说绝对是计算机视觉中最难攻克的堡垒。当我们观看一张图片时,会调动长期积累的知识和经验(即先验知识)进行分析。例如,我们知道健身球可以坐,平底锅通常出现在厨房中——因为我们过去见过这些物品。如果有个物体看起来像漂浮在天空中的平底锅,那它很可能不是平底锅(除非是动画片里被扔上天的),于是我们会进一步仔细观察,判断它可能是飞盘之类的物品。再比如,如果有人围着绿球踢来踢去,那很可能是儿童玩具球而非健身球。但机器不具备这类常识。它们不了解我们的世界,不理解其中固有的复杂性,也不了解人类在数千年进化历程中创造的众多工具、商品和设备。也许有一天机器能通过维基百科之类的知识库获取常识,但目前距离那一步还很遥远。有人可能会争论说,机器永远无法完全理解我们的现实世界——因为意识对它们来说始终是遥不可及的。不过,未来究竟如何,谁又能说得准呢。
