• 欢迎来到论文发表网(www.lunwenchina.cn),我们为您提供专业的论文发表咨询和论文发表辅导!
受“清朗”行动影响,原网站QQ被封,新老作者请联系通过新的QQ:189308598。或者电话微信:15295038855

你的位置:论文发表网 >> 论文库 >> 文化论文 >> 详细内容 在线投稿

基于 Matlab 的深度图像采集与处理

热度0票  浏览114次 时间:2020年12月25日 14:47
吴东艳,张凌志,冷爽,韩喜春 / 黑龙江工程学院 电气与信息工程学院摘 要:本文介绍了在 Matlab 开发环境中利用 Kinect 获取彩色图像和深度图像的具体操作步骤,以及利用 Kinect获取深度图像进行骨骼追踪的原理和实现方法。给出了 Kinect 摄像头获取深度信息和人体骨骼信息,将每个骨骼点的三维信息转换成深度图上的二维信息,通过滤波和人体像素分类、部位识别,骨骼跟踪系统的 20 个关节点坐标。
实践证明,这种方法不易受外界环境因素的干扰,能较好地克服部位遮挡问题,从而获得高质量的跟踪图像。
关键词:图像采集;Kinect;Matlab;深度图像;骨骼追踪一、引言Kinect 是一款性价比高的图像传感器,可用于目标跟踪,语音识别,动作识别,捕获彩色图像和深度数据。通过开发算法 Kinect 能推算出人的骨骼结构。基于 Matlab 的深度图像采集与处理给出了在 Matlab 开发环境中利用 Kinect 获取彩色图像和深度图的具体操作步骤;利用 Kinect 深度图像进行骨骼追踪的原理和实现方法[1] 。能较好地克服部位遮挡问
题,获得高质量的跟踪图像。
二、开发平台的构建
软件安装环境需要 Windows7 及以上版本的 x64 操作系统。对于 Kinect2 则需要安装 MATLAB2016a 以上版本,本文采用 MATLAB2018b,接着安装摄像头驱动程序和开发工具。如本文使用罗技摄像头,就安装罗技摄像头驱动程序。
再接着在 MATLAB 集成开发环境 IDE 中选择“附加功能管理器”,再选择“获取硬件支持包”, 在显示的图形界面中,选择 Image Acquisition Toolbox Support Package for OSGeneric Video Interface 和 Kinect for Windows SensorImage Acquisition Toolbox Support Package for KinectFor Windows Sensor 安装,将会同时下载 KinectSDK 进行安装[2-3] 。然后接上 Kinect 电源,插上 USB 接口。在命令行输入 imaqhwinfo,要是以上步骤没问题的话,命令行窗口会显示出 Kinec 和罗技摄像头 struct 信息。Matlab 中打开 app里面的 Image Acquisition,就可以看到 Kinect 和罗技摄像头在菜单选项里面,然后就可以开始 Kinect 彩色和深度图像以及逻辑摄像头彩色图像采集了。使用罗技摄像头的图像采集工具箱用户界面如图 1 所示[4] 。
三、利用图像采集工具箱采集彩色和深度图像
在 MATLAB 主菜单选择应用程序,在应用程序下选择Image Acquisition,进入图像采集工具箱。在 HardwareBrowser 窗口中列出本系统中安装和支持的所有摄像头。其中就有彩色传感器 Kinect V2 Color Sensor(kinect-1) 和深度传感器 Kinect V2 Depth Sensor(kinect-2)。彩色图像有 7 种格式,深度图像有 3 种格式。选择某一种图像格式并双击,则选择了该图像格式进行采集。然后在图像采集和预览窗口中选择采集或预览图像。预览是连续采集图像但不保存。图像可以按帧采集并保存。MATLAB 图像采集工具箱主用户界面如图 1 所示。利用此人机交互界面采集的彩色图像和深度图像如图 2 所示[5] 。
图 2 采集的彩色图像和深度图像
点击 Start Preview 启动图像预览,点击 Stop Preview停止图像预览。点击 Start Acquisition 启动图像采集,点击 Stop Acquisition 停止图像采集。在采集参数设置窗口可以设置如下参数:每次触发采集的帧数,颜色空间,摄像头高低角度,每秒帧数。在采集时可以设置导出数据,文件采用哪种格式保存,图像在显示器上显示的部分。
在信息窗口 Information 中显示正在使用的图像传感器配置的相关信息。在交互日志窗口 Session Log 中操作图像处理工具箱每一步对应的 MATLAB 命令。可以将其整理到自己设计的 MATLAB 命令文件中
[6] 。
图像采集常用命令:
hwInfo = imaqhwinfo('kinect'),识别出系统中两个图像传感器装置。
hwInfo.DeviceInfo(1) 和 hwInfo.DeviceInfo(2) 分 别显示出彩色和深度传感器详细信息。
colorVid = videoinput('kinect',1) 和 depthVid =videoinput('kinect',2) 生成两个视频输入的数据流。
triggerconfig([colorVid depthVid],'manual') 设置为手动触发模式。
colorVid.FramesPerTrigger = 100 和 depthVid.
FramesPerTrigger = 100设置每次触发采集多少帧图像数据。
start([colorVid depthVid]) 和 trigger([colorViddepthVid]) 启动图像采集并记录数据。
[colorFrameData,colorTimeData,colorMetaData] =getdata(colorVid) 和 [depthFrameData,depthTimeData,depthMetaData] = getdata(depthVid) 重复采集图像数据。
stop([colorVid depthVid]) 停止彩色和深度图像采集。
骨骼追踪常用命令:
depthSrc = getselectedsource(depthVid) 从深度装置得到视频对象。
depthSrc.TrackingMode = 'Skeleton' 打开骨骼追踪。
anyPositionsTracked = any(metaDataDepth(95).
IsPositionTracked ~= 0) 和 anySkeletonsTracked =any(metaDataDepth(95).IsSkeletonTracked ~= 0) 从 深 度流检查追踪的骨骼。
trackedSkeletons = find(metaDataDepth(95).
IsSkeletonTracked) 显示那些骨骼被追踪了。
jointCoordinates = metaDataDepth(95).
JointWorldCoordinates(:, :, trackedSkeletons) 和j o i n t I n d i c e s = m e t a D a t a D e p t h ( 9 5 ) .
JointImageIndices(:, :, trackedSkeletons) 用彩色显示关节和关节的坐标
[7] 。
四、骨骼追踪的实现
深度图像对人体进行识别主要包括人体部位的静态识别、对骨骼、关节位置的判定以及人体动作的动态识别等。
Kinect 的骨骼追踪技术是通过处理深度图像建立起人体各个关节的坐标,而 Kinect 的突出功能就是处理深度图像,通过骨骼追踪技术来确定人体的各个部位。深度图像指从观察者角度看,图像所包含信息与场景物体表面距离相关的一种图像。深度图像能直接反映物体表面的三维特征 ,且不受光照、阴影和色度等因素的影响。分析深度图像比较接近 Kinect 的区域,逐点扫描这些深度区域,判断是否是“人体”目标,图 3 所示就是根据深度图像识别出人体的 20 个骨骼点:头部(head)、双肩中央 (shoulder center)、脊柱中段 (spine)、臀部中央 (hip center)、左臀部 (hip 1eft)、右臀部 (hipright)、左手 (hand left)、右手 (hand right)、左腕关节(wrist left)、右腕关节 (wrist right)、左肘关节 (elbowleft)、右肘关节 (elbow right)、左肩 (shoulder left)、右 肩 (shoulder right)、 左 膝 盖 (knee left)、 右 膝 盖(knee right)、左踝关节 (ankle left)、右踝关节 (ankleright)、左脚 (foot left) 和右脚 (foot right) [8-9]。
图 3 深度图像的骨骼追踪图像
Kinec 可以将这 20 个关节位置是通过(x,y,z)三维坐标表示出来,Kinect 通过这些关节的坐标来识别人所做的各种动作。坐标系满足右手螺旋规则,Kinect 处于原点位置,y 轴正向往上延伸 ,x 轴正向往左延伸 ,z 轴则与 Kinect摄像头的方向相同,这个空间被称为骨架空间。深度数据由16 位组成,利用后 3 位信息 (index) 锁定人体目标,将前 13位深度数据统一转换为 8 位的距离信息,并对人体目标和背景做不同的二值处理,即将人物的 8 位深度距离信息 (depthdata) 全部转换为 1,显示为白色,将环境的深度数据转换为0,显示为黑色,实现深度图像的二值化
[10] 。
将 Kinect 的骨骼追踪功能应用于视频监控,只要在侦测视角范围,即使在夜间也可以侦查到是否有人在侦测视角范围内就可以被辨别。Kinect 还可以识别人的动作,如果被监控的对象有可疑动作,将会实时报警,对一些特定的动作作出报警反应。



中国论文网(www.lunwenchina.cn),是一个专门从事期刊推广、论文发表、论文写作指导的机构。本站提供一体化论文发表解决方案:省级论文/国家级论文/核心论文/CN论文。

投稿邮箱:lunwenchina@126.com

在线咨询:189308598(QQ) 

联系电话:15295038855(徐编辑)  

 

上一篇 下一篇
0

联系我们