(一)视觉——工业相机(以海康威视为例)

article/2025/8/25 4:46:52

一、工业相机介绍

        工业相机是机器视觉系统中的一个关键组件,其最本质的功能就是将光信号转变成有序的电信号。选择合适的相机也是机器视觉系统设计中的重要环节,相机的选择不仅直接决定所采集到的图像分辨率、图像质量等,同时也与整个系统的运行模式直接相关。

二、工业相机分类

按图像传感器区分

        图像传感器(Image Sensor) ,是一种将光学图像转换成电子信号的设备,是组成数字摄像头的重要组成部分,可分为CCD(电荷耦合元件)和CMOS(互补金属氧化物半导体元件)两大类。

        Sensor是一个由N行及M列感光单元(Pixel)组成的矩阵,Sensor基本工作原理:当光子撞击到硅原子上时,会产生自由电子,再将这些自由电子收集在一起形成信号。

        CCD 相机:使用 CCD 感光芯片为图像传感器的相机,集光电转换及电荷存贮、电荷转移、信号读取于一体,是典型的固体成像器件。

        CMOS 相机:使用 CMOS 感光芯片为图像传感器的相机,将光敏元阵列、图像信号放大器、信号读取电路、模数转换电路、图像信号处理器及控制器集成在一块芯片上,还具有局部像素的编程随机访问的优点。

按照图像传感器区分

        单色相机:输出图像为单色图像的相机。

        彩色相机:输出图像为彩色图像的相机。

按输出信号区分

        模拟信号相机:从传感器中传出的信号,被转换成模拟电压信号,即普通视频信号后再传到图像采集卡中。

        数字信号相机:信号自传感器中的像素输出后,在相机内部直接数字化并输出。数字相机又包含 1394 相机、USB 相机、Gige 相机、CameraLink相机等。

按照传感器类型区分

        面扫描相机:传感器上像素呈面状分布的相机,其所成图像为二维“面”图像。

        线扫描相机:传感器上呈线状(一行或三行)分布的相机,其所成图像为一维“线”图像。

三、主要参数

        相机的参数主要有传感器类型、快门方式、像元尺寸、靶面尺寸、分辨率、最大帧率、接口类型。

型号说明

图像传感器(Image Sensor)

        图像传感器是一种将光学图像转换成电子信号的设备,是组成数字摄像头的重要组成部分,可分为CCD(电荷耦合元件)和 CMOS(互补金属氧化物半导体元件)两大类。Sensor 是一个由N行及M列感光单元(Pixel)组成的矩阵,Sensor基本工作原理:当光子撞击到硅原子上时,会产生自由电子,再将这些自由电子收集在一起形成信号。

快门方式

        卷帘快门(Rolling Shutter)是Sensor通过逐行曝光的方式实现图像采集,在曝光开始的时候,Sensor逐行扫描逐行进行曝光,直至所有像素点都被曝光,不适合运动物体的拍摄。CMOS支持Rolling Shutter ,CCD不支持。卷帘快门的相机在拍摄运动中的 物体,图像会由于传感器不同行曝光时间不一样而产生图像失真 ,拖影。如下图Rolling Shutter。

        全局快门(Global Shutter)是让整幅图片在同一时间曝光,Sensor所有像素点同时收集光线,同时曝光,最终将曝光图像转成电子图像。所有像素在同一时刻曝光,类似于将运动物体冻结了,适合拍摄快速运动的物体。CCD和CMOS都支持 Global Shutter;全局曝光的相机由于在曝光时整个图像芯片一起曝光,因此当物体运动时,可以由全局曝光相机对其进行动态拍摄。如下图Total Shutter。

 像元尺寸

        像元尺寸即一个像元的大小。像元大小和像元数(分辨率)共同决定了相机靶面的大小。

        像元是反映影像特征的重要标志。是同时具有空间特征和波谱特征的数据元。几何意义是其数据值确定所代表的地面面积。物理意义是其波谱变量代表该像元内在某一特定波段中波谱响应的强度。即同一像元内的地物,只有一个共同灰度值。像元大小决定了数字影像的影像分辨率和信息量。像元小,影像分辨率高,信息量大;反之,影像分辨率低,信息量小。

