CN108227915A - 基于颜色特征和运动分析的自动触觉生成 - Google Patents

基于颜色特征和运动分析的自动触觉生成 Download PDF

Info

Publication number
CN108227915A
CN108227915A CN201711328531.3A CN201711328531A CN108227915A CN 108227915 A CN108227915 A CN 108227915A CN 201711328531 A CN201711328531 A CN 201711328531A CN 108227915 A CN108227915 A CN 108227915A
Authority
CN
China
Prior art keywords
frame
mask
event
video
light stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201711328531.3A
Other languages
English (en)
Inventor
伍黎雯
贾马尔·萨波恩
佩奇·雷恩斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Immersion Corp
Original Assignee
Immersion Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Immersion Corp filed Critical Immersion Corp
Publication of CN108227915A publication Critical patent/CN108227915A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B6/00Tactile signalling systems, e.g. personal calling systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/013Force feedback applied to a game
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/014Force feedback applied to GUI
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)

Abstract

本公开涉及基于颜色特征和运动分析的自动触觉生成。公开了基于视觉颜色特征和运动分析自动生成触觉的设备、系统、和方法的示例。在一个示例中,接收具有多个帧的视频,并且通过向多个帧应用颜色掩码来生成视频的掩码帧。检测两个掩码帧之间的事件,并且针对这些掩码帧生成光流估计。基于光流生成与事件相对应的至少一个触觉效果。可以将所生成的一个或多个触觉效果输出到触觉文件或触觉输出设备或它们二者。

Description

