Patent Description:
This disclosure relates to a system for determining washroom use and controlling hygiene dispensers.

Washroom traffic data can be used to determine how often and when a washroom should be serviced based on the level of use inferred from the traffic data. Such data can also be used to understand occupant traffic patterns in a building including which floors or areas are more heavily used than others. In any case, washroom traffic information can be determined through the use of door counters, which are devices mounted on the door, doorframe or both, and sense when the door opens/closes. This requires that each door have such a sensor, which can be costly.

Further, some washrooms do not have entrance/exit doors but rather open passageways through which occupants must navigate to enter or leave the washroom. In these types of washrooms door counters are not suitable, which makes washroom traffic more difficult to determine.

<CIT> discloses a prior art system having the features of the preamble of claim <NUM>. <CIT> discloses another prior art system for use in a washroom.

An aspect of the present invention provides a system for use in a washroom in accordance with claim <NUM>.

For example, separate and discrete door counters are not needed for every entrance and/or exit as the washroom system described herein can, from a single washroom location such as centrally mounted in the washroom ceiling, thermally detect temperature changes at multiple entrances and/or exits by having thermal sensors aimed at those areas with each thermal event indicating an occupant entered or left the washroom. Having such a thermal detection device avoids not only the multiple door counters (and associated costs) but also the complexity associated with retrieving data from those remote door counters.

Some washrooms do not have entrance/exit doors but rather open passageways, for example, with ninety degree bends (for privacy). In these washrooms using traditional door counters is not even an option. Because the washroom system described herein uses a thermal sensor such a system can determine traffic in these open passageways washrooms because it does not depend on door opening or closing events to determine such traffic.

The present disclosure relates to determining washroom traffic and use. The washroom traffic system includes a washroom controller that can communicate with the various dispensers in the washroom and the thermal sensor. For example, the thermal sensor can be in the washroom controller, which is mounted on the ceiling of the washroom. The thermal sensor detects thermal variations or thermally warm spots in the washroom. A data processing apparatus in communication with the washroom controller can access the thermal data and infer the presence of occupants entering or existing the washroom based on heat signatures of the occupants proximate the door or entry/exit to the washroom and determine the number of washroom dispenser dispenses to give a holistic view of the washroom use. The washroom use determination system is described in additional detail below.

<FIG> is a block diagram of an example environment <NUM> in which a washroom use determination system <NUM> can be implemented. The environment <NUM> can be, for example, a semi-private or public washroom or break room or another space in which dispensers <NUM> and, optionally, equipment such as toilets <NUM> and/or sinks <NUM>, are located. The dispensers <NUM> can include, for example, hand towel dispensers 104a, bath tissue dispensers 104b, hand soap (or other cleansing) dispensers 104c, hand or facial care dispensers (not pictured), and the like. One or more of the dispensers <NUM> are hygiene-based dispensers. A hygiene dispenser <NUM> dispenses consumable hygiene product (e.g., bath tissue, hand towels, hand sanitizer, soap, lotion, deodorizer, air freshener, etc.), which is a product intended to promote good hygiene or sanitation such as by cleaning or sanitizing a user and/or a surface. The dispenser <NUM>, more generally, is a device that holds consumable (hygiene) product and dispenses the product in response to an environmental stimulus (e.g., light/darkness).

The washroom use determination system <NUM> can be used to determine traffic in the environment <NUM>, e.g., number of occupants at any one time in the environment <NUM> or the number of occupants entering and/or exiting the environment <NUM> over a given time period. The system <NUM> can also determine the number of dispenser <NUM> dispenses over a given time period including when such dispensing events occurred.

To this end, the system <NUM> includes a washroom controller <NUM>, a thermal sensor <NUM> and a data processing apparatus <NUM>. The washroom controller <NUM> communicates, e.g., over wired or wireless channels, with the dispensers <NUM> and the thermal sensor <NUM> to, for example, instruct the operation of the dispenser <NUM> and/or sensor <NUM>. The controller <NUM> also receives data from the dispensers <NUM> describing the dispensing events (e.g., an actuation of the dispenser <NUM> causing consumable product to be dispensed to a user) of the dispensers <NUM> (e.g., the number of dispense events over a given time period and the time of such dispensing events or the number and times of dispensing events since the last report provided to the controller <NUM>) and thermal event data from the sensor <NUM>.

