版权声明: 本翻译文章为原文《Fundamentals of Machine Vision》原始来源:https://www.autovis.com/images/pdf/resources/fundamentals-of-machine-vision.pdf(作者:Peppy West - AUTOMATED VISION SYSTEMS, INC. San Jose, California 95124 U.S.A.)。作者和贡献者对原文内容享有版权。请阅读原文以了解详细信息和权限限制。翻译权归本翻译者所有,非商业用途,仅用于学术研究和交流目的。未经授权,不得用于商业目的或其他侵权行为。本翻译保留所有权利。如有引用或使用,请注明原文出处和作者。本翻译文章中的内容仅供参考,可能存在错误或不准确之处,请读者自行核实原文内容。
从机器视觉的定义可以推测出,一个摄像机和一个处理器结合在一起形成一个视觉系统。然而,这只是部分完整的描述。确实,视觉系统需要摄像机和处理器,但还有更多的组成部分,如图8所示。
摄像机需要镜头来形成光学图像。镜头必须提供合适的工作距离(镜头到场景的距离),正确的放大倍率,使场景填满摄像机的视野,并具备分辨细节的能力。还需要光源,以确保摄像机获得足够的合适照明,以创建可用且可靠的图像。
摄像机和处理器之间需要有一个接口。还需要软件来执行所需的应用程序分析。最后,处理器必须支持与其他连接设备所需的输入和输出。
通常摄像机和处理器是分开的。这使得摄像机可以更小,而处理器则具备所有所需的计算能力和输入输出功能。它还允许一个处理器为两个或多个摄像机提供服务。这种类型的视觉系统的常见形式是使用个人计算机作为处理器(见图9)。基于个人计算机的视觉系统提供了最大的灵活性。有许多摄像机接口可供选择,许多不同的软件包可供选择,并且输入输出配置具备显著的灵活性。然而,这种灵活性增加了应用程序的工程化难度。为了使此配置与更苛刻的环境兼容,有可靠的工控计算机可供选择。
类似的配置是用专有处理器替换个人计算机(见图10)。这种处理器带有专有软件。它可以使用标准或专有摄像机接口,并通常在输入输出方面具有灵活性。这种配置通常是为工厂环境设计的。与基于个人计算机的视觉系统相比,应用程序的工程化难度较低。
还有一种趋势是将摄像机和处理器合并为一个紧凑的设备,称为智能相机或智能传感器(见图11)。这对于单个摄像机应用和物联网设备已经变得非常有效。由于紧凑的尺寸,处理和输入输出受到限制。虽然智能相机有时配备了内置照明,但通常还需要其他光源。在大多数智能相机中,软件已内置,使得这些是应用最简便的视觉系统。有一些产品专为OEM设计,他们可以承担更多的工程化工作,这些产品不提供预装软件。
这是一类是应用特定的机器视觉(ASMV)系统。图12显示了一个示例。这是一个为特定应用设计的视觉系统。除了安装和产品特定配置外,几乎不需要任何工程化工作就可以直接使用。ASMV的更高成本可以抵消几乎不需要应用工程化的优点。此外,相对于仅为一次安装设计的其他视觉系统,更全面的现场支持也是可用的。
最后一类是嵌入式视觉系统。对于什么是嵌入式视觉系统,目前并没有完全一致的定义。实际上,我们可以认为它是一个设计用于集成到最终产品中的视觉系统,并且摄像机和处理器紧密耦合,如图13所示。主要是为了OEM将其集成到产品中。
让我们更详细地了解一下摄像机。图14展示了摄像机的组成部分。
图像传感器
图像传感器如图15所示,由一组传感元件组成,放大图中显示了这些元件,并带有电路,用于从元件中读取信号并将其转换为数字信号。
当暴露在光线下时,传感元件将入射光子转换为电荷(见图16)。
在曝光过程中,这些光生电子在传感元件中积累。当传感元件读出时,其电压与光生电子的数量成正比。读出后,传感元件被重置,清除所有光生电子,使其准备好进行下一次曝光。
你可以正确推断传感元件实际上是一个光子计数器。这几乎正确,除了它是一个不完美的光子计数器。它并不能计算每个光子。它计算的光子百分比称为其量子效率,简称QE。量子效率随着光的波长而变化,如图17所示。
彩色成像
制造彩色相机的图像传感器有两种主要方法。第一种方法是使用三个单独的图像传感器和光学部件,将红、绿和蓝三个颜色分量分离为单独的方向,使得每个传感器只感测其中一种颜色(见图19)。每个像素有三个值,分别来自这三个图像传感器。
另一种方法是在每个单独的感测元件上放置红、绿和蓝色滤光片。这些滤光片的常见模式是Bayer模式(见图18)。每个像素仍然有三个值:一个通过其颜色滤光片直接感测的值,另外两个颜色值是通过相邻像素进行插值得到的。
高动态范围
相机中的噪点水平通常限制了每个像素的数据为8或10位。这相当于256或1,024个灰度级别。对于许多应用来说,这完全足够。然而,有些应用需要能够感知图像中既在高光(明亮)区域,也在阴影(暗)区域中的细节。
解决这一挑战的方法是高动态范围(HDR)成像。这涉及拍摄两张(或更多)曝光时间不同的照片。较短曝光时间的像素的高位将保留高光的细节,而较长曝光时间的像素的低位将保留阴影中的细节。通过将每次曝光得到的位组合,生成一个新的像素值,从而获得更高的动态范围,如图20所示。
镜头安装
机器视觉相机上使用了许多不同的镜头安装方式,但最常见的是C安装。镜头安装方式的特点在于其螺纹(除非是卡口式安装)和其法兰焦距。法兰焦距是从镜头安装座到图像传感器的距离。
对于C安装,螺纹是1英寸×24牙/英寸。法兰焦距为17.52毫米(0.69英寸)。另一种常见的镜头安装方式是CS安装。它与C安装具有相同的螺纹,但其法兰焦距为12.52毫米。
镜头必须安装到相机上。通常,两者具有相同的安装方式。然而,有时在镜头和相机具有不同安装方式时会使用适配器。
相机接口
有许多种相机接口。以下六种是机器视觉中常用的接口:
这些标准大多有不同的选项,有些选项还非常多。因此,详细介绍每个接口超出了本文的范围。这些接口在以下重要特性上有所不同:
另一个重要的接口标准是GenICam。GenICam不是物理标准,与电缆、数据传输速率等无关。它是关于相机向所连接的处理器提供相机特性信息的标准。根据GenICam,相机包含一个可以被处理器读取的XML文件。该文件详细描述了相机及其所有设置。处理器中的软件可以查询此文件,了解与相机进行接口和控制所需的所有信息。即使来自同一制造商的不同相机在控制方式上也可能不同。GenICam使视觉系统开发人员无需关心连接的是哪种相机,从而可以编程开发应用程序。
镜头是视觉系统的关键组件。它与相机的图像传感器一起决定了工作距离和包含场景的视场。镜头及其光圈还决定了有多少光能传递到图像传感器上,景深或对焦范围以及投射到图像传感器上的光学图像中的细节分辨率。
大多数经验丰富的机器视觉工程师已经学会如何为大多数应用选择镜头。对于刚接触机器视觉或者对于非常复杂的应用,可能需要寻求经验丰富的光学工程师的帮助。
有三种基本类型的镜头:普通或内心镜头(图22),微距镜头(图23)和远心镜头(图25)。大多数应用可以通过使用内心镜头来解决。这些镜头可以在一定范围的工作距离内调焦,延伸至无限远,并且通常具有可调光圈。
由于内心镜头不能实现高放大倍数的近距离对焦,所以微距镜头被设计来满足这个需求。放大倍数是图像尺寸与成像场景尺寸之间的比例。微距镜头通常适用于0.05倍至10倍的放大倍数范围。如果需要更高的放大倍数,显微镜通常是更好的选择。
远心镜头是机器视觉中常用的特殊镜头。与内心镜头不同,远心镜头在其景深范围内,其放大倍数基本保持不变。这意味着测量结果几乎不受工件高度的轻微变化影响,并且没有透视畸变。
虽然变焦镜头在机器视觉中似乎是理想的选择,因为可以根据需要设置所需的视场大小,但实际上它们只被稀少地使用。由于有一个额外的调整,很难确保镜头设置到正确的放大倍数,并且可能会影响校准。此外,变焦镜头往往比内聚焦镜头更大、更重,而且价格更高。
对于必须可靠工作的机器视觉系统来说,良好的照明是至关重要的。这就是为什么工业机器视觉系统总是采用专门设计的照明,并尽量减少环境光的影响。
一些较新的发展,如自动驾驶车辆,几乎完全使用环境光。
对于专门设计的照明,有几种不同的照明技术。第一种是前照明(见图24)或背照明(见图26)。在前照明中,光源位于与相机相同的场景一侧。在背照明中,光源位于与相机相反的场景一侧。
照明中的另一个区分方式是明场和暗场(见图27)。明场照明是指预期能够反射(通过镜子)或直接传入相机视野的任何光线。
暗场照明是指放置光源的方式,以使其不会传递或反射(通过镜子)到相机的视野中。
如图28所示,照明技术的另一个区分方式是光线的指向性或扩散性。定向光照亮场景上的每一点都使用单一光线,或者更常见的是使用一组光线,这些光线在非常狭窄的角度范围内传播。
扩散照明使用来自广泛角度范围的光束照亮场景上的每一点。
定向照明倾向于产生明显的阴影,并使图像中的纹理凸显出来。扩散照明会产生淡淡的阴影或不会有阴影,并消除使图像中的纹理显现的明暗效果。
照明设计的最后一个特征是颜色或所使用的光谱。大多数机器视觉系统在可见光范围内工作。对于单色成像,光源通常是红色、绿色或蓝色等窄带波长。对于彩色成像,需要白光。越来越多的应用使用红外波长。由于人类无法在这个光谱区域内看到,需要一些实验来了解其工作情况。紫外线光也常被使用,通常用于使零件发出荧光。
这意味着视觉系统工程师有各种各样的光源可供选择,涵盖了各种尺寸、各种颜色,并提供了各种照明特性。要了解如何选择合适的光源需要学习和经验。初入机器视觉领域的人在选择光源时最好与有经验的人合作。
原网址: 访问
创建于: 2024-03-01 10:45:59
目录: 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 语言中国知识社区
最新评论