CN108230360A - 基于视觉里程计的自动触觉生成 - Google Patents

基于视觉里程计的自动触觉生成 Download PDF

Info

Publication number
CN108230360A
CN108230360A CN201711330115.7A CN201711330115A CN108230360A CN 108230360 A CN108230360 A CN 108230360A CN 201711330115 A CN201711330115 A CN 201711330115A CN 108230360 A CN108230360 A CN 108230360A
Authority
CN
China
Prior art keywords
frame
video
light stream
haptic
motion vector
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
CN201711330115.7A
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 CN108230360A publication Critical patent/CN108230360A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B6/00Tactile signalling systems, e.g. personal calling systems
    • 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
    • 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/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • 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/269Analysis of motion using gradient-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • 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
    • H04N5/145Movement estimation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Studio Devices (AREA)

Abstract

本公开涉及基于视觉里程计的自动触觉生成。公开了基于视觉里程计自动生成触觉的设备、***、和方法的示例。在一个示例中,接收具有多个帧的视频并且创建来自该多个帧的第一帧和来自该多个帧的第二帧之间的光流估计。在该示例中,第二帧在第一帧之后。在该示例中,至少部分地基于光流估计检测静止物体在第一帧和第二帧之间的视在移动,并且至少部分地基于光流估计生成与静止物体的视在移动相对应的至少一个触觉效果。可以将所生成的一个或多个触觉效果输出到触觉文件或触觉输出设备或它们二者。

Description

基于视觉里程计的自动触觉生成
技术领域
本申请一般地涉及触觉设备,更一般地涉及基于视觉里程计的自动触觉生成。
背景技术
传统上,机械按钮向电子设备的用户提供物理触觉。但是,随着电子设备的大小的减小以及电子设备的便携性的增加,电子设备上的机械按钮的数目减少甚至一些电子设备不具有任何机械按钮。触觉输出设备可以被包括在这样的设备中,以向用户输出触觉效果。
发明内容
描述了基于视觉里程计(visual odometry)自动生成触觉的设备、***、和方法的各种示例。
公开的一种示例方法包括:接收具有多个帧的视频;确定第一帧和第二帧之间的光流估计,其中,第二帧在第一帧之后;至少部分地基于光流估计,检测静止物体在第一帧和第二帧之间的视在移动(apparent movement);至少部分地基于光流估计,生成与静止物体的视在移动相对应的触觉效果;以及通过触觉输出设备产生触觉效果。
公开的一种示例非暂态计算机可读介质,包括被配置为将由处理器执行的一个或多个软件应用。在该示例中,一个或多个软件应用被配置为:接收具有多个帧的视频;确定第一帧和第二帧之间的光流估计,其中,第二帧在第一帧之后;至少部分地基于光流估计,检测静止物体在第一帧和第二帧之间的视在移动;至少部分地基于光流估计,生成与静止物体的视在移动相对应的触觉效果;以及通过触觉输出设备产生触觉效果。
公开的一种被配置为产生触觉效果的示例设备包括镜头、显示器、触觉输出设备、以及处理器。在该示例中,处理器与镜头、显示器、以及触觉输出设备通信。在该示例中,处理器被配置为:从镜头接收具有多个帧的视频;确定第一帧和第二帧之间的光流估计,其中,第二帧在第一帧之后;至少部分地基于光流估计,检测静止物体在第一帧和第二帧之间的视在移动;至少部分地基于光流估计,生成被配置为使得触觉输出设备输出与静止物体的视在移动相对应的触觉效果的触觉信号;将第一帧和第二帧输出到显示器;以及将触觉信号输出到触觉输出设备,以使得触觉输出设备在第二帧被显示在显示器上时产生触觉效果。
所提到的这些说明性示例不用于限制或限定本公开的范围,而用于提供帮助理解本公开的示例。在提供进一步描述的具体实施例部分详细描述说明性示例。通过审查本说明书可以进一步理解各种示例提供的优点。
附图说明
本专利或申请文件包括至少一幅彩色附图。本专利或专利申请公开的具有一幅或多幅彩色附图的副本将根据请求和必要费用的支付由专利局提供。
结合到本说明书中并且组成本说明书的一部分的附图示出了一个或多个具体示例并且与示例的描述一起用来说明具体示例的原理和实施方式。
图1A、1B、和1C示出了根据实施例的用于基于视觉里程计自动生成触觉的示例计算设备。
图2示出了根据实施例的用于基于视觉里程计自动生成触觉的示例***。
图3示出了根据实施例的基于视觉里程计自动生成触觉的示例方法。
图4示出了根据实施例的针对视频帧的示例光流估计。
图5A示出了根据实施例的针对在描绘森林的视频中所检测的局部区域中的特征像素的示例光流估计。
图5B示出了根据实施例的针对在描绘山脉的视频中所检测的局部区域中的特征像素的示例光流估计。
图6A和6B示出了根据实施例的从一帧(图6A)到另一帧(图6B)的示例垂直镜头移位。
图7A示出了根据实施例的针对在土路上骑行的山地车的视频所生成的示例触觉效果。
图7B示出了根据实施例的针对在石头上骑行的山地车的视频所生成的示例触觉效果。
图8示出了根据实施例的基于视觉里程计自动生成触觉的示例方法。
具体实施方式
这里,在基于视觉里程计自动生成触觉的设备、***、和方法的背景下描述示例。在实施例中,这里使用的视觉里程计是指通过分析视频中的视频帧来确定静止物体在视频中的帧之间的视在移动从而检测出的镜头在记录视频时的移动,其中,静止图像在帧之间的视在移动指示镜头的移动。本领域普通技术人员将认识到,下面的描述只是说明性的,而不用于通过任何方式进行限制。现在将详细参考附图中示出的示例实施方式。贯穿附图和下面的描述使用相同的参考指示符来指代相同或相似的项目。
为了简明,这里没有示出所描述的示例的所有常规特征。当然,将理解的是,在任意这样的实际实施方式的开发中,可以做出各种特定于实施方式的决定,以便实现开发者的具体目标,例如,符合应用和商业相关的约束,并且这些具体目标可以是基于实施方式和开发者而有所不同的。
在一个说明性示例中,运动型镜头(action camera)允许用户记录视点(point-of-view)视频。在这个示例中,在用户使用运动型镜头来记录视点视频后,可以基于视觉里程计自动生成针对视点视频的触觉效果并将该触觉效果添加到视点视频。由于已经从第一人角度记录了视点视频,所以可以基于运动型镜头的移动来估计记录视点视频的人的运动。另外,可以生成与移动相对应的触觉效果并将该触觉效果存储在触觉文件中,从而使得与视点视频中的移动相对应的触觉效果在视点视频被播放时被输出。
在该示例中,生成与视点视频中的静止物体在垂直方向的明显的突然移动相对应的触觉效果。因为物体被假定为是静止的,所以在该示例中,所记录的视点视频中的静止物体的明显的突然移动是由运动式镜头在记录视频时的移动导致的。在该示例中,基于在视点视频被记录时镜头的移动速度来生成触觉效果。例如,可以基于静止物体在视点视频的连续帧之间在垂直方向的视在移动的大小来生成触觉效果。静止物体在连续帧之间在垂直方向的视在移动的大小可以近似在视点视频被记录时镜头的移动速度。
在该说明性示例中,将触觉效果存储在与视点视频相对应的触觉文件中。例如,可以将触觉效果的时间和大小参数存储在触觉文件中,从而使得在视点视频被播放时,与视点视频中的静止物体的明显的突然的垂直移动相对应的触觉效果被输出。作为一个示例,触觉文件可以存储触觉效果的时间和大小参数,从而使得在视点视频中的静止物体有明显的、大的、突然的垂直移动时输出大触觉效果。作为另一个示例,如果静止物体的明显的、突然的、垂直移动在阈值量以上,则触觉文件具有时间和大小参数,从而使得具有与垂直移动的大小相对应的大小的触觉效果在突然移动在视点视频中被播放时被输出。在该示例中,如果静止物体的明显的、突然的垂直移动在阈值量以下,则触觉文件不具有与该突然移动相对应的时间或大小参数,因此在突然移动在视点视频中被播放时触觉效果不被输出。
给出了说明性示例来向读者介绍本文讨论的一般主题,并且本公开并不限于该示例。下面的部分描述了用于基于视觉里程计自动生成触觉的***和方法的各种附加的非限制性示例和示例。
图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包括程序组件124、126、和128,这些程序组件被描绘为示出了在一些示例中设备如何被配置为基于视觉里程计自动生成触觉。
光流估计模块124将处理器102配置为估计视频中的帧之间的光流。例如,光流估计模块124可以生成视频中的两个连续视频帧之间的光流估计。光流估计模块124可以将处理器102配置为检测视频帧中某些区域中的某些特征像素,当估计光流时将关注这些特征像素。例如,光流估计模块124可以确定视频的视频帧中的一个或多个区域中的这样的一个或多个特征像素,这些特征像素要不是由于捕捉视频的镜头的移动针对附近视频帧应该保持静止。作为一个示例,光流估计模块124可以检测围绕视频帧中所示的一个或多个物体的一个或多个区域中的一个或多个像素,这些物体要不是由于镜头捕捉视频时的移动在后续视频帧(例如,视频中的下一个视频帧)中应该保持静止。该示例不需要针对视频帧的整个区域中的像素生成光流估计,因此可以增大光流估计模块124的效率并减少处理器102所需的处理功率。在实施例中,光流估计模块124可以实现一种算法—例如,相位相关法、基于块的方法、Lucas-Kanade方法、Horn-Schunck方法、Buxton-Buxton方法、Black-Jepson方法、其他适当的差分方法、基于最大流最小截的算法、离散优化法等—以估计视频中两个以上视频帧中的至少一部分帧中的像素之间的光流。
光流估计模块124可以从各种来源接收具有多个帧的视频。例如,光流估计模块124可以从前置镜头134、后置镜头140、或I/O 112接收实时视频。在一个示例中,光流估计模块可以接收存储器104、存储装置114、或I/O 112中存储的视频。在一些示例中,光流估计模块124可以通过网络110接收流传输视频。
在示例中,光流估计模块124将处理器102配置为生成视频中的帧之间的光流估计,例如,本文中针对图3的块320和/或图8的块820所述。尽管光流估计模块124在图1C中被描绘为存储器104中的程序组件,但是在一些示例中,光流估计模块124可以包括被配置为估计光流的硬件。在一些示例中,这种硬件可以包括数模转换器、处理器、微控制器、比较器、放大器、晶体管、以及其他模拟或数字电路。
事件检测模块126将处理器102配置为检测视频中的帧之间的移动。例如,事件检测模块126可以检测视频中的连续帧之间的突然移动。在该示例中,事件检测模块126可以分析光流估计模块124针对连续帧生成的光流估计,以确定是否存在突然移动。在一个示例中,事件检测模块126分析所生成的光流估计中的运动向量的大小。例如,如果所生成的光流估计中的运动向量的平均大小超过阈值大小,则事件检测模块126可以确定当视频被捕捉时镜头运动中发生了突然移动。在一些实施例中,事件检测模块126分析所生成的光流估计中的运动向量的方向。例如,事件检测模块126在确定是否存在突然移动时可以仅分析垂直或基本垂直且朝北或基本朝北的运动向量。
在示例中,事件检测模块126将处理器102配置为检测视频中的帧之间的移动,例如,本文针对图3的块330和/或图8的块820和/或830所述。尽管事件检测模块126在图1C中被描绘为存储器104中的程序组件,但是在一些示例中,事件检测模块126可以包括被配置为检测移动的硬件。在一些示例中,这种硬件可以包括模数转换器、处理器、微控制器、比较器、放大器、晶体管、以及其他模拟或数字电路。
效果生成模块128将处理器102配置为生成针对视频的触觉效果。例如,效果生成模块128可以基于视频中的连续帧之间的突然移动来生成触觉效果。在该示例中,效果生成模块128可以基于事件检测模块126检测到的连续帧之间的突然移动,来确定触觉效果的一个或多个参数。例如,如果事件检测模块126检测到视频的两个连续帧之间的突然移动,则效果生成模块128可以确定与光流估计模块124所生成的光流估计中的运动向量的平均大小相对应的触觉效果的参数。在该示例中,效果生成模块128可以确定与运动向量的平均大小相对应的强度触觉参数,从而使得较大的平均大小产生较大的强度触觉参数。根据一个实施例,较大的触觉强度参数被配置为使得触觉输出设备以比较小的触觉强度参数更大的力输出触觉效果。
效果生成模块128可以通过多种方式输出所生成的触觉效果。例如,效果生成模块128可以在视频被播放时向触觉输出设备118输出所生成的触觉效果。在该示例中,所生成的触觉效果被输出到触觉输出设备118,使得触觉效果与视频同步。例如,如果事件检测模块126检测到突然移动,则效果生成模块128可以向触觉输出设备118输出触觉效果信号,从而使得触觉效果在视频中出现突然移动的同时或基本同时被输出。
作为另一个示例,效果生成模块128可以创建被嵌入在视频中的触觉跟踪。在该示例中,效果生成模块128可以在光流估计模块124所接收的视频中嵌入触觉跟踪。包括触觉跟踪的视频可以被存储在存储器104、存储装置114、和/或I/O 112中。包括触觉跟踪的视频可以通过网络110被发送给另一计算设备。在这些示例中,当视频被播放时,基于光流估计模块124所检测的估计光流、事件检测模块126所检测的突然移动、以及效果生成模块128所生成的触觉效果,输出对应于视频中的突然移动的触觉效果。
在一些示例中,效果生成模块128可以将所生成的触觉效果存储在单独文件中,或者可以将所生成的触觉效果添加到视频中而无需对视频进行重新编码。例如,效果生成模块128可以创建具有所生成的触觉效果的触觉跟踪,并且将触觉跟踪存储在触觉文件中(例如,具有HAPT文件格式的文件)。在该示例中,效果生成模块128可以将触觉跟踪存储在存储器104、存储装置114、和/或I/O 112中。触觉文件可以通过网络110被发送给另一计算设备。在这些示例中,当视频被播放时,对应于视频的触觉文件被从存储器104、存储装置114、I/O112、和/或通过网络110提取,并且触觉文件中指定的由效果生成模块128生成的、与视频中的突然移动相对应的触觉效果被输出。在该示例中,触觉文件中指定的触觉效果对应于光流估计模块124所检测的估计光流、事件检测模块126所检测的突然移动、以及效果生成模块128所生成的触觉效果。
在示例中,效果生成模块128将处理器102配置为生成与视频相对应的触觉效果,例如,本文中针对图3的块340和/或图8的块840所述。尽管效果生成模块128在图1C中被描绘为存储器中的程序组件,但是在一些示例中,效果生成模块128可以包括被配置为生成触觉效果的硬件。在一些示例中,这种硬件可以包括模数转换器、处理器、微控制器、比较器、放大器、晶体管、触觉输出设备、以及其他模拟或数字电路。
现在参考图2,该图是示出根据实施例的用于基于视觉里程计自动生成触觉的示例***的框图。该***包括计算***236。在一些实施例中,计算***236可以包括例如,数字镜头、运动型镜头、360度镜头、智能电话、平板手机、平板电脑、电子阅读器、膝上型电脑、桌面型电脑、便携式游戏设备、医疗设备、机顶盒(例如,DVD播放器、DVR、有线电视盒)、或游戏控制器。
计算***236包括通过总线206与其他硬件通信的处理器202。计算***236还包括存储器204,该存储器包括光流估计模块224、事件检测模块226、以及效果生成模块228。这些组件可以被配置为分别类似于图1C中描绘的存储器104、光流估计模块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、光流估计模块224(未示出)、事件检测模块226(未示出)、以及效果生成模块228(未示出)。计算设备200还可以包括网络接口设备245。处理器203、存储器205、光流估计模块224、事件检测模块226、效果生成模块228、以及网络接口245可以被配置为分别类似于图1C中描绘的处理器102、存储器204、光流估计模块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,该图示出了根据实施例的基于视觉里程计自动生成触觉的示例方法300。在该示例中,方法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可以被光流估计模块124配置为估计光流。作为另一示例,处理器202和/或处理器203可以被光流估计模块224配置为生成光流估计。
本文中使用的光流估计是由捕捉视频的镜头与视频中的物体之间的相对运动导致的视频中的物体在视频帧之间的视在移动的模式。例如,视频可以是示出人走过走廊走向敞开门的视点视频。在该示例中,敞开门的门框在现实中是不移动的静止物体;但是,在视点视频中,门框在视点视频的不同帧中移动,这是因为捕捉视频的镜头正随着人走过走廊走向敞开门而移动。
在该示例中,门框在视频中的帧之间的相对运动与人走过走廊走向敞开门时捕捉视频的镜头的移动相对应。例如,可以生成光流估计,以示出由捕捉视频的镜头与视频中的门框的相对运动导致的视频中的门框在视频的帧之间的视在移动的模式。
可以针对视频中的至少两个帧生成光流估计。例如,在一个实施例中,针对所接收的视频中的两个连续帧生成光流估。在一些示例中,针对所接收的视频中的两个非连续帧生成光流估计。例如,用于生成估计光流的一个帧可以与也用于生成光流估计的另一个帧相距至少一帧。在一个示例中,用于生成光流估计的帧是至少部分地基于视频的帧率从所接收的视频中选择的。例如,视频中用于生成光流估计的两个帧之间的帧数可以大约为视频的帧率的10%。在示例中,在视频中的两个连续帧上生成光流估计。在其他示例中,可以跳过一个或多个帧,并且可以使用时间t处的视频帧和时间(t+x)处的另一视频帧生成光流估计。
在一些示例中,针对在视频帧中检测到的特征生成光流估计。例如,现在参考图4,该图示出了在视频的两个连续帧中检测到的特征之间的估计光流400。在该示例中,估计光流400包括用于生成光流估计的针对该视频的帧中的物体的运动向量,例如,图4所示的运动向量410、420、430、440。在该示例中,在生成估计光流400后,可以分析运动向量来确定视频帧中在生成针对该视频的后续运动向量时将关注的局部区域。例如,可以分析图4所示的运动向量,以找出其中存在基本指向相同方向并且具有基本相同的大小的运动向量簇(例如,运动向量440和局部区域450中的周围运动向量)的局部区域450中的特征像素。
在实施例中,在估计光流之前对视频帧应用滤波器,以减少视频帧中的噪声。在实施例中,对所生成的光流估计应用滤波器,以减少光流估计中的噪声。
在一个实施例中,视频帧中的局域区域中的特征像素是如下确定的:通过分析光流估计中的运动向量确定具有类似方向和/或类似大小的运动向量簇。在该示例中,所确定的局部区域围绕运动向量簇。例如,在图4中,局部区域450围绕具有相似方向和相似大小的运动向量簇。在该示例中,后续的光流估计可以仅针对局部区域中的特征像素生成运动向量,而无需针对视频帧的剩余区域中的像素生成运动向量。在视频中的视频帧中确定如下局部区域,其中,将在该局部区域中找出特征像素并且在未来的光流估计中生成针对视频中的其他视频帧的估计光流,在粗略估计捕捉视频的镜头的运动时,可以通过关注视频的局部区域中的相关特征像素并且忽略视频的其他区域中的其他像素减少处理时间和/或改善精确度。
在其他示例中,可以在生成光流估计之前确定视频帧的局部区域中的特征像素。例如,根据一个实施例,在生成光流估计之前,分析视频中的帧,以确定视频中的静止物体的特征像素。在该示例中,在视频的视频帧中检测在记录视频的镜头没有移动的情况下被期望在视频中保持静止的一个或多个物体。可以在视频的视频帧中检测的静止物体的示例包括但不限于,建筑物及其部分(例如,墙、门、窗户、操作台、楼梯等)、风景(例如,树、森林、山、石头、街道等)、未使用的家居装饰(例如,桌子、椅子、小地毯、画)、未使用的车辆(例如,停泊的车辆、停泊的摩托车等)、或者其他静止物体。在示例中,确定围绕检测到的一个或多个静止物体的一个或多个局部区域,并且仅针对这些局部区域生成估计光流。
在一些示例中,可以确定与视频中的静止物体相对应的特征像素。在一个实施例中,特征像素是与视频中的静止物体的拐角相对应的像素。在其他示例中,特征像素可以是与视频帧中除非捕捉视频的镜头移动否则不应该在视频中的连续和/或后续帧之间移动的静止物体相对应的像素。
可以仅针对在视频的一个或多个帧中的局部区域中检测出的特征像素(而不对视频帧的整个区域的像素)生成运动向量。在生成光流估计之前确定视频中的视频帧中的局部区域中的一个或多个特征像素,可以在粗略估计捕捉视频的镜头的运动时通过关注视频的局部区域中的一个或多个相关特征像素并且忽略视频的其他区域来减少处理时间和/或提高精确度。
例如,再次参考图4,在估计光流400之前(例如,在生成运动向量410、420、430、440等之前)确定局部区域中的特征像素。在该示例中,通过分析画面来检测静止物体460然后选择围绕检测到的静止物体460的区域中的特征像素来确定局部区域450。在该示例中,仅针对局部区域450中的某些像素生成运动向量。在该示例中,不针对局部区域450以外的区域中的像素生成运动向量(例如,将不生成运动向量410、420、430等)。
现在参考图5A和5B,这些图分别示出了根据实施例的针对在视频中的局部区域中检测出的特征像素的相应示例光流估计。例如,图5A示出了较大视频帧的局部区域510。在该示例中,通过检测视频帧中围绕视频帧的描绘森林的部分的区域来确定局部区域510。在该示例中,可以生成具有仅与在较大视频帧中检测出的局部区域510中的特征像素相对应的运动向量(例如,运动向量520)的光流估计。作为另一示例,图5B示出了较大视频帧的局部区域530。在该示例中,通过检测并围绕视频帧的描绘开放的山地景观的区域来确定局部区域540。在该示例中,可以生成具有仅与在较大视频帧中检测出的局部区域510中的特征像素相对应的运动向量(例如,运动向量540)的光流估计。
在示例中,估计光流中的运动向量的数目与在视频的视频帧中检测出的像素特征的数目对应。例如,估计光流可以具有针对在视频帧中检测出的每个像素特征的一个运动向量。在一些示例中,检测出的像素特征与在视频帧中示出的物体的拐角相对应。在其他示例中,检测出的像素特征可以与视频帧中所示的物体的任意类型的视觉特征相对应。在一个实施例中,如果捕捉视频的镜头靠近物体,则视频具有物体的详细视图,并且与该物体对应的很多像素特征被检测到。在该实施例中,估计光流具有很多运动向量。在其他实施例中,如果捕捉视频的镜头远离物体,则视频中的物体不太详细,并且与该物体对应的较少像素特征被检测到。在该实施例中,估计光流可以具有一个运动向量或者仅具有少数运动向量。这样,在一些实施例中,估计光流中的运动向量的数目和运动向量的集中度对应于视频中的物体的数目以及捕捉视频的镜头靠近这些物体的程度。
另外,在一些示例中,如果镜头在捕捉视频时靠近物体并且这些物体非常靠近,则物体相互之间的靠近程度不会影响特征像素的检测并且视频中的物体可以被相互区别(因为视频中的物体的细节)。但是,在其他示例中,如果镜头在捕捉视频时不靠近物体(例如,镜头远离物体)并且这些物体非常靠近,则这些物体的靠近程度会影响像素特征的检测,并且视频中的物体不能相互区别(因为视频中缺少物体的细节)。在该示例中,视频中的两个以上物体可能会由于视频中缺少物体的细节而被检测为单个物体,并且所检测到的特征的数目比镜头更靠近物体时捕捉的物体的情况更少。
例如,与图5A所示的光流估计相对应的视频是在其中存在很多非常靠近的静止物体的森林中记录的,并且记录视频的镜头在视频被记录时靠近森林。但是,与图5B所示的光流估计相对应的视频是在其中的很多静止物体(例如,背景中的树)非常靠近的山上记录的,但是记录视频的镜头在视频被记录时是远离森林的。在该示例中,由于镜头在捕捉与图5A所示的局部区域510的光流估计相对应的视频时比该镜头捕捉与图5B所示的局部区域530的光流估计相对应的视频时更靠近物体,所以图5A中的光流估计中的运动向量520的集中度比图5B中的光流估计中的运动向量540的集中度高。
在一些实施例中,由用户确定进行分析以检测特征像素的局部区域的大小和/或位置。在实施例中,用户可以将特征检测约束到视频中的特定形状(例如,矩形、圆形、三角形、用户描画的任意形状、或者其他形状),并指定该特定形状在视频中所覆盖的位置。例如,用户可以指定应该在开始于视频帧的像素(i,j)并且具有X个像素的宽度和Y个像素的高度的矩形中检测特征。
在其他实施例中,动态确定局部区域的大小和/或位置。在一些实施例中,可以基于运动像素的集中度来动态指定或更新局部区域的大小和位置。例如,在一个视频帧中,可以在整个帧中检测特征,然后可以确定该视频帧中的局部区域并且在后续视频帧中使用该局部区域。所以,如果对整个视频帧1进行分析来确定视频帧1中的像素特征,则可以使用围绕针对视频帧1所确定的一些或所有像素特征的局部区域来确定后续视频帧中的像素特征。在一些示例中,对整个视频帧进行分析来确定局部区域并且在后续视频帧中使用该局部区域的处理在多次请求后被重复。例如,如果对整个视频帧1进行分析来确定局部区域并且使用该局部区域来识别视频帧2到50的像素特征,则可以对整个视频帧51进行分析来确定用于识别视频帧52到100的像素特征的另一局部区域,依次类推。
在一些示例中,如果用户指定了确定像素特征的初始局部区域,则在一个视频帧中可以在该初始局部区域中检测特征,然后可以确定初始局部区域中围绕检测出的特征的另一局部区域。在该示例中,使用动态确定的另一局部区域来检测后续视频帧中的像素特征。
在一个实施例中,所确定的局部区域与视频中的顶部中心区域相对应。例如,图4所示的局部区域450与视频中的顶部中心区域相对应。在各种示例中,所确定的局部区域与视频中的顶部、中心、或下部区域相对应。在一些示例中,所确定的局部区域与视频中的左部、中心、或右部区域相对应。在一些实施例中,局部区域与视频中的顶部、中心、或底部水平区域以及左部、中心、或右部垂直区域相对应。
在块320中估计光流之后,在块330确定视频中的突然移动。在示例中,处理器被事件检测模块配置为至少部分地基于光流估计模块所生成的光流估计来确定视频中的一个或多个突然移动。例如,图1C中的处理器102可以被事件检测模块126配置为确定视频中的突然移动。作为另一示例,处理器202和/或处理器203可以被事件检测模块226配置为检测视频中的突然移动。
在示例中,基于所生成的光流估计中的运动向量确定视频中的突然移动。在一些实施例中,通过仅对与视频的局部区域中的特征像素相对应的运动向量进行分析来确定视频中的突然移动(其中,这些运动向量已经在块320中或者以上针对块320描述的块330中确定),即使存在与局部区域外部的像素相对应的运动向量。在实施例中,在确定运动向量的平均大小时,移除或者忽略光流估计中具有最大大小的一个或多个运动向量和/或具有最小大小的一个或多个运动向量。因为光流估计中具有最大和最小大小的运动向量通常来自噪声,所以在确定运动向量的平均大小时移除或者忽略这些运动向量可以在检测突然移动时提供更大的精确性和/或在将突然移动与适当的触觉效果相匹配时提供更大的精确性。
在一个示例中,如下确定视频中的突然移动:通过分析估计光流中的运动向量来确定一簇运动向量是否指向相同或基本相同的方向。例如,图4所示的光流估计400具有局部区域450中的面向北方的运动向量簇,并且被检测作为视频移动中的突然移动。在一些示例中,可以通过仅对局部区域450中的这些运动向量进行分析,来确定局部区域450中的运动向量簇。在该示例中,可以作为块320的一部分或者作为块330的一部分来确定局部区域450。作为另一示例,可以对运动向量(例如,运动向量410、420、430、440等)进行分析,以确定该向量是否是面向相同方向的运动向量簇的一部分。例如,可以对图4所示的运动向量进行分析,以确定运动向量440是面向相同或者基本相同的北方的运动向量簇的一部分(如图4中的局部区域450所示)并且因此被检测作为视频中的突然移动。
在一些实施例中,突然移动是估计光流中的运动向量所描绘的视频中的连续或相邻帧之间的相同方向的移动(例如,垂直方向的移动、水平方向的移动、或者另一具体方向的移动)。在一些实施例中,光流估计中的至少一些运动向量的平均大小必须在阈值大小以上,以便具有突然移动。
在一些示例中,光流估计中的垂直或基本垂直的运动向量簇与视频中的突然垂直移动相对应,该视频中的突然垂直移动与镜头记录视频时的垂直移动相对应。例如,图6A和6B分别示出了具有基本垂直的运动向量(例如,610、620、630、660、670、680等)的相应光流估计(600,650),并且指示出视频中的与镜头记录视频时的移动相对应的突然垂直移动。
在其他示例中,光流估计中的水平或者基本水平的运动向量簇与视频中的突然水平移动相对应,该视频中的突然水平移动与镜头记录视频时的水平移动相对应。在一些示例中,光流估计中面向相同方向或基本相同方向的运动向量簇与视频中的相同方向或基本相同方向的突然移动相对应,该视频中的相同方向或基本相同方向的突然移动与镜头记录视频时在相同方向或基本相同方向的移动相对应。在一些示例中,与视频相对应的光流估计中的指向相同方向的运动向量与记录视频的镜头的移动速度和/或移动方向相对应。
在块330中确定突然移动后,方法300进行到块340。在块340,生成一个或多个触觉效果。在示例中,处理器被效果生成模块配置为生成与事件检测模块所确定的视频中的一个或多个突然移动相对应的一个或多个触觉效果。例如,图1C中的处理器102可以被效果生成模块128配置为生成与所确定的视频中的突然移动相对应的触觉效果。作为另一个示例,处理器202和/或处理器203可以被效果生成模块228配置为生成与视频中的突然移动相对应的触觉效果。
在示例中,所生成的触觉效果具有与所估计的光流中的运动向量相对应的强度参数。例如,所生成的触觉效果可以具有与光流估计的区域中的运动向量的平均大小相对应的强度参数,这些运动向量与块330中所确定的突然移动相对应。作为另一个示例,所生成的触觉效果可以具有与所确定的局部区域中的运动向量的平均大小相对应的强度参数(如上面针对块320和/或块330讨论的)。在这些示例中,所确定的较大平均大小可以与较大强度参数相对应,并且较大强度参数可以与较强触觉效果相对应。在一些示例中,所确定的局部区域中的运动向量的方向和大小与记录视频的镜头的方向和速度相对应,并且基本类似或者等于记录视频的镜头的方向和速度。
现在参考图7A和7B,这些图示出了与所生成的与视频中的突然移动相对应的触觉效果的示例。在与图7A所示的所生成的触觉效果相对应的视频中,运动型镜头被安装在在土路上骑山地车的人的头盔上。当这个人在土路上骑山地车时,这个人的身体垂直移动,从而使得运动型镜头也垂直移动。如本文所讨论的,光流估计模块(例如,124,224)可以针对运动型镜头所记录的视频生成具有运动向量的光流估计,事件检测模块(例如,126,226)可以基于所生成的光流估计中的垂直或基本垂直的运动向量来确定视频中的突然移动。例如,事件检测模块(例如,126,226)可以基于所生成的光流估计中与人在土路的粗糙部分上骑行并且在跳起后撞击地面等相对应的垂直或基本垂直的运动向量来确定突然移动。在这些示例中,记录视频的镜头在这些动作发生时在垂直方向移动,并且所生成的光流估计中的至少一些运动向量与这些移动相对应。
如示出基于所检测的突然移动所生成的触觉效果的图7A和7B所示,也可以生成与这些移动相对应的触觉效果。如上面讨论的,图7A示出了针对人在土路上骑山地车的视频所生成的触觉效果。图7B示出了针对人在石阶上骑山地车的视频所生成的视觉效果。在实施例中,所生成的触觉效果与视频被记录时镜头的移动相对应。在这些示例中,可以基于估计光流中的运动向量来概略估计相机的移动。例如,光流估计中的一个或多个运动向量的大小可以与所确定的视频被捕捉时镜头的突然移动相对应。作为另一个示例,所确定的局部区域中的一个或多个运动向量的大小(如前所述)可以与视频被记录时镜头的移动相对应。
在一些实施例中,可以通过对视频进行重新编码将所生成的触觉效果集成在视频中,将一个或多个所生成的触觉效果存储在视频中。在其他实施例中,可以将一个或多个所生成的触觉效果存储在单独文件中,或者可以在不对视频进行重新编码的情况下将一个或多个所生成的触觉效果添加到视频。例如,可以生成具有所生成的触觉效果的触觉跟踪,并将其作为与所接收的视频相分离的触觉文件进行存储。在一个示例中,可以在视频被播放时提取该触觉文件,并且可以输出与在视频中检测到的突然移动相对应的触觉效果。在这些示例中,在视频被播放时输出的触觉效果的强度可以与记录视频的镜头的移动方向和/或速度相对应,其中,该镜头的移动方向和/或速度是基于所生成的光流估计中与视频中的突然移动相对应的运动向量概略估计的。
在一些实施例中,可以实时地向一个或多个触觉输出设备输出一个或多个所生成的触觉效果。例如,再次参考图2,可以向触觉输出设备222发送被配置为使得触觉输出设备输出处理器202和/或处理器203生成的触觉效果的触觉输出信号。在该示例中,向触觉输出设备222发送触觉输出信号,以使得触觉输出设备222在与所确定的突然移动所对应的视频帧相对应的时间输出所生成的触觉效果,其中所确定的突然移动也对应于所生成的触觉效果并且被显示在显示器234上。因此,在实施例中,可以生成光流估计,可以检测突然移动,并且可以生成并实时输出触觉效果,从而使得不具有与镜头移动中的突然移动相对应的触觉效果的视频可以被触觉增强,从而在与视频被播放时的镜头移动中的突然移动相对应的时间输出触觉效果。
尽管以上针对单个视频馈送描述了图3所示的方法300,但是利用多个视频馈送使用方法300在本公开的范围内。例如,在实施例中,可以使用来自多个镜头(例如,当并行拍摄时)的视频馈送。在一些实施例中,可以使用数据融合技术(例如,Kalman滤波器),将与视频馈送相对应的估计光流的不同运动向量结合在一起。例如,可以将与第一视频馈送中的第一帧和第二帧相对应的估计光流的运动向量和与第二视频馈送中的第一帧和第二帧相对应的估计光流的运动向量结合在一起。在一些示例中,将来自多个视频馈送的估计光流的运动向量结合在一起提供了更精确的移动估计。
在一些实施例中,将一个或多个估计光流的运动向量与来自嵌入在记录视频的镜头中的传感器的测量结果相结合,来获取更准确的移动估计。例如,可以将来自嵌入在记录视频的镜头中的一个或多个传感器(例如,一个或多个加速度仪、一个或多个陀螺、一个或多个惯性测量单元)的读数与针对视频的一个或多个估计光流的运动向量相结合,来更精确地提供视频的移动估计。在一些示例中,可以使用来自记录视频馈送的镜头中的传感器的测量结果以及多个视频馈送来做出更精确的移动估计。
现在参考图8,图8示出了根据实施例的基于视觉里程计自动生成触觉的示例方法800。将参考图1A、1B、1C、和/或2;但是,根据各种实施例,根据本公开的任意适当设备可以被用来基于视觉里程计自动生成触觉效果。
当接收到视频时,方法800在块810开始。例如,可以通过本文描述的一种或多种方式接收视频,如针对图3的块310所述。
在块820,检测连续帧之间的突然移动。例如,可以如下检测突然移动:通过生成所接收的视频的光流估计来检测突然移动,如针对图3的块320和/或块330所述。在实施例中,突然移动是视频中的连续帧之间的运动,例如,扩张、收缩、旋转、冲突、震动等。
在一些示例中,基于所接收的压缩视频中的参考帧来生成估计光流。例如,可以在压缩视频的参考帧(例如,帧内编码图像帧,也称为I帧)和压缩视频的后续相邻帧(例如,预测图像帧,也称为P帧)之间生成光流估计。在一些示例中,可以在压缩视频的参考帧与后续非相邻帧(例如,双预测图像帧,也称为B帧)之间生成光流估计。在一个示例中,在P帧和B帧之间生成光流估计。在一些示例中,可以针对多个帧生成光流估计。例如,可以在I帧、P帧、以及B帧之间生成光流估计。可以在多个参考帧、预测图像帧、和/或双向预测图像帧上生成光流估计。如上面讨论的,视频中的视频帧之间的一个或多个估计光流可以具有一个或多个运动向量,分析该一个或多个运动向量来确定视频中的突然移动的存在。
可以基于一个或多个预测帧(例如,P帧和/或B帧)来确定帧之间的突然移动的检测。在一些示例中,包含图像数据、运动向量位移、或者它们二者。通常,预测帧比非预测帧(例如,I帧)需要更少的比特进行编码。在这些示例中,可以基于预测帧中的图像数据、运动向量位移、或者它们二者来检测压缩视频中的突然移动。在一些示例中,不需要对来自相应I帧的图像数据进行分析来确定视频中是否发生了突然移动。例如,如果图像数据和/或运动向量位移指示预测帧中的所有或绝大多数像素移动,则可以检测到针对这些帧的突然移动。在该示例中,突然移动与记录视频的镜头的移动相对应。作为另一示例,如果图像数据和/或运动向量位移指示物体正在移动并且一个或多个帧中围绕该物体的像素也在移动,则可以针对对应于移动通过空间的物体的这些帧检测到突然移动。如果图像数据和/或运动向量位移指示物体正在移动但是一个或多个帧中围绕该物体的像素没有移动,则可以针对对应于移动通过静止场景的物体的这些帧检测突然移动。例如,其可以指示汽车正在沿着空马路行驶的突然移动。
在块830,确定与在所接收的视频中所检测出的突然移动相对应的参数。例如,可以基于针对所接收的视频生成的光流估计,确定与所检测出的突然移动相对应的参数,如针对图3的块340所述。
如以上针对图8的块820所讨论的,可以至少部分地基于所接收的视频中的预测帧来生成光流估计。在这些示例中,与所检测出的突然移动相对应的参数可以基于预测帧中的信息,例如,预测帧中的图像数据、或运动向量位移、或它们二者。例如,可以将触觉效果的强度参数与一个或多个预测帧(例如,P帧和/或B帧)中的运动向量位移相关联。在该示例中,较大的运动向量位移导致较大的强度参数被确定,较大的强度参数又导致较强的触觉效果被输出。较强的触觉效果与由预测帧中的运动向量位移所确定的视频运动中的突然移动有关。
在块840,生成与突然移动相对应的触觉效果。在一些示例中,触觉效果至少部分地基于所确定的突然移动的参数。例如,触觉效果的强度可以基于突然移动的参数。在该示例中,较大参数的突然移动导致所生成的触觉效果具有较大的相应强度。例如,可以生成触觉效果并将该触觉效果输出给触觉输出设备,以使触觉输出设备在视频中的相应突然移动被显示时输出所生成的触觉效果。在该示例中,所生成的触觉效果可以具有与对应于所检测的突然移动的估计光流中的一个或多个运动向量相对应的强度参数。在一些示例中,生成触觉效果并将该触觉效果存储在触觉跟踪中。可以通过上述方式中的一种或多种方式生成并输出触觉效果,例如,针对图3的块340所述。
尽管这里的设备、***、和方法的一些示例被描述为在各种机器上执行的软件的形式,但是这些方法和***也可以被实现为专门配置的硬件,例如,专门执行各种方法的现场可编程门阵列(FPGA)。例如,可以在数字电子电路、或者在计算机硬件、固件、软件、或者在它们的组合中实现示例。在一个示例中,设备可以包括一个或多个处理器。处理器可以包括耦合到处理器的计算机可读介质,例如,随机存取存储器(RAM)。处理器执行存储器中存储的计算机可执行程序指令,例如,执行用于编辑图像的一个或多个计算机程序。这些处理器可以包括微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、以及状态机。这些处理器还可以包括可编程电子器件,例如,PLC、可编程中断控制器(PIC)、可编程逻辑器件(PLD)、可编程只读存储器(PROM)、电可编程只读存储器(EPROM或EEPROM)、或者其他类似设备。
这些处理器可以包括或者可以与例如,计算机可读存储介质的介质通信,该介质可以存储在被处理器执行时可以促使处理器执行这里描述为由处理器执行或者帮助的步骤的指令。计算机可读介质的示例可以包括但不限于,电、光、磁、或者能够向处理器(例如,网络服务器中的处理器)提供计算机可读指令的其他存储设备。介质的其他示例包括但不限于,软盘、CD-ROM、磁盘、存储器芯片、ROM、RAM、ASIC、配置处理器、所有光学介质、所有磁带或其他磁介质、或者计算机处理器可以从其读取的任何其他介质。所描述的处理器和处理可以在一个或多个结构中,并且可以分散在一个或多个结构中。处理器可以包括用于实现本文描述的方法中的一种或多种方法(这些方法的一部分)的代码。
仅出于说明和描述的目的给出了一些示例的上述描述,这些描述不是穷尽的描述并且不用于将本公开限制到所公开的精确形式。在不偏离本公开的精神和范围的条件下,很多变形和修改对于本领域技术人员来说是显而易见的。
这里参考示例或实施方式意味着结合示例描述的特定特征、结构、操作或者其他特性可以被包括在本公开的至少一种实施方式中。本公开不限于这里描述的特定示例或实施方式。在说明书中的不同位置出现的短语“在一个示例中”、“在示例中”、“在一种实施方式中”、或“在实施方式中”或者它们的变形不一定指代相同的示例或实施方式。本说明书中与一个示例或一种实施方式相关描述的任何特定特征、结构、操作、或其他特性可以与在任意其他示例或实施方式中描述的其他特征、结构、操作、或其他特性结合。

