一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于体感手势控制的脑神经纤维束可视化方法及系统与流程

2021-12-03 23:06:00 来源:中国专利 TAG:


1.本发明涉及人机交互技术领域,尤其是涉及一种基于体感手势控制的脑神经纤维束可视化方法及系统。


背景技术:

2.目前,随着计算机科学的发展,在医学图像方面的应用也日益增加。神经纤维束图像,展示人脑中神经纤维束的分布和走向等,对于研究脑部疾病,神经功能以及心理认知等方面研究有着重要的作用。
3.神经纤维由神经元的轴突与周围的膜鞘结构组成,在中枢神经系统内组成各种传导束。通过非入侵的核磁共振成像技术可以得到弥散加权磁共振图像,通过纤维束追踪算法可以用于构建大脑内复杂的白质纤维结构。一些可视化工具已经提供了展示神经纤维束三维结构的界面,但这些可视化界面的操作功能比较单一,只支持鼠标与键盘操作,不适合三维空间的复杂交互操作,不利于研究人员理解复杂的三维神经纤维束的结构。


技术实现要素:

4.为解决现有技术的不足,通过体感设备对人的手势进行检测,以及定义手势得到对应的指令,从而脱离接触式的输入设备,实现用手势对三维图像进行复杂操控的目的,本发明采用如下的技术方案:
5.一种基于体感手势控制的脑神经纤维束可视化方法,包括如下步骤:
6.s1,加载神经纤维束图像数据,并进行渲染,将神经纤维束以三维图像形式展示;
7.s2,获取手部图像的深度信息和颜色信息,识别手部位置,获得手部二值图像;
8.s3,根据手部二值图像,提取手部特征,并识别手势类别,基于手部图像的轮廓信息和深度信息,计算手部中心点和/或指尖的位置;
9.s4,根据上一帧的手势类别,判断手势是否切换,如果当前手势类别与上一帧手势类别相同,则通过手部中心点和/或指尖的位置,计算两个手部之间的移动距离和角度,如果不同,则将当前手势类别作为对应的控制操作的开始,初始化移动距离和角度值;
10.s5,根据手势的类别和状态,进行控制操作,控制操作包括如下步骤:
11.s51,单神经纤维束选择操作:手势类别为单手一指,根据指尖的位置,对三维图像上对应位置的单神经纤维束进行突显,同时将未选中的神经纤维束进行隐藏或弱化,在指尖移开选中的单神经纤维束时取消突显,同时恢复未选中神经纤维束的状态;当手势类别由单手一指转为入列手势类别时,突显的单神经纤维束,被加入选择列表,如果该位置的单神经纤维束已经存在于选择列表中,则将其移除,相较于鼠标、键盘查看和选取复杂的三维神经纤维束,更为灵活和方便;
12.s52,多神经纤维束选择操作:手势类别为单手两指时,根据两指指尖的位置,对三维图像上位于两个指尖位置之间的神经纤维束簇进行突显,同时将未选中的神经纤维束簇进行隐藏或弱化,在两指恢复原位时取消突显,同时恢复未选中神经纤维束簇的状态;当手
势类别由单手两指转为入列手势类别时,突显的神经纤维束簇,被加入选择列表,如果该位置的神经纤维束簇已经存在于选择列表中,则将其移除,相较于鼠标、键盘查看和选取复杂的三维神经纤维束簇,更为灵活和方便;
13.s53,旋转平移操作:手势类别为单手手掌,当手部中心位置相对不变,而指尖移动时,进行旋转操作,将指尖相对手部中心移动的角度和方向,对应三维图像旋转的角度和方向;当手部中心与指尖移动相同距离,进行平移操作,将三维图像向对应方向平移对应距离;
14.s54,缩放进退操作:手势类别为双手手掌时,当双手手部中心在水平和/或垂直方向上互相靠近或远离,进行缩放操作,双手互相靠近时,根据手部中心的坐标在三维图像中的对应位置,对三维图像进行缩小,双手互相远离时,根据手部中心的坐标在三维图像中的对应位置,对三维图像进行放大;当双手手部中心在前后方向上,向后或向前移动时,进行进退操作,双手向后移动,手部中心对应的三维图像的深度向前进,双手向前移动,手部中心对应的三维图像的深度向后退,相较于鼠标、键盘对复杂三维神经纤维束的操作,提供了更便捷的纵深度操作,通常鼠标选中三维图向上的一个平面点作为基准,滚动滚轮进行缩放,如果要进行纵深操作,需要配合键盘先进行深度的调整,而本发明中通过手部连贯的动作便能达到操作要求,且步骤s53或s54中的两项操作可以在同一个动作中一气呵成,例如:缩放进退操作,双手分开的过程中向前移动双手,此时三维图像达到了边放大边后退的效果;
15.s55,退出当前操作并返回s4:单手或双手的手势类别转为第一退出手势类别;
16.s56,退出体感手势控制操作并返回s1:单手或双手的手势类别转为第二退出手势类别。
17.进一步地,所述s1中,以二进制形式读入神经纤维束图像数据,按字节解析出图像的头部信息以及内容数据,将每个神经纤维作为一个对象进行渲染。
18.进一步地,所述s2中,获取的手势图像为rgb

