Reflective inclined surfaces for inspecting camera assemblies as calibration objects

By using a reflective tilted surface as the calibration object and combining a multi-light source and camera system, the problem of calibrating the three-dimensional position of the light source and camera is solved, the image capture quality and the accuracy of defect detection are improved, and it is applicable to a variety of surface materials and environments.

CN120761398APending Publication Date: 2025-10-10SHENZHEN GEYUAN TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511015971.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-11-25
Filing Date
2025-07-23
Publication Date
2025-10-10

AI Technical Summary

Technical Problem

In the prior art, it is difficult for inspection camera systems to accurately determine the relative three-dimensional position between the light source and the camera during calibration, resulting in inaccurate image analysis, especially difficulty in capturing high-quality defect images under different surface materials and environments.

Method used

A reflective tilted surface is used as a calibration object. By activating a light source and capturing its reflected image, the calibration object is rotated along the z-axis to determine the relative three-dimensional position between the light source and the camera. Calibration is performed using multiple independently controlled light sources and cameras.

Benefits of technology

It achieves precise three-dimensional position calibration between the light source and the camera, improves the image capture quality under different surface materials and environments, and enhances the accuracy and flexibility of defect detection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120761398A_ABST
    Figure CN120761398A_ABST
Patent Text Reader

Abstract

In one exemplary embodiment, a reflective inclined surface is used as a calibration object. During the calibration process, the relative three-dimensional position between the light source and the camera may be determined by activating the light source and capturing an image reflected by the light source from the reflective calibration object. The reflective inclined surface is rotated 90 degrees along the z-axis each time, in fact that the reflective inclined surface is rotated such that the highest edge is perpendicular to its previous position each time the camera captures, this process can be repeated multiple times. This allows the angle at which the light source impinges on the reflective inclined surface at each repetition to be calculated, which can then be used to determine the three-dimensional position of the light source relative to the camera. Using the same calibration object, the same technique may be used for camera calibration.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates generally to inspection camera assemblies and, more particularly, to a reflective, tilted surface as a calibration target for an inspection camera assembly. Background Art

[0002] Inspection cameras are used in industrial products to assist in detecting defects in manufactured goods. For example, if a manufacturer is producing metal castings, one or more inspection cameras may be placed along the manufacturing and / or assembly line to inspect the metal castings or parts thereof being produced to detect any issues with quality control. Summary of the Invention

[0003] In one aspect, the present application provides a system comprising:

[0004] a lighting device comprising one or more independently controllable light sources;

[0005] camera;

[0006] a first calibration object comprising a first planar surface inclined at a first angle to a second surface, the first planar surface being reflective, the second surface being perpendicular to a z-axis of the first calibration object; and

[0007] A computer system comprising at least one hardware processor and a non-transitory computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations comprising:

[0008] In response to the first calibration object appearing in the field of view of the camera:

[0009] activating one or more of the one or more independently controllable light sources to direct light onto the first planar surface;

[0010] activating the camera to capture one or more images of one or more reflections of the light on the first planar surface;

[0011] determining whether the first calibration object should be rotated further;

[0012] In response to determining that more rotations should be performed on the first calibration object, after rotating the first calibration object about the z-axis such that the orientation of the first calibration object changes to a different orientation, repeating the activating, using, and determining steps until determining that no more rotations should be performed;

[0013] using reflections in the captured image to determine the distance between the lighting device and the camera; and

[0014] The system is calibrated based on a distance between the lighting device and the camera.

[0015] In another aspect, the present application provides a method comprising:

[0016] In response to a first calibration object being presented in front of the camera such that the camera faces a first planar surface of the first calibration object, the first planar surface being tilted at a first angle to a second surface, the first planar surface being reflective, and the second surface being perpendicular to a z-axis of the first calibration object:

[0017] activating one or more of the one or more independently controllable light sources of the lighting device based on a lighting configuration to direct light onto the first planar surface;

[0018] capturing, with a camera, one or more images of one or more reflections of the light on the first planar surface;

[0019] determining whether the first calibration object should be rotated further;

[0020] In response to determining that more rotations should be performed on the first calibration object, after rotating the first calibration object about the z-axis such that the orientation of the first calibration object changes to a new orientation, repeating the activating, using, and determining steps until determining that no more rotations should be performed;

[0021] using reflections in the captured image to determine the distance between the lighting device and the camera; and

[0022] Calibrate a system based on the distance between the lighting fixture and the camera.

[0023] In a third aspect, the present application provides a non-transitory machine-readable storage medium embodying instructions executable by one or more machines to perform the following operations:

[0024] In response to a first calibration object being presented in front of the camera such that the camera faces a first planar surface of the first calibration object, the first planar surface being tilted at a first angle to a second surface, the first planar surface being reflective, and the second surface being perpendicular to a z-axis of the first calibration object:

[0025] activating one or more of the one or more independently controllable light sources of the lighting device based on a lighting configuration to direct light onto the first planar surface;

[0026] capturing, with a camera, one or more images of one or more reflections of the light on the first planar surface;

[0027] determining whether the first calibration object should be rotated further;

[0028] In response to determining that more rotations should be performed on the first calibration object, after rotating the first calibration object about the z-axis such that the orientation of the first calibration object changes to a new orientation, repeating the activating, using, and determining steps until determining that no more rotations should be performed;

[0029] using reflections in the captured image to determine the distance between the lighting device and the camera; and

[0030] Calibrate a system based on the distance between the lighting fixture and the camera.

[0031] As can be seen from the technical solutions provided by the present application, during the calibration process, the relative three-dimensional position between the light source and the camera can be determined by activating the light source and capturing an image of the light source reflected from a reflective calibration object. Each time the reflective inclined surface is rotated 90 degrees along the z-axis, the reflective inclined surface is actually rotated so that the highest edge is perpendicular to its previous position each time the camera captures it. This process can be repeated multiple times. This allows the angle at which the light source hits the reflective inclined surface to be calculated for each repetition, and these angles can then be used to determine the three-dimensional position of the light source relative to the camera. Using the same calibration object, the same technique can be used for camera calibration. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] Figure 1 A block diagram of an inspection system is shown according to an example embodiment.

