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

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

图像分类

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

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

像素级分类决策树算法

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

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

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

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

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

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

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

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

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

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

  1. 计算机应用基础基础系统,计算机应用基础试题库系统分析

    摘要:"计算机应用基础"课程是现代大学教育中的公共必修课,文章分析了传统的考试存在的不足,然后对试题库的系统进行了分析与设计,以促进教学发展. 关键词:计算机应用基础:试题库:必修 ...

  2. 2019江苏计算机一级考试题库和答案,2019年全国计算机等级考试一级考试试题库及答案.docx...

    文档介绍: 2019年全国计算机等级考试一级考试试题库 0401) 下列关于世界上第一台电子计算机ENIAC的叙述中,错误的是 A)它是1946年在美国诞生的 B)它主要采用电子管和继电器 C)它是首 ...

  3. 机器学习、计算机视觉面经整理(持续完善整理中……)

    算法岗计算机视觉方向求职经验总结 进入11月份,楼主找工作也基本进入尾声了,从7月份开始关注牛客网,在求职的过程中学到了不少,感谢牛客提供这样一个平台,让自己的求职历程不再孤单. 先说一下楼主教育背景 ...

  4. 机器学习,计算机视觉相关资料

    Deep Learning(深度学习) ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一 ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习): ...

  5. 计算机视觉 深度学习 slam 三维重建 机器学习学习资料整理

    <视觉SLAM十四讲从理论到实践第2版> <视觉SLAM十四讲从理论到实践第2版>系统介绍了视觉 SLAM(同时定位与地图构建)所需的基本知识与核心算法,既包括数学理论基础,如 ...

  6. 《AI人工智能的未来》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+机器学习+人机交互+计算机视觉+生物特征识别+立钻哥哥+==)

    <AI人工智能的未来> <AI人工智能的未来> 版本 作者 参与者 完成日期 备注 YanlzAI_Future_V01_1.0 严立钻 2020.01.09 ##<AI ...

  7. 机器学习和计算机视觉相关的数学

    kinPark 2015-01-16 1:07:15 机器学习 评论(1) MIT一牛人对数学在机器学习中的作用给的评述,写得很实际 机器学习和计算机视觉都是很多种数学的交汇场.看着不同的理论体系的交 ...

  8. 机器学习和计算机视觉有关的数学

    1.线性代数(Linear Algebra): 我想国内的大学生都会学过这门课程,但是,未必每一位老师都能贯彻它的精要.这门学科对于Learning是必备的基础,对它的透彻掌握是必不可少的.我在科大一 ...

  9. 林达华-和机器学习和计算机视觉相关的数学

    以下文章转载自哪里也不清楚了,谢谢原著作者吧!! 和机器学习和计算机视觉相关的数学之一 (以下转自一位MIT牛人的空间文章,写得很实际:) 作者:Dahua 感觉数学似乎总是不够的.这些日子为了解决r ...

最新文章

  1. 关于memcached
  2. play 拦截器_编写Play 2的模块,第2部分:拦截器
  3. 一次docker中的nginx进程响应慢问题定位记录
  4. 一些关于大数据的总结
  5. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题2---CMAKE配置问题
  6. 《吃透微服务》—服务网关之Gateway
  7. Atitit 编程 序列化技术点 概念原理v2 1. 序列化: 1 2. 序列化的目的 1 2.1. 为了传输 或者存储 1 3. 应用场合 1 3.1. Form提交url 1 3.2. For
  8. 项目01——图书进、销、存(jxc)系统(单机版)
  9. 95后00后音乐人群已成原创音乐创作主力军;全球游戏品类App留存率下滑10% | 美通社头条...
  10. 2021年焊工(初级)最新解析及焊工(初级)找解析
  11. android webview 本地视频播放,javascript – Android WebView不允许加载本地视频文件
  12. 如何计算2的10次方
  13. STM32CubeMX安装问题【尤其是Java环境没安装好的情况】
  14. 【Unity】一些不错的unity插件
  15. FusionGAN:一种生成式红外与可见光图像融合对抗网络
  16. docker 的安装以及简单centos镜像制作、启动
  17. 堡垒机的主要功能是什么?为什么需要堡垒机?
  18. 电子血压计方案提供模块芯片开发服务
  19. java全栈系列之JavaSE-面向对象(super详解)036
  20. Python爬虫+BI分析,我做了一份酷炫的A股牛市可视化!

热门文章

  1. C语言实现计算器+-*/连加运算
  2. web3.0是什么?
  3. Android获取景点的信息,景点介绍(ListView控件应用)
  4. 【C++】爱因斯坦台阶问题
  5. CSS:hover常见问题及用法
  6. 计算机毕业设计JAVA售后管理系统mybatis+源码+调试部署+系统+数据库+lw
  7. 成功项目经理的三种领导力行为
  8. 全媒体呼叫中心解决方案缔造企业品牌价值
  9. 妻子、情人、红颜知己
  10. Qt 之 自定义窗口标题栏 之 窗口拉伸