线扫相机——机器视觉中无限制物体的检测(重要转载)

在机器视觉中,在检测连续物体或者滚动物体时,线扫相机是最佳的解决方案。通常,它们能提供很高的分辨率,因为它们要求很高的速度和数据率。

一、多条窄带拼成一副图像

线扫相机只抓取一行作为图像发送到电脑,主机电脑将所有的行进行组织拼接。如果不停止抓取,几乎可以创建一个无限大的图像。在印刷行业、纺织、旋转或者移动物体的检测应用时,线扫相机是最佳的解决方案。

详解线扫相机

1.线扫相机的历史

可以检测黑白单线CCD芯片随着传真机第一次进入市场。事实上,目前大部分文件扫描仪依然基于这个原理。这种情况下,条状传感器是位于物体下方的。随着传感器的微型化和分辨率的提高,传感器已经进一步远离物体。今天,线扫相机被集成到传统相机上,可以搭配标准的镜头进行操作。

2.线扫相机的光学设计

(1)相机—物体关系

人眼或者标准的照相机在一个时刻获取一幅图像,对于静止物体和运动物体是没有区别的。同一时刻,所有的图像数据都会被收集。

线扫相机需要物体或者相机运动,最后的图像大小一方面取决于相机的分辨率,另一方面取决于主机拼接的线数。有两种搭建线扫相机的方式:

相机静止,物体运动

相机运动,物体静止

相机和物体同时移动,在大多数场合下没有意义。

线扫相机一次只取图像的一行,随着被检测物体运动,一行接一行地采集,因此用线扫相机采集的一个2D图像的每一行都是在不同时间点采集的。这与面阵相机来或者人眼采集图像在机器视觉软件理解的意义上来说,是不一样的。

(2)线扫镜头

从上到下文件扫描仪对比,线扫相机需要镜头,这与面阵相机是完全相同的。但是作为线扫相机,提供很高的分辨率(最高16K/线),相机需要拥有高质量镜头与合适的MTF。

(3)线扫光源

与面阵相机最大的不同就是光源的搭建,为了获取相同的行(物体运动很快),你必须要照亮一条线,但由于速度很快(一般在us级别),因此线扫相机经常需要很高亮度的光照(高达1000000lux)。

3.读取和抓取

因为芯片只抓取一行,相比大的面阵相机,读取这些数据就很简单了。不管是用CCD还是CMOS技术都没有什么区别,当分辨率高且运动速度很快时,数据频率也是很高的,你需要一个抓帧器(通常称为采集卡)来读取相机的数据到电脑。

(1)线扫需要脉冲

使用线扫相机的一个决定性的特点就是可以构建很大(无限)的图像。在高频下,一些非常细窄的线被拼接到一条线上,为了解决这个问题,与运动物体经过的速度保持同步来抓取这些线很重要。大多数场合下,与传送带集成在一起的脉冲发生器(也就是我们说的编码器)产生脉冲信号传递到相机。这样,相机的线频率就与物体的速度一致了。

4.多行线扫相机

除了上面谈到的单线的线扫相机外,也有其他线数的相机:

(1)多行线扫相机

双线或者更多线的相机有更高的同步要求,增加了物体可能的最大速度,在HDR模式下提高了图像的动态范围。

TDICCD线通过芯片显著地拓宽了线扫相机的动态范围。

(2)彩色线扫相机

像大面阵相机一样,线扫相机可以搭配单色(Monochrome)或者彩色(Color)的芯片。RGB的过滤片作为Bayer 模板覆盖在像素上,或者分布在线上。这些线分配了特定的颜色,通常在过滤片的下面。生成的原始图像作为单色信息传输,然后在采集卡上转换为彩色图像。

另一种选择,2条或3条线,每条线指定了颜色,被用于彩色线扫相机。这种配置的问题是作为同一个像素的颜色不得不考虑对象相关的时间差异。好处是,一种颜色的分辨率是芯片的全分辨率。

NEopt允许将双线相机配置为只有两个颜色,这种情况下,红色和蓝色两种颜色构成不如说是两个相机。

NeOpt NCAM2-BRLD-08K07CL光谱灵敏度

5.线扫相机速率和分辨率

就像大面阵相机一样,线扫相机的速率由接口决定,通常的接口如GigE 和CameraLink。速率可以通过线的水平分辨率(线的总像素个数)和每秒的线数计算出来,表达为行频kHz/行/s。

例子:NCAM2-BLS,Camera Link接口:8K,70kHz

每秒采集70,000行,如果用在100km/h的传输带和一米宽的物体上,可以推算出垂直方向的分辨率0.125mm/s,水平方向的分辨率0.514mm/s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/79132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[NLP]LLM---大模型指令微调中的“Prompt”

一 指令微调数据集形式太多 大家有没有分析过 prompt对模型训练或者推理的影响?之前推理的时候,发现不加训练的时候prompt,直接输入模型性能会变差的,这个倒是可以理解。假如不加prompt直接训练,是不是测试的时候不加…

go-carbon 2.2.7 版本发布, 轻量级、语义化、对开发者友好的Golang时间处理库

carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用。 目前已被 awesome-go 收录,如果您觉得不错,请给个 star 吧 github.com/golang-module/carbon gitee.com/golang-module/carbon 安装使用 Golang 版本大于…

将 Google Kubernetes Engine (GKE) 上稳定扩散的启动时间缩短 4 倍

Cloud Ace 是 Google Cloud 全球战略合作伙伴,在亚太地区、欧洲、南北美洲和非洲拥有二十多个办公室。Cloud Ace 在谷歌专业领域认证及专业知识目前排名全球第一位,并连续多次获得 Google Cloud 各类奖项。作为谷歌云托管服务商,我们提供谷歌…

