Hemispherical calibration object for detecting camera assembly
By using multiple independently controlled light sources and hemispherical reflection calibration objects, the three-dimensional position between the light source and the camera is solved, and the problem of insufficient light sources of the camera is detected in different scenarios, improving the accuracy of image capture and analysis.
Patent Information
- Application Number
- CN202510461279.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-08-28
- Filing Date
- 2025-04-14
- Publication Date
- 2025-07-25
AI Technical Summary
When existing detection cameras take photos of products with specific surfaces, specific defects and specific environments, the light source is insufficient, making it difficult to accurately determine the three-dimensional position relationship between the camera and the light source, affecting the accuracy of image analysis.
A number of independently controlled light sources and hemispherical reflection calibrating objects are used to activate the light source and capture the reflected image, calculate the three-dimensional position between the light source and the camera, and use the computer system to identify the reflection angle and calibrate the object size to determine the position of the light source relative to the camera.
It improves the light flexibility and image capture capability of detecting the camera in different scenarios, ensures the accuracy of the three-dimensional position relationship between the camera and the light source, and enhances the reliability of image analysis.
Smart Images

Figure CN120369731A_ABST
Abstract
Description
Technical Field
[0001] The present application generally relates to detecting camera assemblies, and more particularly to a hemispherical calibration object for detecting camera assemblies. Background Art
[0002] Inspection cameras are widely used in industrial products to assist in detecting defects in manufactured products. For example, when producing metal castings, a manufacturer may place one or more inspection cameras on a production line or an assembly line to inspect the produced metal castings or parts thereof to detect any quality control issues. However, when taking images, a specific light source may not be suitable for photographing products with specific surfaces, specific defects, and / or specific environments. For example, the surface material or characteristics of a product may affect the quality of the light in the captured image, and these characteristics include reflectivity, transparency, or black / opaque characteristics. In addition, certain types of defects may be difficult to detect, such as scratches or dirt. In certain environments, the detection of product defects is also more difficult.
[0003] By improving the design of the lighting device, the performance of the inspection camera can be improved to increase the light in various scenarios. More specifically, unlike a single light source that provides insufficient light when collecting images and cannot obtain an image with sufficient quality to determine the presence of surface defects on all surface materials of various components or products, a lighting device with multiple light sources can be provided. In addition, a controller can be provided for such a lighting device with multiple light sources so that the multiple light sources can be independently controlled, using different lighting combinations and sequences, thereby improving the flexibility of the lighting device and providing sufficient light to adapt to a variety of products, components, materials, and environments.
[0004] In such an environment, a camera is used to capture images of manufactured products. However, the installation position of such a camera may be separated from the light source. For example, the camera may be installed on an independently adjustable positioning device and separated from the lighting device.
[0005] One problem faced is that in order to correctly analyze the image of a manufactured product, the relative three-dimensional positional relationship between the camera and the light source used to illuminate the manufactured product must be known. These relative three-dimensional positions can be determined through a calibration process in which a calibration object is placed in the field of view of the camera while one or more light sources are activated. Summary of the Invention
[0006] On the one hand, the present application provides a system, the system comprising:
[0007] A lighting device including a plurality of independently controllable light sources;
[0008] A camera;
[0009] A calibration object assembly including a plurality of hemispherical reflective calibration objects;
[0010] A computer system includes at least one hardware processor and a non - volatile 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:
[0011] Activate a first light source among a plurality of independently controllable light sources and direct a first light beam onto each of a plurality of hemispherical reflection calibration objects;
[0012] Capture an image of the plurality of independently controllable light sources using the camera;
[0013] For each of the plurality of hemispherical reflection calibration objects:
[0014] Identify, in the image of the plurality of independently controllable light sources, the reflection of the first light beam from the corresponding hemispherical reflection calibration object;
[0015] Based on the position of the reflection in the image captured by the camera and the size of the corresponding hemispherical reflection calibration object, identify the angle at which the first light beam is reflected by the corresponding hemispherical reflection calibration object;
[0016] Using the angles identified for each corresponding hemispherical reflection calibration object, calculate the position of the first light source relative to the camera in three - dimensional space.
[0017] On the other hand, the present application provides a method, the method includes:
[0018] Activate a first light source among a plurality of independently controllable light sources and direct a first light beam onto each of a plurality of hemispherical reflection calibration objects;
[0019] Capture an image of the plurality of independently controllable light sources using the camera;
[0020] For each of the plurality of hemispherical reflection calibration objects:
[0021] Identify, in the image of the plurality of independently controllable light sources, the reflection of the first light beam from the corresponding hemispherical reflection calibration object;
[0022] Based on the position of the reflection in the image captured by the camera and the size of the corresponding hemispherical reflection calibration object, identify the angle at which the first light beam is reflected by the corresponding hemispherical reflection calibration object;
[0023] Using the angles identified for each corresponding hemispherical reflection calibration object, calculate the position of the first light source relative to the camera in three - dimensional space.
[0024] In a third aspect, the present application provides a non-transitory machine-readable storage medium storing instructions executable by one or more machines to perform the following operations:
[0025] Activate a first light source among a plurality of independently controllable light sources and direct a first light beam onto each of a plurality of hemispherical reflection calibration objects;
[0026] Capture an image of the plurality of independently controllable light sources using the camera;
[0027] For each of the plurality of hemispherical reflection calibration objects:
[0028] Identify, in the image of the plurality of independently controllable light sources, the reflection of the first light beam from the corresponding hemispherical reflection calibration object;
[0029] Based on the position of the reflection in the image captured by the camera and the size of the corresponding hemispherical reflection calibration object, identify the angle at which the first light beam is reflected by the corresponding hemispherical reflection calibration object;
[0030] Using the angle identified for each corresponding hemispherical reflection calibration object, calculate the position of the first light source relative to the camera in three-dimensional space.
[0031] As can be seen from the technical solutions provided by the present application described above, during the calibration process, the distance between the light source and the detection camera can be determined by activating the light source and capturing the images of the light source reflected from each calibration object, which enables the calculation of the angles at which the light source irradiates each calibration object, and then these angles can be used to determine the distance between the light source and the camera. BRIEF DESCRIPTION OF THE DRAWINGS
[0032] Figure 1 FIG. shows a block diagram of a detection system 100 according to some examples.
[0033] Figure 2 Shows according to some examples Figure 1 A perspective view of the bottom of the light dome, showing the positioning of a printed circuit board (including light sources such as LEDs).
[0034] Figure 3 Shows according to some examples Figure 2 The LED layout of the light dome in FIG.
[0035] Figure 4 FIG. is a schematic diagram showing a calibration object assembly 400 according to an example embodiment.
[0036] Figure 5 FIG. is a manufacturing schematic diagram of a plurality of calibration objects (especially a plurality of calibration objects in the form of chrome steel spheres).
[0037] Figure 6 Schematic diagram of a display pedestal, where multiple calibration objects are placed on the pedestal and serve as Figure 4 components of the calibration object assembly shown.
[0038] Figure 7 Schematic diagram of the calibration object assembly during the calibration process shown according to an embodiment.
[0039] Figure 8 Schematic diagram of the calibration object assembly during the calibration process without a grating shield shown according to an embodiment.
[0040] Figure 9 Example method flowchart of a calibration detection system shown according to an embodiment.
[0041] Figure 10 Block diagram of a mobile device shown according to an embodiment.
[0042] Figure 11 Block diagram of a computer system, showing an example form of machine-executable instructions for causing a machine to perform one or more of the methods discussed herein. Detailed implementation
[0043] In an exemplary embodiment, instead of a single calibration object, multiple calibration objects are placed simultaneously within the field of view of the detection camera. Each calibration object is or includes a hemispherical reflective object with a known size. 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 images of the light source reflected from each calibration object, particularly the specific positions where the light source appears to be reflected from each calibration object. This enables the calculation of the angles at which the light source hits each calibration object, and then these angles can be used to determine the three-dimensional position of the light source relative to the camera.
[0044] Figure 1 Shows a block diagram of a detection system 100 according to some examples. The detection system 100 includes a light dome 102, a camera 108, a controller 106, an industrial computer 112, and a factory computer 116. The factory computer 116 communicates with the controller 106 and the industrial computer 112 via a wired or wireless factory network 124.
[0045] The light dome 102 in use illuminates a target object 104, such as a metal casting or other product. The light dome 102 includes a housing containing a plurality of light sources, which will be described in detail below. In some examples, the light sources include a plurality of LEDs or displays arranged in a manner that provides flexibility in illuminating the target object 104. The light sources are selectively activated by the controller 106 using the power line 110. The light sources are a lighting unit individually addressed by the controller 106 for illuminating the target object 104. Thus, a single light source may include a single LED or a group of addressable LEDs. The light source may also include a subset of a light generation unit, such as a group or a block of pixels in a flexible display. Preferably, the light dome 102 includes at least ten individually addressable light sources arranged within the light dome 102 to provide flexibility in illumination.
[0046] The camera 108 can be mounted on the light dome 102 via the bracket 114 and capture an image of the illuminated target object 104 through a hole at the top of the light dome 102. The camera 108 is triggered by the controller 106 via the trigger line 118 in synchronization with the activation of the light sources in the light dome 102.
[0047] The controller 106 controls the operation of the camera 108 and the operation of the light dome 102 in illuminating the target object 104. The controller 106 receives instructions from the industrial computer 112 via the control line 122. The controller 106 can be implemented by a hardware processor installed in the camera 108. The controller 106 may also include hardware components, which may include a central processing unit (“CPU”), a bus, volatile and non-volatile storage devices, storage units, non-transitory computer-readable media, data processors, processing devices, control devices, transmitters, receivers, antennas, transceivers, input devices, output devices, network interface devices, and other types of components that are clearly prior art, and so on. These hardware components built into the user device can be used to execute various applications, methods, or algorithms of the present invention independently of other devices.
[0048] The controller 106 illuminates the target object according to one or more optimal lighting configurations. These lighting configurations 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 a group of pixels on a flexible display). The matrix may also contain brightness or color values for a specific configuration. The lighting configurations can also be arranged in a configuration sequence that specifies the execution order of the lighting configurations for a specific target object 104, so that the camera 108 can capture multiple images under different lighting conditions.
[0049] The industrial computer 112 runs software that provides a user interface which can be used to specify lighting configurations and sequences and load these configurations into the controller 106. The industrial computer 112 also instructs the operation of the controller 106 via the control line 122 and receives images captured by the camera 108 via the data line 120.
[0050] The factory computer 116 provides overall factory control and can receive operation data and captured images from the controller 106 and the industrial computer 112 via the factory network 124. The factory computer 116 can also provide instructions to control or initiate the operation of the detection system 100 based on other factory operations (such as the movement of the target object 104 passing through the light dome 102).
[0051] Figure 2 shows Figure 1 a perspective view of the bottom of the light dome 102 in [FIGURE REFERENCE], showing the positioning of the PCBs (such as LEDs) containing the light sources. In this view, part of the PCB has been removed to show the details of the bottom of the housing and the positioning of the LEDs.
[0052] According to some examples, the bottom of the light dome 102 is generally hemispherical and includes four T-shaped PCBs 202 and four L-shaped PCBs 204. In this view, the L-shaped PCB 204 in the lower left corner is not shown, and the T-shaped PCB 202 on the left is not shown.
[0053] Each PCB includes a substrate 206, a connector 210, and a number of high-power LEDs 208 for selectively illuminating the target object 104 under the control of the controller 106. As shown, the bottom of the housing includes a number of island-shaped or pad-shaped regions 212 that form a raised surface on the bottom of the housing to support each T-shaped PCB 202 and L-shaped PCB 204. The positions of the pad-shaped regions 212 correspond to the positions of the LEDs 208, and thermal paste is provided between each pad-shaped region 212 and the LED 208 to facilitate heat transfer between the LED and the light dome 102.
[0054] Although not shown in the figure, the camera may be located at the center of the light dome 102. It should be noted that this camera may not be physically connected to the light dome 102, so there are differences in the distances between the camera and the LEDs 208 on the light dome 102. In addition to the distance differences in the x-axis and y-axis directions, there may also be differences in the z-axis direction because the light dome 102 may not be completely parallel to the ground (or the reference plane pointed by the camera), so some LEDs 208 may actually be higher in position than others.
[0055] According to some examples, Figure 3 shows Figure 2The layout 300 of the LEDs 208 of the light dome 102 in []. The LEDs are symmetrically arranged as: four inner - ring LEDs 304 in the inner ring 302, eight middle - ring LEDs 308 in the middle ring 306, and sixteen outer - ring LEDs 312 in the outer ring 310. To provide additional light coverage, four corner LEDs 316 are also arranged at the four corner positions 314.
[0056] According to an exemplary embodiment, Figure 4 is a schematic diagram of a calibration object assembly 400. Here, the calibration object assembly 400 actually includes a plurality of calibration objects 402A - 402I. Each of the calibration objects 402A - 402I includes a hemispherical portion visible to the camera. These hemispherical portions are reflective and can be made of any reflective material, such as chrome - plated steel. For ease of construction, in some exemplary embodiments, the calibration objects 402A - 402I are essentially spherical in manufacture and are placed in a base with a concave portion so that the hemispherical portions of the calibration objects 402A - 402I are Figure 4 shown or at least potentially visible to the camera in []. However, importantly, the potentially visible portion of each calibration object 402A - 402I is hemispherical and reflective. As for what the bottoms of these calibration objects 402A - 402I look like, it doesn't matter.
[0057] Figure 5 is a schematic diagram showing the manufacture of a plurality of calibration objects 402A - 402I, especially spherical objects made of chrome - plated steel. Figure 6 is a block diagram showing that in the construction of the calibration object assembly 402, a plurality of calibration objects 402A - 402I are placed in a base 600.
[0058] It should be noted that the terms "spherical" and "hemispherical" used in this specification should be interpreted broadly. More specifically, in actual manufacture, an object cannot be truly spherical in the mathematical sense because the machines used to manufacture the object always require a certain tolerance. Therefore, "spherical" should be interpreted to include shapes that are essentially spherical, such as very close to spherical, but whose difference from a mathematical sphere is insignificant for the calibration process. Similarly, "hemispherical" should be interpreted to include shapes that are essentially hemispherical, such as very close to hemispherical, but whose difference from a mathematical hemisphere is also insignificant for the calibration process.
[0059] During the calibration process, the calibration object assembly 400 is placed under the light dome 200 such that the hemispherical portions of the calibration objects 402A - 402I are visible to a camera (e.g., a camera mounted in a hole of the light dome 200). Then, one or more light sources can be activated to measure the locations where one or more light sources cause reflections in the plurality of calibration objects 402A - 402I. In an exemplary embodiment, one light source is activated at a time, and the location where the light source causes a reflection is captured. This allows the distance between each individual light source and the camera to be determined. However, a calibration process can also be performed where multiple light sources are activated simultaneously and the distances are determined instantaneously, although this increases the risk of errors if the system cannot distinguish the reflection of one light source from the reflection of a second light source in the same calibration object 402A - 402I. For example, this can occur if the reflection locations of two different light sources are very close. However, for simplicity, it is generally chosen to use only one light source at a time because any technical difficulties in calibrating with multiple simultaneously activated light sources can be resolved.
[0060] It should be noted that although Figure 4 and Figure 5 depicts nine calibration objects 402A - 402I, the actual number of calibration objects can be arbitrary. In other words, in an exemplary embodiment, there are at least three calibration objects 402A - 402I to help ensure the reliability of the distance calculation between the light source and the camera.
[0061] Figure 7 is a schematic diagram showing the state of the calibration object assembly 400 during the calibration process. At this time, one light source has been activated, Figure 7 The view shown represents an image taken by the camera, and the distance to the light source needs to be calculated for calibration. As shown, the light source produces reflections 700A - 700I at different locations on each calibration object 402A - 402I. Since the size (e.g., radius) of each calibration object 402A - 402I is known, the distance from the top center of each calibration object 402A to the corresponding reflection location 700A - 700I can be determined from the image. More specifically, since the reflections 700A - 700I are located on the hemisphere, the x, y, and z distances from the top center to the reflection can be calculated from the figure. Basically, by knowing the position of the top center and the size (and shape) of the calibration objects 402A - 402I, the distance can be determined from the image.
[0062] After knowing the x, y, and z coordinates of each reflection 700A - 700I, the angle of the incident light beam can be determined, which is also based on the hemispherical shape of the calibration objects 402A - 402I.
[0063] Using geometry, the three - dimensional position of the light source relative to the camera can be calculated using the angle of the incident light.
[0064] It should be noted that Figure 7 The example shown represents an instance of adding a light-shielding grille to the calibration object assembly 400. More specifically, referring to Figure 4 , the light-shielding grille 404 can be seen, which is composed of walls that separate the calibration objects 402A - 402I. This is because when using multiple reflective hemispherical calibration objects 402A - 402I, a problem may occur: in some cases, mutual reflection can cause problems during calibration. Mutual reflection means that light is reflected from another calibration object 402A - 402I instead of directly from the light source. The role of the light-shielding grille 404 is to block such reflected light from hitting another calibration object 402A - 402I.
[0065] Figure 8 is a schematic diagram showing the state of the calibration object assembly 400 during calibration without the light-shielding grille 404. Here, as shown in the figure, in addition to the direct reflections 800A - 800I from the light source, there are other reflections, such as the reflections 802A - 802I from the calibration object 404A, which seem to be caused by light reflected from other calibration objects 400BB - 400I. In fact, the magnitude of reflection 802C is very close to the magnitude of reflection 802D. If the distance between them is slightly closer, it may be difficult to distinguish, resulting in incorrect measurements and distance determination. The light-shielding grille 404 helps prevent such mutual reflection from occurring.
[0066] Returning to Figure 4 , in an exemplary embodiment, the height of the walls of the light-shielding grille 404 is substantially equal to the height of the calibration objects 402A - 402I, at least when measured starting from the visible plane at the bottom of the calibration object assembly 400. However, some embodiments are also envisioned where the height of the light-shielding grille 404 is slightly lower than the height of the calibration objects 402A - 402I.
[0067] In an exemplary embodiment, the color of the light-shielding grille 404 is significantly different from the color of the visible plane of the base 406. This helps the system distinguish the light-shielding grille 404 and the base 406 in the images captured by the camera. In an exemplary embodiment, the light-shielding grille is black, while the visible plane of the base 406 is white.
[0068] Figure 9 is a flowchart of an example method 900 for calibrating a detection system according to an exemplary embodiment.
[0069] In step 910, the first light source among the multiple independently controllable light sources is activated so that its light irradiates the multiple hemispherical reflective calibration objects on the calibration object assembly.
[0070] In step 920, images of multiple hemispherical calibration objects are captured using a camera.
[0071] Then, for each hemispherical reflective calibration object, a loop is repeated. In step 930, the reflection of the first light source corresponding to the hemispherical reflective calibration object in the image is identified.
[0072] In step 940, based on the size of the corresponding hemispherical reflective calibration object, the angle at which the light rays of the first light source are incident on the corresponding hemispherical reflective calibration object is determined according to the reflection position.
[0073] In step 950, it is determined whether there are more hemispherical reflective calibration objects. If so, method 900 returns to step 930. If not, in step 960, using the angles determined for each corresponding hemispherical reflective calibration object, the three-dimensional position of the first light source relative to the camera is calculated.
[0074] Figure 10 is a block diagram 1000 showing a software architecture 1002 that can be installed on any one or more of the above devices. Figure 10 This is merely a non - restrictive example software architecture. It should be noted that many other architectures can also implement the functions described herein. In various embodiments, the software architecture 1002 is implemented by hardware, such as Figure 11 the machine 1100 in, which includes a plurality of processors 1110, a memory 1130, and input / output (I / O) components 1150. In this example architecture, the software architecture 1002 can be conceptualized as a layered structure, where each layer may provide specific functions. For example, the software architecture 1002 includes layers such as an operating system 1004, libraries 1006, frameworks 1008, and applications 1010. In operation, the application 1010 makes application programming interface (API) calls 1012 through the software stack and receives messages 1014 in response to the API calls 1012 according to certain embodiments.
[0075] In various implementations, the operating system 1004 manages hardware resources and provides general services. The operating system 1004 includes, for example, a kernel 1020, services 1022, and drivers 1024. The kernel 1020 serves as an abstraction layer between the hardware and other software layers, in accordance with certain embodiments. For example, the kernel 1020 provides functions such as memory management, processor management (e.g., scheduling), component management, network functions, and security settings. The services 1022 can provide other general services for other software layers. The drivers 1024 are responsible for controlling or interfacing with the underlying hardware. For example, the drivers 1024 can include display drivers, camera drivers, or a Bluetooth Low Energy driver, a flash driver, a serial communication driver (such as a Universal Serial Bus (USB) driver), a driver, an audio driver, a power management driver, etc.
[0076] In some embodiments, the library 1006 provides an underlying general infrastructure for use by the application 1010. The library 1006 may include a system library 1030 (such as the C standard library) that provides functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the library 1006 may also include an API library 1032, such as a media library (e.g., a library that supports the presentation and manipulation of multiple media formats, such as Moving Picture Experts Group 4 (MPEG4), High Efficiency 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), Portable Network Graphics (PNG)), a graphics library (e.g., the OpenGL framework for rendering two-dimensional (2D) and three-dimensional (3D) graphics contexts on a display), a database library (e.g., SQLite, which provides various relational database functions), a web library (e.g., WebKit, which provides web browsing functionality), etc. The library 1006 may also include various other libraries 1034 that provide many other APIs for use by the application 1010.
[0077] The framework 1008 provides an advanced general infrastructure for use by the application 1010. For example, the framework 1008 provides various graphical user interface functions, advanced resource management, advanced location services, etc. The framework 1008 may provide a wide range of other APIs for use by the application 1010, some of which may be specific to a particular operating system 1004 or platform.
[0078] In an exemplary embodiment, the application 1010 includes a home page application 1050, a contacts application 1052, a browser application 1054, a reader application 1056, a location application 1058, a media application 1060, a messaging application 1062, a game application 1064, and various other applications, such as third-party applications 1066. The application 1010 is a program that executes functions defined in the program. One or more applications 1010 can be created using a variety of programming languages and have diverse structures, 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 1066 (e.g., an application developed by an entity other than a specific platform vendor using an ANDROID TM or IOS TM software development kit (SDK)) may be an application that runs on a mobile operating system (such as IOSTM 、 ANDROID TM 、 Mobile software on a Phone or other mobile operating system). In this example, the third-party application 1066 can call the API call 1012 provided by the operating system 1004 to implement the functions described herein.
[0079] Figure 11 FIG. shows an illustrative representation of a machine 1100, presented in the form of a computer system, in which a set of instructions can be executed to cause the machine 1100 to perform any one or more of the methods discussed herein. Specifically, Figure 11 FIG. shows an illustrative representation of a machine 1100, by way of example in the form of a computer system, in which instructions 1116 (such as software, program, application, applet, application, or other executable code) cause the machine 1100 to perform any one or more of the methods discussed herein. For example, the instructions 1116 can cause the machine 1100 to perform Figure 9 the method in. Additionally, or alternatively, the instructions 1116 can implement Figures 1 to 9 the method in etc. The instructions 1116 transform the general, unprogrammed machine 1100 into a particular, programmed machine 1100 capable of executing the functions described and shown. In other embodiments, the machine 1100 can operate as a stand-alone device, or can be connected to other machines (e.g., via a network). In a network deployment, the machine 1100 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 1100 can include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet, a laptop, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a mobile phone, a smartphone, a mobile device, a wearable device (such as a smartwatch), a smart home device (such as a smart appliance), other smart devices, a network device, a network router, a network switch, a network bridge, or any machine capable of executing the instructions 1116 in sequence or otherwise and specifying the actions that the machine 1100 needs to take. Further, although only one machine 1100 is shown, the term "machine" can also include a collection of multiple machines 1100 that can execute the instructions 1116 individually or jointly to perform any one or more of the methods discussed herein.
[0080] Machine 1100 may include a processor 1110, a memory 1130, and input / output components 1150, which may communicate via a bus 1102. In one example embodiment, the processor 1110 (e.g., a 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), other processors, or any suitable combination) may include, for example, a processor 1112 and a processor 1114, which may execute instructions 1116. The term "processor" is intended to encompass multi-core processors, which may include two or more independent processors (sometimes referred to as "cores") capable of executing instructions 1116 simultaneously. Although Figure 11 multiple processors 1110 are shown, machine 1100 may include a single-core processor 1112, a single processor 1112 with multiple cores (e.g., a multi-core processor 1112), multiple processors 1112, 1114 with a single core, or multiple processors 1112, 1114 with multiple cores, or any combination thereof.
[0081] The memory 1130 may include a main memory 1132, a static memory 1134, and a storage unit 1136, each of which may communicate with the processor 1110 via the bus 1102. The main memory 1132, the static memory 1134, and the storage unit 1136 store instructions 1116 that contain any one or more of the methods or functions described herein. The instructions 1116 may also reside, in whole or in part, in the main memory 1132, the static memory 1134, the storage unit 1136, inside at least one processor 1110 (e.g., the cache memory of the processor), or any suitable combination thereof, when the machine 1100 executes these instructions.
[0082] The input / output components 1150 may include a variety of components for receiving input, providing output, generating output, transmitting information, exchanging information, capturing measurement data, etc. The input / output components 1150 included in a particular machine will depend on the type of the machine. For example, a portable device such as a mobile phone may include a touch input device or other similar input mechanisms, while a headless server machine may not include such touch input devices. It should be understood that the input / output components 1150 may include many Figure 11Other components not shown. The input / output component 1150 is classified by function only for the purpose of simplifying the following discussion, and this classification method is not restrictive. In various example embodiments, the input / output component 1150 may include an output component 1152 and an input component 1154. The output component 1152 may 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., vibration motors, resistance mechanisms), other signal generators, etc. The input component 1154 may include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, an 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 tools), haptic input components (e.g., physical buttons, a touch screen that provides touch location and / or touch gestures, or other haptic input components), audio input components (e.g., a microphone), etc.
[0083] In a further embodiment, the input / output component 1150 may include a biometric component 1156, a motion component 1158, an environmental component 1160, or a location component 1162, as well as a variety of other components. For example, the biometric component 1156 may include components for detecting expressions (e.g., gesture expressions, facial expressions, voice expressions, body movements, or eye movement tracking), components for measuring biometric signals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), components for identifying individuals (e.g., voice recognition, retina recognition, facial recognition, fingerprint recognition, or brain wave-based recognition), etc. The motion component 1158 may include an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. The environmental component 1160 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 the concentration of harmful gases to ensure safety or measuring atmospheric pollutants), or other components that can provide indications, measurements, or signals related to the surrounding physical environment. The location component 1162 may include a positioning sensor component (e.g., a global positioning system (GPS) receiver component), an altitude sensor component (e.g., a barometer or a barometric pressure sensor for deriving altitude by detecting barometric pressure), a direction sensor component (e.g., a magnetometer), etc.
[0084] Communication can be implemented through a variety of technologies. The input / output component 1150 may include communication components 1164 that can couple the machine 1100 to the network 1180 or the device 1170 through the connections 1182 and 1172 respectively. For example, the communication component 1164 may include a network interface component for interfacing with the network 1180 or other suitable devices. In a further example, the communication component 1164 may include a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, components (e.g., Bluetooth Low Energy), components, and other communication components that provide communication through different modes. The device 1170 may be another machine or a variety of external devices (e.g., through a USB connection).
[0085] In addition, the communication component 1164 can detect identifiers or include components capable of detecting identifiers. For example, the communication component 1164 may include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reading component (e.g., an optical sensor for detecting one-dimensional barcodes such as Universal Product Code (UPC) barcodes, multi-dimensional barcodes such as QR codes, Aztec codes, Data Matrix, Dataglyph, Maxi Code, PDF417, Ultra Code, UCC RSS-2D barcodes, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying tagged audio signals). In addition, a variety of information can be derived through the communication component 1164, such as determining a location through Internet Protocol (IP) geolocation, determining a location through signal triangulation, determining a specific location by detecting an NFC beacon signal, etc.
[0086] Various memories (i.e., 1130, 1132, 1134 and / or the memory of the processor 1110) and / or the storage unit 1136 may store one or more instruction sets 1116 and data structures (e.g., software) that implement or use any of the methods or functions described herein. When these instructions (e.g., instruction 1116) are executed by the processor 1110, various operations will be triggered to implement the disclosed embodiments.
[0087] As used herein, the terms "machine storage medium", "device storage medium", and "computer storage medium" have the same meaning and may be used interchangeably. These terms refer to a single or multiple storage devices and / or media (e.g., a centralized or distributed database, and / or associated caches and servers) for storing executable instructions and / or data. Thus, these terms shall include, but not be limited to, solid-state memories, optical and magnetic media, including memory internal or external to a processor. Specific examples of machine storage media, computer storage media, and / or device storage media include non-volatile memories such as semiconductor storage devices (e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), field-programmable gate array (FPGA), and flash memory devices); magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms "machine storage medium", "computer storage medium", and "device storage medium" expressly exclude carrier waves, modulated data signals, and other similar media, which are at least partially covered by the "signal medium" discussed below.
[0088] In various example embodiments, one or more portions of network 1180 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 the public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, a network, other types of networks, or a combination of two or more networks. For example, network 1180 or a portion of network 1180 may include a wireless or cellular network, and connection 1182 may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or other types of cellular or wireless connections. In this example, connection 1182 may implement various types of data transmission technologies, such as single-carrier radio transmission technology (1xRTT), enhanced data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rates (EDGE) technology, 3rd Generation Partnership Project (3GPP) including 8G, 4th Generation Wireless (4G) networks, universal mobile telecommunications system (UMTS), high-speed packet access (HSPA), worldwide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other protocols defined by various standardization organizations, other long-range protocols, or other data transmission technologies.
[0089] Instruction 1116 can be transmitted or received via a network interface device (e.g., a network interface component included in communication component 1164) using a transmission medium and via network 1180, employing any of a variety of well-known transmission protocols (e.g., Hypertext Transfer Protocol [HTTP]). Similarly, instruction 1116 can be transmitted or received to device 1170 via connection 1172 (e.g., a point-to-point connection) using a transmission medium. The terms "transmission medium" and "signal medium" have the same meaning in this specification and are used interchangeably. The terms "transmission medium" and "signal medium" should be understood to include any non-transitory medium that is capable of storing, encoding, or carrying instruction 1116 for execution by machine 1100, and includes digital or analog communication signals or other non-transitory media for transmitting such software. Thus, 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 in which one or more characteristics have been set or changed in order to encode information in the signal.
[0090] The terms "machine-readable medium", "computer-readable medium", and "device-readable medium" have the same meaning in this specification and are used interchangeably. These terms are defined to include machine storage media and transmission media. Thus, these terms include storage devices / media as well as carrier waves / modulated data signals.
Claims
1. A system, comprising: A lighting device, comprising a plurality of independently controllable light sources; A camera; A calibration object assembly, comprising a plurality of hemispherical reflective calibration objects; A computer system, comprising at least one hardware processor and a non - volatile computer - readable medium storing instructions, which when executed by the at least one hardware processor, cause the at least one hardware processor to perform the following operations: Activate a first light source among the plurality of independently controllable light sources and direct a first light beam onto each of the plurality of hemispherical reflective calibration objects; Use the camera to capture an image of the plurality of independently controllable light sources; For each of the plurality of hemispherical reflective calibration objects: Identify, in the image of the plurality of independently controllable light sources, the reflection of the first light beam from the corresponding hemispherical reflective calibration object; Based on the position of the reflection in the image captured by the camera and the size of the corresponding hemispherical reflective calibration object, identify the angle at which the first light beam is reflected by the corresponding hemispherical reflective calibration object; Use the angle identified for each corresponding hemispherical reflective calibration object to calculate the position of the first light source relative to the camera in three - dimensional space.
2. The system according to claim 1, wherein The calibration object assembly includes a light - shielding grille having a plurality of walls, and the direction of each wall is set to block the reflected light from one hemispherical reflective calibration object from irradiating another hemispherical reflective calibration object.
3. The system according to claim 1, wherein The operations further include: Repeat the operations for each of the plurality of independently controllable light sources one by one.
4. The system according to claim 1, characterized in that, The lighting device is a light dome, the concave part of the light dome faces downward, and the calibration object assembly is located below the concave part of the light dome.
5. The system according to claim 1, wherein Each of the plurality of hemispherical reflective calibration objects is a part of a sphere located in a separate concave part of a base.
6. The system according to claim 5, characterized in that, The sphere is composed of chrome steel.
7. The system according to claim 2, wherein Each of the plurality of hemispherical reflective calibration objects is a part of a sphere located in a separate concave part of a base, and the base has a different color from the light - shielding grille.
8. A method, comprising: Activate a first light source among the plurality of independently controllable light sources and direct a first light beam onto each of the plurality of hemispherical reflective calibration objects; Use the camera to capture an image of the plurality of independently controllable light sources; For each of the plurality of hemispherical reflective calibration objects: Identify, in the image of the plurality of independently controllable light sources, the reflection of the first light beam from the corresponding hemispherical reflective calibration object; Based on the position of the reflection in the image captured by the camera and the size of the corresponding hemispherical reflective calibration object, identify the angle at which the first light beam is reflected by the corresponding hemispherical reflective calibration object; Use the angle identified for each corresponding hemispherical reflective calibration object to calculate the position of the first light source relative to the camera in three - dimensional space.
9. The method according to claim 8, wherein The calibration object assembly includes a light - shielding grille having a plurality of walls, and the direction of each wall is set to block the reflected light from one hemispherical reflective calibration object from irradiating another hemispherical reflective calibration object.
10. The method according to claim 8, characterized in that The operations further include: Repeat the operation for each of the plurality of independently controllable light sources one at a time.
11. The method according to claim 8, characterized in that, The lighting device is a light dome with the concave portion facing downward, and the calibration object assembly is located below the concave portion of the light dome.
12. The method according to claim 8, wherein Each of the plurality of hemispherical reflective calibration objects is a part of a sphere located in a separate concave portion of the base.
13. The method according to claim 12, characterized in that, The sphere is composed of chrome steel.
14. The method according to claim 9, wherein Each of the plurality of hemispherical reflective calibration objects is a part of a sphere located in a separate concave portion of the base, and the base is different in color from the light-shielding grille.
15. A non-transitory machine-readable storage medium carrying instructions executable by one or more machines to perform the following operations: Activate a first light source among the plurality of independently controllable light sources and direct a first light beam onto each of the plurality of hemispherical reflective calibration objects; Capture an image of the plurality of independently controllable light sources using the camera; For each of the plurality of hemispherical reflective calibration objects: Identify, in the image of the plurality of independently controllable light sources, the reflection of the first light beam from the corresponding hemispherical reflective calibration object; Based on the position of the reflection in the image captured by the camera and the size of the corresponding hemispherical reflective calibration object, identify the angle at which the first light beam is reflected by the corresponding hemispherical reflective calibration object; Using the angles identified for each corresponding hemispherical reflective calibration object, calculate the position of the first light source relative to the camera in three-dimensional space.
16. The non-volatile machine-readable storage medium according to claim 15, wherein The calibration object assembly includes a light-shielding grille having a plurality of walls, and the direction of each wall is set to block the reflected light from one hemispherical reflective calibration object from irradiating another hemispherical reflective calibration object.
17. The non-volatile machine-readable storage medium according to claim 15, characterized in that, The operation further includes: Repeat the operation for each of the plurality of independently controllable light sources one at a time.
18. The non-volatile machine-readable storage medium according to claim 15, characterized in that, The lighting device is a light dome with the concave portion facing downward, and the calibration object assembly is located below the concave portion of the light dome.
19. The non-volatile machine-readable storage medium according to claim 15, wherein Each of the plurality of hemispherical reflective calibration objects is a part of a sphere located in a separate concave portion of the base.
20. The non-volatile machine-readable storage medium according to claim 19, wherein The sphere is composed of chrome steel.