基于颜色特征和运动分析的自动触觉生成
技术领域
本申请一般地涉及触觉设备,更一般地涉及基于颜色特征和运动分析的自动触觉生成。
背景技术
传统上,机械按钮向电子设备的用户提供物理触觉。但是,随着电子设备的大小的减小以及电子设备的便携性的增加,电子设备上的机械按钮的数目减少甚至一些电子设备不具有任何机械按钮。触觉输出设备可以被包括在这样的设备中,以向用户输出触觉效果。
发明内容
描述了基于颜色特征和运动分析自动生成触觉的设备、系统、和方法的各种示例。
公开的一种示例方法包括:接收具有多个帧的视频;通过向多个帧中的第一帧应用第一颜色掩码(color mask),生成第一掩码帧(masked frame);通过向多个帧中的第二帧应用第二颜色掩码,生成第二掩码帧,其中,第二帧在第一帧之后;检测第一掩码帧和第二掩码帧之间的事件;估计第一掩码帧和第二掩码帧之间的光流;至少部分地基于光流,生成与事件相对应的触觉效果;以及通过触觉输出设备产生触觉效果。
公开的一种示例非暂态计算机可读介质,包括被配置为将由处理器执行的一个或多个软件应用。在该示例中,一个或多个软件应用被配置为:接收具有多个帧的视频;通过向多个帧中的第一帧应用颜色掩码,生成第一掩码帧;通过向多个帧中的第二帧应用颜色掩码,生成第二掩码帧,其中,第二帧在第一帧之后;检测第一掩码帧和第二掩码帧之间的事件;估计第一掩码帧和第二掩码帧之间的光流;至少部分地基于光流,生成与事件相对应的触觉效果;以及通过触觉输出设备产生触觉效果。
公开的一种示例设备包括显示器、触觉输出设备、以及与显示器和触觉输出设备通信的处理器。在该示例中,处理器被配置为:接收具有多个帧的视频;通过向多个帧中的第一帧应用第一颜色掩码,生成第一掩码帧;通过向多个帧中的第二帧应用第二颜色掩码,生成第二掩码帧,其中,第二帧在第一帧之后;检测第一掩码帧和第二掩码帧之间的事件;估计第一掩码帧和第二掩码帧之间的光流;至少部分地基于光流,生成使得触觉输出设备输出与事件相对应的触觉效果的触觉信号;将第一帧和第二帧输出到显示器;以及将触觉信号输出到触觉输出设备,以使得触觉输出设备在第二帧被显示在显示器上时产生触觉效果。
所提到的这些说明性示例不用于限制或限定本公开的范围,而用于提供帮助理解本公开的示例。在提供进一步描述的具体实施例部分详细描述说明性示例。通过审查本说明书可以进一步理解各种示例提供的优点。
附图说明
本专利或申请文件包括至少一幅彩色附图。本专利或专利申请公开的具有一幅或多幅彩色附图的副本将根据请求和必要费用的支付由专利局提供。
结合到本说明书中并且组成本说明书的一部分的附图示出了一个或多个具体示例并且与示例的描述一起用来说明具体示例的原理和实施方式。
图1A、1B、和1C示出了根据实施例的用于基于颜色特征和运动分析自动生成触觉的示例计算设备。
图2示出了根据实施例的用于基于颜色特征和运动分析自动生成触觉的示例系统。
图3示出了根据实施例的基于颜色特征和运动分析自动生成触觉的示例方法。
图4A和4B示出了根据实施例的在应用颜色掩码之前的示例视频帧(图4A)和在应用颜色掩码之后的示例视频帧(图4B)。
图5A和5B示出了根据实施例的一个掩码视频帧(图5A)和随后的连续掩码视频帧(图5B)之间的事件的检测。
图6A示出了根据实施例的与物体的移动或镜头移动相对应的估计光流。
图6B示出了根据实施例的爆炸的估计光流。
图7A示出了根据实施例的大爆炸的触觉的示例。
图7B示出了根据实施例的小爆炸的触觉的示例。
图8示出了根据实施例的基于颜色特征和运动分析自动生成触觉的示例方法。
具体实施方式
这里,在基于颜色特征和运动分析自动生成触觉的设备、系统、和方法的背景下描述示例。本领域普通技术人员将认识到,下面的描述只是说明性的,而不用于通过任何方式进行限制。现在将详细参考附图中示出的示例实施方式。贯穿附图和下面的描述使用相同的参考指示符来指代相同或相似的项目。
为了简明,这里没有示出和描述所描述的示例的所有常规特征。当然,将理解的是,在任意这样的实际实施方式的开发中,可以做出各种特定于实施方式的决定,以便实现开发者的具体目标,例如,符合应用和商业相关的约束,并且这些具体目标可以是基于实施方式和开发者而有所不同的。
在一个说明性示例中,视频被计算设备(例如,智能电话、膝上型电脑等)接收,其中,该视频具有多个帧并且其中的一些帧与视频中发生的爆炸相对应。在该示例中,视频示出了汽车爆炸。计算设备可以在视频中检测诸如汽车爆炸的事件,并生成与事件相对应的触觉效果。
在该示例中,向所接收的视频中的多个帧中的每个帧应用颜色掩码。颜色掩码从所接收的视频中移除对于事件的检测不重要的信息。例如,颜色掩码可以保持视频帧的红色和橙色区域中的颜色,并且涂黑这些帧的剩余区域。相应地,颜色掩码可以通过例如,涂黑来遮盖视频帧中不是特定颜色的像素。在实施例中,颜色掩码遮盖视频帧中不在特定颜色集合中和/或不在特定颜色范围中的像素。例如,在示出汽车爆炸的视频的示例中,颜色掩码保留帧中与爆炸相对应的区域,并且涂黑帧中的剩余像素区域。在向所接收的视频中的帧应用颜色掩码后,对掩码帧进行分析来检测视频中的事件。
在实施例中,在应用颜色掩码后,掩码帧中没有被涂黑的相邻像素形成被称为“候选斑点”的群组。例如,可以对两个连续掩码帧进行分析,以基于第一掩码帧与相邻的第二掩码帧之间的候选斑点的大小的变化来检测诸如爆炸的事件。在该示例中,如果候选斑点的大小从第一掩码帧到第二掩码帧增大,则发生了事件的检测。在其他示例中,如果候选斑点的大小从第一掩码帧到第二掩码帧减小,则发生了事件的检测。在一些示例中,如果候选斑点的大小在第一帧和第二帧之间的变化是特定比例,则发生了事件检测。在其他示例中,如果候选斑点的大小在第一帧和第二帧之间的变化大于特定比例,则发生了事件检测。
根据一个实施例,估计针对检测出的事件的光流。例如,可以在第一掩码帧和相邻的第二掩码帧之间生成估计光流。在一些示例中,针对候选斑点中的像素特征估计光流。例如,可以针对用于上述事件检测的候选斑点中的像素特征估计光流。估计出的光流可以具有描绘第一掩码帧和第二掩码帧之间(并且也在与第一掩码帧相对应的第一帧和与第二掩码帧相对应的第二帧之间)的视在移动(apparent movement)的方向和大小的多个运动向量。
可以对与候选斑点相对应的运动向量进行分析,以基于运动向量的方向确定是否存在事件的错误检测。例如,如果检测出的事件是爆炸,则期望估计出的光流具有随机地面向不同方向的运动向量。所以,在检测出的事件与爆炸相对应的情况下,如果估计出的光流中的运动向量随机地指向不同方向,则可以确定没有错误检测(即,视频示出了正确检测到的爆炸)。但是,如果估计出的光流中的运动向量全都指向相同的方向或者基本相同的方向(例如,运动向量的方向没有随机地指向不同方向),则可以确定存在错误检测(即,视频没有示出爆炸,即使在对掩码帧进行分析时检测到了爆炸)。
在该示例中,如果没有事件的错误检测,则生成并输出触觉效果。在视频中的汽车爆炸的示例中,针对掩码帧生成的运动向量指向随机的不同方向,这指示爆炸的突然检测不是错误检测。在该示例中,生成与检测出的爆炸(即,检测出的事件)相对应的触觉效果。例如,可以生成具有与估计出的光流中的至少一个运动向量相对应的强度参数的触觉效果。在该示例中,触觉效果被配置为使得触觉输出设备输出与检测出的爆炸相对应并且具有基于估计出的光流中的运动向量的强度的触觉效果。因此,如果估计出的光流中的运动向量具有指示两个掩码帧之间的大移动的大幅度,则可以针对触觉效果确定模仿视频中发生的大爆炸的大强度参数。类似地,如果估计出的光流中的运动向量具有指示两个掩码帧之间的小移动的小幅度,则可以针对触觉效果确定模仿视频中发生的小爆炸的小强度参数。
在一些示例中,强度参数基于候选斑点的大小在第一帧和第二帧之间的变化的比例。例如,第一掩码帧的候选斑点和第二掩码帧的候选斑点之间的较大比例会产生模仿第一掩码帧的候选斑点和第二掩码帧的候选斑点之间的变化的大小的较大强度参数。
在示例中,随着视频的播放向触觉输出设备输出被配置为使得触觉输出设备输出所生成的触觉效果的触觉信号,以使得触觉输出设备在视频中的事件发生时输出触觉效果。在爆炸汽车视频的示例中,可以向触觉输出设备发送触觉信号,以使触觉输出设备在视频被播放时输出具有所确定的汽车爆炸时的强度参数的触觉效果。在一些示例中,将所生成的触觉效果输出到触觉跟踪和/或存储在触觉文件中。在这些示例中,当视频被播放时,触觉跟踪和/或触觉文件被提取并且使触觉信号被输出到触觉输出设备,以使得触觉输出设备在视频中的事件发生时输出触觉效果。在一些示例中,将所生成的触觉效果存储在所接收的视频中。
给出了说明性示例来向读者介绍本文讨论的一般主题,并且本公开并不限于该示例。下面的部分描述了用于基于颜色特征和运动分析自动生成触觉的系统和方法的各种附加的非限制性示例和示例。
图1A、1B、和1C示出了根据实施例的用于基于颜色特征和运动分析自动生成触觉的示例计算设备100。图1A示出了计算设备100的正面,图1B示出了计算设备100的背面,图1C示出了计算设备100的组件。
计算设备100可以包括例如,数字镜头、运动型镜头、360度镜头、智能电话、平板手机、平板电脑、电子阅读器、膝上型电脑、桌面型电脑、便携式游戏设备、医疗设备、机顶盒(例如,DVD播放器、DVR、有线电视盒)、或游戏控制器。在其他示例中,计算设备100可以包括多功能控制器,例如,用在售货亭、汽车、报警系统、恒温器、或者其他类型的电子设备中的控制器。在一些示例中,计算设备100可以包括可穿戴计算设备,例如,腕表、手镯、项链、腰带、虚拟现实(VR)耳机、听筒、手套、或者靴子。尽管计算设备100在图1A-1C中被示出为单个设备,但是在其他示例中,计算设备100可以包括多个设备,例如,如图2所示。
示例计算设备100包括通过总线106与其他硬件接口的处理器102。可以包括诸如RAM、ROM、EEPROM等的任何适当的有形(且非暂态)计算机可读介质的存储器104可以包含配置计算设备100的操作的程序组件。在一些示例中,计算设备100还可以包括一个或多个网络接口设备110、输入/输出(I/O)接口组件112、以及附加存储装置114。
网络接口设备110可以代表帮助网络连接的任意组件中的一个或多个组件。示例包括但不限于,诸如以太网、USB、IEEE 1394的有线接口、和/或诸如IEEE 802.11、蓝牙、或者用于访问蜂窝电话网的无线电接口(例如,用于访问CDMA、GSM、UMTS、或者其他移动通信网的收发信机/天线)的无线接口。
I/O组件112可以被用来帮助到诸如一个或多个显示器、键盘、镜头、鼠标、扬声器、麦克风、按钮、操纵杆、和/或用于输入数据或输出数据的其他硬件的设备的连接。附加存储装置114代表诸如只读存储器、闪存、随机存取存储器(RAM)、铁电RAM(F-RAM)、包括在计算设备100中或耦合到处理器102的磁、光、或者其他存储介质的非易失性存储装置。
计算设备100包括触敏表面116。在图1C所示的示例中,触敏表面116被集成到计算设备100中。在其他示例中,计算设备100可以不包括触敏表面116。触敏表面116代表被配置为感测用户的触觉输入的任意表面。在一些示例中,触敏表面116可以是可卷曲的、可弯曲的、可折叠的、可拉伸的、可旋转的、可压挤的、或者其他可变形的。例如,触敏表面116可以包括可弯曲的电子纸或触敏显示设备。
在一些示例中,一个或多个触摸传感器108被配置为当物体接触触敏表面116时检测触摸区域中的触摸并且提供适当数据供处理器102使用。可以使用任意合适的数目、种类、或者布置的传感器。例如,电阻性和/或电容性传感器可以被嵌入在触敏表面116中,并被用来确定触摸的位置和其他信息(例如,压力、速度、和/或方向)。作为另一示例,具有触敏表面116的视图的光学传感器可以被用来确定触摸位置。
在其他示例中,触摸传感器108可以包括LED(发光二极管)探测器。例如,在一些示例中,触敏表面116可以包括安装在显示器的侧面的LED手指探测器。在一些示例中,处理器102与单个触摸传感器108通信。在其他示例中,处理器102与多个触摸传感器108(例如,与第一触摸屏和第二触摸屏相关联的触摸传感器)通信。触摸传感器108被配置为检测用户交互,并且基于用户交互向处理器102发送信号。在一些示例中,触摸传感器108可以被配置为检测用户交互的多个方面。例如,触摸传感器108可以检测用户交互的速度和压力,并将该信息结合到信号中。
在一些示例中,计算设备100可以包括结合有触敏表面116和显示器的触摸使能的显示器(touch-enabled display)。触敏表面116可以与显示器的组件上的一个或多个材料层或者显示器外部相对应。在其他示例中,触敏表面116可以不包括(或者不对应于)显示器,这取决于计算设备100的具体配置。
计算设备100还包括一个或多个附加传感器130。传感器130被配置为向处理器102发送传感器信号。在一些示例中,传感器130可以包括例如,镜头、湿度传感器、环境光传感器、陀螺、GPS单元、加速度仪、距离传感器或深度传感器、生物传感器、或温度传感器。尽管图1C所示的示例描绘了计算设备100内部的传感器130,但是在一些示例中,传感器130可以在计算设备100外部。例如,在一些示例中,一个或多个传感器130可以与用于包括游戏系统的计算设备100的游戏控制器相关联。在一些示例中,处理器102可以与单个传感器130通信,并且在其他示例中,处理器102可以与多个传感器130(例如,温度传感器和湿度传感器)通信。在一些示例中,传感器130可以远离计算设备100,但是通信地耦合到处理器102,例如,如图2所示。
计算设备100还包括与处理器102通信的触觉输出设备118。触觉输出设备118被配置为响应于触觉信号而输出触觉效果。在一些示例中,触觉输出设备118被配置为输出触觉效果,该触觉效果包括例如,振动、所感知的摩擦系数的变化、模拟纹理、温度变化、抚摸感觉、电触觉效果、或者表面变形(例如,与计算设备100相关联的表面的变形)。尽管这里示出了单个触觉输出设备118,但是一些示例可以包括可以被顺序或并行驱动来产生触觉效果的、相同或不同类型的多个触觉输出设备118。
在图1C所示的示例中,触觉输出设备118在计算设备100内部。在其他示例中,触觉输出设备118可以远离计算设备100,但是通信地耦合到处理器102,例如,如图2所示。例如,触觉输出设备118可以在计算设备100外部,并且通过诸如以太网、USB、IEEE 1394的有线接口和/或诸如IEEE 802.11、蓝牙、或者无线电接口的无线接口与计算设备100通信。
在一些示例中,触觉输出设备118可以被配置为输出包括振动的触觉效果。在这些示例中,触觉输出设备118可以包括压电致动器、电动马达、电磁致动器、音圈、形状记忆合金、电活性聚合物、电磁阀、偏心旋转大型电动机(ERM)、或线性谐振致动器(LRA)中的一者或多者。
在一些示例中,触觉输出设备118可以被配置为响应于触觉信号,输出调制在计算设备100的表面上所感知的摩擦系数的触觉效果。在一些这样的示例中,触觉输出设备118可以包括超声致动器。超声致动器可以包括压电材料。超声致动器可以超声频率(例如,20kHz)振动,这会增大或减小在触敏表面116的表面所感知的系数。
在一些示例中,触觉输出设备118可以利用例如,静电致动器,使用静电吸引力来输出触觉效果。触觉效果可以包括模拟纹理、模拟振动、抚摸感觉、或者在与计算设备100相关联的表面(例如,触敏表面116)上所感知的摩擦系数的变化。在一些示例中,静电致动器可以包括导电层和绝缘层。导电层可以是任何半导体或其他导电材料,例如,铜、铝、金、或银。绝缘层可以是玻璃、塑料、聚合物、或者任何其他绝缘材料。另外,处理器102可以通过向导电层施加电信号(例如,AC信号)来操作静电致动器。在一些示例中,高压放大器可以生成AC信号。电信号可以在导电层和接近或者触摸触觉输出设备118的物体(例如,用户的手指或触笔)之间生成电容性耦合。在一些示例中,改变该物体与导电层之间的吸引力的等级可以改变用户所感知的触觉效果。
计算设备100还包括前置镜头134。例如,当计算设备100被用户使用时,图1A所示的前置镜头134指向或者面向计算设备100的用户。前置镜头134被配置为向处理器102传送视频信号。例如,前置镜头134可以向处理器102发送每秒24帧的视频信号。在其他实施例中,前置镜头134向处理器102发送帧率为每秒25、30、48、50、60、72、90、100、120、144、240、或300帧的视频信号。在一个实施例中,前置镜头134向处理器102发送每秒24到300帧之间的视频信号。在一些示例中,处理器102通过总线106与前置镜头134通信。在一个示例中,前置镜头134可以被用来记录视频(例如,视点视频),并且该视频可以被存储在存储器104或存储装置114中。在一些示例中,前置镜头134可以被用来捕捉通过网络110被流送到另一计算设备的视频(例如,视点视频)。
计算设备100还包括后置镜头140。例如,当计算设备100被用户使用时,图1B所示的后置镜头140指向或者面向背离计算设备100的用户的方向。后置镜头140被配置为向处理器102传送视频信号。例如,后置镜头140可以向处理器102发送每秒24帧的视频信号。在其他实施例中,后置镜头140向处理器102发送每秒25、30、48、50、60、72、90、100、120、144、240、或300帧的视频信号。在一个实施例中,后置镜头140向处理器102发送每秒24到300帧之间的视频信号。在一些示例中,处理器102通过总线106与后置镜头140通信。在一个示例中,后置镜头140可以被用来记录视频(例如,视点视频),并且该视频可以被存储在存储器104或存储装置114中。在一些示例中,后置镜头140可以被用来捕捉通过网络110被流送到另一计算设备的视频(例如,视点视频)。
计算设备100还包括存储器104。存储器104包括程序组件123、124、126、和128,这些程序组件被描绘为示出了在一些示例中设备如何被配置为基于颜色特征和运动分析自动生成触觉。
掩码应用模块123将处理器102配置为生成视频的一个或多个掩码帧。例如,掩码应用模块123可以在生成视频中的每个视频帧的掩码帧时使用颜色掩码。在一个实施例中,使用颜色掩码的掩码应用模块123创建正在分析的视频帧的新层。在该示例中,该新层最初是透明的。掩码应用模块123对视频帧中的每个像素进行分析。如果视频帧中的特定像素是特定颜色的,则新层中的相应像素保持不变并且因此保持透明。但是,如果视频帧中的特定像素不是特定颜色的,则新层中的相应像素变为黑色以遮盖视频帧中的该像素。
在其他示例中,视频帧中在颜色范围(使用颜色系统RGB、HSV中的任意系统)内的像素保持不被掩码,并且视频帧中的其他像素(例如,不在颜色范围内的那些像素)被掩码。例如,可以通过提出有关像素的颜色分量值的条件来设置颜色范围。例如,在RGB系统中,保持不被掩码的颜色范围可以被设置到125<R<255和/或B<45和/或G>79的所有像素。在其他示例中,可以设置将被掩码的颜色范围。
在一些示例中,掩码应用模块123针对视频帧中的每个帧生成掩码帧。在其他示例中,掩码应用模块123针对视频中的一些帧而不是所有帧生成掩码帧。例如,掩码应用模块123可以基于视频的帧率生成针对视频的一些帧的掩码帧。在一些实施例中,掩码应用模块123以帧率的大概10%的频率生成掩码帧。因此,如果视频具有每秒30帧的帧率,则掩码应用模块123针对视频中的每三个帧生成掩码帧。在其他示例中,掩码应用模块123以帧率的5%到80%的频率生成掩码帧。
在示例中,掩码应用模块123被配置为生成移除了视频中对于事件的检测不重要的信息的掩码帧。例如,如果掩码应用模块123正在生成掩码帧以确定视频中是否发生爆炸,则掩码应用模块123可以向视频中的视频帧应用颜色掩码,以生成保留帧中的橙色和红色原封不动但是涂黑视频的其他区域的掩码帧。
掩码应用模块123可以从各种来源接收具有多个帧的视频。例如,掩码应用模块123可以从前置镜头134、后置镜头140、或I/O 112接收实时帧。在示例中,掩码应用模块123可以接收存储器104、存储装置114、或I/O 112中存储的视频。在一些示例中,掩码应用模块123可以通过网络110接收流传输视频。
在示例中,掩码应用模块123将处理器102配置为检测视频中的帧之间的移动,如本文中针对图3的块320和/或图8中的块820所述。尽管掩码应用模块123在图1C中被描绘为存储器104中的程序组件,但是在一些示例中,掩码应用模块123可以包括被配置为生成掩码帧的硬件。在一些示例中,这种硬件可以包括模数转换器、处理器、微控制器、比较器、放大器、晶体管、以及其他模拟或数字电路。
事件检测模块124将处理器102配置为检测视频中的帧之间的移动。例如,事件检测模块124可以检测视频中的连续帧之间的事件。在该示例中,事件检测模块124可以对掩码应用模块123所生成的掩码帧进行分析,以确定是否存在事件。在示例中,事件检测模块124将处理器102配置为检测视频中的帧之间的移动,如本文中针对图3的块330和/或图8的块820所述。尽管事件检测模块124在图1C中被描绘为存储器104中的程序组件,但是在一些示例中,事件检测模块124可以包括被配置为检测移动的硬件。在一些示例中,这种硬件可以包括模数转换器、处理器、微控制器、比较器、放大器、晶体管、以及其他模拟或数字电路。
光流估计模块126将处理器102配置为估计帧之间的光流。例如,光流估计模块126可以生成掩码应用模块123所生成的两个掩码帧之间的光流估计。光流估计模块126可以生成视频中的两个连续视频帧(掩码或未掩码)之间的光流估计。在示例中,光流估计模块126可以生成示出两个视频帧之间的移动的方向和大小的运动向量。运动向量可以与视频的视频帧中的各个像素相对应。视频帧可以是掩码应用模块123所生成的掩码视频帧,或者可以与来自所接收的视频的视频帧相对应。
光流估计模块126可以将处理器102配置为估计视频中的两个以上视频帧中的至少一部分视频帧之间的光流。例如,在实施例中,光流估计模块126实现一种算法—例如,相位相关法、基于块的方法、Lucas-Kanade方法、Horn-Schunck方法、Buxton-Buxton方法、Black-Jepson方法、其他适当的差分方法、基于最大流最小截的算法、离散优化法等—以估计视频中两个以上视频帧中的至少一部分视频帧之间的光流。
光流估计模块126可以从各种来源接收具有多个帧的视频。例如,光流估计模块126可以从掩码应用模块123和/或事件检测模块124接收视频的掩码帧。在一些示例中,光流估计模块126可以从前置镜头134、后置镜头140、或I/O 112接收实时视频。在示例中,光流估计模块126可以接收存储器104、存储装置114、或I/O 112中存储的视频。在一些示例中,光流估计模块126可以通过网络110接收流传输视频。在这些示例中,掩码应用模块123和/或事件检测模块124可以指导光流估计模块126估计所接收的视频中的某些帧的光流。例如,事件检测模块124可以指导光流估计模块126估计事件检测模块124在其中检测到事件的两个帧之间的光流。
在示例中,光流估计模块124将处理器102配置为估计视频中的帧之间的光流,例如,本文中针对图3的块340和/或图8的块830所述。尽管光流估计模块126在图1C中被描绘为存储器104中的程序组件,但是在一些示例中,光流估计模块126可以包括被配置为生成估计光流的硬件。在一些示例中,这种硬件可以包括模数转换器、处理器、微控制器、比较器、放大器、晶体管、以及其他模拟或数字电路。
效果生成模块128将处理器102配置为生成针对视频的触觉效果。例如,效果生成模块128可以基于视频中的连续帧之间的事件来生成触觉效果。在该示例中,效果生成模块128可以基于事件检测模块124检测到的连续帧之间的事件,来确定触觉效果的一个或多个参数。例如,如果事件检测模块124检测到视频的两个连续帧之间的事件,则效果生成模块128可以确定与光流估计模块126所生成的估计光流中的运动向量的平均大小相对应的触觉效果的参数。在该示例中,效果生成模块128可以确定与运动向量的平均大小相对应的强度触觉参数,从而使得较大的平均大小产生较大的强度触觉参数。在其他示例中,强度参数基于候选斑点的大小在两个视频帧之间的变化的比例。根据一个实施例中,较大的触觉强度参数被配置为使得触觉输出设备以比较小的触觉强度参数更大的力输出触觉效果。
效果生成模块128可以通过多种方式输出所生成的触觉效果。例如,效果生成模块128可以在视频被播放时向触觉输出设备118输出所生成的触觉效果。在该示例中,所生成的触觉效果被输出到触觉输出设备118,使得触觉效果与视频同步。例如,如果事件检测模块124检测到事件,则效果生成模块128可以向触觉输出设备118输出触觉效果信号,从而使得触觉效果在视频中发生事件的同时或基本同时被输出。
作为另一个示例,效果生成模块128可以创建被嵌入在视频中的触觉跟踪。在该示例中,效果生成模块128可以在掩码应用模块123、事件检测模块124、和/或光流估计模块126所接收的视频中嵌入触觉跟踪。包括触觉跟踪的视频可以被存储在存储器104、存储装置114、和/或I/O 112中。包括触觉跟踪的视频可以通过网络110被发送给另一计算设备。在这些示例中,当视频被播放时,基于事件检测模块124从掩码应用模块123所生成的掩码帧中检测出的事件和/或光流估计模块126估计出的光流、以及效果生成模块128所生成的触觉效果,输出与视频中的事件相对应的触觉效果。
在一些示例中,效果生成模块128可以将所生成的触觉效果存储在单独文件中,或者可以将所生成的触觉效果添加到视频中而无需对视频进行重新编码。例如,效果生成模块128可以创建具有所生成的触觉效果的触觉跟踪,并且将触觉跟踪存储在触觉文件中(例如,具有HAPT文件格式的文件)。在该示例中,效果生成模块128可以将触觉跟踪存储在存储器104、存储装置114、和/或I/O 112中。触觉文件可以通过网络110被发送给另一计算设备。在这些示例中,当视频被播放时,对应于视频的触觉文件被从存储器104、存储装置114、I/O112、和/或通过网络110提取,并且触觉文件中指定的由效果生成模块128生成的、与视频中的事件相对应的触觉效果被输出。在该示例中,触觉文件中指定的触觉效果对应于事件检测模块124从掩码应用模块123所生成的掩码帧中检测出的事件和/或光流估计模块126估计出的光流、以及效果生成模块128生成的触觉效果。
在示例中,效果生成模块128将处理器102配置为生成与视频相对应的触觉效果,例如,如本文中针对图3的块360和/或图8的块840所述。尽管效果生成模块128在图1C中被描绘为存储器中的程序组件,但是在一些示例中,效果生成模块128可以包括被配置为生成触觉效果的硬件。在一些示例中,这种硬件可以包括模数转换器、处理器、微控制器、比较器、放大器、晶体管、触觉输出设备、以及其他模拟或数字电路。
现在参考图2,该图是示出根据实施例的用于基于颜色特征和运动分析自动生成触觉的示例系统的框图。该系统包括计算系统236。在一些实施例中,计算系统236可以包括例如,数字镜头、运动型镜头、360度镜头、智能电话、平板手机、平板电脑、电子阅读器、膝上型电脑、桌面型电脑、便携式游戏设备、医疗设备、机顶盒(例如,DVD播放器、DVR、有线电视盒)、或游戏控制器。
计算系统236包括通过总线206与其他硬件通信的处理器202。计算系统236还包括存储器204,该存储器包括掩码应用模块223、事件检测模块224、光流估计模块226、以及效果生成模块228。这些组件可以被配置为分别类似于图1C中描绘的存储器104、掩码应用模块123、事件检测模块124、光流估计模块126、以及效果生成模块128进行操作。
计算系统236还包括网络接口设备210、I/O组件212、存储装置214、传感器231、以及触觉输出设备222。这些组件可以被配置为分别类似于图1C中描绘的网络接口设备110、I/O组件112、存储装置114、传感器130、以及触觉输出设备118进行操作。
计算系统236还包括显示器234。在一些实施例中,显示器234可以包括独立组件,例如,通过有线或无线连接耦合到处理器202的远程监视器、电视、或者投影仪。
计算系统236通信地耦合到计算设备200。在一些实施例中,计算系统200可以包括例如,数字镜头、运动型镜头、360度镜头、智能电话、平板手机、平板电脑、电子阅读器、膝上型电脑、桌面型电脑、便携式游戏设备、医疗设备、机顶盒(例如,DVD播放器、DVR、有线电视盒)、或者游戏控制器。
计算设备200可以包括处理器203、存储器205、掩码应用模块223(未示出)、事件检测模块224(未示出)、光流估计模块226(未示出)、以及效果生成模块228(未示出)。计算设备200还可以包括网络接口设备245。处理器203、存储器205、掩码应用模块223、事件检测模块224、光流估计模块226、效果生成模块228、以及网络接口245可以被配置为分别类似于图1C中描绘的处理器102、存储器204、掩码应用模块123、光流估计模块124、事件检测模块126、效果生成模块128、以及网络接口110进行操作。在图2所示的示例中,计算设备200包括网络接口设备245并且通过例如,IEEE 802.11、蓝牙、或者无线电接口(例如,用于访问CDMA、GSM、UMTS、或者其他移动通信网络的收发信机/天线)的无线接口与计算系统236通信。
计算设备200包括I/O组件213,该I/O组件可以被配置为类似于图1C中描绘的I/O组件112进行操作。计算设备200还包括与I/O组件213通信的用户输入设备238。用户输入设备238包括允许用户与计算设备200交互的设备。例如,用户输入设备238可以包括操纵杆、方向盘、按钮、开关、扬声器、麦克风、触敏表面、和/或用于输入数据的其他硬件。
计算设备200还包括一个或多个传感器230、前置镜头234、后置镜头240、以及触觉输出设备218。这些组件可以被配置为分别类似于图1C中描绘的传感器130、前置镜头134、后置镜头140、以及触觉输出设备118进行操作。
现在参考图3,图3示出了根据实施例的基于颜色特征和运动估计自动生成触觉的示例方法300。在该示例中,方法300可以确定用于捕捉视频的镜头的运动并基于该运动自动生成触觉。现在将参考图1A、1B、1C、和/或2;但是,根据本公开的任何适当设备可以被用来根据各种实施例而基于颜色特征和运动分析自动生成触觉。
当接收到视频时,方法300在步骤310开始。在一个示例中,处理器102从后置镜头140接收视频。视频可以是视点视频。在一些示例中,视频是实时视频,并且在其他示例中,视频是存储在存储器104、存储装置114、或I/O组件112中并由处理器102接收的预先记录的视频文件。在一个实施例中,视频被从计算设备200流送到计算系统236。在另一实施例中,预先记录的视频文件被从计算设备200下载到计算系统236。在这些示例中,计算系统236中的处理器202可以通过网络245和210从计算设备200接收视频。视频可以具有多个帧。例如,视频可以具有每秒25、30、48、50、60、72、90、100、120、144、240、或300帧的帧率。在实施例中,视频每秒具有24到300帧。
在块320,向在视频中接收到的所有或一些视频帧应用颜色掩码。在示例中,接收到视频的处理器被配置为向在所接收的视频中接收到的一些或所有视频帧应用一种或多种颜色掩码。例如,图1C中的处理器102可以被掩码应用模块123配置为向在所接收的视频中接收到的一些或所有视频帧应用一种或多种颜色掩码。作为另一示例,处理器202和/或处理器203可以被掩码应用模块223配置为向在所接收的视频中接收到的一些或所有视频帧应用一种或多种颜色掩码。
可以向视频中的两个帧应用一种或多种颜色掩码,以生成与该两个帧对应的掩码帧。例如,可以向视频中的一个帧应用一种颜色掩码以生成第一掩码视频帧,并且向下一个相邻的视频帧(即,连续视频帧)应用相同或不同的颜色掩码以生成第二掩码视频帧。在一些示例中,向所接收的视频中的两个非连续帧应用颜色掩码。例如,应用颜色掩码以生成第一掩码帧的一个帧可以与应用相同颜色掩码或另一颜色掩码以生成第二掩码帧的另一帧相距至少一帧。在实施例中,在应用掩码之前向视频帧应用滤波器,以减少视频帧中的噪声。在实施例中,向所生成的掩码帧应用滤波器,以减少掩码帧中的噪声。
在一些示例中,应用颜色掩码的帧是至少部分地基于视频的帧率选择的。例如,视频中用于通过应用颜色掩码生成掩码帧的两个帧之间的帧的数目可以大约为该视频的帧率的10%。因此,如果视频具有每秒30帧的帧率,则视频中应用一种或多种颜色掩码以生成掩码帧的两个帧之间可以存在三个帧。在其他示例中,视频中用于生成掩码帧的两个帧之间的帧的数目在该视频的帧率的5%到75%之间。
在示例中,颜色掩码被配置为遮盖或者移除视频帧中对于视频中的事件的检测不重要的图像数据。例如,图4A示出了在应用颜色掩码之前的示例视频帧400,图4B示出了通过向图4A中的视频帧400应用颜色掩码生成的示例视频帧450。图4A中的视频帧400示出了建筑物爆炸的场景。在向图4A应用颜色掩码之前,视频帧400示出了建筑物410、天空420、以及爆炸430。在该示例中,颜色掩码被配置为保留视频帧400的具有红色或橙色的区域并且涂黑剩余区域。在图4B所示的掩码视频帧450中,已经向图4A所示的视频帧400应用了这种颜色掩码。如可以从图4B看出的,掩码视频帧450保留了视频帧的与橙色和红色对应的区域(如区域470所示),并且涂黑了视频帧的不对应于橙色或红色的其他区域(如涂黑区域460所示)。在该示例中,掩码视频帧450中的区域470与视频中发生的爆炸相对应。
在块330,确定视频中的事件。在示例中,处理器被事件检测模块配置为至少部分地基于掩码应用模块所生成的一个或多个掩码帧来确定视频中的一个或多个事件。在一些示例中,处理器被事件检测模块配置为至少部分地基于光流估计模块估计出的光流来确定视频中的一个或多个事件。在这些示例中,在如针对块330所述地检测事件之前,如针对块340所述地生成估计光流。在实施例中,图1C中的处理器102可以被事件检测模块124配置为确定视频中的事件。作为另一示例,处理器202和/或处理器203可以被事件检测模块224配置为确定视频中的事件。在实施例中,事件是视频中的连续帧之间的运动,例如,扩张、收缩、旋转、挤压、震动等。在一些实施例中,事件是视频中的邻近帧之间或在较短的时间跨度内(例如,在0.002秒到0.3秒之间)横跨视频中的多个帧的运动,例如,扩张、收缩、旋转、挤压、震动等。
在示例中,在第一帧和第二帧之间检测事件,其中,第二帧可以与第一帧连续。可以基于斑点的大小在第一帧和第二帧之间的变化(例如,未掩码的像素的数目)来检测事件。在一些示例中,例如爆炸事件,斑点的大小将在第一帧和第二帧之间扩张,并且该扩张被用来确定事件的发生。在其他示例中,斑点的大小可以在第一帧和第二帧之间收缩,该收缩被用来确定事件的发生。在示例中,基于第一帧和第二帧之间的斑点的大小所反映的事件的识别标志来检测事件。
在一些实施例中,基于掩码帧来确定视频中的事件。例如,可以对与所接收的视频中的一个视频帧相对应的第一掩码帧和与所接收的视频中的下一个连续视频帧相对应的第二掩码帧进行分析,来确定是否发生了事件。在其他示例中,对与所接收的视频中的第一视频帧相对应的第一掩码帧和与所接收的视频中的不与第一视频帧相邻的视频帧相对应的第二掩码帧进行分析,来确定是否发生了事件。在一些示例中,对一系列掩码帧进行分析来确定是否发生了事件。
可以基于与第二掩码帧中的涂黑区域的数量相比较的第一掩码帧中的涂黑区域的数量,来确定视频中的事件。相反,可以基于与第二掩码帧中的颜色数量相比较的第一掩码帧中的颜色数量来确定事件。
例如,图5A示出了与所接收的视频中应用了颜色掩码的第一视频帧相对应的第一掩码视频帧500。图5B示出了与所接收的视频中应用了颜色掩码的第二视频帧相对应的第二掩码视频帧550。在该示例中,第二视频帧是第一视频帧后面的连续视频帧。因此,第一掩码视频帧500与所接收的视频中的视频帧相对应,第二掩码视频帧550与所接收的视频中的相邻视频帧相对应。
如图5A所示,第一掩码视频帧500示出了大涂黑区域510和小爆炸520。第二掩码视频帧550示出了较小涂黑区域560和较大爆炸570。在该示例中,通过将小爆炸520的面积与较大爆炸570的面积进行比较,检测到所接收的视频中的第一和第二连续视频帧之间的事件。替代地,可以将第一掩码帧500中的涂黑区域510与第二掩码帧550的涂黑区域560进行比较。在该示例中,第一掩码帧500的涂黑区域510比第二掩码帧550的涂黑区域560大得多,这使得事件被检测出来。
可以基于两个掩码帧之间的百分比差异来检测事件。例如,如果掩码帧中彩色区域的百分比增加超过10%,则可以在与视频中的相邻帧相对应的两个掩码帧之间检测到事件。在其他示例中,可以使用不同的阈值百分比。在各种实施例中,用于检测事件的阈值百分之比可以在10%到70%之间。在实施例中,基于视频帧中的候选斑点之间的大小变化来检测事件。例如,可以基于对应于第一视频帧的候选斑点和对应于第二相邻视频帧的候选斑点之间的大小变化来检测事件。在一些实施例中,基于对应于第一视频帧和第二视频帧的候选斑点的大小的百分比变化来检测事件。例如,如果候选斑点在第一视频帧和第二相邻视频帧之间变化了特定百分比(例如,50%、75%、100%、150%等),则可以检测到事件的发生。
在块340,确定与视频相对应的光流估计。在示例中,接收到视频的处理器被光流估计模块配置为生成估计光流。例如,图1C中的处理器102可以被光流估计模块126配置为生成估计光流。作为另一示例,处理器202和/或处理器203可以被光流估计模块224配置为生成估计光流。
在示例中,在两个掩码帧之间生成光流估计。例如,可以针对在其中检测到事件(如以上针对块330所述)的两个掩码帧生成光流估计。在一些示例中,针对从所接收到的视频帧(如以上针对块330所述)生成的两个以上掩码帧生成光流估计。
可以针对所接收的视频生成的至少两个掩码帧生成光流估计。例如,在一个实施例中,可以针对所接收的视频中的两个连续掩码帧生成光流估计。在一些示例中,针对所接收的视频中的两个非连续的掩码帧生成光流估计。例如,用于生成光流估计的一个掩码帧可以与用于生成光流估计的另一个掩码帧相距至少一帧。在一个示例中,用于生成光流估计的掩码帧的生成的帧是至少部分地基于视频的帧率从所接收的视频中选择的。例如,视频中用于生成光流估计的两个帧之间的帧的数目可以大约为该视频的帧率的10%。因此,如果视频具有每秒30帧的帧率,则该视频中用于生成光流估计的两个帧之间会存在三个帧。在其他示例中,视频中用于生成光流估计的掩码帧的两个帧之间的帧的数目在该视频的帧率的5%到75%之间。在一些示例中,使用从所接收的视频的帧生成的两个、三个、四个、五个、或者更多掩码帧生成光流估计。
在实施例中,在生成光流估计之前向视频帧应用滤波器,以减少视频帧中的噪声。在实施例中,向所生成的光流估计应用滤波器,以减少光流估计中的噪声。
在块350,做出有关检测出的事件是否是错误检测的判定。在示例中,接收到视频的处理器被配置为确定检测出的事件是否是错误检测。例如,图1C中的处理器102可以被事件检测模块124和/或光流估计模块126配置为确定检测出的事件是否是错误检测。作为另一示例,处理器202和/或处理器203可以被事件检测模块224和/或光流估计模块226配置为确定检测出的事件是否是错误检测。在一些示例中,在做出检测出的事件是错误检测的判定的情况下,如针对块360所述不生成触觉。
在一些示例中,使用所生成的光流估计来确定是否存在事件的错误检测。例如,可以通过评估针对检测到事件的掩码帧所生成的光流估计中的一些或所有运动向量的方向来确定是否存在事件的错误检测。在一些示例中,是否存在事件的错误检测还基于事件的类型。
例如,事件的类型可以是捕捉所接收的视频(针对该视频生成了掩码帧)的镜头的移动,或者事件的类型可以是所接收的视频中具有符合颜色掩码范围的颜色的一个或多个物体的移动。在这些示例中,如果所生成的光流中的运动向量全部指向相同的方向或者基本相同的方向,则做出不存在事件的错误检测的判定。在这些示例中,如果所生成的光流中的运动向量全部指向完全不同的方向和/或全部指向随机方向,则做出存在事件的错误检测的判定。
作为另一示例,如果事件的类型是爆炸,则针对检测到爆炸的掩码帧所生成的光流估计中的运动向量应该随机地指向不同方向。在该示例中,如果所生成的光流估计中的运动向量全部指向相同的方向或基本相同的方向,则做出存在事件的错误检测的判定。在实施例中,如果确定了错误检测,则不生成触觉效果。但是,如果所生成的光流估计中的运动向量全部指向完全不同的方向和/或全部指向随机方向,则做出不存在事件的错误检测的判定。
现在参考图6A,该图示出了根据实施例的具有与物体的移动或镜头移动相对应的多个运动向量610的光流估计。在该示例中,运动向量610全部指向基本相同的方向。在实施例中,如果在块330中检测出的事件的类型是捕捉所接收的视频的镜头的移动或者视频中具有与颜色掩码范围相符的颜色的一个或多个物体的移动,则在块350做出不存在事件的错误检测的判定。但是,如果在块330中检测出的事件的类型是爆炸或期望存在随机方向的运动向量的另一类型的事件,则在块350做出存在事件的错误检测的判定。
现在参考图6B,该图示出了根据实施例的具有与爆炸相对应的多个运动向量660的示例光流估计650。在该示例中,运动向量660指向随机方向。在实施例中,如果在块330中检测出的事件的类型是捕捉所接收的视频的镜头的移动,则在块350做出存在事件的错误检测的判定。但是,如果在块330中检测出的事件的类型是爆炸或者期望存在随机方向的运动向量的其他类型的事件,则在块350做出不存在事件的错误检测的判定。
在一个示例中,当检测到爆炸时,使用颜色掩码滤波器和候选斑点的大小在帧之间的变化来确定爆炸事件何时发生。该事件识别标志(例如,特定颜色掩码滤波器和候选斑点大小变化的要求)被用来确定爆炸何时发生。但是,除爆炸以外的事件可能与爆炸具有相同或类似的事件识别标志,因此可能需要错误检测机制。例如,在实施例中,突然的镜头移动可能具有与爆炸相同的事件识别标志。在该实施例中,使用运动向量方向来区分实际的爆炸事件的检测或由于突然的镜头移动导致的爆炸事件的错误检测。
在块360,生成一个或多个触觉效果。在示例中,处理器被效果生成模块配置为生成与事件检测模块所确定的视频中的一个或多个事件相对应的一个或多个触觉效果。例如,图1C中的处理器102可以被效果生成模块128配置为生成与所确定的视频中的事件相对应的触觉效果。作为另一示例,处理器202和/或处理器203可以被效果生成模块228配置为生成与视频中的事件相对应的触觉效果。
在示例中,所生成的触觉效果具有与所生成的光流估计中的运动向量相对应的强度参数。例如,所生成的触觉效果可以具有与光流估计的与块340中确定的事件相对应的区域中的运动向量的平均大小相对应的强度参数。作为另一示例,所生成的触觉效果可以具有与针对如上所述的块320-340讨论的两个掩码帧所生成的光流估计中的运动向量的平均大小相对应的强度参数。
在一些实施例中,所生成的触觉效果具有与在针对两个以上掩码帧生成的光流估计中选择的运动向量中具有最小大小的运动向量相对应的强度参数(该光流估计对应于在块340中确定的事件)。在示例中,所生成的触觉效果具有与针对两个以上掩码帧生成的光流估计中的最大运动向量相对应的强度参数(该光流估计对应于在块340中确定的事件)。在其他示例中,所生成的触觉效果具有与针对两个以上掩码帧所生成的光流估计中的运动向量的平均大小或中间大小相对应的强度参数。在一些示例中,所生成的触觉效果具有与候选斑点的大小(例如,候选斑点的大小的比例)在第一视频帧和第二视频帧之间的变化相对应的强度参数。
可以基于与检测出的事件相对应的大小和/或速度动态地生成magsweep效果。例如,图7A示出了根据实施例的针对具有大爆炸的视频生成的触觉效果的示例。如图7A所示,所生成的触觉效果的强度在爆炸开始时迅速从0增大到大约1,然后随着爆炸逐渐消失而随着时间减小直到爆炸结束后强度返回到0为止。作为另一示例,图7B示出了根据实施例的针对具有小爆炸的视频生成的触觉效果的示例。如图7B所示,所生成的触觉效果的强度再次迅速增大,但是这次强度达到最大大约0.25并且随后随着爆炸逐渐消失而随着时间减小直到爆炸结束后强度返回到0。
如上所述,在一些实施例中,可以通过调整强度参数来定制触觉效果。在一些示例中,可以通过调整与触觉效果对应的一个或多个参数来调节触觉效果。在实施例中,可以至少部分地基于彩色区域的大小在掩码帧之间的增加、所生成的光流估计中的运动向量的速度、和/或检测出的事件的消失速度来调整该一个或多个参数。
在一些实施例中,可以通过对视频进行重新编码来将所生成的一个或多个触觉效果集成到视频中,来将所生成的一个或多个触觉效果存储在视频中。在其他实施例中,可以将所生成的一个或多个触觉效果存储在单独文件中,或者可以将所生成的一个或多个触觉效果添加到视频而无需对视频进行重新编码。例如,可以生成具有所生成的触觉效果的触觉跟踪,并且将该触觉跟踪存储为与所接收的视频分离的触觉文件。在该示例中,在视频被播放时可以提取触觉文件,并且可以输出触觉效果中与在视频中检测出的事件对应的触觉效果。在这些示例中,在视频被播放时输出的触觉效果的强度可以与在视频中检测出的事件相对应。
在一些实施例中,可以实时将所生成的一个或多个触觉效果输出到一个或多个触觉输出设备。例如,再次参考图2,由处理器202和/或处理器203生成的被配置为使得触觉输出设备输出触觉效果的触觉输出信号可以被发送给触觉输出设备222。在该示例中,触觉输出信号被发送给触觉输出设备222,使得所生成的触觉效果在与对应于所确定的事件的视频帧相对应的时间被输出,所确定的事件也与所生成的触觉效果相对应并且被显示在显示器234上。因此,在实施例中,可以应用颜色掩码,可以生成光流估计,可以检测事件,并且可以生成并实时输出触觉效果,使得不具有与事件相对应的触觉效果的视频可以被触觉增强,从而使得触觉效果在视频被播放时在与事件相对应的时间被输出。
现在参考图8,图8示出了根据实施例的基于颜色特征和运动估计自动生成触觉的示例方法800。将参考图1A、1B、1C、和/或2;但是,根据各种实施例,根据本公开的任意适当设备可以被用来基于颜色特征和运动分析自动生成触觉效果。
当接收到视频时,方法800在块810开始。例如,可以通过本文描述的一种或多种方式接收视频,如针对图3的块310所述。
在块820,检测连续帧之间的事件。例如,可以如下检测事件:通过生成掩码帧和/或生成针对所接收的视频的光流估计来检测事件,如针对图3的块320、330、340、和/或块350所述。在实施例中,事件是视频中的连续帧之间的运动,例如,扩张、收缩、旋转、冲突、震动等。在一些示例中,至少部分地基于候选斑点的大小在第一视频帧和第二视频帧之间的变化来检测事件。
在一些实施例中,基于所接收的压缩视频中的参考帧来生成光流估计。例如,可以在压缩视频中的参考帧(例如,帧内编码图像帧,也称为I帧)和压缩视频中的后续相邻帧(例如,预测图像帧,也称为P帧)之间生成光流估计。在一些示例中,可以在压缩视频中的参考帧与后续非相邻帧(例如,双向预测图像帧,也称为B帧)之间生成光流估计。在一个示例中,在P帧和B帧之间生成光流估计。在一些示例中,可以针对多个帧生成光流估计。例如,可以在I帧、P帧、以及B帧之间生成光流估计。可以在多个参考帧、预测图像帧、和/或双向预测图像帧上生成光流估计。如上面讨论的,在视频中的视频帧之间生成的一个或多个光流估计可以具有一个或多个运动向量,分析该一个或多个运动向量来确定视频中的事件的发生。
可以基于一个或多个预测帧(例如,P帧和/或B帧)来确定帧之间的事件的检测。在一些示例中,包含图像数据、运动向量位移、或者它们二者。通常,预测帧比非预测帧(例如,I帧)需要更少的比特进行编码。在这些示例中,可以基于预测帧中的图像数据、运动向量位移、或者它们二者来检测压缩视频中的事件。在一些示例中,不需要对来自相应I帧的图像数据进行分析来确定视频中是否发生了事件。例如,如果图像数据和/或运动向量位移指示预测帧中的所有或绝大多数像素移动,则可以检测到针对这些帧的事件。在该示例中,事件与记录视频的镜头的移动相对应。作为另一示例,如果图像数据和/或运动向量位移指示物体正在移动并且一个或多个帧中围绕该物体的像素也在移动,则可以针对对应于移动通过空间的物体的这些帧检测事件。如果图像数据和/或运动向量位移指示物体正在移动但是一个或多个帧中围绕该物体的像素没有移动,则可以针对对应于移动通过静止场景的物体的这些帧检测事件。例如,其可以指示汽车正在沿着空马路行驶的突然移动。
在块830,确定与在所接收的视频中检测出的事件相对应的参数。例如,可以基于针对所接收的视频生成的光流估计,确定与检测出的事件相对应的参数,如以上针对图3的块360所述。
如以上针对图8的块820所讨论的,可以至少部分地基于所接收的视频中的预测帧来生成光流估计。在这些示例中,与检测出的事件相对应的参数可以基于预测帧中的信息,例如,预测帧中的图像数据、或运动向量位移、或它们二者。例如,可以将触觉效果的强度参数与一个或多个预测帧(例如,P帧和/或B帧)中的运动向量位移相关联。在该示例中,较强的触觉效果与由一个或多个预测帧中的运动向量位移所确定的视频中的事件有关。
在块840,生成与事件相对应的触觉效果。在一些示例中,触觉效果至少部分地基于所确定的事件的参数。例如,触觉效果的强度可以基于事件的参数。在该示例中,事件的较大参数导致所生成的触觉效果具有较大的相应强度。例如,可以生成触觉效果并将该触觉效果输出给触觉输出设备,以使触觉输出设备在视频中的相应事件被显示时输出所生成的触觉效果。在该示例中,所生成的触觉效果可以具有与对应于检测出的事件相对应的估计光流中的一个或多个运动向量相对应的强度参数。在一些示例中,生成触觉效果并将该触觉效果存储在触觉跟踪中。可以通过上述方式中的一种或多种方式生成并输出触觉效果,例如,针对图3的块350所述。
尽管这里的设备、系统、和方法的一些示例被描述为在各种机器上执行的软件的形式,但是这些方法和系统也可以被实现为专门配置的硬件,例如,专门执行各种方法的现场可编程门阵列(FPGA)。例如,可以在数字电子电路、或者在计算机硬件、固件、软件、或者在它们的组合中实现示例。在一个示例中,设备可以包括一个或多个处理器。处理器可以包括耦合到处理器的计算机可读介质,例如,随机存取存储器(RAM)。处理器执行存储器中存储的计算机可执行程序指令,例如,执行用于编辑图像的一个或多个计算机程序。这些处理器可以包括微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、以及状态机。这些处理器还可以包括可编程电子器件,例如,PLC、可编程中断控制器(PIC)、可编程逻辑器件(PLD)、可编程只读存储器(PROM)、电可编程只读存储器(EPROM或EEPROM)、或者其他类似设备。
这些处理器可以包括或者可以与例如,计算机可读存储介质的介质通信,该介质可以存储在被处理器执行时可以促使处理器执行这里描述为由处理器执行或者帮助的步骤的指令。计算机可读介质的示例可以包括但不限于,电、光、磁、或者能够向处理器(例如,网络服务器中的处理器)提供计算机可读指令的其他存储设备。介质的其他示例包括但不限于,软盘、CD-ROM、磁盘、存储器芯片、ROM、RAM、ASIC、配置处理器、所有光学介质、所有磁带或其他磁介质、或者计算机处理器可以从其读取的任何其他介质。所描述的处理器和处理可以在一个或多个结构中,并且可以分散在一个或多个结构中。处理器可以包括用于实现本文描述的方法中的一种或多种方法(这些方法的一部分)的代码。
仅出于说明和描述的目的给出了一些示例的上述描述,这些描述不是穷尽的描述并且不用于将本公开限制到所公开的精确形式。在不偏离本公开的精神和范围的条件下,很多变形和修改对于本领域技术人员来说是显而易见的。
这里参考示例或实施方式意味着结合示例描述的特定特征、结构、操作或者其他特性可以被包括在本公开的至少一种实施方式中。本公开不限于这里描述的特定示例或实施方式。在说明书中的不同位置出现的短语“在一个示例中”、“在示例中”、“在一种实施方式中”、或“在实施方式中”或者它们的变形不一定指代相同的示例或实施方式。本说明书中与一个示例或一种实施方式相关描述的任何特定特征、结构、操作、或其他特性可以与在任意其他示例或实施方式中描述的其他特征、结构、操作、或其他特性结合。

