OTF(On-The-Fly)技术详解

OTF(On-The-Fly)技术详解

目录


一、什么是 OTF 技术

OTF(On-The-Fly) 是一种高速视觉检测技术,其核心思想是:

在设备连续运动过程中完成图像采集 ,而不是采用传统的"运动 → 停止 → 拍照 → 再运动"的 Stop-and-Go 方式。

OTF 技术利用 编码器位置反馈 代替 时间触发 ,通过实时位置触发相机和光源,使设备在高速运动状态下依然能够获得清晰图像,从而大幅提升设备产能(UPH,Units Per Hour)。

核心价值一句话概括

维度 Stop-and-Go OTF
运动方式 走走停停 连续运动
触发方式 时间触发 编码器位置触发
产能 受限 显著提升
机械冲击 大 小

二、工作原理

2.1 传统视觉架构(Stop-and-Go)

工作流程:

复制代码
运动到目标位置
      ↓
设备停止
      ↓
触发相机拍照
      ↓
图像处理
      ↓
继续运动

特点:

  • 机械频繁启停
  • 存在加减速时间
  • 节拍受限
  • UPH 较低

2.2 OTF 视觉架构

工作流程:

复制代码
设备连续运动
      ↓
编码器实时输出位置
      ↓
达到预设坐标
      ↓
位置触发信号
      ↓
频闪光源点亮
      ↓
相机曝光
      ↓
图像 DMA 传输
      ↓
设备继续运动

关键点:整个过程中平台无需停止。

2.3 两种架构流程对比

#mermaid-svg-wXuPdEgEhH3jFhkI{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-wXuPdEgEhH3jFhkI .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-wXuPdEgEhH3jFhkI .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-wXuPdEgEhH3jFhkI .error-icon{fill:#552222;}#mermaid-svg-wXuPdEgEhH3jFhkI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-wXuPdEgEhH3jFhkI .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-wXuPdEgEhH3jFhkI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-wXuPdEgEhH3jFhkI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-wXuPdEgEhH3jFhkI .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-wXuPdEgEhH3jFhkI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-wXuPdEgEhH3jFhkI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-wXuPdEgEhH3jFhkI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-wXuPdEgEhH3jFhkI .marker.cross{stroke:#333333;}#mermaid-svg-wXuPdEgEhH3jFhkI svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-wXuPdEgEhH3jFhkI p{margin:0;}#mermaid-svg-wXuPdEgEhH3jFhkI .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-wXuPdEgEhH3jFhkI .cluster-label text{fill:#333;}#mermaid-svg-wXuPdEgEhH3jFhkI .cluster-label span{color:#333;}#mermaid-svg-wXuPdEgEhH3jFhkI .cluster-label span p{background-color:transparent;}#mermaid-svg-wXuPdEgEhH3jFhkI .label text,#mermaid-svg-wXuPdEgEhH3jFhkI span{fill:#333;color:#333;}#mermaid-svg-wXuPdEgEhH3jFhkI .node rect,#mermaid-svg-wXuPdEgEhH3jFhkI .node circle,#mermaid-svg-wXuPdEgEhH3jFhkI .node ellipse,#mermaid-svg-wXuPdEgEhH3jFhkI .node polygon,#mermaid-svg-wXuPdEgEhH3jFhkI .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-wXuPdEgEhH3jFhkI .rough-node .label text,#mermaid-svg-wXuPdEgEhH3jFhkI .node .label text,#mermaid-svg-wXuPdEgEhH3jFhkI .image-shape .label,#mermaid-svg-wXuPdEgEhH3jFhkI .icon-shape .label{text-anchor:middle;}#mermaid-svg-wXuPdEgEhH3jFhkI .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-wXuPdEgEhH3jFhkI .rough-node .label,#mermaid-svg-wXuPdEgEhH3jFhkI .node .label,#mermaid-svg-wXuPdEgEhH3jFhkI .image-shape .label,#mermaid-svg-wXuPdEgEhH3jFhkI .icon-shape .label{text-align:center;}#mermaid-svg-wXuPdEgEhH3jFhkI .node.clickable{cursor:pointer;}#mermaid-svg-wXuPdEgEhH3jFhkI .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-wXuPdEgEhH3jFhkI .arrowheadPath{fill:#333333;}#mermaid-svg-wXuPdEgEhH3jFhkI .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-wXuPdEgEhH3jFhkI .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-wXuPdEgEhH3jFhkI .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-wXuPdEgEhH3jFhkI .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-wXuPdEgEhH3jFhkI .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-wXuPdEgEhH3jFhkI .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-wXuPdEgEhH3jFhkI .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-wXuPdEgEhH3jFhkI .cluster text{fill:#333;}#mermaid-svg-wXuPdEgEhH3jFhkI .cluster span{color:#333;}#mermaid-svg-wXuPdEgEhH3jFhkI div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-wXuPdEgEhH3jFhkI .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-wXuPdEgEhH3jFhkI rect.text{fill:none;stroke-width:0;}#mermaid-svg-wXuPdEgEhH3jFhkI .icon-shape,#mermaid-svg-wXuPdEgEhH3jFhkI .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-wXuPdEgEhH3jFhkI .icon-shape p,#mermaid-svg-wXuPdEgEhH3jFhkI .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-wXuPdEgEhH3jFhkI .icon-shape .label rect,#mermaid-svg-wXuPdEgEhH3jFhkI .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-wXuPdEgEhH3jFhkI .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-wXuPdEgEhH3jFhkI .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-wXuPdEgEhH3jFhkI :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 频繁启停,节拍受限
OTF 连续运动架构
设备连续运动
编码器实时输出位置
达到预设坐标
位置触发信号
频闪光源点亮
相机曝光
图像 DMA 传输
设备继续运动
Stop-and-Go 传统架构
运动到目标位置
设备停止
触发相机拍照
图像处理
继续运动

