发明名称 一种激光笔交互方法
摘要 本发明公开了一种激光笔交互方法,解决现有技术在激光笔交互系统中背景切换时的激光点误检、坐标映射误差大和交互命令易误判问题。交互方法由自适应背景切换的激光点检测方法、非线性坐标映射方法和分区域的交互方法组成。其中通过一种在线背景字典创建与更新方法,以及一种稀疏重构方法以实时鲁棒的检测出运动激光点,可以很好的解决交互过程中幻灯片换页或绘图等功能造成的背景突变问题;通过一种神经网络学模型训练出坐标映射系数提高了坐标映射的精度;并通过一种将投影屏幕划分成绘图交互区域和控制交互区域的方法解决了交互命令易误判的问题。本发明可以实时鲁棒的完成激光笔交互功能,可广泛应用于会议、演讲、教学等多媒体演示系统中。
申请公布号 CN104615283A 申请公布日期 2015.05.13
申请号 CN201510047988.1 申请日期 2015.01.30
申请人 大连理工大学 发明人 金明录;王志华;郝育闻
分类号 G06F3/0354(2013.01)I;G06F3/0487(2013.01)I 主分类号 G06F3/0354(2013.01)I
代理机构 大连理工大学专利中心 21200 代理人 李宝元;梅洪玉
主权项 一种激光笔交互方法,其特征在于,激光笔交互方法所用的激光笔交互系统包括计算机、投影仪系统、摄像头和激光笔,计算机通过VGA与投影仪连接将计算机内容投影到投影屏幕,摄像头通过USB将捕捉投影仪图像传给计算机;该激光笔交互方法包括自适应背景切换的激光点检测方法、非线性坐标映射方法和分区域的激光点行为分析方法完成激光笔交互功能;所述的自适应背景切换的激光点检测方法,通过在线背景字典创建与更新方法以及稀疏重构方法实时鲁棒的检测出运动激光点,步骤如下:令摄像头采集的图像为Y,将其每一列连接在一起组成列向量y;其中,不包含激光点的图像称为背景图像,仅包含激光点的图像称为前景图像,y由背景图像和前景图像线性表示:y=y<sub>B</sub>+y<sub>F</sub>             (1)其中y∈R<sup>n×1</sup>、y<sub>B</sub>∈R<sup>n×1</sup>和y<sub>F</sub>∈R<sup>n×1</sup>分别为采集图像列向量、背景图像列向量和前景图像列向量,n是图像的像素点数,R<sup>n×1</sup>表示n维的实数列向量;通过训练和更新得到背景图像y<sub>B</sub>,利用摄像头采集图像y,通过式(1)得到前景图像y<sub>F</sub>,即得激光点位置;在激光笔交互过程中幻灯片换页或幻灯片动画使得背景突变,应对背景突变,将不断变化的背景组成背景字典D∈R<sup>n×K</sup>,其中D的每一列表示一种背景,K是调节字典包含背景数量的参数,某时刻的背景图像通过背景字典D稀疏表示:y<sub>B</sub>=Dx         (2)其中x=[0,...,0,x<sub>i</sub>,0,...0]∈R<sup>K×1</sup>为稀疏向量,在理想情况下仅有一项非零值;为了增加背景字典D对噪声的鲁棒性,利用累积平均方法对背景字典D按列创建:<img file="FDA0000664312640000011.GIF" wi="1322" he="154" />其中D<sub>i</sub>为字典D的每一列,K为字典的列数,即背景的个数,α为背景更新速率;在检测激光点前景图像时,首先求解x以决定当前的背景图像,然后通过式(2)解出y<sub>B</sub>,最后通过式(1)求出激光点前景y<sub>F</sub>;前景激光点相对于背景图像是非常稀疏的向量,仅在激光点位置处非零,y<sub>F</sub>是稀疏向量,背景的稀疏向量x也是稀疏的,根据压缩感知中稀疏重构方法得出x:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>x</mi><mo>=</mo><mi>arg</mi><munder><mi>min</mi><mi>x</mi></munder><msub><mrow><mo>|</mo><mo>|</mo><mi>y</mi><mo>-</mo><mi>Dx</mi><mo>|</mo><mo>|</mo></mrow><mn>0</mn></msub><mo>+</mo><mi>&lambda;</mi><msub><mrow><mo>|</mo><mo>|</mo><mi>x</mi><mo>|</mo><mo>|</mo></mrow><mn>0</mn></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664312640000023.GIF" wi="1354" he="110" /></maths>其中λ为调谐因子,||·||<sub>0</sub>代表l<sub>0</sub>范数,求解l<sub>0</sub>范数为非凸问题,激光点是非常稀疏的,式(4)利用下式近似得到:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>x</mi><mo>=</mo><mi>arg</mi><munder><mi>min</mi><mi>x</mi></munder><msub><mrow><mo>|</mo><mo>|</mo><mi>y</mi><mo>-</mo><mi>Dx</mi><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msub><mo>+</mo><mi>&lambda;</mi><msub><mrow><mo>|</mo><mo>|</mo><mi>x</mi><mo>|</mo><mo>|</mo></mrow><mn>1</mn></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664312640000024.GIF" wi="1340" he="105" /></maths>其中||·||<sub>1</sub>,||·||<sub>2</sub>分别为l<sub>1</sub>和l<sub>2</sub>范数;由式(5)、式(2)和式(1)解出激光点前景y<sub>F</sub>;在交互过程中,幻灯片换页或放映动画出现新的背景,导致解出的激光点前景y<sub>F</sub>不是稀疏解,反之则解出的y<sub>F</sub>为稀疏解;通过观测y<sub>F</sub>的稀疏性控制字典的更新,当y<sub>F</sub>非稀疏解时说明出现了新的背景,将新的背景立即加入到背景字典中,当y<sub>F</sub>是稀疏解时通过累积平均的方式更新字典来抑制噪声,公式如下:<img file="FDA0000664312640000021.GIF" wi="1429" he="149" />其中k=mod(i,K)+1,mod为取模操作,Th为控制前景激光点稀疏性的参数,y<sub>i</sub>为采集到的第i帧图像;将解出的y<sub>F</sub>转换成二维图像Y<sub>F</sub>,激光点并不是单一像素点,采用坐标平均的方式得到激光点的坐标(u,v):<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><mi>u</mi><mo>=</mo><mfrac><mn>1</mn><mi>N</mi></mfrac><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>Y</mi><mi>Fxi</mi></msub></mtd></mtr><mtr><mtd><mi>v</mi><mo>=</mo><mfrac><mn>1</mn><mi>N</mi></mfrac><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>Y</mi><mi>Fyi</mi></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664312640000022.GIF" wi="1172" he="277" /></maths>其中N为Y<sub>F</sub>中非零值的个数,Y<sub>Fxi</sub>和Y<sub>Fyi</sub>分别为前景激光点二维图像非零值的横纵坐标;所述的非线性坐标映射方法,通过神经网络学习模型训练出摄像头采集图像坐标与计算机坐标的映射关系,步骤如下:得到摄像头采集到图像中激光点的坐标(u,v)后,将该坐标映射到计算机中的坐标完成交互;该系统摄像头摆放位置非固定,投影过程或者摄像头采集图像有可能存在非线性畸变,需要非线性的模型完成坐标映射模块;通过神经网络学习一个模型完成非线性映射,首先要对系统输入进行归一化,假定输入为(u,v),采集图像y的分辨率为pic<sub>width</sub>×pic<sub>height</sub>,归一化方程为:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msup><mi>u</mi><mo>&prime;</mo></msup><mo>=</mo><mfrac><mi>u</mi><msub><mi>pic</mi><mi>width</mi></msub></mfrac></mtd></mtr><mtr><mtd><msup><mi>v</mi><mo>&prime;</mo></msup><mo>=</mo><mfrac><mi>v</mi><msub><mi>pic</mi><mi>height</mi></msub></mfrac></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664312640000031.GIF" wi="1136" he="333" /></maths>令系统输入S<sub>in</sub>=(u′,v′)<sup>T</sup>,系统输出为归一化计算机坐标S<sub>out</sub>=(X′,Y′)<sup>T</sup>,计算机分辨率为pc<sub>width</sub>×pc<sub>height</sub>,则计算机坐标计算公式为:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><mi>X</mi><mo>=</mo><msup><mi>X</mi><mo>&prime;</mo></msup><mo>&times;</mo><msub><mi>pc</mi><mi>width</mi></msub></mtd></mtr><mtr><mtd><mi>Y</mi><mo>=</mo><msup><mi>Y</mi><mo>&prime;</mo></msup><mo>&times;</mo><msub><mi>pc</mi><mi>height</mi></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664312640000032.GIF" wi="1132" he="154" /></maths>系统输入为摄像头采集图像归一化坐标S<sub>in</sub>=(u′,v′)<sup>T</sup>,系统输出为计算机图像归一化坐标S<sub>out</sub>=(X′,Y′)<sup>T</sup>,其映射关系由下式确定:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>S</mi><mi>out</mi></msub><mo>=</mo><mi>&sigma;</mi><mo>{</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msubsup><mi>&omega;</mi><mi>kj</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mo>[</mo><mi>&sigma;</mi><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mn>2</mn></munderover><msubsup><mi>&omega;</mi><mi>ji</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><msub><mi>S</mi><mi>in</mi></msub><mo>+</mo><msubsup><mi>&omega;</mi><mrow><mi>j</mi><mn>0</mn></mrow><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>]</mo><mo>+</mo><msubsup><mi>&omega;</mi><mrow><mi>k</mi><mn>0</mn></mrow><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664312640000033.GIF" wi="1420" he="165" /></maths>其中ω<sup>(1)</sup>为输入层与隐藏层之间的系数矩阵,ω<sup>(2)</sup>为隐藏层与输出层之间的系数矩阵,M为除去偏置后的隐藏层神经元个数,σ(·)表示sigmoid函数,函数表达式为:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mi>&sigma;</mi><mrow><mo>(</mo><mi>z</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mn>1</mn><mo>+</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>z</mi></mrow></msup></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>11</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664312640000034.GIF" wi="1146" he="136" /></maths>由ω<sup>(1)</sup>和ω<sup>(2)</sup>便得到采集图像激光点坐标(u,v)与计算机坐标(X,Y)的唯一对应关系,求解ω<sup>(1)</sup>和ω<sup>(2)</sup>涉及神经网络的训练过程,训练过程利用BP神经网络误差反向传播,训练数据通过预先投影棋盘图像,然后利用harris角点检测得到对应的数据;假设采集的角点数为N,检测出的输入角点归一化后数据<img file="FDA0000664312640000041.GIF" wi="382" he="86" />和输出角点归一化数据<img file="FDA0000664312640000042.GIF" wi="469" he="86" />防止过拟合的正则化神经网络的代价函数为:<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><mo>{</mo><msup><mi>&omega;</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>,</mo><msup><mi>&omega;</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msup><mo>}</mo><mo>=</mo><mi>arg</mi><munder><mi>min</mi><mrow><msup><mi>&omega;</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>,</mo><msup><mi>&omega;</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msup></mrow></munder><mfrac><mn>1</mn><mrow><mn>2</mn><mi>N</mi></mrow></mfrac><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msubsup><mrow><mo>|</mo><mo>|</mo><msubsup><mi>S</mi><mi>out</mi><mi>i</mi></msubsup><mo>-</mo><msubsup><mi>S</mi><mi>std</mi><mi>i</mi></msubsup><mo>|</mo><mo>|</mo></mrow><mn>2</mn><mn>2</mn></msubsup><mo>+</mo><mfrac><mi>&lambda;</mi><mrow><mn>2</mn><mi>N</mi></mrow></mfrac><msubsup><mrow><mo>|</mo><mo>|</mo><msup><mi>&omega;</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>|</mo><mo>|</mo></mrow><mn>2</mn><mn>2</mn></msubsup><mo>+</mo><mfrac><mi>&lambda;</mi><mrow><mn>2</mn><mi>N</mi></mrow></mfrac><msubsup><mrow><mo>|</mo><mo>|</mo><msup><mi>&omega;</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msup><mo>|</mo><mo>|</mo></mrow><mn>2</mn><mn>2</mn></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>12</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664312640000043.GIF" wi="1846" he="142" /></maths>其中<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><msubsup><mi>S</mi><mi>out</mi><mi>i</mi></msubsup><mo>=</mo><mi>&sigma;</mi><mo>{</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msubsup><mi>&omega;</mi><mi>kj</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mo>[</mo><mi>&sigma;</mi><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mn>2</mn></munderover><msubsup><mi>&omega;</mi><mi>ji</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><msubsup><mi>S</mi><mi>in</mi><mi>i</mi></msubsup><mo>+</mo><msubsup><mi>&omega;</mi><mrow><mi>j</mi><mn>0</mn></mrow><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>]</mo><mo>+</mo><msubsup><mi>&omega;</mi><mrow><mi>k</mi><mn>0</mn></mrow><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msubsup><mo>}</mo><mo>;</mo></mrow>]]></math><img file="FDA0000664312640000044.GIF" wi="979" he="164" /></maths>所述的分区域的激光点行为分析方法,将投影屏幕划分成绘图交互区域和控制交互区域,解决了交互命令易误判的问题,步骤如下:在多媒体激光笔交互中涉及到的功能包括“下一页”、“上一页”,“第一页”、“绘图标注”和“清除绘图”;采用对绘图轨迹识别完成相应功能,“绘图标注”功能旨在允许用户绘制任意图形达到强调功能,用户在使用“绘图标注”功能时系统容易误判成其他控制交互功能,为了增加交互行为的鲁棒性,采用分区域的激光点行为分析实时完成上述交互功能:1)划分交互区域:在幻灯片的制作过程中,演讲者将需要演示的内容置于屏幕显要的位置,在屏幕的四个角落很少放置演示内容,“绘图标注”功能旨在标注演示内容,在屏幕的四个角落“绘图标注”功能很少用到,用户划分屏幕主显示区域为绘图交互区域,重点完成“绘图标注”功能,把屏幕某个角落或某些角落划分成控制交互区域完成其他交互功能;以屏幕右上角划分为控制交互区域为例,控制交互区域坐标(X,Y)限制为:<maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>pc</mi><mi>width</mi></msub><mo>-</mo><msub><mi>Th</mi><mi>wid</mi></msub><mo>&lt;</mo><mi>X</mi><mo>&lt;</mo><msub><mi>pc</mi><mi>width</mi></msub></mtd></mtr><mtr><mtd><mn>0</mn><mo>&lt;</mo><mi>Y</mi><mo>&lt;</mo><msub><mi>Th</mi><mi>hei</mi></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>14</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000664312640000051.GIF" wi="1343" he="164" /></maths>其中Th<sub>wid</sub>×Th<sub>hei</sub>为交互区域的大小,由用户控制;2)“绘图标注”实现:对激光点行为分析,若激光点落在绘图交互区域,并且连续在某一邻域出现一段时间则启动“绘图标注”功能;若连续一段时间检测不到激光点则关闭“绘图标注”功能;为了增强系统的鲁棒性,采用投票的原则判断激光点在某一邻域的停留时间,假设采集N帧图像,若满足下式则启动“绘图标注”功能:<img file="FDA0000664312640000052.GIF" wi="1328" he="339" />其中Th×Th为邻域大小,count<sub>e</sub>为N帧图像内检测到激光点的个数,(X<sub>i</sub>,Y<sub>i</sub>)为检测到激光点映射后的坐标;当count<sub>o</sub>&gt;N×50%时关闭“绘图标注”功能,其中count<sub>o</sub>为连续时间内未检测到激光点的个数;3)控制交互区域内的交互功能:若激光点落在控制交互区域内,则根据激光点的不同行为完成交互任务;将激光点在交互区域内的绘图轨迹,映射成相应的交互命令;以一种交互识别方法为例,若是向右划线则为“下一页”功能,向左划线为“上一页”功能,向上划线为“第一页”功能,向下划线为“清除绘图”功能;其条件约束分别为:“下一页”:<img file="FDA0000664312640000053.GIF" wi="1287" he="324" />“上一页”:<img file="FDA0000664312640000061.GIF" wi="1287" he="325" />“第一页”:<img file="FDA0000664312640000062.GIF" wi="1295" he="324" />“清除绘图”:<img file="FDA0000664312640000063.GIF" wi="1288" he="323" />其中(X<sub>1</sub>,Y<sub>1</sub>)为绘图轨迹初始点,Th<sub>i</sub>为允许划线的浮动控制量,Th<sub>o</sub>为完成交互所需划线的长度;通过将屏幕划分为绘图交互区域和控制交互区域的方法,解决了交互过程中交互命令易误判,实时完成丰富的交互命令。
地址 116024 辽宁省大连市甘井子区凌工路2号