[0033] Figure 2 Shown Figure 1 A perspective view of the bottom of a light dome of an inspection system illustrating positioning of a printed circuit board including light sources (eg, LEDs) according to an example embodiment.

[0034] Figure 3 Shown Figure 2 Layout of LEDs of a light dome, according to an example embodiment.

[0035] Figure 4 is a schematic diagram illustrating a first calibration object according to example embodiments.

[0036] Figure 5 is a schematic diagram illustrating rotation of a first calibration object along a z-axis according to example embodiments.

[0037] Figure 6 is a flow chart of an example method for calibrating an inspection system according to an example embodiment.

[0038] Figure 7 is a schematic diagram illustrating light beams at different angles reflected from a calibration object according to example embodiments.

[0039] Figure 8is a block diagram illustrating a software architecture for an inspection system, according to an example embodiment.

[0040] Figure 9 A schematic diagram of a machine in the form of a computer system is shown within which a set of instructions may be executed, causing the machine to perform any one or more of the methodologies discussed herein. DETAILED DESCRIPTION

[0041] When capturing images, certain light sources may be detrimental to imaging products with certain surfaces, certain defects, and / or in certain environments. For example, surface materials or characteristics of a product that affect the light quality of the captured image include reflective properties, transparency, or black / opaque properties. For another example, certain types of defects in a product, such as scratches or dirt, may be difficult to detect. Furthermore, in certain environments, product defects are more challenging to detect.

[0042] Inspection cameras can be improved by improving the design of lighting fixtures to increase the amount of light available in various scenarios. More specifically, rather than providing a single light source—which may not provide sufficient light to capture images of sufficient quality to determine the presence of surface defects on all surface materials on various parts or products—a lighting fixture with multiple light sources can be provided. Furthermore, a controller for the lighting fixture can be provided that allows for independent control of the multiple light sources, allowing for the use of lighting combinations and sequences to maximize the flexibility of the lighting fixture to provide sufficient light for a variety of different products, parts, materials, and environments.

[0043] In such an environment, a camera is used to capture images of the manufactured product. However, the camera can be positioned separately from the light source itself. For example, the camera can be located on an adjustable device that is separate from the light source.

[0044] One issue that arises is that in order to correctly analyze images of manufactured goods, the relative 3D position between the camera and any light sources used to illuminate the manufactured goods must be known. This relative 3D position can be determined using a calibration object during a calibration process where the system is calibrated by placing the calibration object in the camera's field of view when one or more light sources are activated.

[0045] In an example embodiment, a reflective tilted surface is used as a calibration object. During the calibration process, the relative three-dimensional position between the light source and the camera can be determined by activating the light source and capturing an image of how the light from the light source reflects from the reflective tilted surface. In an example embodiment, this operation can be repeated by rotating the reflective tilted surface multiple times along the z-axis (for example, rotating it ninety degrees), each time essentially rotating the reflective tilted surface so that the highest edge is perpendicular to the previous position of the camera each time it is captured. Therefore, the light source is seen in different directions in the reflective surface. This allows the angle at which the light source hits the reflective tilted surface in each repetition to be calculated, and these angles can then be used to determine the relative position of the light source relative to the camera in three-dimensional space. By using the calibration object intelligently, the same data set can be used to calibrate the camera and light source.

[0046] Example inspection system,

[0047] Figure 1 A block diagram of an inspection system 100 according to an example embodiment is shown. Inspection system 100 includes a light dome 102, a camera 108, a controller 106, an industrial computer 112, and a factory computer 116. Factory computer 116 communicates with controller 106 and computer 112 via a wired or wireless factory network 124.

[0048] In use, light dome 102 illuminates a target object 104, such as a metal casting or other product to be inspected for defects. Light dome 102 includes a housing containing multiple light sources, as described in more detail below. In some examples, the light sources include multiple LEDs or displays arranged to provide flexibility in illuminating target object 104. The light sources are selectively activated by controller 106 using power cord 110. The light sources are lighting units that can be individually addressed by controller 106 to illuminate target object 104. Thus, a single light source can include a single LED or multiple LEDs addressable as a group. A light source can also form part of a subset of light-generating units, such as a group or block of pixels in a flexible display. In an exemplary embodiment, light dome 102 includes at least ten individually addressable light sources arranged within light dome 102 to provide lighting flexibility.

[0049] Camera 108 can be mounted to light dome 102 via bracket 114 to capture images of illuminated target object 104 through a hole in the top of light dome 102. Camera 108 is triggered by controller 106 via trigger line 118, in synchronization with activation of the light sources in light dome 102.

[0050] Controller 106 controls the operation of camera 108 and the illumination of target object 104 by light dome 102. Controller 106 receives instructions from computer 112 via control line 122. Controller 106 may be implemented by a hardware processor disposed within camera 108. Controller 106 may also include hardware components, which may include a central processing unit ("CPU"), a bus, volatile and non-volatile storage devices, a storage unit, a non-transitory computer-readable medium, a data processor, a processing device, a control device, a transmitter, a receiver, an antenna, a transceiver, an input device, an output device, a network interface device, and other types of components known to those skilled in the art. These hardware components within a user device may be used to execute various applications, methods, or algorithms disclosed herein independently of other devices disclosed herein.

[0051] Controller 106 illuminates the target object according to one or more optimal lighting configurations. A lighting configuration can be defined as a matrix, where each value in the lighting configuration matrix represents the operating state of each independently controllable light source, such as one or more LEDs and / or pixel groups on a flexible display. The matrix can also include brightness or color values ​​for a particular configuration. Lighting configurations can also be arranged into a configuration sequence, which specifies the order in which lighting configurations are to be applied to a particular target object 104, allowing camera 108 to capture multiple images under different lighting conditions.

[0052] Computer 112 runs software that provides a user interface that can be used to specify lighting configurations and sequences, which can be loaded into controller 106. Computer 112 also directs the operation of controller 106 via control line 122 and receives images captured by camera 108 via data line 120.

[0053] The plant computer 116 provides overall plant control and may receive operational data and captured images from the camera 108 from the controller 106 and the computer 112 via the plant network 124. The plant computer 116 may also provide instructions to control or initiate operations of the inspection system 100 based on, for example, other plant operations (e.g., the movement of the target object 104 through the light dome 102).

