点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

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

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

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

二、详解线扫相机

1.线扫相机的历史

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

2.线扫相机的光学设计

(1)相机—物体关系

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

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

·        相机静止,物体运动

·        相机运动,物体静止

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

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

(2)线扫镜头

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

(3)线扫光源

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

旋转CD在线扫相机的演示

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:

垂直方向:100km/h / 70,000 lines/s=27.78m/s / 70,000 lines/s=0.397mm

水平方向:1m/8000 pix=0.125mm/pix

速度:70,000 lines/s x 8000 pixels=534 MB/s

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

线扫相机——机器视觉中无限制物体的检测相关推荐

  1. basler相机的触发线是那两脚_探究机器视觉领域线扫相机和面阵相机的区别

    首先,我们从使用用途上来了解这两种工业相机的区别. 芯片对比 面阵相机芯片是有x*y个像素构成,是一个平面.线扫秒相机一般情况下是有x*1个像素构成一条线,从形状上来说是一条线.高端的线扫相机也有x* ...

  2. 3D线扫相机-沙姆成像原理

    3D线扫相机,又名激光轮廓仪,3D线激光测量仪,基本原理:通过向物体表面投射线激光平面,从而获取该平面与待测物体表面交线处三维点坐标,解算物体深度信息.主要器件:线激光器.镜头.芯片.处理板.接口板. ...

  3. 线扫相机 编码器_面阵和线扫工业相机选型

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/snowbird13/article/d ...

  4. 3D激光线扫相机与结构光相机的区别

    激光线扫相机 激光相机基于三角测量,可精确捕获3D形状(数百万个点).更精确地说,它们的工作原理是将激光点或激光线投射到物体上,然后用传感器捕获其反射.由于传感器的位置与激光源的距离已知,因此可以通过 ...

  5. 线扫相机 编码器_智能线扫描相机

    昂敏智能的智能线扫描相机具有集成的FPGA,高分辨率,可以直接在相机上进行评估,完全不需要外置PC.此外,AI-Master软件已经预安装完成,用户可获得一个完整的系统:相机.处理单元.评估软件.快速 ...

  6. 线扫相机DALSA-Image Format(读图格式设置)

    专业于机器视觉visionman团队教学,重于实践.当然很多不切实际,尚不成熟的教学的想法尽快抛弃,完善.这个过程是令我们教学更加骄傲.-专业于机器视觉visionman团队教学宣言 Binning是 ...

  7. 线扫相机 编码器_VisionPro连接线扫相机使用说明

    可编辑可修改 1 VisionPro 使用 Dalsa 线扫相机使用说明 1 环境配置 硬件:编码器 ( 提供编码信号的 PLC) 线扫相机 镜头 相机线缆 图像采集卡 (Dalsa_Xcelera- ...

  8. 线扫相机DALSA-LACMDevice(采集卡)+Configure(相机配置)+Detection(查找相机)

    Device(采集卡) DALSA采集卡家族共有三大产品线:Xtium2.Xtium和Xcelera,其中我司常用的为Xtium-CL MX4系列采集卡,型号为OR-Y4CO-XMXOO:另外也少量使 ...

  9. Halcon单相机标定—标定板标定和自标定 线扫相机标定

    一.标定板标定 13.0 ************************************************************************************* * ...

最新文章

  1. 多尺度人脸检测--Face Detection through Scale-Friendly Deep Convolutional Networks
  2. axivion和astree_Axivion架构分析及验证工具
  3. 一款jQuery立体感动态下拉导航菜单特效
  4. android surfaceflinger 代码,android surfaceflinger测试程序
  5. 关于国内厂商的国际版杀毒软件
  6. 一段挂起进程中所有线程的代码
  7. java中null是常量吗_C_NULL Julia中的常量
  8. 流浪的python博客园_python学习心得第一章
  9. 12c oracle 修改内存_还在等12.2吗?Oracle 12c后这个观念要改改!
  10. log4net配置文件样本
  11. 近7成开发者无开源收入、最想操作系统开源、Java最受欢迎 | 揭晓中国开源开发者现状...
  12. Rust : 为什么没有lifetime是不行的?
  13. C语言学习 7-9 统计素数并求和
  14. JS设计模式——责任链模式
  15. 摊销本月技术支持部服务器运维成本会计分录,摊销本月报刊费会计分录_摊销本月报刊费_摊销报刊费的会计分录...
  16. Log4j写日志文件使用详解
  17. Typora如何将图片使用相对路径保存到统一文件夹中(解决.md文档传输丢图片的方法)
  18. C++ 面向对象 - 类的多态性与虚函数
  19. 计算机光驱故障分析,光驱故障分析与维修实例
  20. “中科杯”全国软件设计大赛决赛实录

热门文章

  1. 重磅!全球首个可视化联邦学习产品与联邦pipeline生产服务上线
  2. “不设边界”的云知声:从多场景AI芯片到视觉AI,誓要2019营收近3倍
  3. 倒计时2天,如何搭乘通往AI全明星技术盛宴的末班车?(附大会完整版全日程)...
  4. AI一分钟 | 张亚勤:保护用户数据安全是百度的第一原则;美国开通全球首条高速自动驾驶测试路
  5. Hinton胶囊理论代码开源,上线即受热捧
  6. Mysql4种方式避免重复插入数据!
  7. 为什么程序员都不喜欢使用 switch ,而是大量的 if……else if ?
  8. CTO 写的代码,真是绝了
  9. 你还在 select * 吗?
  10. 问一下,线程池里面到底该设置多少个线程?