d图像,判断每个像素点上的rgb颜色值是否在肤色阈值内,以及深度值d是否在图像深度阈值内,将rgb颜色值和深度值d,均在两者阈值范围内的点,作为手部皮肤点,为手部皮肤点的rgb颜色值设置第一颜色值,其余点的rgb颜色值设置不同的第二颜色值,获得二值化的手部图像。
19.进一步地,所述rgb颜色值的判断,是将手势图像从rgb颜色空间转换到ycrcb颜色空间,在ycrcb颜色空间内,皮肤颜色的分布近似于一个椭圆,判断每一个像素点的(cr,cb)是否在肤色椭圆内,其中y表示亮度,cr表示光源中红色分量,cb表示光源中的蓝色分量,将肤色椭圆内的像素点作为手部皮肤点。
20.进一步地,所述s3中,对于二值图像,通过方向梯度直方图,提取手部图像的特征,使用svm模型作为分类器,得到当前手势属于不同类别的概率,选取概率最大的类别作为识别到的当前手势的类别,基于图像的轮廓信息和深度信息进行凸性检测,通过寻找离手部中心最远的点,计算出指尖的位置。
21.进一步地,所述凸性检测,是对图像加入深度信息,得到二值图像后,寻找二值图像中的手掌轮廓,计算手掌轮廓内的重心,通过重心到轮廓边缘的距离,得到距离重心最远的点,其中图像坐标位置在上的为指尖。
22.进一步地,所述s4中,根据前后两帧的手部中心点和/或指尖,计算两个手势之间
的移动距离和角度,对于前后两帧的相同点p1(x1,y1,z1)和p2(x2,y2,z2)计算移动距离:
[0023][0024]
其中,x、y、z分别表示图像的横坐标、纵坐标和深度信息,通过计算两个点之间的连线与水平轴的夹角得到两个点之间角度:
[0025][0026]
进一步地,所述s5中,如果当前的手势类别为一个控制操作的开始,则此时该手势的中心点和/或指尖位置对应的神经纤维束图像的中心;否则,以前一帧手势的图像空间坐标为基准,根据位移信息计算当前手势位置。
[0027]
进一步地,所述s5中,还包括s57,手势类别为双手手掌时,进行扭曲操作,以双手手部中心的连线为参考线,双手在参考线垂直面上,逆向移动,进行拉伸扭曲操作,双手以参考线中点为圆心,同向旋转,进行旋转扭曲操作,为手部中心的坐标,在三维图像中的对应位置设置控制范围,对控制范围内的三维图像进行扭曲操作,当手势类别转为第一退出手势类别时,退出当前操作,并使扭曲图像复位,从而更好的观察单神经纤维束与神经纤维束簇之间,神经纤维束簇与神经纤维束簇之间的层次关系,克服了鼠标或键盘无法进行扭曲操作观察的问题;同时,该操作还能与s53的旋转操作与s54的进退操作配合进行,从而在三维图像的指定深度上,从侧面观察到纤维形成的线性立体的扭曲状态。
[0028]
一种基于体感手势控制的脑神经纤维束可视化系统,包括体感设备、计算机和显示器,所述体感设备是深度相机,所述计算机包括体感设备接口模块、手势识别控制模块、后端服务器、可视化界面的前端模块,所述手势识别控制模块,包括手势分离模块、手势识别模块、手势控制模块;
[0029]
所述深度相机,用于获取图像的深度信息和颜色信息;
[0030]
所述手势分离模块,通过体感设备接口模块获取图像信息后,根据手部二值图像,提取手部特征;
[0031]
所述手势识别模块,用于识别手势类别,基于手部图像的轮廓信息和深度信息,计算手部中心点和/或指尖的位置;根据上一帧的手势类别,判断手势是否切换,如果当前手势类别与上一帧手势类别相同,则通过手部中心点和/或指尖的位置,计算两个手部之间的移动距离和角度,如果不同,则将当前手势类别作为对应的控制操作的开始,初始化移动距离和角度值;
[0032]
所述手势控制模块,根据手势的类别和状态,从配置文件中获取对应的控制操作,并根据配置文件,在神经纤维束图像空间内执行对应的控制操作;以手势类别出现时的坐标,作为该手势类别的起始位置,若该手势类别在一定时间阈值内位移小于一定位移阈值则将此位置作为手势类别的结束位置,在此过程中持续计算得到的移动距离以及角度,转换为神经纤维束图像空间内的距离和角度;
[0033]
所述可视化界面的前端模块,用于加载神经纤维束图像数据,并进行渲染,将神经纤维束以三维图像形式展示在显示器上。
[0034]
本发明的优势和有益效果在于:
[0035]
本发明实现了非接触的三维手势控制,用手势操作完全取代了鼠标的控制,提供了沉浸式的体验,解决了鼠标和键盘不易对三维纤维束进行复杂交互操作的问题。本发明
仅使用深度相机获取手势信息,不需要额外的穿戴式设备,就能够实现精确当手势识别和控制操作。本发现实现了选择、旋转、缩放等操作,有助于用户多方位多角度分析理解神经纤维束图像,提高了对神经纤维束图像分析的效率。
附图说明
[0036]
图1为本发明的结构示意图。
[0037]
图2是本发明的方法流程图。
[0038]
图3为本发明中交互手势示意图。
[0039]
图4为本发明中抓取前的多纤维束三维图。
[0040]
图5为本发明中抓取中的多纤维束三维图。
具体实施方式
[0041]
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
[0042]
如图1所示,基于手势控制的可视化工具的系统硬件,包括体感设备、计算机和显示器,体感设备采用azure kinect深度相机,计算机采用windows 10操作系统的计算机,设有可视化程序,可视化程序包括体感设备接口程序、手势识别控制程序、后端服务器、可视化界面的前端程序。可视化程序启动后,可视化界面的前端程序也随之启动,用户可以通过与可视化界面的前端程序连接的显示器,查看、选择需要可视化的图像文件,并通过鼠标和键盘对屏幕上显示的图像进行操作,也可以进入体感模式来对图像进行操作。进入体感模式后,通过深度相机捕捉到的用户手势,经体感设备接口程序,进入手势识别控制程序,该程序包括手势分离模块、手势识别模块、手势控制模块,用于识别手势类别,分析手势变化,并匹配到相应的图像操作,经可视化界面的前端程序,在显示器上展示出来。
[0043]
azure kinect深度相机,用于捕获rgb

