1, 如何学习机器人视觉处理
这个感觉是从论坛上大家所问的问题得出来的。因为。在论坛中看到不少朋友所问的问题,是相当可笑的。说可笑并非指所提问题过于简单幼稚,而是所问的问题一看就是从书本上抄来的,而不是在实际情况下所遇到的。换句话说,论坛中的朋友大多只是在纸上谈兵,极少有人真正自已动手开发视觉系统。这样说是因为自己搞开发的人绝对问不出某些奇怪问题来的。往深了说一点,好象国内的朋友们只喜欢啃书本,并不愿意(也可能是懒得)动手。一句话,国外机器视觉发展到今天,已经可以清清楚楚分为三个部分: 1,底层开发部分。 2,二次开发部分。3,最终使用部分。于是在国外,从事这一行业的人现在也就可以简单而清楚地分成三种人: 1,底层开发的人(从事底层开发工作的人)。2,二次开发的人(从事二次开工作的人)。3,使用及操作机器视觉系统的人(从事最终使用工作的人)。第一类人。就是我们常说的,开发通用视觉系统(如:DVT,西门子,欧姆龙,EVISION,COGNEX等等)的开发人员,也就是DVT,COGNEX这些公司开发部的技术职工。第二类。就是大家所说的OEM用户。是专门用第一类人所开发出的系统,给第三类人搞二次开发,开发各种专为第三类人所用的系统。第三类人,就是用户(enduser)。这类人是真正将机器视觉系统应用到各个领域中的人,他们不仅在各自的行业中使用种种已经开发成型的机器视觉系统。而且负责对各类系统进行测试及评估。举个实际例子,这里有不少朋友问过这类问题:如何检测某一工件;检测光盘表面的系统该如何配置CCD相机、镜头及灯源等。问这些问题的朋友应该算是第三类人。他们公司要他们寻找一个系统可以用来检测本公司的产品。但由于第一类人所开发的,只是通用的系统以及视觉系统开发工具的软件包。并没有哪家公司专门开发一套系统来检测光盘或是某种特定的工件。所以,这些朋友就应该来找我,因为我是第二类人。我的工作就是,专门用DVT,EVISION,COGNEX等的视觉卡,以及视觉系统开发工具软件包为他们专门开发一套他们所需要的光盘检测系统或是工件检测系统。绕了老大一圈,其实要说的问题就是一个----我所发现的问题:这里80%以上朋友把自己的身分混淆了,越俎代庖。不客气的说,目前国内搞这行的朋友似乎都有些好高骛远。不少从事第二部分工作朋友(搞二次开发的第二类人)对于机器视觉有关知识的了解,尚不如国外第三类人的知识水平(我是从大家所问的问题感觉到的)。而国内第三类朋友知识水平就更可想而知。可是奇怪的是,每个人所问的却都是第二类人要问的,有些甚至是一类人才会问的问题。好象,机器视觉是个十分简单的技术,凭大家随便问几个“关键性”的问题,再由所谓的“专家”三言两语的回答一下。大家就一夜之间都可以自己搞底层开发,成第一类人了。要成为第一类人,又分硬件及软件两种。要对自己所负责的这个模块非常了解,搞软件要知道算法及运行速度;搞硬件要明白公司所选用芯片的特点等等。同时还要清楚对手公司的优缺点以及机器视觉这一行的种种动态和最新技术。总结一下。这三种人相比,第一类人一定要专业,对机器视觉的某一领域非常非常了解;第二类人虽比不上第一类人那么专业,但更加全面;第三类人更熟悉各个应用系统开发公司(第二类人)的优缺点。现在大家可以看得出,机器视觉发展到今天,其分工已经越来越细,每个部分的工作其实是很难相互取代的。大家不要以为第三类人就比第一类人低一等,这是一个错误的等级概念。我本人过去曾属于第一类人,现在作的是第二类工作。而我的几个“师弟师妹”(当初曾一起作第一类人时的同事)现在就在干第三类工作。大家别小看第三类工作,以为这是小儿科,你能真作好这一行也不是很容易。毕竟这也是一门行当也是一个饭碗!另外,以我个人来看:以国内现在机器视觉的水平,对于那些想作第一类人的朋友我在这里劝一句:还是算了吧。国内的机器视觉水平打根子上就差,您还打算搞底层?算法本身都是抄人家的,就只能和对手拼程序的写法了。不过我觉得那更没戏。这样说我绝没有看不起初学者的意思。我说过:所问的问题再简单,我都不会笑话你。对于每样事物我们都是从无知开始的。但是,对于那些极不实际的好高骛远的问题,我还是要说,希望大家踏实下来,戒浮躁,从最基本地学起----先确定自己的身份。
2, 如何学习机器人视觉处理
国外机器视觉发展到今天,已经可以清清楚楚分为三个部分: 1,底层开发部分。 2,二次开发部分。3,最终使用部分。于是在国外,从事这一行业的人现在也就可以简单而清楚地分成三种人: 1,底层开发的人(从事底层开发工作的人)。2,二次开发的人(从事二次开工作的人)。3,使用及操作机器视觉系统的人(从事最终使用工作的人)。第一类人。就是我们常说的,开发通用视觉系统(如:DVT,西门子,欧姆龙,EVISION,COGNEX等等)的开发人员,也就是DVT,COGNEX这些公司开发部的技术职工。第二类。就是大家所说的OEM用户。是专门用第一类人所开发出的系统,给第三类人搞二次开发,开发各种专为第三类人所用的系统。
3, 选择机器视觉检测要考虑什么?
机器人是电子与机械专业的结合,零基础需要很大精力,要学的很多。基础的课程单片机、C编程、PLC、数控加工过程等等机器人包括很多中,就先说说移动机器人吧。 移动机器人应用程序有个最大的特点就是高度的异步和并行。例如,处理传感器信息的子程序包括视觉等等、自主定位程序,路径规划程序,和动态障碍闪避子程序等等,他们的运行是完全并行或者说是并发的。它们之间的通信和和相互依赖是个大问题。 在运动轨迹规划当中,大多数用到AI中的离散空间搜索算法,更复杂点儿的任务,差不多都离不开知识的表达、简单的控制理论和一些机器学习算法。 这些话题说下去,没边儿的。 再说说开发平台吧,多数厂商生产的硬件机器人,都配备有自己的一套开发平台和开发套件。有些机器人是单片机控制的,有些则是嵌入式操作系统。总之这个平台目前是非常缺乏标准化的。弄成的结局就是,如果想换另一家厂商的机器人,很可能也要接触另一套软件套件。微软发布了一套叫Robotics developer studio的环境,意图将这个烂摊子标准化一下,不过现在看来,路还很长。 很多机器人的研究,在仿真环境下进行。市面上能买到的机器人,要么功能和二次开发的能力实在不行,要么很贵。 学习机器人编程,分你怎么看,走哪个风格。走接近硬件的路线呢,偏向嵌入式,很可能你最后是软硬通吃;走智能控制和AI的路线呢,很可能体验到的是分布式软件体系结构和神奇的人工智能。 说这些吧
4, 机器视觉需要学习哪些数学知识
计算机视觉与机器视觉,首先是应用场景不一样,就像视远图像赵旭回答的那样:你把摄像头对着人就是CV,对着车间就是MV。计算机视觉和机器视觉应用场景不同,就像拉货车和载客车是的,侧重点不同而已,一个侧重人工智能分支,一个侧重工业应用!简单说起来的话,计算机视觉偏重于深度学习并且偏向软件,机器视觉偏重于特征识别同时对硬件方面要求也比较高,不过随着对智能识别要求越来越高的发展,这两个方向毕竟会互相渗透互相融合,区别也仅仅限于应用领域不同而已。其次,我感觉最大的区别,在于技术要求的侧重点不一样,甚至差别很大。计算机视觉,主要是对质的分析,比如分类识别,这是一个杯子那是一条狗。或者做身份确认,比如人脸识别,车牌识别。或者做行为分析,比如人员入侵,徘徊,遗留物,人群聚集等。机器视觉,主要侧重对量的分析,比如通过视觉去测量一个零件的直径,一般来说,对准确度要求很高。我记得以前接触过一个需求: 视觉测量铁路道岔缺口。哥刚毕业的时候在铁路上班,做过控制系统,还开过内燃机车,很清楚道岔缺口的重要性,这玩意儿你说要是测不准,呵呵:)当然,也不能完全按质或量一刀切,有些计算机视觉应用也需要分析量,比如商场的人数统计。有些机器视觉也需要分析质,比如零件自动分拣。但,计算机视觉一般来说对量的要求不会很高,商场人数统计误差个百分之几死不了人的,但机器视觉真的会,比如那个道岔缺口测量。既然要求这么高,是不是机器视觉就比计算机视觉难呢?也不是的,应该说各有各的难处。计算机视觉的应用场景相对复杂,要识别的物体类型也多,形状不规则,规律性不强。有些时候甚至很难用客观量作为识别的依据,比如识别年龄,性别。所以深度学习比较适合计算机视觉。而且光线,距离,角度等前提条件,往往是动态的,所以对于准确度要求,一般来说要低一些。机器视觉则刚好相反,场景相对简单固定,识别的类型少(在同一个应用中),规则且有规律,但对准确度,处理速度要求都比较高。关于速度,一般机器视觉的分辨率远高于计算机视觉,而且往往要求实时,所以处理速度很关键,目前基本上不适合采用深度学习。以上讨论的是技术,商业方面,计算机视觉的应用面更广一些,毕竟很多业务是跟人相关,比如人脸识别,行为分析等,很多垂直领域都有计算机视觉潜在需求,相对来说,更适合创业;而机器视觉顾名思义,业务主要跟机器相关,而且对准确度甚至安全性要求很高,也就在资质品牌方面有较高的门槛,所以寡头垄断严重,一般来说,更适合上班而不是创业。机器视觉(Machine Vision, MV) & 计算机视觉(Computer Vision, CV)从学科分类上, 二者都被认为是 Artificial Intelligence 下属科目.有几个分支:一个是图像处理,主要是信号与系统,统计,优化一个是求解景物与图像之间的关系,如立体视觉、三维重建,主要是几何一个是模式识别,例如如何分割图像、识别目标,主要是人工智能但实际提及时, 主观感觉上MV 更多注重广义图像信号(激光,摄像头)与自动化控制(生产线)方面的应用。CV 更多注重(2D, 3D)图像信号本身的研究以及和图像相关的交叉学科研究(医学图像分析,地图导航)。
5, 机器人视觉与计算机视觉:有什么不同
机器人专业需要学习的理论包括:高级语言程序设计、电路分析、机械设计基础、模拟电子技术、数字电子技术、自动控制原理、微机原理及接口技术、电机与电气控制技术、单片机原理及其应用、机械制造基础、PLC原理与应用。工业机器人控制系统、运动控制系统、工业机器人计算机编程、机器人传感器技术及应用、工业机器人系统集成技术、工业机器人仿真技术、生产运作管理、计算机视觉、现场总线控制技术、嵌入式控制系统及应用。机器人专业主要培养德、智、体、美全面发展,具有在生产一线从事工业机器人及其相关机电设备的安装、编程、调试、运行维护和设备管理的高端技能型专门人才。机器人专业学生毕业后,能够在机器人的设计研究单位、生产制造企业以及集成应用公司,从事机器人工作站设计、装调与改造,机器人自动化生产线的设计、应用及运行管理等技术或管理岗位工作。专业要求学生通过三年的学习,能够掌握一般工业机器人的结构、运动原理等基本知识,掌握机器人的安装调试、编程操作、维护与维修的技能,并具有良好的实际生产水平,满足工业机器人应用的技能要求。具有良好的团结协作、钻研、踏实肯干的职业精神与专业素养。机器人学的研究推动了许多人工智能思想的发展,有一些技术可在人工智能研究中用来建立世界状态的模型和描述世界状态变化的过程。参考资料来源:百度百科-机器人工程专业
相关概念
机器人
机器人(Robot)是自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动。它的任务是协助或取代人类工作的工作,例如生产业、建筑业,或是危险的工作。
移动机器人
移动机器人(Robot)是自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动。它的任务是协助或取代人类工作的工作,例如生产业、建筑业,或是危险的工作。
子程序
一般程序设计语言包含两种基本的抽象:过程抽象和数据抽象。过程抽象有时也称控制抽象。子程序是最主要过程抽象机制。面向对象语言中的方法与子程序的概念十分相似,不同在于它们的调用以及它们与类或对象关联的方式。