专栏首页AI研习社禅与奶罩识别艺术(上)

禅与奶罩识别艺术(上)

在昨天的卷积:如何成为一个很厉害的神经网络 - 知乎专栏中,热心网友提出了这样的问题:

该文在卷积神经网络的构成上讲解的比较直观,但是没有深入地探讨数学原理。本文将详细介绍卷积滤波器的具体机理,当然不要担心数学问题,只要能熟练掌握百以内加减法和九九乘法表就可以。

之前在微博上关于神经网络的探讨中,话题走向奇怪地走向了奶子(计划通り),并且王司图也做出了召唤柏木由纪的承诺,所以这次就以柏木由纪的照片为例,讲解图像处理的基本法。

01. 暗中观察

现在我们谈的“人工智能”都是弱人工智能,更确切地说,还是辅助计算工具。我们不能因为有了神经网络,就像卡兹一样停止思考。

所以不管借助神经网络解决任何问题,第一步也是最关键的一步,就是了解你的问题本身。反映在具体的应用上,就是要摸清业务背后的逻辑关系,而不是把数据往黑盒里一扔,开始准备炼丹。如果一遍摸不清,那就再摸一遍。

现在我们要做一个物体识别的程序,上图中可供识别的物体并不多,唯一凉鞋、一裤头、一奶罩而已,那就奶罩吧。作为一个入门程序,现在那么早就处理彩色图片,是不理智、不合适的。所以我们要进行一些简化,从皮相中剥离出骨相,把最核心的数学原理公然露出,放置Play。

经过“灰度->阈值”两步,彩图变成了黑白图。接下来我们要从计算机视觉的角度去司图,所以眼前的黑不是黑,你说的白也不是白,所见诸相非相,只是像素值,0 or 1。

02. 见微知著

暂时抛开图片背景, 经过观察可知,要从人的身体上识别出奶罩和裤头,本质上是从白花花中寻找黑乎乎,其实就是从0中找到1。

那我们是不是需要整个奶罩呢?非也,只需要探测出奶罩的边缘就可以了,这就如同棋道,金角银边烂肚皮,只要围住了眼,就占住了气,从而控住了势。

卷积滤波器是一个比图片尺寸小的矩阵,这里设为3x3。我们把图片缩放至像素级(猜猜这是哪个部位),这里每一个小方格背后就是0或1了。卷积核在输入图像上来回滚动、摩擦,那么基本上会遇到三种区域(橙框):

  • 全白(肉体)
  • 全黑(奶罩)
  • 黑白(肉体和奶罩的边缘)

和下图的对应关系应该也很明显。

这时候,我们的卷积核就像情趣羽毛,扫遍每一个角落, 撩拨你的动感地带。

03. 掐指一算

在上文的图表中,我们已经见识到了多种滤波器和对应的滤镜效果,比如边缘检测、锐化、均值模糊、高斯模糊。

来看第三种边缘检测卷积核,其矩阵为:

再取包含边缘的5x5区域,对应矩阵:

现在这个3x3矩阵(滤波器)要在5x5矩阵上摸一遍,当然摸不是为了爽,而是为计算一个值。计算方式如下图,黄色方格与红色数字即是卷积滤波器,而计算的方式就是重叠的对应元素相乘,再相加。(注意:这不是真正的「矩阵乘法」)

因为这里的image在竖直方向上是不变的,所以只需要让filter沿着最上端滑一圈就行了,总共有三次计算:

1.

2.

3.

最后生成的完整特征映射(Feature Map)将是:

特征映射的单元位置对应的是卷积核中心(8)的位置,特征映射的取值有三种:

  • -3:探测到奶罩边缘,且卷积核位于奶罩外侧
  • 3:探测到奶罩边缘,且卷积核位于奶罩内侧
  • 0: 没有探测到边缘特征

现在你应该已经明白了,为什么滤波器可以提取图片的特征。

本文分享自微信公众号 - AI研习社(okweiwu),作者:Kaiser

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-05-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DilatedNet - 扩张卷积(语义分割)

    这次,对来自普林斯顿大学和英特尔实验室的Dilated Convolution一文进行了简要回顾。扩张卷积的思想来自小波分解。它也被称为“atrous conv...

    AI研习社
  • 用 Pytorch 理解卷积网络

    原标题 | CONVOLUTIONAL NEURAL NETWORKS EXPLAINED: USING PYTORCH TO UNDERSTAND CNNS

    AI研习社
  • CNN 中千奇百怪的卷积方式大汇总

    推荐另一篇很好的总结:变形卷积核、可分离卷积?卷积神经网络中十大拍案叫绝的操作。 这篇总结很专业,并且很好的回答了评论中的疑问: Depthwise Separ...

    AI研习社
  • 卷积神经网络CNN的意义

    郭耀华
  • 卷积神经网络CNN的意义

    一、选用卷积的原因 局部感知 简单来说,卷积核的大小一般小于输入图像的大小(如果等于则是全连接),因此卷积提取出的特征会更多地关注局部 —— 这很符合日常...

    郭耀华
  • 服务注册发现、配置中心集一体的 Spring Cloud Consul

    Consul 让服务注册和服务发现(通过 DNS 和 HTTP 接口)更加简单,甚至对于外部服务(例如SaaS)注册也一样。

    古时的风筝
  • Go 语言面向对象教程 —— 接口篇:接口赋值

    上篇教程我们介绍了接口定义及实现,和 PHP 一样,Go 语言的接口不支持直接实例化,只能通过实现类实现接口声明的所有方法,不过不同之处在于 Go 语言接口支持...

    学院君
  • SpringBoot2.x基础篇:谈谈SpringBoot内提供的这几种配置绑定

    SpringBoot在不断地版本迭代中陆续提供了不同的配置参数绑定的方式,我们可以单独获取一个配置参数也可以将一系列的配置映射绑定到JavaBean的属性字段,...

    恒宇少年
  • 如何用码云企业版管理软件研发全流程

    一个完整的软件研发全流程管理需要经历从需求管理、迭代规划、任务分配到编码、质量审查、部署测试、正式上线等阶段。码云企业版是如何在软件开发全生命周期有序支撑所有流...

    java思维导图
  • gin框架之HTML模板熏染(多模板)

    首先我们要引入github.co/gin-contrib/multitemplate库

    大话swift

扫码关注云+社区

领取腾讯云代金券