d图像并传输到计算机;
[0044]
手势分离模块,用于将手部与图像背景分离;采集用户的图像,获得图像中的颜色信息和深度信息,用于手部捕捉。手势为双手裸手手势,需位于体感交互设备的感应区域内。判断获得的图像内,每个像素点上的颜色值是否在肤色阈值内,以及深度值是否在靠近摄像头的阈值范围内。将颜色值以及深度值在阈值范围内的点看作是皮肤,将被认为是皮肤的点的颜色值设为255,其余点的颜色值设为0,获得二值化的手部图像。
[0045]
手势识别模块,利用方向梯度直方图提取和表示图像的特征,使用svm模型作为分类器,得到当前手势属于不同类别的概率。选取概率最大的类别作为识别到的当前手势的类别。如果当前手势为指尖伸出,基于图像的轮廓信息和深度信息进行凸性检测,寻找离中心最远的点,计算出指尖的位置。
[0046]
手势控制模块,用于接受手势信息,对神经纤维束图像进行手势对应的操作;根据设备识别的用户的手势信息,包括手势类别,手势对应的操作类别等,从设置文件中获取对应的系统操作,根据设置文件执行对应的应用操作。
[0047]
可视化模块,基于三维可视化工具,如vtk、itk等,用于实现对神经纤维束图像的三维可视化。加载并解析出神将纤维束图像数据,将每一根神经纤维作为单独对象渲染,以实现对单根以及多根神经纤维的交互操作。
[0048]
如图2所示,基于体感手势控制的脑神经纤维束可视化方法,包括以下步骤:
[0049]
步骤一、加载神经纤维束图像数据,利用webgl以及three.js库对纤维束图像进行渲染,将图像数据以三维图像形式展示出来,本步骤为常规技术。用户可以选择通过鼠标和键盘对屏幕上显示的图像进行操作,也可以进入体感模式来操作。
[0050]
具体地,以二进制形式读入神经纤维束图像文件,按字节解析出图像的header信息以及图像数据,将每个神经纤维作为一个对象渲染出来,以实现对于单根和多根纤维束的交互操作。
[0051]
原始图像文件是一个二进制文件,包括header部分和body部分,header内容包括纤维束个数、维度、性质、header所占字节数等,通过按字节读取二进制数据,并进行对应数据类型转换,就可以知道从第几个字节开始是图像原始数据,图像中包括的纤维束个数等。body部分是所有的图像数据,包括每个纤维束上点的个数以及坐标。例如,前1000个字节是header,第1001

