2. 线扫相机成像原理

线扫相机与面阵相机最根本的区别,在于它的感光元件只有一行(或少数几行)像素。面阵传感器一次曝光就能得到一幅二维图像,而线扫传感器一次曝光只能得到一条一维的“线”。要得到一幅二维图像,必须让相机与被测物之间产生相对运动,把一条条线按顺序拼接起来。理解这一点,是理解线扫成像全部工程约束的起点。

线阵传感器的物理结构

线阵传感器(Linear Sensor)在物理上是一排沿直线排列的光电二极管(或 CMOS 感光单元),常见长度有 2K、4K、8K、16K 像素,即一行有 2048、4096、8192、16384 个像素。每个像素把接收到的光强转换为电荷,再经读出电路转换为数字灰度值。为了提升灵敏度和色彩能力,工程上常见几种结构:

  • 单线黑白:一行感光单元,输出灰度图,结构最简单、行频最高,适合尺寸测量、缺陷检测等对色彩无要求的场景。
  • 双线/多线:两行或多行并排,可分别镀不同滤光片,用于提升动态范围或做多光谱采集。
  • 三线彩色:三行分别覆盖 R、G、B 滤光片,同一空间位置在三次连续曝光中被分别记录,再合成彩色像素。由于三行在物理上相隔若干行距,运动方向上的配准必须靠行同步来补偿。
  • TDI(时间延迟积分):多行同色感光单元沿运动方向排列,同一物点依次扫过各行,电荷逐行累加。在同等行频下可显著提高灵敏度,适合弱光、高速场景,但对运动速度与行频的匹配精度要求极高。

无论哪种结构,线阵传感器的输出都是“一行一行”的数字数据流,而不是一帧完整的二维矩阵。相机内部通常配有行缓存(Line Buffer)和接口控制器,把连续的行按顺序打包,通过 GigE Vision、Camera Link、CoaXPress 或 USB3 Vision 等接口送往采集端。

逐行曝光与读出机制

线扫相机的成像过程可以拆成三个循环往复的动作:曝光(感光单元积累电荷)、读出(把电荷转换为电压并数字化)、传输(把数字行数据送出)。这三个动作在时间上如何安排,决定了相机的两种基本工作模式:

  • 重叠曝光(Overlapped):在读出上一行数据的同时,下一行已经开始曝光。曝光与读出并行,行周期主要由读出时间决定,行频较高,是绝大多数工业线扫相机的默认模式。
  • 非重叠曝光(Non-overlapped):曝光完成后才开始读出,读出完成后才开始下一次曝光。行周期 = 曝光时间 + 读出时间,行频较低,但曝光时间可以独立拉长,适合极弱光场景。

在重叠曝光模式下,曝光时间(Exposure Time)与行周期(Line Period)是两个独立可调的量,但必须满足一个硬约束:曝光时间不能超过行周期。否则上一行还没曝光完,下一行的曝光就要开始,会造成电荷混叠、图像拖影甚至相机报错。行频(Line Rate)与行周期的关系为:

行周期 T_line = 1 / 行频 f_line
约束条件:曝光时间 T_exp ≤ T_line(重叠曝光模式下)
例如:行频 10 kHz → 行周期 100 μs → 曝光时间最大 100 μs
      若需曝光 200 μs,则行频必须降到 ≤ 5 kHz

这就引出了线扫成像中最核心的一对矛盾:想要更亮的图像,就要加长曝光;想要更快的产线速度,就要提高行频。而两者受同一个行周期约束,不能同时无限增大。实际调机时,通常先根据产线速度和所需纵向分辨率确定行频,再在剩余的行周期预算内设置曝光时间,最后通过光源亮度、镜头光圈或增益来补足亮度。

行频与运动速度的匹配

线扫相机要得到不变形的图像,必须保证“每一行对应的物面宽度”在运动方向上一致。设产线运动速度为 v(mm/s),相机横向视场对应的物面宽度为 FOV(mm),横向像素数为 N,则横向分辨率(像素当量)为:

横向像素当量 P_x = FOV / N   (mm/pixel)
纵向像素当量 P_y = v / f_line (mm/pixel)
不变形条件:P_x = P_y
即:f_line = v × N / FOV = v / P_x