对比可见,Stop-and-Go 需要反复启停设备,而 OTF 在设备连续运动过程中即可完成图像采集,从而显著提升 UPH。

2.4 时序对比示意

#mermaid-svg-FfuSk2oiv5wHxbRf{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-FfuSk2oiv5wHxbRf .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-FfuSk2oiv5wHxbRf .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-FfuSk2oiv5wHxbRf .error-icon{fill:#552222;}#mermaid-svg-FfuSk2oiv5wHxbRf .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-FfuSk2oiv5wHxbRf .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-FfuSk2oiv5wHxbRf .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-FfuSk2oiv5wHxbRf .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-FfuSk2oiv5wHxbRf .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-FfuSk2oiv5wHxbRf .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-FfuSk2oiv5wHxbRf .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-FfuSk2oiv5wHxbRf .marker{fill:#333333;stroke:#333333;}#mermaid-svg-FfuSk2oiv5wHxbRf .marker.cross{stroke:#333333;}#mermaid-svg-FfuSk2oiv5wHxbRf svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-FfuSk2oiv5wHxbRf p{margin:0;}#mermaid-svg-FfuSk2oiv5wHxbRf .mermaid-main-font{font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-FfuSk2oiv5wHxbRf .exclude-range{fill:#eeeeee;}#mermaid-svg-FfuSk2oiv5wHxbRf .section{stroke:none;opacity:0.2;}#mermaid-svg-FfuSk2oiv5wHxbRf .section0{fill:rgba(102, 102, 255, 0.49);}#mermaid-svg-FfuSk2oiv5wHxbRf .section2{fill:#fff400;}#mermaid-svg-FfuSk2oiv5wHxbRf .section1,#mermaid-svg-FfuSk2oiv5wHxbRf .section3{fill:white;opacity:0.2;}#mermaid-svg-FfuSk2oiv5wHxbRf .sectionTitle0{fill:#333;}#mermaid-svg-FfuSk2oiv5wHxbRf .sectionTitle1{fill:#333;}#mermaid-svg-FfuSk2oiv5wHxbRf .sectionTitle2{fill:#333;}#mermaid-svg-FfuSk2oiv5wHxbRf .sectionTitle3{fill:#333;}#mermaid-svg-FfuSk2oiv5wHxbRf .sectionTitle{text-anchor:start;font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-FfuSk2oiv5wHxbRf .grid .tick{stroke:lightgrey;opacity:0.8;shape-rendering:crispEdges;}#mermaid-svg-FfuSk2oiv5wHxbRf .grid .tick text{font-family:"trebuchet ms",verdana,arial,sans-serif;fill:#333;}#mermaid-svg-FfuSk2oiv5wHxbRf .grid path{stroke-width:0;}#mermaid-svg-FfuSk2oiv5wHxbRf .today{fill:none;stroke:red;stroke-width:2px;}#mermaid-svg-FfuSk2oiv5wHxbRf .task{stroke-width:2;}#mermaid-svg-FfuSk2oiv5wHxbRf .taskText{text-anchor:middle;font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-FfuSk2oiv5wHxbRf .taskTextOutsideRight{fill:black;text-anchor:start;font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-FfuSk2oiv5wHxbRf .taskTextOutsideLeft{fill:black;text-anchor:end;}#mermaid-svg-FfuSk2oiv5wHxbRf .task.clickable{cursor:pointer;}#mermaid-svg-FfuSk2oiv5wHxbRf .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-FfuSk2oiv5wHxbRf .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-FfuSk2oiv5wHxbRf .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-FfuSk2oiv5wHxbRf .taskText0,#mermaid-svg-FfuSk2oiv5wHxbRf .taskText1,#mermaid-svg-FfuSk2oiv5wHxbRf .taskText2,#mermaid-svg-FfuSk2oiv5wHxbRf .taskText3{fill:white;}#mermaid-svg-FfuSk2oiv5wHxbRf .task0,#mermaid-svg-FfuSk2oiv5wHxbRf .task1,#mermaid-svg-FfuSk2oiv5wHxbRf .task2,#mermaid-svg-FfuSk2oiv5wHxbRf .task3{fill:#8a90dd;stroke:#534fbc;}#mermaid-svg-FfuSk2oiv5wHxbRf .taskTextOutside0,#mermaid-svg-FfuSk2oiv5wHxbRf .taskTextOutside2{fill:black;}#mermaid-svg-FfuSk2oiv5wHxbRf .taskTextOutside1,#mermaid-svg-FfuSk2oiv5wHxbRf .taskTextOutside3{fill:black;}#mermaid-svg-FfuSk2oiv5wHxbRf .active0,#mermaid-svg-FfuSk2oiv5wHxbRf .active1,#mermaid-svg-FfuSk2oiv5wHxbRf .active2,#mermaid-svg-FfuSk2oiv5wHxbRf .active3{fill:#bfc7ff;stroke:#534fbc;}#mermaid-svg-FfuSk2oiv5wHxbRf .activeText0,#mermaid-svg-FfuSk2oiv5wHxbRf .activeText1,#mermaid-svg-FfuSk2oiv5wHxbRf .activeText2,#mermaid-svg-FfuSk2oiv5wHxbRf .activeText3{fill:black!important;}#mermaid-svg-FfuSk2oiv5wHxbRf .done0,#mermaid-svg-FfuSk2oiv5wHxbRf .done1,#mermaid-svg-FfuSk2oiv5wHxbRf .done2,#mermaid-svg-FfuSk2oiv5wHxbRf .done3{stroke:grey;fill:lightgrey;stroke-width:2;}#mermaid-svg-FfuSk2oiv5wHxbRf .doneText0,#mermaid-svg-FfuSk2oiv5wHxbRf .doneText1,#mermaid-svg-FfuSk2oiv5wHxbRf .doneText2,#mermaid-svg-FfuSk2oiv5wHxbRf .doneText3{fill:black!important;}#mermaid-svg-FfuSk2oiv5wHxbRf .doneText0.taskTextOutsideLeft,#mermaid-svg-FfuSk2oiv5wHxbRf .doneText0.taskTextOutsideRight,#mermaid-svg-FfuSk2oiv5wHxbRf .doneText1.taskTextOutsideLeft,#mermaid-svg-FfuSk2oiv5wHxbRf .doneText1.taskTextOutsideRight,#mermaid-svg-FfuSk2oiv5wHxbRf .doneText2.taskTextOutsideLeft,#mermaid-svg-FfuSk2oiv5wHxbRf .doneText2.taskTextOutsideRight,#mermaid-svg-FfuSk2oiv5wHxbRf .doneText3.taskTextOutsideLeft,#mermaid-svg-FfuSk2oiv5wHxbRf .doneText3.taskTextOutsideRight{fill:black!important;}#mermaid-svg-FfuSk2oiv5wHxbRf .crit0,#mermaid-svg-FfuSk2oiv5wHxbRf .crit1,#mermaid-svg-FfuSk2oiv5wHxbRf .crit2,#mermaid-svg-FfuSk2oiv5wHxbRf .crit3{stroke:#ff8888;fill:red;stroke-width:2;}#mermaid-svg-FfuSk2oiv5wHxbRf .activeCrit0,#mermaid-svg-FfuSk2oiv5wHxbRf .activeCrit1,#mermaid-svg-FfuSk2oiv5wHxbRf .activeCrit2,#mermaid-svg-FfuSk2oiv5wHxbRf .activeCrit3{stroke:#ff8888;fill:#bfc7ff;stroke-width:2;}#mermaid-svg-FfuSk2oiv5wHxbRf .doneCrit0,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCrit1,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCrit2,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCrit3{stroke:#ff8888;fill:lightgrey;stroke-width:2;cursor:pointer;shape-rendering:crispEdges;}#mermaid-svg-FfuSk2oiv5wHxbRf .milestone{transform:rotate(45deg) scale(0.8,0.8);}#mermaid-svg-FfuSk2oiv5wHxbRf .milestoneText{font-style:italic;}#mermaid-svg-FfuSk2oiv5wHxbRf .doneCritText0,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCritText1,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCritText2,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCritText3{fill:black!important;}#mermaid-svg-FfuSk2oiv5wHxbRf .doneCritText0.taskTextOutsideLeft,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCritText0.taskTextOutsideRight,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCritText1.taskTextOutsideLeft,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCritText1.taskTextOutsideRight,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCritText2.taskTextOutsideLeft,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCritText2.taskTextOutsideRight,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCritText3.taskTextOutsideLeft,#mermaid-svg-FfuSk2oiv5wHxbRf .doneCritText3.taskTextOutsideRight{fill:black!important;}#mermaid-svg-FfuSk2oiv5wHxbRf .vert{stroke:navy;}#mermaid-svg-FfuSk2oiv5wHxbRf .vertText{font-size:15px;text-anchor:middle;fill:navy!important;}#mermaid-svg-FfuSk2oiv5wHxbRf .activeCritText0,#mermaid-svg-FfuSk2oiv5wHxbRf .activeCritText1,#mermaid-svg-FfuSk2oiv5wHxbRf .activeCritText2,#mermaid-svg-FfuSk2oiv5wHxbRf .activeCritText3{fill:black!important;}#mermaid-svg-FfuSk2oiv5wHxbRf .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-FfuSk2oiv5wHxbRf :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 0 1 2 3 4 5 6 7 8 9 10 运动 连续运动 位置触发 停止 拍照 拍照 DMA传输 图像处理 再运动 Stop-and-Go OTF Stop-and-Go 与 OTF 节拍对比(示意)