<FIG> is a block diagram of an example washroom controller <NUM>. In some implementations, the controller <NUM> includes a processor <NUM> (e.g., a microcontroller or a microprocessor), a transceiver <NUM>, and a memory storage device <NUM> (e.g., volatile and/or non-volatile memory). The transceiver <NUM>, at the direction of the processor <NUM>, for example, communicates with the dispensers <NUM> and thermal sensor <NUM> to receive data describing the operation or state of the each. The controller <NUM>, through use of the processor <NUM>, can store such data in the memory storage device <NUM> for use or later access. The memory storage device <NUM> can store programmatic instructions to control or instruct the operation of the controller <NUM>.

<FIG> is a block diagram of an example thermal sensor <NUM>. In some implementations the thermal sensor <NUM> includes a processor <NUM> (e.g., a microcontroller or a microprocessor), a transceiver <NUM>, and a memory storage device <NUM> (e.g., volatile and/or non-volatile memory). In some implementations (e.g., in which the sensor <NUM> is co-located with the controller <NUM>) the thermal sensor <NUM> shares or otherwise is benefited from the processor <NUM>, memory <NUM> and/or the transceiver <NUM> of the controller <NUM> and may not have a processor <NUM>, memory <NUM> and/or the transceiver <NUM>.

The thermal sensor <NUM> detects thermal events in the environment <NUM>, e.g., at the entrance and/or exit of the environment <NUM>. The entrance/exit can be a door or open passageway, e.g., an opening into the environment without a door such as a short corridor having a left or right turn to prevent an outside observer from readily seeing into the environment <NUM>. A thermal event is a change in the thermal status or state (e.g., a temperature change) of a portion of the environment <NUM>. For example, a thermal event at the entrance <NUM> occurs when an occupant dwells at or passes through the entrance <NUM> as the occupant presents a thermal change (e.g., thermal increase) at the entrance <NUM> by her presence there, as opposed to the entrance <NUM> having a different (e.g., lower) thermal characteristic without the presence of the occupant.

The thermal sensor <NUM> can be, for example, an infrared thermal sensor or sensor array (e.g., based on thermopile elements in an array such as an 8x8 grid) (see generally, <NPL>). In some implementations, other types of sensors can be used to determine traffic such as pyroelectric sensors.

<FIG> is a representation <NUM> of example visualized thermal data, for example, as captured by the thermal sensor <NUM> of a portion of the environment <NUM> (e.g., a plan or top-down view of the environment <NUM>). The darker sections (e.g., pixel <NUM>) represent areas in the environment <NUM> that have an elevated or higher thermal signature (e.g., temperature) as compared to lighter sections (e.g. pixel <NUM>). Based on the positioning of the thermal sensor <NUM> and the size and layout of the environment <NUM> the representation (e.g., <NUM>) can capture all of the environment <NUM> or only a positon thereof. The sections (e.g., pixels) of the representation <NUM> can be correlated with actual, physical locations in the environment <NUM>. Thus the representation <NUM> shows a gradient of thermal states (e.g., temperatures) across the environment <NUM>. For example, the gradient could be from <NUM> degrees Fahrenheit to <NUM> degrees Fahrenheit. The gradient can be set as a function of ceiling height of the environment <NUM> and/or ambient temperature of the environment <NUM>.

In some implementations, the thermal gradient of the representation <NUM> can be set such that the thermal signature of washroom occupants corresponds to the darker sections (e.g., at or including pixel <NUM>) with the lighter sections (e.g., pixel <NUM>) indicating that no occupants are in those sections/areas of the environment <NUM>, as the thermal state of those sections is lower than would be if an occupant was there. Given that occupants have this known (or predefined) thermal signature on the gradient, the darker sections can be correlated with the thermal signature of occupants to map the position of occupants in the environment <NUM>, within some confidence interval.

In some implementations, the thermal sensor <NUM> is an array of sensors, for example, such as an 8x8 array, and the pixels of the representation <NUM> correspond to each sensor element of the array <NUM>. Thus the array <NUM> detects in a <NUM> element matrix. The thermal data, produced by the sensor <NUM>, can, in this example, include the thermal information (e.g., a temperature or thermal state) from each of these <NUM> elements. As described above, each of these element can be mapped to a physical location in the environment <NUM>.

The system <NUM> also includes a data processing apparatus <NUM>. The data processing apparatus <NUM> is configured to access the data (e.g., thermal data and dispenser event/actuation data) from the washroom controller <NUM>. The data processing apparatus <NUM> is configured to analyze the data to determine a number of thermal events over a given time period in the environment <NUM> (or a portion of the environment <NUM>) based on the thermal data and a number of dispenses from the dispensers <NUM> based on the dispense event data. In some implementations, the data processing apparatus <NUM> can be integral or co-located with the washroom controller <NUM> or it can be remote to the controller <NUM>. For example, in some implementations, the data processing apparatus <NUM> is realized, at least partially, as a cloud-based service, with wired or wireless communication with the controller <NUM> and/or thermal sensor <NUM>.