靶面尺寸(Target size)

就是 CCD 尺寸,CCD 尺寸一般用英寸来表示,1/2 就是二分之一英寸,是对角线尺寸。

1 英寸换算成毫米是 16mm,而不是通常 的 25.4mm。

举例:像元尺寸 3.75umx3.75um,摄像机分辨率 1280x960,可以计算 CCD 尺寸:

3.75umx1280=4.8mm,

3.75umx960=3.6mm,

靶面尺寸为 1/3" 。

分辨率(Resolution)

        相机每次采集图像的像素点数(Pixels)。

        例如:MV-CA013-20GM的分辨率为1280x1024,相机为130万的黑白相机, 1280x1024=1310720=131.0720万。

最大帧率(Frame Rate)/行频(Line Rate)

        相机采集传输图像的速率,对于面阵相机一般为每秒采集的帧数(Frames/Sec.),即每秒采集多少张图像,对于线阵相机为每秒采集的行数(Lines/Sec.)。这往往和传感器芯片和数据输出接口带宽有关。根据项目需求,对于拍摄运动物体,建议选取高帧率相机,具体帧率数要根据拍摄精度来确定。

相机接口数据传输

四、相机选型 

        工业相机是机器视觉系统中的⼀个关键组件,其最本质的功能就是将光信号转变成有序的电信号。选择合适的相机也是机器视觉系统设计中的重要环节,相机的选择不仅直接决定所采集到的图像分辨率、图像质量等,同时也与整个系统的运行模式直接相关。

1.确定黑白/彩色: 如果对颜色有检测需求(如线序颜色检测)或检测只能通过颜色判断需选择彩色,否则一般情况均选择黑白相机。

2.确定卷帘/全局快门 如果实际检测为动态,即产品在运动过程中拍照检测(如传送带上料),则需要选择全局快门的相机;如果实际检测为静态,即产品在静态时拍照检测(如人工摆放到固定位置进行检测),则可以选择卷帘快门的相机。

3.确定分辨率大小:

        (1)产品检测需求为尺寸或者定位,有精度要求,可通过精度与检测视野面积进行计算得出需要的分辨率

        (2)如果产品无精度要求,则优先可以考虑低像素的相机,如果成像或测试时,被测部分模糊不清楚,需要高分辨率的相机来提高成像,则再旋转高分辨率的相机

4、确定帧率

一般高速的动态检测速度可达到一秒10个以上,针对此种检测需求可以选择高帧率的相机(相机帧率为60fps表示1秒可以拍60张),一般情况下像素越低帧率越高。

分辨率计算

定位、测量用3倍精度,被测物尺寸要加入视场冗余尺寸,每个方向至少加5mm。 

        实际应用举例:被测工件尺寸20mm*40mm,要求检测精度0.1mm,动态定位,计算应该选用多少分辨率的相机?

相机选型:算法判断需要3*单像素精度,单像素精度要求=0.1mm/3=0.03mm;

实际视野:30mm*50mm

分辨率要求:(20+5+5mm)/0.03mm=1000,(40+5+5mm)/0.03mm=1666

分辨率要求大于1000*1666 且全局相机

五、工业相机的驱动连接

相加硬件接口介绍

PWR状态灯 

常规工业相机电源线介绍 

 

功能线介绍 

 

六、相机IO设置 

触发模式

相机的触发模式分为内触发模式以及外触发模式 2 种。

内部触发就是软件触发,通过软件可以直接触发拍照。

外部触发就是外部接线控制触发拍照,例如按钮控制拍照、plc 控制拍照、光学感应器控制拍照。

如果是内部触发,IO输入中触发模式选择关闭,触发源选择软触发。