说明:OTF 在连续运动过程中并行完成触发、拍照与传输,节拍显著缩短。


三、关键技术组成

3.1 编码器位置触发

OTF 最核心的技术在于 位置触发。

触发方式 说明
传统相机:时间触发 每 10 ms 拍一张
OTF:位置触发 每移动 0.1 mm 拍一张

位置与图像形成 严格对应关系。

优点:

  • 不受运动速度波动影响
  • 图像位置精度高
  • 适合高精度定位

分辨率计算示例:

复制代码
Encoder Resolution = 10000 count/rev
Screw Lead         = 10 mm/rev
位置分辨率         = 10 / 10000 = 1 μm/count

因此可以实现 微米级位置同步。

补充:实际系统中还需考虑编码器细分、机械背隙、触发延迟(Trigger Latency)与 Trigger Jitter 等因素。高精度 OTF 系统通常要求 Trigger Jitter < 1 μs。


3.2 短曝光冻结运动

由于设备不停运动:

复制代码
Motion Blur = Velocity × Exposure Time

示例:

参数 数值
运动速度 1 m/s
曝光时间 100 μs
模糊量 1000 mm/s × 100 μs = 0.1 mm = 100 μm

对于高精度 AOI,100 μm 已无法接受。

因此 OTF 通常要求:

