An optical sensor device may be utilized to capture information concerning light. For example, the optical sensor device may capture information relating to a set of wavelengths associated with the light. The optical sensor device may include a set of sensor elements (e.g., optical sensors, spectral sensors, and/or image sensors) that capture the information. For example, an array of sensor elements may be utilized to capture information relating to multiple wavelengths. The sensor element array may be associated with an optical filter. The optical filter may include one or more channels that respectively pass particular wavelengths to sensor elements of the sensor element array.
In some implementations, an optical sensor device includes an optical sensor comprising a set of sensor elements; an optical filter disposed over the optical sensor, wherein the optical filter includes a plurality of regions, and a region, of the plurality of regions, includes: a first set of optical channels comprising optical channels that are configured to pass light associated with respective subranges of a first wavelength range to respective first subsets of sensor elements, of the set of sensor elements, of the optical sensor, a second set of optical channels comprising optical channels that are configured to pass light associated with respective subranges of a second wavelength range to respective second subsets of sensor elements, of the set of sensor elements, of the optical sensor, and a third set of optical channels comprising optical channels that are configured to pass light associated with respective subranges of a third wavelength range to respective third subsets of sensor elements, of the set of sensor elements, of the optical sensor; and one or more processors configured to: obtain, from the optical sensor, sensor data associated with a scene; determine, based on the sensor data, spectral information associated with the scene; determine, based on the spectral information, image information associated with the scene; and provide the image information.
In some implementations, an optical sensor device includes an optical sensor comprising a set of sensor elements; and an optical filter disposed over the optical sensor, wherein the optical filter includes a plurality of regions, and a region, of the plurality of regions, includes: a first set of optical channels comprising optical channels that are configured to pass light associated with respective subranges of a first wavelength range to respective first subsets of sensor elements, of the set of sensor elements, of the optical sensor, a second set of optical channels comprising optical channels that are configured to pass light associated with respective subranges of a second wavelength range to respective second subsets of sensor elements, of the set of sensor elements, of the optical sensor, and a third set of optical channels comprising optical channels that are configured to pass light associated with respective subranges of a third wavelength range to respective third subsets of sensor elements, of the set of sensor elements, of the optical sensor.
In some implementations, an optical filter includes a plurality of regions, wherein: a region, of the plurality of regions, of the optical filter includes: a first set of optical channels that are associated with passing light associated with a first wavelength range: wherein each optical channel of the first set of optical channels is configured to pass light associated with a particular subrange of the first wavelength range; a second set of optical channels that are associated with passing light associated with a second wavelength range, wherein each optical channel of the second set of optical channels is configured to pass light associated with a particular subrange of the second wavelength range; and a third set of optical channels that are associated with passing light associated with a third wavelength range, wherein each optical channel of the third set of optical channels is configured to pass light associated with a particular subrange of the third wavelength range.
The following detailed description of example implementations refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. The following description uses a spectrometer as an example. However, the techniques, principles, procedures, and methods described herein may be used with any sensor, including but not limited to other optical sensors and spectral sensors.
A conventional optical sensor device, such as an imaging device, may be configured to determine color information associated with light (e.g., ambient light) of a scene captured by the optical sensor device. The light may enter the optical sensor device and may be received by a red-green-blue (RGB) optical filter, such as a Bayer filter, and an optical sensor of the optical sensor device (e.g., wherein the RGB optical filter is disposed on the optical sensor). The RGB optical filter may include a two-dimensional array of optical channels, where any 2×2 portion of the array includes a single optical channel configured to pass red light, a single optical channel configured to pass blue light, and two optical channels configured to pass green light (e.g., to mimic color perception of the human eye). Light passed by the RGB optical filter is transmitted to the optical sensor, which generates sensor data.
A processor can process the sensor data using a demosaicing computation technique to determine color points (e.g., in a color space, such as the International Commission on Illumination (CIE) 1931 RGB color space) associated with 2×2 portions of the array of optical channels. These color points can be used to generate an image (e.g., a digital image) of the scene. For example, the processor, when using the demosaicing computation technique, can process a color point associated with a 2×2 portion of the array based on sensor data that is associated with a single optical channel configured to pass red light, a single optical channel configured to pass blue light, and two optical channels configured to pass green light that are part of the 2λ2 portion. However, these optical channels often pass light associated with broad, overlapping wavelength bands (e.g., as further described herein in relation to
Some implementations described herein provide an optical sensor device that includes an optical filter, an optical sensor, and one or more processors. The optical filter may include a plurality of optical channels within a plurality of regions of the optical filter. A region, of the plurality of regions, may include a first set of optical channels comprising optical channels that are configured to pass light associated with respective subranges of a first wavelength range (e.g., that is associated with red light), a second set of optical channels comprising optical channels that are configured to pass light associated with respective subranges of a second wavelength range (e.g., that is associated with blue light), and a third set of optical channels comprising optical channels that are configured to pass light associated with respective subranges of a third wavelength range (e.g., that is associated with green light). A first number of optical channels may be included in the first set of optical channels, a first number of optical channels may be included in the second set of optical channels, and a second number of optical channels may be included in the third set of optical channels, where the second number is twice the first number.
In this way, a region of the optical filter may include a ratio of optical channels associated with the first wavelength range (e.g., that is associated with red light), optical channels associated with a second wavelength range (e.g., that is associated with blue light), and optical channels associated with the third wavelength range (e.g., that is associated with green light) that is the same as (e.g., equal to) that of a 2×2 portion of array of optical channels of a conventional RGB optical filter. Accordingly, sensor data associated with the region of the optical filter (e.g., that is generated by the optical sensor based on light associated with a scene that is passed by the optical channels within the region) may be processed by the one or more processors using a demosaicing computation technique to determine a color point associated with the region.
Moreover, the optical filter may pass light associated with narrow, nonoverlapping wavelength bands that are respectively associated with one of red light, blue light, and green light. In this way, the optical filter provides increased spectral fidelity associated with a scene to be imaged, as compared to that of the conventional RGB optical filter. This allows the one or more processors to determine more accurate color points, which decreases a likelihood of artifacts being introduced in an image generated from the color points. This increases a color accuracy of the image and therefore improves an accuracy of a representation of the scene in the image.
As further shown in
As further shown in
A sensor element 108 may be configured to obtain information regarding light that falls incident on the sensor element 108 (e.g., after passing through an optical channel 106). For example, a sensor element 108 may provide an indication of intensity of light that falls incident on the sensor element 108 (e.g., active/inactive, or a more granular indication of intensity). The optical sensor 104 may be configured to collect the information obtained by the one or more sensor elements 108 to generate sensor data.
As further shown in
As shown in
A region 110, of the plurality of regions 110, may include multiple sets of optical channels 114 that are associated with passing light associated with respective wavelength ranges. For example, a region 110 may include a first set of optical channels 114-1 (e.g., that includes optical channels 106 with dotted patterning, as shown in
In some implementations, the first wavelength range may be associated with red light, the second wavelength range may be associated with blue light, and the third wavelength range may be associated with green light. That is, the first wavelength range, the second wavelength range, and the third wavelength range may be associated with wavelength ranges associated with a conventional red-green-blue (RGB) optical filter. For example, the first wavelength range may be approximately 600 to 700 nanometers (e.g., greater than or equal to 600 nanometers and less than 700 nanometers), the second wavelength range may be approximately 400 to 500 nanometers (e.g., greater than or equal to 400 nanometers and less than 500 nanometers), and the third wavelength range may be approximately 500 nanometers to 600 nanometers (e.g., greater than or equal to 500 nanometers and less than 600 nanometers). Other implementations are contemplated. For example, a wavelength range of the first wavelength, the second wavelength range, and/or the third wavelength range, may be associated with ultraviolet light (e.g., approximately 100 to 400 nanometers) and/or near infrared light (e.g., approximately 700 to 1000 nanometers), among other examples.
In some implementations, each optical channel 106 of the first set of optical channels 114-1 may be configured to pass light associated with a particular subrange of the first wavelength range (e.g., to a set of sensor elements 108 associated with the optical channel 106). For example, as shown in
In some implementations, each optical channel 106 of the second set of optical channels 114-2 may be configured to pass light associated with a particular subrange of the second wavelength range (e.g., to a set of sensor elements 108 associated with the optical channel 106). For example, as shown in
In some implementations, each optical channel 106 of the third set of optical channels 114-3 may be configured to pass light associated with a particular subrange of the third wavelength range (e.g., to a set of sensor elements 108 associated with the optical channel 106). For example, as shown in
In some implementations, a number of optical channels 106 included in the first set of optical channels 114-1 may be the same as (e.g., equal to) a number of optical channels 106 included in the second of optical channels 114-2. Additionally, or alternatively, a number of optical channels 106 included in the third set of optical channels 114-1 may be a sum of the number of optical channels 106 included in the first set of optical channels 114-1 and the number of optical channels 106 included in the second of optical channels 114-2. Stated another way, a first number of optical channels 106 may be included in the first set of optical channels 114-1, a first number of optical channels 106 may be included in the second set of optical channels 114-2, and a second number of optical channels 106 may be included in the third set of optical channels 114-3, where the second number is twice the first number. For example, as shown in
In this way, a region 110 of the optical filter 102 may include a ratio of optical channels 106 associated with the first wavelength range (e.g., that is associated with red light), optical channels 106 associated with a second wavelength range (e.g., that is associated with blue light), and optical channels 106 associated with the third wavelength range (e.g., that is associated with green light) that is the same as (e.g., equal to) that of a conventional RGB optical filter. Accordingly, sensor data (e.g., that is generated by the optical sensor 104) associated with region 110 of the optical filter 102 may be processed using a demosaicing computation technique (e.g., as described herein in relation to
As further shown in
In some implementations, a first number of optical channels 106 (e.g., at least one optical channel 106) of the first set of optical channels 114-1 may be within a subregion 112, a first number of optical channels 106 (e.g., at least one optical channel 106) of the second set of optical channels 114-2 may be within the subregion 112, and a second number of optical channels 106 (e.g., at least two optical channels 106) of the third set of optical channels 114-2 may be within the subregion 112, where the second number may be twice the first number. For example, as shown in
As shown in
As further shown in
As further shown in
As further shown in
In an example, the one or more processors 120 may identify a first portion of the spectral information that is associated with a first set of optical channels 114-1 within a region 110 of the optical filter 102 (e.g., spectral information that is based on sensor data generated by a first set of sensor elements 108 associated with the first set of optical channels 114-1), a second portion of the spectral information that is associated with a second set of optical channels 114-2 within the region 110 of the optical filter 102 (e.g., spectral information that is based on sensor data generated by a second set of sensor elements 108 associated with the second set of optical channels 114-2), a third portion of the spectral information that is associated with a portion of a third set of optical channels 114-3 within the region 110 of the optical filter 102 (e.g., spectral information that is based on sensor data generated by a third set of sensor elements 108 associated with the portion of the third set of optical channels 114-3), and/or a fourth portion of the spectral information that is associated with another portion of the third set of optical channels 114-3 within the region 110 of the optical filter 102 (e.g., spectral information that is based on sensor data generated by a fourth set of sensor elements 108 associated with the other portion of the third set of optical channels 114-3). The one or more processors 120 may process the first portion of the spectral information to determine a first spectral value (e.g., that is an average of respective spectral values of the first set of optical channels 114-1), may process the second portion of the spectral information to determine a second spectral value (e.g., that is an average of respective spectral values of the second set of optical channels 114-2), may process the third portion of the spectral information to determine a third spectral value (e.g., that is an average of respective spectral values of the portion of the third set of optical channels 114-3), and may process the fourth portion of the spectral information to determine a fourth spectral value (e.g., that is an average of respective spectral values of the other portion of the third set of optical channels 114-3).
In this way, the one or more processors may determine a spectral value (e.g., the first spectral value) associated with the first wavelength range (e.g., that is associated with red light), may determine a spectral value (e.g., the second spectral value) associated with the second wavelength range (e.g., that is associated with blue light), and may determine two spectral values (e.g., the third spectral value and the fourth spectral value) associated with the third wavelength range (e.g., that is associated with green light). Accordingly, the one or more processors 120 may process, using a demosaicing computation technique, the first spectral value, the second spectral value, the third spectral value, and the fourth spectral value, a color point that is associated with the region 110 of the optical filter 102.
In an additional example, the one or more processors 120 may identify a first portion of the spectral information that is associated with a subset of the first set of optical channels 114-1 within a subregion 112 of the region 110 of the optical filter 102 (e.g., spectral information that is based on sensor data generated by a first set of sensor elements 108 associated with the subset of the first set of optical channels 114-1), a second portion of the spectral information that is associated with a subset of the second set of optical channels 114-2 within the subregion 112 of the region 110 of the optical filter 102 (e.g., spectral information that is based on sensor data generated by a second set of sensor elements 108 associated with the subset of the second set of optical channels 114-2), a third portion of the spectral information that is associated with a first subset of the third set of optical channels 114-3 of the subregion 112 of the region 110 of the optical filter 102 (e.g., spectral information that is based on sensor data generated by a third set of sensor elements 108 associated with the first subset of the third set of optical channels 114-3), and/or a fourth portion of the spectral information that is associated with a second subset of the third set of optical channels 114-3 of the subregion 112 of the region 110 of the optical filter 102 (e.g., spectral information that is based on sensor data generated by a fourth set of sensor elements 108 associated with the second subset of the third set of optical channels 114-3). The one or more processors 120 may process the first portion of the spectral information to determine a first spectral value (e.g., that is an average of respective spectral values of the subset of the first set of optical channels 114-1), may process the second portion of the spectral information to determine a second spectral value (e.g., that is an average of respective spectral values of the subset of the second set of optical channels 114-2), may process the third portion of the spectral information to determine a third spectral value (e.g., that is an average of respective spectral values of the first subset of the third set of optical channels 114-3), and may process the fourth portion of the spectral information to determine a fourth spectral value (e.g., that is an average of respective spectral values of the second subset of the third set of optical channels 114-3).
In this way, the one or more processors 120 may determine a spectral value (e.g., the first spectral value) associated with the first wavelength range (e.g., that is associated with red light), may determine a spectral value (e.g., the second spectral value) associated with the second wavelength range (e.g., that is associated with blue light), and may determine two spectral values (e.g., the third spectral value and the fourth spectral value) associated with the third wavelength range (e.g., that is associated with green light). Accordingly, the one or more processors 120 may process, using a demosaicing computation technique, the first spectral value, the second spectral value, the third spectral value, and the fourth spectral value, a color point that is associated with the subregion 112 of the region 110 of the optical filter 102.
In some implementations, the one or more processors 120 may provide the image information. For example, the one or more processors 120 may generate, based on the image information, an image and may cause display of the image information on a display (e.g., that is associated with the optical sensor device). As another example, the one or more processors may send the image information to another device, such as a user device, to cause the other device to generate the image and to display the image on a display of the other device.
As indicated above,
In contrast, the optical filter 102 may comprise a plurality of optical channels 106 that are each configured to pass light associated with a subrange of a wavelength range. For example, a region 110 of the optical filter 102 may include a first set of optical channels 114-1 that are configured to pass red light, a second set of optical channels 114-2 that are configured to pass blue light, and a third set of optical channels 114-3 that are configured to pass green light. Accordingly, as further shown in
As indicated above,
Optical sensor device 310 may include an optical device capable of storing, processing, and/or routing spectral information and/or image information associated with a scene. For example, optical sensor device 310 may include a spectrometer device that performs spectroscopy, such as a spectral optical sensor device (e.g., a binary multispectral optical sensor device that performs vibrational spectroscopy, such as a near infrared (NIR) spectrometer, a mid-infrared spectroscopy (mid-IR), Raman spectroscopy, and/or the like). In some implementations, optical sensor device 310 may be incorporated into user device 340, such as a wearable spectrometer and/or the like. In some implementations, optical sensor device 310 may receive information from and/or transmit information to another device in environment 300, such as user device 340.
In some implementations, optical sensor device 310 may comprise a spectral imaging camera. A spectral imaging camera is a device that can capture an image of a scene. A spectral imaging camera (or a processor 320 associated with the spectral imaging camera) may be capable of determining spectral content or changes in spectral content at different points in an image of a scene, such as any point in an image of a scene.
In some implementations, optical sensor device 310 may comprise a spectral imaging camera capable of performing hyperspectral imaging. For example, optical sensor device 310 may include an optical filter (e.g., optical filter 102, described herein in relation to
Optical sensor device 310 may include one or more processors 320, described in more detail in connection with
Optical sensor device 310 may include an optical sensor 330. Optical sensor 330 includes a device capable of sensing light. For example, optical sensor 330 may include an image sensor, a multispectral sensor, a spectral sensor, and/or the like. In some implementations, optical sensor 330 may include a silicon (Si) based sensor, an indium-gallium-arsenide (InGaAs) based sensor, a lead-sulfide (PbS) based sensor, or a germanium (Ge) based sensor, and may utilize one or more sensor technologies, such as a complementary metal-oxide-semiconductor (CMOS) technology, or a charge-coupled device (CCD) technology, among other examples. In some implementations, optical sensor 330 may include a front-side illumination (FSI) sensor, a back-side illumination (BSI) sensor, and/or the like. In some implementations, optical sensor 330 may be included in a camera of optical sensor device 310 and/or user device 340.
User device 340 includes one or more devices capable of receiving, generating, storing, processing, and/or providing the spectral information and/or the image information associated with the scene. For example, user device 340 may include a communication and/or computing device, such as a mobile phone (e.g., a smart phone, a radiotelephone, and/or the like), a computer (e.g., a laptop computer, a tablet computer, a handheld computer, and/or the like), a gaming device, a wearable communication device (e.g., a smart wristwatch, a pair of smart eyeglasses, and/or the like), or a similar type of device. In some implementations, user device 340 may receive information from and/or transmit information to another device in environment 300, such as optical sensor device 310.
Network 350 includes one or more wired and/or wireless networks. For example, network 350 may include a cellular network (e.g., a long-term evolution (L 1E) network, a code division multiple access (CDMA) network, a 3G network, a 4G network, a 5G network, another type of next generation network, and/or the like), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., the Public Switched Telephone Network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, a cloud computing network, or the like, and/or a combination of these or other types of networks.
The number and arrangement of devices and networks shown in
Bus 410 includes a component that permits communication among multiple components of device 400. Processor 420 is implemented in hardware, firmware, and/or a combination of hardware and software. Processor 420 is a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or another type of processing component. In some implementations, processor 420 includes one or more processors capable of being programmed to perform a function. Memory 430 includes a random access memory (RANI), a read only memory (ROM), and/or another type of dynamic or static storage device (e.g., a flash memory, a magnetic memory, and/or an optical memory) that stores information and/or instructions for use by processor 420.
Storage component 440 stores information and/or software related to the operation and use of device 400. For example, storage component 440 may include a hard disk (e.g., a magnetic disk, an optical disk, and/or a magneto-optic disk), a solid state drive (SSD), a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a cartridge, a magnetic tape, and/or another type of non-transitory computer-readable medium, along with a corresponding drive.
Input component 450 includes a component that permits device 400 to receive information, such as via user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and/or a microphone). Additionally, or alternatively, input component 450 may include a component for determining location (e.g., a global positioning system (GPS) component) and/or a sensor (e.g., an accelerometer, a gyroscope, an actuator, another type of positional or environmental sensor, and/or the like). Output component 460 includes a component that provides output information from device 400 (via, e.g., a display, a speaker, a haptic feedback component, an audio or visual indicator, and/or the like).
Communication component 470 includes a transceiver-like component (e.g., a transceiver, a separate receiver, a separate transmitter, and/or the like) that enables device 400 to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. Communication component 470 may permit device 400 to receive information from another device and/or provide information to another device. For example, communication component 470 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, and/or the like.
Device 400 may perform one or more processes described herein. Device 400 may perform these processes based on processor 420 executing software instructions stored by a non-transitory computer-readable medium, such as memory 430 and/or storage component 440. As used herein, the term “computer-readable medium” refers to a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.
Software instructions may be read into memory 430 and/or storage component 440 from another computer-readable medium or from another device via communication component 470. When executed, software instructions stored in memory 430 and/or storage component 440 may cause processor 420 to perform one or more processes described herein. Additionally, or alternatively, hardware circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
The number and arrangement of components shown in
As shown in
As further shown in
As further shown in
In some implementations, determining the image information includes processing a first portion of the spectral information that is associated with the first set of optical channels to determine a first spectral value associated with the first wavelength range; processing a second portion of the spectral information that is associated with the second set of optical channels to determine a second spectral value associated with the second wavelength range; processing a third portion of the spectral information that is associated with a portion of the third set of optical channels to determine a third spectral value associated with the third wavelength range; processing a fourth portion of the spectral information that is associated with another portion of the third set of optical channels to determine a fourth spectral value associated with the third wavelength range; and determining, using a demosaicing computational technique and based on the first spectral value, the second spectral value, the third spectral value, and the fourth spectral value, a color point associated with the region of the optical filter.
In some implementations, determining the image information includes identifying at least one of the set of first optical channels that is associated with a subregion of the region of the optical filter, at least one of the second set of optical channels associated with the subregion, and at least two of the third set of optical channels associated with the subregion; processing a first portion of the spectral information that is associated with the at least one of the first set of optical channels to determine a first spectral value associated with the first wavelength range; processing a second portion of the spectral information that is associated with the at least one of the second set of optical channels to determine a second spectral value associated with the second wavelength range; processing a third portion of the spectral information that is associated with a portion of the at least two of the third set of optical channels to determine a third spectral value associated with the third wavelength range; processing a fourth portion of the spectral information that is associated with another portion of the at least two of the third set of optical channels to determine a fourth spectral value associated with the third wavelength range; and determining, using a demosaicing computational technique and based on the first spectral value, the second spectral value, the third spectral value, and the fourth spectral value, a color point associated with the subregion of the optical filter.
As further shown in
Process 500 may include additional implementations, such as any single implementation or any combination of implementations described in connection with one or more other processes described elsewhere herein.
Although
The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise forms disclosed. Modifications and variations may be made in light of the above disclosure or may be acquired from practice of the implementations.
As used herein, the term “component” is intended to be broadly construed as hardware, firmware, or a combination of hardware and software. It will be apparent that systems and/or methods described herein may be implemented in different forms of hardware, firmware, and/or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and/or methods is not limiting of the implementations. Thus, the operation and behavior of the systems and/or methods are described herein without reference to specific software code—it being understood that software and hardware can be used to implement the systems and/or methods based on the description herein.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of various implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one claim, the disclosure of various implementations includes each dependent claim in combination with every other claim in the claim set. As used herein, a phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover a, b, c, a-b, a-c, b-c, and a-b-c, as well as any combination with multiple of the same item.
No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items, and may be used interchangeably with “one or more.” Further, as used herein, the article “the” is intended to include one or more items referenced in connection with the article “the” and may be used interchangeably with “the one or more.” Furthermore, as used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, or a combination of related and unrelated items), and may be used interchangeably with “one or more.” Where only one item is intended, the phrase “only one” or similar language is used. Also, as used herein, the terms “has,” “have,” “having,” or the like are intended to be open-ended terms. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise. Also, as used herein, the term “or” is intended to be inclusive when used in a series and may be used interchangeably with “and/or,” unless explicitly stated otherwise (e.g., if used in combination with “either” or “only one of”).