基于NVIDIA TX2模块的双目视觉信号采集系统设计

2021-03-24 02:46李鹏飞王云飞卢荣胜
仪表技术与传感器 2021年2期
关键词:PC机双目中心线

李鹏飞,王云飞,卢荣胜

(合肥工业大学仪器科学与光电工程学院,安徽合肥 230009)

0 引言

近年来,人们对图像图形信息的要求日益增高,主要表现为三维图像图形信息的获取[1]。物体形状测量是对物体的定位,三维轮廓测量技术在逆向、产品设计、目标检测等领域应用广泛[2-5],涂胶工艺是汽车在涂装车间的重要工艺,随着各种新型车引入,涂胶工艺变得越为复杂[6]。传统涂胶轨迹采用人工抽检的方法,用游标卡尺测量其宽度、高度等三维信息[7]。该方法测量不准确,容易使胶体变形,效率低。赵宇龙等[8-10]使用Predator 3D来检测汽车胶体,效果不错,但其使用的视觉检测系统价格昂贵、匹配性差,没有做到自主研发。本文从实际应用出发,设计搭建了一套胶体三维检测的信号采集系统,其基于小图像的采集、传输中心线方法具有速度快、效率高、结构简单等优势,在复杂环境下也可以有高的检测精度[11]。本文分析了双目视觉信号采集方案设计,对系统图像采集、处理、发送进行介绍,并对关键问题和解决办法进行了阐述。

1 总体设计方案

双目视觉信号采集系统基于TX2的Linux系统平台,采用2个双目板级相机提供了4路相机的采集,同时每路相机配备一个线激光器,以此形成了4路线结构光采集系统,满足了实时双目采集的要求。系统结构图如图1所示。采集系统结构包括待采集层、图像采集层、图像处理层、PC机处理层。待采集层为线结构光打射在物体上;图像采集层包括4路相机,工作模式为其中2路相机对线结构光进行拍摄采集;图像处理层将采集图像中的线激光条提取中心线;PC机处理层为PC机通过以太网接收图像处理层发送的中心线坐标。系统工作流程图如图2所示。采集的工作流程为:在TX2系统下使用设计的界面设置相机采集参数以PWM触发其中一个双目板级相机。每采集1帧图像后会对图像中的线激光条提取中心线。若TX2与PC机通过以太网建立连接,则将提取的中心线坐标存储到一定大小后以数据包的形式发给PC机。PC机接收到数据后并进行拆包操作,将每帧图像的中心线坐标拆分出来,等待后续处理。

图1 信号采集系统结构

图2 系统工作流程图

2 系统硬件介绍

采集系统核心使用了NVIDIA TX2,其内部有四核ARM A57以及256颗CUDA核心。丰富的内核资源满足了系统采集高帧率的要求,CUDA核心为后续提高图像处理速度提供了保障。千兆以太网可以实时地将采集信号发送至上位机。2路USB3.0和2路USB2.0支持了2个板级相机以及键盘鼠标的连接。HDMI满足了连接显示器的要求。

相机使用了板级工业相机VEN-134-90U3M-D NIR,其通过FPC软排线灵活地与2个成像板连接。TX2使用一个引脚输出PWM对相机进行触发采集。此外TX2通过USB3.0与板级相机连接进行图像传输。线激光器光面角度为30°,工作距离为150 mm,线宽为1 mm。

3 相机采集设计

相机工作模式分3种:连续采集、软触发采集、外触发采集。本系统采用了外触发采集模式。使用1个输出PWM的引脚以及1个USB3.0口即可对双目板级相机进行触发采集。双目相机采集的图像通过1个USB口同步传输至TX2系统。4路相机采集使用了2个PWM引脚以及2个USB3.0口,极大地节省了接口资源,缩小了系统的体积。

3.1 双目相机采集参数设置

相机采集参数众多,其中包括图像分辨率、数据格式、采集模式、触发模式、曝光、增益、带宽等[12]。该系统设计了图像分辨率、采集模式、触发模式、曝光、帧率、带宽等参数,双目相机的参数统一设置,使用相机自带SDK开发设计。参数设置如表1所示。系统中相机的采集模式为连续采集。触发模式为外部触发,使用TX2一个引脚输出PWM给相机上升沿连续触发采集。帧率设置为140 fps。为了满足相机采集帧率,其对应的曝光时间设置为2 ms。图像分辨率通过ROI设置为640×480(双目)。带宽设置为20 000 000 Bps。

