主流开发软件的介绍
- Halcon HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包(商业用途),在欧洲以及日本的工业界已经是公认具有最佳效能的Machine Vision软件。视觉算法数量最丰富,开发效率最高的一款软件,可以在三大主流操作系统上使用。支持C、C++、VB、C#、delphi等语言的编程接口支持
- OpenCV 是一个开源的视觉软件库,可以运行在Linux、Windows、Android和Mac OS,IOS操作系统上;编程接口支持:c,c++,Python,c#,java等编程语言;;
- Visionpro ,Visionpro是美国康耐视公司开发的机器视觉软件(商业用途);编程接口支持c++,c#,vb.net等编程语言;;
- Mil Mil是加拿大Matrox公司开发的机器视觉软件(商业用途);编程接口支持c++,c#,vb.net等编程语言;
工业相机介绍
原理 :相机是将光信号转为电信号,从而形成数字图像的元器件。
工业相机分类
按芯片类型:CCD相机、CMOS相机。其主要区别如下:
CMOS(互补金属氧化物半导体)
1. 采用CMOS芯片,价格相对CCD相机较低
2. CMOS芯片曝光方式一般为卷帘式快门曝光,适合拍摄静止物,体拍 摄运动物体有拖影,且图像会变形
3. .色彩还原性较差
4. 芯片动态范围较小,灵敏度较差但在光照充足的情况下,也能取得较好的图像效果
5. 系统噪声:中到
CCD(电荷耦合器件)
1. 采用CCD芯片,价格较高
2. CCD芯片曝光方式一般为帧(全局快门)曝光,适合拍摄静止或运动 物体.
3. 色彩还原性好
4. 芯片动态范围较大,灵敏度好,成像效果对外界打光的依赖比CMOS芯片低
5. 系统噪声:低
按照传感器结构特征 : 线性相机、面针相机。
按照扫描方式:隔行扫描、逐行扫描
按照输出信号 :数字相机、模拟相机
按照色彩 :彩色相机、黑白相机
工业相机的主要参数
1、分辨率 :决定了图像细节性的大小
2、速度(帧频/行频):快门速度和帧速率,快门是每帧画面曝光的时间;帧速率,单位时间内工业相机处理数据的速度。一般情况下,读取速度越快,单位时间内获得的图像信息就越多,每秒显示出的图像帧数就越多,那么成像质量就越高,而且对于高速运动物体的图像采集有着显著的作用。
3、噪声:相当于干扰,热噪声、信号噪声、读取噪声。
4、信噪比:在图像传感器的成像过程中,真实的信号是无法探测到的理想值。在成像过程中理想值被引入了一系列的不确定性,最终形成读出信号也即图像。此过程中的不确定性被统一称为噪声。而信号与噪声的比值被定义为信噪比(Signal-to-NoiseRatio, SNR)。信噪比应该越高越好。
5、动态范围:指的是照片高光和暗部的跨度,记录的是一个范围值。
6、像元深度:即像元灰度值,具有特殊的比特位数,称为像元深度。对于黑白相机这个值的方位通常是8-16bit。像元深度定义了灰度由暗道亮的灰阶数。例如,对于8bit 的相机0 代表全暗而255 代表全亮。介于0 和25之间的数字代表一定的亮度指标。10bit 数据就有1024个灰阶而12bit有4096个灰阶。每一个应用我们都要仔细考虑是否需要非常细腻的灰度等级。从8bit上升到10bit 或者12bit 的确可以增强测量的精度,但是也同时降低了系统的速度,并且提高了系统集成的难度(线缆增加,尺寸变大),因此我们也要慎重选择。
7、光谱响应:由于成像传感器,并不知道光的颜色,而是通过波长来进行成像的,相机的光谱响应是将不同波段入射光的光能转换成电能的能力。
8、光学接口:接口是指相机与镜头之间的借口,常用的镜头的借口有C 口,CS 口,F 口
智能工业相机与一般工业相机
智能相机是一种高度集成化的微小型机器视觉系统;而工业相机是机器视觉系统的组成部分之一。在智能相机中,以上算法都封装成固定的模块,用户可直接应用而无需编程。
工业相机的一般步骤
第一步,首先需要知道系统精度要求和工业相机分辨率;
第二步,需要知道系统速度要求与工业相机成像速度;
第三步,需要将工业相机与图像采集卡一并考虑,因为这涉及到两者的匹配;
第四步,价格的比较。
注意点:
1、根据应用的不同来决定是需要选用CCD 还是CMOS 相机 CCD 工业相机主要应用在运动物体的图像提取,如贴片机,当然随着CMOS 技术的发展,许多贴片机也在选用CMOS 工业相机。
用在视觉自动检查的方案或行业中一般用CCD 工业相机比较多。 CMOS 工业相机由成本低,功耗低也应用越来越广泛。
2、分辨率的选择
首先考虑待观察或待测量物体的精度,根据精度选择分辨率。其次看工业相机的输出,若是体式观察或机器软件分析识别 ,分辨率高是有帮助的;若是VGA 输出USB输出,在显示器上观察,则还依赖于显示器的分辨率,工业相机的分辨率再高,显示器分辨率不够,也是没有意义的;利用存储卡或拍照功能,工业相机的分辨率高也是有帮助的。
3、与镜头的匹配
传感器芯片尺寸需要小于或等于镜头尺寸,C 或CS 安装座也要匹配(或者增加转接口);
4、相机帧数选择
当被测物体有运动要求时,要选择帧数高的工业相机。但一般来说分辨率越高,帧数越低
相机的分辨率(像素)确定
首先考虑待观察或待测量物体的精度,根据精度选择分辨率。相机像素精度=单方向视野范围大小/相机单方向分辨率。则相机单方向分辨率=单方向视野范围大小/理论精度。
若单视野为5mm长,理论精度为0.02mm,则单方向分辨率=5/0.02=250。
然而为增加系统稳定性,不会只用一个像素单位对应一个测量/观察精度值,一般可以选择倍数4或更高。这样该相机需求单方向分辨率为1000,选用130万像素已经足够。
为什么要在机器视觉检测中使用线阵相机?
1.线阵相机有更高的分辨率;线阵相机每行像素一般为1024,2048,4096,8012;而一般的面阵相机仅为640,768,1280,大于2048
2.线阵相机的采集速度更快;不同型号的线阵相机采集速度从每秒5000 行-60000 行不等,用户可以选择没几行或者每十几行即构成一帧图像进行处理一次,因此可以达到很高的帧率。
3.线阵相机可以不间断的连续采集和处理;线阵相机可以对直线运动的物体(直线导轨,滚筒上的纸张,织物,印刷品,传送带上的物体等)进行连续采集。
4.线阵相机有更简单合理的构造。与面阵相机相比,线阵相机不会浪费分辨率采集到无用数据。
线阵相机有哪些特点?
1.线阵相机使用的线扫描传感器通常只有一行感光单元(少数彩色线阵使用三行感光单元的传感器)
2.线阵相机每次只采集一行图像;
3.线阵相机每次只输出一行图像;
4.与传统的面阵相机相比,面阵扫描每次采集若干行的图像并以帧方式输出。
如何选择线阵相机?
1.计算分辨率;幅宽除以最小检测精度得出每行需要的像素。
2.检测精度;幅宽除以像素得出实际检测精度。
3.扫描行数;每秒运动速度长度除以精度得出每秒扫描行数。
根据以上计算结果选择线阵相机举例如下:如幅宽为1600 毫米、精度1 毫米、运动速度22000mm/s 相机:1600/1=1600 像素 最少2000 像素,选定为2k 相机 1600/2048=0.8 实际精度 22000mm/0.8mm=27.5KHz
应选定相机为2048 像素28kHz 相机
工业相机输入、输出接口有哪些?
1.Camera Link;
2.IEEE 1394 ;
3.USB2.0 ;
4.Ethernet ;
5.USB3.0 ;