[0054] The object being inspected for defects can be placed on conveyor belt 126, which can be moved to move the object so that when one or more light sources on light dome 102 are illuminated, the object is at least partially positioned below camera 108. As previously described, this can be performed under dynamic capture conditions, where conveyor belt 126 does not stop, and therefore the object does not stop below camera 108. Instead, multiple images of the object are captured at different times under different lighting conditions. Thus, different angles of the object can be captured, but rather than camera 108 moving around the object to capture these different angles, the object moves while camera 108 remains stationary, although this is not necessarily performed under dynamic capture conditions.

[0055] As previously mentioned, in order to achieve image alignment when performing defect inspection on multiple images of an actual part, a calibration operation is first performed. During calibration, a calibration object is placed under the camera 108 in various orientations to calibrate the inspection system.

[0056] Figure 2 Shown Figure 1 A perspective view of the bottom of a light dome 102 of an inspection system of FIG. 1 shows the positioning of a printed circuit board including light sources (e.g., LEDs) according to some examples. In this view, some of the printed circuit board has been removed to show details of the bottom of the housing in addition to the positioning of the LEDs.

[0057] According to some examples, the bottom of light dome 102 is generally hemispherical and includes four T-shaped printed circuit boards 202 and four L-shaped printed circuit boards 204. In this view, the L-shaped printed circuit board 204 in the lower left corner is not shown, and the T-shaped printed circuit board 202 on the left is not shown.

[0058] Each printed circuit board 202, 204 includes a substrate 206, a connector 210, and a plurality of high-power LEDs 208 for selectively illuminating the target object 104 under the control of the controller 106. As can be seen in the figure, the bottom of the housing includes a plurality of bosses or pads 212, which define a raised surface on the bottom of the housing for supporting each T-shaped printed circuit board 202 and L-shaped printed circuit board 204. The positions of the pads 212 correspond to the positions of the LEDs 208, and thermal paste is provided between each pad 212 and the LED 208 to facilitate heat transfer from the LED to the light dome 102.

[0059] While not shown, the camera can be located in the center of the light dome 102. Notably, the camera can not be physically connected to the light dome 102, so there is uncertainty in the distance between the camera and the LEDs 208 on the light dome 102. In addition to the distance varying in the x and y axes, there can also be a variation along the z axis, as the light dome 102 can not be oriented perfectly parallel to the ground (or the base to which the camera is pointed), so some LEDs 208 can actually be higher than others.

[0060] Figure 3 A diagram 300 showing the layout of the LEDs 208 of the light dome 102 is shown in accordance with example embodiments. Figure 2 The LEDs 208 are arranged symmetrically as four inner ring LEDs 304 in an inner ring 302, eight middle ring LEDs 308 in a middle ring 306, and sixteen outer ring LEDs 312 in an outer ring 310. To provide additional light coverage, four corner LEDs 316 are located in corner positions 314.

[0061] An example calibration of the inspection system.

[0062] Figure 4 A diagram showing a first calibration object 400 in accordance with example embodiments. Here, the first calibration object 400 includes a reflective tilted surface 402. The reflective tilted surface 402 can include, for example, a checkerboard pattern, and can be made of any reflective material, such as opal glass. As it is reflective, it serves to reflect light from one or more light sources (e.g., the LEDs 304, 308, and 312).

[0063] Here, the reflective tilted surface 402 has four perpendicular sides, including 404A, 404B, 404C, and 404D, similar to a square or a rectangle. The term “tilted surface” is meant to indicate that the surface is at an angle relative to a bottom 406 of the first calibration object 400. For example, here the angle is five degrees, although other angles are possible. Indeed, as will be discussed in more detail below, there can be multiple calibration objects with different angles. This angle means that one side of the reflective tilted surface 402, specifically side 404A, is parallel to the bottom 406 of the first calibration object 400, and is at a highest point relative to the bottom 406. In contrast, side 404C is also parallel to the bottom 406, but is at a lowest point relative to the bottom 406. Sides 404B and 404D are not parallel to the bottom 406, but are tilted at the angle 403 (e.g., five degrees) of the reflective tilted surface 402.

[0064] It is also noted that while the reflective tilted surface 402 is a reflective surface, other surfaces on the first calibration object need not be reflective. For example, in this figure, surface 408 need not be reflective.

[0065] As previously described, the first calibration object 400 is placed at a first orientation relative to the z-axis. Figure 1 The first calibration object 400 is then rotated approximately ninety degrees along the z-axis and the process is repeated. This rotation and repetition process repeats itself until images of the first calibration object 400 are obtained in all four positions.

[0066] It should be noted that Figure 4 First calibration object 400 is depicted as a single molded object, comprising reflective, angled surface 402, as well as sides 408 and bottom 406. However, not all components must be molded together. For example, reflective, angled surface 402 can be a separate component from sides 408 and bottom 406, with sides 408 and bottom 406 acting as a support to temporarily secure reflective, angled surface 402 at angle 403. Reflective, angled surface 402 can then be removed from this support and placed in a different support that secures reflective, angled surface 402 at a different angle. Reflective, angled surface 402 can also be placed flat below the camera without any support, so that it is not tilted. These embodiments will be discussed in more detail later.

[0067] It should also be noted that while this disclosure provides many examples of tilted surfaces being used as or within calibration objects, calibration objects do not necessarily always have tilted surfaces. A surface may be flat but not tilted, or tilted but not flat. In fact, in some example embodiments, the surface need not be tilted or flat. However, in such cases, the ability to detect the orientation of a pattern on the surface becomes even more important.

[0068] Figure 5 is a schematic diagram illustrating the rotation of the first calibration object 400 along the z-axis according to an example embodiment. The calibration object may be placed Figure 1108 to calibrate the camera 108 of the inspection system 100. Here, the conveyor belt 126 is represented by an arrow indicating the direction in which the conveyor belt 126 generally moves when transporting products to be inspected for defects. For ease of discussion, the direction indicated by the arrow is considered the "front" 410 of the conveyor belt 126, with the direction opposite the arrow being considered the "back" 412 of the conveyor belt. As shown, in a first view 500, the first calibration object 400 has a first orientation with edge 404A closest to the front 410 of the conveyor belt 126. In a second view 502, the first calibration object 400 has been rotated ninety degrees clockwise, such that edge 404A is now closest to a side 414 of the conveyor belt 126. In a third view 504, the first calibration object 400 has been rotated another ninety degrees clockwise, such that edge 404A is now closest to the back of the conveyor belt 126. In the fourth view 506 , the first calibration object 400 has been rotated another ninety degrees clockwise such that the edge 404A is now closest to the other side 416 of the conveyor belt 126 .

