Horizontal locking mode on a camera

The horizontal locking mode in the camera viewfinder stabilizes images by inferring user intent and rotating images to maintain a horizontal orientation, addressing the challenges of capturing level photographs.

DE112023006189T5Pending Publication Date: 2026-02-19GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE112023006189
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-04-13
Publication Date
2026-02-19

AI Technical Summary

Technical Problem

Users face difficulties in capturing level photographs due to challenges in maintaining a camera's horizontal position, including hand instability and external forces, which existing techniques like tripods and image stabilization methods do not adequately address.

Method used

A horizontal locking mode is implemented in the camera's viewfinder, inferring user intent to capture a horizontal image and rotating both the preview and captured images to maintain a horizontal orientation, using sensor data to stabilize the image.

Benefits of technology

Ensures accurate preview and capture of horizontal images by compensating for hand movements and external forces, providing a precise final image without the need for additional equipment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

One method involves inferring a user intent to capture a horizontal image based on the user's camera positioning. Based on the inferred user intent, the method involves causing a viewfinder to enter a horizontal locking mode, wherein the horizontal locking mode includes displaying a horizontal preview image in the viewfinder, the horizontal preview image being rotated based on the camera's orientation relative to a horizontal orientation. The method further involves receiving a signal indicating that an image should be captured. Based on the viewfinder being in the horizontal locking mode, the method involves providing a captured horizontal image, the captured horizontal image being rotated based on the camera's orientation relative to the horizontal orientation.
Need to check novelty before this filing date? Find Prior Art

Description

GENERAL STATE OF THE ART

[0001] When taking a picture of a scene with a camera, such as a mobile phone camera, it may be desirable to capture a level photo. A leveling guide can provide a visual indicator of how to level the camera to achieve this. However, even with a leveling guide, it can be difficult for the user to maintain a level position throughout the entire shooting process. The resulting photos of the scene may therefore be suboptimal. SUMMARY

[0002] The exemplary systems and methods described in this document enable the capture of horizontal images through the use of a horizontal locking mode. While the camera's viewfinder is active, it can be inferred, for example, based on the user's camera positioning, that the user intends to capture a horizontal image. When this intention is detected, the viewfinder can enter horizontal locking mode. In horizontal locking mode, a preview image can be rotated into a horizontal position, even if the camera is not perfectly level. Therefore, a horizontal preview image can be displayed to the user.If an image is then captured while the viewfinder is in horizontal locking mode, the resulting captured image can also be rotated into a horizontal position and provided to the user as a captured horizontal image.

[0003] In one embodiment, a method is disclosed that includes inferring a user intent to capture a horizontal image based on the user's camera positioning. Based on the inferred user intent, the method includes causing a viewfinder to enter a horizontal locking mode, wherein the horizontal locking mode comprises displaying a horizontal preview image in the viewfinder, the horizontal preview image being rotated based on the camera's orientation relative to a horizontal orientation. The method further includes receiving a signal indicating that an image should be captured. Based on the viewfinder being in the horizontal locking mode, the method includes providing a captured horizontal image, the captured horizontal image being rotated based on the camera's orientation relative to the horizontal orientation.

[0004] In a further embodiment, a computing device is disclosed that is configured to infer a user intent to capture a horizontal image based on the user's positioning of a camera. Based on the inferred user intent, the computing device is configured to cause a viewfinder to enter a horizontal locking mode, wherein the horizontal locking mode includes displaying a horizontal preview image in the viewfinder, the horizontal preview image being rotated based on the camera's orientation relative to a horizontal orientation. The computing device is further configured to receive a signal indicating that an image should be captured.Based on the viewfinder being in horizontal locking mode, the computing device is configured to provide a captured horizontal image, with the captured horizontal image being rotated based on the orientation of the camera relative to the horizontal alignment.

[0005] In another embodiment, one or more non-transient, computer-readable media are provided on which program instructions are stored that can be executed by one or more processors to perform operations. These operations include inferring a user intent to capture a horizontal image based on a user's positioning of a camera. Based on the inferred user intent, the operations include causing a viewfinder to enter a horizontal locking mode, wherein the horizontal locking mode includes displaying a horizontal preview image in the viewfinder, the horizontal preview image being rotated based on an orientation of the camera relative to a horizontal orientation. The operations further include receiving a signal indicating that an image should be captured.Assuming the viewfinder is in horizontal locking mode, the operations involve providing a captured horizontal image, with the captured horizontal image being rotated based on the camera's orientation relative to the horizontal alignment.

[0006] In a further embodiment, a system is provided that includes means for inferring a user intent to capture a horizontal image based on the user's positioning of a camera. Based on the inferred user intent, the system includes means for causing a viewfinder to enter a horizontal locking mode, wherein the horizontal locking mode comprises displaying a horizontal preview image in the viewfinder, the horizontal preview image being rotated based on the camera's orientation relative to a horizontal orientation. The system further includes means for receiving a signal indicating the intention to capture an image.Based on the viewfinder being in horizontal locking mode, the system includes means for providing a captured horizontal image, with the captured horizontal image being rotated based on the orientation of the camera relative to the horizontal alignment.

