王胥钢,陈超然,袁萌,史宇翔
(南京信息工程大学电子与信息工程学院,江苏南京,210044)
随着摄像技术成像质量的提高和处理器算法能力的发展,摄像测量技术也得到了一定程度的发展。图像参数的测量是摄像测量技术中极其重要的一部分,也因此受到了界内的广泛关注。在工业测绘等重要领域中,经常需要对零件进行相关参数的测量。在以往的年代,对于远景参数的测量一直是一个难题,浪费了大量的人力物力。如果有一款可以基于摄像测量技术的装置,相关的测量将会得到简化。于是,该设计通过摄像头进行远景的拍摄。当然,摄像头仅仅只能拍摄画面,而难以实现终端显示以及参数测量的功能。所以本文中提出将摄像头和树莓派、交换机等进行结合,其中树莓派连接摄像头,用于实时显示画面,并使得之后的参数测量具有可行性。交换机用于将两台树莓派处理的画面传输到终端显示器上,可以进行分别和同时的显示。将树莓派、交换机与摄像头的各个特点相结合,达到远程摄像和参数测量的目标。
系统的结构可分为摄像头部分,树莓派传输处理部分,交换机部分,终端显示模块,参数测量模块和电源供电模块。系统总体框架如图1所示。
图1 系统总框架图
摄像头1和摄像头2分别正交固定在进行圆周运动物体的周围两点。固定时,应使得两个摄像头的成像均能完整地拍摄运动的物体。树莓派1和树莓派2与摄像头相连,将摄像头拍摄的画面通过网线传输到交换机上,以此传输到树莓派3(终端树莓派),之后通过追踪模块用红框框出运动的物体,并通过测量模块进行相关参数的测量,并将视频实时地传输到终端显示器上以显示。由于要使得树莓派正常工作,该系统供电模块不能简单采用充电宝,而应使用插座或大功率充电器进行供电。
本项目所使用的树莓派是目前最新的树莓派4b。作为一种迷你的嵌入式计算机,树莓派的功能类似于台式机或者笔记本电脑,因此,可以利用树莓派进行对数据的分析处理,视频传输等功能。不同于普通的计算机面板,树莓派使用TF卡作为其硬盘。
树莓派不仅可以利用于编辑文档、浏览网页等基础功能,还可以用于智能小车、示波器等电子设计。以下是本设计所使用的树莓派的实物图和树莓派扩展接口的定义。
图2 树莓派实物图
图3 树莓派扩展接口引脚
本设计使用的摄像头为奥尼摄像头。在一般的场景中,可以根据实际需要采用不同功能、不同品牌的摄像头。相较OpenMV,aoni摄像头可以实现和树莓派相连接的功能,因此得到本设计的选择。
以下是奥尼摄像头的实物图。
图4 摄像头实物图
以太网交换机是基于以太网进行传输数据的交换机。在本设计中,以太网交换机进行视频在终端上的显示。以太网交换机中,每一端口直接与主机相连,并且工作在全双工方式。同时连通多对端口,交换机使每一对相互通信的主机都能进行无冲突传输数据。对于本设计中以太网交换机和树莓派的连接,直接采用一般的网线。以下时以太网交换机的实物图。
本设计对终端显示器并没有太大的需求,仅仅需要显示器能够显示传输的视频即可。在与树莓派的连接中,本设计采用HDMI转Micro的线进行连接。
系统程序的算法可大体分为两个部分,其一是通过单目测距算法得到圆周运动物体的坐标,其二是使用球拟合算法以及海伦公式对该物体进行运动半径和角度的测量。该两算法均使用python进行撰写。具体程序流程图如图5所示。
图5 以太网交换机实物图
当物体进行圆周运动之后,如若在终端给出是开始测量的信号,则开始进行视频传输。如果一直没有给出测量信号,则一直等待。开始测量之后,树莓派1和树莓派2对两摄像头拍摄的画面进行传输,并将视频信号发送给交换机进行处理,交由第三个树莓派进行分析综合,最后在终端显示。同时,在开始测量之后,该设计进行对运动半径和相关角度的测量。该设计通过OpenCV单目测距算法得到运动时物体的多个点坐标,将坐标传输到球拟合算法进行拟合,可以得到细线的长度。通过海伦公示等数学运算,该设计还可以求出运动是物体相较于摄像头的偏置角度。
图6 具体程序流程图
(1)单目测距算法
单目测距算法的原理为相似三角形原理。
为介绍单目测距原理,不妨通过一个例子进行类比。如图所示,当相机测得图中A4纸距离相机的距离为D=32in,拍下的照片中A4纸的像素宽度为P=192x,纸张宽度W = 1 1.69in,则可以根据焦距的公式计算出焦距F= 1 92*30/11.69。
图7 单目测距原理图
用上述的方法获得该距离D的焦距之后,当摄像头与A4纸的距离发生改变,就可以用相似三角形得到相机距离物体的距离。通过图6的相似关系,不难得出,此时的距离:
根据以上的思路,本设计可以设计出契合本设计的单目测距的算法,根据这一算法,既可以测出正交的两个摄像头到运动物体的距离。
(2)球面拟合算法
球面拟合算法,根据分布在球面上的多个数据点,来拟合圆周运动所形成的球的参数。在本设计中,球的半径即为所求。类似于圆拟合的二维算法,球面拟合算法主要从二维到三维的参数测量。其主要思路如下:
对于任意一个球面,球面上的点 (x0,y0,z0 ) 应满足方程对
图8 球面拟合原理图
为求出其中的半径和物体,不妨构造一个函数
其中,(xi,yi,zi)为物体运动过程中所测得的坐标点。由于得出的这N个点在所要求出的球面上,所以本设计所要求出的R以及 (x0,y0,z0 )应当是使得H最小的数值。将H对于各个参数求偏导,令偏导为0。
之后,进行相应的线性变换
结合以上偏导为0,R可以表示为
在求出R的同时,也求出了圆周运动时物体的轨迹半径,并且得出了实际点的坐标。
(3)海伦公式
海伦公式求角度的具体原理是根据三角形边长和面积的关系进行求解,在任意三角形中,存在如下的关系:
如图所示,设物体在地面上的投影为O点,两摄像头分别为该正方形的斜对角线两点。设O点到正方形区域的三点的长度为x,y,z。由球面拟合算法可以得出坐标,由单目测距算法可以得出物体到两摄像头的距离。根据勾股关系,x,y,z已知。由于摄像头位置为事先固定并且正交,正方形边长为s,斜边长为,左上三个小三角形的面积为s1,s2,s3,周长和的一半为p,即
根据海伦公式,三个三角形的面积和周长存在以下关系:
又在图中存在以下的几何关系:
根据以上关系,可以通过二分法计算出z的长度,本算法中设置误差为e的-8次方,能够在最大程度上保证最后结果的准确性。
得到z的长度之后,再根据三角公式可以计算出角度,即通过以下的三角关系进行计算:
由于角度限制在0°到90°,所以角度存在为一解,即可以得出物体运动时的偏角。
图9 海伦公式详解图
图10 交换机连线实物图
连接在交换机上的的三条网线分别和三支树莓派进行相连,上图中黄色网线连接的树莓派为终端的树莓派,用作最后的信息处理分析。TypeC接口线为电源供电线。
图11 树莓派摄像头连接实物图
上图所示的模块为摄像头与树莓派的连接模块,TypeC接口线为电源供电线。
经过多次的实践,视频传输功能中,可以实时显示圆周运动的物体的画面,并能用红框追踪标记。
表1 角度为0°时的长度测量
使用自动测量时,当角度为0°时,测得长度和实际长度基本一致。
表2 角度为90°时的长度测量
使用自动测量时,当角度为90°时,测得长度和实际长度基本一致。综上所述,对于角度给定时的情况,误差允许范围内,长度测量功能较为完善。
表3 长度为100cm时的角度测量
在误差允许范围内,测得角度和实际角度基本一致。
以上仅仅列出一些特定情况下的长度角度测量,实际上,针对实际需要,该设计可以进行任意长度(在两摄像头成像范围内)以及任意角度的测量。
基于树莓派的对于圆周运动物体的摄像测量系统,一方面可以在远程进行对运动物体的实时拍摄,并将运动画面显示在终端显示器,另一方面可以对圆周运动物体的运动半径以及偏角进行测量。而且该设计成本低,结构稳定。