通过机器的眼睛去探索

  • 如果我们想让机器学会思考,就需要教他们学会如何用视觉去看周围环境。—— 斯坦福大学AI实验室和斯坦福视觉实验室主任李飞飞

使计算机或手机等机器看到周围环境的现象称为计算机视觉。机器仿生人眼的研究工作可以追溯到50年代,从那时起,我们已经走了很长一段路。计算机视觉技术已经通过不同的电子商务领域以及相机应用程序进入了我们的手机。 想一想当机器能够像人眼一样准确地看到周围环境时,机器还有什么是不可以做的。人眼是一个复杂的结构,它可以理解复杂的环境现象。同样的,可以让机器能够看到事物并使其具有足够的能力去理解它们所看到的内容,从而进一步对其进行分类,这项工作仍然是非常艰巨。 使用计算机视觉等效其准确性几乎与人眼相同的情况下,可以在眨眼间就进行数百万次计算。这不仅涉及到将图片转换为像素,还包括尝试通过这些像素去了解图片中的内容,接下来你将首先来了解如何从这些像素中提取信息并理解其代表的内容。

那么,让我们了解一下机器如何去看(像人眼一样)? A. 用数字表示颜色:在计算机科学中,每种颜色都由指定的十六进制值来表示。机器通过这种编码方式,来了解图像像素是由什么颜色组成的。而作为人类,我们天生就拥有基因来区分不同色调。

B. 图像分割:使计算机识别出相似的颜色组,然后分割图像,即将前景与背景区分开。颜色渐变技术被用来查找不同对象的边缘。

C. 查找角点:分割后,查找图像中的某些特征,也称为角点(corners)。简而言之,算法会搜索以一定角度相交的线,并以一种颜色的阴影覆盖图像的特定部分。角点(也称为特征)构建基块,可帮助查找图像中包含的更详细信息。

D. 查找纹理:确定图像中的纹理是正确识别图像的另一个重要因素。两个对象之间的纹理差异使机器正确地对对象进行更容易地分类。

E. 做出猜测:执行上述步骤后,机器需要做出接近正确值的预测或者推断,并将图像与数据库中存在的图像进行匹配。

F. 最后,看大图!最后,一台机器会看到更大、更清晰的画面,并根据所提供的算法指令检查是否正确地识别了该画面。在过去的几年中,准确性得到了很大的提高,但是当机器被要求处理带有混合物体的图像时,机器仍然会犯错误。

拥有计算机视觉研究小组的大学:

美国大学

卡内基梅隆大学机器人学院 加州大学洛杉矶分校 北卡罗来纳大学教堂山分校 华盛顿大学 加州大学伯克利分校 斯坦福大学 麻省理工学院 康奈尔大学 宾夕法尼亚大学 加州大学尔湾分校 哥伦比亚大学 伊利诺伊大学香槟分校 南加州大学 密西根大学 普林斯顿大学 罗切斯特大学 德克萨斯大学奥斯汀分校 马里兰大学学院公园 布朗大学 中央佛罗里达大学 纽约大学 密西根州立大学 麻省大学,阿默斯特 西北大学 加州大学圣地亚哥分校

加拿大的大学:

艾伯塔大学 多伦多大学 不列颠哥伦比亚大学 西蒙弗雷泽大学

欧洲大学:

INRIA法国 牛津大学 苏黎世联邦理工学院 德国马克斯·普朗克研究所 爱丁堡大学 萨里大学 弗莱堡大学 瑞典KTH 德累斯顿大学 达姆施塔特工业大学 瑞士EPFL 鲁汶大学 巴塞罗那计算机视觉中心 瑞士IDIAP 伦敦帝国理工学院 海德堡国际机场 曼彻斯特大学 波恩大学 亚琛工业大学 阿姆斯特丹大学 慕尼黑工业大学 捷克技术大学 剑桥大学 格拉茨 IST奥地利 伦敦玛丽皇后大学 苏黎世大学 代尔夫特大学 利兹大学 伯尔尼大学 隆德大学 意大利特伦托大学 意大利佛罗伦萨大学 斯图加特大学 萨尔大学 巴黎中央学校 巴黎理工学院 奥卢大学 卡尔斯鲁厄理工学院

