Optimizing view of three-dimensional entity from clusters of common pendulum images

By using the image metadata submitted by the user, the computing system automatically determines the movement mode of the camera viewpoint in the three-dimensional virtual environment, solving the problem that the starting position and track path are difficult to automatically determine in the prior art, and achieving efficient and accurate movement mode generation.

CN119536580APending Publication Date: 2025-02-28GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411470826.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-10-20
Filing Date
2024-10-21
Publication Date
2025-02-28

AI Technical Summary

Technical Problem

In generating camera viewpoint movement modes in a three-dimensional virtual environment, it is difficult for prior art to automatically determine the appropriate starting position and track path, especially in dense environments or when a particular point of interest is blocked by other three-dimensional entities.

Method used

By leveraging the images captured and submitted by the user and their related metadata, the computing system performs image classification and clustering, selects the image cluster with the highest interactive metric, and calculates the center of mass of the cluster as the starting position of the moving mode. The system then generates a movement mode of the camera viewpoint, including the starting position, track path and track velocity, ensuring that the viewpoint moves around a three-dimensional representation of a specific point of interest.

Benefits of technology

The ability to automatically generate camera viewpoint movement modes in a three-dimensional virtual environment is realized, significantly reducing the time and cost required for the generation process, and improving the quality and accuracy of data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119536580A_ABST
    Figure CN119536580A_ABST
Patent Text Reader

Abstract

A computing system obtains a plurality of images and associated image information. Each of the plurality of images depicts a particular point of interest (POI). For each of the plurality of images, the image information describes a plurality of image characteristics, such as geo-location characteristics indicating a geo-location in which the image is captured and / or interaction metrics derived from previous interactions of a user with the image. The computing system selects a particular image of the plurality of images based on the image information and generates a movement pattern of the camera viewpoint within the three-dimensional environment. A movement pattern of a camera viewpoint moves around a three-dimensional representation of the particular POI within the three-dimensional environment, and a starting position of the movement pattern is based at least in part on a geographic position in which the particular image is captured.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to providing data for a three-dimensional virtual environment. More specifically, the present disclosure relates to optimizing data used to generate a three-dimensional virtual environment. Background Art

[0002] As computing technology improves, the number and types of services that can be provided to users have increased dramatically. Services provided via computer technology include providing data associated with displaying a three-dimensional virtual environment. Such services can provide data necessary to display a three-dimensional environment based on context information associated with an image, such as interaction metrics (e.g., metrics indicating the degree of interaction of a user with a particular piece of content). Summary of the invention

[0003] Aspects and advantages of embodiments of the present disclosure will be set forth in part in the following description, or may be learned from the description, or may be learned through practice of the embodiments.

[0004] An example aspect of the present disclosure relates to a computer-implemented method. The method includes obtaining, by a computing system including one or more processor devices, a plurality of images and associated image information, each of the plurality of images depicting a specific point of interest (POI), and the image information describing a plurality of image characteristics of each of the plurality of images. The plurality of image characteristics include: (a) a geographic location characteristic indicating a geographic location in which the image was captured; and (b) an interaction metric derived from a user's previous interaction with the image. The method also includes selecting, by the computing system, a specific image from the plurality of images based on the image information. The method also includes generating, by the computing system, a movement pattern of a camera viewpoint within a three-dimensional environment. The movement pattern of the camera viewpoint moves around a three-dimensional representation of a specific POI within the three-dimensional environment, and a starting position of the movement pattern is based at least in part on the geographic location in which the specific image was captured.

[0005] Another example aspect of the present disclosure relates to a computing system. The computing system includes one or more processors. The computing system also includes one or more non-transitory computer-readable media that collectively store instructions that, when executed by the one or more processors, cause the computing system to perform operations. The operations include obtaining multiple images and associated image information. Each of the multiple images depicts a specific point of interest (POI), and the image information describes multiple image characteristics. The multiple image characteristics include: (a) a geographic location characteristic indicating a geographic location in which the image was captured; and (b) an interaction metric derived from a user's previous interaction with the image. The operations also include selecting a specific image from the multiple images based on the image information. The operations also include generating a movement pattern of a camera viewpoint within a three-dimensional environment. The movement pattern of the camera viewpoint moves around a three-dimensional representation of a specific POI within the three-dimensional environment, and a starting position of the movement pattern is based at least in part on the geographic location in which the specific image was captured.

[0006] Another example aspect of the present disclosure relates to a non-transitory computer-readable medium that includes instructions that, when executed by one or more processors of a computing device, cause the one or more processors to perform operations. The operations include obtaining multiple images and associated image information. Each of the multiple images depicts a specific point of interest (POI), and the image information describes multiple image characteristics of each of the multiple images. The multiple image characteristics include: (a) a geographic location characteristic indicating a geographic location in which the image was captured; and (b) an interaction metric derived from a user's previous interaction with the image. The operations also include selecting a specific image from the multiple images based on the image information. The operations also include generating a movement pattern of a camera viewpoint within a three-dimensional environment. The movement pattern of the camera viewpoint moves around a three-dimensional representation of a specific POI within the three-dimensional environment, and a starting position of the movement pattern is based at least in part on the geographic location in which the specific image was captured.

[0007] Other aspects of the disclosure relate to various systems, apparatuses, non-transitory computer-readable media, user interfaces, and electronic devices.

[0008] These and other features, aspects and advantages of various embodiments will be better understood with reference to the following description and appended claims.The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the present disclosure and, together with the description, serve to explain the relevant principles. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] A detailed discussion of the embodiments for those skilled in the art is set forth in this specification with reference to the accompanying drawings, in which:

[0010] Figure 1Depicted are example camera viewpoints of points of interest (POIs) according to example embodiments of the present disclosure.

[0011] Figure 2 Depicted are example movement patterns according to example embodiments of the present disclosure.

[0012] Figure 3A Depicted are example clusters of multiple images according to example embodiments of the present disclosure.

[0013] Figure 3B Depicted are example clusters of multiple images according to example embodiments of the present disclosure.

[0014] Figure 4 A flow chart of an example computer-implemented method is depicted according to an example embodiment of the present disclosure.

[0015] Figure 5 A flow chart of an example computer-implemented method is depicted according to an example embodiment of the present disclosure.

[0016] Figure 6 A flow chart of an example computer-implemented method is depicted according to an example embodiment of the present disclosure.

[0017] Figure 7 Depicted is an example embodiment according to the present disclosure Figure 2 Close-up view of a part of the environment.

[0018] Figure 8 An example computing system is depicted according to an example embodiment of the present disclosure.

[0019] Repeat use of reference characters in the present specification and drawings is intended to represent same and / or analogous features or elements of the present invention. DETAILED DESCRIPTION

