精华内容
下载资源
问答
  • 计算机视觉学习资源

    千次阅读 2015-06-12 11:48:35
    计算机视觉在生活和工业应用等领域越来越广泛。在科学研究中,常常需要借鉴和参考巨人的IDEA和资料,这里总结了一些常用的网站供大家参考,世界很大,这只是小部分。如果你有什么补充,发email给我,补充。 ...



    计算机视觉在生活和工业应用等领域越来越广泛。在科学研究中,常常需要借鉴和参考巨人的IDEA和资料,这里总结了一些常用的网站供大家参考,世界很大,这只是小部分。如果你有什么补充,发email给我,补充。

    http://www.bernardotti.it/
    http://www.ohloh.net/tags/recognition
    http://www.diphernet.com/
    http://www.mat.ucsb.edu/projects/tater/
    http://enblend.sourceforge.net/
    http://www.infra.kth.se/courses/1N1652/
    http://www.csie.ntu.edu.tw/~b93082/VFX/hw2/vfx02.htm#t3
    http://graphics.cs.msu.ru/en/research/calibration/
    http://www.vlfeat.org/~vedaldi/
    http://svn.openframeworks.cc/browser/listing.php?repname=addons&path=%2FofxOpenCv%2Ftrunk%2FofxOpenCv%2F&rev=29&sc=1
    http://cvlab.epfl.ch/software/ferns/index.php
    http://staff.science.uva.nl/~rvalenti/index.php?content=projects
    http://mpac.ee.ntu.edu.tw/~ck/project_panorama/#Downloads
    http://www.sharewareconnection.com/titles/cross-stitch.htm
    http://mpac.ee.ntu.edu.tw/~sutony/vfx_stitching/pano.htm
    http://mpac.ee.ntu.edu.tw/people.php
    http://mpac.ee.ntu.edu.tw/index.php
    http://www.cse.cuhk.edu.hk/~csc5280/project3/RoyChan/index.htm
    http://personal.ie.cuhk.edu.hk/~gbq008/csc_project_3.htm
    http://graphics.cs.cmu.edu/courses/15-463/2008_fall/463.html
    http://www-2.cs.cmu.edu/~cdtwigg/
    http://cs-people.bu.edu/edwardaa/cs580/p1/p1.html#goals
    http://www.cs.toronto.edu/~smalik/2530/mosaic/results.html
    http://www.cs.princeton.edu/gfx/
    http://idea.hosting.lv/a/gfx/
    http://www.cs.toronto.edu/~esteger/mosaic/index.html
    http://home.so-net.net.tw/lioucy
    http://web.ics.purdue.edu/~kim497/
    http://www.cs.princeton.edu/~pshilane/class/mosaic/code.html
    http://www.cse.ust.hk/~cstws/research/641D/mosaic/
    http://vision.ucsd.edu/~vrabaud/code/DaVinciHelp/ldvSBA_8h.html
    http://www.rodsoft.org/panostitch
    http://w3.impa.br/~lvelho/ip09/
    http://groups.csail.mit.edu/graphics/classes/CompPhoto06/html/lecturenotes/
    http://photocreations.ca/technical.html
    http://www.cvlab.org/
    http://www.cvchina.info/
    CUDA:
    http://gforge.man.poznan.pl/gf/project/cudaopencv/scmsvn/
    http://wiki.livedoor.jp/mikk_ni3_92/d/CUDA::2%C3%CD%B2%BD::%CA%A3%BF%F4%CB%E7
    http://cudasample.net/

    一、研究群体
    http://www-2.cs.cmu.edu/~cil/vision.html
    这是卡奈基梅隆大学的计算机视觉研究组的主页,上面提供很全的资料,从发表文章的下载到演示程序、测试图像、常用链接、相关软硬件,甚至还有一个搜索引擎。

    http://www.cmis.csiro.au/IAP/zimage.htm
    这是一个侧重图像分析的站点,一般。但是提供一个Image Analysis环境---ZIMAGE and SZIMAGE。

    http://www.via.cornell.edu/
    康奈尔大学的计算机视觉和图像分析研究组,好像是电子和计算机工程系的。侧重医学方面的研究,但是在上面有相当不错资源,关键是它正在建设中,能够跟踪一些信息。

    http://www2.parc.com/istl/groups/did/didoverview.shtml
    有一个很有意思的项目:DID(文档图像解码)。

    http://www-cs-students.stanford.edu/
    斯坦福大学计算机系主页,自己找吧:(

    http://www.fmrib.ox.ac.uk/analysis/
    主要研究:Brain Extraction Tool,Nonlinear noise reduction,Linear Image Registration,

    Automated Segmentation,Structural brain change analysis,motion correction,etc.

    http://www.cse.msu.edu/prip/
    这是密歇根州立大学计算机和电子工程系的模式识别--图像处理研究组,它的FTP上有许多的文章(NEW)。

    http://pandora.inf.uni-jena.de/p/e/index.html
    德国的一个数字图像处理研究小组,在其上面能找到一些不错的链接资源。

    http://www-staff.it.uts.edu.au/~sean/CVCC.dir/home.html
    CVIP(used to be CVCC for Computer Vision and Cluster Computing) is a research group focusing on cluster-based computer vision within the Spiral Architecture.

    http://cfia.gmu.edu/
    The mission of the Center for Image Analysis is to foster multi-disciplinary research in image, multimedia and related technologies by establishing links

    between academic institutes, industry and government agencies, and to transfer key technologies to

    help industry build next

    generation commercial and military imaging and multimedia systems.

    http://peipa.essex.ac.uk/info/groups.html
    可以通过它来搜索全世界各地的知名的计算机视觉研究组(CV Groups),极力推荐。

    二、图像处理GPL库
    http://www.ph.tn.tudelft.nl/~klamer/cppima.html
    Cppima 是一个图像处理的C++函数库。这里有一个较全面介绍它的库函数的文档,当然你也可以下载压缩的GZIP包,里面包含TexInfo格式的文档。

    http://iraf.noao.edu/
    Welcome to the IRAF Homepage! IRAF is the Image Reduction and Analysis Facility, a general purpose software

    system for the reduction and analysis of astronomical data.

    http://entropy.brni-jhu.org/tnimage.html
    一个非常不错的Unix系统的图像处理工具,看看它的截图。你可以在此基础上构建自己的专用图像处理工具包。

    http://sourceforge.net/projects/
    这是GPL软件集散地,到这里找你想要得到的IP库吧。

    三、搜索资源
    当然这里基本的搜索引擎还是必须要依靠的,比如Google等,可以到我常用的链接看看。下面的链接可能会节省你一些时间:

    http://sal.kachinatech.com/
    http://cheminfo.pku.edu.cn/mirrors/SAL/index.shtml

    四、大拿网页
    http://www.ai.mit.edu/people/wtf/
    这位可是MIT人工智能实验室的BILL FREEMAN。大名鼎鼎!专长是:理解--贝叶斯模型。

    http://www.merl.com/people/brand/
    MERL(Mitsubishi Electric Research Laboratory)中的擅长“Style Machine”高手。

    http://research.microsoft.com/~ablake/
    CV界极有声望的A.Blake 1977年毕业于剑桥大学三一学院并或数学与电子科学学士学位。之后在MIT,Edinburgh,Oxford先后组建过研究小组并成为Oxford的教授,直到1999年进入微软剑桥研究中心。主要工作领域是计算机视觉。

    http://www-2.cs.cmu.edu/afs/cs.cmu.edu/user/har/Web/home.html
    这位牛人好像正在学习汉语,并且搜集了诸如“两只老虎(Two Tigers)”的歌曲,嘿嘿:)
    他的主页上面还有几个牛:Shumeet Baluja, Takeo Kanade。他们的Face Detection作的绝对是世界一流。他毕业于卡奈基梅隆大学的计算机科学系,兴趣是计算机视觉。

    http://www.ifp.uiuc.edu/yrui_ifp_home/html/huang_frame.html
    这位老牛在1963年就获得了MIT的博士学位!他领导的Image Lab比较出名的是指纹识别。

    --------------------------------------------------------------------------------

    下面这些是我搜集的牛群(大部分是如日中天的Ph.D们),可以学习的是他们的Study Ways!

    Finn Lindgren(Sweden):Statistical image analysis http://www.maths.lth.se/matstat/staff/finn/
    Pavel Paclik(Prague):statistical pattern recognition http://www.ph.tn.tudelft.nl/~pavel/
    Dr. Mark Burge:machine learning and graph theory http://cs.armstrong.edu/burge/
    yalin Wang:Document Image Analysis http://students.washington.edu/~ylwang/
    Geir Storvik: Image analysis http://www.math.uio.no/~geirs/
    Heidorn http://alexia.lis.uiuc.edu/~heidorn/
    Joakim Lindblad:Digital Image Cytometry http://www.cb.uu.se/~joakim/index_eng.html
    S.Lavirotte: http://www-sop.inria.fr/cafe/Stephane.Lavirotte/
    Sporring:scale-space techniques http://www.lab3d.odont.ku.dk/~sporring/
    Mark Jenkinson:Reduction of MR Artefacts http://www.fmrib.ox.ac.uk/~mark/
    Justin K. Romberg:digital signal processing http://www-dsp.rice.edu/~jrom/
    Fauqueur:Image retrieval by regions of interest http://www-rocq.inria.fr/~fauqueur/
    James J. Nolan:Computer Vision http://cs.gmu.edu/~jnolan/
    Daniel X. Pape:Information http://www.bucho.org/~dpape/
    Drew Pilant:remote sensing technology http://www.geo.mtu.edu/~anpilant/index.html

    五、前沿期刊(TOP10)
    这里的期刊大部分都可以通过上面的大拿们的主页间接找到,在这列出主要是为了节省直接想找期刊投稿的兄弟的时间:)

    IEEE Trans. On PAMI http://www.computer.org/tpami/index.htm
    IEEE Transactionson Image Processing http://www.ieee.org/organizations/pubs/transactions/tip.htm
    Pattern Recognition http://www.elsevier.com/locate/issn/00313203
    Pattern Recognition Letters http://www.elsevier.com/locate/issn/01678655

    神经网络

    Neural Networks Tutorial Review
    http://hem.hj.se/~de96klda/NeuralNetworks.htm

    Image Compression with Neural Networks
    http://www.comp.glam.ac.uk/digimaging/neural.htm

    Backpropagator's Review
    http://www.dontveter.com/bpr/bpr.html

    Bibliographies on Neural Networks
    http://liinwww.ira.uka.de/bibliography/Neural/

    Intelligent Motion Control with an Artificial Cerebellum
    http://www.q12.org/phd.html

    Kernel Machines
    http://www.kernel-machines.org/

    Some Neural Networks Research Organizations
    http://www.ieee.org/nnc/
    http://www.inns.org/

    Neural Network Modeling in Vision Research
    http://www.rybak-et-al.net/nisms.html

    Neural Networks and Machine Learning
    http://learning.cs.toronto.edu/

    Neural Application Software
    http://attrasoft.com/

    Neural Network Toolbox for MATLAB
    http://www.mathworks.com/products/neuralnet/

    Netlab Software
    http://www.ncrg.aston.ac.uk/netlab/

    Kunama Systems Limited
    http://www.kunama.co.uk/

    Computer Vision

    Computer Vision Homepage, Carnegie Mellon University
    www.cs.cmu.edu/~cil/vision.html

    Annotated Computer Vision Bibliography
    http://iris.usc.edu/Vision-Notes/bibliography/contents.html
    http://iris.usc.edu/Vision-Notes/rosenfeld/contents.html

    Lawrence Berkeley National Lab Computer Vision and Robotics Applications
    http://www-itg.lbl.gov/ITG.hm.pg.docs/VISIon/vision.html

    CVonline by University of Edinburgh
    The Evolving, Distributed, Non-Proprietary, On-Line Compendium of Computer Vision,www.dai.ed.ac.uk/CVonline

    Computer Vision Handbook, www.cs.hmc.edu/~fleck/computer-vision-handbook

    Vision Systems Courseware
    www.cs.cf.ac.uk/Dave/Vision_lecture/Vision_lecture_caller.html

    Research Activities in Computer Vision
    http://www-syntim.inria.fr/syntim/analyse/index-eng.html

    Vision Systems Acronyms
    www.vision-systems-design.com/vsd/archive/acronyms.html

    Dictionary of Terms in Human and Animal Vision
    http://cns-web.bu.edu/pub/laliden/WWW/Visionary/Visionary.html

    Metrology based on Computer Vision
    www.cranfield.ac.uk/sme/amac/research/metrology/metrology.html

    Digital Photography

    Digital Photography, Scanning, and Image Processing
    www.dbusch.com/scanners/scanners.html

    Educational Resources, Universities

    Center for Image Processing in Education
    http://www.cipe.com/
    Library of Congress Call Numbers Related to Imaging Science by Rochester Institute of Technology
    http://wally2.rit.edu/pubs/guides/imagingcall.html

    Mathematical Experiences through Image Processing, University of Washington
    www.cs.washington.edu/research/metip/metip.html

    Vismod Tech Reports and Publications, MIT
    http://vismod.www.media.mit.edu/cgi-bin/tr_pagemaker

    Vision Lab PhD dissertation list, University of Antwerp
    http://wcc.ruca.ua.ac.be/~visielab/theses.html

    INRIA (France) Research Projects: Human-Computer Interaction, Image Processing, Data Management, Knowledge Systems
    www.inria.fr/Themes/Theme3-eng.html

    Image Processing Resources
    http://eleceng.ukc.ac.uk/~rls3/Contents.htm

    Publications of Carsten Steger
    http://www9.informatik.tu-muenchen.de/people/steger/publications.html

    FAQs

    comp.dsp FAQ
    www.bdti.com/faq/dsp_faq.htm
    Robotics FAQ
    www.frc.ri.cmu.edu/robotics-faq

    Where's the sci.image.processing FAQ?
    www.cc.iastate.edu/olc_answers/packages/graphics/sci.image.processing.faq.html

    comp.graphics.algorithms FAQ, Section 3, 2D Image/Pixel Computations
    www.exaflop.org/docs/cgafaq

    Astronomical Image Processing System FAQ

    展开全文
  • 随着工业革命到现在,由机械到电气到现在的互联网再到未来的人工智能,时代给我们提供了很大的机遇和挑战。为了抓住机遇迎接挑战,我们需要学习人工智能就需要前人...学什么作为应掌握的基础知识?让读者有方向去学习。

    1.编程能力

    1.1 编程语言(C++, python)

    刚接触CV(computer vision)(注:本文偏向于图像学而非图形学)时,大家一般都会不假思索地选择使用C++:装个VS(Visual Studio),配置下opencv,撸起袖子就上了。这样做非常合理,几乎所有人都是这么入门的。
    不过,当你知识面扩展开后,你会感觉到很多时候C++都显得有些力不从心。比如:当你要画一些图表或做一些分析,就还得把数据导入MATLAB里做进一步处理;当你要非常快捷方便地学习或测试一个算法,C++会是你最糟糕的选择;或者当你要学习深度学习时,你绝对不会再选择使用C++….总之,有太多理由会促使你再学习一门编程语言,最好的选择没有之一:python。

    1.1.1 简单介绍一下C++和python的各自特点:

    C++:偏底层,执行效率高,适合嵌入式等平台上使用;在视觉领域,C++生态好,用的人多,网上找资源很方便。
    缺点是开发效率实在太低了,关于这一点如果你只是专注于图像处理的话可能感受不是那么真切,因为opencv库做得足够好。但是当你做到机器学习后,opencv就显得有些力不从心了,虽然它也包含一些SVM、神经网络等的简单实现,但毕竟不擅长。

    python:全能语言,干啥都行,并且都相对擅长。图像处理,opencv支持有python接口;科学计算,其功能类似于matlab了:机器学习及深度学习,python是最好用的,没有之一;爬虫等网络应用,豆瓣就是用python写的;简而言之,方便,实在太方便了。
    当然python也有自己的另一面。执行效率不高,这一点做嵌入式开发的可能比较忌讳。但如今手机的内存都升到6G了,tensorflow都可以在移动端跑了,Python也都可以用来控制STM32了,未来很难说。

    顺便说一句也有人使用MATLAB等做图像方面的研究,如果你只是偶尔用图像处理辅助一下你的研究,可以这么做,一般情况下不建议使用。

    1.1.2 C++和python学习资源推荐

    C++:大家好像都买《C++ primer》或《C++ primer plus》这样的大块头书,我自己感觉倒不如《王道程序员求职宝典》这类书实用。大块头书优点在于全面,同时也往往导致了重点不突出。码代码时不熟悉的用法一般直接在cppreference上搜就可以了,超级方便;但有些不容易理解的地方确实需要系统的找资料学习一下。课程的话推荐coursera上北大的《程序设计与算法》,第3门课程是C++程序设计。看视频课程一般比较慢,如果没什么基础或者特别想把基础学好的话,强烈推荐。
    python:基础部分看廖雪峰的python教程就可以了,然后就是用哪一块学哪一块了。python学起来很简单,看别人代码的过程就是学习的过程。对于不熟悉的用法多搜下官方文档,如python, numpy,pandas, matplot, scikit-learn。这里有几张python各种库的小抄表其实直接在网上搜这几张表也都比较方便。课程的话,我之前上过一些七月算法的课程,讲得不好,多少会给你一些知识体系和各种学习资料,总体不推荐或跳着看。python的开发环境值得说一下,因为有太多选择,这里比较建议使用pycharm和jupyter notebook吧,具体参考python入门环境搭建。
    1.2 编程平台(windows, linux)

    新手肯定都用windows了,学习过程中发现在windows上搞不定了,先忍几次,然后掉头就去学linux了。一定是这样。
    哪些在windows上真的搞不定呢?比如:deeplearning,或最新论文中提出的视觉开源算法。
    不过对我们而言,linux并不需要了解太深。装个ubuntu系统,常用的文件操作、程序编译等知道就OK了。我完全是在使用的过程中现用现学,手边常备一本书《鸟哥的linux私房菜》。

    2.视觉知识

    计算机视觉实在很广了,这里仅针对我个人知识体系来说一说。
    现在比较热门的方向总体上分为两大块:一块是深度学习,一块做SLAM。它们的研究点区别在哪呢?深度学习这一群体侧重于解决识别感知(是什么)问题,SLAM侧重于解决几何测量(在哪里)问题ICCV研讨会:实时SLAM的未来以及深度学习与SLAM的比较。拿机器人来说,如果你想要它走到你的冰箱面前而不撞到墙壁,那就需要使用 SLAM;如果你想要它能识别并拿起冰箱中的物品,那就需要用到深度学习机器人抓取时怎么定位的?用什么传感器来检测?。当然这两方面在research上也有互相交叉融合的趋势。
    不过在学习这些之前,一般都会先掌握下传统的计算机视觉知识,也就是图像处理这一部分了。我之前大致总结过一次:
    计算机视觉初级部分知识体系。这些基础知识的理解还是挺有必要的,有助于你理解更高层知识的本质,比如为什么会出现deeplearning等这些新的理论知识(感觉有点像读史了,给你智慧和自由)。这一部分学习资料的话还是挺推荐浅墨的《OpenCV3编程入门》 也可以看他的博客。当然他的书有一个问题就是涉及理论知识太少,所以推荐自己再另备一本偏理论一点的图像处理相关的书,我手边放的是《数字图像处理:原理与实践》,差强人意吧。个人之前看浅墨书的时候做了一份《OpenCV3编程入门》学习笔记,里边包含一些理论知识和个人见解。
    下面说一下两个大的方向:基于深度学习的视觉和SLAM技术。

    基于深度学习的视觉:机器学习包括深度学习里的大部分算法本质上都是用来做“分类”的。具体到计算机视觉领域一般就是物体分类(Object Classification)、目标检测(Object Detection)、语义分割(Image Semantic Segmentation)等,当然也有一些很酷又好玩的东西比如edges2cats、deepart。本人主要做一些Object Detection相关的东西。其实一般是直接跑别人的代码了,稍微做一些修改和参数调整,前期的预处理才是主要工作。这些程序基本都是在linux下跑的。好,深度学习为什么这么强?它主要解决了什么问题呢?我比较认同以下三点:学习特征的能力很强,通用性强,开发优化维护成本低 参见为什么深度学习几乎成了计算机视觉研究的标配?。
    关于这一部分的学习,主要就是deeplearning了。关于deeplearning,漫天飞的各种资源。可以看一看李宏毅的一天搞懂深度学习课件 youtube上有一个一天搞懂深度學習–學習心得;李飞飞的CS231n课程,网易云课堂有大数据文摘翻译的中文字幕版课程,知乎专栏智能单元有CS231N课程翻译(非常好);三巨头之一Yoshua Bengio的新作《DEEP LEARNING》,目前已有中译版本 。
    SLAM技术:这一部分我了解不多,只是听过一些讲座。可以关注下泡泡机器人 公众号吧,他们公开课出得挺多的;听说高博的新书快出了,我也想赶紧入手偷偷学一下。
    3.机器学习

    计算机视觉中使用的机器学习方法个人感觉不算多,早期的时候会用SVM做分类,现在基本都用深度学习选特征+分类。原因在于统计机器学习这一块虽然方法不少,但是基本都无法应对图像这么大的数据量。
    不过大家在学习过程中很容易接触到各种机器学习方法的名字因为现在大数据分析、机器学习、语音识别、计算机视觉等这些其实分得不是很开,然后不自觉地就会去了解和学习。这样我感觉总体来说是好的。不过在学习一些暂时用不着的算法时,个人感觉没必要做的太深:重在理解其思想,抓住问题本质,了解其应用方向。
    下面分开介绍一下传统机器学习算法和深度神经网络。

    传统机器学习一般也就决策树、神经网络、支持向量机、boosting、贝叶斯网等等吧。方法挺多的,同一类方法不同的变形更多。除了这些监督式学习,还有非监督学习、半监督学习、强化学习。当然还有一些降维算法(如PCA)等。对这些个人整体把握的也不是特别好,太多了。
    学习资料,吴恩达的coursera课程《Machine Learning》,他正在出一本新书《MACHINE LEARNING YEARNING》,说好陆续更新的,刚更新一点就没了,本来想翻译学习一下。个人比较喜欢他的课程风格话说今天中午传出新闻,吴恩达从百度离职了。——执笔于2017.03.22,简单易懂。还有李航的《统计学习方法》和周志华的《机器学习》,两本在国内机器学习界成为经典的书。
    深度学习说着感觉有点心虚,哈哈总共就这几年就那些东西,资料上面视觉知识部分已经说过了,听听课程、看看那些出名的模型框架,基本上也就了解了《一天搞懂深度学习》其实就已经把大部分都给说了,不过个人感觉还是挺难理解的。主要的发展也就CNN、RNN;从去年起GAN火起来了,现在如日中天;增强学习现在发展也非常快,有些名校如CMU都开这方面课程了。
    资料上面说过就不说了喜欢高雅的人也可以看看这个深度学习论文阅读路线图 ,说说在使用deeplearning时用哪个库吧。目前为止还没有大一统的趋势,连各个大公司都是自己用自己开发的,一块大肥肉大家都不舍得放弃。我只用过keras和tensorflow,感觉在这方面没必要太计较,用相对简单的和大家都用的(生态好) 。
    4.数学

    一切工程问题归根结底都是数学问题,这里说说计算机视觉和机器学习所涉及的数学问题。

    微积分:比如图像找边缘即求微分在数字图像里是做差分(离散化)啦,光流算法里用到泰勒级数啦,空间域转频域的傅立叶变换啦,还有牛顿法、梯度下降、最小二乘等等这些都用的特别普遍了。其实个人感觉CV所涉及的微积分知识相对简单,积分很少,微分也不是特别复杂。也可能是本科那会儿力学学怕了吧。
    我好像没备微积分的资料,如果需要的话,同济大学出的本科教材应该也够用了吧。
    概率论与统计:这个比较高深,是应用在机器学习领域里最重要的数序分支。应用比如:条件概率、相关系数、最大似然、大数定律、马尔可夫链等等。
    浙大的《概率论与数理统计》我感觉还行,够用。
    线性代数与矩阵:数字图像本身就是以矩阵的形式呈现的,多个向量组成的样本也是矩阵这种形式非常常见,大多机器学习算法里每个样本都是以向量的形式存在的,多个矩阵叠加则是以张量(tensor)的形式存在google深度学习库tensorflow的字面意思之一。具体应用,比如:世界坐标系->相机坐标系->图像坐标系之间的转换,特征值、特征向量,范数等。
    推荐本书,国外的上课教材《线性代数》。因为浙大的那本教材感觉实在不太行,买过之后还是又买了这本。
    凸优化:这个需要单独拎出来说一下。因为太多问题(尤其机器学习领域)都是优化问题(求最优),凸优化是里面最简单的形式,所以大家都在想办法怎么把一般的优化问题转化为凸优化问题。至于单纯的凸优化理论,好像已经比较成熟了。在机器学习里,经常会看到什么求对偶问题、KKT条件等,潜下心花两天学一学。
    建议备一份高校关于凸优化的教学课件,大家对这一块毕竟比较生,缺乏系统感。比如北大的《凸优化》课程。
    这些数学知识没必要系统学习,效率低又耗时。毕竟大家都有本科的基础,够了。一般用到的时候学,学完之后总结一下。如果真想学习的话,七月在线有个课程《机器学习中的数学》,讲的一般,倒不妨看一看。
    介绍个小trick,之前学习好多数学知识或算法时,看不懂教材上晦涩死板的讲解,一般都会搜索“XXX 形象解释”,往往都会搜到些相对通俗易懂的解释也往往都是在知乎上搜到的这些解答,比如拉格朗日乘子法如何理解?, 如何通俗并尽可能详细解释卡尔曼滤波? 。

    5.授之以鱼不如授之以渔

    编程能力->计算机视觉->机器学习->数学知识,前文已经把所要学习的知识基本都介绍完了。不知道你有没有冒出疑问:你怎么知道的这些?你平时怎么学习的?
    先说第一条:时间,时间的积累。讲个故事,去年暑期在华东师大参加一个关于ROS(Robot Operate System, 机器人操作系统)的Summer School。顺便提一句,主办者张新宇老师人特别nice。第一天上午的speaker叫Dinesh Manocha,Canny的学生。对,就是Canny边缘检测算法的Canny。Dinesh教授有一个保持了几十年的习惯:(平均)每天只睡4个多小时。用张新宇老师的一句总结就是:智力超群、体力超群、习惯超群。他还提到,未来中国要跟国外竞争,一定程度上就是体力的竞争。因为相比老外目前中国人在这方面不太重视。呃,,,反正我是弱的不行。应该加强的。
    当然,在具体学习方法也有一些trick,不然怎么解释有的人效率高呢。当然聪明和底子能够解释部分原因。现在我就说一说自己学习过程中的小trick。

    google搜索。时代变了,一百年前的人类绝对想像不出自己有了困惑不是去翻书或请教他人而是告诉身旁的一台机器。如今,小学生做道算术题或小女生来个大姨妈都要问问电脑:这是怎么回事。但这些与学视觉又有什么关系呢?——答:没有。好像跑偏的有点多了,再扯远一点吧。跨越时间维度来思考一些新事物的发生及其与旧事物的联系,也许会给你一种想象的自由。比如电报、电话、视频聊天和全息通话用 HoloLens 通话 ,只是举例,我可没说以后这种技术真会普遍应用。,马车、汽车、火车、飞机和火箭太空旅行,蒸汽机、电、互联网和AI。
    百度搜索太烂了(当然,它本地化搜索做得不错。并且我也没说完全是技术原因),有多烂?我认为它跟google搜索的差距不是1:2,是1:10。这一点好像不应该说这么多,大家都公认的。问题根源在于“中国特色”不允许我们使用google搜索,这里介绍一个非常方便的科学上网工具lantern(链接是它的github地址,官网墙内好像登不了。)。下载完安装之后直接运行即可。
    还有一点,多使用英文搜索,这样呈现在你眼前的才是完整的世界。英文世界里优秀、原创资源多,浏览网页时不经意间也会遇到些好网站。比如曾经surf到一个计算机视觉方面的博客Learn OpenCV,通俗易懂,不频繁更新,几乎每篇文章必看。
    交流。这里特制人与人之间的交流,最好是面对面聊天。这样的好处是随意性大,随便一句话就可能指出你长期存在某个误区。对于我们(非计算机专业学生)而言,最缺的就是这种交流环境。所以大家只能尽量弥补了,比如通过各种途径认识点计算机专业或视觉方向的同学(蹭学校计算机视觉的课程);多加点相关的公众号,QQ、微信群不好的再删,当然自己也要主动参与这些社区。
    书。好书基本上都是公认的,并且适合大部分人。有些人买书可能会有选择恐惧症,这一点,,,摆正心态吧,很多时候买书本来就不是为了读完,只要能给你一两次惊喜或节约你几小时宝贵时间,它的使命就已经完成了,值!!!当然买书也讲究个度,这个就如人饮水、冷暖自知了。
    PPT。PPT的出现在一定程度上对传统教材产生了冲击,方便,重点突出,体验舒服。个人几乎会把学习的所有课件都保存在ipad里推荐使用非常出名的备注记录软件Notability来保存和编辑你的PPT,听课时可以在上边做笔记,课后如果需要随时温故而知新。
    “一句话”抓住问题本质。算法太多,学过就忘。这可能是所有人遇到的问题。尤其对于那些学的不是特别深入的算法,倘或跟人聊起都不知道如何解释。“一句话”解释,就是用简单的几句话把一件事说清楚。比如《统计学习方法》里李航就提出统计机器学习的三要素:模型、策略和算法,针对某种机器学习方法根据这三要素梳理一下,你就已经把握到整体了,即使其中有些细节不理解也无伤大雅。想象一下如果有同学指着你桌上的书问你“机器学习是什么?”,你会不会一脸懵逼?我会,O(∩_∩)O。说一下个人理解,至少听起来是句人话:机器学习就是让机器学会自学,对已有信息进行归纳和识别,并自主获得新技能的能力。相比于传统计算机编程里直接告诉计算机“什么时候做什么”,机器学习通过“不显式编程”赋予计算机能力,即提供一些案例(训练数据),让计算机通过案例自己学习什么时候应该做什么。
    A4纸学习法。平常的一个个人习惯吧,感觉对自己比较有用,分享一下。对于某些算法,有时候可以自己花半天、一天或者两天动手推导一下,然后A4纸总结整理一下放文件夹里,备日后翻阅。这样有助于提升你的数学能力,加深对算法的理解。
    学习新技能,讲究效率。在大家智力、体力水平都相当的情况下,怎么比别人学得更快更好?这里介绍一个自己快速学习一项新技能的方法:花两周时间把两本书看两遍。具体解释是:单位时间内,把两本书看一遍不如把一本书看两遍,在不确定哪本书具有绝对优势时最好两本书都看(不要把鸡蛋放进一个篮子里)。当然,一定要快!!!对于写代码而言,看书的同时实践也是非常重要。
    6.工作

    这一点好像跟学习本身关系不大,但跟大多数学习者本身(比如我)关系很大。
    花开两朵,各表一枝。

    不少人可能跟我一样都是冲着现在计算机视觉很火、有前景又比较感兴趣,所以选择学计算机视觉,并且以后想要从事计算机视觉这方面的工作。。一定要摆正心态,找工作时可能就要跟那些计算机专业的学生们竞争了;最好从现在起,就把自己当一名程序员看待。当然你也有自己的优势,你拥有自己专业的领域知识这对某些公司来说很重要,你找工作时基本上也都应该重点考虑这些公司。,你对视觉的具体应用本身也比较了解;劣势是你缺乏计算机专业的基本素养,具体到笔试或面试中就是你基础编程能力不行。
    说到这里,大家应该都听说过“刷题”这回事。程序员应聘的特点之一就是首先面试者会考查一些基础的算法题,借此评估一下你的基本编程能力。其实计算机专业的学生在工作季前也要在leetcode等平台上刷刷题练练手,不然他们也过不了第一关。不过,对于我们非计算机专业学生而言,刷题前最好系统学习下数据结构和算法这两门课。程序=数据结构+算法,前面提到的北大《程序设计与算法》专项课程里就有这两门课。然后就是苦练刷题技能了,刷题过程中注意多总结吧。(目前我也刚走到这一阶段,所以不好多说。)
    当然我相信也有一部分人毕业之后就再也不会接触这些破玩意儿,挺好的。三十而立之年,如果我还在整天苦逼地码代码,,,呃,不敢想象,那一定不是我想要的生活。对于这些人而言,计算机视觉可能会成为你人生中的一项常识——五年后的某一天,当你坐上无人车时,一点都不会感到惊讶。当然,也祝愿它会给你的人生带来更多改变,你所学的专业对你思维上最大的影响是什么?
    说完了,有用或没用的、该说或不该说的、跟视觉相关或不相关的都说了好多,收个尾:管理好自己,。

    还有,,,如果你诚心正意把计算机视觉作为个人事业并严肃认真对待的话,可以看下这篇文章《初探计算机视觉的三个源头、兼谈人工智能|正本清源》,知道计算机视觉不是只有现在的深度学习。

    展开全文
  • 【为什么需要学习计算机视觉?】 计算机视觉是当代人工智能中最活跃的领域,贡献了超过40%的应用及近半数的人工智能从业者。课程结合视觉基本原理及实战,介绍图像和视觉处理的基本知识和相关应用,包括...
  • 深度学习与计算机视觉

    千人学习 2020-07-13 17:12:35
    【为什么要学习深度学习和计算机视觉?】 AI人工智能现在已经成为人类发展中最火热的领域。而计算机视觉(CV)是AI中最热门,也是落地最多的一个应用方向(人脸识别,自动驾驶,智能安防,车牌识别,证件...
  • 什么计算机视觉 计算机视觉和机器视觉 绪论内容继续讲解 计算机视觉简史 所自学书籍的结构 总结 计算机视觉:模型、学习和原理  本博文乃自学为主,转载需要声明,并且我也不知道能坚持编写多久,...


    计算机视觉:模型、学习和原理



       本博文乃自学为主,转载需要声明,并且我也不知道能坚持编写多久,故而尽力为之,最近进行计算机视觉的学习的研究生阶段,时间上委实不多。
      学习的书采用了《计算机视觉:模型、学习和推理》,这本书的英文名为《Computer vision:models, learning and inference》,是一本不错的教材,但是可惜的是在习题上有点困难,就是没有提供自学者完整的答案,故而很是可惜。另外,所介绍的数学部分,相对有些难度,而且说明不是很详细和清楚,我的目的是通过博客进行学习,学习的过程中,加上一些自己的理解,而且我会适当加和减一些内容,还有就是本书一些配套的习题,想自己试着写写,如果有不对的地方,欢迎提出来让我进行修改。


    绪论

    什么是计算机视觉?

      计算机视觉是一门用计算机模拟生物视觉的学说,简而言之,让计算机代替人眼实现对目标的识别、分类、跟踪和场景理解。
      为此有人提出一个疑虑,就算机器视觉和计算机视觉,两者是否是同一个概念。现在不纠结这个问题,而是说明在《计算机视觉:模型、学习和推理》中,尤其是绪论第一段说到,The goal of computer vision is to extract useful information from images. This has proved a surprisingly challenging task; it has occupied thousands of intelligent and creative minds over the last four decades, and despite this we are still far from being able to build a general-purpose ”seeing machine”.我觉得中文翻译得不对,computer vision,应该翻译为计算机视觉而不是机器视觉。所以我觉得应该翻译为,计算机视觉旨在从图形中提取有用的消息,已被证实是一个极具挑战性的任务。在过去四十年里,成千上万智慧和创造性的思维致力于这一任务,尽管如此,我们还远远没有能够建立一个通用的“视觉机器”

    计算机视觉和机器视觉

      计算机视觉(computer vision)和机器视觉(machine vision)在很多文献没有区分,但是这个两个术语是有区别又有联系。
      计算机视觉是采用图像处理、模式识别、人工智能技术相结合的手段,着重与一幅或多幅图像的计算机分析。图像可以由单个或者多个传感器获取,也可以是单个传感器在不同时刻获取的图像序列。分析是对目标物体的识别,确定目标物体的位置和姿态,对三维景物进行符号描述和解释。在计算机视觉的研究中,经常使用几何模型、复杂的知识表达,采用基于模型的匹配和搜索技术,搜索的策略常使用自底向上、自顶向下、分层和启发式控制策略。
      机器视觉偏重于计算机视觉技术工程化,能够自动获取和分析特定图像,以控制相应的行为。

      两者的联系在于,计算机视觉为机器视觉提供图像和景物分析的理论及算法基础,机器视觉为计算机视觉的实现提供传感器模型、系统构造和实现手段。
      因此可以认为,一个机器视觉系统就是一个能自动获取一幅或多幅目标物体图像,对所获取图像的各种特征量进行处理、分析和测量,并对测量结果做出定性分析和定量解释,从而得到有关目标物体的某种认识并做出相应决策的系统。机器视觉系统的功能包括:物体定位、特征检测、缺陷判断、目标识别、计数和运动跟踪。

    下面给出个图,是从维基百科搬来的。
    这里写图片描述
      维基认为,计算机视觉的研究对象主要是映射到单幅或多幅图像上的三维场景,例如三维场景的重建。计算机视觉的研究很大程度上针对图像的内容。而机器视觉主要是指工业领域的视觉研究,例如自主机器人的视觉,用于检测和测量的视觉。这表明在这一领域通过软件硬件,图像感知与控制理论往往与图像处理得到紧密结合来实现高效的机器人控制或各种实时操作。
      总结来说,计算机视觉和机器视觉是有区别而且又有联系。两者用于地方不同,有交叉点。所学的书是以计算机视觉为主。


    绪论内容继续讲解

      回归主要内容,前面说过,本书绪论说,我们远远没有能够建立一个通用的“视觉机器”,那么这个原因是什么导致的?是可视视觉的复杂性所导致。
      考虑到下面一幅图像(图1),场景中有数百物体。这些物体没有呈现出“特定”的姿态,几乎所有物体都被部分遮挡。对于一个计算机视觉算法,很难确定某个物体的结束和另一个物体的开始。比如,背景中天空和白色建筑物之间的边界上,图像在亮度上几乎没有变化。然而,即使没有物体的边界或材质的变化,前景中SUV后窗上的亮度也有明显的亮度。
      若非这是一件事情:我们有具体的证据去证明计算机视觉是可研究的,因为我们自己的视觉系统能够毫不费力地处理复杂的图像,如图1所示,恐怕我们可能已经对开发有用的计算机视觉算法的可能性感到沮丧。如果要求你统计该图像中的树的总数或绘制街道布局的草图,你很容易做到这点。甚至于你可能通过提取微妙的视觉线索,比如人的种族、车和树的种类以及天气等,找出这张照片是在世界上哪个位置拍的。


    一个视觉场景包含许多物体,而几乎所有物体都是部分遮挡的。红圈所示场景中几乎没有亮度的变化指示天空和建筑之间的边界。绿圈所示区域中有很大的亮度变化而这实际上跟亮度没关系,这里没有物体边界或物体材质的变化。

    图1:一个视觉场景包含许多物体,而几乎所有物体都是部分遮挡的。红圈所示场景中几乎没有亮度的变化指示天空和建筑之间的边界。绿圈所示区域中有很大的亮度变化而这实际上跟亮度没关系,这里没有物体边界或物体材质的变化。

      可以得出结论,研究计算机视觉并非不可能,只是它具有挑战性。计算机视觉领域取得了长足进步,并在个人消费领域首次大规模部署,比如大多数数码相机已经嵌入人脸检测算法。那么计算机视觉迅速发展的原因,最明显的是计算机的处理能力、内存以及存储能力有巨大的提升。另一个原因是机器学习的广泛应用。机器学习提供许多有用的工具,有助于以新的视角理解已知算法及联系。

    计算机视觉简史

      计算机视觉过去30年主要发展如下图所示(图2)
    这里写图片描述

    图2:从左到右依次是:(1)数字图像处理,(2)积木世界,线条标注,(3)广义圆锥,(4)图案结构,(5)立体视觉对应,(6)本征图像,(7)光流,(8)由运动到结构,(9)图像金字塔,(10)尺度空间处理,(11)由阴影,纹理,变焦到形状,(12)基于物理的建模,(13)正则化,(14)马尔科夫随机场(MRF),(15)卡尔曼滤波,(16)3D距离数据处理,(17)投影不变量,(18)因子分解,(19)基于物理的视觉,(20)图割,(21)粒子滤波,(22)基于能量的分割,(23)人脸识别和检测,(24)子空间方法,(25)基于图像的建模和绘制,(26)纹理合成与修图,(27)计算投影学,(28)基于特征的识别,(29)MRF推断算法,(30)类属识别,(31)学习


      1958年加拿大科学家大卫•休伯尔和瑞典科学家托斯坦•维厄瑟尔对猫视觉皮层的研究,提出在计算机模式识别中,和生物识别类似,边缘是用来描述物体形状的最关键信息。1963年,美国计算机科学家拉里•罗伯茨在MIT博士毕业论文《Machine perception of Three-Dimensional Solids》,对输入图像进行梯度操作,进一步提取边缘,然后从3D模型中提取出简单形状结构,然后利用这些结构像搭积木一样去描述场景中无疑的关系,最后获得从另一角度看图像物体的渲染图。这篇论文中,从二维图像恢复图像中物体的三维模型的尝试,正是计算机视觉和传统图像处理学科思想上最大的不同:计算机视觉的目的是让计算机理解图像的内容。这项研究也就成了计算机视觉相关最早的研究。之后MIT人工智能实验室的明斯基发起了“暑期视觉项目”,目的是集中暑假的闲散劳动力解决计算机视觉问题,力争产出模式识别研发的里程碑式的结果。而广为人知的描述中,可以获知,当时明斯基只是让组里的一个学本科生杰拉德•杰伊•萨斯曼将摄像机连接在计算机上,尝试利用暑假的时间让计算机描述它所看到的东西,这个项目当时没有成功,但是计算机视觉作为一个专门的课题出现在了历史上。
      将计算机视觉与已经存在的数字图像处理领域相区别的是期望从图像恢复世界的三维结构并以此为跳板得到完整场景理解。Winston(1975)和Hanson and Riseman(1978)提供了这个早期时代的两本较好的经典论文集。
      场景理解的早期尝试涉及物体即“积木世界”的边缘提取及随后的从2D线条的拓扑结构推断其3D结构(Roberts 1965)。那是提出了一些线条标注算法(Huffman 1971;Clowes 1971;Waltz 1975;Rosenfeld,Hummel,and Zucker 1976;Kanade 1980)。那时边缘检测也是很活跃的研究领域。此外,人们还对非多边形物体的三维建模进行了研究,流行做法是使用了广义椎,即旋转体和封闭曲线扫描体。20世纪70年代一般是关于图像内容建模,如三维模型、立体视觉等。很有代表性的是弹簧模型和广义圆柱体模型。David Marr(戴维•马尔)(1982)《视觉计算理论》(Vision:A computational investigation into the human representation and processing of visual information)总结那个时代的视觉原理工作。他将视觉信息处理分为三个层次:计算理论、表达和算法和硬件实现。在如今看来,或许有些不合理,但是却将计算机视觉作为了一门正式学科的研究。而且其方法论到今天仍然是表达和解决问题的好向导。值得一提的是,1987年成立的ICCV(国际计算机视觉大会)给计算机视觉领域做出重要贡献的人颁发奖项,奖项名字叫马尔奖。
    这里写图片描述

    图3:计算机视觉算法早期例子:a)线条标注;b)图案结构;c)关节身体模型;d)本征图像;e)立体视觉对应;f)光流


      视觉计算理论提出后,计算机视觉进入20世纪80年代,一个蓬勃发展的年代,提出了主动视觉理论和定性视觉理论等,这些理论认为人类视觉重建过程不是马尔理论那样直接,而是主动的,有目的性和选择性的。这个时期很多研究关注于定量的图像和场景分析的更复杂的数学方法。比如图像金字塔开始广泛应用于完成诸如图像混合这样的任务和由粗到精的对应搜索。使用尺度空间处理的概念也建立起了金字塔的连续版本,到了20世纪80年代后期,小波在一些应用中开始取代或增强规范的图像金字塔。这个时期还提出了Canny边缘检测算法,图像分割和立体视觉,基于人工神经网络的计算机视觉研究尤其是模式识别也在这时候火了起来。首先说说,立体视觉,这时期使用定量的形状线索使用的立体视觉扩展到由X到形状的各种各样的方法,包括由阴影到形状、光度测定学立体视觉、由纹理到形状以及由聚集到形状。其次说边缘和轮廓检测,这时期Canny边缘检测提出,还包括动态演化轮廓跟踪器的引入,比如蛇行。还有基于三维物理量的模型的引入。这时期的研究人员发现,很多立体视觉、流、由X到形状以及边缘检测算法,如果作为变分优化问题来处理,可以用相同的数学框架来统一或至少来描述,且可以使用正则化方法使其更鲁棒(适定的)。与此同时。German(1984)指出这类问题同样可以通过离散马尔科夫随机场模型(MRF)来很好地表达,这样就能使用更好的(全局)搜索和优化算法,比如“模拟退火”。之后出现了卡尔曼滤波来对不确定性进行建模和更新的MRF算法的在线变形。人们也尝试了将正则化及MRF算法映射到并行硬件。这个时期活跃的研究领域还包括了三维距离数据处理(获取、归并、建模和识别)。
    这里写图片描述

    图4:20世纪80年代计算机视觉算法例子:a)金字塔混合;b)由阴影到形状;c)边缘检测;d)基于物理量的模型;e)基于正则化的表面重建;f)距离数据获取和归并


      20世纪90年代,在识别中使用投影不变量的研究呈现爆发性增长,演变为解决从运行到结构问题的共同努力。最初很多研究是针对投影重建问题的。它不需要摄像机标定的结果。同时,提出了因子分解方法来高效地解决近似正交投影的问题,而后扩展到了透视投影的情况。最终,该领域开始使用完全的全局优化方法,这在后来被认为与摄像测量学中常用的“光束平差法”相同。使用这些方法建立了完全自动的(稀疏)3D建模系统。这个时期,从80年代开始的,使用颜色和亮度的精细测量,并与精确的辐射传输和形成彩色图像的物理模型相结合,构成一个称作“基于物理的视觉”的子领域。同时,光流方法得到了不断的改进,稠密立体视觉对应算法方面也取得了很多进展,其中最大的突破是使用“图割”(graph cut)方法的全局优化算法。另外,产生完整3D表面的多视角立体视觉算法到现在都依旧活跃。从二值的轮廓产生3D体描述的方法仍然还在研究中。
      因为伴随着计算机视觉在交通和医疗等工业领域的应用越来越多,其他一些基础视觉研究方向,比如跟踪算法、图像分割等这个时期有了一定的发展。比如基于跟踪的算法,诸如使用“活动轮廓”方法的轮廓跟踪(例,蛇行、例子滤波器和水平集方法还有基于亮度的(直接)方法,常用于跟踪人脸和整个物体),此外还有重建光滑的遮挡轮廓的研究。

      另外,图像分割,从计算机视觉早期开始一直是重要的方向和活跃的研究话题,90年代产生了基于最小能量的方法和最小描述长度方法,规范化割方法以及均值移位方法。统计学习的方法也是在这个时期流行起来,最初用于人脸识别的主分量本征脸分析和曲线跟踪的线性动态系统。从进入20世纪90年代,伴随着各种机器学习算法的全面开花。机器学习开始成为计算机视觉,尤其是识别、检测和分类等应用中一个不可分割的重要工具。各种识别和检测算法迎来了大发展。尤其是人脸识别在这个时期迎来研究的小高草。各种用描述图像特征的算子不断被发明出来,耳熟能详的SIFT算法也是在20实际90年代末被提出。

    这里写图片描述

    图5:20世纪90年代计算机视觉算法的例子:a)基于因子分解的从运动到结构;b)稠密立体视觉匹配;c)多视觉重建;d)人脸跟踪;e)图像分割;f)人脸识别


      进入21世纪以后,计算机视觉俨然成为计算机领域一个大学科,国际计算机视觉与模式识别会议(CVPR)和ICCV已经成为人工智能领域甚至是整个计算机领域内的大型盛会。计算机视觉领域最显著的发展是与计算机图形学之间的交互增多了,尤其是基于图像的建模和绘制这个交叉学科领域。直接操作真实世界的影像来创建动画的想法最初是从图像变成方法开始变得显著起来,后来用于视角插值、全景图拼接和全光场绘制。同时也出现了从图像汇集自动创建具有真实感3D模型的基于图像的建模方法。随着计算机视觉和图形学的相互影响加深,最为明显的是,在基于图像绘制下,产生了图像拼接、光场获取和绘制以及通过曝光包围进行的高动态范围图像捕获,这些都被重新命名为计算摄影学。例如,通过曝光包围创建高动态范围图像得到快速采纳,使得色调映射算法发展成为必要,以便将这样的图像转变为可显示的结果。处理归并多个曝光之外,也出现了闪光图像和其对应的非闪光图像归并的方法以及交互地或自动地从交叠的图像中选择不同区域的方法。

      纹理合成、绗缝(quilting)和修图也被划入计算机摄影学的另外一些研究方向,因为它们把输入图像样例重新结合以产生新的照片。
      21世纪以来,显著趋势还有物体识别中基于特征方法(与学习方法相结合),该领域著名的论文有星群模型(Weakly Supervised Scale-Invariant Learning of Models for Visual Recognition,2007)和图案架构(Pictorial Structures for Object Recognition,2005)。基于特征的方法也主导了其他识别任务,例如场景识别和全景图以及位置识别。虽然兴趣点特征趋于主导当前研究,有些研究小组也在从事基于轮廓的识别研究和基于趋于分割的识别研究。
      纹理合成、绗缝(quilting)和修图也被划入计算机摄影学的另外一些研究方向,因为它们把输入图像样例重新结合以产生新的照片。
      
    21世纪以来,还有一个发展趋势是发展更高效求解全局优化问题的算法。这一趋势始于图割方面的工作,但在消息传递的算法也取得了许多进展,例如,带环的置信转播。

      21世纪以来,还有一个趋势是复杂的机器学习方法在计算机视觉问题中的应用和深度学习在计算机视觉的应用,有意思的是,2010开始举办的大规模视觉识别挑战比赛(ImageNet),在2012年举办的那一届出现了一个使用神经网络AlexNet的研究生阿厉克斯•克里泽夫斯基,完胜第二名,此后基于深度学习的检测和识别、基于深度学习的图像分割、基于深度学习的立体视觉如雨后春笋般一夜之间全冒出来。
    这里写图片描述

    图6:21世纪以来的计算机视觉例子:a)基于图像的绘制;b)基于图像的建模;c)交互色调映射;d)纹理合成;e)基于特征的识别;f)基于区域的识别


    所自学书籍的结构

    这里写图片描述


    总结

      本次博文主要是以《计算机视觉:模型、学习和推理》为主,先介绍了计算机视觉的定义,而后介绍计算机视觉的简史,最后描述该书的架构,对计算机视觉有一个完整的认知和技术的发展。最后值得说明的是,本书在之后的概率论部分,有些委实难懂。所以需要一定的基础之外,还需要强大理解能力。


    展开全文
  • 本文是个人在观看完cs231n课程视频及讲义后对其内容的一些归纳总结,留在此处加深影响,也算...为什么需要引入Loss function这一个概念 loss function意为损失函数,即表示输入数据在经过一个网络训练后,将得到的输...

    本文是个人在观看完cs231n课程视频及讲义后对其内容的一些归纳总结,留在此处加深影响,也算用另一种方式加深自己对其的理解。

    何为计算机视觉

    简而言之,教计算机能够像人或者超过人的能力完成某些工作,例如自动驾驶、图像分类等。简化人们工作。

    计算机视觉遇到的挑战

    为什么需要引入Loss function这一个概念

    loss function意为损失函数,即表示输入数据在经过一个网络训练后,将得到的输出结果的优劣进行量化,从而帮助我们优化网络结构

    为什么需要引入Weight Regularization

    这样做的目的主要是增大输出结果对输入数据的依赖。即输出结果应该要与输入数据强相关。例如下面的例子
    权重正则化必要性
    虽说两个权重(w1和w2)与输入数据的预算结果一致,但是w2会均匀考虑数据的每一位的影响,所以这将对最终的结果起到一种保护作用,不至于最终的结果带有偏向性,即只考虑到一部分因素就得出结果

    如何才能做到Optimization

    optimization意为找到一个有效的方案来使loss function最小化。

    1. 首先最容易想到的就是随机搜索,直到找到最小值。但是这个办法过于盲目且效率不高的情况下得到的结果也不一定是最好
    2. 随后你可能想到如果损失能够按照一定梯度进行变化,这样就有据可循,也就是如下图所示的导数
      导数图示
      所以如果我有如下图所示的参数,我需要计算他的梯度,那么我将有两种方式
      梯度计算数据
      1.对参数中的每一个值都利用导数公式进行求解,称之numerical gradient,如下图所示
      gradient numerical image1
      gradient numerical image1
      好处:容易想到,便于编程
      坏处:我首先需要求出每一次参数更新后的loss function,才能求解梯度,一方面这样误差会比较大(因为需要计算一次更新参数后的loss function),另一方面速度非常慢,尤其当需要计算的参数量大的时候,计算效率会更低。
      这样做虽然能够得出最终的结果,但是有不小的缺点,所以引出第二种解决方案
      2.第二种即为解析梯度(Analytic gradient),即引入微积分,一次性求出所有维度(参数中所有值)得梯度。
      好处:结果准确、求解速度快
      坏处:由于引入复杂数学计算,容易出错。解决方案:梯度检测(gradient check),使用numerical gradient检测Analytic gradient的准确性
    3. 由于我们需要使loss function达到最小,所以使用gradient求解loss function时称为Gradient Descent(这个解决了为什么需要引入Gradient Descent这一概念 ps:个人理解)

    未完待续…

    展开全文
  • 最近随着VR行业的回暖,经常在知乎上有人问:我以后想做VR,需要学习什么计算机技术?这篇文章里,我们就系统地介绍一下:进入VR行业都需要学习哪些计算机软件技术。因为篇幅有限,文中不会对技术细节进行展开,主要...
  • 计算机视觉那些事计算机视觉是做什么的?应用方向所需基础数学编程语言所需软件库学习路线深度学习框架口号 计算机视觉是做什么的? 计算机视觉以相机代替人眼,实现对目标的识别、跟踪、测量等工作,是一门看的科学...
  • 文章目录为什么需要自监督学习?什么是自监督学习?Pretext Task进一步理解Pretext TaskClustering & Contrastive LearningContrastive Self-supervised Learning LearningDeep InfoMaxContrastive Predictive ...
  • 仅作学术分享,不代表本公众号立场,侵权联系删除转载于:机器之心人工智能就业市场持续火热,越来越多的学子投身这一领域。然而,攻读计算机视觉和机器学习研究生需要哪些先决条件?你将到哪些知识...
  • 但我们需要做进一步的细处理,让我们得到比较好的白色的车牌区域掩码。 本期内容 本期就是要处理这个问题,先来仔细分析这个问题。我们想要得到的区域是“辽H….”这一块白色的区域,这个区域有什么特点呢?第一...
  • 作者&编辑:李中梁为什么需要自监督学习随着深度模型的兴起,基于监督的图像特征提取方式已经成为主流。然而这种方法需要大量的有标签数据,标注成本过高,在小样本数据集上面临着过拟合等问...
  • 感兴趣的记得关注公众号"平凡而诗意",会定期分享科技、AI相关知识,此外,回复关键字...为了分割目标,需要将这些区域分离提取出来,在此基础上才有可能进一步利用,如进行特征提取、目标识别。因此,图像分割是...
  • 为了分割目标,需要将这些区域分离提取出来,在此基础上才有可能进一步利用,如进行特征提取、目标识别。因此,图像分割是由图像处理进到图像分析的关键步骤,在图像领域占据着至关重要的地位。介绍提到...
  • Fly-AI竞赛服务平台 flyai.com在开始学习之前推荐大家可以多在FlyAI竞赛服务平台多参加训练和竞赛,以此来...如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github...
  • 需要执行脚本就可以完成从下载数据到训练的过程。比如在MXNet中,直接到mxnet/example下执行train_mnist.py即可,Caffe中也有类似的shell脚本。 然后这样是不利于初学者了解到底发生了什么。本文将数据准备的部分...
  •   原文链接:从零开始一起学习SLAM | 学习SLAM到底需要学什么?   SLAM涉及的知识面很广,我简单总结了 “SLAM知识树” 如下所示:   可以看到涉及的知识面还是比较广的。这里放出一张SLAM圈子里...
  • 计算机视觉知识点-2

    2020-08-23 23:49:27
    什么我们需要它?7解释降维(dimensionality reduction),降维在哪里使用,降维的好处是什么? 1深度学习要这么深? 1、一个直观的解释,从模型复杂度角度。如果我们能够增强一个学习模型的复杂度,那么它的学习能力...
  • 重点:dp里存的是什么 题目: 300. 最长上升子序列 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 ...
  • 完整代码链接:aiLearnNotes前言激活函数不仅对于卷积神经网络非常重要,在传统机器学习中也具备着举足轻重的地位,是卷积神经网络模型中必不可少的一个单元,要理解激活函数,需要从2个方面进行讨论:什么是激活...
  • 假如有一堆桃子和梨混在一起的一堆水果,我们需要设计一个机器对这堆水果按桃子和梨分类,但这个机器现在还不知道桃子和梨是什么样子的,所以我们需要给这个机器看一堆桃子和梨的照片,让它去学习桃子和梨的样子...
  • 还有就是像python语言和opencv这类计算机视觉里常用的东西不需要太刻意去单独学习,用的时候单独敲几个小demo敲一下看看效果就行了。主要的学习过程在代码阅读过程中和不懂就百度的过程中慢慢的就会了。 第二件事:...
  • 在传统CV领域,由于某些拍摄角度的问题,我们需要对图像进行矫正处理,而几何变换正是这个处理过程的基础,因此了解和学习几何变换也是有必要的。 这次我们带着几个问题进行,以旋转为例: 1:变换的形式(公式)是...
  • 如果需要处理的原图及代码,请移步小编的GitHub地址...很多函数都使用到它,那么这个Mask到底是什么呢,下面我们从图像基本运算开始,一步一步学习掩膜。1,图像算术运算图像的算术运算有很多种,比如两幅图像可以...
  • 当你在阅读深度学习相关文献时,尤其是关于计算机视觉和图像分类,你很可能会看到关于rank-N 准确度。例如,几乎所有在ImageNet数据集上验证的机器学习方法的论文都给出了rank-1和rank-5准确度 (我们将在本章后面...
  • 在传统CV领域,由千某些拍摄角度的问题,我们需要对图像进行矫正处理,而几何变换正是这个处理过程的基础,因此了解和学习几何变换也是有必要的。 这次我们带着几个问题进行,以旋转为例: 1:变换的形式(公式)是...
  • 这几年安防产业亦出现相当热门的数据化人工智能学习和识别技术的概念,它们与安防有什么关联?如何应用在安防监控中?这种AI人工智能目前最多的应用又是哪些? 结合数据采集的安防AI人工智能 自从道路监控系统在全球...
  • 在传统CV领域,由于某些拍摄角度的问题,我们需要对图像进行矫正处理,而几何变换正是这个处理过程的基础,因此了解和学习几何变换也是有必要的。 思考几个问题,以旋转为例: 变换的形式(公式)是什么? 旋转中心...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 163
精华内容 65
关键字:

计算机视觉需要学什么