防滑垫厂家
免费服务热线

Free service

hotline

010-00000000
防滑垫厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

基于多线阵CCDS相机的大幅面扫描仪高精度实时拼接实现新方法

发布时间:2020-07-21 18:24:50 阅读: 来源:防滑垫厂家

0 引言

本文引用地址:基于多线阵CCDS相机的拼接型高精度大幅面扫描仪的研制一直是国内、外学者及产业界关注的重点领域,但是由于涉及精密光路设计心1、复杂机械平台、完备硬件系统H1、友好人机界面、智能算法实现这五个关键技术,其中高精度实时拼接技术又是其中的重点难点。迄今为止,基于多线阵CCDS相机的拼接型高精度大幅面扫描仪的全部关键技术基本上被国外跨国公司与大型研究机构所垄断,国内完全依靠进口。

高精度实时拼接技术是多线阵CCDS相机的大幅面扫描仪中的重点难点。由于线阵CCDS相机的视场有限,在视场范围要求大扫描精度高的大幅面扫描仪应用背景下,单个三线阵CCDS相机显然不能满足需求,因此需要多个三线阵相机拼接实现。

拼接最重要的指标是保证图像信息不丢失不错位,最理想的情况是,所有三线阵CCDS相机保持在同一水平面,相邻两个相机采集图像的像素连续。

为了适应拼接型多线阵CCDS大幅面扫描仪这一应用需求,通常采用光学拼接或光学拼接加入软件后续处理¨01.光学拼接通过分光棱镜将多个线阵CCDS相机首位相连,即前一级CCDS相机最后一个有效像素与下一级CCDS相机第1个有效像素相连,其精度要求偏差在1个像素以内,且多个CCDS相机所有像素必须在同一个水平面上,这对机械加工精度要求非常高,相应成本也非常高,其拼接精度随着使用时间增加而降低。光学拼接加入软件后续处理通过将相邻两个CCDS相机有效像素进行重叠以此保证图像信息不丢失,然后将采集到的图像信息保存在电脑内存里,通过软件算法将每个相机采集到的图像数据上下左右平移进行拼接,这种拼接方式对机械的精度要求有所降低,但是对电脑配置要求较高,拼接时间较长需要2 s一3 s,对大幅面扫描仪的实时性有一定影响¨2|.

针对这一问题,笔者深人研究了FPGA/SDRAM/'CCDS的内部结构,通过多次试验验证,提出了一种新的基于多线阵CCDS相机的大幅面扫描仪高精度实时拼接实现新方法一硬件拼接法。

1 基本理论

1.1拼接原理

为了保证相邻相机首尾相连处数据不丢失,必须使两相机之间有效像素部分重合,如图1拼接原理图所示。

相机1与相机2重叠W1个像素,相机2与相机3重叠W2个像素。将SDRAM的地址分为3个地址分块,相机1对应的初始地址为ADDRESS-1,相机2对应的初始地址为ADDRESS-2,相机3对应的初始地址为ADDRESS_3.三线阵CCDS相机逐行扫描,将3个相机采集到的每一行数据分别连续存储到SDRAM开辟的3个地址分块里,因为SDRAM的地址与数据一一对应,知道每一行数据的首地址,通过对偏移量的设置,从指定每行数据首地址位开始连续读取数据即可对3个相机的数据进行实时拼接。

1.2拼接过程中出现的实际情况与处理方法

实际过程中,由于机械平台加工的精度问题,3个相机可能不在同一水平面上,并且相邻两相机的重叠像素部分也不一定相同,就造成常规数据传输中有错位现象产生。根据实验与分析,拼接过程中会出现6种可能情况,如图2(a)、2(b)、2(c)、2(d)、2(e)、2(f)所示。

图2(a)为相机l水平位置大于相机2水平位置。相机2水平位置大于相机3水平位置时,图像有效数据错位情况。图2(b)为相机1水平位置小于相机2水平位置,相机2水平位置小于相机3水平位置时。图像有效数据错位情况。图2(c)为相机2水平位置大于相机l水平位置,相机l水平位置大于相机3水平位置时,图像有效数据错位情况。

图2(d)为相机2水平位置大于相机3水平位置,相机3水平位置大于相机1水平位置时,图像有效数据错位情况。图2(e)为相机3水平位置大于相机1水平位置,相机1水平位置大于相机2水平位置时,图像有效数据错位情况。图2(f)为相机1水平位置大于相机3水平位置,相机3水平位置大于相机2水平位置时,图像有效数据错位情况。

因此需要先确定扫描仪3个相机处于何种位置情况,相机每一行像素个数为L=5340个,上位机根据特定情况设定H1、H2、W1、w2的值,根据H1、H2、W1、W2的预设值计算出需要缓存数据最大行数,相机2每行缓存数据的读出首地址与末地址,相机3每行缓存数据的读出首地址与末地址,最后顺序读写出每一个相机缓存数据传输到上位机实时显示。

图2所示6种情况中的写缓存初始地址都是一致的,即,相机1写缓存初始地址ADDRESS-WRITEBUFFER.1=ADDRESS一1,相机2写缓存初始地址ADDRESS-WRITEBUFFER_2=ADDRESS_2,相机写缓存初始地址ADDRESS-WRITEBUFFER一3=ADDRESS_3.

