CN115150542B - 一种视频防抖方法及相关设备 - Google Patents
一种视频防抖方法及相关设备 Download PDFInfo
- Publication number
- CN115150542B CN115150542B CN202110343723.1A CN202110343723A CN115150542B CN 115150542 B CN115150542 B CN 115150542B CN 202110343723 A CN202110343723 A CN 202110343723A CN 115150542 B CN115150542 B CN 115150542B
- Authority
- CN
- China
- Prior art keywords
- pose
- image
- rotation
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 101
- 238000004091 panning Methods 0.000 claims abstract description 29
- 238000006243 chemical reaction Methods 0.000 claims abstract description 8
- 239000013598 vector Substances 0.000 claims description 139
- 238000012545 processing Methods 0.000 claims description 62
- 238000012937 correction Methods 0.000 claims description 55
- 238000004891 communication Methods 0.000 claims description 39
- 230000006854 communication Effects 0.000 claims description 39
- 238000009499 grossing Methods 0.000 claims description 32
- 238000013519 translation Methods 0.000 claims description 12
- 238000003860 storage Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 abstract description 26
- 230000006870 function Effects 0.000 description 34
- 230000008859 change Effects 0.000 description 24
- 230000008569 process Effects 0.000 description 22
- 238000007726 management method Methods 0.000 description 13
- 239000000306 component Substances 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 12
- 238000010295 mobile communication Methods 0.000 description 12
- 238000005286 illumination Methods 0.000 description 11
- 230000033001 locomotion Effects 0.000 description 11
- 230000005236 sound signal Effects 0.000 description 10
- 238000000605 extraction Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 9
- 239000000047 product Substances 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 8
- 239000003086 colorant Substances 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 235000015110 jellies Nutrition 0.000 description 4
- 239000008274 jelly Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 210000003128 head Anatomy 0.000 description 3
- 238000010008 shearing Methods 0.000 description 3
- 230000006641 stabilisation Effects 0.000 description 3
- 238000011105 stabilization Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000008358 core component Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012888 cubic function Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000010985 leather Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/2622—Signal amplitude transition in the zone between image portions, e.g. soft edges
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Studio Devices (AREA)
Abstract
本申请实施例提供了一种视频防抖方法及相关设备。其中,所述方法包括:获取数据,所述数据包括第一传感器数据和第二传感器数据;所述第一传感器数据和所述第二传感器数据用于进行位姿估计;所述位姿用于表示世界坐标系和相机坐标系之间的转换关系;所述第一传感器数据包括事件相机数据;所述第二传感器数据包括图像序列;所述图像序列包括一系列图像帧;基于所述事件相机数据和所述图像序列,得到第一平移位姿;据所述图像序列,得到第二平移位姿;根据所述第一平移位姿,对所述第二平移位姿进行矫正,得到矫正后的平移位姿。上述方法可以通过事件相机采集更多有效数据,突破了原有传感器的限制,在更多场景下都能达到更好的防抖效果。
Description
技术领域
本申请涉及防抖技术领域,尤其涉及一种视频防抖方法及相关设备。
背景技术
目前,因为手机等智能终端功能强大且便于携带,所以很多人使用它们来进行拍摄,而人们对拍摄的要求越来越高,也就要求智能终端带来更佳的拍摄效果,大多数智能终端都采用了防抖方案。
现有技术中一般会利用惯性传感器、图像传感器等传感器获取位姿,然后对获取到的位姿进行处理,最终输出视频。这种防抖方式因传感器硬件的限制、场景变化等很可能影响拍摄的防抖效果。
因此,如何在场景变化及传感器受限等情况下提升拍摄的防抖效果是目前亟待解决的问题。
发明内容
本申请提供了一种视频防抖方法及相关设备,能够通过事件相机采集数据以得到高动态、高帧率位姿,然后根据得到的高动态、高帧率位姿对其他低帧率、不可靠位姿进行矫正,并对矫正后的位姿进行后续防抖处理,最后输出视频,这种视频防抖方法可在极端光照条件、运动场景等不同场景下得到更准确的位姿,提升了视频的防抖效果。
第一方面,本申请提供一种视频防抖方法,所述方法可包括:获取数据,所述数据包括第一传感器数据和第二传感器数据;所述第一传感器数据和所述第二传感器数据用于进行位姿估计;所述位姿用于表示世界坐标系和相机坐标系之间的转换关系;所述第一传感器数据包括事件相机数据;所述第二传感器数据包括图像序列;所述图像序列包括一系列图像帧;基于所述事件相机数据和所述图像序列,得到第一平移位姿;根据所述图像序列,得到第二平移位姿;根据所述第一平移位姿,对所述第二平移位姿进行矫正,得到矫正后的平移位姿。
在本申请提供的方案中,通过第一传感器(事件相机等)获取第一传感器数据(事件相机数据等),基于第一传感器数据进行位姿估计,得到高帧率、高动态位姿,基于第二传感器数据进行位姿估计,得到低帧率、不可靠位姿,根据获得的高帧率、高动态位姿对低帧率、不可靠位姿进行矫正,再对矫正后的位姿进行后续防抖处理,最终输出视频,这种视频防抖方法在极端光照条件、运动场景等场景下可以采集可靠的数据,因此在不同场景下都有较好的防抖效果。
结合第一方面,在第一方面的一种可能的实现方式中,在所述根据所述第一平移位姿,对所述第二平移位姿进行矫正之前,所述方法还包括:将所述事件相机数据和所述图像序列输入场景判断模型,根据所述场景判断模型确定矫正权重;所述矫正权重包括所述第一平移位姿和所述第二平移位姿的组合关系;所述根据所述第一平移位姿,对所述第二平移位姿进行矫正,包括:基于所述矫正权重和所述第一平移位姿,对所述第二平移位姿进行矫正。
在本申请提供的方案中,利用场景判断模型确定矫正权重,得到第一平移位姿和第二平移位姿的一个组合关系,基于这个组合关系对第二平移位姿进行矫正,得到矫正后的平移位姿,其中场景判断模型可以用于判断图像序列中的光照强度,根据光照强度的不同来改变矫正权重,以实现更好的矫正效果。
结合第一方面,在第一方面的一种可能的实现方式中,对所述矫正后的平移位姿进行平滑处理,得到平滑处理后的平移位姿;根据所述平滑处理后的平移位姿,得到图像变形信息;所述图像变形信息包括图像变形向量;所述图像变形向量用于表示所述图像帧的偏移;根据所述图像变形信息,对所述图像帧进行图像变形处理,得到处理后的图像帧;输出所述处理后的图像帧。
在本申请提供的方案中,得到矫正后的位姿之后,还可以对其进行包括平滑处理、变形处理在内的一系列后续防抖处理,在位姿矫正的基础上,提升了防抖效果。
结合第一方面,在第一方面的一种可能的实现方式中,所述第二传感器数据还包括IMU数据,所述方法还包括:基于所述事件相机数据和所述图像序列,得到第一旋转位姿;所述第一旋转位姿包括第一旋转向量;根据所述IMU数据得到第二旋转位姿;所述第二旋转位姿包括第二旋转向量;根据所述第一旋转位姿,对所述第二旋转位姿进行矫正,得到第一旋转矫正位姿。
在本申请提供的方案中,除了利用一般的传感器(比如IMU传感器等)实现正常场景下的防抖,但是由于这些传感器的限制,得到的位姿可能是低帧率、不可靠位姿,从而导致防抖效果不理想,此时,再利用高帧率、高动态位姿对低帧率、不可靠位姿进行矫正,既可以利用一般传感器所获取的数据,又能保证较好的防抖的效果。
结合第一方面,在第一方面的一种可能的实现方式中,所述根据所述第一旋转位姿,对所述第二旋转位姿进行矫正,包括:确定所述第一旋转向量和所述第二旋转向量的外积,得到第一误差向量;根据所述第一误差向量,对所述第二旋转向量进行补偿处理。
在本申请提供的方案中,可以通过确定误差向量来对低帧率、不可靠位姿进行补偿处理,从而得到更准确的位姿,使得最终输出的视频没有明显的漂移,提升了视频防抖效果。
结合第一方面,在第一方面的一种可能的实现方式中,所述第二传感器数据还包括深度数据,所述方法还包括:基于所述事件相机数据和所述图像序列,得到第一旋转位姿;所述第一旋转位姿包括第一旋转向量;根据所述深度数据和所述图像序列,得到第三旋转位姿;所述第三旋转位姿包括第三旋转向量;根据所述第一旋转位姿,对所述第三旋转位姿进行矫正,得到第二旋转矫正位姿。
在本申请提供的方案中,还可以使用深度传感器来进行位姿估计,得到低帧率、不可靠位姿,再根据由事件相机等传感器得到的高帧率、高动态位姿对低帧率、不可靠位姿进行矫正,得到矫正后的位姿,进行后续防抖处理后输出稳定视频,既利用了深度传感器所获取的数据,又保证了较好的防抖效果。
结合第一方面,在第一方面的一种可能的实现方式中,所述第二传感器数据还包括深度数据,所述方法还包括:根据所述深度数据和所述图像序列,得到第三旋转位姿;所述第三旋转位姿包括第三旋转向量;根据所述第一旋转位姿,对所述第三旋转位姿进行矫正,得到第二旋转矫正位姿;根据所述第一旋转矫正位姿和所述第二旋转矫正位姿,得到第三旋转矫正位姿。
在本申请提供的方案中,可以利用多种类型的传感器进行位姿估计,比如利用深度传感器、IMU传感器等进行位姿估计,得到低帧率、不可靠位姿,再根据高帧率、高动态位姿对其进行矫正,利用了传感器获取的有效数据,同时也有效提升了防抖效果。
结合第一方面,在第一方面的一种可能的实现方式中,根据所述第一旋转位姿,对所述第三旋转位姿进行矫正,包括:确定所述第一旋转向量和所述第三旋转向量的外积,得到第二误差向量;根据所述第二误差向量,对所述第三旋转向量进行补偿处理。
在本申请提供的方案中,可以通过确定误差向量来对低帧率、不可靠位姿进行补偿处理,从而得到更准确的位姿,使得最终输出的视频没有明显的漂移、果冻效应,提升了视频防抖效果。
第二方面,本申请提供了一种电子设备,所述电子设备包括:一个或多个处理器、存储器和通信接口;所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器用于调用所述计算机指令以使得所述电子设备执行:获取数据,所述数据包括第一传感器数据和第二传感器数据;所述第一传感器数据和所述第二传感器数据用于进行位姿估计;所述位姿用于表示世界坐标系和相机坐标系之间的转换关系;所述第一传感器数据包括事件相机数据;所述第二传感器数据包括图像序列;所述图像序列包括一系列图像帧;基于所述事件相机数据和所述图像序列,得到第一平移位姿;根据所述图像序列,得到第二平移位姿;根据所述第一平移位姿,对所述第二平移位姿进行矫正,得到矫正后的平移位姿。
结合第二方面,在第二方面的一种可能的实现方式中,所述一个或多个处理器,在用于调用所述计算机指令以使得所述电子设备执行在所述根据所述第一平移位姿,对所述第二平移位姿进行矫正之前,还用于调用所述计算机指令以使得所述电子设备执行:将所述事件相机数据和所述图像序列输入场景判断模型,根据所述场景判断模型确定矫正权重;所述矫正权重包括所述第一平移位姿和所述第二平移位姿的组合关系;所述一个或多个处理器,在用于调用所述计算机指令以使得所述电子设备执行在所述根据所述第一平移位姿,对所述第二平移位姿进行矫正时,具体用于调用所述计算机指令以使得所述电子设备执行:基于所述矫正权重和所述第一平移位姿,对所述第二平移位姿进行矫正。
结合第二方面,在第二方面的一种可能的实现方式中,所述一个或多个处理器,还用于调用所述计算机指令以使得所述电子设备执行:对所述矫正后的平移位姿进行平滑处理,得到平滑处理后的平移位姿;根据所述平滑处理后的平移位姿,得到图像变形信息;所述图像变形信息包括图像变形向量;所述图像变形向量用于表示所述图像帧的偏移;根据所述图像变形信息,对所述图像帧进行图像变形处理,得到处理后的图像帧;输出所述处理后的图像帧。
结合第二方面,在第二方面的一种可能的实现方式中,所述第二传感器数据还包括IMU数据;所述一个或多个处理器,还用于调用所述计算机指令以使得所述电子设备执行:基于所述事件相机数据和所述图像序列,得到第一旋转位姿;所述第一旋转位姿包括第一旋转向量;根据所述IMU数据得到第二旋转位姿;所述第二旋转位姿包括第二旋转向量;根据所述第一旋转位姿,对所述第二旋转位姿进行矫正,得到第一旋转矫正位姿。
结合第二方面,在第二方面的一种可能的实现方式中,所述一个或多个处理器,在用于调用所述计算机指令以使得所述电子设备执行所述根据所述第一旋转位姿,对所述第二旋转位姿进行矫正时,具体用于调用所述计算机指令以使得所述电子设备执行:确定所述第一旋转向量和所述第二旋转向量的外积,得到第一误差向量;根据所述第一误差向量,对所述第二旋转向量进行补偿处理。
结合第二方面,在第二方面的一种可能的实现方式中,所述第二传感器数据还包括深度数据;所述一个或多个处理器,还用于调用所述计算机指令以使得所述电子设备执行:基于所述事件相机数据和所述图像序列,得到第一旋转位姿;所述第一旋转位姿包括第一旋转向量;根据所述深度数据和所述图像序列,得到第三旋转位姿;所述第三旋转位姿包括第三旋转向量;根据所述第一旋转位姿,对所述第三旋转位姿进行矫正,得到第二旋转矫正位姿。
结合第二方面,在第二方面的一种可能的实现方式中,所述第二传感器数据还包括深度数据;所述一个或多个处理器,还用于调用所述计算机指令以使得所述电子设备执行:根据所述深度数据和所述图像序列,得到第三旋转位姿;所述第三旋转位姿包括第三旋转向量;根据所述第一旋转位姿,对所述第三旋转位姿进行矫正,得到第二旋转矫正位姿;根据所述第一旋转矫正位姿和所述第二旋转矫正位姿,得到第三旋转矫正位姿。
结合第二方面,在第二方面的一种可能的实现方式中,所述一个或多个处理器,在用于调用所述计算机指令以使得所述电子设备执行所述根据所述第一旋转位姿,对所述第三旋转位姿进行矫正时,具体用于调用所述计算机指令以使得所述电子设备执行:确定所述第一旋转向量和所述第三旋转向量的外积,得到第二误差向量;根据所述第二误差向量,对所述第三旋转向量进行补偿处理。
第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当该计算机程序被处理器执行时,所述处理器执行上述第一方面以及结合上述第一方面中的任意一种实现方式所提供的视频防抖方法。
第四方面,本申请提供了一种计算机程序产品,该计算机程序产品包括指令,当该计算机程序产品被计算机执行时,使得计算机可以执行上述第一方面以及结合上述第一方面中的任意一种实现方式所提供的视频防抖方法的流程。
第五方面,本申请实施例提供了一种芯片,所述芯片应用于电子设备,所述芯片包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行上述第一方面以及上述第一方面中的任意一种实现方式所描述的视频防抖方法。
第六方面,本申请提供了一种芯片系统,所述芯片系统应用于电子设备,用于支持上述电子设备实现上述第一方面中所涉及的功能,例如,生成或处理上述第一方面视频防抖方法中所涉及的信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存数据发送设备必要的程序指令和数据。所述芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
可理解,上述第二方面提供的一种电子设备、第三方面提供的一种计算机可读存储介质、第四方面提供的一种包含指令的计算机程序产品、第五方面提供的一种芯片,以及第六方面提供的一种芯片系统均用于执行第一方面所提供的视频防抖方法。因此,其所能达到的有益效果可参考第一方面所提供的视频防抖方法中的有益效果,在此不再赘述。
附图说明
图1为本申请实施例提供的一种视频防抖系统架构的示意图;
图2为本申请实施例提供的又一种视频防抖系统架构的示意图;
图3为本申请实施例提供的一种视频防抖方法的流程示意图;
图4为本申请实施例提供的又一种视频防抖方法的流程示意图;
图5为本申请实施例提供的又一种视频防抖方法的流程示意图;
图6为本申请实施例提供的又一种视频防抖方法的流程示意图;
图7为本申请实施例提供的又一种视频防抖方法的流程示意图;
图8为本申请实施例提供的又一种视频防抖方法的流程示意图;
图9为本申请实施例提供的一种终端的硬件结构示意图;
图10为本申请实施例提供的一种终端的软件结构示意图。
具体实施方式
下面结合附图对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,对本申请中所涉及的部分用语和相关技术进行解释说明,以便于本领域技术人员理解。
事件相机,也称为神经形态像机,硅视网膜或动态视觉传感器,是一种能够响应局部亮度变化的成像传感器。事件相机不像传统相机那样使用快门捕获图像,事件相机拍摄的是“事件”,可以简单理解为“像素亮度的变化”,即事件相机输出的是像素亮度的变化情况。
惯性传感器(Inertial Measurement Unit,IMU)是一种传感器,主要是检测和测量加速度、倾斜、冲击、振动、旋转和多自由度(DoF)运动,是解决导航、定向和运动载体控制的重要部件。最基础的惯性传感器包括加速度计和角速度计(陀螺仪),他们是惯性系统的核心部件,是影响惯性系统性能的主要因素。尤其是陀螺仪其漂移对惯导系统的位置误差增长的影响是时间的三次方函数。而高精度的陀螺仪制造困难,成本高昂。因此提高陀螺仪的精度、同时降低其成本也是当前追求的目标。
深度传感器是一种能够探测深度信息的传感器,深度传感器主要包括相机矩阵传感器、TOF传感器和结构光传感器,这是因为相机阵列、TOF(time of flight)技术和基于结构光的深度探测技术这三种技术是目前人们探测环境深度信息主要依赖的三种技术。
相机阵列一般使用放置在不同位置的多个摄像头来捕获同一目标的多个图像,并根据几何结构计算深度图。对于空间中的每个点,在不同摄像头所捕获的图像中的位置均出现可测量的差异,可以通过基本几何来计算深度。
TOF是飞行时间(Time of Flight)技术的缩写,利用TOF传感器来探测深度信息的原理为:TOF传感器发出经调制的近红外光,遇物体后反射,TOF传感器通过计算光线发射和反射时间差或相位差,来换算被拍摄景物的距离,以产生深度信息,此外再结合传统的相机拍摄,就能将物体的三维轮廓以不同颜色代表不同距离的地形图方式呈现出来。
结构光传感器使用激光光源投射目标物,检测反射目标物的变形,以基于几何形状计算深度图。结构光传感器必须扫描整个平面以获得需要时间的深度图,因此非常准确。但是,结构光传感器对环境亮度敏感,因此通常仅在黑暗或室内区域使用。
果冻效应是拍摄过程中产生的一种现象,是由摄影机本身的特性决定的。使用CMOS传感器的相机多数使用卷帘快门,它是通过图像传感器逐行曝光的方式实现的。在曝光开始的时候,图像传感器逐行扫描逐行进行曝光,直至所有像素点都被曝光。当然,所有的动作在极短的时间内完成,一般不会对拍摄造成影响。但如果被拍摄物体相对于相机高速运动或快速振动时。用卷帘快门方式拍摄,逐行扫描速度不够,拍摄结果就可能出现“倾斜”、“摇摆不定”或“部分曝光”等情况。这种卷帘快门方式拍摄出现的现象,就定义为果冻效应。
数字化图像的每个像素是用一组二进制数进行描述,其中包含表示图像颜色的位,图中每个像素颜色所占的二进制位位数,称为图像深度。图像深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数。它决定了彩色图像中可出现的最多颜色数,或灰度图像中的最大灰度等级。对一幅位图,图像深度是一常量,图像深度确定了一幅图像中最多能使用的颜色数,在位图中,若每个像素只有一个颜色位,则该像素或为暗或为亮,即是单色图像(注意,这并不一定是黑白图像,它只是限制图像只能使用两种色度或颜色)。若每个像素有4个颜色位,位图则支持2^4=16种颜色;若每个像素有8个颜色位,则位图可支持256种不同的颜色。图像深度是用来描述图像深度信息中每个像素的灰度值或颜色数的基础,在单目图像深度估计问题中,一幅图像对应场景的深度信息一般由相同大小的灰度图来描述,灰度图中每个像素的灰度值描述该点对应场景的深度值,该灰度图又称为深度图,只有知道像素深度,才能计算出每个像素点对应深度值。
视觉里程计(VisualOdometry,简称VO)是SLAM技术中非常关键的部分,主要侧重于计算机视觉算法。
世界坐标系是系统的绝对坐标系,在没有建立用户坐标系之前画面上所有点的坐标都是以该坐标系的原点来确定各自的位置的。
相机坐标系是以相机的聚焦中心为原点,以光轴为Z轴建立的三维直角坐标系。相机坐标系的原点为相机的光心,x轴与y轴与图像的X,Y轴平行,z轴为相机光轴,它与图形平面垂直。光轴与图像平面的交点,即为图像坐标系的原点,图像坐标系为二维直角坐标系。
四元数是简单的超复数。复数是由实数加上虚数单位i组成,其中i^2=-1。相似地,四元数都是由实数加上三个虚数单位i、j、k组成,而且它们有如下的关系:i^2=j^2=k^2=-1,i^0=j^0=k^0=1,每个四元数都是1、i、j和k的线性组合,即是四元数一般可表示为a+bi+cj+dk,其中a、b、c、d是实数。
目前,大多数人都会通过拍摄视频、照片来保存生活中的美丽瞬间,而随着多媒体技术不断发展,人们对于拍摄的需求越来越高,也就意味着,人们对具有拍摄功能的智能终端的要求也越来越高。
多数智能终端为了更好地满足用户的需求,都采用了防抖技术,如图1所示,图1为本申请实施例提供的一种视频防抖系统架构的示意图,一般来说,首先由智能终端中的传感器获取数据,这些数据经过信息融合后再进行位姿估计,智能终端对得到的位姿进行平滑处理和图像变形处理,最终输出视频,在图1所示的防抖过程中,使用的传感器不同,相应的处理过程也会有所差异。
若采取惯性传感器来进行防抖,首先通过IMU获取IMU数据,根据IMU数据得到相机的位姿,从而得到初始的旋转路径,然后对初始的旋转路径进行平滑,将平滑结果应用于图像变形,实现视频稳像的功能。但是,这种方法受IMU精度、频漂和更新频率影响,IMU精度不高导致IMU数据不可靠,频漂导致与真实值产生偏移,而较低的更新频率导致数据更新不及时。
若基于摄像头获取的图像进行防抖,具体地,通过跟踪连续帧之间的特征点估计帧的运动,获得初始路径,将初始路径进行平滑,最后将平滑结果应用于图像变形,实现视频稳像的功能。但是,这种方法依赖于特征点的提取和跟踪,在特殊的场景下效果不佳,例如,在强光与暗光场景下,图像会过曝或者欠曝;在运动较快时,会出现运动模糊。这些特殊场景会导致获取的图像质量不佳,无法有效提取特征点,无法进行后续防抖操作。此外,因为受图像帧率的限制,相机的位姿的更新速率很低。
若基于深度传感器来进行防抖,首先通过深度传感器获取深度图,然后通过深度图与图像帧得到一个运动场,根据运动场对相机运动进行补偿,从而实现视频稳像的功能。但是,这种方法受深度传感器的限制,深度图的很多像素值因此丢失,在进行图像变形操作时,丢失像素值的部分执行未丢失部分的图像变形,导致出现果冻效应。此外,因为受深度传感器的限制,相机的位姿的更新速率很低。
可理解,上述基于三种传感器的防抖方法均无法准确表征相机的真实位姿信息,视频防抖的效果无法得到有效保障。
基于上述内容,本申请提供了一种视频防抖方法及相关设备,可以充分发挥事件相机高帧率、高动态特性在防抖中的优势,利用高帧率特性来对现有防抖技术中的低帧率信息进行补充,而利用高动态特性在特殊场景(例如强光、暗光等极端光照条件)下获取可靠的数据,从而在场景变化及传感器受限等情况下提升拍摄的防抖效果。
为了更好地理解本申请实施例,首先对本申请实施例基于的一种视频防抖系统架构进行描述。请参阅图2,图2是本申请实施例提供的又一种视频防抖系统架构的示意图,所述视频防抖系统架构包括第一传感器和第二传感器,终端将第一传感器产生的数据和第二传感器产生的数据进行信息融合,再根据信息融合的结果进行位姿估计,从而获取相机的位姿。
可理解,所述第一传感器包括但不限于事件相机,所述第二传感器包括但不限于摄像头、惯性传感器(IMU)和深度传感器。
具体地,结合图3对图2所示的系统架构进行说明,图3为本申请实施例提供的一种视频防抖方法的流程示意图,如图3所示,当用户启动录像功能时,触发了开启事件相机、摄像头及其他防抖传感器(IMU、深度传感器等)的指令,即触发开启了图2所示的第一传感器和第二传感器,根据这些传感器获取的数据进行位姿估计,可以得到相机的位姿,具体地,根据事件相机和摄像头可获取高帧率、高动态位姿,而根据其它传感器可获得低帧率、不可靠位姿。在得到相机的位姿后,根据得到的高帧率、高动态位姿对低帧率位姿及不可靠位姿进行矫正,然后对矫正后的位姿进行平滑处理,根据平滑处理的结果获取图像变形信息,再根据图像变形信息以及摄像头获取的图像信息进行变形处理,最终输出稳像视频。
基于图2所述的视频防抖系统架构,本申请实施例提供了一种视频防抖方法,请参阅图4,图4为本申请实施例提供的又一种视频防抖方法的流程示意图,所述方法包括但不限于如下步骤:
S401:获取数据。
具体地,终端通过第一传感器和第二传感器获取数据,所述数据包括第一传感器数据和第二传感器数据;所述第一传感器数据和所述第二传感器数据用于进行位姿估计;所述位姿用于表示世界坐标系和相机坐标系之间的转换关系;所述第一传感器数据包括事件相机数据;所述第二传感器数据包括图像序列。
可理解,所述第一传感器包括但不限于事件相机,所述第二传感器包括但不限于摄像头;所述事件相机数据包括事件流,所述事件流用于表示图像像素亮度的变化;所述图像序列包括一系列图像帧。
S402:基于事件相机数据和图像序列,确定第一平移位姿。
具体地,由于终端获取的事件相机数据包括事件流,即包括图像的像素亮度的变化情况,而图像序列包括一系列图像帧,根据图像的像素亮度的变化情况对图像序列中相应的图像帧进行重建,得到重建图像,再对重建图像进行特征点提取和匹配,得到第一平移位姿。可理解,所述第一平移位姿可以表示相邻重建图像的平移,另外,第一平移位姿可以用向量或矩阵进行表示。
可理解,重建图像为图像序列中的图像帧经过处理后的图像,也就是说,重建图像与图像序列中的图像帧表示的是同一时间获取到的图像,只是相较于图像序列中的图像帧,重建图像具有更多细节,也可以理解为重建图像的图像质量更高。
另外,所述相邻重建图像为图像序列中的相邻的两个图像帧经过处理后得到的两帧重建图像。
可理解,事件相机和摄像头可以不断获取事件相机数据和图像序列,在某个确定的时间点,事件相机数据表示该时间点的图像的像素亮度的变化情况,而图像序列表现为某个图像帧,即一帧图像,此时,可以根据该时间点的图像的像素亮度的变化情况对这一帧图像进行重建,得到重建图像,再对该重建图像进行特征点提取和匹配,从而得到第一平移位姿。由于在对重建图像进行特征点提取时,可以提取到更多更稳定的特征点,所以得到的第一平移位姿也更准确。
在本申请的一个实施例中,可选取一系列具体时间点来确定不同时间点的第一平移位姿。
在本申请的一个实施例中,可以对事件相机数据进行处理,得到类似于图像的事件图像,即处理事件相机数据使其以图像形式进行显示,然后基于所述事件图像以及图像序列,得到第一平移位姿。
可理解,可采取反投影法、迭代重建算法、解析法等方法实现所述重建图像的过程,还可以通过训练模型来进行图像重建,例如,基于事件增强的图像退化模型和事件增强的稀疏学习网络(eSL-Net)恢复高质量的图像。
S403:根据图像序列,确定第二平移位姿。
具体地,对图像序列中相应图像帧进行特征点提取及匹配,得到第二平移位姿,所述第二平移位姿可以用向量或矩阵进行表示,可理解,第二平移位姿可以表示图像序列中的相邻图像帧的平移。
S404:根据第一平移位姿,对第二平移位姿进行矫正。
具体地,对图像序列中相应的图像帧进行场景判断,得到矫正权重,基于矫正权重和第一平移位姿,对第二平移位姿进行矫正,得到矫正后的平移位姿。可理解,所述场景判断包括但不限于判断图像帧中的光照强度;所述矫正权重包括第一平移位姿和第二平移位姿的组合关系。
在本申请的一个实施例中,第一平移位姿表示为T1,第二平移位姿表示为T2,矫正后的平移位姿表示为T3,T3=F(T1,T2),其中,F(T1,T2)所表示的第一平移位姿和第二平移位姿之间的关系,也可以理解为,F(T1,T2)表示的是第一平移位姿和第二平移位姿的组合关系,即F(T1,T2)可以表示矫正权重。
在本申请的一个实施例中,可以通过建立场景判断模型来实现场景判断,并得到相应的矫正权重,即可以将图像帧输入至场景判断模型,得到第一平移位姿和第二平移位姿的组合关系。
可理解,所述场景判断模型可以是一种AI模型,在利用AI模型进行处理之前需要对初始AI模型进行训练,本申请实施例利用摄像头获取的样本图像以及事件相机获取的事件相机数据(比如事件流等)对初始AI模型进行训练。由于场景判断可以包含光照强度等多个因素的判断,相应地,训练过程也可以考虑多个因素,以光照强度为例,输入样本图像以及相应的事件流(同一时间产生的样本图像和事件流),得到第一平移位姿和第二平移位姿,并且根据样本图像判断光照强度,根据不同矫正权重对第二平移位姿进行矫正,得到不同矫正权重下的矫正后的平移位姿,确定这些矫正后的平移位姿中最准确的平移位姿,输出最准确的矫正后的平移位姿所对应的矫正权重,输出的这个矫正权重就是所述光照强度下的最佳的矫正权重,即所述光照条件下矫正效果最好的第一平移位姿与第二平移位姿的组合关系。在本申请的一个实施例中,可以通过样本图像的亮度来判断光照强度,例如,比较图像帧中亮度小于或大于某一阈值的像素数量和图像帧中所有的像素数量,从而判断获取图像帧时的光照条件是较暗还是较亮。
在本申请的一个实施例中,得到矫正后的平移位姿之后,可以继续进行后续防抖操作(比如对矫正后的平移位姿进行平滑处理、图像变形处理等),并最终得到处理后的图像帧。可理解,判断所述处理后的图像帧的质量,就可以判断所述矫正后的平移位姿的准确性。
在本申请的一个实施例中,对矫正后的平移位姿进行平滑处理,得到平滑处理后的平移位姿,再根据所述平滑处理后的平移位姿,得到图像变形信息,然后根据所述图像变形信息,对所述图像序列进行图像变形处理和剪切处理,最终输出视频(图像帧)。可理解,所述图像变形信息包括图像变形向量,所述图像变形向量用于表示图像序列的偏移。
需要说明的是,矫正后的平移位姿可以表示为一个向量,这个向量可以表示矫正后的图像帧在二维平面上的平移,示例性的,将所述向量表示为u,u可以为二维笛卡尔坐标系上的某个有向线段,分别取与二维笛卡尔坐标系上的x轴、y轴方向相同的两个单位向量i,j作为一组基底,由平面向量基本定理可知,有且只有一对实数(a,b)可以用来表示所述向量的坐标,使得u=ai+bj。由于在拍摄过程中摄像头持续获取图像帧,对所获取的图像帧的处理也会持续进行,相应地,所述向量也会持续变化,也就意味着,所述向量的坐标(a,b)也会持续变化,可生成两条曲线以分别表示a和b的变化情况,上述平滑处理过程可以包括对这两条曲线进行平滑处理,经过平滑处理后可以得到向量u1。
可理解,平滑处理后的平移位姿包括平滑处理后得到的向量u1,可以根据向量u1的坐标得到图像变形信息,并根据图像变形信息对图像序列进行图像变形处理和剪切处理,具体地,经过平滑处理后,可以得到处理后的不同时刻的向量u1,即可以得到不同时刻的向量u1的坐标,这些坐标可能与平滑处理前的相应时刻的向量u的坐标相同或不同,可以通过向量u1得到图像变形信息,所述图像变形信息可以包括图像变形向量,所述图像变形向量用于表示图像帧的偏移,对图像帧进行与图像变形向量的方向相反且大小相同的平移,然后再对图像帧进行剪切,去掉出镜的部分,得到并输出处理后的图像帧。
本申请实施例还提供了一种视频防抖方法,请参阅图5,图5为本申请实施例提供的又一种视频防抖方法的流程示意图,所述方法包括但不限于如下步骤:
S501:获取数据。
具体地,终端可以通过第一传感器和第二传感器获取数据,详细内容可参考步骤S401,在此不再赘述。
S502:确定第一平移位姿和第一旋转位姿。
具体地,基于事件相机数据和图像序列,得到第一平移位姿和第一旋转位姿。可理解,可以通过VO中的特征点法来确定第一平移位姿,具体可参考步骤S402,在此不再赘述。另外,可以通过特征点法确定第一旋转位姿,即通过特征点提取、匹配,得到匹配后的特征点对,从而确定第一旋转位姿,还可以通过求解PnP问题来确定第一旋转位姿,PnP(Perspective-n-Point)问题描述了当我们知道了n个3D空间点以及它们的投影位置时,如何估计相机所在的位姿,在本申请的一个实施例中,可利用迭代法求解PnP问题,还可以直接调用OpenCV的库函数“solvePnP”来求解PnP问题,从而确定第一旋转位姿。
S503:确定第二平移位姿。
具体地,对图像序列中相应图像帧进行特征点提取及匹配,从而确定第二平移位姿,详细内容可参考步骤S403,在此不再赘述。
S504:对第二平移位姿进行矫正。
具体地,根据第一平移位姿,对第二平移位姿进行矫正,详细内容可参考步骤S404,在此不再赘述。
S505:对第一旋转位姿进行平滑处理。
在本申请的一个实施例中,第一旋转位姿可以包括第一旋转向量,第一旋转向量可以包括三个元素,这三个元素可以为绕x轴的角速度、绕y轴的角速度和绕z轴的角速度。由于在拍摄过程中摄像头持续获取图像帧,对所获取的图像帧的处理也会持续进行,相应地,第一旋转位姿也会持续变化,也就意味着,第一旋转向量也会持续变化,可生成三条曲线以分别表示上述角速度的变化情况,上述平滑处理过程可以包括对这三条曲线进行平滑处理。可理解,平滑处理后的平移位姿包括平滑处理后的第一旋转向量,可以根据平滑处理后的第一旋转向量得到图像变形信息,并根据图像变形信息对图像序列进行图像变形处理和剪切处理,具体地,经过平滑处理后,可以得到处理后的不同时刻的第一旋转向量,即可以得到不同时刻的绕x、y、z轴的角速度。
在本申请的另一个实施例中,第一旋转位姿可以包括第一旋转矩阵,第一旋转矩阵可以表示为通过第一旋转矩阵可以计算得到欧拉角和相应的四元数。可理解,对第一旋转矩阵进行微分处理,可以得到第一旋转向量。
S506:对矫正后的平移位姿进行平滑处理。
可理解,具体内容可参考步骤S404,在此不再赘述。
S507:进行图像变形处理。
可理解,对平滑处理后的平移位姿进行图像变形处理可参考步骤S404,在此不再赘述。
另外,可以将平滑处理后的第一旋转向量进行投影变换,从而得到图像变形信息,所述图像变形信息可以包括图像变形向量,所述图像变形向量用于表示图像帧的偏移,对图像帧进行与图像变形向量的方向相反且大小相同的平移,然后再对图像帧进行剪切,去掉出镜的部分。
S508:输出图像帧。
具体地,输出上述经过图像变形处理后的图像帧。
本申请实施例还提供了一种视频防抖方法,请参阅图6,图6为本申请实施例提供的又一种视频防抖方法的流程示意图,所述方法包括但不限于如下步骤:
S601:获取数据。
具体地,终端可以通过第一传感器和第二传感器获取数据,所述数据包括第一传感器数据和第二传感器数据;所述第一传感器数据和所述第二传感器数据用于进行位姿估计;所述位姿用于表示世界坐标系和相机坐标系之间的转换关系;所述第一传感器数据包括事件相机数据;所述第二传感器数据包括图像序列和IMU数据。
可理解,所述第一传感器包括但不限于事件相机,所述第二传感器包括但不限于摄像头和IMU;所述事件相机数据包括事件流,所述事件流用于表示图像像素亮度的变化;所述图像序列包括一系列图像帧;所述IMU数据可以包括x轴的旋转角、y轴的旋转角和z轴的旋转角。
S602:确定第二旋转位姿。
具体地,根据IMU数据得到第二旋转位姿,所述第二旋转位姿包括第二旋转向量,与第一旋转向量相似,第二旋转向量可以包括三个元素,这三个元素可以为绕x轴的角速度、绕y轴的角速度和绕z轴的角速度,可理解,虽然第二旋转向量的三个元素所表示的含义和第一旋转向量的三个元素所表示的含义相同,但是第二旋转向量的三个元素的具体值与第一旋转向量的三个元素的具体值不一定相同。
S603:确定第一平移位姿和第一旋转位姿。
可理解,具体内容可参考步骤S502,在此不再赘述。
S604:确定第二平移位姿。
具体地,对图像序列中相应图像帧进行特征点提取及匹配,从而确定第二平移位姿,详细内容可参考步骤S403和步骤S503,在此不再赘述。
S605:对第二旋转位姿进行矫正。
具体地,确定第一旋转向量和第二旋转向量的外积,得到第一误差向量;根据所述第一误差向量,对所述第二旋转向量进行补偿处理,得到第一旋转矫正位姿。
在本申请的一个实施例中,第一旋转向量表示为V1,第二旋转向量表示为V2,计算V1和V2的外积,得到第一误差向量V3=V1×V2,第一误差向量反映出了角度变化量,利用第一误差向量、比例增益KP和积分增益KI来对第二旋转向量进行补偿,即对绕x、y、z轴的角速度进行修正,具体地,对V1和V2进行归一化处理,当这两个向量的夹角很小时,所述夹角约等于所述夹角的正弦值,因此,|V3|与所述夹角成正比,可以利用比例增益KP和积分增益KI乘以|V3|来实现对第二旋转向量的补偿,例如,计算KP·|V3|+KI·∫|V3|的值,利用这个值对第二旋转向量所表示的绕x、y、z轴的角速度进行修正,得到第一旋转矫正位姿(比如,将第二旋转向量所表示的绕x、y、z轴的角速度加上这个值,得到第一旋转矫正向量,第一旋转矫正位姿包括所述第一旋转矫正向量)。
S606:对第二平移位姿进行矫正。
具体地,根据第一平移位姿,对第二平移位姿进行矫正,详细内容可参考步骤S404和步骤S504,在此不再赘述。
S607:对矫正后的旋转位姿进行平滑处理。
可理解,矫正后的旋转位姿为第一旋转矫正位姿,第一旋转矫正位姿可以包括第四旋转向量,第四旋转向量可以包括三个元素,这三个元素可以为绕x轴的角速度、绕y轴的角速度和绕z轴的角速度。由于在拍摄过程中摄像头持续获取图像帧,终端也会持续对所获取的图像帧进行处理,相应地,第一旋转矫正位姿也会持续变化,也就意味着,第四旋转向量也会持续变化,可生成三条曲线以分别表示上述角速度的变化情况,上述平滑处理过程可以包括对这三条曲线进行平滑处理。
可理解,第一旋转矫正位姿经平滑处理后,可以包括平滑处理后的第四旋转向量,可以根据平滑处理后的第四旋转向量得到图像变形信息,并根据图像变形信息对图像序列进行图像变形处理和剪切处理,具体地,经过平滑处理后,可以得到处理后的不同时刻的第四旋转向量,即可以得到不同时刻的三个旋转角。
S608:对矫正后的平移位姿进行平滑处理。
可理解,具体内容可参考步骤S404和步骤S506,在此不再赘述。
S609:进行图像变形处理。
可理解,具体内容可参考步骤S404和步骤S507,在此不再赘述。
S610:输出图像帧。
具体地,输出上述经过图像变形处理后的图像帧。
本申请实施例还提供了一种视频防抖方法,请参阅图7,图7为本申请实施例提供的又一种视频防抖方法的流程示意图,所述方法包括但不限于如下步骤:
S701:获取数据。
可理解,终端可以通过第一传感器和第二传感器获取数据,所述数据包括第一传感器数据和第二传感器数据;所述第一传感器数据和所述第二传感器数据用于进行位姿估计;所述位姿用于表示世界坐标系和相机坐标系之间的转换关系;所述第一传感器数据包括事件相机数据;所述第二传感器数据包括图像序列和深度数据。
可理解,所述第一传感器包括但不限于事件相机,所述第二传感器包括但不限于摄像头和深度传感器;所述事件相机数据包括事件流,所述事件流用于表示图像像素亮度的变化;所述图像序列包括一系列图像帧;所述深度数据可以包括深度信息,在本申请的一个实施例中,所述深度数据包括深度图。
S702:确定第三旋转位姿。
具体地,基于深度数据和图像序列,可以通过VO得到第三旋转位姿(可参考步骤S502),所述第三旋转位姿包括第三旋转向量,与第一旋转向量和第二旋转向量相似,第三旋转向量可以包括三个元素,这三个元素可以为绕x轴的角速度、绕y轴的角速度和绕z轴的角速度,可理解,虽然上述三个旋转向量中的三个元素所表示的含义相同,但是这三个旋转向量的三个元素的具体值不一定相同的。
S703:确定第一平移位姿和第一旋转位姿。
可理解,具体内容可参考步骤S502和步骤S603,在此不再赘述。
S704:确定第二平移位姿。
具体地,对图像序列中相应图像帧进行特征点提取及匹配,从而确定第二平移位姿,详细内容可参考步骤S403、步骤S503和步骤S604,在此不再赘述。
S705:对第三旋转位姿进行矫正。
具体地,确定第一旋转向量与第三旋转向量的外积,得到第二误差向量;根据第二误差向量,对第三旋转向量进行补偿处理,得到第二旋转矫正位姿。可理解,所述矫正过程可参考步骤S605,在此不再赘述。
S706:对第二平移位姿进行矫正。
具体地,根据第一平移位姿,对第二平移位姿进行矫正,详细内容可参考步骤S404和步骤S504和步骤S606,在此不再赘述。
S707:对矫正后的旋转位姿进行平滑处理。
可理解,矫正后的旋转位姿为第二旋转矫正位姿,对第二旋转矫正位姿进行平滑处理,具体内容可参考步骤S607,在此不再赘述。
S708:对矫正后的平移位姿进行平滑处理。
可理解,具体内容可参考步骤S404、步骤S506和步骤S608,在此不再赘述。
S709:进行图像变形处理。
可理解,具体内容可参考步骤S404、步骤S507和步骤S609,在此不再赘述。
S710:输出图像帧。
具体地,输出上述经过图像变形处理后的图像帧。
本申请实施例还提供了一种视频防抖方法,请参阅图8,图8为本申请实施例提供的又一种视频防抖方法的流程示意图,所述方法包括但不限于如下步骤:
S801:获取数据。
可理解,终端可以通过第一传感器和第二传感器获取数据,所述数据包括第一传感器数据和第二传感器数据;所述第一传感器数据和所述第二传感器数据用于进行位姿估计;所述位姿用于表示世界坐标系和相机坐标系之间的转换关系;所述第一传感器数据包括事件相机数据;所述第二传感器数据包括图像序列、IMU数据和深度数据。
可理解,所述第一传感器包括但不限于事件相机,所述第二传感器包括但不限于摄像头、IMU和深度传感器;所述事件相机数据包括事件流,所述事件流用于表示图像像素亮度的变化;所述图像序列包括一系列图像帧;所述IMU数据可以包括x轴的旋转角、y轴的旋转角和z轴的旋转角;所述深度数据可以包括深度信息,在本申请的一个实施例中,所述深度数据包括深度图。
S802:确定第二旋转位姿。
可理解,具体内容可参考步骤S602,在此不再赘述。
S803:确定第三旋转位姿。
可理解,具体内容可参考步骤S702,在此不再赘述。
S804:确定第一平移位姿和第一旋转位姿。
可理解,具体内容可参考步骤S502、步骤S603和步骤S703,在此不再赘述。
S805:确定第二平移位姿。
具体地,对图像序列中相应图像帧进行特征点提取及匹配,从而确定第二平移位姿,详细内容可参考步骤S403、步骤S503、步骤S604和步骤S704,在此不再赘述。
S806:对第二旋转位姿和第三旋转位姿进行矫正。
具体地,根据第一旋转位姿,对第二旋转位姿和第三旋转位姿进行矫正,分别得到第一旋转矫正位姿和第二旋转矫正位姿;根据第一旋转矫正位姿和第二旋转矫正位姿,得到第三旋转矫正位姿。可理解,具体内容可参考步骤S605和步骤S705,在此不再赘述。
在本申请的一个实施例中,可以确定第一旋转向量和第二旋转向量的外积,得到第一误差向量,并且确定第一旋转向量和第三旋转向量的外积,得到第二误差向量,由步骤S605所述的内容可知,可以利用比例增益KP和积分增益KI乘以|V3|来实现对第二旋转向量的补偿,例如,计算KP·|V3|+KI·∫|V3|的值,并将其作为补偿值,类似的,第三旋转向量表示为V4,可以利用比例增益KP和积分增益KI乘以|V4|来实现对第三旋转向量的补偿,例如,计算KP·|V4|+KI·∫|V4|的值,并将其作为补偿值。可理解,最后所得的第一旋转矫正位姿可以包括上述补偿值(KP·|V3|+KI·∫|V3|)和第二旋转向量的组合关系,第二旋转矫正位姿可以包括上述补偿值(KP·|V4|+KI·∫|V4|)和第三旋转向量的组合关系。另外,根据第一旋转矫正位姿和第二旋转矫正位姿,得到第三旋转矫正位姿,第三旋转矫正位姿可以包括上述两个补偿值、第二旋转向量和/或第三旋转向量的组合关系,例如,可以将上述两个补偿值相加,然后对第二旋转向量所表示的绕x、y、z轴的角速度进行修正,或者,对第三旋转向量所表示的绕x、y、z轴的角速度进行修正,得到第三旋转矫正向量,可理解,第三旋转矫正位姿包括第三旋转矫正向量。
需要说明的是,上述修正可以为加、减、乘、除、积分、微分等数学运算中的一种,也可以为多种数学运算的组合。
S807:对第二平移位姿进行矫正。
具体地,根据第一平移位姿,对第二平移位姿进行矫正,详细内容可参考步骤S404和步骤S504、步骤S606和步骤S706,在此不再赘述。
S808:对矫正后的旋转位姿进行平滑处理。
可理解,矫正后的旋转位姿为第二旋转矫正位姿,对第二旋转矫正位姿进行平滑处理,具体内容可参考步骤S607和步骤S707,在此不再赘述。
S809:对矫正后的平移位姿进行平滑处理。
可理解,具体内容可参考步骤S404、步骤S506、步骤S608和步骤S708,在此不再赘述。
S810:进行图像变形处理。
可理解,具体内容可参考步骤S404、步骤S507、步骤S609和步骤S709,在此不再赘述。
S811:输出图像帧。
具体地,输出上述经过图像变形处理后的图像帧。
上面详细阐述了本申请实施例的方法,为了便于更好的实施本申请实施例的上述方案,相应地,下面对配合实施的相关设备进行说明,图9为本申请实施例提供的一种终端的硬件结构示意图,图9所示的终端可以应用在图2所示的视频防抖系统架构中,也可以用于实现上述图3、图4、图5、图6、图7及图8所示的视频防抖方法。
可理解,图9所示的终端可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图9中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
终端可以包括:处理器910,外部存储器接口920,内部存储器921,通用串行总线(universal serial bus,USB接口930,充电管理模块940,电源管理模块941,电池942,天线1,天线2,移动通信模块950,无线通信模块960,音频模块970,扬声器970A,受话器970B,麦克风970C,耳机接口970D,传感器模块980,按键990,马达991,指示器992,摄像头993,显示屏994以及用户标识模块(subscriber identification module,SIM)卡接口995等。其中传感器模块980可以包括压力传感器980A,气压传感器980B,磁传感器980C,加速度传感器980D,距离传感器980E,接近光传感器980F,指纹传感器980G,温度传感器980H,触摸传感器980I,环境光传感器980J,骨传导传感器980K,深度传感器980L,惯性传感器(InertialMeasurement Unit,IMU)980M,事件相机980N等。
可理解,本申请实施例示意的结构并不构成对终端的具体限定。在本申请另一些实施例中,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器910可以包括一个或多个处理单元,例如:处理器910可以包括应用处理器(Application Processor,AP),调制解调处理器,图形处理器(Graphics Processingunit,GPU),图像信号处理器(Image Signal Processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(Digital Signal Processor,DSP),基带处理器,和/或神经网络处理器(Neural-network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
在本申请提供的本实施例中,终端可以通过处理器910执行如图3、图4、图5、图6、图7以及图8所示的视频防抖方法。
处理器910中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器910中的存储器为高速缓冲存储器。该存储器可以保存处理器910刚用过或循环使用的指令或数据。如果处理器910需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器910的等待时间,因而提高了系统的效率。
在一些实施例中,处理器910可以包括一个或多个接口。接口可以包括集成电路(Inter-Integrated Circuit,I2C)接口,集成电路内置音频(Inter-Integrated CircuitSound,I2S)接口,脉冲编码调制(Pulse Code Modulation,PCM)接口,通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)接口,移动产业处理器接口(Mobile Industry Processor Interface,MIPI),通用输入输出(General-PurposeInput/output,GPIO)接口,用户标识模块(Subscriber Identity Module,SIM)接口,和/或通用串行总线(Universal Serial Bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(Serial Data Line,SDA)和一根串行时钟线(Serial Clock Line,SCL)。在一些实施例中,处理器910可以包含多组I2C总线。处理器910可以通过不同的I2C总线接口分别耦合触摸传感器980I,充电器,闪光灯,摄像头993等。例如:处理器910可以通过I2C接口耦合触摸传感器980I,使处理器910与触摸传感器980I通过I2C总线接口通信,实现终端的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器910可以包含多组I2S总线。处理器910可以通过I2S总线与音频模块970耦合,实现处理器910与音频模块970之间的通信。在一些实施例中,音频模块970可以通过I2S接口向无线通信模块960传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块970与无线通信模块960可以通过PCM总线接口耦合。在一些实施例中,音频模块970也可以通过PCM接口向无线通信模块960传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器910与无线通信模块960。例如:处理器910通过UART接口与无线通信模块960中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块970可以通过UART接口向无线通信模块960传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器910与显示屏994,摄像头993等外围器件。MIPI接口包括摄像头串行接口(Camera Serial Interface,CSI),显示屏串行接口(DisplaySerial Interface,DSI)等。在一些实施例中,处理器910和摄像头993通过CSI接口通信,实现终端的拍摄功能。处理器910和显示屏994通过DSI接口通信,实现终端的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器910与摄像头993,显示屏994,无线通信模块960,音频模块970,传感器模块980等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
SIM接口可以被用于与SIM卡接口995通信,实现传送数据到SIM卡或读取SIM卡中数据的功能。
USB接口930是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口930可以用于连接充电器为终端充电,也可以用于终端与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端的结构限定。在本申请另一些实施例中,终端也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块940用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。
电源管理模块941用于连接电池942,充电管理模块940与处理器910。电源管理模块941接收电池942和/或充电管理模块940的输入,为处理器910,内部存储器921,外部存储器,显示屏994,摄像头993,和无线通信模块960等供电。
终端的无线通信功能可以通过天线1,天线2,移动通信模块950,无线通信模块960,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块950可以提供应用在终端上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块950可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块950可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块950还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块950的至少部分功能模块可以被设置于处理器910中。在一些实施例中,移动通信模块950的至少部分功能模块可以与处理器910的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器970A,受话器970B等)输出声音信号,或通过显示屏994显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器910,与移动通信模块950或其他功能模块设置在同一个器件中。
无线通信模块960可以提供应用在终端上的包括无线局域网(Wireless LocalArea Networks,WLAN)(如无线保真(Wireless Fidelity,Wi-Fi)网络),蓝牙(Bluetooth,BT),全球导航卫星系统(Global Navigation Satellite System,GNSS),调频(FrequencyModulation,FM),近距离无线通信技术(Near Field Communication,NFC),红外技术(Infrared,IR)等无线通信的解决方案。无线通信模块960可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块960经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器910。无线通信模块960还可以从处理器910接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端的天线1和移动通信模块950耦合,天线2和无线通信模块960耦合,使得终端可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(Global System for Mobile Communications,GSM),通用分组无线服务(General Packet Radio Service,GPRS),码分多址接入(Code DivisionMultiple Access,CDMA),宽带码分多址(Wideband Code Division Multiple Access,WCDMA),时分码分多址(Time-Division Code Division Multiple Access,TD-SCDMA),长期演进(Long Term Evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(Global Positioning System,GPS),全球导航卫星系统(GlobalNavigation Satellite System,GLONASS),北斗卫星导航系统(BeiDou NavigationSatellite System,BDS),准天顶卫星系统(Quasi-Zenith Satellite System,QZSS)和/或星基增强系统(Satellite Based Augmentation Systems,SBAS)。
终端通过GPU,显示屏994,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏994和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器910可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏994用于显示图像,视频等。显示屏994包括显示面板。显示面板可以采用液晶显示屏(Liquid Crystal Display,LCD),有机发光二极管(Organic Light-EmittingDiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(Active-MatrixOrganic Light Emitting Diode,AMOLED),柔性发光二极管(Flex Light-EmittingDiode,FLED),MiniLED,MicroLED,Micro-OLED,量子点发光二极管(Quantum Dot LightEmitting Diodes,QLED)等。在一些实施例中,终端可以包括1个或N个显示屏994,N为大于1的正整数。
终端可以通过ISP,摄像头993,视频编解码器,GPU,显示屏994以及应用处理器等实现拍摄功能。
ISP用于处理摄像头993反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头993中。
摄像头993用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(Charge Coupled Device,CCD)或互补金属氧化物半导体(Complementary Metal-Oxide-Semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端可以包括1个或N个摄像头993,N为大于1的正整数。
在本申请实施例中,可以通过摄像头993获取图像序列,以进行后续姿态估计。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端可以支持一种或多种视频编解码器。这样,终端可以播放或录制多种编码格式的视频,例如:动态图像专家组(MovingPicture Experts Group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(Neural-Network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口920可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端的存储能力。外部存储卡通过外部存储器接口920与处理器910通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器921可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器910通过运行存储在内部存储器921的指令,从而执行终端的各种功能应用以及数据处理。内部存储器921可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用(比如人脸识别功能,指纹识别功能、移动支付功能等)等。存储数据区可存储终端使用过程中所创建的数据(比如人脸信息模板数据,指纹信息模板等)等。此外,内部存储器921可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(Universal Flash Storage,UFS)等。
终端可以通过音频模块970,扬声器970A,受话器970B,麦克风970C,耳机接口970D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块970用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块970还可以用于对音频信号编码和解码。在一些实施例中,音频模块970可以设置于处理器910中,或将音频模块970的部分功能模块设置于处理器910中。
扬声器970A,也称“喇叭”,用于将音频电信号转换为声音信号。终端可以通过扬声器970A收听音乐,或收听免提通话。
受话器970B,也称“听筒”,用于将音频电信号转换成声音信号。当终端接听电话或语音信息时,可以通过将受话器970B靠近人耳接听语音。
麦克风970C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风970C发声,将声音信号输入到麦克风970C。终端可以设置至少一个麦克风970C。在另一些实施例中,终端可以设置两个麦克风970C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端还可以设置三个,四个或更多麦克风970C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口970D用于连接有线耳机。耳机接口970D可以是USB接口930,也可以是3.5mm的开放移动电子设备平台(Open Mobile Terminal Platform,OMTP)标准接口,美国蜂窝电信工业协会(Cellular Telecommunications Industry Association of the USA,CTIA)标准接口。
压力传感器980A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器980A可以设置于显示屏994。压力传感器980A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器980A,电极之间的电容改变。终端根据电容的变化确定压力的强度。当有触摸操作作用于显示屏994,终端根据压力传感器980A检测所述触摸操作强度。终端也可以根据压力传感器980A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
气压传感器980B用于测量气压。在一些实施例中,终端通过气压传感器980B测得的气压值计算海拔高度,辅助定位和导航。
磁传感器980C包括霍尔传感器。终端可以利用磁传感器980C检测翻盖皮套的开合。在一些实施例中,当终端是翻盖机时,终端可以根据磁传感器980C检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器980D可检测终端在各个方向上(一般为三轴)加速度的大小。当终端静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器980E,用于测量距离。终端可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端可以利用距离传感器980E测距以实现快速对焦。
接近光传感器980F可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端通过发光二极管向外发射红外光。终端使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端附近有物体。当检测到不充分的反射光时,终端可以确定终端附近没有物体。终端可以利用接近光传感器980F检测用户手持终端贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器980F也可用于皮套模式,口袋模式自动解锁与锁屏。
指纹传感器980G用于采集指纹。终端可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器980H用于检测温度。在一些实施例中,终端利用温度传感器980H检测的温度,执行温度处理策略。例如,当温度传感器980H上报的温度超过阈值,终端执行降低位于温度传感器980H附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端对电池942加热,以避免低温导致终端异常关机。在其他一些实施例中,当温度低于又一阈值时,终端对电池942的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器980I,也称“触控面板”。触摸传感器980I可以设置于显示屏994,由触摸传感器980I与显示屏994组成触摸屏,也称“触控屏”。触摸传感器980I用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏994提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器980I也可以设置于终端的表面,与显示屏994所处的位置不同。
环境光传感器980J用于感知环境光亮度。终端可以根据感知的环境光亮度自适应调节显示屏994亮度。环境光传感器980J也可用于拍照时自动调节白平衡。环境光传感器980J还可以与接近光传感器980F配合,检测终端是否在口袋里,以防误触。
深度传感器980L主要用来探测深度信息,深度传感器980L主要包括相机矩阵传感器、TOF传感器和结构光传感器。
在本申请实施例中,可以通过深度传感器980L获取深度数据,再根据深度数据以及由摄像头993获取的图像序列进行位姿估计。
IMU980M是主要用来检测和测量加速度与旋转运动的传感器,其原理是采用惯性定律实现的。最基础的惯性传感器包括加速度计和角速度计(陀螺仪),他们是惯性系统的核心部件,是影响惯性系统性能的主要因素。陀螺仪传感器可以用于确定终端的运动姿态。在一些实施例中,可以通过陀螺仪传感器确定终端围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器检测终端抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端的抖动,实现防抖。陀螺仪传感器还可以用于导航,体感游戏场景。
在本申请实施例中,可以通过IMU980M获取IMU数据(比如角速度),根据IMU数据进行位姿估计。
事件相机980N也被称为神经形态像机,硅视网膜或动态视觉传感器,是一种能够响应局部亮度变化的成像传感器。作为一种新型传感器,事件相机与传统相机的差异非常明显,事件相机输出的是像素亮度的变化情况,而非整幅图像。
在本申请实施例中,可以通过事件相机980N获取事件相机数据(比如事件流等),根据事件相机数据以及由由摄像头993获取的图像序列进行位姿估计,获得高动态、高帧率位姿。
按键990包括开机键,音量键等。按键990可以是机械按键。也可以是触摸式按键。终端可以接收按键输入,产生与终端的用户设置以及功能控制有关的键信号输入。
马达991可以产生振动提示。马达991可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏994不同区域的触摸操作,马达991也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器992可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口995用于连接SIM卡。SIM卡可以通过插入SIM卡接口995,或从SIM卡接口995拔出,实现和终端的接触和分离。终端可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口995可以支持Nano-SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口995可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口995也可以兼容不同类型的SIM卡。SIM卡接口995也可以兼容外部存储卡。终端通过SIM卡和网络交互,实现通话以及数据通信等功能。
图10为本申请实施例提供的一种终端的软件结构示意图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将系统分为四层,从上至下分别为应用程序层,应用程序框架层,运行时(Runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图10所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序(也可以称为应用)。
应用程序框架层为应用程序层的应用程序提供应用编程接口(ApplicationProgramming Interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图10所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话界面形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
运行时(Runtime)包括核心库和虚拟机。Runtime负责系统的调度和管理。
核心库包含两部分:一部分是编程语言(例如,java语言)需要调用的功能函数,另一部分是系统的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的编程文件(例如,java文件)执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(Surface Manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),二维图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维(2-Dimensional,2D)和三维(3-Dimensional,3D)图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现3D图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动,虚拟卡驱动。
下面结合捕获拍照场景,示例性说明装置软件以及硬件的工作流程。
当触摸传感器980I接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头993捕获静态图像或视频。
在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
应理解,本文中涉及的第一、第二、第三、第四以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请的范围。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种视频防抖方法,其特征在于,所述方法包括:
获取数据,所述数据包括第一传感器数据和第二传感器数据;所述第一传感器数据和所述第二传感器数据用于进行位姿估计;所述位姿用于表示世界坐标系和相机坐标系之间的转换关系;所述第一传感器数据包括事件相机数据;所述第二传感器数据包括图像序列;所述图像序列包括一系列图像帧;
基于所述事件相机数据和所述图像序列,得到第一平移位姿,包括:根据所述事件相机数据对图像序列中相应的图像帧进行重建,得到重建图像,根据所述重建图像得到第一平移位姿,所述第一平移位姿用于表示相邻重建图像的平移;
根据所述图像序列,得到第二平移位姿,包括:根据所述图像序列中相应的图像帧,得到第二平移位姿,所述第二平移位姿用于表示图像序列中的相邻图像帧的平移;
对所述图像序列中相应的图像帧进行场景判断,得到矫正权重,所述矫正权重包括所述第一平移位姿和所述第二平移位姿的组合关系;
基于所述第一平移位姿,对所述第二平移位姿进行矫正,得到矫正后的平移位姿,包括:基于所述矫正权重和所述第一平移位姿,对所述第二平移位姿进行矫正,得到矫正后的平移位姿;
对所述矫正后的平移位姿进行防抖操作,得到防抖操作后的平移位姿,并通过所述防抖操作后的平移位姿对所述图像帧进行处理,得到处理后的图像帧,输出所述处理后的图像帧。
2.如权利要求1所述的方法,其特征在于,在所述根据所述第一平移位姿,对所述第二平移位姿进行矫正之前,所述方法还包括:
将所述事件相机数据和所述图像序列输入场景判断模型,根据所述场景判断模型确定矫正权重;所述矫正权重包括所述第一平移位姿和所述第二平移位姿的组合关系。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
对所述矫正后的平移位姿进行平滑处理,得到平滑处理后的平移位姿;
根据所述平滑处理后的平移位姿,得到图像变形信息;所述图像变形信息包括图像变形向量;所述图像变形向量用于表示所述图像帧的偏移;
根据所述图像变形信息,对所述图像帧进行图像变形处理,得到处理后的图像帧;
输出所述处理后的图像帧。
4.如权利要求1-3任一项所述的方法,其特征在于,所述第二传感器数据还包括IMU数据,所述方法还包括:
基于所述事件相机数据和所述图像序列,得到第一旋转位姿;所述第一旋转位姿包括第一旋转向量;
根据所述IMU数据得到第二旋转位姿;所述第二旋转位姿包括第二旋转向量;
根据所述第一旋转位姿,对所述第二旋转位姿进行矫正,得到第一旋转矫正位姿。
5.如权利要求4所述的方法,其特征在于,所述根据所述第一旋转位姿,对所述第二旋转位姿进行矫正,包括:
确定所述第一旋转向量和所述第二旋转向量的外积,得到第一误差向量;
根据所述第一误差向量,对所述第二旋转向量进行补偿处理。
6.如权利要求1-3任一项所述的方法,其特征在于,所述第二传感器数据还包括深度数据,所述方法还包括:
基于所述事件相机数据和所述图像序列,得到第一旋转位姿;所述第一旋转位姿包括第一旋转向量;
根据所述深度数据和所述图像序列,得到第三旋转位姿;所述第三旋转位姿包括第三旋转向量;
根据所述第一旋转位姿,对所述第三旋转位姿进行矫正,得到第二旋转矫正位姿。
7.如权利要求4或5所述的方法,其特征在于,所述第二传感器数据还包括深度数据,所述方法还包括:
根据所述深度数据和所述图像序列,得到第三旋转位姿;所述第三旋转位姿包括第三旋转向量;
根据所述第一旋转位姿,对所述第三旋转位姿进行矫正,得到第二旋转矫正位姿;
根据所述第一旋转矫正位姿和所述第二旋转矫正位姿,得到第三旋转矫正位姿。
8.如权利要求6或7所述的方法,其特征在于,所述根据所述第一旋转位姿,对所述第三旋转位姿进行矫正,包括:
确定所述第一旋转向量和所述第三旋转向量的外积,得到第二误差向量;
根据所述第二误差向量,对所述第三旋转向量进行补偿处理。
9.一种电子设备,其特征在于,包括处理器、存储器和通信接口,所述存储器、所述处理器与所通信接口耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述处理器用于调用所述计算机指令,实现如权利要求1-8任一项所述的方法。
10.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110343723.1A CN115150542B (zh) | 2021-03-30 | 2021-03-30 | 一种视频防抖方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110343723.1A CN115150542B (zh) | 2021-03-30 | 2021-03-30 | 一种视频防抖方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115150542A CN115150542A (zh) | 2022-10-04 |
CN115150542B true CN115150542B (zh) | 2023-11-14 |
Family
ID=83403842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110343723.1A Active CN115150542B (zh) | 2021-03-30 | 2021-03-30 | 一种视频防抖方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115150542B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI831665B (zh) * | 2023-04-10 | 2024-02-01 | 晶達光電股份有限公司 | 具有USB Type-C規格的顯示器 |
CN117714867B (zh) * | 2023-05-16 | 2024-10-18 | 荣耀终端有限公司 | 图像防抖方法与电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014027551A1 (ja) * | 2012-08-16 | 2014-02-20 | ソニー株式会社 | 画像処理装置、および画像処理方法、並びにプログラム |
CN105339841A (zh) * | 2013-12-06 | 2016-02-17 | 华为终端有限公司 | 双镜头设备的拍照方法及双镜头设备 |
JP2017055315A (ja) * | 2015-09-11 | 2017-03-16 | キヤノン株式会社 | 画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体 |
CN111355888A (zh) * | 2020-03-06 | 2020-06-30 | Oppo广东移动通信有限公司 | 视频拍摄方法、装置、存储介质以及终端 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5234119B2 (ja) * | 2011-01-20 | 2013-07-10 | カシオ計算機株式会社 | 撮像装置、撮像処理方法及びプログラム |
US20180278836A1 (en) * | 2017-03-23 | 2018-09-27 | Ring Inc. | Audio/Video Recording and Communication Devices with Multiple Cameras Having Variable Capture Settings |
-
2021
- 2021-03-30 CN CN202110343723.1A patent/CN115150542B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014027551A1 (ja) * | 2012-08-16 | 2014-02-20 | ソニー株式会社 | 画像処理装置、および画像処理方法、並びにプログラム |
CN105339841A (zh) * | 2013-12-06 | 2016-02-17 | 华为终端有限公司 | 双镜头设备的拍照方法及双镜头设备 |
JP2017055315A (ja) * | 2015-09-11 | 2017-03-16 | キヤノン株式会社 | 画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体 |
CN111355888A (zh) * | 2020-03-06 | 2020-06-30 | Oppo广东移动通信有限公司 | 视频拍摄方法、装置、存储介质以及终端 |
Non-Patent Citations (1)
Title |
---|
橙子 ; ."五轴防抖"与"4000万像素" 奥林巴斯OM-D E-M5 Mark Ⅱ试用.中国摄影.2015,(第05期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115150542A (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669242B2 (en) | Screenshot method and electronic device | |
US20230188824A1 (en) | Camera switching method for terminal, and terminal | |
WO2021136050A1 (zh) | 一种图像拍摄方法及相关装置 | |
CN112712470B (zh) | 一种图像增强方法及装置 | |
CN114650363B (zh) | 一种图像显示的方法及电子设备 | |
CN114140365B (zh) | 基于事件帧的特征点匹配方法及电子设备 | |
CN114365482A (zh) | 一种基于Dual Camera+TOF的大光圈虚化方法 | |
US20230364510A1 (en) | Image prediction method, electronic device, and storage medium | |
CN110138999B (zh) | 一种用于移动终端的证件扫描方法及装置 | |
CN113542580B (zh) | 去除眼镜光斑的方法、装置及电子设备 | |
WO2022156473A1 (zh) | 一种播放视频的方法及电子设备 | |
CN111741284A (zh) | 图像处理的装置和方法 | |
CN113741681A (zh) | 一种图像校正方法与电子设备 | |
US20250111533A1 (en) | Target Localization Method and System, and Electronic Device | |
CN110248037B (zh) | 一种身份证件扫描方法及装置 | |
CN112700377A (zh) | 图像泛光处理方法及装置、存储介质 | |
CN113660408A (zh) | 一种视频拍摄防抖方法与装置 | |
CN115150542B (zh) | 一种视频防抖方法及相关设备 | |
EP4175285A1 (en) | Method for determining recommended scene, and electronic device | |
CN114449151A (zh) | 一种图像处理方法及相关装置 | |
CN114283195B (zh) | 生成动态图像的方法、电子设备及可读存储介质 | |
CN116052261B (zh) | 视线估计方法及电子设备 | |
WO2022033344A1 (zh) | 视频防抖方法、终端设备和计算机可读存储介质 | |
CN116263971B (zh) | 图像帧的预测方法、电子设备及计算机可读存储介质 | |
CN113286076B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |