工业检测基础-线扫相机和面阵相机参数及应用
以下是工业面阵相机和线扫相机的重要参数、应用场景以及调节方法的科普:
重要参数
- 分辨率:
- 面阵相机:由相机所采用的芯片分辨率决定,常用的有500万、1200万、6500万等像素,一般用长×宽表示。如1920×1080等,表示横向和纵向的像素数量,乘积即为总像素数,像素数越多,对细节的展示越明显。
- 线扫相机:指传感器水平方向上的像素数,常见有2k、4k、8k、16k等,如8k即表示水平方向有8192个像素,其分辨率决定了能够捕捉到的图像细节程度,在对同样长度的物体扫描时,分辨率越高,物体细节越清晰。
- 帧率与行频:
- 面阵相机:帧率是指单位时间内相机采集图像的帧数,单位是fps,如181fps表示相机每秒内最多可采集181帧图像。帧率越高,相机捕捉快速运动物体的能力越强,画面越流畅。
- 线扫相机:行频是指单位时间内相机采集图像的行数,单位是kHz,如80kHz即表示相机每秒内最多可采集80000行图像数据。行频越高,在物体运动速度一定的情况下,图像的纵向分辨率越高,或者说在保证纵向分辨率的前提下,可检测的物体运动速度越快。
- 像元尺寸:
- 面阵相机:像元即影像单元,是组成数字化影像的最小单元,像元尺寸通常为2μm~14μm ,像元尺寸和像元数共同决定了相机靶面的大小。一般情况下,像元尺寸越大,能够接收到的光子数量越多,在同样的光照条件和曝光时间内产生的电荷数量越多,相机的灵敏度相对越高,但同时也会使相机的分辨率受限。
- 线扫相机:像元尺寸一般以微米为单位,较小的像元尺寸意味着更高的分辨率和更清晰的图像,线扫镜头的最小像元尺寸可达5μm或更小,其像元尺寸的大小决定了在同样的扫描长度下,图像的横向分辨率,像元尺寸越小,横向分辨率越高。
- 像素深度:指每位像素数据的位数,通常用多少比特位表示,常见的是8bit、10bit、12bit等。一般来说,每个像素的比特位数越多,表达图像细节的能力越强,该像素的灰阶值更加丰富、分得更细,像素的灰阶深度就更深,但同时数据量也越大,会影响系统的图像处理速度。
- 动态范围:用来描述每个像素能够分辨出的灰度等级,宽动态范围能够使场景中亮场和暗场部分的细节同时被清晰地记录下来,动态范围值越大,意味着工业相机可以拍摄物体明暗程度的范围越宽,对于检测物体表面亮度差异较大的场景,如具有高光和阴影的金属零件,宽动态范围的相机能够更好地呈现物体的全貌和细节。
- 信噪比:定义为图像中信号与噪声的比值,其中信号可以由光强乘以量子效率乘以积分时间来计算,而噪声则指成像过程中所有部分所产生噪声的总和。信噪比越大,表示混在信号里的杂波越少,图像质量越高,画面越干净,看不到噪波干扰;若信噪比越小,则画面上可能呈现较多的“颗粒”和“雪花”,影响图像画面质量。
- 曝光时间:是指相机从快门打开到关闭的时间间隔,在这一段时间内,相机的像元接收光子。曝光时间长,进光量就越大,适合光线条件较差的情况,但可能会导致运动物体产生拖影;曝光时间短则适合光线比较好的情况,能够捕捉到快速运动物体的清晰瞬间,但进光量相对较少,图像可能会较暗,需要根据具体的检测场景和物体运动速度来合理调节曝光时间。
- 光谱响应特性:是指像元传感器对不同光波的敏感特性,一般响应范围是350nm-1000nm,一些相机在靶面前加了一个滤镜,滤除红外光线,如果系统需要对红外感光时可去掉该滤镜。对于需要检测特定波长光信号或区分不同颜色物体的应用,需要选择具有相应光谱响应特性的相机。
应用场景
- 面阵相机:
- 定位与测量:可精确高效定位图像中的任意几何元素,通过高效的模板匹配工具,克服样品平移、旋转、缩放和光照不同所带来的差异,快速准确查找圆、直线、斑点、边缘、顶点等几何体的位置,精确测量形状、尺寸、面积、距离、角度、交点及其他几何特性,可应用于机器人引导和其他视觉工具中。
- 缺陷检测:能准确识别工件表面、形状、轮廓的缺陷,基于深度学习技术还能检测细小的表面划痕、斑点,可克服工件表面纹理、颜色、噪点干扰,也是可靠的标准件比对工具,能够定位出工件微小差别,广泛应用于电子、机械制造等行业的产品质量检测。
- 识别与分类:可对物体进行识别和分类,如在物流行业中对不同形状和颜色的货物进行识别和分拣,在农业领域对水果、蔬菜等农产品进行品质分级和分类。
- 线扫相机:
- 高速生产线成像:能够在高速运动的物体上进行图像捕捉,具有高速的扫描频率和快速的曝光时间,适用于锂电池生产装配、印刷品检测等高速生产线,可实时监测产品的质量和生产过程中的缺陷。
- 高精度检测:提供高分辨率和高清晰度的图像,能够清晰地捕捉到目标物体的细节和特征,适用于工件视觉定位、筛选及色选等高精度检测任务,如在电子元件制造中对微小零件的尺寸和外观检测,在食品加工行业中对谷物、水果等的筛选和分级。
- 图像识别与分析:通过拍摄的图像,可以进行图像识别和分析,快速识别出物体的缺陷、尺寸偏差等问题,为质量控制和自动化生产提供有力支持,常用于金属、塑料、纸张等连续材料的表面检测,如检测金属板材的划痕、孔洞,纸张的瑕疵等。
调节方法
- 面阵相机:
- 根据检测精度和视野大小选择分辨率:若要检测较小的物体细节或需要高精度测量,应选择较高分辨率的相机;若检测物体较大且对精度要求不高,可适当降低分辨率以提高检测速度和减少数据量.
- 依据物体运动速度确定帧率:对于运动速度较快的物体,需要选择较高的帧率以确保能够清晰地捕捉到物体的运动状态,避免图像模糊;而对于静止或运动缓慢的物体,较低的帧率通常也能满足检测要求.
- 根据光照条件调整曝光时间和增益:在光线较暗的环境中,可以适当增加曝光时间或提高增益来增强图像的亮度,但需注意过长的曝光时间可能会导致运动物体产生拖影,过高的增益会引入更多的噪声,影响图像质量;在光线充足的情况下,则应缩短曝光时间并降低增益,以获得更清晰、噪声更小的图像.
- 通过图像处理算法优化图像质量:许多面阵相机都支持伽马校正、白平衡、对比度调整等图像处理算法,可以根据实际检测需求和图像特点,合理设置这些参数,以优化图像质量,提高检测精度.
- 线扫相机:
- 依据检测精度和物体宽度确定分辨率和行频:首先根据最小检测精度计算出每行所需的像素数,从而选择合适分辨率的线扫相机;然后根据物体的运动速度和检测精度要求,确定相机的行频,以保证在物体运动过程中能够完整、准确地扫描整个物体表面,并获得足够的纵向分辨率.
- 根据扫描速度和物体表面特性调整曝光时间:由于线扫相机是逐行扫描物体,曝光时间需要与物体的运动速度和扫描频率相匹配,以避免图像出现拖影或亮度不均匀的情况。一般来说,扫描速度越快,曝光时间应越短,但也要考虑物体表面的反射特性和光照条件,确保图像有足够的亮度和对比度.
- 优化镜头参数匹配相机性能:线扫相机的性能不仅取决于相机本身,还与镜头的参数密切相关,如焦距、光圈、放大倍率等。需要根据检测物体的大小、形状、距离等因素,选择合适的镜头,并调整镜头的参数,使相机能够获得最佳的成像效果,如对于不同宽度的物体,可通过调整焦距来改变视野范围,以确保物体完全覆盖相机的扫描区域.
- 利用采集卡和软件进行参数设置和数据处理:线扫相机通常需要配备专门的采集卡来进行数据采集和传输,采集卡的性能和设置也会影响相机的工作效果。此外,还需要使用相应的视觉软件对采集到的数据进行处理和分析,如进行图像拼接、滤波、特征提取等操作,以实现对物体的准确检测和测量,通过软件可以对相机的各种参数进行灵活调整和优化,以满足不同的检测需求.
相关文章:
工业检测基础-线扫相机和面阵相机参数及应用
以下是工业面阵相机和线扫相机的重要参数、应用场景以及调节方法的科普: 重要参数 分辨率: 面阵相机:由相机所采用的芯片分辨率决定,常用的有500万、1200万、6500万等像素,一般用长宽表示。如19201080等,…...
【无标题】建议用坚果云直接同步zotero,其他方法已经过时,容易出现bug
created: 2024-12-06T16:07:45 (UTC 08:00) tags: [] source: https://zotero-chinese.com/user-guide/sync author: 数据与文件的同步 | Zotero 中文社区 Excerpt Zotero 中文社区,Zotero 中文维护小组,Zotero 插件,Zotero 中文 CSL 样式 数…...
基于STM32设计的智能宠物喂养系统(华为云IOT)_273
文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】设计意义【5】国内外研究现状【6】摘要1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发1.5 参考文献1.6 系统框架图1.7 系统原理图1.8 实物图1.9…...
cesium truf 利用缓冲如何将一个点缓冲成一个方形
: 在Cesium中如果你想要一个更简单的方法将一个点缓冲成一个方形区域,你可以考虑以下步骤: 确定中心点:首先,你需要有一个中心点的经纬度坐标。计算边长:确定你想要缓冲的方形的边长,这里以10…...
HarmonyOS 5.0应用开发——Ability与Page数据传递
【高心星出品】 文章目录 Ability与Page数据传递Page向Ability传递数据Ability向Page传递数据 Ability与Page数据传递 基于当前的应用模型,可以通过以下几种方式来实现UIAbility组件与UI之间的数据同步。 使用EventHub进行数据通信:在基类Context中提供…...
【推荐算法】推荐系统的评估
这篇文章是笔者阅读《深度学习推荐系统》第五章推荐系统的评估的学习笔记,在原文的基础上增加了自己的理解以及内容的补充,在未来的日子里会不断完善这篇文章的相关工作。 文章目录 离线评估划分数据集方法客观评价指标P-R曲线ROC/AUCmAPNDCG A/B 测试分…...
鸿蒙:实现类似Android.9图的图片资源呈现
问题: 在鸿蒙中,是识别不了.9格式的图片资源的,那么如何实现.9图效果呢。? 解决方案: 首先需要将图片资源转为普通的png格式。如果是背景图的,需要换一种方式来处理,目前我所实现的方案是通过St…...
ros2人脸检测
第一步: 首先在工作空间/src下创建数据结构目录service_interfaces ros2 pkg create service_interfaces --build-type ament_cmake 然后再创建一个srv目录 在里面创建FaceDetect.srv(注意,首字母要大写) sensor_msgs/Image …...
Pillow:强大的Python图像处理库
目录 一、引言 二、Pillow 库的安装 三、Pillow 库的基本概念 四、图像的读取和保存 五、图像的基本属性 六、图像的裁剪、缩放和旋转 七、图像的颜色调整 八、图像的滤镜效果 九、图像的合成和叠加 十、图像的绘制 十一、示例程序:制作图片水印 十二、…...
微信小程序uni-app+vue3实现局部上下拉刷新和scroll-view动态高度计算
微信小程序uni-appvue3实现局部上下拉刷新和scroll-view动态高度计算 前言 在uni-appvue3项目开发中,经常需要实现列表的局部上下拉刷新功能。由于网上相关教程较少且比较零散,本文将详细介绍如何使用scroll-view组件实现这一功能,包括动态高度计算、下拉刷新、上拉加载等完整…...
为什么类 UNIX 操作系统通常内置编译器?为什么 Windows 更倾向于直接使用二进制文件?
操作系统是否内置编译器,取决于该系统的设计目标、用户群体以及常见的使用场景。以下是内置编译器和直接使用二进制的设计理念和原因的分析: 为什么类 UNIX 操作系统通常内置编译器? 面向开发者的需求: 类 UNIX 系统(如…...
吉林大学23级数据结构上机实验(第7周)
A 去火车站 寒假到了,小明准备坐火车回老家,现在他从学校出发去火车站,CC市去火车站有两种方式:轻轨和公交车。小明为了省钱,准备主要以乘坐公交为主。CC市还有一项优惠政策,持学生证可以免费乘坐一站轻轨&…...
实验13 使用预训练resnet18实现CIFAR-10分类
1.数据预处理 首先利用函数transforms.Compose定义了一个预处理函数transform,里面定义了两种操作,一个是将图像转换为Tensor,一个是对图像进行标准化。然后利用函数torchvision.datasets.CIFAR10下载数据集,这个函数有四个常见的…...
【开发文档】资源汇总,持续更新中......
文章目录 AI大模型数据集PytorchPythonUltralyticsOpenCVNetronSklearnCMakeListsNVIDIADocker刷题网站持续更新,欢迎补充 本文汇总了一些常用的开发文档资源,涵盖了常用AI大模型、刷题网站、Python、Pytorch、OpenCV、TensorRT、Docker 等技术栈。通过这…...
【k8s实践】 创建第一个Pod(Nginx)
环境 Rocky Linux9.4 x86_64 VM安装了Microk8s (参考:Microk8s安装方法) 说明: 其他k8s(例如: k3s, kubernetes)创建Pod的方法和Microk8s没啥区别,可以参考本文 目标 创建一个Nginx的Pod,映射宿主机30000端口到Pod容器的80端口;客户端能通…...
盘古大模型实战
0 前言 前一段时间,在学习人工智能的同时,也去了解了一下几乎是作为人工智能在气象上应用的一大里程碑式的研究成果-华为盘古气象大模型。正是盘古大模型的出现,促使天气预报的未来发展方向多了个除天气学方法、统计学方法、数值预报方法之外…...
Python subprocess.run 使用注意事项,避免出现list index out of range
在执行iOS UI 自动化专项测试的时候,在运行第一遍的时候遇到了这样的错误: 2024-12-04 20:22:27 ERROR conftest pytest_runtest_makereport 106 Test test_open_stream.py::TestOpenStream::test_xxx_open_stream[iPhoneX-xxx-1-250] failed with err…...
包管理器npm,cnpm,yarn和pnpm
npm (Node Package Manager) 核心技术与工作原理 依赖解析: 广度优先搜索(BFS):npm 使用 BFS 算法来解析依赖树,尽量扁平化 node_modules 目录以减少重复的依赖项。冲突处理:如果两个包需要同一个依赖的不…...
树莓派4B使用opencv读取摄像头配置指南
本文自己记录,给我们lab自己使用,其他朋友们不一定完全适配,请酌情参考。 一. 安装opecnv 我们的树莓派4B默认是armv7l架构,安装的miniconda最新的版本 Miniconda3-latest-Linux-armv7l.sh 仍然是python3.4几乎无法使用ÿ…...
Spring Boot 进阶话题:部署
部署是将应用程序从开发环境移动到可以供用户访问的生产环境的过程。Spring Boot提供了多种部署选项,包括打包为可执行jar文件,使用Docker容器化,以及部署到云平台。 打包Spring Boot应用 Spring Boot应用可以打包为包含所有依赖、类和资源…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
【WebSocket】SpringBoot项目中使用WebSocket
1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖,添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...
node.js的初步学习
那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...