1004个字节代表第一个纤维束内点的数量。
[0052]
这样操作之后,得到的是一个前端程序可以直接使用的图像数组。
[0053]
步骤二、进入体感模式之后,进入交互手势识别程序。azure kinect深度相机采集用户的图像,根据图像中的深度信息和颜色信息,识别手部位置,获得手部的二值图像。
[0054]
具体地,判断获得的rgb

d图像内,每个像素点上的rgb颜色值是否在肤色阈值内,以及深度值d是否在靠近摄像头的阈值范围内。将图像从rgb颜色空间转换到ycrcb颜色空间,在ycrcb颜色空间内,皮肤颜色的分布近似于一个椭圆。判断每一个像素点的(cr,cb)是否在肤色椭圆内。将颜色值以及深度值在阈值范围内的点看作是皮肤的一个点,将被认为是皮肤的点的rgb颜色值设为255,其余点的颜色值设为0,获得二值化的手部图像。
[0055]
首先选择深度值最大的联通区域,在此区域判断皮肤颜色值。
[0056]
ycbcr颜色空间是一种常用的肤色检测的色彩模型,其中y代表亮度,cr代表光源中红色分量,cb代表光源中的蓝色分量。经过统计如果将皮肤信息映射到ycrcb,在crcb二维空间中皮肤像素点近似成一个椭圆分布。
[0057]
rgb到ycrcb的转换:
[0058]
y=0.299r 0.287g 0.11b
[0059]
cr=r

y
[0060]
cb=b

y
[0061]
肤色检测算法:
[0062]
r>95and g>40and b>20and r>g and r>b and|r

g|>15and a>15and cr>135and cb>85and y>80and
[0063]
cr<=(1.5862*cb) 20and
[0064]
cr>=(0.3448*cb) 76.2069and
[0065]
cr>=(

4.5652*cb) 234.5652and
[0066]
cr>=(

1.15*cb) 301.75and
[0067]
cr>=(

2.2857*cb) 432.85
[0068]
a表示不透明度。
[0069]
步骤三、根据得到的二值图像,提取出图像中的手部特征,并识别手势类别。手势类别包括双手手掌、单手手掌、单手食指、单手拇指与食指、拳头或者其他手势。
[0070]
具体地,利用方向梯度直方图提取和表示图像的特征,使用svm模型作为分类器,得到当前手势属于不同类别的概率,选取概率最大的类别作为识别到的当前手势的类别,基于图像的轮廓信息和深度信息进行凸性检测,寻找离中心最远的点,计算出指尖的位置。
[0071]
凸性检测,是经过之前的阈值操作,得到一个二值图片,寻找图片中的手掌轮廓,然后计算轮廓内的重心,列举重心到各个边缘的距离,距离重心最远的就是指尖。单从轮廓来看,可能会有多个边缘点,比如手腕边缘,其中图像坐标位置在上的为指尖。
[0072]
步骤四、根据上一帧的手势,判断手势切换。
[0073]
具体地,判断当前手势类别与上一帧图像内手势是否相同,如果相同,计算两个手势之间的移动距离和角度。对于任意两点p1(x1,y1,z1),p2(x2,y2,z2)之间的距离,可以通过公式计算得到:
[0074][0075]
其中,x、y、z分别表示图像的横坐标、纵坐标和深度信息,对于两个点之间的角度,可以通过计算两个点之间的连线与水平轴的夹角得到:
[0076][0077]
根据公式计算当前帧与上一帧中手部中心点,或指尖的移动距离和角度。
[0078]
例如:一个指尖的位置从(0,1,0)移动到了(1,0,0),对应实际情况,可能是食指向上变为食指向右侧,移动距离是此时得到的角度θ是顺时针的45
°