[0020] Example aspects of the present disclosure relate to computing systems and methods for generating movement patterns of camera viewpoints within a virtual environment. In some instances, a virtual environment provides an immersive view of various three-dimensional entities within the virtual environment. One such virtual environment may be, for example, a map application that provides an immersive view of the Earth. Some map applications provide users with the ability to explore various places in the world, and in some instances even provide three-dimensional representations of those places. More specifically, some map applications provide users with the ability to explore three-dimensional representations of famous locations in the world (e.g., the Eiffel Tower, the Golden Gate Bridge, St. Peter's Basilica, etc.). For example, some map applications provide a "fly-over view" of various famous locations, where users are able to observe a three-dimensional representation of the location from various angles. More specifically, a "fly-over view" may include a video shot from the perspective of a virtual camera, as the virtual camera orbits around a three-dimensional representation of a specific point of interest (POI) within the virtual environment itself.

[0021] However, generating these "fly-through view" tours around POIs within a virtual environment is challenging for a number of reasons. For example, determining an appropriate starting location is critical to the user experience and depends primarily on framing a particular POI from an initial camera viewpoint. Furthermore, determining an orbital path is challenging, particularly in dense environments and / or in situations where a particular POI is surrounded by other three-dimensional entities that may obstruct the camera viewpoint along the orbital path. Therefore, current practices involve manually selecting an initial starting point and orbital path, which is neither efficient nor cost-effective.

[0022] Thus, example aspects of the present disclosure relate to systems and methods for determining an optimal mode of movement around a three-dimensional representation of a particular POI based on images (and corresponding metadata) captured and submitted by a user. More specifically, example aspects of the present disclosure provide systems and methods configured to determine an optimal starting point and orbital path for a mode of movement around a three-dimensional POI. First, images are classified and clustered based on the geographic location from which they were captured. Next, a particular cluster is selected that includes the "best" images. A cluster is selected that includes images with the highest "interaction metric," and then the centroid of that particular cluster is calculated, which in turn is used as a reference point for determining the starting location of the mode of movement.

[0023] More specifically, each image includes corresponding image information (e.g., metadata) including various metrics indicating the quality of the corresponding image (hereinafter referred to as "quality metrics" and / or "interaction metrics"). The interaction metrics are not based on the content of the corresponding image (e.g., pixels, colors, saturation, etc.). Instead, the interaction metrics are inferred based at least in part on data indicating user interactions and / or responses to the corresponding image. For example, each of the plurality of images may include a result image that has been previously provided as a search result by a search service (e.g., a search application). For each result image, when the search service provides the result image as a search result, the interaction metric is derived from information describing the user's historical response to the result image. In this way, the interaction metric can indicate the "popularity" and / or "quality" of the associated image. In addition, because the interaction metric is not based on image content, the example computing system can obtain this data from other sources (e.g., a search application, a map application, etc.). In this way, a cluster including images with the highest interaction metrics based on both quantitative and qualitative measurements is selected, and the centroid of the cluster is calculated. As described above, the centroid of the selected cluster is used as an initial reference point for determining the starting position of the movement pattern.

[0024] Once the initial reference point (e.g., centroid) is calculated, a series of tests may then be performed to ensure that an appropriate starting position is selected. For example, the visibility of the POI from the initial reference point may be checked. If the entire height of the POI is not visible, the visibility of the POI may be checked from a point farther away from the POI (along the horizontal axis) than the initial reference point. This process may be repeated until the entire height of the POI is visible, and the position at which the entire height of the POI is visible may be selected as the starting position for the movement mode.

[0025] Once a starting location for a movement pattern is selected, an orbital path for the movement pattern may then be determined. The movement pattern will follow an elliptical orbital path between the starting location and the secondary locations. More specifically, once the starting location and the secondary locations are selected, the movement pattern will linearly interpolate (lerp) between those two locations along the elliptical path. If an obstacle is detected along the orbital path, one or more waypoint candidates may be determined by progressively testing various points near the point on the orbital path where the obstacle exists. Examples of obstacles along the orbital path may include, for example, three-dimensional structures. Similarly, the same process may be followed if the orbital path is too close and / or too far from a POI. If one or more waypoints are added along the orbital path, the movement pattern will linearly interpolate between the starting location, the secondary location, and the added waypoints.

[0026] Finally, once a track path is selected, the track speed of the movement pattern can then be determined. It should be noted that the track speed along the movement pattern can be dynamic, meaning that the track speed is not constant along the track path. More specifically, as the movement pattern gets closer to the POI, the track speed can decrease. Likewise, as the movement pattern gets farther away from the POI, the track speed can increase.

[0027] Various aspects of the present disclosure provide a variety of technical effects and benefits. For example, the example aspects of the present disclosure provide systems and methods for effectively generating movement patterns for various virtual environments. Therefore, the disclosed systems and methods can significantly reduce the time required to provide users with desired movement patterns, as well as significantly reduce the costs associated therewith. In addition, by utilizing user-submitted data (e.g., images, metadata), the example aspects of the present disclosure provide valuable improvements to the quality (and accuracy) of map applications and databases. Further, the systems and methods provided herein provide improvements to the computing technology responsible for generating and storing data for virtual environments. Improving the speed and accuracy of generating and storing data for virtual environments can directly improve the operating speed of computing systems. Improvements in the speed and accuracy of processing and generating movement patterns can directly improve the operating speed of computing systems.

[0028] For example, by utilizing pre-existing feedback data indicative of image quality, the need to process an image to determine image quality is eliminated. In this way, example aspects of the present disclosure provide improved performance and efficiency of image quality identification operations in a computing system. In addition, the use of pre-existing feedback data in image quality identification operations reduces processing and storage requirements on the computing system. Therefore, the reduced processing and storage requirements ultimately make the resource allocation and / or use of the computing system more efficient. In this way, valuable computing resources that would otherwise be needed for such tasks within the computing system can be reserved for other tasks. Therefore, the reduced processing and storage requirements ultimately make the resource allocation / use of the computing system more efficient. In this way, valuable computing resources that would otherwise be needed for such tasks within the computing system can be reserved for other tasks.

[0029] Reference will now be made in detail to the embodiments, one or more examples of which are shown in the accompanying drawings. Each example is provided in a manner that illustrates the embodiments rather than limiting the present disclosure. In fact, it will be apparent to those skilled in the art that various modifications and changes may be made to the embodiments without departing from the scope or spirit of the present disclosure. For example, a feature shown or described as part of one embodiment may be used together with another embodiment to produce yet another embodiment. Therefore, aspects of the present disclosure are intended to encompass such modifications and changes.

[0030] As used herein, the terms "first", "second", "third" are used interchangeably to distinguish one component from another, and are not intended to indicate the location or importance of individual components. The term "entity" refers to a human, a user, an end user, a consumer, a computing device and / or a program (e.g., a processor, computing hardware and / or software, an application, etc.), an agent, a machine learning (ML) and / or artificial intelligence (AI) algorithm, a model, a system and / or an application, and / or another type of entity that can implement and / or facilitate the implementation of one or more implementations of the present disclosure as described herein, shown in the drawings and / or included in the appended claims. The terms "includes" and "including" are intended to represent inclusion in a manner similar to the term "comprising". Similarly, the term "or" is generally intended to be inclusive (e.g., "A or B" is intended to mean "A or B or both"). The term "at least one of..." refers to only A, only B, only C, or any combination of A, B and C in the context of, for example, "at least one of A, B and C". In addition, here and throughout the specification and claims, range limitations can be combined and / or interchanged. Unless otherwise indicated by the context or language, such ranges are identified and include all subranges contained therein. For example, all ranges disclosed herein include endpoints, and the endpoints can be combined independently of each other. Unless otherwise clearly specified in the context, the singular forms "a", "an", and "the" include plural referents.

[0031] As used throughout the specification and claims, approximate language can be applied to modify any quantitative expression, which can be allowed to change without changing the basic function to which it is related. Therefore, the value modified by terms such as "substantially", "about", "approximately" and "substantially" is not limited to the specified exact value. In at least some instances, approximate language can correspond to the accuracy of an instrument used to measure a value, or the accuracy of a method or machine used to build or manufacture a component and / or system. For example, approximate language can refer to within 10% margin, that is, including values ​​within 10% greater or less than the value. In this regard, for example, when used in the context of an angle or direction, such terms include greater than or less than ten degrees of the angle or direction, such as "substantially vertical" includes forming an angle of up to ten degrees with the vertical direction V in any direction (e.g., clockwise or counterclockwise).

[0032] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." In addition, a reference to an "embodiment" or "one embodiment" does not necessarily refer to the same embodiment, although it may refer to the same embodiment. Any implementation described herein as "exemplary" or "embodiment" is not necessarily to be construed as being preferred or advantageous over other implementations. In addition, each example is provided by way of explanation of the invention rather than limitation thereof. In fact, it will be apparent to those skilled in the art that various modifications and changes may be made in the present invention without departing from the scope of the invention. For example, features shown or described as part of one embodiment may be used with another embodiment to produce yet another embodiment. Therefore, the present invention is intended to cover such modifications and changes within the scope of the appended claims and their equivalents.

[0033] Figure 1 Example viewpoints 102A, 102B, 102C, 102D of an example point of interest (POI 100) are depicted in accordance with an example embodiment of the present disclosure. More specifically, as will be discussed in greater detail below, the example viewpoints 102A-102D may correspond to four points in an example movement pattern along the POI 100 within a three-dimensional virtual environment. Furthermore, as used herein, a "point of interest" or "POI" refers to a particular location, place, venue, business, community, geographic area, or the like. For example, a POI may refer to a place that attracts attention, curiosity, or interest due to its unique characteristics, historical significance, cultural relevance, natural beauty, or other notable features. POIs may vary widely and include landmarks, historical sites, tourist attractions, natural wonders, monuments, museums, parks, and other places that people may choose to visit or may otherwise be interested in. It should be noted that for purposes of illustration and discussion, Figure 1 The POI 100 in FIG. 1 is depicted as a house. The POI 100 may be any suitable POI without departing from the scope of the present disclosure.

[0034] POI 100 may be a three-dimensional representation present in a three-dimensional environment. In some embodiments, the three-dimensional environment may be presented in an application such as a map application, a visual search application, an image search application, etc. In addition, the three-dimensional environment may include a three-dimensional representation of a real object and / or location. Additionally and / or alternatively, the three-dimensional environment may include an image corresponding to the real object and / or location. In some embodiments, the image may include a realistic image and / or an abstract image. Additionally and / or alternatively, in some embodiments, the image may include a combination of a realistic image and an abstract image.

[0035] For example, in some embodiments, POI 100 may be a three-dimensional representation, such as within a map application. More specifically, the three-dimensional environment may correspond to a three-dimensional virtual rendering of the Earth, including three-dimensional representations of buildings, trees, landmarks, etc. However, it should be noted that the three-dimensional environment may be any suitable three-dimensional environment that depicts three-dimensional representations of objects and / or locations without departing from the scope of the present disclosure.

[0036] As shown, POI 100 is depicted from example viewpoints 102A, 102B, 102C, 102D. Example viewpoints 102A, 102B, 102C, 102D may correspond to example viewpoints from a virtual camera configured to image a three-dimensional environment. In some embodiments, it may be useful to generate a "fly-through" view of POI 100 within a three-dimensional environment. In this way, a user of the three-dimensional environment is able to "fly over" POI 100 and observe the POI from multiple perspectives (e.g., different sides). Thus, viewpoint 102A depicts a first frame of a "fly-through" track of POI 100, viewpoint 102B depicts a second frame of a "fly-through" track of POI 100, viewpoint 102C depicts a third frame of a "fly-through" track of POI 100, and viewpoint 102D depicts a fourth frame of a "fly-through" track of POI 100. It should be noted that although depicted as having four stationary viewpoints 102A-102D, the example "fly-through" view according to example embodiments of the present disclosure is a continuous 360° orbital view of a POI such as POI 100. In fact, for purposes of illustration and discussion, Figure 1 POI 100 is depicted from four viewpoints 102A to 102D.

[0037] Figure 2 Depicted is an example movement pattern 202 in an example environment 200 according to an example embodiment of the present disclosure. Although depicted in two dimensions, it should be understood that Figure 2 The environment 200 shown in FIG. 1 is a cross-sectional view of an example three-dimensional environment of the present disclosure. More specifically, Figure 2 A cross-sectional view of a three-dimensional environment 200 along a trajectory plane defined by a movement pattern 202 is depicted.

[0038] As shown, the movement mode 202 can be directed to a camera viewpoint 204 within the three-dimensional environment 200, such as, for example, a map application. More specifically, as described above, the camera viewpoint 204 can move along the movement mode 202 so that the camera viewpoint 204 moves around a three-dimensional representation of a POI 206 within the three-dimensional environment 200.

[0039] Example aspects of the present disclosure provide a computing system having one or more processor devices that can generate a movement pattern 202 of a camera viewpoint 204. In order to generate the movement pattern 202, the computing system must first determine a starting position 208 of the camera viewpoint 204. As will be discussed in more detail below, the computing system can utilize pre-existing data associated with a plurality of images to determine the starting position 208 (and more generally the movement pattern 202). In this manner, the present disclosure provides systems and methods for generating the movement pattern 202 without processing a plurality of images and associated image data.

[0040] It should be understood that the term "system" or "engine" can refer to dedicated hardware, computer logic executed on a more general processor, or some combination thereof. Thus, the system or engine can be implemented in hardware, dedicated circuits, firmware, and / or software that controls a general-purpose processor. In one embodiment, the system can be implemented as a program code file stored on a storage device, loaded into a memory, and executed by a processor, or can be provided from a computer program product (e.g., computer executable instructions) stored in a tangible computer-readable storage medium (such as RAM, a hard disk, or an optical or magnetic medium).

[0041] The computing system may obtain a plurality of images. The plurality of images may be result images from a set of result images provided as search results of a search service (e.g., a visual search service). Such result images may originate from a variety of sources, such as user-generated content (e.g., images captured by a user), stock images, map-related imagery (e.g., "street view" imagery, etc.), advertising materials, etc.

[0042] A computing system may obtain image information associated with a plurality of images. The image information associated with each of the plurality of images may include a plurality of image characteristics, such as a geographic location characteristic and an interaction metric. The geographic location characteristic may indicate a geographic location in which the image was captured. The interaction metric may be derived from a user's previous interaction with the image, such as a user's previous interaction with the image in a map application and / or a search application. More specifically, the interaction metric may be based on user feedback indicating image quality. For example, assume that the plurality of images include two images that have previously been used as search results for a visual search service. If more users interact with the first image than with the second image in the visual search service, the interaction metric for the first image will be higher than the interaction metric for the second image.

[0043] After obtaining the plurality of images and associated image information, in some embodiments, the computing system may filter the plurality of images based on an interaction metric associated with each of the plurality of images. For example, in some embodiments, the computing system may filter each image for which the interaction metric is below a predetermined threshold. The computing system may then cluster each of the plurality of images to generate one or more clusters. More specifically, the computing system may cluster the plurality of images based at least in part on a geographic location characteristic associated with each of the plurality of images.

[0044] As an illustrative example, briefly refer to Figure 3A , depicts an example cluster 300 according to an example embodiment of the present disclosure. More specifically, Figure 3A Clusters 300A to 300E (collectively referred to as clusters 300) are depicted near POIs 206 within three-dimensional environment 200, where each cluster has a plurality of images. As described above, each of the plurality of images has an associated geographic location characteristic indicating a geographic location in which the image was captured. Using the geographic location characteristic, the computing system can cluster each of the plurality of images to generate clusters 300.

[0045] The computing system can filter the plurality of images based on clusters 300. To follow the depicted example, cluster 300A includes a greater number of images than cluster 300E. Therefore, the computing system can determine that POI 206 is more easily discernible from a geographic location associated with cluster 300A than from a geographic location associated with cluster 300E. Based on this determination, the computing system can remove images clustered to cluster 300E.

[0046] As another example, cluster 300A includes a similar number of images as cluster 300B. Therefore, the computing system can determine that POI 206 is equally recognizable from the geographic location associated with cluster 300A as from the geographic location associated with cluster 300B. Therefore, the computing system can avoid filtering images clustered into either cluster 300A or 300B.

[0047] If clusters 300C and 300D include the same or similar number of images as clusters 300A and 300B, the computing system may determine that POI 206 is visible and / or recognizable from either side thereof (e.g., from any of clusters 300A-300E), and thus avoid filtering any images clustered into clusters 300C and 300D.

[0048] Thus, the computing system may determine the movement pattern 202 based at least in part on the location of the clusters 300A-300E relative to the POI 206 within the three-dimensional environment 200. Figure 2 )'s starting position 208 ( Figure 2). For example, the computing system may select the most densely populated cluster sub-region among clusters 300. For another example, the computing system may select one of clusters 300 based on an evaluation of other image characteristics.

