# 如果你认为 AR 只是扫扫图片的小把戏的话，你就 out 了！

- 作者：ARinChina 增强现实中国
- 发布时间：2016-10-13 09:53
- 分类：新创
- 原文：https://www.ifanr.com/730209

![market-identification](https://s3.ifanr.com/wp-content/uploads/2016/10/Market-Identification-1024x640.jpg)

> 本文由 ARinChina（[www.arinchina.com](http://www.arinchina.com/)）原创，转载请联系 ARinChina（微信 ID：arinchinaservice）。

![1929525911982](https://s3.ifanr.com/wp-content/uploads/2016/10/1929525911982.jpg)

如果有人问，上图中的物体是什么？是个人都会毫不犹豫地回答：“苹果！”问下图，也会得到同样的答案。

![1930215711982](https://s3.ifanr.com/wp-content/uploads/2016/10/1930215711982.jpg)

明明图不一样，为什么答案却相同？这是由于人的视觉细胞对物体边缘特别敏感，先看到物体的轮廓，然后才判断这到底是什么东西。

人之所以对物体边缘特别敏感，是因为边缘包含信息更为丰富。物体的边界与 3D 中的遮挡事件对应，一旦知道了边界，就可以了解物体间的遮挡关系。下图中，通过边缘检测可以得出，贴纸挡在了小女孩的前面，因为小女孩的轮廓缺失了一段信息。

![1931515611982](https://s3.ifanr.com/wp-content/uploads/2016/10/1931515611982.jpg)

### 如何找到图像中显著的边缘呢？

如果有人让你指出一幅图像最“显著”的物体边缘，你会追踪哪些边缘？下图右侧为计算机检测出的边缘，你的感知与它有多接近？

![1932267811982](https://s3.ifanr.com/wp-content/uploads/2016/10/1932267811982.jpg)

边缘出现在那些颜色、亮度或纹理不同的区域之间，因此大多数人的感知和上图右侧所示相差无几。如果按这些因素将图像分割成相同区域块会非常困难。因此，有人提出将边缘定义为亮度变化剧烈的位置。

图像边缘检测大幅度地减少了数据量，并且剔除了不相关的信息，保留了图像重要的结构属性。边缘检测方法有很多，它们大都需要经过以下几个步骤：

- 图像滤波：对图像进行预处理；
- 图形增强：锐化图像，使图形更明显；
- 图像检测：寻找哪些点为边缘点。

**1. 图像滤波**

边缘检测算法主要是基于图像亮度的一阶或二阶导数。

![1933148211982](https://s3.ifanr.com/wp-content/uploads/2016/10/1933148211982.gif)

函数的导数值就是切线的斜率，绿色代表其值为正，红色代表其值为负，黑色代表值为零。

导数运算可以找出亮度变化明显的边界。但成像过程中会产生噪声（妨碍人们接受信息因素），在图像高频部分所占比重较大，但导数却又强调了高频率部分，因此求导的过程同时放大了噪声。

这就像收音机里的噪声一样，在我们调大声音的同时，噪声也跟着变大。下图为图像噪声示意图，该图为噪声的模拟图，并非采集图像时所导致。

![1934046911982](https://s3.ifanr.com/wp-content/uploads/2016/10/1934046911982.jpg)

那如何处理收音机里的噪音呢？将频道调至合适位置，便能获得清晰的声音。因为每个频道发出的频率不一样，接收时必须调整到相应频道才可以收听。每个频道就像一个“过滤网”，仅允许一个范围内的波频通过。

解决图像噪声问题也一样，引入低通滤波器，允许低频率的信号通过，阻止高频率信号通过。但是，这里的低通滤波器并不是阻止高频信息通过，而是减弱高频信息。

下图分别是图像经过滤波前后的对比。

![1934402711982](https://s3.ifanr.com/wp-content/uploads/2016/10/1934402711982.png)

 **2.图形增强**

经低通滤波器过滤后的图片变得非常平滑，但是边缘部分并没有被突出出来。这时就需要对边缘进行锐化，使图像的边缘变得清晰。

![1935503611982](https://s3.ifanr.com/wp-content/uploads/2016/10/1935503611982.png)

平滑处理是将每个像素和周围的像素进行平均，要使边缘再变得清晰，则要对图像再做逆运算。

图像模糊是因为采用低通滤波器将图像高频信号减弱。相反，图像锐化就可以用高通滤波器来减弱低频信息，以此来突出高频信息，使图像看起来清晰。

3.**图像检测**

图像的边缘有幅度和方向属性，沿边缘方向像素变化缓慢，垂直边缘方向像素变化剧烈。因此，边缘上的变化能通过梯度计算出来。在图像中有许多点的梯度幅值（与周围点的差值）较大，而这些点有时并不都是我们需要的边缘，所以需要用某些方法来确定哪些是边缘的点。

最简单的边缘检测是给定一个阈值。

![1936537811982](https://s3.ifanr.com/wp-content/uploads/2016/10/1936537811982.png)

首先使用一个阈值上限去寻找边线开始的地方。一旦找到了一个开始点，便可以“顺藤摸瓜”。在图像上逐点跟踪边缘路径也一样，当大于门槛下限时，一直记录边缘位置，直到数值小于下限后才停止记录。

![1937239411982](https://s3.ifanr.com/wp-content/uploads/2016/10/1937239411982.jpg)

![1937449011982](https://s3.ifanr.com/wp-content/uploads/2016/10/1937449011982.jpg)

### 检测效果不理想，彩色边缘来帮忙

下图是一张色盲检测图，它在正常人眼中是这样的：

![1938174411982](https://s3.ifanr.com/wp-content/uploads/2016/10/1938174411982.jpg)

但是在色盲患者眼中，它则如下图所示：

![1938321611982](https://s3.ifanr.com/wp-content/uploads/2016/10/1938321611982.jpg)

色盲患者无法感知到色彩信息，他们只能看到图像的亮度信息。

大多数边缘检测都是针对灰度图像进行的，但对于上述色盲检测图中的数字来说，它们的亮度与周围点相同。因此使用灰度边缘检测器的话，检测结果就如同色盲患者所见结果一样无法检测出数字边缘。此时，可以利用彩色图像信息来辅助完成边缘识别。

![1939118511982](https://s3.ifanr.com/wp-content/uploads/2016/10/1939118511982.png)

彩色图像边缘检测算法都是基于一定的颜色空间的，比较常用的有如上图所示的 RGB，还有 HSI、YUV 等。颜色空间是对色彩的一种描述方式，定义有很多种，区别在于面向不同的应用背景。

例如显示器中采用的 RGB 颜色空间，是基于物体发光定义的（RGB 正好对应光的三原色：Red，Green，Blue）；工业印刷中常用的 CMY 颜色空间，是基于光反射定义的（CMY 对应了绘画中的三原色：Cyan，Magenta，Yellow）；HSV、HSI 两个颜色空间，都是从人视觉的直观反映而提出来的（H 是色调，S 是饱和度，I 是强度）。

![1939402711982](https://s3.ifanr.com/wp-content/uploads/2016/10/1939402711982.png)

由于人的视觉对亮度的敏感程度远强于对颜色浓淡的敏感强度，为了便于色彩处理和识别，人的视觉系统经常采用 HSI（H 是色彩，S 是深浅，I 是明暗）色彩空间。

HSI 色彩空间是从人的视觉系统出发，用色调（Hue）、色饱和度（Saturation）和亮度（Intensity）来描述色彩，它比 RGB 色彩空间更符合人的视觉特性。在图像处理和计算机视觉中大量算法，都可在 HSI 色彩空间中方便地使用，它们可以分开处理而且相互独立。

因此，HSI 色彩空间可以大大简化图像分析和处理的工作量。

![1940091311982](https://s3.ifanr.com/wp-content/uploads/2016/10/1940091311982.jpg)

基于彩色边缘检测的一个简单方法，是在每个颜色空间独立地检测边缘，然后将它们联合起来。就像下图的贺卡，每个颜色制作一个字母，然后把这些字母叠加在一起便形成一个单词。

![1940461911982](https://s3.ifanr.com/wp-content/uploads/2016/10/1940461911982.jpg)

目前的图像采集设备都是基于 RGB 彩色空间的，所以要进行颜色格式的转换。我们以 HSI 颜色空间为例，可以将转换后的图像视为有三层——H、S、I。分别在这三层上进行边缘检测，然后将这三层的检测结果叠加在一起形成最后的边缘信息。

![1941217311982](https://s3.ifanr.com/wp-content/uploads/2016/10/1941217311982.jpg)

![1941456811982](https://s3.ifanr.com/wp-content/uploads/2016/10/1941456811982.jpg)

上图是彩色图像边缘检测的结果，虽然它已经可以较好地识别物体轮廓，但是如果想要达到人眼识别的效果，就必须结合更多的视觉线索，如亮度、颜色和纹理等，才能构建出更好的检测器。

题图来源：[Active Trade](http://www.activetradeinternational.com/market-identification-and-analysis)
