计算机视觉面试题库,当机器学习遇到计算机视觉(上)

计算机视觉在上一个世纪60年代脱胎于人工智能与认知神经科学,旨在通过设计算法来让计算机自动理解图像的内容。为了“解决”机器视觉的问题,1966年,在麻省理工学院,这个问题作为一个夏季项目被提出,但是人们很快发现要解决这个问题可能还需要更长时间。在50年后的今天,一般的图像理解任务仍旧是不能得到完美解决。但是也已取得显著进展,并且随着机器视觉算法商业化的成功,机器视觉产品已经开始拥有广泛的用户,包括图像分割(例如微软office中去除图片背景的功能)、图像检索、人脸检测对焦和Kinect的人体运动捕捉等。几乎可以确定的是机器视觉最近的突飞猛进主要得益于最近15到20年机器学习领域的快速发展。

本主题的第一篇文章主要是探索一下机器视觉所面临的挑战和介绍一个非常重要的机器学习技术——像素级分类决策树算法。

图像分类

想像一下并试着回答下面这个有关图像分类的问题:“在这张图片中有一辆汽车吗”。对于计算机来说,一张图片仅仅是由三原色(红、绿、蓝)构成的像素组成的格子,三原色中每一个颜色通道的值的范围都是0到255。这些值的改变不仅依赖于事物对象是否在图片中呈现,也依赖于一些干扰事件,比如摄像机的视角、灯光条件、背景和对象的形态。另外,一个必须处理的问题是不同类别的汽车呈现不同的形状。例如,这辆汽车可能是辆旅行车、或者小卡车、或者是辆跑车,这些都会对图片像素造成很大影响。

幸运的是监督机器学习算法提供了替代原本需要人工编码解决这些多可能性的问题的方式。通过收集图片的训练集和适当的人工标记每一张训练图片,我们能够使用最好的机器学习算法找到哪些像素模式是同要识别的对象相关的以及哪些是干扰因素产生的。我们希望我们的算法最终能够适用于识别以前没有经过训练的新的样本,并且对于噪声保持不变性。在新的机器视觉算法的发展和数据集的收集标注两个方面我们都取得了长足的进步。

像素级分类决策树算法

图片在很多层面上包含细节。就像前面我们提到的,我们可以问一个问题——在整张图片中是否有一个特定的对象类别(比如汽车)。现在我们可以问一个更难点的问题——这张图里都包含了什么,这就变成了一个著名的问题“图像语义分割”:提取图片场景中所有的对象。例如下面街道场景的图片

5a4cf7621e539d263f1c1705ca706d39.png   你可以想象一下,这可以用于帮助你有选择的编辑一些照片,或者用于拼接一张全新的照片;我们还能马上想出更多的应用场景。

解决语义分割问题可以有很多方法,但是一个最有效的算法是像素级分类:训练一个分类器在像素级别预测每一个对象(如汽车、街道、树、墙等)分布情况。这个任务带给机器学习一些计算问题,特别是图片包括很多的像素的时候(例如,诺基亚1020智能手机拍照的像素是4100万像素)。这就意味着整个运算时间是我们分类任务全部训练和测试样本图片乘以几百万的倍数。

这个问题的规模促使我们寻找一个更有效的分类模型——决策树(也称为随机树或随机决策树)。一个决策树是一个分离训练后的决策树的集合,如下图所示。

061c7cac336be964b1cf04e45ce064e6.png

每一决策树都有一个根节点,多个内部“分支”节点,和多个叶子节点。测试分类时,从根节点开始,并且计算二叉“分支函数”,这个函数可能就像“这个像素是否比它的邻域像素更红”一样简单。根据该二元决策,它将沿分支向左或向右,接下来查看下一个“分支函数”,一直重复这样的操作。当最终达到叶子节点,一个存储的预测——通常是一个包含类别标签的直方图——就是输出(你也可以去看一下Chris Burges最近的一篇非常出色的论文,是关于提升变种决策树在搜索排名中的应用)。

决策树的美在于他的执行效率:虽然从根节点到叶子节点包含指数级可能的路径,但是任意一个独立的测试像素仅仅通过一个路经。此外,分支函数的计算是以此前的事件为条件的:例如,分类器只需要依赖此前分支决策的答案提出正确的问题就行了。这很像“20问”游戏:当你仅被允许去问少量问题时,你可以很快学会根据你以前问题的答案来调整自己要提出的下一个问题。

有了这项技术,我们已经能够成功处理这些不同的问题,如照片的语义分割,街头的场景分割,人体解剖学的3D医学扫描图像分割,摄像头的重定位和使用Kinect深度摄像头对人体身体部位的划分。对于Kinect来讲,决策树测试时间效率是关键:我们有一个非常严格的计算预算,但是这样的计算要求搭配Xbox GPU并行处理像素的能力,意味着我们能够适应这种应用场景[1]。

在本主题的第二部分,我们将围绕一个热门话题——深度学习图像分类——并且盯着这个“水晶球”来看看接下来会发生什么。同时,如果你想要在云平台中开始机器学习,请访问我们的机器学习中心。

[1] 身体部位分类只是骨骼追踪的一个阶段,整个骨骼追踪方案是Xbox的fantastic team 的工程师完成的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值