[0007] The foregoing summary serves only for illustration and is in no way intended to be restrictive. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become clear by reference to the figures and the following detailed description and the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS Fig. Figure 1 illustrates an exemplary image acquisition device according to exemplary embodiments. Fig. Figure 2 is a simplified block diagram showing some of the components of an exemplary image acquisition device according to exemplary embodiments. Fig. Figure 3 is a diagram illustrating possible problems in the image acquisition of horizontal images according to exemplary embodiments. Fig. Figure 4 is a block diagram illustrating a horizontal locking pipeline according to exemplary embodiments. Fig. Figure 5 illustrates a rotation of an image into a horizontal position according to exemplary embodiments. Fig. Figure 6 is a flowchart of a procedure according to exemplary embodiments. DETAILED DESCRIPTION

[0008] This document describes exemplary methods, devices, and systems. It is understood that the terms "example" and "exemplary" are used in this document to mean "serving as an example, instance, or illustration." An embodiment described in this document as "exemplary" or a feature described as exemplary is not necessarily to be construed as preferable or advantageous over other embodiments or features unless otherwise stated. Other embodiments may be used and other modifications may be made without deviating from the scope of the subject matter presented in this document.

[0009] Therefore, the exemplary embodiments described in this document are not intended to be limiting. It is readily understood that the aspects of the present disclosure, as generally described in this document and illustrated in the figures, can be arranged, replaced, combined, separated, and designed in a wide variety of different configurations.

[0010] Throughout the entire description, the articles "a" or "an" are used to introduce elements of the exemplary embodiments. Any reference to "a" or "an" refers to "at least one," and any reference to "the" refers to "the" or "at least one," unless otherwise specified or the context clearly indicates otherwise. The use of the conjunction "or" within a described list of at least two terms is intended to indicate any one of the listed terms or any combination thereof.

[0011] The use of ordinal numbers such as "first," "second," "third," and so on serves to distinguish between individual elements and not to indicate a specific order of these elements. For the purposes of this description, the terms "several" and "a multitude of" refer to "two or more" or "more than one."

[0012] Unless the context suggests otherwise, the features illustrated in the individual figures may also be used in combination. Therefore, the figures should generally be viewed as component aspects of one or more overall embodiments, bearing in mind that not all illustrated features are required for every embodiment. In the figures, similar symbols generally identify similar components unless the context specifies otherwise. Furthermore, unless otherwise noted, the figures are not drawn to scale and are for illustrative purposes only. In addition, the figures are merely representative and not all components are shown. For example, additional structural or support components may not be depicted.

[0013] Furthermore, any enumeration of elements, blocks, or steps in this description serves the purpose of better clarity. Therefore, such an enumeration should not be interpreted as requiring or implying that these elements, blocks, or steps follow a specific arrangement or are executed in a specific sequence. I. Overview

[0014] Camera users may encounter difficulties when attempting to take level photographs. There are several possible causes for such difficulties. One possibility is that in certain scenes, it can be challenging to find a reference horizon. Another is that the camera support (e.g., a human hand or a tripod) may be unable to maintain a level position. In particular, a human hand (especially a single hand) is difficult to hold perfectly and consistently in a horizontal position. Subtle hand movements can easily cause the camera position to deviate by a small amount (e.g., one or two degrees), making it difficult to capture a perfectly level photograph. An additional cause of difficulty in taking level photographs is the presence of an external force (e.g., a camera or other object).(The shaking of the camera or pressing a button) can cause subtle camera movements. In particular, when a user presses the shutter button to take a picture, the force applied to the shutter button often slightly moves the camera position, resulting in a skewed framing of the shot.

[0015] Some techniques that would help a user obtain a level image require a certain degree of special camera operation. For example, the user may need to set up and use additional external devices, such as a tripod, mechanical stabilizer, or leveled platform / support. Other techniques may involve displaying graphical position cues to assist the user in finding the level position. However, under such circumstances, the user may be physically limited in maintaining a level position for an extended period.

[0016] Other techniques can help reduce the effects of external forces that impair image quality. For example, built-in image stabilization and / or hardware vibration reduction can be used, such as optical image stabilization (OIS) or in-body image stabilization (IBIS). Additionally, software algorithms can be used to stabilize individual frames, such as electronic image stabilization (EIS). However, such techniques cannot guarantee the capture of perfectly level images.

[0017] Other techniques may involve adjusting photos during post-processing. For example, algorithms can be used to find or predict a horizontal angle and rotate the photo accordingly. An image can also be rotated automatically or manually during editing. However, such techniques can be inaccurate and do not provide the user with a precise preview of the resulting image before taking the picture.

[0018] The examples described in this document can incorporate two aspects to enable the capture of horizontal images. In the first aspect, if it can be inferred that a user intends to capture a horizontal image, a horizontal preview image can be displayed in a viewfinder before the image is captured. Sensor data (e.g., sensor data from a gravity sensor and a gyroscope) can be used to determine the rotation angle of each preview frame so that the single image can be rotated into a horizontal position (e.g., using a warp mesh). Furthermore, a user interface can be provided that clearly indicates whether the current preview frame is leveled and the viewfinder is in a horizontal locking mode (e.g., by displaying a graphical locking icon).Leveling the preview image in the viewfinder can help resolve problems related to insufficient hand stabilization when positioning a camera before taking a picture.

