基于Kinect的曲线运动轨迹和速度测量
2021-11-04陈海云
陈海云
(浙江师范大学物理与电子信息工程学院,浙江 金华 321004)
抛体运动、圆周运动和单摆等曲线运动的教学是高中物理教学的难点之一,常常缺乏一种有效的实验手段对物体的运动轨迹和速度变化进行直观展示和定量测量.以平抛运动为例,已有的实验方法主要是利用铁质小球在磁性竖板上描绘轨迹,[1]或用蘸颜料的小球在竖直白板上记录轨迹,[2]通过对比或描点探究水平方向和竖直方向的运动规律.[2,3]这些演示实验方法虽然简单实用,但无法进行定量研究,且不易推广到其它曲线运动性质的探究.
Kinect是一款体感周边外设产品,由微软为Xbox360研发,其结构如图1所示,彩色CMOS摄像头采集彩色图像,红外发射器和红外CMOS摄像头采集深度图像,分辨率均为640×480像素.Kinect传感器每秒可以采集30帧图像,有效采集范围为0.8~4 m.[4,5]本文将 Kinect传感器应用于物体运动轨迹和速度测量,由Kinect传感器以一定时间间隔记录物体运动过程图像,通过图像处理获取不同时间点目标物体的质心坐标,并计算得到物体在正交x、y方向上的速度分量,从而实现对物体运动轨迹记录和速度测量.
图1 Kinect传感器
1 测量原理
Kinect传感器测量模型如图2所示,水平视角为57°,竖直视角为43°.实验流程如图3所示,首先划分由Kinect获取的彩色图片中的目标区域,使目标物体所在区域像素点突出.为忽略光照影响,将图片由RGB色彩空间转换至HSV色彩空间,因不需要确切的饱和度与明度数据,仅需保留其中的色相分量.通过阈值处理获得目标物体区域图片,并通过中值滤波进行平滑处理.得到目标区域后利用Canny边缘检测算法确定目标轮廓,[6]进而通过计算图像矩和中心矩确定图像质心所在的像素点位置,即质心坐标,由质心坐标经过换算得到质心在深度图像中的相应坐标,并通过对应像素值换算到目标物体与Kinect传感器之间的真实空间距离L
图2 测量模型
图3 实验流程
其中A为R值分量,式(1)由实验测量标定,距离值的单位为厘米(cm).根据已得目标物体的像素坐标x、y和z方向真实距离L计算得到目标物体在x、y方向的真实距离Lx、Ly
其中(320,240)为测量模型坐标原点对应的像素坐标.将相邻时间点测量得到的Lx、Ly与时间间隔Δt相结合,可得物体在x、y方向上的速度分量值
2 实验结果与分析
实验以摆动的网球为目标物体,实验中阈值范围设定为60~90.Kinect获取的原始彩色图像和深度图像如图4和图5所示,图6为将原始彩色图像进行阈值处理和滤波后得到的滤波图,将滤波图中网球区域利用Canny算法进行质心计算后获得如图7所示的质心图,图中(288,248)为网球质心的像素坐标.Kinect获取相邻两组图像的时间间隔为32 ms,网球从右侧静止释放开始测量,至左侧最高点为止,共获取25组原始彩色图像和深度图像,根据(1)~(3)式确定各时刻物体的实际位置,从而得到物体运动轨迹和x、y方向速度分量随时间的变化曲线.
图4 原始彩色图像
图5 原始深度图像
图6 滤波图
图7 质心图
由数据处理可得,目标物体的z轴距离为123.2 cm,即网球在与Kinect传感器相机平面平行的x-y平面内运动,距离相机平面123.2 cm.物体的运动轨迹如图8所示,起始位置为(18.64,11.24).图9所示为x、y方向速度分量随时间变化曲线,物体由静止释放向左侧摆动,速度的x分量为负值,先增大后减小,运动到最低点时x分量达到最大值,此后逐渐减小至左侧最高点时为0.速度的y分量起始为负值,先增大后减小,最低点时为0,过最低点后向上运动,速度为正值,同样先增大后减小,到达左侧最高点时为0.速度随时间变化曲线很好地反映了速度x、y分量的变化规律,有助于向学生直观并定量地展示摆动物体的运动学特性.
图8 物体运动轨迹
图9 物体运动速度
3 结论
本文介绍了一种基于Kinect传感器的曲线运动物体轨迹和速度测量方法,由Kinect传感器每隔一定时间摄取运动物体的一幅彩色图像和一幅深度图像,通过阈值法和中值滤波获取目标区域,并利用Canny算法确定网球的轮廓,通过彩色图中的质心坐标与深度图中的质心坐标对应,获得运动物体的质心坐标信息,最后通过计算得到物体的位置和速度信息.该方法可实时检测和直观演示多种类型物体运动的轨迹和速度变化,并可进一步借助互联网实现远距离控制在线实验教学,从而有效辅助高中物理教学.