[0049] As an additional illustrative example, briefly refer to Figure 3B , depicts an example cluster 350 according to an example embodiment of the present disclosure. More specifically, Figure 3B A cluster 350 is depicted near a POI 206 within the three-dimensional environment 200, the cluster comprising a plurality of images. Figure 3A Compared to the example clusters 300A-300E depicted in FIG. 2 , cluster 350 does not surround POI 206. Instead, cluster 350 faces one side of POI 206. Therefore, the computing system can determine that POI 206 may be visible and / or recognizable only from one side (e.g., the side facing cluster 350). Therefore, the movement pattern 202 ( FIG. 202A ) can be assigned to the movement pattern 202 based at least in part on the location of cluster 350 relative to POI 206 within three-dimensional environment 200. Figure 2 )'s starting position 208 ( Figure 2 ) is set to face POI 206.

[0050] Reference again Figure 2 After clustering each of the plurality of images to generate one or more clusters, the computing system may select a particular image in a particular cluster based at least in part on the image information. More specifically, as will be described below with reference to Figures 5 to 7 As discussed in more detail, the computing system may determine the selected cluster based at least in part on an interaction metric associated with each image in the cluster. For example, the computing system may select the cluster with the image having the highest interaction metric as the selected cluster.

[0051] In some implementations, to determine the starting location 208, the computing system can calculate the centroid (e.g., center point) of the selected cluster. The centroid of the selected cluster can then be used as an initial heading for the starting point. As used herein, "heading" refers to a three-dimensional direction within the three-dimensional environment 200. Furthermore, as discussed in more detail below, the computing system can then determine the starting location 208 based at least in part on the initial heading associated with the centroid of the selected cluster.