Claims (21)

1.一种方法,包括:
接收具有多个帧的视频;
通过向所述多个帧中的第一帧应用第一颜色掩码,生成第一掩码帧;
通过向所述多个帧中的第二帧应用第二颜色掩码,生成第二掩码帧,其中,所述第二帧在所述第一帧之后;
检测所述第一掩码帧和所述第二掩码帧之间的事件;
估计所述第一掩码帧和所述第二掩码帧之间的光流;
至少部分地基于所述光流,生成与所述事件相对应的触觉效果;以及
通过触觉输出设备产生所述触觉效果。
2.如权利要求1所述的方法,其中,所述第一颜色掩码和所述第二颜色掩码是相同的颜色掩码。
3.如权利要求1所述的方法,其中,所述第一帧和所述第二帧是所述多个帧中的连续帧。
4.如权利要求1所述的方法,其中,在所述多个帧中,所述第二帧与所述第一帧相距至少一帧,并且所述第二帧邻近所述第一帧。
5.如权利要求1所述的方法,其中,所述第二帧是至少部分地基于所述视频的帧率从所述多个帧中选择的。
6.如权利要求1所述的方法,其中,所估计的光流包括多个运动向量。
7.如权利要求6所述的方法,其中,所述触觉效果至少部分地基于所述多个运动向量。
8.如权利要求6所述的方法,还包括:
至少通过估计所述多个运动向量的子集中的每个运动向量的相应方向,确定是否存在所述事件的错误检测。
9.如权利要求8所述的方法,其中,所述事件对应于爆炸。
10.如权利要求9所述的方法,还包括:
响应于确定所述多个运动向量的子集中的各个方向全部指向相同的方向或基本相同的方向,确定存在所述事件的错误检测。
11.如权利要求9所述的方法,还包括:
响应于确定所述多个运动向量的子集中的各个方向全部指向完全不同的方向,确定不存在所述事件的错误检测。
12.如权利要求9所述的方法,还包括:
响应于确定所述多个运动向量的子集中的各个方向全部指向随机方向,确定不存在所述事件的错误检测。
13.如权利要求8所述的方法,其中,所述事件与捕捉所述视频的镜头的移动或所述视频中的相似颜色的物体的移动中的至少一者相对应。
14.如权利要求13所述的方法,还包括:
响应于确定所述多个运动向量的所述子集中的各个方向全部指向相同的方向或基本相同的方向,确定不存在所述事件的错误检测。
15.如权利要求13所述的方法,还包括:
响应于确定所述多个运动向量的所述子集中的各个方向全部指向完全不同的方向,确定存在所述事件的错误检测。
16.一种非暂态计算机可读介质,包括被配置为将由处理器执行的一个或多个软件应用,所述一个或多个软件应用被配置为:
接收具有多个帧的视频;
通过向所述多个帧中的第一帧应用颜色掩码,生成第一掩码帧;
通过向所述多个帧中的第二帧应用所述颜色掩码,生成第二掩码帧,其中,所述第二帧在所述第一帧之后;
检测所述第一掩码帧和所述第二掩码帧之间的事件;
估计所述第一掩码帧和所述第二掩码帧之间的光流;
至少部分地基于所述光流,生成与所述事件相对应的触觉效果;以及
通过触觉输出设备产生所述触觉效果。
17.如权利要求16所述的非暂态计算机可读介质,其中,所估计的光流包括多个运动向量。
18.如权利要求17所述的非暂态计算机可读介质,其中,所述一个或多个软件应用还被配置为:
至少部分地基于所述事件的类型和所述多个运动向量的子集中的每个运动向量的相应方向是否全部指向类似方向,确定是否存在所述事件的错误检测。
19.如权利要求18所述的非暂态计算机可读介质,其中,所述一个或多个软件应用还被配置为:
在所述事件的类型是爆炸并且所述多个运动向量的所述子集中的各个方向不是全部指向类似方向的情况下,确定不存在所述事件的错误检测。
20.如权利要求18所述的非暂态计算机可读介质,其中,所述一个或多个软件应用还被配置为:
在所述事件的类型与捕捉所述视频的镜头的移动或所述视频中的类似颜色的物体的移动中的至少一者相对应并且所述多个运动向量的所述子集中的各个方向全部指向类似方向的情况下,确定不存在所述事件的错误检测。
21.一种设备,包括:
显示器;
触觉输出设备;以及
与所述显示器和所述触觉输出设备通信的处理器,其中,所述处理器被配置为:
接收具有多个帧的视频;
通过向所述多个帧中的第一帧应用第一颜色掩码,生成第一掩码帧;
通过向所述多个帧中的第二帧应用第二颜色掩码,生成第二掩码帧,其中,所述第二帧在所述第一帧之后;
检测所述第一掩码帧和所述第二掩码帧之间的事件;
估计所述第一掩码帧和所述第二掩码帧之间的光流;
至少部分地基于所述光流,生成使得所述触觉输出设备输出与所述事件相对应的触觉效果的触觉信号;
将所述第一帧和所述第二帧输出到所述显示器;以及
将所述触觉信号输出到所述触觉输出设备,以使得所述触觉输出设备在所述第二帧被显示在所述显示器上时产生所述触觉效果。
CN201711328531.3A 2016-12-14 2017-12-13 基于颜色特征和运动分析的自动触觉生成 Pending CN108227915A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/378,929 2016-12-14
US15/378,929 US10101813B2 (en) 2016-12-14 2016-12-14 Automatic haptic generation based on color features and motion analysis