[0069] As previously described, one or more images of first calibration object 400 may be captured in each orientation. If multiple images are captured in any or all of these orientations, they may be captured under different lighting conditions. For example, a different independently controllable LED 208 may be activated for each image of first calibration object 400 captured in each configuration.

[0070] Thus, for example, four different images of the first calibration object 400 may be captured using four different lighting configurations when the first calibration object 400 is in each of four orientations, resulting in sixteen different images of the first calibration object 400 .

[0071] In addition, in an example embodiment, this process can be repeated for multiple different calibration objects. For example, in addition to the process described above regarding the first calibration object 400, a similar process can be performed using a second calibration object with a different tilt angle. In addition, in some example embodiments, a third calibration object without a tilt angle can also be used. It should be noted that when the calibration object has no tilt angle, there is no need to rotate the calibration object to multiple directions because each direction is the same. Therefore, for such a flat calibration object, instead of taking one or more images in each of the four configurations, one or more images are taken only in a single configuration. In this example embodiment, a combination of the first, second, and third calibration objects described above can be used. Then, using four different lighting configurations in each direction, the result is that sixteen images are taken of the first calibration object, sixteen images are taken of the second calibration object, and four images are taken of the third calibration object (which is flat).

[0072] As previously mentioned, the second calibration object does not have to be a single molded object, but may include a combination of a reflective surface and a bracket that temporarily holds the reflective surface at the desired angle.

[0073] Different lighting configurations and calibration object orientations produce different light reflections in each image.

[0074] Knowing the position and orientation of the reflecting surface and the 2D pixel position of the light source, a calibrated camera can be used to calculate the 3D point of the reflection and its angle toward the light source. Multiple orientations of the calibration object thus give multiple paths to the same light source, and triangulation can be performed.

[0075] Figure 6 FIG6 is a flow chart of an example method 600 for calibrating an inspection system according to an example embodiment. Method 600 can be used to calibrate example inspection system 100 and is accordingly described with reference thereto. Method 600 utilizes a first calibration object (e.g., calibration object 400) that includes a first planar surface (e.g., inclined surface 402 inclined at a first angle relative to a second surface (e.g., bottom 406)), the first planar surface being reflective, and the second surface being perpendicular to the z-axis of the first calibration object.

[0076] In operation 610, in response to the first calibration object being presented in front of camera 108 so that camera 108 faces a first plane of the first calibration object, one or more lights (e.g., LEDs 208) from a plurality of independently controllable light sources on a lighting device (e.g., light dome 102) are activated based on the lighting configuration to direct light onto the first plane. In operation 620, camera 108 is operable to capture one or more images of one or more reflections of the light on the first plane.

[0077] In operation 630, a determination is made as to whether additional lighting configurations are available. If so, method 600 loops back to operation 610 for the next lighting configuration. If not, in operation 640, a determination is made as to whether the calibration object requires more rotations. In an exemplary embodiment, this simply means determining whether the calibration object has been rotated three times. Since each rotation is 90 degrees, three rotations would mean the object would have been positioned at 0, 90, 180, and 270 degrees, completing a full rotation around the z-axis. If each rotation does not constitute a 90-degree angle, completing a full rotation may require more or fewer rotations. If it is determined that more rotations are required, in operation 650, the first calibration object is rotated 90 degrees, and method 600 loops back to operation 610 using the first lighting configuration. If it is determined that no more rotations are required, in operation 660, the reflections in the captured image are used to determine the distance between the lighting device and the camera. The system is then calibrated based on this distance in operation 670. The reflections are then also used to calibrate the camera in operation 680.

[0078] Camera calibration can use a known calibration pattern (e.g., a checkerboard) with known orientations in x directions. Nine images can be taken, and the pattern can be detected in each image and used to calibrate the camera. This also calculates the orientation and position of the pattern relative to the camera. Light sources can then be detected in reflective surfaces and used to calibrate the light source.

[0079] Figure 7 FIG2 is a schematic diagram illustrating light beams 700A, 700B, 700C, and 700D reflected from calibration objects 702A, 702B, 702C, and 702D at different angles, according to an example embodiment. Here, a camera 704 captures images of the light beams 700A, 700B, 700C, and 700D and the calibration objects 702A, 702B, 702C, and 702D, which can then be used to calibrate the system as previously described. It is worth noting that the calibration objects 702A, 702B, 702C, and 702D do not need to be of any particular shape or configuration, as long as they capture different angles.

[0080] In view of the above disclosure, various examples are given below. It should be noted that one or more features of an example, considered alone or in combination, should be included in the disclosure scope of this application.

[0081] Example 1 is a system comprising: an illumination device comprising a plurality of independently controllable light sources; a camera; a first calibration object comprising a first plane tilted at a first angle relative to a second surface, the first plane being reflective, the second surface being perpendicular to a z-axis of the first calibration object; a computer system comprising at least one hardware processor and a non-transitory computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform the following operations: in response to the first calibration object appearing in front of the camera, causing the camera to face the first plane: activating one or more light sources of the plurality of independently controllable light sources based on an illumination configuration to direct light onto the first plane; using the camera to capture one or more images of one or more reflections of the light on the first plane; determining whether the first calibration object should be rotated further; in response to determining that the first calibration object should be rotated further, repeating the activating, using, and determining operations after rotating the first calibration object about the z-axis such that a direction of the first calibration object changes to a new direction until determining that no further rotation should be performed; using the reflections in the captured images to determine a distance between the illumination device and the camera; and calibrating the system based on the distance between the illumination device and the camera.

[0082] In Example 2, the subject matter of Example 1 includes, wherein the operations further comprise: calibrating the camera using the reflections in the captured images.