[0052] In some implementations, after determining the starting position 208, the computing system may then determine the secondary position 210. By determining the starting position 208 and the secondary position 210, the computing system may generate the movement pattern 202 and its corresponding orbital shape by, for example, a linear interpolation method. Linear interpolation refers to a method of estimating intermediate values ​​between known data points. For example, the computing system may determine the orbital shape of the movement pattern 202 by estimating the intermediate position of the movement pattern 202 between the starting position 208 and the secondary position 210 using a linear interpolation method. Therefore, the camera viewpoint 204 may perform linear interpolation between the starting position 208 and the secondary position 210, thereby providing an elliptical orbital path for the movement pattern 202. In some embodiments, the movement pattern 202 may have an elliptical shape. In other embodiments, the movement pattern 202 may have a circular shape. It should be noted that Figure 2 The camera viewpoint 204 shown in illustrative embodiment depicts the perspective of the camera viewpoint 204 from the secondary position 210 of the movement mode 202 .

[0053] In some embodiments, the starting position 208 may correspond to a “close-up” view of the POI 206, and the secondary position 210 may correspond to an “overview” of the POI 206. For example, Figure 2 , the starting position 208 is closer to the POI 206 along the horizontal axis H of the three-dimensional environment 200 than the secondary position 210. Therefore, the camera viewpoint 204 from the starting position 208 depicts a close-up view of the POI 206, and the camera viewpoint 204 from the secondary position 210 depicts a view of the POI 206 and its surroundings. In this way, the movement pattern 202 can be a dynamic elliptical orbit path that provides multiple different perspectives of the POI 206 (e.g., a full 360° view).

[0054] In some implementations, after determining the orbital path of the movement pattern 202, the computing system can then determine the orbital speed of the camera viewpoint 204. In some embodiments, the computing system can decrease the orbital speed of the camera viewpoint 204 as the distance between the camera viewpoint 204 and the POI 206 decreases. Additionally, the computing system can increase the orbital speed of the camera viewpoint 204 as the distance between the camera viewpoint 204 and the POI 206 increases. For example, as the camera viewpoint 204 travels along the movement pattern 202 in the direction represented by the arrow 212, the orbital speed can decrease. Conversely, as the camera viewpoint 204 travels along the movement pattern 202 in the direction represented by the arrow 214, the orbital speed can increase.

[0055] In some implementations, the FIG. 3A to FIG. 3B The image cluster described determines the orbital velocity. For example, the steering Figure 3A, assuming that clusters 300A, 300B, 300C, and 300D all include the same number of images. Further assume that the interaction metric associated with cluster 300C is significantly lower than the interaction metric associated with clusters 300A, 300B, and 300D. The computing system can determine the track speed so that the camera moves on the track at a higher speed when located in the area corresponding to cluster 300C, and moves on the track at a lower speed when located in the area corresponding to clusters 300A, 300B, and 300D.

[0056] In some implementations, the movement pattern 202 may be a non-elliptical movement pattern. Figure 3B , clusters 350 are widely distributed across the “front” of POI 206. However, no images are clustered to form clusters behind POI 206 or to the sides of POI 206. Based on clusters 350, the computing system can determine a linear or semi-circular movement pattern that traverses the front of POI 206 without moving to the “back” of POI 206.

[0057] Figure 4 A flowchart of an example computer-implemented method 400 to be performed according to an example embodiment of the present disclosure is depicted. One or more portions of the method may be implemented by one or more computing devices such as, for example, the computing devices described herein. In addition, one or more portions of the method may be implemented as an algorithm on hardware components of the devices described herein. Although Figure 4 The steps are depicted as being performed in a particular order for purposes of illustration and discussion, but the method of the present disclosure is not limited to the particular order or arrangement shown. The various steps of method 400 may be omitted, rearranged, combined and / or adjusted in various ways without departing from the scope of the present disclosure.

[0058] At (402), a computing system may obtain a plurality of images and associated image information. More specifically, the computing system may obtain a plurality of images that each depict a same point of interest (POI). For example, one of the plurality of images may depict the POI from the north side of the POI, while another of the plurality of images may depict the POI from the south side of the POI. Images included in the plurality of images may originate from a variety of sources, such as user-generated content, indexed search result images (e.g., from a search application), stock images, still video frames, multiple frames of video data, and the like.

[0059] It should be understood that the image obtained by the computing system at (402) can be associated with a search application (e.g., an image / visual search service) that is configured to provide the image to the user in response to a prompt (e.g., a query) from the user. Specifically, the computing system can be associated with a search service that provides an image search or visual search service. For example, the computing system can be part of a network of computing systems and devices that provide a set of services within a service environment, such as a mapping service, a computer vision service, a search service, an image search service, etc. Thus, the computing system can access images that have been used as search results in response to a query provided to the image search service.