如果你是计算机视觉领域的新手,可以在下面找到一系列初学者需要了解的基础知识点。

A.初学者水平 数学:

  • 线性代数 https://www.khanacademy.org/math/linear-algebra
  • 奇异值分解 https://www.youtube.com/watch?v=sJV0QyHoRio
  • 入门级模式识别 https://ocw.mit.edu/courses/media-arts-and-sciences/mas-622j-pattern-recognition-and-analysis-fall-2006/
  • 主成分分析 https://www.youtube.com/watch?v=H0HjNuNvFVI
  • 卡尔曼滤波 https://www.youtube.com/watch?v=d0D3VwBh5UQ
  • 傅里叶变换 https://www.youtube.com/watch?v=hVOA8VtKLgk&list=PLuh62Q4Sv7BUSzx5Jr8Wrxxn-U10qG1et&index=1
  • 小波 https://www.youtube.com/watch?v=4fQAlD5wZKA

图像处理:

  • 杜克大学在Coursera上提供的在线课程 https://www.coursera.org/learn/image-processing
  • 冈萨雷斯和伍兹的数字图像处理 http://www.imageprocessingplace.com/

B.高级水平

  • 线性判别分析 https://www.youtube.com/watch?v=aSyQqHY4Vqc
  • 概率,贝叶斯规则,最大似然,MAP https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-041-probabilistic-systems-analysis-and-applied-probability-fall-2010/
  • 混合物和期望最大化算法 https://www.youtube.com/watch?v=Q1oqJSgp_Dk
  • 入门级统计学习 https://www.coursera.org/specializations/statistics
  • 支持向量机 https://www.youtube.com/watch?v=_PwhiWxHK8o
  • 遗传算法 https://www.youtube.com/watch?v=kHyNqSnzP8Y
  • 隐马尔可夫模型 https://www.youtube.com/watch?v=D_RIe5bd3hk
  • 贝叶斯网络 https://www.coursera.org/learn/probabilistic-graphical-models