[0019] When a signal is received indicating that an image should be captured (e.g., when a user presses the shutter release or the shutter is automatically released) while the viewfinder is in horizontal locking mode, the resulting captured image frame can be rotated to a horizontal position. Rotating the captured image to a horizontal position can help resolve issues related to external forces acting on the camera during image capture disrupting its horizontal alignment. Furthermore, rotating both the captured image and the preview image in the viewfinder provides the user with an accurate prediction of the final image.

[0020] Some examples described in this document include a mobile computing device, such as a mobile phone, containing a camera that may be difficult to hold in a horizontal position. Other examples may include standalone cameras. Still other examples may include remote cameras, such as computing environments where cameras are operated by other communicatively connected devices. In such examples, a connected device may receive input to position a camera to capture horizontal images (e.g., input via a user interface or physical movements that are mapped to camera movements). A viewfinder with a horizontal locking mode may therefore be displayed on a device containing a camera and / or on a device communicating with a remote camera. II. Exemplary Systems and Procedures

[0021] Fig. Figure 1 illustrates an exemplary computing device 100. In the examples described in this document, the computing device 100 can be an image recording device and / or a video recording device. The computing device 100 is shown in the form factor of a mobile phone. However, the computing device 100 can alternatively be implemented as a laptop computer, tablet computer, and / or portable computing device, among other possibilities. The computing device 100 can include various elements, such as a body 102, a display 106, and buttons 108 and 110. The computing device 100 can also include one or more cameras, such as a front camera 104 and at least one rear camera 112. In examples with multiple rear cameras, as in Fig. As illustrated in Figure 1, each of the rear cameras can have a different field of view. For example, the rear cameras could include a wide-angle camera, a main camera, and a telephoto camera. The wide-angle camera can capture a larger portion of the surroundings compared to the main and telephoto cameras, and the telephoto camera can capture more detailed images of a smaller portion of the surroundings compared to the main and wide-angle cameras.

[0022] The front camera 104 can be positioned on a side of the body 102 that typically faces a user during operation (e.g., on the same side as the display 106). The rear camera 112 can be positioned on a side of the body 102 opposite the front camera 104. The reference to front-facing or rear-facing cameras is arbitrary, and the computing device 100 can include multiple cameras positioned on different sides of the body 102.

[0023] The display 106 could be a cathode ray tube display (CRT), a light-emitting diode display (LED), a liquid crystal display (LCD), a plasma display, an organic light-emitting diode display (OLED), or any other type of display known in the field. In some examples, the display 106 could show a digital representation of the current image being captured by the front camera 104 and / or the rear camera 112, an image that could be captured by one or more of these cameras, an image recently captured by one or more of these cameras, and / or a modified version of one or more of these images. Thus, the display 106 could serve as a viewfinder for the cameras.The Display 106 can also support touchscreen functions that may be able to adjust the settings and / or configuration of one or more aspects of the Computing Device 100.

[0024] The front camera 104 can include an image sensor and associated optical elements, such as lenses. The front camera 104 can offer zoom capabilities or have a fixed focal length. In other examples, interchangeable lenses could be used with the front camera 104. The front camera 104 can have a variable mechanical aperture and a mechanical and / or electronic shutter. The front camera 104 could also be configured to capture still images, video images, or both. Furthermore, the front camera 104 could, for example, be a monoscopic, stereoscopic, or multiscopic camera. The rear camera 112 can be arranged similarly or differently. Additionally, one or more of the front camera 104 and / or the rear camera 112 can constitute an array of one or more cameras.

[0025] One or more of the front camera 104 and / or the rear camera 112 may include or be associated with an illumination component that provides a light field for illuminating a target object. For example, an illumination component could provide a flash or constant illumination of the target object. Furthermore, an illumination component could be configured to provide a light field that includes one or more types of structured light, polarized light, and light with specific spectral content. Other known and used types of light fields for recovering three-dimensional (3D) models of an object are possible in the context of the examples in this document.

[0026] The computing device 100 can also include an ambient light sensor that can continuously or intermittently 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 display brightness of the display 106. Additionally, the ambient light sensor can be used to determine, or assist in determining, the exposure time of one or more of the cameras 104 or 112.

[0027] The computing device 100 could be configured to use the display 106 and the front camera 104 and / or the rear camera 112 to capture images of a target object. The captured images could be a multitude of still images or a video stream. Image capture could be triggered by pressing button 108, pressing an on-screen button on the display 106, or by another mechanism. Depending on the implementation, the images could be captured automatically at a specific time interval, for example, when button 108 is pressed, when the target object is illuminated in a certain way, when the computing device 100 is moved a predetermined distance, or according to a predetermined recording schedule.

