机器视觉应用方向项目流程及学习思路总结

今天跟大家分享关于机器视觉应用方向项目流程及学习思路总结
1. 视觉项目介绍
机器视觉在工业上的需求主要有二维和三维方面的。
二维方面的有:
识别定位:①blob分析(主要包括二值化、形态学处理、特征选择。ps:受光照影响较大)②模板匹配(常用的是shape匹配和ncc匹配,有时还会用到可变形模板);ocr光学字符识别;一维码、二维码识别及二者的结合;测量类(单目相机的标定、相机自标定)缺陷检测系列;运动控制,手眼抓取(涉及手眼标定抓取等方面)
三维方面的有:
摄像机双目及多目标定、三维点云数据重构
2. 总体项目流程
做机器视觉的项目,拿到项目时一般遵循如下流程:
(1)需求分析
(2)方案设计:根据客户应用的场合不同,选择相应的镜头、相机、支架、光源及如何打光(感兴趣的可看看《工程光学》一书)等。
(3)概要设计:包含软件架构体系,视觉开发环境(vc++联合halcon还是c#联合halcon等),还有算法流程(怎么通讯、怎么识别等)。
(4)详细设计:每一个功能模块怎么做,包括图像采集模块、处理模块、包括算法模块,如何通讯等。通常将每个模块形成一个动态库,调用相应的接口函数即可,项目图像采集调用sdk也是调用动态库的过程。
(5)测试、调试和修改。
(6)客户交付、确认。
(7)调试:根据客户反馈结果来不断的修改程序bug。
(8)达到客户需求,最后交付客户及软硬件操作文档。
(9)后期维护。
3. 视觉算法流程
图像采集
图像预处理:包含几何变换、灰度处理、图像增强、图像滤波、二值化、图像细化等
注:图像预处理在视觉算法中一般是可选项,图像效果很好的时候可跳过该步
定位(blob分析、模板匹配)
特征提取:包含几何特征(面积、周长、矩形度)、纹理特征(与灰度相关,如熵、能量值)、概率特征、角点、特征描述算子特征等,直接影响定位、识别的效果对特征区域进行处理(根据不同工业需求选择对应的检测识别算法)结果显示
4. 机器视觉工程师需要具备的能力
4.1 图像处理相关知识
涉及以下几大领域:
图像处理的基本理论知识(图像理论的基础知识)
图像增强(对比度拉伸、灰度变换等)
图像的几何变换(仿射变换,旋转矩阵等)
图像的频域处理(傅里叶变换、dft、小波变换、高低通滤波器设计)
形态学(膨胀、腐蚀、开运算和闭运算以及凸壳等)
图像分割(halcon里的blob分析)
图像复原
运动图像
图像配准(模板匹配等)
模式识别(分类器训练,神经网络深度学习等)
学习参考资料:
经典教材:冈萨雷斯的《数字图像处理》及对应的matlab版
杨丹等编著《matlab图像处理实例详解》
张铮等编著《数字图像处理与机器视觉——visual c++与matlab实现》
左飞编著的《数字图像处理:原理与实践(matlab版)》
左飞编著的《数字图像处理技术详解与visual c++实践》
谢凤英编著的《visual c++数字图像处理》
《精通系列·精通visual c++数字图像处理典型算法及实现(第2版)》
4.2 软件编程功底
软件功底的作用是软件的架构设计分析,架构包括ui层设计、业务逻辑层开发、数据层开发。以下三个方面,每个方面至少会一种,具体选择视所在公司应用而定:
编程语言:c#,c,c++(自己用哪个就学哪个)
界面框架:c#界面,qt界面,mfc界面(比较老了,以前的项目用的较多)
图像算法处理软件:halcon,visionpro,opencv等
学习资料参考:
1.c# 可以看书籍《c#从入门到精通》、《head first c#》、《c#入门经典》、《c#图解教程》、《c#高级编程》、《.net frameword 高级编程》、《clr via c#》
2.c 语言的学习主要看谭浩强写的c语言相关知识
3.c++主要看《c++ primer plus》书籍
4.qt 学习可以看《qt creator快速入门》(入门)、《c++ gui qt4》(进阶)
5.mfc 的学习主要看孙鑫编写的《vc++深入详解》这本书及相应的视频教程,并在vc++6.0软件或vs2010等软件上编写程序和实践
4.3 视觉硬件知识
主要在你设计方案时相机、镜头、光源等选型时起到关键作用。
学习资料参考:
主要阅读书籍《工程光学》、重点放在几何光学方面,了解成像原理及相应的光路分析,知道光源的特性、镜头分辨率、相机分辨率等方面的知识。
5. 学习机器视觉的一些建议
1.学习机器视觉一定要结合项目实战,在实践中学习总结经验教训,系统化学习所需知识。
2.补充一定的c++和c#知识,进行vs联合开发,客户现场的学习和现场调试,不断学习示例分析,掌握方法套路流程。
3.根据实际问题,学习模块调用,按照方法套路学习。
4.最好是先用halcon等视觉处理软件实现图像处理部分,然后在vs开发软件中利用mfc或qt等图形界面实现出来,实践学习是最好的方法。
机器视觉学习的发展趋势是结合神经网络、深度学习进行相应的人工智能机器视觉开发。


大数据与人工智能密不可分 大数据的发展离不开人工智能的助力
数据数量和多样性的扩充有助于提升人工智能模型的预测准确性
中控智慧科技卡门禁控制器K2简介
决策算法在自动驾驶中扮演什么角色?决策算法对自动驾驶起到什么作用
电阻的大小与湿度有关吗
机器视觉应用方向项目流程及学习思路总结
Nature:师法自然!新型“水凝胶液滴电池”问世!
光纤跳线与光纤尾纤到底有什么区别?
分布式驱动测试支持整车负载状态下转向测试
南方电网海南电网220千伏定安平和等8个智能变电站工程已全面开工
带保偏FBG光栅对的线偏振激光器设计方案
电力变压器与配电变压器的区别
新能源汽车的刹车足够安全吗?
六款专业级植保无人机飞控产品的特点就应用介绍
工业一体机是什么,它具备什么优势
无电池 UHF RFID 设备有望实现更精简的工业物联网
Luminar用于ADAS的激光雷达解决方案
详谈射频导纳物位开关的组成
labview如何调用子vi
Power 9处理器远超X86架构,美国新超算将引入IBM Power 9系列处理器