举例:FOV = 400 mm,使用 8K 相机(N = 8192),则 P_x ≈ 0.0488 mm/pixel。若产线速度 v = 500 mm/s,则所需行频 f_line = 500 / 0.0488 ≈ 10246 Hz,取整约 10.2 kHz。此时行周期约 97.7 μs,曝光时间必须小于该值。若实际曝光只能给到 60 μs,图像偏暗,就需要提高光源功率或开大光圈,而不是盲目加曝光时间——因为加曝光会直接撞上行周期上限。

如果行频设置得比理论值低,图像在运动方向上会被“拉长”(纵向像素当量变大);设置得偏高,图像会被“压扁”。这两种变形在测量类应用中都是致命的,因此线扫系统必须让编码器或运动控制器的位置脉冲来触发相机行触发(Line Trigger),实现“走多远、拍一行”的闭环同步,而不是靠相机内部定时自由运行。

与面阵成像的差异及适用场景

对比维度线扫相机面阵相机
感光结构一行或数行像素二维像素阵列
成像方式逐行曝光,靠相对运动拼接一次曝光得到整幅图像
分辨率扩展横向靠像素数,纵向靠运动长度,可无限延伸受芯片尺寸限制,幅面有限
运动要求必须与被测物有稳定相对运动可静止拍摄,也可运动拍摄
典型行频/帧率几 kHz 到几百 kHz几十到几百 fps
光照利用逐行窄缝曝光,光通量小,需强光源整幅同时曝光,光通量相对充足
适用场景连续卷材、圆柱面、大幅面、高速产线静止工件、离散零件、三维定位、随机抓拍

选择线扫还是面阵,判断依据不是“哪个更高级”,而是被测物与相机的相对运动形态。连续运动的卷材(薄膜、纸张、布匹、金属带)、旋转的圆柱面(瓶身、轮毂、管材)、需要超大幅面或超高纵向分辨率的场景,线扫几乎是唯一选择;而静止或间歇运动的离散零件、需要二维定位或三维重建的场景,面阵更简单可靠。线扫的代价是:必须解决运动同步、行频匹配、光源均匀性和拼接一致性,系统复杂度明显高于面阵。

线扫成像:逐行曝光—读出—拼接 与 行频约束 线阵传感器(一行像素) 2K / 4K / 8K / 16K 像素 被测物运动 v 行触发脉冲(编码器/定时) 行周期内的时序 行周期 T_line = 1 / f_line 曝光 T_exp 读出 约束:T_exp ≤ T_line 重叠曝光:读出与下一行曝光并行 非重叠:T_line = T_exp + T_read 行频↑ → 行周期↓ → 曝光预算↓ 逐行拼接成二维图像 纵向长度 = 行数 × 纵向像素当量 行频—速度—分辨率 匹配关系 像素当量 P_x = FOV / N P_y = v / f_line 不变形:P_x = P_y → f_line = v / P_x 示例参数 FOV = 400 mm,N = 8192 P_x ≈ 0.0488 mm/pixel v = 500 mm/s f_line ≈ 10.2 kHz T_line ≈ 97.7 μs 行频偏差的后果 行频偏低 → 纵向拉长 行频偏高 → 纵向压扁 曝光 > 行周期 → 拖影/报错 对策:编码器行触发闭环同步
调机顺序建议:先由产线速度和目标纵向像素当量算出理论行频,再确认相机与接口能否在该行频下稳定输出,最后在行周期预算内设置曝光时间,用光源和光圈补亮度。切勿先定曝光再反推行频,否则很容易撞上 T_exp ≤ T_line 的硬约束。
三线彩色和 TDI 相机对行同步更敏感:三线彩色需要按行距补偿 R/G/B 的空间错位,TDI 需要运动速度与行频严格匹配,否则积分方向与运动方向不一致,图像会模糊甚至完全失效。这类相机必须使用编码器行触发,不能依赖内部定时自由运行。

把以上关系串起来看,线扫成像的本质就是一句话:用一行像素,配合精确的行触发和运动同步,把时间上的逐行采样还原成空间上的二维图像。行频、曝光时间、运动速度、像素当量这四个量互相牵制,任何一个设置不当都会直接反映为图像变形、亮度异常或拖影。理解它们之间的定量关系,是后续运动同步设计和在线检测系统搭建的基础。