Exposure < 5 μs,甚至 1~2 μs ,从而实现运动冻结(Motion Freeze)。

补充说明:

  • 若允许一定模糊,可结合景深、分辨率与运动速度反推最大曝光时间。
  • 高频振动、皮带传动抖动等也会叠加到模糊量中,需综合评估。

3.3 高频频闪照明

超短曝光带来新的问题:

复制代码
曝光时间变短
      ↓
接收光能减少
      ↓
图像变暗

解决方案:

使用 高功率脉冲光源。

示例:

模式 功率 点亮时间
正常照明 10 W 连续
OTF 频闪 100~1000 W Peak 仅几微秒

特点:

  • 峰值亮度极高
  • 平均功耗较低
  • 可冻结高速运动目标

补充 :频闪光源需与相机曝光严格同步,通常由控制器输出 硬触发信号 同时驱动光源与相机,确保时序一致性。


3.4 DMA 高速图像传输

高速拍照会产生海量数据。

示例:

复制代码
12 MP Camera / 20 FPS / Mono 8 bit
数据量 = 12 MB/frame × 20 fps = 240 MB/s

如果采用 CPU 搬运:

  • CPU Occupancy ↑
  • Latency ↑

因此 OTF 系统通常采用:

DMA(Direct Memory Access):数据直接写入内存。

