计算机视觉/机器视觉/数字图像处理

Published: by Creative Commons Licence

Visual.

"视觉"都研究些什么?

Created 2019.01.24 by William Yu; Last modified: 2019.01.24-V1.0.1

Contact: windmillyucong@163.com

Copyright ©2018 William Yu. All rights reserved.


本文写于鄙人大四即将毕业之际,回顾大学三年,我将很大部分时间投放在了“团队科研”中,没有半点成果,所以聊以此文算是回忆总结,也算是写给大一大二小学弟们的经验贴,如果诸位有意愿有兴趣参与一些机器人大赛、实验室科研项目等动,那么或许本文略值得一读。诚然由于不了解其他本科院校的情况,故且以鄙人所在的华中科技大学为背景。

本科生的“科研”大体上分为四个部分——机械+控制+电路+视觉。我们信奉一句话”硬件决定上限,算法决定你离上限有多远”,这句话可以理解为“一张卷子做了多少分的题,可以决定你成绩最高拿多少,做了的题里面做对了多少分会是你的最终成绩”。而这四部分中“视觉”是离硬件最远的,你需要的只有三样东西——一个USB相机(甚至相机都不需要)+笔记本电脑+甘愿陪你调Bug的基友。

注:远离硬件是一件很值得庆幸的事情,至少我认为。

原因一:你不用为了买各种物资烧钱。

原因二:你不用因为一些上帝都解释不清楚的诡异问题结果发现是一些搞笑的操作而嫌弃自己的愚蠢。(比如线松掉了?线接反了?)————毕竟杜邦线热熔胶是本科生最爱,“刚刚还好好的!”是我们经常会讲的话。

原因三:视觉基本就是写代码,不可避免得你会遇到bug,但是只要你拿电脑当女朋友,愿意投入足够的精力去悉心研究,那么它必然会明白你的意志。

依旧重申重点——只涉及本科科研,所以我们学习的是OpenCV,于是大家会从OpenCV的美图秀秀功能开始,直到最后依旧停留在OpenCV的美图秀秀功能。

没错,在培训快结束时可能会发生这样的对话:

–T:你们觉得自己学的怎么样?

–S:我们学的是美图秀秀吗?

即便只涉及本科,那也有必要稍微提一下学科划分,让大家明白自己所处的位置:

  • 数字图像处理
  • 机器视觉
  • 计算机视觉

记录一段精彩的对话:

–S: 所以机器视觉和计算机视觉的区别到底是什么啊?

–T: 少了机器多了计算。

–S:意思是——少了硬件多了算法?

(其他两个领域,我想睡觉了,先挖个坑)

我们研究的大部分内容隶属于在机器视觉领域,最主要的工具是OpenCV,以及C++或者Python。

一些好的资料:

1.《OpenCV3编程入门【毛星云著】》第一遍不要看数学原理,两个目标:OpenCV的基本数据类型;学会一些关键函数的使用方式,明白输入什么输出什么,什么参数的改变会造成什么结果。

————你们的培训通常只会到这里———因为这些足够你们哄骗什么都不懂的团队领导了———

于是很有可能,你会觉得视觉竟然如此简单,调函数,调参数,OVER。OpenCV对你来讲就是个黑匣子,你知道你点了哪几道菜,你为他们设置好几分熟等参数,于是服务员回馈给你精美的餐点,可当你好奇这道菜到底怎么个做法的时候你是无能为力的。

所以能自己实现一个数字图像处理算法库,才是最好的方案,有用没用暂且不说。你可能会问OpenCV已有的轮子,我们何必再造?去餐厅吃饭,你只能在菜单里面点餐,表面上你有选择的权力,然而事实上,待在自家厨房自己做饭的男人才是真正的Freeman自由人。相信我,尽管刚开始自己学着做饭吃的时候,那味道着实难以下咽,你实现的功能必然远远不及OpenCV,但是现在不意味着将来。

2.《OpenCV3编程入门【毛星云著】》第二遍看数学原理,相信数学无用论的孩子们可以转行就业了,一个目标:把之前遇到的被你跳过的公式全部推一遍,体会一下“哦,原来如此!”的美妙感觉。

3.《数字图像处理【岗萨雷斯著】》是时候来点真家伙了,这是一本会带你总览一遍所有脉络的书,略读即可。

4.《》

5.是时候自己做点什么了,OpenCV里面常用的函数,自己实现一遍吧。