本人是工作八年的视觉工程师,主要从事Halcon和Visionpro视觉开发,谈谈个人对视觉学习看法:
1、HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,它节约了产品成本,缩短了软件开发周期。
Halcon:底层功能算法多,运算性能快,开发需要一定软件功底和图像处理理论。
快速学习做法:研究实例、做实战项目。halcon不能提供相应的界面编程需求,需要和vs来构造MFC界面或者QT使用,才能构成一套完整软件。
2、需求主要有二维三维二维:(1)识别定位;(2)OCR识别;(3)二维码识别;(4)测量;(5)缺陷检测;(6)机器控制等三维:(1)多目标定(2)三维重建(3)三维匹配等
3、成为合格的机器视觉工程师须具备三个方面的知识
图像处理涉及以下几大领域:
A、图像处理的基本理论知识(图像理论的基础知识)
B、图像增强(对比度拉伸、灰度变换等)
C、图像的几何变换(仿射变换,旋转矩阵等)
D、图像的频域处理(傅里叶变换、DFT、小波变换、高低通滤波器设计)
E、形态学(膨胀、腐蚀、开运算和闭运算以及凸壳等)
F、图像分割
G、图像复原
H、运动图像
I、图像配准(模板匹配等)
J、模式识别(分类器训练,神经网络深度学习等)
(2)软件编程功底
具备C,C++,C#及MFC界面开发的功底
A、C语言的学习主要看谭浩强写的C语言相关知识
B、C++主要看C++primerplus书籍
C、MFC的学习主要看孙鑫编写的《VC++深入详解》这本书及相应的视频教程,并在VC++6.0软件或VS2010等软件上编写程序和实践。
D、C#可以看书籍《C#从入门到精通》、《C#入门经典》、《C#图解教程》
(3)光学知识:
光学知识主要在你设计方案时相机、光源、镜头等选型时起到关键作用。
4、学习HALCON最重要的是学习其中的方法、流程和套路
HALCON主要完成图像算法的流程套路如下:
特征提取总结:
1、几何特征(面积、周长、矩形度)
2、纹理特征(与灰度相关,如熵、能量值)
3、颜色特征
4、概率特征
5、算子描述特征
6、Hough特征(梯度直方图特征)
做机器视觉的项目,拿到项目时一般遵循如下流程:
第一步:需求分析,建立相应的方案
第二步:算法流程规划及业务逻辑设计
第三步:模块化编程及集成化实现
第四步:调试,根据反馈结果来不断的修改程序Bug,达到客户需求,最后交付客户及软硬件操作文档。
学习机器视觉的好方法:
1、学习机器视觉一定要结合项目实战,在实践中学 结经验教训,系统化学习所需知识。
2、补充一定的C++和c#知识,进行VS联合开发,客户现场的学习和现场调试,不断学习示例分析,掌握方法套路流程。
3、根据实际问题,学习模块调用,按照方法套路学习。
4、最好是先用HALCON实现图像处理部分,然后在VS2010开发软件中利用MFC图形界面实现出来,实践学习是最好的方法。
这是我搜集的资料分享给大家,有需要的自己保存:
全套链接:https://pan.baidu.com/s/1Emc0uxczk8xA7CnpOiw9gA 提取码:3r6s
发展趋势是结合神经网络、深度学习进行相应的人工智能机器视觉开发。
敲黑板:本人经常会发一些对大家学习非常有参考价值的帖子和分享一些视觉halcon学习的资料,大家可以关注我以及看下我其他帖子。