微软Excel竟能实现CV算法:亚马逊工程师妙用,人脸检测、字符识别都不在话下

十三 发自 凹非寺
量子位 报道 | 公众号 QbitAI

感觉计算机视觉操作起来很难?一个Excel就能搞定。

没错,就是我们经常会用到的微软电子表格软件Excel。

通过它就能快速实现计算机视觉中的一些算法示例:人脸识别、霍夫变换都不在话下。

更重要的是,还不需要任何脚本或者第三方插件。

先来看下人脸识别的结果。

还能找到图像的边缘和线条。

这项好玩的技巧,是由亚马逊首席工程师 Alok Govil 和 Venkataraman Subramanian共同完成。

网友们尝试了“别样的Excel”后惊呼:

当你放大Excel时,图像就会慢慢显现出来,数值也能看到,太神奇了!

看到用简单的Excel公式就可以做一些真正的计算机视觉,还清楚地解释了核心概念和算法,真是太酷了。

这是一个惊人的想法!这也是 Excel 核心代码极其强大和高效的证明,如此即时、交互,使得所有东西看起来都更简单、更容易理解。

那么,Excel到底是怎样做到如此惊人效果的呢?

简单设置,导入数据

打开Excel,先来简单的设置一下。

在“公式”这一栏里,找到“计算选项”,选中“手动”。

实验所用的图像是一张假的护照图片,因为它包含线条、角、人脸图像以及文本。

图像是由像素组成的二维数组,每个像素通常都有红色、绿色和蓝色基色通道的值,而每个值是一个字节(0-255)。

然后用一段简单的代码将图像中的数据读取出来,并存储为一个.csv文件。

存储出来的数据如下:

然后在“开始”栏里,选择“条件格式”里的“色阶”。

对于“灰度”,我们将255映射为白色,将0映射为黑色。

改变公式,秒现CV效果

先来做一个热身练习,让图像变暗。

那么,以A1这个单元格为例,只需要在公式栏中输入公式“Img!A1*0.7”,图片涉及的所有单元格都“*0.7”即可。

接下来是二值化。

还是以A1单元格为例,公式为“IF(Img!A1>160, 255, 0)”,并应用到所有单元格。

模糊图像,就是将Excel一个矩阵的数值(例如4 x 4)取均值的过程,公式例如“AVERAGE(Img!A1:D4)”。

同样的道理,设置相应的公式后,也可以凸显一些图片内容的边缘。

还可以人脸识别。

以及字符识别,识别图片中的“E”字母,当然存在一个错误识别“L”的情况。

当然,除了上述这些效果,计算机视觉中一些基本的算法也都有所涉及。

并且,作者对每个过程都做了相应的描述,在GitHub上已开源。

快去体验一下这别样的Excel吧!

传送门

GitHub项目地址:https://github.com/amzn/computer-vision-basics-in-microsoft-excel

版权所有,未经授权不得以任何形式转载及使用,违者必究。