[0060] Specifically, the image search service may return image search results in response to a query (e.g., a text query, an image query, etc.). Conventionally, many search services evaluate the user's response to the search results so that future search results can be optimized. The user's response to the search results (i.e., the result image) may be evaluated in a variety of ways. For example, the result image may be evaluated based on the percentage of users who interacted with the result image when the result image was visible to the user. For another example, the search service may prompt the user to share feedback on the quality of the result image. The search service may assign an interaction metric to the result image based on the evaluation of the user's response to the search results.

[0061] The search service may also process the image and collect contextual information associated with the image, such as the coordinates from which the image was captured, the time of day the image was captured, a vector indicating the direction from which the image was captured, etc. The search service may also use the contextual information when it assigns interaction metrics to the image. In this manner, by accessing an associated search application and its corresponding image-related data, the computing system does not need to process multiple images because each of the multiple images has already been processed and / or evaluated before being acquired by the computing system at (402).

[0062] The computing system may also obtain image information associated with each of the plurality of images. The image information may describe a plurality of image characteristics of each of the plurality of images. The plurality of image characteristics may include a geographic location characteristic indicating a geographic location in which the image was captured. The plurality of image characteristics may include an interaction metric derived from a user's previous interaction with the image. The interaction metric associated with each of the plurality of images may be based at least in part on user feedback indicating image quality. For example, as previously described, the interaction metric may be derived from a user's previous interaction with the image within, for example, a map application and / or a search application.

[0063] Additionally and / or alternatively, in some embodiments, the computing system may obtain a plurality of user images provided by a user of a map application.The map application may be the same application as the application configured to provide the three-dimensional environment to the user.

[0064] It should be noted that in many instances, the interaction metrics obtained by the computing system have already been generated and stored by the search service. Because these interaction metrics have already been created and maintained as necessary steps of a separate process, there is no need to consume additional computing resources to calculate the interaction metrics. In this way, by leveraging existing information, the implementation of the present disclosure can effectively determine the optimal movement mode of the camera viewpoint within the three-dimensional environment while minimizing the consumption of computing resources.

[0065] At (404), the computing system may select a particular image from among the plurality of images based on the image information.

[0066] For example, Figure 5 A flowchart of an example computer-implemented method 500 to be performed according to an example embodiment of the present disclosure is depicted. One or more portions of the method may be implemented by one or more computing devices such as, for example, the computing devices described herein. In addition, one or more portions of the method may be implemented as an algorithm on hardware components of the devices described herein. Although Figure 5 The steps are depicted as being performed in a particular order for purposes of illustration and discussion, but the method of the present disclosure is not limited to the particular order or arrangement shown. The various steps of method 500 may be omitted, rearranged, combined and / or adjusted in various ways without departing from the scope of the present disclosure.

[0067] Reference now Figure 5 , at (502), for each image in the plurality of images, the computing system may filter the image from the plurality of images. More specifically, the computing system may filter the particular image from the plurality of images in response to determining that an interaction metric associated with the image is below a predetermined threshold metric. In this manner, the computing system may first filter each image from the plurality of images that falls below the predetermined threshold metric and then cluster the plurality of images at (504).

[0068] Reference now Figure 5 At (504), the computing system may cluster each of the plurality of images based at least in part on the image information to generate one or more clusters. More specifically, the computing system may cluster each of the plurality of images based on image information associated with each respective image, such as a geographic location characteristic indicating a geographic location in which the image was captured, thereby forming one or more image clusters.

[0069] In some embodiments, to cluster each of the plurality of images, the computing system may classify each of the plurality of images into at least one cluster based at least in part on the geographic location in which each of the plurality of images was captured. FIG. 3A to FIG. 3B As discussed, the computing system may be based at least in part on the POI 206 ( FIG. 3A to FIG. 3B ) is associated with a geographic location in which each of the plurality of images is captured to cluster the plurality of images into clusters 300A to 300E ( Figure 3A ) and / or cluster 350 ( Figure 3B ).

[0070] In addition, refer again Figure 5 , at (504), the computing system may determine a selected cluster from the one or more clusters based at least in part on an interaction metric associated with one or more corresponding images from the one or more clusters. More specifically, to determine the selected cluster, the computing system may identify one or more primary images from the one or more clusters, respectively. The primary image may include an image with a highest interaction metric among the images in the cluster. In some embodiments, each cluster may include one primary image. In other embodiments, each cluster may include more than one primary image. In addition, each of the one or more clusters may include the same number of primary images and / or a different number of primary images.

[0071] For example, refer again to Figure 3A , the computing system may determine the selected cluster among clusters 300A to 300E based at least in part on the interaction metrics associated with each image in clusters 300A to 300E. For example, to determine the selected cluster, the computing system may identify a primary image for each of clusters 300A to 300E. As described above, in some embodiments, the primary image of cluster 300A may be the image with the highest interaction metric in cluster 300A. Similarly, the primary image of cluster 300B may be the image with the highest interaction metric in cluster 300B, the primary image of cluster 300C may be the image with the highest interaction metric in cluster 300C, and so on.

[0072] In addition, refer again Figure 5 At (504), after identifying the one or more primary images, the computing system may select the selected cluster based at least in part on an interaction metric associated with the primary image of the cluster. More specifically, the interaction metric of the primary image of the selected cluster may be higher than the interaction metric of any other primary image of any other cluster.

[0073] For example, refer again to Figure 3A , the computing system may select the selected cluster based at least in part on the interaction metric associated with each primary image of clusters 300A to 300E. For example, if the primary image of cluster 300A has a higher interaction metric than the primary images of clusters 300B to 300E, the computing system may select cluster 300A as the selected cluster.

[0074] Reference now Figure 5, at (506), in response to clustering each of the plurality of images at (504), the computing system may select a particular image in a particular cluster based at least in part on the image information. For example, as described above, the computing system may select the selected cluster based on an interaction metric associated with a primary image of each cluster. After selecting the selected cluster, the computing system may select, for example, a primary image of the selected cluster, which in some embodiments may correspond to an image with a highest interaction metric among the images within the selected cluster. In this manner, the particular image selected by the computing system may correspond to a "best" image among the plurality of images within the selected cluster.

[0075] Return to Figure 4 At (406), the computing system may generate a movement pattern of the camera viewpoint within the three-dimensional environment. More specifically, the movement pattern of the camera viewpoint may move around the three-dimensional representation of the POI within the three-dimensional environment. The starting location of the movement pattern may be based at least in part on the geographic location where the particular image was captured.

[0076] For example, Figure 6 A flowchart of an example computer-implemented method 600 to be performed according to an example embodiment of the present disclosure is depicted. One or more portions of the method may be implemented by one or more computing devices such as, for example, the computing devices described herein. In addition, one or more portions of the method may be implemented as an algorithm on hardware components of the devices described herein. Although Figure 6 The steps are depicted as being performed in a particular order for purposes of illustration and discussion, but the method of the present disclosure is not limited to the particular order or arrangement shown. The various steps of method 600 may be omitted, rearranged, combined and / or adjusted in various ways without departing from the scope of the present disclosure.

[0077] Reference now Figure 6 At (602), the computing system may calculate a centroid of the selected cluster based at least in part on image information associated with each image of the selected cluster. More specifically, the computing system may calculate the centroid of the selected cluster based at least in part on a geographic location characteristic indicating a geographic location in which each image of the selected cluster was captured.

[0078] For example, refer again to Figure 3A As with the examples discussed above, the computing system may select cluster 300A as the selected cluster. In response to selecting cluster 300A as the selected cluster, the computing system may then calculate the centroid (eg, center point) of cluster 300A, which the computing system may then use to determine the movement pattern.

