利用摄像头进行三维模型显示控制的方法

文档序号:6471436阅读:216来源:国知局
专利名称:利用摄像头进行三维模型显示控制的方法
技术领域
本发明属多媒体人机交互技术领域,涉及三维模型显示控制,具体为一种利用摄像 头进行三维模型显示控制的方法,根据摄像头拍摄的用户面部活动影像,将三维模型旋 转到用户希望看到的角度,可应用于网上产品展示、三维模型演示、文件和图片浏览器、 计算机操作系统界面、虚拟现实等场合。
背景技术
在一些著名电脑和电子产品制造商的网站上,常常有其最新产品的三维实体模型展 示,观看者可通过鼠标操作,转动三维模型,观察产品的不同部位,这项技术对在线购 物网站也很有用。目前的三维模型展示方法一般通过鼠标或键盘控制三维模型的旋转和 大小显示,这对于不会用电脑的老年人或手不方便的人来说可能会有困难。另外,在一 些无人看管的演示场合为了防止鼠标丢失可能不会配备鼠标;若采用触摸屏等技术,则 会增加产品成本及维护成本。

发明内容
本发明要解决的问题是现有三维模型的旋转显示离不开用户手的控制,这对不会 操作电脑或手不方便的人,以及在不便用手的状况下,都有困难,本发明针对此提供了 一种利用摄像头进行三维模型显示控制的方法,使用户可以用移动其面部代替鼠标操 作,将三维模型转动到空间任意角度,简单直观。
本发明的技术方案是利用摄像头进行三维模型显示控制的方法,以摄像头作为信 号输入端,确定用户的面部位置,再根据面部位置控制三维模型显示相应的视角画面, 具体步骤为
A. 设定用户标准姿态,取没有人的纯背景画面帧与用户标准姿态的画面帧进行异 或运算,得出用户在摄像头画面中的范围,在该范围中用肤色检测方法,得出用户面部 范围;用矩形框将面部范围框住,即矩形的上、下、左、右4条边分别通过面部范围最 上、最下、最左、最右的像素,找出矩形框中心点位置,设其坐标为(x。,j;。);
B. 对从摄像头获取的第^:帧画面,与纯背景画面进行异或运算,得出用户在摄像 头画面中的范围,用肤色检测方法,得出其面部范围,用矩形框将面部范围框住,找出 矩形框中心点位置,设其坐标为(A,力),定义第A帧画面的面部位移矢量为(血,,办O,其中血4 = X* —X。,C^ = -少0 ;
c.设定面部移动判断的阈值5,由面部位移矢量确定标准、居左、居右、低头、
抬头5种面部位置的状态
|血4|<3且|办」<5,面部位置为标准状态,保持三维模型静止不动;
②l血J^^且ld^l^办J,面部位置为居左或居右状态,控制三维模型向以用户视角
相应能看到更多左/右侧的方向旋转;
@|6&4|2 5且|6^|<|办",或|血"<5且|(^|^5,面部位置为低头或抬头状态,控
制三维模型向以用户视角相应能看到更多下/上侧的方向旋转;
④面部位置由其它状态回到标准状态时,三维模型停止转动。
本发明通过确定面部位置的远近状态,控制三维模型显示相应的视角画面当面部 位置比标准状态更加靠近/远离摄像头时,画面中面部范围的面积比标准状态更大/小, 面部范围的面积通过统计面部范围的像素的数目来计算,设标准状态的面部范围像素数 目为S。,第fc帧画面中的面部范围像素数目为&,设定远近状态判断的阈值f,
^>4+3'为靠近状态,^〈S。-W为远离状态,根据面部位置远近状态,相应将三维
模型縮小或放大显示。
本发明还可进一步确定面部位置的左低头、右低头、左抬头、右抬头状态,控制三 维模型显示相应的视角画面以(X。,凡)为中心,将面部位置可达到的区域按每隔45°进
行划分,如在摄像头画面与用户姿态为非镜像关系下,将摄像头画面中面部位置可达到 的区域,顺时针依次划分为抬头、左抬头、居左、左低头、低头、右低头、居右、右抬 头状态,根据面部位移矢量(血,,办。落在哪一区域,确定面部位置的状态,并根据面部
位置的状态相应将三维模型旋转到用户希望看到的位置。
本发明面部范围的肤色检测在YCbCr空间中进行,根据像素的Cb值和Cr值确定 该像素是否属于面部范围若某像素的Cb值在100至U27之间,&值在138至1』170之 间,则确定该像素属于面部,颈部也可以包含在面部中,还可用露出部分肌肤的手臂代 替面部进行肤色检测并控制三维模型的显示。
三维模型可以匀速旋转,作为进一步的改进,还可在确定面部位置状态的同时,根 据面部位移矢量的模的大小,控制三维模型显示相应的视角画面时的旋转速度以 (x。,y。)为圆心,用至少一圆圈将面部位置可达到的区域进行划分,当面部位移矢量位于 圈内时,三维模型旋转速度为^,当面部位移矢量位于圈外时,三维模型旋转速度为V2,且V,〈l^;以此类推,划分的圆圈数增加时,相应增加不同的三维模型旋转速度。
本发明利用摄像头这种成本低、常见的电脑外设,对摄像头拍摄到的用户面部活动 影像进行处理,提取出用户面部位移矢量,根据该位移矢量对三维模型的显示进行控制, 将三维模型旋转到用户希望看到的角度,使用方便,应用广泛,相比鼠标键盘等设备也 不易被盗。本发明只要用户在摄像头前稍微移动面部就可以控制三维模型的旋转和大 小,不需要动手,是一种非接触的操作方式,符合日常生活中观察物体的经验,用户的 手可以解放出来去做别的事情,例如边观察边记笔记等,提高了效率,本发明的三维模 型控制方式比用鼠标操作更加方便、自然。


图1为本发明确定面部范围的示意图,(a)表示纯背景画面,(b)表示用户在摄像头画面 中的范围,(c)为确定的用户面部范围和中心点。 图2为本发明面部位移矢量示意图。
图3为本发明在摄像头画面与用户姿态为非镜像关系下,由面部位移矢量确定标准、抬 头、低头、居左、居右5种面部位置状态的流程图。
图4为本发明面部位置的远近状态示意图,(a)为标准状态,(b)为靠近状态,(c)为远离 状态。
图5为本发明标准、抬头、左抬头、居左、左低头、低头、右低头、居右、右抬头9种 状态根据面部位移矢量的划分示意图。
图6为本发明标准、抬头、左抬头、居左、左低头、低头、右低头、居右、右抬头9种 状态及三维模型不同旋转速度根据面部位移矢量的划分示意图。
具体实施方式
下面结合附图具体说明本发明方法。
取没有人的纯背景画面帧与有人的画面帧进行异或运算,可以得出人在摄像头画面 中的范围,进一步在该范围中用肤色检测方法,可以得出人面部范围,肤色检测一般在 YCbCr空间中进行,若某像素的Cb值在100到127之间,Cr值在138到170之间,则 确定该像素属于面部,因此颈部也可以包含在面部中。本发明也可用露出部分肌肤的手 臂代替面部进行肤色检测并控制三维模型的显示,这样也可以用手在空中移动来控制三 维模型的转动,丰富用户的控制方式。
首先取一帧标准姿态画面,确定出面部范围,用矩形框将面部范围框住,即矩形的上下左右4条边分别通过面部范围最上最下最左最右边的像素。找出矩形框中心点位置, 设其坐标为(JC。,少。),如图1所示。
同样,对由摄像头获取的第A:帧画面,与纯背景画面进行异或运算,得出人在摄像 头画面中的范围。用肤色检测方法,得出人面部范围,用矩形框将面部范围框住,找出 矩形框中心点位置,设其坐标为(^,h)。则第A帧的面部位移矢量为(血p^4),其中 血,-^-;c。,办A-A-_yfl,图2是摄像头画面中面部位移矢量的示意图,血4向右为正, 一向下为正。
在简单情况下,面部位置有标准、居左、居右、低头、抬头5个状态,以摄像头画 面与用户姿态为非镜像关系为例,由面部位移矢量决定5个状态的过程如图3所示。设 定面部移动判断的阈值^,若|血」<^且|办」<^则为标准状态;若l血」25且 l血,l^c^1,面部位置为居左或居右状态,若血^>0,则为面部位置为居左状态,反之
为居右状态,当为居左状态时,控制三维模型向以用户视角来看能显示更多该三维模型 左侧影像的方向旋转,居右状态的控制同理;若I《^5且I血J〈I一I,或|^|<5且
面部位置为低头或抬头状态,若办4>0,则为低头状态,反之为抬头状态,
当面部位置为低头状态,以用户视角来看控制三维模型向上旋转,以显示更多三维模型 下部的影像,抬头状态的控制同理。通过面部位置居左/右和抬/低头的组合,可以让三 维模型旋转到任意部分正对用户,即等同于从空间任意视角观看三维模型。若用户希望 三维模型在达到某个空间视角时停止转动,只须将面部位置回到标准状态,三维模型即 停止转动。
本发明还可增加面部位置的远近状态。如图4所示,当面部位置比标准状态更加靠 近/远离摄像头时,画面中面部范围的面积比标准状态更大/小。面部范围的面积通过统 计面部范围的像素的数目来计算,面部范围像素的数目用肤色检测方法确定。设标准姿 态画面中的面部范围像素数目为s。,第/fc帧画面中的面部范围像素数目为&,设定远近
状态判断的阈值&, ^>^+^'为靠近状态,&<^。-^'为远离状态。若为靠近状态,
说明用户希望看到三维模型比当前更大的显示效果,则将三维模型放大显示;若为远离 状态,则说明用户希望看到三维模型比当前更小的显示效果,则将三维模型縮小显示。 为达到更进一步的细致控制,面部位置的判断还可以增加左低头、右低头、左抬头、 右抬头4种状态。以(x。,少。)为中心,将面部位置可达到的区域按每隔45°进行划分,在
摄像头画面与用户姿态为非镜像关系下,将摄像头画面中面部位置可达到的区域,顺时针依次划分为抬头、左抬头、居左、左低头、低头、右低头、居右、右抬头状态,根据 面部位移矢量(血4, ^)落在哪一区域,确定面部位置的状态,并根据面部位置的状态相 应将三维模型旋转到用户希望看到的位置,如图5所示。当面部位置为左抬头时,说明 以用户视角来看,希望看到三维模型的左上方的部分,则让三维模型向能显示更多左上 方影像的方向旋转,该旋转方向与水平面成45"角,可以看作水平旋转与垂直旋转的复 合运动。其余面部位置对应的旋转方向依上述原理类推。
进一步还可以根据面部位移矢量的模的大小控制旋转速度,如图6所示,以(x。,少。)
为圆心,用至少一圆圈将面部位置可达到的区域进行划分,当面部位移矢量位于圈内时, 三维模型旋转速度为v,,当面部位移矢量位于圈外时,三维模型旋转速度为v2 ,且v, < v2;
以此类推,划分的圆圈数增加时,相应增加不同的三维模型旋转速度。 采取上述方法,可使三维模型的旋转方向更丰富,控制更自然。 具体实现本发明方法时,以Windows操作系统为例,从摄像头获取视频信号、面部
位移矢量估计都可用Visual €++编程实现,三维模型可用3DS MAX实现。 本发明有如下多种应用
1) 网上产品展示、三维模型演示;
2) 文件和图片浏览器。目前的PDF文件浏览器和图片浏览器也要通过鼠标控制在 屏幕上的手形标记将文件页面或图片进行挪动,以观看文件或图片的不同部分,应用本 发明,若面部位置为居左/右或低/抬头,表示用户希望看到文件页面或图片的更左/右或 更下/上方的部分,则将文件页面或图片向相应方向移动;若面部位置为靠近/远离,表 示用户希望放大/縮小文件页面或图片,则将文件页面或图片放大/缩小显示。这样就可 以实现不用鼠标操作的文件和图片浏览器;
3) 计算机操作系统界面、虚拟现实。
计算机屏幕正向越来越大的方向发展,屏幕大可以显示更多的图标,但如果在一个桌 面上显示过多图标,则不利于迅速找到需要的图标,而且即使屏幕再大,显示的范围也是 有限的。应用本发明,可以实现一个模拟人的视野范围的计算机操作系统图形用户界面。 用户看到的是操作系统桌面的一部分和其上的图标,若面部位置为居左/右或低/抬头, 表示用户希望看到桌面的更左/右或更下/上方的部分及其上的图标,则将桌面向相应方 向移动;若面部位置为靠近/远离,表示用户希望放大/縮小桌面及其上的图标,则将桌 面及图标放大/縮小显示。
应用本发明,也可以实现在虚拟现实场景中的导航。若面部位置为居左/右,表示用户希望在虚拟现实场景中向左/右拐弯或希望看到左/右方的场景;若面部位置为低/抬 头,表示用户希望在虚拟现实场景中向下/上走或希望看到下/上方的场景,控制虚拟现实 中的场景根据面部位置的状态做相应的显示。这样的虚拟现实场景可以应用在电脑游戏 中,用户不用鼠标也可以在游戏场景中移动;也可以与前述模拟人的视野范围的计算机 操作系统结合,将操作系统界面的桌面替换为虚拟现实场景,例如一个居家的场面,实 现更加具有真实感的操作系统界面。
权利要求
1、利用摄像头进行三维模型显示控制的方法,其特征是以摄像头作为信号输入端,确定用户的面部位置,再根据面部位置控制三维模型显示相应的视角画面,具体步骤为A.设定用户标准姿态,取没有人的纯背景画面帧与用户标准姿态的画面帧进行异或运算,得出用户在摄像头画面中的范围,在该范围中用肤色检测方法,得出用户面部范围;用矩形框将面部范围框住,即矩形的上、下、左、右4条边分别通过面部范围最上、最下、最左、最右的像素,找出矩形框中心点位置,设其坐标为(x0,y0);B.对从摄像头获取的第k帧画面,与纯背景画面进行异或运算,得出用户在摄像头画面中的范围,用肤色检测方法,得出其面部范围,用矩形框将面部范围框住,找出矩形框中心点位置,设其坐标为(xk,yk),定义第k帧画面的面部位移矢量为(dxk,dyk),其中dxk=xk-x0,dyk=yk-y0;C.设定面部移动判断的阈值δ,由面部位移矢量确定标准、居左、居右、低头、抬头5种面部位置的状态,控制三维模型显示相应的视角画面①|dxk|<δ且|dyk|<δ,面部位置为标准状态,保持三维模型静止不动;②|dxk|≥δ且|dxk|≥|dyk|,面部位置为居左或居右状态,控制三维模型向以用户视角相应能看到更多左/右侧的方向旋转;③|dxk|≥δ且|dxk|<|dyk|,或|dxk|<δ且|dyk|≥δ,面部位置为低头或抬头状态,控制三维模型向以用户视角相应能看到更多下/上侧的方向旋转;④面部位置由其它状态回到标准状态时,三维模型停止转动。
2、 根据权利要求1所述的利用摄像头进行三维模型显示控制的方法,其特征是确 定面部位置的远近状态,控制三维模型显示相应的视角画面当面部位置比标准状态更 加靠近/远离摄像头时,画面中面部范围的面积比标准状态更大/小,面部范围的面积通 过统计面部范围的像素的数目来计算,设标准状态的面部范围像素数目为 ,第A:帧画 面中的面部范围像素数目为^,设定远近状态判断的阈值5', A〉^+W为靠近状态,W为远离状态,根据面部位置远近状态,相应将三维模型縮小或放大显示。
3、 根据权利要求1或2所述的利用摄像头进行三维模型显示控制的方法,其特征 是确定面部位置的左低头、右低头、左抬头、右抬头状态,控制三维模型显示相应的视 角画面以(x。^。)为中心,将面部位置可达到的区域按每隔45'进行划分,根据面部位移矢量(血^,办J落在哪一区域,确定面部位置的状态,并根据面部位置的状态相应将三 维模型旋转到用户希望看到的位置。
4、 根据权利要求1或2所述的利用摄像头进行三维模型显示控制的方法,其特征是确定面部位置状态的同时,根据面部位移矢量的模的大小,控制三维模型显示相应的视角画面时的旋转速度以(X。,y。)为圆心,用至少一圆圈将面部位置可达到的区域进行 划分,当面部位移矢量位于圈内时,三维模型旋转速度为V,,当面部位移矢量位于圈外 时,三维模型旋转速度为&,且K〈V,;以此类推,划分的圆圈数增加时,相应增加不 同的三维模型旋转速度。
5、 根据权利要求3所述的利用摄像头进行三维模型显示控制的方法,其特征是确定面部位置状态的同时,根据面部位移矢量的模的大小,控制三维模型显示相应的视角画面时的旋转速度以(X。,A)为圆心,用至少一圆圈将面部位置可达到的区域进行划分, 当面部位移矢量位于圈内时,三维模型旋转速度为V,,当面部位移矢量位于圈外时,三 维模型旋转速度为V2,且V,〈V,;以此类推,划分的圆圈数增加时,相应增加不同的三 维模型旋转速度。
6、 根据权利要求1或2所述的利用摄像头进行三维模型显示控制的方法,其特征 是面部范围的肤色检测在YCbCr空间中进行,根据像素的Cb值和Cr值确定该像素是 否属于面部范围若某像素的Cb值在100至U 127之间,Cr值在138至U 170之间,则确 定该像素属于面部,颈部也可以包含在面部中,还可用露出部分肌肤的手臂代替面部进 行肤色检测并控制三维模型的显示;步骤C中三维模型的旋转以速度v匀速进行。
7、 根据权利要求3所述的利用摄像头进行三维模型显示控制的方法,其特征是面 部范围的肤色检测在YCbCr空间中进行,根据像素的Cb值和Cr值确定该像素是否属 于面部范围若某像素的Cb值在100到127之间,Cr值在138到170之间,则确定该 像素属于面部,颈部也可以包含在面部中,还可用露出部分肌肤的手臂代替面部进行肤 色检测并控制三维模型的显示;步骤C中三维模型的旋转以速度v匀速进行。
8、 根据权利要求4所述的利用摄像头进行三维模型显示控制的方法,其特征是面 部范围的肤色检测在YCbCr空间中进行,根据像素的Cb值和Cr值确定该像素是否属 于面部范围若某像素的Cb值在100至lJ 127之间,Cr值在138至lJ 170之间,则确定该 像素属于面部,颈部也可以包含在面部中,还可用露出部分肌肤的手臂代替面部进行肤 色检测并控制三维模型的显示。
9、 根据权利要求5所述的利用摄像头进行三维模型显示控制的方法,其特征是面 部范围的肤色检测在YCbCr空间中进行,根据像素的Cb值和Cr值确定该像素是否属 于面部范围若某像素的Cb值在100到127之间,Cr值在138到170之间,则确定该像素属于面部,颈部也可以包含在面部中,还可用露出部分肌肤的手臂代替面部进行肤 色检测并控制三维模型的显示。
全文摘要
利用摄像头进行三维模型显示控制的方法,利用摄像头这种成本低、常见的电脑外设,对摄像头拍摄到的用户面部活动影像进行处理,提取出用户面部位移矢量,根据该位移矢量对三维模型的显示进行控制,将三维模型旋转到用户希望看到的角度,使用方便,应用广泛,相比鼠标键盘等设备也不易被盗,本发明只要用户在摄像头前稍微移动面部就可以控制三维模型的旋转和大小,不需要动手,是一种非接触的操作方式,符合日常生活中观察物体的经验,用户的手可以解放出来去做别的事情,例如边观察边记笔记等,提高了效率,本发明的三维模型控制方式比用鼠标操作更加方便、自然。
文档编号G06F3/048GK101408800SQ20081023457
公开日2009年4月15日 申请日期2008年11月14日 优先权日2008年11月14日
发明者吴乐南, 阳 陈 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1