As described above, the resolution of the thermal sensor <NUM> can be limited by the size of its sensor array. To increase the fidelity or resolution of the thermal data the data processing apparatus <NUM> can apply, for example, interpolation techniques (e.g., linear, bi-cubic or other polynomial interpolation) to the thermal data to generate interpolated thermal data. <FIG> is a representation <NUM> of example visualized interpolated thermal data, which is, for example, a 29x29 array.

In some implementations, the data processing apparatus <NUM> further processes the interpolated thermal data to remove background noise from the data set. <FIG> is a representation <NUM> of example visualized interpolated thermal data with noise removed. The data processing apparatus <NUM> can remove the noise through any number of techniques such as, for example, nonlinear filtering (e.g., median filtering) or using wavelet transforms. By way of example, to remove background noise in the thermal data set, the data processing apparatus <NUM> can, for each element in the array, compare the value of that element (e.g., temperature) against (i) the average value of the entire array plus (ii) a temperature threshold value (collectively, the "compared value" or "thermal threshold level"). The average value of the elements in the array can be referred to as the average background temperature.

If the element value exceeds (or equals) the compared value then that element can be classified as indicative of occupant presence and it retains its value, and if the element value does not exceed the compared value then that element value can be replaced with a (running) background average value for the array ("analyzed thermal data"). In some implementations, the temperature threshold value can be selected to provide a desired confidence level that the value of an element likely indicates an occupant was in the area corresponding to the analyzed element. The data processing apparatus <NUM>, e.g., through image processing techniques such as edge detection, can group similarly valued elements/pixels to create clusters, and count the clusters. As shown in <FIG>, pixel (e.g., element) clusters <NUM> and <NUM> are shown in the environment <NUM>. The data processing apparatus <NUM> can be programmatically instructed to count each cluster (or thermal hot zone) as a respective occupant-so the data processing apparatus <NUM> determines there were two occupants present at the time the thermal data set was generated.

The thermal sensor <NUM> can generate thermal data periodically, e.g., every second or minute, and send such data to the data processing apparatus <NUM> upon request or at specified intervals. In turn, the data processing apparatus <NUM> can, for example, analyze the thermal data over a given time period to generate sets of analyzed thermal data to describe thermal event traffic over the given time period (e.g., by stitching together the various sets of thermal data in a time-sequenced manner). In some implementations, the thermal sensor <NUM> can be positioned to detect thermal events at multiple entrances/exits.

The data processing apparatus <NUM> can, for example, compare clusters or hot zones over time (from different thermal data sets) to determine a length of time or duration that a cluster or thermal hot zone remains in the same space (e.g., section of the environment <NUM>). For example, referring to representation <NUM>, the data processing apparatus <NUM> can compare thermal data sets at different (but sequential) times to determine how long a cluster <NUM> remains in the same space. If the data processing apparatus <NUM> determines that the cluster stays in the same place for an administratively set time period (e.g., twenty minutes) and optionally during a specified time of day (e.g., from 9pm to 4am), the data processing apparatus <NUM> can send an message to a device of a system administrator, as the cluster (representing an occupant) not moving for the specified duration could be an indication that an occupant is in distress.

In some implementations, the thermal sensor <NUM> is directed to sense the area at and/or proximate the entrance <NUM> or <NUM> to the environment <NUM> and generate thermal data every two seconds (or other specified time period). The data processing apparatus <NUM> can take that thermal data and generate analyzed thermal data at each same two second interval. For each set of analyzed thermal data the data processing apparatus <NUM> can determine the number of clusters (e.g., occupants) at the entrance <NUM> or <NUM>. Assuming that no occupant dwells at the entrance <NUM> or <NUM> for more than two seconds (or another set or statistically determined interval) and that the two second interval is frequent enough to capture every occupant entering and leaving through the entrance <NUM> or <NUM>, the data processing apparatus <NUM> "counts" the number of clusters at the entrance <NUM> or <NUM> for each set of data and aggregates the counts to arrive at a total occupant number (or total number of thermal events). Assuming each occupant entered and left the washroom through the entrance <NUM> or <NUM>, the data processing apparatus <NUM> can be programmed to divide the total occupant number by two to determine the number of visits to the environment <NUM> (a same occupant could visit the environment <NUM> multiple times each counting as a determined visit).

