你好,游客 登录 注册 搜索
背景:
阅读新闻

当机器学习遇上计算机视觉(上)

[日期:2015-02-06] 来源:article.yeeyan.or  作者:ML Blog Team [字体: ]

译者: AileenC 原作者:ML Blog Team

用决策森林做图像目标分类以及在微软产品中的应用。

这是上下篇系列中的第一篇,由微软研究部的Jamie Shotton, Sntonio Criminisi和Sebastian Nowozin共同撰写完成。第二篇会在之后发布。

计算机视觉指的是通过建立算法使计算机能够自动理解图片内容,它是一项在20世纪60年代产生于人工智能和认知神经学的研究领域。“解决”视觉问题 有桩非常出名的趣事,就是它曾在1966年被麻省理工大学设成一项暑期课程项目,随后大家意识到这可能得花久一些的时间。50年来,一般的图像理解仍旧显 得任务艰巨,不过这项研究领域正在蓬勃发展,并且已取得了引人注目的进展。随着一系列独特的商业成功,包括交互式的图像分割(已运用在微软Office内的“去除背景”功能)、图像搜索、人脸识别和定位以及Kinect中的人体运动捕捉,计算机视觉算法已开始获得广泛的关注度。几乎可以肯定的是计算机视觉最近的突飞猛进归功于过去15到20年机器学习的快速发展。

上下篇中的第一篇会探讨一些计算机视觉中的挑战和用机器学习中强大的决策森林来作像素级分类。

图像分类

试想回答这样一个图像分类问题:“这张图里有没有一辆车呢?”对于一台计算机而言,一张图片只是一张由红、绿、蓝像素组成的网格,而每个颜色通道通 常由一个0到255间的数字来表达。数值大幅变化不仅仅取决于目标是否被呈现,同时还取决于诸如相机视角,光照条件,背景和目标姿态等等干扰因素。不仅如 此,人们还要考虑到不同车型的外观变化,比如它可以是一辆旅行车、一辆小卡车或者一辆轿车,而它们会造成迥然不同的像素分布。

最天真的方法就是试着为这些数量庞大的每种可能一一做手动编码,而机器学习中的监督学习可以为我们避开繁复而另辟蹊径。通过收集作为训练数据集的图 片以及对每张图片做适当的人工标记,再运用我们最爱的机器学习算法来获悉哪些像素特征与识别任务相关,哪些是干扰因素。我们希望可以将它推广应用到那些未 被见过的全新测试样本中,在识别出目标的同时保持对干扰因素的不变性。当下,无论是新视觉学习算法的开发还是数据集的收集和标记都已经取得了重大的进步。

运用决策森林作像素级分类

图像在很多层面上都包含着细节。我们可以像先前的例子一样问一整张图里是否有一个特定对象(例如一辆车)。但同时也能试着解决一个更难的问题,它被越来越多称为“图像语义分割” —— 描述出场景里的所有目标。下面是一个街景的分割示例:

你可以把这个例子想象成选择图片编辑区域的辅助工具,或者甚至是重建整张新图。很快我们将会看到更多应用。

解决语义分割有很多方法,不过最强大的基础模块是“像素级分类”——训练一个分类器预测在每一个像素点上目标类型(例如车,路,树,墙等等)的分布情况。这个任务显现出机器学习涉及庞大计算量的一些问题。尤其是包含大量像素的图片(例如诺基亚1020智能手机就能拍摄每张包含4.1千万像素的图片)。这意味着在我们在想为整张图片做分类计算时,其潜在的计算量其实是训练和测试样本的数百万倍。

这问题的规模让我们想到去研究一种特别有效的分类器模型——决策森林(也被叫做随机森林或随机决策森林)。一个决策森林集聚了一颗颗单独训练的决策树。

每颗树有一个根节点,许多内部“飞叉”的节点和许多终端“叶”节点。测试时的分类器最早从根节点出发,随即对数据进行“分岔函数”计算即做二元划 分,这函数问题可以相当简单,像是“这点像素是否比它周围的像素更红一些”,根据二元决策结果,它会选择去左分枝还是右分枝,然后在查找下一个“分岔函 数”,如此重复当抵达一个叶节点时,一个预测——通常以类别直方图的形式——便被保存下来成为输出结果。(也可以参看Chris Burges最近一篇精彩的关于用决策树的进阶变体作搜索排序的文章。)

决策树的优势在于测试时间上的高效率:纵使从根节点到叶节点的可能路径数量是指数级的,而一个测试像素只会走一条路径。此外,分岔函数的计算取决于 先前的决策结果。比方说,分类器希望基于过去问题的答案而问出下一个有助于决策的关键问题。这不正是游戏“20问”的相同原理么——当你只能问有限个小数 目问题的时候,依据前面的答案调整你的下一个问题可以迅速地揣摩出正确答案。

使用这的技术,我们已经在图片语义分割、街景分割、对人体解剖学的3D医学扫描做分割、镜头重定位、和Kinect深度图中的人体结构分割等不同的问题中取得了重大的成功。对于Kinect,决策森林中测试时间的高效率是决定成败的关键:我们的运算能力非常有限,但决策森林所要求的运算条件搭载Xbox GPU像素间平行计算能力使我们得以胜任[1] 。

在这个系列的第二部分,我们会讨论用最近热门的“深度学习”做图像分类,并注视着这个水晶球看看接下来会发生些什么。与此同时,如果你希望在云计算上开始使用机器学习算法,欢迎访问我们的机器学习中心。

感谢关注。

Jamie,Antonio和Sebastian

[1] 人体结构分类只是Xbox梦幻团队工程师们实现的全骨架跟踪流水线中的一阶段。

文章出处:http://article.yeeyan.org/view/406438/441900





收藏 推荐 打印 | 录入:Cstor | 阅读:
本文评论   查看全部评论 (4)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款