针对图2(a)的情况,需缓存BUFFER-LINE=H1+H2+1行数据,相机2连续写人H1+1行数据后需对写入地址初始化,相机3连续写人H1+H2+1行数据后需对写入地址初始化。相机1写初始地址ADDRESS-WRITE一1=ADDRESS一1+(H2一H1)·L+H2一H1,相机2写初始地址ADDRESS-WRITE一2=ADDREsS一2+H2·L+H2,相机3写初始地址ADDRESS-Wr{ITE_3=ADDRESS_3.相机1读初始地址ADDRESS-READ一1=ADDRESS一1+(H1+H2)·L+H1+H2,相机2读初始地址ADDRESS-READ_2=ADDRESS_2+H2·L+W1+H2,相机3读初始地址ADDRESS-READ_3=ADDRESS._3+W2.

针对图2(b)的情况,需缓存BUFFER-LINE=HI+H2+l行数据,相机1连续写入H1+H2+1行数据后需对写入地址初始化,相机2连续写入H2+l行数据后需对写人地址初始化。相机1写初始地址ADDRESS-WRITE一1=ADDRESS一1,相机2写初始地址ADDRESS-WrtlTE_2=ADDRESS_2+H1·L+H1,相机3写初始地址ADDRKSS_WRrI'E_3=ADDRESS_3+(H1+H2)·L+H1+H2.相机1读初始地址ADDRESS-READ一1=ADDRESS一1,相机2读初始地址ADDRESS-READ一2=ADDRESS一2+H1·L+W1+Hl,相机3读初始地址ADDRESS-READ一3=ADDRESS 3+(Hl+H2)·L+Hl+H2+W2.

针对图2(c)的情况,需缓存BUFFER-LINE=H2+1行数据,相机1连续写入H1+1行数据后需对写入地址初始化,相机3连续写人H2+1行数据后需对写入地址初始化。相机1写初始地址ADDRESS-WRITE一1=ADDRESS一1+(H2一H1)·L+H2一H1,相机2写初始地址ADDRESS-WRITE一2=ADDRESS一2+H2·L+H2,相机3写初始地址ADDRESS-WRITE_3=ADDRESS一3.相机1读初始地址ADDRESS_READ一1=ADDRESs一1+(H2一H1)·L+H2一H1,相机2读初始地址ADDRESS-READ一2=ADDRESS一2+I-12·L+w1+H2,相机3读初始地址ADDRESS_READ_3=ADDRESS_3+W2.

针对图2(d)的情况,需缓存BUFFER-LINE=Hl+1行数据,相机l连续写入Hl+l行数据后需对写入地址初始化,相机3连续写人H2+1行数据后需对写入地址初始化。相机1写初始地址ADDRESS-WRITE一1=ADDRESS一1,相机2写初始地址ADDRESS-WRITE一2=ADDRESS一2+H1·L+W1+HI,相机3写初始地址ADDRESS-WRITE一3=ADDRESS._3+(H1一H2)·L+HI-H2.相机1读初始地址ADDRESS-READ一1=ADDRESS一1,相机2读初始地址ADDRESS-READ一2=ADDRESS一2+Hl·L+W1+H1,相机3读初始地址ADDRESS-READ一3=ADDRESS_3+(H1一H2)·L+H1一H2+W2.

针对图2(e)的情况,需缓存BUFFER-LINE=H2+1行数据,相机1连续写入H2一HI+1行数据后需对写入地址初始化,相机2连续写入H2+1行数据后需对写入地址初始化。相机1写初始地址ADDRESS-WRITE一1=ADDRESS一1+H1·L+H1,相机2写初始地址ADDRESS-WRITE一2=ADDRESS一2,相机3写初始地址ADDRESS-WRITE-3=ADDRESS一3+H2·L+H2.相机1读初始地址ADDRESS-READ一1=ADDRESS一1+HI·L+H1,相机2读初始地址ADDRESS-rtE,~D._2=ADDRESS_2+Wl,相机3读初始地址ADDRESS-r{EAD_3=ADDRESS_3+H2·L+H2+W2.

针对图2(f)的情况,需缓存BUFFER-LINE=H1+l行数据,相机2连续写入H1+1行数据后需对写入地址初始化,相机3连续写入H1一H2+1行数据后需对写入地址初始化。相机1写初始地址ADDRESS-WRITE一1=ADDRESS一1+H1·L+H1,相机2写初始地址ADDRESS-WRITE一2=ADDRESS一2,相机3写初始地址ADDRESS_WRITE_3=ADDRESS_3+H2·L+H2.相机1读初始地址ADDRESS-READ一1=ADDRESS一1+H1·L+H1,相机2读初始地址ADDRESS-READ_2=ADDRESS_2+W1,相机3读初始地址ADDRESS-READ一3=ADDRESS一3+H2·L+H2+W2.

2实验结果与讨论

2.1方法执行过程

多线阵CCDS相机的大幅面扫描仪高精度实时拼接实现新方法流程如图3所示。根据主要器件的特性,上电后需对FPGA、SDRAM初始化,使其处于正常工作状态。从上位机获取H1、H2、W1、W2的预设值,判别相机位置处于何种情况。定义H1最高位为1时,相机l水平位置高于相机2水平位置,H1最高位位为0时,相机1水平位置低于相机2水平位置。定义I-12最高位为1时,相机2水平位置高于相机3水平位置,H2最高位为0时,相机2水平位置低于相机3水平位置。图2所示6种情况分对应H1、H2预设值的6种状态。H1最高位为1,H2最高位为l时对应图2(a);H1最高位为0,H2最高位为0时对应图2(b);HI最高位为0,I-12最高位为1,且Hl小于I-12时对应图2(c);H1最高位为0,H2最高位为l,且H1大于等于H2时对应图2(d);H1最高位为l,H2最高位为0,且H1小于H2时对应图2(e),Hl最高位为1,H2最高位0,且Hl大于等于H2时对应图2(f)。获取预设值后就进行数据缓存,按照相机编号逐行读出图像数据,判断读地址是否需要初始化,按照相机编号逐行写人图像数据,判断写地址是否需要初始化,最后判断是否接收到上位机发出的结束信号。

碧莲盛

太原碧莲盛植发医院怎么样

贵阳碧莲盛