Publications (1)

Publication Number Publication Date
CN108227915A true CN108227915A (zh) 2018-06-29

Family

ID=60781555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711328531.3A Pending CN108227915A (zh) 2016-12-14 2017-12-13 基于颜色特征和运动分析的自动触觉生成

Country Status (5)

Country Link
US (2) US10101813B2 (zh)
EP (1) EP3336659A1 (zh)
JP (1) JP2018109961A (zh)
KR (1) KR20180068873A (zh)
CN (1) CN108227915A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11656683B2 (en) 2018-08-10 2023-05-23 Sony Corporation Signal generation device, signal generation method, and reproduction device

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10768704B2 (en) * 2015-03-17 2020-09-08 Whirlwind VR, Inc. System and method for modulating a peripheral device based on an unscripted feed using computer vision
US10698988B2 (en) * 2017-03-30 2020-06-30 Cisco Technology, Inc. Difference attack protection
US11586291B2 (en) * 2019-05-12 2023-02-21 NeuroHaptics, Inc. Motion sickness reduction device
US20230214020A1 (en) * 2022-01-06 2023-07-06 Qualcomm Incorporated Audio-video-haptics recording and playback

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099177A (ja) * 2001-09-21 2003-04-04 Fuji Xerox Co Ltd 触覚情報作成方法、触覚情報提示方法および触覚情報提示装置
CN101699512A (zh) * 2009-10-30 2010-04-28 无锡景象数字技术有限公司 一种基于背景差异抠图和稀疏光流法的深度的生成方法
EP2779675A2 (en) * 2013-03-15 2014-09-17 Immersion Corporation Computer-implemented method and system of providing haptic feedback
US20150268723A1 (en) * 2014-03-21 2015-09-24 Immersion Corporation Automatic tuning of haptic effects
CN105027550A (zh) * 2012-11-06 2015-11-04 阿尔卡特朗讯公司 用于处理视觉信息以检测事件的系统和方法
CN105100688A (zh) * 2014-05-12 2015-11-25 索尼公司 图像处理方法、图像处理装置和监视系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002091302A2 (en) * 2001-05-04 2002-11-14 Legend Films, Llc Image sequence enhancement system and method
US8700791B2 (en) * 2005-10-19 2014-04-15 Immersion Corporation Synchronization of haptic effect data in a media transport stream
US8711118B2 (en) * 2012-02-15 2014-04-29 Immersion Corporation Interactivity model for shared feedback on mobile devices
US9880623B2 (en) * 2013-01-24 2018-01-30 Immersion Corporation Friction modulation for three dimensional relief in a haptic device
US10437341B2 (en) * 2014-01-16 2019-10-08 Immersion Corporation Systems and methods for user generated content authoring
US20150241970A1 (en) * 2014-02-27 2015-08-27 Samsung Electronics Co., Ltd. Method and apparatus for providing haptic effect
US9501915B1 (en) * 2014-07-07 2016-11-22 Google Inc. Systems and methods for analyzing a video stream
US9719759B2 (en) * 2014-09-19 2017-08-01 ARC Technology, LLC Haptic feedback device for simulator
EP3007425A1 (en) * 2014-10-08 2016-04-13 Thomson Licensing Method and apparatus for detecting defects in digitized image sequences
US10475186B2 (en) * 2016-06-23 2019-11-12 Intel Corportation Segmentation of objects in videos using color and depth information
US10686969B2 (en) * 2016-07-08 2020-06-16 NETFLIX Inc. Detecting shot changes in a video
US10102723B2 (en) * 2016-10-31 2018-10-16 Immersion Corporation Dynamic haptic generation based on detected video events

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099177A (ja) * 2001-09-21 2003-04-04 Fuji Xerox Co Ltd 触覚情報作成方法、触覚情報提示方法および触覚情報提示装置
CN101699512A (zh) * 2009-10-30 2010-04-28 无锡景象数字技术有限公司 一种基于背景差异抠图和稀疏光流法的深度的生成方法
CN105027550A (zh) * 2012-11-06 2015-11-04 阿尔卡特朗讯公司 用于处理视觉信息以检测事件的系统和方法
EP2779675A2 (en) * 2013-03-15 2014-09-17 Immersion Corporation Computer-implemented method and system of providing haptic feedback
CN104049749A (zh) * 2013-03-15 2014-09-17 英默森公司 产生来自视频内容分析的触觉反馈的方法和设备
US20140267904A1 (en) * 2013-03-15 2014-09-18 Immersion Corporation Method and apparatus to generate haptic feedback from video content analysis
US20150268723A1 (en) * 2014-03-21 2015-09-24 Immersion Corporation Automatic tuning of haptic effects
CN105100688A (zh) * 2014-05-12 2015-11-25 索尼公司 图像处理方法、图像处理装置和监视系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11656683B2 (en) 2018-08-10 2023-05-23 Sony Corporation Signal generation device, signal generation method, and reproduction device