优点:

  • 降低 CPU 负载
  • 减小延迟
  • 提高实时性

常用高速接口:

接口 带宽(理论) 典型场景
USB3.0 5 Gbps 中速检测
10GigE 10 Gbps 多相机系统
Camera Link 2~6 Gbps 工业传统方案
CoaXPress 12.5 Gbps/lane 高速高分辨率

四、OTF 技术特点

4.1 高 UPH

  • 无需等待平台停止
  • 设备持续运行
  • 通常可提升 30%~200% 以上 生产效率

4.2 高定位精度

  • 由编码器位置决定拍照位置
  • 速度波动不会引起触发误差

4.3 高实时性

  • 运动、拍照、传输 并行执行
  • 降低系统节拍时间
  • 运动与视觉同步

4.4 三要素同步

实现:Motion Control + Machine Vision + Lighting,三者同步。
#mermaid-svg-8vpeUavfOav6c0t7{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-8vpeUavfOav6c0t7 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-8vpeUavfOav6c0t7 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-8vpeUavfOav6c0t7 .error-icon{fill:#552222;}#mermaid-svg-8vpeUavfOav6c0t7 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-8vpeUavfOav6c0t7 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-8vpeUavfOav6c0t7 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-8vpeUavfOav6c0t7 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-8vpeUavfOav6c0t7 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-8vpeUavfOav6c0t7 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-8vpeUavfOav6c0t7 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-8vpeUavfOav6c0t7 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-8vpeUavfOav6c0t7 .marker.cross{stroke:#333333;}#mermaid-svg-8vpeUavfOav6c0t7 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-8vpeUavfOav6c0t7 p{margin:0;}#mermaid-svg-8vpeUavfOav6c0t7 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-8vpeUavfOav6c0t7 .cluster-label text{fill:#333;}#mermaid-svg-8vpeUavfOav6c0t7 .cluster-label span{color:#333;}#mermaid-svg-8vpeUavfOav6c0t7 .cluster-label span p{background-color:transparent;}#mermaid-svg-8vpeUavfOav6c0t7 .label text,#mermaid-svg-8vpeUavfOav6c0t7 span{fill:#333;color:#333;}#mermaid-svg-8vpeUavfOav6c0t7 .node rect,#mermaid-svg-8vpeUavfOav6c0t7 .node circle,#mermaid-svg-8vpeUavfOav6c0t7 .node ellipse,#mermaid-svg-8vpeUavfOav6c0t7 .node polygon,#mermaid-svg-8vpeUavfOav6c0t7 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-8vpeUavfOav6c0t7 .rough-node .label text,#mermaid-svg-8vpeUavfOav6c0t7 .node .label text,#mermaid-svg-8vpeUavfOav6c0t7 .image-shape .label,#mermaid-svg-8vpeUavfOav6c0t7 .icon-shape .label{text-anchor:middle;}#mermaid-svg-8vpeUavfOav6c0t7 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-8vpeUavfOav6c0t7 .rough-node .label,#mermaid-svg-8vpeUavfOav6c0t7 .node .label,#mermaid-svg-8vpeUavfOav6c0t7 .image-shape .label,#mermaid-svg-8vpeUavfOav6c0t7 .icon-shape .label{text-align:center;}#mermaid-svg-8vpeUavfOav6c0t7 .node.clickable{cursor:pointer;}#mermaid-svg-8vpeUavfOav6c0t7 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-8vpeUavfOav6c0t7 .arrowheadPath{fill:#333333;}#mermaid-svg-8vpeUavfOav6c0t7 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-8vpeUavfOav6c0t7 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-8vpeUavfOav6c0t7 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-8vpeUavfOav6c0t7 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-8vpeUavfOav6c0t7 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-8vpeUavfOav6c0t7 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-8vpeUavfOav6c0t7 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-8vpeUavfOav6c0t7 .cluster text{fill:#333;}#mermaid-svg-8vpeUavfOav6c0t7 .cluster span{color:#333;}#mermaid-svg-8vpeUavfOav6c0t7 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-8vpeUavfOav6c0t7 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-8vpeUavfOav6c0t7 rect.text{fill:none;stroke-width:0;}#mermaid-svg-8vpeUavfOav6c0t7 .icon-shape,#mermaid-svg-8vpeUavfOav6c0t7 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-8vpeUavfOav6c0t7 .icon-shape p,#mermaid-svg-8vpeUavfOav6c0t7 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-8vpeUavfOav6c0t7 .icon-shape .label rect,#mermaid-svg-8vpeUavfOav6c0t7 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-8vpeUavfOav6c0t7 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-8vpeUavfOav6c0t7 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-8vpeUavfOav6c0t7 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 运动控制