[0083] In Example 3, the subject matter of Examples 1-2 includes, wherein the rotating comprises rotating the first calibration object about the z-axis by approximately ninety degrees.

[0084] In Example 4, the subject matter of Example 3 includes, if the first calibration object has been rotated three times, determining that no further rotations should be performed.

[0085] In Example 5, the subject matter of Examples 1-4 includes, wherein the operations further comprise: prior to determining whether the first calibration object should be rotated further: determining whether there are other illumination configurations; and, in response to determining that there are other illumination configurations, repeating the activating and using operations using another illumination configuration until there are no other illumination configurations.

[0086] In Example 6, the subject matter of Examples 1-5 includes, wherein the first plane is comprised of opal glass.

[0087] In Example 7, the subject matter of Example 6 includes, wherein the first plane comprises a checkerboard pattern.

[0088] In Example 8, the subject matter of Examples 1-7 includes, wherein the system further includes a second calibration object comprising a third plane tilted at a second angle relative to a fourth plane, the third plane being reflective, the fourth plane being perpendicular to the z-axis of the first calibration object; and wherein the operations further include: in response to the second calibration object appearing in front of the camera so that the camera faces the third plane: activating one or more of a plurality of independently controllable light sources based on a lighting configuration to direct light onto the third plane; capturing one or more images of one or more reflections of the light on the third plane using the camera; determining whether the second calibration object should be further rotated; and, in response to determining that the second calibration object should be further rotated, after rotating the second calibration object about the z-axis, repeating the activation, use, and determination operations on the second calibration object so that the orientation of the second calibration object changes to the new orientation until it is determined that the second calibration object should not be rotated any more times.

[0089] In Example 9, the subject matter of Example 8 includes, wherein the system further includes a third calibration object that includes a fifth plane, the fifth plane being reflective; and wherein the operations include: in response to the third calibration object being present in front of the camera so that the camera faces the fifth plane: activating one or more light sources of the plurality of independently controllable light sources based on the lighting configuration to direct light onto the fifth plane; and capturing, with the camera, one or more images of one or more reflections of the light on the fifth plane.

[0090] Example 10 is a method comprising: in response to a first calibration object appearing in front of a camera, causing the camera to face a first plane of the first calibration object, the first plane being tilted at a first angle relative to a second surface, the first plane being reflective, and the second surface being perpendicular to the z-axis of the first calibration object; activating one or more light sources of a plurality of independently controllable light sources of a lighting device based on a lighting configuration to direct light onto the first plane; capturing one or more images of one or more reflections of the light on the first plane using a camera; determining whether the first calibration object should be further rotated; in response to determining that the first calibration object should be further rotated, after rotating the first calibration object about the z-axis such that the orientation of the first calibration object changes to a new orientation, repeating the activation, use, and determination operations until it is determined that no further rotation should be performed; determining a distance between the lighting device and the camera using reflections in the captured image; and calibrating the system based on the distance between the lighting device and the camera.

[0091] In Example 11, the subject matter of Example 10 includes calibrating a camera using reflections in a captured image.

[0092] In Example 12, the subject matter of Examples 10-11 includes, wherein rotating comprises rotating the first calibration object approximately ninety degrees about a z-axis.

[0093] In Example 13, the subject matter of Example 12 includes, if the first calibration object has been rotated three times, determining that it should not be rotated any more times.

[0094] In Example 14, the subject matter of Examples 10-13 includes, before determining whether the first calibration object should be further rotated: determining whether there are other lighting configurations; and, in response to determining that there are other lighting configurations, repeating the activation and use operations using another lighting configuration until there are no other lighting configurations.

[0095] In Example 15, the subject matter of Examples 10-14 includes, wherein the first planar surface is comprised of opal glass.

[0096] In Example 16, the subject matter of Example 15 includes, wherein the first plane comprises a checkerboard pattern.

[0097] In Example 17, the subject matter of Examples 10-16 includes, in response to a second calibration object appearing in front of the camera, causing the camera to face a third plane of the second calibration object, the third plane being tilted at a second angle relative to a fourth plane, the third plane being reflective, and the fourth plane being perpendicular to the z-axis of the first calibration object: activating one or more light sources from a plurality of independently controllable light sources based on a lighting configuration to direct light onto the third plane; capturing one or more images of one or more reflections of the light on the third plane using the camera; determining whether the second calibration object should be further rotated; and in response to determining that the second calibration object should be further rotated, after rotating the second calibration object about the z-axis, repeating the activation, use, and determination operations on the second calibration object so that the orientation of the second calibration object changes to the new orientation until it is determined that the second calibration object should not be rotated any more times.

[0098] In Example 18, the subject matter of Example 17 includes, wherein the system further includes: a third calibration object comprising a fifth plane, the fifth plane being reflective; in response to the third calibration object being present in front of the camera, causing the camera to face the fifth plane; activating one or more of the plurality of independently controllable light sources based on the lighting configuration to direct light onto the fifth plane; and, capturing, with the camera, one or more images of the one or more reflections of the light on the fifth plane.

[0099] Example 19 is a non-transitory machine-readable storage medium embodying instructions executable by one or more machines to perform the following operations: in response to a first calibration object appearing in front of a camera, causing the camera to face a first plane of the first calibration object, the first plane being tilted at a first angle relative to a second surface, the first plane being reflective, and the second surface being perpendicular to the z-axis of the first calibration object; activating one or more of a plurality of independently controllable light sources of a lighting device based on a lighting configuration to direct light onto the first plane; using a camera to capture one or more images of one or more reflections of the light on the first plane; determining whether the first calibration object should be further rotated; in response to determining that the first calibration object should be further rotated; after rotating the first calibration object about the z-axis, repeating the activation, use, and determination operations so that the orientation of the first calibration object changes to a new orientation until it is determined that no further rotation should be performed; using reflections in the captured image to determine a distance between the lighting device and the camera; and, calibrating the system based on the distance between the lighting device and the camera.

[0100] In Example 20, the subject matter of Example 19 includes, wherein the operations further comprise: calibrating the camera using reflections in the captured image.

[0101] Example 21 is at least one machine-readable medium comprising instructions that, when executed by a processing circuit, cause the processing circuit to perform operations to implement any one of Examples 1-20.