表1 双目相机采集参数设计

3.2 相机触发采集设计

相机触发采集设计如图3所示。首先设置相机采集模式为连续模式,打开外部触发模式,最后发送开始采集命令[13]。TX2输出PWM给相机外部引脚,当相机引脚检测到输入上升沿时即触发一次采集命令。随后相机开始采集一帧图像帧1。当检测到下一个上升沿,即开采下一帧图像帧2。当采集到帧N时对相机发送停止采集命令,之后相机便停止了图像采集。

图3 相机图像采集流程图

3.3 相机图像采集工作流程

相机图像采集流程图如图4所示。首先构造相机类对象,然后初始化相机函数库,之后根据相机的序列号选择打开的双目相机,随后设置相机的采集模式和触发模式以及其他相机参数(曝光、分辨率等)。待发送开始采集命令后,TX2输出PWM给相机。相机识别到一个上升沿后便会采集一幅图像。最后从回调函数中调取采集的图像进行后续处理。

图4 相机图像采集流程图

4 软件系统设计

软件设计包括TX2系统界面设计、PC机界面设计、中心线提取设计、以太网传输数据设计。

4.1 TX2系统操作界面设计

QT是跨平台图像界面程序开发框架,其在Linux系统以及Windows系统都具有友好的支持与操作简单的特性。QT Embedded是为嵌入式设备上的图形用户接口和应用开发而订作的C++开发工具包,QT Embedded为本系统的设计提供了便捷方式。

基于QT Embedded的应用程序开发是比较复杂的过程,需要对Linux操作系统、C++和交叉编译等很多内容的熟练掌握。本文中Linux系统下设计的界面用于配置相机参数以及实时采集图像的显示。操作界面如图5所示。其中“open”按键实现方法为在QT设计界面添加Push Buttons按钮,修改名称右键单击选择go to slot选项,在弹出对话框中选择clicked()信号,至此就构造了Push Buttons_clicked()槽函数,在槽函数中编写需要运行的代码即可[14],其他按键设计类似于此。“open”按键内容为打开相机并初始化相机采集曝光、帧率、图像大小等信息以及PWM输出频率、占空比。“close”按键为关闭相机及激光器设备,其涵盖了关闭相机采集命令、关闭相机函数库命令以及关闭PWM输出命令。“save_one_pic”按键为在采集过程中保存一幅图像,其调用了相机SDK中保存1帧图像的函数。

图5 TX2系统操作界面

按键“trigger1”、“trigger2”为相机触发控制参数,其输入参数将会传递给PWM输出占空比函数,实现方法为在QT设计界面添加QSpinBox,右键选择valueChanged()槽函数,在槽函数中写入需要实现代码即可。其他输入参数窗口编写类似于此。“pwmfre”为设置输出PWN输出频率,其输入参数将会传递给PWM输出频率函数。“Width”、“height”、“exposure”、“frame_rate”、“daikuan”分别表示采集图像的宽度、高度、曝光、帧率、带宽设置项,其输入参数将会传递给相应的控制输出函数。message show窗口为打印出程序运行步骤到此窗口。show rate窗口显示实时采集帧率,实现方法为在程序中开始设置定时器T1,在结尾处设置定时器T2,当两者的差值为1 s时输出所记个数。showimage窗口为显示实时采集图像,将采集处理的图像调出来并实时显示在界面上,其实现方法为定义Qlabel,将图像转换为Qimage形式在Qlabel显示并实时刷新,显示大小会根据图像大小变化而变化。

4.2 PC机界面设计

PC机界面设计是为了接收TX2系统发送的采集信号,通讯协议为以太网。系统设计基于QT的应用程序开发。操作界面如图6所示。按钮类、显示类实现方法与TX2系统下的实现方法相同。按键“连接”的作用是与TX2系统建立以太网连接,其调用了TCP连接协议,包括IP地址的调用以及端口的写入。“请求”按钮的功能是请求TX2系统发送采集信息,其背部函数为TCP发送特点字符串供TX2系统识别。“receiveCount”按键为TCP传输次数,“imageCount ”按键为接收图像帧数,其实现方法是在程序中以定时器计数显示的。