[0079] Reference now Figure 6At (604), the computing system may select the centroid of the selected cluster as the initial heading of the movement pattern. More specifically, the computing system may select the centroid of the selected cluster calculated at (602) as the initial heading of the movement pattern. As described above, "heading" refers to a three-dimensional direction within a three-dimensional environment.

[0080] Reference now Figure 6 At (606), the computing system may determine a starting location for the movement mode based at least in part on the initial heading. More specifically, the computing system may determine a starting location for the movement mode based at least in part on the initial heading selected at (604).

[0081] For example, refer again to Figure 2 , the computing system can determine the starting position 208 of the movement mode 202 based at least in part on whether the entire height of the POI 206 is visible from the viewpoint associated with the initial heading selected at (604). In other words, the computing system can determine whether the entire height of the POI 206 is in the frame relative to the viewpoint in the initial heading. This process of determining whether the entire height of the POI 206 is in the frame from the viewpoint is hereinafter referred to as a "physical framing operation".

[0082] Figure 7 An illustrative example of the entity framing operation disclosed herein is depicted in FIG. Figure 7 Depicts a cross section taken along the orbital plane defined by the movement pattern 202 Figure 2 A portion of the three-dimensional environment 200. Figure 7 Also depicted is an initial heading 702, which, as described above, may correspond to the centroid of the selected cluster calculated at (602).

[0083] Turning now to the example entity framing operation, the computing system can determine the movement mode 202 based at least in part on whether the entire height of the POI 206 is visible from the viewpoint associated with the initial heading 702. Figure 2 )'s starting position 208 ( Figure 2 ).

[0084] In response to determining that the viewpoint associated with the initial heading 702 includes the entire height of the POI 206 (eg, the entire height of the POI 206 is in the frame), the computing system may select the initial heading 702 as the movement mode 202 ( Figure 2 )'s starting position 208 ( Figure 2). Conversely, in response to determining that the viewpoint associated with the initial heading 702 does not include the entire height of the POI 206 (e.g., the entire height of the POI 206 is not in the frame), the computing system may select a second heading 704 that is farther away from the POI 206 along the horizontal axis H of the three-dimensional environment 200 than the initial heading 702. More specifically, as shown, the initial heading 702 may be closer to the POI 206 along the horizontal axis H than the second heading 704. In this manner, by selecting the second heading 704 that is farther away from the POI 206 than the initial heading 702, the viewpoint associated with the second heading 704 may be more likely to include the entire height of the POI 206 than the viewpoint associated with the initial heading 702.

[0085] In response to selecting second heading 704, the computing system can perform the same physical framing operation as described above. In other words, in response to selecting second heading 704, the computing system can then determine whether the viewpoint associated with second heading 704 includes the entire height of POI 206 in a manner similar to that discussed above. More specifically, in response to determining that the viewpoint associated with second heading 704 includes the entire height of POI 206, the computing system can select second heading 704 as movement mode 202 ( Figure 2 )'s starting position 208 ( Figure 2 ). Conversely, in response to determining that the viewpoint associated with the second heading 704 does not include the entire height of the POI 206, the computing system may select a third heading 706 that is farther away from the POI 206 along the horizontal axis H of the three-dimensional environment 200 than the second heading 704. The above process (hereinafter referred to as a "backward operation") may be repeated until a heading with an associated viewpoint that includes the entire height of the POI 206 is selected.

[0086] Still refer to Figure 7 , the three-dimensional environment 200 may include geometric figures that may interfere with and / or obstruct the viewpoint associated with each of the headings, depending on the location of the headings discussed above. More specifically, in some embodiments, in the three-dimensional environment 200, for example, there may be obstacles 708 (e.g., buildings, geometric shapes, geographical features, etc.) between the initial heading 702 and the second heading 704. In such embodiments, in order to ensure that the POI 206 is correctly framed from the updated heading (e.g., the second heading 704), the back-up operation discussed above may not be sufficient to ensure that the movement mode 202 ( Figure 2 )'s starting position 208 ( Figure 2 ).

[0087] For example, as described above, in response to determining that the entire height of POI 206 is not visible from initial heading 702, the computing system may select second heading 704 that is farther from POI 206 along horizontal axis H than initial heading 702. However, in some embodiments, the computing system may detect an obstacle 708 between initial heading 702 and second heading 704. In response to detecting obstacle 708, the computing system may select fourth heading 710 that is above second heading 704 along vertical axis V of three-dimensional environment 200 by adding a vertical offset to second heading 704. The above process of adding a vertical offset to a heading in response to detecting an obstacle is hereinafter referred to as an "ascent operation".

[0088] After selecting fourth heading 710, the computing system can then perform the same entity framing operations described above (e.g., determining whether the entire height of POI 206 is visible from the viewpoint associated with fourth heading 710). More specifically, in response to determining that the viewpoint associated with fourth heading 710 includes the entire height of POI 206, the computing system can select fourth heading 710 as movement mode 202 ( Figure 2 )'s starting position 208 ( Figure 2 ). Conversely, in response to determining that the viewpoint associated with the fourth heading 710 does not include the entire height of the POI 206, the computing system can repeat the above-described physical framing operation, back operation, and / or ascend operation until a heading with an associated viewpoint having the entire height of the POI 206 is selected.

[0089] Reference again Figure 2 In addition to the above-described physical framing operation, the computing system must also find the correct altitude of the starting location 208 of the movement pattern 202. As described above, in some embodiments, the POI 206 may require an elevated starting location 208 of the movement pattern 202 (e.g., elevated along the vertical axis V of the three-dimensional environment 200). For example, in an embodiment in which the POI 206 is, for example, a stadium, the starting location 208 of the movement pattern 202 may be elevated so that the interior of the POI 206 (e.g., the field) is visible from the starting location 208. Therefore, the computing system may perform a ray casting operation to determine the correct altitude of the starting location 208 of the movement pattern 202 (e.g., along the vertical axis V of the three-dimensional environment 200).

[0090] More specifically, in some embodiments, the computing system may generate a first raycast from the initial heading to the center of the POI 206. The computing system may then select a second heading that is above the initial heading along the vertical axis V of the three-dimensional environment 200 by adding a vertical offset to the initial heading. In response to selecting the second heading, the computing system may generate a second raycast from the second heading to the center of the POI 206. The computing system may then determine whether the length of the second raycast is greater than the length of the first raycast. For example, in response to determining that the length of the second raycast is greater than the length of the first raycast, the computing system may select the second heading as the starting position 208 of the movement pattern 202. Conversely, in response to determining that the length of the second raycast is not greater than the length of the first raycast, the computing system may repeat the above raycast operation. In this manner, by performing the above raycast operation, the computing system may determine a heading for the starting position 208 of the movement pattern 202 having an associated viewpoint in which the interior of the POI 206 is visible.

[0091] Reference now Figure 6 At (608), the computing system may determine a secondary location of the movement pattern based at least in part on the starting location of the movement pattern. More specifically, in response to determining the starting location of the movement pattern at (606), the computing system may then determine the secondary location of the movement pattern.

[0092] For example, refer again to Figure 2 , the starting position 208 of the movement pattern 202 can correspond to an ideal close-up view of the POI 206, and the secondary position 210 of the movement pattern 202 can correspond to an ideal area understanding view of the POI 206. It should be noted that, similar to the starting position 208, the entire POI 206 can be visible from the viewpoint associated with the secondary position 210. In addition, as will be discussed in more detail below, the trajectory of the movement pattern 202 can be linearly interpolated between the starting position 208 and the secondary position 210.

[0093] Reference now Figure 6 At (610), the computing system may determine a trajectory shape of the movement pattern based at least in part on the starting location and the secondary location. More specifically, after determining the starting location of the movement pattern at (606) and determining the secondary location of the movement pattern at (608), the computing system may determine the trajectory shape of the movement pattern.