[0102] Example 22 is an apparatus comprising means for implementing any one of Examples 1 to 20.

[0103] Example 23 is a system for implementing any one of Examples 1 to 20.

[0104] Example 24 is a method for implementing any one of Examples 1 to 20.

[0105] Figure 8 is a block diagram 800 illustrating a software architecture 802 that may be installed on any one or more of the devices described above. Figure 8Just a non-limiting example of a software architecture, it will be appreciated that many other architectures can be implemented to facilitate the functionality described herein. In various embodiments, the software architecture 802 is implemented by hardware such as the machine 900 of FIG. 9 that includes processors 910, memory 930, and input / output (I / O) components 950. In this example, the software architecture 802 can be conceptualized as a stack of layers, where each layer can provide a particular functionality. For example, the software architecture 802 includes layers such as an operating system 804, libraries 806, frameworks 808, and applications 810. Operationally, the applications 810 invoke application programming interface (API) calls 812 through the software stack and receive messages 814 in response to the API calls 812, consistent with some embodiments.

[0106] In various implementations, the operating system 804 manages hardware resources and provides common services. The operating system 804 includes, for example, a kernel 820, services 822, and drivers 824. According to some embodiments, the kernel 820 acts as an abstraction layer between the hardware and the other software layers. For example, the kernel 820 provides memory management, processor management (e.g., scheduling), component management, networking, and security settings, among other functionality. The services 822 can provide other common services for the other software layers. The drivers 824 are responsible for controlling or interfacing with the underlying hardware, according to some embodiments. For instance, the drivers 824 can include display drivers, camera drivers, Bluetooth or Bluetooth low energy drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Wi-Fi drivers, audio drivers, power management drivers, and so forth.

[0107] In some embodiments, the libraries 806 provide a low-level common infrastructure implemented by the applications 810. The libraries 806 can include system libraries 830 (e.g., C standard library) that can provide functions such as memory allocation functions, string manipulation functions, mathematical functions, and the like. In addition, the libraries 806 can include API libraries 832, such as media libraries (e.g., libraries to support presentation and manipulation of various media formats such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), graphics libraries (e.g., an OpenGL framework used to render two-dimensional (2D) and three-dimensional (3D) graphics on a display), database libraries (e.g., SQLite to provide various relational database functions), web libraries (e.g., WebKit to provide web browsing functionality), and the like. The libraries 806 also include a wide variety of other libraries 834 to provide many other APIs to the applications 810.

[0108] The framework 808 provides a high-level, general-purpose infrastructure that can be used by applications 810. For example, the framework 808 provides various graphical user interface capabilities, advanced resource management, advanced location services, etc. The framework 808 can provide a wide range of other application programming interfaces (APIs) that can be used by applications 810, some of which may be specific to a particular operating system 804 or platform.

[0109] In one example embodiment, the applications 810 include a homepage application 850, a contacts application 852, a browser application 854, an e-book reader application 856, a location application 858, a media application 860, a messaging application 862, a game application 864, and a variety of other applications, such as third-party applications 866. An application 810 is a program that performs the functions defined in the program. One or more applications 810 can be created in a variety of programming languages, and their structure can be varied, such as object-oriented programming languages ​​(such as Objective-C, Java, or C++) or procedural programming languages ​​(such as C or assembly language). In a specific example, a third-party application 866 (e.g., an application created by an entity other than a specific platform vendor using ANDROID) TM or IOS TM Software Development Kit (SDK) can be used to develop applications that run on platforms such as IOS TM ANDROID TM 、 Mobile software on the phone or other mobile operating system. In this example, the third party application 866 can call the API call 812 provided by the operating system 804 to facilitate the functions described herein.

[0110] Figure 9 A schematic diagram of a machine 900 in the form of a computer system is shown within which a set of instructions may be executed to cause the machine 900 to perform any one or more of the methodologies discussed herein. Figure 9 A schematic diagram of a machine 900 is shown in the example form of a computer system, wherein instructions 916 (e.g., software, a program, an application, an applet, an application program, or other executable code) cause the machine 900 to perform any one or more of the methodologies discussed herein. For example, the instructions 916 may cause the machine 900 to perform Figure 6 Additionally, or alternatively, instruction 916 may implement Figure 1-6The instructions 916 transform a general, unprogrammed machine 900 into a specific machine 900 that is programmed in the manner described to perform the functions described and illustrated. In alternative embodiments, the machine 900 operates as a standalone device or can be coupled to other machines (e.g., networked). In a networked deployment, the machine 900 can operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 900 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook computer, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smartphone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a network appliance, a network router, a network switch, a network bridge, or any machine capable of executing instructions 916, whether sequentially or otherwise, specifying actions to be taken by the machine 900. Further, while a single machine 900 is illustrated, the term "machine" shall also be taken to include a collection of machines 900 that individually or jointly execute instructions 916 to perform any one or more of the methodologies discussed herein.

[0111] The machine 900 may include a processor 910, a memory 930, and an input / output component 950, which may be configured to communicate with each other, for example, via a bus 902. In an example embodiment, the processor 910 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor 912 and a processor 914, which may execute instructions 916. The term "processor" is intended to include multi-core processors, which may include two or more independent processors (sometimes referred to as "cores") that may execute instructions 916 concurrently. Although Figure 9 Multiple processors 910 are shown, but the machine 900 may include a single processor 912 having a single core, a single processor 912 having multiple cores (e.g., a multi-core processor 912), multiple processors 912, 914 having single cores, multiple processors 912, 914 having multiple cores, or any combination thereof.

[0112] The storage 930 can include a main memory 932, a static memory 934, and a storage unit 936 each of which can be accessed via the bus 902 by the processor 910. The main memory 932, the static memory 934, and the storage unit 936 store the instructions 916 embodying any one or more of the methodologies or functions described herein. The instructions 916 can also reside, completely or

