Preemptive camera enabling
By preemptively activating a secondary camera in response to user inputs, the system addresses delays and battery consumption issues during zoom transitions, enhancing user experience and power efficiency.
Patent Information
- Application Number
- PCT/US2025/021290
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-25
- Filing Date
- 2025-03-25
- Publication Date
- 2025-10-02
AI Technical Summary
Existing computing systems experience delays and increased battery consumption when switching between primary and secondary cameras due to the time taken to activate and synchronize camera settings during zoom operations.
The system preemptively activates a secondary camera based on user inputs, anticipating zoom actions, allowing camera settings to converge with the primary camera during the transition period, thereby reducing delays and conserving battery life.
This approach reduces image capture delays and conserves battery power by proactively activating the secondary camera, ensuring seamless transitions and improved image quality.
Smart Images

Figure US2025021290_02102025_PF_FP_ABST
Abstract
Description
Preemptive Camera EnablingCROSS-REFERENCE TO RELATED DISCLOSURE
[0001] This application claims priority to U.S. Provisional Patent Application No. 63 / 569,336, filed March 25, 2024, which is incorporated herein by reference in its entirety.BACKGROUND
[0002] Many modern computing devices, including mobile phones, personal computers, and tablets, include image capturing devices. Some image capturing devices are configured with telephoto capabilities.SUMMARY
[0003] In an embodiment, a method includes displaying on a screen a representation of an environment based on primary sensor data captured by a primary camera. The method also includes detecting at least one input associated with an area of the screen. The method additionally includes, based on the at least one input associated with the screen area, determining a secondary camera to preemptively activate in anticipation of zooming in or out. The method further includes preemptively activating the secondary camera. The method also includes, based on further associated with the screen area, zooming the displayed representation of the environment in or out based on secondary sensor data captured by the secondary camera.
[0004] In another embodiment, a computing system includes a control system. The control system is configured to display on a screen a representation of an environment based on primary sensor data captured by a primary camera. The control system is also configured to detect at least one input associated with an area of the screen. The control system is additionally configured to, based on the at least one input associated with the screen area, determining a secondary camera to preemptively activate in anticipation of zooming in or out. The control system is further configured to preemptively activate the secondary camera. The control system is additionally configured to, based on further input associated with the screen area, zooming the displayed representation of the environment in or out based on secondary sensor data captured by the secondary camera.
[0005] In a further embodiment, a non-transitory computer readable medium stores program instructions executable by one or more processors to cause the one or more processors to perform operations. The operations include displaying on a screen a representation of an environment based on primary sensor data captured by a primary camera. The operations also include detecting at least one input associated with an area of the screen. The operationsadditionally include, based on the at least one input associated with the screen area, determining a secondary camera to preemptively activate in anticipation of zooming in or out. The operations further include preemptively activating the secondary camera. The operations also include, based on further input associated with the screen area, zooming the displayed representation of the environment in or out based on secondary sensor data captured by the secondary camera.
[0006] In another embodiment, a system is provided that includes means for displaying on a screen a representation of an environment based on primary sensor data captured by a primary camera. The system also includes means for detecting at least one input associated with an area of the screen. The system additionally includes means for, based on the at least one input associated with the screen area, determining a secondary camera to preemptively activate in anticipation of zooming in or out. The system further includes means for preemptively activating the secondary camera. The system also includes means for, based on further input associated with the screen area, zooming the displayed representation of the environment in or out based on secondary sensor data captured by the secondary camera.
[0007] The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the figures and the following detailed description and the accompanying drawings.BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Figure 1 illustrates an example computing device, in accordance with example embodiments.
[0009] Figure 2 is a simplified block diagram showing some of the components of an example computing system.
[0010] Figure 3 is a flow chart of a method, in accordance with example embodiments.
[0011] Figure 4 depicts an image, in accordance with example embodiments.
[0012] Figure 5 depicts an image, in accordance with example embodiments.
[0013] Figure 6 depicts a graph, in accordance with example embodiments.
[0014] Figure 7 depicts a graph, in accordance with example embodiments.
[0015] Figure 8 depicts an image, in accordance with example embodiments.
[0016] Figure 9 depicts a process for switching cameras, in accordance with example embodiments.DETAILED DESCRIPTION
[0017] Example methods, devices, and systems are described herein. It should be understood that the words “example” and “exemplary” are used herein to mean “serving as an example, instance, or illustration.” Any embodiment or feature described herein as being an “example” or “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments or features unless indicated as such. Other embodiments can be utilized, and other changes can be made, without departing from the scope of the subject matter presented herein.
[0018] Thus, the example embodiments described herein are not meant to be limiting. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations.
[0019] Throughout this description, the articles “a” or “an” are used to introduce elements of the example embodiments. Any reference to “a” or “an” refers to “at least one,” and any reference to “the” refers to “the at least one,” unless otherwise specified, or unless the context clearly dictates otherwise. The intent of using the conjunction “or” within a described list of at least two terms is to indicate any of the listed terms or any combination of the listed terms.
[0020] The use of ordinal numbers such as “first,” “second,” “third” and so on is to distinguish respective elements rather than to denote a particular order of those elements. For the purpose of this description, the terms “multiple” and “a plurality of’ refer to “two or more” or “more than one.”
[0021] Further, unless context suggests otherwise, the features illustrated in each of the figures may be used in combination with one another. Thus, the figures should be generally viewed as component aspects of one or more overall embodiments, with the understanding that not all illustrated features are necessary for each embodiment. In the figures, similar symbols typically identify similar components, unless context dictates otherwise. Further, unless otherwise noted, figures are not drawn to scale and are used for illustrative purposes only. Moreover, the figures are representational only and not all components are shown. For example, additional structural or restraining components might not be shown.
[0022] Additionally, any enumeration of elements, blocks, or steps in this specification or the claims is for purposes of clarity. Thus, such enumeration should not be interpreted to require or imply that these elements, blocks, or steps adhere to a particular arrangement or are carried out in a particular order.I. Overview
[0023] An image capturing device may be included in a computing system or may be a remote device communicating with a computing system. The image capturing device may send sensor data to the computing system, which the computing system may then present on a screen of the computing system, perhaps as a preview of an image that could be captured by the computing system. A user may interact with the screen of the computing system, perhaps through touching the screen or using a mouse to click areas displayed on a screen, to adjust the display of the image.
[0024] Adjusting the display of the image may cause changes to an image captured by the camera. For example, a user could indicate to the computing system to zoom in. The computing system may cause the image being displayed to be cropped, and upon receipt of an indication to capture the image, the computing system may capture the cropped image. As another example, the computing system may be connected to a plurality of cameras, at least one of which may be collecting sensor data and sending the sensor data to the computing system. The user may indicate to zoom in and / or out, and to improve the quality of the image being displayed, the computing system may switch from displaying sensor data received from one camera to displaying sensor data received from another camera with a narrower or larger field of view.
[0025] Various issues may arise from this process of switching a displayed representation of an environment on the screen from sensor data collected by one camera to sensor data captured by another camera. For example, for a computing system that is connected to or otherwise includes a primary camera, the primary camera may be activated and stream data to the computing system. The computing system may also include a secondary camera, which may be turned off or otherwise inactive. When the computing system receives an indication from a user to switch to the second camera, the user interface may experience a delay caused by the time the computing system takes to turn on the secondary camera and to converge the camera settings (e.g., exposure, white balance, autofocus, etc.) such that an image captured by the secondary camera is similar to an image captured by the primary camera. To reduce delay, the computing system may switch from displaying sensor data captured by the primary camera to displaying sensor data captured by the secondary camera without attempting to converge the camera settings. However, not converging the camera settings could cause decreased image quality. Alternatively, the computing system may turn on or otherwise activate both cameras and synchronize the settings of each of the cameras. However, this approach may cause excessive battery use by the computing system.
[0026] Provided herein are methods to facilitate transitions from a primary camera to a secondary camera while reducing effects on battery life and reducing delay times. In particular, the computing system may detect a touch input that may suggest switching cameras in the future. Based on this detection, the computing system may infer that the user is about to zoom in or out, which may require a switch from a primary camera to a secondary camera and in response, the computing system may select a secondary camera to preemptively activate. After activating the secondary camera, the computing system may then determine settings of the secondary camera to converge with settings of the primary camera such that an image captured by the secondary camera is similar to an image captured by the primary camera.
[0027] In an example zoom process, a user may drag two fingers over the screen of a computing system to zoom in and / or out. For example, the user may drag two fingers towards each other to zoom out or the user may drag two fingers away from each other to zoom in. The computing system may detect when the user initially touches the screen with the two fingers, and this initial user input may be used as a basis to infer that the user is about to zoom in and / or out. Predicting that the user is likely to zoom in and / or out, the computing system may select a secondary camera to activate. In some examples, the computing system may associate each user input with a screen area and selecting a secondary camera may be based on a distance between the screen areas associated with the user inputs. If the screen areas are a threshold high distance apart, the computing system may predict that the user is likely to move their fingers inwards and zoom out, and the computing system may activate a secondary camera with a wider field of view than the primary camera. Whereas if the computing system determines that the screen areas are a threshold low distance apart, the computing system may predict that the user is likely to move their fingers outwards and zoom in, and the computing system may activate a secondary camera with a narrower field of view than the primary camera. In some examples, the computing system may use various other inputs as an indication to zoom in and / or out (e.g., detecting one or more faces that are in the distance as an indication that an input to zoom in may follow, determining that one or more objects take up a large portion of the frame as an indication that an input to zoom out may follow, etc.).
[0028] As another example, a user may use one finger to tap an area of the screen, and the user may subsequently move another finger or a plurality of fingers over the screen to zoom in and / or out. Accordingly, the computing system may infer that the user intends to zoom in and / or out based on the initial one finger tap and subsequently select a secondary camera to activate. In some examples, the computing system may detect the screen area associated with the one finger tap. Based on the associated screen area, the computing system may inferwhether the user intends to zoom in or out and select an appropriate secondary camera to activate.
[0029] In some examples, the computing system may use historical input data to infer whether to activate a secondary camera and / or to select a secondary camera to activate. For example, the computing system may determine that when the user taps a particular screen area on the screen, the user frequently then touches another portion of the screen to zoom in and / or out. The computing system may compare the screen area associated with the initial user input with the particular screen area to determine whether the user is likely to follow up with a further user input that would cause zooming in and / or out.
[0030] As another example, the computing system may store the location of an element on a graphical user interface, where tapping on the element of the graphical user interface causes the appearance of a slider through which the user may indicate how much to zoom in and / or out. The computing system may determine whether the screen area associated with the initial user input corresponds with the location of the element to determine whether to activate a secondary camera.
[0031] Based on detecting an initial user input that can be used to infer whether the user is about to zoom in and / or out, the computing system may select a secondary camera to activate. In particular, a computing system may include three cameras, including a wide angle camera, a default camera, and a zoom camera. The computing system may default to the default camera. When the computing system detects the initial user input, the computing system may determine whether the user is intending to zoom in (for which the computing system would then preemptively activate the zoom camera) or out (for which the computing system would then preemptively activate the wide angle camera). In some examples, determining whether the user is intending to zoom in or out may depend on a distance between screen areas indicated by a plurality of user inputs, among other inputs as described above.
[0032] As an example, a user may zoom in and / or out by dragging two or more fingers apart or together on a screen. The computing system may detect that the user is about to zoom in when the fingers are a threshold high distance apart based on an initial user input and the computing system may detect that the user is about to zoom out when the fingers are a threshold low distance apart. The computing system may then activate a particular secondary camera based on the initial user input.
[0033] The computing system may use further user input to confirm that the secondary camera was accurately selected. In particular, the computing system may have activated a zoom lens, and after activating the zoom lens, the computing system may detect a user dragging bothfingers such that the distance between the areas of the screen associated with the further user input increases. The further user input may thus confirm that the computing system accurately selected a secondary camera. In some examples, the further user input may indicate that the computing system did not accurately select a secondary camera. For example, the computing system may have activated a wide angle lens, and after activating the wide angle lens, the computing system may detect a user dragging both fingers as to zoom. The computing system may then deactivate the wide angle lens and activate the zoom lens.
[0034] Activating the secondary camera based on inference from an initial user input may facilitate improvements on power saving, faster image acquisition, and superior image quality. In particular, the computing system may only activate the secondary camera when the computing system predicts that the secondary camera is likely to be used, which facilitates power savings as an active secondary camera is likely to cause significant power consumption. Further, preemptively activating the secondary camera allows for the settings of the secondary camera to converge with the settings of the primary camera during the buffer time from the initial user input to the time the computing system switches cameras. Allowing for the settings of the secondary camera to converge with those of the primary camera during the buffer time may facilitate better quality images and reduce delay when switching from the primary camera to the secondary camera.ILExample Systems and Methods
[0035] Figure 1 illustrates an example computing device 100. In examples described herein, computing device 100 may be an image capturing device and / or a video capturing device. Computing device 100 is shown in the form factor of a mobile phone. However, computing device 100 may be alternatively implemented as a laptop computer, a tablet computer, and / or a wearable computing device, among other possibilities. Computing device 100 may include various elements, such as body 102, display 106, and buttons 108 and 110. Computing device 100 may further include one or more cameras, such as front-facing camera 104 and at least one rear-facing camera 112. In examples with multiple rear-facing cameras such as illustrated in Figure 1, each of the rear-facing cameras may have a different field of view. For example, the rear facing cameras may include a wide angle camera, a main camera, and a telephoto camera. The wide angle camera may capture a larger portion of the environment compared to the main camera and the telephoto camera, and the telephoto camera may capture more detailed images of a smaller portion of the environment compared to the main camera and the wide angle camera.
[0036] Front-facing camera 104 may be positioned on a side of body 102 typically facing a user while in operation (e.g., on the same side as display 106). Rear-facing camera 112 may be positioned on a side of body 102 opposite front-facing camera 104 Referring to the cameras as front and rear facing is arbitrary, and computing device 100 may include multiple cameras positioned on various sides of body 102.
[0037] Display 106 could represent a cathode ray tube (CRT) display, a light emitting diode (LED) display, a liquid crystal (LCD) display, a plasma display, an organic light emitting diode (OLED) display, or any other type of display known in the art. In some examples, display 106 may display a digital representation of the current image being captured by front-facing camera 104 and / or rear-facing camera 112, an image that could be captured by one or more of these cameras, an image that was recently captured by one or more of these cameras, and / or a modified version of one or more of these images. Thus, display 106 may serve as a viewfinder for the cameras. Display 106 may also support touchscreen functions that may be able to adjust the settings and / or configuration of one or more aspects of computing device 100.
[0038] Front-facing camera 104 may include an image sensor and associated optical elements such as lenses. Front-facing camera 104 may offer zoom capabilities or could have a fixed focal length. In other examples, interchangeable lenses could be used with front-facing camera 104. Front-facing camera 104 may have a variable mechanical aperture and a mechanical and / or electronic shutter. Front-facing camera 104 also could be configured to capture still images, video images, or both. Further, front-facing camera 104 could represent, for example, a monoscopic, stereoscopic, or multiscopic camera. Rear-facing camera 112 may be similarly or differently arranged. Additionally, one or more of front-facing camera 104 and / or rear-facing camera 112 may be an array of one or more cameras.
[0039] One or more of front-facing camera 104 and / or rear-facing camera 112 may include or be associated with an illumination component that provides a light field to illuminate a target object. For instance, an illumination component could provide flash or constant illumination of the target object. An illumination component could also be configured to provide a light field that includes one or more of structured light, polarized light, and light with specific spectral content. Other types of light fields known and used to recover three-dimensional (3D) models from an object are possible within the context of the examples herein.
[0040] Computing device 100 may also include an ambient light sensor that may continuously or from time to time determine the ambient brightness of a scene that cameras 104 and / or 112 can capture. In some implementations, the ambient light sensor can be used to adjust the displaybrightness of display 106. Additionally, the ambient light sensor may be used to determine an exposure length of one or more of cameras 104 or 112, or to help in this determination.
[0041] Computing device 100 could be configured to use display 106 and front-facing camera 104 and / or rear-facing camera 112 to capture images of a target object. The captured images could be a plurality of still images or a video stream. The image capture could be triggered by activating button 108, pressing a softkey on display 106, or by some other mechanism. Depending upon the implementation, the images could be captured automatically at a specific time interval, for example, upon pressing button 108, upon appropriate lighting conditions of the target object, upon moving computing device 100 a predetermined distance, or according to a predetermined capture schedule.
[0042] Figure 2 is a simplified block diagram showing some of the components of an example computing system 200, such as an image capturing device and / or a video capturing device. By way of example and without limitation, computing system 200 may be a cellular mobile telephone (e g., a smartphone), a computer (such as a desktop, notebook, tablet, server, or handheld computer), a home automation component, a digital video recorder (DVR), a digital television, a remote control, a wearable computing device, a gaming console, a robotic device, a vehicle, or some other type of device. Computing system 200 may represent, for example, aspects of computing device 100.
[0043] As shown in Figure 2, computing system 200 may include communication interface 202, user interface 204, processor 206, data storage 208, and camera components 224, all of which may be communicatively linked together by a system bus, network, or other connection mechanism 210. Computing system 200 may be equipped with at least some image capture and / or image processing capabilities. It should be understood that computing system 200 may represent a physical image processing system, a particular physical hardware platform on which an image sensing and / or processing application operates in software, or other combinations of hardware and software that are configured to carry out image capture and / or processing functions.
[0044] Communication interface 202 may allow computing system 200 to communicate, using analog or digital modulation, with other devices, access networks, and / or transport networks. Thus, communication interface 202 may facilitate circuit-switched and / or packet-switched communication, such as plain old telephone service (POTS) communication and / or Internet protocol (IP) or other packetized communication. For instance, communication interface 202 may include a chipset and antenna arranged for wireless communication with a radio access network or an access point. Also, communication interface 202 may take the form of or includea wireline interface, such as an Ethernet, Universal Serial Bus (USB), or High-Definition Multimedia Interface (HDMI) port, among other possibilities. Communication interface 202 may also take the form of or include a wireless interface, such as a Wi-Fi, BLUETOOTH®, global positioning system (GPS), or wide-area wireless interface (e.g., WiMAX or 3GPP Long- Term Evolution (LTE)), among other possibilities. However, other forms of physical layer interfaces and other types of standard or proprietary communication protocols may be used over communication interface 202. Furthermore, communication interface 202 may comprise multiple physical communication interfaces (e.g., a Wi-Fi interface, a BLUETOOTH® interface, and a wide-area wireless interface).
[0045] User interface 204 may function to allow computing system 200 to interact with a human or non-human user, such as to receive input from a user and to provide output to the user. Thus, user interface 204 may include input components such as a keypad, keyboard, touch-sensitive panel, computer mouse, trackball, joystick, microphone, and so on. User interface 204 may also include one or more output components such as a display screen, which, for example, may be combined with a touch-sensitive panel. The display screen may be based on CRT, LCD, LED, and / or OLED technologies, or other technologies now known or later developed. User interface 204 may also be configured to generate audible output(s), via a speaker, speaker jack, audio output port, audio output device, earphones, and / or other similar devices. User interface 204 may also be configured to receive and / or capture audible utterance(s), noise(s), and / or signal(s) by way of a microphone and / or other similar devices.
[0046] In some examples, user interface 204 may include a display that serves as a viewfinder for still camera and / or video camera functions supported by computing system 200. Additionally, user interface 204 may include one or more buttons, switches, knobs, and / or dials that facilitate the configuration and focusing of a camera function and the capturing of images. It may be possible that some or all of these buttons, switches, knobs, and / or dials are implemented by way of a touch-sensitive panel.
[0047] Processor 206 may comprise one or more general purpose processors - e.g., microprocessors - and / or one or more special purpose processors - e.g., digital signal processors (DSPs), graphics processing units (GPUs), floating point units (FPUs), network processors, or application-specific integrated circuits (ASICs). In some instances, special purpose processors may be capable of image processing, image alignment, and merging images, among other possibilities. Data storage 208 may include one or more volatile and / or non-volatile storage components, such as magnetic, optical, flash, or organic storage, and maybe integrated in whole or in part with processor 206. Data storage 208 may include removable and / or non-removable components.
[0048] Processor 206 may be capable of executing program instructions 218 (e.g., compiled or non-compiled program logic and / or machine code) stored in data storage 208 to carry out the various functions described herein. Therefore, data storage 208 may include a non-transitory computer-readable medium, having stored thereon program instructions that, upon execution by computing system 200, cause computing system 200 to carry out any of the methods, processes, or operations disclosed in this specification and / or the accompanying drawings. The execution of program instructions 218 by processor 206 may result in processor 206 using data 212.
[0049] By way of example, program instructions 218 may include an operating system 222 (e.g., an operating system kernel, device driver(s), and / or other modules) and one or more application programs 220 (e.g., camera functions, address book, email, web browsing, social networking, audio-to-text functions, text translation functions, and / or gaming applications) installed on computing system 200. Similarly, data 212 may include operating system data 216 and application data 214. Operating system data 216 may be accessible primarily to operating system 222, and application data 214 may be accessible primarily to one or more of application programs 220. Application data 214 may be arranged in a file system that is visible to or hidden from a user of computing system 200.
[0050] Application programs 220 may communicate with operating system 222 through one or more application programming interfaces (APIs). These APIs may facilitate, for instance, application programs 220 reading and / or writing application data 214, transmitting or receiving information via communication interface 202, receiving and / or displaying information on user interface 204, and so on.
[0051] In some cases, application programs 220 may be referred to as “apps” for short. Additionally, application programs 220 may be downloadable to computing system 200 through one or more online application stores or application markets. However, application programs can also be installed on computing system 200 in other ways, such as via a web browser or through a physical interface (e.g., a USB port) on computing system 200.
[0052] Camera components 224 may include, but are not limited to, an aperture, shutter, recording surface (e.g., photographic film and / or an image sensor), lens, shutter button, infrared projectors, and / or visible-light projectors. Camera components 224 may include components configured for capturing of images in the visible-light spectrum (e.g., electromagnetic radiation having a wavelength of 380 - 700 nanometers) and / or components configured for capturing ofimages in the infrared light spectrum (e.g., electromagnetic radiation having a wavelength of 701 nanometers - 1 millimeter), among other possibilities. Camera components 224 may be controlled at least in part by software executed by processor 206.
[0053] Histogram processing algorithm(s) 226 may include one or more stored algorithms programmed to process histogram information to facilitate autofocus as described herein. In some examples, histogram processing algorithm(s) 226 may include one or more trained machine learning models. In other examples, histogram processing algorithm(s) 226 may be based on heuristics without the use of machine learning. In further examples, a combination of different types of histogram processing algorithm(s) 226 may be used as well.
[0054] In further examples, one or more remote cameras 230 may be controlled by computing system 200. For instance, computing system 200 may transmit control signals to the one or more remote cameras 230 through a wireless or wired connection. Such signals may be transmitted as part of an ambient computing environment. In such examples, inputs received at the computing system 200 (for instance, physical movements of a wearable device) may be mapped to movements or other functions of the one or more remote cameras 230. Images captured by the one or more remote cameras 230 may be transmitted to the computing system 200 for further processing. Such images may be treated as images captured by cameras physically located on the computing system 200.
[0055] Figure 3 is a flow chart of a method, in accordance with example embodiments. Method 300 may be executed by one or more computing systems (e.g., computing system 200 of Figure 2) and / or one or more processors (e.g., processor 206 of Figure 2). Method 300 may be carried out on a computing system, such as computing system 100 of Figure 1.
[0056] In some examples, method 300 may be executed by a system that includes a mobile device. The mobile device may include one or more cameras and / or one or more computing systems. Additionally and / or alternatively, the mobile device may communicate with one or more sensors and / or one or more cameras remote from the device. The mobile device may receive information transmitted by the sensors and / or cameras, and the mobile device may then use the information for the process described herein.
[0057] At block 302, method 300 includes displaying on a screen a representation of an environment based on primary sensor data captured by a primary camera. In particular, a computing system may include a screen, such as display 106 discussed in the context of Figure 1 or a display that is wirelessly connected to a processor of the computing system. The computing system may also include a camera, such as camera 104 or camera 112 discussed in the context of Figure 1 or a camera that is wirelessly connected to the processor of thecomputing system. The camera of the computing system may collect sensor data of the environment and transmit the collected sensor data to the computing system. The computing system may receive the sensor data and transmit the sensor data to a screen to display.
[0058] For example, Figure 4 depicts an image 400, in accordance with example embodiments. The computing system may receive sensor data from a camera depicting an environment, and the computing system may display image 400 on the screen. In some examples, the computing system may receive a stream of data from the camera and the stream of data may include one or more images. The computing system may display the one or more images on the screen as a preview of an image that could be captured and stored to memory. Image 400 may be one such image displayed on the screen as a preview of an image that could be captured by the computing system and stored into the memory.
[0059] Referring back to Figure 3, at block 304, method 300 includes detecting at least one input associated with an area of the screen. The input may be a user input, such as tapping or touching the screen with one or more fingers. The input may also be clicking an area of the screen or otherwise indicating an area of the screen.
[0060] In some examples, the input may be indicative of further input. For example, the computing system may detect tapping at a particular area of the screen, which may be associated with an area of the screen that is typically tapped to zoom in and / or out of the image. The area of the screen may be associated with a button on a graphical user interface, where the button may be tapped to display a graphical user interface item of how much to zoom in and / or out. The computing system may also detect a pattern of inputs (e.g., two fingers touching the screen) that may typically precede an indication to zoom. For example, a user may drag two fingers in and / or out as an indication to zoom out or zoom in, respectively, and the computing system may use the initial input of detecting the initial touch of the two fingers on the screen as being indicative of likely future input to zoom in and / or out.
[0061] In some examples, the computing system may determine whether the input is likely indicative of future input based on a distance of inputs. For example, if the computing system receives a plurality of inputs, the computing system may calculate the distance between the inputs and determine whether the input is indicative of further input based on the distance being greater or lesser than a threshold value. A threshold high value may indicate a threshold distance over which a calculated distance is indicated to be disregarded and a threshold low value may indicate a threshold distance over which a calculated distance is also indicated to be disregarded.
[0062] The input may be on a screen of the computing system while the screen is displaying an image as described above. For example, Figure 5 depicts image 500, in accordance with example embodiments. The computing system may display image 500 on a screen. As discussed above, the computing system may display a stream of images as a preview, and as such, image 500 may be a different or the same image as image 400.
[0063] While image 500 is being displayed on a screen of the computing system, the computing system may detect input 502 and additional input 504, which correspond to the indicated areas on image 500. Input 502 and additional input 504 may be indicated by a user tapping a screen using two fingers, clicking two areas of a screen, programmatically through two sets of dynamic or static coordinates, among other examples.
[0064] The computing system may also detect one or more further inputs. For example, in addition to input 502 and additional input 504, the computing system may detect a further input, perhaps in an example where a computing system uses a three touch zoom process (e.g., a process where the user moves their fingers inwards and / or outwards to zoom out and / or in, respectively).
[0065] Each of the inputs may be detected simultaneously, which may be defined as inputs within a threshold time period of each other. For example, the computing system may detect input 502 and subsequently, after 1 ms, the computing system may detect input 504. The computing system may determine that input 502 and input 504 are simultaneous inputs and likely indicative of further input.
[0066] In some examples, the computing system may use historical data to determine whether the input is indicative of likely future input. The historical data may be stored on the computing system, and the computing system may retrieve the data and determine whether the detected areas of the screen are similar to areas associated with historical inputs that were followed by a zoom in and / or out process. For example, the computing system may take an average of the coordinates indicating more areas of an image or of a screen that were frequently inputted before a zoom process, and the computing system may determine whether the indicated one or more areas (e g., input 502 and / or additional input 504) are within a threshold distance of the average historical areas. The historical data may also include one or more additional fields, including, for example, which camera was then activated and used. In addition, the historical data may include distances between a plurality of inputs, which may be compared with a determined distance between a plurality of received inputs to determine whether the data is likely indicative of further input. Other examples are also possible.
[0067] Referring back to Figure 3, at block 306, method 300 includes, based on the at least one input associated with the screen area, determining a secondary camera to preemptively activate in anticipation of zooming in or out. The computing system may be connected to a plurality of cameras, and the computing system may select a camera from the plurality of cameras to activate based on the at least one input associated with the screen area. In particular, the computing system may be connected to a wide angle camera, a default camera, and a zoom camera. The wide camera may have a larger field of view than the default camera and the zoom camera, while the default camera may have a narrower field of view than the wide angle camera but a larger field of view than the zoom camera. The zoom camera may have the narrowest field of view and may be able to capture zoomed-in scenes in more detail. The computing system may also include one or more other cameras with distinct characteristics as well.
[0068] Accordingly, with a plurality of cameras to choose from, the computing system may select the camera with the most likelihood of subsequently being used based on the inputs. Selecting the camera with the most likelihood of being used may be based on the camera that is activated and being used at the time of receiving the input. For example, the computing system may receive an input indicative of zooming in and / or out while receiving and / or displaying data from a wide angle camera, and the wide angle camera has the largest field of view of any camera in the computing system. As such, the computing system may select to activate the camera with a narrower field of view than the wide angle camera. In the example of the three cameras above, the computing system may select to activate the default camera with a wider field of view than the zoom lens but a narrower field of view than the wide angle lens.
[0069] When the computing system detects a plurality of inputs and determines that the plurality of inputs indicates further input to zoom in and / or out, the computing system may determine the distance between the plurality of inputs to select a camera. For example, Figure 6 depicts graph 600 of distances, in accordance with example embodiments. In Figure 6, the computing system may detect two inputs and the computing system may determine a distance between the two inputs. Distance 604 is plotted against time 602 in graph 600. The computing system may then compare the distances to a threshold distance, as indicated by threshold distance 606.
[0070] For example, the computing system may detect a plurality of inputs at point 610. The computing system may calculate a distance between the inputs as indicated by graph 600 and the computing system may determine that the distance between the inputs is less than threshold distance 606. The inputs may be a user input of tapping a plurality of fingers on the screen, andthe computing system may predict that a user is likely to drag their fingers outwards to zoom in (in other words, that the distance between the inputs is likely to increase). Accordingly, after detecting that the distance of the inputs is less than threshold distance 606, the computing system may select to activate a camera that has a narrower field of view than the camera (e.g., a zoom camera). At point 612, the computing system may activate the zoom camera, and the computing system may switch to using the zoom camera at point 614 after activating the zoom camera at point 612.
[0071] As another example, and perhaps after switching to using the zoom camera, the computing system may detect an input at point 620, and the computing system may determine that the input is above the threshold distance 606. As in the example above, the inputs may be a user input of tapping a plurality of fingers on the screen, and the computing system may predict the distance between the plurality of inputs is likely to decrease to indicate to the computing system to zoom out. Accordingly, after detecting that the distance of the inputs is greater than threshold distance 606, the computing system may select a camera to activate based on the camera that is sending the data to the computing system at the point when the inputs are received. For example, if the computing system has switched to zoom camera and the camera is receiving data from the zoom camera at point 620 when the input is received, the computing system may select a default camera with a wider field of view than the zoom camera to activate at point 622. If the computing system is displaying data from the default camera, the computing system may select a wide angle camera to activate at point 622. After activating the wide angle camera at point 622, the computing system may receive further input validating the input.
[0072] As mentioned above, inputs may be user inputs as well as other inputs, such as inputs from analyzing sensor data from the primary camera and other sensors. For example, the computing system may perform one or more image analysis processes to determine if a subject in an image received from the camera takes up more than a threshold high amount of the area within the image (which may indicate an intention to zoom out) or if the image received from the camera takes up less than a threshold low amount of the area within the image (which may indicate an intention to zoom in).
[0073] In some examples, the computing system may use dimensions of the display area and / or physical dimensions of the screen in addition to the distance between the detected screen areas. The display area may be an area in which an image is displayed. The computing system may determine a ratio between the distance between the detected screen areas and the dimensions of the display to select a camera to activate, perhaps by comparing the determined ratio to oneor more threshold ratios. For example, the computing system may detect a plurality of inputs and may determine that the distance between the inputs is 2 cm. The computing system may then compare that distance of 2 cm to dimensions of the screen which may be 15 cm by 20 cm to obtain a ratio of 2 / 20. Since the ratio of 2 / 20 is relatively small, the computing system may determine that it is likely for the user to zoom in, and as such, the computing system may determine to select a camera with a narrower field of view to preemptively activate.
[0074] Further, the computing system may determine a camera to preemptively activate based on the location of a detected input relative to the display area and / or the screen. For example, the computing system may determine whether the detected input is at the edge of the display area and / or the screen or whether the detected input is at the center of the display area of the screen. If the input is detected closer to the center of the display area or the screen, the computing system may determine that the user intends to zoom in, and the computing system may preemptively activate a zoom camera. Whereas, if the input is detected closer to the edge of the display area or the screen, the computing system may determine that the user intends to zoom out, and the computing system may preemptively activate a wide angle camera, or vice versa. In some examples, the computing system may compare the distance of the input from the edge of the screen to one or more threshold distances to determine a camera to preemptively activate.
[0075] Referring back to Figure 3, at block 308, method 300 includes preemptively activating the secondary camera. As mentioned above, preemptively activating the secondary camera may be advantageous in terms of battery consumption and user experience. In particular, the computing system may be able to activate the secondary camera in a targeted manner, where the computing system activates the secondary camera after detecting an input indicating further input to zoom in and / or out.
[0076] In some examples, preemptively activating the secondary camera may cause the camera to converge the settings of the selected secondary camera with those of the primary camera. Settings may include an exposure setting, a white balance setting, a focus setting, among other settings. By converging the settings of the selected secondary camera with those of the primary camera, the computing system may determine settings for the secondary camera that result in sensor data with similar white balance, focus, and exposure as to the primary camera. The converged settings of the secondary camera may be different than the settings of the primary camera, despite the sensor data of the secondary camera having similar properties when compared with the primary camera. In some examples, converging the one or more settings of the secondary camera with one or more settings of the primary camera may involve adjustingthe settings based on analyzing data from the secondary camera and / or one or more additional sensors.
[0077] Figure 7 depicts graph 700, in accordance with example embodiments. Graph 700 depicts battery consumption as the input is detected and the secondary camera is activated. Graph 700 plots power 704 against time 702. At point 710, the computing system may detect an input. At point 712 (and after detecting an input at point 710), the computing system may activate the secondary camera. After activating the secondary camera, and as discussed below, the computing system may then detect further inputs that may validate selecting the secondary camera and cause the computing system to switch to the secondary camera at point 714.
[0078] In some examples, after preemptively activating the secondary camera, the computing system may receive further user input that may be used to verify that the secondary camera was correctly activated For example, if the computing system detects two inputs that are above a threshold distance apart, the computing system may preemptively activate a wide angle camera. When the computing system detects further inputs that are decreasing distances apart, the computing system may verify that the further user input indicates that activating the wide angle camera was correct. If the computing system determines that selecting that particular secondary camera to activate was inaccurate, the computing system may deactivate that camera and select an appropriate secondary camera to activate instead.
[0079] Preemptively activating the secondary camera may take advantage of a delay from the time from the initial input to the further input, such that operations that may affect user experience may be conducted during the delay period. As such, a user may not see the settings of the secondary camera converging, and the user may not experience a delay between switching from a primary camera to a secondary camera.
[0080] Further, activating the secondary camera preemptively during the delay period may cause the computing system to have an advantage in battery life as well. In particular, by preemptively activating the secondary camera rather than having the secondary camera constantly activated may cause the secondary camera to turn on and use power when the secondary camera is anticipated to being used, rather than using power when the secondary camera is not anticipated to be used and when the secondary camera likely has no use.
[0081] Referring back to Figure 3, at block 310, method 300 includes, based on further input associated with the screen area, zooming the displayed representation of the environment in or out based on secondary sensor data captured by the secondary camera. In particular, the further input may be a user input of dragging the fingers of the initial user input apart. The further input may indicate an amount to zoom in and / or out. For example, if the distance between thedetected inputs are increasing (e.g., the fingers are being dragged apart), then the computing system may determine that the further input is indicating to zoom in. If the distance between the detected inputs are decreasing (e g., the fingers are being dragged together), then the computing system may determine that the further input is indicating to zoom out.
[0082] The further input may also indicate an amount to zoom in and / or out. For example, if the computing system detects further user inputs with increasing distances between a plurality of inputs (e.g., that fingers are being dragged apart), the computing system may determine how much to zoom in based on how far apart the inputs are. And conversely, if the computing system detects further user inputs with decreasing distances between a plurality of inputs (e g., that fingers are being dragged together), the computing system may determine how much to zoom out based on how far apart the inputs are. As an example, if the computing system determines that a plurality of inputs initially detected are 100 pixels apart, then receives further inputs with distances gradually increasing from 100 pixels apart to 500 pixels apart, the computing system may determine to gradually crop sensor data from the primary camera as if to zoom in while the distances are changing from 100 pixels apart to 500 pixels apart.
[0083] At a particular threshold of change in distance between the inputs or at a particular point while zooming in and / or out, the computing system may determine that the secondary camera may be used for sensor data to display to a user instead. For example, the computing system may include a 3x zoom lens, and the computing system may switch to the 3x zoom lens after determining that the input indicates to zoom more than 3x. As another example, if the input indicates to zoom out, the computing system may switch to a wide angle lens after detecting an input to zoom out that exceeds the capabilities of the lens being used.
[0084] Figure 8 depicts image 800, in accordance with example embodiments. Image 800 may be an image captured after switching cameras. The computing system may capture or otherwise receive image 800 from the secondary camera. Image 800 may be part of a stream of images received from the sensor data of the secondary camera. Since the computing system may converge the settings of the secondary camera with those of the primary camera during the delay period mentioned above and before switching to displaying data from the secondary camera, the computing system may be able to seamlessly switch from displaying data from the primary camera to data from the secondary camera. As such, image 800 may have similar exposure, white balance, and focus when compared to image 400 of Figure 4.
[0085] In some examples, after zooming to show the zoomed in and / or out representation of the environment and switching to receiving sensor data from the secondary camera, the computing system may deactivate the primary camera. If the computing system receives inputindicating to zoom in and / or out, the computing system may repeat the process described herein with the selected secondary camera as the primary camera. Based on the selected secondary camera as the primary camera, the computing system may then determine another secondary camera to preemptively activate.
[0086] In some examples, after switching to the secondary camera, the computing system may detect further input associated with another area of the screen. The computing system may determine a third camera to preemptively activate based on the further user input and based on the disclosure herein. For example, the computing system may include a wide angle camera, a default camera, and a zoom camera. The wide angle camera may be the primary camera, and the computing system may preemptively activate the default camera as the secondary camera based on input indicating to zoom in. After receiving further input, the computing system may then switch to the default camera, and while the computing system is receiving and displaying sensor data from the default camera, the computing system may receive additional input indicating to zoom in further. The computing system may then preemptively activate the zoom camera as the tertiary camera. In some examples, the primary camera and the tertiary camera may be the same.
[0087] Figure 9 depicts process 900 for switching cameras, in accordance with example embodiments. Process 900 may include method 300 of Figure 3 and illustrates the parallel blocks of the method.
[0088] Process 900 may be triggered by detecting an input at block 902. Based on detecting an input at block 902, the computing system may then simultaneously zoom in and / or out at block 904 and estimate zoom at block 910.
[0089] In particular, if the computing system receives further user input to zoom in and / or out, then the computing system may adjust the display of the sensor data from the primary camera accordingly.
[0090] Meanwhile, the computing system may estimate how much the user may want to zoom at block 910. The computing system may determine whether zooming in or zooming out is more likely, and based on this determination, the computing system may determine a secondary camera to activate.
[0091] At block 912, the computing system may enable the secondary camera. And after enabling the secondary camera, the computing system may converge the secondary camera settings at block 914 as discussed above, so that when the computing system detects a further input that causes the computing system to switch to the secondary camera, the computingsystem may seamlessly switch to data from the secondary camera without a significant difference in sensor data settings (e.g., focus, white balance, etc.).
[0092] After receiving an indication to zoom in and / or out, the computing system may receive a further input to switch display of sensor data from the primary camera to sensor data from the secondary camera at block 906. During the time period between detecting an input at block 902 and switching to display sensor data from the primary camera to sensor data from the secondary camera, the computing system may carry out estimating a zoom and selecting a camera at block 910, enabling a secondary camera at block 912, and converging secondary camera settings at 914. The computing system may repeat this process for each input detected that may be indicative of further user input.
[0093] Referring back to Figure 3, in some examples, method 300 further includes detecting an additional input associated with an additional area of the screen, wherein determining the secondary camera to preemptively activate in anticipation of zooming in or out is based on the additional input associated with the additional area of the screen.
[0094] In some examples, the method further includes determining a distance between the area of the screen and the additional area of the screen, wherein determining the secondary camera to preemptively activate is based on the determined distance.
[0095] In some examples, determining the secondary camera to preemptively activate comprises comparing the distance between the area of the screen and the additional area of the screen to a threshold distance and, based on the distance being above the threshold distance, selecting a camera having a larger field of view than the primary camera, wherein the selected camera is the secondary camera.
[0096] In some examples, determining the secondary camera to preemptively activate comprises comparing the distance between the area of the screen and the additional area of the screen to a threshold distance and, based on the distance being below the threshold distance, selecting a camera having a smaller field of view than the primary camera, wherein the selected camera is the secondary camera.
[0097] In some examples, method 300 further comprises receiving historical input data, wherein determining the secondary camera is further based on the historical input data.
[0098] In some examples, determining the secondary camera comprises based on the historical input data, determining a location associated with past inputs, wherein each of the past inputs is associated with activating a camera. Determining the secondary camera may also comprise determining a distance between the area of the screen associated with the at least one input andthe location associated with the past inputs and determining the secondary camera to activate based on the determined distance.
[0099] In some examples, preemptively activating the secondary camera comprises converging one or more settings of the secondary camera with one or more settings of the primary camera, wherein zooming the displayed representation of the environment in or out is based on secondary sensor data captured using the one or more converged settings.
[0100] In some examples, the one or more settings includes an exposure setting, a white balance setting, and a focus setting, wherein converging the one or more settings of the secondary camera with the one or more settings of the primary camera results in the one or more settings of the secondary camera being different from the one or more settings of the primary camera.
[0101] In some examples, preemptively activating the secondary camera causes power consumption during the future input to be higher than power consumption during the at least one input.
[0102] In some examples, method 300 further includes, after preemptively activating the secondary camera, receiving the further input and, based on the further input, verifying that the further input indicates activating the secondary camera, wherein zooming the displayed representation of the environment in or out is based on the verifying.
[0103] In some examples, zooming the displayed representation of the environment in or out based on the secondary sensor data comprises switching from displaying the representation of the environment based on the primary sensor data to displaying a representation of the environment based on the secondary sensor data captured by the secondary camera.
[0104] In some examples, method 300 further includes after zooming the displayed representation of the environment in or out based on the secondary sensor data, deactivating the primary camera.
[0105] In some examples, preemptively activating the secondary camera occurs during a time period from the at least one input to the further input.
[0106] In some examples, the screen is a touchscreen, wherein detecting the at least one input associated with the area of the screen comprises detecting a user touch input on the screen.
[0107] In some examples, method 300 further includes after zooming the displayed representation of the environment in or out based on the secondary sensor data captured by the secondary camera, deactivating the primary camera.
[0108] In some examples, after the further input associated with the area of the screen, detecting at least one additional input associated with an additional area of the screen, andbased on the at least one additional input associated with the additional area of the screen, determining a tertiary camera to preemptively activate in anticipation of zooming in or out.
[0109] In some examples, a system may comprise a processor and a non-transitory computer- readable medium having stored thereon instructions that, when executed by the processor, cause the processor to perform operations of method 300.
[0110] In some examples, the system further comprises a wide angle camera and a zoom camera, where determining the secondary camera to preemptively activate in anticipation of zooming in or out comprises selecting the wide angle camera in anticipation of zooming out or selecting the zoom camera in anticipation of zooming in.[OHl] In some examples, a non-transitory computer readable medium comprising program instructions executable by one or more processors to perform operations, the operations comprising the method of Figure 3.III. Conclusion
[0112] The present disclosure is not to be limited in terms of the particular embodiments described in this application, which are intended as illustrations of various aspects. Many modifications and variations can be made without departing from its scope, as will be apparent to those skilled in the art. Functionally equivalent methods and apparatuses within the scope of the disclosure, in addition to those described herein, will be apparent to those skilled in the art from the foregoing descriptions. Such modifications and variations are intended to fall within the scope of the appended claims.
[0113] The above detailed description describes various features and operations of the disclosed systems, devices, and methods with reference to the accompanying figures. In the figures, similar symbols typically identify similar components, unless context dictates otherwise. The example embodiments described herein and in the figures are not meant to be limiting. Other embodiments can be utilized, and other changes can be made, without departing from the scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations.
[0114] With respect to any or all of the message flow diagrams, scenarios, and flow charts in the figures and as discussed herein, each step, block, and / or communication can represent a processing of information and / or a transmission of information in accordance with example embodiments. Alternative embodiments are included within the scope of these example embodiments. In these alternative embodiments, for example, operations described as steps,blocks, transmissions, communications, requests, responses, and / or messages can be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved. Further, more or fewer blocks and / or operations can be used with any of the message flow diagrams, scenarios, and flow charts discussed herein, and these message flow diagrams, scenarios, and flow charts can be combined with one another, in part or in whole.
[0115] A step or block that represents a processing of information may correspond to circuitry that can be configured to perform the specific logical functions of a herein-described method or technique. Alternatively or additionally, a block that represents a processing of information may correspond to a module, a segment, or a portion of program code (including related data). The program code may include one or more instructions executable by a processor for implementing specific logical operations or actions in the method or technique. The program code and / or related data may be stored on any type of computer readable medium such as a storage device including random access memory (RAM), a disk drive, a solid state drive, or another storage medium.
[0116] The computer readable medium may also include non-transitory computer readable media such as computer readable media that store data for short periods of time like register memory, processor cache, and RAM. The computer readable media may also include non- transitory computer readable media that store program code and / or data for longer periods of time. Thus, the computer readable media may include secondary or persistent long term storage, like read only memory (ROM), optical or magnetic disks, solid state drives, compactdisc read only memory (CD-ROM), for example. The computer readable media may also be any other volatile or non-volatile storage systems. A computer readable medium may be considered a computer readable storage medium, for example, or a tangible storage device.
[0117] Moreover, a step or block that represents one or more information transmissions may correspond to information transmissions between software and / or hardware modules in the same physical device. However, other information transmissions may be between software modules and / or hardware modules in different physical devices.
[0118] The particular arrangements shown in the figures should not be viewed as limiting. It should be understood that other embodiments can include more or less of each element shown in a given figure. Further, some of the illustrated elements can be combined or omitted. Yet further, an example embodiment can include elements that are not illustrated in the figures.
[0119] While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodimentsdisclosed herein are for the purpose of illustration and are not intended to be limiting, with the true scope being indicated by the following claims.
Claims
CLAIMS1. A method comprising: displaying on a screen a representation of an environment based on primary sensor data captured by a primary camera; detecting at least one input associated with an area of the screen; based on the at least one input associated with the area of the screen, determining a secondary camera to preemptively activate in anticipation of zooming in or out; preemptively activating the secondary camera; and based on further input associated with the area of the screen, zooming the displayed representation of the environment in or out based on secondary sensor data captured by the secondary camera.
2. The method of claim 1, further comprising: detecting an additional input associated with an additional area of the screen, wherein determining the secondary camera to preemptively activate in anticipation of zooming in or out is based on the additional input associated with the additional area of the screen.
3. The method of claim 2, further comprising: determining a distance between the area of the screen and the additional area of the screen, wherein determining the secondary camera to preemptively activate is based on the determined distance.
4. The method of claim 3, wherein determining the secondary camera to preemptively activate comprises: comparing the distance between the area of the screen and the additional area of the screen to a threshold distance; and based on the distance being above the threshold distance, selecting a camera having a larger field of view than the primary camera, wherein the selected camera is the secondary camera.
5. The method of claim 3, wherein determining the secondary camera to preemptively activate comprises: comparing the distance between the area of the screen and the additional area of the screen to a threshold distance; andbased on the distance being below the threshold distance, selecting a camera having a smaller field of view than the primary camera, wherein the selected camera is the secondary camera.
6. The method of claim 1, further comprising: receiving historical input data, wherein determining the secondary camera is further based on the historical input data.
7. The method of claim 6, wherein determining the secondary camera comprises: based on the historical input data, determining a location associated with past inputs, wherein each of the past inputs is associated with activating a camera; determining a distance between the area of the screen associated with the at least one input and the location associated with the past inputs; and determining the secondary camera to activate based on the determined distance.
8. The method of claim 1, wherein preemptively activating the secondary camera comprises: converging one or more settings of the secondary camera with one or more settings of the primary camera, wherein zooming the displayed representation of the environment in or out is based on secondary sensor data captured using the one or more converged settings.
9. The method of claim 8, wherein the one or more settings includes an exposure setting, a white balance setting, and a focus setting, wherein converging the one or more settings of the secondary camera with the one or more settings of the primary camera results in the one or more settings of the secondary camera being different from the one or more settings of the primary camera.
10. The method of claim 1, wherein preemptively activating the secondary camera causes power consumption during the future input to be higher than power consumption during the at least one input.
11. The method of claim 1, further comprising: after preemptively activating the secondary camera, receiving the further input; andbased on the further input, verifying that the further input indicates activating the secondary camera, wherein zooming the displayed representation of the environment in or out is based on the verifying.
12. The method of claim 1, wherein zooming the displayed representation of the environment in or out based on the secondary sensor data comprises: switching from displaying the representation of the environment based on the primary sensor data to displaying a representation of the environment based on the secondary sensor data captured by the secondary camera.
13. The method of claim 1, wherein determining the secondary camera to preemptively activate in anticipation of zooming in or out is further based on one or more dimensions of the screen.
14. The method of claim 1, wherein preemptively activating the secondary camera occurs during a time period from the at least one input to the further input.
15. The method of claim 1, wherein the screen is a touchscreen, wherein detecting the at least one input associated with the area of the screen comprises detecting a user touch input on the screen.
16. The method of claim 1, further comprising: after zooming the displayed representation of the environment in or out based on the secondary sensor data captured by the secondary camera, deactivating the primary camera.
17. The method of claim 1, further comprising: after the further input associated with the area of the screen, detecting at least one additional input associated with an additional area of the screen; and based on the at least one additional input associated with the additional area of the screen, determining a tertiary camera to preemptively activate in anticipation of zooming in or out.
18. A system comprising: a processor; anda non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to perform operations, wherein the operations comprise: displaying on a screen a representation of an environment based on primary sensor data captured by a primary camera; detecting at least one input associated with an area of the screen; based on the at least one input associated with the area of the screen, determining a secondary camera to preemptively activate in anticipation of zooming in or out; preemptively activating the secondary camera; and based on further input associated with the area of the screen, zooming the displayed representation of the environment in or out based on secondary sensor data captured by the secondary camera.
19. The system of claim 18, wherein the system further comprises a wide angle camera and a zoom camera, wherein determining the secondary camera to preemptively activate in anticipation of zooming in or out comprises: selecting the wide angle camera in anticipation of zooming out; or selecting the zoom camera in anticipation of zooming in.
20. A non-transitory computer readable medium storing program instructions that, when executed by a computing device, cause the computing device to perform operations, wherein the operations comprise: displaying on a screen a representation of an environment based on primary sensor data captured by a primary camera; detecting at least one input associated with an area of the screen; based on the at least one input associated with the area of the screen, determining a secondary camera to preemptively activate in anticipation of zooming in or out; preemptively activating the secondary camera; and based on further input associated with the area of the screen, zooming the displayed representation of the environment in or out based on secondary sensor data captured by the secondary camera.
Citation Information
Patent Citations
Shooting method based on dual camera and terminal
CN106303258A
A method for switching camera application functions, a terminal, and a computer-readable storage medium.
CN111614891B
Method and device for adjusting white balance and storage medium
US20190037189A1
Electronic device and method for changing magnification of image using multiple cameras
US20210400206A1
Multi-Camera Video Stabilization
US20220053133A1