要获得有关理论和技术(尤其是算法)的实践知识,请从计算机视觉的角度开始学习OpenCV:

  • 学习OpenCV:使用OpenCV库的计算机视觉(https://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/0596516134)
  • Tombone的计算机视觉博客(http://www.computervisionblog.com/)

提示:使用C,C ++,Python进行编程时,我们使用OpenCV库进行计算机视觉的相关实践任务。在MATLAB中进行编程时,我们使用计算机视觉系统工具箱(https://in.mathworks.com/products/computer-vision.html?s_tid=gn_loc_drop) 。 同样,如果你使用其他语言编程,则还需要更多的开源库。

你还应该了解领域中科学研究的关键工作,在这里你可以从中学习它们:

  • SIFT:通用视觉的经典描述符 https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf
  • HOG:众所周知的描述符,特别适合人类检测
  • Viola-Jones:伟大的人脸检测器 https://www.microsoft.com/en-us/research/people/?from=http%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fum%2Fpeople%2Fviola%2Fpubs%2Fdetect%2Fviolajones_ijcv.pdf
  • Shape Contexts http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.18.8852&rep=rep1&type=pdf
  • Deformable Part Models http://www.rossgirshick.info/latent/

必读书籍清单包括:

入门级:

  1. 计算机视觉:算法与应用 http://szeliski.org/Book/
  2. 计算机视觉:现代方法David A. Forsyth,Jean Ponce http://cmuems.com/excap/readings/forsyth-ponce-computer-vision-a-modern-approach.pdf
  3. 计算机视觉中的多视图几何。作者:Richard Hartley,Andrew Zisserman http://books.google.cn/books?hl=en&lr=&id=si3R3Pfa98QC&oi=fnd&pg=PR11&dq=computer+vision&ots=aQo-nw6e4Q&sig=zGRDslfuKd1ytlZWwTaTKcuLdNw&redir_esc=y

高级水平—走向深度学习

  1. Michael Nielsen的“神经网络和深度学习”在线书;这是一个非常棒而温和的介绍:神经网络和深度学习 http://neuralnetworksanddeeplearning.com/
  2. Ian Goodfellow,Yoshua Bengio和Aaron Courville撰写的深度学习书 http://www.deeplearningbook.org/

当机器可以感觉到你的情绪时会发生什么?点击链接观看视频 https://youtu.be/QFk3e5PcK7s

TED观看演讲:

  1. 李飞飞:我们如何教计算机理解图片 https://www.ted.com/talks/fei_fei_li_how_we_re_teaching_computers_to_understand_pictures
  2. BlaiseAgüera和Arcas:PhotoSynth如何连接世界图像 https://www.ted.com/talks/fei_fei_li_how_we_re_teaching_computers_to_understand_pictures
  3. 浅川千惠子:新技术如何帮助盲人探索世界 https://www.ted.com/talks/chieko_asakawa_how_new_technology_helps_blind_people_explore_the_world
  4. 詹妮弗·希利:如果汽车可以说话,则事故可以避免 https://www.ted.com/talks/jennifer_healey_if_cars_could_talk_accidents_might_be_avoidable
  5. 戈兰·莱文(Golan Levin):回望你的艺术 https://www.ted.com/talks/golan_levin_art_that_looks_back_at_you
  6. Paul Debevec:制作真实照片的数字脸动画 https://www.ted.com/talks/paul_debevec_animating_a_photo_real_digital_face
  7. 戈兰·莱文:软件艺术 https://www.ted.com/talks/golan_levin_software_as_art

在线课程:

入门级:

  • Udacity:计算机视觉概论 https://www.udacity.com/course/introduction-to-computer-vision--ud810
  • 斯坦福大学的CS231n:用于视觉识别的卷积神经网络 http://cs231n.stanford.edu/
  • 中央佛罗里达大学-Mubarak Shah教授的视频讲座 https://www.crcv.ucf.edu/videos/lectures/2014.php
  • 从上述资源中获得的概念和算法,你可以去解决一些任务并自行完成一个项目。

高级水平—走向深度学习

  • 杰夫·欣顿(Geoff Hinton)在Coursera上的神经网络讲座 https://www.coursera.org/learn/neural-networks
  • 斯坦福课程:自然语言处理的深度学习 http://cs224d.stanford.edu/
  • 斯坦福大学课程:用于视觉识别的卷积神经网络 http://cs231n.stanford.edu/

讲座课程:

  • 计算机视觉中的深度学习(Sanja Fidler教授) http://www.cs.utoronto.ca/~fidler/teaching/2015/CSC2523.html
  • 先进的计算机视觉(James Hays教授) http://www.cc.gatech.edu/~hays/7476/

全球项目

a. 微软计算机科学家和研究人员正在努力“解决”癌症

  • https://news.microsoft.com/stories/computingcancer/ b.东京项目 ——提供基于AI的应用原型,以增强盲人或视力障碍者对社交,物理和文本环境的认识。
  • https://www.microsoft.com/en-us/research/project/project-tokyo/ C.教机器预测未来
  • http://news.mit.edu/2016/teaching-machines-to-predict-the-future-0621 最左侧的列显示操作开始之前的帧,其下方是算法的预测。右列显示视频的下一帧。

另一种让你自己了解计算机视觉领域正在进行的研究的方法是跟随作者并阅读他们在顶级会议上的论文,如CVPR、ICCV、ECCV、BMVC。

与专家的对话

以下交谈摘录是我与两位对计算机视觉领域充满热情的专家交谈的。

与Devi Parikh教授的对话| Facebook AI Research的客座研究员| 佐治亚理工学院(以前是弗吉尼亚理工学院)助理教授

计算机视觉是人工智能的一个子领域,其目标是构建可复制人脑视觉的智能计算机。机器学习是教机器学习的通用术语,但是计算机视觉专门处理视觉数据。在机器学习中,我们更多地使用了统计工具,而计算机视觉同时使用了统计工具和非统计工具。例如,计算机视觉领域的3D重建任务中使用机器学习工具的频率要比图像分类和对象识别等技术要低。许多计算机视觉任务都有其自己的需求,我们为此开发了特定的机器学习工具。 对于任何想开始学习该领域的学生,我建议他们通过研究人员的网页来选择他们感兴趣的问题来学习。大多数情况下,人们都在研究最前沿的问题,这些问题可以从该网页获得可用的标准数据集。他们可以选择一个研究问题,一个数据集以及一个他们可能想使用的库,然后动手去做。 在攻读硕士或博士学位的学生,我通常会去寻找有责任心,积极性和决心的来作为我的学生。为了使你的基本概念清晰明了,可以尝试阅读研究论文,尝试了解全世界研究人员正在研究的AI前沿问题。

B.与Richa Agrawal的对话 | 宾夕法尼亚大学校友| Whodat的计算机视觉研究工程师

我毕业于斋浦尔MNIT,在那学习期间,我与Robotics研究组取得了联系,我们合作实现了一些项目,然后参加IIT Roorkee的国家级比赛并赢得了比赛,这段经验极大地鼓舞了我。完成学士学位后,我开始在Yahoo工作,我意识到这不是我想要做的事,因此去了宾夕法尼亚大学攻读硕士学位。攻读硕士学位的这段时间,我通过学习不同的课程探索了不同的研究领域,并最终决定将计算机视觉作为我的主要研究方向。毕业后,我在美国的一家初创公司工作,并希望在印度寻找计算机视觉的就业机会。在Whodat(一家基于Bangalore的计算机视觉初创公司)中,我们使用增强现实和可视化技术对图像进行研究处理。比如,你打算为自己的房屋购买家具,你针对家庭的布局环境去商店后选择了一家家具店,但在家具交付后,常常会出现家具太大或太小的问题,现在没有什么技术可以解决该问题。我们正在尝试通过构建一个解决方案来帮助你,该解决方案可以使商店的家具在你家中进行可视化布置。这将使你能够做出更好的决定,并轻松地购买物品。 在学习时,很多时候我无法尽力而为,经常感到沮丧,但后来朋友的建议来了。他告诉我-“只有少数人(不到0.1%)能够做到这一点(在国外读硕士和在计算机视觉等技术领域有如此研究),并且而你正是其中之一。而且你如果加倍努力,你自己可以做到其它人做不到的东西。

对于学生入门的一些建议,在与其他学院同龄人的交谈之后,我建议你参加比赛和黑客马拉松。重要的是要找到自己的兴趣,而不是在自己不喜欢的地方工作。例如,计算机视觉在印度是一个广阔的领域,在印度有广阔的发展空间,在这个领域,你所需要的只是一架已经开始渗透到更小的城市的相机。因此,计算机视觉的未来绝对是光明的。

计算机视觉的应用,计算机视觉新手指南相关推荐

  1. 用计算机视觉描述机器人,计算机视觉和机器人视觉概述

    1. 计算机视觉的概念    计算机视觉就是用各种成像系统代替视觉器官作为输入敏感手段,由计算机来代替大脑完成处理和解释.计算机视觉的最终研究目标就是使计算机能像人那样通过视觉观察和理解世界,具有自主 ...

  2. Paper之CVPRICCVECCV:2009年~2019年CVPRICCVECCV(国际计算机视觉与模式识别会议国际计算机视觉大会欧洲计算机视觉会议)历年最佳论文简介及其解读

    Paper之CVPR&ICCV&ECCV:2009年~2019年CVPR&ICCV&ECCV(国际计算机视觉与模式识别会议&国际计算机视觉大会&欧洲计算 ...

  3. opencv计算机视觉_opencv是计算机视觉的至尊工具

    opencv计算机视觉 什么是计算机视觉? (What is Computer Vision?) Computer Vision is like imparting human intelligenc ...

  4. 计算机视觉包含计算机图形学,[计算机视觉与图像识别]计算机视觉,计算机图形学和数字图像处理,三者之间的联系和区别.doc...

    [计算机视觉与图像识别]计算机视觉,计算机图形学和数字图像处理,三者之间的联系和区别.doc [计算机视觉与图像识别]计算机视觉,计算机图形学和数字图像处理,三者之间的联系和区别 篇一 : 计算机视觉 ...

  5. 开发一个计算机视觉应用,《计算机视觉算法:基于OpenCV的计算机应用开发》 —1 计算机视觉概述...

    第1章 Hands-On Algorithms for Computer Vision 计算机视觉概述 毫无疑问,计算机科学,尤其是实现算法的方式,近年来得到了长足的发展.这是由于个人计算机,甚至你口 ...

  6. 计算机视觉课_计算机视觉教程—第4课

    计算机视觉课 Note from author : 作者注: This tutorial is the foundation of computer vision delivered as " ...

  7. 计算机视觉子方向,计算机视觉方向简介 | 人脸识别中的活体检测算法综述

    原标题:计算机视觉方向简介 | 人脸识别中的活体检测算法综述 本文转载自"SIGAI人工智能学习与实践平台"(ID:SIGAICN) 导言 1. 什么是活体检测? 判断捕捉到的人脸 ...

  8. 计算机视觉导论试题,计算机视觉基础复习.docx

    第一章 PPT P11 什么是计算机视觉 采用计算机实现人类视觉功能,让计算机理解图像和视频 . P12 计算机视觉与图像处理的区别 数字图像处理 图像/视频 -> 图像/视频 (图像变换.图像 ...

  9. 计算机视觉城市排名,计算机视觉技术量化城市变迁

    城市景观.社区面貌为何改观?城市物理和空间变迁与人文.社会.经济结构有何关系?近日,美国麻省理工学院与哈佛大学联合组成的研究团队,利用计算机视觉系统对城市景观变迁进行考察,发现根据居住人口密度.居民教 ...

  10. 华中科技大学计算机视觉张朋,计算机视觉与深度学习前沿研讨会圆满举办

    12月23日,"华中科技大学学术前沿青年团队探索论坛--计算机视觉与深度学习前沿研讨会"在一号楼学术报告厅圆满举办.此次活动由华中科技大学主办,电信学院与IEEE SPS Wuha ...

最新文章

  1. mongoDB - 日常操作四
  2. 【Leetcode | easy】罗马数字转整数
  3. 项目文档管理的一些想法
  4. 善待精力,保持体力,保持热情
  5. MySQL自增字段并发插入导致死锁
  6. python的中文文本挖掘库snownlp进行购物评论文本情感分析实例
  7. linux查找命令、find、grep总结
  8. JS高级程序设计笔记——事件(一)
  9. 关于使用pietty或putty终端连接ubuntu虚拟机时报被拒绝连接问题
  10. 剑指Offer之翻转单词顺序列
  11. matplotlib常用绘图方法【转】
  12. OneNET麒麟座应用开发之五:获取加速度传感器ADXL345数据
  13. centos修改jdk之后无法生效问题
  14. 金蝶eas怎么引出凭证_金蝶专业版如何引入引出凭证
  15. 罗技 GHUB驱动的官方下载网址
  16. TensorFlow 莫烦python
  17. 阿里云服务器如何隐藏真实ip
  18. 怎么使用SolidPlant3D创建管道?
  19. 人工智能主要应用的七大领域
  20. 创建个人博客只需五步骤——小白都能看会的详细过程,教你如何白嫖阿里云服务器

热门文章

  1. python代码缩进和冒号_Python缩进和冒号详解
  2. Samba之打印机共享配置nbsp;(CUPS…
  3. 王者nba服务器维护,王者NBA新手常用问题FAQ大全
  4. iOS的常用运算函数
  5. 制作Centos7模板机
  6. Harbor: 企业级Registry的构建利器
  7. 计算机 学院派,总校计算机学院派老师来校召开“2+2”联合培养班学生见面会...
  8. 系统设计:在线支付系统的需求分析报告
  9. 整数拆分 python_LeetCode 343. 整数拆分 | Python
  10. C语言-程序耗费时间函数