[0113] The input / output components 950 can include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. Specific input / output components can be included in a machine depending on the type of machine. For example, portable machines such as mobile phones can include a touch input device or other such input mechanisms, while a headless server machine can not include such a touch input device. It will be appreciated that the input / output components 950 can include many other components that are not specifically Figure 9 illustrated in the exemplary embodiment of FIG. 9. The input / output components 950 are grouped as is for convenience and are not limiting of implementations. In various example embodiments, the input / output components 950 can include output components 952 and input components 954. The output components 952 can include visual components (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components (e.g., speakers), haptic components (e.g., a vibratory motor, resistance mechanisms), other signal generators, and so forth. The input components 954 can include alphanumeric input components (e.g., a keyboard, a touchscreen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components), point-based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instruments), tactile input components (e.g., a physical button, a touch screen that provides location and / or force of touches or touch gestures, or other tactile input components), audio input components (e.g., a microphone), and the like.

[0114] In further example embodiments, the input / output component 950 may include a biometric component 956, a motion component 958, an environment component 960, or a position component 962, among numerous other components. For example, the biometric component 956 may include an expression detection component (e.g., hand expression, facial expression, vocal expression, body posture, or eye tracking), a biosignal measurement component (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), a component for identifying a person (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or electroencephalogram-based recognition), and the like. The motion component 958 may include an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), and the like. The environment component 960 may include, for example, a light sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers for detecting ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones for detecting background noise), a proximity sensor component (e.g., an infrared sensor for detecting nearby objects), a gas sensor (e.g., a gas detection sensor for detecting hazardous gas concentrations to ensure safety or to measure atmospheric pollutants), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. The position component 962 may include a position sensor component (e.g., a global positioning system [GPS] receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects air pressure to determine altitude), a direction sensor component (e.g., a magnetometer), etc.

[0115] Communication can be achieved using a variety of technologies. The input / output components 950 may include a communication component 964 that is operable to couple the machine 900 to the network 980 or the device 970 via coupling 982 and coupling 972, respectively. For example, the communication component 964 may include a network interface component or other suitable device for interfacing with the network 980. In further examples, the communication component 964 may include a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, Components (such as Low power consumption), Components and other communication components for providing communication by other means. Device 970 can be another machine or any of a variety of peripheral devices (e.g., coupled via a universal serial bus [USB]).

[0116] Moreover, the communication components 964 can detect identifiers or include components operable to detect identifiers. For example, the communication components 964 can include radio frequency identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one- dimensional bar codes such as Universal Product Code (UPC) bar codes, multi-dimensional bar codes such as quick response (QR) codes, aztec codes, data matrix codes, dataglyph codes, and other optical codes), or acoustic detection components (e.g., microphones to identify tagged audio signals). In addition, a variety of information can be derived via the communication components 964, such as location via Internet Protocol (IP) geolocation, location via Wi-Fi® signal triangulation, location via cellular signal triangulation, location via detecting an NFC beacon signal that can indicate a particular location, and so forth.