构建健壮的Spring MVC应用:JSON响应与异常处理

目录 1. 引言 2. JSON 1. 轻量级和可读性 2. 易于编写和解析 3. 自描述性 4. 支持多种数据类型 5. 平台无关性 6. 易于集成 7. 社区支持和标准化 3. 高效处理异常 综合案例 异常处理方式一 异常处理方式二 异常处理方式三 1. 引言 探讨Spring MVC中关键的JSON数据…

【autodl/linux配环境心得:conda/本地配cuda,cudnn及pytorch心得】

linux配环境心得:conda/本地配cuda,cudnn及pytorch心得 我们服务器遇到的大多数找不到包的问题一,服务器安装cuda和cudnn使用conda在线安装cuda和cudnn使用conda进行本地安装检查conda安装的cuda和cudnn本地直接安装cuda和cudnn方法一&#x…

MySQL常见报错

1.语法错误:SQL syntax [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near (sno,con,degree) values (109,9-888,99) at line 1 2.未知列:查看表…

orcle数据库根据经纬度计算两个地点之间的距离

CREATE OR REPLACE FUNCTION Radian(d number) RETURN NUMBER is PI number :3.141592625;begin return d* PI/180.0; end ;--测试函数 select Radian(360) from dual;CREATE OR REPLACE FUNCTION GetDistance(lat1 number,lng1 number,lat2 number,lng2 number) RETURN NUMBE…

java高级:注解

目录 认识注解&自定义注解元注解解析注解注解的应用场景 认识注解&自定义注解 注解和反射一样,都是用来做框架的,我们这里学习注解的目的其实是为了以后学习框架或者做框架做铺垫的。 先来认识一下什么是注解?Java注解是代码中的特…

嵌入式学习笔记(31)异常向量表的编程处理

6.5.1像内存一样去访问异常向量表 (1)S5PV210的异常向量表可以改变(在CP15协处理器中),以适应操作系统的需求。但是目前系统刚启动,此时DRAM尚未初始化,程序哦都市在iSRAM中运行。210在iSRAM中…

C++下基于粒子群算法解决TSP问题

粒子群优化算法求解TSP旅行商问题C(2020.11.12)_jing_zhong的博客-CSDN博客 混合粒子群算法(PSO):C实现TSP问题 - 知乎 (zhihu.com) 一、原理 又是一个猜答案的算法,和遗传算法比较像,也是设…

python第三方库 pip install速度慢的解决办法

文章目录 1 在命令中指定国内镜像网站2 永久配置源2.1 linux 系统配置2.2 windows 系统 1 在命令中指定国内镜像网站 阿里云:https://mirrors.aliyun.com/pypi/simple/中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/华为云:https:/…

live555 UsageEnvironment目录解读

文章目录 UsageEnvironment/HashTable.cppstrDup.cppUsageEnvironment.cpp后续还会继续更新 UsageEnvironment/ ├── HashTable.cpp ├── include │ ├── Boolean.hh │ ├── HashTable.hh │ ├── strDup.hh │ ├── UsageEnvironment.hh │ └── UsageEnviro…

入门人工智能 ——自然语言处理介绍,并使用 Python 进行文本情感分析(5)

入门人工智能 ——自然语言处理介绍,并使用 Python 进行文本情感分析(5)) 入门人工智能 ——自然语言处理介绍,并使用 Python 进行文本情感分析介绍自然语言处理的挑战NLP的基本任务NLP的基本技术NLP的应用领域 使用 P…

在 ubuntu20.04 上安装 Pytorch

参考资料:https://www.linode.com/docs/guides/pytorch-installation-ubuntu-2004/ sudo apt update sudo apt install nvidia-cuda-toolkit (3G) mkdir anaconda cd ~/anaconda wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh chmod …

FPGA的基础架构,什么是CLB?

本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 CLB是指可编程逻辑功能块(Configurable Logic Blocks),顾名思义就是可编程的数字逻辑电路。CLB是FPGA内的三个基本逻辑单元。C…

golang http

函数说明http.ServeMux是 Go 语言标准库中的一个多路复用器(multiplexer)。它用于路由和处理 HTTP 请求,将请求分发到相应的处理器函数。http.HandleFunc是 Go 语言标准库中的一个函数,用于注册处理器函数来处理 HTTP 请求。它是对…

Educational Codeforces Round 5

文章目录 A. Comparing Two Long IntegersB. Dinner with EmmaC. The LabyrinthD. Longest k-Good SegmentE. Sum of Remainders A. Comparing Two Long Integers 模拟&#xff0c;签到。 #include <bits/stdc.h>using namespace std; const int N 1e6 5; typedef lo…

与社交媒体结合:视频直播美颜sdk在社交平台上的应用

为了让直播内容更吸引人&#xff0c;视频直播美颜sdk&#xff08;Software Development Kit&#xff09;正逐渐崭露头角&#xff0c;为社交媒体用户提供了卓越的美颜效果和互动体验。 一、什么是视频直播美颜sdk&#xff1f; 在深入讨论如何将视频直播美颜sdk整合到社交媒体平…

CSS元素浮动

概述 浮动简介 在最初&#xff0c;浮动是用来实现文字环绕图片效果的&#xff0c;现在浮动是主流的页面布局方式之一。 元素浮动后的特点 脱离文档流。不管浮动前是什么元素&#xff0c;浮动后&#xff0c;默认宽与高都是被内容撑开的&#xff08;尽可能小&#xff09;&am…

时序分解 | MATLAB实现基于小波分解信号分解分量可视化

时序分解 | MATLAB实现基于小波分解信号分解分量可视化 目录 时序分解 | MATLAB实现基于小波分解信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于小波分解的分量可视化&#xff0c;MATLAB编程程序&#xff0c;用于将信号分解成不同尺度和频率的子信…