System <NUM> reduces the energy consumption of the dispensers <NUM> by causing the dispensers <NUM> to power down during periods of environment <NUM> inactivity (e.g., when no occupants are in the environment <NUM>) to save energy (e.g., battery energy of the dispensers <NUM>). In response to the data processing apparatus <NUM> determining that there have been no thermal events in the environment <NUM> for a set period of time (e.g., fifteen minutes), the data processing apparatus <NUM> instructs (e.g., through the controller <NUM>) the dispensers <NUM> to enter a low energy state (a state in which the dispensers <NUM> cannot dispense).

However, when an occupant enters the environment <NUM> it's likely the occupant will use a dispenser <NUM> so the dispensers <NUM> must be instructed to return to an active state (e.g., a state in which the dispensers <NUM> dispense in normal operation) from the low energy state. In response to determining a thermal event at the entrance <NUM> or <NUM> (and after the dispensers <NUM> have been instructed to enter the low energy state), the data processing apparatus <NUM> instructs the washroom controller <NUM> to cause the dispensers <NUM> to enter the active state. In this way the system <NUM> can reduce the energy consumption of dispensers <NUM> in the environment <NUM> without adversely affecting the occupants' experience with the dispensers <NUM>.

In some implementations, the data processing apparatus <NUM> provides the data describing the number of occupants in the environment <NUM> during a given time period and the number of dispense events during that same time period to a display device (e.g., a monitor or smart phone) for display to a user.

Occupant visits to a washroom (e.g., environment <NUM>) generally involve use of a dispenser <NUM>, whether it be a bath tissue dispenser <NUM>, a paper towel dispenser <NUM>, a soap/sanitizer dispenser <NUM> or the like. So if the number of occupant visits is high but dispenser use is statistically low, then it can be inferred that there may be a malfunctioning dispenser(s) <NUM>, which is resulting in the abnormally low dispenser use profile. Thus, given a statistical measure quantifying the relationship between dispenser use and occupant visits (e.g., from a pre-existing analysis of washroom use) (the "statistical relationship"), the data processing apparatus <NUM> can be programmed to infer dispenser malfunctions. Such malfunctions can be, for example, a paper jam, a depleted battery or a no consumable product state (i.e., the dispenser <NUM> is out of consumable product). In some implementations, the data processing apparatus <NUM>, compares the number of dispense events to the number of occupants over a given time period. And, in response to determining that the number of occupants differs from the number of dispense events by a predetermined measure (e.g., based on the statistically relationship), the data processing apparatus <NUM> provides a communication specifying that one or more dispensers <NUM> malfunctioning. Thus, in some implementations, the data processing apparatus <NUM> determines a possible dispenser <NUM> malfunction has occurred, and sends a message to an attendant (e.g., via the attendant's mobile device/smart phone).

Implementations of the subject matter and the operations described in this specification can be implemented, at least in part, in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented, at least in part, as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on computer storage medium for execution by, or to control the operation of, data processing apparatus.

The operations described in this specification can be implemented as operations performed by a data processing apparatus or system on data stored on one or more computer-readable storage devices or received from other sources.

The term data processing apparatus encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

The processes and logic flows described in this specification, at least in part, can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output.

Implementations of the subject matter described in this specification can be implemented, at least in part, in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components.

In some embodiments, a server transmits data (e.g., an HTML page) to a user computer (e.g., for purposes of displaying data to and receiving user input from a user interacting with the user computer). Data generated at the user computer (e.g., a result of the user interaction) can be received from the user computer at the server.

While operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results.

Claim 1:
A system (<NUM>) for use in a washroom (<NUM>), wherein the washroom (<NUM>) has an entrance (<NUM>), the system (<NUM>) comprising:
a washroom controller (<NUM>) configured to communicate with one or more hygiene dispensers (<NUM>) in the washroom (<NUM>);
a thermal sensor (<NUM>) configured to detect thermal events at the entrance (<NUM>) and communicate data describing the thermal events to the washroom controller (<NUM>); and
a data processing apparatus (<NUM>) configured to access the data from the washroom controller (<NUM>) and analyze the data to determine a number of thermal events over a given time period and a number of dispenses from the at least one of the one or more hygiene dispensers (<NUM>), characterized in that:
the data processing apparatus (<NUM>) is further configured to (i), in response to determining that there have been no thermal events for a set period of time, instruct the one or more hygiene dispensers (<NUM>) to enter a low energy state in which the one or more hygiene dispensers (<NUM>) cannot dispense, and (ii), in response to determining a thermal event, instruct the one or more hygiene dispensers (<NUM>) to enter an active state from the low energy state, wherein, in the active state, the one or more hygiene dispensers (<NUM>) dispense in normal operation and can actuate to dispense products in response to an environmental stimulus.