两个都用过,说说个人感觉
1、首先如果是3D项目 我会首选halcon。
halcon里面3D的算子更为丰富,而且halcon对于相机接口的open性更高(现在visiopro8.2往后的版本都没法用usb连接口的相机)。之前做过一个3D检测的项目就是halcon实现算法,c#完成工程。用的相机是德国的AT线扫相机(这款相机是大恒代理的)。
2、在学习的难易程度上,visionpro会上手相对会快一些。
二者在初期测试(连接相机,选取合适的算法进行图像分析,输出测试图像结果),这个阶段的话visionpro可以一行代码都不用写就能完成。visionpro提供的图形界面更加直观,拉线、调参,很快就可以完成一个项目的检测测试。
halcon 需要一点编程基础,如果你的代码基础为零的话,那可能会完成一些visionpro的工作,但halcon的话会吃力一些。
当然并不是说visionpro就很low,visionpro也可以编辑代码,进行脚本编辑。
另外,如果算法测试通过后,需要开发视觉检测系统,此时二者的工作量差不多,二者都可以直接导出相应语言的算法版本,可以根据自己要求编辑工程。 不同的是halcon 没有配置文件,只需要安装halcon环境即可使用其中的算法(当然其实也有办法可以不安装)。 vpro会生成一个vpp文件,对于vpp在程序里面的使用每个人都有自己不同的习惯,我个人是喜欢用toolblock,把关联的工具放到一个块里面,把需要的结果参数通过块添加输出。在程序里面用回调函数实时更新结果。
3、国内入机器视觉这一行,难免会听到halcon vpro 的各类消息,包括各种对比谁优谁劣,选择起来,可以有自己规划,但是更多地是根据公司需求,被动选择。
我接触的过程是,在学校的时候接触opencv 以及一些底层的算法理论,但当时一脸懵逼,即使看到了效果,也并不知道实际应用是什么样。后来实习接触了visionpro,利用vpro完成了几个定位抓取类似的引导项目,算是完成了从理论到实际的应用。后来visionpro搞了两年又对图像算法理论重新感兴趣,想更多地了解实现的原理。正好公司有halcon相关的工作,就接触了halcon。halcon算是介于opencv和visionpro中间的,比opencv实现要方便一些,比visiopro更能接触到图像算法的本身。
4、个人感觉机器视觉这一行会的东西比较杂,完成一个项目要涉及很多东西。
开发一个完整的系统 ,光源、相机、镜头选型,plc机器人通讯,图像算法的选取和调用,其他的数学逻辑算法等等。另外因为要跟机械电气配合,最好还是能够了解一些他们这方面的知识(要不然出了问题都没法甩锅,常用的像编码器,继电器,io模块,干扰,丢帧现象等等),还有交互流程要清晰,出了问题知道怎么排查。除此之外机器视觉经常要到客户现场调程序,各种奇葩客户,奇葩环境,奇葩要求都可能有,抗压能力要有,改干的时候干,改不被受气的也坚决不能忍着。
5、干这一行的其实有开发,也有调试。
个人觉得有机会还是多学学编程,提升自己的竞争力,最主要计算机相对赚钱也多一些呀。工业方面c#用的多一些,也容易理解一些,首先第一步先学会如何用程序调用图像算法,像调用vpro halcon里面的算法,第二步可以去研究图像算法的实现。
如果本身就是视觉算法方向的人,有能力就多往深了挖,就围绕着视觉相关的,多看多学点肯定亏不了。现在有很多问题传统视觉算法解决起来也有压力,深度学习类的算法,也可以看看,当然最好不要直接跳到这个方向去,搞机器视觉更多地还是传统的算法,像傅里叶变换,卷积,形态学,边缘锐化增强等等都是传统算法,把这些能在理论上搞懂了再说。不过课余时间可以浏览着深度学习方面的资讯。计算机视觉的话对个人来说要求的数学功底,编码能力会更强,编码的话更多地是c++ linux环境下的编程。
上班,后面想到啥写啥、。。。。。。。。。。