CN115699075A - 利用移动相机生成全景图 - Google Patents
利用移动相机生成全景图 Download PDFInfo
- Publication number
- CN115699075A CN115699075A CN202080101376.5A CN202080101376A CN115699075A CN 115699075 A CN115699075 A CN 115699075A CN 202080101376 A CN202080101376 A CN 202080101376A CN 115699075 A CN115699075 A CN 115699075A
- Authority
- CN
- China
- Prior art keywords
- image
- frames
- image frames
- base
- image frame
- 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
- 238000000034 method Methods 0.000 claims abstract description 84
- 239000002131 composite material Substances 0.000 claims abstract description 47
- 238000013442 quality metrics Methods 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims description 21
- 230000003287 optical effect Effects 0.000 claims description 13
- 230000033001 locomotion Effects 0.000 claims description 5
- 238000013500 data storage Methods 0.000 claims description 4
- 230000001815 facial effect Effects 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 230000008439 repair process Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 230000004927 fusion Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 206010034960 Photophobia Diseases 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 208000013469 light sensitivity Diseases 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 230000011273 social behavior Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- 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/265—Mixing
-
- 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/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/10—Image acquisition
- G06V10/16—Image acquisition using multiple overlapping images; Image stitching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
-
- 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/698—Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30168—Image quality inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
- G06T2207/30201—Face
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Quality & Reliability (AREA)
- General Health & Medical Sciences (AREA)
- Studio Devices (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
提供用于选择和拼接图像帧的设备和方法。方法包括获得多个图像帧。该方法还包括识别多个图像帧中的一个或多个图像帧内的一个或多个感兴趣区域。该方法进一步包括基于与多个图像帧中的每个图像帧相关联的相应质量量度来选择基帧集合,其中一个或多个所识别的感兴趣区域中的每个所识别的感兴趣区域完全被包含在所选择的基帧集合中的至少一个基帧内。该方法另外包括将所选择的基帧集合拼接在一起以创建合成图像。
Description
背景技术
在图像处理中,“图像拼接”是涉及将几个单独的图像帧一起组合成合成图像(例如,全景图像)的过程。虽然存在许多方法,但大多数拼接算法依赖于包含至少一些重叠区域的单独的图像帧。此类拼接算法通常识别重叠区域中的不同特征,并且然后匹配特征以建立各个图像帧之间的对应关系。之后,拼接算法通常将重叠区域处的对应图像帧融合在一起,以创建最终的合成图像。
发明内容
示例实施例涉及执行图像拼接的计算设备。计算设备可以包括基帧选择模块,该基帧选择模块可操作为从多个图像帧中选择一个或多个基帧。计算设备还可以包括拼接模块,该拼接模块可操作为将一个或多个所选择的基帧拼接在一起。使用这两个模块,计算设备可以生成合成图像,诸如全景图像,然后向用户显示那些合成图像。
在第一方面中,提供一种计算机实现的方法。该方法包括由计算设备获得多个图像帧。该方法还包括由计算设备识别多个图像帧中的一个或多个图像帧内的一个或多个感兴趣区域。该方法进一步包括由计算设备并且基于与多个图像帧中的每个图像帧相关联的相应质量量度来选择基帧集合,其中一个或多个所识别的感兴趣区域中的每个所识别的感兴趣区域完全被包含在所选择的基帧集合中的至少一个基帧内。该方法另外包括由计算设备将所选择的基帧集合拼接在一起以创建合成图像。
在第二方面中,提供一种计算设备。该计算设备可以包括一个或多个处理器。该计算识别还可以包括非暂时性数据存储装置,该非暂时性数据存储装置存储至少计算机可读指令,该计算机可读指令在由一个或多个处理器执行时使计算设备执行操作。该操作可以包括获得多个图像帧。该操作还可以包括识别多个图像帧中的一个或多个图像帧内的一个或多个感兴趣区域。该操作可以进一步包括基于与多个图像帧中的每个图像帧相关联的相应质量量度来选择基帧集合,其中一个或多个所识别的感兴趣区域中的每个所识别的感兴趣区域完全被包含在所选择的基帧集合中的至少一个基帧内。该操作可以另外包括将所选择的基帧集合拼接在一起以创建合成图像。
在第三方面中,提供一种制品。该制品可以包括非暂时性数据存储装置,该非暂时性数据存储装置存储至少计算机可读指令,该计算机可读指令在由计算设备的一个或多个处理器执行时使计算识别执行操作。该操作可以包括获得多个图像帧。该操作还可以包括识别多个图像帧中的一个或多个图像帧内的一个或多个感兴趣区域。该操作可以进一步包括基于与多个图像帧中的每个图像帧相关联的相应质量量度来选择基帧集合,其中一个或多个所识别的感兴趣区域中的每个所识别的感兴趣区域完全被包含在所选择的基帧集合中的至少一个基帧内。该操作可以另外包括将所选择的基帧集合拼接在一起以创建合成图像。
在第四方面中,提供一种系统。该系统可以包括用于获得多个图像帧的手段。该系统还可以包括用于识别多个图像帧中的一个或多个图像帧内的一个或多个感兴趣区域的手段。该系统可以进一步包括用于基于与多个图像帧中的每个图像帧相关联的相应质量量度来选择基帧集合的手段,其中一个或多个所识别的感兴趣区域中的每个所识别的感兴趣区域完全被包含在所选择的基帧集合中的至少一个基帧内。该系统可以另外包括用于将所选择的基帧集合拼接在一起以创建合成图像的手段。
通过阅读以下详细描述并在适当的情况下参考附图,其它方面、实施例和实施方案对于本领域普通技术人员将变得显而易见。
附图说明
图1图示根据示例实施例的计算设备。
图2描绘根据示例实施例的基帧选择模块和拼接模块的操作的概述。
图3图示根据示例实施例的基帧选择模块的操作。
图4图示根据示例实施例的示例图像帧子集。
图5图示根据示例实施例的拼接模块的操作。
图6描绘根据示例实施例的示例图像帧投影。
图7描绘根据示例实施例的示例接缝。
图8图示根据示例实施例的方法。
具体实施方式
本文中描述示例方法、设备和系统。应理解,词语“示例”和“示例性”在本文中用于表示“充当示例、实例或说明”。本文中描述为“示例”或“示例性”的任何实施例或特征不必然被解释为比其它实施例或特征优选或有利,除非如此指示。在不脱离本文中所呈现的主题的范围的情况下,能够利用其它实施例并且可以作出其它改变。
因此,本文中描述的示例实施例并不意味着限制性。应容易地理解,如本文中通常描述并且在图中图示的本公开的方面能够以各种不同配置布置、替换、组合、分离和设计。
在整个描述中,冠词“一”或“一个”被用于介绍示例实施例的元素。除非另有说明,或除非上下文另有明确规定,否则对“一”或“一个”的任何提及指代“至少一个”,而对“所述”的任何提及指代“所述至少一个”。在所描述的至少两个术语的列表中使用连词“或”的目的是指示任何列出的术语或列出的术语的任何组合。
使用例如“第一”、“第二”、“第三”等序数是为了区分相应元素,而不是表示这些元素的特定顺序。出于本描述的目的,术语“若干”和“多个”指代“两个或更多个”或“多于一个”。
此外,除非上下文另有说明,否则每个图中所图示的特征可以彼此结合使用。因此,图一般应被视为一个或多个整体实施例的组成方面,但应理解,并非所有所说明的特征对于每个实施例都是必需的。在图中,除非上下文另外指明,否则相同的附图标记通常识别相同的组件。此外,除非另有说明,否则图未按比例绘制并且仅用于说明性目的。此外,图式仅是代表性的并且并未显示所有组件。例如,可能不会显示另外的结构或约束组件。
另外,本说明书或权利要求书中的元件、块或步骤的任何列举都是为了清楚起见。因此,这种列举不应被解释为要求或暗示这些元件、块或步骤遵循特定布置或以特定顺序执行。
I.概述
一些示例图像拼接过程包括四个阶段:基帧选择、特征检测、对准和融合。基帧选择阶段涉及从候选基帧集合中选择一个或多个基帧。特征检测阶段涉及识别一个或多个所选择基帧中的对应特征。对准阶段涉及变换一个或多个所选择基帧中的至少一些以对准所识别特征。并且融合阶段涉及将对准的帧一起合并成单个合成图像。
许多图像拼接过程包括不试图区分感兴趣对象与背景对象的基帧选择阶段。因此,这种图像拼接过程通常选择其中包含感兴趣对象的低质量表示,即模糊、曝光不足和/或以其他方式失真的感兴趣对象的基帧。这种问题在图像保真度方面能够是不利的,并且可以降低从这些图像拼接过程生成的合成图像的整体质量。注意,即使感兴趣对象的失真相对较小,这些失真在合成图像上也能够特别明显并且可以表示图像质量的显著下降。
许多图像拼接过程包括也不试图区分感兴趣对象与背景对象的融合阶段。因此,当将两个图像帧融合在一起时,此类图像拼接过程通常将接缝直接放置在感兴趣对象上,从而导致感兴趣对象上出现伪影和/或其它失真。该问题在图像保真度方面也能够是不利的,并且也可以降低从这些图像拼接过程生成的合成图像的整体质量。
本公开提供一种可以帮助解决这些问题的图像拼接过程。更具体地,示例图像拼接过程通过考虑候选基帧集合内的感兴趣对象的质量来智能地选择基帧。示例图像拼接过程也可能在融合阶段期间对放置在感兴趣对象上的接缝造成不利影响。有利地,所公开的图像拼接过程允许生成其中包含高质量感兴趣对象的合成图像。
所公开过程可以由诸如移动设备、服务器设备,或另一类型的计算设备等计算设备实现。计算设备可以包括基帧选择模块,该基帧选择模块可操作以接收多个图像帧,并且响应地识别多个图像帧内的感兴趣区域。感兴趣区域可以对应于包含感兴趣对象的区域,诸如人脸、建筑物、车辆或动物,以及其它可能性。在识别感兴趣区域之后,基帧选择模块可以从多个图像帧中选择基帧集合。具体地,选择可以使得每个所识别感兴趣区域完全被包含在所选择的基帧集合中的至少一个基帧内。
计算设备还可以包括拼接模块,该拼接模块可操作以接收由基帧选择模块选择的基帧集合,并且将基帧集合拼接在一起以创建合成图像。在执行拼接时,拼接模块可以实现接缝查找过程,该接缝查找过程将计算偏置添加到放置在基帧集合内的感兴趣区域上的接缝。在一些示例中,该计算偏置涉及将惩罚项添加到包含来自感兴趣区域的像素的任何接缝。
在一些示例中,所公开过程由捕获一个或多个图像帧的相同设备实现。例如,基帧选择模块和拼接模块能够被安装在计算设备上。然后,在计算设备捕获一个或多个图像帧之后,能够调用基帧选择模块以从一个或多个图像帧中选择基帧集合。然后,可以调用拼接过程以从该基帧集合创建合成图像。能够显示、传送、存储和/或以其它方式利用合成图像;例如将合成图像打印到纸上。在其它示例中,基帧选择和/或拼接过程可以由设备实现,该设备是分开的,但通信地耦合到捕获一个或多个图像帧的设备。
在一些示例中,可以将来自连续图像流(例如,视频流)的帧拼接在一起。图像流可以由计算设备的前置相机(例如,面向用户)、计算设备的后置相机(例如,非用户面向)或计算设备的另一相机捕获。在一些情况下,可以使用计算设备的多个相机,例如前置相机和后置相机捕获连续图像流。
在一些示例中,可以使用最少用户输入或不使用用户输入来生成合成图像。例如,可以在不请求用户识别感兴趣区域、感兴趣对象,或图像帧的其它方面的情况下生成合成图像。另外,可以在不请求用户使用特定手势(例如,使用计算设备水平地扫描场景)捕获一个或多个图像帧的情况下生成合成图像。自动图像拼接应用程序可能因不需要此类用户输入而受益。然而,也设想具有一种或多种类型的用户输入的本文中所描述过程的变体。
在一些示例中,计算设备可以通过使用机器学习模型来选择基帧,该机器学习模型基于计算设备的基帧选择决策进行训练。例如,在计算设备使用本文中所描述的基帧选择模块做出几个(例如,4到10个)基帧选择决策之后,计算设备可以使用基帧选择决策来训练机器学习模型。在训练完成之后,计算设备可以结合所描述的基帧选择模块使用训练后的机器学习模型以智能地选择基帧。选择基帧的其它方式也是可能的。
关于包括使用机器学习模型选择基帧、由计算设备与服务器设备的交互,或以其它方式涉及与其它计算设备共享基帧或合成图像的实施例,可以向用户提供控制,该控制允许用户选择本文中所描述的系统、程序、设备或特征是否以及何时可以能够收集用户信息(例如,关于用户的社交网络、社交行为或活动、职业、用户偏好或用户的当前位置的信息),以及是否从服务器向用户发送内容或通信。另外,某些数据可以在存储或使用之前通过一种或多种方式处理,使得个人可识别信息被去除。例如,可以处理用户的身份,使得无法确定用户的个人可识别信息,或者可以在获得位置信息的情况下将用户的地理位置进行一般化(例如,城市、邮政编码或州级别),使得无法确定用户的特定位置。因此,用户可以控制收集关于用户的什么信息、如何使用该信息,以及向用户提供什么信息。
在适当情况下参考附图,这些以及其它方面、优点和替代方案对于阅读以下描述的人来说将变得显而易见。此外,应理解,在本概述和本文档中其它地方的讨论仅作为示例提供,并且许多变化是可能的。
II.示例计算设备
图1图示根据示例实施例的计算设备100。计算设备100可以是可以从多个图像帧中选择基帧,然后将所选择的基帧拼接在一起以创建合成图像的示例计算设备。计算设备100可以采用各种形式,诸如服务器设备、移动设备、相机设备,或某一其它形式的设备。
如图1中所示,计算设备100可以包括相机110。相机110可以包括一个或多个图像捕获设备,诸如静止和/或视频相机,该图像捕获设备被装备成捕获光并且将所捕获的光记录在一个或多个图像帧中。也就是说,相机110能够生成所捕获的光的(多个)图像帧。一个或多个图像帧能够是一个或多个静止图像帧和/或在视频图像中使用的一个或多个图像帧(例如,图像帧的连续流)。相机110能够捕获作为可见光、红外辐射、紫外光和/或作为一种或多种其它光频率发射的光和/或电磁辐射。
相机110可以配置为计算设备100的前置相机(例如,面向用户)和/或后置相机(例如,非用户面向)。在一些实施方案中,相机110可以在预先配置的帧速率下捕获图像帧。也就是说,相机110可以每X秒捕获图像帧。示例帧速率包括每秒24帧(FPS)、30FPS或50FPS,以及其它可能性。
在一些示例中,相机110可以以特定旋转角定向并且可以在该旋转角下捕获图像帧。在一些实施方案中,旋转角是水平角。也就是说,旋转角可以是相机110从初始指向方向的水平旋转。在其它实施方案中,旋转角是垂直角。也就是说,旋转角可以是相机110从初始指向方向的垂直旋转。在示例实施例中,初始指向定向可以对应于相机110在其捕获图像帧流中的第一图像帧时的指向方向。
在示例实施例中,由相机110捕获的每个图像帧可以与质量量度相关联。该质量量度可以是基于所捕获的图像帧的运动模糊、所捕获的图像帧的整体焦点和/或捕获图像帧的曝光以及其它可能性计算的质量度量。在一些实施方案中,所捕获的图像帧的质量量度可以在计算上被偏置,以向位于设置在所捕获的图像帧内的感兴趣区域内的像素提供更大权重。例如,具有曝光不足的感兴趣区域,但正确曝光的背景对象的图像帧的质量量度可能低于具有正确曝光的感兴趣区域但曝光不足的背景对象的图像帧的质量量度。
显示组件112可以被配置成通过一个或多个屏幕(包括触摸屏)、阴极射线管(CRT)、液晶显示器(LCD)、发光二极管(LED)、使用数字光处理(DLP)技术和/或其它类似技术的显示器向用户提供输出信号。显示组件112还可以被配置成诸如通过扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或其它类似设备生成可听输出。显示组件112还可以被配置有一个或多个触觉组件,这些触觉组件能够生成诸如振动的触觉输出,和/或可通过与计算设备100的触摸和/或物理接触检测到的其它输出。
网络接口114可以用作计算设备100与其它计算设备之间的接口。网络接口114能够包括一个或多个无线接口和/或可配置成经由网络进行通信的有线接口。无线接口能够包括一个或多个无线发射器、接收器和/或收发器,诸如BluetoothTM收发器、收发器、Wi-FiTM收发器、WiMAXTM收发器,和/或可配置成经由无线网络进行通信的其它类似类型的无线收发器。有线接口能够包括一个或多个有线发射器、接收器和/或收发器,诸如以太网收发器、通用串行总线(USB)收发器,或可配置成经由双绞线、同轴电缆、光纤链路或与有线网络的类似物理连接进行通信的类似收发器。
在一些实施例中,网络接口114可以被配置成提供可靠的、安全的和/或经过验证的通信。对于本文中所描述的每个通信,能够提供用于促进可靠通信(例如,保证的消息传递)的信息,可能作为消息标头和/或脚注的一部分(例如,分组/消息排序信息、封装标头和/或脚注、大小/时间信息和传输验证信息,诸如循环冗余校验(CRC)和/或奇偶校验值)。能够使用一种或多种密码协议和/或算法,诸如但不限于数据加密标准(DES)、高级加密标准(AES)、Rivest-Shamir-Adelman(RSA)算法、迪菲-赫尔曼算法、Diffie-Hellman算法、诸如安全套接层(SSL)或传输层安全(TLS)的安全套接协议,和/或数字签名算法(DSA),来保护通信(例如,被编码或被加密)和/或被解密/被解码。也能够使用其它密码协议和/或算法,或者除了本文中列出的密码协议和/或者算法之外,还能够使用其它密码协议和算法,以保护(然后解密/解码)通信。
(多个)电源116可以被配置成将电力供应到计算设备100的各种组件。(多个)电源116可以包括液压系统、电气系统、电池或其它类型的电源。计算设备100的一些组件可以各自连接到不同电源,可以由相同电源供电,或由多个电源供电。(多个)电源116可以使用各种类型的充电诸例如与外部电源的有线连接、无线充电、燃烧或其它示例。
(多个)传感器118能够被配置成测量计算设备100的环境中的条件并且提供关于该环境的数据。例如,(多个)传感器118能够包括以下项中的一个或多个:(i)用于识别其它对象和/或设备的识别传感器,诸如但不限于,射频识别(RFID)阅读器、接近传感器、一维条形码阅读器、二维条形码(例如,快速响应(QR)码)阅读器和激光跟踪器,其中识别传感器能够被配置成读取识别符,诸如RFID标签、条形码、QR码,和/或配置成进行读取并且至少提供识别信息的其它设备和/或对象;(ii)用于测量计算设备100的位置和/或移动的传感器,诸如但不限于,倾斜传感器、陀螺仪、加速度计、多普勒传感器、全球定位系统(GPS)设备、声纳传感器、雷达设备、激光位移传感器和指南针;(iii)用于获得指示计算设备100的环境的数据的环境传感器,诸如但不限于,红外传感器、光学传感器、光传感器、生物传感器、电容传感器、触摸传感器、温度传感器、无线传感器、无线电传感器、运动传感器、麦克风、声音传感器、超声波传感器和/或烟雾传感器;以及(iv)用于测量作用在计算设备100周围的一个或多个力(例如,惯性力和/或G力)的力传感器,诸如但不限于,测量以下项的一个或多个传感器:一个或多个维度上的力、扭矩、地面力、摩擦,和/或识别ZMP和/或ZMP的位置的零力矩点(ZMP)传感器。(多个)传感器118的许多其它示例也是可能的。
基帧选择模块120可以是计算设备100内的软件应用程序或子系统,该软件应用程序或子系统可操作为接收一个或多个图像帧并且响应地从一个或多个图像帧中选择基帧。在一些实施方案中,基帧选择模块120可以从相机110接收一个或多个图像帧。在一些实施方案中,基帧选择模块120可以经由网络接口114从另一计算设备接收一个或多个图像帧。在选择基帧之后,基帧选择模块120可以将所选择基的帧传输到拼接模块130。
拼接模块130可以是计算设备100内的软件应用程序或子系统,该软件应用程序或子系统可操作以由基帧选择模块120接收基帧,并且将基帧拼接在一起以创建单个合成图像,诸如全景图像。由拼接模块130生成的合成图像可以经由显示器112显示给用户,或者可以经由网络接口114传送到分开的计算设备。
为了概念性地图示基帧选择模块120和拼接模块130的操作,提供图2。具体地,图2示出基帧选择模块120可以如何从相机110接收候选图像帧200并且从候选图像帧200选择基帧230。在选择之后,基帧选择模块120可以将基帧230提供到拼接模块130,该拼接模块130可以将基帧230拼接在一起以产生合成图像240。
如图所示,候选图像帧200包括五个分开的图像帧:图像帧210、图像帧212、图像帧214、图像帧216和图像帧218。这五个分开的图像帧包括三个感兴趣区域:感兴趣区域220、感兴趣区域222和感兴趣区域224。这三个感兴趣区域中的每一个能够:(i)完全被包含在图像帧内,(ii)部分被包含在图像帧内,或(iii)不被包含在图像帧内。例如,感兴趣区域220完全被包含在图像帧212内、部分被包含在图像帧210和214内,以及不被包含在图像帧216和218内。类似地,感兴趣区域222完全被包含在图像帧214内、部分被包含在图像帧212和216内,以及不被包含在图像帧210和218内。此外,感兴趣区域224完全被包含在图像帧216和218两者内、部分被包含在图像帧214内,以及不被包含在图像帧210和212内。
根据以上讨论,基帧选择模块120可以从候选图像帧200中选择基帧,使得候选图像帧200中的每个所识别的感兴趣区域完全被包含在基帧230中的至少一个基帧内。例如,如图2中所示,感兴趣区域220、222和224完全被包含在基帧230中的至少一个中。具体地,感兴趣区域220完全被包含在图像帧212内,感兴趣区域222完全被包含在图像帧214内,并且感兴趣区域224完全被包含在图像帧218内。
在图2中表示的图像帧被用于示例的目的,并且不旨在关于本文中的实施例进行限制。实际上,候选图像帧200和基帧230可以包括更少数目的帧或更多数目的帧,包括数百或数千个帧。
返回参考图1,计算设备100还包括控制器140。控制器140可以包括现场可编程门阵列(FPGA)或专用集成电路(ASIC)中的至少一个。另外或替代地,控制器140可以包括一个或多个处理器142和存储器144。(多个)处理器142可以包括通用处理器或专用处理器(例如,数字信号处理器)。(多个)处理器142可以被配置成执行存储在存储器144中的计算机可读程序指令。
存储器144可以包括或可以采取可以由(多个)处理器142读取或访问的一个或多个计算机可读存储介质的形式。一个或多个计算机可读存储介质能够包括易失性和/或非易失性存储组件,诸如光学、磁性、有机或其它存储器或磁盘存储装置,它们可以与一个或多个处理器142中的至少一个整体地或部分地集成。在一些实施例中,存储器144可以使用单个物理设备(例如,一个光学、磁性、有机或其它存储器或磁盘存储单元)实现,而在其它实施例中,存储器144能够使用两个或更多个物理设备实现。
如上所述,存储器144可以包括与计算设备100的操作相关的计算机可读程序指令。因此,存储器144可以包括程序指令,以执行或促进本文中所描述的一些或全部功能。存储器144可以存储基帧选择模块120和/或拼接模块130。在一些实施例中,控制器140可以通过(多个)处理器142执行存储在存储器144中的指令来执行各种操作。
例如,控制器140可以指示相机110根据一个或多个图像捕获特性捕获一个或多个图像帧。图像捕获特性可以包括期望的孔径、期望的曝光时间和/或期望的图像传感器光灵敏度(例如,ISO灵敏度),以及其它可能性。作为另一示例,控制器140可以指示相机110根据一个或多个配置特性来调整其焦距。配置特性可以包括期望的焦距、期望的放大率和/或期望的视角,以及其它可能性。。
控制器140可以被配置成执行其它操作。例如,控制器140可以执行基帧选择模块120和拼接模块130的操作,以便从由相机110捕获的图像帧生成合成图像。控制器140然后可以使显示器112显示合成图像,或可以使网络接口114将合成图像传输到远程计算设备,以及其它可能性。
III.示例方法
图3图示根据示例实施例的方法300。方法300可以被实现以从多个图像帧中选择一个或多个基帧。所选择的基帧可以被提供到拼接模块130或可以用于其它目的。方法300可以由计算设备100的各种组件,例如基帧选择模块120和/或其它组件,执行。为简单起见,现在将使用基帧选择模块120描述方法300的示例实施方案。然而,应当理解,所公开的原理也可以应用在具有其它组件的其它场景中。
方法300可以开始于框310处,其中基帧选择模块120接收N个图像帧。根据以上讨论,N个图像帧可以是由相机110捕获的图像帧。替代地和/或另外,该N个图像帧可以是从远程计算设备,诸如在远程网络上操作的服务器设备传送到计算设备100的图像帧。
在接收到N个图像帧时,基帧选择模块120可以识别N个图像帧内的一个或多个感兴趣区域。在一些情况下,这可能涉及基帧选择模块120确定一个或多个感兴趣区域中的每一个的唯一识别符。例如,在接收到N个图像帧时,在框310处,基帧选择模块120可以调用对象检测模块来检测N个图像帧内的感兴趣对象。基帧选择模块120然后可以分配检测到的对象唯一识别符,并且可以将唯一识别符与N个图像帧一起存储为元数据。替代地,基帧选择模块120可以在另一时间点确定唯一识别符。例如,在执行框340(如下文进一步描述)时,基帧选择模块120可以调用对象检测模块来检测图像帧Nk和图像帧Nx内的感兴趣对象。基帧选择模块120然后可以将唯一识别符分配到图像帧Nx和图像帧Nk。
另外,在框310处,基帧选择模块120可以通过旋转角对N个图像帧进行排序,从而产生N个图像帧的排序的集合。为此,基帧选择模块120可以评估与每个图像帧相关联的元数据,然后基于该元数据,可以确定在捕获图像帧时捕获图像帧的相机的旋转角。在一些实施方案中,基帧选择模块120可以按升序对N个图像帧进行排序。也就是说,对于排序中的任何给定图像帧,排序中的下一图像帧的旋转角将在量值上大于或等于给定图像帧的旋转角。在其它实施方案中,基帧选择模块120可以按降序对N个图像帧进行排序。
在通过旋转角对N个图像帧进行排序之后(或者在通过旋转角对N个图像帧进行排序时),基帧选择模块120可以将变量K的值设置为1。
在框320处,基帧选择模块120可以将变量X的值设置为1。然后,基帧选择模块120可以将图像帧Nx添加到所选择的基帧集合,其中图像帧Nx对应于N个图像帧的排序的集合中的第X个图像帧。
在框330处,基帧选择模块120可以将X的值递增1。也就是说,基帧选择模块120能够使变量K=K+1。然后在框340处,基帧选择模块120可以确定图像帧Nx是否包含与图像帧Nk不同的唯一识别符,其中图像帧Nk对应于N个图像帧的排序的集合中的第K个图像帧。根据以上讨论,基帧选择模块120可以使用所存储的元数据来确定图像帧Nx是否包含与图像帧Nk不同的唯一识别符。在其它示例中,基帧选择模块120可以调用对象检测模块来确定图像帧Nx是否包含与图像帧Nk不同的唯一识别符。在任一情况下,如果基帧选择模块120确定图像帧Nx包含与图像帧Nk不同的唯一识别符,则方法300能够继续到框350。否则,如果基帧选择模块120确定图像帧Nx不包含与图像帧Nk不同的唯一识别符,则方法300可以继续回到框330。
作为与框330和340相关的说明性示例,图4示出包括图像帧412、图像帧414、图像帧416和图像帧422的示例场景400。在场景400中,图像帧412、414、416和422中的每一个在N个图像帧的排序的集合中具有索引。即,图像帧412具有位置1,图像帧414具有位置2,图像帧416具有位置3并且图像帧422具有位置4。此外,图像帧412、414、416和422中的每一个被示出为包含至少一个唯一识别符。也就是说,图像帧412、414和416包括唯一识别符402,并且图像帧422包括唯一识别符402和404。
在场景400期间,基帧选择模块120可以将图像帧412指定为起始图像帧。然后,基帧选择模块120可以评估图像帧414并且确定图像帧414具有与图像帧412相同的唯一识别符。在进行该确定时,基帧选择模块120可以迭代到图像帧414并且评估图像帧416。类似地,基帧选择模块120可以确定图像帧416具有与图像帧414相同的唯一识别符。在进行该确定时,基帧选择模块120可以迭代到图像帧416并且随后评估图像帧422。此时,基帧选择模块120可以确定图像帧422包含与图像帧416不同的唯一识别符,并且因此可以停止其迭代。在场景400期间进行迭代的图像帧(例如,图像帧412、414和416)在本文中可以被认为是图像帧410的子集。
返回参考图3,在框350处,基帧选择模块120可以评估与图像帧Nx与图像帧Nk-1之间(根据排序)之间的每个图像帧相关联的质量量度,其中图像帧Nk-1对应于来自N个图像帧的排序的集合中的第K-1个图像帧。在执行评估之后,基帧选择模块120可以选择图像帧Nx与图像帧Nk-1之间与最高质量量度相关联的图像帧。替代地,基帧选择模块120可以选择图像帧Nx与图像帧Nk-1之间具有阈值高质量量度(例如,具有大于X的相关联的质量量度)的所有图像帧。在任一场景中,基帧选择模块120可以将所选择的(多个)图像帧添加到所选择的基帧的集合。
在图4的场景400中图示与框350相关的示例。具体地,图像帧412、414、416和422中的每一个被示出为具有相关联的质量量度。即,图像帧412具有相关联的质量量度7,图像帧414具有相关联的质量量度8,图像帧416具有相关联的质量量度5,并且图像帧422具有相关联的质量量度5。在场景400期间,基帧选择模块120可以评估与基帧选择模块120迭代的每个图像帧相关联的质量量度。换句话说,基帧选择模块120可以评估图像帧子集410中的每个图像帧的质量量度。因此,因为图像帧414在图像帧子集410中的帧之间具有最高质量量度,所以基帧选择模块120可以选择图像帧414用作基帧,并且将避免选择图像帧412和416用作基帧。
返回参考图3,在框360处,基帧选择模块120可以将变量X的值设置成等于变量K的值。
在框370处,基帧选择模块120可以确定变量K的值是否小于N(即,在框310处接收到的图像帧数)。如果基帧选择模块120确定变量K的值小于N,则方法300可以继续返回到框330。否则,如果基帧选择模块120确定变量K的值不小于N,则方法300可以继续到框380。
在框380处,基帧选择模块120可以提供从框310到370确定的所选择的基帧集合。在一些实例中,基帧选择模块120可以将所选择的基帧集合提供到拼接模块130。在其它实例中,基帧选择模块120可以将所选择的基帧集合提供到远程计算设备。
在图3中表示的框被用于示例的目的,并且不旨在关于本文中的实施例进行限制。基帧选择模块120的操作可以是高度可配置的并且可以包括比方法300中描绘的块更多的块、更少的块或不同的块。在一些情况下,可以定制一个或多个框,或者可以以其他方式偏离上面的示例描述。
图5图示根据示例实施例的方法500。方法500可以被实现以将一个或多个基帧拼接在一起以产生单个合成图像。方法500可以由计算设备100的各种组件,例如拼接模块130和/或其它组件执行。为简单起见,现在将使用拼接模块130描述方法500的示例实施方案。然而,应理解,所公开原理也可以应用于具有其它组件的其它场景中。
方法500可以开始于框510处,其中拼接模块130接收N个基帧。根据以上讨论,N个基帧可以是由基帧选择模块120选择的基帧。替代地和/或另外,N个基帧可以是从远程计算设备,诸如在远程网络上操作的服务器设备传送到计算设备100的基帧。
在接收到N个基帧之后,拼接模块130可以对N个基帧中的每一个执行特征和关键点检测。更具体地,对于每个基帧,拼接模块130可以检测描述基帧中的感兴趣点(例如,关键点)的局部特征的集合。能够使用各种方法来有效地检测关键点,包括尺度不变特征变换(SIFT)、加速鲁棒特征(SURF)、KAZE,以及定向FAST和旋转BRIEF(ORB),以及其它可能性。一旦获得关键点以及其相关联描述,拼接模块130可以匹配来自不同基帧的关键点以确定重叠基帧对;例如,包含至少一些重叠区域的基帧。能够使用各种方法来有效地匹配关键点,包括级联散列、基于k近邻的方法和蛮力匹配器,以及其它可能性。
在框520处,拼接模块130可以从在框510处确定的重叠基帧对中选择基帧的初始对。在一些实施方案中,拼接模块130可以选择具有最多关键点匹配的基帧对作为初始对。在其它实施方案中,拼接模块130可以选择具有最高组合质量量度的基帧对作为初始对。其它实施方案也是可能的。在选择基帧的初始对之后,拼接模块130可以应用三角测量来确定基帧的初始对中的关键点的三维(3-D)坐标。可以使用各种方法来实现三角测量,包括直接线性三角测量方法、中点三角测量方法和非线性三角测量方法,以及其它可能性。
在框530处,拼接模块130可以将基帧增量地添加到框520的初始3-D坐标。更具体地,对于每个新添加的基帧,拼接模块130可以评估新基帧的关键点与先前添加的基帧之间的对应关系,并且然后可以应用三角测量来确定新关键点的3-D坐标。此外,对于每个新添加的基帧,拼接模块130可以应用集束调整(bundle adjustment)以减少误差并且产生3D坐标的最佳值。可以重复框530的操作,直到已经评估所有N个基帧。
作为与框530相关的示例,图6示出包括基帧610、基帧612和基帧614的示例场景600。图6示出基帧610和612如何共享3-D坐标630,基帧610、612和614如何共享3-D坐标632,以及基帧612和614如何共享3-D坐标634。图6还示出基帧610如何具有不与任何其它基帧共享的3-D坐标620,以及基帧614如何具有不与任何其它基帧共享的3-D坐标622。此外,图6示出如何能够全部投影3-D坐标620、622、630、632和634以形成合成图像640。
返回参考图5,在框540处,拼接模块130可以将在框530处计算的3-D坐标投影到全景坐标系上。可以相对于N个基帧中的一个选择全景坐标系。一旦已将3-D坐标映射到全景坐标系上,拼接模块130可以将来自N个基帧的像素融合到全景坐标系上。在一些实施例中,融合可以包括接缝查找过程,该接缝查找过程将接缝置于基帧对之间的重叠区域中,使得从一个基帧到另一个基帧的过渡是平滑的且不太可见的。在一些实施例中,该接缝查找过程涉及向包含来自一个或多个所识别的感兴趣区域的像素的接缝添加计算偏置。例如,计算偏置可以包括向包含来自一个或多个所识别的感兴趣区域的像素的任何接缝添加惩罚项。
作为与框540相关的示例,图7图示两个示例合成图像:合成图像710和合成图像720。两个合成图像710和720包含感兴趣区域712和感兴趣区域714。注意,在合成图像710中,接缝716的一部分位于感兴趣区域712上,并且接缝718的一部分位于感兴趣区域714上。根据以上讨论,接缝716和718的该定位可以使感兴趣区域712和714显示不期望的伪影。相比之下,注意,在合成图像720中,接缝726不位于感兴趣区域712上,并且接缝728不位于感兴趣区域714上。这可以是上述惩罚项的结果,并且可以产生其中具有更高质量感兴趣区域的合成图像。
返回参考图5,在框550处,拼接模块130可以定位来自框540的全景投影中的所有重叠区域,并且然后计算这些重叠区域中的每一个的光流场。在一些实施例中,通过将每个重叠区域划分为非重叠单元格的网格并且将单元中的像素流表示为单元的四个角处包含该像素的流的双线性组合来计算光流场。
在计算光流场之后,拼接模块130可以应用光流场以同时对准来自框530的重叠区域的所有对应的3-D坐标。然后,拼接模块130可以将3-D坐标重新投影到全景坐标系上以产生最终合成图像。
在框560处,拼接模块130可以提供在框550处确定的合成图像。在一些实例中,拼接模块130可以向显示器112提供合成图像,该显示器继而可以向用户显示合成图像。在其它实例中,拼接模块130可以经由网络接口114向远程计算设备提供合成图像。
IV.示例操作
图8图示根据示例实施例的方法800。方法800可以包括各种框或步骤。可以单独地或组合地执行框或步骤。可以按任何顺序和/或串联地或并行地执行框或步骤。此外,可以省略框或步骤或者可以将框或步骤添加到方法800。方法800的框可以由如参考图1说明和描述的计算设备100的各种元件执行。
框810可以涉及获得多个图像帧。在一些实施例中,多个图像帧由相机设备在一个连续流中捕获。此外,在一些实施例中,多个图像帧使用相机设备的前置相机捕获。
框820可以涉及识别多个图像帧中的一个或多个图像帧内的一个或多个感兴趣区域。在一些实施例中,一个或多个感兴趣区域中的每一个对应于包含面部的区域。
框830可以涉及基于与多个图像帧中的每个图像帧相关联的相应质量量度来选择基帧集合,其中一个或多个所识别的感兴趣区域中的每个所识别的感兴趣区域完全被包含在所选择的基帧集合中的至少一个基帧内。
框840可以涉及将所选择的基帧集合拼接在一起以创建合成图像。
在一些实施例中,与多个图像帧中的每个图像帧相关联的相应质量量度是基于以下项中的至少一个的度量:图像帧的运动模糊、图像帧的焦点,或图像帧的曝光。此外,在一些实施例中,相应质量量度在计算上被偏置,以向位于一个或多个所识别的感兴趣区域内的像素提供更大权重。
在一些实施例中,选择基帧集合涉及从多个图像帧确定图像帧的多个子集,其中子集中的每一个包括包含相同的一个或多个感兴趣区域的图像帧;以及从子集中的每一个并且基于与子集中的每个图像帧相关联的相应质量量度来选择基帧。
在一些实施例中,从子集中的每一个中选择基帧涉及从子集的图像帧中选择具有最高质量量度的图像帧。
在一些实施例中,识别一个或多个感兴趣区域涉及确定一个或多个感兴趣区域中的每一个的唯一识别符,并且子集中的每一个包括包含相同唯一识别符的一个或多个图像帧。
在一些实施例中,多个图像帧中的每个图像帧由相机设备以相应旋转角捕获。在此类实施例中,确定图像帧的子集涉及:基于旋转角对多个图像帧进行排序;从多个图像帧中指定起始图像帧;并且从起始图像帧开始,根据排序迭代多个图像帧,直到要被迭代的下一图像帧是具有与起始图像帧不同的至少一个唯一识别符的图像帧。在此类实施例中,图像帧的子集是被迭代的图像帧。
在一些实施例中,旋转角包括基于相机设备的水平角的量度。
在一些实施例中,指定起始图像帧涉及从排序中指定第一图像帧。
在一些实施例中,图像帧的子集是图像帧的第一子集。在此类实施例中,确定图像帧的第二子集涉及:从多个图像帧中指定第二起始图像帧;并且从第二起始图像帧开始,根据排序迭代多个图像帧,直到要被迭代的下一图像帧是具有与第二起始图像帧不同的至少一个唯一识别符的图像帧。在此类实施例中,图像帧的第二子集是从第二起始图像帧开始被迭代的图像帧。
在一些实施例中,指定第二起始图像帧涉及指定具有与起始图像帧不同的至少一个唯一面部识别符的图像帧。
在一些实施例中,在来自多个图像帧的每个图像帧已至少被迭代一次之后发生拼接。
在一些实施例中,拼接涉及接缝查找过程,该接缝查找过程涉及向包含来自一个或多个所识别的感兴趣区域的像素的接缝添加计算偏置。在此类实施例中,计算偏置可以涉及向包含来自一个或多个所识别的感兴趣区域的像素的任何接缝添加惩罚项。
一些实施例涉及光流接缝修复步骤,该光流接缝修复步骤涉及确定所选择的基帧集合的重叠区域;计算重叠区域中的每一个的相应光流场;以及应用计算出的光流场来对准重叠区域。
图中所示的特定布置不应视为限制性的。应理解,其它实施例可能或多或少包括给定图中所示的每个元素。此外,可以组合或省略一些所图示的元素。此外,说明性实施例可以包括在图中未图示的元素。
表示信息处理的步骤或框能够对应于电路系统,该电路系统能够被配置成执行本文中所描述的方法或技术的特定逻辑功能。替代地或另外,表示信息处理的步骤或框能够对应于模块、片段或程序代码的一部分(包括相关数据)。程序代码能够包括一个或多个指令,该指令可由处理器执行以在方法或技术中实现特定逻辑功能或动作。程序代码和/或相关数据能够被存储在任何类型的计算机可读介质上,诸如包括磁盘、硬盘驱动器或其它存储介质的存储设备上。
计算机可读介质还能够包括非暂时性计算机可读介质,诸如在短时间段内存储数据的计算机可读介质,如寄存器存储器、处理器缓存和随机存取存储器(RAM)。计算机可读介质还能够包括在更长时间段内存储程序代码和/或数据的非暂时性计算机可读介质。因此,计算机可读介质可以包括辅助或持久长期存储装置,如只读存储器(ROM)、光盘或磁盘、光盘只读存储器(CD-ROM)。计算机可读介质也能够是任何其它易失性或非易失性存储系统。计算机可读介质能够被认为是例如计算机可读存储介质,或有形存储设备。
尽管已公开各种示例和实施例,但是对于本领域技术人员来说,其它示例和实施例将是显而易见的。所公开的各种示例和实施例仅用于说明目的且并且不旨在是限制性的,其真实范围由以下权利要求指示。
Claims (20)
1.一种计算机实现的方法,包括:
由计算设备获得多个图像帧;
由所述计算设备识别所述多个图像帧中的一个或多个图像帧内的一个或多个感兴趣区域;
由所述计算设备并且基于与所述多个图像帧中的每个图像帧相关联的相应质量量度来选择基帧集合,其中一个或多个所识别的感兴趣区域中的每个所识别的感兴趣区域完全被包含在所选择的基帧集合中的至少一个基帧内;以及
由所述计算设备将所选择的基帧集合拼接在一起以创建合成图像。
2.根据权利要求1所述的计算机实现的方法,其中所述一个或多个感兴趣区域中的每一个对应于包含面部的区域。
3.根据权利要求1所述的计算机实现的方法,其中与所述多个图像帧中的每个图像帧相关联的所述相应质量量度包括基于以下项中的至少一个的度量:所述图像帧的运动模糊、所述图像帧的焦点或所述图像帧的曝光。
4.根据权利要求1所述的计算机实现的方法,其中所述相应质量量度在计算上被偏置,以向位于所述一个或多个所识别的感兴趣区域内的像素给予更大权重。
5.根据权利要求1所述的计算机实现的方法,其中选择所述基帧集合包括:
从所述多个图像帧确定图像帧的多个子集,其中所述子集中的每个子集包括包含相同的一个或多个感兴趣区域的图像帧;以及
从所述子集中的每个子集并且基于与所述子集中的每个图像帧相关联的所述相应质量量度来选择基帧。
6.根据权利要求5所述的计算机实现的方法,其中从所述子集中的每个子集中选择所述基帧包括从所述子集的所述图像帧中选择具有最高质量量度的图像帧。
7.根据权利要求5所述的计算机实现的方法,其中识别所述一个或多个感兴趣区域包括确定所述一个或多个感兴趣区域中的每一个的唯一识别符,并且其中所述子集中的每个子集包括包含相同唯一识别符的一个或多个图像帧。
8.根据权利要求7所述的计算机实现的方法,其中所述多个图像帧中的每个图像帧由相机设备以相应旋转角捕获,并且其中确定图像帧的子集包括:
基于旋转角获得所述多个图像帧;
从所述多个图像帧中指定起始图像帧;以及
从所述起始图像帧开始,根据排序迭代所述多个图像帧,直到要被迭代的下一图像帧是具有与所述起始图像帧不同的至少一个唯一识别符的图像帧,其中图像帧的所述子集包括被迭代的所述图像帧。
9.根据权利要求8所述的计算机实现的方法,其中所述旋转角包括基于所述相机设备的水平角的量度。
10.根据权利要求8所述的计算机实现的方法,其中指定所述起始图像帧包括从所述排序中指定第一图像帧。
11.根据权利要求8所述的计算机实现的方法,其中图像帧的所述子集是图像帧的第一子集,并且其中确定图像帧的第二子集包括:
从所述多个图像帧中指定第二起始图像帧;以及
从所述第二起始图像帧开始,根据所述排序迭代所述多个图像帧,直到要被迭代的下一图像帧是具有与所述第二起始图像帧不同的至少一个唯一识别符的图像帧,
其中图像帧的所述第二子集包括从所述第二起始图像帧开始被迭代的所述图像帧。
12.根据权利要求11所述的计算机实现的方法,其中指定所述第二起始图像帧包括指定具有与所述起始图像帧不同的至少一个唯一面部识别符的图像帧。
13.根据权利要求8所述的计算机实现的方法,其中所述拼接发生在来自所述多个图像帧的每个图像帧已被至少迭代一次之后。
14.根据权利要求1所述的计算机实现的方法,其中所述拼接包括接缝查找过程,所述接缝查找过程涉及向包含来自所述一个或多个所识别的感兴趣区域的像素的接缝添加计算偏置。
15.根据权利要求14所述的计算机实现的方法,其中所述计算偏置涉及向包含来自所述一个或多个所识别的感兴趣区域的像素的任何接缝添加惩罚项。
16.根据权利要求1所述的计算机实现的方法,进一步包括光流接缝修复步骤,所述光流接缝修复步骤涉及:
确定所选择的基帧集合的重叠区域;
计算所述重叠区域中的每一个的相应光流场;以及
应用计算出的光流场以对准所述重叠区域。
17.根据权利要求1所述的计算机实现的方法,其中所述多个图像帧由相机设备在一个连续流中捕获。
18.根据权利要求1所述的计算机实现的方法,其中所述多个图像帧使用相机设备的前置相机捕获。
19.一种计算设备,包括:
一个或多个处理器;以及
非暂时性数据存储装置,所述非暂时性数据存储装置存储至少计算机可读指令,所述计算机可读指令在由所述一个或多个处理器执行时使所述计算设备执行操作,所述操作包括:
获得多个图像帧;
识别所述多个图像帧中的一个或多个图像帧内的一个或多个感兴趣区域;
基于与所述多个图像帧中的每个图像帧相关联的相应质量量度来选择基帧集合,其中一个或多个所识别的感兴趣区域中的每个所识别的感兴趣区域完全被包含在所选择的基帧集合中的至少一个基帧内;以及
将所选择的基帧集合拼接在一起以创建合成图像。
20.一种制品,所述制品包括非暂时性数据存储装置,所述非暂时性数据存储装置存储至少计算机可读指令,所述计算机可读指令在由计算设备的一个或多个处理器执行时使所述计算设备执行操作,所述操作包括:
获得多个图像帧;
识别所述多个图像帧中的一个或多个图像帧内的一个或多个感兴趣区域;
基于与所述多个图像帧中的每个图像帧相关联的相应质量量度来选择基帧集合,其中一个或多个所识别的感兴趣区域中的每个所识别的感兴趣区域完全被包含在所选择的基帧集合中的至少一个基帧内;以及
将所选择的基帧集合拼接在一起以创建合成图像。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/035692 WO2021247006A1 (en) | 2020-06-02 | 2020-06-02 | Panorama generation with mobile camera |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115699075A true CN115699075A (zh) | 2023-02-03 |
Family
ID=71842764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080101376.5A Pending CN115699075A (zh) | 2020-06-02 | 2020-06-02 | 利用移动相机生成全景图 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20230142865A1 (zh) |
EP (1) | EP4158585A1 (zh) |
JP (1) | JP7566930B2 (zh) |
KR (1) | KR20230008810A (zh) |
CN (1) | CN115699075A (zh) |
DE (1) | DE112020006943T5 (zh) |
WO (1) | WO2021247006A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230131601A (ko) * | 2022-03-07 | 2023-09-14 | 한화비전 주식회사 | 파노라마 감시 영상의 생성 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8600194B2 (en) | 2011-05-17 | 2013-12-03 | Apple Inc. | Positional sensor-assisted image registration for panoramic photography |
-
2020
- 2020-06-02 JP JP2022567146A patent/JP7566930B2/ja active Active
- 2020-06-02 CN CN202080101376.5A patent/CN115699075A/zh active Pending
- 2020-06-02 EP EP20747182.2A patent/EP4158585A1/en active Pending
- 2020-06-02 KR KR1020227042960A patent/KR20230008810A/ko not_active Application Discontinuation
- 2020-06-02 US US17/906,691 patent/US20230142865A1/en active Pending
- 2020-06-02 WO PCT/US2020/035692 patent/WO2021247006A1/en unknown
- 2020-06-02 DE DE112020006943.5T patent/DE112020006943T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4158585A1 (en) | 2023-04-05 |
US20230142865A1 (en) | 2023-05-11 |
WO2021247006A1 (en) | 2021-12-09 |
DE112020006943T5 (de) | 2023-04-20 |
JP7566930B2 (ja) | 2024-10-15 |
KR20230008810A (ko) | 2023-01-16 |
JP2023527679A (ja) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111052727B (zh) | 电子装置及其控制方法 | |
US10860889B2 (en) | Depth prediction from dual pixel images | |
Chen et al. | Crowd map: Accurate reconstruction of indoor floor plans from crowdsourced sensor-rich videos | |
US10237528B2 (en) | System and method for real time 2D to 3D conversion of a video in a digital camera | |
JP7327008B2 (ja) | 撮影装置、通信システム、通信方法およびプログラム | |
US9756260B1 (en) | Synthetic camera lenses | |
WO2012089902A1 (en) | Method, apparatus, and computer program product for image clustering | |
US10063792B1 (en) | Formatting stitched panoramic frames for transmission | |
CN110111241B (zh) | 用于生成动态图像的方法和装置 | |
CN117396871A (zh) | 用于管理不可替换令牌和对应数字资产的系统和方法 | |
KR102337209B1 (ko) | 주변 상황 정보를 통지하기 위한 방법, 전자 장치 및 저장 매체 | |
CN104919456A (zh) | 图像处理装置、图像处理方法和程序、以及摄像装置 | |
KR20160111757A (ko) | 영상 촬영 장치 및 이의 촬영 방법 | |
US9998661B1 (en) | Panoramic camera enclosure | |
CN112639870B (zh) | 图像处理装置、图像处理方法和图像处理程序 | |
US20220198605A1 (en) | 360 Degree Wide-Angle Camera With Baseball Stitch | |
CN115699075A (zh) | 利用移动相机生成全景图 | |
US20240007738A1 (en) | Method and Device for Image Frame Selection | |
JP5769248B2 (ja) | ステレオマッチング処理装置、ステレオマッチング処理方法、及び、プログラム | |
CN105323460A (zh) | 图像处理设备及其控制方法 | |
CN110310251B (zh) | 图像处理方法和装置 | |
CN105787988B (zh) | 一种信息处理方法、服务器及终端设备 | |
US20240267611A1 (en) | Systems and methods for imaging with a first camera to simulate a second camera | |
WO2022044806A1 (ja) | 情報処理装置および方法 | |
WO2013114732A1 (ja) | 電子機器 |
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 |