Claims (20)

1.一种产生触觉效果的方法,包括:
接收具有多个帧的视频;
确定第一帧和第二帧之间的光流估计,其中,所述第二帧在所述第一帧之后;
至少部分地基于所述光流估计,检测静止物体在所述第一帧和所述第二帧之间的视在移动;
至少部分地基于所述光流估计,生成与所述静止物体的所述视在移动相对应的触觉效果;以及
通过触觉输出设备产生所述触觉效果。
2.如权利要求1所述的方法,其中,所述视频包括视频文件、实时视频、或者视点视频中的至少一者。
3.如权利要求1所述的方法,其中,所述第一帧和所述第二帧是所述多个帧中的连续帧。
4.如权利要求1所述的方法,其中,在所述多个帧中所述第二帧与所述第一帧相距至少一帧,并且其中,所述第二帧邻近所述第一帧。
5.如权利要求1所述的方法,其中,所述第二帧是至少部分地基于所述视频的帧率从所述多个帧中选择的。
6.如权利要求1所述的方法,其中,确定所述光流估计包括:
确定所述第一帧的局部区域中的多个特征像素;以及
生成与所述第一帧的所述局部区域中的所述多个特征像素和所述第二帧的局部区域中的相应的多个特征像素相对应的运动向量,所述运动向量指示所述静止物体在所述第一帧和所述第二帧之间的所述视在移动。
7.如权利要求6所述的方法,其中,检测所述静止物体的所述视在移动包括检测所述运动向量的相同方向或者基本相同方向。
8.如权利要求6所述的方法,其中,所述局部区域中的所述多个特征像素是至少部分地基于所述静止物体的检测确定的,并且其中,所确定的局部区域围绕所述静止物体。
9.如权利要求6所述的方法,其中,所述局部区域中的所述多个特征像素与在创建与所述多个帧中除所述第一帧以外的帧相对应的在先光流估计时确定的在先局部区域中的多个特征像素相对应。
10.如权利要求6所述的方法,其中,所述光流估计包括仅与所述局部区域中的特征像素相对应的运动向量。
11.如权利要求6所述的方法,其中,所述局部区域包括与所述第一帧和所述第二帧相对应的顶部中心视图。
12.如权利要求6所述的方法,其中,所述局部区域的大小至少部分地基于检测到的静止物体的数目。
13.如权利要求1所述的方法,其中,通过确定所述光流估计中具有相同方向或基本相同方向的运动向量簇,来检测所述静止物体的所述视在移动。
14.如权利要求13所述的方法,其中,所生成的触觉效果包括与所述运动向量簇中的至少一个运动向量的大小相对应的强度参数。
15.如权利要求1所述的方法,其中,所述触觉效果被输出到触觉跟踪。
16.一种非暂态计算机可读介质,包括被配置为将由处理器执行的一个或多个软件应用,所述一个或多个软件应用被配置为:
接收具有多个帧的视频;
确定第一帧和第二帧之间的光流估计,其中,所述第二帧在所述第一帧之后;
至少部分地基于所述光流估计,检测静止物体在所述第一帧和所述第二帧之间的视在移动;
至少部分地基于所述光流估计,生成与所述静止物体的所述视在移动相对应的触觉效果;以及
通过触觉输出设备产生所述触觉效果。
17.如权利要求16所述的非暂态计算机可读介质,其中,所述光流估计包括多个运动向量,并且基于指向相同方向或基本相同方向的运动向量簇来检测所述静止物体的所述视在移动。
18.如权利要求16所述的非暂态计算机可读介质,其中,所述触觉效果包括至少部分地基于所述运动向量簇中与记录所述视频的镜头的大致移动相对应的运动向量的大小的强度参数。
19.一种被配置为产生触觉效果的设备,包括:
镜头;
显示器;
触觉输出设备;以及
与所述镜头、所述显示器、以及所述触觉输出设备通信的处理器,其中,所述处理器被配置为:
从所述镜头接收具有多个帧的视频;
确定第一帧和第二帧之间的光流估计,其中,所述第二帧在所述第一帧之后;
至少部分地基于所述光流估计,检测静止物体在所述第一帧和所述第二帧之间的视在移动;
至少部分地基于所述光流估计,生成被配置为使得所述触觉输出设备输出与所述静止物体的所述视在移动相对应的触觉效果的触觉信号;
将所述第一帧和所述第二帧输出到所述显示器;以及
将所述触觉信号输出到所述触觉输出设备,以使得所述触觉输出设备在所述第二帧被显示在所述显示器上时产生所述触觉效果。
20.如权利要求19所述的设备,其中,所述第一帧和所述第二帧是所述多个帧中的连续帧。
CN201711330115.7A 2016-12-14 2017-12-13 基于视觉里程计的自动触觉生成 Pending CN108230360A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/378,686 US10600290B2 (en) 2016-12-14 2016-12-14 Automatic haptic generation based on visual odometry
US15/378,686 2016-12-14