Also Published As

Publication number Publication date
KR20180068873A (ko) 2018-06-22
JP2018109961A (ja) 2018-07-12
US20190041989A1 (en) 2019-02-07
US20180164887A1 (en) 2018-06-14
US10101813B2 (en) 2018-10-16
EP3336659A1 (en) 2018-06-20

Similar Documents

Publication Publication Date Title
US11676349B2 (en) Wearable augmented reality devices with object detection and tracking
CN108227915A (zh) 基于颜色特征和运动分析的自动触觉生成
US11412108B1 (en) Object recognition techniques
US20220276713A1 (en) Touch Display Device with Tactile Feedback
US9613262B2 (en) Object detection and tracking for providing a virtual device experience
EP2630563B1 (en) Apparatus and method for user input for controlling displayed information
US9626015B2 (en) Power consumption in motion-capture systems with audio and optical signals
US8135440B2 (en) System for using mobile communication terminal as pointer and method and medium thereof
US9792362B2 (en) Video search system and method
CN108230360A (zh) 基于视觉里程计的自动触觉生成
KR20150046105A (ko) 멀티모드 피드백으로 이미지를 인식하는 시스템 및 방법
US11537196B2 (en) Drift cancelation for portable object detection and tracking
KR101710198B1 (ko) 홀로그램 객체 표시 방법
EP2706531A1 (en) An image enhancement apparatus
KR102096883B1 (ko) 광고 제공방법 및 이를 수행하는 시스템
WO2015028713A1 (en) An image enhancement apparatus and method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180629

WD01 Invention patent application deemed withdrawn after publication