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 基准点 用于定位的对准标记

相关推荐
广凌股份(广凌科技)1 小时前
广凌智能督导巡课系统:强化教学过程管理,让教学质量提升有据可依
人工智能
仙女修炼史1 小时前
相机基本知识
人工智能
AIGCmagic社区1 小时前
具身智能专题:人手视频能直接拿来训灵巧手吗?RoboTok把人手演示检索出来再训
人工智能·aigc·具身智能
商业看点解说1 小时前
小型创业团队开发 AI Agent 产品,哪些云平台可以降低模型接入与基础设施门槛?
大数据·人工智能
weixin_446260851 小时前
ReAct‑MCTS:蒙特卡洛树搜索增强的ReAct智能体用于长视界交互式任务
人工智能
子非鱼eva1 小时前
昇腾开源仓Issue分析解答-mindspore精选(三)·主仓与mindformers长尾收官
人工智能·ai·gitcode
roman_日积跬步-终至千里1 小时前
【AI Agent架构】AI Agent 架构设计核心思路
人工智能
霍格沃兹测试学院-小舟畅学1 小时前
我用 AI 把 Swagger 变成 500 条 pytest 用例,回归从 3 天到 3 小时
人工智能·测试工具
Dawson Zhu1 小时前
大模型 Agent 记忆系统五大技术路线解析与工程选型指南
人工智能·语言模型·架构·aigc·agi