图6 PC机操作界面

4.3 光条中心线的提取

图像质心计算是图像处理中重要的环节,灰度质心法原理是基于二值化分割,取阈值Z将图像分成上、下2部分,对阈值Z以上部分进行高频采样,然后根据平面几何中积分求质心的原理计算其面积中心,以代替能量中心[15]。该方法具有稳定性好、定位精度高、速度快等优点,本文中采用该方法对光条中心线进行提取。

对于图像中的线激光条纹,假设图像的像素为m×n,(x0,y0)即为求得的质心坐标值。假设所有大于阈值Z的像素坐标为(xi,yi),其相应的坐标灰度值fij。计算公式如式(1)、式(2)。

(1)

(2)

4.4 以太网数据传输

TCP是用于数据传输的底层的网络协议,在局域网、广域网、互联网中均可完美运行。此外其还具有一套完整网络地址分配方案,所有TCP/IP设备在网络中有唯一地址。该系统采用了QT中为TCP提供的接口QTcpSocket类[16]。

该系统中采集处理图片并得到了中心线,TX2系统使用TCP协议将提取的中心线坐标发送到PC机。数据发送的程序流程图如图7所示,将采集处理后的中心线坐标存入向量vector中,在TCP打开的状态下,处理完一帧图像之后向vector读取中心线坐标点并以x,y;的形式进行打包存储。读取1帧图像中心线坐标之后接着判断发送数据包Buff的大小是否满足要求,如果不满足要求则接着读取下一帧图像的中心线坐标继续存储至Buff中,每帧图像的存储以“<”区分开来。如果Buff大小满足了要求之后将会把其内容发送至PC端,Buff首字节为Buff大小。PC机接收到数据之后,拆包过程是打包过程的逆向操作。当PC机接收到数据之后首先判断接收的数据大小是否足够,如果不足则说明接收未完成继续返回接收直到满足数据大小。接着先对数据包中符号“<”进行分割,以此识别出的帧个数[17]。之后对于每帧图像的坐标x,y;拆去其中的符号“,”和“;”,得到的每幅图像坐标在PC机界面中显示。

图7 以太网数据收发程序流程图

5 测试结果

打开TX2上位机界面与PC机上位机界面。在TX2界面上配置相机采集参数,设置图像输出大小为640×480(2幅图,分左右2个,单幅图为640×320)、曝光时间为2 ms、PWM输出频率均为140 Hz(即采集帧率为140 fps),相机触发占空比为2 000(50%)。配置完成之后打开相机并将激光器打在平面上,在PC机界面点击连接。此时已经开始了中心线坐标的提取与发送。实验效果如图8所示。

(a)激光线条

(b)TX2系统采集、处理效果图

(c)PC机系统接收、显示效果图8 实验采集、处理、发送结果

图8(a)为线激光条实际效果图。图8(b)为TX2系统界面采集、处理效果。图8(c)为PC机界面接收效果图,在界面上定义一个全黑灰度图,将接收到的坐标点以白色画出,实时采集发送帧率为140 fps,采集处理图像无丢帧失帧现象,发送数据包无丢包现象,稳定性好,满足了设计要求。

6 结论

针对胶体三维信息检测面临的缺失高帧率、采集实时性的问题,设计了一套双目视觉信号采集系统,该采集系统具有4路线结构光采集系统,实现了双目实时信号采集。其中以嵌入式 NVIDIA TX2为核心详细介绍了图像采集、处理以及中心线坐标发送的全过程,结合了小型化硬件以及简便的上位机界面,集成了一套小体积、高效率、方便操作和移动的采集系统。实验测试表明系统稳定性好,精度高,满足了设计要求,为汽车关键部件胶体三维测量做好了充分准备,具有较好的实用价值。

猜你喜欢
PC机双目中心线
基于双目测距的卡尔曼滤波船舶轨迹跟踪
双目视觉运动目标跟踪定位系统的设计
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
VC.NET下实现dsPIC单片机与PC机的通信
排除OLT设备登录故障
基于双目视觉图像的长度测量方法
X线摄影中中心线对DR摄影质量的重要性
基于Meanshift和Hough变换的秧苗行中心线提取
VIVID3彩色超声仪结构原理及维修
基于曲率计算血管中心线特征点的提取方法