[0094] Reference again Figure 2As described above, the trajectory of the mobile pattern 202 can be linearly interpolated between the starting position 208 and the secondary position 210 of the mobile pattern 202. In this way, the initial trajectory shape of the mobile pattern 202 can be an ellipse. However, as described above, the three-dimensional environment 200 can include geometric shapes that may interfere with and / or hinder the initial elliptical trajectory shape between the starting position and the secondary position, depending on the position of the starting position 208 and the position of the secondary position 210. More specifically, in some embodiments, in the three-dimensional environment 200, there may be obstacles 216 (e.g., buildings, geometric shapes, geographical features, etc.) between the starting position 208 and the secondary position 210. In such embodiments, in order to ensure that the POI 206 is correctly framed along the trajectory path, the initial elliptical trajectory shape of the mobile pattern 202 may not be sufficient to ensure that the POI 206 is clearly observed along the entire mobile pattern 202. Therefore, the computing system can perform a collision avoidance operation to update the trajectory path, thereby ensuring that the POI 206 is visible along the entire trajectory path.

[0095] For example, the computing system may detect obstacle 216 between starting location 208 and secondary location 210 along movement pattern 202. As used herein, “obstacle location” refers to a location along movement pattern 202 where detected obstacle 216 is located. In response to detecting obstacle 216 along movement pattern 202, the computing system may generate a plurality of candidate waypoints based at least in part on the obstacle location of obstacle 216 along movement pattern 202.

[0096] For example, the computing system may calculate a first candidate waypoint located above the obstacle position along the vertical axis V of the three-dimensional environment 200 by adding the vertical offset to the obstacle position. The computing system may also calculate a second candidate waypoint closer to the POI 206 than the obstacle position along the horizontal axis H of the three-dimensional environment 200 by subtracting the horizontal offset from the obstacle position. The computing system may also calculate a third candidate waypoint farther from the POI 206 than the obstacle position along the horizontal axis H by adding the horizontal offset to the obstacle position. In this manner, the computing system may calculate multiple candidate waypoints corresponding to the obstacle position to modify the trajectory shape of the movement pattern 202, thereby creating a modified movement pattern 202' that avoids the obstacle 216. It should be noted that Figure 2 The waypoint 218 depicted in corresponds to the second candidate waypoint discussed above. For purposes of illustration and discussion, the waypoint 218 is depicted as being at the location of the second candidate waypoint.

[0097] Furthermore, after calculating the plurality of candidate waypoints, the computing system may determine an updated trajectory shape based at least in part on the starting position 208, at least one of the candidate waypoints (e.g., waypoint 218), and the secondary position 210. More specifically, rather than recalculating the starting position 208 and the secondary position 210 of the movement pattern 202 to avoid the obstacle 216 at the obstacle position, at least one of the candidate waypoints (e.g., waypoint 218) may be added as an additional position on the movement pattern 202, thereby creating a modified movement pattern 202'. Rather than linearly interpolating only between the starting position 208 and the secondary position 210, the modified movement pattern 202' may also be linearly interpolated through the starting position 208, the secondary position 210, and at least one of the candidate waypoints (e.g., waypoint 218). In this manner, the obstacle 216 at the obstruction position along the movement pattern 202 may be avoided.

[0098] Reference now Figure 6 At (612), the computing system may determine an orbital speed of the movement pattern based at least in part on a distance between a camera viewpoint and the POI along the movement pattern. More specifically, in response to determining an orbital shape of the movement pattern at (610), the computing system may determine the orbital speed based at least in part on how far the movement pattern is from the POI.

[0099] For example, refer again to Figure 2 , the computing system can decrease the orbital speed of the movement pattern 202 as the distance between the camera viewpoint and the POI 206 decreases (e.g., as the camera viewpoint moves in the direction indicated by arrow 212). Conversely, the computing system can increase the orbital speed of the movement pattern 202 as the distance between the camera viewpoint and a particular POI 206 increases (e.g., as the camera viewpoint moves in the direction indicated by arrow 214). By dynamically changing the orbital speed in this manner, the computing system provides a smooth, stable movement pattern 202 around the POI 206.

[0100] Back to Figure 4 At (408), the computing system may store an association between the POI and the starting location of the movement pattern. For example, the computing system may store an association between a POI (e.g., POI 206) and a starting location (e.g., starting location 208) of a movement pattern (e.g., movement pattern 202).

[0101] At (410), the computing system may transmit the movement pattern to the client device for display. For example, the computing system may transmit the movement pattern (e.g., movement pattern 202) to a client device (e.g., a smart phone, a laptop computer, a mobile tablet computer, etc.) for display. By transmitting the movement pattern to the client device for display, the computing system may provide a user of the client device with a track view of a three-dimensional representation of a POI within a three-dimensional environment.

[0102] Figure 8 An example computing system 800 is depicted according to an example embodiment of the present disclosure. For example, the computing system 800 may be used to implement Figure 4 Method 400, Figure 5 Method 500, Figure 6 The computing system 800 may be communicatively coupled to the client device 820 via the network 810. More specifically, in some embodiments, the computing system 800 may communicate data (e.g., data associated with the mobile pattern 202) to the client device 820.

[0103] The computing system 800 includes one or more processors 802 and a memory 804. The one or more processors 802 may be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.) and may be one processor or a plurality of processors operatively connected. The memory 804 may include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, disks, etc., and combinations thereof. The one or more non-transitory computer-readable media (e.g., the memory 804) may collectively store data 806. The one or more non-transitory computer-readable media (e.g., the memory 804) may collectively store instructions 808 that, when executed by the processor 802, cause the computing system 800 to perform operations, such as any of the operations described herein.

[0104] In some implementations, computing system 800 includes or is otherwise implemented by one or more computing devices. Where computing system 800 includes multiple server computing devices, such server computing devices may operate according to a sequential computing architecture, a parallel computing architecture, or some combination thereof.

[0105] The network 810 can be any type of communication network, such as a local area network (e.g., an intranet), a wide area network (e.g., the Internet), or some combination thereof, and can include any number of wired or wireless links. In general, communications through the network 810 can be conducted over any type of wired and / or wireless connection using a variety of communication protocols (e.g., TCP / IP, HTTP, SMTP, FTP), encodings or formats (e.g., HTML, XML), and / or protection schemes (e.g., VPN, secure HTTP, SSL).

[0106] Although the subject matter has been described in detail with respect to its specific example embodiments, it should be understood that those skilled in the art can easily generate changes, modifications, and equivalents of such embodiments after understanding the foregoing. Therefore, the scope of the present disclosure is illustrative rather than limiting, and the present disclosure does not exclude the inclusion of such modifications, changes, and / or additions to the subject matter that would be readily understood by those of ordinary skill in the art.

Claims

1. A computer-implemented method, the method comprising: A plurality of images and associated image information are obtained by a computing system including one or more processor devices, each of the plurality of images depicting a particular point of interest (POI), the image information describing a plurality of image characteristics of each of the plurality of images, the plurality of image characteristics comprising: (a) a geographic location characteristic indicative of the geographic location in which the image was captured; and (b) an interaction metric derived from the user's previous interactions with the image; selecting, by the computing system, a particular image from among the plurality of images based on the image information; and A movement pattern of a camera viewpoint within a three-dimensional environment is generated by the computing system, wherein the movement pattern of the camera viewpoint moves around a three-dimensional representation of the particular POI within the three-dimensional environment, and wherein a starting location of the movement pattern is based at least in part on the geographic location where the particular image was captured.