Motion Control
同步触发
机器视觉

Machine Vision
光源照明

Lighting
高速高精度图像采集


五、典型应用场景

5.1 AOI(自动光学检测)

  • PCB 检测:焊点检查 / 元件缺失 / 偏移检测 / 高速扫描 PCB

5.2 SMT 贴片机

  • Fiducial 定位
  • 元件识别
  • 贴装校正
  • 减少机械停顿时间

5.3 半导体设备

  • Die Bond
  • Wire Bond
  • Wafer Inspection
  • Wafer Handling

在运动过程中完成定位和检测。

5.4 显示面板检测

  • LCD / OLED
  • MiniLED
  • MicroLED

提升大尺寸面板检测效率。

5.5 锂电池检测

  • 极片检测
  • 卷绕检测
  • Tab 检测

实现高速连续生产。

应用场景汇总表

行业 典型应用 OTF 价值
PCB / AOI 焊点、元件、偏移 高速扫描,提升 UPH
SMT Fiducial、元件识别 减少停顿
半导体 Die/Wire Bond、Wafer 运动中定位检测
显示面板 LCD/OLED/MiniLED 大尺寸高效检测
锂电池 极片、卷绕、Tab 连续高速生产

六、OTF 技术优势

优势 说明
显著提高 UPH 设备无需频繁启停,是 OTF 最大的价值
降低机械冲击 减少加速、减速、停机,有助于提升设备寿命
提升运动控制效率 运动轨迹更平滑,振动更小
更高的系统吞吐量 适合高速生产线、大批量制造

