Autostereoscopic display system calibration using light pattern projection
By projecting a light pattern into the scene for calibration, the system addresses the challenge of camera-to-display feedback in autostereoscopic displays, enabling automatic and accurate recalibration without additional equipment, enhancing system flexibility and cost-effectiveness.
Patent Information
- Application Number
- PCT/US2024/043063
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-20
- Publication Date
- 2026-02-26
AI Technical Summary
Autostereoscopic display systems face challenges in calibration due to the lack of direct feedback from cameras to the display, which is outside their field of view, leading to inaccuracies and the need for inconvenient manual recalibration methods.
Projecting a light pattern into the scene visible to integrated cameras to assess and correct calibration errors, allowing for automatic adjustment of camera-to-display and lenticular parameters without requiring additional equipment.
Enables convenient and automatic recalibration of autostereoscopic displays, improving accuracy and reducing the need for user intervention, thus allowing for more flexible and cost-effective system designs.
Smart Images

Figure US2024043063_26022026_PF_FP_ABST
Abstract
Description
Atty Docket No. 0120-1029W01AUTOSTEREOSCOPIC DISPLAY SYSTEM CALIBRATION USING LIGHT PATTERN PROJECTIONBACKGROUND
[0001] Autostereoscopy refers to systems and technologies for displaying stereoscopic images without requiring special headgear or glasses to view the images. By allowing users to perceive binocular content, autostereoscopic displays provide a sensation of three-dimensional (3D) depth. Since headgear is not required to experience this sensation, autostereoscopic display technologies may be referred to as “glasses-free 3D” or “glassesless 3D.” Several classes of autostereoscopic display technology exist, including displays with lenticular lenses, displays with parallax barriers, and others. One emerging use case for autostereoscopic displays is within 3D communication systems. Such systems allow for people to communicate over remote distances while seeing and hearing one another in extremely lifelike, immersive ways.SUMMARY
[0002] Autostereoscopic display systems are configured to present stereoscopic images to allow users to view 3D content without the need for special headgear or glasses. Proper functionality of these systems, however, requires various types of careful calibration. First, proper calibration of the autostereoscopic display itself provides an accurate model of which sub-pixels on the display are visible at various pupil positions in front of the display, how much crosstalk may be observed from one eye view to the other, and other display characteristics (e.g., lenticular angle, pitch, etc.). Additionally, calibration may be performed to model the relationship of cameras with respect to one another and the scene, as well as with respect to the display itself. Display calibration and camera-to-display calibration may both present challenges. Since the cameras are generally integrated with the display itself, the display is generally outside of the cameras’ fields of view and the system therefore lacks any direct feedback about what a user viewing the display would see. While this challenge could be addressed by use of a mirror or other apparatus aimed at allowing the cameras direct visibility of the display, systems and methods described herein for autostereoscopic display system calibration use a different approach to close the loop between the cameras and the autostereoscopic display. Specifically, as described and illustrated in detail herein, anAtty Docket No. 0120-1029W01 autostereoscopic display may project a light pattern into the scene in front of the display so as to be visible to the integrated cameras. This projected light pattern can be targeted in a particular way at a point in the scene that is visible to the cameras. Accordingly, based on the relationship between the light pattern projection and the point and how this relationship comports with prior expectations, deficiencies in calibration can be identified, assessed, and remedied.
[0003] To this end, one implementation described herein involves a system (e.g., an autostereoscopic display system such as a 3D communication system). The system may include an autostereoscopic display operating in a scene, a set of cameras associated with the autostereoscopic display and configured to capture image data of the scene, a memory that stores instructions and a set of calibration parameters, a processor configured to execute the instructions to perform a process, and other suitable components as may serve a particular implementation. The process performed by the processor as the instructions are executed may include: 1) projecting, using the autostereoscopic display, a light pattern into the scene, the light pattern including a first portion and a second portion that meet at a boundary; 2) targeting, based on the set of calibration parameters, the projecting of the light pattern to align the boundary with a point in the scene; 3) determining, based on the image data, an alignment error between the boundary and the point; and 4) updating, based on the alignment error, the set of calibration parameters.
[0004] Another implementation described herein involves a method that may be performed by an autostereoscopic display system. This example method may include, for instance: 1) projecting, using an autostereoscopic display, a light pattern into a scene in which the autostereoscopic display operates, the light pattern including a first portion and a second portion that meet at a boundary; 2) targeting, based on a set of calibration parameters, the projecting of the light pattern to align the boundary with a point in the scene; 3) determining, based on image data of the scene captured by a set of cameras associated with the autostereoscopic display, an alignment error between the boundary and the point; and 4) updating, based on the alignment error, the set of calibration parameters.
[0005] Yet other implementations described herein embody processes and methods such as described above within non-transitory computer-readable media. For example, a non- transitory computer-readable medium may store instructions that, when executed (e.g., by one or more processors of an autostereoscopic display system), cause the one or more processors to perform a process or method such as set forth above. More particularly, the one or more processors may: 1) project, using an autostereoscopic display, a light pattern into aAtty Docket No. 0120-1029W01 scene in which the autostereoscopic display operates, the light pattern including a first portion and a second portion that meet at a boundary; 2) target, based on a set of calibration parameters, the projecting of the light pattern to align the boundary with a point in the scene; 3) determine, based on image data of the scene captured by a set of cameras associated with the autostereoscopic display, an alignment error between the boundary and the point; and 4) update, based on the alignment error, the set of calibration parameters.
[0006] The autostereoscopic displays and system implementations described above could be associated with 3D communication systems. It will be understood that, while such systems may be described from the perspective of one side (e.g., a first 3D communication system), a second 3D communication system (e.g., a remote system on the other side of a communication link) may perform similar functions at the same time.
[0007] Various additional operations may be added to these processes and methods as may serve a particular implementation, examples of which will be described in more detail below. Additionally, it will be understood that each of the processes and operations described as being performed by different types of implementations in the examples above (e.g., the methods, the systems, the non-transitory computer readable media, etc.) may additionally or alternatively be performed by other types of implementations as well. For example, a process described above as being embodied by a computer readable medium could be performed as a method and could be performed by a processor of a 3D communication system or other autostereoscopic display system. Similarly, a method set forth above could be encoded in instructions stored by a computer readable medium or otherwise stored within the memory of a 3D communication system, and so forth.
[0008] The details of these and other implementations are set forth in the accompanying drawings and the description below. Other features will also be made apparent from the following description, drawings, and claims.BRIEF DESCRIPTION OF THE DRAWINGS
[0009] FIG. 1 shows illustrative aspects of an example configuration for performing autostereoscopic display system calibration using light pattern projection in accordance with principles described herein.
[0010] FIG. 2 shows an illustrative three-dimensional (3D) communication system configured to perform autostereoscopic display system calibration using light pattern projection in accordance with principles described herein.
[0011] FIG. 3 shows an illustrative communication session between twoAtty Docket No. 0120-1029W01 implementations of the 3D communication system of FIG. 2 in accordance with principles described herein.
[0012] FIG. 4 shows an illustrative method for autostereoscopic display system calibration using light pattern projection in accordance with principles described herein.
[0013] FIG. 5 shows a view of a first scene including a first calibration object used for autostereoscopic display system calibration using light pattern projection in accordance with principles described herein.
[0014] FIG. 6 shows a view of a second scene including a second calibration object used for autostereoscopic display system calibration using light pattern projection in accordance with principles described herein.
[0015] FIG. 7 shows illustrative aspects of a phase scan of a light pattern projection in accordance with principles described herein.
[0016] FIG. 8 shows illustrative aspects relating to triggering of autostereoscopic display calibration sequences in accordance with principles described herein.
[0017] FIG. 9 shows an illustrative computing system that may be used to implement various devices and / or systems described herein.DETAILED DESCRIPTION
[0018] Systems and methods for autostereoscopic display system calibration using light pattern projection are described herein.
[0019] As used herein, an autostereoscopic display system may refer to any video presentation system that uses autostereoscopic principles to present video content to a user in a binocular manner (i.e., such that each eye of the user is presented different content, typically to invoke a perception of depth). As mentioned above, such displays may be referred to as glasses-free or glassesless 3D displays, since they present three-dimensional (3D) content to users without requiring special glasses or other headgear to achieve the 3D effect.
[0020] One way to achieve glassesless 3D is for a pixel array of an autostereoscopic display to emit its light through a lenticular film that includes a one-dimensional or two- dimensional array of lenticular lenses each configured to help steer and direct light emitted from the pixels behind them. Rather than each pixel emitting light to a wide angle that would generally encompass both eyes of viewers of the display, lenticular lenses are configured to direct light in more constrained ways so that light from certain pixels (e.g., from certain pixel rows or columns of the display) can be seen only by a user’s left eye while other pixels canAtty Docket No. 0120-1029W01 only be seen by the right eye. Similar effects can also be achieved in other ways (e.g., by parallax barriers that block certain pixels from view for one eye or the other, etc.). While lenticular displays will be referred to in many examples herein, it will be understood that principles described herein may apply to a variety of autostereoscopic displays and autostereoscopic technologies.
[0021] Certain autostereoscopic displays may provide static viewing zones from where users may watch the presentation and fully experience the 3D effect. For instance, a glassesless 3D television presenting a 3D movie may be optimized for one user that is positioned directly in front of the screen (centered with respect to the screen and possibly at a certain distance from the screen). Other users may also be able to enjoy the effect if positioned in particular locations such as two feet to the right or left of center, or the like. Users that are not in one of these static viewing zones would not experience the full 3D effect of the content presentation and, instead, may see a non-stereoscopic image, a pseudoscopic image, or a dead zone.
[0022] To avoid the inflexibility of such static viewing zones and allow users more freedom of movement, certain autostereoscopic display systems may employ eye tracking and light steering to essentially make the viewing zone dynamically follow the user. If it is desirable for more than one user to view the 3D content at once, more than two distinct sets of pixels targeted to the eyes of more than one user could be implemented by the display or time-multiplexing or another technique could be used. While addressing the inflexibility issue, however, eye tracking may present its own set of challenges and costs. For example, an eye tracking implementation may require a set of cameras that continuously captures the scene, as well as relatively sophisticated hardware and software to identify that a user (or users) is present, to determine where their eyes are dynamically located as they move around within the scene, and to properly control the pixel array to cause the viewing zone to properly follow the eyes.
[0023] While the cost and complexity of such eye tracking may make it less ideal for certain autostereoscopic display applications (e.g., low-cost consumer televisions, etc.), other autostereoscopic display applications, by their nature, may be more well-suited to this type of approach. One example application that will be referred to throughout the following disclosure relates to 3D communication systems. 3D communication systems may be referred to by a variety of names (e.g., telepresence systems, holoportation communication systems, virtual human projection systems, life-sized teleconferencing, etc.), and may be configured to produce highly immersive, 3D, life-sized communication sessions that replicate in personAtty Docket No. 0120-1029W01 interactions with a high degree of accuracy and realism. Because the function of 3D communication systems is to capture and transmit (as well as to receive and present) realtime 3D visualizations of human users, these systems already tend to have all the cameras and compute resources (e.g., hardware, software, eye tracking capabilities, etc.) needed for high quality, dynamic viewing zones.
[0024] Several technical problems still remain, however, even for 3D communication systems endowed with high quality cameras and compute resources. One technical problem, for example, is that various aspects of the system need to be properly calibrated to work together properly to maximize the immersive 3D effect. For example, a set of cameras that captures the scene (e.g., to track eyes and to produce a visual representation to be communicated to the system on the other side of the communication link) may be calibrated to one another, as well as to the display itself, where the user will be looking. This calibration is not only to be done once (e.g., at the factory where the system is produced) but may be repeated periodically to account for thermal effects, mechanical effects (e.g., vibrations, bumping or dropping of device components, etc.), and other circumstances that cause calibration parameters to lose their accuracy. Additionally, proper functionality also benefits from careful calibration of the display itself. For example, calibrating the display may involve developing an understanding of which sub-pixels on the display are visible at a given pupil position in front of the display, or determining how much crosstalk is observed from one eye view to the other, and modeling other lenticular aspects of the display (e.g., lenticular angle, pitch, and other attributes and behaviors of the lenticular lenses as they undergo thermal effects such as expansion and contraction, as they degrade or fog over with age, as they are perturbed to change their orientation or position, etc.).
[0025] Another technical problem related to autostereoscopic display systems is that in the field, camera views are generally not available to show what users’ eyes are seeing, thus disallowing a direct view of the display to confirm that the display is operating as intended. If any system parameters change after factory calibration (e.g., due to aging, being bumped or jostled, etc.) the effects of such changes are directly observable to the cameras due to the display being outside their fields of view.
[0026] Yet another technical problem related to the technical problem of the performance of these various types of calibration is the evaluation of the calibration (e.g., whether it is suitable at a given time or whether it is to be updated). If a system becomes poorly calibrated over time and this is not realized or fully appreciated by the people using or maintaining the system, then having effective and convenient modes of recalibration may notAtty Docket No. 0120-1029W01 matter because they will not be used. Accordingly, beyond implementing convenient techniques for generating and updating the calibration of an autostereoscopic display system, a related goal may be to facilitate easy and convenient assessment of how good the calibration of the system is, so that it can be corrected when needed.
[0027] Various techniques exist for determining extrinsic parameters of a set of cameras and thereby calibrating the cameras to one another and to the scene itself (e.g., designating a universal coordinate space and bringing each of the cameras into the same coordinate space). For example, this may be done by each of the cameras viewing and identifying a same object (or specific features of the object) in the scene and correlating these views to determine the spatial relationships between the cameras themselves. The technical problem described above arises, however, when it comes to calibrating autostereoscopic displays themselves, as well as their relationship to the set of cameras, when the cameras do not have the direct view of the displays. Even if the cameras can capture images of a user in the scene such that the system can determine the respective poses of the camera with respect to the user, this still provides no insight to the system as to what the user views when looking at the display. While this challenge could be (and has conventionally been) addressed using mirrors or other such apparatuses to give direct visibility of the display to the cameras, this is not an ideal way to close the loop, particularly after the initial factory calibration when the system is in the field. For example, it would be inconvenient for a user in the field to have to obtain a mirror or other bespoke calibration object to hold or mount it in a particular way to facilitate camera-to-display and / or lenticular calibration operations.
[0028] Systems and methods described herein provide technical solutions to address these and other technical problems that will be made apparent. For example, implementations described herein may facilitate each of these challenging types of autostereoscopic display system calibration (e.g., camera-to-display calibration, lenticular calibration of the lenticular display itself, etc.) using light pattern projection to close the loop between a calibrated set of cameras and an autostereoscopic display that is outside the field of view of the cameras (e.g., due to the cameras being integrated into a common enclosure with the display). More particularly, as will be described in more detail below, implementations described herein may project light patterns into the scene in front of the display and may then observe the image of the patterns with the station cameras to determine both the lenticular calibration of the display and the camera-to-display calibration.
[0029] In some implementations, the set of cameras may be used to identify a point within the scene (e.g., a particular feature of an object within the field of view of one or moreAtty Docket No. 0120-1029W01 of the cameras). The systems may then project a visible light pattern with different portions (e.g., stripes of different colors, etc.) into the scene in a manner that targets the particular point with a feature of the light pattern. For example, this targeting may include attempting, based on the current calibration parameters, to align a boundary at which two portions of the light pattern meet at the particular point. If the calibration parameters are accurate, this targeting will be successful and the system may determine, based on image data from the cameras, that the boundary aligns with the targeted point as expected. To the extent that lenticular and / or camera-to-display calibration is lacking, however, an alignment error will be detectable between the boundary of the light pattern and the particular point to which it is targeted. This alignment error may indicate that the calibration is stale and needs to be updated, thus providing a technical solution to the problem of users not being sure if recalibration is needed. Moreover, the measured alignment error may be used to automatically generate and / or update the calibration parameters to be more accurate moving forward. In this way, a factory calibration sequence and / or an online / in-field autocalibration sequence with respect to the camera-to-display and / or lenticular calibration parameters may be achieved without a mirror or other such mechanism for putting the display in the field of view of the set of cameras.
[0030] Along with targeting the light pattern to a point and observing how closely it aligns, the projecting and analyzing of light patterns may also be used in other ways to both assess and correct the types of calibration that have been described. For example, a contrast (associated with the amplitude of the light pattern) may be observed and analyzed in some implementations. The amplitude of the light pattern may be expected to be brightest when all calibration parameters are accurate. Hence, as part of the targeting, the projected light pattern may be aimed closer or further from where the targeted point is believed to be so that a location can be detected where the contrast peaks. If that location is not at the targeted point, the calibration may be corrected.
[0031] As another example, measuring contrast may also help characterize crosstalk, which can be used as an indicator of the extent to which display performance has degraded. As the performance of a display degrades and crosstalk increases (as indicated by the contrast measurements) compensation may be made to calibration parameters to reduce crosstalk and combat the natural aging of the lenticular display.
[0032] Yet another way that the project light pattern may help with system calibration is to provide an independent way to project texture into the scene, which may be particularly useful for scenes that lack texture. Methods described herein may be used to robustly recoverAtty Docket No. 0120-1029W01 phase for projected light patterns, thereby allowing for a way to effectively project robust texture into the scene and onto relatively textureless areas like walls, flat black chairs, cleared off desktops, and other objects that are difficult to analyze with traditional multiview stereo due to lack of features and textures that facilitate determining correspondences between camera views. Projected textures provided by the light patterns may be advantageous since cameras may measure the same phase of the pattern regardless of whether the cameras have different gains, different offsets, or the like. Using projected light patterns, a plain scene (e.g., a desk / chair / office environment) may become more richly textured so that accurate depth may be robustly and accurately recovered. Once the scene is mapped in this way, then the light pattern can be aimed at specific points to investigate and potentially correct camera-to- display registration, lenticular calibration, and so forth, as described above.
[0033] Various technical effects may arise from these technical solutions, including that the calibration may be assessed and even corrected without requiring user intervention or special equipment (e.g., mirrors, etc.). Another significant benefit of methods described herein for autostereoscopic display system calibration using light pattern projection arises due to the unintrusive and convenient in-field calibration that the method makes possible. Knowing that in-field autocalibration can be performed easily and often, certain design constraints for autostereoscopic display systems such as 3D communication systems may be eased (e.g., allowing such systems to be constructed using more flexible designs, using less expensive materials, etc.).
[0034] Various implementations will now be described in more detail with reference to the figures. It will be understood that particular implementations described below are provided as non-limiting examples and may be applied in various situations. Additionally, it will be understood that other implementations not explicitly described herein may also fall within the scope of the claims set forth below. Implementations described herein for autostereoscopic display system calibration using light pattern projection may result in any or all of the technical effects mentioned above, as well as various additional effects and benefits that will be described and / or made apparent below.
[0035] FIG. 1 shows illustrative aspects of an example configuration 100 for performing autostereoscopic display system calibration using light pattern projection in accordance with principles described herein. As shown, configuration 100 includes a display system 102 that includes an autostereoscopic display 104 and is operating at a scene 106. For example, display system 102 may be implemented as a 3D communication system that is in communication with another such system at a remote scene (not shown in FIG. 1), as aAtty Docket No. 0120-1029W01 glassesless 3D television, or as another system with an autostereoscopic display. Scene 106 may represent a manufacturing facility where display system 102 is being tested and calibrated or may represent a home, office, or other location to which display system 102 has been deployed and is being used (e.g., by a user who is not explicitly shown in FIG. 1).
[0036] In the same enclosure as autostereoscopic display 104, display system 102 is further shown to include a set of cameras 108 that are configured to capture image data of scene 106. Due to their placement with respect to autostereoscopic display 104, these cameras 108 cannot directly view autostereoscopic display 104 itself (i.e., autostereoscopic display 104 is not within the field of view of any of the cameras as they capture image data of scene 106). As such, camera-to-display calibration, as well as calibration of the autostereoscopic display 104 itself, may not be able to be performed in a similarly straightforward way as camera-to-scene or camera-to-camera calibration sequences that may only require that each camera view a common object or feature in the scene that is also viewable by other cameras 108 in the set. For example, features of an object 110 that is present within scene 106 (e.g., corners, edges, or other identifiable features of a calibration chart or other such object at the scene) may be included within the field of view of each of the set of cameras 108, such that the calibration of the cameras to one another and to scene 106 may be performed based on the different perspectives that the various cameras have with respect to those features.
[0037] The ability of an autostereoscopic display 104 to project and target a light pattern into the scene where it will be visible to the cameras may help display system 102 to assess the display’s performance, as well as to infer a spatial relationship between autostereoscopic display 104 and the set of cameras 108 even without a direct line of sight between them (e.g., as might be provided by a mirror in a conventional calibration approach). For example, all of the contributions from pixels that, due to the lenticular film, create a fan of light (diffuse in one direction and alternating on / off in the other direction) may add constructively to create a contrast at a target point that can be observed and analyzed using the cameras. Specifically, as shown, autostereoscopic display 104 may project a light pattern 112 into scene 106, including projecting the light pattern onto the object 110 present at the scene. FIG. 1 shows that light pattern 112 may include a plurality of distinct portions 114 (e.g., long stripes of different or alternating colors in this example) that meet one another at a plurality of boundaries 116. For example, light pattern 112 could include alternating portions 114 of two different colors (e.g., red and green, etc.), such that colored stripes of light fill the scene and cover object 110.Atty Docket No. 0120-1029W01
[0038] While a view 117-1 of object 110 shows object 110 to be facing display system 102 (and autostereoscopic display 104, in particular) in configuration 100, a view 117-2 of object 110 is also included in the bottom corner of FIG. 1 to more clearly illustrate the projection of light pattern 112 onto object 110. Arrows next to the brackets labeling views 117-1 and 117-2 are shown to suggest that both views illustrate the same object 110 from different perspectives and with emphasis on different details.
[0039] Referring to view 117-2 of object 110, a particular portion 114-1 is shown to meet a particular portion 114-2 at a particular boundary 116. While the simplicity of solidcolored stripes or another such light pattern may be advantageous for calibration sequences described herein, it will be understood that these portions may represent the distinct light that would be seen by each eye of the user in a binocular viewing mode. That is, after calibration is complete and display system 102 is operating to present binocular content to a user, portion 114-1 could be implemented as a red stripe (or another suitable color) representing the light that would be targeted to a user’s right eye, while portion 114-2 could be implemented as a green stripe (or another suitable color) representing the light that would be targeted to the same user’s left eye (with the boundary 116 running down the user’s face between the eyes).
[0040] A particular point 118 present on object 110 may be implemented as a dot, a corner, or another readily identifiable feature that may represent a cyclopean eye of a user (i.e., a point centered between the two eyes of the user). If calibration were complete and display system 102 were operating to present binocular content to a user, boundary 116 would be targeted at a cyclopean eye of the user so that each eye could be presented with its respective portion of light. Accordingly, during the calibration illustrated by configuration 100, the projection of light pattern 112 may be targeted to cause boundary 116 to intersect with point 118. This targeting may be performed based on default calibration parameters or previously-derived calibration parameters that represent the current best representation the system has of the relationship between autostereoscopic display 104 and set of cameras 108. However, to the extent that an alignment error 120 is detected between boundary 116 and the point 118 to which it is targeted, this error may represent a discrepancy between the current calibration parameters and optimal, accurate parameters.
[0041] As such, display system 102 may be configured to indicate that calibration is needed or to automatically update the calibration parameters based on alignment error 120. Moreover, as will be described in more detail below, other readily observable attributes of light pattern 112 around point 118 (e.g., the contrast of portions 114-1 and 114-2 at boundary 116, etc.) may similarly be analyzed to further assess and / or correct the current camera-to-Atty Docket No. 0120-1029W01 display and / or lenticular calibration parameters being used by the system. While the assessment of how the light pattern is aligned with a target point is a focus of FIG. 1 to allow the camera-to-display parameters to be investigated and corrected, it will be understood that light pattern 112 may also be used to facilitate other types of calibration in other ways described above and as will be described in more detail below. For example, scenes lacking texture may be more accurately analyzed (e.g., for camera-to-camera and camera-to-scene calibration) by projecting texture in the scene as described above, lenticular characteristics such as crosstalk, angle, and pitch may be analyzed based on the contrast and phase of the project light pattern, and so forth.
[0042] FIG. 2 shows an illustrative three-dimensional (3D) communication system 200 configured to perform autostereoscopic display system calibration using light pattern projection in accordance with principles described herein. For example, 3D communication system 200 may be one example of the type of display system 102 described and illustrated above in relation to FIG. 1 (along with other types of display systems such as glassesless 3D televisions, etc.). 3D communication system 200 is shown to illustrate certain elements that may be present in a given implementation of a 3D communication system in accordance with principles described herein. Specifically, 3D communication system 200 is shown to include an autostereoscopic display 202, a set of cameras 204, one or more loudspeakers 206, one or more microphones 208, one or more processors 210, and a memory 212 that stores image data 214, calibration parameters 216, and instructions 218 for one or more processes 220. It will be understood that fewer or additional elements may be included in other implementations of 3D communication system 200. Each of the illustrated elements will now be described in more detail.
[0043] Autostereoscopic display 202 may be implemented as any autostereoscopic display configured to present 3D content to a user in a manner that allows the user to see a slightly different view with each eye (e.g., binocular viewing configured to provide the 3D effect). During a communication session with a user of a remote 3D communication system 200, the user may be presented with a 3D view of a binocular representation of the other user and the scene in which they are located. As such, autostereoscopic display 202 may provide an extremely realistic view of the other user, such that both users have an immersive sensation of engaging in an in-person conversation. As mentioned above, an array of lenticular lenses (e.g., a one-dimensional lenslet array, a two-dimensional lenslet array, etc.) could be used to implement autostereoscopic display 202. For example, autostereoscopic display 202 may be implemented as a lenticular display that includes an array of pixels andAtty Docket No. 0120-1029W01 an array of lenticular lenses, the array of pixels being configured to emit light by way of the array of lenticular lenses. In other implementations, alternative (non-lenticular) technologies may be used to implement autostereoscopic display 202. For example, autostereoscopic display 202 could be implemented by parallax barriers or other similar technologies that similarly direct the light from certain pixels to either eye of the user.
[0044] 3D communication system 200 is further shown to include a set of cameras 204 associated with autostereoscopic display 202. Each of these is labeled as an individual camera 204, though details of the placement, pose, and usage of individual cameras is largely beyond the scope of the present disclosure and cameras 204 will generally be described as a monolithic set of cameras configured to capture image data of the scene in which 3D communication system 200 is located. While the different vantage points and corresponding differences in image data captured by the individual cameras 204 is not a point of focus, it will be understood that each camera 204 in the set of cameras 204 may have a different pose and vantage point on the scene, such that objects and subjects at the scene, and the user participating in the communication session in particular, may be captured thoroughly by several, if not all, of the cameras 204. In some examples, image data from multiple cameras 204 may be combined into a single visual representation (e.g., a 3D representation of the scene or a subject such as the user). The capture of the images and the construction of 3D representations may be performed in any manner as may serve a particular implementation (e.g., using known 3D scanning and modeling techniques and technologies, etc.).
[0045] 3D communication system 200 is further shown to include an array of loudspeakers 206 and an array of microphones 208. While sound capture and reproduction are not explicitly illustrated herein and are not a focus of the present disclosure, it will be understood that 3D sound (e.g., spatial audio, etc.) may be captured using multiple microphones and reproduced using multiple loudspeakers in any manner as may serve a particular implementation. In some examples, content described herein may include not only 3D visual representations of the scene but also 3D audio associated with the scene. In other examples, audio content may be handled in a separate communication pipeline from visual content described herein.
[0046] 3D communication system 200 is also shown to include one or more processors 210 that may represent general purpose processors (e.g., central processing units (CPUs), microprocessors, etc.) or more special purpose processors (e.g., graphics processing units (GPUs), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.). In some examples, one or more processors 210 may be implementedAtty Docket No. 0120-1029W01 as machine learning acceleration processors with large numbers of cores (e.g., thousands of cores in some examples, or at least many more cores than general purpose processors may have, etc.) that are optimized for specific machine learning calculations (e.g., matrix multiplication operations, etc.). One or more processors 210 may be communicatively coupled to other elements of 3D communication system 200 so as to be able to store and load data from memory, direct operation of autostereoscopic display 202, cameras 204, loudspeakers 206, and microphones 208, and so forth.
[0047] 3D communication system 200 is also shown to include a memory 212 that is shown to store image data 214, a set of calibration parameters 216, instructions 218 embodying one or more processes 220, and any other data as may serve a particular implementation. Each of these types of data stored in memory 212 will now be described in more detail.
[0048] Image data 214 may represent any data that represents images (e.g., still images, video, etc.) captured by cameras 204. As cameras 204 may be configured with a view of a scene (as illustrated with the set of cameras 108 in FIG. 1), image data 214 may include image frames depicting the room and the objects in it (including, in certain example, a calibration object, one or more users, etc.). Image data 214 may be used for autostereoscopic display system calibration in the ways described herein, as well as to generate a 3D representation of the scene that can be transmitted to and presented by another 3D communication system. In some examples, image data 214 may also include image frames received from the other 3D communication system and depicting a remote scene captured by the other 3D communication system.
[0049] Calibration parameters 216 may include various types of parameters that characterize spatial and other relationships between system components in various ways. For instance, certain calibration parameters 216 may define intrinsic parameters of each camera 204 (e.g., focal length, principal point, radial and tangential distortion parameters, etc.) and / or extrinsic parameters between the various cameras (e.g., defining a pose of each camera with respect to a shared world coordinate system). As mentioned above, the set of calibration parameters 216 may also include one or more camera-to-display parameters that define a spatial relationship between autostereoscopic display 202 and one or more cameras 204 of the set of cameras 204. Moreover, in the case where autostereoscopic display 202 is a lenticular display with an array of lenticular lenses (as described above), the set of calibration parameters 216 may also include one or more lenticular parameters that define certain characteristics or attributes of the array of lenticular lenses (e.g., the angle of the light passingAtty Docket No. 0120-1029W01 through the lenses, the crosstalk of different eye views as one leaks into the other, the orientation of the lenses, the pitch and spacing of the lenses, the transparency of the lenses as they age and fog, etc.). As has been mentioned and as will be described in more detail below, camera-to-display parameters and lenticular parameters may be determined using light pattern projection in accordance with principles described herein.
[0050] Instructions 218 are shown to include one or more processes 220 (e.g., computer programs, functions or libraries supporting such computing programs, etc.). The processes 220 embodied in instructions 218 may implement any of the methods described herein, such as a method described below in relation to FIG. 4. As one example process 220, one or more processors 210 may be configured to execute instructions 218 to perform a process including: 1) projecting, using autostereoscopic display 202, a light pattern into the scene, the light pattern including a first portion and a second portion that meet at a boundary; 2) targeting, based on the set of calibration parameters, the projecting of the light pattern to align the boundary with a particular point in the scene; 3) determining, based on the image data, an alignment error between the boundary and the particular point; and 4) updating, based on the alignment error, the set of calibration parameters.
[0051] FIG. 3 shows, from an overhead view, an illustrative 3D communication session 300 between two 3D communication systems in accordance with principles described herein. For example, communication session 300 may be performed between implementations of 3D communication system 200 of FIG. 2 labeled, respectively, as 3D communication system 200-1 and 3D communication system 200-2. As shown, 3D communication system 200-1 includes a set of cameras 204-1 and is located in a scene 302-1 while 3D communication system 200-2 includes a set of cameras 204-2 and is located in a scene 302-2 that may be remote from scene 302-1. For example, as depicted by a discontinuity indicator 304, scenes 302-1 and 302-2 may be in at least a different room and possibly in a different building, city, country, or region of the world. As illustrated by a network link 306, 3D communication system 200-1 may be communicatively coupled to 3D communication system 200-2 at the remote scene. 3D communication system 200-1 and 3D communication system 200-2 may be configured to exchange communication data over network link 306 to provide 3D communication session 300 between the scenes 302-1 and 302-2.
[0052] Presentation 308-1 from 3D communication system 200-1 and presentation 308-2 from 3D communication system 200-2 represent light emission and / or projection that is being produced by the respective 3D communication systems and output into the respectiveAtty Docket No. 0120-1029W01 scenes. For example, arrows representing presentation 308-1 will be understood to represent binocular content that is being presented by 3D communication system 200-1 to a user 310-1 in scene 302-1 or a light pattern that is being projected as part of a calibration sequence targeting the autostereoscopic display of 3D communication system 200-1. Similarly, arrows representing presentation 308-2 will be understood to represent binocular content that is being presented by 3D communication system 200-2 to a user 310-2 in scene 302-2 or a similar light pattern being projected as part of a calibration sequence targeting the autostereoscopic display of 3D communication system 200-2. Based on these respective presentations by the 3D communication systems in the remote scenes, an interaction 312 between users 310-1 and 310-2 is shown. Interaction 312 may be a highly immersive interaction that is perceived by the users as being more similar to an in-person conversation than to a conventional video call.
[0053] While 3D communication session 300 shows an individual user participating on each side of the interaction 312, it will be understood that, in certain implementations, the 3D communication systems may be configured to support a plurality of users. For example, if the autostereoscopic display has sufficient resolution, a spatial multiplexing approach could be performed to direct pairs of distinct image portions to the eyes or more than one user. As another example, if the frame rate of the autostereoscopic display is sufficient, a time multiplexing approach could be performed to use the same pixels to intermittently serve more than one user at a time (quickly switching between presenting a binocular 3D view to one user, and then presenting to another, for each content frame). Such implementations may use a steerable backlight, for instance, to temporally direct imagery to different eyes and / or users in different subframes of each content frame.
[0054] FIG. 4 shows an illustrative method 400 for autostereoscopic display system calibration using light pattern projection in accordance with principles described herein. While both 3D communication systems 200-1 and 200-2 may be capable of the same calibration-related operations, the specific example of method 400 is described from the perspective of a single system (e.g., either of 3D communication systems 200-1 or 200-2 or another implementation of 3D communication system 200; another 3D display system that is not necessarily a communication system, etc.). While FIG. 4 shows illustrative operations according to a specific implementation, it will be understood that other implementations of these methods may omit, add to, reorder, and / or modify any of operations 402-408 that are explicitly represented in FIG. 4. Additionally, while operations 402-408 are illustrated with arrows suggestive of a sequential order of operation, it will be understood that some or all ofAtty Docket No. 0120-1029W01 the operations of method 400 may be performed concurrently (e.g., in parallel) with one another. Each of the operations of method 400 will now be described in more detail as the operations may be performed by a particular implementation of 3D communication system 200.
[0055] At operation 402, 3D communication system 200 may project a light pattern into a scene in which an autostereoscopic display operates (e.g., the scene in which 3D communication system 200 is located). For example, the light pattern may include a plurality of portions, including at least a first portion and a second portion that meet at a boundary. This light pattern may be projected using the autostereoscopic display itself, since the autostereoscopic display may be configured to direct light from various pixels (e.g., rows or columns of pixels) to narrow and targeted angles so as to allow for different content to be steered toward each eye of a user in the ways that have been described. The portions of the light pattern may be implemented in any suitable manner as may serve a particular implementation. For instance, the portions of the light pattern may be implemented as interleaved stripes of color that the display projects into the scene and that meet at respective boundaries as have been illustrated.
[0056] At operation 404, 3D communication system 200 may target the projecting of the light pattern (performed as part of operation 402) to align the boundary with a particular point in the scene. For example, the autostereoscopic display may be configured to drive different pixels (e.g., different rows or columns of pixels) such that the portions are steerable to follow the eyes of the user as eye tracking is performed. As such steering may be performed based on the current set of calibration parameters, the targeting of the light pattern to the particular point at operation 404 may similarly be performed based on the set of calibration parameters as they are currently known. As will be described and illustrated in more detail below, the particular point to which the boundary is targeted may be any suitable feature within the scene. For example, a point may be selected that is easily-identifiable (e.g., a distinct corner or other feature of a calibration chart, a prominent feature of an inanimate object in the room, etc.) and / or that has other advantages (e.g., a point between the eyes of a user where binocular content is already being targeted).
[0057] At operation 406, 3D communication system 200 may determine an alignment error between the boundary and the particular point. In other words, as the targeting of operation 404 is performed, 3D communication system 200 may assess how accurate the current calibration parameters are by determining, based on image data of the scene captured by a set of cameras associated with the autostereoscopic display, how closely aligned theAtty Docket No. 0120-1029W01 boundary is with the particular point being targeted. If the current calibration parameters happen to be highly accurate, very little alignment error may be detected at this stage. That is, the boundary may be very closely aligned with the point being targeted. On the other hand, if the current calibration parameters happen to be stale or suboptimal, a more significant alignment error may be detected.
[0058] At operation 408, 3D communication system 200 may update the set of calibration parameters based on the alignment error identified at operation 406. For example, camera-to-display parameters may be updated such that, when the updated values are used instead of the previous values of the parameters used at operation 404, the alignment error is measured or at least expected to decrease (e.g., to become marginal or zero error as the alignment improves). As has been mentioned, the alignment error itself may indicate both an extent to which the calibration parameters are off, as well as in what way the calibration parameters are off. Accordingly, in certain examples, 3D communication system 200 may indicate whether and to what extent updated calibration is needed. This indication may be given at operation 408 along with updating the parameters. In other implementations, it may be useful for this determination and indication to be given even without yet completing the autocalibration and updating the parameters in accordance with operation 408.
[0059] As mentioned above, a method such as method 400 may be embodied as a process within a memory. For example, method 400 may be embodied by one of processes 220 implemented by instructions 218 in memory 212 of FIG. 2. More particularly, a non- transitory computer-readable medium (e.g., such as implemented by memory 212) may store instructions that, when executed, cause a processor (e.g., such as one or more processors 210) of a computing system to perform a process embodying method 400. Specifically, when executing the instructions on the non-transitory computer-readable medium, the processor may: 1) project, using an autostereoscopic display, a light pattern into a scene in which the autostereoscopic display operates, the light pattern including a first portion and a second portion that meet at a boundary; 2) target, based on a set of calibration parameters, the projecting of the light pattern to align the boundary with a particular point in the scene; 3) determine, based on image data of the scene captured by a set of cameras associated with the autostereoscopic display, an alignment error between the boundary and the particular point; and 4) update, based on the alignment error, the set of calibration parameters.
[0060] Along with assessing the spatial accuracy (e.g., the alignment error) produced by the calibration parameters, certain implementations of 3D communication system 200 may further assess other aspects of the accuracy to further improve the calibration parameters or toAtty Docket No. 0120-1029W01 correct other types of calibration parameters. For example, in certain implementations, the determining of the alignment error at operation 406 may be enhanced by further determining, also based on the image data, a contrast between the first portion and the second portion at the boundary. For example, an assessment may be made if the contrast between two colored portions meeting at the boundary is sharp and distinct (moving immediately from one color to the other at the boundary) or is softer and more gradual (fading or blurring from one color to the other at the boundary). The updating of the set of calibration parameters at operation 408 may then be further based on the determined contrast. For example, camera-to-display parameters may be updated largely based on the alignment error while lenticular parameters may be updated largely based on the detected contrast.
[0061] The calibration object and particular point used as a target for a light pattern may be dependent on when and under which circumstances a particular calibration sequence (e.g., a performance of method 400 or another similar sequence of calibration-related operations) is performed. For example, if the calibration sequence is performed in a manufacturing environment as an autostereoscopic display system is being characterized and calibrated (e.g., for the first time, as part of a repair or refurbishment, etc.), a particular point on a calibration chart or another identifiable feature (e.g., a corner, edge, etc.) of an object in the factory environment may be used as the target. Such a scenario is referred to herein as a factory calibration scenario and is described below in relation to FIG. 5.
[0062] In contrast, if the calibration sequence is performed in a home, office, or other environment where an end user uses the autostereoscopic display system (e.g., during a communication session after the system has been initially calibrated and deployed for use by users), a particular point at the scene may be used as the target. Such a scenario is referred to herein as an online or in-field calibration scenario and is described below in relation to FIG.6. For this in-field calibration, one possibility is that the target point at the scene could be part of the user themselves, such as a cyclopean eye between the eyes of the user. However, there is no requirement that the user be present for a calibration sequence. Indeed, it may be desirable for calibration sequences to be performed when the system is not in use and no users are present (e.g., at night or during other times when the system would otherwise be idle). When no one is around to be distracted by it, the display system may be free to project various visible light patterns and to measure them in various ways to assess their interactions with whatever objects happen to be present in the scene. In some examples, the user may even be instructed to leave a blank white sheet of paper (or other commonly available object so that no bespoke calibration target is required) in view of the display to facilitate afterAtty Docket No. 0120-1029W01 hours calibration sequences (e.g., in case other featureless objects such as dark desktops or chairs fail to reflect enough light for the system to get an accurate observation).
[0063] A factory calibration scenario and an in-field calibration scenario will now be described in more detail with respect to FIGS. 5 and 6. While certain objects (e.g., a chessboard in FIG. 5 and a cyclopean eye of the user in FIG. 6) are used for these examples, it will be understood that other factory and online calibration sequences may be performed without these specific objects in view. Indeed, as described above, one significant advantage of the light pattern projection is that the system may be able to self-calibrate based on various scenarios and types of objects that may be present, and may even generate texture when textured objects are otherwise not available.
[0064] In FIG. 5, a factory calibration scenario 500 is shown to take place in a scene 502. The view depicted in FIG. 5 represents the view from a particular camera, of a set of cameras integrated within an autostereoscopic display system, that is projecting a light pattern 504 into scene 502. In other examples, the view may represent a composite view based on image data captured by multiple or all of the cameras of the set of cameras. As shown, light pattern 504 includes a first portion 506-1 and a second portion 506-2 that project not only onto the floor and walls of scene 502, but also onto a calibration chart 508 with a readily identifiable feature 510 that happens to be present within scene 502.
[0065] As shown, the light pattern 504 in this example includes stripes of different colors, the first portion 506-1 of the light pattern being a first stripe of a first color (represented by a dotted fill pattern) and the second portion 506-2 of the light pattern being a second stripe of a second color (represented by a fill pattern of diagonal cross-hatching). The first color and the second color may each be any suitable colors (e.g., red, green, blue, white, etc.) but may be different from one another so as to be readily distinguishable in the image data. In certain examples, one color may represent light of a particular color while the other color may represent an absence of light (e.g. black).
[0066] The portions 506-1 and 506-2 in light pattern 504 are shown to repeat in an alternating pattern, such that several boundaries (illustrated by thin dotted lines between the portions) happen to be present in this example. In other examples, a larger number of different portions of different colors (e.g., four portions of four different colors, six portions of six different colors, etc.) could be supported using spatial or time multiplexing described herein. While the illustrated example is configured to track the eyes of only a single user, these types of implementations could therefore support 3D viewing for multiple users. It will be understood that any size, width, and number of stripes may be employed as may serve aAtty Docket No. 0120-1029W01 particular implementation. For instance, a larger number of thinner alternating stripes could be used, or the two portions could each be represented only by a single large area (e.g., one color encompassing the left-hand side of the pattern and the other color encompassing the right-hand side of the pattern).
[0067] While the view of calibration chart 508 shown within scene 502 omits detail of the calibration chart 508 itself (only showing the position of feature 510) in order to emphasize how the portions of light pattern 504 may be projected onto the chart, a more close-up view of calibration chart 508 without the light projection is shown on the right-hand side of the figure to illustrate an example of the detail that may be present. In this example, specifically, calibration chart 508 is shown to include a chessboard pattern that is commonly used for calibration operations in a factory calibration setting, and readily identifiable feature 510 is shown to be one of the corners within the chart’s chessboard pattern. It will be understood that other suitable calibration objects (besides the chessboard chart illustrated in FIG. 5) could also be used to similar effect. For example, a calibration chart may include ChArUco patterns or other known calibration patterns.
[0068] In this scenario, the calibration sequence performed by the 3D display system may include identifying (e.g., based on image data such as depicted in the figure) the calibration chart 508 present within the scene, such that the particular point used for the calibration sequence may be associated with feature 510 of the calibration chart 508. Along with identifying this feature 510 in two dimensions of the image space, the targeting of light pattern 504 to feature 510 may further include determining, based on the image data, a depth of the feature with respect to the set of cameras. In other words, the depth of calibration chart 508, and of feature 510 in particular, may be determined.
[0069] Just as the 2D spatial position of feature 510 with respect to the boundary targeting it may be used to determine the alignment error used to assess and / or update the camera-to-display calibration parameters, the depth of feature 510 may be useful, along with the contrast detected between the portions at the boundary, for assessing and / or updating lenticular calibration parameters. For example, if the depth of feature 510 is relatively small (i.e., if calibration chart 508 is relatively near the cameras), the contrast may be expected to be relatively sharp, such that blur may be indicative of a larger offset of the lenticular calibration parameters. On the other hand, if the depth of feature 510 is relatively large (i.e., if calibration chart 508 is relatively far from the cameras), the contrast may be expected to be more blurred, such that a gradual transition between the colors may not be considered to be indicative of such a significant offset of the lenticular calibration parameters.Atty Docket No. 0120-1029W01
[0070] While the chessboard pattern of calibration chart 508 may provide a wealth of readily-identifiable features (e.g., comers, edges, etc.) that may be used for calibration sequences such as have been described, it will be understood that other objects that happen to be present at the scene may also be used in a similar way. For example, identifiable features on the floor, walls, or inanimate objects in the room (e.g., a desk, a chair, etc.) may serve as the feature that the light pattern targets. Additionally, as has been described, one advantage of projecting a light pattern into the scene is that even relatively featureless objects (e.g., a white wall, a blank sheet of paper, etc.) could be used by projecting a light pattern onto the object to thereby texture the object and create localizable features.
[0071] In FIG. 6, an in-field calibration scenario 600 is shown to take place in a scene 602. Similarly as described above in relation to FIG. 5, the view depicted in FIG. 6 represents the view from a particular camera, of a set of cameras integrated within an autostereoscopic display system, that is projecting a light pattern 604 into scene 602. In other examples, the view could represent a composite view based on image data captured by multiple or all of the cameras of the set of cameras. Similar to light pattern 504, FIG. 6 depicts light pattern 604 as including a first portion 606-1 and a second portion 606-2 that are interleaved at a series of boundaries as the projection extends over the floor, the walls, and a user 608 at scene 602 with a feature 610. Similar to light pattern 504, light pattern 604 is shown to include stripes of different colors represented in the figure by different styles of fill pattern (e.g., dots versus diagonal cross-hatching). These colors may again represent any suitable colors (e.g., red, green, blue, white, etc.), a lack of light, or the like.
[0072] Similar to FIG. 5, wherein the more close-up view of calibration chart 508 was illustrated without the light projection to illustrate certain details of the chart, FIG. 6 shows a view depicting a face of user 608 without the projected light. In this view, feature 610 is shown to be a point directly between the user’s eyes and at the top of the nose, sometimes referred to as a cyclopean eye of the user. As has been described, in actual operation of an autostereoscopic display system, the system may continuously track this point on the user and present content that changes along this boundary so that each eye receives a different version of a stereoscopic image (to thereby produce a 3D effect).
[0073] Accordingly, in this scenario, the calibration sequence performed by the 3D display system may include identifying (e.g., based on image data such as depicted in the figure) the user 608 present within the scene, such that the particular point used for the calibration sequence may be associated with user 608 and centered between a first eye of the user and a second eye of the user. Along with identifying this feature 610 in two dimensionsAtty Docket No. 0120-1029W01 of the image space, the targeting of light pattern 604 to feature 610 may further include determining, based on the image data, a depth of feature 610 with respect to the set of cameras. In other words, the depth of user 608, and of feature 610 in particular, may be determined so that it may be used, along with a contrast detected between the portions 606-1 and 606-2 at the boundary, for assessing and / or updating lenticular calibration parameters in the ways described above.
[0074] As has been described, the updating of a set of calibration parameters may be performed based on an alignment error determined between a boundary where portions of a light pattern 604 meet and a particular point to which that boundary is targeted. This determination or measurement of the alignment error may be performed in any manner as may serve a particular implementation. As one example, the determining of the alignment error may include: 1) performing a phase sweep of the light pattern over the particular point; 2) determining, based on the phase sweep, an angle of misalignment between the boundary and the particular point; and 3) generating, based on the angle of misalignment, the alignment error as a distance.
[0075] To illustrate, FIG. 7 shows illustrative aspects of a phase scan of a light pattern projection in accordance with principles described herein. Similar to FIGS. 5 and 6, FIG. 7 shows a view of a scene 702 in which a light pattern 704 with interleaved portions 706-1 and 706-2 is being projected over the scene (including over a particular point 710, which may represent any feature of a calibration object or other identifiable point such as illustrated by features 510 and / or 610).
[0076] A phase scan of light pattern 704 is performed as a back and forth sweep 712 illustrated by arrows showing how light pattern 704 may be projected over a number of image frames. As light pattern 704 sweeps back and forth in this way, point 710 may pass through an entire period of the repeating portions 706-1 and 706-2. Because the repeating pattern of portions 706-1 and 706-2 resemble a sinusoidal wave (e.g., a sine wave, a cosine wave, etc.), a phase estimation and an intensity measurement may be performed at each pixel (e.g., including a pixel associated with particular point 710) for each image as the sweep 712 is performed. In this way, a phase of particular point 710 with respect to the boundary between portions 706-1 and 706-2 (e.g., halfway between colors with a cosine phase of -TC / 2) may be determined and, given the width of the portions and the estimated depth of particular point 710, an alignment error detected in radians may be converted to a distance (e.g., in millimeters or another suitable unit).
[0077] Other ways of determining the alignment error between the boundary and theAtty Docket No. 0120-1029W01 particular point may include swapping views (e.g., making the color switch between portion 706-1 and portion 706-2) to analyze different images of particular point 710 with the different colors. In this way, an alignment error could be measured as a distance (e.g., in mm) directly, as long as particular point 710 is associated with a static object. The phase sweep method described above, however, may be more robust and insensitive to object texture.
[0078] As has been described, autostereoscopic display system calibration implementations that use light pattern projection to close the loop between the cameras and the display of the autostereoscopic display system may be effective and useful both in a factory setting as well as in the field (for online calibration). For instance, default values for the set of calibration parameters (e.g., values based on modeled estimates of what the calibration parameters are expected to be, values determined by characterization of similar systems that are calibrated using a mirror, etc.) may be initially loaded onto a newly- manufactured display system and then corrected or updated by way of calibration sequences described herein. After being deployed, the display system may then be periodically recalibrated using techniques described herein for in-field calibration (e.g., online autocalibration).
[0079] Calibration or recalibration of a display system may be appropriate and desirable in response to a variety of notable events in the lifetime of a display system. For example, updating the camera-to-display calibration may be desirable in response to certain events, while updating the lenticular calibration may be desirable in response to other events. In response to certain events, it may be desirable to update both of these types of calibration, as well as, potentially, other types of calibration (e.g., extrinsic camera-to-camera calibration, etc.). To provide a few illustrative examples of the types of events that could trigger calibration to be performed, software instructions being executed by a processor (e.g., instructions 218 being executed by one or more processors 210 of an implementation of 3D communication system 200) may direct a calibration process (e.g., any autostereoscopic display calibration sequence described herein, including any of processes 220 and method 400) to be performed in response various events.
[0080] One example of such a trigger event is a detection, based on the image data, that the first eye of the user and the second eye of the user are shut (e.g., because the user is blinking, the user is asleep, the user is resting their eyes, etc.). In another example, the instructions may direct the process to be performed in response to a trigger that includes a time-based component (e.g., a periodic timer goes off, a calibration validity period expires, etc.), a temperature-based component (e.g., a temperature associated with significant thermalAtty Docket No. 0120-1029W01 expansion of system components is reached, an equilibrium operating temperature is reached, etc.), and / or other such trigger components as may serve a particular implementation. In still other examples, the instructions may direct the process to be performed in association with at least one of a system startup sequence, a system shutdown sequence, a determination that the system is not in active use (e.g., during off hours such as at night when they system is powered down or in a standby mode, during a communication session when the user temporarily steps or looks away, etc.), or the like.
[0081] To illustrate certain aspects relating to when autostereoscopic display calibration sequences may be triggered, FIG. 8 shows example calibration trigger logic 802 that, based on any of a number of potential inputs 804, generates a trigger 806 that is configured to instigate a calibration sequence. In some examples, the trigger 806 may lead to a calibration sequence involving one particular type of calibration (e.g., camera-to-di splay calibration, lenticular calibration, etc.). In other examples, the trigger 806 may lead to a calibration sequence that involves a combination of various types of calibration described herein. To further illustrate principles related to how calibration sequences may be triggered, FIG. 8 further shows a timeline representing an entire product lifetime 808 of an example display device (e.g., an implementation of 3D communication system 200).
[0082] As shown, the display device may take part in a number of sessions during the product lifetime 808, which may be many years in certain examples. To illustrate, a plurality of communication sessions 810 are shown to be depicted on the timeline during the entire product lifetime 808, with an omission symbol 812 indicating that various other communication sessions 810 may also be performed during the product lifetime, even though these are not explicitly represented in FIG. 8. As also shown along the timeline of product lifetime 808, certain events 814 may also occur during or between communication sessions 810 as the display device ages and is utilized and exercised. Below the timeline of entire product lifetime 808, FIG. 8 also shows a timeline that zooms in on one particular communication session 810 that may occur during entire product lifetime 808. As described below, additional events representative of certain events that may typically occur during a communication session are depicted on this timeline.
[0083] Events 814 may each represent any of a variety of events during the product lifetime that may trigger at least one type of calibration sequence, and, in many cases, may trigger a full calibration run to determine or update each of the various calibration parameters that have been described. For example, the first event 814 may represent the initial construction or manufacture of the display system, which may be associated with a fullAtty Docket No. 0120-1029W01 factory calibration sequence to initially determine accurate values for all of the calibration parameters. Shortly after this event 814 (and still before any in-field communication sessions 810), another event 814 may represent the deployment of the system from the factory to the field and its installment where the system will be used. This too may be an appropriate time to update at least some of the calibration parameters, especially those that may tend to change based on ambient temperature (since the ambient environment of the in-field scene may be different from the testing floor of the factory), based on mechanical shifts (since the system may be bumped and jostled during the shipping and setup process), and so forth. Still other events 814 may relate to significant aging events (e.g., at every monthly or yearly anniversary of the device’s deployment, etc.), moving events (e.g., when the system is moved or reinstalled in a new scene), software updates, and / or any other such events that occur on relatively long time scales but have the potential to affect calibration parameters.
[0084] The inputs 804 that may cause calibration trigger logic 802 to produce triggers 806 for these events may include any of the inputs shown or other suitable inputs. For example, a timer (“Time”) input 804 may include a date that helps monitor the system’s aging so that periodic triggers may be produced (e.g., every month, every year, etc.). Direct user input or automatic detection of vibration, acceleration, or other significant mechanical events (e.g., the system being bumped, dropped, moved, etc.) may help determine when the system is initially being set up at a particular scene, moved to another scene, disturbed within its current scene, or the like.
[0085] Then, within any given communication session 810, a number of other potential triggers 806 may be generated based on events within the session. Some or all of these triggers 806 could be of a different type than those associated with events 814. For example, these triggers 806 may cause only some (but not all) of the set of calibration parameters to be updated, or may trigger a more abbreviated calibration sequence that may take less time to perform than more thorough sequences triggered by events 814.
[0086] As a first example, a system startup sequence 816-1 at the beginning of the communication session 810 may trigger a calibration sequence to be performed as one of the startup procedures as the display system is powered on, booted up, initialized, or the like. Similarly, a system shutdown sequence 816-2 at the end of the communication session 810 may trigger a calibration sequence to be performed as one of the shutdown procedures as the display system closes down and / or prepares to enter a standby or off mode. Session status input 804 may be assessed by calibration trigger logic 802 to determine when these types of triggers 806 are to be produced.Atty Docket No. 0120-1029W01
[0087] As another example, regularly scheduled timing events 818 are shown throughout the communication session 810. For instance, these timing events 818 could take place every five minutes or every hour or at some other interval. While timing events 818 are shown to be scheduled regularly throughout the communication session 810, certain implementations may schedule timed triggers at varying rates. For instance, if it is known that calibration parameters tend to vary during the first 30 minutes of a communication session (e.g., as system operations cause components to heat up and reach a thermal equilibrium) and then stay relatively stable until the end of the session, timing events that trigger calibration sequences could be more frequent earlier in the session (e.g., every five minutes), while being less frequent thereafter (e.g., every hour). Time input 804 may be assessed by calibration trigger logic 802 to determine when these types of triggers 806 are to be produced.
[0088] Along with timing events, certain temperature events 820 are also shown to be detected in between the timing events 818. For example, a temperature event 820 may occur when an internal temperature of the system is measured to have reached a certain level, when the ambient temperature in the room is detected to change, when a thermal equilibrium is reached (or a rate of change satisfies a threshold), or when any other temperature event occurs that has the potential to affect the calibration parameters. Temperature input 804 may be assessed by calibration trigger logic 802 to determine when these types of triggers 806 are to be produced.
[0089] Much more frequently during a communication session, brief attention events 822 may be detected in which the user (usually briefly) diverts their attention away from the autostereoscopic display. One example is that the user may be detected to blink. Though blinking one’s eyes only takes a very short amount of time to complete as perceived by the human, the blink may actually persist for several frames worth of video and take an ample amount of time from the perspective of a computer processor. Accordingly, when a blink event is detected, there may be enough time to complete at least an abbreviated calibration sequence to at least verify that the calibration parameters are within a range of accuracy, if not to update and correct any deviations in the ways described above. Other examples of attention events 822 may involve the user’s eyes being closed for reasons other than blinking (e.g., sleeping, thinking deeply, etc.) or may involve the user diverting their attention while their eyes may still be open (e.g., the user turning around or looking briefly away from the screen, the user stepping temporarily away from the screen to retrieve an object or answer the door, etc.). Image data input 804 may be assessed by calibration trigger logic 802 to determine when these types of triggers 806 are to be produced (e.g., when the eyes of the userAtty Docket No. 0120-1029W01 are closed, etc.).
[0090] In certain examples, a combination of events may be used to produce a trigger 806. For example, after a timing event 818 or a temperature event 820 has been detected, the system may wait until the next attention event 822 to perform the triggered calibration sequence. As such, it will be understood that, in certain examples, the calibration sequences may not occur with every blink; rather, when another event has triggered a calibration sequence to be scheduled, the blink (or other attention event) may provide a good opportunity for the system to perform the calibration sequence without distracting or being noticed by the user. Additionally or alternatively, other techniques could be used to make light pattern projections undetectable to the user during a communication session. For instance, a light pattern could be embedded in a sequence of images that sum to a desired image and are undetectable to the viewer (e.g., a black portion of the light pattern to one eye and a white portion to the other eye in one frame, then swapped for the next frame such that, if shown quickly, the images average to a gray screen that could be used as part of content being presented).
[0091] As has been mentioned, various methods and processes described herein may be implemented at least in part as instructions embodied in a non-transitory computer- readable medium and executable by one or more computing devices. In general, a processor (e.g., a microprocessor) receives instructions, from a non-transitory computer-readable medium (e.g., a memory, etc.), and executes those instructions, thereby performing one or more operations such as the operations described herein. Such instructions may be stored and / or transmitted using any of a variety of known computer-readable media.
[0092] A computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a medium may take many forms, including, but not limited to, non-volatile media, and / or volatile media. Non-volatile media may include, for example, optical or magnetic disks and other persistent memory. Volatile media may include, for example, dynamic random-access memory (DRAM), which typically constitutes a main memory. Common forms of computer- readable media include, for example, a disk, hard disk, magnetic tape, any other magnetic medium, a compact disc read-only memory (CD-ROM), a digital video disc (DVD), any other optical medium, random access memory (RAM), programmable read-only memory (PROM), electrically erasable programmable read-only memory (EPROM), FLASH- EEPROM, any other memory chip or cartridge, or any other tangible medium from which aAtty Docket No. 0120-1029W01 computer can read.
[0093] FIG. 9 shows an illustrative computing system 900 that may be used to implement various devices and / or systems described herein. For example, computing system 900 may include or implement (or partially implement) autostereoscopic display systems such as display system 102 or any of the 3D communication systems described herein (e.g., communication system 200), any implementations thereof (e.g., 3D communication systems 200-1 and 200-2 and / or other implementations described herein), any components thereof, and / or other devices used therewith.
[0094] As shown in FIG. 9, computing system 900 may include a communication interface 902, a processor 904, a storage device 906, and an input / output (I / O) module 908 communicatively connected via a communication infrastructure 910. While an illustrative computing system 900 is shown in FIG. 9, the components illustrated in FIG. 9 are not intended to be limiting. Additional or alternative components may be used in other embodiments. Components of computing system 900 shown in FIG. 9 will now be described in additional detail.
[0095] Communication interface 902 may be configured to communicate with one or more computing devices. Examples of communication interface 902 include, without limitation, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), a modem, an audio / video connection, and any other suitable interface.
[0096] Processor 904 generally represents any type or form of processing unit capable of processing data or interpreting, executing, and / or directing execution of one or more of the instructions, processes, and / or operations described herein. Processor 904 may direct execution of operations in accordance with one or more applications 912 or other computerexecutable instructions such as may be stored in storage device 906 or another computer- readable medium.
[0097] Storage device 906 may include one or more data storage media, devices, or configurations and may employ any type, form, and combination of data storage media and / or device. For example, storage device 906 may include, but is not limited to, a hard drive, network drive, flash drive, magnetic disc, optical disc, RAM, dynamic RAM, other non-volatile and / or volatile data storage units, or a combination or sub-combination thereof. Electronic data, including data described herein, may be temporarily and / or permanently stored in storage device 906. For example, data representative of one or more executable applications 912 configured to direct processor 904 to perform any of the operationsAtty Docket No. 0120-1029W01 described herein may be stored within storage device 906. In some examples, data may be arranged in one or more databases residing within storage device 906.
[0098] I / O module 908 may include one or more I / O modules configured to receive user input and provide user output. One or more I / O modules may be used to receive input for a single virtual experience. I / O module 908 may include any hardware, firmware, software, or combination thereof supportive of input and output capabilities. For example, I / O module 908 may include hardware and / or software for capturing user input, including, but not limited to, a keyboard or keypad, a touchscreen component (e.g., touchscreen display), a receiver (e.g., an RF or infrared receiver), motion sensors, and / or one or more input buttons.
[0099] I / O module 908 may include one or more devices for presenting output to a user, including, but not limited to, a graphics engine, a display (e.g., a display screen), one or more output drivers (e.g., display drivers), one or more audio speakers, and one or more audio drivers. In certain embodiments, I / O module 908 is configured to provide graphical data to a display for presentation to a user. The graphical data may be representative of one or more graphical user interfaces and / or any other graphical content as may serve a particular implementation.
[0100] The following examples describe implementations of autostereoscopic display system calibration using light pattern projection in accordance with principles described herein.
[0101] Example 1 : A system comprising: an autostereoscopic display; a set of cameras associated with the autostereoscopic display and configured to capture image data of a scene; a memory that stores instructions and a set of calibration parameters; and a processor configured to execute the instructions to perform a process comprising: projecting, using the autostereoscopic display, a light pattern into the scene, the light pattern including a first portion bordering a second portion at a boundary; targeting, based on the set of calibration parameters, the projecting of the light pattern to align the boundary with a point in the scene; determining, based on the image data, an alignment error between the boundary and the point; and updating, based on the alignment error, the set of calibration parameters.
[0102] Example 2: The system of any of the preceding examples, wherein: the process further comprises determining, based on the image data, a contrast between the first portion and the second portion at the boundary; and the updating the set of calibration parameters is further based on the contrast.
[0103] Example 3: The system of any of the preceding examples, wherein: the process further comprises identifying, based on the image data, a calibration chart presentAtty Docket No. 0120-1029W01 within the scene; the point is associated with a feature of the calibration chart; and the targeting includes determining, based on the image data, a depth of the feature with respect to the set of cameras.
[0104] Example 4: The system of any of the preceding examples, wherein: the process further comprises identifying, based on the image data, a user present within the scene; the point is associated with the user and centered between a first eye of the user and a second eye of the user; and the targeting includes determining, based on the image data, a depth of the point with respect to the set of cameras.
[0105] Example 5: The system of any of the preceding examples, wherein the instructions direct the process to be performed in response to a detection, based on the image data, that the first eye of the user and the second eye of the user are shut.
[0106] Example 6: The system of any of the preceding examples, wherein the instructions direct the process to be performed in response to a trigger that includes at least one of a time-based component or a temperature-based component.
[0107] Example 7: The system of any of the preceding examples, wherein the instructions direct the process to be performed in association with at least one of a system startup sequence, a system shutdown sequence, or a determination that the system is not in use.
[0108] Example 8: The system of any of the preceding examples, wherein the light pattern includes stripes of different colors, the first portion of the light pattern being a first stripe of a first color and the second portion of the light pattern being a second stripe of a second color.
[0109] Example 9: The system of any of the preceding examples, wherein the determining of the alignment error includes: performing a phase sweep of the light pattern over the point; determining, based on the phase sweep, an angle of misalignment between the boundary and the point; and generating, based on the angle of misalignment, the alignment error as a distance.
[0110] Example 10: The system of any of the preceding examples, wherein the set of calibration parameters includes a camera-to-display parameter at least partially defining a spatial relationship between the autostereoscopic display and one or more cameras of the set of cameras.
[0111] Example 11 : The system of any of the preceding examples, wherein the autostereoscopic display is a lenticular display that includes an array of pixels and an array of lenticular lenses, the array of pixels being configured to emit light by way of the array ofAtty Docket No. 0120-1029W01 lenticular lenses.
[0112] Example 12: The system of any of the preceding examples, wherein the set of calibration parameters includes a lenticular parameter at least partially defining a characteristic of the array of lenticular lenses.
[0113] Example 13: The system of any of the preceding examples, wherein the system is implemented as a first three-dimensional (3D) communication system that is communicatively coupled to a second 3D communication system at a remote scene, the first 3D communication system and the second 3D communication system configured to exchange communication data to provide a 3D communication session between the scene and the remote scene.
[0114] Example 14: A method comprising: projecting, using an autostereoscopic display, a light pattern into a scene, the light pattern including a first portion bordering a second portion at a boundary; targeting, based on a set of calibration parameters, the projecting of the light pattern to align the boundary with a point in the scene; determining, based on image data of the scene captured by a set of cameras associated with the autostereoscopic display, an alignment error between the boundary and the point; and updating, based on the alignment error, the set of calibration parameters.
[0115] Example 15: The method of any of the preceding examples, further comprising determining, based on the image data, a contrast between the first portion and the second portion at the boundary; wherein the updating the set of calibration parameters is further based on the contrast.
[0116] Example 16: The method of any of the preceding examples, further comprising identifying, based on the image data, a calibration chart present within the scene; wherein: the point is associated with a feature of the calibration chart; and the targeting includes determining, based on the image data, a depth of the feature with respect to the set of cameras.
[0117] Example 17: The method of any of the preceding examples, further comprising identifying, based on the image data, a user present within the scene; wherein: the point is associated with the user and centered between a first eye of the user and a second eye of the user; and the targeting includes determining, based on the image data, a depth of the point with respect to the set of cameras.
[0118] Example 18: The method of any of the preceding examples, wherein the set of calibration parameters includes a camera-to-display parameter at least partially defining a spatial relationship between the autostereoscopic display and one or more cameras of the setAtty Docket No. 0120-1029W01 of cameras.
[0119] Example 19: A non-transitory computer-readable medium storing instructions that, when executed, cause a processor of a computing system to perform a process comprising: projecting, using an autostereoscopic display, a light pattern into a scene, the light pattern including a first portion bordering a second portion at a boundary; targeting, based on a set of calibration parameters, the projecting of the light pattern to align the boundary with a point in the scene; determining, based on image data of the scene captured by a set of cameras associated with the autostereoscopic display, an alignment error between the boundary and the point; and updating, based on the alignment error, the set of calibration parameters.
[0120] Example 20: The non-transitory computer-readable medium of any of the preceding examples, wherein the set of calibration parameters includes a camera-to-display parameter at least partially defining a spatial relationship between the autostereoscopic display and one or more cameras of the set of cameras.
[0121] Various implementations of the systems and techniques described herein can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
[0122] A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the description and claims. In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.
[0123] Specific structural and functional details disclosed herein are merely representative for purposes of describing example implementations. Example implementations, however, may be embodied in many alternate forms and should not be construed as limited to only the implementations set forth herein.Atty Docket No. 0120-1029W01
[0124] It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. A first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the scope of the implementations of the disclosure. As used herein, the term and / or includes any and all combinations of one or more of the associated listed items.
[0125] The terminology used herein is for the purpose of describing particular implementations only and is not intended to be limiting of the implementations. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and / or “including,” when used in this specification, specify the presence of the stated features, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and / or groups thereof.
[0126] It will be understood that when an element is referred to as being “coupled,” “connected,” or “responsive” to, or “on,” another element, it can be directly coupled, connected, or responsive to, or on, the other element, or intervening elements may also be present. In contrast, when an element is referred to as being “directly coupled,” “directly connected,” or “directly responsive” to, or “directly on,” another element, there are no intervening elements present. As used herein the term “and / or” includes any and all combinations of one or more of the associated listed items.
[0127] Spatially relative terms, such as “beneath,” “below,” “lower,” “above,” “upper,” and the like, may be used herein for ease of description to describe one element or feature in relationship to another element(s) or feature(s) as illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if the device in the figures is turned over, elements described as “below” or “beneath” other elements or features would then be oriented “above” the other elements or features. Thus, the term “below” can encompass both an orientation of above and below. The device may be otherwise oriented (rotated 130 degrees or at other orientations) and the spatially relative descriptors used herein may be interpreted accordingly.
[0128] Unless otherwise defined, the terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in theAtty Docket No. 0120-1029W01 art to which these concepts belong. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and / or the present specification and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
[0129] Further to the descriptions above, a user may be provided with controls allowing the user to make an election as to both if and when systems, programs, or features described herein may enable collection of user information (e.g., information about a user's social network, social actions, or activities, profession, a user's preferences, or a user's current location), and if the user is sent content or communications from a server. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user's identity may be treated so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized, or location information may be obtained (such as to a city, zip code, or state level), so that a particular location of a user cannot be determined. Thus, the user may have control over what information is collected about the user, how that information is used, and what information is provided to the user.
[0130] While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes, and equivalents may occur to those skilled in the art. It is therefore to be understood that the appended claims are intended to cover such modifications and changes as fall within the scope of the implementations. It will be understood that they have been presented by way of example only, not limitation, and various changes in form and details may be made. Any portion of the apparatus and / or methods described herein may be combined in any combination, except mutually exclusive combinations. The implementations described herein can include various combinations and / or sub-combinations of the functions, components, and / or features of the different implementations described. As such, the scope of the present disclosure is not limited to the particular combinations hereafter claimed, but instead extends to encompass any combination of features or example implementations described herein irrespective of whether or not that particular combination has been specifically enumerated in the accompanying claims at this time.
Claims
Atty Docket No. 0120-1029W01WHAT IS CLAIMED IS:
1. A system comprising: an autostereoscopic display; a set of cameras associated with the autostereoscopic display and configured to capture image data of a scene; a memory that stores instructions and a set of calibration parameters; and a processor configured to execute the instructions to perform a process comprising: projecting, using the autostereoscopic display, a light pattern into the scene, the light pattern including a first portion bordering a second portion at a boundary; targeting, based on the set of calibration parameters, the projecting of the light pattern to align the boundary with a point in the scene; determining, based on the image data, an alignment error between the boundary and the point; and updating, based on the alignment error, the set of calibration parameters.
2. The system of claim 1, wherein: the process further comprises determining, based on the image data, a contrast between the first portion and the second portion at the boundary; and the updating the set of calibration parameters is further based on the contrast.
3. The system of any of claims 1 to 2, wherein: the process further comprises identifying, based on the image data, a calibration chart present within the scene; the point is associated with a feature of the calibration chart; and the targeting includes determining, based on the image data, a depth of the feature with respect to the set of cameras.
4. The system of any of claims 1 to 2, wherein: the process further comprises identifying, based on the image data, a user present within the scene; the point is associated with the user and centered between a first eye of the user and a second eye of the user; andAtty Docket No. 0120-1029W01 the targeting includes determining, based on the image data, a depth of the point with respect to the set of cameras.
5. The system of claim 4, wherein the instructions direct the process to be performed in response to a detection, based on the image data, that the first eye of the user and the second eye of the user are shut.
6. The system of any of claims 1 to 5, wherein the instructions direct the process to be performed in response to a trigger that includes at least one of a time-based component or a temperature-based component.
7. The system of any of claims 1 to 6, wherein the instructions direct the process to be performed in association with at least one of a system startup sequence, a system shutdown sequence, or a determination that the system is not in use.
8. The system of any of claims 1 to 7, wherein the light pattern includes stripes of different colors, the first portion of the light pattern being a first stripe of a first color and the second portion of the light pattern being a second stripe of a second color.
9. The system of any of claims 1 to 8, wherein the determining of the alignment error includes: performing a phase sweep of the light pattern over the point; determining, based on the phase sweep, an angle of misalignment between the boundary and the point; and generating, based on the angle of misalignment, the alignment error as a distance.
10. The system of any of claims 1 to 9, wherein the set of calibration parameters includes a camera-to-display parameter at least partially defining a spatial relationship between the autostereoscopic display and one or more cameras of the set of cameras.
11. The system of any of claims 1 to 10, wherein the autostereoscopic display is a lenticular display that includes an array of pixels and an array of lenticular lenses, the array of pixels being configured to emit light by way of the array of lenticular lenses.Atty Docket No. 0120-1029W0112. The system of claim 11, wherein the set of calibration parameters includes a lenticular parameter at least partially defining a characteristic of the array of lenticular lenses.
13. The system of any of claims 1 to 12, wherein the system is implemented as a first three-dimensional (3D) communication system that is communicatively coupled to a second 3D communication system at a remote scene, the first 3D communication system and the second 3D communication system configured to exchange communication data to provide a 3D communication session between the scene and the remote scene.
14. A method compri sing : projecting, using an autostereoscopic display, a light pattern into a scene, the light pattern including a first portion bordering a second portion at a boundary; targeting, based on a set of calibration parameters, the projecting of the light pattern to align the boundary with a point in the scene; determining, based on image data of the scene captured by a set of cameras associated with the autostereoscopic display, an alignment error between the boundary and the point; and updating, based on the alignment error, the set of calibration parameters.
15. The method of claim 14, further comprising determining, based on the image data, a contrast between the first portion and the second portion at the boundary; wherein the updating the set of calibration parameters is further based on the contrast.
16. The method of any of claims 14 to 15, further comprising identifying, based on the image data, a calibration chart present within the scene; wherein: the point is associated with a feature of the calibration chart; and the targeting includes determining, based on the image data, a depth of the feature with respect to the set of cameras.
17. The method of any of claims 14 to 15, further comprising identifying, based on the image data, a user present within the scene; wherein:Atty Docket No. 0120-1029W01 the point is associated with the user and centered between a first eye of the user and a second eye of the user; and the targeting includes determining, based on the image data, a depth of the point with respect to the set of cameras.
18. The method of any of claims 14 to 17, wherein the set of calibration parameters includes a camera-to-display parameter at least partially defining a spatial relationship between the autostereoscopic display and one or more cameras of the set of cameras.
19. A non-transitory computer-readable medium storing instructions that, when executed, cause a processor of a computing system to perform a process comprising: projecting, using an autostereoscopic display, a light pattern into a scene, the light pattern including a first portion bordering a second portion at a boundary; targeting, based on a set of calibration parameters, the projecting of the light pattern to align the boundary with a point in the scene; determining, based on image data of the scene captured by a set of cameras associated with the autostereoscopic display, an alignment error between the boundary and the point; and updating, based on the alignment error, the set of calibration parameters.
20. The non-transitory computer-readable medium of claim 19, wherein the set of calibration parameters includes a camera-to-display parameter at least partially defining a spatial relationship between the autostereoscopic display and one or more cameras of the set of cameras.
Citation Information
Patent Citations
Method of calibrating a display which tracks an observer
EP0769881B1
Three-Dimensional (3D) Imaging Based on MotionParallax
US20120242810A1
Method of estimating parameter of three-dimensional (3D) display device and 3D display device using the method
US20170041592A1