2. The method of claim 1, wherein each of the plurality of images comprises a result image that has been previously provided by a search service as a search result; and Wherein for each result image, when the search service provides the result image as a search result, the interaction metric is derived from information describing historical responses of users to the result image.

3. The method of claim 1, further comprising: storing, by the computing system, an association between the specific POI and the starting location of the movement pattern; as well as The movement pattern is transmitted by the computing system to a client device for display.

4. The method of claim 1, wherein selecting the particular image from among the plurality of images comprises: clustering, by the computing system, each of the plurality of images based at least in part on the image information to generate one or more clusters; as well as In response to clustering each of the plurality of images, a particular image in a particular cluster is selected by the computing system based at least in part on the image information.

5. The method of claim 4, wherein before clustering each of the plurality of images, the method comprises: For each image in the plurality of images: determining, by the computing system, that the interaction metric associated with the image is below a predetermined threshold metric; as well as In response to determining that the interaction metric associated with the image is below a threshold metric, filtering, by the computing system, the image from the plurality of images.

6. The method of claim 5, wherein the interaction metric associated with each image of the plurality of images is based at least in part on user feedback indicating a quality of the image.

7. The method of claim 4, wherein clustering each of the plurality of images comprises: classifying, by the computing system, each of the plurality of images into at least one cluster based at least in part on the geographic location in which each of the plurality of images was captured; as well as A selected cluster of the one or more clusters is determined, by the computing system, based at least in part on the interaction metric associated with one or more corresponding images from the one or more clusters.

8. The method of claim 7, wherein determining the selected cluster comprises: identifying, by the computing system, one or more primary images from the one or more clusters, respectively, wherein the primary images include images having the highest interaction metrics among the images in the clusters; as well as The selected cluster is selected, by the computing system, based at least in part on the interaction metric associated with the primary image of the cluster, the interaction metric of the primary image being higher than the interaction metric of any other primary image.

9. The method of claim 7, wherein generating the movement pattern of the camera viewpoint comprises: computing, by the computing system, a centroid of the selected cluster based at least in part on the image information associated with each image of the selected cluster; selecting, by the computing system, the centroid of the selected cluster as an initial heading for the movement pattern; as well as The starting location of the movement pattern is determined by the computing system based at least in part on the initial heading.

10. The method of claim 9, wherein determining the starting position of the movement pattern comprises: determining, by the computing system, that the viewpoint associated with the initial heading includes the entire height of the particular POI; as well as In response to determining that the viewpoint associated with the initial heading includes the entire height of the particular POI, the initial heading is selected by the computing system as the starting location for the movement mode.

11. The method of claim 9, wherein determining the starting position of the movement pattern comprises: determining, by the computing system, a height of a viewpoint associated with the initial heading that does not include an entire height of the particular POI; as well as In response to determining that the viewpoint associated with the initial heading does not include the entire height of the particular POI, a second heading is selected by the computing system, wherein the initial heading is closer to the particular POI along a horizontal axis than the second heading.

12. The method of claim 11, wherein determining the starting position of the movement pattern further comprises: determining, by the computing system, that a viewpoint associated with the second heading includes the entire height of the particular POI; as well as In response to determining that the viewpoint associated with the second heading includes the entire height of the particular POI, the second heading is selected by the computing system as the starting location for the movement mode.

13. The method of claim 11, wherein determining the starting position of the movement pattern further comprises: detecting, by the computing system, an obstacle between the initial heading and the second heading; In response to detecting the obstacle, selecting, by the computing system, a third heading located above the second heading along a vertical axis by adding a vertical offset to the second heading; determining, by the computing system, that a viewpoint associated with the third heading includes the entire height of the particular POI; as well as In response to determining that the viewpoint associated with the third heading includes the entire height of the particular POI, the third heading is selected by the computing system as the starting location for the movement mode.

14. The method of claim 9, wherein determining the starting position of the movement pattern comprises: generating, by the computing system, a first raycast from the initial heading to a center of the particular POI; selecting, by the computing system, a second heading located above the initial heading along a vertical axis by adding a vertical offset to the initial heading; generating, by the computing system, a second raycast from the second heading to the center of the particular POI; Determining, by the computing system, that a length of the second ray cast is greater than a length of the first ray cast; as well as In response to determining that the length of the second raycast is greater than the length of the first raycast, the second heading is selected by the computing system as the starting position for the movement pattern.

15. The method of claim 9, further comprising: determining, by the computing system, a secondary location of the movement pattern based at least in part on the starting location of the movement pattern; determining, by the computing system, a trajectory shape of the movement pattern based at least in part on the starting position and the secondary position; as well as An orbital speed of the movement pattern is determined by the computing system based at least in part on a distance between the camera viewpoint and the particular POI along the movement pattern.

16. The method of claim 15, wherein determining the trajectory shape of the movement pattern comprises: detecting, by the computing system, an obstacle located between the starting location and the secondary location along the movement pattern, wherein the obstacle is located at an obstacle location along the movement pattern; generating, by the computing system, a plurality of candidate waypoints based at least in part on a position of the obstacle along the movement pattern of the obstacle in response to detecting the obstacle along the movement pattern; as well as An updated track shape is determined by the computing system based at least in part on the starting position, at least one of the plurality of candidate waypoints, and the secondary position.

17. The method of claim 16, wherein generating the plurality of candidate waypoints comprises: calculating, by the computing system, a first candidate waypoint located above the obstacle position along the vertical axis by adding a vertical offset to the obstacle position; calculating, by the computing system, a second candidate waypoint that is closer to the specific POI along the horizontal axis than the obstacle position by subtracting a horizontal offset from the obstacle position; as well as A third candidate waypoint is calculated by the computing system by adding the horizontal offset to the obstacle position, the third candidate waypoint being farther from the specific POI along the horizontal axis than the obstacle position.

18. The method of claim 15, wherein determining the orbital velocity of the movement pattern comprises: decreasing, by the computing system, the orbital speed as the distance between the camera viewpoint and the particular POI decreases; as well as The orbital speed is increased, by the computing system, as the distance between the camera viewpoint and the particular POI increases.

19. A computing system comprising: one or more processors; as well as one or more non-transitory computer-readable media collectively storing instructions that, when executed by the one or more processors, cause the computing system to perform operations comprising: A plurality of images and associated image information are obtained, each of the plurality of images depicting a particular point of interest (POI), the image information describing a plurality of image characteristics of each of the plurality of images, the plurality of image characteristics comprising: (a) a geographic location characteristic indicative of the geographic location in which the image was captured; and (b) an interaction metric derived from the user's previous interactions with the image; selecting a particular image from among the plurality of images based on the image information; and A movement pattern of a camera viewpoint within a three-dimensional environment is generated, wherein the movement pattern of the camera viewpoint moves around a three-dimensional representation of the particular POI within the three-dimensional environment, and wherein a starting location of the movement pattern is based at least in part on the geographic location where the particular image was captured.

20. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors of a computing device, cause the one or more processors to perform operations comprising: A plurality of images and associated image information are obtained, each of the plurality of images depicting a particular point of interest (POI), the image information describing a plurality of image characteristics of each of the plurality of images, the plurality of image characteristics comprising: (a) a geographic location characteristic indicative of the geographic location in which the image was captured; and (b) an interaction metric derived from the user's previous interactions with the image; selecting a particular image from among the plurality of images based on the image information; and A movement pattern of a camera viewpoint within a three-dimensional environment is generated, wherein the movement pattern of the camera viewpoint moves around a three-dimensional representation of the particular POI within the three-dimensional environment, and wherein a starting location of the movement pattern is based at least in part on the geographic location where the particular image was captured.