[0028] Fig. Figure 2 is a simplified block diagram showing some of the components of an example computing system 200, such as an image capture device and / or a video capture device. For example, and without limitation, the computing system 200 could be a mobile phone (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 portable computing device, a game console, a robotic device, a vehicle, or some other type of device. The computing system 200 could, for example, represent aspects of the computing device 100.

[0029] As in Fig. As shown in Figure 2, the computing system 200 can include a communication interface 202, a user interface 204, a processor 206, a data storage device 208, and camera components 224, all of which can be communicatively connected to one another via a system bus, a network, or another connection mechanism 210. The computing system 200 can be equipped with at least some image acquisition and / or image processing capabilities. It is understood that the computing system 200 can represent a physical image processing system, a specific physical hardware platform on which an image recognition and processing application is run in software, or other combinations of hardware and software configured to perform image acquisition and / or processing functions.

[0030] The communication interface 202 enables the computer system 200 to communicate with other devices, access networks, and / or transport networks using analog or digital modulation. Thus, the communication interface 202 can enable circuit-switched and / or packet-switched communication, such as communication via plain old telephone service (POTS) and / or the Internet Protocol (IP), or other packet-switched communication. For example, the communication interface 202 can include a chipset and an antenna arranged for wireless communication with a radio access network or access point.Furthermore, the communication interface 202 can take the form of or include a wired interface, such as, among other possibilities, a port for Ethernet, Universal Serial Bus (USB), or a high-definition multimedia interface (HDMI). The communication interface 202 can also take the form of or include a wireless interface, such as, among other possibilities, Wi-Fi, Bluetooth®, a global positioning system (GPS), or a wireless wide-range interface (e.g., WiMAX, 3GPP Long-Term Evolution (LTE)). However, other types of physical layer interfaces and other types of standardized or proprietary communication protocols can also be used via the communication interface 202. In addition, the communication interface 202 can include multiple physical communication interfaces (e.g.,a Wi-Fi interface, a BLUETOOTH® interface and a wireless long-range interface).

[0031] The user interface 204 can function in such a way that the computing system 200 enables interaction with a human or non-human user, such as receiving input from the user and / or providing output to the user. Thus, the user interface 204 can include input components such as a keypad, keyboard, touch-sensitive control panel, computer mouse, trackball, joystick, microphone, and so on. The user interface 204 can also include one or more output components, such as a display screen, which may be combined with a touch-sensitive control panel. The display screen can be based on CRT, LCD, LED, and / or OLED technologies, or other technologies known today or developed in the future.The user interface 204 can also be configured to generate audible output(s) via a loudspeaker, speaker jack, audio output port, audio output device, headphones, and / or other similar devices. The user interface 204 can also be configured to receive and / or capture audible utterances, audible noises, and / or audible signals using a microphone and / or other similar devices.

[0032] In some examples, the user interface 204 may include a display that serves as a viewfinder for still camera and / or video camera functions supported by the computer system 200. Additionally, the 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 capture of images. It is possible that some or all of these buttons, switches, knobs, and / or dials are implemented via a touch-sensitive control panel.

[0033] The Processor 206 may include one or more general-purpose processors—e.g., microprocessors—and / or one or more specialized 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 cases, specialized processors may be capable of image processing, image alignment, and image merging, among other capabilities. The Data Memory 208 may include one or more volatile and / or non-volatile memory components, such as magnetic, optical, flash, or organic memory, and may be wholly or partially integrated into the Processor 206. The Data Memory 208 may include removable and / or non-removable components.

[0034] The processor 206 may be capable of executing the program instructions 218 (e.g., compiled or uncompiled program logic and / or machine code) stored in the data memory 208 in order to perform the various functions described in this document. Therefore, the data memory 208 may include a non-transient, computer-readable medium containing program instructions stored on it which, when executed by the computer system 200, cause the computer system 200 to perform one of the procedures, processes, or functions disclosed in this description and / or the accompanying drawings. The execution of the program instructions 218 by the processor 206 may cause the processor 206 to use the data 212.

[0035] For example, the program instructions 218 can include an operating system 222 (e.g., an operating system kernel, a device driver, and / or other modules) and one or more application programs 220 installed on the computer system 200 (e.g., camera functions, address book, email, web browser, social networks, audio-to-text functions, text translation functions, and / or game applications). Likewise, the data 212 can include operating system data 216 and application data 214. The operating system data 216 can be primarily accessible to the operating system 222, and the application data 214 can be primarily accessible to one or more of the application programs 220. The application data 214 can be arranged in a file system that is visible or hidden from a user of the computer system 200.

[0036] Application programs 220 can communicate with the operating system 222 via one or more application programming interfaces (APIs). These APIs can, for example, enable application programs 220 to read and / or write application data 214, transmit or receive information via the communication interface 202, receive and / or display information on the user interface 204, and so on.

[0037] In some cases, application programs for the 220 can be referred to simply as "apps." Additionally, application programs for the 220 can be downloaded to the computer system 200 via one or more online application repositories or application marketplaces. However, application programs can also be installed on the computer system 200 in other ways, such as via a web browser or via a physical interface (e.g., a USB port) on the computer system 200.

[0038] The camera components 224 may include, but are not limited to, an aperture, a shutter, a recording area (e.g., photographic film and / or an image sensor), a lens, a shutter button, infrared projectors, and / or visible light projectors. The camera components 224 may include, among other things, components configured to capture images in the visible light spectrum (e.g., electromagnetic radiation with a wavelength of 380–700 nanometers) and / or components configured to capture images in the infrared light spectrum (e.g., electromagnetic radiation with a wavelength of 701 nanometers–1 millimeter). The camera components 224 may be controlled, at least partially, by software executed by the processor 206.

[0039] In further examples, one or more remote cameras 230 can be controlled by the computer system 200. For example, the computer system 200 can transmit control signals to the one or more remote cameras 230 via a wireless or wired connection. Such signals can be transmitted as part of a surrounding computing environment. In such examples, inputs received by the computer system 200 (for example, physical movements of a portable device) can be assigned movements or other functions of the one or more remote cameras 230. The images captured by the one or more remote cameras 230 can be transmitted to the computer system 200 for further processing. Such images can be treated as images captured by cameras that are physically located on the computer system 200.

[0040] Fig. Figure 3 illustrates potential problems when capturing horizontal images according to exemplary embodiments. Specifically, it shows a user's hand positioning a phone 302, which includes a camera with a viewfinder. The viewfinder may include leveling aids to assist the user in positioning the phone 302 so that the camera captures horizontal images. In particular, the leveling aids may provide guidance on how to rotate the phone 302 into a vertical position. However, it may be difficult for the user to keep the phone 302 in a vertical position (and the camera in a horizontal position) throughout the entire process of capturing an image with the camera.

[0041] In particular, Problem 304 illustrates that a user's hand may wobble while holding the phone 302, especially when attempting to position the phone 302 while viewing the preview image in the viewfinder. This hand wobble causes the phone 302 to rotate away from the vertical, potentially resulting in an off-level image. Furthermore, Problem 306 illustrates that thumb movements by the user while holding the phone 302 can disrupt the camera's horizontal position. Specifically, thumb movements can cause a slight clockwise or counterclockwise rotation of the phone 302, resulting in an off-level image.Furthermore, Problem 308 illustrates that applying pressure to the shutter button during image capture can also cause the phone 302 and its associated camera to become unstable during the image capture process. Taken together, Problems 304, 306, and 308 can make it difficult for the user to preview and capture a horizontal image with the phone 302's camera.

[0042] The examples described in this document help to solve these problems by providing a horizontal locking mode to produce level images during both image preview and capture. During image preview, a viewfinder can be configured to display a user interface element to inform the user when the camera is locked in a horizontal position. The preview image can be rotated to stabilize it at a horizontal angle. During post-processing, rotation can also be applied to a captured image to level the photo and compensate for any movement resulting from external forces during capture.

[0043] Fig. Figure 4 is a block diagram illustrating a horizontal locking pipeline according to exemplary embodiments. More specifically, the horizontal locking pipeline 402 includes software and / or hardware components that facilitate the generation of horizontal preview and captured images. The image sensor view 404 provides an image sensor view as captured by a camera prior to the operation of the horizontal locking pipeline 402. In some examples, the image sensor view 404 may be skewed despite a user intent to capture a horizontal image.

[0044] To rotate the image sensor view 404 into a horizontal position, camera orientation data 406 can be received from one or more sensors. In some examples, the camera orientation data 406 may include data from a gyroscope, specifying a rotation of the camera about each of three axes. Additionally, the camera orientation data 406 may include data from a gravity sensor, containing a three-dimensional vector indicating the direction and magnitude of gravity, which can be used to specify a horizontal orientation. The camera orientation data 406 can be used to determine the relative orientation of a camera in space. The angle between the camera's orientation and gravity can be determined and used to determine how to rotate the images into a horizontal orientation.In other examples, other types of sensors can also be used, or used instead, to generate camera orientation data 406.

[0045] During the image preview prior to image capture, the image sensor view 404 and the camera orientation data 406 can be provided to an EIS module 408 as part of a first processing pipeline. The EIS module 408 can use software stabilization processes to stabilize the image sensor view 404. In horizontal locking mode, the software processing by the EIS module 408 can include at least rotating the image sensor view 404 into a horizontal position based on the camera orientation data 406. The EIS module 408 can therefore generate an EIS view 410. As described in Fig. As illustrated in Figure 4, the EIS view 410 is rotated based on camera orientation data 406 to produce a horizontal image. In some examples, the leveling angle applied by the EIS module 408 can be gradually adjusted (e.g., by fading in or out) to avoid large rotation changes in the preview image. In other examples, the EIS module 408 can optionally perform additional image stabilization operations.

[0046] The EIS view 410 can be used to generate a viewfinder image 412, which is displayed through the camera's viewfinder. The viewfinder image 412 can include a graphical indication 414 for a degree of camera rotation. When the viewfinder is in horizontal locking mode, the graphical indication 414 can show both that the previewed viewfinder image 412 is in a horizontal position (at 0 degrees) and that the viewfinder image 412 is locked horizontally. In some examples, when entering horizontal locking mode, the degree of rotation may no longer be displayed (e.g., a degree value may be hidden) and may be replaced by a graphical locking symbol. Because the viewfinder image 412 is locked horizontally, small rotations of the camera do not cause the viewfinder image 412 to deviate from a horizontal position.

[0047] Although in Fig. Not illustrated in Figure 4, the viewfinder image 412 can be further zoomed in to eliminate the blank areas resulting from the rotation of the image sensor view 404. For example, if the camera is rotated by 3 degrees while in horizontal locking mode, the camera's field of view can be zoomed in by approximately 5% to eliminate the blank areas. In such examples, a small loss of field of view may be a satisfactory trade-off for a horizontal image. In some examples, the rotation and scaling of the image sensor view 404 can be performed using a warp mesh.

[0048] As part of a second processing pipeline, the image sensor view 404 can also be provided to an image processing module 416, which generates a captured image after a capture signal is received. In some examples, the image processing module 416 can be a high dynamic range image processing module, such as a High Dynamic Range Plus (HDR+) module, which captures multiple images with different exposure times in rapid succession to produce a high dynamic range image. The second processing pipeline can ensure that the output of the image processing module is also leveled. More specifically, the camera orientation data 406 can also be provided to a post-processing module 418. The post-processing module 418 can apply a similar rotation to that applied to the preview image to ensure that the final captured photograph 420 is a level image.Although not in . Fig. As illustrated in Figure 4, the final captured photo 420 can also be zoomed in to remove the empty areas resulting from the image rotation. For example, the same warp mesh applied in the first processing pipeline can also be used to rotate and zoom the output image of the image processing module 416 to produce the final captured photo 420.

[0049] Fig. Figure 5 illustrates the rotation of an image into a horizontal position according to exemplary embodiments. More precisely, the unrotated image 502 is rotated to produce a horizontal image 504. A large rotation angle is used for illustrative purposes. In practice, the horizontal locking mode can only be entered if the unrotated image 502 is within a threshold angle (e.g., 5 degrees) of a horizontal position. In some examples, a user interface option may be provided that allows the user to manually force entry into the horizontal locking mode regardless of the current rotation angle. Such a user interface option may be advantageous if the user is in an environment where obtaining a horizontal image is particularly difficult (e.g., on a boat in heavy seas).

[0050] As in Fig. As illustrated in Figure 5, rotating an unrotated image 502 into a horizontal image 504 results in empty areas 506. In some examples, a smaller field of view 508 can be used to avoid showing these empty areas 506 to the user. Accordingly, the preview image shown to the user may only be the portion of the horizontal image 504 that lies within the field of view 508. In other examples, the user may be shown the complete horizontal image 504, including the empty areas 506, during the image preview to provide the user with an intuitive understanding of the field of view 508 that will ultimately be used for a resulting captured image. In such examples, a graphic indicator (e.g., a box) may also be displayed to the user during the image preview, indicating the reduced field of view 508.

[0051] Fig. Figure 6 is a flowchart of a process according to exemplary embodiments. The process 600 from Fig. 6 can be represented by one or more computing systems (e.g., the computing system 200 from Fig. 2) and / or one or more processors (e.g., the 206 processor from Fig. 2) be carried out. Method 600 can be carried out on a computing device, such as the computing device 100 from Fig. 1. In some examples, each block of Procedure 600 can be performed locally on a camera or an image-capturing device that includes a camera (e.g., a smartphone). In alternative examples, a section or all blocks of Procedure 600 can be performed by one or more computing systems located remotely from a camera or image-capturing device.

[0052] In Block 610, Method 600 involves inferring a user intent to capture a horizontal image based on a user's camera positioning. In some examples, the inference of user intent is based on an angular difference between the camera's orientation and the horizontal alignment. In some examples, the camera's orientation relative to the horizontal alignment is determined based on sensor data from a gravity sensor and a gyroscope. In some examples, the angular difference between the camera's orientation and the horizontal alignment is compared to a threshold angle. In some such examples, the threshold angle may be equal to or less than five degrees. In some examples, the inference of user intent is based on the angular difference between the camera's orientation and the horizontal alignment being present for at least one threshold period (e.g., 10 minutes).3 seconds) is less than a threshold angle (e.g., 5 degrees). By automatically entering horizontal locking mode after a user has attempted to remain horizontal for a certain duration, a smaller change in user behavior may be required to enable entry into horizontal locking mode. When a user takes a horizontal shot with a camera without horizontal locking mode, the user already spends some time adjusting the camera. Accordingly, in a system with automatic entry into horizontal locking mode based on user camera positioning, the user may only need to remain near the horizontal position slightly longer to trigger horizontal locking mode.

[0053] In some examples, inferring user intent can also be based on, or instead of, the content of a scene captured by the camera. If, in such examples, the content of the scene indicates that it is an environmental scene, it can be inferred that the user intends to take a horizontal image. Conversely, if the content of the scene indicates that it is a portrait (a relatively close-up of one or more people), it can be inferred that the user does not intend to take a horizontal image.

[0054] In Block 620, Procedure 600 involves causing a viewfinder to enter a horizontal locking mode based on the inferred user intent. The horizontal locking mode includes displaying a horizontal preview image in the viewfinder. The horizontal preview image is rotated based on the camera's orientation relative to a horizontal orientation.

[0055] In some examples, the horizontal preview image in the viewfinder is zoomed in to eliminate the display of empty areas resulting from the rotation of the horizontal preview image. In other examples, the horizontal preview image is displayed with empty areas resulting from the rotation of the horizontal preview image. In some such examples, the horizontal preview image in the viewfinder includes a graphic indicator of a reduced field of view resulting from the rotation of the horizontal preview image.

[0056] In block 630, procedure 600 involves receiving a signal indicating that an image should be captured. In some examples, the signal can be received based on user input (e.g., pressing a shutter release button). In other cases, the shutter release can be triggered automatically. In such examples, the shutter release can be triggered automatically upon entering horizontal locking mode or after a predetermined period of time following entry into horizontal locking mode.

[0057] In block 640, procedure 600 involves providing a captured horizontal image based on the viewfinder being in horizontal locking mode. The captured horizontal image is rotated based on the camera's orientation relative to the horizontal plane. In some examples, the horizontal preview image is based on a first processing pipeline, and the captured horizontal image is based on a second processing pipeline. In such examples, both the first and second processing pipelines receive a warp mesh for image rotation (and optionally for image zoom).

[0058] Some examples of Method 600 can be performed by an image-capturing device that includes a camera. In such examples, the user positioning of the camera can be based on the physical movement of a mobile computing device that includes the camera. In such examples, the viewfinder can include an image displayed on a screen of the camera. Other examples of Method 600 can be performed by a computing device that is remote from a camera. In such examples, the user positioning of the camera can be based on user input received at a computing device remote from the camera. In such examples, the viewfinder can include an image displayed on the computing device remote from the camera, as well as, or instead of, on the camera itself.

[0059] Method 600 may further involve causing the viewfinder to exit the horizontal locking mode. In some examples, exiting the horizontal locking mode may be based on an angular difference between the camera's orientation and the horizontal orientation exceeding a threshold angle. In some such examples, the threshold angle used to exit the horizontal locking mode may be the same as the threshold angle used to enter the horizontal locking mode. In other examples, the threshold angle used to exit the horizontal locking mode is a second threshold angle greater than the first threshold angle used to enter the horizontal locking mode. For example, the first threshold angle may be 5 degrees and the second threshold angle may be 10 degrees.

[0060] More generally, a computing system can cause the viewfinder to exit level lock mode when it deduces that the user no longer intends to capture a level image. A computing system can look for one or more indicators of this user intention. These indicators might include significant movement of an image-capturing device, the tilt or roll angle of the image-capturing device no longer being close to its leveled position, and / or the fact that the image capture attempt was made while the viewfinder was in level lock mode. In other examples, the viewfinder might exit level lock mode based on a user selection of a manual override option. III. Conclusion

[0061] The present disclosure is not limited to the particular embodiments described in this application, which are intended to illustrate various aspects. Many modifications and variations can be made without altering its scope of protection, as is apparent to the person skilled in the art. Functionally equivalent methods and apparatuses within the scope of protection of the disclosure, in addition to those described herein, are apparent to the person skilled in the art from the foregoing descriptions. Such modifications and variations are intended to fall within the scope of protection of the appended claims.

[0062] The above detailed description outlines various features and operations of the disclosed systems, devices, and methods with reference to the accompanying figures. In the figures, similar symbols generally identify similar components unless the context specifies otherwise. The exemplary embodiments described herein and in the figures are not to be understood as limiting. Other embodiments may be used and other modifications may be made without deviating from the scope of the subject matter presented in this document. It is understood that the aspects of the present disclosure, as generally described in this document and illustrated in the figures, may be arranged, substituted, combined, separated, and designed in a wide variety of different configurations.

[0063] With respect to all or some of the message flow diagrams, scenarios, and flowcharts in the figures and as discussed herein, each step, block, and / or communication may represent processing and / or transmitting information according to the example implementations. Alternative implementations are included within the scope of protection of these example implementations. In these alternative implementations, operations described as steps, blocks, transmissions, communications, requests, responses, and / or messages may, for example, be performed in a different order than that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved.Furthermore, more or fewer blocks and / or operations can be used with each of the message flow diagrams, scenarios and flowcharts discussed herein, and these message flow diagrams, scenarios and flowcharts can be partially or completely combined with each other.

[0064] A step or block representing information processing may correspond to a circuit that can be configured to perform the specific logical functions of a procedure or technique described in this document. Alternatively or additionally, a block representing information processing may correspond to a module, segment, or portion of program code (including associated data). The program code may contain one or more instructions executable by a processor to implement specific logical operations or actions in the procedure or technique. The program code and / or associated 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 other storage medium.

[0065] Computer-readable media can include non-volatile computer-readable media, such as those that store data for short periods, like register memory, processor cache, and RAM. It can also include non-volatile computer-readable media that store program code and / or data for longer periods. Thus, computer-readable media can include secondary or persistent long-term storage, such as read-only memory (ROM), optical or magnetic disks, solid-state drives, and compact disc read-only storage (CD-ROM). Computer-readable media can also encompass all other volatile or non-volatile storage systems. For example, a computer-readable medium can be considered a computer-readable storage device or a physical storage device.

[0066] Furthermore, a step or block representing one or more information transfers can correspond to information transfers between software and / or hardware modules in the same physical device. However, other information transfers can occur between software modules and / or hardware modules in different physical devices.

[0067] The specific arrangements shown in the figures should not be considered restrictive. It is understood that other embodiments may contain more or less of each element shown in a given figure. Furthermore, some of the elements shown may be combined or omitted. Additionally, an exemplary embodiment may include elements not shown in the figures.

[0068] While various aspects and embodiments have been disclosed herein, other aspects and embodiments are obvious to those skilled in the art. The various disclosed examples and embodiments serve only for illustration and are not intended to be limiting, the true scope of protection being specified by the following claims.

Claims

[1] Procedure, encompassing: Inferring a user intent to capture a horizontal image based on a user's camera positioning; based on the inferred user intent, causing a viewfinder to enter a horizontal locking mode, wherein the horizontal locking mode includes displaying a horizontal preview image in the viewfinder, the horizontal preview image being rotated based on an orientation of the camera relative to a horizontal orientation; Receiving a signal indicating that an image is being captured; and Based on the viewfinder being in horizontal locking mode, providing a captured horizontal image, with the captured horizontal image being rotated based on the camera's orientation relative to the horizontal alignment. [2] Method according to claim 1, wherein the derivation of the user intent is based on the fact that an angular difference between the orientation of the camera and the horizontal orientation is less than a threshold angle. [3] Method according to claim 2, wherein the threshold angle is equal to or less than five degrees. [4] Method according to claim 1, wherein the inference of the user intent is based on the fact that an angular difference between the orientation of the camera and the horizontal orientation is less than a threshold angle for at least a threshold period. [5] Method according to claim 1, wherein the derivation of the user intent is based on the content of a scene recorded by the camera. [6] Method according to claim 5, wherein the inference of the user intent is based on the content of the scene, which indicates that the scene is an environment scene. [7] Method according to claim 5, wherein the inference of the user intent is based on the content of the scene, which indicates that the scene is not a portrait. [8] Method according to claim 1, wherein the horizontal preview image in the viewfinder is zoomed in to eliminate a display of empty areas resulting from the rotation of the horizontal preview image. [9] Method according to claim 1, wherein the horizontal preview image is displayed with empty areas resulting from the rotation of the horizontal preview image. [10] Method according to claim 9, wherein the horizontal preview image in the viewfinder includes a graphic indicator of a reduced field of view resulting from the rotation of the horizontal preview image. [11] Method according to claim 1, further comprising causing the viewfinder to exit the horizontal locking mode based on the fact that an angular difference between the orientation of the camera and the horizontal orientation is above a threshold angle. [12] Method according to claim 11, wherein the threshold angle is a second threshold angle which is greater than a first threshold angle, wherein the viewfinder enters the horizontal locking mode based on the fact that the angular difference between the orientation of the camera and the horizontal orientation is less than the first threshold angle. [13] Method according to claim 1, further comprising causing the viewfinder to exit the horizontal locking mode based on a user selection of a manual override option. [14] Method according to claim 1, wherein the horizontal preview image is based on a first processing pipeline and the captured horizontal image is based on a second processing pipeline. [15] Method according to claim 14, wherein both the first processing pipeline and the second processing pipeline receive a warp mesh for image rotation. [16] Method according to claim 1, wherein the orientation of the camera relative to the horizontal orientation is determined based on sensor data from a gravity sensor and a gyroscope. [17] Method according to claim 1, wherein the user positioning of the camera is based on a physical movement of a mobile computing device comprising the camera. [18] Method according to claim 1, wherein the user positioning of the camera is based on a user input received at a computing device located remote from the camera, the viewfinder being displayed on the computing device located remote from the camera. [19] Computing device comprising that it is configured to: Inferring a user intent to capture a horizontal image based on a user's camera positioning; based on the inferred user intent, causing a viewfinder to enter a horizontal locking mode, wherein the horizontal locking mode includes displaying a horizontal preview image in the viewfinder, the horizontal preview image being rotated based on an orientation of the camera relative to a horizontal orientation; Receiving a signal indicating that an image is being captured; and Based on the viewfinder being in horizontal locking mode, providing a captured horizontal image, with the captured horizontal image being rotated based on the camera's orientation relative to the horizontal alignment. [20] One or more non-transient, computer-readable media comprising program instructions executable by at least one processor to perform operations including: Inferring a user intent to capture a horizontal image based on a user's camera positioning; based on the inferred user intent, causing a viewfinder to enter a horizontal locking mode, wherein the horizontal locking mode includes displaying a horizontal preview image in the viewfinder, the horizontal preview image being rotated based on an orientation of the camera relative to a horizontal orientation; Receiving a signal indicating that an image is being captured; and Based on the viewfinder being in horizontal locking mode, providing a captured horizontal image, with the captured horizontal image being rotated based on the camera's orientation relative to the horizontal alignment.