116 掌握计算机视觉任务的基础模型和操作
今天,我们来聊一聊计算机视觉的一些最基础的操作和任务,包括像素表达、过滤器和边界探测。基于这些内容,我们一起讨论利用计算机来处理视觉问题的核心思路。很多时候,越是基础的内容就越重要,因为只有掌握了基础的思路,我们才能在今后复杂的任务中灵活应用。
像素表达
我们在上一次的分享中谈到了计算机视觉任务中一个非常重要的步骤,那就是把现实世界的信号通过感知仪器(Sensing Device)收集起来,然后在计算机系统中加以表达。那么,在所有的表达中,最基础的就是”像素表达“(Pixel)。我们这里就展开说一说这种表达的思路。
把图像信息利用像素来进行表达是一种非常直观简单的表达方式。
对于黑白图像来说,图像就被转换为了0或者1的二元矩阵。这个矩阵的每一个元素就是一个像素,0代表黑,1则代表白。
对于灰度图像来说,每一个像素,或者说是矩阵的每一个元素,代表灰度的”强度“(Intensity),从0到255,0代表黑,255代表白。
对于彩色的图像来说,我们一般要先选择一种模型来表示不同的颜色。一种较为流行的表达方式是RGB(红、绿、蓝)模型。在这样的模型中,任何一个彩色图像都能够转化成为RGB这三种颜色表达的叠加。具体来说,就是RGB分别代表三种不同的"通道”(Channel)。每一种通道都是原始图像在这个通道,也就是这个原始颜色下的表达。每一个通道都是一个矩阵像素表达。每一个像素代表着从0到255的值。换句话说,一个彩色图像在RGB模型下,是一个"张量”(Tensor),也就是三个矩阵叠加在一起的结果。
针对像素,你需要建立一种概念,那就是像素本身是对真实世界中的"采样”(Sample)。每一个像素是一个整数,整个像素表达并不是一个"连续”(Continuous)表达。因此,在把世界上的连续信号采样到离散像素的这一过程中,难免会有失真。而不同的"分辨率”,会带来失真程度不同的像素表达。
过滤器
既然已经把图像表达成为了像素,也就是某种矩阵的形式,那么我们就可以利用线性代数等工具在这个矩阵上进行变换,从而能够对图像进行某种操作。这就是"过滤器”(Filter)的一个基本思想。 很多计算机视觉的操作本质上都是过滤器操作*。除了把过滤器想成某种线性代数变换之外,更普遍的一种思路是把在矩阵上的操作想成某种函数的操作。因此,我们也可以认为过滤器是函数在某一个特定区间内的操作。
举一个最简单的过滤器的例子,就是”移动平均“(Moving Average)。这个过滤器的本质就是针对每一个像素点,计算它周围9个像素点的平均值。如果我们针对每一个像素进行这样的操作,就会得到一个新的矩阵。然后我们把这个矩阵当作新的像素表达进行视觉化,就会发现是在原有图像基础上进行了"柔化"处理。反过来,如果我们需要对某一个图像进行柔化处理,就需要对其进行"移动平均"过滤操作。
有了这个直观的例子,你一定能够想到,很多我们熟知的图像特效处理,其实都对应着某种过滤器操作。
这里,我们提及一种比较特殊的过滤处理,那就是”卷积“(Convolution)。这个概念我们在深度学习中经常接触到。
刚才我们说到"移动平均"这个过滤器。如果我们把图像看作是一个函数F在某一个区域的取值,那么,“移动平均"这个过滤器是针对函数在某一点的取值(也就是某一个像素的取值),通过利用同样的函数F在周围的取值,从而得到一个新的计算值。
那卷积操作的思想是怎样的呢?卷积是针对F在某一个点的取值,除了需要利用F在周围的点以外,还需要利用另外一个函数,这里称作是H的取值。也就是说,我们要利用H来针对F进行操作。
边界探测
除了通过过滤器对图像进行简单操作之外,还有一些图像的基本操作蕴含了计算机视觉的基本原理。我们这里也稍微做一些介绍。
例如我们通常需要了解图像的边界。有研究表明,图像的边界对于人类认知图像的内涵有着特殊的意义。因此从一个完整的图像中找到不同物体的边界是一个很有现实意义的任务,并且通常被称作是”边界探测“(Edge Detection)。
那么,怎么来认识图像中的物体边界呢?我们先从直观上来想一想,在图像中,“边界"都有什么特征?一般来说,如果我们遇到了色彩、景深、照明的突然变化,或者是其他某种图像特质上的突然变化,我们就有可能遇到了边界。现在的问题是,在像素或者函数表达的情况下,如何来描述和检测这些"突然变化”?
在数学分析中我们学过,描述函数值变化的概念叫"导数"或者"梯度”(Gradient)。梯度大小(Gradient Magnitude)和梯度方向(Gradient Direction)都包含了函数变化的重要信息。
虽然梯度从数学的角度来说刻画了函数的变化,但是这对于设计一个实际的边界探测器依然是不够的。一个好的边界探测器需要真正能够探测到边界,也就是要尽可能少地出现错误,能够对边界进行定位(Location)的同时还需要尽量使边界平滑和链接。
在真实的边界探测中,我们往往先让图像变得更加平滑,比如利用”高斯柔化 “(Gaussian Blur)的办法,然后在这个基础上计算梯度大小和方向,有了这些之后再进行一些后期处理。
小结
今天我和分享了计算机视觉的一些基本数学模型和操作。
一起来回顾下要点:第一,像素是对真实世界的采样,我们分别讲了对黑白、灰度和彩色图像的像素表达;第二,我们讲了在像素表达之上的过滤器,介绍了移动平均和卷积两种方式;第三,我们简要提及了利用函数的梯度计算来进行边界检测的任务。
最后,给你留一个思考题,从边界检测的任务中,如何知道检测到的像素是真正属于边界呢?
文章列表
- 面试AI技术内参-003精读2017年KDD最佳应用数据科学论文
- 面试AI技术内参-075现代推荐架构剖析之三:复杂现代推荐架构漫谈
- 面试AI技术内参-093聊一聊程序化直接购买和广告期货
- 面试AI技术内参-030ACL2018论文精读:什么是端到端的语义哈希?
- 面试AI技术内参-116掌握计算机视觉任务的基础模型和操作
- 面试AI技术内参-018TheWeb2018论文精读:如何从文本中提取高元关系?
- 面试AI技术内参-121计算机视觉领域的深度学习模型(一):AlexNet
- 面试AI技术内参-123计算机视觉领域的深度学习模型(三):ResNet
- 面试AI技术内参-033经典搜索核心算法:语言模型及其变种
- 面试AI技术内参-146数据科学团队必备的工程流程三部曲
- 面试AI技术内参-094归因模型:如何来衡量广告的有效性
- 面试AI技术内参-155人工智能技术选择,该从哪里获得灵感?
- 面试AI技术内参-089广告的竞价策略是怎样的?
- 面试AI技术内参-001聊聊2017年KDD大会的时间检验奖
- 面试AI技术内参-076基于深度学习的推荐模型之一:受限波兹曼机
- 面试AI技术内参-126计算机视觉高级话题(三):产生式模型
- 面试AI技术内参-009如何将深度强化学习应用到视觉问答系统?
- 面试AI技术内参-012精读2017年NIPS最佳研究论文之三:如何解决非完美信息博弈问题?
- 面试AI技术内参-112什么是文档情感分类?
- 面试AI技术内参-045文档理解的重要特例:多模文档建模
- 面试AI技术内参-054机器学习排序算法经典模型:LambdaMART
- 面试AI技术内参-067推荐的Exploit和Explore算法之一:EE算法综述
- 面试AI技术内参-101基础文本分析模型之二:概率隐语义分析
- 面试AI技术内参-147数据科学团队怎么选择产品和项目?
- 面试AI技术内参-149微软研究院:工业界研究机构的楷模
- 面试AI技术内参-074现代推荐架构剖析之二:基于多层搜索架构的推荐系统
- 面试AI技术内参-073现代推荐架构剖析之一:基于线下离线计算的推荐架构
- 面试AI技术内参-000开篇词你的360度人工智能信息助理
- 面试AI技术内参-059简单推荐模型之二:基于相似信息的推荐模型
- 面试AI技术内参-106序列建模的深度学习利器:RNN基础架构
- 面试AI技术内参-117计算机视觉中的特征提取难在哪里?
- 面试AI技术内参-144数据科学家必备套路之三:广告套路
- 面试AI技术内参-114文本情感分析中如何做意见总结和搜索?
- 面试AI技术内参-016TheWeb2018论文精读:如何对商品的图片美感进行建模?
- 面试AI技术内参-结束语雄关漫道真如铁,而今迈步从头越
- 面试AI技术内参-057基于深度学习的搜索算法:局部和分布表征下的搜索模型
- 面试AI技术内参-119基于深度学习的计算机视觉技术(二):基本的深度学习模型
- 面试AI技术内参-078基于深度学习的推荐模型之三:利用深度学习来扩展推荐系统
- 面试AI技术内参-056基于深度学习的搜索算法:卷积结构下的隐含语义模型
- 面试AI技术内参-069推荐的Exploit和Explore算法之三:汤普森采样算法
- 面试AI技术内参-114复盘3自然语言处理及文本处理核心技术模块
- 面试AI技术内参-025ICML2018论文精读:模型经得起对抗样本的攻击?这或许只是个错觉
- 面试AI技术内参-023CVPR2018论文精读:如何从整体上对人体进行三维建模?
- 面试AI技术内参-154在人工智能领域,如何快速找到学习的切入点?
- 面试AI技术内参-017TheWeb2018论文精读:如何改进经典的推荐算法BPR?
- 面试AI技术内参-071推荐系统评测之二:线上评测
- 面试AI技术内参-084雅虎的广告点击率预估模型
- 面试AI技术内参-090如何优化广告的竞价策略?
- 面试AI技术内参-092如何设置广告竞价的底价?
- 面试AI技术内参-107基于门机制的RNN架构:LSTM与GRU
- 面试AI技术内参-148曾经辉煌的雅虎研究院
- 面试AI技术内参-027ICML2018论文精读:优化目标函数的时候,有可能放大了不公平?
- 面试AI技术内参-150复盘6数据科学家与数据科学团队是怎么养成的?
- 面试AI技术内参-138数据科学团队养成:Onsite面试面面观
- 面试AI技术内参-034机器学习排序算法:单点法排序学习
- 面试AI技术内参-036机器学习排序算法:列表法排序学习
- 面试AI技术内参-042如何评测搜索系统的在线表现?
- 面试AI技术内参-058简单推荐模型之一:基于流行度的推荐模型
- 面试AI技术内参-066高级推荐模型之三:优化复杂目标函数
- 面试AI技术内参-070推荐系统评测之一:传统线下评测
- 面试AI技术内参-100基础文本分析模型之一:隐语义分析
- 面试AI技术内参-142数据科学家必备套路之一:搜索套路
- 面试AI技术内参-145如何做好人工智能项目的管理?
- 面试AI技术内参-129数据科学家基础能力之系统
- 面试AI技术内参-143数据科学家必备套路之二:推荐套路
- 面试AI技术内参-057复盘1搜索核心技术模块
- 面试AI技术内参-078复盘2推荐系统核心技术模块
- 面试AI技术内参-082Google的点击率系统模型
- 面试AI技术内参-098LDA变种模型知多少
- 面试AI技术内参-103为什么需要Word2Vec算法?
- 面试AI技术内参-060简单推荐模型之三:基于内容信息的推荐模型
- 面试AI技术内参-077基于深度学习的推荐模型之二:基于RNN的推荐系统
- 面试AI技术内参-134职场话题:数据科学家应聘要具备哪些能力?
- 面试AI技术内参-120基于深度学习的计算机视觉技术(三):深度学习模型的优化
- 面试AI技术内参-118基于深度学习的计算机视觉技术(一):深度神经网络入门
- 面试AI技术内参-140人工智能领域知识体系更新周期只有5~6年,数据科学家如何培养?
- 面试AI技术内参-002精读2017年KDD最佳研究论文
- 面试AI技术内参-006精读2017年EMNLP最佳短论文
- 面试AI技术内参-065高级推荐模型之二:协同矩阵分解
- 面试AI技术内参-086Twitter的广告点击率预估模型
- 面试AI技术内参-087阿里巴巴的广告点击率预估模型
- 面试AI技术内参-104Word2Vec算法有哪些扩展模型?
- 面试AI技术内参-113如何来提取情感实体和方面呢?
- 面试AI技术内参-037查询关键字理解三部曲之分类
- 面试AI技术内参-049PageRank算法的核心思想是什么?
- 面试AI技术内参-109对话系统之经典的对话模型
- 面试AI技术内参-125计算机视觉高级话题(二):视觉问答
- 面试AI技术内参-132数据科学家高阶能力之如何系统提升产品性能
- 面试AI技术内参-026ICML2018论文精读:聊一聊机器学习算法的公平性问题
- 面试AI技术内参-022CVPR2018论文精读:如何研究计算机视觉任务之间的关系?
- 面试AI技术内参-007精读2017年ICCV最佳研究论文
- 面试AI技术内参-038查询关键字理解三部曲之解析
- 面试AI技术内参-048搜索索引及其相关技术概述
- 面试AI技术内参-083Facebook的广告点击率预估模型
- 面试AI技术内参-085LinkedIn的广告点击率预估模型
- 面试AI技术内参-096复盘4广告系统核心技术模块
- 面试AI技术内参-102基础文本分析模型之三:EM算法
- 面试AI技术内参-126复盘5计算机视觉核心技术模块
- 面试AI技术内参-128数据科学家基础能力之机器学习
- 面试AI技术内参-1522017人工智能技术发展盘点
- 面试AI技术内参-124计算机视觉高级话题(一):图像物体识别和分割
- 面试AI技术内参-013WSDM2018论文精读:看谷歌团队如何做位置偏差估计
- 面试AI技术内参-011精读2017年NIPS最佳研究论文之二:KSD测试如何检验两个分布的异同?
- 面试AI技术内参-031经典搜索核心算法:TF
- 面试AI技术内参-047多轮打分系统概述
- 面试AI技术内参-050经典图算法之HITS
- 面试AI技术内参-079广告系统概述
- 面试AI技术内参-080广告系统架构
- 面试AI技术内参-081广告回馈预估综述
- 面试AI技术内参-091如何控制广告预算?
- 面试AI技术内参-097LDA模型的前世今生
- 面试AI技术内参-115什么是计算机视觉?
- 面试AI技术内参-151精读AlphaGoZero论文
- 面试AI技术内参-096如何利用机器学习技术来检测广告欺诈?
- 面试AI技术内参-137数据科学团队养成:电话面试指南
- 面试AI技术内参-153如何快速学习国际顶级学术会议的内容?
- 面试AI技术内参-141数据科学家团队组织架构:水平还是垂直,这是个问题
- 面试AI技术内参-004精读2017年EMNLP最佳长论文之一
- 面试AI技术内参-005精读2017年EMNLP最佳长论文之二
- 面试AI技术内参-052机器学习排序算法经典模型:RankSVM
- 面试AI技术内参-061基于隐变量的模型之一:矩阵分解
- 面试AI技术内参-110任务型对话系统有哪些技术要点?
- 面试AI技术内参-131数据科学家高阶能力之评估产品
- 面试AI技术内参-150聊一聊谷歌特立独行的混合型研究
- 面试AI技术内参-139成为香饽饽的数据科学家,如何衡量他们的工作呢?
- 面试AI技术内参-024CVPR2018论文精读:如何解决排序学习计算复杂度高这个问题?
- 面试AI技术内参-046大型搜索框架宏观视角:发展、特点及趋势
- 面试AI技术内参-029ACL2018论文精读:什么是对话中的前提触发?如何检测?
- 面试AI技术内参-108RNN在自然语言处理中有哪些应用场景?
- 面试AI技术内参-105Word2Vec算法有哪些应用?
- 面试AI技术内参-028ACL2018论文精读:问答系统场景下,如何提出好问题?
- 面试AI技术内参-156内参特刊和你聊聊每个人都关心的人工智能热点话题
- 面试AI技术内参-014WSDM2018论文精读:看京东团队如何挖掘商品的替代信息和互补信息
- 面试AI技术内参-095广告投放如何选择受众?如何扩展受众群?
- 面试AI技术内参-032经典搜索核心算法:BM25及其变种(内附全年目录)
- 面试AI技术内参-019SIGIR2018论文精读:偏差和流行度之间的关系
- 面试AI技术内参-055基于深度学习的搜索算法:深度结构化语义模型
- 面试AI技术内参-043文档理解第一步:文档分类
- 面试AI技术内参-072推荐系统评测之三:无偏差估计
- 面试AI技术内参-008精读2017年ICCV最佳学生论文
- 面试AI技术内参-035机器学习排序算法:配对法排序学习
- 面试AI技术内参-039查询关键字理解三部曲之扩展
- 面试AI技术内参-040搜索系统评测,有哪些基础指标?
- 面试AI技术内参-041搜索系统评测,有哪些高级指标?
- 面试AI技术内参-053机器学习排序算法经典模型:GBDT
- 面试AI技术内参-063基于隐变量的模型之三:分解机
- 面试AI技术内参-064高级推荐模型之一:张量分解模型
- 面试AI技术内参-068推荐的Exploit和Explore算法之二:UCB算法
- 面试AI技术内参-099针对大规模数据,如何优化LDA算法?
- 面试AI技术内参-127数据科学家基础能力之概率统计
- 面试AI技术内参-156近在咫尺,走进人工智能研究
- 面试AI技术内参-021SIGIR2018论文精读:如何对搜索页面上的点击行为进行序列建模?
- 面试AI技术内参-010精读2017年NIPS最佳研究论文之一:如何解决非凸优化问题?
- 面试AI技术内参-122计算机视觉领域的深度学习模型(二):VGG&GoogleNet
- 面试AI技术内参-044文档理解的关键步骤:文档聚类
- 面试AI技术内参-088什么是基于第二价位的广告竞拍?
- 面试AI技术内参-111聊天机器人有哪些核心技术要点?
- 面试AI技术内参-130数据科学家高阶能力之分析产品
- 面试AI技术内参-030复盘7一起来读人工智能国际顶级会议论文
- 面试AI技术内参-015WSDM2018论文精读:深度学习模型中如何使用上下文信息?
- 面试AI技术内参-062基于隐变量的模型之二:基于回归的矩阵分解
- 面试AI技术内参-020SIGIR2018论文精读:如何利用对抗学习来增强排序模型的普适性?
- 面试AI技术内参-133职场话题:当数据科学家遇见产品团队
- 面试AI技术内参-135职场话题:聊聊数据科学家的职场规划