[0079]
如果当前手势与上一帧的不同,则认为当前手势为对应的操作的开始,距离和角度值为零。
[0080]
步骤五、根据手势的类别和状态,执行对应的控制操作,展示到显示屏上。
[0081]
在体感手势控制程序中,以识别到的手部出现在体感设备范围内,作为控制程序的开始,以控制手势出现的坐标为起始位置,以控制手势在某一微小位置范围内停留一段时间作为控制手势的结束位置。起始位置和结束位置之间的位移、角度等,作为对应操作在神经纤维束图像上的对应操作位移和角度。
[0082]
具体地,将计算得到的移动距离以及角度,转换为神经纤维束图像空间内的距离和角度。如果当前的手势为一个操作的开始,认为此时该手势的中心点或指尖位置对应着可视化程序显示界面的中心;否则,以前一帧手势的图像空间坐标为基准,根据位移信息计算当前手势位置。
[0083]
将当前手势的所有信息,包括手势类别,手势对应的操作类别,手势位置,与上一帧相对的位移和角度等,发送给可视化程序。
[0084]
从操作配置文件中获得对应的操作状态,并执行对应的操作,如表1和图3所示。
[0085]
表1
[0086][0087]
可视化程序接收到手势信息,根据设置文件执行对应的应用操作。根据手势信息对图像进行操作的具体方法如下:
[0088]
手势为单手食指时,进入单纤维束选择模式,根据食指指尖的位置,对三维图像上对应位置的纤维束进行高亮,同时将未选中纤维束设为透明或半透明,并在指尖移动离开该神经纤维束附近时取消高亮,同时恢复未选中纤维束的透明度。当手势由单手食指转为单手手掌,食指对应位置高亮的纤维束被加入选择列表里,如果该位置的纤维束已经存在于选择列表里,则将其从选择列表中移除。当手势转为握拳时,结束当前模式。
[0089]
手势为单手拇指与食指时,进入多纤维束选择模式,根据拇指与食指指尖的位置,对三维图像上位于两个指尖位置之间的纤维束簇进行高亮,同时将未选中的纤维束设为透明或半透明,并在拇指与食指并拢或恢复原位时,取消之前被选中的或增加的纤维束簇,同时恢复未选中纤维束的透明度。当手势转为手掌,高亮的纤维束簇被加入选择列表里,如果该位置的纤维束已经存在于选择列表里,则将其从选择列表中移除。当手势转为握拳时,结束当前模式。
[0090]
手势为单手手掌时,进入旋转平移操作模式,根据手部移动的距离和角度进行旋转,当手掌位置相对不变,而手指移动时,进入旋转模式,将手指相对手掌移动的角度和方向,对应图像旋转的角度和方向。当手掌与手指移动相同距离,进入图像平移模式,将图像向对应方向平移对应距离。当手势转为握拳时,结束当前模式。
[0091]
手势为双手手掌时,进入缩放进退模式。根据双手手掌移动的相对位置进行缩放,当双手手掌在水平和/或垂直方向上互相靠近或远离,进入缩放模式,双手手掌互相靠近时,根据手掌的坐标在图像中的对应位置,对图像进行三维缩小,双手手掌互相远离时,根据手掌的坐标在图像中的对应位置,对图像进行三维放大。当双手掌在前后方向上向前或向后移动时,进入进退模式,双手掌向前,对应三维图像的深度向后退,双手掌向后移动,三维图像的深度向前进。
[0092]
手势为单手或者双手握拳时,退出正在进行的操作模式,直到有新的控制手势出现。
[0093]
手势为双手合掌时,退出体感控制模式,转为鼠标操作模式。
[0094]
另一个实例中,手势类别为双手手掌时,进行扭曲操作,以双手手部中心的连线为参考线,双手在参考线垂直面上,逆向移动,进行拉伸扭曲操作,双手以参考线中点为圆心,同向旋转,进行旋转扭曲操作,为手部中心的坐标,在三维图像中的对应位置设置控制范围,对控制范围内的三维图像进行扭曲操作,当手势类别转为第一退出手势类别时,退出当前操作,并使扭曲图像复位,从而更好的观察单神经纤维束与神经纤维束簇之间,神经纤维束簇与神经纤维束簇之间的层次关系,克服了鼠标或键盘无法进行扭曲操作观察的问题;同时,该操作还能与旋转操作与进退操作配合进行,从而在三维图像的指定深度上,从侧面观察到纤维形成的线性立体的扭曲状态。
[0095]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献