The present disclosure relates to the field of infrared sensors. More specifically, the present disclosure presents a computing device and method using a neural network to analyze temperature measurements of an infrared sensor.
Systems for controlling environmental conditions, for example in buildings, are becoming increasingly sophisticated. An environment control system may at once control heating and cooling, monitor air quality, detect hazardous conditions such as fire, carbon monoxide release, intrusion, and the like. Such environment control systems generally include at least one environment controller, which receives measured environmental values, generally from sensors, and in turn determines set-points or command parameters to be sent to controlled appliances.
One type of sensor used in the context of environment control systems is an infrared (IR) sensor, such as for example an IR camera. A commonly used output of the IR sensor is a temperature measurement, or a two-dimensional (2D) matrix of temperature measurements. The temperature measurement(s) generated by the IR sensor may have different applications, such as detecting the presence of a person in an area, counting the number of persons present in an area, evaluating the body temperature of a person present in the area, evaluating the external temperature of an object located in the area, etc. The temperature measurement(s) performed by the IR sensor is used, generally in combination with data from other sensors, by an environment controller for controlling operations of one or more controlled appliance.
The present disclosure focuses on IR cameras (or any other type of IR sensor) used to measure the body temperature of a human being, in order to detect a medical condition such as fever. The IR camera is generally operated by an attendant, who points the IR camera to the person being monitored (e.g. towards the head of the monitored person). The attendant analyzes the temperature measurement(s) generated by the IR camera, to determine whether the monitored person has a medical condition.
Relying on an attendant for operating the IR camera and performing the temperature(s) analysis has several drawbacks. For instance, the analysis of the temperature(s) performed by the attendant is subject to error and bias. Furthermore, the efficiency of the procedure is limited, and could be improved through automation.
Therefore, there is a need for a computing device and method using a neural network to analyze temperature measurements of an infrared sensor.
According to a first aspect, the present disclosure relates to a computing device. The computing device comprises a communication interface, memory, and a processing unit comprising one or more processor. The memory stories a predictive model generated by a neural network training engine. The processing unit receives via the communication interface a two-dimensional (2D) matrix of temperature measurements from an infrared (IR) sensor. The processing unit executes a neural network inference engine. The neural network inference engine implements a neural network using the predictive model for generating outputs based on inputs. The inputs comprise the 2D matrix of temperature measurements. The outputs comprise a 2D matrix of inferred temperatures. The processing unit determines a subset of values of the 2D matrix of temperature measurements. The processing unit applies a comparison algorithm to the subset of values of the 2D matrix of temperature measurements and a corresponding subset of values of the 2D matrix of inferred temperatures.
According to a second aspect, the present disclosure relates to a method using a neural network to analyze temperature measurements of an infrared sensor. The method comprises storing a predictive model generated by a neural network training engine in a memory of a computing device. The method comprises receiving by the processing unit of the computing device a two-dimensional (2D) matrix of temperature measurements generated by the IR sensor. The method comprises executing by the processing unit of the computing device a neural network inference engine. The neural network inference engine implements a neural network using the predictive model for generating outputs based on inputs. The inputs comprise the 2D matrix of temperature measurements. The outputs comprise a 2D matrix of inferred temperatures. The method comprises determining by the processing unit of the computing device a subset of values of the 2D matrix of temperature measurements. The method comprises applying by the processing unit of the computing device a comparison algorithm to the subset of values of the 2D matrix of temperature measurements and a corresponding subset of values of the 2D matrix of inferred temperatures.
In a particular aspect, the processing unit of the computing device determines that the subset of values of the 2D matrix of temperature measurements is anomalous based on a result of the comparison algorithm.
In another particular aspect, the 2D matrix of temperature measurements comprises body temperature measurements of a human being, the subset of values of the 2D matrix of temperature measurements comprises at least some of the body temperature measurements of the human being, and the determination that the subset of values of the 2D matrix of temperature measurements is anomalous is indicative of the human being having fever.
According to a third aspect, the present disclosure relates to a method for training a neural network to analyze temperature measurements of an infrared (IR) sensor. The method comprises (a) initializing by a processing unit of a computing device a predictive model of a neural network. The method comprises (b) generating by the processing unit of the computing device training data, the training data comprising a plurality of two-dimensional (2D) matrices of temperature measurements generated by an IR sensor. The method comprises (c) executing by the processing unit of the computing device a neural network training engine. The neural network training engine implements the neural network using the predictive model for generating outputs based on inputs. The outputs comprise a 2D matrix of inferred temperatures. The inputs comprise a given 2D matrix of temperature measurements among the plurality of 2D matrices of temperature measurements. The method comprises (d) adjusting by the processing unit of the computing device the predictive model of the neural network to minimize a difference between the 2D matrix of inferred temperatures and the given 2D matrix of temperature measurements.
In a particular aspect. steps (c) and (d) are repeated for several 2D matrices of temperature measurements among the plurality of 2D matrices of temperature measurements.
Embodiments of the disclosure will be described by way of example only with reference to the accompanying drawings, in which:
The foregoing and other features will become more apparent upon reading of the following non-restrictive description of illustrative embodiments thereof, given by way of example only with reference to the accompanying drawings.
Various aspects of the present disclosure generally address one or more of the problems related to environment control systems for buildings. More particularly, the present disclosure aims at providing solutions for analyzing temperature measurements performed by an infrared (IR) sensor, to detect anomalies in the temperature measurements. For example, the IR sensor performs body temperature measurements of a human being and the anomalies in the body temperature measurements are indicative of the human being having fever.
The following terminology is used throughout the present specification:
Environment: condition(s) (temperature, pressure, oxygen level, light level, security, etc.) prevailing in a controlled area or place, such as for example in a building.
Environment control system: a set of components which collaborate for monitoring and controlling an environment.
Environmental data: any data (e.g. information, commands) related to an environment that may be exchanged between components of an environment control system.
Environment control device (ECD): generic name for a component of an environment control system. An ECD may consist of an environment controller, a sensor, a controlled appliance, etc.
Environment controller: device capable of receiving information related to an environment and sending commands based on such information.
Environmental characteristic: measurable, quantifiable or verifiable property of an environment (a building). The environmental characteristic comprises any of the following: temperature, pressure, humidity, lighting, CO2, flow, radiation, water level, speed, sound; a variation of at least one of the following, temperature, pressure, humidity and lighting, CO2 levels, flows, radiations, water levels, speed, sound levels, etc., and/or a combination thereof.
Environmental characteristic value: numerical, qualitative or verifiable representation of an environmental characteristic.
Sensor: device that detects an environmental characteristic and provides a numerical, quantitative or verifiable representation thereof. The numerical, quantitative or verifiable representation may be sent to an environment controller.
Controlled appliance: device that receives a command and executes the command. The command may be received from an environment controller.
Environmental state: a current condition of an environment based on an environmental characteristic, each environmental state may comprise a range of values or verifiable representation for the corresponding environmental characteristic.
VAV appliance: a Variable Air Volume appliance is a type of heating, ventilating, and/or air-conditioning (HVAC) system. By contrast to a Constant Air Volume (CAV) appliance, which supplies a constant airflow at a variable temperature, a VAV appliance varies the airflow at a constant temperature.
Area of a building: the expression ‘area of a building’ is used throughout the present specification to refer to the interior of a whole building or a portion of the interior of the building such as, without limitation: a floor, a room, an aisle, etc.
Referring now to
The area under the control of the computing device 100 is not represented in the Figures for simplification purposes. As mentioned previously, the area may consist of a room, a floor, an aisle, etc. However, any type of area located inside any type of building is considered being within the scope of the present disclosure.
Details of the computing device 100, the IR sensor 200 and the training server 300 will now be provided.
As illustrated in
The processing unit 110 comprises one or more processor (not represented in the Figures) capable of executing instructions of a computer program. Each processor may further comprise one or several cores. The processing unit 110 executes a neural network inference engine 112 and a control module 114, as will be detailed later in the description.
The memory 120 stores instructions of computer program(s) executed by the processing unit 110 (for implementing the neural network inference engine 112, the control module 114, etc.), data generated by the execution of the computer program(s), data received via the communication interface 130 (or another communication interface), etc. Only a single memory 120 is represented in
The communication interface 130 allows the computing device 100 to exchange data with remote devices (e.g. with the IR sensor 200, controlled appliance(s), a training server 300, etc.) over a communication network (not represented in
As illustrated in
The processing unit 210 of the IR sensor 200 is similar to the processing unit 110 of the computing device 100. The processing unit 210 executes a conversion module 211, as will be detailed later in the description.
The memory 220 of the IR sensor 200 is similar to the memory 120 of the computing device 100. The memory 220 stores instructions of computer program(s) executed by the processing unit 210 for implementing the conversion module 211, etc. The memory 220 also stores calibration table(s) 221, which will be detailed later in the description.
The communication interface 230 of the IR sensor 200 is similar to the communication 130 of the computing device 100. The communication interface 230 allows the IR sensor 200 to exchange data with remote devices (e.g. with the computing device 100, etc.) over a communication network (not represented in
The IR sensing component 240 is well known in the art of IR sensors. The IR sensing component 240 generates raw sensor data. The conversion module 211 executed by the processing unit 210 is a software implementing a conversion algorithm. The conversion algorithm uses the calibration table(s) 221 to convert the raw sensor data into corresponding temperature measurements. The raw sensor data may be pre-processed, before processing by the conversion algorithm.
For example, in the case of a low end IR camera, the IR sensing component 240 performs thermographic IR imaging, which consists in detecting radiations in the electromagnetic spectrum with wavelengths in the range of substantially 900 to 14 000 nanometers. The IR sensing component 240 implements a thermal detector which collects heat energy. The thermal detector produces a signal voltage proportional to the collected heat energy. The signal voltage is converted into a digital count by an Analog to Digital (A/D) converter. The A/D converter (not represented in
As mentioned previously, the present disclosure addresses IR sensors 200 which generate a two-dimensional (2D) matrix of temperature measurements. The conversion module 211 receives a 2-D matrix of raw sensor data, comprising M lines and N columns (for example, M is equal to 24 and N is equal to 32), as follows:
[R1,1 R1,2 . . . R1,M
R2,1 R2,2 . . . R2,M
. . .
RN,1 RN,2 . . . RN,M]
The conversion module 211 generates a 2-D matrix of temperature measurements, comprising M lines and N columns, as follows:
[T1,1 T1,2 . . . T1,M
T2,1 T2,2 . . . T2,M
. . .
TN,1 TN,2 . . . TN,M]
Each value of the matrix of raw sensor data is representative of heat energy collected by the IR sensing component 240. Each corresponding value Ti,j of the matrix of temperature measurements is calculated by applying the calibration table(s) 221 to the value of Ri,j.
As illustrated in
The processing unit 310 of the training server 300 is similar to the processing unit 110 of the computing device 100. The processing unit 310 executes a neural network training engine 311 and a control module 314, as will be detailed later in the description.
The memory 320 of the training server 300 is similar to the memory 120 of the computing device 100. The memory 320 stores instructions of computer program(s) executed by the processing unit 310 for implementing the neural network training engine 311, the control module 314, etc.
The communication interface 330 of the training server 300 is similar to the communication 130 of the computing device 100. The communication interface 330 allows the training server 300 to exchange data with remote devices (e.g. with the computing device 100, etc.) over a communication network (not represented in
The execution of the neural network training engine 311 generates a predictive model of a neural network, which is transmitted to the computing device 100 via the communication interface of the training server 300. The predictive model is transmitted over a communication network and received via the communication interface 130 of the computing device 100.
Reference is now made concurrently to
A dedicated computer program has instructions for implementing at least some of the steps of the method 500. The instructions are comprised in a non-transitory computer program product (e.g. the memory 120) of the computing device 100. The instructions provide for using a neural network to analyze temperature measurements of an IR sensor, when executed by the processing unit 110 of the computing device 100. The instructions are deliverable to the computing device 100 via an electronically-readable media such as a storage media (e.g. CD-ROM, USB key, etc.), or via communication links (e.g. via a communication network through the communication interface 130).
The instructions of the dedicated computer program executed by the processing unit 110 implement the neural network inference engine 112 and the control module 114. The neural network inference engine 112 provides functionalities of a neural network, allowing to infer output(s) based on inputs using the predictive model (generated by the training server 300), as is well known in the art. The control module 114 provides functionalities allowing the computing device 100 to interact with and control other devices (e.g. the IR sensor 200 and the training server 300).
The method 500 comprises the step 505 of executing the neural network training engine 311 to generate the predictive model. Step 505 is performed by the processing unit 310 of the training server 300. The predictive model comprises parameters of a neural network implemented by the neural network training engine 311. This step will be further detailed later in the description.
The method 500 comprises the step 510 of transmitting the predictive model generated at step 505 to the computing device 100, via the communication interface 330 of the training server 300. Step 510 is performed by the processing unit 310 of the training server 300.
The method 500 comprises the step 515 of receiving the predictive model from the training server 300, via the communication interface 130 of the computing device 100. Step 515 is performed by the processing unit 110 of the computing device 100.
The method 500 comprises the step 520 of storing the predictive model in the memory 120 of the computing device 100. Step 520 is performed by the processing unit 110 of the computing device 100.
The method 500 comprises the step 525 of receiving a two-dimensional matrix of temperature measurements from the IR sensor 200, via the communication interface 130 of the computing device 100. Step 525 is performed by the processing unit 110 of the computing device 100.
The method 500 comprises the optional step 530 of receiving additional parameter(s), via the communication interface 130 of the computing device 100. Step 530 is performed by the processing unit 110 of the computing device 100.
The method 500 comprises the step 535 of executing the neural network inference engine 112. The neural network inference engine 112 implements a neural network using the predictive model (stored at step 520) for generating outputs based on inputs. The execution of the neural network inference engine 112 is performed by the processing unit 110 of the computing device 100. This step will be further detailed later in the description.
The inputs comprise the two-dimensional matrix of temperature measurements received at step 525. Optionally, the inputs also include the additional parameter(s) received at step 530. During the training phase, the predictive model generated by the neural network training engine 311 takes into account the additional parameter(s) if applicable.
The outputs comprise a two-dimensional matrix of inferred temperatures.
The method 500 comprises the step 540 of determining a subset of values of the 2D matrix of temperature measurements (received at step 525). Step 540 is performed by the processing unit 110 of the computing device 100.
In an exemplary implementation, the subset of values is determined by the processing unit 110 based on data received via at least one of the communication interface 130 and the user interface 140. The data identify positions in the 2D matrix of temperature measurements, and the subset of values consists of the values corresponding to the identified positions.
The method 500 comprises the step 545 of applying a comparison algorithm to the subset of values of the 2D matrix of temperature measurements (determined at step 540) and a corresponding subset of values of the 2D matrix of inferred temperatures. Step 545 is performed by the processing unit 110 of the computing device 100.
The method 500 comprises the step 550 of determining that the subset of values of the 2D matrix of temperature measurements is anomalous based on a result of the comparison algorithm executed at step 545. Step 550 is performed by the processing unit 110 of the computing device 100. The determination performed at step 550 depends on the implementation of the comparison algorithm at step 545.
In a first exemplary implementation of step 545, the comparison algorithm calculates an average of the absolute differences between the corresponding values of the two subsets, which is equal to the sum of the absolute values of the differences between each value of the subset of values of the 2D matrix of temperature measurements and each corresponding value of the subset of values of the 2D matrix of inferred temperatures, divided by the number of values in the subsets. At step 550, the averaged absolute difference calculated by the comparison algorithm is compared to a pre-defined threshold, to determine if the subset of values of the 2D matrix of temperature measurements is anomalous (e.g. the averaged absolute difference is greater or equal than the threshold) or normal (e.g. the averaged absolute difference is lower than the threshold).
In a second exemplary implementation of step 545, the comparison algorithm calculates the means square error (MSE) of the subset of values of the 2D matrix of temperature measurements and the corresponding subset of values of the 2D matrix of inferred temperatures. The calculation of the MSE of two sets of data is well known in the art. At step 550, the MSE calculated by the comparison algorithm is compared to a pre-defined threshold, to determine if the subset of values of the 2D matrix of temperature measurements is anomalous (e.g. the MSE is greater or equal than the threshold) or normal (e.g. the MSE is lower than the threshold).
In a third exemplary implementation of step 545, the comparison algorithm calculates the number of occurrences for which the absolute difference between a given value of the subset of values of the 2D matrix of temperature measurements and the corresponding given value of the subset of values of the 2D matrix of inferred temperatures is greater than a pre-defined difference value. At step 550, the number of occurrences calculated by the comparison algorithm is compared to a pre-defined threshold, to determine if the subset of values of the 2D matrix of temperature measurements is anomalous (e.g. the number of occurrences is greater or equal than the threshold) or normal (e.g. the number of occurrences is lower than the threshold). The threshold can be expressed as a percentage, by dividing the number of occurrences by the number of values of the subset of values of the 2D matrix of temperature measurements.
The aforementioned exemplary implementations of the comparison algorithms are for illustration purposes only. A person skilled in the art would readily understand that other implementations of the comparison algorithm may be used at step 545.
Following is an exemplary application of the method 500 to a 2D matrix having 6 lines and 5 columns. The number of lines (6) and columns (5) of the 2D matrix are for illustration purposes only. A person skilled in the art would readily apply the following to a matrix having different dimensions.
The 2D matrix of temperature measurements is as follows:
The 2D matrix of inferred temperatures is as follows:
A 2D matrix for determining the subset of values is as follows (0 indicates un-selected values and 1 indicates selected values):
The following subset of values of the 2D matrix of temperature measurements [T2,3; T2,4; T3,2; T3,3; T3,4; T3,5; T4,2; T4,3; T4,4; T4,5] is compared to the following subset of values of the 2D matrix of inferred temperatures [T′2,3; T′2,4; T′3,2; T′3,3; T′3,4; T′3,5; T′4,2; T′4,3; T′4,4; T′4,5] by the comparison algorithm.
For illustration purposes, we choose the aforementioned first exemplary implementation of the comparison algorithm (calculation of an average of the absolute differences between the corresponding values of the two subsets). We consider that [T2,3; T2,4; T3,2; T3,3; T3,4; T3,5; T4,2; T4,3; T4,4; T4,5]=[38; 39; 38.5; 38; 37.5; 39; 38.5; 37; 38; 37.5] and [T′2,3; T′2,4; T′3,2; T′3,3; T′3,4; T′3,5; T′4,2; T′4,3; T′4,4; T′4,5]=[38; 38.5; 38; 38; 37; 39; 37.5; 38; 37; 38]. The averaged absolute difference (calculated at step 545) is equal to (|38−38|+|39−38.5|+|38.5−38|+|38−38|+|37.5−37|+|39−39|+|38.5−37.5|+|37−38|+|38−37|+|37.5−38|)/10=(0+0.5+0.5+0+0.5+0+|+|+1+0.5)/10=0.5.
If the averaged absolute difference is greater or equal than 1, the subset is declared anomalous; and the subset is declared normal if the averaged absolute difference is lower than 1 (at step 550). In the present example, the averaged absolute difference is equal to 0.5 and the subset [T2,3; T2,4; T3,2; T3,3; T3,4; T3,5; T4,2; T4,3; T4,4; T4,5] is declared not anomalous. If the averaged absolute difference had been equal to 1.5, the subset [T2,3; T2,4; T3,2; T3,3; T3,4; T3,5; T4,2; T4,3; T4,4; T4,5] would have been declared anomalous.
The preceding example is for illustration purposes only, and can be adapted to any type of comparison algorithm implemented at step 545.
Steps 515, 520, 525, 530, 540, 545 and 550 of the method 500 are performed by the control module 114 executed by the processing unit 110. Additional steps not represented in
In another implementation, steps 515-550 are performed by the IR sensor 200. The processing unit 210 of the IR sensor 200 has enough processing power to execute a neural network. The predictive model is received via the communication interface 230 of the IR sensor 200 and stored in the memory 220 of the IR sensor 200. The 2D matrix of temperature measurements is generated by the processing unit 210 of the IR sensor 200 as previously described, in relation to
Referring to
Referring to
The neural network includes an input layer for receiving the 2D matrix of temperature measurements, comprising M lines and N columns, as follows:
[T1,1 T1,2 . . . T1,M
T2,1 T2,2 . . . T2,M
. . .
TN,1 TN,2 . . . TN,M]
Each value Ti,j of the 2D matrix of temperature measurement is generated by the IR sensor 200, as previously detailed.
The input layer is followed by a flattening layer. As is well known in the art, the flattening layer converts the 2D matrix of temperature measurements into a one-dimensional (1D) matrix.
The flattening layer is followed by auto-encoding layers. The auto-encoding layers consist of fully connected layers adapted to implement the auto-encoding functionality. The number of fully connected layer(s) is an integer greater or equal than 3 for implementing the auto-encoding functionality (
As is well known in the art, the first layer(s) among the auto-encoding layers perform an encoding functionality and the last layer(s) among the auto-encoding layers perform a decoding functionality. The central layer(s) among the auto-encoding layers has (have) less neurons than the first (encoding) and last (decoding) layers among the auto-encoding layers, to perform a compression of the data at the central layer(s).
The auto-encoding layers are followed by an output layer for outputting the 2D matrix of inferred temperatures, comprising M lines and N columns, as follows:
[T′1,1 T′1,2 . . . T′1,M
T′2,1 T′2,2 . . . T′2,M
. . .
T′N,1 T′N,2 . . . T′N,M]
Each value T′i,j of the 2D matrix of inferred temperatures corresponds to the corresponding value Ti,j of the 2D matrix of temperature measurements.
As illustrated in
As illustrated in
In another implementation not represented in the Figures for simplification purposes, the neural network represented in
The 2D convolutional layer is optionally followed by a pooling layer, which generates a pooled 2D matrix. As is well known in the art, the pooling layer is defined by the following parameters: a two-dimensions filter, a stride and a pooling algorithm. The pooled 2D matrix comprises M″ lines and N″ columns, with M′ greater than M″ and N′ greater than N″. The role of the pooling layer is to reduce the size of the 2D matrix generated by the convolutional layer.
The 2D convolutional layer (or the pooling layer if it is present) is followed by the flattening layer represented in
Several consecutive 2D convolutional layers (and corresponding optional pooling layers) may be included in the neural network, as is well known in the art.
Referring to
The neural network includes an input layer for receiving a plurality of 2D matrices of temperature measurements. In this implementation, step 525 of the method 500 is repeated several times before performing step 535. A series of I consecutive 2D matrices of temperature measurements is received from the IR sensor 200, where I is an integer greater or equal than 2. For example, a matrix is received every second and when 3 matrices have been received (I=3), step 535 is performed (as illustrated in
The input layer is followed by a flattening layer. The flattening layer converts the I 2D matrices of temperature measurements into a 1D matrix. The flattening layer is followed by the encoding layers and the output layer, as previously illustrated in
As mentioned previously, in another implementation not represented in the Figures for simplification purposes, the neural network represented in
The 2D convolutional layer is optionally followed by a pooling layer, which generates I pooled 2D matrices, respectively corresponding to the I convoluted 2D matrices of the previous layer.
The 2D convolutional layer (or the pooling layer if it is present) is followed by the flattening layer represented in
Several consecutive 2D convolutional layers (and corresponding optional pooling layers) may be included in the neural network, as is well known in the art.
A person skilled in the art would readily understand that the aforementioned implementations of the neural network are for illustration purposes only. Other implementations of the neural network may be used for achieving the functionalities of the method 500.
Reference is now made concurrently to
A dedicated computer program has instructions for implementing at least some of the steps of the method 600. The instructions are comprised in a non-transitory computer program product (e.g. the memory 320) of the training server 300. The instructions provide for training a neural network to analyze temperature measurements of an infrared sensor, when executed by the processing unit 310 of the training server 300. The instructions are deliverable to the training server 300 via an electronically-readable media such as a storage media (e.g. CD-ROM, USB key, etc.), or via communication links (e.g. via a communication network through the communication interface 330).
The instructions of the dedicated computer program executed by the processing unit 310 implement the neural network training engine 311 and the control module 314. The neural network training engine 311 provides functionalities of a neural network, allowing to generate a predictive model ready to be used by the neural network inference engine 112 (executed by the computing device 100) at the end of the training, as is well known in the art. The control module 314 provides functionalities allowing the training server 300 to gather data used for the training of the neural network.
The method 600 comprises the step 605 of initializing a predictive model used by the neural network implemented by the neural network training engine 311. Step 605 is performed by the control module 314 executed by the processing unit 310 of the training server 300. The predictive model comprises various parameters which depend on the characteristics of the neural network implemented by the neural network training engine 311.
The initialization of the predictive model comprises defining a number of layers of the neural network, a functionality for each layer (e.g. convolutional layer, fully connected layer, etc.), initial values of parameters used for implementing the functionality of each layer, etc. The initialization of the predictive model is performed by a person highly skilled in the art of neural networks.
For example, the initialization of the parameters of a fully connected layer includes determining the number of neurons of the fully connected layer and determining an initial value for the weights of each neuron. Different algorithms (well documented in the art) can be used for allocating an initial value to the weights of each neuron. For example, each weight is allocated a random value within a given interval (e.g. a real number between −0.5 and +0.5), which can be adjusted if the random value is too close to a minimum value (e.g. −0.5) or too close to a maximum value (e.g. +0.5). In another example, the initialization of the parameters of a convolutional layer includes determining the size and values of the filter, and the value of the stride.
A comprehensive description of the initialization of the predictive model is out of the scope of the present disclosure, since it is well known in the art of neural networks and is different for each type of layer (e.g. a fully connected layer, a convolutional layer, a pooling layer, etc.).
The data used for the initialization of the predictive model are received from a person via the user interface 340, and/or received from a remote computing device (not represented in
Although not represented in
The method 600 comprises the step 610 of generating training data. The training data comprise a plurality of 2D matrices of temperatures measurements collected by the IR sensor 200.
The IR sensor 200 is put in various operating conditions. For example, a reference object and/or reference person is submitted to various conditions. For each particular condition, the IR sensor 200 is pointed towards the reference object and/or reference person. For each particular condition, the IR sensor 200 transmits a 2D matrix of temperature measurements (related to the reference object and/or reference person), which is received by the training server 300 via the communication interface 330.
In the case where additional inputs are used by the neural network, these additional inputs are also collected at step 610 and integrated to the training data.
The method 600 comprises the step 615 of executing the neural network training engine 311. The neural network training engine 311 implements the neural network using the predictive model for generating outputs based on inputs. The execution of the neural network training engine 311 is performed by the processing unit 310 of the training server 300.
The inputs comprise a given 2D matrix of temperature measurements among the plurality of 2D matrices of temperature measurements generated at step 610. The outputs comprise a 2D matrix of inferred temperatures.
The neural network implemented by the neural network training engine 311 corresponds to the neural network implemented by the neural network inference engine 112 (same number of layers, same functionality for each layer, same parameters used for implementing the functionality of each layer, etc.). As mentioned previously,
The method 600 comprises the step 620 of adjusting the predictive model of the neural network, to minimize a difference between the 2D matrix of inferred temperatures (calculated at step 615) and the given 2D matrix of temperature measurements (used as inputs at step 615). Step 620 is performed by the neural network training engine 311 executed by the processing unit 310 of the training server 300.
As is well known in the art, step 620 aims at minimizing a difference between outputs calculated by the neural network and expected outputs of the neural network, through the adjustment of the predictive model of the neural network (more specifically by adjusting parameters of the neural network comprised in the predictive model). For example, for a fully connected layer of the neural network, the adjustment comprises adjusting the weights associated to the neurons of the fully connected layer. In another example, for a convolutional layer of the neural network, the adjustment comprises adjusting the values of the filter used by the convolutional layer.
As is well known in the art, steps 615-620 are repeated for several given 2D matrices of temperature measurements selected among the plurality of 2D matrices of temperature measurements (generated at step 610). The training data need to be large enough to properly train the neural network.
The implementation of the method 600 with respect to steps 610-615-620 may vary. For example, batches of N tuple(s) are selected among the training data, N being an integer greater or equal than 1. A tuple comprises a given 2D matrix of temperature measurements, and optionally the corresponding value(s) of the optional parameter(s). Step 615 is performed for the N tuple(s) of a given batch. Step 620 is performed taking into consideration the N output(s) of the neural network calculated at step 615. Thus, the adjustment of the predictive model at step 720 is performed by taking into consideration the N tuple(s) simultaneously. This process is repeated for each batch of N tuple(s). At the end of the process, a new set of batches of N tuple(s) may be selected and the process repeated.
Although not represented in
Steps 605, 610, 615 and 620 of the method 600 correspond to step 505 of the method 500 represented in
At the end of the training phase, the neural network is considered to be properly trained (the predictive model of the neural network has been adjusted so that a difference between the expected outputs and the calculated outputs has been sufficiently minimized). The predictive model, comprising the adjusted parameters of the neural network, is transmitted to the computing device 100, as illustrated by step 510 of the method 500 represented in
Test data are optionally used to validate the accuracy of the predictive model. The test data are different from the training data used at steps 610-615-620. This procedure well known in the art of neural networks is not represented in
Various techniques well known in the art of neural networks can be used for performing step 620. For example, the adjustment of the predictive model of the neural network at step 620 uses back propagation. Other techniques, such as the usage of bias in addition to the weights (bias and weights are generally collectively referred to as weights in the neural network terminology), reinforcement training, etc., may also be used.
Furthermore, the evaluation of the difference between the expected outputs and the calculated outputs of the neural network at step 620 may be implemented in different ways. In an exemplary implementation, the parameters of the neural network are adjusted so that each value of the calculated 2D matrix of inferred temperatures is substantially equal to the corresponding value of the given 2D matrix of temperature measurements. A tolerance interval is usually used when performing the comparison between the calculated and expected values (e.g. a tolerance of 1% in absolute value is acceptable).
In a particular implementation, the neural network training engine 311 and the neural network inference engine 112 are implemented by the same computing device 100. In this case, the steps of the method 600 (represented in
The training process may be implemented in two steps for a given type of IR sensor 200. The method 600 is applied to a first IR sensor of the given type, and a generic predictive model is generated. Then, for each other IR sensor of the given type, the method 600 is applied using the generic predictive model at step 605, and generating a specific predictive model adapted to each specific IR sensor of the given type. The quantity of training data for the second step is lower than the quantity of training data for the first step, since the second step consists of a fine-tuning of the training performed at the first step.
Referring now concurrently to
During a training phase, the method 600 is applied to human beings with a normal body temperature. The IR sensor 200 is used to measure the body temperature of the human beings. The human beings are placed in a controlled environment, which may comprise various objects. The field of view of the IR sensor 200 includes a part of the body of the human being (e.g. his head), as well as a background comprising one or more objects (e.g. furniture, a wall, a window, plants, etc.). The 2D matrices of temperature measurements generated by the IR sensor 200 include values representative of the temperature of the part of the body of the human being, as well as values representative of the temperature of the one or more object in the background. A plurality of human beings and objects are used during the training phase, to generate a robust predictive model. At the end of the training phase, the predictive model has been adapted so that the neural network generates an output 2D matrix of inferred temperatures substantially similar to the input 2D matrix of temperature measurements, for a human being having a normal body temperature.
During an operational phase, the method 500 is applied to a given human being. The IR sensor 200 is used to measure the body temperature of the given human being. Similarly to the training phase, the 2D matrix of temperature measurements generated by the IR sensor 200 includes values representative of the temperature of the part of the body of the given human being, as well as values representative of the temperature of one or more object in the background.
The subset of values of the of the 2D matrix of temperature measurements includes at least some of the values representative of the temperature of the part of the body of the given human being. Ideally, the subset of values of the of the 2D matrix of temperature measurements includes only the values representative of the temperature of the part of the body of the given human being. The subset of values may be determined by various means, including a pattern recognition algorithm capable of detecting the body of the human being within the background.
If the given human being has a normal body temperature, the determination at step 550 is not anomalous. If the given human being has a body temperature higher than normal, the determination at step 550 is anomalous.
The comparison algorithm and the criteria (e.g. the previously mentioned thresholds) respectively used at steps 545 and 550 of the method 500 are selected and adapted during the training phase, so that the determination at step 550 is not anomalous for a human being having a normal body temperature.
Although the present disclosure has been described hereinabove by way of non-restrictive, illustrative embodiments thereof, these embodiments may be modified at will within the scope of the appended claims without departing from the spirit and nature of the present disclosure.