本文记录机器视觉硬件学习内容,第二部分:工业相机
本文的主要内容为相机的类型、接口类型及主要参数。
相机是机器视觉系统的核心部件,广泛应用于各个领域,尤其是用于生产监控、测量任务和质量控制等。工业数字相机通常比常规的标准数字相机更加坚固耐用。这是因为它们必须能够应对各种复杂多变的外部影响,如应用于高温、高湿、粉尘等恶劣环境。工业相机的分类形式有很多,下图是常见的一些分类方式。下文将详细介绍几种常用类型的工业相机。
刚接触机器视觉的时候,我想当然的以为面阵相机就是把相机组合排列成面阵,线阵相机就是组合排列成一排,闹了笑话。
面阵相机与线阵相机的区别在于前者是以面为单位进行图像采集,可以直接获得完整的二维图像信息,后者的以“线”为单位,虽然也是二维图形,但长度较长,而宽度却只有几个像素。这是因为线阵相机的传感器只有一行感光元素。虽然面阵相机的像元总数较多,但分布到每一行的像素单元却少于线阵相机,因此面阵相机的分辨率和扫描频率一般低于线阵相机。
由于线阵相机的感光元素呈现“线”状,采集到的图像信息也是线状,为了采集完整的图像信息,往往需要配合扫描运动。如采集匀速直线运动金属、纤维等材料的图像。线阵图像传感器以CCD为主,市场上曾经也出现过一些线阵CMOS图像传感器,但是,线阵CCD仍是主流。目前,陷阵CCD加扫描运动获取图像的方案应用广泛,尤其在要求视场范围大、图像分辨率高的情况下。面阵相机可以用于面积、形状、位置测量或表面质量检测等,直接获取二维图形能一定程度上减少图像处理算法的复杂度。在实际的工程应用当中,需要根据工程需求选择。
黑白相机和彩色相机很容易理解,输出图像是黑白的就是黑白相机,彩色的就是彩色相机。有人说这不是废话么,确实是废话,不过从原理上来看还是比较有意思的。
先来看简单的黑白相机,当光线照射到感光芯片时,光子信号会转换成电子信号。由于光子的数目与电子的数目成比例,主要统计出电子数目就能形成反应光线强弱的黑白图像。经过相机内部的微处理器处理,输出就是一幅数字图像。在黑白相机中,光的颜色信息是没有被保留的。
实际上CCD是无法区分颜色的,只能感受到信号的强弱。在这种情况下为了采集彩色图像,理论上可以使用分光棱镜将光线分成光学三原色(RGB),接着使用三个CCD去分别感知强弱,最好在综合到一起。这种方案理论上可行,但是采用3个CCD加分光棱镜使得成本骤增。最好的办法是仅使用一个CCD也能输出各种彩色分量。
伊士曼·柯达公司科学家Bryce Bayer发明了拜耳列阵,使得仅使用一个CCD也能输出各种彩色分量。Bayer彩色相机的原理为:如下图所示,一行使用蓝绿元素,下一行使用红绿元素,如此交替。每个像素仅包括了光谱的一部分(R or G or B),必须通过色彩空间插值来还原每个像素的RGB值(文献【1】)。
插值算法有很多,这里介绍:临近插值算法。我们采用3X3的滑窗在上图中滑动取样,可以取到下图中的四种分布。
在(a)与(b)中,R和B分别取邻域的平均值;在(c)与(d)中,取领域的4个B或R的均值作为中间像素的值。
但是人眼对绿光的反应比较敏感,对紫光和红光反应较弱。为了更好的还原画质,依据邻近值对进行自适应插值。
在情况(a)中,中间值R由以下公式决定,即G的值将插值到R上。
图中,如果R1和R3之间的差小于R2和R4之间的差,则表明在垂直方向上相关性较强,我们使用垂直邻近值G1和G3的平均值。水平方向也同理。
在情况(b)中,中间值B由以下公式决定,即G的值将插值到B上。
从彩色相机的成像原理可以看出,色彩值主要通过插值的形式来表述。而在实际应用中,即使最成熟的色彩插值算法也会在图片中产生低通效应。文献【2】对比了彩色相机与黑白相机在相同环境下的成像质量,如下图所示。显然,彩色图像的细节处会出现伪彩色,导致精度降低。 在工业应用中如果我们要处理的是与图像颜色有关,那么我们需要采用彩色相机;如果不是,那么最好选用黑白相机,因为在同样分辨率下,黑白相机的精度高于彩色相机。
图像传感器是工业相机的核心元件,主要有CCD和CMOS两种。
CMOS(Complementary Metal Oxide Semiconductor)是互补金属氧化物半导体,CMOS 图像传感器阵面中的每一个像元都是由三个部分组合而成,分别是感光二极管、放大器和读出电路,然而由于每个单元独立输出,这也使得每个放大器的输出结果都不尽相同,所以 CMOS 阵列所获取的图像噪声较大,图像的质量也相对降低,但是,对于一般的精度要求,还是可以满足的。在集成电路领域中,CMOS采用的工艺是最基本的工艺,工艺相对来说不复杂,所以成本也不高,光电灵敏度较高等优点。它的一些性能参数也在不断被优化,应用也越来越广,总体来说,CMOS 的性价比还是较高的。
CCD (Charge-coupled Device)的全名是电荷耦合器件。CCD是一种半导体器件,能够把光学影像转化为数字信号,CCD上植入的微小光敏物质称作像素(Pixel),一块CCD上包含的像素数越多,其提供的画面分辨率也就越高。CCD提供很好的图像质量、抗噪能力和相机设计时的灵活性。尽管由于增加了外部电路使得系统的尺寸变大,复杂性提高,但在电路设计时可更加灵活,可以尽可能的提升CCD相机的某些特别关注的性能。CCD更适合于对相机性能要求非常高而对成本控制不太严格的应用领域,如天文,高清晰度的医疗X光影像、和其他需要长时间曝光,对图像噪声要求严格的科学应用。
目前,CCD在性能方面还仍然优于CMOS。不过,随着CMOS图像传感器技术的不断进步,在其本身具备的集成性、低功耗、低成本的优势基础上,噪声与敏感度方面有了很大的提升,与CCD传感器差距不断缩小。
IEEE 1394:
GIGE千兆网接口:
USB接口:
Camera Link接口:
以basler的acA2500-14gm - Basler ace相机为例,该相机相机配有 ON Semiconductor MT9P031 CMOS 感光芯片,帧速率为每秒 14 帧图像(14fps),分辨率为500 万像素,靶面尺寸为1/22.5''。
在选型时,按照以下步骤进行:
参考文献:
【1】Bayer color conversion and processing
【2】Jeon H G, Lee J Y, Im S, et al. Stereo matching with color and monochrome cameras in low-light conditions[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 4086-4094.
【3】胡仁伟. 光滑零件表面缺陷检测系统设计与实现[D]. 电子科技大学, 2018.
原网址: 访问
创建于: 2024-04-11 10:13:53
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论