概况
最近忙着看机器视觉 (Computer Vision),决定系统的做一套学习日记和教程,加深理解与记忆,并把一些知识分享给大家。
整套教程+学习日记将包括图像的一些基础知识,滤镜(filter),边缘检测(edge detection),角检测(corner detection),物体检测(object detection) ,特征提取(feature extraction) 等,还有一些关于神经网络,机器学习的相关概念。由于博主是英文学习,所以本套教程将涵盖大量的英语词汇与相关论文阅读,便不一一进行解释。如果有英语基础或者无所畏惧的童鞋请继续往下看。
另外,computer vision 需要基本的linear algebra 知识(矩阵计算等)和matlab. 如果没有这两个基础的童鞋,请进行基本恶补以后,再继续往下看~
下面进入正题。
学习日记一:什么是Computer Vision(CV)?
备注:此篇文章为科普,针对小白。对CV有过了解的人可以跳过,喝杯茶等下篇文章吧。88888
CV 对于没接触过的人来讲感觉可能比较神秘,但是其实并不是什么了不得的东西。经过多年计算机的发展以及移动平台的普及,可以说CV是无处不在。如果说人理解这个世界是通过双眼与大脑的组合运作,那么CV就是给当做人类大脑的计算机装上了两只眼睛。
那么有人问了。。装个摄像头尼玛不是装了个眼睛? 那么CV就是摄像头啊,还讲个毛线? 那么请你往下看。。。
众所周知,人类之所以可以达到目前的高度,是因为可以将看到的东西转化为知识,进行分析,研究。装个摄像头仅仅是“装上了”眼睛,但是并没有将眼睛与大脑(计算机处理,算法等)给连接起来。如果没有CV,那么摄像头所捕捉到的仅仅是表面2D的一个图像而已,然后屏幕将图像展示给人类,至于如何理解这个图像,还是得靠人类去自行发挥,可以说这个图像所传达的内容并不能被计算机给吸收消化,并运用到实际中去。那么生活中有哪些我们常见的东西用到了CV呢?
这个时候就该问问你自己,你是否有用过PS把自己P成欧巴?你是否有用美图秀秀给自己非主流的加个滤镜?你是否有在哪个地方发现你没说你是谁就被别人知道了?你是否&%#$#@#!$! (编不下去了。。)
总之,CV在生活中处处不在,现在CV作为做火热的话题之一,已经被玩坏。再加上现在更加火热的深度神经网络(后面会专门讲到),可以说这记组合拳把人类众多领域的成就提高到了一个全新的纪元。就比如目前最最最最热门的自动驾驶,可以说没有CV的话,那就等着玩碰碰车吧。
那这个时候又会有人问了,为什么我们要用CV? 我们尼玛不是有眼睛吗?这不是浪费时间吗?
此行省略1万字
出门左转。
好了。总结下CV未来的一些研究领域:运动,医学,生活应用,自动驾驶,机器人。如何用,自行脑补。(学到后面你就知道了 ^_^)
如果嫌我讲的啰嗦,这么简单的东西,那么请往下看。
那么多的地方都用到了CV,CV也被研究了那么久了,那么怎么感觉现在很多东西还是没法实现或者准确率不高呢?比如面部识别,人物识别等等,为什么不能100%?
首先从科学上讲,没有什么东西可以达到完全100%的准确度。就算是人类去识别图片,也不可能在每一种情况下都能够百分之百的进行认知。这是一个大前提。
在目前的CV领域,有几大主要难点。
1.现实世界是3D,而图像是2D,即使是Uber自动驾驶所使用到的雷达图像,终究也还是2D平面,用灰度去测量,结合摄像头捕捉的图像。所以说现实世界要复杂得多。想想各种东西都分前后左右,有光和色彩影响,遮挡等等因素,简单的2D 图像,如何表达那么多的信息?
2.那么如果信息有限,没有办法像人一样感知到周围环境结合分析,那么该如何处理一些技术上的难题?比如在遮挡一个人半个身子的情况下,如何知道一个人在干嘛?
3.现实世界的东西太多太复杂,假设说在马路上随便拍个图片让电脑处理,里面涉及到的不同的类别(class,就比如人是一个类,车是一个类,其中不同品牌的车还分子类。etc)那么计算机该如何处理如此庞大的信息量?就算是train神经网络等等方式,计算机的内存有限,人类train一个model模型的时间有限,train的资源素材有限,如何思考这其中的trade-off或者说如何绕过一些技术难题?
所以说在学习与研究CV的时候,一般所采用的方法是细分这些难点,把它们归类为实际的solvable 的问题。比如corner detection, edge detection, motion detection, pose detection 等等,现阶段CV的发展还处于逐步摸索或者进一步提高这些基础方面的准确度与效率阶段。至于下一步该如何走,朝哪儿走,怎样让CV对于实际用途的帮助和提高更广,还需要进一步思考与研究。
这套学习日记我将从一个广到细,再到广的套路来套路各位感兴趣的读者们。
下一章节我将讲到最基本的classification problem,简单的区别不同的class类别,包括SVM,linear classification, non-linear等主题。看名称很懵逼,想知道是什么?
点个赞,请听下回分晓。
------------------------------------------------------
本次日记结束。886
对文章的讲述方式有建议,或者有什么问题,有什么想进一步了解的知识,请在下面留言吧~
谢谢阅读