CN117981338A - 用于底片快门滞后捕获的低功率融合 - Google Patents
用于底片快门滞后捕获的低功率融合 Download PDFInfo
- Publication number
- CN117981338A CN117981338A CN202280061210.4A CN202280061210A CN117981338A CN 117981338 A CN117981338 A CN 117981338A CN 202280061210 A CN202280061210 A CN 202280061210A CN 117981338 A CN117981338 A CN 117981338A
- Authority
- CN
- China
- Prior art keywords
- frames
- reference frame
- frame
- obtaining
- frame rate
- 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
Links
- 230000004927 fusion Effects 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 254
- 238000012545 processing Methods 0.000 claims abstract description 158
- 230000001131 transforming effect Effects 0.000 claims abstract description 55
- 230000033001 locomotion Effects 0.000 claims description 111
- 238000003860 storage Methods 0.000 claims description 42
- 230000008859 change Effects 0.000 claims description 17
- 238000013519 translation Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 abstract description 140
- 238000012549 training Methods 0.000 description 52
- 238000013528 artificial neural network Methods 0.000 description 51
- 230000009466 transformation Effects 0.000 description 49
- 230000006870 function Effects 0.000 description 42
- 230000007246 mechanism Effects 0.000 description 33
- 238000011176 pooling Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 29
- 230000004913 activation Effects 0.000 description 22
- 238000001994 activation Methods 0.000 description 22
- 230000003287 optical effect Effects 0.000 description 22
- 238000001514 detection method Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 230000011664 signaling Effects 0.000 description 18
- 238000013527 convolutional neural network Methods 0.000 description 13
- 239000013598 vector Substances 0.000 description 13
- 238000013135 deep learning Methods 0.000 description 12
- 238000009877 rendering Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 10
- 238000005259 measurement Methods 0.000 description 10
- 230000009467 reduction Effects 0.000 description 10
- 230000006641 stabilisation Effects 0.000 description 10
- 238000011105 stabilization Methods 0.000 description 10
- 230000003321 amplification Effects 0.000 description 9
- 238000003199 nucleic acid amplification method Methods 0.000 description 9
- 239000002131 composite material Substances 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 230000003190 augmentative effect Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 210000000887 face Anatomy 0.000 description 5
- 239000011521 glass Substances 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000004040 coloring Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 238000003825 pressing Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 230000008485 antagonism Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 210000003128 head Anatomy 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000579895 Chlorostilbon Species 0.000 description 1
- 241000289581 Macropus sp. Species 0.000 description 1
- 241001282135 Poromitra oscitans Species 0.000 description 1
- 206010048232 Yawning Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004873 anchoring Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 229910052876 emerald Inorganic materials 0.000 description 1
- 239000010976 emerald Substances 0.000 description 1
- 230000004399 eye closure Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/95—Computational photography systems, e.g. light-field imaging systems
- H04N23/951—Computational photography systems, e.g. light-field imaging systems by using two or more images to influence resolution, frame rate or aspect ratio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4053—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6811—Motion detection based on the image signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6815—Motion detection by distinguishing pan or tilt from motion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6812—Motion detection based on additional sensors, e.g. acceleration sensors
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Studio Devices (AREA)
- Image Processing (AREA)
Abstract
提供了用于处理一个或多个帧的系统和技术。例如,过程可以包括从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的。过程可以包括从图像捕获系统获得与第二设置域相关联的参考帧,其中,所述参考帧是接近于获得所述捕获输入捕获的。过程可以包括从图像捕获系统获得与第二设置域相关联的第二多个帧,其中,第二多个帧在参考帧之后被捕获。过程可以包括基于参考帧,变换第一多个帧的至少一部分以生成与第二设置域相关联的经变换的多个帧。
Description
技术领域
本公开内容总体上涉及图像和/或视频的捕获,并且更具体地涉及用于执行底片快门滞后捕获的系统和技术。
背景技术
许多设备和系统允许通过生成场景的图像(或帧)和/或视频数据(包括多个帧)来捕获场景。例如,包括相机的相机或设备可以捕获场景的帧序列(例如,场景的视频)。在一些情况下,帧序列可被处理以用于执行一个或多个功能,可以被输出以供显示,可被输出以供其它设备处理和/或消费,以及其它用途。
设备(例如,移动设备)和系统越来越多地利用用于“始终开启”(AON)相机用例的专用超低功率相机硬件,其中相机可以保持开启以连续记录同时维持较低功率使用占用空间。AON相机可以捕获意外事件的图像或视频,其中用户可能无法在事件发生之前发起视频记录。然而,捕获图像或视频的AON相机设置的整体功耗仍然会显著降低移动设备的电池寿命,这通常具有有限的电池寿命AON。在一些情况下,AON相机设置可以利用低功率相机硬件来降低功耗。
发明内容
在一些实例中,描述用于提供底片快门滞后视频和/或图像捕获的系统和技术。根据至少一个说明性示例,提供了一种用于处理一个或多个帧的方法。所述方法包括:从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;从所述图像捕获系统获得与第二设置域相关联的至少一个参考帧,其中,所述至少一个参考帧是接近于获得所述捕获输入捕获的;从所述图像捕获系统获得与所述第二设置域相关联的第二多个帧,其中,所述第二多个帧是在所述至少一个参考帧之后捕获的;基于所述至少一个参考帧,变换所述第一多个帧的至少一部分以生成与所述第二设置域相关联的经变换的多个帧。
在另一示例中,提供了一种用于处理一个或多个帧的装置,其包括:至少一个存储器(例如,被配置为存储数据,诸如虚拟内容数据、一个或多个图像等);以及耦合到所述至少一个存储器的至少一个处理器(例如,在电路系统中实现)。所述一个或多个处理器被配置为执行指令以并且能够:从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;从所述图像捕获系统获得与第二设置域相关联的至少一个参考帧,其中,所述至少一个参考帧是接近于获得所述捕获输入捕获的;从所述图像捕获系统获得与所述第二设置域相关联的第二多个帧,其中,所述第二多个帧是在所述至少一个参考帧之后捕获的;基于所述至少一个参考帧,变换所述第一多个帧的至少一部分以生成与所述第二设置域相关联的经变换的多个帧。
在另一示例中,提供了具有存储于其上的指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器:从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;从所述图像捕获系统获得与第二设置域相关联的至少一个参考帧,其中,所述至少一个参考帧是接近于获得所述捕获输入捕获的;从所述图像捕获系统获得与所述第二设置域相关联的第二多个帧,其中,所述第二多个帧是在所述至少一个参考帧之后捕获的;基于所述至少一个参考帧,变换所述第一多个帧的至少一部分以生成与所述第二设置域相关联的经变换的多个帧。
在另一示例中,提供了一种用于处理一个或多个帧的装置。所述装置包括:用于从图像捕获系统获得与第一设置域相关联的第一多个帧的单元,其中,所述第一多个帧是在获得捕获输入之前捕获的;用于从所述图像捕获系统获得与第二设置域相关联的至少一个参考帧的单元,其中,所述至少一个参考帧是接近于获得所述捕获输入捕获的;用于从所述图像捕获系统获得与所述第二设置域相关联的第二多个帧的单元,其中,所述第二多个帧是在所述至少一个参考帧之后捕获的;用于基于所述至少一个参考帧,变换所述第一多个帧的至少一部分以生成与所述第二设置域相关联的经变换的多个帧的单元。
在一些方面中,所述第一设置域包括第一分辨率,并且所述第二设置域包括第二分辨率。在一些情况下,为了变换第一多个帧的至少一部分,上述方法、装置和计算机可读介质可以包括将第一多个帧的至少一部分从第一分辨率放大到第二分辨率以生成所述经变换的多个帧,其中,所述经变换的多个帧具有第二分辨率。
在一些方面中,上文所描述的方法、设备和计算机可读介质还可以包括:从所述图像捕获系统获得具有所述第二分辨率的额外参考帧,其中,在获得所述捕获输入之前捕获所述额外参考帧,生成具有所述第二分辨率的所述经放大的多个帧是基于所述第一多个帧的至少所述部分、所述至少一个参考帧和所述额外参考帧,以及其中,所述至少一个参考帧提供用于放大所述第一多个帧的至少所述部分的至少第一部分的参考,且所述额外参考帧提供用于放大所述第一多个帧的至少所述部分的至少第二部分的参考。
在一些方面中,上文所描述的方法、设备和计算机可读介质还可以包括:组合所述经变换的多个帧和所述第二多个帧以生成与所述第二设置域相关联的视频。
在一些方面中,上文所描述的方法、设备和计算机可读介质还可以包括:获得与所述第一多个帧相关联的运动信息,其中,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧的至少所述部分、所述至少一个参考帧和所述运动信息的。
在一些方面中,上文所描述的方法、设备和计算机可读介质还可以包括:基于与所述第一多个帧相关联的运动信息来确定平移方向;将所述平移方向应用于所述经变换的多个帧。
在一些方面中,所述第一设置域包括第一帧速率,并且所述第二设置域包括第二帧速率。在一些情况下,在一些情况下,为了变换第一多个帧的至少一部分,上述方法、装置和计算机可读介质可以包括:将所述第一多个帧的至少所述部分从所述第一帧速率进行帧速率转换为所述第二帧速率。
在一些方面中,以所述第一帧速率捕获所述第一多个帧的第一子集,并且以不同于所述第一帧速率的第三帧速率捕获所述第一多个帧的第二子集。在一些情况下,所述第三帧速率等于或不等于所述第二帧速率。在一些方面中,所述第一帧速率与所述第三帧速率之间的改变是至少部分地基于与所述第一多个帧的所述第一子集和所述第一多个帧的所述第二子集中的至少一项相关联的运动信息。
在一些方面中,所述第一设置域包括第一分辨率和第一帧速率,并且所述第二设置域包括第二分辨率和第二帧速率。在一些情况下,在一些情况下,为了变换所述第一多个帧的至少一部分,上述方法、装置和计算机可读介质可以包括:将所述第一多个帧的至少一部分从所述第一分辨率放大到所述第二分辨率,并且将所述第一多个帧的至少所述部分从所述第一帧速率进行帧速率转换为所述第二帧速率。
在一些方面中,上文所描述的方法、设备和计算机可读介质还包括:从所述图像捕获系统获得与所述第二设置域相关联的额外参考帧,其中,所述额外参考帧是在获得所述捕获输入之前捕获的,其中,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧的至少所述部分、至少一个参考帧和所述额外参考帧,以及其中,所述至少一个参考帧提供用于变换所述第一多个帧的至少所述部分的至少第一子集的参考,且所述额外参考帧提供用于变换所述第一多个帧的至少所述部分的至少第二子集的参考。
在一些方面中,上文所描述的方法、设备和计算机可读介质还包括:从所述图像捕获系统获得与所述第二设置域相关联的第二参考帧,其中,所述第二参考帧是接近于获得所述捕获输入捕获的;基于所述第一参考帧,变换所述第一多个帧的至少所述部分以生成与所述第二设置域相关联的所述经变换的多个帧;以及基于所述第二参考帧,变换所述第一多个帧的至少另一部分以生成与所述第二设置域相关联的第二经变换的多个帧。
在一些方面中,上文所描述的方法、设备和计算机可读介质还可以包括:获得与所述第一多个帧相关联的运动估计;从所述图像捕获系统获得与所述第二设置域相关联的第三参考帧,其中,所述第三参考帧是在获得所述捕获输入之前捕获的;以及基于所述第三参考帧,变换所述第一多个帧的第三部分以生成与所述第二设置域相关联的第三经变换的多个帧;其中,所述第一参考帧与所述第三参考帧之间的时间量是基于与所述第一多个帧相关联的所述运动估计。
在一些方面中,第一设置域包括第一分辨率、第一帧速率、第一颜色深度、第一降噪技术、第一边缘增强技术、第一图像稳定技术和第一颜色校正技术中的至少一项,并且第二设置域包括第二分辨率、第二帧速率、第二颜色深度、第二降噪技术、第二边缘增强技术、第二图像稳定技术和第二颜色校正技术中的至少一项。
在一些方面中,上文所描述的方法、设备和计算机可读介质还可以包括:使用可训练神经网络生成所述经变换的多个帧,其中,所述神经网络是使用包括图像对的训练数据集来训练的,每对图像包括与所述第一设置域相关联的第一图像和与所述第二设置域相关联的第二图像。
在一些方面中,接近于获得所述捕获输入捕获所述至少一个参考帧包括:在接收到所述捕获输入之后捕获与所述第二设置域相关联的第一可用帧;在接收到所述捕获输入之后捕获与所述第二设置域相关联的第二可用帧;在接收到所述捕获输入之后捕获与所述第二设置域相关联的第三可用帧;或在接收到所述捕获输入之后捕获与所述第二设置域相关联的第四可用帧。
在一些方面中,在获得所述捕获输入附近捕获所述至少一个参考帧包括:在接收到所述捕获输入之后的10毫秒(ms)内、100ms内、500ms内或1000ms内捕获与所述第二设置域相关联的帧。
根据至少一个其它示例,提供了一种用于处理一个或多个帧的方法。所述方法包括:从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;从所述图像捕获系统获得与第二设置域相关联的参考帧,其中,所述参考帧是接近于获得所述捕获输入捕获的;获得对与所述第一多个帧相关联的一个或多个选定帧的选择;基于所述参考帧,变换所述一个或多个选定帧以生成与所述第二设置域相关联的一个或多个经变换的帧。
在另一示例中,提供了一种用于处理一个或多个帧的装置,其包括:至少一个存储器(例如,被配置为存储数据,诸如虚拟内容数据、一个或多个图像等);以及耦合到所述至少一个存储器的至少一个处理器(例如,在电路系统中实现)。一个或多个处理器还被配置为执行指令以并且可以:从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;从所述图像捕获系统获得与第二设置域相关联的参考帧,其中,所述参考帧是接近于获得所述捕获输入捕获的;获得对与所述第一多个帧相关联的一个或多个选定帧的选择;基于所述参考帧,变换所述一个或多个选定帧以生成与所述第二设置域相关联的一个或多个经变换的帧。
在另一实例中,提供一种其上存储有指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器:从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;从所述图像捕获系统获得与第二设置域相关联的参考帧,其中,所述参考帧是接近于获得所述捕获输入捕获的;获得对与所述第一多个帧相关联的一个或多个选定帧的选择;基于所述参考帧,变换所述一个或多个选定帧以生成与所述第二设置域相关联的一个或多个经变换的帧。
在另一示例中,提供了一种用于处理一个或多个帧的装置。所述装置包括:用于从图像捕获系统获得与第一设置域相关联的第一多个帧的单元,其中,所述第一多个帧是在获得捕获输入之前捕获的;用于从所述图像捕获系统获得与第二设置域相关联的参考帧的单元,其中,所述参考帧是接近于获得所述捕获输入捕获的;用于获得对与所述第一多个帧相关联的一个或多个选定帧的选择的单元;用于基于所述参考帧,变换所述一个或多个选定帧以生成与所述第二设置域相关联的一个或多个经变换的帧的单元。
在一些方面中,一个或多个选定帧的选择是基于来自用户界面的选择的。
在一些方面中,用户界面包括缩略图图库、滑块或逐帧审阅。
在一些方面中,上文所描述的方法、设备和计算机可读介质还可以包括:基于以下各项中的一项或多项来确定来自所述第一多个帧的一个或多个建议帧:确定运动量或运动改变量是否超过门限;基于一个或多个人脸的存在来确定哪些帧包含感兴趣内容;以及确定哪些帧包含与经标记的图像集合的集合类似的内容。
在一些方面中,上文描述的装置中的一个或多个装置是以下各者或以下各者的一部分:交通工具(例如,交通工具的计算设备)、移动设备(例如,移动电话或所谓的“智能电话”或其它移动设备)、可穿戴设备、扩展现实设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备)、个人计算机、膝上型计算机、服务器计算机、或其它设备。在一些方面中,一种装置包括用于捕获一个或多个图像的一个照相机或多个照相机。在一些方面中,所述装置还包括用于显示一个或多个图像、通知和/或其它可显示数据的显示器。在一些方面中,该装置可以包括一个或多个传感器,一个或多个传感器可以用于确定该装置的位置和/或姿态、该装置的状态和/或用于其它目的。
该发明内容既不旨在标识所要求保护的主题的关键或必要特征,也不旨在单独用于确定所要求保护的主题的范围。应当通过参考本专利的整个说明书的适当部分、任何或全部附图以及每个权利要求来理解该主题。
在参照以下说明书、权利要求以及附图之后,前述内容以及其它特征和实施例将变得更加显而易见。
附图说明
参考下列附图在下文中对本申请的说明性实施例进行了详细描述:
图1是示出根据一些示例的图像捕获和处理系统的架构的框图;
图2是示出根据一些示例的示例扩展现实(XR)系统的架构的示意图;
图3是示出根据一些示例的图像处理系统的示例的框图;
图4A是示出根据一些示例的示例常开(AON)相机用例的示意图;
图4B是示出根据一些示例的示例底片快门滞后用例的图;
图5A是示出根据一些示例的示例底片快门滞后系统的框图。
图5B是示出根据一些示例的另一示例底片快门滞后系统的框图;
图6是示出根据一些示例的用于处理一个或多个帧的过程的示例的流程图;
图7是示出根据一些示例的用于处理一个或多个帧的过程的示例的流程图;
图8A是示出根据一些示例的用于执行底片快门滞后捕获的过程的示例的流程图;
图8B是示出根据一些示例的图8A中所示出的底片快门滞后捕获过程期间的相对功耗水平的示例的示意图;
图9是示出根据一些示例的另一示例底片快门滞后系统的框图;
图10是示出根据一些示例的用于处理一个或多个帧的过程的另一示例的流程图;
图11是示出根据一些示例的另一示例底片快门滞后系统的框图;
图12是示出根据一些示例的用于处理一个或多个帧的过程的示例的流程图;
图13是示出根据一些示例的另一示例底片快门滞后系统的框图;
图14是示出根据一些示例的示出底片快门滞后帧捕获序列的示例的另一流程图的流程图;
图15是示出根据一些示例的底片快门滞后帧捕获序列期间的相对功耗水平的示例的示意图;
图16是示出根据一些示例的用于处理一个或多个帧的过程的示例的流程图;
图17是示出根据一些示例的深度学习网络的示例的框图;
图18是示出根据一些示例的传统神经网络的示例的方框图;
图19是示出用于实现本文中描述的某些方面的计算系统的示例的示意图。
具体实施方式
下面提供了本公开内容的某些方面和实施例。这些方面和实施例中的一些方面和实施例可以独立地应用,并且其中的一些方面和实施例可以组合地应用,如对于本领域技术人员来说将显而易见的。在下面的描述中,为了便于解释起见,阐述了特定的细节以便提供对本申请的实施例的透彻理解。但是,显而易见的是,可以在不具有这些特定细节的情况下实践各个实施例。附图和描述不旨在是限制性的。
随后的描述仅提供示例性实施例,以及不旨在限制本公开内容的范围、适用性或配置。相反,随后对示例性实施例的描述将为本领域技术人员提供用于实现示例性实施例的可行描述。应当理解的是,在不脱离如在所附的权利要求中阐述的本申请的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
本文描述了用于提供底片快门滞后视频和/或图像捕获系统的系统和技术。在一些示例中,图像捕获系统可以实现持续地或周期性地操作以自动检测环境中的某些对象的较低功率或“始终开启”(AON)相机。例如在AON相机总是指向感兴趣的目标的情况下,可以利用AON相机捕获视频的图像捕获系统可以是有用的。例如,头戴式设备(例如,虚拟现实(VR)或增强现实(AR)头戴式显示器(HMD)、AR眼镜等)中包括的一个或多个相机可以总是指向用户正在注视的地方,基于用户的头部的移动。虽然本文参考AON相机描述了示例,但是这样的方面可以应用于在低功率模式下操作的任何相机或图像传感器。
在一些情况下,AON相机可以利用低功率相机硬件来降低功耗。在一些情况下,AON相机可以以低功率设置操作和/或针对降低功耗执行不同或更少的图像处理步骤。AON相机消耗的功率量可取决于图像和/或视频帧捕获的域(在本文中也称为设置域)。在一些情况下,捕获图像和/或视频帧的AON相机的域可以包括配置参数(例如,分辨率、帧速率、颜色深度等)和/或AON相机的其它参数。在一些情况下,域还可以包括由AON相机的相机流水线对所捕获的图像和/或视频帧执行的处理步骤(例如,降噪、边缘增强、图像稳定化、颜色校正等)。在一些情况下,在用户发起视频和/或图像捕获之后,非AON相机可以捕获静止图像或开始捕获视频帧。与AON或其它低功率相机相比,非AON相机可以利用较高功率相机硬件和/或可以以更高的功率设置和/或不同或更多的图像处理步骤来操作。
应当理解,尽管在AON相机(或AON相机传感器)和主相机(或主相机传感器)方面讨论了本公开内容的具体示例,本文描述的系统和技术可以应用于许多不同的相机或传感器配置而不脱离本公开内容的范围。在一个说明性示例中,单个相机或传感器可以被配置为以不同的操作模式(例如,低功率AON模式和非AON模式)操作。本文提及的“AON操作”可以被理解为包括用一个或多个AON相机捕获图像和/或帧和/或以AON模式操作一个或多个相机。在本公开内容中,在AON操作期间捕获的帧(例如,视频帧或图像)有时被称为低功率帧(例如,低功率视频帧)。类似地,对“标准操作”的引用可以被理解为包括利用在非AON模式下操作的一个或多个非AON相机和/或一个或多个相机来捕获针。另外,非AON相机或传感器和/或以非AON模式操作的相机或传感器有时可以被称为一个或多个“主相机”或“主相机传感器”。在本公开内容中,在标准相机操作期间捕获的帧(例如,视频帧)有时被称为高功率帧(例如,高功率视频帧)。系统和技术在本文中将被描述为关于视频帧执行。然而,应当理解,系统和技术可以使用任何图像或帧序列来操作,诸如连续捕获的静止图像。
用户可以通过例如按下捕获或记录按钮(在一些情况下也称为快门按钮)来发起图像和/或视频捕获,执行手势和/或提供捕获输入的任何其它方法。图像捕获系统接收捕获输入的时间可以定义为时间t=0。在AON操作期间(例如,在时间t<0处)捕获的视频帧可以存储在存储器(例如,缓冲器、循环缓冲器、视频存储器等)中,该存储器在一段时间(例如,30秒、1分钟、5分钟等)内维持捕获的视频帧。在AON操作期间捕获的帧可以与第一设置域(以下也称为第一域)相关联。在一个说明性示例中,第一设置域可以包括宽视频图形阵列(WVGA)分辨率(例如,800像素x 480像素)和每秒30帧(fps)的帧速率。
在图像捕获系统接收到捕获输入之后,图像捕获系统可以开始在标准操作中捕获视频帧。在一些情况下,在标准操作期间捕获的视频帧可以与不同于第一设置域的第二设置域(在下文中也称为第二域)相关联。在一个说明性示例中,第二设置域可以包括超高清(UHD)分辨率(例如,3840像素x 2160像素)和30fps的帧速率。在标准操作期间捕获的帧可以包括在t=0处或附近捕获与第二设置域(例如,具有UHD分辨率)相关联的关键帧(在本文中也称为参考帧)。作为说明性示例,捕获接近捕获输入的关键帧可以包括在接收到捕获输入之后捕获与第二设置域相关联的第一可用帧。在一些情况下,捕获接近于捕获输入的关键帧可以包括在接收到捕获输入之后捕获第二帧、第三帧、第四帧或第五帧或与第二设置域相关联的任何其它合适可用帧。在一些情况下,捕获接近捕获输入的关键帧可以包括在接收到捕获输入之后的10毫秒(ms)内、100ms内、500ms内、在1000ms内或在任何其它合适的时间窗口内捕获与第二设置域相关联的帧。如果捕获输入响应于非预期事件(例如,儿童评分足球中的目标、宠物执行技巧等)而发生,则捕获输入可以在用户对捕获感兴趣的事件之后发生(例如,时间t<0)。在一些情况下,图像处理系统可能已经在AON操作期间捕获了事件。在一些情况下,在与第一域相关联的AON操作期间捕获的视频帧可以具有同与第二域相关联的视频帧和与在标准操作期间捕获的视频帧显著不同的外观(例如,不同的分辨率、帧速率、颜色深度、锐度等)。在一些情况下,使用关键帧作为引导,在与第一域相关联的AON操作期间捕获的视频帧可以被变换到第二设置域。在一个说明性实例中,将视频帧从第一设置域变换到第二设置域可以包括分辨率缩放、帧速率缩放、改变色彩深度和/或本文中所描述的其它变换。在一些情况下,可以从与第二设置域相关联的经变换的视频帧和与第二设置域相关联的在接收到捕获输入之后捕获的视频帧形成复合(或拼接)视频。
使用关键帧将视频帧从第一域变换到第二域的过程可以被称为域变换或引导域变换。在一些情况下,可以训练深度学习神经网络(例如,域变换模型)以至少部分地通过将与第二域相关联的视频帧的第一部分(例如,从包括在训练数据集中的视频)转换到第一域、从原始视频提供与第二域相关联的关键帧、以及使用关键帧作为向导将视频帧的第一部分变换回第二域来执行引导域变换。所得经变换视频帧可以与原始视频帧直接比较,且损失函数可用于确定经变换视频帧与原始帧之间的误差量。可以基于误差来调整(或调谐)深度学习网络的参数(例如,权重、偏差等)。这样的训练过程可以被称为使用反向传播的监督学习,其可以被执行直到调谐的参数提供期望的结果。在一些情况下,可以利用深度生成神经网络模型(例如,生成式对抗网络(GAN))来训练域变换模型。
在一些情况下,AON操作可以包括以低分辨率(例如,640像素x 480像素或WVGA分辨率的VGA分辨率)捕获视频帧数据。在一些情况下,标准操作可以包括以比AON操作更高的分辨率捕获视频数据(例如,720p、1080i、1080p、4K、8K等)。在AON操作期间以较低分辨率捕获和处理视频数据可以比在标准操作期间以较高分辨率捕获和处理视频数据消耗更少的功率。例如,读取由图像捕获系统捕获的视频帧数据所需的功率量可以随着读出的像素数量的增加而增加。另外,捕获的视频帧数据的图像后处理所需的功率量也可以随着视频帧中的像素数目增加而增加。在一些情况下,低分辨率视频帧可以被放大到较高分辨率。上文描述的在AON操作期间的低分辨率捕获和在标准操作期间的较高分辨率捕获的示例提供可以用于在底片快门滞后系统中捕获视频帧的不同域的一个说明性示例。
使用高分辨率关键帧进行放大的过程可以被称为引导超分辨率过程。引导超分辨率过程是引导域变换的说明性示例。在一些情况下,可以训练深度学习神经网络(例如,引导超分辨率模型)以在类似于上述训练域变换模型的过程的训练过程中执行引导超分辨率过程。例如,可以至少部分地通过以下方式来训练引导超分辨率模型:从高分辨率视频(例如,包括在训练数据集中的视频)缩小视频帧的一部分,从高分辨率视频提供高分辨率关键帧,以及使用高分辨率关键帧作为引导将视频帧的缩小部分从高分辨率视频向放大回原始分辨率。经放大视频帧可以与原始高分辨率视频帧直接比较,且损失函数可以用于确定经放大视频帧与视频的原始高分辨率视频帧之间的误差量。可以基于误差来调整(或调谐)深度学习网络的参数(例如,权重、偏差等)。这样的训练过程可以被称为使用反向传播的监督学习,其可以被执行直到调谐的参数提供期望的结果。在一些情况下,可以利用GAN来训练引导超分辨率模型。
在一些情况下,在AON模式下操作的图像捕获系统可以捕获具有比在高分辨率模式期间捕获的视频更低的帧速率的视频。通过在AON模式期间降低帧速率和/或分辨率,当与高分辨率模式相比时,图像捕获系统可以在AON模式期间以较低的功耗操作。在一些情况下,可以通过利用自适应帧速率将附加功率保存在AON模式中。在一些实现方式中,图像捕获系统可以利用来自惯性传感器的惯性运动估计来确定图像捕获系统的运动量(例如,头戴式设备的运动)。在一些实现方式中,图像捕获系统可以执行光学运动估计(例如,通过分析捕获的视频帧)以确定图像捕获系统的运动量。如果图像捕获系统仍然或仅具有少量运动,则用于捕获视频帧的帧速率可以被设置为较低的帧速率设置(例如,到15fps)。另一方面,如果图像捕获系统和/或正在捕获的场景具有大量运动,则用于在AON操作期间捕获视频帧的帧速率可以被设置为高帧速率设置(例如,30fps、60fps)。在一些情况下,AON模式期间的最大帧速率可以等于高分辨率模式的帧速率设置。在一些情况下,除了在AON模式期间将视频帧存储在存储器中之外,还可以存储指示捕获视频帧的帧速率的信息。
在一些实现方式中,除了在接收到捕获输入的时刻(例如,在t=0处)或捕获接近捕获输入的关键帧之外,图像捕获系统可以在AON操作期间周期性地捕获额外高分辨率关键帧。作为说明性示例,捕获接近捕获输入的关键帧可以包括在接收到捕获输入之后捕获第一可用高分辨率帧。在一些情况下,捕获接近捕获输入的关键帧可以包括在接收到捕获输入之后捕获第二、第三、第四或第五高分辨率可用帧。在一些情况下,捕获接近捕获输入的关键帧可以包括在接收到捕获输入之后的10ms内、100ms内、500ms内、1000ms内或任何其它合适的时间窗口内捕获高分辨率帧。例如,可以每半秒、每秒、每五秒、每十秒或任何其它合适的持续时间捕获关键帧。在AON操作期间捕获的额外高分辨率关键帧可以连同低分辨率视频帧一起存储在存储器(例如,缓冲器)中。捕获的每个高分辨率关键帧可以用作在时间上接近关键帧的AON操作期间捕获的视频帧的引导。在一些情况下,额外高分辨率关键帧可以改善其中图像捕获系统随时间移动和/或场景中的对象随时间移动的引导超分辨率过程。通过周期性地捕获高分辨率关键帧,在每个关键帧中捕获的场景更可能捕获在特定时间段内(例如,在半秒、一秒、五秒或十秒内)在AON操作期间捕获的同一场景的至少一部分。在一些情况下,高分辨率关键帧的捕获速率可以基于图像捕获系统的运动量来确定。在一些情况下,可以基于来自惯性运动传感器的读数和/或根据对在AON操作期间捕获的视频帧执行光学运动检测来确定运动量。
在一些情况下,惯性传感器数据还可以与在AON模式期间捕获并在引导超分辨率过程中利用的视频帧一起存储在存储器中。例如,如果来自在AON模式期间捕获的惯性传感器的数据指示图像捕获系统正在向左移动,则引导超分辨率可以利用关于场景中的运动的信息来确保例如它输出的视频适当地向左平移以匹配所测量的运动。
虽然特定示例域变换(例如,分辨率放大、帧速率调整和颜色深度调整)本文中描述为用于执行底片快门滞后捕获,本文中所描述的系统和技术可以用于在不脱离本公开内容的范围的情况下利用其它域变换执行底片快门滞后捕获。例如,底片快门滞后系统可以在AON操作期间捕获单色视频帧并且在标准操作期间捕获彩色视频帧。在这样的示例中,域变换可以包括对单色帧进行着色。
下文将关于附图讨论本文描述的技术的各个方面。图1是示出图像捕获和处理系统100的架构的方框图。图像捕获和处理系统100包括用于捕获和处理场景的图像(例如,场景110的图像)的各个组件。图像捕获和处理系统100可以捕获独立的图像(或照片)和/或可以捕获包括处于特定顺序的多个图像(或视频帧)的视频。系统100的透镜115面向场景110,以及接收来自场景110的光。透镜115使光弯曲向图像传感器130。由透镜115接收的光穿过由一个或多个控制机构120控制的光圈,以及是由图像传感器130来接收的。
一个或多个控制机构120可以基于来自图像传感器130的信息和/或基于来自图像处理器150的信息来控制曝光、聚焦和/或缩放。一个或多个控制机构120可以包括多个机构和组件;例如,控制机构120可以包括一个或多个曝光控制机构125A、一个或多个聚焦控制机构125B和/或一个或多个缩放控制机构125C。一个或多个控制机构120还可以包括除了所示的那些之外的额外的控制机构,诸如控制模拟增益、闪光、HDR、景深和/或其它图像捕获属性的控制机构。
控制机制120中的焦点控制机制125B可以获得焦点设置。在一些示例中,聚焦控制机构125B将聚焦设置存储在存储寄存器中。基于聚焦设置,聚焦控制机构125B可以相对于图像传感器130的位置来调整透镜115的位置。例如,基于聚焦设置,聚焦控制机构125B可以通过驱动电动机或伺服装置(或其它镜头机构)来使镜头115移动得更靠近图像传感器130或更远离图像传感器130,从而调整聚焦。在一些情况下,在系统100中可包括额外镜头,例如图像传感器130的每个光电二极管上方的一个或多个微透镜,所述微透镜各自在从镜头115接收的光到达光电二极管之前使所述光朝向对应光电二极管弯曲。聚焦设置可以经由对比度检测自动聚焦(CDAF)、相位检测自动聚焦(PDAF)、混合聚焦(HAF)或其某种组合来确定。聚焦设置可以是使用控制机构120、图像传感器130和/或图像处理器150来确定的。聚焦设置可以称为图像捕获设置和/或图像处理设置。
控制机构120的曝光控制机构125A可以获得曝光设置。在一些情况下,曝光控制机构125A将曝光设置存储在存储寄存器中。基于这个曝光设置,曝光控制机构125A可以控制光圈的大小(例如,光圈大小或f/光阑)、光圈开着的持续时间(例如,曝光时间或快门速度)、图像传感器130的灵敏度(例如,ISO速度或底片速度)、由图像传感器130施加的模拟增益,或其任何组合。曝光设置可以称为图像捕获设置和/或图像处理设置。
控制机构120的缩放控制机构125C可以获得缩放设置。在一些示例中,缩放控制机构125C将缩放设置存储在存储寄存器中。基于缩放设置,缩放控制机构125C可以控制透镜元件组合件(透镜组合件)的焦距,透镜元件组合件包括透镜115和一个或多个额外的透镜。例如,变焦控制机构125C可以通过致动一个或多个电机或伺服机构(或其它镜头机构)以使一个或多个镜头相对于彼此移动来控制镜头组件的焦距。缩放设置可以称为图像捕获设置和/或图像处理设置。在一些示例中,镜头组件可以包括齐焦缩放镜头或变焦缩放镜头。在一些示例中,透镜组合件可以包括聚焦透镜(其在一些情况下可以是透镜115),所述聚焦透镜首先从场景110接收光,其中在光到达图像传感器130之前,光接着穿过在聚焦透镜(例如,透镜115)与图像传感器130之间的无焦缩放系统。在一些情况下,无焦变焦系统可以包括具有相等或类似的焦长(例如,在彼此的门限差内)的两个正(例如,会聚、凸)透镜,其中,在它们之间具有负(例如,发散、凹)透镜。在一些情况下,变焦控制机构125C移动无焦变焦系统中的透镜中的一个或多个透镜,例如负透镜和正透镜中的一个或两个正透镜。
图像传感器130包括光电二极管或其它光敏元件的一个或多个阵列。每个光电二极管测量最终与由图像传感器130产生的图像中的特定像素相对应的光的量。在一些情况下,不同的光电二极管可以被不同的颜色过滤器覆盖,以及因此可以测量与覆盖光电二极管的过滤器的颜色匹配的光。例如,Bayer滤色器包括红色滤色器、蓝色滤色器和绿色滤色器,其中,基于来自在红色滤色器中覆盖的至少一个光电二极管的红光数据、来自在蓝色滤色器中覆盖的至少一个光电二极管的蓝光数据和来自在绿色滤色器中覆盖的至少一个光电二极管的绿光数据来生成图像的每个像素。其它类型的颜色过滤器可以使用黄色、洋红色和/或青色(还称为“翠绿色”)颜色过滤器来代替红色、蓝色和/或绿色颜色过滤器,或者除了红色、蓝色和/或绿色颜色过滤器之外还使用黄色、洋红色和/或青色(还称为“翠绿色”)颜色过滤器。一些图像传感器(例如,图像传感器130)可能完全没有滤色器,并且可以替代地在整个像素阵列中使用不同的光电二极管(在一些情况下垂直堆叠)。遍及像素阵列的不同光电二极管可以具有不同的光谱灵敏度曲线,从而对不同波长的光进行响应。单色图像传感器也可以缺少颜色过滤器,以及因此缺少颜色深度。
在一些情况下,图像传感器130可以替代地或额外地包括不透明的和/或反射的掩模,不透明的和/或反射的掩模阻挡光在某些时间和/或从某些角度到达某些光电二极管或某些光电二极管的部分,这可以用于相位检测自动聚焦(PDAF)。图像传感器130还可包括用于放大由光电二极管输出的模拟信号的模拟增益放大器和/或用于将光电二极管的(和/或经过模拟增益放大器放大的)模拟信号输出转换成数字信号的模数转换器(ADC)。在一些情况下,针对控制机构120中的一个或多个控制机构120讨论的某些组件或功能可替代地或额外地被包括在图像传感器130中。图像传感器130可以是电荷耦合器件(CCD)传感器、电子倍增CCD(EMCCD)传感器、有源像素传感器(APS)、互补金属氧化物半导体(CMOS)、N型金属氧化物半导体(NMOS)、混合CCD/CMOS传感器(例如,sCMOS),或其某个其它组合。
图像处理器150可以包括一个或多个处理器,例如一个或多个图像信号处理器(ISP)(包括ISP 154)、一个或多个主机处理器(包括主机处理器152)和/或针对计算系统1900讨论的任何其它类型的处理器1910中的一种或多种处理器。主机处理器152可以是数字信号处理器(DSP)和/或其它类型的处理器。在一些实现方式中,图像处理器150是单个集成电路或芯片(例如,称为片上系统或SoC),其包括主机处理器152和ISP 154。在一些情况下,芯片还可以包括一个或多个输入/输出端口(例如,输入/输出(I/O)端口156)、中央处理单元(CPU)、图形处理单元(GPU)、宽带调制解调器(例如,3G、4G或LTE、5G等)、存储器、连接部件(例如,蓝牙TM、全球定位系统(GPS)等)、其任何组合和/或其它部件。I/O端口156可以包括根据一个或多个协议或规范的任何合适的输入/输出端口或接口,诸如内置集成电路2(I2C)接口、内置集成电路3(I3C)接口、串行外围接口(SPI)接口、串行通用输入/输出(GPIO)接口、移动工业处理器接口(MIPI)(诸如MIPI CSI-2物理(PHY)层端口或接口、高级高性能总线(AHB)总线、其任何组合)和/或其它输入/输出端口。在一个说明性示例中,主机处理器152可以使用I2C端口来与图像传感器130进行通信,并且ISP 154可以使用MIPI端口来与图像传感器130进行通信。
图像处理器150可以执行数个任务,例如去马赛克、颜色空间转换、图像帧下采样、像素内插、自动曝光(AE)控制、自动增益控制(AGC)、CDAF、PDAF、自动白平衡、合并图像帧以形成HDR图像、图像识别、对象识别、特征识别、接收输入、管理输出、管理存储器或其某个组合。图像处理器150可以将图像帧和/或经处理的图像存储在随机存取存储器(RAM)140/1925、只读存储器(ROM)145/1920、高速缓存、存储器单元、另一存储设备或其某个组合中。
各个输入/输出(I/O)设备160可以连接到图像处理器150。I/O设备160可以包括显示屏、键盘、小键盘、触摸屏、触控板、触敏表面、打印机、任何其它输出设备1935、任何其它输入设备1945、或其某种组合。在一些情况下,字幕可以通过I/O设备160的物理键盘或小键盘或者通过I/O设备160的触摸屏的虚拟键盘或小键盘来输入到图像处理设备105B中。I/O160可以包括实现系统100与一个或多个外围设备之间的有线连接的一个或多个端口、插孔或其它连接器,系统100可以通过这些端口、插孔或其它连接器从一个或多个外围设备接收数据和/或将数据传送到一个或多个外围设备。I/O 160可以包括一个或多个无线收发机,其实现系统100与一个或多个外围设备之间的无线连接,系统100可以通过所述无线连接从一个或多个外围设备接收数据和/或将数据传送到一个或多个外围设备。外围设备可以包括先前讨论的类型的I/O设备160中的任何一者,以及一旦它们耦合到端口、插孔、无线收发机或其它有线和/或无线连接器,它们本身就可以被认为是I/O设备160。
在一些情况下,图像捕获和处理系统100可以是单个设备。在一些情况下,图像捕获和处理系统100可以是两个或更多个单独的设备,包括图像捕获设备105A(例如,照相机)和图像处理设备105B(例如,耦合到照相机的计算设备)。在一些实现方式中,图像捕获设备105A和图像处理设备105B可以例如经由一个或多个导线、电缆或其它电连接器耦合在一起,和/或经由一个或多个无线收发机无线地耦合在一起。在一些实现中,图像捕获设备105A和图像处理设备105B可以彼此断开。
如图1所示,垂直虚线将图1的图像捕获和处理系统100划分为两个部分,其分别表示图像捕获设备105A和图像处理设备105B。图像捕获设备105A包括透镜115、控制机构120和图像传感器130。图像处理设备105B包括图像处理器150(包括ISP 154和主机处理器152)、RAM 140、ROM 145和I/O 160。在一些情况下,图像捕获设备105A中所示的某些组件(例如ISP 154和/或主机处理器152)可以被包括在图像捕获设备105A中。
图像捕获和处理系统100可以包括电子设备,诸如移动或固定电话手机(例如,智能电话、蜂窝电话等)、台式计算机、膝上型或笔记本计算机、平板计算机、机顶盒、电视、相机、显示设备、数字介质播放器、视频游戏机、视频流设备、网际协议(IP)相机或任何其它合适的电子设备。在一些示例中,图像捕获和处理系统100可以包括用于无线通信(诸如蜂窝网络通信、802.11wi-fi通信、无线局域网(WLAN)通信、或其某种组合)的一个或多个无线收发机。在一些实现中,图像捕获设备105A和图像处理设备105B可以是不同的设备。例如,图像捕获设备105A可以包括照相机设备,以及图像处理设备105B可以包括计算设备,诸如移动手机、台式计算机或其它计算设备。
虽然图像捕获和处理系统100被示出为包括某些组件,但是普通技术人员将理解,图像捕获和处理系统100可以包括比图1中所示的组件更多的组件。图像捕获和处理系统100的组件可以包括软件、硬件、或软件和硬件的一个或多个组合。例如,在一些实施方式中,图像捕获和处理系统100的组件可以包括电子电路或其它电子硬件和/或可以使用电子电路或其它电子硬件来实现,电子电路或其它电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、GPU、DSP、CPU和/或其它合适的电子电路),和/或可以包括计算机软件、固件或其任何组合和/或使用计算机软件、固件或其任何组合来实现,以执行本文描述的各种操作。软件和/或固件可以包括被存储在计算机可读存储介质上并且可以由实现图像捕获和处理系统100的电子设备的一个或多个处理器执行的一个或多个指令。
在一些示例中,图2的扩展现实(XR)系统200可以包括图像捕获和处理系统100、图像捕获设备105A、图像处理设备105B或其组合。
图2是示出根据本公开内容的一些方面的XR系统200的架构的示意图。XR系统200可以运行(或执行)XR应用并且实现XR操作。在一些示例中,作为XR体验的一部分,XR系统200可以执行跟踪和定位、对物理世界(例如,场景)中环境的建图、以及在显示器209(例如,屏幕、可见平面/区域和/或其它显示器)上对虚拟内容的定位和渲染。例如,XR系统200可以生成物理世界中的环境的地图(例如,三维(3D)地图)、跟踪XR系统200相对于环境(例如,相对于环境的3D地图)的姿势(例如,位置和定位)、在环境的地图上的特定位置中的定位和/或锚虚拟内容、以及在显示器209上渲染虚拟内容,使得虚拟内容看起来就好像在环境中的与在虚拟内容所定位和/或锚定的场景的地图上的特定位置相对应的位置处。显示器209可以包括玻璃、屏幕、镜头、投影仪和/或允许用户看到现实世界环境并且还允许XR内容被覆盖、重叠、混合或以其它方式的其它方式在其上显示。
在该说明性示例中,XR系统200包括一个或多个图像传感器202、加速度计204、陀螺仪206、存储装置207、计算组件210、XR引擎220、界面布局和输入管理引擎222、图像处理引擎224和渲染引擎226。应当注意的是,图2中所示的组件202-226是用于说明和解释目的而提供的非限制性示例,并且其它示例可以包括比图2所示的组件更多、更少或不同的组件。例如,在一些情况下,XR系统200可以包括一个或多个其它传感器(例如,一个或多个惯性测量单元(IMU)、雷达、光检测和测距(LIDAR)传感器、无线电单元检测和测距(RADAR)传感器、声音检测和测距(SODAR)传感器、声音导航和测距(SONAR)传感器、音频传感器等)、一个或多个显示设备、一个或多个其它处理引擎、一个或多个其它硬件组件,和/或图2中未示出的一个或多个其它软件和/或硬件组件。虽然XR系统200的各种组件(例如,加速度计202)可以在本文中以单数形式引用,但是应当理解,XR系统200可以包括多个本文讨论的任何组件(例如,多个加速度计202)。
XR系统200包括输入设备208或与输入设备208通信(有线或无线地)。输入设备208可以包括任何合适的输入设备,例如,触摸屏、笔或其它指针设备、键盘、鼠标按钮或按键、用于接收语音命令的麦克风、用于接收手势命令的手势输入设备、视频游戏控制器、方向盘、操纵杆、一组按钮、轨迹球、遥控器、本文讨论的任何其它输入设备1945,或者其任意组合。在一些情况下,图像传感器202可以捕获可以被处理以用于解释姿势命令的图像。
在一些实施方式中,一个或多个图像传感器202、加速度计204、陀螺仪206、存储装置207、多媒体组件203、计算组件210、XR引擎220、界面布局和输入管理引擎222、图像处理引擎224以及渲染引擎226可以是相同计算设备的部分。例如,在一些情况下,一个或多个图像传感器202、加速度计204、陀螺仪206、存储装置207、计算组件210、XR引擎220、界面布局和输入管理引擎222、图像处理引擎224和渲染引擎226可以被整合到头戴式显示器(HMD)、扩展现实眼镜、智能电话、膝上型计算机、平板计算机、游戏系统、和/或任何其它计算设备中。然而,在一些实施方式中,一个或多个图像传感器202、加速度计204、陀螺仪206、存储装置207、计算组件210、XR引擎220、界面布局和输入管理引擎222、图像处理引擎224和渲染引擎226可以是两个或更多个独立计算设备的一部分。例如,在一些情况下,组件202-226中的一些组件可以是一个计算设备的一部分或由其实现,而剩余组件可以是一个或多个其它计算设备的一部分或由其实现。
存储装置207可以是用于存储数据的任何存储设备。此外,存储装置207可以存储来自XR系统200的任何组件的数据。例如,存储装置207可以存储来自图像传感器202的数据(例如,图像或视频数据)、来自加速度计204的数据(例如,测量)、来自陀螺仪206的数据(例如,测量)、来自计算组件210的数据(例如,处理参数、偏好、虚拟内容、渲染内容、场景地图、跟踪和定位数据、对象检测数据、隐私数据、XR应用数据、面部识别数据、遮挡数据等)、来自XR引擎220的数据、来自界面布局和输入管理引擎222的数据、来自图像处理引擎224的数据和/或来自渲染引擎226的数据(例如,输出帧)。在一些示例中,存储装置207可以包括用于存储供计算组件210处理的帧的缓冲器。
一个或多个计算组件210可以包括中央处理单元(CPU)212、图形处理单元(GPU)214、数字信号处理器(DSP)216、图像信号处理器(ISP)218和/或其它处理器(例如,实现一个或多个经过训练的神经网络的神经处理单元(NPU))。计算组件210可以执行各种操作,例如,图像增强、计算机视觉、图形渲染、扩展现实操作(例如,跟踪、定位、姿态估计、建图、内容锚定、内容渲染等)、图像和/或视频处理、传感器处理、识别(例如,文本识别、面部识别、对象识别、特征识别、跟踪或模式识别、场景识别、遮挡检测等)、经过训练的机器学习操作、滤波和/或本文描述的各种操作中的任何一种操作。在一些示例中,计算组件210可以实现(例如,控制、操作等)XR引擎220、界面布局和输入管理引擎222、图像处理引擎224以及渲染引擎226。在其它示例中,计算组件210还可以实现一个或多个其它处理引擎。
图像传感器202可以包括任何图像和/或视频传感器或捕获设备。在一些示例中,图像传感器202可以是多相机组装件(诸如双相机组装件)的一部分。图像传感器202可以捕获图像和/或视频内容(例如,原始图像和/或视频数据),然后可以由计算组件210、XR引擎220、界面布局和输入管理引擎222、图像处理引擎224和/或渲染引擎226处理该图像和/或视频内容,如本文所述。在一些示例中,图像传感器202可以包括图像捕获和处理系统100、图像捕获设备105A、图像处理设备105B或其组合。
在一些示例中,图像传感器202可以捕获图像数据并且可以基于图像数据生成图像(也称为帧)和/或可以将图像数据或帧提供给XR引擎220、界面布局和输入管理引擎222、图像处理引擎224和/或渲染引擎226进行处理。图像或帧可以包括视频序列的视频帧或静止图像。图像或帧可以包括表示场景的像素阵列。例如,图像可以是:每像素具有红色、绿色和蓝色分量的红-绿-蓝(RGB)图像;每像素具有亮度分量和两个色度(色彩)分量(色度红和色度蓝)的亮度、色度红、色度蓝(YCbCr)图像;或者任何其它适当类型的彩色或单色图像。
在一些情况下,图像传感器202(和/或XR系统200的其它相机)也可以被配置为捕获深度信息。例如,在一些实现中,图像传感器202(和/或其它相机)可以包括RGB深度(RGB-D)相机。在一些情况下,XR系统200可以包括一个或多个深度传感器(未示出),其是与图像传感器202(和/或其它相机)分开的并且可以捕获深度信息。例如,这样的深度传感器可以独立于图像传感器202获得深度信息。在一些示例中,深度传感器可以物理地安装在与图像传感器202相同的一般位置中,但可以以与图像传感器202不同的频率或帧速率来操作。在一些示例中,深度传感器可以采用光源的形式,该光源可以将结构化或纹理光图案投射到一个或多个场景中的对象,该结构化或纹理光图案可以包括一个或多个窄光带。然后,可以通过利用由对象的表面形状引起的投影图案的几何扭曲来获得深度信息。在一个示例中,深度信息可以从立体传感器(例如,红外结构光投影仪和注册到相机(例如,RGB相机)的红外相机的组合)获得。
XR系统200还可以在其一个或多个传感器中包括其它传感器。该一个或多个传感器可以包括一个或多个加速度计(例如,加速度计204)、一个或多个陀螺仪(例如,陀螺仪206)和/或其它传感器。一个或多个传感器可以向计算组件210提供速度、定向和/或其它位置相关信息。例如,加速度计204可以检测XR系统200的加速度并且可以基于检测到的加速度生成加速度测量。在一些情况下,加速度计204可以提供可以用于确定XR系统200的位置或姿态的一个或多个平移向量(例如,上/下、左/右、前/后)。陀螺仪206可以检测并且测量XR系统200的定向和角速度。例如,陀螺仪206可以用于测量XR系统200的俯仰、滚动和偏航。在一些情况下,陀螺仪206可以提供一个或多个旋转向量(例如,俯仰、偏航、滚动)。在一些示例中,图像传感器202和/或XR引擎220可以使用由加速计204获得的测量结果(例如,一个或多个平移矢量)和/或由陀螺仪206获得的测量结果(例如,一个或多个旋转矢量),以计算XR系统200的姿态。如前所述,在其它示例中,XR系统200还可以包括其它传感器,诸如惯性测量单元(IMU)、磁力计、注视和/或眼睛跟踪传感器、机器视觉传感器、智能场景传感器、语音识别传感器、碰撞传感器、冲击传感器、位置传感器、倾斜传感器等。
如上所述,在一些情况下,一个或多个传感器可以包括至少一个IMU。IMU是一种如下的电子设备:其使用一个或多个加速计、一个或多个陀螺仪和/或一个或多个磁力计的组合来测量XR系统200的特定力、角速度和/或方向。在一些示例中,一个或多个传感器可以输出测量到的与由图像传感器202(和/或XR系统200的其它相机)捕获的图像的捕获相关联的信息和/或使用XR系统200的一个或多个深度传感器获得的深度信息。
XR引擎220可以使用一个或多个传感器(例如,加速度计204、陀螺仪206、一个或多个IMU和/或其它传感器)的输出来确定XR系统200的姿态(也被称为头部姿态)和/或图像传感器202(或XR系统200的其它相机)的姿态。在一些情况下,XR系统200的姿态和图像传感器202(或其它相机)的姿态可以是相同的。图像传感器202的姿势是指图像传感器202相对于(例如,关于由图像传感器202检测到的对象的)参考系的位置和定向。在一些实现方式中,可以针对6自由度(6DoF)确定相机姿态,6自由度指的是三个平移分量(例如,其可以由X(水平)、Y(垂直)和Z(深度)坐标相对于参考系(例如,图像平面)给出)和三个角度分量(例如,相对于同一参考系的滚动、俯仰和偏航)。在一些实现方式中,可以针对3自由度(3DoF)来确定相机姿态,3自由度指的是三个角度分量(例如,滚动、俯仰和偏航)。
在一些情况下,设备跟踪器(未示出)可以使用来自一个或多个传感器的测量结果和来自图像传感器202的图像数据来跟踪XR系统200的姿态(例如,6DoF姿态)。例如,设备跟踪器可以将来自图像数据的视觉数据(例如,使用视觉跟踪解决方案)与来自测量的惯性数据融合,以确定XR系统200相对于物理世界(例如,场景)和物理世界的地图的位置和运动。如下所述,在一些示例中,当跟踪XR系统200的姿态时,设备跟踪器可以生成场景(例如,现实世界)的三维(3D)地图和/或生成针对场景的3D地图的更新。3D地图更新可以包括例如但不限于与场景和/或场景的3D地图相关联的新的或经更新的特征和/或特征或地标点、用于标识或更新XR系统200在场景和场景的3D地图内的位置的定位更新等。3D地图可以提供在现实/物理世界中的场景的数字表示。在一些示例中,3D地图可以将基于位置的对象和/或内容锚定到现实世界的坐标和/或对象。XR系统200可以使用建图的场景(例如,由3D地图表示和/或与3D地图相关联的物理世界中的场景)来合并物理和虚拟世界和/或将虚拟内容或对象与物理环境合并。
在一些方面中,计算组件210可以基于由图像传感器202(和/或XR系统200的其它相机)捕获的图像,使用视觉跟踪解决方案来确定和/或跟踪图像传感器202和/或作为整体的XR系统200的姿态。例如,在一些示例中,计算组件210可以使用基于计算机视觉的跟踪、基于模型的跟踪和/或同时定位和地图绘制(SLAM)技术来执行跟踪。例如,计算组件210可以执行SLAM或者可以与SLAM系统(未示出)进行通信(有线或无线)。SLAM是指如下的一类技术:创建环境的地图(例如,由XR系统200建模的环境的地图),而同时跟踪相机(例如,图像传感器202)和/或XR系统200相对于该地图的姿态。该地图可以被称为SLAM地图,并且可以是三维(3D)的。SLAM技术可以使用由图像传感器202(和/或XR系统200的其它相机)捕获的彩色或灰度图像数据来执行,并且可以用于生成针对图像传感器202和/或XR系统200的6DoF姿态测量结果的估计。被配置为执行6DoF跟踪的此类SLAM技术可以被称为6DoF SLAM。在一些情况下,一个或多个传感器(例如,加速计204、陀螺仪206、一个或多个IMU和/或其它传感器)的输出可以用于估计、校正和/或以其它方式调整所估计的位姿。
在一些情况下,6DoF SLAM(例如,6DoF跟踪)可以将从来自图像传感器202(和/或其它相机)的某些输入图像观察到的特征关联到SLAM地图。例如,6DoF SLAM可以使用来自输入图像的特征点关联来确定针对输入图像的图像传感器202和/或XR系统200的姿态(位置和方向)。也可执行6DoF地图构建以更新SLAM地图。在一些情况下,使用6DoF SLAM维护的SLAM地图可以包含从两个或更多个图像进行三角测量的3D特征点。例如,可以从输入图像或视频流中选择关键帧以表示观察到的场景。对于每个关键帧,可以确定与关键帧相关联的相应6DoF相机位姿。图像传感器202和/或XR系统200的姿态可以通过以下操作来确定:将来自3D SLAM地图的特征投影到图像或视频帧中,并且根据经验证的2D-3D对应关系来更新相机姿态。
在一个说明性示例中,计算组件210可以从某些输入图像(例如,每个输入图像、输入图像的子集等)或从每个关键帧提取特征点。如本文使用的特征点(也被称为配准点)是图像的独特的或可识别的部分,诸如手的一部分、桌子的边缘、以及其它示例。从捕获的图像中提取的特征可以表示沿着三维空间的不同特征点(例如,在X、Y和Z轴上的坐标),并且每个特征点可以具有相关联的特征地点。关键帧中的特征点与先前捕获的输入图像或关键帧的特征点匹配(与其相同或相对应)或未能匹配。特征检测可以用于检测特征点。特征检测可以包括用于检查图像的一个或多个像素以确定在特定像素处是否存在特征的图像处理操作。特征检测可以用于处理整个捕获的图像或图像的某些部分。对于每个图像或关键帧,一旦已经检测到特征,就可以提取在该特征周围的局部图像块。可以使用任何合适的技术来提取特征,诸如尺度不变特征变换(SIFT)(其定位特征并生成它们的描述)、学习不变特征变换(LIFT)、加速鲁棒特征(SURF)、梯度位置方向直方图(GLOH)、定向快速和旋转块(ORB)、二进制鲁棒不变可缩放关键点(BRISK)、快速视网膜关键点(FREAK)、KAZE、加速KAZE(AKAZE)、归一化互相关(NCC)、描述符匹配、另一合适的技术或其组合。
在一些情况下,XR系统200还可以跟踪用户的手和/或手指,以允许用户与虚拟环境中的虚拟内容进行交互和/或控制虚拟内容。例如,XR系统200可以跟踪用户的手和/或指尖的姿态和/或运动,以识别或翻译用户与虚拟环境的交互。用户交互可以包括例如但不限于移动虚拟内容项、对虚拟内容项进行大小调整、选择虚拟用户界面中的输入界面元素(例如,移动电话的虚拟表示、虚拟键盘和/或其它虚拟界面)、通过虚拟用户界面提供输入等。
图3示出了图像处理系统300的示例框图。在一些情况下,图像处理系统300可以包括或可以包括在图像捕获和处理系统100、图像捕获设备105A、图像处理设备105B、XR系统200、其部分或其任何组合中。在图3的说明性示例中,图像处理系统300包括AON相机处理子系统302、主相机处理子系统304、图形处理子系统306、视频处理子系统308、中央处理单元(CPU)310、DRAM子系统312和SRAM 320。
在一些实现方式中,AON相机处理子系统302可以从AON相机传感器316接收输入,并且主相机处理子系统304可以从主相机传感器318接收输入。AON相机传感器316和主相机传感器318可以包括任何图像和/或视频传感器或捕获设备。在一些情况下,AON相机传感器316和主相机传感器318可以是多相机组件(诸如双相机组件)的一部分。在一些示例中,AON相机传感器316和主相机传感器318可以包括图像捕获和处理系统100、图像捕获设备105A、图像处理设备105B或其组合。在一些实现方式中,图像处理系统300的AON相机处理子系统302可以与AON相机传感器316通信,以向/从AON相机传感器316发送和/或接收操作参数。类似地,在一些实现方案中,图像处理系统300的主相机处理子系统304可以与主相机传感器318通信以将操作参数发送到主相机传感器318和/或从主相机传感器318接收操作参数。图像处理系统300的DRAM子系统312可以通过数据总线315与DRAM 314通信。例如,DRAM子系统312可以将视频帧发送到DRAM 314和/或从DRAM 314检索视频帧。在一些实现方式中,图像处理系统300可以包括本地SRAM 320。
在一些情况下,AON相机传感器316可以包括用于降低功耗的优化。在一些情况下,AON相机处理子系统302可以被配置为将数据(例如,视频帧数据)存储在位于图像处理系统300内的SRAM 320中。在一些情况下,与通过数据总线315驱动信号以与DRAM 314通信相比,在SRAM 320中存储数据可以通过减少驱动数据和地址线所需的功率来节省功率。在一些实现方式中,岛电压轨可以用于为AON相机传感器316和AON相机处理子系统302供电。在一些情况下,使用岛轨道可以通过防止图像处理系统300的非活动组件吸取功率来节省功率。在一些示例中,AON相机传感器316可以用低功率时钟源(诸如一个或多个环形振荡器)来计时。在一些实现方式中,由AON相机传感器316捕获的图像和/或视频可以与来自由主相机传感器318捕获的图像和/或视频的不同域相关联。如上所述,域可以包括但不限于由相机传感器捕获的帧的特性或参数,诸如分辨率、颜色深度和/或帧速率。在一个说明性示例中,AON相机传感器316可以以比主相机传感器318更低的分辨率捕获图像。在一些情况下,捕获具有AON相机传感器316的较低分辨率帧可以通过减少需要从AON相机传感器316读出的数据量(例如,像素数据)来节省功率。在一些实现方式中,AON相机处理子系统302可在较少像素上执行与主相机处理子系统304的类似处理步骤,从而产生较少的计算且借此减少功耗。
在一些情况下,域可以包括对由相机传感器捕获的图像或视频帧执行的图像处理步骤(例如,降噪、边缘增强、图像稳定化、颜色校正)的集合。在一些实现方式中,可以利用不同的图像处理步骤来处理由AON相机传感器316和主相机传感器318捕获的视频帧。例如,AON相机处理子系统302可以执行与主相机处理子系统304比更少和/或不同的处理步骤。在一些情况下,在AON操作期间利用AON相机处理子系统302执行更少的和/或不同的处理操作可以节省功率。
在另一示例中,AON相机传感器316可以捕获单色视频帧,而主相机传感器318可以捕获红色、绿色、蓝色(RGB)彩色视频帧。在一些情况下,读出和处理单色视频帧可以比读出和处理RGB彩色视频帧消耗更少的功率。在一些情况下,由AON相机传感器316和主相机传感器318捕获的视频帧可以基于从光谱的不同部分(诸如可见、紫外(UV)、近红外(NIR)、短波红外(SWIR)、光谱的其它部分或其任何组合)捕获的数据。
在图3的图示中,AON相机传感器316和主相机传感器318可以各自向不同的相机处理子系统提供帧。然而,在一些情况下,单个相机处理子系统可以处理来自AON相机传感器316和主相机传感器318的帧而不脱离本公开内容的范围。此外,尽管AON相机传感器316和主相机传感器318被示为两个不同的传感器,但是也可以使用可以以两种或更多种不同模式(例如,AON模式、中等功率模式、高功率模式等)操作的一个或多个相机传感器而不脱离本公开内容的范围。
图4A和图4B示出了根据本公开内容的一些示例的示例AON相机系统实现。在图4A中所示出的一个示例中,AON相机传感器(例如,上文的图3中所示出的AON相机传感器316)可以用于确定经授权用户是否正与AON面部解锁实现方式402中的设备(例如,移动电话)交互。在图4A中所示出的另一示例中,AON相机传感器可以用于提供基于视觉的上下文感测实现方式404。在图4A所示的基于视觉的上下文感测实现方式404中,可以使用音频数据、AON相机数据和/或来自一个或多个额外传感器的数据来确定用户是否正在参与会议并且使设备进入静默模式。在另一个说明性示例中,基于视觉的上下文感测实现方式可以包括使用惯性传感器数据、音频传感器数据、AON相机数据和/或来自一个或多个额外传感器的数据的组合来确定用户是否正在向设备说话(例如,给出语音命令)或向房间中的另一个人或设备说话。基于视觉的上下文感测实现方式的另一说明性示例可以是惯性传感器数据、音频传感器数据、AON相机数据和/或来自一个或多个额外传感器相机的数据的组合,以防止汽车的驾驶员的设备使用。例如,可以防止驾驶员使用移动电话,同时可以允许乘客使用移动电话。在图4A中所示出的另一示例中,AON相机传感器可用作AON手势检测实现方式406的一部分。例如,AON相机传感器可以包括于XR系统(例如,HMD)、移动装置或AON手势检测实现方式406中的任何其它设备中。在这样的实现方式中,AON相机可以捕获图像并且执行手势检测以允许用户与设备交互而不与设备进行物理接触。
图4B示出了示例底片快门滞后视频捕获序列408。在图4B的说明性示例中,描绘了佩戴HMD或AR眼镜的用户。在所示示例中,用户可以观察410场景。在一些情况下,当用户正在观察410场景时,事件412可以发生。在一些情况下,事件412可以在包括在HMD中的AON操作(例如,上面图3所示的AON相机传感器316)期间被捕获。在所示示例中,用户可以向HMD提供捕获输入414以发起视频捕获。在一些情况下,在用户发起视频捕获之后,HMD可以开始在标准操作中捕获视频帧(例如,利用上面图3中所示的主相机传感器318)。如将关于以下附图更详细地描述的,在AON操作期间捕获的帧可以与在标准操作期间捕获的帧组合成在捕获输入之前开始的组合视频。在一些情况下,在AON操作期间捕获的帧可以被变换以在捕获输入之前和之后提供组合视频帧的一致外观。如上所述,本文中对AON操作的引用可以被理解为包括利用一个或多个AON相机捕获图像和/或帧和/或以AON模式操作一个或多个相机。类似地,标准操作可以被理解为包括利用在非AON模式下操作的一个或多个非AON相机和/或一个或多个相机来捕获针。
图5A示出了根据本公开内容的一些示例的底片快门滞后系统500的示例框图。如图所示,底片快门滞后系统500的组件可以包括一个或多个相机传感器502、相机流水线504、域开关506、帧缓冲器512、域变换模型514和组合器518。在一些情况下,一个或多个相机传感器502可以包括AON相机传感器(例如,图3所示的AON相机传感器316)和主相机传感器(例如,图3所示的主相机传感器318)。在一些示例中,AON相机传感器可以捕获与第一域相关联的视频帧508,并且主相机传感器可以捕获与第二域相关联的视频帧510。在一些情况下,一个或多个相机传感器502可以包括可以以两种或更多种模式(例如,AON模式、中等功率模式和高功率模式)操作的一个或多个相机传感器。在一些实现方式中,一个或多个相机传感器502可以在AON操作期间捕获与第一域相关联的视频帧508,并且在标准操作期间捕获与第二域相关联的捕获的视频帧510。在所示示例中,底片快门滞后系统500接收捕获输入505的时间可以被标记为时间t=0。在捕获输入505之前捕获的视频帧在时间t<0的范围期间发生,并且在捕获输入505之后捕获的视频帧在时间t>0的范围期间发生。
在一些情况下,由一个或多个相机传感器502捕获的帧可以由相机流水线504处理。例如,相机流水线504可以对由一个或多个相机传感器502提供的原始视频帧执行降噪、边缘增强、图像稳定、颜色校正和/或其它图像处理操作。
在一些示例中,域开关506可以与一个或多个相机传感器502通信地耦合,并且可以控制哪个相机传感器和/或相机传感器模式捕获视频帧。在一些情况下,域开关506可以在接收捕获输入505之前接收与第一域相关联的视频帧。例如,可以在AON操作期间接收与第一域相关联的视频帧。在一些情况下,域开关506可以将与第一域相关联的视频帧508路由到帧缓冲器512。在一些实现方式中,域开关506可以在AON操作期间启用将额外帧添加到帧缓冲器512并且在标准操作期间禁用将额外帧添加到帧缓冲器512。在一些示例中,帧缓冲器512可以直接从一个或多个相机传感器502和/或相机流水线504接收与第一域相关联的视频帧508。
在一些情况下,底片快门滞后系统500可以接收捕获输入505(例如,来自用户按下按钮、执行手势等)。基于捕获输入505,底片快门滞后系统500可以开始捕获与第二域相关联的视频帧。在一些情况下,与在接收捕获输入505之后捕获的第二域相关联的第一视频帧(或后续视频帧)可以被存储或标记为关键帧511。在一些情况下,可以在与接收捕获输入505大致相同的时间捕获关键帧511。在接收到捕获输入505之后,一个或多个相机传感器502和相机流水线504可以输出与第二域相关联的视频帧,直到接收到结束捕获输入为止。在一些情况下,在接收到捕获输入505时,域开关506、一个或多个相机传感器502和/或相机流水线504可以停止向帧缓冲器512提供新的帧。在这种情况下,帧缓冲器512中捕获的视频帧可以基于帧缓冲器512的缓冲器长度跨越一段时间B。在一些情况下,存储在帧缓冲器512中的视频帧可以跨越t=-B和在捕获输入505之前捕获与第一域相关联的最后一个视频帧的时间t≈0之间的时间段。
在一些情况下,域变换模型514可以被实现为深度学习神经网络。在一些实现方式中,域变换模型514可以被训练为将存储于与第一域相关联的帧缓冲器512中的视频帧变换成与第二域相关联的经变换视频帧。在一些实现方式中,域变换模型514可以被训练为使用与第二域相关联的关键帧511作为用于变换与存储在帧缓冲器512中的第一域相关联的视频帧的向导。
在一个说明性示例中,训练数据集合可以包括原始视频和训练视频。在一些情况下,原始视频的所有帧可以与第二域相关联。在一些情况下,训练视频中的每个训练视频的一部分(例如,前30帧、前100帧、前300帧、前900帧或任何其它数量的帧)可以与第一域相关联,以在AON操作期间模拟存储在帧缓冲器512中的数据。在一些情况下,可以通过将原始视频帧的一部分从第二域变换到第一域(例如,通过缩小分辨率、从颜色转换为单色、降低帧速率、模拟相机流水线中的不同步骤等)来从原始视频生成与第一域相关联的视频帧的部分。原始视频和训练视频可以包括与第二域相关联的关键帧(例如,关键帧511),其可以由域变换模型514用来将与第一域相关联的训练视频的部分变换到第二域。
在一些情况下,由域变换模型514生成的所得变换视频帧可以与原始视频帧直接比较,并且损失函数可以用于确定变换视频帧与原始视频帧之间的误差量。可以基于误差来调整(或调谐)深度学习网络的参数(例如,权重、偏差等)。这样的训练过程可以被称为使用反向传播的监督学习,其可以被执行直到调谐的参数提供期望的结果。
在一些示例中,可以利用深度生成神经网络模型(例如,生成式对抗网络(GAN))来训练域变换模型514。GAN是一种生成神经网络,它可以学习输入数据中的模式,以便神经网络模型可以生成新的合成输出,这些新的合成输出合理地可能来自原始数据集。GAN可以包括一起操作的两个神经网络。其中一个神经网络(被称为生成式神经网络或生成器,表示为G(z))生成合成输出,而另一个神经网络(被称为鉴别式神经网络或鉴别器,表示为D(X))针对真实性来评估合成输出(合成输出是来自原始数据集,例如训练数据集,还是由生成器生成)。生成器G(z)可以对应于域变换模型514。训练生成器以尝试并欺骗鉴别器以确定由生成器生成的合成视频帧(或视频帧组)是来自训练数据集(例如,第一组训练视频数据)的真实视频帧(或视频帧组)。训练过程继续进行,并且生成器在生成看起来像真实视频帧的合成视频帧方面变得更好。鉴别器继续在合成视频帧中发现缺陷,并且生成器找出鉴别器正在查看的内容以确定图像中的缺陷。一旦网络经过训练,生成器就能够产生鉴别器无法与真实视频帧区分开来的逼真视频帧。
可以用于域变换模型514的训练的神经网络的一个示例是有条件GAN。在有条件GAN中,生成器正在学习条件分布。有条件GAN可以利用一些向量y来调节生成器和鉴别器神经网络,在这种情况下,向量y被输入到生成器网络和鉴别器网络两者中。基于向量y,生成器和鉴别器分别变为G(z,y)和D(X,y)。生成器G(z,y)对给定z和y的数据的分布进行建模,在这种情况下,数据X生成为X~G(X|z,y)。鉴别器D(X,y)尝试找到用于X and XG的鉴别标签,其被建模为d~D(d|X,y).,鉴别器D(X,y)和生成器G(z,y)因此被联合调节为两个变量:z或X和y。
在一个说明性示例中,有条件GAN可以生成以标签(例如,表示为向量y)为条件的视频帧(或多个视频帧),其中,标签指示视频帧(或多个视频帧)中的对象的类别,并且GAN的目标是将与第一域相关联的视频帧(或多个视频帧)变换为与包括该对象的类的第二域相关联视频帧(或多个视频帧)。在生成器G和鉴别器D之间存在相对于鉴别器D的参数最大化的竞争方面。鉴别器D将尝试区分真实视频帧(来自第一组训练视频数据)和伪视频帧(由生成器G基于第二组训练视频数据生成)以及可能的,并且生成器G应当最小化鉴别器D识别伪图像的能力。可以在训练过程期间调整生成器G的参数(例如,神经网络的节点的权重以及在一些情况下其它参数,诸如偏差),使得生成器G将输出和与第二域相关联的真实视频帧不可区分的视频帧。损失函数可以用于分析生成器G和鉴别器D中的误差。在一个说明性示例中,可以使用二进制交叉熵损失函数。在一些情况下,可以使用其它损失函数。
在推断期间(在域变换模型514已经被训练之后),域变换模型514的参数(例如,由GAN训练的生成器G)可以是固定的,并且域变换模型514可以使用关键帧511作为引导来变换与第一域相关联的视频帧(例如,通过放大分辨率、着色和/或执行任何其它变换)以生成与第二域相关联的经变换的视频帧516。
在一些情况下,组合器518可以将经变换的视频帧516和对于时间t>=0的与第二域相关联的捕获的视频帧510转换成具有与第二域相关联的视频帧的组合视频520。在一个说明性示例中,组合器518可以执行变换的视频帧516和与第二域相关联的捕获的视频帧510的级联,以生成组合视频520。
图5B示出了另一示例底片快门滞后系统550的框图。类似于图5A中所示的底片快门滞后系统500,底片快门滞后系统550可以包括一个或多个相机传感器502、帧缓冲器512、域变换模型514以及组合器518。在图5B所示的示例中,图5A中所示的域开关506已经被移除。另外,代替包括如图5A中所展示的单个相机流水线504,底片快门滞后系统550可以包括通信地耦合到一或多个相机传感器502的第一相机流水线522和第二相机流水线524。
如图所示,第一相机流水线522可以从一个或多个相机传感器502接收视频帧。在一些情况下,第一相机流水线522可以在一个或多个相机传感器502的AON操作期间从一个或多个相机传感器502接收视频帧。第一相机流水线522可以对来自一个或多个相机传感器502的视频帧执行降噪、边缘增强、图像稳定、颜色校正和/或其它图像处理操作,并且第一相机流水线522的输出可以被路由到帧缓冲器512。从第一相机流水线522输出的视频帧可与第一域相关联。在一些情况下,第一域可以包括由第一相机流水线522执行的特定处理步骤。第一相机流水线522的输出可以包括与第一域相关联的视频帧508。
第二相机流水线524也可以从一个或多个相机传感器502接收视频帧。在一些情况下,第二相机流水线524可以在一个或多个相机传感器502的标准操作期间从一个或多个相机传感器502接收视频帧。第二相机流水线524可以对接收到的视频帧执行一个或多个图像处理操作。在一些情况下,与第一相机流水线522相比,由第二相机流水线524执行的图像处理操作可以执行不同的处理步骤和/或不同数量的处理步骤。在一些情况下,第二域可以包括由第二相机流水线524执行的特定处理步骤。第二相机流水线524的输出可以包括与第二域相关联的关键帧511和与第二域相关联的捕获视频帧510。在一些情况下,当接收到捕获输入505时(例如,在时间t=0处),一个或多个相机传感器502可以暂停向第一相机流水线522输出视频帧并且开始向第二相机流水线524输出视频帧。
如上文关于图5A所描述,域变换模型514可以为经训练以将视频帧从第一域变换到第二域的深度学习神经网络。在底片快门滞后系统550的情况下,生成与第一域相关联的训练视频中的每个训练视频的部分可以包括模拟第一相机流水线522与第二相机流水线524之间的处理步骤中的差异。在一些情况下,除了复制第一域和第二域之间的任何其他差异(例如,分辨率、颜色深度、帧速率等)之外,还可以对第一相机流水线522和第二相机流水线524之间的处理步骤中的差异进行仿真。使用上述训练集合,可以在监督训练过程中训练域变换模型514和/或利用GAN训练域变换模型514,如以上示例中所述,以及任何其它合适的训练技术。
在推断期间(在域变换模型514已经被训练之后),域变换模型514的参数(例如,由GAN训练的生成器G)可以是固定的,并且域变换模型514可以使用关键帧511作为引导来变换与第一域相关联的视频帧(例如,通过放大分辨率、着色、仿真相机流水线的图像处理步骤和/或执行任何其它变换)以生成与第二域相关联的经变换的视频帧516。
图6是示出处理一个或多个帧的过程600的示例的流程图。在框602处,过程600包括从图像捕获系统(例如,图1中所示的图像捕获和处理系统100、图2中所示的图像传感器202、一个或多个相机传感器502)获得与第一设置域相关联的第一多个帧,其中在获得捕获输入之前捕获第一多个帧。在一些情况下,第一设置域包括第一分辨率。在一些情况下,第一设置域包括第一帧速率。
在框604处,过程600包括从图像捕获系统获得与第二设置域相关联的至少一个参考帧(例如,关键帧)。所述至少一个参考帧是接近于获得所述捕获输入捕获的。
在框606处,过程600包括从所述图像捕获系统获得与所述第二设置域相关联的第二多个帧。在至少一个参考帧之后捕获第二多个帧。在一些情况下,第二设置域包括第二分辨率。在一些情况下,第二设置域包括第二帧速率。
在框608处,过程600包括基于所述至少一个参考帧(例如,利用图5A和图5B中所示的域变换模型514)变换第一多个帧的至少一部分以生成与第二设置域相关联的所述经变换的多个帧。在一些情况下,变换第一多个帧的至少一部分包括将第一多个帧的至少一部分从第一分辨率放大(例如,利用图9所示的放大模型914)到第二分辨率。在一些情况下,变换第一多个帧的至少一部分包括将第一多个帧的至少一部分从第一帧速率转换(例如,利用图11所示的帧速率转换器1122)到第二帧速率。虽然以下示例包括对多个帧的讨论,但是示例可以与多个帧的一部分(例如,第一多个帧的至少一部分)相关联。
在一些情况下,过程600包括组合经变换的多个帧和第二多个帧以(例如,利用组合器1118)生成与第二设置域相关联的视频。
在一些情况下,过程600包括(例如,从图13中所示的惯性运动估计器1326和/或光学运动估计器1324)获得与所述第一多个帧相关联的运动信息,其中,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧、所述至少一个参考帧和所述运动信息的。在一些情况下,过程600包括基于与第一多个帧相关联的运动信息确定平移方向,且将平移方向应用于经变换的多个帧。
在一些情况下,过程600包括以第一帧速率捕获第一多个帧的第一子集,并且以不同于第一帧速率的第二帧速率捕获第一多个帧的第二子集。在一些实现方式中,所述第一帧速率与所述第二帧速率之间的改变是至少部分地基于与所述第一多个帧的所述第一子集、所述第一多个帧的所述第二子集、或两者相关联的运动信息。
在一些情况下,过程600包括:从所述图像捕获系统获得与所述第二设置域相关联的额外参考帧。在一些实现方式中,在获得捕获输入之前捕获额外参考帧。在一些情况下,生成与第二域相关联的经变换的多个帧是基于第一多个帧、至少一个参考帧和额外参考帧的。在一些示例中,至少一个参考帧提供用于变换第一多个帧的至少第一部分的参考,并且额外参考帧提供用于放大第一多个帧的至少第二部分的参考。
虽然本公开内容的示例描述了用于与视频帧相关的底片快门滞后的各种技术,但本公开内容的技术还可以用于为静态图像(本文中也称为帧)提供类似的底片快门滞后。例如,用户可能错过了有趣的事件,并且在事件发生之后,用户可以发起用于静止图像捕获的捕获输入(例如,图5A和图5B中所示的捕获输入505)。在这样的情况下,诸如图5A中所示出的底片快门滞后系统500或图5B中所示出的底片快门滞后系统550的底片快门滞后系统可以接收存储于帧缓冲器512中的一个或多个选定帧的选择以从第一域变换到第二域。在一些情况下,底片快门滞后(或例如包括诸如XR系统200的底片快门滞后系统的系统)可以给出用于选择一个或多个选定帧的接口。例如,用户可以被提供有用于逐帧步进和逐帧查看存储在帧缓冲器512中的视频帧以选择一个或多个选定帧用于变换的接口。用于选择一个或多个选定帧的接口的其它说明性示例可以包括用于前进通过存储在帧缓冲器512中的帧的滑块和存储在帧缓冲器512中的帧的缩略图图库。
在一些情况下,底片快门滞后系统可以建议一个或多个帧变换。在一个说明性实例中,底片快门滞后系统可以确定与其它最近帧相比在特定帧中是否存在超过门限量的改变或运动的显著改变或运动,且建议超过门限的帧(或多个帧)。举例来说,底片快门滞后系统可以使用变化检测算法来确定是否存在显著改变或运动,以分析多个所检测和/或跟踪特征的改变或运动。在另一说明性示例中,可以训练深度学习神经网络以基于利用标记图像数据的数据集的训练来确定哪些帧包含相关和/或感兴趣内容。在一些情况下,可以在已经由特定用户拍摄的图像的个性化数据集上训练深度学习神经网络。在另一说明性示例中,底片快门滞后系统可以确定人面部的数目的改变作为建议一个或多个帧变换的基础。例如,可以在面部和非面部的图像的数据集上训练面部检测神经网络,以确定存储在帧缓冲器512中的帧中的人面部的数量。一旦底片快门滞后系统接收到对一个或多个选定帧的选择,域变换模型514就可以变换一个或多个选定帧以生成与第二域相关联的一个或多个经变换的帧。
图7是示出处理一个或多个帧的过程700的示例的流程图。在框702处,过程700包括从图像捕获系统(例如,图1中所示的图像捕获和处理系统100、图2中所示的图像传感器202、和/或一个或多个相机传感器502)获得与第一设置域相关联的第一多个帧,其中,在获得捕获输入之前捕获第一多个帧。
在框704处,过程700包括从图像捕获系统获得与第二设置域相关联的参考帧(例如,关键帧),其中,所述参考帧是接近于获得所述捕获输入捕获的。
在框706处,过程700包括获得对与所述第一多个帧相关联的一个或多个选定帧的选择。例如,用户可以被提供有用于逐帧步进和逐帧查看存储在帧缓冲器(例如,图5A和图5B中示出的帧缓冲器512)中的视频帧以选择一个或多个选定帧用于变换的接口。
在框708处,过程700包括基于参考帧来变换(例如,利用图5A和图5B中所示的域变换模型514)所述一个或多个选定帧用于生成与所述第二设置域相关联的一个或多个变换帧。
图8A是示出用于执行底片快门滞后捕获的示例过程800的流程图。在框802处,过程800可以禁用相机(例如,图3中所示的AON相机传感器316和/或主相机传感器318)对视频帧的捕获。
在框804处,过程800可以确定是否启用AON记录。如果AON记录被禁用,则过程800可以返回到框802。如果启用AON记录,则过程800可以进行到框806。
在框806处,过程800可以在AON操作期间捕获与第一域相关联的帧。在一个说明性示例中,第一域可以包括从NIR传感器捕获单色帧。在一些情况下,与第一域相关联的帧可以存储在视频缓冲器(例如,图3所示的SRAM 320、DRAM 314和/或图19所示的存储设备1930、存储器1915、ROM 1920、RAM 1925)中。举例来说,视频缓冲器可包含存储用于特定缓冲器长度(例如,1秒、5秒、30秒、1分钟、5分钟或任何其它时间量)的视频帧的循环缓冲器。在一些情况下,视频缓冲器可以累积视频帧,直到存储在视频缓冲器中的视频量跨越缓冲器长度。一旦视频缓冲器被填充,则在框806处捕获的每个新帧可以替换保持在视频缓冲器中的最旧帧。结果,视频缓冲器可以包括基于缓冲器长度在块806处针对时间跨度捕获的最近的视频帧。
在框808处,过程800可以确定是否已经接收到捕获输入。如果过程800确定尚未接收到捕获输入,那么过程800可以返回到框806且继续AON操作。如果过程800确定已经接收到捕获输入,则过程800可以继续到框810。
在框810处,过程800可以在标准操作期间捕获与第二域相关联的视频帧。在一个说明性示例中,第二域可以包括从可见光传感器捕获RGB帧。在一些情况下,在框810处,视频缓冲器的内容可在标准操作期间保持固定。在一些情况下,在框810处捕获的与第二域相关联的视频帧可以存储在与视频缓冲器分离的存储器或存储器的单独部分中。
在框812处,过程800可以确定是否已经接收到结束记录输入。如果接收到结束记录输入,则过程800可以返回到框804。如果没有接收到结束记录输入,则过程800可以返回到框810并且在标准操作期间继续捕获帧。
图8B示出了图8A所示的过程800的不同阶段期间的相对功耗的曲线850。曲线850未按比例示出并且出于说明性目的而提供。在所示示例中,条822的高度指示图像处理系统(例如,以上图3所示的图像处理系统300)的相对功耗,同时在AON操作期间捕获与第一域相关联的视频帧(例如,在框806处)。在所示出的示例中,条822可以包括通过将在AON操作期间捕获的视频帧存储于视频缓冲器(例如,循环缓冲器)中而消耗的功率。类似地,在所示示例中,条824的高度可以包括在AON操作期间由一个或多个相机传感器(例如,上面图3所示的AON相机传感器316和/或主相机传感器318)消耗的功率。在所示示例中,视频缓冲器(例如,图3中所示的DRAM 314和/或SRAM 320)的缓冲器长度826由箭头示出,箭头在捕获输入827的时间结束并且基于视频缓冲器的缓冲器长度B在时间上向后延伸一定量的时间。
在接收到捕获输入827之后,过程800可以在标准操作期间(例如,在框810处)捕获与第二域相关联的视频帧。条828的高度可以表示在标准操作期间由图像处理系统消耗的相对功率,并且示出了功耗相对于在缓冲与第一域相关联的视频帧期间消耗的功率的增加。由条828示出的图像处理系统的增加的功耗可以是例如处理具有更大数量的像素的视频帧、更多的颜色信息、更高的帧速率、更多的图像处理步骤、与第一域和第二域之间的任何其它差异相关联的功率差、或其任何组合的结果。类似地,条830可以表示在标准操作期间一个或多个相机传感器的功率。由条830示出的一个或多个相机传感器的增加的功耗可以由捕获和传输用于更大数量的像素的数据、以更多的颜色信息、以更高的帧速率、与第一域和第二域之间的任何其它差异相关联的功率差、或其任何组合产生。
在一些情况下,AON操作可以在过程800没有接收到捕获输入的情况下继续几分钟、几小时或几天。在这样的情况下,与标准操作相比减小与在AON操作期间捕获帧相关联的功率可以显著增加底片快门滞后系统的可用电池寿命。在一些情况下,总是在标准操作和AON操作期间捕获和处理高功率视频帧的AON相机系统可以通过比较更快地消耗可用功率(例如,来自电池)。
在标准操作期间的视频帧捕获可以继续,直到过程800接收(例如,在框812处)到结束记录输入为止。如关于图5A中所示出的底片快门滞后系统500及图5B中所示出的底片快门滞后系统550所描述,可以基于关键帧来变换与在捕获输入827之前捕获且存储于视频缓冲器中的第一域相关联的视频帧,以生成与第二域相关联的经变换的视频帧。在一些情况下,与第二域相关联的经变换的视频帧可以和与第二域相关联的视频帧组合(例如,在组合器518处)以形成组合视频。方括号832示出了基于图8B所示示例的示例组合视频的总持续时间。
图9示出了根据本公开内容的示例的示例底片快门滞后系统900。如图所示,底片快门滞后系统900可以包括一个或多个相机传感器902、相机流水线904、分辨率开关906、帧缓冲器912、放大模型914和组合器918。在图9的示例中,在底片快门滞后系统900接收捕获输入905之前捕获的帧908可以具有第一分辨率,并且在接收捕获输入905之后捕获的帧910可以具有不同于第一分辨率的第二分辨率。在一个说明性示例中,第一分辨率可以低于第二分辨率。参考图5A和图5B,低分辨率视频帧908可以是与第一域(例如,视频帧508)相关联的帧的说明性示例,并且高分辨率视频帧910可以是与第二域(例如,捕获的视频帧510)相关联的视频帧的说明性示例。分辨率开关906可以类似于并执行与图5A中所示的域开关506类似的功能。例如,分辨率开关906可以与一个或多个相机传感器902通信地耦合,并且可以控制哪个(哪些)相机传感器和/或相机传感器模式用于在AON操作和标准操作期间捕获视频帧。在一些情况下,分辨率开关906可以在接收到捕获输入905之前以第一分辨率从由相机流水线904处理的一个或多个相机传感器902接收视频帧。例如,低分辨率视频帧可以从AON相机传感器和/或从以AON模式操作的相机传感器接收。在一些情况下,分辨率开关906可以将低分辨率视频帧908路由到帧缓冲器912。在一些实现方式中,分辨率开关906可启用或禁用帧缓冲器912。在一些情况下,帧缓冲器912可以直接从一个或多个相机传感器902和/或相机流水线904接收低分辨率视频帧908。
在一些实现方式中,帧缓冲器912可以类似于并执行与图5A中所展示的帧缓冲器512类似的功能。例如,帧缓冲器912可具有缓冲器长度B(例如,一秒、五秒、十秒、三十秒或任何其它选定缓冲器长度)。在一些情况下,在由底片快门滞后系统900接收到俘获输入905之后,存储于帧缓冲器912中的视频帧可以跨越t=-B与捕获输入905之前捕获最后低分辨率视频帧的时间(例如,t≈0)之间的时间段。
在一些情况下,放大模型914可以被实现为深度学习神经网络。在一些情况下,可以训练放大模型914以将存储在帧缓冲器912中的低分辨率视频帧908放大到高分辨率。在一些实施方式中,可以训练放大模型914以使用高分辨率关键帧911作为用于放大存储在帧缓冲器912中的低分辨率视频帧908的引导。
在一些情况下,可以使用类似于针对图5A描述的训练域变换模型514所描述的过程的过程来训练放大模型914。在底片快门滞后系统900的情况下,训练数据集合可以包括原始视频和训练视频。在一些情况下,原始视频的所有帧可以是高分辨率帧。在一些情况下,原始视频中的每个原始视频的一部分(例如,前30帧、前100帧、前300帧、前900帧或任何其它数量的帧)可以缩小到低分辨率,以在AON操作期间模拟存储在帧缓冲器512中的数据。原始视频和训练视频可以包括高分辨率的关键帧(例如,关键帧511),其可以由域变换模型514用来将训练视频的低分辨率部分放大到高分辨率。
在推理期间(在已经训练了放大模型914之后),可以固定放大模型914的参数(例如,利用GAN训练的生成器G),并且放大模型914可以使用高分辨率关键帧911作为引导来放大低分辨率帧(例如,存储在帧缓冲器912中的帧),以生成放大视频帧916。
在一些情况下,组合器918可以将放大的视频帧916和高分辨率视频帧910组合成高分辨率组合视频920。在一个说明性示例中,组合器518可以执行放大视频帧916和高分辨率视频帧910的级联以生成组合视频920。
图10是示出用于处理一个或多个视频帧的过程1000的示例的流程图。在框1002处,过程1000包括从图像捕获系统(例如,图1中所示的图像捕获和处理系统100、图2中所示的图像传感器202、和/或一个或多个相机传感器502)获得具有第一分辨率的第一多个帧,其中,在获得捕获输入之前捕获第一多个帧。
在框1004处,过程1000包括从图像捕获系统获得具有第二分辨率的参考帧(例如,关键帧),其中,所述参考帧是接近于获得所述捕获输入捕获的。
在框1006处,过程1000包括从图像捕获系统获得具有第二分辨率的第二多个帧,其中,第二多个帧在参考帧之后被捕获。
在框1008处,过程1000包括基于参考帧将第一多个帧从第一分辨率放大(例如,利用图5A和图5B中所示的域变换模型514和/或图9中所示的放大模型914)到第二分辨率,以生成具有第二分辨率的放大的多个帧。
图11是示出根据一些示例的另一示例底片快门滞后系统1100的示意图。如图所示,底片快门滞后系统1100可以包括一个或多个相机传感器1102、相机流水线1104、域开关1106、帧缓冲器1122、帧速率转换器1122、放大模型1114和组合器1118。图11的底片快门滞后系统1100的一个或多个组件可以类似于图9的底片快门滞后系统900的相同编号组件且执行类似操作。例如,一个或多个相机传感器1102可以类似于并执行与一个或多个相机传感器902类似的操作。作为另一示例,相机流水线1104可以类似于并执行与相机管线904类似的操作。在图11的示例中,在接收捕获输入1105之前捕获的帧1108可以具有第一分辨率和第一帧速率。在接收到捕获输入1105之后捕获的视频帧1110和关键帧1111可以具有不同于第一分辨率的第二分辨率和不同于第二帧速率的第二帧速率。在一个说明性示例中,第二分辨率可以高于第一分辨率且第二帧速率可高于第一帧速率。
为了生成具有第二分辨率和第二帧速率的经放大并帧速率调整的视频帧1116,帧速率转换器1122可以将帧1108的帧速率从第一帧速率调整到第二帧速率。在一个说明性示例中,帧速率转换器1122可以对来自存储于帧缓冲器1112中的相邻帧对的数据进行内插以生成额外帧且借此生成经帧速率调整的帧1125。在一些情况下,由关键帧1111引导的放大模型1114可以将经帧速率调整的帧1125的分辨率放大到第二分辨率。放大模型1114可以类似于图9的放大模型914并且执行与图9的放大模型914类似的操作。还可以以与放大模型914类似的方式训练放大模型1114,如关于图9更详细地描述的。在一些实现方式中,可以以相反的顺序执行由放大模型1114执行的分辨率放大和由帧速率转换器1122执行的帧速率调整,而不脱离本公开内容的范围。在一些情况下,放大模型1114、帧速率转换器1122或其组合可共同地视为域变换模型(例如,对应于图5A和图5B中所示的域变换模型514)的说明性示例。
在一些情况下,组合器1118可以将经放大和帧速率调整的视频帧1116和具有第二分辨率和第二帧速率的视频帧1110组合成具有第二分辨率和第二帧速率的组合视频1120。在一个说明性示例中,组合器1118可以以第二分辨率和第二帧速率执行对经放大和帧速率调整的视频帧1116和视频帧1110的级联,以生成组合视频1120。
图12是示出处理一个或多个帧的过程1200的示例的流程图。在框1202处,过程1200包括从图像捕获系统(例如,图1中所示的图像捕获和处理系统100、图2中所示的图像传感器202、和/或一个或多个相机传感器502)获得具有第一分辨率和第一帧速率的第一多个帧,其中,在获得捕获输入之前捕获第一多个帧。
在框1204处,过程1200包括从图像捕获系统获得具有第二分辨率的参考帧(例如,关键帧),其中,所述参考帧是接近于获得所述捕获输入捕获的。
在框1206处,过程1200包括从图像捕获系统获得具有第二分辨率和第二帧速率的第二多个帧,其中,第二多个帧在参考帧之后被捕获。
在框1208处,过程1200包括基于参考帧将第一多个帧从第一分辨率放大到第二分辨率,并且将第一多个帧从第一帧速率帧速率调整到第二帧速率以生成具有第二分辨率和第二帧速率的经变换的多个帧。
图13是示出根据本公开内容的示例的另一示例底片快门滞后系统1300的示意图。如图所示,底片快门滞后系统1300可以包括一个或多个相机传感器1302、相机流水线1304、域开关1306、帧缓冲器1312、放大模型1314、组合器1318和帧速率转换器1322。图13的底片快门滞后系统1300的一个或多个组件可以类似于图11的底片快门滞后系统1100的相同组件且执行类似操作。例如,一个或多个相机传感器1302可以类似于并执行与一个或多个相机传感器1102类似的操作。作为另一示例,相机流水线1304可以类似于并执行与相机管线1104类似的操作。
如所示出,底片快门滞后系统1300还可以包括帧速率控制器1323、光学运动估计器1324和惯性运动估计器1326。在底片快门滞后系统1300中,可以以可变帧速率捕获在接收捕获输入1305之前捕获的帧1308。在一些情况下,帧1308的可变帧速率可以由帧速率控制器1323确定。帧速率控制器1323可以从一个或多个运动估计器接收输入。在图13所示的说明性示例中,帧速率控制器1323可以从惯性运动估计器1326和光学运动估计器1324接收输入。在一些情况下,帧速率控制器1323可以从更少(例如,一个)、更多(例如,三个或更多个)和/或不同类型的运动估计器接收输入而不脱离本公开内容的范围。在一些情况下,传感器数据1328可以作为输入从一个或多个传感器(例如,图2所示的加速度计204和/或陀螺仪206、IMU和/或任何其它运动传感器)提供给惯性运动估计器1326。在一些情况下,惯性运动估计器1326可以基于传感器数据1328来确定一个或多个相机传感器1302的估计运动量。在一些情况下,光学运动估计器1324可以基于在接收捕获输入1305之前捕获的帧1308来确定由一个或多个相机传感器1302捕获的一个或多个相机传感器1302和/或场景的运动量。在一些情况下,光学运动估计器可以利用一种或多种光学运动估计技术来估计一个或多个相机传感器1302和/或场景的运动量。在一个说明性实例中,光学运动估计器1324可以检测帧1308中的两个或更多个中的特征(例如,作为如关于图2所描述的6DoF SLAM的部分),并且确定帧1308中的两个或更多个帧之间的一个或多个特征的运动量。
在一些情况下,基于从惯性运动估计器1326和/或光学运动估计器1324接收的运动估计,帧速率控制器1323可以在接收捕获输入1305之前改变由一个或多个相机传感器1302捕获的帧1308的帧速率。例如,如果帧率控制器1323检测到一个或多个相机传感器1302和/或场景中的对象的相对少量的运动(或没有运动),则帧率控制器1323可以降低帧1308的帧率。在一个说明性示例中,如果一个或多个相机传感器1302是静止的并且捕获静态场景,则帧速率控制器1323可以降低帧速率。在一些情况下,帧速率控制器1323可将帧1308的帧速率降低到八分之一、四分之一、二分之一或第二帧速率的任何其它分数。在一些情况下,通过在接收捕获输入1305(例如,在AON模式期间捕获的帧)之前降低帧1308的帧速率,可以降低功耗。
另一方面,如果帧速率控制器1323检测到来自惯性运动估计器1326和/或光学运动估计器1324的大量运动,则帧速率控制器1323可以增加帧速率。在一个说明性示例中,如果一个或多个相机传感器1302处于运动中并且正在观察体育赛事(例如,包含大量运动的场景),则帧率控制器1323可以增加帧率。
在一些情况下,帧速率控制器1323可以将在接收捕获输入1305之前捕获的帧1308的帧速率增加为与用于在接收捕获输入1305之后捕获帧1310的帧速率一样高。在一些情况下,帧速率控制器1323可以输出与在接收到帧缓冲器1312的捕获输入1305之前捕获的帧1308中的每个帧相关联的可变帧速率。
在一些情况下,通过增加帧速率,可以增加用于在接收捕获输入1305之前捕获帧1308的功耗。尽管功耗可以通过在增加的运动的时段期间增加帧1308的帧速率来增加,但是可以改善在AON操作期间在帧速率转换之后获得的帧的质量以及在AON操作期间捕获的帧的放大。
在一些情况下,帧速率转换器1322可以利用存储在帧缓冲器1312中的帧速率信息来正确地执行帧速率转换。举例来说,如果帧速率控制器1323降低帧1308的帧速率,则帧速率转换器1322可生成额外帧(例如,使用内插技术)以匹配在接收到捕获输入1305之后捕获的帧1310的帧速率。
在一些情况下,帧速率转换器1322可以将帧1308的帧速率从可变帧速率调整到第二帧速率。在一个说明性示例中,帧速率转换器1322可以对来自存储于帧缓冲器1112中的相邻帧对的数据进行内插以生成额外帧且借此生成经帧速率调整的帧1325。
在说明性示例中,在接收捕获输入1305之前捕获的帧1308可以具有可变帧速率和第一分辨率。另外,在接收到捕获输入1305之后捕获的帧1310和关键帧1311可以具有第二分辨率和第二帧速率。在这样的示例中,由关键帧1311引导的放大模型1314可以将帧速率调整帧1325的分辨率放大到第二分辨率以生成帧速率转换和放大帧1316。放大模型1314可以类似于图9的放大模型914并且执行与图9的放大模型914类似的操作。还可以以与放大模型914类似的方式训练放大模型1314,如关于图9更详细地描述的。在一些实现方式中,可以以相反的顺序执行由放大模型1314执行的分辨率放大和由帧速率转换器1322执行的帧速率调整,而不脱离本公开内容的范围。在一些情况下,放大模型1314、帧速率转换器1322或其组合可以视为域变换模型(例如,对应于图5A和图5B中所示的域变换模型514)的说明性示例。
在一些情况下,惯性运动估计数据(例如,来自惯性运动估计器1326)可以被提供给放大模型1314。在一些情况下,惯性运动估计数据可以存储在惯性运动循环缓冲器(未示出)中。在一些情况下,惯性估计数据可与存储在帧缓冲器1312中的每一视频帧相关联。在一些情况下,可以训练放大模型以利用惯性运动估计数据以及关键帧1311作为引导以用于将帧速率调整的帧1325放大到第二分辨率。例如,如果惯性运动估计数据指示一个或多个相机传感器1302在接收捕获输入1305之前立即向左移动,则放大模型1314可以包括在转换和放大的帧1316中向左平移运动。在一些情况下,可以使用训练数据来训练放大模型1314,所述训练数据包括与针对图9针对训练放大模型914所描述的训练过程类似的过程中的模拟惯性运动估计数据。应当理解,使用惯性运动估计数据作为引导可以与本文描述的任何示例一起使用。例如,惯性运动数据可以用作图5A和图5B所示的域变换模型514的引导。
图14是示出处理一个或多个帧的过程1400的示例的流程图。在框1402处,过程1400包括在AON操作期间与第一域相关联的捕获视频帧。在一些情况下,在AON操作期间捕获的视频帧可以对应于图5A中的视频帧508。
在框1404处,过程1400可以确定捕获输入(例如,用户按下记录按钮、执行手势等)是否被接收。如果没有接收到捕获输入,则过程1400可以进行到框1406。在框1406处,过程1400可以确定是否需要捕获与不同于第一域的第二域相关联的关键帧。例如,过程1400可以确定自最近的关键帧被获取以来的时间量。在一些情况下,连续捕获的关键帧之间的时段可以具有固定值。在一些情况下,连续捕获的关键帧之间的时段可以是可变的。在一个说明性示例中,可以基于来自一或多个运动估计器(例如,惯性运动估计器1326、光学运动估计器1324、任何其它运动估计器或其组合)的运动估计来确定连续捕获的关键帧之间的周期。
如果已在框1404处接收到捕获输入,则过程1400可以进行到框1410。在框1410处,过程1400可大致在捕获输入的时间(例如,图5A中所示的捕获输入505)捕获与第二域相关联的关键帧(例如,图5A中所示的关键帧511)。
在框1412处,过程1400可以在标准操作期间捕获与第二域相关联的视频帧(例如,与图5A中所示的第二域相关联的捕获的视频帧510)。
在框1414处,过程1400可以确定是否接收到结束记录输入。如果没有接收到结束记录输入,则过程1400可以在框1412处继续在标准操作期间捕获与第二域相关联的视频帧。如果接收到结束记录输入,则如果启用AON操作,则过程1400可以返回到框1402。
在一些情况下,在框1414处接收到结束记录输入之后,过程1400可以包括利用域变换模型(例如,图5A中所示的域变换模型514)将与在框1402处捕获的第一域相关联的视频帧变换到第二域。在一些情况下,在框1408处捕获的关键帧中的每个关键帧可以用作用于变换与第一域相关联的视频帧的一部分的引导。在一些情况下,在框1408处捕获的关键帧中的每个关键帧可用作用于变换来自在时间上在框1408处捕获的关键帧中的每个关键帧本地的第一多个帧的帧的引导。在一个实现方式中,在框1408处捕获的特定关键帧可以用作引导以变换在框1402处捕获的与在特定关键帧之前捕获的第一域相关联的视频帧的子集,且还是在紧接在特定关键帧之前的关键帧之后捕获的。在一个说明性示例中,用于变换与在框1402处捕获的第一域相关联的每个视频帧的特定关键帧可以为在时间上最接近于每一相应视频帧捕获的关键帧。在另一说明性示例中,选择关键帧中的哪些用作与在框1402处捕获的第一域相关联的视频帧的特定子集的引导可以是至少部分地基于以下操作的:在关键帧和与第一域相关联的视频帧中的一个或多个视频帧中执行特征检测并且比较所检测的特征以确定最佳关键帧(或多个关键帧)以用作引导。例如,可以使用特征匹配技术来确定从在时间上最近的两个关键帧之间选择的哪个关键帧与在框1414处变换的每个相应视频帧在内容上最接近。在这样的示例中,在内容上最接近相应视频帧的关键帧可以用作引导。
图15示出了图14所示的过程1400的不同阶段期间的相对功耗的曲线1550。曲线1550未按比例示出并且出于说明目的而提供。在所示示例中,条1522的高度指示图像处理系统(例如,以上图3所示的图像处理系统300)的相对功耗,同时过程1400在AON操作期间捕获与第一域相关联的视频帧(例如,在框1402处)。在所示示例中,条1522可以包括将与第一域相关联的视频帧存储在视频缓冲器(例如,循环缓冲器)中的功耗。类似地,在所示示例中,条1524的高度可以指示一个或多个相机传感器在捕获与第一域相关联的帧(例如,上面图3中所示的AON相机传感器316和/或主相机传感器318)时消耗的功率。在图15所示的示例中,在接收到捕获输入1527之后(例如,在框1408处),过程1400可以捕获与第二域相关联的视频帧(例如,在框1410处)。在所示示例中,视频缓冲器(例如,图3中所示的DRAM 314、SRAM320)的缓冲器长度1526由箭头示出,箭头在捕获输入1527的时间结束并且基于视频缓冲器的缓冲器长度B在时间上向后延伸一定量的时间。
在接收到捕获输入1527之后,过程1400可以捕获与第二域相关联的视频帧(例如,在框1410处)。条1528可以表示在捕获与第二域相关联的视频帧期间由图像处理系统消耗的功率,且示出相对于在缓冲与第一域相关联的视频帧期间消耗的功率的功耗的增加。图像处理系统的增加的功耗可以是例如处理具有更大数量的像素的视频帧、更多的颜色信息、更高的帧速率、更多和/或不同的图像处理步骤、与第一域和第二域之间的任何其它差异相关联的功率差、或其任何组合的结果。条1529可以表示在接收捕获输入1527(例如,在框1406处)之前由图像处理系统在捕获与第二域相关联的关键帧期间消耗的功率。如所示出的,捕获与第二域相关联的关键帧可以在接收到捕获输入1527之后消耗相当量的功率以捕获与第二域相关联的视频帧。
条1530可以表示一个或多个相机传感器的功率,同时捕获与第二域相关联的视频帧。一个或多个相机传感器的增加的功耗可以由捕获和传输用于更大数量的像素的数据、以更多的颜色信息、以更高的帧速率、与第一域和第二域之间的任何其它差异相关联的功率差、或其任何组合产生。条1531可以表示在接收捕获输入1527(例如,在框1406处)之前捕获与第二域相关联的关键帧期间由一个或多个相机传感器的功耗。
在接收捕获输入1527之前,可以至少部分地基于一个或多个相机传感器的估计运动和/或由一个或多个相机传感器捕获的场景来确定连续关键帧之间的时段1534。
与第二域相关联的视频帧的捕获可以继续,直到过程1400接收到结束记录输入(例如,在框1412处)为止。在一些情况下,与在存储在视频缓冲器中的捕获输入1527之前捕获的第一域相关联的视频帧的部分可以由域变换模型(例如,图5A和图5B中所示的域变换模型514)从第一域变换到第二域,以生成与第二域相关联的经变换的视频帧。经变换的视频帧可以与在捕获输入1527之后捕获的与第二域相关联的视频帧组合(例如,通过图5A和图5B中所示的组合器518)以形成组合视频。方括号1532示出了基于图15所示示例的示例组合视频的总持续时间。
图16是示出处理一个或多个帧的过程1600的示例的流程图。在框1602处,过程1600包括从图像捕获系统(例如,图1中所示的图像捕获和处理系统100、图2中所示的图像传感器202、和/或一个或多个相机传感器502)获得与第一设置域相关联的第一多个帧,其中,在获得捕获输入之前捕获第一多个帧。
在框1604处,过程1600包括从图像捕获系统获得与第二设置域相关联的第一参考帧(例如,关键帧),其中,所述参考帧是在获得所述捕获输入之前捕获的。
在框1606处,过程1600包括从图像捕获系统获得与第二设置域相关联的第二参考帧,其中,所述第二参考帧是接近于获得所述捕获输入捕获的。
在框1608处,过程1600包括从图像捕获系统获得与第二设置域相关联的第二多个帧,其中,第二多个帧在第二参考帧之后被捕获。
在框1610处,过程1600包括基于第一参考帧,变换第一多个帧的至少一部分以生成与第二设置域相关联的第一经变换的多个帧。
在框1612处,过程1600包括基于第二参考帧变换第一多个帧的至少另一部分以生成与第二设置域相关联的第二经变换的多个帧。
在一些情况下,过程1600包括:获得与所述第一多个帧相关联的运动估计并从所述图像捕获系统获得与所述第二设置域相关联的第三参考帧,其中,所述第三参考帧是在获得所述捕获输入之前捕获的。在一些情况下,第一参考帧与第三参考帧之间的时间量基于与第一多个帧相关联的运动估计。
在一些示例中,本文描述的过程(例如,过程600、700、800、1000、1200、1400、1600和/或本文描述的其它过程)可以由计算设备或装置执行。在一个示例中,一个或多个过程可以由图3的图像处理系统300执行。在另一示例中,一个或多个过程可以由图19所示的计算系统1900执行。例如,具有图19中所示出的计算系统1900的计算设备可以包括底片快门滞后系统500、底片快门滞后系统550、底片快门滞后系统900、底片快门滞后系统1100、底片快门滞后系统1300或其任何组合的组件,并且可以实现图6的过程600、图7的过程700、图8A的过程800、图10的过程1000、图12的过程1200、图14的过程1400、图16的过程1600和/或本文中所描述的其它过程的操作。
计算设备可以包括任何合适的设备,诸如车辆或车辆的计算设备(例如,车辆的驾驶员监测系统(DMS))、移动设备(例如,移动电话)、台式计算设备、平板计算设备、可穿戴设备(例如,VR头戴设备、AR头戴设备、AR眼镜、联网手表或智能手表,或其它可穿戴设备)、服务器计算机、机器人设备、电视和/或具有执行本文描述的过程的资源能力的任何其它计算设备,包括本文描述的过程600、700、800、1000、1200、1400、1600和/或它他过程。在一些情况下,计算设备或装置可以包括各种组件,诸如一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一台或多个微型计算机、一个或多个照相机、一个或多个传感器、和/或被配置为执行本文中描述的过程的步骤的(多个)其它组件。在一些示例中,计算设备可以包括显示器、被配置为传送和/或接收数据的网络接口、其任何组合、和/或(多个)其它组件。网络接口可以被配置为传送和/或接收基于互联网协议(IP)的数据或其它类型的数据。
计算设备的组件可以被实现在电路中。例如,组件可以包括电子电路或其它电子硬件,和/或者可以使用电子电路或其它电子硬件来实施,所述电子电路或其它电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)、和/或其它合适的电子电路),和/或者组件可以包括用于执行本文中描述的各种操作的计算机软件、固件或其组合和/或者可以使用用于执行本文中描述的各种操作的计算机软件、固件或其组合来实现。
过程600、700、800、1000、1200、1400和1600被示为逻辑流程图,其操作表示可以用硬件、计算机指令或其组合来实现的一系列操作。在计算机指令的背景下,操作表示被存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时执行所记载的操作。通常,计算机可执行指令包括执行特定功能或实施特定数据类型的例程、程序、对象、组件、数据结构、等等。操作以其描述的顺序不旨在被解释为限制,并且任何数量个所描述的操作可以以任何顺序和/或并行地组合以实施所述过程。
另外,本文中描述的过程600、700、800、1000、1200、1400和1600和/或任何其它过程可以在被配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以被实现为通过硬件或其组合在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用)。如上面所指出的,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时性的。
如上所述,本公开内容的各个方面可以使用机器学习模型或系统。图17是可以用于实现基于机器学习的特征提取和/或活动识别(或分类)的深度学习神经网络1700的说明性示例。在一个说明性示例中,在利用如上所述的GAN训练引导域变换模型(例如,如关于图5A所描述的)和/或引导超分辨率模型(例如,如关于图9所描述的)期间,鉴别器网络可以使用特征提取和/或活动识别。输入层1720包括输入数据。在一个说明性示例中,输入层1720可以包括表示输入视频帧的像素的数据。神经网络1700包括多个隐藏层1722a、1722b至1722n。隐藏层1722a、1722b至1722n包括“n”个隐藏层,其中“n”是大于或等于1的整数。可以使隐藏层的数量包括给定应用所需的尽可能多的层。神经网络1700还包括输出层1721,其提供由隐藏层1722a、1722b至1722n执行的处理产生的输出。在一个说明性示例中,输出层1721可以提供输入视频帧中的对象的分类。分类可以包括识别活动类型的类别(例如,向上看、向下看、闭眼、打哈欠等)。
神经网络1700是互连节点的多层神经网络。每个节点可以表示一条信息。与节点相关联的信息在不同层之间共享,并且每一层在信息被处理时保留信息。在一些情况下,神经网络1700可以包括前馈网络,在前馈网络中,不存在网络的输出被反馈到其自身的反馈连接。在一些情况下,神经网络1700可以包括循环神经网络,其可以具有允许在读入输入时跨节点携带信息的循环。
可以通过各个层之间的节点到节点互连来在节点之间交换信息。输入层1720的节点可以激活第一隐藏层1722a中的节点集合。例如,如图所示,输入层1720的每个输入节点连接到第一隐藏层1722a的每个节点。第一隐藏层1722a的节点可以通过将激活函数应用于输入节点信息来变换每个输入节点的信息。然后可以将从该变换导出的信息传递到下一隐藏层1722b的节点并可以激活下一隐藏层922b的节点,该下一隐藏层922b的节点可以执行其自己的指定功能。示例功能包括卷积、上采样、数据变换和/或任何其它合适的功能。然后,隐藏层1722b的输出可以激活下一隐藏层的节点,并且以此类推。最后隐藏层1722n的输出可以激活输出层1721的一个或多个节点,在该一个或多个节点处提供输出。在一些情况下,虽然神经网络1700中的节点(例如,节点1726)被示出为具有多条输出线,但是节点具有单个输出,并且被示出为从节点输出的所有线表示相同的输出值。
在一些情况下,每个节点或节点之间的互连可以具有权重,该权重是从神经网络1700的训练导出的参数集合。一旦神经网络1700被训练,它就可以被称为经训练的神经网络,其可以用于对一个或多个活动进行分类。例如,节点之间的互连可以表示关于互连节点学习的一条信息。互连可以具有可被调整(例如,基于训练数据集)的可调整数字权重,从而允许神经网络1700适应于输入并且能够随着越来越多的数据被处理而进行学习。
神经网络1700被预训练,以使用不同的隐藏层1722a、1722b至1722n处理来自输入层1720中的数据的特征,以便通过输出层1721提供输出。在神经网络1700用于在帧中识别由驾驶员执行的活动的示例中,可以使用包括帧和标签两者的训练数据来训练神经网络1700,如上所述。例如,训练帧可以被输入到网络中,其中每个训练帧具有指示帧中的特征(用于特征提取机器学习系统)的标签或指示每个帧中的活动的类别的标签。在出于说明性目的使用对象分类的一个示例中,训练帧可以包括数字2的图像,在这种情况下,用于图像的标签可以是[0 0 1 0 0 0 0 0 0 0]。
在一些情况下,神经网络1700可以使用被称为反向传播的训练过程来调整节点的权重。如上所述,反向传播过程可以包括正向传递、损失函数、反向传递和权重更新。针对一个训练迭代执行前向传递、损失函数、后向传递和参数更新。针对每个训练图像集合,该过程可以重复一定次数的迭代,直到神经网络1700被训练得足够好,使得各层的权重被准确地调整。
对于识别帧中的对象的示例,前向传递可以包括将训练帧传递通过神经网络1700。在训练神经网络1700之前,最初使权重随机化。作为说明性示例,帧可以包括表示图像的像素的数字阵列。阵列中的每个数字可以包括从0到255的值,其描述阵列中该位置处的像素强度。在一个示例中,阵列可以包括28×28×3数字阵列,其具有28行和28列像素和3个颜色分量(例如红色、绿色和蓝色,或明度和两个色度分量、等等)。
如上所述,对于神经网络1700的第一次训练迭代,输出将可能包括由于在初始化时随机选择的权重而不优先考虑任何特定类别的值。例如,如果输出是具有对象包括不同类别的概率的向量,则针对每个不同类别的概率值可以相等或至少非常相似(例如,对于十个可能的类,每一类可以具有0.1的概率值)。利用初始权重,神经网络1700不能确定低级特征,并且因此不能准确地确定对象的分类可能是什么。可以使用损失函数来分析输出中的误差。可以使用任何合适的损失函数定义,诸如交叉熵损失。损失函数的另一个示例包括均方误差(MSE),定义为 可以将损失设置为等于Etotal的值。
对于第一次训练图像,损失(或误差)将是高的,因为实际值将与预测输出大不相同。训练的目标是使损失量最小,从而使得预测输出与训练标签相同。神经网络1700可以通过确定哪些输入(权重)对网络的损失贡献最大来执行反向传递,并且可以调整权重以使得损失减小并最终减到最小。可以计算损失相对于权重的导数(表示为dL/dW,其中W是特定层处的权重),以确定对网络损失贡献最大的权重。在计算导数之后,可以通过更新滤波器的所有权重来执行权重更新。例如,可以更新权重,使得它们在梯度的相反方向上改变。权重更新可以表示为其中w表示权重,wi表示初始权重,并且η表示学习速率。学习速率可以被设置为任何合适的值,其中高学习速率包括较大的权重更新,并且较低的值指示较小的权重更新。
神经网络1700可以包括任何合适的深度网络。一个示例包括卷积神经网络(CNN),其包括输入层和输出层,在输入层和输出层之间具有多个隐藏层。CNN的隐藏层包括一系列卷积层、非线性层、池化层(用于下采样)和全连接层。神经网络1700可以包括除了CNN之外的任何其它深度网络,诸如自动编码器、深度信念网(DBN)、循环神经网络(RNN)等。
图18是卷积神经网络(CNN)1800的说明性示例。CNN 1800的输入层1820包括表示图像或帧的数据。例如,数据可以包括表示图像的像素的数字阵列,其中阵列中的每个数字包括描述阵列中该位置处的像素强度的从0到255的值。使用来自上文的先前示例,阵列可以包括具有28行和28列像素和3个颜色分量(例如,红色、绿色和蓝色,或明度和两个色度分量等)的28×28×3数字阵列。图像可以传递通过卷积隐藏层1822a、可选的非线性激活层、池化隐藏层1822b和全连接隐藏层1822c,以在输出层1824处获得输出。虽然图18中仅示出了各个隐藏层中的一个隐藏层,但是普通技术人员将理解,多个卷积隐藏层、非线性层、池化隐藏层和/或全连接层可以包括在CNN 1800中。如前所述,输出可以指示对象的单个类别,或者可以包括最佳地描述图像中的对象的类别的概率。
CNN 1800的第一层是卷积隐藏层1822。卷积隐藏层1822a分析输入层1820的图像数据。卷积隐藏层1822a的每个节点连接到被称为感受野的输入图像的节点(像素)的区域。卷积隐藏层1822a可以被认为是一个或多个滤波器(每个滤波器对应于不同的激活或特征图),其中滤波器的每个卷积迭代是卷积隐藏层1822a的节点或神经元。例如,滤波器在每次卷积迭代时覆盖的输入图像的区域将是滤波器的感受野。在一个说明性示例中,如果输入图像包括28×28阵列,并且每个滤波器(和对应的感受野)是5×5阵列,则在卷积隐藏层1822a中将存在24×24个节点。节点与该节点的感受野之间的每个连接学习权重,并且在一些情况下学习整体偏置,使得每个节点学习分析输入图像中的其特定局部感受野。隐藏层1822a的每个节点将具有相同的权重和偏置(被称为共享权重和共享偏置)。例如,滤波器具有权重(数字)阵列和与输入相同的深度。对于视频帧示例,滤波器将具有深度3(根据输入图像的三个颜色分量)。滤波器阵列的说明性示例大小是5×5×3,对应于节点的感受野的大小。
卷积隐藏层1822a的卷积性质是由于卷积层的每个节点被应用于其相应的感受野。例如,卷积隐藏层1822a的滤波器可以在输入图像阵列的左上角开始,并且可以围绕输入图像卷积。如上所述,滤波器的每次卷积迭代可以被认为是卷积隐藏层1822a的节点或神经元。在每次卷积迭代时,滤波器的值乘以图像的对应数量的原始像素值(例如,5×5滤波器阵列乘以输入图像阵列的左上角处的输入像素值的5×5阵列)。可以将来自每次卷积迭代的乘法相加在一起以获得该迭代或节点的总和。接下来,根据卷积隐藏层1822a中的下一节点的感受野,在输入图像中的下一位置处继续该过程。例如,滤波器可以移动一个步进量(称为步幅)到下一个感受野。步幅可以被设置为1或其它合适的量。例如,如果步幅被设置为1,则滤波器将在每次卷积迭代时向右移动1个像素。在输入体积的每个唯一位置处处理滤波器产生表示该位置的滤波器结果的数字,导致针对卷积隐藏层1822a的每个节点确定总和值。
从输入层到卷积隐藏层1822a的映射被称为激活图(或特征图)。激活图包括表示输入体积的每个位置处的滤波器结果的针对每个节点的值。激活图可以包括阵列,该阵列包括由滤波器对输入体积的每次迭代产生的各种总和值。例如,如果将5×5滤波器应用于28×28输入图像的每个像素(步幅为1),则激活图将包括24×24阵列。卷积隐藏层1822a可以包括若干激活图,以便识别图像中的多个特征。图18中所示的示例包括三个激活图。使用这三个激活图,卷积隐藏层1822a可以检测三个不同种类的特征,其中每个特征在整个图像上是可检测的。
在一些示例中,可以在卷积隐藏层1822a之后应用非线性隐藏层。非线性层可以用于将非线性引入到已经计算线性运算的系统。非线性层的一个说明性示例是修正线性单元(ReLU)层。ReLU层可以将函数f(x)=max(0,x)应用于输入体积中的所有值,这将所有负激活改变为0。因此,ReLU可以增加CNN 1800的非线性特性,而不影响卷积隐藏层1822a的感受域。
可以在卷积隐藏层1822a之后应用(并且在使用时在非线性隐藏层之后应用)池化隐藏层1822b。池化隐藏层1822b用于简化来自卷积隐藏层1822a的输出中的信息。例如,池化隐藏层1822b可以获取从卷积隐藏层1822a输出的每个激活图,并使用池化函数生成浓缩的激活图(或特征图)。最大池化是由池化隐藏层执行的函数的一个示例。池化隐藏层1822a使用其它形式的池化函数,诸如平均池化、L2范数池化或其它合适的池化函数。将池化函数(例如,最大池化滤波器、L2范数滤波器或其它合适的池化滤波器)应用于卷积隐藏层1822a中包括的每个激活图。在图18所示的示例中,三个池化滤波器被用于卷积隐藏层1822a中的三个激活图。
在一些示例中,可以通过将具有步幅(例如,等于滤波器的维度,诸如步幅2)的最大池化滤波器(例如,具有2×2的尺寸)应用于从卷积隐藏层1822a输出的激活图来使用最大池化。来自最大池化滤波器的输出包括滤波器卷积的每个子区域中的最大数。使用2×2滤波器作为示例,池化层中的每个单元可以总结前一层中2×2节点的区域(每个节点是激活图中的值)。例如,激活图中的四个值(节点)将在滤波器的每次迭代时由2×2最大池化滤波器分析,其中四个值中的最大值被作为“最大”值输出。如果将这样的最大池化滤波器应用于来自卷积隐藏层1822a的具有24×24个节点的维度的激活滤波器,则来自池化隐藏层1822b的输出将是12×12个节点的阵列。
在一些示例中,也可以使用L2范数(L-norm)池化滤波器。L2范数池化滤波器包括计算激活图的2×2区域(或其它合适的区域)中的值的平方和的平方根(而不是如在最大池化中所进行的计算最大值),并使用所计算的值作为输出。
直观地,池化函数(例如,最大池化、L2范数池化或其它池化函数)确定是否在图像的区域中的任何地方找到给定特征,并丢弃确切的位置信息。这可以在不影响特征检测的结果的情况下完成,因为一旦已经找到特征,特征的确切位置就不如其相对于其它特征的近似位置那么重要。最大池化(以及其它池化方法)提供了以下益处:池化特征少得多,从而减少了CNN 1800的后续层中所需的参数的数量。
网络中的最后一层连接是全连接层,其将来自池化隐藏层1822b的每个节点连接到输出层1824中的每个输出节点。使用以上示例,输入层包括编码输入图像的像素强度的28x 28个节点,卷积隐藏层1822a包括基于应用5x5局部感受野(用于滤波器)到三个激活图的3×24×24个隐藏特征节点,并且池化隐藏层1822b包括基于跨三个特征图中的每个特征图将最大池化滤波器应用于2×2区域的3×12×12个隐藏特征节点的层。扩展该示例,输出层1824可以包括十个输出节点。在这样的示例中,3×12×12池化隐藏层1822b的每个节点连接到输出层1824的每个节点。
全连接层1822c可以获得先前池化隐藏层1822b的输出(其应该表示高级特征的激活图),并且确定与特定类别最相关的特征。例如,全连接层1822c层可以确定与特定类别最强相关的高级特征,并且可以包括针对高级特征的权重(节点)。可以计算全连接层1822c和池化隐藏层1822b的权重之间的乘积,以获得针对不同类别的概率。例如,如果CNN 1800被用于预测视频帧中的对象是人,则在表示人的高级特征的激活图中将存在高值(例如,存在两条腿,在对象的顶部存在面部,在面部的左上和右上存在两只眼睛,在面部的中间存在鼻子,在面部的底部存在嘴,和/或人常见的其它特征)。
在一些示例中,来自输出层1824的输出可以包括M维向量(在先前示例中,M=10)。M指示CNN 1800在对图像中的对象进行分类时必须从中选择的类的数量。还可以提供其它示例输出。M维向量中的每个数字可以表示对象属于某个类别的概率。在一个说明性示例中,如果10维输出向量表示十个不同类别的对象是[0 0 0.05 0.8 0 0.15 0 0 0 0],则该向量指示图像是第三类别的对象(例如,狗)的概率为5%,图像是第四类别的对象(例如,人)的概率为80%,且图像是第六类别的对象(例如,袋鼠)的概率为15%。针对类别的概率可以被认为是对象是该类别的一部分的置信水平。
图19是示出用于实施本技术的某些方面的系统的示例的示意图。具体地,图19示出了计算系统1900的示例,其可以是例如构成内部计算系统、远程计算系统、相机或其任何组件的任何计算设备,其中系统的各组件使用连接1905彼此通信。连接1905可以是使用总线的物理连接,也可以是到处理器1910内的直接连接(例如,在芯片组架构中)。连接1905还可以是虚拟连接、联网连接、或逻辑连接。
在一些实施例中,计算系统1900是分布式系统,其中本公开内容中描述的各功能可以分布在数据中心、多个数据中心、对等网络等等中。在一些实施例中,所描述的系统组件中的一个或多个组件代表许多这样的组件,每个组件都执行针对该组件所描述的部分或全部功能。在一些实施例中,组件可以是物理设备或虚拟设备。
示例计算系统1900包括至少一个处理单元(CPU或处理器)1910和连接1905,连接1505将包括系统存储器1915(诸如只读存储器(ROM)1920和随机存取存储器(RAM)1925)的各种系统组件耦合到处理器1910。计算系统1900可以包括高速存储器的高速缓存1912,高速缓存1512与处理器1910直接地连接、靠近处理器1510、或被整合为处理器1510的一部分。
处理器1910可以包括任何通用处理器和硬件服务或软件服务,诸如存储在存储设备1930中的服务1932、1934和1936,其被配置为控制处理器1910以及专用处理器,在专用处理器中软件指令被并入到实际的处理器设计中。处理器1910基本上可以是完全自包含式的计算系统,包含多个内核或处理器、总线、存储器控制器、高速缓存、等等。
为了实现用户交互,计算系统1900包括输入设备1945,其可以表示任意数量的输入机制,诸如,用于语音的麦克风、用于手势或图形输入的触敏屏幕、小键盘、鼠标、运动输入、语音、等等。计算系统1900还可以包括输出设备1935,其可以是多个输出机制中的一个或多个。在一些实例中,多模式系统可以使得用户能够提供多种类型的输入/输出,以与计算系统1900进行通信。计算系统1900可以包括通信接口1940,通信接口1540通常可以控制和管理用户输入和系统输出。通信接口可以使用有线和/或无线收发器执行或促进接收和/或传输有线或无线通信,包括使用音频插孔/插头、麦克风插孔/插头、通用串行总线(USB)端口/插头、端口/插头、以太网端口/插头、光纤端口/插头、专有有线端口/插头、/>无线信号传输、/>低功耗(BLE)无线信号传输、/>无线信号传输、射频识别(RFID)无线信号传输、近场通信(NFC)无线信号传输、专用短程通信(DSRC)无线信号传输、802.11Wi-Fi无线信号传输、无线局域网(WLAN)信号传输、可见光通信(VLC)、全球微波接入互操作性(WiMAX)、红外(IR)通信无线信号传输、公共交换电话网(PSTN)信号传输、综合业务数字网(ISDN)信号传输、3G/4G/5G/LTE蜂窝数据网络无线信号传输、自组(ad-hoc)网络信号传输、无线电波信号传输、微波信号传输、红外信号传输、可见光信号传输、紫外光信号传输、沿电磁波谱的无线信号传输或它们的某种组合的有线和/或无线收发器。通信接口1940还可以包括一个或多个全球导航卫星系统(GNSS)接收机或收发机,其用于基于从与一个或多个GNSS系统相关联的一个或多个卫星接收到一个或多个信号来确定计算系统1900的位置。GNSS系统包括但不限于:基于美国的全球定位系统(GPS)、基于俄罗斯的全球导航卫星系统(GLONASS)、基于中国的北斗导航卫星系统(BDS)以及基于欧洲的伽利略(Galileo)GNSS。对于任何特定硬件布置的操作都没有限制,因此这里的基本特征可以很容易地被替换为如它们被开发的改进的硬件或固件布置。
存储设备1930可以是非易失性和/或非暂时性和/或计算机可读存储器设备,以及可以是硬盘、或可以存储由计算机可存取的数据的其它类型的计算机可读介质,诸如磁带盒、闪存卡、固态存储设备、数字多功能光盘、盒式磁带、软盘、软磁盘、硬盘、磁带、磁条/条带、任何其它磁存储介质、闪存、忆阻器存储器、任何其它固态存储器、压缩光盘只读存储器(CD-ROM)光盘、可重写压缩光盘(CD)光盘、数字视频光盘(DVD)光盘、蓝光光盘(BDD)光盘、全息光盘、另一光学介质、安全数字(SD)卡、微安全数字(microSD)卡、卡、智能卡芯片、EMV芯片、订户身份模块(SIM)卡、迷你/微/纳米/微微SIM卡、另一集成电路(IC)芯片/卡、随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存EPROM(FLASHEPROM)、高速缓冲存储器(L1/L2/L3/L4/L5/L#)、电阻随机存取存储器(RRAM/ReRAM)、相变存储器(PCM)、自旋转移矩RAM(STT-RAM)、另一存储器芯片或盒、和/或其组合。
存储设备1930可以包括软件服务、服务器、服务等,当定义这样的软件的代码由处理器1910执行时,其使得系统执行功能。在一些实施例中,执行特定功能的硬件服务可以包括存储在计算机可读介质中的软件组件,其与必要的硬件组件(诸如处理器1910、连接1905、输出设备1935等)相连接以执行所述功能。
如本文中使用的,术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备以及能够存储、包含或携带(多个)指令和/或数据的各种其它介质。计算机可读介质可以包括可存储数据的非暂时性介质,而不包括无线传输或通过有线连接传输的载波和/或暂时性电子信号。非暂时性介质的示例可以包括但不限于:磁盘或磁带、光盘存储介质(如,压缩光盘(CD)或数字多用途光盘(DVD))、闪存、存储器或存储设备。计算机可读介质可以存储代码和/或机器可执行指令,这些指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类、或指令、数据结构或程序语句的任何组合。通过传递和/或接收信息、数据、自变量、参数或存储器内容,代码段可以耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以是使用包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的方式来传递、转发或发送的。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等等的电缆或无线信号。但是,当提及时,非暂时性计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身之类的介质。
在上述描述中提供了特定的细节,以提供对本文所提供的实施例和示例的透彻理解。然而,本领域普通技术人员应当理解,可以在没有这些特定细节的情况下实施这些实施例。为了解释清楚,在一些情况下,本文的技术可以被呈现为包括包括如下的功能块的单独的功能块,这些功能块包括设备、设备组件、以软件体现的方法中的步骤或例程、或者硬件和软件的组合。可以使用除了附图中所示和/或本文中所描述的那些之外的额外组件。例如,电路、系统、网络、过程和其它组件可以以框图形式被示为组件,以便不会在不必要的细节上模糊这些实施例。在其它情况下,公知的电路、过程、算法、结构和技术可以被示为不具有不必要的细节,以便避免模糊这些实施例。
上文可以将各个实施例描述为过程或方法,该过程或方法被描绘为流程图、流程示意图、数据流程图、结构图或框图。尽管使用流程图将操作描述成了一个顺序处理过程,但很多操作可以是并行或同时进行。额外地,可以对这些操作的顺序进行重新布置。当这些操作结束时,处理过程也就终结了,但其可以具有附图中没有包括的其它步骤。过程可以对应于方法、函数、进程、子程序、子程序等。当过程对应于函数时,它的终止可以对应于函数返回到调用函数或主函数。
根据上述示例的过程和方法可以使用被存储在计算机可读介质中或以其它方式可从计算机可读介质获取的计算机可执行指令来实施。例如,这样的指令可以包括引起或配置通用计算机、专用计算机或处理设备执行特定功能或功能组的指令和数据。可以通过网络访问使用的计算机资源部分。计算机可执行指令可以是例如二进制的、中间格式指令(诸如汇编语言、固件、源代码等)。可以用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、被提供有非易失性存储器的USB设备、网络存储设备、等等。
实现根据这些公开内容的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,以及可以采用多种形状因子中的任何一种。当实施在软件、固件、中间件或微代码中时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以被存储在计算机可读或机器可读介质中。一个(或多个)处理器可以执行必要的任务。形状因子的典型示例包括膝上型计算机、智能电话、移动电话、平板设备或其它小型形状因子的个人计算机、个人数字助理、机架式设备、独立设备等。本文所描述的功能还可以体现在外围设备或附加卡中。通过进一步的示例,这样的功能也可以被实施在电路板上在不同芯片或在单个设备中执行的不同过程之间。
指令、用于传送这样的指令的介质、用于执行它们的计算资源、以及用于支持这样的计算资源的其它结构,是用于提供本公开内容中描述的功能的示例性装置。
在前面的描述中,参考本申请的特定实施例描述了本申请的各方面,但是本领域普通技术人员应当认识到,本申请并不受此限制。因此,尽管在本文中已经详细描述了本申请的说明性实施例,但是应当理解,这些发明构思可以用其它方式被不同地体现和采用,并且所附权利要求旨在被解释为包括这样的变型,除了现有技术所限制的以外。上述应用的各种特征和方面可以单独地或联合地使用。此外,在不脱离本说明书的更广泛的精神和保护范围的情况下,可以在本文所述之外的任何数量的环境和应用中使用实施例。因此,说明书和附图应被认为是说明性的而不是限制性的。为了说明起见,以特定顺序描述了方法。应当认识到的是,在替代实施例中,可以以与所描述的次序不同的次序来执行所述方法。
本领域普通技术人员应当理解,可以将本文中使用的小于(“<”)和大于(“>”)符号或术语分别替换为小于或等于(“≤”)和大于或等于(“≥”)符号,而不脱离本说明书的范围。
在组件被描述为“被配置为”执行某些操作的情况下,这样的配置可以例如通过以下各项来实现:设计电子电路或其它硬件以执行操作、通过编程可编程电子电路(例如,微处理器或其它合适的电子电路)以执行操作、或其任何组合。
短语“耦合到”指代直接或间接地物理连接到另一组件的任何组件、和/或直接或间接地与另一组件通信的任何组件(例如,通过有线或无线连接和/或其它适当的通信接口而连接到另一组件)。
引用一个集合中的“至少一个”和/或一个集合中的“一个或多个”的声明语言或其它语言,指示该集合中的一个成员或该集合中的多个成员(具有任何组合)满足权利要求。例如,记载"A和B中的至少一个"或"A或B中的至少有一个"的权利要求语言是指A、B,或A和B。在另一个示例中,记载"A、B和C中的至少一个"或"A、B或C中的至少一个"的权利要求语言是指A、B、C,或A和B,或A和C,或B和C,或A和B和C。语言集合“中的至少一个”和/或集合“中的一个或多个”不限制在该集合中列出的项目的集合。例如,记载“A和B中的至少一个”或“A或B中的至少一个”的权利要求语言可以表示A、B、或A和B,并且可以另外包括在A和B的集合中未列出的项目。
结合本文中公开的实施例描述的各种说明性逻辑框、模块、电路和算法步骤可以实现为电子硬件、计算机软件、固件或者其组合。为了清楚地例示硬件和软件的这种可互换性,已经在其功能性方面大致描述了各种例示性组件、方框、模块、电路和步骤。至于这样的功能性是实现为硬件还是软件,取决于特定的应用以及施加在整个系统上的设计约束。技术人员可以针对每个特定应用以不同的方式来实现所描述的功能,但是这样的实现决策不应当被解释为导致脱离本申请的范围。
本文中描述的技术还可以被实现在电子硬件、计算机软件、固件或其任何组合中。这样的技术可以被实现在多种设备中的任何设备中,多种设备诸如通用计算机、无线通信设备手持设备、或具有多种用途的集成电路设备,多种用途包括在无线通信设备手持设备和其它设备中的应用。描述为模块或组件的任何特征可以一起实现在集成逻辑器件中,或者单独实现为分立但可互操作的逻辑器件。如果在软件中实现,则所述技术可以是至少部分地由计算机可读数据存储介质来实现的,计算机可读数据存储介质包括程序代码,程序代码包括在被执行时执行上文描述的方法中的一个或多个方法的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。计算机可读介质可以包括存储器或数据存储介质,例如随机存取存储器(RAM)(例如,同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、FLASH存储器、磁或光数据存储介质、等等。附加地或替代地,技术可以至少部分地由计算机可读通信介质来实现,该计算机可读通信介质携带或传送指令或数据结构形式的且可由计算机存取、读取和/或执行的程序代码,诸如传播的信号或波。
程序代码可以由处理器执行,该处理器可以包括一个或多个处理器,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或者其它等效的集成逻辑电路或离散逻辑电路。这种处理器可以被配置为执行本公开内容中描述的任何技术。通用处理器可以是微处理器;但是在替代的方式中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、结合DSP核的一个或多个微处理器、或者任何其它这样的配置。因此,如本文中所使用的术语“处理器”可以指前述结构中的任何结构、前述结构的任何组合或适合于实施本文中所描述的技术的任何其它结构或装置。
本公开内容的说明性方面包括:
方面1:一种用于处理一个或多个帧的方法,包括:从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;从所述图像捕获系统获得与第二设置域相关联的至少一个参考帧,其中,所述至少一个参考帧是接近于获得所述捕获输入捕获的;从所述图像捕获系统获得与所述第二设置域相关联的第二多个帧,其中,所述第二多个帧是在所述至少一个参考帧之后捕获的;以及基于所述至少一个参考帧,变换所述第一多个帧的至少一部分以生成与所述第二设置域相关联的经变换的多个帧。
方面2:根据方面1所述的方法,其中:所述第一设置域包括第一分辨率;所述第二设置域包括第二分辨率;以及变换所述第一多个帧的至少所述部分包括将所述第一多个帧的至少所述部分从所述第一分辨率放大到所述第二分辨率以生成所述经变换的多个帧,其中,所述经变换的多个帧具有所述第二分辨率。
方面3:根据方面1到2中任一项所述的方法,还包括:从所述图像捕获系统获得具有所述第二分辨率的额外参考帧,其中,在获得所述捕获输入之前捕获所述额外参考帧,其中,生成具有所述第二分辨率的所述经放大的多个帧是基于所述第一多个帧的至少所述部分、所述至少一个参考帧和所述额外参考帧,以及其中,所述至少一个参考帧提供用于放大所述第一多个帧的至少所述部分的至少第一部分的参考,且所述额外参考帧提供用于放大所述第一多个帧的至少所述部分的至少第二部分的参考。
方面4:根据方面1至3中任一项所述的方法,还包括:组合所述经变换的多个帧和所述第二多个帧以生成与所述第二设置域相关联的视频。
方面5:根据方面1至4中任一项所述的方法,还包括:获得与所述第一多个帧相关联的运动信息,其中,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧的至少所述部分、所述至少一个参考帧和所述运动信息的。
方面6:根据方面1至5中任一项所述的方法,还包括:基于与所述第一多个帧相关联的所述运动信息来确定平移方向;以及将所述平移方向应用于所述经变换的多个帧。
方面7:根据方面1至6中任一项所述的方法,其中:所述第一设置域包括第一帧速率;所述第二设置域包括第二帧速率;以及变换所述第一多个帧的至少所述部分包括将所述第一多个帧的至少所述部分从所述第一帧速率进行帧速率转换为所述第二帧速率。
方面8:根据方面1至7中任一项所述的方法,其中,所述第一多个帧的第一子集是以所述第一帧速率捕获的,并且所述第一多个帧的第二子集是以不同于所述第一帧速率的第三帧速率捕获的,其中,所述第三帧速率等于或不等于所述第二帧速率,并且其中,所述第一帧速率与所述第三帧速率之间的改变是至少部分地基于与所述第一多个帧的所述第一子集和所述第一多个帧的所述第二子集中的至少一项相关联的运动信息的。
方面9:根据方面1至8中任一项所述的方法,其中:所述第一设置域包括第一分辨率和第一帧速率;所述第二设置域包括第二分辨率和第二帧速率;以及变换所述第一多个帧的至少所述部分包括将所述第一多个帧的至少所述部分从所述第一分辨率放大到所述第二分辨率,并且将所述第一多个帧的至少所述部分从所述第一帧速率进行帧速率转换为所述第二帧速率。
方面10:根据方面1到9中任一项所述的方法,还包括:从所述图像捕获系统获得与所述第二设置域相关联的额外参考帧,其中,在获得所述捕获输入之前捕获所述额外参考帧,其中,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧的至少所述部分、至少一个参考帧和所述额外参考帧,以及其中,所述至少一个参考帧提供用于变换所述第一多个帧的至少所述部分的至少第一子集的参考,且所述额外参考帧提供用于变换所述第一多个帧的至少所述部分的至少第二子集的参考。
方面11:根据方面1到10中任一项所述的方法,其中,所述至少一个参考帧包括第一参考帧,所述方法还包括:从所述图像捕获系统获得与所述第二设置域相关联的第二参考帧,其中,所述第二参考帧是接近于获得所述捕获输入捕获的;基于所述第一参考帧,变换所述第一多个帧的至少所述部分以生成与所述第二设置域相关联的所述经变换的多个帧;以及基于所述第二参考帧,变换所述第一多个帧的至少另一部分以生成与所述第二设置域相关联的第二经变换的多个帧。
方面12:根据方面1到11中任一项所述的方法,还包括:获得与所述第一多个帧相关联的运动估计;从所述图像捕获系统获得与所述第二设置域相关联的第三参考帧,其中,所述第三参考帧是在获得所述捕获输入之前捕获的;以及基于所述第三参考帧,变换所述第一多个帧的第三部分以生成与所述第二设置域相关联的第三经变换的多个帧;其中,所述第一参考帧与所述第三参考帧之间的时间量是基于与所述第一多个帧相关联的所述运动估计。
方面13:根据方面1到12中任一项所述的方法,其中,所述第一设置域包括第一分辨率、第一帧速率、第一颜色深度、第一降噪技术、第一边缘增强技术、第一图像稳定技术和第一颜色校正技术中的至少一项,并且所述第二设置域包括第二分辨率、第二帧速率、第二颜色深度、第二降噪技术、第二边缘增强技术、第二图像稳定技术和第二颜色校正技术中的至少一项。
方面14:根据方面1到13中任一项所述的方法,还包括:使用可训练神经网络生成所述经变换的多个帧,其中,所述神经网络是使用包括图像对的训练数据集来训练的,每对图像包括与所述第一设置域相关联的第一图像和与所述第二设置域相关联的第二图像。
方面15:根据方面1到14中任一项所述的方法,其中,接近于获得所述捕获输入捕获所述至少一个参考帧包括:在接收到所述捕获输入之后捕获与所述第二设置域相关联的第一可用帧;在接收到所述捕获输入之后捕获与所述第二设置域相关联的第二可用帧;在接收到所述捕获输入之后捕获与所述第二设置域相关联的第三可用帧;或在接收到所述捕获输入之后捕获与所述第二设置域相关联的第四可用帧。
方面16:根据方面1到15中任一项所述的方法,其中,在获得所述捕获输入附近捕获所述至少一个参考帧包括:在接收到所述捕获输入之后的10毫秒(ms)内、100ms内、500ms内或1000ms内捕获与所述第二设置域相关联的帧。
方面17:一种用于处理一个或多个帧的装置,包括:至少一个存储器;以及一个或多个处理器,其耦合到所述至少一个存储器并且被配置为:从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;从所述图像捕获系统获得与第二设置域相关联的至少一个参考帧,其中,所述至少一个参考帧是接近于获得所述捕获输入捕获的;从所述图像捕获系统获得与所述第二设置域相关联的第二多个帧,其中,所述第二多个帧是在所述至少一个参考帧之后捕获的;以及基于所述至少一个参考帧,变换所述第一多个帧的至少一部分以生成与所述第二设置域相关联的经变换的多个帧。
方面18:根据方面17所述的装置,其中:所述第一设置域包括第一分辨率;所述第二设置域包括第二分辨率;以及为了变换所述第一多个帧的至少所述部分,所述一个或多个处理器被配置为将所述第一多个帧的至少所述部分从所述第一分辨率放大到所述第二分辨率以生成所述经变换的多个帧,其中,所述经变换的多个帧具有所述第二分辨率。
方面19:根据方面17到18中任一项所述的装置,其中,所述一个或多个处理器被配置为:从所述图像捕获系统获得具有所述第二分辨率的额外参考帧,其中,在获得所述捕获输入之前捕获所述额外参考帧,其中,生成具有所述第二分辨率的所述经放大的多个帧是基于所述第一多个帧的至少所述部分、所述至少一个参考帧和所述额外参考帧,以及其中,所述至少一个参考帧提供用于放大所述第一多个帧的至少所述部分的至少第一部分的参考,且所述额外参考帧提供用于放大所述第一多个帧的至少所述部分的至少第二部分的参考。
方面20:根据方面17至19中任一项所述的装置,其中,所述一个或多个处理器被配置为:组合所述经变换的多个帧和所述第二多个帧以生成与所述第二设置域相关联的视频。
方面21:根据方面17至20中任一项所述的装置,其中,所述一个或多个处理器进还被配置为:获得与所述第一多个帧相关联的运动信息,其中,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧的至少所述部分、所述至少一个参考帧和所述运动信息的。
方面22:根据方面17至21中任一项所述的装置,其中,所述一个或多个处理器被配置为:基于与所述第一多个帧相关联的所述运动信息来确定平移方向;以及将所述平移方向应用于所述经变换的多个帧。
方面23:根据方面17至22中任一项所述的装置,其中:所述第一设置域包括第一帧速率;所述第二设置域包括第二帧速率;以及为了变换所述第一多个帧的至少所述部分,所述一个或多个处理器被配置为:将所述第一多个帧的至少所述部分从所述第一帧速率进行帧速率转换为所述第二帧速率。
方面24:根据方面17至23中任一项所述的装置,其中,所述第一多个帧的第一子集是以所述第一帧速率捕获的,并且所述第一多个帧的第二子集是以不同于所述第一帧速率的第三帧速率捕获的,其中,所述第三帧速率等于或不等于所述第二帧速率,并且其中,所述第一帧速率与所述第三帧速率之间的改变是至少部分地基于与所述第一多个帧的所述第一子集和所述第一多个帧的所述第二子集中的至少一项相关联的运动信息的。
方面25:根据方面17至24中任一项所述的装置,其中:所述第一设置域包括第一分辨率和第一帧速率;所述第二设置域包括第二分辨率和第二帧速率;以及为了变换所述第一多个帧的至少所述部分,所述一个或多个处理器被配置为:将所述第一多个帧的至少所述部分从所述第一分辨率放大到所述第二分辨率,并且将所述第一多个帧的至少所述部分从所述第一帧速率进行帧速率转换为所述第二帧速率。
方面26:根据方面17到25中任一项所述的装置,所述一个或多个处理器被配置为:从所述图像捕获系统获得与所述第二设置域相关联的额外参考帧,其中,在获得所述捕获输入之前捕获所述额外参考帧,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧的至少所述部分、至少一个参考帧和所述额外参考帧,以及其中,所述至少一个参考帧提供用于变换所述第一多个帧的至少所述部分的至少第一子集的参考,且所述额外参考帧提供用于变换所述第一多个帧的至少所述部分的至少第二子集的参考。
方面27:根据方面17到26中任一项所述的装置,其中,所述一个或多个处理器被配置为:从所述图像捕获系统获得与所述第二设置域相关联的第二参考帧,其中,所述第二参考帧是接近于获得所述捕获输入捕获的;基于所述第一参考帧,变换所述第一多个帧的至少所述部分以生成与所述第二设置域相关联的所述经变换的多个帧;以及基于所述第二参考帧,变换所述第一多个帧的至少另一部分以生成与所述第二设置域相关联的第二经变换的多个帧。
方面28:根据方面17到27中任一项所述的装置,所述一个或多个处理器被配置为:获得与所述第一多个帧相关联的运动估计;以及从所述图像捕获系统获得与所述第二设置域相关联的第三参考帧,其中,所述第三参考帧是在获得所述捕获输入之前捕获的;以及基于所述第三参考帧,变换所述第一多个帧的第三部分以生成与所述第二设置域相关联的第三经变换的多个帧;其中,所述第一参考帧与所述第三参考帧之间的时间量是基于与所述第一多个帧相关联的所述运动估计。
方面29:根据方面17到28中任一项所述的装置,其中,所述第一设置域包括第一分辨率、第一帧速率、第一颜色深度、第一降噪技术、第一边缘增强技术、第一图像稳定技术和第一颜色校正技术中的至少一项;并且所述第二设置域包括第二分辨率、第二帧速率、第二颜色深度、第二降噪技术、第二边缘增强技术、第二图像稳定技术和第二颜色校正技术中的至少一项。
方面30:根据方面17到29中任一项所述的装置,所述一个或多个处理器被配置为:使用可训练神经网络生成所述经变换的多个帧,其中,所述神经网络是使用包括图像对的训练数据集来训练的,每对图像包括与所述第一设置域相关联的第一图像和与所述第二设置域相关联的第二图像。
方面31:根据方面17到30中任一项所述的装置,其中,为了接近于获得所述捕获输入捕获所述至少一个参考帧,所述一个或多个处理器被配置为:在接收到所述捕获输入之后捕获与所述第二设置域相关联的第一可用帧;在接收到所述捕获输入之后捕获与所述第二设置域相关联的第二可用帧;在接收到所述捕获输入之后捕获与所述第二设置域相关联的第三可用帧;或在接收到所述捕获输入之后捕获与所述第二设置域相关联的第四可用帧。
方面32:根据方面17到31中任一项所述的装置,其中,为了在获得所述捕获输入附近捕获所述至少一个参考帧,所述一个或多个处理器被配置为:在接收到所述捕获输入之后的10毫秒(ms)内、100ms内、500ms内或1000ms内捕获与所述第二设置域相关联的帧。
方面33:方面31:一种具有存储在其上的指令的非暂时性计算机可读存储介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行方面1至方面32的操作中的任何操作。
方面34:一种装置,包括用于执行根据方面1至方面32所述的操作中的任何操作的单元。
方面35:一种用于处理一个或多个帧的方法,包括:从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;从所述图像捕获系统获得与第二设置域相关联的参考帧,其中,所述参考帧是接近于获得所述捕获输入捕获的;获得对与所述第一多个帧相关联的一个或多个选定帧的选择;以及基于所述参考帧,变换所述一个或多个选定帧以生成与所述第二设置域相关联的一个或多个经变换的帧。
方面36:根据方面35所述的方法,其中,对一个或多个所选择的帧的选择基于来自用户接口的选择。
方面37:根据方面35至36中任一项所述的方法,其中所述用户界面包括缩略图图库、滑块或逐帧审阅。
方面38:一种用于处理一个或多个帧的装置,包括:至少一个存储器;以及一个或多个处理器,其耦合到所述至少一个存储器并且被配置为:从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;从所述图像捕获系统获得与第二设置域相关联的参考帧,其中,所述参考帧是接近于获得所述捕获输入捕获的;获得对与所述第一多个帧相关联的一个或多个选定帧的选择;基于所述参考帧,变换所述一个或多个选定帧以生成与所述第二设置域相关联的一个或多个经变换的帧。
方面39:根据方面38所述的装置,其中,对一个或多个所选择的帧的选择基于来自用户接口的选择。
方面40:根据方面38至39中任一项所述的装置,其中,所述用户界面包括缩略图图库、滑块或逐帧审阅。
方面41:方面31:一种具有存储在其上的指令的非暂时性计算机可读存储介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行方面35至方面40的操作中的任何操作。
方面42:一种装置,包括用于执行根据方面35至方面40所述的操作中的任何操作的单元。
方面43:一种包括根据方面1至32中任意项和方面35至40中任意项的操作的方法。
方面44:一种用于处理一个或多个帧的装置。所述装置包括被配置为存储一个或多个帧的至少一个存储器(例如,在电路中实现)以及耦合到所述至少一个存储器的一个或多个处理器(例如,一个处理器或多个处理器)。所述一个或多个处理器被配置为执行根据方面1至32中任一项和方面35至40中任一项所述的操作。
方面45:一种存储指令的计算机可读存储介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据方面26至35中任意项和方面36至43中任意项所述的操作。
方面46:一种包括用于执行根据方面26至37中任意项和方面38至45中任意项的操作的单元的装置。
Claims (36)
1.一种处理一个或多个帧的方法,包括:
从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;
从所述图像捕获系统获得与第二设置域相关联的至少一个参考帧,其中,所述至少一个参考帧是接近于获得所述捕获输入捕获的;
从所述图像捕获系统获得与所述第二设置域相关联的第二多个帧,其中,所述第二多个帧是在所述至少一个参考帧之后捕获的;以及
基于所述至少一个参考帧,变换所述第一多个帧的至少一部分以生成与所述第二设置域相关联的经变换的多个帧。
2.根据权利要求1所述的方法,其中:
所述第一设置域包括第一分辨率;
所述第二设置域包括第二分辨率;以及
变换所述第一多个帧的至少所述部分包括将所述第一多个帧的至少所述部分从所述第一分辨率放大到所述第二分辨率以生成所述经变换的多个帧,其中,所述经变换的多个帧具有所述第二分辨率。
3.根据权利要求2所述的方法,还包括:
从所述图像捕获系统获得具有所述第二分辨率的额外参考帧,其中,在获得所述捕获输入之前捕获所述额外参考帧,其中,生成具有所述第二分辨率的所述经放大的多个帧是基于所述第一多个帧的至少所述部分、所述至少一个参考帧和所述额外参考帧的,以及其中,所述至少一个参考帧提供用于放大所述第一多个帧的至少所述部分的至少第一部分的参考,且所述额外参考帧提供用于放大所述第一多个帧的至少所述部分的至少第二部分的参考。
4.根据权利要求1所述的方法,还包括:
组合所述经变换的多个帧和所述第二多个帧以生成与所述第二设置域相关联的视频。
5.根据权利要求1所述的方法,还包括:
获得与所述第一多个帧相关联的运动信息,其中,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧的至少所述部分、所述至少一个参考帧和所述运动信息的。
6.根据权利要求5所述的方法,还包括:
基于与所述第一多个帧相关联的所述运动信息来确定平移方向;以及
将所述平移方向应用于所述经变换的多个帧。
7.根据权利要求1所述的方法,其中:
所述第一设置域包括第一帧速率;
所述第二设置域包括第二帧速率;以及
变换所述第一多个帧的至少所述部分包括将所述第一多个帧的至少所述部分从所述第一帧速率进行帧速率转换为所述第二帧速率。
8.根据权利要求7所述的方法,其中,所述第一多个帧的第一子集是以所述第一帧速率捕获的,并且所述第一多个帧的第二子集是以不同于所述第一帧速率的第三帧速率捕获的,其中,所述第三帧速率等于或不等于所述第二帧速率,并且其中,所述第一帧速率与所述第三帧速率之间的改变是至少部分地基于与所述第一多个帧的所述第一子集和所述第一多个帧的所述第二子集中的至少一项相关联的运动信息的。
9.根据权利要求1所述的方法,其中:
所述第一设置域包括第一分辨率和第一帧速率;
所述第二设置域包括第二分辨率和第二帧速率;以及
变换所述第一多个帧的至少所述部分包括将所述第一多个帧的至少所述部分从所述第一分辨率放大到所述第二分辨率,并且将所述第一多个帧的至少所述部分从所述第一帧速率进行帧速率转换为所述第二帧速率。
10.根据权利要求1所述的方法,还包括:
从所述图像捕获系统获得与所述第二设置域相关联的额外参考帧,其中,在获得所述捕获输入之前捕获所述额外参考帧,其中,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧的至少所述部分、至少一个参考帧和所述额外参考帧的,以及其中,所述至少一个参考帧提供用于变换所述第一多个帧的至少所述部分的至少第一子集的参考,且所述额外参考帧提供用于变换所述第一多个帧的至少所述部分的至少第二子集的参考。
11.根据权利要求1所述的方法,其中,所述至少一个参考帧包括第一参考帧,所述方法还包括:
从所述图像捕获系统获得与所述第二设置域相关联的第二参考帧,其中,所述第二参考帧是接近于获得所述捕获输入捕获的;
基于所述第一参考帧,变换所述第一多个帧的至少所述部分以生成与所述第二设置域相关联的所述经变换的多个帧;以及
基于所述第二参考帧,变换所述第一多个帧的至少另一部分以生成与所述第二设置域相关联的第二经变换的多个帧。
12.根据权利要求11所述的方法,还包括:
获得与所述第一多个帧相关联的运动估计;
从所述图像捕获系统获得与所述第二设置域相关联的第三参考帧,其中,所述第三参考帧是在获得所述捕获输入之前捕获的;以及
基于所述第三参考帧,变换所述第一多个帧的第三部分以生成与所述第二设置域相关联的第三经变换的多个帧;
其中,所述第一参考帧与所述第三参考帧之间的时间量是基于与所述第一多个帧相关联的所述运动估计的。
13.一种用于处理一个或多个帧的装置,包括:
存储器;以及
一个或多个处理器,其耦合到所述存储器并且被配置为:
从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;
从所述图像捕获系统获得与第二设置域相关联的至少一个参考帧,其中,所述至少一个参考帧是接近于获得所述捕获输入捕获的;
从所述图像捕获系统获得与所述第二设置域相关联的第二多个帧,其中,所述第二多个帧是在所述至少一个参考帧之后捕获的;以及
基于所述至少一个参考帧,变换所述第一多个帧的至少一部分以生成与所述第二设置域相关联的经变换的多个帧。
14.根据权利要求13所述的装置,其中:
所述第一设置域包括第一分辨率;
所述第二设置域包括第二分辨率;以及
为了变换所述第一多个帧的至少所述部分,所述一个或多个处理器被配置为:将所述第一多个帧的至少所述部分从所述第一分辨率放大到所述第二分辨率以生成所述经变换的多个帧,其中,所述经变换的多个帧具有所述第二分辨率。
15.根据权利要求14所述的装置,其中,所述一个或多个处理器被配置为:
从所述图像捕获系统获得具有所述第二分辨率的额外参考帧,其中,在获得所述捕获输入之前捕获所述额外参考帧,其中,生成具有所述第二分辨率的所述经放大的多个帧是基于所述第一多个帧的至少所述部分、所述至少一个参考帧和所述额外参考帧的,以及其中,所述至少一个参考帧提供用于放大所述第一多个帧的至少所述部分的至少第一部分的参考,且所述额外参考帧提供用于放大所述第一多个帧的至少所述部分的至少第二部分的参考。
16.根据权利要求13所述的装置,其中,所述一个或多个处理器被配置为:
组合所述经变换的多个帧和所述第二多个帧以生成与所述第二设置域相关联的视频。
17.根据权利要求13所述的装置,其中,所述一个或多个处理器被配置为:
获得与所述第一多个帧相关联的运动信息,其中,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧的至少所述部分、所述至少一个参考帧和所述运动信息的。
18.根据权利要求17所述的装置,其中,所述一个或多个处理器被配置为:
基于与所述第一多个帧相关联的所述运动信息来确定平移方向;以及
将所述平移方向应用于所述经变换的多个帧。
19.根据权利要求13所述的装置,其中:
所述第一设置域包括第一帧速率;
所述第二设置域包括第二帧速率;以及
为了变换所述第一多个帧的至少所述部分,所述一个或多个处理器被配置为将所述第一多个帧的至少所述部分从所述第一帧速率进行帧速率转换为所述第二帧速率。
20.根据权利要求19所述的装置,其中,所述第一多个帧的第一子集是以所述第一帧速率捕获的,并且所述第一多个帧的第二子集是以不同于所述第一帧速率的第三帧速率捕获的,其中,所述第三帧速率等于或不等于所述第二帧速率,并且其中,所述第一帧速率与所述第三帧速率之间的改变是至少部分地基于与所述第一多个帧的所述第一子集和所述第一多个帧的所述第二子集中的至少一项相关联的运动信息的。
21.根据权利要求13所述的装置,其中:
所述第一设置域包括第一分辨率和第一帧速率;
所述第二设置域包括第二分辨率和第二帧速率;以及
为了变换所述第一多个帧的至少所述部分,所述一个或多个处理器被配置为:将所述第一多个帧的至少所述部分从所述第一分辨率放大到所述第二分辨率,并且将所述第一多个帧的至少所述部分从所述第一帧速率进行帧速率转换为所述第二帧速率。
22.根据权利要求13所述的装置,其中,所述一个或多个处理器被配置为:
从所述图像捕获系统获得与所述第二设置域相关联的额外参考帧,其中,在获得所述捕获输入之前捕获所述额外参考帧,其中,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧的至少所述部分、至少一个参考帧和所述额外参考帧的,以及其中,所述至少一个参考帧提供用于变换所述第一多个帧的至少所述部分的至少第一子集的参考,且所述额外参考帧提供用于变换所述第一多个帧的至少所述部分的至少第二子集的参考。
23.根据权利要求13所述的装置,其中,所述至少一个参考帧包括第一参考帧,并且所述一个或多个处理器被配置为:
从所述图像捕获系统获得与所述第二设置域相关联的第二参考帧,其中,所述第二参考帧是接近于获得所述捕获输入捕获的;
基于所述第一参考帧,变换所述第一多个帧的至少所述部分以生成与所述第二设置域相关联的所述经变换的多个帧;以及
基于所述第二参考帧,变换所述第一多个帧的至少另一部分以生成与所述第二设置域相关联的第二经变换的多个帧。
24.根据权利要求23所述的装置,其中,所述一个或多个处理器被配置为:
获得与所述第一多个帧相关联的运动估计;
从所述图像捕获系统获得与所述第二设置域相关联的第三参考帧,其中,所述第三参考帧是在获得所述捕获输入之前捕获的;以及
基于所述第三参考帧,变换所述第一多个帧的第三部分以生成与所述第二设置域相关联的第三经变换的多个帧;
其中,所述第一参考帧与所述第三参考帧之间的时间量是基于与所述第一多个帧相关联的所述运动估计的。
25.一种其上存储有指令的非暂时性计算机可读存储介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器:
从图像捕获系统获得与第一设置域相关联的第一多个帧,其中,所述第一多个帧是在获得捕获输入之前捕获的;
从所述图像捕获系统获得与第二设置域相关联的至少一个参考帧,其中,所述至少一个参考帧是接近于获得所述捕获输入捕获的;
从所述图像捕获系统获得与所述第二设置域相关联的第二多个帧,其中,所述第二多个帧是在所述至少一个参考帧之后捕获的;以及
基于所述至少一个参考帧,变换所述第一多个帧的至少一部分以生成与所述第二设置域相关联的经变换的多个帧。
26.根据权利要求25所述的非暂时性计算机可读介质,其中:
所述第一设置域包括第一分辨率;
所述第二设置域包括第二分辨率;以及
为了变换所述第一多个帧的至少所述部分,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器:将所述第一多个帧的至少所述部分从所述第一分辨率放大到所述第二分辨率以生成所述经变换的多个帧,其中,所述经变换的多个帧具有所述第二分辨率。
27.根据权利要求26所述的非暂时性计算机可读存储介质,还包括在由所述一个或多个处理器执行时使所述一个或多个处理器进行以下操作的指令:
从所述图像捕获系统获得具有所述第二分辨率的额外参考帧,其中,在获得所述捕获输入之前捕获所述额外参考帧,其中,生成具有所述第二分辨率的所述经放大的多个帧是基于所述第一多个帧的至少所述部分、所述至少一个参考帧和所述额外参考帧的,以及其中,所述至少一个参考帧提供用于放大所述第一多个帧的至少所述部分的至少第一部分的参考,且所述额外参考帧提供用于放大所述第一多个帧的至少所述部分的至少第二部分的参考。
28.根据权利要求25所述的非暂时性计算机可读存储介质,还包括在由所述一个或多个处理器执行时使所述一个或多个处理器进行以下操作的指令:
组合所述经变换的多个帧和所述第二多个帧以生成与所述第二设置域相关联的视频。
29.根据权利要求25所述的非暂时性计算机可读存储介质,还包括在由所述一个或多个处理器执行时使所述一个或多个处理器进行以下操作的指令:
获得与所述第一多个帧相关联的运动信息,其中,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧的至少所述部分、所述至少一个参考帧和所述运动信息的。
30.根据权利要求29所述的非暂时性计算机可读存储介质,还包括在由所述一个或多个处理器执行时使所述一个或多个处理器进行以下操作的指令:
基于与所述第一多个帧相关联的所述运动信息来确定平移方向;以及
将所述平移方向应用于所述经变换的多个帧。
31.根据权利要求25所述的非暂时性计算机可读介质,其中:
所述第一设置域包括第一帧速率;
所述第二设置域包括第二帧速率;以及
为了变换所述第一多个帧的至少所述部分,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器:将所述第一多个帧的至少所述部分从所述第一帧速率进行帧速率转换为所述第二帧速率。
32.根据权利要求31所述的非暂时性计算机可读存储介质,其中,所述第一多个帧的第一子集是以所述第一帧速率捕获的,并且所述第一多个帧的第二子集是以不同于所述第一帧速率的第三帧速率捕获的,其中,所述第三帧速率等于或不等于所述第二帧速率,并且其中,所述第一帧速率与所述第三帧速率之间的改变是至少部分地基于与所述第一多个帧的所述第一子集和所述第一多个帧的所述第二子集中的至少一项相关联的运动信息的。
33.根据权利要求25所述的非暂时性计算机可读介质,其中:
所述第一设置域包括第一分辨率和第一帧速率;
所述第二设置域包括第二分辨率和第二帧速率;以及
为了变换所述第一多个帧的至少所述部分,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器:将所述第一多个帧的至少所述部分从所述第一分辨率放大到所述第二分辨率,并且将所述第一多个帧的至少所述部分从所述第一帧速率进行帧速率转换为所述第二帧速率。
34.根据权利要求25所述的非暂时性计算机可读存储介质,还包括在由所述一个或多个处理器执行时使所述一个或多个处理器进行以下操作的指令:
从所述图像捕获系统获得与所述第二设置域相关联的额外参考帧,其中,在获得所述捕获输入之前捕获所述额外参考帧,其中,生成与所述第二设置域相关联的所述经变换的多个帧是基于所述第一多个帧的至少所述部分、至少一个参考帧和所述额外参考帧的,以及其中,所述至少一个参考帧提供用于变换所述第一多个帧的至少所述部分的至少第一子集的参考,且所述额外参考帧提供用于变换所述第一多个帧的至少所述部分的至少第二子集的参考。
35.根据权利要求25所述的非暂时性计算机可读存储媒体,其中,所述至少一个参考帧包括第一参考帧,并且所述非暂时性计算机可读存储介质还包括在由所述一个或多个处理器执行时使所述一个或多个处理器进行以下操作的指令:
从所述图像捕获系统获得与所述第二设置域相关联的第二参考帧,其中,所述第二参考帧是接近于获得所述捕获输入捕获的;
基于所述第一参考帧,变换所述第一多个帧的至少所述部分以生成与所述第二设置域相关联的所述经变换的多个帧;以及
基于所述第二参考帧,变换所述第一多个帧的至少另一部分以生成与所述第二设置域相关联的第二经变换的多个帧。
36.根据权利要求35所述的非暂时性计算机可读存储介质,还包括在由所述一个或多个处理器执行时使所述一个或多个处理器进行以下操作的指令:
获得与所述第一多个帧相关联的运动估计;
从所述图像捕获系统获得与所述第二设置域相关联的第三参考帧,其中,所述第三参考帧是在获得所述捕获输入之前捕获的;以及
基于所述第三参考帧,变换所述第一多个帧的第三部分以生成与所述第二设置域相关联的第三经变换的多个帧;
其中,所述第一参考帧与所述第三参考帧之间的时间量是基于与所述第一多个帧相关联的所述运动估计的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/476,283 | 2021-09-15 | ||
US17/476,283 US11800242B2 (en) | 2021-09-15 | 2021-09-15 | Low-power fusion for negative shutter lag capture |
PCT/US2022/074742 WO2023044208A1 (en) | 2021-09-15 | 2022-08-10 | Low-power fusion for negative shutter lag capture |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117981338A true CN117981338A (zh) | 2024-05-03 |
Family
ID=83319307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280061210.4A Pending CN117981338A (zh) | 2021-09-15 | 2022-08-10 | 用于底片快门滞后捕获的低功率融合 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11800242B2 (zh) |
EP (1) | EP4402890A1 (zh) |
CN (1) | CN117981338A (zh) |
WO (1) | WO2023044208A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117172783B (zh) * | 2023-07-17 | 2024-05-07 | 湖北盈嘉集团有限公司 | 一种应收账款确认债权债务交叉核验系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5218508B2 (ja) | 2009-10-02 | 2013-06-26 | 株式会社ニコン | 撮像装置 |
US10200598B2 (en) | 2015-06-07 | 2019-02-05 | Apple Inc. | Devices and methods for capturing and interacting with enhanced digital images |
-
2021
- 2021-09-15 US US17/476,283 patent/US11800242B2/en active Active
-
2022
- 2022-08-10 WO PCT/US2022/074742 patent/WO2023044208A1/en active Application Filing
- 2022-08-10 CN CN202280061210.4A patent/CN117981338A/zh active Pending
- 2022-08-10 EP EP22769860.2A patent/EP4402890A1/en active Pending
-
2023
- 2023-09-14 US US18/467,563 patent/US20240007760A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11800242B2 (en) | 2023-10-24 |
EP4402890A1 (en) | 2024-07-24 |
US20240007760A1 (en) | 2024-01-04 |
US20230080803A1 (en) | 2023-03-16 |
WO2023044208A1 (en) | 2023-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116897375B (zh) | 扩展现实环境中的图像捕获 | |
US11727576B2 (en) | Object segmentation and feature tracking | |
US11810256B2 (en) | Image modification techniques | |
US20240007760A1 (en) | Low-power fusion for negative shutter lag capture | |
US11769258B2 (en) | Feature processing in extended reality systems | |
WO2024026204A1 (en) | User attention determination for extended reality | |
CN117940956A (zh) | 关键点检测和特征描述符计算 | |
US20240289970A1 (en) | Edge-based geometry representation for cross layer applications | |
US20240257309A1 (en) | Aperture fusion with separate devices | |
US20240257557A1 (en) | Facial expression recognition using enrollment images | |
US20240177329A1 (en) | Scaling for depth estimation | |
US20240267632A1 (en) | Adaptive algorithm for power efficient eye tracking | |
US20240265570A1 (en) | Method and apparatus for optimum overlap ratio estimation for three dimensional (3d) reconstructions | |
US20240087232A1 (en) | Systems and methods of three-dimensional modeling based on object tracking | |
US20240212308A1 (en) | Multitask object detection system for detecting objects occluded in an image | |
US20240095997A1 (en) | Systems and methods of image reprojection | |
WO2024163210A1 (en) | Aperture fusion with separate devices | |
WO2024112458A1 (en) | Scaling for depth estimation | |
WO2024118233A1 (en) | Dynamic camera selection and switching for multi-camera pose estimation | |
TW202418218A (zh) | 圖像中的物件移除 |
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 |