1. 自学机器视觉应该怎么入门
要回答这个问题,我们可以分解一下机器视觉系统,来逐个分析。
一套最简单的机器视觉系统包括
视觉成像部分
图像处理部分
运动控制部分
1. 视觉成像部分
视觉成像又包含几个典型组件: 光源,镜头,工业相机。
光源和镜头都需要我们掌握光学知识,不同的打光方式,可以让相机对物体产生完全不同的成像;而镜头的倍率,焦距,视野等的选择不同直接决定了成像的逼真度。对于一名机器视觉工程师来说,掌握如何选择镜头,如何选择光源,如何确定打光方式是最基本的技能。
工业相机需要我们掌握光电知识,掌握相机传感器的区别,掌握图像成像的基本知识如清晰度,动态范围,视场角等等,这样我们才能根据需求和场景选择正确的相机,最快速的掌握这些知识的方法是买一台入门级单反来研究透这些成像参数和成像的关系。
2. 图像处理部分
图像处理我们一般理解是在PC机器上进行的,实际上在工业领域,大部分采用工控机,因为它稳定,加上有成本优势。
近些年的发展,嵌入式硬件也在蓬勃发展,很多工厂对于小的需求比如控制几百台仪表盘的开关和状态监控,完全可以利用树莓派等开源硬件实现。
对于入门者来说,可以优先掌握PC平台,X86平台的开发,在熟悉之后可以延展到嵌入式平台。
在软件部分,大部分应用层采用C#,.net,QT,C++来实现,因此掌握这其中的一门编程语言是必备的;而在图像算法层面,典型的开源算法有opencv,商用的有halcon,visionpro等,建议最开始可以先以halcon入门;如果在算法层面想进一步深入,可以研究一下机器学习,这可能是未来的主要方向。
对于理论方面,更多的是掌握图像处理的基本概念,这本书《机器视觉算法与应用》,值得一看。
3. 运动控制部分
典型的运动控制卡如固高,可以入手研究一下。更为高级一点的PLC,也可以玩起来,这部分的难点在于,精度的矫正,因为很多场景和需求对精度的要求是非常高的。
除了以上三点,整体方案的搭建能力是至关重要的, 因为方案需要把这些部分都串起来,并且能够和现实场景联系起来,满足实际的生产自动化需求。
而整体方案的搭建能力取决于
对生产工艺的深度理解
对所有组成部分之间的衔接,关系有深刻理解
这两点都需要经过多个项目的经验累积,才能给出一套好的方案。关于经验方面可以参考我的其他几篇文章:
2. delphi 和 C#到底选择哪个比较适合开发机器视觉!!!!
在我的理解:
机器视觉当前的比较流行的开发模式是“软件平台+工具包”
软件平台:
1.VC:最通用,功能最强大。用户多,和windows搭配,运行性能较好,可以自己写算法,也可以用工具包,而且基本上工具包都支持VC的开发。是大家主要选择的平台。
2.C#:比较容易上手,特别是完成界面等功能比用VC+MFC难度低了很多,已经逐渐成为流行的使用平台了,算法在调用标准的库或者使用C#+C++混合编程。可以看到目前很多相机厂商的SDK都已经开始使用C#做应用程序了。
3.LabVIEW:NI的工具图形化开发平台,开发软件快,特别是做工控行业或者自动化测试行业的很多工程师,由于使用labview进行测试测量的广泛性,所以都有labview的基础,再调用NI的Vision图像工具包开发,开发周期短,维护较为容易。
4.VB、delphi:用的人越来越少了。
5.其他:java等没有看到人用过。
工具包:
1.halcon:出自德国MVTech。底层的功能算法很多,运算性能快,用其开发需要一定软件功底和图像处理理论。
2.VisionPro:美国康耐视的图像处理工具包。性能大多数算法性能都很好,性能上没有和halcon直接对比过,但是开发上手比halcon容易。
3.NI Vision:NI的特点是自动化测试大多数需要的软硬件都有解决方案,有点事软件图形化编程,上手快,开发周期快,缺点是并不是每个软件都非常厉害。视觉工具包的优势是售价比大多数工具包或者算法的天文数字便宜了不少,而且整个工具包一个价格,而不是一个算法一个算法地卖,性能方面在速度和精度没有前两种软件好。
4.MIL:加拿大maxtrox的产品,是Matrox Imaging Library 的简写。早期推广和普及程度不错,当前似乎主要用户还是早期的做激光设备的一些用户在用,所以用于定位的较多。
5.CK Vision。创科公司的软件包,相对前面几个工具包来说价格优势比较明显,另外机器视觉需要的功能也基本都有,所以在国内自动化设备特别是批量设备同时需要保护版权的企业而言,用量很大,推广也不错。
6.迈斯肯:迈斯肯的视觉主要产品还是条码阅读一类,图像工具包没有用过,不了解,不评价。
7.OpenCV:感觉openCV更多的还是用在计算机视觉领域,在机器视觉领域其实不算太多,应为机器视觉领域当前主要的应用还是定位、测量、外观、OCR/OCV,感觉这几项都不是opencv的专长。
8.其他:其他还有一些厂家的图像工具包,要么市场影响力不大,要么本人没有用过,不评价
3. 人工智能程序设计语言主要有哪些
典型的人工智能语言主要有LISP、Prolog、Smalltalk、C++等。
在人工智能手册中介绍了七种人工智能语言:
LISP,PLANNER,CINNIVER,QLISP,POP-2,SAIL,FUZZY。近百种人工智能语言中,只有LISP和后起之秀Prolog是人工智能研究和应用中占重要地位的两种人工智能程序设计语言。
4. 要做机器视觉,学LABVIEW还是VB好些
labvieW学的比较快,是可以提供成套的软件和硬件设备驱动,适合做机器视觉,只是价格上有点。而VB只是基础的编程语言,你需要自己编写图像处理程序,图像采集还有设备驱动,比较复杂,不从事基层软件开发,周期太长,不建议从这里开始。
国产的采集卡行,不建议使用国产的相机,全用国产的当然能降低成本
5. 适合人工智能程序开发的编程语言有哪些
“人工智能”这个词一开始是在1956 年Dartmouth学会上提出的。从那以后,研究者们发展了众多理论和原理,人工智能的概念也随之扩展。人工智能是对人的意识、思维的信息过程的模拟。人工智能开发主要学哪门语言?
据了解,人工智能目前主要是机器学习实现的,而目前做机器学习和数据挖掘的主要语言是python。但主要原因并不是python效率高或者python和人工智能有什么不可分割的联系,而是因为python是一门很好的胶水语言,可以方便的调用别人(用各种语言)写的库,而且表达清晰灵活。
实际上,机器学习的核心知识和python并没有本质关系,python只是因为表达能力强,所以被广泛用于机器学习开发而已。因此目前来看,Python是人工智能的首选语言。
人工智能时代的到来,让人们不禁产生了一些思考,不管是好是坏。但是无论结果如何,这个时代究竟还是来了:
搭台,唱戏,台下的吃瓜群众懵懂生活、不知不觉间被卷入,在技术迭代发展的洪流中,向来如此。在基础技术维度,大数据管理和云计算技术已经在国内生根发芽,从IaaS、PaaS到SaaS,逐渐转变为大众化服务的基础平台:
腾讯、阿里、网络、华为等巨头们依托自身数据、算法、技术和服务器优势正着力构建各自的产业链闭环。而在应用技术维度,在机器学习、模式识别和人机交互三条技术路线下附着的机器视觉、指纹识别、人脸识别、智能搜索、语言和图像理解、遗传编程等众多领域,正蓬勃兴盛,也诞生了多家代表性企业。
也因为各企业的诞生,也有越来越多的企业需要人工智能人才。所以,如果大家掌握了Python,是否就能更好地在人工智能行业大展拳脚呢?
6. 机器视觉怎样开始学halcon与c++还是c#搭配好
HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境维视图像开发定制软件维视图像开发定制软件。它节约了产品成本,缩短了软件开发周期——HALCON灵活的架构便于机器视觉,医学图像和图像分析应用的快速开发。在欧洲以及日本的工业界已经是公认具有最佳效能的MachineVision软件。[1]HALCON源自学术界,它有别于市面一般的商用软件包。事实上,这是一套imageprocessinglibrary,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中包含了各类滤波,色彩以及几何,数学转换,型态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能,由于这些功能大多并非针对特定工作设计的,因此只要用得到图像处理的地方,就可以用HALCON强大的计算分析能力来完成工作。应用范围几乎没有限制,涵盖医学,遥感探测,监控,到工业上的各类自动化检测。HALCON支持Windows,Linux和MacOSX操作环境,它保证了投资的有效性。整个函数库可以用C,C++,C#,Visualbasic和Delphi等多种普通编程语言访问。HALCON为大量的图像获取设备提供接口,保证了硬件的独立性。它为百余种工业相机和图像采集卡提供接口,包括GenlCam,GigE和IIDC1394。
7. 机器视觉检测系统编程用的什么语言
一般二次开发用vb.net或者c#即可,如果想要自己写算法做开发,或者定制现有的算法,建议使用C++