七、OTF 技术挑战

7.1 对照明要求极高

  • 高频频闪
  • 高峰值功率
  • 精确时序控制

7.2 对相机要求高

通常需要:

  • Global Shutter(全局快门)
  • 外部硬触发
  • 低延迟

卷帘快门通常不适用。

7.3 运动控制要求高

  • 编码器精度高
  • Trigger Jitter 低
  • 控制器实时性强

7.4 数据带宽压力大

需要高速接口:

  • USB3.0
  • 10GigE
  • Camera Link
  • CoaXPress

挑战与应对汇总

挑战 应对措施
照明不足 高频频闪、高峰值功率光源
运动模糊 超短曝光 + 全局快门
触发抖动 高精度编码器 + 实时控制器
数据瓶颈 DMA + 高速接口
时序复杂 运动/视觉/光源统一同步架构

八、Stop-and-Go 与 OTF 全面对比

项目 Stop-and-Go OTF
平台运动 停止拍照 连续运动
触发方式 时间触发 编码器位置触发
UPH 较低 高
机械冲击 大 小
曝光时间 较长 极短
光源要求 普通照明 高频频闪
实时性 一般 优秀
实施难度 低 高
定位精度 受机械停止影响 由编码器决定,精度高
适用场景 低速、高精度 高速、大批量

九、总结

OTF(On-The-Fly)技术 是一种基于 编码器位置触发 的高速机器视觉架构,通过在设备连续运动过程中实时触发相机和频闪光源完成图像采集,避免传统 Stop-and-Go 模式带来的停机等待时间。

核心优势:

  • 显著提升 UPH
  • 降低机械启停冲击
  • 实现运动与视觉的精确同步

主要挑战:

  • 编码器精度
  • 控制器实时性
  • 频闪照明
  • Global Shutter 相机
  • 高速数据传输

典型应用:

AOI、SMT 贴片机、半导体封装、晶圆检测、显示面板检测等高速自动化设备。


附录:术语表

术语 英文 说明
OTF On-The-Fly 飞行中检测,连续运动视觉检测
UPH Units Per Hour 每小时产能
AOI Automated Optical Inspection 自动光学检测
DMA Direct Memory Access 直接内存访问
FPS Frames Per Second 帧率
Global Shutter 全局快门 整个传感器同时曝光
Rolling Shutter 卷帘快门 逐行曝光,运动场景易畸变
Trigger Jitter 触发抖动 触发信号的时间不确定性
Motion Freeze 运动冻结 通过短曝光"冻结"运动目标
Fiducial 基准点 用于定位的对准标记

相关推荐
逸模几秒前
BIM在连锁餐饮装修中的应用:不只是画三维图
大数据·数据库·人工智能·物联网·建模
Zooproxy全球IP代理2 分钟前
住宅IP在AI行业中的技术应用:数据采集基础设施的工程实践
人工智能·网络协议·tcp/ip
Rocky Ding*8 分钟前
MOSS-VL技术原理深度解析:让视觉流持续进入生成过程,实时 Agent 才有架构基础
论文阅读·人工智能·深度学习·机器学习·aigc·多模态·ai-native
一木 之林10 分钟前
Dify学习笔记 01 · 平台入门与实战:部署、五类应用、RAG与MCP(第1-16集)
人工智能·笔记·学习·计算机视觉
茵Cindy10 分钟前
AI+HR智能体架构如何落地?从入口到生态底座的工程实现
人工智能·架构·ai+hr
白露与泡影12 分钟前
Oracle AI Database 26ai RAC 部署步骤、关键命令与一键脚本
数据库·人工智能·oracle
雪雪90815 分钟前
视频音乐升降调工具怎么选?先看音调适配与音质损失
人工智能
加强洁西卡23 分钟前
【AI】机器学习常见的指标及其解释
人工智能·机器学习
Qyr9923 分钟前
2026-2032年全球高可靠性电阻器市场发展全景与竞争格局解析
人工智能·物联网