如果是外部触发,IO输入中触发模式选择打开,触发源选择线路0。 

 PNP与NPN

P表示正、N表示负。

NPN表示平时为低电位,信号到来时信号为高电位输出。

PNP表示平时为高电位,信号到来时信号为负。

线扫相机

        对于这些视野很宽精度要求很高,或者细长型的连续的这类被测物,传统面阵相机的方案较难实现。

        一种特殊的相机,它与普通的面阵相机的传感器拍摄一幅画面图像不同,它的传感器每次只采集一行或数行(彩色)图像。

型号说明 

 

线扫与面阵区别 

应用场景 

 


http://www.hkcw.cn/article/oeYCQaWdDa.shtml

相关文章

PnP(Perspective-n-Point)算法 | 用于求解已知n个3D点及其对应2D投影点的相机位姿

什么是PnP算法? PnP 全称是 Perspective-n-Point,中文叫“n点透视问题”。它的目标是: 已知一些空间中已知3D点的位置(世界坐标)和它们对应的2D图像像素坐标,求解摄像机的姿态(位置和平移&…

C++核心编程_4.5 运算符重载_4.5.1 加号运算符重载

#include <iostream> #include <string> using namespace std;/* ### 4.5 运算符重载 运算符重载概念&#xff1a;对已有的运算符重新进行定义&#xff0c;赋予其另一种功能&#xff0c;以适应不同的数据类型 *//* 4.5.1 加号运算符重载 作用&#xff1a;实现两…

文本预处理

文本预处理 1 词向量表示 1.1 word2vec之skipgram方式&#xff1a; 定义&#xff1a;给你一段文本&#xff0c;选定特定的窗口长度&#xff0c;然后利用中间词来预测上下文 实现过程&#xff1a;1、选定一个窗口长度&#xff1a;3、5、7等&#xff1b;2、指定词向量的维度&a…

C++中单例模式详解

在C中&#xff0c;单例模式 (Singleton Pattern) 确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取这个实例。这在需要一个全局对象来协调整个系统行为的场景中非常有用。 为什么要有单例模式&#xff1f; 在许多项目中&#xff0c;某些类从逻辑上讲只需要一个实…

什么是单片机?

众所周知&#xff0c;人类行为受大脑调控&#xff0c;正如视觉、听觉、味觉、嗅觉、触觉及运动功能等感官与肢体活动均受其指挥&#xff1b;换言之&#xff0c;大脑作为人体的中枢神经系统&#xff0c;负责管理所有可控制的生理功能。 在电子设备领域&#xff0c;单片机…

DMBOK对比知识点整理(4)

1.常见数据质量维度 常见数据质量维度(DMBOK-P353)质量维度

Web攻防-SQL注入增删改查盲注延时布尔报错有无回显错误处理

知识点&#xff1a; 1、Web攻防-SQL注入-操作方法&增删改查 2、Web攻防-SQL注入-布尔&延时&报错&盲注 案例说明&#xff1a; 在应用中&#xff0c;存在增删改查数据的操作&#xff0c;其中SQL语句结构不一导致注入语句也要针对应用达到兼容执行&#xff0c;另…

动态规划-152.乘积最大子数组-力扣(LeetCode)

一、题目解析 根据示例nums数组中存在负数&#xff0c;下面分析时需注意 二、算法原理 1、状态表示 此时f[i]表示&#xff1a;以i位置为结尾的所有子数组中的最大乘积&#xff0c;但是由于nums中存在负数&#xff0c;所以还需要g[i]表示&#xff1a;以i位置为结尾的所有子数组…

Leetcode 159. 至多包含两个不同字符的最长子串

1.题目基本信息 1.1.题目描述 给你一个字符串 s &#xff0c;请你找出 至多 包含 两个不同字符 的最长子串&#xff0c;并返回该子串的长度。 1.2.题目地址 https://leetcode.cn/problems/longest-substring-with-at-most-two-distinct-characters/description/ 2.解题方法…

MATLAB 横向剪切干涉系统用户界面设计及其波前重构研究

▒▒本文目录▒▒ 一、横向剪切干涉系统效果预览二、引言三、横向剪切干涉理论基础四、MATLAB 横向剪切干涉系统用户界面设计五、参考文献六、实验指导与matlab代码获取 一、横向剪切干涉系统效果预览 开发的系统如下所示&#xff1a; 横向剪切干涉系统 二、引言 横向剪切干…

C54-动态开辟内存空间

1.malloc 原型&#xff1a;void* malloc(size_t size);&#xff08;位于 <stdlib.h> 头文件中&#xff09; 作用&#xff1a;分配一块连续的、未初始化的内存块&#xff0c;大小为 size 字节。 返回值&#xff1a; 成功&#xff1a;返回指向分配内存首地址的 void* 指针…

【Linux网络篇】:初步理解应用层协议以及何为序列化和反序列化

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;Linux篇–CSDN博客 文章目录 一.序列化和反序列化为什么需要序列化和反序列化为什么应用层…

【Tips】关于PCI和PCIe的配置空间差异和io/memory io读写

最近在看同事2023年讲的PCI基础课&#xff0c;感觉确实是豁然开朗了&#xff0c;赞美同事。 PCIe实际上是PCI的扩展&#xff08;extended&#xff09;&#xff0c;PCIe设备相当于是迭代升级产品。 而PCIe的配置空间基于PCI原有的0xFF&#xff08;256字节&#xff09;配置空间…

华为OD机试真题——阿里巴巴找黄金宝箱(III)(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

拓扑排序算法剖析与py/cpp/Java语言实现

拓扑排序算法深度剖析与py/cpp/Java语言实现 一、拓扑排序算法的基本概念1.1 有向无环图&#xff08;DAG&#xff09;1.2 拓扑排序的定义1.3 拓扑排序的性质 二、拓扑排序算法的原理与流程2.1 核心原理2.2 算法流程 三、拓扑排序算法的代码实现3.1 Python实现3.2 C实现3.3 Java…

C#学习:基于LLM的简历评估程序

前言 在pocketflow的例子中看到了一个基于LLM的简历评估程序的例子&#xff0c;感觉还挺好玩的&#xff0c;为了练习一下C#&#xff0c;我最近使用C#重写了一个。 准备不同的简历&#xff1a; 查看效果&#xff1a; 不足之处是现实的简历应该是pdf格式的&#xff0c;后面可以…

华为OD机试真题——阿里巴巴找黄金宝箱(II)(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

最大流-Ford-Fulkerson增广路径算法py/cpp/Java三语言实现

最大流-Ford-Fulkerson增广路径算法py/cpp/Java三语言实现 一、网络流问题与相关概念1.1 网络流问题定义1.2 关键概念 二、Ford-Fulkerson算法原理2.1 核心思想2.2 算法步骤 三、Ford-Fulkerson算法的代码实现3.1 Python实现3.2 C实现3.3 Java实现 四、Ford-Fulkerson算法的时间…

摄像头模块的镜头类型

一、‌按光学功能分类‌ ‌球面镜&#xff08;Spherical Lens&#xff09;‌ ‌特点‌&#xff1a;表面为球面曲率&#xff0c;工艺简单且成本低&#xff0c;但存在球面像差和色差&#xff0c;边缘画质易模糊。 ‌应用‌&#xff1a;低端监控设备、玩具相机等对画质要求低的…

汽车EPS系统的核心:驱动芯片的精准控制原理

随着科技的飞速发展&#xff0c;电机及其驱动技术在现代工业、汽车电子、家用电器等领域扮演着越来越重要的角色。有刷马达因其结构简单、成本低廉、维护方便等优点&#xff0c;在市场上占据了一定的份额。然而&#xff0c;为了充分发挥有刷马达的性能&#xff0c;一款高效能、…