工业检测基础-线扫相机和面阵相机参数及应用
以下是工业面阵相机和线扫相机的重要参数、应用场景以及调节方法的科普:
重要参数
- 分辨率:
- 面阵相机:由相机所采用的芯片分辨率决定,常用的有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应用可以打包为包含所有依赖、类和资源…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
机器学习的数学基础:线性模型
线性模型 线性模型的基本形式为: f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法,得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...

【51单片机】4. 模块化编程与LCD1602Debug
1. 什么是模块化编程 传统编程会将所有函数放在main.c中,如果使用的模块多,一个文件内会有很多代码,不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其他.c文…...

GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...