[0117] The various memories (e.g., 930, 932, 934, and / or the memory of processor 910) and / or storage unit 936 can store one or more sets of instructions 916 and data structures (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. These instructions 916, when executed by processor 910, can cause various operations to be performed to implement the disclosed embodiments.

[0118] As used herein, the terms “machine-storage medium,” “device-storage medium,” and “computer-storage medium” mean the same thing and can be used interchangeably. The terms “machine-storage medium,” “device-storage medium,” and “computer-storage medium” specifically include non-volatile, computer-readable, machine-readable and / or device-readable media for storage of data, instructions and / or programs such as firmware, plug-in modules, hardware devices, and the like. The terms “machine-storage medium,” “device-storage medium,” and “computer-storage medium” specifically exclude signals per se (e.g., a waveform signal per se and / or radio wave and / or other propagating electromagnetic support per se), because such signals per se have only electrical and / or magnetic and / or electromagnetic

[0119] In various example embodiments, one or more portions of network 980 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless local area network (WLAN), a wide area network (WAN), a wireless wide area network (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of a public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, 980, another type of network, or a combination of two or more such networks. For example, network 980 or a portion of network 980 may include a wireless or cellular network, and coupling 982 may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or another type of cellular or wireless coupling. In this example, coupling 982 may implement any of various types of data transmission technologies, such as single carrier radio transmission technology (1xRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rates for GSM evolution (EDGE) technology, third generation partnership project (3GPP) including 9G, fourth generation wireless network (4G), universal mobile telecommunications system (UMTS), high speed packet access (HSPA), world wide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other standards defined by various standards development organizations, other long range protocols, or other data transmission technologies.

[0120] Instructions 916 may be sent or received via the network 980 through a network interface device (e.g., a network interface component included in the communication component 964) and utilizing a number of well-known transmission protocols (e.g., the Hypertext Transfer Protocol [HTTP]). Similarly, instructions 916 may be sent or received to the device 970 via a transmission medium via a coupling 972 (e.g., a peer-to-peer coupling). The terms "transmission medium" and "signal medium" have the same meaning and are used interchangeably in this disclosure. The terms "transmission medium" and "signal medium" should be understood to include any intangible medium that is capable of storing, encoding, or carrying instructions 916 for execution by the machine 900, and include digital or analog communication signals or other intangible media to facilitate the communication of such software. Accordingly, the terms "transmission medium" and "signal medium" should be understood to include any form of modulated data signal, carrier wave, etc. The term "modulated data signal" refers to a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.

[0121] The terms "machine-readable medium," "computer-readable medium," and "device-readable medium" have the same meaning and are used interchangeably in this disclosure. These terms are defined to include both machine storage media and transmission media. Thus, these terms include both storage devices / medium and carrier / modulated data signals.

Claims

1. A system comprising: a lighting device comprising one or more independently controllable light sources; camera; a first calibration object comprising a first planar surface inclined at a first angle to a second surface, the first planar surface being reflective, the second surface being perpendicular to a z-axis of the first calibration object; and A computer system comprising at least one hardware processor and a non-transitory computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations comprising: In response to the first calibration object appearing in the field of view of the camera: activating one or more of the one or more independently controllable light sources to direct light onto the first planar surface; activating the camera to capture one or more images of one or more reflections of the light on the first planar surface; determining whether the first calibration object should be rotated further; In response to determining that more rotations should be performed on the first calibration object, after rotating the first calibration object about the z-axis such that the orientation of the first calibration object changes to a different orientation, repeating the activating, using, and determining steps until determining that no more rotations should be performed; using reflections in the captured image to determine a distance between the lighting device and the camera; as well as The system is calibrated based on a distance between the lighting device and the camera.

2. The system according to claim 1, wherein: The operations also include calibrating the camera using reflections in the captured image.

3. The system according to claim 1, wherein: The rotating includes rotating the first calibration object approximately ninety degrees about the z-axis.

4. The system according to claim 3, characterized in that If the first calibration object has been rotated three times, it is determined that the first calibration object should not be rotated any further.

5. The system according to claim 1, wherein: The operations further include: Before determining whether further rotations of the first calibration object should be performed: Determine if additional lighting configurations are available; and In response to determining that there are more lighting configurations, the activating and using steps are repeated with another lighting configuration until there are no more lighting configurations.

6. The system according to claim 1, wherein: The first flat surface is composed of opal glass.

7. The system according to claim 6, characterized in that The first planar surface includes a checkerboard pattern.

8. The system according to claim 1, wherein: The system also includes: a second calibration object comprising a third planar surface inclined at a second angle to a fourth planar surface, the third planar surface being reflective, the fourth planar surface being perpendicular to the z-axis of the first calibration object, wherein the operations further comprise: In response to the second calibration object appearing in front of the camera so that the camera faces the third flat surface: activating one or more of the one or more independently controllable light sources based on a lighting configuration to direct light onto the third planar surface; capturing, with a camera, one or more images of one or more reflections of the light on the third planar surface; determining whether the second calibration object should be rotated further; and In response to determining that the second calibration object should be rotated more times, after rotating the second calibration object around the z-axis so that the orientation of the second calibration object is changed to a new orientation, repeating the activation, use and determination steps for the second calibration object until it is determined that the second calibration object should no longer be rotated.

9. The system according to claim 1, wherein: The system further includes a third calibration object comprising a fifth planar surface, the fifth planar surface being reflective, wherein the operations include: In response to the third calibration object appearing in front of the camera so that the camera faces the fifth flat surface: activating one or more of a plurality of independently controllable light sources based on a lighting configuration to direct light onto the fifth planar surface; and One or more images of one or more reflections of the light on the fifth planar surface are captured using a camera.

10. A method comprising: In response to a first calibration object being presented in front of the camera such that the camera faces a first planar surface of the first calibration object, the first planar surface being tilted at a first angle to a second surface, the first planar surface being reflective, and the second surface being perpendicular to a z-axis of the first calibration object: activating one or more of the one or more independently controllable light sources of the lighting device based on a lighting configuration to direct light onto the first planar surface; capturing, with a camera, one or more images of one or more reflections of the light on the first planar surface; determining whether the first calibration object should be rotated further; In response to determining that more rotations should be performed on the first calibration object, after rotating the first calibration object about the z-axis such that the orientation of the first calibration object changes to a new orientation, repeating the activating, using, and determining steps until determining that no more rotations should be performed; using reflections in the captured image to determine the distance between the lighting device and the camera; as well as Calibrate a system based on the distance between the lighting fixture and the camera.

11. The method according to claim 10, characterized in that It also includes calibrating the camera using reflections in the captured images.

12. The method according to claim 10, characterized in that The rotating includes rotating the first calibration object approximately ninety degrees about the z-axis.

13. The method according to claim 12, characterized in that If the first calibration object has been rotated three times, it is determined that the first calibration object should not be rotated any further.

14. The method according to claim 10, characterized in that Also includes: Before determining whether further rotations of the first calibration object should be performed: Determine if there are more lighting configurations; as well as In response to determining that there are more lighting configurations, the activating and using steps are repeated with another lighting configuration until there are no more lighting configurations.

15. The method according to claim 10, characterized in that The first flat surface is composed of opal glass.

16. The method according to claim 15, characterized in that The first planar surface includes a checkerboard pattern.

17. The method according to claim 10, wherein: Also includes: In response to a second calibration object being presented in front of the camera, such that the camera faces a third planar surface of the second calibration object, the third planar surface being inclined at a second angle to a fourth planar surface, the third planar surface being reflective, and the fourth planar surface being perpendicular to the z-axis of the first calibration object: activating one or more of the one or more independently controllable light sources based on a lighting configuration to direct light onto the third planar surface; capturing, using a camera, one or more images of one or more reflections of light off the third planar surface; determining whether the second calibration object should be rotated further; as well as In response to determining that the second calibration object should be rotated more times, after rotating the second calibration object around the z-axis so that the orientation of the second calibration object is changed to a new orientation, repeating the activation, use and determination steps for the second calibration object until it is determined that the second calibration object should no longer be rotated.

18. The method according to claim 17, characterized in that The system further includes a third calibration object comprising: a fifth planar surface, the fifth planar surface being reflective; In response to a third calibration object including a fifth planar surface, the fifth planar surface being reflective, appearing in front of the camera so that the camera faces the fifth planar surface: activating one or more of the plurality of independently controllable light sources based on a lighting configuration to direct light onto the fifth planar surface; and One or more images of the one or more reflections of light on the fifth planar surface are captured using a camera.

19. A non-transitory machine-readable storage medium embodying instructions executable by one or more machines to perform operations comprising: In response to a first calibration object being presented in front of the camera such that the camera faces a first planar surface of the first calibration object, the first planar surface being tilted at a first angle to a second surface, the first planar surface being reflective, and the second surface being perpendicular to a z-axis of the first calibration object: activating one or more of the one or more independently controllable light sources of the lighting device based on a lighting configuration to direct light onto the first planar surface; capturing, with a camera, one or more images of one or more reflections of the light on the first planar surface; determining whether the first calibration object should be rotated further; In response to determining that more rotations should be performed on the first calibration object, after rotating the first calibration object about the z-axis such that the orientation of the first calibration object changes to a new orientation, repeating the activating, using, and determining steps until determining that no more rotations should be performed; using reflections in the captured image to determine the distance between the lighting device and the camera; as well as Calibrate a system based on the distance between the lighting fixture and the camera.

20. The non-transitory machine-readable storage medium according to claim 19, wherein The operations further include: The camera is calibrated using reflections in the captured image.