Publications (1)

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

Family

ID=60942807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711330115.7A Pending CN108230360A (zh) 2016-12-14 2017-12-13 基于视觉里程计的自动触觉生成

Country Status (5)

Country Link
US (1) US10600290B2 (zh)
EP (1) EP3336660A3 (zh)
JP (1) JP2018109960A (zh)
KR (1) KR20180068867A (zh)
CN (1) CN108230360A (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10600290B2 (en) 2016-12-14 2020-03-24 Immersion Corporation Automatic haptic generation based on visual odometry
US10430671B2 (en) 2017-04-22 2019-10-01 Honda Motor Co., Ltd. System and method for remapping surface areas of a vehicle environment
KR102203109B1 (ko) * 2018-10-18 2021-01-14 한국과학기술원 인공 신경망에 기반한 영상 처리 방법 및 장치
WO2020080616A1 (ko) * 2018-10-18 2020-04-23 한국과학기술원 인공 신경망에 기반한 영상 처리 방법 및 장치
JP7068586B2 (ja) * 2019-01-09 2022-05-17 日本電信電話株式会社 映像処理装置、映像処理方法、及び映像処理プログラム
JP2022097227A (ja) * 2020-12-18 2022-06-30 株式会社Jvcケンウッド 情報提供装置、情報提供方法、およびプログラム
CN113628294B (zh) * 2021-07-09 2023-06-20 南京邮电大学 一种面向跨模态通信***的图像重建方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1549047A2 (en) * 2003-12-23 2005-06-29 Genesis Microchip, Inc. Robust camera pan vector estimation using iterative center of mass
JP2008203992A (ja) * 2007-02-16 2008-09-04 Omron Corp 検出装置および方法、並びに、プログラム
CN101558637A (zh) * 2007-03-20 2009-10-14 松下电器产业株式会社 摄像装置以及摄像方法
AU2008356238A1 (en) * 2008-05-16 2009-11-19 Artivision Technologies Ltd Method and device for analyzing video signals generated by a moving camera
US20120162454A1 (en) * 2010-12-23 2012-06-28 Samsung Electronics Co., Ltd. Digital image stabilization device and method
US20120223880A1 (en) * 2012-02-15 2012-09-06 Immersion Corporation Method and apparatus for producing a dynamic haptic effect
US20140267904A1 (en) * 2013-03-15 2014-09-18 Immersion Corporation Method and apparatus to generate haptic feedback from video content analysis
US20150109528A1 (en) * 2013-10-21 2015-04-23 Postech Academy-Industry Foundation Apparatus and method for providing motion haptic effect using video analysis
CN104932681A (zh) * 2014-03-21 2015-09-23 意美森公司 触觉效果的自动调整

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5973733A (en) * 1995-05-31 1999-10-26 Texas Instruments Incorporated Video stabilization system and method
US7577199B1 (en) * 2003-06-19 2009-08-18 Nvidia Corporation Apparatus and method for performing surveillance using motion vectors
US7660439B1 (en) * 2003-12-16 2010-02-09 Verificon Corporation Method and system for flow detection and motion analysis
US7379566B2 (en) * 2005-01-07 2008-05-27 Gesturetek, Inc. Optical flow based tilt sensor
WO2007033286A2 (en) * 2005-09-13 2007-03-22 Verificon Corporation System and method for object tracking and activity analysis
US7817822B2 (en) * 2005-10-14 2010-10-19 Microsoft Corporation Bi-directional tracking using trajectory segment analysis
US8075499B2 (en) * 2007-05-18 2011-12-13 Vaidhi Nathan Abnormal motion detector and monitor
US9286516B2 (en) * 2011-10-20 2016-03-15 Xerox Corporation Method and systems of classifying a vehicle using motion vectors
KR20140108828A (ko) * 2013-02-28 2014-09-15 한국전자통신연구원 카메라 트래킹 장치 및 방법
US20150194034A1 (en) * 2014-01-03 2015-07-09 Nebulys Technologies, Inc. Systems and methods for detecting and/or responding to incapacitated person using video motion analytics
US9305362B1 (en) * 2014-02-28 2016-04-05 Xilinx, Inc. Image stabilization
US9946348B2 (en) * 2014-03-21 2018-04-17 Immersion Corporation Automatic tuning of haptic effects
US9713982B2 (en) * 2014-05-22 2017-07-25 Brain Corporation Apparatus and methods for robotic operation using video imagery
US9967462B2 (en) * 2015-06-08 2018-05-08 Canon Kabushiki Kaisha Image processing apparatus, method for controlling the same, and image capturing apparatus
ITUB20159613A1 (it) * 2015-12-14 2017-06-14 St Microelectronics Srl Procedimento e sistema di clustering, apparecchiatura e prodotto informatico corrispondenti
US10475186B2 (en) * 2016-06-23 2019-11-12 Intel Corportation Segmentation of objects in videos using color and depth information
US10380745B2 (en) * 2016-09-01 2019-08-13 Massachusetts Institute Of Technology Methods and devices for measuring object motion using camera images
US10110913B2 (en) * 2016-09-30 2018-10-23 Intel Corporation Motion estimation using hybrid video imaging system
US10600290B2 (en) 2016-12-14 2020-03-24 Immersion Corporation Automatic haptic generation based on visual odometry

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1549047A2 (en) * 2003-12-23 2005-06-29 Genesis Microchip, Inc. Robust camera pan vector estimation using iterative center of mass
JP2008203992A (ja) * 2007-02-16 2008-09-04 Omron Corp 検出装置および方法、並びに、プログラム
CN101558637A (zh) * 2007-03-20 2009-10-14 松下电器产业株式会社 摄像装置以及摄像方法
AU2008356238A1 (en) * 2008-05-16 2009-11-19 Artivision Technologies Ltd Method and device for analyzing video signals generated by a moving camera
US20120162454A1 (en) * 2010-12-23 2012-06-28 Samsung Electronics Co., Ltd. Digital image stabilization device and method
US20120223880A1 (en) * 2012-02-15 2012-09-06 Immersion Corporation Method and apparatus for producing a dynamic haptic effect
US20140267904A1 (en) * 2013-03-15 2014-09-18 Immersion Corporation Method and apparatus to generate haptic feedback from video content analysis
US20150109528A1 (en) * 2013-10-21 2015-04-23 Postech Academy-Industry Foundation Apparatus and method for providing motion haptic effect using video analysis
CN104932681A (zh) * 2014-03-21 2015-09-23 意美森公司 触觉效果的自动调整

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IDAKU ISHII ET AL.: "The method (800) involves receiving (810) a video having multiple frames, and determining an optical flow estimate between a first frame and a second frame, where second frame subsequent to the first frame. An apparent movement of a stationary object betwe", 《 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 *
张晓燕等: "《数字视频处理及应用》", 31 January 2014, 西安电子科技大学出版社 *

Also Published As

Publication number Publication date
KR20180068867A (ko) 2018-06-22
US10600290B2 (en) 2020-03-24
EP3336660A2 (en) 2018-06-20
JP2018109960A (ja) 2018-07-12
US20180165926A1 (en) 2018-06-14
EP3336660A3 (en) 2018-10-10

Similar Documents

Publication Publication Date Title
CN108230360A (zh) 基于视觉里程计的自动触觉生成
US11080937B2 (en) Wearable augmented reality devices with object detection and tracking
US10475249B2 (en) Safety for wearable virtual reality devices via object detection and tracking
US10437347B2 (en) Integrated gestural interaction and multi-user collaboration in immersive virtual reality environments
US9613262B2 (en) Object detection and tracking for providing a virtual device experience
US10097754B2 (en) Power consumption in motion-capture systems with audio and optical signals
CN108227915A (zh) 基于颜色特征和运动分析的自动触觉生成
US11537196B2 (en) Drift cancelation for portable object detection and tracking
KR101909132B1 (ko) 영상 정보에 기초하여 음향을 처리하는 방법, 및 그에 따른 디바이스
US11886643B2 (en) Information processing apparatus and information processing 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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180629